@keenmate/web-multiselect 1.12.0-rc07 → 1.12.0-rc08

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,78 +1,78 @@
1
- var vt = Object.defineProperty;
2
- var _t = (o, e, t) => e in o ? vt(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
3
- var h = (o, e, t) => _t(o, typeof e != "symbol" ? e + "" : e, t);
4
- const he = Math.min, X = Math.max, me = Math.round, ce = Math.floor, F = (o) => ({
1
+ var yt = Object.defineProperty;
2
+ var wt = (o, e, t) => e in o ? yt(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
3
+ var h = (o, e, t) => wt(o, typeof e != "symbol" ? e + "" : e, t);
4
+ const me = Math.min, Y = Math.max, pe = Math.round, de = Math.floor, F = (o) => ({
5
5
  x: o,
6
6
  y: o
7
- }), kt = {
7
+ }), Ct = {
8
8
  left: "right",
9
9
  right: "left",
10
10
  bottom: "top",
11
11
  top: "bottom"
12
- }, yt = {
12
+ }, xt = {
13
13
  start: "end",
14
14
  end: "start"
15
15
  };
16
- function $e(o, e, t) {
17
- return X(o, he(e, t));
16
+ function Re(o, e, t) {
17
+ return Y(o, me(e, t));
18
18
  }
19
- function be(o, e) {
19
+ function ge(o, e) {
20
20
  return typeof o == "function" ? o(e) : o;
21
21
  }
22
22
  function J(o) {
23
23
  return o.split("-")[0];
24
24
  }
25
- function ge(o) {
25
+ function fe(o) {
26
26
  return o.split("-")[1];
27
27
  }
28
- function Qe(o) {
28
+ function st(o) {
29
29
  return o === "x" ? "y" : "x";
30
30
  }
31
- function et(o) {
31
+ function ot(o) {
32
32
  return o === "y" ? "height" : "width";
33
33
  }
34
- const wt = /* @__PURE__ */ new Set(["top", "bottom"]);
34
+ const St = /* @__PURE__ */ new Set(["top", "bottom"]);
35
35
  function G(o) {
36
- return wt.has(J(o)) ? "y" : "x";
36
+ return St.has(J(o)) ? "y" : "x";
37
37
  }
38
- function tt(o) {
39
- return Qe(G(o));
38
+ function it(o) {
39
+ return st(G(o));
40
40
  }
41
- function xt(o, e, t) {
41
+ function Tt(o, e, t) {
42
42
  t === void 0 && (t = !1);
43
- const s = ge(o), i = tt(o), r = et(i);
44
- let a = i === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
45
- return e.reference[r] > e.floating[r] && (a = pe(a)), [a, pe(a)];
43
+ const s = fe(o), i = it(o), r = ot(i);
44
+ let n = i === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
45
+ return e.reference[r] > e.floating[r] && (n = ue(n)), [n, ue(n)];
46
46
  }
47
- function Ct(o) {
48
- const e = pe(o);
47
+ function It(o) {
48
+ const e = ue(o);
49
49
  return [xe(o), e, xe(e)];
50
50
  }
51
51
  function xe(o) {
52
- return o.replace(/start|end/g, (e) => yt[e]);
52
+ return o.replace(/start|end/g, (e) => xt[e]);
53
53
  }
54
- const Re = ["left", "right"], Fe = ["right", "left"], St = ["top", "bottom"], Tt = ["bottom", "top"];
55
- function It(o, e, t) {
54
+ const Fe = ["left", "right"], He = ["right", "left"], Mt = ["top", "bottom"], At = ["bottom", "top"];
55
+ function Ot(o, e, t) {
56
56
  switch (o) {
57
57
  case "top":
58
58
  case "bottom":
59
- return t ? e ? Fe : Re : e ? Re : Fe;
59
+ return t ? e ? He : Fe : e ? Fe : He;
60
60
  case "left":
61
61
  case "right":
62
- return e ? St : Tt;
62
+ return e ? Mt : At;
63
63
  default:
64
64
  return [];
65
65
  }
66
66
  }
67
- function Mt(o, e, t, s) {
68
- const i = ge(o);
69
- let r = It(J(o), t === "start", s);
70
- return i && (r = r.map((a) => a + "-" + i), e && (r = r.concat(r.map(xe)))), r;
67
+ function Pt(o, e, t, s) {
68
+ const i = fe(o);
69
+ let r = Ot(J(o), t === "start", s);
70
+ return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(xe)))), r;
71
71
  }
72
- function pe(o) {
73
- return o.replace(/left|right|bottom|top/g, (e) => kt[e]);
72
+ function ue(o) {
73
+ return o.replace(/left|right|bottom|top/g, (e) => Ct[e]);
74
74
  }
75
- function Ot(o) {
75
+ function Lt(o) {
76
76
  return {
77
77
  top: 0,
78
78
  right: 0,
@@ -81,15 +81,15 @@ function Ot(o) {
81
81
  ...o
82
82
  };
83
83
  }
84
- function At(o) {
85
- return typeof o != "number" ? Ot(o) : {
84
+ function Vt(o) {
85
+ return typeof o != "number" ? Lt(o) : {
86
86
  top: o,
87
87
  right: o,
88
88
  bottom: o,
89
89
  left: o
90
90
  };
91
91
  }
92
- function ue(o) {
92
+ function be(o) {
93
93
  const {
94
94
  x: e,
95
95
  y: t,
@@ -107,12 +107,12 @@ function ue(o) {
107
107
  y: t
108
108
  };
109
109
  }
110
- function He(o, e, t) {
110
+ function Ne(o, e, t) {
111
111
  let {
112
112
  reference: s,
113
113
  floating: i
114
114
  } = o;
115
- const r = G(e), a = tt(e), n = et(a), l = J(e), c = r === "y", d = s.x + s.width / 2 - i.width / 2, p = s.y + s.height / 2 - i.height / 2, u = s[n] / 2 - i[n] / 2;
115
+ const r = G(e), n = it(e), a = ot(n), l = J(e), c = r === "y", d = s.x + s.width / 2 - i.width / 2, p = s.y + s.height / 2 - i.height / 2, u = s[a] / 2 - i[a] / 2;
116
116
  let m;
117
117
  switch (l) {
118
118
  case "top":
@@ -145,37 +145,37 @@ function He(o, e, t) {
145
145
  y: s.y
146
146
  };
147
147
  }
148
- switch (ge(e)) {
148
+ switch (fe(e)) {
149
149
  case "start":
150
- m[a] -= u * (t && c ? -1 : 1);
150
+ m[n] -= u * (t && c ? -1 : 1);
151
151
  break;
152
152
  case "end":
153
- m[a] += u * (t && c ? -1 : 1);
153
+ m[n] += u * (t && c ? -1 : 1);
154
154
  break;
155
155
  }
156
156
  return m;
157
157
  }
158
- const Pt = async (o, e, t) => {
158
+ const Et = async (o, e, t) => {
159
159
  const {
160
160
  placement: s = "bottom",
161
161
  strategy: i = "absolute",
162
162
  middleware: r = [],
163
- platform: a
164
- } = t, n = r.filter(Boolean), l = await (a.isRTL == null ? void 0 : a.isRTL(e));
165
- let c = await a.getElementRects({
163
+ platform: n
164
+ } = t, a = r.filter(Boolean), l = await (n.isRTL == null ? void 0 : n.isRTL(e));
165
+ let c = await n.getElementRects({
166
166
  reference: o,
167
167
  floating: e,
168
168
  strategy: i
169
169
  }), {
170
170
  x: d,
171
171
  y: p
172
- } = He(c, s, l), u = s, m = {}, b = 0;
173
- for (let v = 0; v < n.length; v++) {
172
+ } = Ne(c, s, l), u = s, m = {}, b = 0;
173
+ for (let v = 0; v < a.length; v++) {
174
174
  const {
175
175
  name: f,
176
176
  fn: g
177
- } = n[v], {
178
- x: _,
177
+ } = a[v], {
178
+ x: k,
179
179
  y,
180
180
  data: w,
181
181
  reset: M
@@ -187,26 +187,26 @@ const Pt = async (o, e, t) => {
187
187
  strategy: i,
188
188
  middlewareData: m,
189
189
  rects: c,
190
- platform: a,
190
+ platform: n,
191
191
  elements: {
192
192
  reference: o,
193
193
  floating: e
194
194
  }
195
195
  });
196
- d = _ ?? d, p = y ?? p, m = {
196
+ d = k ?? d, p = y ?? p, m = {
197
197
  ...m,
198
198
  [f]: {
199
199
  ...m[f],
200
200
  ...w
201
201
  }
202
- }, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (c = M.rects === !0 ? await a.getElementRects({
202
+ }, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (c = M.rects === !0 ? await n.getElementRects({
203
203
  reference: o,
204
204
  floating: e,
205
205
  strategy: i
206
206
  }) : M.rects), {
207
207
  x: d,
208
208
  y: p
209
- } = He(c, u, l)), v = -1);
209
+ } = Ne(c, u, l)), v = -1);
210
210
  }
211
211
  return {
212
212
  x: d,
@@ -216,15 +216,15 @@ const Pt = async (o, e, t) => {
216
216
  middlewareData: m
217
217
  };
218
218
  };
219
- async function st(o, e) {
219
+ async function rt(o, e) {
220
220
  var t;
221
221
  e === void 0 && (e = {});
222
222
  const {
223
223
  x: s,
224
224
  y: i,
225
225
  platform: r,
226
- rects: a,
227
- elements: n,
226
+ rects: n,
227
+ elements: a,
228
228
  strategy: l
229
229
  } = o, {
230
230
  boundary: c = "clippingAncestors",
@@ -232,28 +232,28 @@ async function st(o, e) {
232
232
  elementContext: p = "floating",
233
233
  altBoundary: u = !1,
234
234
  padding: m = 0
235
- } = be(e, o), b = At(m), f = n[u ? p === "floating" ? "reference" : "floating" : p], g = ue(await r.getClippingRect({
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(n.floating)),
235
+ } = ge(e, o), b = Vt(m), f = a[u ? p === "floating" ? "reference" : "floating" : p], g = be(await r.getClippingRect({
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: d,
239
239
  strategy: l
240
- })), _ = p === "floating" ? {
240
+ })), k = p === "floating" ? {
241
241
  x: s,
242
242
  y: i,
243
- width: a.floating.width,
244
- height: a.floating.height
245
- } : a.reference, y = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(n.floating)), w = await (r.isElement == null ? void 0 : r.isElement(y)) ? await (r.getScale == null ? void 0 : r.getScale(y)) || {
243
+ width: n.floating.width,
244
+ height: n.floating.height
245
+ } : n.reference, y = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), w = await (r.isElement == null ? void 0 : r.isElement(y)) ? await (r.getScale == null ? void 0 : r.getScale(y)) || {
246
246
  x: 1,
247
247
  y: 1
248
248
  } : {
249
249
  x: 1,
250
250
  y: 1
251
- }, M = ue(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
252
- elements: n,
253
- rect: _,
251
+ }, M = be(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
252
+ elements: a,
253
+ rect: k,
254
254
  offsetParent: y,
255
255
  strategy: l
256
- }) : _);
256
+ }) : k);
257
257
  return {
258
258
  top: (g.top - M.top + b.top) / w.y,
259
259
  bottom: (M.bottom - g.bottom + b.bottom) / w.y,
@@ -261,7 +261,7 @@ async function st(o, e) {
261
261
  right: (M.right - g.right + b.right) / w.x
262
262
  };
263
263
  }
264
- const Lt = function(o) {
264
+ const Dt = function(o) {
265
265
  return o === void 0 && (o = {}), {
266
266
  name: "flip",
267
267
  options: o,
@@ -270,8 +270,8 @@ const Lt = function(o) {
270
270
  const {
271
271
  placement: i,
272
272
  middlewareData: r,
273
- rects: a,
274
- initialPlacement: n,
273
+ rects: n,
274
+ initialPlacement: a,
275
275
  platform: l,
276
276
  elements: c
277
277
  } = e, {
@@ -282,54 +282,54 @@ const Lt = function(o) {
282
282
  fallbackAxisSideDirection: b = "none",
283
283
  flipAlignment: v = !0,
284
284
  ...f
285
- } = be(o, e);
285
+ } = ge(o, e);
286
286
  if ((t = r.arrow) != null && t.alignmentOffset)
287
287
  return {};
288
- const g = J(i), _ = G(n), y = J(n) === n, w = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = u || (y || !v ? [pe(n)] : Ct(n)), E = b !== "none";
289
- !u && E && M.push(...Mt(n, v, b, w));
290
- const j = [n, ...M], se = await st(e, f), I = [];
291
- let C = ((s = r.flip) == null ? void 0 : s.overflows) || [];
288
+ const g = J(i), k = G(a), y = J(a) === a, w = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = u || (y || !v ? [ue(a)] : It(a)), V = b !== "none";
289
+ !u && V && M.push(...Pt(a, v, b, w));
290
+ const j = [a, ...M], se = await rt(e, f), I = [];
291
+ let x = ((s = r.flip) == null ? void 0 : s.overflows) || [];
292
292
  if (d && I.push(se[g]), p) {
293
- const k = xt(i, a, w);
294
- I.push(se[k[0]], se[k[1]]);
293
+ const _ = Tt(i, n, w);
294
+ I.push(se[_[0]], se[_[1]]);
295
295
  }
296
- if (C = [...C, {
296
+ if (x = [...x, {
297
297
  placement: i,
298
298
  overflows: I
299
- }], !I.every((k) => k <= 0)) {
300
- var x, S;
301
- const k = (((x = r.flip) == null ? void 0 : x.index) || 0) + 1, P = j[k];
302
- if (P && (!(p === "alignment" ? _ !== G(P) : !1) || // We leave the current main axis only if every placement on that axis
299
+ }], !I.every((_) => _ <= 0)) {
300
+ var C, S;
301
+ const _ = (((C = r.flip) == null ? void 0 : C.index) || 0) + 1, P = j[_];
302
+ if (P && (!(p === "alignment" ? k !== G(P) : !1) || // We leave the current main axis only if every placement on that axis
303
303
  // overflows the main axis.
304
- C.every((D) => G(D.placement) === _ ? D.overflows[0] > 0 : !0)))
304
+ x.every((D) => G(D.placement) === k ? D.overflows[0] > 0 : !0)))
305
305
  return {
306
306
  data: {
307
- index: k,
308
- overflows: C
307
+ index: _,
308
+ overflows: x
309
309
  },
310
310
  reset: {
311
311
  placement: P
312
312
  }
313
313
  };
314
- let oe = (S = C.filter((q) => q.overflows[0] <= 0).sort((q, D) => q.overflows[1] - D.overflows[1])[0]) == null ? void 0 : S.placement;
314
+ let oe = (S = x.filter((q) => q.overflows[0] <= 0).sort((q, D) => q.overflows[1] - D.overflows[1])[0]) == null ? void 0 : S.placement;
315
315
  if (!oe)
316
316
  switch (m) {
317
317
  case "bestFit": {
318
- var A;
319
- const q = (A = C.filter((D) => {
320
- if (E) {
318
+ var O;
319
+ const q = (O = x.filter((D) => {
320
+ if (V) {
321
321
  const W = G(D.placement);
322
- return W === _ || // Create a bias to the `y` side axis due to horizontal
322
+ return W === k || // Create a bias to the `y` side axis due to horizontal
323
323
  // reading directions favoring greater width.
324
324
  W === "y";
325
325
  }
326
326
  return !0;
327
- }).map((D) => [D.placement, D.overflows.filter((W) => W > 0).reduce((W, ft) => W + ft, 0)]).sort((D, W) => D[1] - W[1])[0]) == null ? void 0 : A[0];
327
+ }).map((D) => [D.placement, D.overflows.filter((W) => W > 0).reduce((W, _t) => W + _t, 0)]).sort((D, W) => D[1] - W[1])[0]) == null ? void 0 : O[0];
328
328
  q && (oe = q);
329
329
  break;
330
330
  }
331
331
  case "initialPlacement":
332
- oe = n;
332
+ oe = a;
333
333
  break;
334
334
  }
335
335
  if (i !== oe)
@@ -342,13 +342,13 @@ const Lt = function(o) {
342
342
  return {};
343
343
  }
344
344
  };
345
- }, Et = /* @__PURE__ */ new Set(["left", "top"]);
346
- async function Vt(o, e) {
345
+ }, Bt = /* @__PURE__ */ new Set(["left", "top"]);
346
+ async function $t(o, e) {
347
347
  const {
348
348
  placement: t,
349
349
  platform: s,
350
350
  elements: i
351
- } = o, r = await (s.isRTL == null ? void 0 : s.isRTL(i.floating)), a = J(t), n = ge(t), l = G(t) === "y", c = Et.has(a) ? -1 : 1, d = r && l ? -1 : 1, p = be(e, o);
351
+ } = o, r = await (s.isRTL == null ? void 0 : s.isRTL(i.floating)), n = J(t), a = fe(t), l = G(t) === "y", c = Bt.has(n) ? -1 : 1, d = r && l ? -1 : 1, p = ge(e, o);
352
352
  let {
353
353
  mainAxis: u,
354
354
  crossAxis: m,
@@ -362,7 +362,7 @@ async function Vt(o, e) {
362
362
  crossAxis: p.crossAxis || 0,
363
363
  alignmentAxis: p.alignmentAxis
364
364
  };
365
- return n && typeof b == "number" && (m = n === "end" ? b * -1 : b), l ? {
365
+ return a && typeof b == "number" && (m = a === "end" ? b * -1 : b), l ? {
366
366
  x: m * d,
367
367
  y: u * c
368
368
  } : {
@@ -370,7 +370,7 @@ async function Vt(o, e) {
370
370
  y: m * d
371
371
  };
372
372
  }
373
- const Dt = function(o) {
373
+ const zt = function(o) {
374
374
  return o === void 0 && (o = 0), {
375
375
  name: "offset",
376
376
  options: o,
@@ -379,20 +379,20 @@ const Dt = function(o) {
379
379
  const {
380
380
  x: i,
381
381
  y: r,
382
- placement: a,
383
- middlewareData: n
384
- } = e, l = await Vt(e, o);
385
- return a === ((t = n.offset) == null ? void 0 : t.placement) && (s = n.arrow) != null && s.alignmentOffset ? {} : {
382
+ placement: n,
383
+ middlewareData: a
384
+ } = e, l = await $t(e, o);
385
+ return n === ((t = a.offset) == null ? void 0 : t.placement) && (s = a.arrow) != null && s.alignmentOffset ? {} : {
386
386
  x: i + l.x,
387
387
  y: r + l.y,
388
388
  data: {
389
389
  ...l,
390
- placement: a
390
+ placement: n
391
391
  }
392
392
  };
393
393
  }
394
394
  };
395
- }, zt = function(o) {
395
+ }, Rt = function(o) {
396
396
  return o === void 0 && (o = {}), {
397
397
  name: "shift",
398
398
  options: o,
@@ -403,34 +403,34 @@ const Dt = function(o) {
403
403
  placement: i
404
404
  } = e, {
405
405
  mainAxis: r = !0,
406
- crossAxis: a = !1,
407
- limiter: n = {
406
+ crossAxis: n = !1,
407
+ limiter: a = {
408
408
  fn: (f) => {
409
409
  let {
410
410
  x: g,
411
- y: _
411
+ y: k
412
412
  } = f;
413
413
  return {
414
414
  x: g,
415
- y: _
415
+ y: k
416
416
  };
417
417
  }
418
418
  },
419
419
  ...l
420
- } = be(o, e), c = {
420
+ } = ge(o, e), c = {
421
421
  x: t,
422
422
  y: s
423
- }, d = await st(e, l), p = G(J(i)), u = Qe(p);
423
+ }, d = await rt(e, l), p = G(J(i)), u = st(p);
424
424
  let m = c[u], b = c[p];
425
425
  if (r) {
426
- const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", _ = m + d[f], y = m - d[g];
427
- m = $e(_, m, y);
426
+ const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", k = m + d[f], y = m - d[g];
427
+ m = Re(k, m, y);
428
428
  }
429
- if (a) {
430
- const f = p === "y" ? "top" : "left", g = p === "y" ? "bottom" : "right", _ = b + d[f], y = b - d[g];
431
- b = $e(_, b, y);
429
+ if (n) {
430
+ const f = p === "y" ? "top" : "left", g = p === "y" ? "bottom" : "right", k = b + d[f], y = b - d[g];
431
+ b = Re(k, b, y);
432
432
  }
433
- const v = n.fn({
433
+ const v = a.fn({
434
434
  ...e,
435
435
  [u]: m,
436
436
  [p]: b
@@ -442,56 +442,56 @@ const Dt = function(o) {
442
442
  y: v.y - s,
443
443
  enabled: {
444
444
  [u]: r,
445
- [p]: a
445
+ [p]: n
446
446
  }
447
447
  }
448
448
  };
449
449
  }
450
450
  };
451
451
  };
452
- function fe() {
452
+ function ve() {
453
453
  return typeof window < "u";
454
454
  }
455
455
  function te(o) {
456
- return ot(o) ? (o.nodeName || "").toLowerCase() : "#document";
456
+ return nt(o) ? (o.nodeName || "").toLowerCase() : "#document";
457
457
  }
458
- function V(o) {
458
+ function E(o) {
459
459
  var e;
460
460
  return (o == null || (e = o.ownerDocument) == null ? void 0 : e.defaultView) || window;
461
461
  }
462
462
  function N(o) {
463
463
  var e;
464
- return (e = (ot(o) ? o.ownerDocument : o.document) || window.document) == null ? void 0 : e.documentElement;
464
+ return (e = (nt(o) ? o.ownerDocument : o.document) || window.document) == null ? void 0 : e.documentElement;
465
465
  }
466
- function ot(o) {
467
- return fe() ? o instanceof Node || o instanceof V(o).Node : !1;
466
+ function nt(o) {
467
+ return ve() ? o instanceof Node || o instanceof E(o).Node : !1;
468
468
  }
469
- function B(o) {
470
- return fe() ? o instanceof Element || o instanceof V(o).Element : !1;
469
+ function $(o) {
470
+ return ve() ? o instanceof Element || o instanceof E(o).Element : !1;
471
471
  }
472
472
  function H(o) {
473
- return fe() ? o instanceof HTMLElement || o instanceof V(o).HTMLElement : !1;
473
+ return ve() ? o instanceof HTMLElement || o instanceof E(o).HTMLElement : !1;
474
474
  }
475
- function Ne(o) {
476
- return !fe() || typeof ShadowRoot > "u" ? !1 : o instanceof ShadowRoot || o instanceof V(o).ShadowRoot;
475
+ function je(o) {
476
+ return !ve() || typeof ShadowRoot > "u" ? !1 : o instanceof ShadowRoot || o instanceof E(o).ShadowRoot;
477
477
  }
478
- const Bt = /* @__PURE__ */ new Set(["inline", "contents"]);
479
- function le(o) {
478
+ const Ft = /* @__PURE__ */ new Set(["inline", "contents"]);
479
+ function ce(o) {
480
480
  const {
481
481
  overflow: e,
482
482
  overflowX: t,
483
483
  overflowY: s,
484
484
  display: i
485
- } = $(o);
486
- return /auto|scroll|overlay|hidden|clip/.test(e + s + t) && !Bt.has(i);
485
+ } = z(o);
486
+ return /auto|scroll|overlay|hidden|clip/.test(e + s + t) && !Ft.has(i);
487
487
  }
488
- const $t = /* @__PURE__ */ new Set(["table", "td", "th"]);
489
- function Rt(o) {
490
- return $t.has(te(o));
488
+ const Ht = /* @__PURE__ */ new Set(["table", "td", "th"]);
489
+ function Nt(o) {
490
+ return Ht.has(te(o));
491
491
  }
492
- const Ft = [":popover-open", ":modal"];
493
- function ve(o) {
494
- return Ft.some((e) => {
492
+ const jt = [":popover-open", ":modal"];
493
+ function ke(o) {
494
+ return jt.some((e) => {
495
495
  try {
496
496
  return o.matches(e);
497
497
  } catch {
@@ -499,17 +499,17 @@ function ve(o) {
499
499
  }
500
500
  });
501
501
  }
502
- const Ht = ["transform", "translate", "scale", "rotate", "perspective"], Nt = ["transform", "translate", "scale", "rotate", "perspective", "filter"], jt = ["paint", "layout", "strict", "content"];
503
- function Le(o) {
504
- const e = Ee(), t = B(o) ? $(o) : o;
505
- return Ht.some((s) => t[s] ? t[s] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Nt.some((s) => (t.willChange || "").includes(s)) || jt.some((s) => (t.contain || "").includes(s));
502
+ const Wt = ["transform", "translate", "scale", "rotate", "perspective"], Ut = ["transform", "translate", "scale", "rotate", "perspective", "filter"], Gt = ["paint", "layout", "strict", "content"];
503
+ function Ve(o) {
504
+ const e = Ee(), t = $(o) ? z(o) : o;
505
+ return Wt.some((s) => t[s] ? t[s] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Ut.some((s) => (t.willChange || "").includes(s)) || Gt.some((s) => (t.contain || "").includes(s));
506
506
  }
507
- function Wt(o) {
507
+ function Kt(o) {
508
508
  let e = K(o);
509
509
  for (; H(e) && !ee(e); ) {
510
- if (Le(e))
510
+ if (Ve(e))
511
511
  return e;
512
- if (ve(e))
512
+ if (ke(e))
513
513
  return null;
514
514
  e = K(e);
515
515
  }
@@ -518,15 +518,15 @@ function Wt(o) {
518
518
  function Ee() {
519
519
  return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
520
520
  }
521
- const Ut = /* @__PURE__ */ new Set(["html", "body", "#document"]);
521
+ const qt = /* @__PURE__ */ new Set(["html", "body", "#document"]);
522
522
  function ee(o) {
523
- return Ut.has(te(o));
523
+ return qt.has(te(o));
524
524
  }
525
- function $(o) {
526
- return V(o).getComputedStyle(o);
525
+ function z(o) {
526
+ return E(o).getComputedStyle(o);
527
527
  }
528
528
  function _e(o) {
529
- return B(o) ? {
529
+ return $(o) ? {
530
530
  scrollLeft: o.scrollLeft,
531
531
  scrollTop: o.scrollTop
532
532
  } : {
@@ -541,120 +541,120 @@ function K(o) {
541
541
  // Step into the shadow DOM of the parent of a slotted node.
542
542
  o.assignedSlot || // DOM Element detected.
543
543
  o.parentNode || // ShadowRoot detected.
544
- Ne(o) && o.host || // Fallback.
544
+ je(o) && o.host || // Fallback.
545
545
  N(o)
546
546
  );
547
- return Ne(e) ? e.host : e;
547
+ return je(e) ? e.host : e;
548
548
  }
549
- function it(o) {
549
+ function at(o) {
550
550
  const e = K(o);
551
- return ee(e) ? o.ownerDocument ? o.ownerDocument.body : o.body : H(e) && le(e) ? e : it(e);
551
+ return ee(e) ? o.ownerDocument ? o.ownerDocument.body : o.body : H(e) && ce(e) ? e : at(e);
552
552
  }
553
553
  function ae(o, e, t) {
554
554
  var s;
555
555
  e === void 0 && (e = []), t === void 0 && (t = !0);
556
- const i = it(o), r = i === ((s = o.ownerDocument) == null ? void 0 : s.body), a = V(i);
556
+ const i = at(o), r = i === ((s = o.ownerDocument) == null ? void 0 : s.body), n = E(i);
557
557
  if (r) {
558
- const n = Ce(a);
559
- return e.concat(a, a.visualViewport || [], le(i) ? i : [], n && t ? ae(n) : []);
558
+ const a = Se(n);
559
+ return e.concat(n, n.visualViewport || [], ce(i) ? i : [], a && t ? ae(a) : []);
560
560
  }
561
561
  return e.concat(i, ae(i, [], t));
562
562
  }
563
- function Ce(o) {
563
+ function Se(o) {
564
564
  return o.parent && Object.getPrototypeOf(o.parent) ? o.frameElement : null;
565
565
  }
566
- function rt(o) {
567
- const e = $(o);
566
+ function lt(o) {
567
+ const e = z(o);
568
568
  let t = parseFloat(e.width) || 0, s = parseFloat(e.height) || 0;
569
- const i = H(o), r = i ? o.offsetWidth : t, a = i ? o.offsetHeight : s, n = me(t) !== r || me(s) !== a;
570
- return n && (t = r, s = a), {
569
+ const i = H(o), r = i ? o.offsetWidth : t, n = i ? o.offsetHeight : s, a = pe(t) !== r || pe(s) !== n;
570
+ return a && (t = r, s = n), {
571
571
  width: t,
572
572
  height: s,
573
- $: n
573
+ $: a
574
574
  };
575
575
  }
576
- function Ve(o) {
577
- return B(o) ? o : o.contextElement;
576
+ function De(o) {
577
+ return $(o) ? o : o.contextElement;
578
578
  }
579
579
  function Q(o) {
580
- const e = Ve(o);
580
+ const e = De(o);
581
581
  if (!H(e))
582
582
  return F(1);
583
583
  const t = e.getBoundingClientRect(), {
584
584
  width: s,
585
585
  height: i,
586
586
  $: r
587
- } = rt(e);
588
- let a = (r ? me(t.width) : t.width) / s, n = (r ? me(t.height) : t.height) / i;
589
- return (!a || !Number.isFinite(a)) && (a = 1), (!n || !Number.isFinite(n)) && (n = 1), {
590
- x: a,
591
- y: n
587
+ } = lt(e);
588
+ let n = (r ? pe(t.width) : t.width) / s, a = (r ? pe(t.height) : t.height) / i;
589
+ return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
590
+ x: n,
591
+ y: a
592
592
  };
593
593
  }
594
- const Gt = /* @__PURE__ */ F(0);
595
- function at(o) {
596
- const e = V(o);
597
- return !Ee() || !e.visualViewport ? Gt : {
594
+ const Xt = /* @__PURE__ */ F(0);
595
+ function ct(o) {
596
+ const e = E(o);
597
+ return !Ee() || !e.visualViewport ? Xt : {
598
598
  x: e.visualViewport.offsetLeft,
599
599
  y: e.visualViewport.offsetTop
600
600
  };
601
601
  }
602
- function Kt(o, e, t) {
603
- return e === void 0 && (e = !1), !t || e && t !== V(o) ? !1 : e;
602
+ function Yt(o, e, t) {
603
+ return e === void 0 && (e = !1), !t || e && t !== E(o) ? !1 : e;
604
604
  }
605
605
  function Z(o, e, t, s) {
606
606
  e === void 0 && (e = !1), t === void 0 && (t = !1);
607
- const i = o.getBoundingClientRect(), r = Ve(o);
608
- let a = F(1);
609
- e && (s ? B(s) && (a = Q(s)) : a = Q(o));
610
- const n = Kt(r, t, s) ? at(r) : F(0);
611
- let l = (i.left + n.x) / a.x, c = (i.top + n.y) / a.y, d = i.width / a.x, p = i.height / a.y;
607
+ const i = o.getBoundingClientRect(), r = De(o);
608
+ let n = F(1);
609
+ e && (s ? $(s) && (n = Q(s)) : n = Q(o));
610
+ const a = Yt(r, t, s) ? ct(r) : F(0);
611
+ let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, p = i.height / n.y;
612
612
  if (r) {
613
- const u = V(r), m = s && B(s) ? V(s) : s;
614
- let b = u, v = Ce(b);
613
+ const u = E(r), m = s && $(s) ? E(s) : s;
614
+ let b = u, v = Se(b);
615
615
  for (; v && s && m !== b; ) {
616
- const f = Q(v), g = v.getBoundingClientRect(), _ = $(v), y = g.left + (v.clientLeft + parseFloat(_.paddingLeft)) * f.x, w = g.top + (v.clientTop + parseFloat(_.paddingTop)) * f.y;
617
- l *= f.x, c *= f.y, d *= f.x, p *= f.y, l += y, c += w, b = V(v), v = Ce(b);
616
+ const f = Q(v), g = v.getBoundingClientRect(), k = z(v), y = g.left + (v.clientLeft + parseFloat(k.paddingLeft)) * f.x, w = g.top + (v.clientTop + parseFloat(k.paddingTop)) * f.y;
617
+ l *= f.x, c *= f.y, d *= f.x, p *= f.y, l += y, c += w, b = E(v), v = Se(b);
618
618
  }
619
619
  }
620
- return ue({
620
+ return be({
621
621
  width: d,
622
622
  height: p,
623
623
  x: l,
624
624
  y: c
625
625
  });
626
626
  }
627
- function ke(o, e) {
627
+ function ye(o, e) {
628
628
  const t = _e(o).scrollLeft;
629
629
  return e ? e.left + t : Z(N(o)).left + t;
630
630
  }
631
- function nt(o, e) {
632
- const t = o.getBoundingClientRect(), s = t.left + e.scrollLeft - ke(o, t), i = t.top + e.scrollTop;
631
+ function dt(o, e) {
632
+ const t = o.getBoundingClientRect(), s = t.left + e.scrollLeft - ye(o, t), i = t.top + e.scrollTop;
633
633
  return {
634
634
  x: s,
635
635
  y: i
636
636
  };
637
637
  }
638
- function qt(o) {
638
+ function Jt(o) {
639
639
  let {
640
640
  elements: e,
641
641
  rect: t,
642
642
  offsetParent: s,
643
643
  strategy: i
644
644
  } = o;
645
- const r = i === "fixed", a = N(s), n = e ? ve(e.floating) : !1;
646
- if (s === a || n && r)
645
+ const r = i === "fixed", n = N(s), a = e ? ke(e.floating) : !1;
646
+ if (s === n || a && r)
647
647
  return t;
648
648
  let l = {
649
649
  scrollLeft: 0,
650
650
  scrollTop: 0
651
651
  }, c = F(1);
652
652
  const d = F(0), p = H(s);
653
- if ((p || !p && !r) && ((te(s) !== "body" || le(a)) && (l = _e(s)), H(s))) {
653
+ if ((p || !p && !r) && ((te(s) !== "body" || ce(n)) && (l = _e(s)), H(s))) {
654
654
  const m = Z(s);
655
655
  c = Q(s), d.x = m.x + s.clientLeft, d.y = m.y + s.clientTop;
656
656
  }
657
- const u = a && !p && !r ? nt(a, l) : F(0);
657
+ const u = n && !p && !r ? dt(n, l) : F(0);
658
658
  return {
659
659
  width: t.width * c.x,
660
660
  height: t.height * c.y,
@@ -662,61 +662,61 @@ function qt(o) {
662
662
  y: t.y * c.y - l.scrollTop * c.y + d.y + u.y
663
663
  };
664
664
  }
665
- function Yt(o) {
665
+ function Zt(o) {
666
666
  return Array.from(o.getClientRects());
667
667
  }
668
- function Xt(o) {
669
- const e = N(o), t = _e(o), s = o.ownerDocument.body, i = X(e.scrollWidth, e.clientWidth, s.scrollWidth, s.clientWidth), r = X(e.scrollHeight, e.clientHeight, s.scrollHeight, s.clientHeight);
670
- let a = -t.scrollLeft + ke(o);
671
- const n = -t.scrollTop;
672
- return $(s).direction === "rtl" && (a += X(e.clientWidth, s.clientWidth) - i), {
668
+ function Qt(o) {
669
+ const e = N(o), t = _e(o), s = o.ownerDocument.body, i = Y(e.scrollWidth, e.clientWidth, s.scrollWidth, s.clientWidth), r = Y(e.scrollHeight, e.clientHeight, s.scrollHeight, s.clientHeight);
670
+ let n = -t.scrollLeft + ye(o);
671
+ const a = -t.scrollTop;
672
+ return z(s).direction === "rtl" && (n += Y(e.clientWidth, s.clientWidth) - i), {
673
673
  width: i,
674
674
  height: r,
675
- x: a,
676
- y: n
675
+ x: n,
676
+ y: a
677
677
  };
678
678
  }
679
- const je = 25;
680
- function Jt(o, e) {
681
- const t = V(o), s = N(o), i = t.visualViewport;
682
- let r = s.clientWidth, a = s.clientHeight, n = 0, l = 0;
679
+ const We = 25;
680
+ function es(o, e) {
681
+ const t = E(o), s = N(o), i = t.visualViewport;
682
+ let r = s.clientWidth, n = s.clientHeight, a = 0, l = 0;
683
683
  if (i) {
684
- r = i.width, a = i.height;
684
+ r = i.width, n = i.height;
685
685
  const d = Ee();
686
- (!d || d && e === "fixed") && (n = i.offsetLeft, l = i.offsetTop);
686
+ (!d || d && e === "fixed") && (a = i.offsetLeft, l = i.offsetTop);
687
687
  }
688
- const c = ke(s);
688
+ const c = ye(s);
689
689
  if (c <= 0) {
690
690
  const d = s.ownerDocument, p = d.body, u = getComputedStyle(p), m = d.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, b = Math.abs(s.clientWidth - p.clientWidth - m);
691
- b <= je && (r -= b);
692
- } else c <= je && (r += c);
691
+ b <= We && (r -= b);
692
+ } else c <= We && (r += c);
693
693
  return {
694
694
  width: r,
695
- height: a,
696
- x: n,
695
+ height: n,
696
+ x: a,
697
697
  y: l
698
698
  };
699
699
  }
700
- const Zt = /* @__PURE__ */ new Set(["absolute", "fixed"]);
701
- function Qt(o, e) {
702
- const t = Z(o, !0, e === "fixed"), s = t.top + o.clientTop, i = t.left + o.clientLeft, r = H(o) ? Q(o) : F(1), a = o.clientWidth * r.x, n = o.clientHeight * r.y, l = i * r.x, c = s * r.y;
700
+ const ts = /* @__PURE__ */ new Set(["absolute", "fixed"]);
701
+ function ss(o, e) {
702
+ const t = Z(o, !0, e === "fixed"), s = t.top + o.clientTop, i = t.left + o.clientLeft, r = H(o) ? Q(o) : F(1), n = o.clientWidth * r.x, a = o.clientHeight * r.y, l = i * r.x, c = s * r.y;
703
703
  return {
704
- width: a,
705
- height: n,
704
+ width: n,
705
+ height: a,
706
706
  x: l,
707
707
  y: c
708
708
  };
709
709
  }
710
- function We(o, e, t) {
710
+ function Ue(o, e, t) {
711
711
  let s;
712
712
  if (e === "viewport")
713
- s = Jt(o, t);
713
+ s = es(o, t);
714
714
  else if (e === "document")
715
- s = Xt(N(o));
716
- else if (B(e))
717
- s = Qt(e, t);
715
+ s = Qt(N(o));
716
+ else if ($(e))
717
+ s = ss(e, t);
718
718
  else {
719
- const i = at(o);
719
+ const i = ct(o);
720
720
  s = {
721
721
  x: e.x - i.x,
722
722
  y: e.y - i.y,
@@ -724,36 +724,36 @@ function We(o, e, t) {
724
724
  height: e.height
725
725
  };
726
726
  }
727
- return ue(s);
727
+ return be(s);
728
728
  }
729
- function lt(o, e) {
729
+ function ht(o, e) {
730
730
  const t = K(o);
731
- return t === e || !B(t) || ee(t) ? !1 : $(t).position === "fixed" || lt(t, e);
731
+ return t === e || !$(t) || ee(t) ? !1 : z(t).position === "fixed" || ht(t, e);
732
732
  }
733
- function es(o, e) {
733
+ function os(o, e) {
734
734
  const t = e.get(o);
735
735
  if (t)
736
736
  return t;
737
- let s = ae(o, [], !1).filter((n) => B(n) && te(n) !== "body"), i = null;
738
- const r = $(o).position === "fixed";
739
- let a = r ? K(o) : o;
740
- for (; B(a) && !ee(a); ) {
741
- const n = $(a), l = Le(a);
742
- !l && n.position === "fixed" && (i = null), (r ? !l && !i : !l && n.position === "static" && !!i && Zt.has(i.position) || le(a) && !l && lt(o, a)) ? s = s.filter((d) => d !== a) : i = n, a = K(a);
737
+ let s = ae(o, [], !1).filter((a) => $(a) && te(a) !== "body"), i = null;
738
+ const r = z(o).position === "fixed";
739
+ let n = r ? K(o) : o;
740
+ for (; $(n) && !ee(n); ) {
741
+ const a = z(n), l = Ve(n);
742
+ !l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && ts.has(i.position) || ce(n) && !l && ht(o, n)) ? s = s.filter((d) => d !== n) : i = a, n = K(n);
743
743
  }
744
744
  return e.set(o, s), s;
745
745
  }
746
- function ts(o) {
746
+ function is(o) {
747
747
  let {
748
748
  element: e,
749
749
  boundary: t,
750
750
  rootBoundary: s,
751
751
  strategy: i
752
752
  } = o;
753
- const a = [...t === "clippingAncestors" ? ve(e) ? [] : es(e, this._c) : [].concat(t), s], n = a[0], l = a.reduce((c, d) => {
754
- const p = We(e, d, i);
755
- return c.top = X(p.top, c.top), c.right = he(p.right, c.right), c.bottom = he(p.bottom, c.bottom), c.left = X(p.left, c.left), c;
756
- }, We(e, n, i));
753
+ const n = [...t === "clippingAncestors" ? ke(e) ? [] : os(e, this._c) : [].concat(t), s], a = n[0], l = n.reduce((c, d) => {
754
+ const p = Ue(e, d, i);
755
+ return c.top = Y(p.top, c.top), c.right = me(p.right, c.right), c.bottom = me(p.bottom, c.bottom), c.left = Y(p.left, c.left), c;
756
+ }, Ue(e, a, i));
757
757
  return {
758
758
  width: l.right - l.left,
759
759
  height: l.bottom - l.top,
@@ -761,73 +761,73 @@ function ts(o) {
761
761
  y: l.top
762
762
  };
763
763
  }
764
- function ss(o) {
764
+ function rs(o) {
765
765
  const {
766
766
  width: e,
767
767
  height: t
768
- } = rt(o);
768
+ } = lt(o);
769
769
  return {
770
770
  width: e,
771
771
  height: t
772
772
  };
773
773
  }
774
- function os(o, e, t) {
775
- const s = H(e), i = N(e), r = t === "fixed", a = Z(o, !0, r, e);
776
- let n = {
774
+ function ns(o, e, t) {
775
+ const s = H(e), i = N(e), r = t === "fixed", n = Z(o, !0, r, e);
776
+ let a = {
777
777
  scrollLeft: 0,
778
778
  scrollTop: 0
779
779
  };
780
780
  const l = F(0);
781
781
  function c() {
782
- l.x = ke(i);
782
+ l.x = ye(i);
783
783
  }
784
784
  if (s || !s && !r)
785
- if ((te(e) !== "body" || le(i)) && (n = _e(e)), s) {
785
+ if ((te(e) !== "body" || ce(i)) && (a = _e(e)), s) {
786
786
  const m = Z(e, !0, r, e);
787
787
  l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
788
788
  } else i && c();
789
789
  r && !s && i && c();
790
- const d = i && !s && !r ? nt(i, n) : F(0), p = a.left + n.scrollLeft - l.x - d.x, u = a.top + n.scrollTop - l.y - d.y;
790
+ const d = i && !s && !r ? dt(i, a) : F(0), p = n.left + a.scrollLeft - l.x - d.x, u = n.top + a.scrollTop - l.y - d.y;
791
791
  return {
792
792
  x: p,
793
793
  y: u,
794
- width: a.width,
795
- height: a.height
794
+ width: n.width,
795
+ height: n.height
796
796
  };
797
797
  }
798
- function ye(o) {
799
- return $(o).position === "static";
798
+ function we(o) {
799
+ return z(o).position === "static";
800
800
  }
801
- function Ue(o, e) {
802
- if (!H(o) || $(o).position === "fixed")
801
+ function Ge(o, e) {
802
+ if (!H(o) || z(o).position === "fixed")
803
803
  return null;
804
804
  if (e)
805
805
  return e(o);
806
806
  let t = o.offsetParent;
807
807
  return N(o) === t && (t = t.ownerDocument.body), t;
808
808
  }
809
- function ct(o, e) {
810
- const t = V(o);
811
- if (ve(o))
809
+ function mt(o, e) {
810
+ const t = E(o);
811
+ if (ke(o))
812
812
  return t;
813
813
  if (!H(o)) {
814
814
  let i = K(o);
815
815
  for (; i && !ee(i); ) {
816
- if (B(i) && !ye(i))
816
+ if ($(i) && !we(i))
817
817
  return i;
818
818
  i = K(i);
819
819
  }
820
820
  return t;
821
821
  }
822
- let s = Ue(o, e);
823
- for (; s && Rt(s) && ye(s); )
824
- s = Ue(s, e);
825
- return s && ee(s) && ye(s) && !Le(s) ? t : s || Wt(o) || t;
822
+ let s = Ge(o, e);
823
+ for (; s && Nt(s) && we(s); )
824
+ s = Ge(s, e);
825
+ return s && ee(s) && we(s) && !Ve(s) ? t : s || Kt(o) || t;
826
826
  }
827
- const is = async function(o) {
828
- const e = this.getOffsetParent || ct, t = this.getDimensions, s = await t(o.floating);
827
+ const as = async function(o) {
828
+ const e = this.getOffsetParent || mt, t = this.getDimensions, s = await t(o.floating);
829
829
  return {
830
- reference: os(o.reference, await e(o.floating), o.strategy),
830
+ reference: ns(o.reference, await e(o.floating), o.strategy),
831
831
  floating: {
832
832
  x: 0,
833
833
  y: 0,
@@ -836,56 +836,56 @@ const is = async function(o) {
836
836
  }
837
837
  };
838
838
  };
839
- function rs(o) {
840
- return $(o).direction === "rtl";
839
+ function ls(o) {
840
+ return z(o).direction === "rtl";
841
841
  }
842
- const dt = {
843
- convertOffsetParentRelativeRectToViewportRelativeRect: qt,
842
+ const pt = {
843
+ convertOffsetParentRelativeRectToViewportRelativeRect: Jt,
844
844
  getDocumentElement: N,
845
- getClippingRect: ts,
846
- getOffsetParent: ct,
847
- getElementRects: is,
848
- getClientRects: Yt,
849
- getDimensions: ss,
845
+ getClippingRect: is,
846
+ getOffsetParent: mt,
847
+ getElementRects: as,
848
+ getClientRects: Zt,
849
+ getDimensions: rs,
850
850
  getScale: Q,
851
- isElement: B,
852
- isRTL: rs
851
+ isElement: $,
852
+ isRTL: ls
853
853
  };
854
- function ht(o, e) {
854
+ function ut(o, e) {
855
855
  return o.x === e.x && o.y === e.y && o.width === e.width && o.height === e.height;
856
856
  }
857
- function as(o, e) {
857
+ function cs(o, e) {
858
858
  let t = null, s;
859
859
  const i = N(o);
860
860
  function r() {
861
- var n;
862
- clearTimeout(s), (n = t) == null || n.disconnect(), t = null;
861
+ var a;
862
+ clearTimeout(s), (a = t) == null || a.disconnect(), t = null;
863
863
  }
864
- function a(n, l) {
865
- n === void 0 && (n = !1), l === void 0 && (l = 1), r();
864
+ function n(a, l) {
865
+ a === void 0 && (a = !1), l === void 0 && (l = 1), r();
866
866
  const c = o.getBoundingClientRect(), {
867
867
  left: d,
868
868
  top: p,
869
869
  width: u,
870
870
  height: m
871
871
  } = c;
872
- if (n || e(), !u || !m)
872
+ if (a || e(), !u || !m)
873
873
  return;
874
- const b = ce(p), v = ce(i.clientWidth - (d + u)), f = ce(i.clientHeight - (p + m)), g = ce(d), y = {
874
+ const b = de(p), v = de(i.clientWidth - (d + u)), f = de(i.clientHeight - (p + m)), g = de(d), y = {
875
875
  rootMargin: -b + "px " + -v + "px " + -f + "px " + -g + "px",
876
- threshold: X(0, he(1, l)) || 1
876
+ threshold: Y(0, me(1, l)) || 1
877
877
  };
878
878
  let w = !0;
879
- function M(E) {
880
- const j = E[0].intersectionRatio;
879
+ function M(V) {
880
+ const j = V[0].intersectionRatio;
881
881
  if (j !== l) {
882
882
  if (!w)
883
- return a();
884
- j ? a(!1, j) : s = setTimeout(() => {
885
- a(!1, 1e-7);
883
+ return n();
884
+ j ? n(!1, j) : s = setTimeout(() => {
885
+ n(!1, 1e-7);
886
886
  }, 1e3);
887
887
  }
888
- j === 1 && !ht(c, o.getBoundingClientRect()) && a(), w = !1;
888
+ j === 1 && !ut(c, o.getBoundingClientRect()) && n(), w = !1;
889
889
  }
890
890
  try {
891
891
  t = new IntersectionObserver(M, {
@@ -898,27 +898,27 @@ function as(o, e) {
898
898
  }
899
899
  t.observe(o);
900
900
  }
901
- return a(!0), r;
901
+ return n(!0), r;
902
902
  }
903
- function Se(o, e, t, s) {
903
+ function Te(o, e, t, s) {
904
904
  s === void 0 && (s = {});
905
905
  const {
906
906
  ancestorScroll: i = !0,
907
907
  ancestorResize: r = !0,
908
- elementResize: a = typeof ResizeObserver == "function",
909
- layoutShift: n = typeof IntersectionObserver == "function",
908
+ elementResize: n = typeof ResizeObserver == "function",
909
+ layoutShift: a = typeof IntersectionObserver == "function",
910
910
  animationFrame: l = !1
911
- } = s, c = Ve(o), d = i || r ? [...c ? ae(c) : [], ...ae(e)] : [];
911
+ } = s, c = De(o), d = i || r ? [...c ? ae(c) : [], ...ae(e)] : [];
912
912
  d.forEach((g) => {
913
913
  i && g.addEventListener("scroll", t, {
914
914
  passive: !0
915
915
  }), r && g.addEventListener("resize", t);
916
916
  });
917
- const p = c && n ? as(c, t) : null;
917
+ const p = c && a ? cs(c, t) : null;
918
918
  let u = -1, m = null;
919
- a && (m = new ResizeObserver((g) => {
920
- let [_] = g;
921
- _ && _.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
919
+ n && (m = new ResizeObserver((g) => {
920
+ let [k] = g;
921
+ k && k.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
922
922
  var y;
923
923
  (y = m) == null || y.observe(e);
924
924
  })), t();
@@ -927,37 +927,37 @@ function Se(o, e, t, s) {
927
927
  l && f();
928
928
  function f() {
929
929
  const g = Z(o);
930
- v && !ht(v, g) && t(), v = g, b = requestAnimationFrame(f);
930
+ v && !ut(v, g) && t(), v = g, b = requestAnimationFrame(f);
931
931
  }
932
932
  return t(), () => {
933
933
  var g;
934
- d.forEach((_) => {
935
- i && _.removeEventListener("scroll", t), r && _.removeEventListener("resize", t);
934
+ d.forEach((k) => {
935
+ i && k.removeEventListener("scroll", t), r && k.removeEventListener("resize", t);
936
936
  }), p == null || p(), (g = m) == null || g.disconnect(), m = null, l && cancelAnimationFrame(b);
937
937
  };
938
938
  }
939
- const Te = Dt, Ie = zt, mt = Lt, Me = (o, e, t) => {
939
+ const Ie = zt, Me = Rt, bt = Dt, Ae = (o, e, t) => {
940
940
  const s = /* @__PURE__ */ new Map(), i = {
941
- platform: dt,
941
+ platform: pt,
942
942
  ...t
943
943
  }, r = {
944
944
  ...i.platform,
945
945
  _c: s
946
946
  };
947
- return Pt(o, e, {
947
+ return Et(o, e, {
948
948
  ...i,
949
949
  platform: r
950
950
  });
951
951
  };
952
- var pt = function() {
953
- }, z = "undefined", ns = typeof window !== z && typeof window.navigator !== z && /Trident\/|MSIE /.test(window.navigator.userAgent), Oe = [
952
+ var gt = function() {
953
+ }, B = "undefined", ds = typeof window !== B && typeof window.navigator !== B && /Trident\/|MSIE /.test(window.navigator.userAgent), Oe = [
954
954
  "trace",
955
955
  "debug",
956
956
  "info",
957
957
  "warn",
958
958
  "error"
959
- ], ne = {}, T = null;
960
- function Ge(o, e) {
959
+ ], le = {}, T = null;
960
+ function Ke(o, e) {
961
961
  var t = o[e];
962
962
  if (typeof t.bind == "function")
963
963
  return t.bind(o);
@@ -969,55 +969,55 @@ function Ge(o, e) {
969
969
  };
970
970
  }
971
971
  }
972
- function ls() {
972
+ function hs() {
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
- function cs(o) {
976
- return o === "debug" && (o = "log"), typeof console === z ? !1 : o === "trace" && ns ? ls : console[o] !== void 0 ? Ge(console, o) : console.log !== void 0 ? Ge(console, "log") : pt;
975
+ function ms(o) {
976
+ return o === "debug" && (o = "log"), typeof console === B ? !1 : o === "trace" && ds ? hs : console[o] !== void 0 ? Ke(console, o) : console.log !== void 0 ? Ke(console, "log") : gt;
977
977
  }
978
- function ie() {
978
+ function re() {
979
979
  for (var o = this.getLevel(), e = 0; e < Oe.length; e++) {
980
980
  var t = Oe[e];
981
- this[t] = e < o ? pt : this.methodFactory(t, o, this.name);
981
+ this[t] = e < o ? gt : this.methodFactory(t, o, this.name);
982
982
  }
983
- if (this.log = this.debug, typeof console === z && o < this.levels.SILENT)
983
+ if (this.log = this.debug, typeof console === B && o < this.levels.SILENT)
984
984
  return "No console available for logging";
985
985
  }
986
- function ds(o) {
986
+ function ps(o) {
987
987
  return function() {
988
- typeof console !== z && (ie.call(this), this[o].apply(this, arguments));
988
+ typeof console !== B && (re.call(this), this[o].apply(this, arguments));
989
989
  };
990
990
  }
991
- function hs(o, e, t) {
992
- return cs(o) || ds.apply(this, arguments);
991
+ function us(o, e, t) {
992
+ return ms(o) || ps.apply(this, arguments);
993
993
  }
994
- function ut(o, e) {
995
- var t = this, s, i, r, a = "loglevel";
996
- typeof o == "string" ? a += ":" + o : typeof o == "symbol" && (a = void 0);
997
- function n(u) {
994
+ function ft(o, e) {
995
+ var t = this, s, i, r, n = "loglevel";
996
+ typeof o == "string" ? n += ":" + o : typeof o == "symbol" && (n = void 0);
997
+ function a(u) {
998
998
  var m = (Oe[u] || "silent").toUpperCase();
999
- if (!(typeof window === z || !a)) {
999
+ if (!(typeof window === B || !n)) {
1000
1000
  try {
1001
- window.localStorage[a] = m;
1001
+ window.localStorage[n] = m;
1002
1002
  return;
1003
1003
  } catch {
1004
1004
  }
1005
1005
  try {
1006
- window.document.cookie = encodeURIComponent(a) + "=" + m + ";";
1006
+ window.document.cookie = encodeURIComponent(n) + "=" + m + ";";
1007
1007
  } catch {
1008
1008
  }
1009
1009
  }
1010
1010
  }
1011
1011
  function l() {
1012
1012
  var u;
1013
- if (!(typeof window === z || !a)) {
1013
+ if (!(typeof window === B || !n)) {
1014
1014
  try {
1015
- u = window.localStorage[a];
1015
+ u = window.localStorage[n];
1016
1016
  } catch {
1017
1017
  }
1018
- if (typeof u === z)
1018
+ if (typeof u === B)
1019
1019
  try {
1020
- var m = window.document.cookie, b = encodeURIComponent(a), v = m.indexOf(b + "=");
1020
+ var m = window.document.cookie, b = encodeURIComponent(n), v = m.indexOf(b + "=");
1021
1021
  v !== -1 && (u = /^([^;]+)/.exec(
1022
1022
  m.slice(v + b.length + 1)
1023
1023
  )[1]);
@@ -1027,13 +1027,13 @@ function ut(o, e) {
1027
1027
  }
1028
1028
  }
1029
1029
  function c() {
1030
- if (!(typeof window === z || !a)) {
1030
+ if (!(typeof window === B || !n)) {
1031
1031
  try {
1032
- window.localStorage.removeItem(a);
1032
+ window.localStorage.removeItem(n);
1033
1033
  } catch {
1034
1034
  }
1035
1035
  try {
1036
- window.document.cookie = encodeURIComponent(a) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
1036
+ window.document.cookie = encodeURIComponent(n) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
1037
1037
  } catch {
1038
1038
  }
1039
1039
  }
@@ -1051,52 +1051,52 @@ function ut(o, e) {
1051
1051
  WARN: 3,
1052
1052
  ERROR: 4,
1053
1053
  SILENT: 5
1054
- }, t.methodFactory = e || hs, t.getLevel = function() {
1054
+ }, t.methodFactory = e || us, t.getLevel = function() {
1055
1055
  return r ?? i ?? s;
1056
1056
  }, t.setLevel = function(u, m) {
1057
- return r = d(u), m !== !1 && n(r), ie.call(t);
1057
+ return r = d(u), m !== !1 && a(r), re.call(t);
1058
1058
  }, t.setDefaultLevel = function(u) {
1059
1059
  i = d(u), l() || t.setLevel(u, !1);
1060
1060
  }, t.resetLevel = function() {
1061
- r = null, c(), ie.call(t);
1061
+ r = null, c(), re.call(t);
1062
1062
  }, t.enableAll = function(u) {
1063
1063
  t.setLevel(t.levels.TRACE, u);
1064
1064
  }, t.disableAll = function(u) {
1065
1065
  t.setLevel(t.levels.SILENT, u);
1066
1066
  }, t.rebuild = function() {
1067
- if (T !== t && (s = d(T.getLevel())), ie.call(t), T === t)
1068
- for (var u in ne)
1069
- ne[u].rebuild();
1067
+ if (T !== t && (s = d(T.getLevel())), re.call(t), T === t)
1068
+ for (var u in le)
1069
+ le[u].rebuild();
1070
1070
  }, s = d(
1071
1071
  T ? T.getLevel() : "WARN"
1072
1072
  );
1073
1073
  var p = l();
1074
- p != null && (r = d(p)), ie.call(t);
1074
+ p != null && (r = d(p)), re.call(t);
1075
1075
  }
1076
- T = new ut();
1076
+ T = new ft();
1077
1077
  T.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 = ne[e];
1081
- return t || (t = ne[e] = new ut(
1080
+ var t = le[e];
1081
+ return t || (t = le[e] = new ft(
1082
1082
  e,
1083
1083
  T.methodFactory
1084
1084
  )), t;
1085
1085
  };
1086
- var ms = typeof window !== z ? window.log : void 0;
1086
+ var bs = typeof window !== B ? window.log : void 0;
1087
1087
  T.noConflict = function() {
1088
- return typeof window !== z && window.log === T && (window.log = ms), T;
1088
+ return typeof window !== B && window.log === T && (window.log = bs), T;
1089
1089
  };
1090
1090
  T.getLoggers = function() {
1091
- return ne;
1091
+ return le;
1092
1092
  };
1093
1093
  T.default = T;
1094
- var ps = function(o) {
1094
+ var gs = function(o) {
1095
1095
  for (var e = 1, t = arguments.length, s; e < t; e++)
1096
1096
  for (s in arguments[e])
1097
1097
  Object.prototype.hasOwnProperty.call(arguments[e], s) && (o[s] = arguments[e][s]);
1098
1098
  return o;
1099
- }, us = {
1099
+ }, fs = {
1100
1100
  template: "[%t] %l:",
1101
1101
  levelFormatter: function(o) {
1102
1102
  return o.toUpperCase();
@@ -1108,34 +1108,34 @@ var ps = function(o) {
1108
1108
  return o.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
1109
1109
  },
1110
1110
  format: void 0
1111
- }, bt, Y = {}, bs = function(o) {
1111
+ }, vt, X = {}, vs = function(o) {
1112
1112
  if (!o || !o.getLogger)
1113
1113
  throw new TypeError("Argument is not a root logger");
1114
- bt = o;
1115
- }, gs = function(o, e) {
1114
+ vt = o;
1115
+ }, ks = function(o, e) {
1116
1116
  if (!o || !o.setLevel)
1117
1117
  throw new TypeError("Argument is not a logger");
1118
- var t = o.methodFactory, s = o.name || "", i = Y[s] || Y[""] || us;
1119
- function r(a, n, l) {
1120
- var c = t(a, n, l), d = Y[l] || Y[""], p = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1, m = d.template.indexOf("%n") !== -1;
1118
+ var t = o.methodFactory, s = o.name || "", i = X[s] || X[""] || fs;
1119
+ function r(n, a, l) {
1120
+ var c = t(n, a, l), d = X[l] || X[""], p = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1, m = d.template.indexOf("%n") !== -1;
1121
1121
  return function() {
1122
1122
  for (var b = "", v = arguments.length, f = Array(v), g = 0; g < v; g++)
1123
1123
  f[g] = arguments[g];
1124
- if (s || !Y[l]) {
1125
- var _ = d.timestampFormatter(/* @__PURE__ */ new Date()), y = d.levelFormatter(a), w = d.nameFormatter(l);
1126
- d.format ? b += d.format(y, w, _) : (b += d.template, p && (b = b.replace(/%t/, _)), u && (b = b.replace(/%l/, y)), m && (b = b.replace(/%n/, w))), f.length && typeof f[0] == "string" ? f[0] = b + " " + f[0] : f.unshift(b);
1124
+ if (s || !X[l]) {
1125
+ var k = d.timestampFormatter(/* @__PURE__ */ new Date()), y = d.levelFormatter(n), w = d.nameFormatter(l);
1126
+ d.format ? b += d.format(y, w, k) : (b += d.template, p && (b = b.replace(/%t/, k)), u && (b = b.replace(/%l/, y)), m && (b = b.replace(/%n/, w))), f.length && typeof f[0] == "string" ? f[0] = b + " " + f[0] : f.unshift(b);
1127
1127
  }
1128
1128
  c.apply(void 0, f);
1129
1129
  };
1130
1130
  }
1131
- return Y[s] || (o.methodFactory = r), e = e || {}, e.template && (e.format = void 0), Y[s] = ps({}, i, e), o.setLevel(o.getLevel()), bt || o.warn(
1131
+ return X[s] || (o.methodFactory = r), e = e || {}, e.template && (e.format = void 0), X[s] = gs({}, i, e), o.setLevel(o.getLevel()), vt || o.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
  ), o;
1134
- }, fs = {
1135
- reg: bs,
1136
- apply: gs
1134
+ }, _s = {
1135
+ reg: vs,
1136
+ apply: ks
1137
1137
  };
1138
- const vs = {
1138
+ const ys = {
1139
1139
  debug: "#0ea5e9",
1140
1140
  // Blue
1141
1141
  info: "#10b981",
@@ -1145,39 +1145,39 @@ const vs = {
1145
1145
  error: "#ef4444"
1146
1146
  // Red
1147
1147
  };
1148
- fs.reg(T);
1149
- const _s = (o) => o.toTimeString().split(" ")[0] + "." + o.getMilliseconds().toString().padStart(3, "0"), ks = T.methodFactory;
1148
+ _s.reg(T);
1149
+ const ws = (o) => o.toTimeString().split(" ")[0] + "." + o.getMilliseconds().toString().padStart(3, "0"), Cs = T.methodFactory;
1150
1150
  T.methodFactory = function(o, e, t) {
1151
- const s = ks(o, e, t), r = `color: ${vs[o] || "#666"}; font-weight: bold;`, a = "color: inherit;";
1152
- return function(...n) {
1153
- const l = _s(/* @__PURE__ */ new Date()), c = o.toUpperCase(), d = t ? `%c[${l}]%c %c[${c}]%c %c[${t}]%c` : `%c[${l}]%c %c[${c}]%c`;
1154
- s(d, ...t ? [r, a, r, a, r, a] : [r, a, r, a], ...n);
1151
+ const s = Cs(o, e, t), r = `color: ${ys[o] || "#666"}; font-weight: bold;`, n = "color: inherit;";
1152
+ return function(...a) {
1153
+ const l = ws(/* @__PURE__ */ new Date()), c = o.toUpperCase(), d = t ? `%c[${l}]%c %c[${c}]%c %c[${t}]%c` : `%c[${l}]%c %c[${c}]%c`;
1154
+ s(d, ...t ? [r, n, r, n, r, n] : [r, n, r, n], ...a);
1155
1155
  };
1156
1156
  };
1157
1157
  typeof T.setDefaultLevel == "function" ? T.setDefaultLevel("silent") : T.setLevel("silent", !1);
1158
- const de = T.getLogger("MULTISELECT:INIT"), O = T.getLogger("MULTISELECT:DATA"), R = T.getLogger("MULTISELECT:UI"), L = T.getLogger("MULTISELECT:INTERACTION"), ys = [
1158
+ const he = T.getLogger("MULTISELECT:INIT"), A = T.getLogger("MULTISELECT:DATA"), R = T.getLogger("MULTISELECT:UI"), L = T.getLogger("MULTISELECT:INTERACTION"), xs = [
1159
1159
  "MULTISELECT:INIT",
1160
1160
  "MULTISELECT:DATA",
1161
1161
  "MULTISELECT:UI",
1162
1162
  "MULTISELECT:INTERACTION"
1163
1163
  ];
1164
- function De() {
1164
+ function Be() {
1165
1165
  typeof T.rebuild == "function" && T.rebuild();
1166
1166
  }
1167
- function ws() {
1168
- T.setLevel("debug"), De();
1167
+ function Ss() {
1168
+ T.setLevel("debug"), Be();
1169
1169
  }
1170
- function xs() {
1171
- T.setLevel("silent"), De();
1170
+ function Ts() {
1171
+ T.setLevel("silent"), Be();
1172
1172
  }
1173
- function Cs(o) {
1174
- T.setLevel(o), De();
1173
+ function Is(o) {
1174
+ T.setLevel(o), Be();
1175
1175
  }
1176
- function Ss(o, e) {
1176
+ function Ms(o, e) {
1177
1177
  const t = o.includes(":") ? o : `MULTISELECT:${o}`;
1178
1178
  T.getLogger(t).setLevel(e);
1179
1179
  }
1180
- class Ke {
1180
+ class qe {
1181
1181
  constructor(e) {
1182
1182
  h(this, "container");
1183
1183
  h(this, "wrapper");
@@ -1240,8 +1240,8 @@ class Ke {
1240
1240
  this.visibleStart = e, this.visibleEnd = t, this.onVisibleRangeChange && this.onVisibleRangeChange(e, t);
1241
1241
  let s = "";
1242
1242
  for (let i = e; i < t; i++) {
1243
- const r = this.items[i], a = this.renderItem(r, i), n = i * this.itemHeight;
1244
- s += `<div class="ms__virtual-item" style="position: absolute; top: ${n}px; left: 0; right: 0; height: ${this.itemHeight}px;" data-index="${i}">`, s += a, s += "</div>";
1243
+ const r = this.items[i], n = this.renderItem(r, i), a = i * this.itemHeight;
1244
+ s += `<div class="ms__virtual-item" style="position: absolute; top: ${a}px; left: 0; right: 0; height: ${this.itemHeight}px;" data-index="${i}">`, s += n, s += "</div>";
1245
1245
  }
1246
1246
  this.viewport.innerHTML = s;
1247
1247
  }
@@ -1299,7 +1299,7 @@ class Ke {
1299
1299
  this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
1300
1300
  }
1301
1301
  }
1302
- class Ts {
1302
+ class As {
1303
1303
  constructor(e) {
1304
1304
  h(this, "element");
1305
1305
  h(this, "trigger");
@@ -1338,17 +1338,17 @@ class Ts {
1338
1338
  }
1339
1339
  show() {
1340
1340
  var e;
1341
- (e = this.onBeforeShow) == null || e.call(this), this.visible = !0, this.element.classList.add(this.visibleClass), this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.followCursor ? this.positionAtCursor() : this.positionCleanup = Se(this.trigger, this.element, () => this.computeAt(this.trigger));
1341
+ (e = this.onBeforeShow) == null || e.call(this), this.visible = !0, this.element.classList.add(this.visibleClass), this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.followCursor ? this.positionAtCursor() : this.positionCleanup = Te(this.trigger, this.element, () => this.computeAt(this.trigger));
1342
1342
  }
1343
1343
  /** Position the tooltip relative to a reference (the trigger element or a pointer virtual element). */
1344
1344
  computeAt(e) {
1345
- Me(e, this.element, {
1345
+ Ae(e, this.element, {
1346
1346
  placement: this.placement,
1347
1347
  strategy: "fixed",
1348
1348
  middleware: [
1349
- Te(this.offsetDistance),
1350
- mt(),
1351
- Ie({ padding: 8 })
1349
+ Ie(this.offsetDistance),
1350
+ bt(),
1351
+ Me({ padding: 8 })
1352
1352
  ]
1353
1353
  }).then(({ x: t, y: s }) => {
1354
1354
  Object.assign(this.element.style, {
@@ -1384,7 +1384,7 @@ class Ts {
1384
1384
  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.handleMouseMove && this.trigger.removeEventListener("mousemove", this.handleMouseMove), this.element.remove();
1385
1385
  }
1386
1386
  }
1387
- function qe(o) {
1387
+ function Xe(o) {
1388
1388
  return {
1389
1389
  treeId: "",
1390
1390
  id: -1,
@@ -1399,32 +1399,32 @@ function qe(o) {
1399
1399
  ...o
1400
1400
  };
1401
1401
  }
1402
- const re = (o) => !o || typeof o == "string" && o.trim() === "";
1403
- function Is(o, e = ".") {
1402
+ const ne = (o) => !o || typeof o == "string" && o.trim() === "";
1403
+ function Os(o, e = ".") {
1404
1404
  if (!o || typeof o != "string") return null;
1405
1405
  const t = o.lastIndexOf(e);
1406
1406
  return t === -1 ? "" : o.substring(0, t);
1407
1407
  }
1408
1408
  function Ye(o, e, t = ".") {
1409
- return re(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
1409
+ return ne(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
1410
1410
  }
1411
- function Xe(o, e = 0, t = 1, s = ".") {
1411
+ function Je(o, e = 0, t = 1, s = ".") {
1412
1412
  return o.split(s).slice(e, e + t).join(s);
1413
1413
  }
1414
- function Ms(o, e) {
1414
+ function Ps(o, e) {
1415
1415
  return o.split(e).length;
1416
1416
  }
1417
1417
  function U(o, e) {
1418
1418
  return o[e];
1419
1419
  }
1420
- function Os(o = {}) {
1421
- const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember, a = o.hasChildrenMember, n = o.isSelectableMember, l = o.getIsSelectableCallback, c = o.treeId || "multiselect-tree", d = o.orderMember, p = o.getDisplayValueCallback, u = re(i), m = re(r), b = re(a), v = re(n), f = "x", g = o.treePathSeparator || ".", _ = qe();
1420
+ function Ls(o = {}) {
1421
+ const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember, n = o.hasChildrenMember, a = o.isSelectableMember, l = o.getIsSelectableCallback, c = o.treeId || "multiselect-tree", d = o.orderMember, p = o.getDisplayValueCallback, u = ne(i), m = ne(r), b = ne(n), v = ne(a), f = "x", g = o.treePathSeparator || ".", k = Xe();
1422
1422
  let y = 0, w = null;
1423
- const M = (I) => s ? s(I) : t ? U(I, t) : void 0, E = {
1423
+ const M = (I) => s ? s(I) : t ? U(I, t) : void 0, V = {
1424
1424
  treePathSeparator: g,
1425
- root: _,
1425
+ root: k,
1426
1426
  get tree() {
1427
- return Object.values(_.children);
1427
+ return Object.values(k.children);
1428
1428
  },
1429
1429
  /**
1430
1430
  * Every node in depth-first render order (a parent immediately precedes
@@ -1432,101 +1432,101 @@ function Os(o = {}) {
1432
1432
  */
1433
1433
  get flatNodes() {
1434
1434
  if (w) return w;
1435
- const I = [], C = o.isSorted ?? !1, x = o.sortCallback;
1436
- function S(A) {
1437
- let k = Object.values(A.children);
1438
- C && x && k.length > 0 && (k = x(k));
1439
- for (const P of k)
1435
+ const I = [], x = o.isSorted ?? !1, C = o.sortCallback;
1436
+ function S(O) {
1437
+ let _ = Object.values(O.children);
1438
+ x && C && _.length > 0 && (_ = C(_));
1439
+ for (const P of _)
1440
1440
  I.push(P), P.hasChildren && S(P);
1441
1441
  }
1442
- return S(_), w = I, I;
1442
+ return S(k), w = I, I;
1443
1443
  },
1444
1444
  insertArray(I) {
1445
- I = I || [], _.children = {}, y = 0, w = null;
1446
- const C = [];
1447
- let x = I.map((S, A) => {
1448
- const k = qe();
1449
- k.treeId = c, k.id = e ? U(S, e) : void 0;
1445
+ I = I || [], k.children = {}, y = 0, w = null;
1446
+ const x = [];
1447
+ let C = I.map((S, O) => {
1448
+ const _ = Xe();
1449
+ _.treeId = c, _.id = e ? U(S, e) : void 0;
1450
1450
  const P = M(S);
1451
- return P == null || P === "" || typeof P != "string" ? (C.push(`index ${A}`), null) : (k.path = P, (k.id === void 0 || k.id === -1) && (k.id = P), u ? k.parentPath = Is(k.path, g) : k.parentPath = U(S, i), k.pathSegment = Xe(
1452
- Ye(k.path, k.parentPath ?? "", g),
1451
+ return P == null || P === "" || typeof P != "string" ? (x.push(`index ${O}`), null) : (_.path = P, (_.id === void 0 || _.id === -1) && (_.id = P), u ? _.parentPath = Os(_.path, g) : _.parentPath = U(S, i), _.pathSegment = Je(
1452
+ Ye(_.path, _.parentPath ?? "", g),
1453
1453
  0,
1454
1454
  1,
1455
1455
  g
1456
- ), m ? k.level = Ms(k.path, g) : k.level = U(S, r), b || (k.hasChildren = U(S, a)), k.data = S, k);
1456
+ ), m ? _.level = Ps(_.path, g) : _.level = U(S, r), b || (_.hasChildren = U(S, n)), _.data = S, _);
1457
1457
  }).filter((S) => S !== null);
1458
- o.isSorted || (o.sortCallback ? x = o.sortCallback(x) : x = se(x));
1459
- for (const S of x)
1458
+ o.isSorted || (o.sortCallback ? C = o.sortCallback(C) : C = se(C));
1459
+ for (const S of C)
1460
1460
  j(S.parentPath ?? "", S);
1461
1461
  if (l || !v)
1462
- for (const S of x)
1462
+ for (const S of C)
1463
1463
  if (l)
1464
1464
  S.isSelectable = l(S) !== !1;
1465
1465
  else {
1466
- const A = U(S.data, n);
1467
- S.isSelectable = A == null ? !0 : !!A;
1466
+ const O = U(S.data, a);
1467
+ S.isSelectable = O == null ? !0 : !!O;
1468
1468
  }
1469
- C.length > 0 && console.warn(
1470
- `[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
1469
+ x.length > 0 && console.warn(
1470
+ `[ltree ${c}] ${x.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${x.slice(0, 5).join(", ")}` + (x.length > 5 ? ", …" : "")
1471
1471
  );
1472
1472
  },
1473
- getNodeByPath(I, C) {
1474
- let x = C || _;
1473
+ getNodeByPath(I, x) {
1474
+ let C = x || k;
1475
1475
  if (I) {
1476
1476
  const S = I.split(g);
1477
- for (let A = 0; A < S.length; A++) {
1478
- const k = f + S[A];
1479
- if (!x.children.hasOwnProperty(k))
1477
+ for (let O = 0; O < S.length; O++) {
1478
+ const _ = f + S[O];
1479
+ if (!C.children.hasOwnProperty(_))
1480
1480
  return null;
1481
- x = x.children[k];
1481
+ C = C.children[_];
1482
1482
  }
1483
1483
  }
1484
- return x;
1484
+ return C;
1485
1485
  }
1486
1486
  };
1487
- function j(I, C) {
1488
- const x = E.getNodeByPath(I);
1489
- if (!x)
1490
- return `Node: ${C.path} - Could not find parent node: ${I}`;
1491
- m && (C.level = (x.level || 0) + 1);
1492
- const S = f + Xe(Ye(C.path, I, g), 0, 1, g);
1493
- return x.children.hasOwnProperty(S) || (x.children[S] = C, b && !x.hasChildren && (x.hasChildren = !0), y = Math.max(y, C.level || 0)), null;
1487
+ function j(I, x) {
1488
+ const C = V.getNodeByPath(I);
1489
+ if (!C)
1490
+ return `Node: ${x.path} - Could not find parent node: ${I}`;
1491
+ m && (x.level = (C.level || 0) + 1);
1492
+ const S = f + Je(Ye(x.path, I, g), 0, 1, g);
1493
+ return C.children.hasOwnProperty(S) || (C.children[S] = x, b && !C.hasChildren && (C.hasChildren = !0), y = Math.max(y, x.level || 0)), null;
1494
1494
  }
1495
1495
  function se(I) {
1496
- return I.sort((C, x) => {
1497
- const S = C.level || 0, A = x.level || 0;
1498
- if (S !== A) return S - A;
1499
- if (C.parentPath !== x.parentPath)
1500
- return C.parentPath ? x.parentPath ? C.parentPath.localeCompare(x.parentPath) : 1 : -1;
1501
- if (d && C.data && x.data) {
1502
- const k = U(C.data, d) ?? 0, P = U(x.data, d) ?? 0;
1503
- if (k !== P) return k - P;
1496
+ return I.sort((x, C) => {
1497
+ const S = x.level || 0, O = C.level || 0;
1498
+ if (S !== O) return S - O;
1499
+ if (x.parentPath !== C.parentPath)
1500
+ return x.parentPath ? C.parentPath ? x.parentPath.localeCompare(C.parentPath) : 1 : -1;
1501
+ if (d && x.data && C.data) {
1502
+ const _ = U(x.data, d) ?? 0, P = U(C.data, d) ?? 0;
1503
+ if (_ !== P) return _ - P;
1504
1504
  }
1505
- return p ? p(C).localeCompare(p(x)) : C.path.localeCompare(x.path);
1505
+ return p ? p(x).localeCompare(p(C)) : x.path.localeCompare(C.path);
1506
1506
  });
1507
1507
  }
1508
- return E;
1508
+ return V;
1509
1509
  }
1510
- function As(o, e) {
1511
- const t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), a = (l) => {
1510
+ function Ze(o, e) {
1511
+ const t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
1512
1512
  t.set(r(l), l);
1513
1513
  const c = [];
1514
1514
  for (const p of Object.values(l.children))
1515
- c.push(...a(p));
1515
+ c.push(...n(p));
1516
1516
  let d;
1517
1517
  return c.length > 0 ? d = c : l.isSelectable !== !1 ? (d = [r(l)], i.add(l.path)) : d = [], s.set(l.path, d), d;
1518
- }, n = o.tree;
1519
- for (const l of n) a(l);
1520
- return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots: n };
1518
+ }, a = o.tree;
1519
+ for (const l of a) n(l);
1520
+ return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots: a };
1521
1521
  }
1522
- function ze(o, e, t) {
1522
+ function $e(o, e, t) {
1523
1523
  const s = o.atomsUnder.get(e.path);
1524
1524
  if (!s || s.length === 0) return "unchecked";
1525
1525
  let i = 0;
1526
1526
  for (const r of s) t.has(r) && i++;
1527
1527
  return i === 0 ? "unchecked" : i === s.length ? "checked" : "indeterminate";
1528
1528
  }
1529
- function we(o, e) {
1529
+ function ie(o, e) {
1530
1530
  const t = /* @__PURE__ */ new Set();
1531
1531
  for (const s of e) {
1532
1532
  const i = o.nodeByValue.get(String(s));
@@ -1535,36 +1535,36 @@ function we(o, e) {
1535
1535
  }
1536
1536
  return t;
1537
1537
  }
1538
- function Ps(o, e, t) {
1539
- const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r = ze(o, e, t), a = [], n = [];
1538
+ function Vs(o, e, t) {
1539
+ const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r = $e(o, e, t), n = [], a = [];
1540
1540
  if (r === "checked")
1541
- for (const l of s) i.delete(l) && n.push(l);
1541
+ for (const l of s) i.delete(l) && a.push(l);
1542
1542
  else
1543
- for (const l of s) i.has(l) || (i.add(l), a.push(l));
1544
- return { checkedAtoms: i, addedAtoms: a, removedAtoms: n };
1543
+ for (const l of s) i.has(l) || (i.add(l), n.push(l));
1544
+ return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
1545
1545
  }
1546
- function Ls(o, e, t, s) {
1547
- const i = (n) => String(s(n.data)), r = [], a = (n) => {
1548
- const l = ze(o, n, e);
1546
+ function Ce(o, e, t, s) {
1547
+ const i = (a) => String(s(a.data)), r = [], n = (a) => {
1548
+ const l = $e(o, a, e);
1549
1549
  if (l === "unchecked") return;
1550
- const c = n.isSelectable !== !1, d = Object.values(n.children);
1550
+ const c = a.isSelectable !== !1, d = Object.values(a.children);
1551
1551
  if (t === "leaves") {
1552
- o.atomPaths.has(n.path) && l === "checked" && r.push(i(n));
1553
- for (const p of d) a(p);
1552
+ o.atomPaths.has(a.path) && l === "checked" && r.push(i(a));
1553
+ for (const p of d) n(p);
1554
1554
  return;
1555
1555
  }
1556
1556
  if (t === "all") {
1557
- l === "checked" && c && r.push(i(n));
1558
- for (const p of d) a(p);
1557
+ l === "checked" && c && r.push(i(a));
1558
+ for (const p of d) n(p);
1559
1559
  return;
1560
1560
  }
1561
1561
  if (l === "checked" && c) {
1562
- r.push(i(n));
1562
+ r.push(i(a));
1563
1563
  return;
1564
1564
  }
1565
- for (const p of d) a(p);
1565
+ for (const p of d) n(p);
1566
1566
  };
1567
- for (const n of o.roots) a(n);
1567
+ for (const a of o.roots) n(a);
1568
1568
  return r;
1569
1569
  }
1570
1570
  function Es(o) {
@@ -1581,7 +1581,7 @@ function Es(o) {
1581
1581
  }
1582
1582
  return window;
1583
1583
  }
1584
- function Vs(o, e, t) {
1584
+ function Ds(o, e, t) {
1585
1585
  let s = o;
1586
1586
  for (; s && !(s === document.body || s === document.documentElement); ) {
1587
1587
  if (s instanceof Element) {
@@ -1593,13 +1593,13 @@ function Vs(o, e, t) {
1593
1593
  }
1594
1594
  return null;
1595
1595
  }
1596
- function Ds(o) {
1596
+ function Bs(o) {
1597
1597
  const e = getComputedStyle(o), t = [];
1598
1598
  e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
1599
1599
  const s = e.backdropFilter;
1600
1600
  return s && s !== "none" && t.push(`backdrop-filter: ${s}`), 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("; ");
1601
1601
  }
1602
- class zs {
1602
+ class $s {
1603
1603
  constructor(e, t = {}) {
1604
1604
  h(this, "element");
1605
1605
  h(this, "instanceId");
@@ -1832,7 +1832,7 @@ class zs {
1832
1832
  return i ? i.isSelectable !== !1 : !0;
1833
1833
  }
1834
1834
  init() {
1835
- this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), de.debug(`Initialized [${this.instanceId}] with options:`, {
1835
+ this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), he.debug(`Initialized [${this.instanceId}] with options:`, {
1836
1836
  placeholder: this.options.searchPlaceholder,
1837
1837
  totalOptions: this.allOptions.length,
1838
1838
  isCloseOnSelect: this.options.isCloseOnSelect,
@@ -1845,7 +1845,7 @@ class zs {
1845
1845
  try {
1846
1846
  this.allOptions = JSON.parse(e);
1847
1847
  } catch (t) {
1848
- O.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
1848
+ A.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
1849
1849
  }
1850
1850
  else this.options.options && (this.allOptions = this.options.options);
1851
1851
  this.filteredOptions = [...this.allOptions], this.isTreeMode() && this.buildTree();
@@ -1859,7 +1859,7 @@ class zs {
1859
1859
  }
1860
1860
  /** (Re)build the ltree from `allOptions` and derive the visible flat list. */
1861
1861
  buildTree() {
1862
- this.tree = Os({
1862
+ this.tree = Ls({
1863
1863
  idMember: this.options.valueMember,
1864
1864
  pathMember: this.options.pathMember,
1865
1865
  getPathCallback: this.options.getPathCallback,
@@ -1871,7 +1871,7 @@ class zs {
1871
1871
  treePathSeparator: this.options.treePathSeparator,
1872
1872
  treeId: this.instanceId,
1873
1873
  getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
1874
- }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? As(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
1874
+ }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Ze(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
1875
1875
  }
1876
1876
  /**
1877
1877
  * Whether cascade checkbox mode is active: a multi-select tree with
@@ -1886,7 +1886,7 @@ class zs {
1886
1886
  }
1887
1887
  /** Refresh the derived checked-atom set from the emitted `selectedValues`. */
1888
1888
  refreshCascadeAtoms() {
1889
- this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = we(this.cascadeIndex, this.selectedValues));
1889
+ this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = ie(this.cascadeIndex, this.selectedValues));
1890
1890
  }
1891
1891
  /**
1892
1892
  * Toggle a tree node in cascade mode: flip its whole subtree, re-project the
@@ -1894,7 +1894,7 @@ class zs {
1894
1894
  * so badges / form / change events reflect the policy (rolled-up branches, etc.).
1895
1895
  */
1896
1896
  toggleTreeCascade(e) {
1897
- const t = this.cascadeIndex, s = we(t, this.selectedValues), { checkedAtoms: i } = Ps(t, e, s);
1897
+ const t = this.cascadeIndex, s = ie(t, this.selectedValues), { checkedAtoms: i } = Vs(t, e, s);
1898
1898
  this.commitCascadeAtoms(i);
1899
1899
  }
1900
1900
  /**
@@ -1905,20 +1905,50 @@ class zs {
1905
1905
  */
1906
1906
  commitCascadeAtoms(e) {
1907
1907
  var l;
1908
- const t = this.cascadeIndex, s = Ls(
1908
+ const t = this.cascadeIndex, s = Ce(
1909
1909
  t,
1910
1910
  e,
1911
1911
  this.cascadePolicy(),
1912
1912
  (c) => String(this.getItemValue(c))
1913
- ), i = new Set(s), r = [], a = [];
1913
+ ), i = new Set(s), r = [], n = [];
1914
1914
  for (const [c, d] of this.selectedOptions)
1915
- i.has(c) || a.push(d);
1916
- const n = /* @__PURE__ */ new Map();
1915
+ i.has(c) || n.push(d);
1916
+ const a = /* @__PURE__ */ new Map();
1917
1917
  for (const c of s) {
1918
1918
  const p = ((l = t.nodeByValue.get(c)) == null ? void 0 : l.data) ?? this.selectedOptions.get(c);
1919
- p !== void 0 && (n.set(c, p), this.selectedValues.has(c) || r.push(p));
1919
+ p !== void 0 && (a.set(c, p), this.selectedValues.has(c) || r.push(p));
1920
1920
  }
1921
- this.selectedValues = i, this.selectedOptions = n, this.cascadeCheckedAtoms = e, this.commit({ added: r, removed: a });
1921
+ this.selectedValues = i, this.selectedOptions = a, this.cascadeCheckedAtoms = e, this.commit({ added: r, removed: n });
1922
+ }
1923
+ /**
1924
+ * The "meaningful selection" list used by the counter chip — the rolled-up
1925
+ * minimal cover, regardless of the active emit policy. In cascade mode
1926
+ * `leaves`/`all` emit many values for a single branch pick, which made the
1927
+ * counter read e.g. `[5]` for what a person experiences as two selections.
1928
+ * The counter should count the branches actually chosen, and stay stable when
1929
+ * the policy knob flips. Outside cascade this is just the selected options.
1930
+ */
1931
+ counterSelection() {
1932
+ if (this.isCascadeMode() && this.cascadeIndex) {
1933
+ const e = Ce(
1934
+ this.cascadeIndex,
1935
+ this.cascadeCheckedAtoms,
1936
+ "rolled-up",
1937
+ (s) => String(this.getItemValue(s))
1938
+ ), t = [];
1939
+ for (const s of e) {
1940
+ const i = this.cascadeIndex.nodeByValue.get(s), r = (i == null ? void 0 : i.data) ?? this.selectedOptions.get(s);
1941
+ r !== void 0 && t.push(r);
1942
+ }
1943
+ return t;
1944
+ }
1945
+ return Array.from(this.selectedOptions.values());
1946
+ }
1947
+ /** Native `title` for the counter chip: the picked items, capped so it can't grow unbounded. */
1948
+ buildCounterTooltip(e) {
1949
+ const s = e.slice(0, 12).map((i) => this.getItemBadgeDisplayValue(i));
1950
+ return e.length > 12 && s.push(`…and ${e.length - 12} more`), s.join(`
1951
+ `);
1922
1952
  }
1923
1953
  /**
1924
1954
  * Derive `treeNodes` + `filteredOptions` from the full tree, applying the
@@ -1936,13 +1966,13 @@ class zs {
1936
1966
  s = e;
1937
1967
  else {
1938
1968
  const i = this.tree.treePathSeparator, r = /* @__PURE__ */ new Set();
1939
- for (const a of e)
1940
- if (this.getItemSearchValue(a.data).toLowerCase().includes(t)) {
1941
- const l = a.path.split(i);
1969
+ for (const n of e)
1970
+ if (this.getItemSearchValue(n.data).toLowerCase().includes(t)) {
1971
+ const l = n.path.split(i);
1942
1972
  for (let c = 1; c <= l.length; c++)
1943
1973
  r.add(l.slice(0, c).join(i));
1944
1974
  }
1945
- s = e.filter((a) => r.has(a.path));
1975
+ s = e.filter((n) => r.has(n.path));
1946
1976
  }
1947
1977
  this.treeNodes = s, this.filteredOptions = s.map((i) => i.data);
1948
1978
  }
@@ -1971,32 +2001,32 @@ class zs {
1971
2001
  this.treeNodes = [], this.filteredOptions = [];
1972
2002
  return;
1973
2003
  }
1974
- const t = this.tree.flatNodes, s = this.tree.treePathSeparator, i = new Set((e || []).map((n) => String(this.getItemValue(n)))), r = /* @__PURE__ */ new Set();
1975
- for (const n of t)
1976
- if (i.has(String(this.getItemValue(n.data)))) {
1977
- const l = n.path.split(s);
2004
+ const t = this.tree.flatNodes, s = this.tree.treePathSeparator, i = new Set((e || []).map((a) => String(this.getItemValue(a)))), r = /* @__PURE__ */ new Set();
2005
+ for (const a of t)
2006
+ if (i.has(String(this.getItemValue(a.data)))) {
2007
+ const l = a.path.split(s);
1978
2008
  for (let c = 1; c <= l.length; c++)
1979
2009
  r.add(l.slice(0, c).join(s));
1980
2010
  }
1981
- const a = t.filter((n) => r.has(n.path));
1982
- this.treeNodes = a, this.filteredOptions = a.map((n) => n.data);
2011
+ const n = t.filter((a) => r.has(a.path));
2012
+ this.treeNodes = n, this.filteredOptions = n.map((a) => a.data);
1983
2013
  }
1984
2014
  buildHTML() {
1985
2015
  const e = this.options.container || document.body, t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t.host : this.element, i = s.getAttribute("dir") === "rtl", r = s.closest('[dir="rtl"]') !== null;
1986
- this.isRTL = i || r, de.debug(`[${this.instanceId}] RTL Debug:`, {
2016
+ this.isRTL = i || r, he.debug(`[${this.instanceId}] RTL Debug:`, {
1987
2017
  isShadowRoot: t instanceof ShadowRoot,
1988
2018
  hostElement: s,
1989
2019
  elementDir: s.getAttribute("dir"),
1990
2020
  hasElementDir: i,
1991
2021
  hasAncestorDir: r,
1992
2022
  isRTL: this.isRTL
1993
- }), this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left")), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), de.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes");
1994
- const a = document.createElement("div");
1995
- a.className = "ms__input-wrapper", this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
1996
- const n = document.createElement("span");
1997
- n.className = "ms__toggle", n.innerHTML = "▼", this.counter = document.createElement("span"), this.counter.className = "ms__counter", this.counter.style.display = "none", a.appendChild(this.input), a.appendChild(this.counter), a.appendChild(n), this.badgesContainer = document.createElement("div"), this.badgesContainer.className = "ms__badges";
2023
+ }), this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left")), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), he.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes");
2024
+ const n = document.createElement("div");
2025
+ n.className = "ms__input-wrapper", this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
2026
+ const a = document.createElement("span");
2027
+ a.className = "ms__toggle", a.innerHTML = "▼", this.counter = document.createElement("span"), this.counter.className = "ms__counter", this.counter.style.display = "none", n.appendChild(this.input), n.appendChild(this.counter), n.appendChild(a), this.badgesContainer = document.createElement("div"), this.badgesContainer.className = "ms__badges";
1998
2028
  const l = document.createElement("div");
1999
- l.className = "ms__wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ms__wrapper--inline"), l.appendChild(a), l.appendChild(this.badgesContainer), this.element.appendChild(l), this.dropdown = document.createElement("div"), this.dropdown.className = "ms__dropdown", this.dropdownInner = document.createElement("div"), this.dropdownInner.className = "ms__dropdown-inner", this.dropdown.appendChild(this.dropdownInner), e.appendChild(this.dropdown), this.options.searchHint && (this.hint = document.createElement("div"), this.hint.className = "ms__hint", this.hint.textContent = this.options.searchHint, e.appendChild(this.hint)), this.selectedPopover = document.createElement("div"), this.selectedPopover.className = "ms__selected-popover", e.appendChild(this.selectedPopover), this.renderDropdown();
2029
+ l.className = "ms__wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ms__wrapper--inline"), l.appendChild(n), l.appendChild(this.badgesContainer), this.element.appendChild(l), this.dropdown = document.createElement("div"), this.dropdown.className = "ms__dropdown", this.dropdownInner = document.createElement("div"), this.dropdownInner.className = "ms__dropdown-inner", this.dropdown.appendChild(this.dropdownInner), e.appendChild(this.dropdown), this.options.searchHint && (this.hint = document.createElement("div"), this.hint.className = "ms__hint", this.hint.textContent = this.options.searchHint, e.appendChild(this.hint)), this.selectedPopover = document.createElement("div"), this.selectedPopover.className = "ms__selected-popover", e.appendChild(this.selectedPopover), this.renderDropdown();
2000
2030
  }
2001
2031
  /**
2002
2032
  * Check if virtual scroll should be used
@@ -2040,19 +2070,19 @@ class zs {
2040
2070
  });
2041
2071
  else if (this.options.isGroupsAllowed) {
2042
2072
  const i = this.groupOptions(this.filteredOptions), r = /* @__PURE__ */ new Map();
2043
- this.filteredOptions.forEach((a, n) => r.set(a, n)), Object.keys(i).forEach((a) => {
2044
- if (e += '<div class="ms__group">', a !== "__ungrouped__")
2073
+ this.filteredOptions.forEach((n, a) => r.set(n, a)), Object.keys(i).forEach((n) => {
2074
+ if (e += '<div class="ms__group">', n !== "__ungrouped__")
2045
2075
  if (this.options.renderGroupLabelContentCallback) {
2046
- const n = this.options.renderGroupLabelContentCallback(a);
2047
- if (n instanceof HTMLElement) {
2076
+ const a = this.options.renderGroupLabelContentCallback(n);
2077
+ if (a instanceof HTMLElement) {
2048
2078
  const l = document.createElement("div");
2049
- l.className = "ms__group-label", l.appendChild(n), e += l.outerHTML;
2079
+ l.className = "ms__group-label", l.appendChild(a), e += l.outerHTML;
2050
2080
  } else
2051
- e += `<div class="ms__group-label">${n}</div>`;
2081
+ e += `<div class="ms__group-label">${a}</div>`;
2052
2082
  } else
2053
- e += `<div class="ms__group-label">${a}</div>`;
2054
- i[a].forEach((n) => {
2055
- e += this.renderOption(n, r.get(n) ?? -1);
2083
+ e += `<div class="ms__group-label">${n}</div>`;
2084
+ i[n].forEach((a) => {
2085
+ e += this.renderOption(a, r.get(a) ?? -1);
2056
2086
  }), e += "</div>";
2057
2087
  });
2058
2088
  } else
@@ -2069,8 +2099,8 @@ class zs {
2069
2099
  let s = "";
2070
2100
  const i = this.renderActionsHTML(), r = this.options.actionsPosition === "bottom";
2071
2101
  r || (s += i);
2072
- const a = this.options.maxHeight || "20rem", n = this.options.optionHeight ?? 50;
2073
- s += `<div class="ms__options ms__options--virtual" style="height: ${a}; max-height: ${a}; overflow-y: auto; position: relative; --ms-option-height: ${n}px;"></div>`, r && (s += i), this.dropdownInner.innerHTML = s, this.optionsContainer = this.dropdownInner.querySelector(".ms__options");
2102
+ const n = this.options.maxHeight || "20rem", a = this.options.optionHeight ?? 50;
2103
+ s += `<div class="ms__options ms__options--virtual" style="height: ${n}; max-height: ${n}; overflow-y: auto; position: relative; --ms-option-height: ${a}px;"></div>`, r && (s += i), this.dropdownInner.innerHTML = s, this.optionsContainer = this.dropdownInner.querySelector(".ms__options");
2074
2104
  }
2075
2105
  if (this.filteredOptions.length === 0) {
2076
2106
  this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.optionsContainer.innerHTML = `<div class="ms__empty">${this.options.emptyMessage}</div>`;
@@ -2078,7 +2108,7 @@ class zs {
2078
2108
  }
2079
2109
  const e = this.options.optionHeight ?? 50, t = this.options.virtualScrollBuffer ?? 10;
2080
2110
  requestAnimationFrame(() => {
2081
- this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new Ke({
2111
+ this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new qe({
2082
2112
  container: this.optionsContainer,
2083
2113
  itemHeight: e,
2084
2114
  items: this.filteredOptions,
@@ -2107,7 +2137,7 @@ class zs {
2107
2137
  renderActionsHTML() {
2108
2138
  const e = this.options.actionButtons;
2109
2139
  if (!this.options.isMultipleEnabled || !e || e.length === 0) return "";
2110
- const t = this.options.actionsPosition === "bottom" ? "bottom" : "top", s = this.options.actionsAlign ?? "stretch", i = ` ms__actions--${t}`, r = this.options.isActionsSticky ? " ms__actions--sticky" : "", a = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "", n = ` ms__actions--align-${s}`, l = /* @__PURE__ */ new Map();
2140
+ const t = this.options.actionsPosition === "bottom" ? "bottom" : "top", s = this.options.actionsAlign ?? "stretch", i = ` ms__actions--${t}`, r = this.options.isActionsSticky ? " ms__actions--sticky" : "", n = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "", a = ` ms__actions--align-${s}`, l = /* @__PURE__ */ new Map();
2111
2141
  if (e.forEach((d, p) => {
2112
2142
  if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
2113
2143
  let m;
@@ -2118,28 +2148,29 @@ class zs {
2118
2148
  const y = d.getClassCallback(this);
2119
2149
  f = Array.isArray(y) ? ` ${y.join(" ")}` : y ? ` ${y}` : "";
2120
2150
  } else d.cssClass && (f = ` ${d.cssClass}`);
2121
- const g = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${b} class="ms__action-btn${f}" data-action="${d.action}" data-button-index="${p}">${v}</button>`;
2122
- l.has(g) || l.set(g, []), l.get(g).push(_);
2151
+ const g = Math.max(1, Math.floor(d.row ?? 1)), k = `<button type="button"${b} class="ms__action-btn${f}" data-action="${d.action}" data-button-index="${p}">${v}</button>`;
2152
+ l.has(g) || l.set(g, []), l.get(g).push(k);
2123
2153
  }), l.size === 0) return "";
2124
2154
  const c = Array.from(l.keys()).sort((d, p) => d - p).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
2125
- return `<div class="ms__actions${i}${r}${a}${n}">${c}</div>`;
2155
+ return `<div class="ms__actions${i}${r}${n}${a}">${c}</div>`;
2126
2156
  }
2127
2157
  renderOption(e, t) {
2128
- const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), a = this.getItemSubtitle(e), n = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), p = ["ms__option"];
2129
- l && p.push("ms__option--selected"), c && p.push("ms__option--focused"), d && p.push("ms__option--matched"), n && p.push("ms__option--disabled");
2158
+ const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), n = this.getItemSubtitle(e), a = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), p = ["ms__option"];
2159
+ l && p.push("ms__option--selected"), c && p.push("ms__option--focused"), d && p.push("ms__option--matched"), a && p.push("ms__option--disabled");
2130
2160
  const u = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
2131
2161
  let m = `<div class="${p.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
2132
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${n ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
2162
+ if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${a ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
2133
2163
  const b = {
2134
2164
  index: t,
2135
2165
  isSelected: l,
2136
2166
  isFocused: c,
2137
2167
  isMatched: d,
2138
- isDisabled: n
2168
+ isDisabled: a,
2169
+ isTreeNode: !1
2139
2170
  }, v = this.options.renderOptionContentCallback(e, b);
2140
2171
  typeof v == "string" ? m += v : m += v.outerHTML;
2141
2172
  } else
2142
- r && (m += `<span class="ms__option-icon">${r}</span>`), m += '<div class="ms__option-text">', m += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, a && (m += `<div class="ms__option-subtitle">${a}</div>`), m += "</div>";
2173
+ r && (m += `<span class="ms__option-icon">${r}</span>`), m += '<div class="ms__option-text">', m += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, n && (m += `<div class="ms__option-subtitle">${n}</div>`), m += "</div>";
2143
2174
  return m += "</div>", m += "</div>", m;
2144
2175
  }
2145
2176
  /**
@@ -2150,21 +2181,32 @@ class zs {
2150
2181
  * chevron/toggle — every node is just a normal, selectable option.
2151
2182
  */
2152
2183
  renderTreeNode(e, t) {
2153
- const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), a = this.getItemIcon(s), n = this.getItemSubtitle(s), l = this.getItemDisabled(s), c = this.isCascadeMode() && this.cascadeIndex, d = c ? ze(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, p = c ? d === "checked" : this.selectedValues.has(String(i)), u = d === "indeterminate", m = t === this.focusedIndex, b = e.isSelectable !== !1, v = e.level ?? 1, f = Math.max(0, v - 1), g = ["ms__option", "ms__option--tree"];
2184
+ const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), n = this.getItemIcon(s), a = this.getItemSubtitle(s), l = this.getItemDisabled(s), c = this.isCascadeMode() && this.cascadeIndex, d = c ? $e(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, p = c ? d === "checked" : this.selectedValues.has(String(i)), u = d === "indeterminate", m = t === this.focusedIndex, b = e.isSelectable !== !1, v = e.level ?? 1, f = Math.max(0, v - 1), g = ["ms__option", "ms__option--tree"];
2154
2185
  g.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), p && g.push("ms__option--selected"), u && g.push("ms__option--indeterminate"), m && g.push("ms__option--focused"), l && g.push("ms__option--disabled"), b || g.push("ms__option--tree-unselectable");
2155
- const _ = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", y = b ? "" : ' data-selectable="false"';
2156
- let w = `<div class="${g.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${v}" style="--ms-tree-depth: ${f};"${_}${y}>`;
2186
+ const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", y = b ? "" : ' data-selectable="false"';
2187
+ let w = `<div class="${g.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${v}" style="--ms-tree-depth: ${f};"${k}${y}>`;
2157
2188
  if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (w += `<input type="checkbox" class="${u ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${p ? "checked" : ""}${u ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), w += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
2158
2189
  const M = {
2159
2190
  index: t,
2160
2191
  isSelected: p,
2161
2192
  isFocused: m,
2162
2193
  isMatched: !1,
2163
- isDisabled: l
2164
- }, E = this.options.renderOptionContentCallback(s, M);
2165
- w += typeof E == "string" ? E : E.outerHTML;
2194
+ isDisabled: l,
2195
+ // Tree metadata lets the callback branch on depth / branch-vs-leaf /
2196
+ // tristate without re-deriving any of it from the raw data item.
2197
+ isTreeNode: !0,
2198
+ isBranch: e.hasChildren,
2199
+ isLeaf: !e.hasChildren,
2200
+ childCount: Object.keys(e.children).length,
2201
+ level: v,
2202
+ depth: f,
2203
+ path: e.path,
2204
+ isSelectable: b,
2205
+ isIndeterminate: u
2206
+ }, V = this.options.renderOptionContentCallback(s, M);
2207
+ w += typeof V == "string" ? V : V.outerHTML;
2166
2208
  } else
2167
- a && (w += `<span class="ms__option-icon">${a}</span>`), w += '<div class="ms__option-text">', w += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, n && (w += `<div class="ms__option-subtitle">${n}</div>`), w += "</div>";
2209
+ n && (w += `<span class="ms__option-icon">${n}</span>`), w += '<div class="ms__option-text">', w += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, a && (w += `<div class="ms__option-subtitle">${a}</div>`), w += "</div>";
2168
2210
  return w += "</div>", w += "</div>", w;
2169
2211
  }
2170
2212
  highlightMatch(e, t) {
@@ -2207,7 +2249,12 @@ class zs {
2207
2249
  this.input.placeholder = r;
2208
2250
  } else
2209
2251
  this.input.placeholder = this.getPlaceholderText();
2210
- if (this.options.isCounterShown && t > 0 ? (this.counter.textContent = `[${t}]`, this.counter.style.display = "") : this.counter.style.display = "none", s === "none") {
2252
+ if (this.options.isCounterShown && t > 0) {
2253
+ const r = this.counterSelection(), n = r.length;
2254
+ this.counter.textContent = `[${n}]`, this.counter.title = this.buildCounterTooltip(r), this.counter.style.display = n > 0 ? "" : "none";
2255
+ } else
2256
+ this.counter.title = "", this.counter.style.display = "none";
2257
+ if (s === "none") {
2211
2258
  this.badgesContainer.innerHTML = "";
2212
2259
  return;
2213
2260
  }
@@ -2215,21 +2262,21 @@ class zs {
2215
2262
  this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((r) => this.renderBadgeHTML(r, { displayMode: "badges", isInPopover: !1 })).join("");
2216
2263
  else if (s === "partial") {
2217
2264
  this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`;
2218
- const r = this.options.badgesMaxVisible || 3, a = e.slice(0, r), n = t - r, l = a.map((d) => this.renderBadgeHTML(d, { displayMode: "partial", isInPopover: !1 })).join("");
2265
+ const r = this.options.badgesMaxVisible || 3, n = e.slice(0, r), a = t - r, l = n.map((d) => this.renderBadgeHTML(d, { displayMode: "partial", isInPopover: !1 })).join("");
2219
2266
  let c = "";
2220
- n > 0 && (c = `
2267
+ a > 0 && (c = `
2221
2268
  <div class="ms__badge ms__badge--counter ms__badge--more" data-action="show-selected">
2222
- <span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`}</span>
2223
- <button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${n} hidden items"></button>
2269
+ <span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, a) : `+${a} more`}</span>
2270
+ <button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${a} hidden items"></button>
2224
2271
  </div>
2225
2272
  `), this.badgesContainer.innerHTML = l + c;
2226
2273
  } else if (s === "compact")
2227
2274
  if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
2228
- const r = e[0], a = this.getItemBadgeDisplayValue(r), n = t - 1;
2229
- let l = a;
2230
- if (n > 0) {
2231
- const c = this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`;
2232
- l = `${a} (${c})`;
2275
+ const r = e[0], n = this.getItemBadgeDisplayValue(r), a = t - 1;
2276
+ let l = n;
2277
+ if (a > 0) {
2278
+ const c = this.options.getCounterCallback ? this.options.getCounterCallback(t, a) : `+${a} more`;
2279
+ l = `${n} (${c})`;
2233
2280
  }
2234
2281
  this.badgesContainer.innerHTML = `
2235
2282
  <div class="ms__badge" data-action="show-selected">
@@ -2285,14 +2332,14 @@ class zs {
2285
2332
  if (this.options.beforeSearchCallback) {
2286
2333
  const s = this.options.beforeSearchCallback(e);
2287
2334
  if (s === null) {
2288
- O.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.abortInFlightSearch(), this.matchingIndices.clear(), this.isTreeMode() ? (this.searchTerm = "", this.rebuildTreeVisible()) : this.filteredOptions = [...this.allOptions], this.renderDropdown();
2335
+ A.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.abortInFlightSearch(), this.matchingIndices.clear(), this.isTreeMode() ? (this.searchTerm = "", this.rebuildTreeVisible()) : this.filteredOptions = [...this.allOptions], this.renderDropdown();
2289
2336
  return;
2290
2337
  }
2291
- t = s, t !== e && O.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
2338
+ t = s, t !== e && A.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
2292
2339
  }
2293
2340
  if (this.options.searchCallback) {
2294
2341
  if (t.length < this.options.minSearchLength) {
2295
- this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions], O.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
2342
+ this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions], A.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
2296
2343
  return;
2297
2344
  }
2298
2345
  this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0);
@@ -2310,13 +2357,13 @@ class zs {
2310
2357
  else {
2311
2358
  const s = this.options.searchMode || "filter", i = t.toLowerCase();
2312
2359
  if (s === "filter")
2313
- this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, O.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
2360
+ this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, A.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
2314
2361
  else {
2315
2362
  this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
2316
2363
  let r = -1;
2317
- this.allOptions.forEach((a, n) => {
2318
- this.getItemSearchValue(a).toLowerCase().includes(i) && (this.matchingIndices.add(n), r === -1 && (r = n));
2319
- }), r >= 0 ? (this.focusedIndex = r, O.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : O.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
2364
+ this.allOptions.forEach((n, a) => {
2365
+ this.getItemSearchValue(n).toLowerCase().includes(i) && (this.matchingIndices.add(a), r === -1 && (r = a));
2366
+ }), r >= 0 ? (this.focusedIndex = r, A.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : A.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
2320
2367
  }
2321
2368
  }
2322
2369
  this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused();
@@ -2340,15 +2387,15 @@ class zs {
2340
2387
  async performAsyncSearch(e, t) {
2341
2388
  this.abortInFlightSearch();
2342
2389
  const s = new AbortController();
2343
- this.searchAbortController = s, this.isLoading = !0, this.renderDropdown(), O.debug(`[${this.instanceId}] Loading data for search term:`, t);
2390
+ this.searchAbortController = s, this.isLoading = !0, this.renderDropdown(), A.debug(`[${this.instanceId}] Loading data for search term:`, t);
2344
2391
  try {
2345
2392
  const i = await this.options.searchCallback(t, s.signal);
2346
2393
  if (s.signal.aborted || this.searchTerm !== e) return;
2347
2394
  const r = i || [];
2348
- this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), O.debug(`[${this.instanceId}] Loaded ${r.length} results`);
2395
+ this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), A.debug(`[${this.instanceId}] Loaded ${r.length} results`);
2349
2396
  } catch (i) {
2350
2397
  if (s.signal.aborted) return;
2351
- O.error(`[${this.instanceId}] Error loading data:`, i), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions] : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
2398
+ A.error(`[${this.instanceId}] Error loading data:`, i), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions] : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
2352
2399
  } finally {
2353
2400
  this.searchAbortController === s && (this.searchAbortController = void 0);
2354
2401
  }
@@ -2407,21 +2454,21 @@ class zs {
2407
2454
  else if (r === "clear-all")
2408
2455
  this.clearAll();
2409
2456
  else if (r === "custom") {
2410
- const a = parseInt(t.dataset.buttonIndex || "-1"), n = (i = this.options.actionButtons) == null ? void 0 : i[a];
2411
- n != null && n.onClick && n.onClick(this);
2457
+ const n = parseInt(t.dataset.buttonIndex || "-1"), a = (i = this.options.actionButtons) == null ? void 0 : i[n];
2458
+ a != null && a.onClick && a.onClick(this);
2412
2459
  }
2413
2460
  return;
2414
2461
  }
2415
2462
  const s = e.target.closest(".ms__option");
2416
2463
  if (s && !s.classList.contains("ms__option--disabled")) {
2417
2464
  e.preventDefault();
2418
- const r = s.dataset.value, a = this.filteredOptions.findIndex((n) => String(this.getItemValue(n)) === r);
2465
+ const r = s.dataset.value, n = this.filteredOptions.findIndex((a) => String(this.getItemValue(a)) === r);
2419
2466
  L.debug(`[${this.instanceId}] Option clicked:`, {
2420
2467
  value: r,
2421
- optionIndex: a,
2468
+ optionIndex: n,
2422
2469
  closeOnSelect: this.options.isCloseOnSelect,
2423
2470
  placeholder: this.options.searchPlaceholder
2424
- }), a >= 0 && (this.focusedIndex = a, this.toggleOption(this.filteredOptions[a]), this.isOpen && this.input.focus());
2471
+ }), n >= 0 && (this.focusedIndex = n, this.toggleOption(this.filteredOptions[n]), this.isOpen && this.input.focus());
2425
2472
  }
2426
2473
  }
2427
2474
  handleBadgeClick(e) {
@@ -2441,8 +2488,8 @@ class zs {
2441
2488
  Array.from(this.selectedOptions.values()).slice(l).forEach((p) => this.interactiveDeselect(p));
2442
2489
  return;
2443
2490
  }
2444
- const a = i.dataset.value, n = this.selectedOptions.get(a);
2445
- n && this.interactiveDeselect(n);
2491
+ const n = i.dataset.value, a = this.selectedOptions.get(n);
2492
+ a && this.interactiveDeselect(a);
2446
2493
  return;
2447
2494
  }
2448
2495
  if (e.target.closest(".ms__badge--more") && !e.target.closest(".ms__badge-remove")) {
@@ -2454,7 +2501,7 @@ class zs {
2454
2501
  var i;
2455
2502
  const t = e.composedPath();
2456
2503
  if (this.showSelectedPopover && !t.some(
2457
- (a) => a instanceof Node && (this.selectedPopover.contains(a) || this.counter.contains(a) || a.closest && a.closest('[data-action="show-selected"]'))
2504
+ (n) => n instanceof Node && (this.selectedPopover.contains(n) || this.counter.contains(n) || n.closest && n.closest('[data-action="show-selected"]'))
2458
2505
  )) {
2459
2506
  R.debug(`[${this.instanceId}] Closing selected popover due to click outside`), this.hideSelectedPopover();
2460
2507
  return;
@@ -2547,9 +2594,9 @@ class zs {
2547
2594
  }
2548
2595
  const t = this.getItemValue(e), s = String(t);
2549
2596
  if (L.debug(`[${this.instanceId}] toggleOption called`, { value: t, multiple: this.options.isMultipleEnabled }), this.isCascadeMode() && this.cascadeIndex) {
2550
- const a = this.cascadeIndex.nodeByValue.get(s);
2551
- if (a) {
2552
- this.toggleTreeCascade(a), this.options.isCloseOnSelect && this.close();
2597
+ const n = this.cascadeIndex.nodeByValue.get(s);
2598
+ if (n) {
2599
+ this.toggleTreeCascade(n), this.options.isCloseOnSelect && this.close();
2553
2600
  return;
2554
2601
  }
2555
2602
  }
@@ -2579,11 +2626,11 @@ class zs {
2579
2626
  async handleAddNew(e) {
2580
2627
  if (this.options.addNewCallback)
2581
2628
  try {
2582
- O.debug(`[${this.instanceId}] Adding new option:`, e);
2629
+ A.debug(`[${this.instanceId}] Adding new option:`, e);
2583
2630
  const t = await this.options.addNewCallback(e);
2584
2631
  this.allOptions.push(t), this.filteredOptions.push(t), this.selectOption(t), this.input.value = "", this.renderDropdown(), this.renderBadges(), this.options.isCloseOnSelect && this.close();
2585
2632
  } catch (t) {
2586
- O.error(`[${this.instanceId}] Error adding new option:`, t);
2633
+ A.error(`[${this.instanceId}] Error adding new option:`, t);
2587
2634
  }
2588
2635
  }
2589
2636
  selectOption(e) {
@@ -2592,11 +2639,20 @@ class zs {
2592
2639
  }
2593
2640
  deselectOption(e) {
2594
2641
  const t = this.getItemValue(e), s = String(t);
2642
+ if (this.isCascadeMode() && this.cascadeIndex) {
2643
+ const i = this.cascadeIndex.nodeByValue.get(s);
2644
+ if (i) {
2645
+ const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(ie(this.cascadeIndex, this.selectedValues));
2646
+ for (const a of r) n.delete(a);
2647
+ this.commitCascadeAtoms(n);
2648
+ return;
2649
+ }
2650
+ }
2595
2651
  this.selectedValues.delete(s), this.selectedOptions.delete(s), this.commit({ removed: [e] });
2596
2652
  }
2597
2653
  selectAll() {
2598
2654
  if (this.isCascadeMode() && this.cascadeIndex) {
2599
- const t = this.cascadeIndex, s = new Set(we(t, this.selectedValues));
2655
+ const t = this.cascadeIndex, s = new Set(ie(t, this.selectedValues));
2600
2656
  for (const i of this.treeNodes)
2601
2657
  t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || s.add(String(this.getItemValue(i.data))));
2602
2658
  this.commitCascadeAtoms(s);
@@ -2638,18 +2694,18 @@ class zs {
2638
2694
  */
2639
2695
  anchorFloatingPanel(e, t) {
2640
2696
  const s = {
2641
- ...dt,
2697
+ ...pt,
2642
2698
  getOffsetParent: () => Es(this.input)
2643
2699
  };
2644
- return Se(this.input, e, () => {
2700
+ return Te(this.input, e, () => {
2645
2701
  var l;
2646
- 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);
2647
- const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), a = i && r ? r : "bottom-start", n = [
2648
- Te(4),
2649
- ...i && r ? [] : [mt()],
2650
- Ie({ padding: 8 })
2702
+ (this.options.hostElement ?? this.element).style.setProperty("--ms-input-current-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);
2703
+ const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), n = i && r ? r : "bottom-start", a = [
2704
+ Ie(4),
2705
+ ...i && r ? [] : [bt()],
2706
+ Me({ padding: 8 })
2651
2707
  ];
2652
- Me(this.input, e, { placement: a, strategy: "fixed", middleware: n, platform: s }).then(({ x: c, y: d, placement: p }) => {
2708
+ Ae(this.input, e, { placement: n, strategy: "fixed", middleware: a, platform: s }).then(({ x: c, y: d, placement: p }) => {
2653
2709
  var u;
2654
2710
  r || t.setPlacement(p), Object.assign(e.style, {
2655
2711
  position: "fixed",
@@ -2672,12 +2728,12 @@ class zs {
2672
2728
  */
2673
2729
  verifyPanelLanded(e, t, s) {
2674
2730
  if (this.positioningDriftWarned) return;
2675
- const i = e.getBoundingClientRect(), r = i.x - t, a = i.y - s;
2676
- if (Math.abs(r) < 1 && Math.abs(a) < 1) return;
2731
+ const i = e.getBoundingClientRect(), r = i.x - t, n = i.y - s;
2732
+ if (Math.abs(r) < 1 && Math.abs(n) < 1) return;
2677
2733
  this.positioningDriftWarned = !0;
2678
- const n = Vs(this.input, r, a), l = n ? `<${n.tagName.toLowerCase()}${n.id ? "#" + n.id : ""}${typeof n.className == "string" && n.className ? "." + n.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : ""}>` : "an ancestor element (could not auto-identify)", c = n ? Ds(n) : "";
2734
+ const a = Ds(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 ? Bs(a) : "";
2679
2735
  console.warn(
2680
- `[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${a.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."
2736
+ `[@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."
2681
2737
  );
2682
2738
  }
2683
2739
  positionDropdown() {
@@ -2694,18 +2750,18 @@ class zs {
2694
2750
  });
2695
2751
  }
2696
2752
  positionHint() {
2697
- this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Se(
2753
+ this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Te(
2698
2754
  this.input,
2699
2755
  this.hint,
2700
2756
  () => {
2701
2757
  let e = "top-start";
2702
- this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), Me(this.input, this.hint, {
2758
+ this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), Ae(this.input, this.hint, {
2703
2759
  placement: e,
2704
2760
  strategy: "fixed",
2705
2761
  middleware: [
2706
- Te(4),
2762
+ Ie(4),
2707
2763
  // Don't use flip() - we want hint to stay opposite of dropdown
2708
- Ie({ padding: 8 })
2764
+ Me({ padding: 8 })
2709
2765
  ]
2710
2766
  }).then(({ x: t, y: s }) => {
2711
2767
  Object.assign(this.hint.style, {
@@ -2725,7 +2781,7 @@ class zs {
2725
2781
  this.selectedValues.add(String(s));
2726
2782
  }), this.reconcileSelectedOptions(), this.renderBadges();
2727
2783
  } catch (t) {
2728
- O.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2784
+ A.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2729
2785
  }
2730
2786
  }
2731
2787
  /**
@@ -2775,27 +2831,27 @@ class zs {
2775
2831
  }
2776
2832
  renderSelectedPopoverVirtual(e, t) {
2777
2833
  if (this.selectedPopoverVirtualScroll) {
2778
- const n = this.selectedPopover.querySelector(".ms__selected-popover-header span");
2779
- n && (n.textContent = `Selected Items (${t})`);
2834
+ const a = this.selectedPopover.querySelector(".ms__selected-popover-header span");
2835
+ a && (a.textContent = `Selected Items (${t})`);
2780
2836
  } else {
2781
- const n = this.options.badgeHeight ?? 36, l = `
2837
+ const a = this.options.badgeHeight ?? 36, l = `
2782
2838
  <div class="ms__selected-popover-header">
2783
2839
  <span>Selected Items (${t})</span>
2784
2840
  <button type="button" class="ms__selected-popover-close" aria-label="Close"></button>
2785
2841
  </div>
2786
- <div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ms-badge-height-virtual: ${n}px;"></div>
2842
+ <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>
2787
2843
  `;
2788
2844
  this.selectedPopover.innerHTML = l, this.selectedPopoverContainer = this.selectedPopover.querySelector(".ms__selected-popover-body");
2789
2845
  }
2790
2846
  if (!this.selectedPopoverContainer) return;
2791
- const r = (this.options.badgeHeight ?? 36) + 4, a = this.options.virtualScrollBuffer ?? 10;
2847
+ const r = (this.options.badgeHeight ?? 36) + 4, n = this.options.virtualScrollBuffer ?? 10;
2792
2848
  requestAnimationFrame(() => {
2793
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ke({
2849
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new qe({
2794
2850
  container: this.selectedPopoverContainer,
2795
2851
  itemHeight: r,
2796
2852
  items: e,
2797
- renderItem: (n) => this.renderBadgeHTML(n, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 }),
2798
- bufferSize: a,
2853
+ renderItem: (a) => this.renderBadgeHTML(a, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 }),
2854
+ bufferSize: n,
2799
2855
  onVisibleRangeChange: () => {
2800
2856
  this.attachBadgeTooltips(this.selectedPopoverContainer);
2801
2857
  }
@@ -2823,15 +2879,15 @@ class zs {
2823
2879
  i = typeof c == "string" ? c : c.outerHTML;
2824
2880
  } else
2825
2881
  i = this.getItemBadgeDisplayValue(e);
2826
- const a = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
2827
- let n = "ms__badge";
2828
- if (a) {
2829
- const c = a(e), d = Array.isArray(c) ? c : [c];
2830
- n += " " + d.filter((p) => p).join(" ");
2882
+ const n = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
2883
+ let a = "ms__badge";
2884
+ if (n) {
2885
+ const c = n(e), d = Array.isArray(c) ? c : [c];
2886
+ a += " " + d.filter((p) => p).join(" ");
2831
2887
  }
2832
2888
  const l = this.getItemBadgeDisplayValue(e);
2833
2889
  return `
2834
- <div class="${n}">
2890
+ <div class="${a}">
2835
2891
  <span class="ms__badge-text">${i}</span>
2836
2892
  <button type="button" class="ms__badge-remove" data-value="${s}" aria-label="Remove ${l}"></button>
2837
2893
  </div>
@@ -2895,7 +2951,7 @@ class zs {
2895
2951
  */
2896
2952
  setSelected(e, t = {}) {
2897
2953
  this.selectedValues = new Set(e.map((s) => String(s))), this.selectedOptions.clear(), e.forEach((s) => {
2898
- const i = String(s), r = this.allOptions.find((a) => String(this.getItemValue(a)) === i);
2954
+ const i = String(s), r = this.allOptions.find((n) => String(this.getItemValue(n)) === i);
2899
2955
  r && this.selectedOptions.set(i, r);
2900
2956
  }), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), t.notify && this.options.onChange && this.options.onChange(this.getSelected());
2901
2957
  }
@@ -2911,17 +2967,32 @@ class zs {
2911
2967
  * should fall back to destroy + re-init in that case.
2912
2968
  */
2913
2969
  updateOptions(e) {
2970
+ var n;
2914
2971
  const t = !!this.hint, s = "searchHint" in e ? !!e.searchHint : t;
2915
2972
  if (t !== s) return !1;
2916
2973
  Object.assign(this.options, e);
2917
2974
  const i = "pathMember" in e || "getPathCallback" in e || "parentPathMember" in e || "levelMember" in e || "hasChildrenMember" in e || "treePathSeparator" in e || "isTreeEnabled" in e || "isSelectableMember" in e || "getIsSelectableCallback" in e;
2918
- if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), this.element.classList.toggle(
2975
+ if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Ze(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
2976
+ this.cascadeCheckedAtoms = ie(this.cascadeIndex, this.selectedValues);
2977
+ const a = Ce(
2978
+ this.cascadeIndex,
2979
+ this.cascadeCheckedAtoms,
2980
+ this.cascadePolicy(),
2981
+ (c) => String(this.getItemValue(c))
2982
+ ), l = /* @__PURE__ */ new Map();
2983
+ for (const c of a) {
2984
+ const d = ((n = this.cascadeIndex.nodeByValue.get(c)) == null ? void 0 : n.data) ?? this.selectedOptions.get(c);
2985
+ d !== void 0 && l.set(c, d);
2986
+ }
2987
+ this.selectedValues = new Set(a), this.selectedOptions = l;
2988
+ }
2989
+ if (this.element.classList.toggle(
2919
2990
  "ms--no-checkboxes",
2920
2991
  !this.options.isCheckboxesShown || !this.options.isMultipleEnabled
2921
2992
  ), "badgesPosition" in e) {
2922
2993
  this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left"));
2923
- const r = this.element.querySelector(".ms__wrapper");
2924
- r == null || r.classList.toggle(
2994
+ const a = this.element.querySelector(".ms__wrapper");
2995
+ a == null || a.classList.toggle(
2925
2996
  "ms__wrapper--inline",
2926
2997
  this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right"
2927
2998
  );
@@ -2955,7 +3026,7 @@ class zs {
2955
3026
  spawnTooltip(e) {
2956
3027
  var r;
2957
3028
  (r = this.tooltips.get(e.id)) == null || r.destroy();
2958
- const t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t : null, i = new Ts({
3029
+ const t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t : null, i = new As({
2959
3030
  trigger: e.trigger,
2960
3031
  container: this.options.container ?? s ?? document.body,
2961
3032
  content: e.content,
@@ -2986,12 +3057,12 @@ ${s}` : t;
2986
3057
  attachBadgeTooltips(e) {
2987
3058
  if (!this.options.isBadgeTooltipsEnabled) return;
2988
3059
  const t = !!e, s = e || this.badgesContainer, i = t ? "popover-" : "";
2989
- if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((a) => {
2990
- const n = a.querySelector(".ms__badge-remove");
2991
- if (!n) return;
2992
- const l = n.dataset.value, c = this.selectedOptions.get(l);
3060
+ if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((n) => {
3061
+ const a = n.querySelector(".ms__badge-remove");
3062
+ if (!a) return;
3063
+ const l = a.dataset.value, c = this.selectedOptions.get(l);
2993
3064
  if (!c) return;
2994
- const d = `${i}${l}`, p = `${i}${l}-remove`, u = a.querySelector(".ms__badge-text");
3065
+ const d = `${i}${l}`, p = `${i}${l}-remove`, u = n.querySelector(".ms__badge-text");
2995
3066
  u && this.spawnTooltip({
2996
3067
  id: d,
2997
3068
  trigger: u,
@@ -3000,7 +3071,7 @@ ${s}` : t;
3000
3071
  const m = this.getItemBadgeDisplayValue(c);
3001
3072
  this.spawnTooltip({
3002
3073
  id: p,
3003
- trigger: n,
3074
+ trigger: a,
3004
3075
  content: this.buildRemoveButtonTooltipText(m, c),
3005
3076
  // Keep parent badge tooltip from overlapping the remove-button tooltip.
3006
3077
  onBeforeShow: () => {
@@ -3009,12 +3080,12 @@ ${s}` : t;
3009
3080
  }
3010
3081
  });
3011
3082
  }), !t) {
3012
- const a = this.badgesContainer.querySelector(".ms__badge--more"), n = a == null ? void 0 : a.querySelector(".ms__badge-remove");
3013
- if (n && n.dataset.action === "remove-hidden") {
3083
+ const n = this.badgesContainer.querySelector(".ms__badge--more"), a = n == null ? void 0 : n.querySelector(".ms__badge-remove");
3084
+ if (a && a.dataset.action === "remove-hidden") {
3014
3085
  const l = this.options.badgesMaxVisible || 3, c = this.selectedOptions.size - l;
3015
3086
  this.spawnTooltip({
3016
3087
  id: "more-badge-remove",
3017
- trigger: n,
3088
+ trigger: a,
3018
3089
  content: this.buildRemoveButtonTooltipText(`${c} hidden items`)
3019
3090
  });
3020
3091
  }
@@ -3040,11 +3111,11 @@ ${s}` : t;
3040
3111
  if (i < 0) return;
3041
3112
  const r = this.filteredOptions[i];
3042
3113
  if (!r) return;
3043
- const a = this.buildOptionTooltipContent(r);
3044
- a && this.spawnTooltip({
3114
+ const n = this.buildOptionTooltipContent(r);
3115
+ n && this.spawnTooltip({
3045
3116
  id: `option-${i}`,
3046
3117
  trigger: s,
3047
- content: a,
3118
+ content: n,
3048
3119
  // Default to `top-start` (anchored to the row's start edge) so the tooltip doesn't
3049
3120
  // center on a full-width row. Falls through to the badge settings for delay/offset.
3050
3121
  placement: this.options.optionTooltipPlacement ?? "top-start",
@@ -3070,12 +3141,12 @@ ${s}` : t;
3070
3141
  var c, d;
3071
3142
  const s = t, i = s.dataset.action;
3072
3143
  if (!i) return;
3073
- const r = parseInt(s.dataset.buttonIndex || "-1"), a = r >= 0 ? (c = this.options.actionButtons) == null ? void 0 : c[r] : (d = this.options.actionButtons) == null ? void 0 : d.find((p) => p.action === i);
3074
- if (!a) return;
3075
- const n = a.getTooltipCallback ? a.getTooltipCallback(this) : a.tooltip;
3144
+ const r = parseInt(s.dataset.buttonIndex || "-1"), n = r >= 0 ? (c = this.options.actionButtons) == null ? void 0 : c[r] : (d = this.options.actionButtons) == null ? void 0 : d.find((p) => p.action === i);
3076
3145
  if (!n) return;
3146
+ const a = n.getTooltipCallback ? n.getTooltipCallback(this) : n.tooltip;
3147
+ if (!a) return;
3077
3148
  const l = `action-${r >= 0 ? r : i}`;
3078
- this.spawnTooltip({ id: l, trigger: s, content: n });
3149
+ this.spawnTooltip({ id: l, trigger: s, content: a });
3079
3150
  });
3080
3151
  }
3081
3152
  /**
@@ -3101,11 +3172,11 @@ ${s}` : t;
3101
3172
  // PUBLIC API
3102
3173
  // ========================================================================
3103
3174
  destroy() {
3104
- this.destroyAllTooltips(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), 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"), de.info(`[${this.instanceId}] Component destroyed`);
3175
+ this.destroyAllTooltips(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), 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"), he.info(`[${this.instanceId}] Component destroyed`);
3105
3176
  }
3106
3177
  }
3107
- const Bs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-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-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-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__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);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__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__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}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-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}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-right:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}.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 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}.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{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__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}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, $s = typeof HTMLElement < "u" ? HTMLElement : class {
3108
- }, Ae = [
3178
+ const zs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-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__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__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__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}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-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}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-right:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}.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 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}.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{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__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}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, Rs = typeof HTMLElement < "u" ? HTMLElement : class {
3179
+ }, Pe = [
3109
3180
  // Strings
3110
3181
  { attr: "search-hint", key: "searchHint", parser: "string-or-undefined" },
3111
3182
  { attr: "search-placeholder", key: "searchPlaceholder", parser: "string", default: "Search..." },
@@ -3264,7 +3335,10 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3264
3335
  { attr: "enable-badge-tooltips", key: "isBadgeTooltipsEnabled", parser: "bool-default-false" },
3265
3336
  { attr: "enable-option-tooltips", key: "isOptionTooltipsEnabled", parser: "bool-default-false" },
3266
3337
  { attr: "option-tooltip-follow-cursor", key: "isOptionTooltipFollowCursor", parser: "bool-default-false" }
3267
- ], Rs = new Map(Ae.map((o) => [o.attr, o])), Je = [
3338
+ ], Fs = new Map(Pe.map((o) => [o.attr, o])), Qe = {
3339
+ "dropdown-width": "--ms-dropdown-width",
3340
+ "selected-popover-width": "--ms-selected-popover-width"
3341
+ }, et = [
3268
3342
  { key: "valueMember", field: "_valueMember" },
3269
3343
  { key: "displayValueMember", field: "_displayValueMember" },
3270
3344
  { key: "searchValueMember", field: "_searchValueMember" },
@@ -3272,7 +3346,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3272
3346
  { key: "subtitleMember", field: "_subtitleMember" },
3273
3347
  { key: "groupMember", field: "_groupMember" },
3274
3348
  { key: "disabledMember", field: "_disabledMember" }
3275
- ], Fs = [
3349
+ ], Hs = [
3276
3350
  { key: "valueMember", member: "value" },
3277
3351
  { key: "displayValueMember", member: "label" },
3278
3352
  { key: "groupMember", member: "group" },
@@ -3280,7 +3354,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3280
3354
  { key: "subtitleMember", member: "subtitle" },
3281
3355
  { key: "disabledMember", member: "disabled" }
3282
3356
  ];
3283
- function Ze(o, e) {
3357
+ function tt(o, e) {
3284
3358
  if (e === null || e === "")
3285
3359
  switch (o.parser) {
3286
3360
  case "bool-default-true":
@@ -3306,11 +3380,11 @@ function Ze(o, e) {
3306
3380
  return e === "true";
3307
3381
  }
3308
3382
  }
3309
- const Pe = /* @__PURE__ */ new Set();
3310
- function gt() {
3311
- return Array.from(Pe);
3383
+ const Le = /* @__PURE__ */ new Set();
3384
+ function kt() {
3385
+ return Array.from(Le);
3312
3386
  }
3313
- class Be extends $s {
3387
+ class ze extends Rs {
3314
3388
  constructor() {
3315
3389
  super();
3316
3390
  h(this, "picker");
@@ -3381,16 +3455,17 @@ class Be extends $s {
3381
3455
  } catch {
3382
3456
  }
3383
3457
  const t = document.createElement("style");
3384
- t.textContent = Bs, this.shadow.appendChild(t), requestAnimationFrame(() => {
3458
+ t.textContent = zs, this.shadow.appendChild(t), requestAnimationFrame(() => {
3385
3459
  this.setAttribute("data-ready", "");
3386
3460
  });
3387
3461
  }
3388
3462
  static get observedAttributes() {
3389
3463
  return [
3390
- ...Ae.map((t) => t.attr),
3464
+ ...Pe.map((t) => t.attr),
3391
3465
  // Out-of-table attributes (handled by special-case logic in attributeChangedCallback)
3392
3466
  "initial-values",
3393
- "show-debug-info"
3467
+ "show-debug-info",
3468
+ ...Object.keys(Qe)
3394
3469
  ];
3395
3470
  }
3396
3471
  /**
@@ -3405,30 +3480,36 @@ class Be extends $s {
3405
3480
  (t = this.picker) == null || t.clearAll();
3406
3481
  }
3407
3482
  connectedCallback() {
3408
- Pe.add(this), this.render();
3483
+ Le.add(this), this.render();
3409
3484
  const t = this.parseDeclarativeOptions();
3410
- t && (this._options && this._options.length > 0 && O.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t, this._hasDeclarativeOptions = !0), this.initializePicker();
3485
+ t && (this._options && this._options.length > 0 && A.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t, this._hasDeclarativeOptions = !0), this.initializePicker();
3411
3486
  }
3412
3487
  disconnectedCallback() {
3413
- Pe.delete(this), this.picker && this.picker.destroy();
3488
+ Le.delete(this), this.picker && this.picker.destroy();
3414
3489
  }
3415
3490
  attributeChangedCallback(t, s, i) {
3416
3491
  var a;
3417
- if (s === i || !this.picker || t === "initial-values") return;
3492
+ if (s === i) return;
3493
+ const r = Qe[t];
3494
+ if (r !== void 0) {
3495
+ i === null || i === "" ? this.style.removeProperty(r) : this.style.setProperty(r, i);
3496
+ return;
3497
+ }
3498
+ if (!this.picker || t === "initial-values") return;
3418
3499
  if (t === "show-debug-info") {
3419
- const n = this.shadow.querySelector(".ms__debug-info");
3420
- n && n.remove(), i === "true" && this.renderDebugInfo();
3500
+ const l = this.shadow.querySelector(".ms__debug-info");
3501
+ l && l.remove(), i === "true" && this.renderDebugInfo();
3421
3502
  return;
3422
3503
  }
3423
- const r = Rs.get(t);
3424
- if (r) {
3425
- const n = Ze(r, i), l = (a = Je.find((u) => u.key === r.key)) == null ? void 0 : a.field, c = n === void 0 && l ? this[l] : n;
3504
+ const n = Fs.get(t);
3505
+ if (n) {
3506
+ const l = tt(n, i), c = (a = et.find((m) => m.key === n.key)) == null ? void 0 : a.field, d = l === void 0 && c ? this[c] : l;
3426
3507
  if (this._batchDepth > 0) {
3427
- this._batchPartial[r.key] = c;
3508
+ this._batchPartial[n.key] = d;
3428
3509
  return;
3429
3510
  }
3430
- const d = { [r.key]: c };
3431
- if (this.picker.updateOptions(d)) return;
3511
+ const p = { [n.key]: d };
3512
+ if (this.picker.updateOptions(p)) return;
3432
3513
  }
3433
3514
  if (this._batchDepth > 0) {
3434
3515
  this._batchNeedsReinit = !0;
@@ -3452,8 +3533,8 @@ class Be extends $s {
3452
3533
  setAttributes(t) {
3453
3534
  this._batchDepth++;
3454
3535
  try {
3455
- for (const [r, a] of Object.entries(t))
3456
- a == null || a === !1 ? this.removeAttribute(r) : this.setAttribute(r, a === !0 ? "" : String(a));
3536
+ for (const [r, n] of Object.entries(t))
3537
+ n == null || n === !1 ? this.removeAttribute(r) : this.setAttribute(r, n === !0 ? "" : String(n));
3457
3538
  } finally {
3458
3539
  this._batchDepth--;
3459
3540
  }
@@ -3477,20 +3558,20 @@ class Be extends $s {
3477
3558
  s.className = "ms__debug-info";
3478
3559
  const i = document.createElement("details"), r = document.createElement("summary");
3479
3560
  r.textContent = "Debug Info";
3480
- const a = document.createElement("div");
3481
- a.className = "ms__debug-stats", i.appendChild(r), i.appendChild(a), s.appendChild(i), this.shadow.appendChild(s), this.updateDebugInfo();
3561
+ const n = document.createElement("div");
3562
+ n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), s.appendChild(i), this.shadow.appendChild(s), this.updateDebugInfo();
3482
3563
  }
3483
3564
  updateDebugInfo() {
3484
3565
  var m, b;
3485
3566
  const t = this.shadow.querySelector(".ms__debug-stats");
3486
3567
  if (!t || !this.picker) return;
3487
- const s = "1.12.0-rc07", i = gt().length, a = this.picker.getSelected().length, n = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, d = l.searchTerm || "", p = l.isLoading || !1, u = ((b = l.filteredOptions) == null ? void 0 : b.length) || 0;
3568
+ const s = "1.12.0-rc08", i = kt().length, n = this.picker.getSelected().length, a = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, d = l.searchTerm || "", p = l.isLoading || !1, u = ((b = l.filteredOptions) == null ? void 0 : b.length) || 0;
3488
3569
  t.innerHTML = `
3489
3570
  <span>Version: ${s}</span>
3490
3571
  <span>Total Instances: ${i}</span>
3491
- <span>Options: ${n}</span>
3572
+ <span>Options: ${a}</span>
3492
3573
  <span>Filtered: ${u}</span>
3493
- <span>Selected: ${a}</span>
3574
+ <span>Selected: ${n}</span>
3494
3575
  <span>Dropdown: ${c ? "Open" : "Closed"}</span>
3495
3576
  <span>Search: ${d || "none"}</span>
3496
3577
  <span>Loading: ${p ? "Yes" : "No"}</span>
@@ -3503,7 +3584,7 @@ class Be extends $s {
3503
3584
  * Returns array of options in the format expected by the picker
3504
3585
  */
3505
3586
  parseDeclarativeOptions() {
3506
- var r, a, n, l;
3587
+ var r, n, a, l;
3507
3588
  const t = [], s = Array.from(this.children);
3508
3589
  if (s.length === 0)
3509
3590
  return null;
@@ -3512,29 +3593,29 @@ class Be extends $s {
3512
3593
  if (c.tagName === "OPTION") {
3513
3594
  const d = c, p = {
3514
3595
  value: d.value || ((r = d.textContent) == null ? void 0 : r.trim()) || "",
3515
- label: ((a = d.textContent) == null ? void 0 : a.trim()) || d.value || ""
3596
+ label: ((n = d.textContent) == null ? void 0 : n.trim()) || d.value || ""
3516
3597
  };
3517
3598
  d.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(p.value)), d.hasAttribute("disabled") && (p.disabled = !0), d.hasAttribute("data-icon") && (p.icon = d.getAttribute("data-icon")), d.hasAttribute("data-subtitle") && (p.subtitle = d.getAttribute("data-subtitle")), t.push(p), i = !0;
3518
3599
  } else if (c.tagName === "OPTGROUP") {
3519
3600
  const d = c, p = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
3520
3601
  for (const m of u) {
3521
3602
  const b = {
3522
- value: m.value || ((n = m.textContent) == null ? void 0 : n.trim()) || "",
3603
+ value: m.value || ((a = m.textContent) == null ? void 0 : a.trim()) || "",
3523
3604
  label: ((l = m.textContent) == null ? void 0 : l.trim()) || m.value || "",
3524
3605
  group: p
3525
3606
  };
3526
3607
  m.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(b.value)), m.hasAttribute("disabled") && (b.disabled = !0), m.hasAttribute("data-icon") && (b.icon = m.getAttribute("data-icon")), m.hasAttribute("data-subtitle") && (b.subtitle = m.getAttribute("data-subtitle")), t.push(b), i = !0;
3527
3608
  }
3528
3609
  }
3529
- return i ? (O.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
3610
+ return i ? (A.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
3530
3611
  (c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
3531
3612
  }), t) : null;
3532
3613
  }
3533
3614
  /** Parse all observed attributes via ATTRIBUTE_TABLE into a partial config object. */
3534
3615
  parseAttributesFromTable() {
3535
3616
  const t = {};
3536
- for (const s of Ae) {
3537
- const i = Ze(s, this.getAttribute(s.attr));
3617
+ for (const s of Pe) {
3618
+ const i = tt(s, this.getAttribute(s.attr));
3538
3619
  i !== void 0 && (t[s.key] = i);
3539
3620
  }
3540
3621
  return t;
@@ -3546,26 +3627,26 @@ class Be extends $s {
3546
3627
  if (s && this._options === void 0)
3547
3628
  try {
3548
3629
  t = JSON.parse(s);
3549
- } catch (a) {
3550
- O.error("[MultiSelectElement] Failed to parse data-options:", a);
3630
+ } catch (n) {
3631
+ A.error("[MultiSelectElement] Failed to parse data-options:", n);
3551
3632
  }
3552
3633
  let i;
3553
3634
  if (this._declarativeSelectedValues && this._declarativeSelectedValues.length > 0)
3554
- i = this._declarativeSelectedValues, O.debug(`[MultiSelectElement] Using ${i.length} declaratively selected values`);
3635
+ i = this._declarativeSelectedValues, A.debug(`[MultiSelectElement] Using ${i.length} declaratively selected values`);
3555
3636
  else {
3556
- const a = this.getAttribute("initial-values");
3557
- if (a)
3637
+ const n = this.getAttribute("initial-values");
3638
+ if (n)
3558
3639
  try {
3559
- i = JSON.parse(a);
3560
- } catch (n) {
3561
- O.error("[MultiSelectElement] Failed to parse initial-values:", n);
3640
+ i = JSON.parse(n);
3641
+ } catch (a) {
3642
+ A.error("[MultiSelectElement] Failed to parse initial-values:", a);
3562
3643
  }
3563
3644
  }
3564
3645
  const r = this.parseAttributesFromTable();
3565
- for (const { key: a, field: n } of Je)
3566
- r[a] === void 0 && (r[a] = this[n]);
3646
+ for (const { key: n, field: a } of et)
3647
+ r[n] === void 0 && (r[n] = this[a]);
3567
3648
  if (this._hasDeclarativeOptions) {
3568
- const a = {
3649
+ const n = {
3569
3650
  valueMember: this._getValueCallback,
3570
3651
  displayValueMember: this._getDisplayValueCallback,
3571
3652
  groupMember: this._getGroupCallback,
@@ -3573,8 +3654,8 @@ class Be extends $s {
3573
3654
  subtitleMember: this._getSubtitleCallback,
3574
3655
  disabledMember: this._getDisabledCallback
3575
3656
  };
3576
- for (const { key: n, member: l } of Fs)
3577
- r[n] === void 0 && !a[n] && (r[n] = l);
3657
+ for (const { key: a, member: l } of Hs)
3658
+ r[a] === void 0 && !n[a] && (r[a] = l);
3578
3659
  }
3579
3660
  if (Object.assign(r, {
3580
3661
  actionButtons: this._actionButtons,
@@ -3602,43 +3683,43 @@ class Be extends $s {
3602
3683
  getBadgeTooltipCallback: this._getBadgeTooltipCallback,
3603
3684
  getOptionTooltipCallback: this._getOptionTooltipCallback,
3604
3685
  getRemoveButtonTooltipCallback: this._getRemoveButtonTooltipCallback,
3605
- getCounterCallback: this._getCounterCallback || ((a, n) => n !== void 0 ? `+${n} more` : `${a} selected`),
3686
+ getCounterCallback: this._getCounterCallback || ((n, a) => a !== void 0 ? `+${a} more` : `${n} selected`),
3606
3687
  options: this._options ?? t,
3607
3688
  beforeSearchCallback: this._beforeSearchCallback,
3608
3689
  beforeSelectCallback: this._beforeSelectCallback,
3609
3690
  beforeDeselectCallback: this._beforeDeselectCallback,
3610
3691
  searchCallback: this._searchCallback,
3611
3692
  addNewCallback: this._addNewCallback,
3612
- onSelect: (a) => {
3613
- var n;
3614
- this._onSelect && this._onSelect(a), this.dispatchEvent(new CustomEvent("select", {
3693
+ onSelect: (n) => {
3694
+ var a;
3695
+ this._onSelect && this._onSelect(n), this.dispatchEvent(new CustomEvent("select", {
3615
3696
  bubbles: !0,
3616
3697
  composed: !0,
3617
3698
  detail: {
3618
- option: a,
3619
- selectedOptions: (n = this.picker) == null ? void 0 : n.getSelected(),
3699
+ option: n,
3700
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
3620
3701
  selectedValues: this.collectSelectedValues()
3621
3702
  }
3622
3703
  }));
3623
3704
  },
3624
- onDeselect: (a) => {
3625
- var n;
3626
- this._onDeselect && this._onDeselect(a), this.dispatchEvent(new CustomEvent("deselect", {
3705
+ onDeselect: (n) => {
3706
+ var a;
3707
+ this._onDeselect && this._onDeselect(n), this.dispatchEvent(new CustomEvent("deselect", {
3627
3708
  bubbles: !0,
3628
3709
  composed: !0,
3629
3710
  detail: {
3630
- option: a,
3631
- selectedOptions: (n = this.picker) == null ? void 0 : n.getSelected(),
3711
+ option: n,
3712
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
3632
3713
  selectedValues: this.collectSelectedValues()
3633
3714
  }
3634
3715
  }));
3635
3716
  },
3636
- onChange: (a) => {
3637
- this._onChange && this._onChange(a), this.dispatchEvent(new CustomEvent("change", {
3717
+ onChange: (n) => {
3718
+ this._onChange && this._onChange(n), this.dispatchEvent(new CustomEvent("change", {
3638
3719
  bubbles: !0,
3639
3720
  composed: !0,
3640
3721
  detail: {
3641
- selectedOptions: a,
3722
+ selectedOptions: n,
3642
3723
  selectedValues: this.collectSelectedValues()
3643
3724
  }
3644
3725
  }));
@@ -3647,11 +3728,11 @@ class Be extends $s {
3647
3728
  container: this.shadow,
3648
3729
  // Pass host element (this) for hidden inputs in light DOM
3649
3730
  hostElement: this
3650
- }), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new zs(this.containerElement, r), this._customStylesCallback) {
3651
- const a = this._customStylesCallback();
3652
- if (a) {
3653
- const n = document.createElement("style");
3654
- n.className = "ms-custom-styles", n.textContent = a, this.shadow.insertBefore(n, this.shadow.firstChild);
3731
+ }), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new $s(this.containerElement, r), this._customStylesCallback) {
3732
+ const n = this._customStylesCallback();
3733
+ if (n) {
3734
+ const a = document.createElement("style");
3735
+ a.className = "ms-custom-styles", a.textContent = n, this.shadow.insertBefore(a, this.shadow.firstChild);
3655
3736
  }
3656
3737
  }
3657
3738
  }
@@ -4119,40 +4200,40 @@ class Be extends $s {
4119
4200
  // makes `form.reset()`, `form.elements`, and (in the future) constraint
4120
4201
  // validation actually do something. Without this flag the element is
4121
4202
  // invisible to the form lifecycle even when it has a `name`.
4122
- h(Be, "formAssociated", !0);
4123
- typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", Be));
4203
+ h(ze, "formAssociated", !0);
4204
+ typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", ze));
4124
4205
  typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
4125
- version: () => "1.12.0-rc07",
4206
+ version: () => "1.12.0-rc08",
4126
4207
  config: {
4127
4208
  name: "@keenmate/web-multiselect",
4128
- version: "1.12.0-rc07",
4209
+ version: "1.12.0-rc08",
4129
4210
  author: "Keenmate",
4130
4211
  license: "MIT",
4131
4212
  repository: "git+https://github.com/keenmate/web-multiselect.git",
4132
4213
  homepage: "https://web-multiselect.keenmate.dev"
4133
4214
  },
4134
4215
  logging: {
4135
- enableLogging: ws,
4136
- disableLogging: xs,
4137
- setLogLevel: Cs,
4138
- setCategoryLevel: Ss,
4139
- getCategories: () => [...ys]
4216
+ enableLogging: Ss,
4217
+ disableLogging: Ts,
4218
+ setLogLevel: Is,
4219
+ setCategoryLevel: Ms,
4220
+ getCategories: () => [...xs]
4140
4221
  },
4141
4222
  register: () => {
4142
- typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", Be);
4223
+ typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", ze);
4143
4224
  },
4144
- getInstances: () => gt()
4225
+ getInstances: () => kt()
4145
4226
  });
4146
4227
  export {
4147
- ys as LOGGING_CATEGORIES,
4148
- Be as MultiSelectElement,
4149
- zs as WebMultiSelect,
4150
- O as dataLogger,
4151
- xs as disableLogging,
4152
- ws as enableLogging,
4153
- de as initLogger,
4228
+ xs as LOGGING_CATEGORIES,
4229
+ ze as MultiSelectElement,
4230
+ $s as WebMultiSelect,
4231
+ A as dataLogger,
4232
+ Ts as disableLogging,
4233
+ Ss as enableLogging,
4234
+ he as initLogger,
4154
4235
  L as interactionLogger,
4155
- Ss as setCategoryLevel,
4156
- Cs as setLogLevel,
4236
+ Ms as setCategoryLevel,
4237
+ Is as setLogLevel,
4157
4238
  R as uiLogger
4158
4239
  };