@keenmate/web-multiselect 1.12.0-rc06 → 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 Be(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);
49
- return [we(o), e, we(e)];
47
+ function It(o) {
48
+ const e = ue(o);
49
+ return [xe(o), e, xe(e)];
50
50
  }
51
- function we(o) {
52
- return o.replace(/start|end/g, (e) => yt[e]);
51
+ function xe(o) {
52
+ return o.replace(/start|end/g, (e) => xt[e]);
53
53
  }
54
- const $e = ["left", "right"], Re = ["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 ? Re : $e : e ? $e : Re;
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(we)))), 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,153 +107,153 @@ function ue(o) {
107
107
  y: t
108
108
  };
109
109
  }
110
- function Fe(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), d = r === "y", c = s.x + s.width / 2 - i.width / 2, m = s.y + s.height / 2 - i.height / 2, u = s[n] / 2 - i[n] / 2;
116
- let p;
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
+ let m;
117
117
  switch (l) {
118
118
  case "top":
119
- p = {
120
- x: c,
119
+ m = {
120
+ x: d,
121
121
  y: s.y - i.height
122
122
  };
123
123
  break;
124
124
  case "bottom":
125
- p = {
126
- x: c,
125
+ m = {
126
+ x: d,
127
127
  y: s.y + s.height
128
128
  };
129
129
  break;
130
130
  case "right":
131
- p = {
131
+ m = {
132
132
  x: s.x + s.width,
133
- y: m
133
+ y: p
134
134
  };
135
135
  break;
136
136
  case "left":
137
- p = {
137
+ m = {
138
138
  x: s.x - i.width,
139
- y: m
139
+ y: p
140
140
  };
141
141
  break;
142
142
  default:
143
- p = {
143
+ m = {
144
144
  x: s.x,
145
145
  y: s.y
146
146
  };
147
147
  }
148
- switch (ge(e)) {
148
+ switch (fe(e)) {
149
149
  case "start":
150
- p[a] -= u * (t && d ? -1 : 1);
150
+ m[n] -= u * (t && c ? -1 : 1);
151
151
  break;
152
152
  case "end":
153
- p[a] += u * (t && d ? -1 : 1);
153
+ m[n] += u * (t && c ? -1 : 1);
154
154
  break;
155
155
  }
156
- return p;
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 d = 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
- x: c,
171
- y: m
172
- } = Fe(d, s, l), u = s, p = {}, b = 0;
173
- for (let v = 0; v < n.length; v++) {
170
+ x: d,
171
+ y: p
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
182
182
  } = await g({
183
- x: c,
184
- y: m,
183
+ x: d,
184
+ y: p,
185
185
  initialPlacement: s,
186
186
  placement: u,
187
187
  strategy: i,
188
- middlewareData: p,
189
- rects: d,
190
- platform: a,
188
+ middlewareData: m,
189
+ rects: c,
190
+ platform: n,
191
191
  elements: {
192
192
  reference: o,
193
193
  floating: e
194
194
  }
195
195
  });
196
- c = _ ?? c, m = y ?? m, p = {
197
- ...p,
196
+ d = k ?? d, p = y ?? p, m = {
197
+ ...m,
198
198
  [f]: {
199
- ...p[f],
199
+ ...m[f],
200
200
  ...w
201
201
  }
202
- }, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (d = 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
- x: c,
208
- y: m
209
- } = Fe(d, u, l)), v = -1);
207
+ x: d,
208
+ y: p
209
+ } = Ne(c, u, l)), v = -1);
210
210
  }
211
211
  return {
212
- x: c,
213
- y: m,
212
+ x: d,
213
+ y: p,
214
214
  placement: u,
215
215
  strategy: i,
216
- middlewareData: p
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
- boundary: d = "clippingAncestors",
231
- rootBoundary: c = "viewport",
232
- elementContext: m = "floating",
230
+ boundary: c = "clippingAncestors",
231
+ rootBoundary: d = "viewport",
232
+ elementContext: p = "floating",
233
233
  altBoundary: u = !1,
234
- padding: p = 0
235
- } = be(e, o), b = At(p), f = n[u ? m === "floating" ? "reference" : "floating" : m], 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)),
237
- boundary: d,
238
- rootBoundary: c,
234
+ padding: m = 0
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
+ boundary: c,
238
+ rootBoundary: d,
239
239
  strategy: l
240
- })), _ = m === "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,66 +270,66 @@ 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
- elements: d
276
+ elements: c
277
277
  } = e, {
278
- mainAxis: c = !0,
279
- crossAxis: m = !0,
278
+ mainAxis: d = !0,
279
+ crossAxis: p = !0,
280
280
  fallbackPlacements: u,
281
- fallbackStrategy: p = "bestFit",
281
+ fallbackStrategy: m = "bestFit",
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(d.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) || [];
292
- if (c && I.push(se[g]), m) {
293
- const k = xt(i, a, w);
294
- I.push(se[k[0]], se[k[1]]);
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
+ if (d && I.push(se[g]), p) {
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 && (!(m === "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
- switch (p) {
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,35 +342,35 @@ 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", d = Et.has(a) ? -1 : 1, c = r && l ? -1 : 1, m = 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
- crossAxis: p,
354
+ crossAxis: m,
355
355
  alignmentAxis: b
356
- } = typeof m == "number" ? {
357
- mainAxis: m,
356
+ } = typeof p == "number" ? {
357
+ mainAxis: p,
358
358
  crossAxis: 0,
359
359
  alignmentAxis: null
360
360
  } : {
361
- mainAxis: m.mainAxis || 0,
362
- crossAxis: m.crossAxis || 0,
363
- alignmentAxis: m.alignmentAxis
361
+ mainAxis: p.mainAxis || 0,
362
+ crossAxis: p.crossAxis || 0,
363
+ alignmentAxis: p.alignmentAxis
364
364
  };
365
- return n && typeof b == "number" && (p = n === "end" ? b * -1 : b), l ? {
366
- x: p * c,
367
- y: u * d
365
+ return a && typeof b == "number" && (m = a === "end" ? b * -1 : b), l ? {
366
+ x: m * d,
367
+ y: u * c
368
368
  } : {
369
- x: u * d,
370
- y: p * c
369
+ x: u * c,
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,37 +403,37 @@ 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), d = {
420
+ } = ge(o, e), c = {
421
421
  x: t,
422
422
  y: s
423
- }, c = await st(e, l), m = G(J(i)), u = Qe(m);
424
- let p = d[u], b = d[m];
423
+ }, d = await rt(e, l), p = G(J(i)), u = st(p);
424
+ let m = c[u], b = c[p];
425
425
  if (r) {
426
- const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", _ = p + c[f], y = p - c[g];
427
- p = Be(_, p, 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 = m === "y" ? "top" : "left", g = m === "y" ? "bottom" : "right", _ = b + c[f], y = b - c[g];
431
- b = Be(_, 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
- [u]: p,
436
- [m]: b
435
+ [u]: m,
436
+ [p]: b
437
437
  });
438
438
  return {
439
439
  ...v,
@@ -442,56 +442,56 @@ const Dt = function(o) {
442
442
  y: v.y - s,
443
443
  enabled: {
444
444
  [u]: r,
445
- [m]: 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 He(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,34 +499,34 @@ 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 Pe(o) {
504
- const e = Le(), 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 (Pe(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
  }
516
516
  return null;
517
517
  }
518
- function Le() {
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,182 +541,182 @@ 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
- He(o) && o.host || // Fallback.
544
+ je(o) && o.host || // Fallback.
545
545
  N(o)
546
546
  );
547
- return He(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 = xe(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 xe(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 Ee(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 = Ee(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 !Le() || !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 = Ee(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, d = (i.top + n.y) / a.y, c = i.width / a.x, m = 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), p = s && B(s) ? V(s) : s;
614
- let b = u, v = xe(b);
615
- for (; v && s && p !== 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, d *= f.y, c *= f.x, m *= f.y, l += y, d += w, b = V(v), v = xe(b);
613
+ const u = E(r), m = s && $(s) ? E(s) : s;
614
+ let b = u, v = Se(b);
615
+ for (; v && s && m !== 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({
621
- width: c,
622
- height: m,
620
+ return be({
621
+ width: d,
622
+ height: p,
623
623
  x: l,
624
- y: d
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
- }, d = F(1);
652
- const c = F(0), m = H(s);
653
- if ((m || !m && !r) && ((te(s) !== "body" || le(a)) && (l = _e(s)), H(s))) {
654
- const p = Z(s);
655
- d = Q(s), c.x = p.x + s.clientLeft, c.y = p.y + s.clientTop;
651
+ }, c = F(1);
652
+ const d = F(0), p = H(s);
653
+ if ((p || !p && !r) && ((te(s) !== "body" || ce(n)) && (l = _e(s)), H(s))) {
654
+ const m = Z(s);
655
+ c = Q(s), d.x = m.x + s.clientLeft, d.y = m.y + s.clientTop;
656
656
  }
657
- const u = a && !m && !r ? nt(a, l) : F(0);
657
+ const u = n && !p && !r ? dt(n, l) : F(0);
658
658
  return {
659
- width: t.width * d.x,
660
- height: t.height * d.y,
661
- x: t.x * d.x - l.scrollLeft * d.x + c.x + u.x,
662
- y: t.y * d.y - l.scrollTop * d.y + c.y + u.y
659
+ width: t.width * c.x,
660
+ height: t.height * c.y,
661
+ x: t.x * c.x - l.scrollLeft * c.x + d.x + u.x,
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 Ne = 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;
685
- const c = Le();
686
- (!c || c && e === "fixed") && (n = i.offsetLeft, l = i.offsetTop);
687
- }
688
- const d = ke(s);
689
- if (d <= 0) {
690
- const c = s.ownerDocument, m = c.body, u = getComputedStyle(m), p = c.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, b = Math.abs(s.clientWidth - m.clientWidth - p);
691
- b <= Ne && (r -= b);
692
- } else d <= Ne && (r += d);
684
+ r = i.width, n = i.height;
685
+ const d = Ee();
686
+ (!d || d && e === "fixed") && (a = i.offsetLeft, l = i.offsetTop);
687
+ }
688
+ const c = ye(s);
689
+ if (c <= 0) {
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 <= 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, d = 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
- y: d
707
+ y: c
708
708
  };
709
709
  }
710
- function je(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 je(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 = Pe(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((c) => c !== 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((d, c) => {
754
- const m = je(e, c, i);
755
- return d.top = X(m.top, d.top), d.right = he(m.right, d.right), d.bottom = he(m.bottom, d.bottom), d.left = X(m.left, d.left), d;
756
- }, je(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
- function d() {
782
- l.x = ke(i);
781
+ function c() {
782
+ l.x = ye(i);
783
783
  }
784
784
  if (s || !s && !r)
785
- if ((te(e) !== "body" || le(i)) && (n = _e(e)), s) {
786
- const p = Z(e, !0, r, e);
787
- l.x = p.x + e.clientLeft, l.y = p.y + e.clientTop;
788
- } else i && d();
789
- r && !s && i && d();
790
- const c = i && !s && !r ? nt(i, n) : F(0), m = a.left + n.scrollLeft - l.x - c.x, u = a.top + n.scrollTop - l.y - c.y;
785
+ if ((te(e) !== "body" || ce(i)) && (a = _e(e)), s) {
786
+ const m = Z(e, !0, r, e);
787
+ l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
788
+ } else i && c();
789
+ r && !s && i && c();
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
- x: m,
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 We(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 = We(o, e);
823
- for (; s && Rt(s) && ye(s); )
824
- s = We(s, e);
825
- return s && ee(s) && ye(s) && !Pe(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();
866
- const d = o.getBoundingClientRect(), {
867
- left: c,
868
- top: m,
864
+ function n(a, l) {
865
+ a === void 0 && (a = !1), l === void 0 && (l = 1), r();
866
+ const c = o.getBoundingClientRect(), {
867
+ left: d,
868
+ top: p,
869
869
  width: u,
870
- height: p
871
- } = d;
872
- if (n || e(), !u || !p)
870
+ height: m
871
+ } = c;
872
+ if (a || e(), !u || !m)
873
873
  return;
874
- const b = ce(m), v = ce(i.clientWidth - (c + u)), f = ce(i.clientHeight - (m + p)), g = ce(c), 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(d, 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,66 +898,66 @@ 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 Ce(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, d = Ee(o), c = i || r ? [...d ? ae(d) : [], ...ae(e)] : [];
912
- c.forEach((g) => {
911
+ } = s, c = De(o), d = i || r ? [...c ? ae(c) : [], ...ae(e)] : [];
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 m = d && n ? as(d, t) : null;
918
- let u = -1, p = null;
919
- a && (p = new ResizeObserver((g) => {
920
- let [_] = g;
921
- _ && _.target === d && p && (p.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
917
+ const p = c && a ? cs(c, t) : null;
918
+ let u = -1, m = null;
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
- (y = p) == null || y.observe(e);
923
+ (y = m) == null || y.observe(e);
924
924
  })), t();
925
- }), d && !l && p.observe(d), p.observe(e));
925
+ }), c && !l && m.observe(c), m.observe(e));
926
926
  let b, v = l ? Z(o) : null;
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
- c.forEach((_) => {
935
- i && _.removeEventListener("scroll", t), r && _.removeEventListener("resize", t);
936
- }), m == null || m(), (g = p) == null || g.disconnect(), p = null, l && cancelAnimationFrame(b);
934
+ d.forEach((k) => {
935
+ i && k.removeEventListener("scroll", t), r && k.removeEventListener("resize", t);
936
+ }), p == null || p(), (g = m) == null || g.disconnect(), m = null, l && cancelAnimationFrame(b);
937
937
  };
938
938
  }
939
- const Se = Dt, Te = zt, mt = Lt, Ie = (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), Me = [
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 Ue(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,79 +969,79 @@ function Ue(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 ? Ue(console, o) : console.log !== void 0 ? Ue(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() {
979
- for (var o = this.getLevel(), e = 0; e < Me.length; e++) {
980
- var t = Me[e];
981
- this[t] = e < o ? pt : this.methodFactory(t, o, this.name);
978
+ function re() {
979
+ for (var o = this.getLevel(), e = 0; e < Oe.length; e++) {
980
+ var t = Oe[e];
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) {
998
- var p = (Me[u] || "silent").toUpperCase();
999
- if (!(typeof window === z || !a)) {
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
+ var m = (Oe[u] || "silent").toUpperCase();
999
+ if (!(typeof window === B || !n)) {
1000
1000
  try {
1001
- window.localStorage[a] = p;
1001
+ window.localStorage[n] = m;
1002
1002
  return;
1003
1003
  } catch {
1004
1004
  }
1005
1005
  try {
1006
- window.document.cookie = encodeURIComponent(a) + "=" + p + ";";
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 p = window.document.cookie, b = encodeURIComponent(a), v = p.indexOf(b + "=");
1020
+ var m = window.document.cookie, b = encodeURIComponent(n), v = m.indexOf(b + "=");
1021
1021
  v !== -1 && (u = /^([^;]+)/.exec(
1022
- p.slice(v + b.length + 1)
1022
+ m.slice(v + b.length + 1)
1023
1023
  )[1]);
1024
1024
  } catch {
1025
1025
  }
1026
1026
  return t.levels[u] === void 0 && (u = void 0), u;
1027
1027
  }
1028
1028
  }
1029
- function d() {
1030
- if (!(typeof window === z || !a)) {
1029
+ function c() {
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
  }
1040
1040
  }
1041
- function c(u) {
1042
- var p = u;
1043
- if (typeof p == "string" && t.levels[p.toUpperCase()] !== void 0 && (p = t.levels[p.toUpperCase()]), typeof p == "number" && p >= 0 && p <= t.levels.SILENT)
1044
- return p;
1041
+ function d(u) {
1042
+ var m = u;
1043
+ if (typeof m == "string" && t.levels[m.toUpperCase()] !== void 0 && (m = t.levels[m.toUpperCase()]), typeof m == "number" && m >= 0 && m <= t.levels.SILENT)
1044
+ return m;
1045
1045
  throw new TypeError("log.setLevel() called with invalid level: " + u);
1046
1046
  }
1047
1047
  t.name = o, t.levels = {
@@ -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
- }, t.setLevel = function(u, p) {
1057
- return r = c(u), p !== !1 && n(r), ie.call(t);
1056
+ }, t.setLevel = function(u, m) {
1057
+ return r = d(u), m !== !1 && a(r), re.call(t);
1058
1058
  }, t.setDefaultLevel = function(u) {
1059
- i = c(u), l() || t.setLevel(u, !1);
1059
+ i = d(u), l() || t.setLevel(u, !1);
1060
1060
  }, t.resetLevel = function() {
1061
- r = null, d(), 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 = c(T.getLevel())), ie.call(t), T === t)
1068
- for (var u in ne)
1069
- ne[u].rebuild();
1070
- }, s = c(
1067
+ if (T !== t && (s = d(T.getLevel())), re.call(t), T === t)
1068
+ for (var u in le)
1069
+ le[u].rebuild();
1070
+ }, s = d(
1071
1071
  T ? T.getLevel() : "WARN"
1072
1072
  );
1073
- var m = l();
1074
- m != null && (r = c(m)), ie.call(t);
1073
+ var p = l();
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 d = t(a, n, l), c = Y[l] || Y[""], m = c.template.indexOf("%t") !== -1, u = c.template.indexOf("%l") !== -1, p = c.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 _ = c.timestampFormatter(/* @__PURE__ */ new Date()), y = c.levelFormatter(a), w = c.nameFormatter(l);
1126
- c.format ? b += c.format(y, w, _) : (b += c.template, m && (b = b.replace(/%t/, _)), u && (b = b.replace(/%l/, y)), p && (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
- d.apply(void 0, f);
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()), d = o.toUpperCase(), c = t ? `%c[${l}]%c %c[${d}]%c %c[${t}]%c` : `%c[${l}]%c %c[${d}]%c`;
1154
- s(c, ...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 Ve() {
1164
+ function Be() {
1165
1165
  typeof T.rebuild == "function" && T.rebuild();
1166
1166
  }
1167
- function ws() {
1168
- T.setLevel("debug"), Ve();
1167
+ function Ss() {
1168
+ T.setLevel("debug"), Be();
1169
1169
  }
1170
- function xs() {
1171
- T.setLevel("silent"), Ve();
1170
+ function Ts() {
1171
+ T.setLevel("silent"), Be();
1172
1172
  }
1173
- function Cs(o) {
1174
- T.setLevel(o), Ve();
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 Ge {
1180
+ class qe {
1181
1181
  constructor(e) {
1182
1182
  h(this, "container");
1183
1183
  h(this, "wrapper");
@@ -1240,8 +1240,8 @@ class Ge {
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 Ge {
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 = Ce(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
- Ie(e, this.element, {
1345
+ Ae(e, this.element, {
1346
1346
  placement: this.placement,
1347
1347
  strategy: "fixed",
1348
1348
  middleware: [
1349
- Se(this.offsetDistance),
1350
- mt(),
1351
- Te({ 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 Ke(o) {
1387
+ function Xe(o) {
1388
1388
  return {
1389
1389
  treeId: "",
1390
1390
  id: -1,
@@ -1399,32 +1399,32 @@ function Ke(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
- function qe(o, e, t = ".") {
1409
- return re(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
1408
+ function Ye(o, e, t = ".") {
1409
+ return ne(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
1410
1410
  }
1411
- function Ye(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, d = o.treeId || "multiselect-tree", c = o.orderMember, m = o.getDisplayValueCallback, u = re(i), p = re(r), b = re(a), v = re(n), f = "x", g = o.treePathSeparator || ".", _ = Ke();
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 = Ke();
1449
- k.treeId = d, 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 = Ye(
1452
- qe(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
- ), p ? 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 ${d}] ${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
- p && (C.level = (x.level || 0) + 1);
1492
- const S = f + Ye(qe(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 (c && C.data && x.data) {
1502
- const k = U(C.data, c) ?? 0, P = U(x.data, c) ?? 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 m ? m(C).localeCompare(m(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
- const d = [];
1514
- for (const m of Object.values(l.children))
1515
- d.push(...a(m));
1516
- let c;
1517
- return d.length > 0 ? c = d : l.isSelectable !== !1 ? (c = [r(l)], i.add(l.path)) : c = [], s.set(l.path, c), c;
1518
- }, n = o.tree;
1519
- for (const l of n) a(l);
1520
- return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots: n };
1513
+ const c = [];
1514
+ for (const p of Object.values(l.children))
1515
+ c.push(...n(p));
1516
+ let d;
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
+ }, 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 De(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 Xe(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 Xe(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 = De(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 = De(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 d = n.isSelectable !== !1, c = 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 m of c) a(m);
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" && d && r.push(i(n));
1558
- for (const m of c) a(m);
1557
+ l === "checked" && c && r.push(i(a));
1558
+ for (const p of d) n(p);
1559
1559
  return;
1560
1560
  }
1561
- if (l === "checked" && d) {
1562
- r.push(i(n));
1561
+ if (l === "checked" && c) {
1562
+ r.push(i(a));
1563
1563
  return;
1564
1564
  }
1565
- for (const m of c) a(m);
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 = Xe(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,21 +1894,61 @@ class zs {
1894
1894
  * so badges / form / change events reflect the policy (rolled-up branches, etc.).
1895
1895
  */
1896
1896
  toggleTreeCascade(e) {
1897
- var c;
1898
- const t = this.cascadeIndex, s = Xe(t, this.selectedValues), { checkedAtoms: i } = Ps(t, e, s), r = Ls(
1897
+ const t = this.cascadeIndex, s = ie(t, this.selectedValues), { checkedAtoms: i } = Vs(t, e, s);
1898
+ this.commitCascadeAtoms(i);
1899
+ }
1900
+ /**
1901
+ * Given a checked-atom set, project it to emitted values under the active
1902
+ * policy, diff it against the current selection, and commit. Shared by every
1903
+ * cascade entry point (node toggle, Select All) so they all emit the same
1904
+ * policy-projected shape (e.g. a full subtree rolls up to one value).
1905
+ */
1906
+ commitCascadeAtoms(e) {
1907
+ var l;
1908
+ const t = this.cascadeIndex, s = Ce(
1899
1909
  t,
1900
- i,
1910
+ e,
1901
1911
  this.cascadePolicy(),
1902
- (m) => String(this.getItemValue(m))
1903
- ), a = new Set(r), n = [], l = [];
1904
- for (const [m, u] of this.selectedOptions)
1905
- a.has(m) || l.push(u);
1906
- const d = /* @__PURE__ */ new Map();
1907
- for (const m of r) {
1908
- const p = ((c = t.nodeByValue.get(m)) == null ? void 0 : c.data) ?? this.selectedOptions.get(m);
1909
- p !== void 0 && (d.set(m, p), this.selectedValues.has(m) || n.push(p));
1912
+ (c) => String(this.getItemValue(c))
1913
+ ), i = new Set(s), r = [], n = [];
1914
+ for (const [c, d] of this.selectedOptions)
1915
+ i.has(c) || n.push(d);
1916
+ const a = /* @__PURE__ */ new Map();
1917
+ for (const c of s) {
1918
+ const p = ((l = t.nodeByValue.get(c)) == null ? void 0 : l.data) ?? this.selectedOptions.get(c);
1919
+ p !== void 0 && (a.set(c, p), this.selectedValues.has(c) || r.push(p));
1910
1920
  }
1911
- this.selectedValues = a, this.selectedOptions = d, this.cascadeCheckedAtoms = i, this.commit({ added: n, removed: l });
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
+ `);
1912
1952
  }
1913
1953
  /**
1914
1954
  * Derive `treeNodes` + `filteredOptions` from the full tree, applying the
@@ -1926,13 +1966,13 @@ class zs {
1926
1966
  s = e;
1927
1967
  else {
1928
1968
  const i = this.tree.treePathSeparator, r = /* @__PURE__ */ new Set();
1929
- for (const a of e)
1930
- if (this.getItemSearchValue(a.data).toLowerCase().includes(t)) {
1931
- const l = a.path.split(i);
1932
- for (let d = 1; d <= l.length; d++)
1933
- r.add(l.slice(0, d).join(i));
1969
+ for (const n of e)
1970
+ if (this.getItemSearchValue(n.data).toLowerCase().includes(t)) {
1971
+ const l = n.path.split(i);
1972
+ for (let c = 1; c <= l.length; c++)
1973
+ r.add(l.slice(0, c).join(i));
1934
1974
  }
1935
- s = e.filter((a) => r.has(a.path));
1975
+ s = e.filter((n) => r.has(n.path));
1936
1976
  }
1937
1977
  this.treeNodes = s, this.filteredOptions = s.map((i) => i.data);
1938
1978
  }
@@ -1961,32 +2001,32 @@ class zs {
1961
2001
  this.treeNodes = [], this.filteredOptions = [];
1962
2002
  return;
1963
2003
  }
1964
- const t = this.tree.flatNodes, s = this.tree.treePathSeparator, i = new Set((e || []).map((n) => String(this.getItemValue(n)))), r = /* @__PURE__ */ new Set();
1965
- for (const n of t)
1966
- if (i.has(String(this.getItemValue(n.data)))) {
1967
- const l = n.path.split(s);
1968
- for (let d = 1; d <= l.length; d++)
1969
- r.add(l.slice(0, d).join(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);
2008
+ for (let c = 1; c <= l.length; c++)
2009
+ r.add(l.slice(0, c).join(s));
1970
2010
  }
1971
- const a = t.filter((n) => r.has(n.path));
1972
- 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);
1973
2013
  }
1974
2014
  buildHTML() {
1975
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;
1976
- this.isRTL = i || r, de.debug(`[${this.instanceId}] RTL Debug:`, {
2016
+ this.isRTL = i || r, he.debug(`[${this.instanceId}] RTL Debug:`, {
1977
2017
  isShadowRoot: t instanceof ShadowRoot,
1978
2018
  hostElement: s,
1979
2019
  elementDir: s.getAttribute("dir"),
1980
2020
  hasElementDir: i,
1981
2021
  hasAncestorDir: r,
1982
2022
  isRTL: this.isRTL
1983
- }), 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");
1984
- const a = document.createElement("div");
1985
- 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");
1986
- const n = document.createElement("span");
1987
- 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";
1988
2028
  const l = document.createElement("div");
1989
- 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();
1990
2030
  }
1991
2031
  /**
1992
2032
  * Check if virtual scroll should be used
@@ -2030,19 +2070,19 @@ class zs {
2030
2070
  });
2031
2071
  else if (this.options.isGroupsAllowed) {
2032
2072
  const i = this.groupOptions(this.filteredOptions), r = /* @__PURE__ */ new Map();
2033
- this.filteredOptions.forEach((a, n) => r.set(a, n)), Object.keys(i).forEach((a) => {
2034
- 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__")
2035
2075
  if (this.options.renderGroupLabelContentCallback) {
2036
- const n = this.options.renderGroupLabelContentCallback(a);
2037
- if (n instanceof HTMLElement) {
2076
+ const a = this.options.renderGroupLabelContentCallback(n);
2077
+ if (a instanceof HTMLElement) {
2038
2078
  const l = document.createElement("div");
2039
- l.className = "ms__group-label", l.appendChild(n), e += l.outerHTML;
2079
+ l.className = "ms__group-label", l.appendChild(a), e += l.outerHTML;
2040
2080
  } else
2041
- e += `<div class="ms__group-label">${n}</div>`;
2081
+ e += `<div class="ms__group-label">${a}</div>`;
2042
2082
  } else
2043
- e += `<div class="ms__group-label">${a}</div>`;
2044
- i[a].forEach((n) => {
2045
- 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);
2046
2086
  }), e += "</div>";
2047
2087
  });
2048
2088
  } else
@@ -2059,8 +2099,8 @@ class zs {
2059
2099
  let s = "";
2060
2100
  const i = this.renderActionsHTML(), r = this.options.actionsPosition === "bottom";
2061
2101
  r || (s += i);
2062
- const a = this.options.maxHeight || "20rem", n = this.options.optionHeight ?? 50;
2063
- 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");
2064
2104
  }
2065
2105
  if (this.filteredOptions.length === 0) {
2066
2106
  this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.optionsContainer.innerHTML = `<div class="ms__empty">${this.options.emptyMessage}</div>`;
@@ -2068,7 +2108,7 @@ class zs {
2068
2108
  }
2069
2109
  const e = this.options.optionHeight ?? 50, t = this.options.virtualScrollBuffer ?? 10;
2070
2110
  requestAnimationFrame(() => {
2071
- this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new Ge({
2111
+ this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new qe({
2072
2112
  container: this.optionsContainer,
2073
2113
  itemHeight: e,
2074
2114
  items: this.filteredOptions,
@@ -2097,40 +2137,41 @@ class zs {
2097
2137
  renderActionsHTML() {
2098
2138
  const e = this.options.actionButtons;
2099
2139
  if (!this.options.isMultipleEnabled || !e || e.length === 0) return "";
2100
- 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();
2101
- if (e.forEach((c, m) => {
2102
- if (!(c.getIsVisibleCallback ? c.getIsVisibleCallback(this) : c.isVisible ?? !0)) return;
2103
- let p;
2104
- c.getIsDisabledCallback ? p = c.getIsDisabledCallback(this) : c.isDisabled !== void 0 ? p = c.isDisabled : p = this.getBuiltInActionDisabled(c.action);
2105
- const b = p ? " disabled" : "", v = c.getTextCallback ? c.getTextCallback(this) : c.text;
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();
2141
+ if (e.forEach((d, p) => {
2142
+ if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
2143
+ let m;
2144
+ d.getIsDisabledCallback ? m = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? m = d.isDisabled : m = this.getBuiltInActionDisabled(d.action);
2145
+ const b = m ? " disabled" : "", v = d.getTextCallback ? d.getTextCallback(this) : d.text;
2106
2146
  let f = "";
2107
- if (c.getClassCallback) {
2108
- const y = c.getClassCallback(this);
2147
+ if (d.getClassCallback) {
2148
+ const y = d.getClassCallback(this);
2109
2149
  f = Array.isArray(y) ? ` ${y.join(" ")}` : y ? ` ${y}` : "";
2110
- } else c.cssClass && (f = ` ${c.cssClass}`);
2111
- const g = Math.max(1, Math.floor(c.row ?? 1)), _ = `<button type="button"${b} class="ms__action-btn${f}" data-action="${c.action}" data-button-index="${m}">${v}</button>`;
2112
- l.has(g) || l.set(g, []), l.get(g).push(_);
2150
+ } else d.cssClass && (f = ` ${d.cssClass}`);
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);
2113
2153
  }), l.size === 0) return "";
2114
- const d = Array.from(l.keys()).sort((c, m) => c - m).map((c) => `<div class="ms__actions-row" data-row="${c}">${l.get(c).join("")}</div>`).join("");
2115
- return `<div class="ms__actions${i}${r}${a}${n}">${d}</div>`;
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("");
2155
+ return `<div class="ms__actions${i}${r}${n}${a}">${c}</div>`;
2116
2156
  }
2117
2157
  renderOption(e, t) {
2118
- 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)), d = t === this.focusedIndex, c = this.matchingIndices.has(t), m = ["ms__option"];
2119
- l && m.push("ms__option--selected"), d && m.push("ms__option--focused"), c && m.push("ms__option--matched"), n && m.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");
2120
2160
  const u = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
2121
- let p = `<div class="${m.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
2122
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (p += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${n ? "disabled" : ""}>`), p += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
2161
+ let m = `<div class="${p.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
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) {
2123
2163
  const b = {
2124
2164
  index: t,
2125
2165
  isSelected: l,
2126
- isFocused: d,
2127
- isMatched: c,
2128
- isDisabled: n
2166
+ isFocused: c,
2167
+ isMatched: d,
2168
+ isDisabled: a,
2169
+ isTreeNode: !1
2129
2170
  }, v = this.options.renderOptionContentCallback(e, b);
2130
- typeof v == "string" ? p += v : p += v.outerHTML;
2171
+ typeof v == "string" ? m += v : m += v.outerHTML;
2131
2172
  } else
2132
- r && (p += `<span class="ms__option-icon">${r}</span>`), p += '<div class="ms__option-text">', p += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, a && (p += `<div class="ms__option-subtitle">${a}</div>`), p += "</div>";
2133
- return p += "</div>", p += "</div>", p;
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>";
2174
+ return m += "</div>", m += "</div>", m;
2134
2175
  }
2135
2176
  /**
2136
2177
  * Render a single tree-mode row. Separate from `renderOption`: a tree row is
@@ -2140,21 +2181,32 @@ class zs {
2140
2181
  * chevron/toggle — every node is just a normal, selectable option.
2141
2182
  */
2142
2183
  renderTreeNode(e, t) {
2143
- const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), a = this.getItemIcon(s), n = this.getItemSubtitle(s), l = this.getItemDisabled(s), d = this.isCascadeMode() && this.cascadeIndex, c = d ? De(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, m = d ? c === "checked" : this.selectedValues.has(String(i)), u = c === "indeterminate", p = t === this.focusedIndex, b = e.isSelectable !== !1, v = e.level ?? 1, f = Math.max(0, v - 1), g = ["ms__option", "ms__option--tree"];
2144
- g.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), m && g.push("ms__option--selected"), u && g.push("ms__option--indeterminate"), p && g.push("ms__option--focused"), l && g.push("ms__option--disabled"), b || g.push("ms__option--tree-unselectable");
2145
- const _ = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", y = b ? "" : ' data-selectable="false"';
2146
- 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}>`;
2147
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (w += `<input type="checkbox" class="${u ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${m ? "checked" : ""}${u ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), w += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
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"];
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");
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}>`;
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) {
2148
2189
  const M = {
2149
2190
  index: t,
2150
- isSelected: m,
2151
- isFocused: p,
2191
+ isSelected: p,
2192
+ isFocused: m,
2152
2193
  isMatched: !1,
2153
- isDisabled: l
2154
- }, E = this.options.renderOptionContentCallback(s, M);
2155
- 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;
2156
2208
  } else
2157
- 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>";
2158
2210
  return w += "</div>", w += "</div>", w;
2159
2211
  }
2160
2212
  highlightMatch(e, t) {
@@ -2197,7 +2249,12 @@ class zs {
2197
2249
  this.input.placeholder = r;
2198
2250
  } else
2199
2251
  this.input.placeholder = this.getPlaceholderText();
2200
- 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") {
2201
2258
  this.badgesContainer.innerHTML = "";
2202
2259
  return;
2203
2260
  }
@@ -2205,21 +2262,21 @@ class zs {
2205
2262
  this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((r) => this.renderBadgeHTML(r, { displayMode: "badges", isInPopover: !1 })).join("");
2206
2263
  else if (s === "partial") {
2207
2264
  this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`;
2208
- const r = this.options.badgesMaxVisible || 3, a = e.slice(0, r), n = t - r, l = a.map((c) => this.renderBadgeHTML(c, { displayMode: "partial", isInPopover: !1 })).join("");
2209
- let d = "";
2210
- n > 0 && (d = `
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("");
2266
+ let c = "";
2267
+ a > 0 && (c = `
2211
2268
  <div class="ms__badge ms__badge--counter ms__badge--more" data-action="show-selected">
2212
- <span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`}</span>
2213
- <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>
2214
2271
  </div>
2215
- `), this.badgesContainer.innerHTML = l + d;
2272
+ `), this.badgesContainer.innerHTML = l + c;
2216
2273
  } else if (s === "compact")
2217
2274
  if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
2218
- const r = e[0], a = this.getItemBadgeDisplayValue(r), n = t - 1;
2219
- let l = a;
2220
- if (n > 0) {
2221
- const d = this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`;
2222
- l = `${a} (${d})`;
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})`;
2223
2280
  }
2224
2281
  this.badgesContainer.innerHTML = `
2225
2282
  <div class="ms__badge" data-action="show-selected">
@@ -2275,14 +2332,14 @@ class zs {
2275
2332
  if (this.options.beforeSearchCallback) {
2276
2333
  const s = this.options.beforeSearchCallback(e);
2277
2334
  if (s === null) {
2278
- 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();
2279
2336
  return;
2280
2337
  }
2281
- 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}"`);
2282
2339
  }
2283
2340
  if (this.options.searchCallback) {
2284
2341
  if (t.length < this.options.minSearchLength) {
2285
- 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();
2286
2343
  return;
2287
2344
  }
2288
2345
  this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0);
@@ -2300,13 +2357,13 @@ class zs {
2300
2357
  else {
2301
2358
  const s = this.options.searchMode || "filter", i = t.toLowerCase();
2302
2359
  if (s === "filter")
2303
- 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}"`);
2304
2361
  else {
2305
2362
  this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
2306
2363
  let r = -1;
2307
- this.allOptions.forEach((a, n) => {
2308
- this.getItemSearchValue(a).toLowerCase().includes(i) && (this.matchingIndices.add(n), r === -1 && (r = n));
2309
- }), 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`);
2310
2367
  }
2311
2368
  }
2312
2369
  this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused();
@@ -2330,15 +2387,15 @@ class zs {
2330
2387
  async performAsyncSearch(e, t) {
2331
2388
  this.abortInFlightSearch();
2332
2389
  const s = new AbortController();
2333
- 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);
2334
2391
  try {
2335
2392
  const i = await this.options.searchCallback(t, s.signal);
2336
2393
  if (s.signal.aborted || this.searchTerm !== e) return;
2337
2394
  const r = i || [];
2338
- 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`);
2339
2396
  } catch (i) {
2340
2397
  if (s.signal.aborted) return;
2341
- 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();
2342
2399
  } finally {
2343
2400
  this.searchAbortController === s && (this.searchAbortController = void 0);
2344
2401
  }
@@ -2397,21 +2454,21 @@ class zs {
2397
2454
  else if (r === "clear-all")
2398
2455
  this.clearAll();
2399
2456
  else if (r === "custom") {
2400
- const a = parseInt(t.dataset.buttonIndex || "-1"), n = (i = this.options.actionButtons) == null ? void 0 : i[a];
2401
- 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);
2402
2459
  }
2403
2460
  return;
2404
2461
  }
2405
2462
  const s = e.target.closest(".ms__option");
2406
2463
  if (s && !s.classList.contains("ms__option--disabled")) {
2407
2464
  e.preventDefault();
2408
- 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);
2409
2466
  L.debug(`[${this.instanceId}] Option clicked:`, {
2410
2467
  value: r,
2411
- optionIndex: a,
2468
+ optionIndex: n,
2412
2469
  closeOnSelect: this.options.isCloseOnSelect,
2413
2470
  placeholder: this.options.searchPlaceholder
2414
- }), 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());
2415
2472
  }
2416
2473
  }
2417
2474
  handleBadgeClick(e) {
@@ -2428,11 +2485,11 @@ class zs {
2428
2485
  if (e.preventDefault(), e.stopPropagation(), i.dataset.action === "remove-hidden") {
2429
2486
  L.debug(`[${this.instanceId}] Remove hidden items button clicked`);
2430
2487
  const l = this.options.badgesMaxVisible || 3;
2431
- Array.from(this.selectedOptions.values()).slice(l).forEach((m) => this.interactiveDeselect(m));
2488
+ Array.from(this.selectedOptions.values()).slice(l).forEach((p) => this.interactiveDeselect(p));
2432
2489
  return;
2433
2490
  }
2434
- const a = i.dataset.value, n = this.selectedOptions.get(a);
2435
- n && this.interactiveDeselect(n);
2491
+ const n = i.dataset.value, a = this.selectedOptions.get(n);
2492
+ a && this.interactiveDeselect(a);
2436
2493
  return;
2437
2494
  }
2438
2495
  if (e.target.closest(".ms__badge--more") && !e.target.closest(".ms__badge-remove")) {
@@ -2444,7 +2501,7 @@ class zs {
2444
2501
  var i;
2445
2502
  const t = e.composedPath();
2446
2503
  if (this.showSelectedPopover && !t.some(
2447
- (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"]'))
2448
2505
  )) {
2449
2506
  R.debug(`[${this.instanceId}] Closing selected popover due to click outside`), this.hideSelectedPopover();
2450
2507
  return;
@@ -2537,9 +2594,9 @@ class zs {
2537
2594
  }
2538
2595
  const t = this.getItemValue(e), s = String(t);
2539
2596
  if (L.debug(`[${this.instanceId}] toggleOption called`, { value: t, multiple: this.options.isMultipleEnabled }), this.isCascadeMode() && this.cascadeIndex) {
2540
- const a = this.cascadeIndex.nodeByValue.get(s);
2541
- if (a) {
2542
- 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();
2543
2600
  return;
2544
2601
  }
2545
2602
  }
@@ -2569,11 +2626,11 @@ class zs {
2569
2626
  async handleAddNew(e) {
2570
2627
  if (this.options.addNewCallback)
2571
2628
  try {
2572
- O.debug(`[${this.instanceId}] Adding new option:`, e);
2629
+ A.debug(`[${this.instanceId}] Adding new option:`, e);
2573
2630
  const t = await this.options.addNewCallback(e);
2574
2631
  this.allOptions.push(t), this.filteredOptions.push(t), this.selectOption(t), this.input.value = "", this.renderDropdown(), this.renderBadges(), this.options.isCloseOnSelect && this.close();
2575
2632
  } catch (t) {
2576
- O.error(`[${this.instanceId}] Error adding new option:`, t);
2633
+ A.error(`[${this.instanceId}] Error adding new option:`, t);
2577
2634
  }
2578
2635
  }
2579
2636
  selectOption(e) {
@@ -2582,9 +2639,25 @@ class zs {
2582
2639
  }
2583
2640
  deselectOption(e) {
2584
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
+ }
2585
2651
  this.selectedValues.delete(s), this.selectedOptions.delete(s), this.commit({ removed: [e] });
2586
2652
  }
2587
2653
  selectAll() {
2654
+ if (this.isCascadeMode() && this.cascadeIndex) {
2655
+ const t = this.cascadeIndex, s = new Set(ie(t, this.selectedValues));
2656
+ for (const i of this.treeNodes)
2657
+ t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || s.add(String(this.getItemValue(i.data))));
2658
+ this.commitCascadeAtoms(s);
2659
+ return;
2660
+ }
2588
2661
  const e = [];
2589
2662
  this.filteredOptions.forEach((t, s) => {
2590
2663
  if (this.getItemDisabled(t) || !this.isIndexSelectable(s)) return;
@@ -2621,24 +2694,24 @@ class zs {
2621
2694
  */
2622
2695
  anchorFloatingPanel(e, t) {
2623
2696
  const s = {
2624
- ...dt,
2697
+ ...pt,
2625
2698
  getOffsetParent: () => Es(this.input)
2626
2699
  };
2627
- return Ce(this.input, e, () => {
2700
+ return Te(this.input, e, () => {
2628
2701
  var l;
2629
- 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);
2630
- const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), a = i && r ? r : "bottom-start", n = [
2631
- Se(4),
2632
- ...i && r ? [] : [mt()],
2633
- Te({ 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 })
2634
2707
  ];
2635
- Ie(this.input, e, { placement: a, strategy: "fixed", middleware: n, platform: s }).then(({ x: d, y: c, placement: m }) => {
2708
+ Ae(this.input, e, { placement: n, strategy: "fixed", middleware: a, platform: s }).then(({ x: c, y: d, placement: p }) => {
2636
2709
  var u;
2637
- r || t.setPlacement(m), Object.assign(e.style, {
2710
+ r || t.setPlacement(p), Object.assign(e.style, {
2638
2711
  position: "fixed",
2639
- left: `${d}px`,
2640
- top: `${c}px`
2641
- }), this.verifyPanelLanded(e, d, c), (u = t.afterPosition) == null || u.call(t);
2712
+ left: `${c}px`,
2713
+ top: `${d}px`
2714
+ }), this.verifyPanelLanded(e, c, d), (u = t.afterPosition) == null || u.call(t);
2642
2715
  });
2643
2716
  });
2644
2717
  }
@@ -2655,12 +2728,12 @@ class zs {
2655
2728
  */
2656
2729
  verifyPanelLanded(e, t, s) {
2657
2730
  if (this.positioningDriftWarned) return;
2658
- const i = e.getBoundingClientRect(), r = i.x - t, a = i.y - s;
2659
- 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;
2660
2733
  this.positioningDriftWarned = !0;
2661
- 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)", d = 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) : "";
2662
2735
  console.warn(
2663
- `[@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}` + (d ? ` (has ${d})` : "") + ".\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."
2664
2737
  );
2665
2738
  }
2666
2739
  positionDropdown() {
@@ -2677,18 +2750,18 @@ class zs {
2677
2750
  });
2678
2751
  }
2679
2752
  positionHint() {
2680
- this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Ce(
2753
+ this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Te(
2681
2754
  this.input,
2682
2755
  this.hint,
2683
2756
  () => {
2684
2757
  let e = "top-start";
2685
- this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), Ie(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, {
2686
2759
  placement: e,
2687
2760
  strategy: "fixed",
2688
2761
  middleware: [
2689
- Se(4),
2762
+ Ie(4),
2690
2763
  // Don't use flip() - we want hint to stay opposite of dropdown
2691
- Te({ padding: 8 })
2764
+ Me({ padding: 8 })
2692
2765
  ]
2693
2766
  }).then(({ x: t, y: s }) => {
2694
2767
  Object.assign(this.hint.style, {
@@ -2708,7 +2781,7 @@ class zs {
2708
2781
  this.selectedValues.add(String(s));
2709
2782
  }), this.reconcileSelectedOptions(), this.renderBadges();
2710
2783
  } catch (t) {
2711
- O.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2784
+ A.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2712
2785
  }
2713
2786
  }
2714
2787
  /**
@@ -2758,27 +2831,27 @@ class zs {
2758
2831
  }
2759
2832
  renderSelectedPopoverVirtual(e, t) {
2760
2833
  if (this.selectedPopoverVirtualScroll) {
2761
- const n = this.selectedPopover.querySelector(".ms__selected-popover-header span");
2762
- n && (n.textContent = `Selected Items (${t})`);
2834
+ const a = this.selectedPopover.querySelector(".ms__selected-popover-header span");
2835
+ a && (a.textContent = `Selected Items (${t})`);
2763
2836
  } else {
2764
- const n = this.options.badgeHeight ?? 36, l = `
2837
+ const a = this.options.badgeHeight ?? 36, l = `
2765
2838
  <div class="ms__selected-popover-header">
2766
2839
  <span>Selected Items (${t})</span>
2767
2840
  <button type="button" class="ms__selected-popover-close" aria-label="Close"></button>
2768
2841
  </div>
2769
- <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>
2770
2843
  `;
2771
2844
  this.selectedPopover.innerHTML = l, this.selectedPopoverContainer = this.selectedPopover.querySelector(".ms__selected-popover-body");
2772
2845
  }
2773
2846
  if (!this.selectedPopoverContainer) return;
2774
- 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;
2775
2848
  requestAnimationFrame(() => {
2776
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ge({
2849
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new qe({
2777
2850
  container: this.selectedPopoverContainer,
2778
2851
  itemHeight: r,
2779
2852
  items: e,
2780
- renderItem: (n) => this.renderBadgeHTML(n, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 }),
2781
- bufferSize: a,
2853
+ renderItem: (a) => this.renderBadgeHTML(a, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 }),
2854
+ bufferSize: n,
2782
2855
  onVisibleRangeChange: () => {
2783
2856
  this.attachBadgeTooltips(this.selectedPopoverContainer);
2784
2857
  }
@@ -2799,22 +2872,22 @@ class zs {
2799
2872
  let i;
2800
2873
  const r = t.isInPopover ? this.options.renderSelectedItemContentCallback : void 0;
2801
2874
  if (r) {
2802
- const d = r(e);
2803
- i = typeof d == "string" ? d : d.outerHTML;
2875
+ const c = r(e);
2876
+ i = typeof c == "string" ? c : c.outerHTML;
2804
2877
  } else if (this.options.renderBadgeContentCallback) {
2805
- const d = this.options.renderBadgeContentCallback(e, t);
2806
- i = typeof d == "string" ? d : d.outerHTML;
2878
+ const c = this.options.renderBadgeContentCallback(e, t);
2879
+ i = typeof c == "string" ? c : c.outerHTML;
2807
2880
  } else
2808
2881
  i = this.getItemBadgeDisplayValue(e);
2809
- const a = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
2810
- let n = "ms__badge";
2811
- if (a) {
2812
- const d = a(e), c = Array.isArray(d) ? d : [d];
2813
- n += " " + c.filter((m) => m).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(" ");
2814
2887
  }
2815
2888
  const l = this.getItemBadgeDisplayValue(e);
2816
2889
  return `
2817
- <div class="${n}">
2890
+ <div class="${a}">
2818
2891
  <span class="ms__badge-text">${i}</span>
2819
2892
  <button type="button" class="ms__badge-remove" data-value="${s}" aria-label="Remove ${l}"></button>
2820
2893
  </div>
@@ -2867,11 +2940,20 @@ class zs {
2867
2940
  getSelected() {
2868
2941
  return Array.from(this.selectedOptions.values());
2869
2942
  }
2870
- setSelected(e) {
2871
- this.selectedValues = new Set(e.map((t) => String(t))), this.selectedOptions.clear(), e.forEach((t) => {
2872
- const s = String(t), i = this.allOptions.find((r) => String(this.getItemValue(r)) === s);
2873
- i && this.selectedOptions.set(s, i);
2874
- }), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput();
2943
+ /**
2944
+ * Set the selection programmatically. **Silent by default** it does not fire
2945
+ * `select`/`deselect`/`change` (so restoring saved state, cascade resets, or a
2946
+ * server-authoritative correction can't loop back or trip "user changed it"
2947
+ * handlers). Pass `{ notify: true }` to announce the result as a **single
2948
+ * aggregate `change`** — for a deliberate user gesture (e.g. an action button)
2949
+ * that should reach the same listeners a manual pick does, without the per-item
2950
+ * `select`/`deselect` flood a bulk change would otherwise cause.
2951
+ */
2952
+ setSelected(e, t = {}) {
2953
+ this.selectedValues = new Set(e.map((s) => String(s))), this.selectedOptions.clear(), e.forEach((s) => {
2954
+ const i = String(s), r = this.allOptions.find((n) => String(this.getItemValue(n)) === i);
2955
+ r && this.selectedOptions.set(i, r);
2956
+ }), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), t.notify && this.options.onChange && this.options.onChange(this.getSelected());
2875
2957
  }
2876
2958
  /**
2877
2959
  * Merge a partial config update into the live picker without tearing down the DOM.
@@ -2885,17 +2967,32 @@ class zs {
2885
2967
  * should fall back to destroy + re-init in that case.
2886
2968
  */
2887
2969
  updateOptions(e) {
2970
+ var n;
2888
2971
  const t = !!this.hint, s = "searchHint" in e ? !!e.searchHint : t;
2889
2972
  if (t !== s) return !1;
2890
2973
  Object.assign(this.options, e);
2891
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;
2892
- 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(
2893
2990
  "ms--no-checkboxes",
2894
2991
  !this.options.isCheckboxesShown || !this.options.isMultipleEnabled
2895
2992
  ), "badgesPosition" in e) {
2896
2993
  this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left"));
2897
- const r = this.element.querySelector(".ms__wrapper");
2898
- r == null || r.classList.toggle(
2994
+ const a = this.element.querySelector(".ms__wrapper");
2995
+ a == null || a.classList.toggle(
2899
2996
  "ms__wrapper--inline",
2900
2997
  this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right"
2901
2998
  );
@@ -2929,7 +3026,7 @@ class zs {
2929
3026
  spawnTooltip(e) {
2930
3027
  var r;
2931
3028
  (r = this.tooltips.get(e.id)) == null || r.destroy();
2932
- 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({
2933
3030
  trigger: e.trigger,
2934
3031
  container: this.options.container ?? s ?? document.body,
2935
3032
  content: e.content,
@@ -2960,36 +3057,36 @@ ${s}` : t;
2960
3057
  attachBadgeTooltips(e) {
2961
3058
  if (!this.options.isBadgeTooltipsEnabled) return;
2962
3059
  const t = !!e, s = e || this.badgesContainer, i = t ? "popover-" : "";
2963
- if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((a) => {
2964
- const n = a.querySelector(".ms__badge-remove");
2965
- if (!n) return;
2966
- const l = n.dataset.value, d = this.selectedOptions.get(l);
2967
- if (!d) return;
2968
- const c = `${i}${l}`, m = `${i}${l}-remove`, u = a.querySelector(".ms__badge-text");
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);
3064
+ if (!c) return;
3065
+ const d = `${i}${l}`, p = `${i}${l}-remove`, u = n.querySelector(".ms__badge-text");
2969
3066
  u && this.spawnTooltip({
2970
- id: c,
3067
+ id: d,
2971
3068
  trigger: u,
2972
- content: this.buildBadgeTooltipContent(d)
3069
+ content: this.buildBadgeTooltipContent(c)
2973
3070
  });
2974
- const p = this.getItemBadgeDisplayValue(d);
3071
+ const m = this.getItemBadgeDisplayValue(c);
2975
3072
  this.spawnTooltip({
2976
- id: m,
2977
- trigger: n,
2978
- content: this.buildRemoveButtonTooltipText(p, d),
3073
+ id: p,
3074
+ trigger: a,
3075
+ content: this.buildRemoveButtonTooltipText(m, c),
2979
3076
  // Keep parent badge tooltip from overlapping the remove-button tooltip.
2980
3077
  onBeforeShow: () => {
2981
3078
  var b;
2982
- return (b = this.tooltips.get(c)) == null ? void 0 : b.hideImmediate();
3079
+ return (b = this.tooltips.get(d)) == null ? void 0 : b.hideImmediate();
2983
3080
  }
2984
3081
  });
2985
3082
  }), !t) {
2986
- const a = this.badgesContainer.querySelector(".ms__badge--more"), n = a == null ? void 0 : a.querySelector(".ms__badge-remove");
2987
- if (n && n.dataset.action === "remove-hidden") {
2988
- const l = this.options.badgesMaxVisible || 3, d = this.selectedOptions.size - l;
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") {
3085
+ const l = this.options.badgesMaxVisible || 3, c = this.selectedOptions.size - l;
2989
3086
  this.spawnTooltip({
2990
3087
  id: "more-badge-remove",
2991
- trigger: n,
2992
- content: this.buildRemoveButtonTooltipText(`${d} hidden items`)
3088
+ trigger: a,
3089
+ content: this.buildRemoveButtonTooltipText(`${c} hidden items`)
2993
3090
  });
2994
3091
  }
2995
3092
  }
@@ -3014,11 +3111,11 @@ ${s}` : t;
3014
3111
  if (i < 0) return;
3015
3112
  const r = this.filteredOptions[i];
3016
3113
  if (!r) return;
3017
- const a = this.buildOptionTooltipContent(r);
3018
- a && this.spawnTooltip({
3114
+ const n = this.buildOptionTooltipContent(r);
3115
+ n && this.spawnTooltip({
3019
3116
  id: `option-${i}`,
3020
3117
  trigger: s,
3021
- content: a,
3118
+ content: n,
3022
3119
  // Default to `top-start` (anchored to the row's start edge) so the tooltip doesn't
3023
3120
  // center on a full-width row. Falls through to the badge settings for delay/offset.
3024
3121
  placement: this.options.optionTooltipPlacement ?? "top-start",
@@ -3041,15 +3138,15 @@ ${s}` : t;
3041
3138
  }
3042
3139
  attachActionButtonTooltips() {
3043
3140
  this.dropdown.querySelectorAll(".ms__action-btn").forEach((t) => {
3044
- var d, c;
3141
+ var c, d;
3045
3142
  const s = t, i = s.dataset.action;
3046
3143
  if (!i) return;
3047
- const r = parseInt(s.dataset.buttonIndex || "-1"), a = r >= 0 ? (d = this.options.actionButtons) == null ? void 0 : d[r] : (c = this.options.actionButtons) == null ? void 0 : c.find((m) => m.action === i);
3048
- if (!a) return;
3049
- 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);
3050
3145
  if (!n) return;
3146
+ const a = n.getTooltipCallback ? n.getTooltipCallback(this) : n.tooltip;
3147
+ if (!a) return;
3051
3148
  const l = `action-${r >= 0 ? r : i}`;
3052
- this.spawnTooltip({ id: l, trigger: s, content: n });
3149
+ this.spawnTooltip({ id: l, trigger: s, content: a });
3053
3150
  });
3054
3151
  }
3055
3152
  /**
@@ -3075,11 +3172,11 @@ ${s}` : t;
3075
3172
  // PUBLIC API
3076
3173
  // ========================================================================
3077
3174
  destroy() {
3078
- 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`);
3079
3176
  }
3080
3177
  }
3081
- 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}.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 {
3082
- }, Oe = [
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 = [
3083
3180
  // Strings
3084
3181
  { attr: "search-hint", key: "searchHint", parser: "string-or-undefined" },
3085
3182
  { attr: "search-placeholder", key: "searchPlaceholder", parser: "string", default: "Search..." },
@@ -3238,7 +3335,10 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3238
3335
  { attr: "enable-badge-tooltips", key: "isBadgeTooltipsEnabled", parser: "bool-default-false" },
3239
3336
  { attr: "enable-option-tooltips", key: "isOptionTooltipsEnabled", parser: "bool-default-false" },
3240
3337
  { attr: "option-tooltip-follow-cursor", key: "isOptionTooltipFollowCursor", parser: "bool-default-false" }
3241
- ], Rs = new Map(Oe.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 = [
3242
3342
  { key: "valueMember", field: "_valueMember" },
3243
3343
  { key: "displayValueMember", field: "_displayValueMember" },
3244
3344
  { key: "searchValueMember", field: "_searchValueMember" },
@@ -3246,7 +3346,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3246
3346
  { key: "subtitleMember", field: "_subtitleMember" },
3247
3347
  { key: "groupMember", field: "_groupMember" },
3248
3348
  { key: "disabledMember", field: "_disabledMember" }
3249
- ], Fs = [
3349
+ ], Hs = [
3250
3350
  { key: "valueMember", member: "value" },
3251
3351
  { key: "displayValueMember", member: "label" },
3252
3352
  { key: "groupMember", member: "group" },
@@ -3254,7 +3354,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
3254
3354
  { key: "subtitleMember", member: "subtitle" },
3255
3355
  { key: "disabledMember", member: "disabled" }
3256
3356
  ];
3257
- function Ze(o, e) {
3357
+ function tt(o, e) {
3258
3358
  if (e === null || e === "")
3259
3359
  switch (o.parser) {
3260
3360
  case "bool-default-true":
@@ -3280,11 +3380,11 @@ function Ze(o, e) {
3280
3380
  return e === "true";
3281
3381
  }
3282
3382
  }
3283
- const Ae = /* @__PURE__ */ new Set();
3284
- function gt() {
3285
- return Array.from(Ae);
3383
+ const Le = /* @__PURE__ */ new Set();
3384
+ function kt() {
3385
+ return Array.from(Le);
3286
3386
  }
3287
- class ze extends $s {
3387
+ class ze extends Rs {
3288
3388
  constructor() {
3289
3389
  super();
3290
3390
  h(this, "picker");
@@ -3355,16 +3455,17 @@ class ze extends $s {
3355
3455
  } catch {
3356
3456
  }
3357
3457
  const t = document.createElement("style");
3358
- t.textContent = Bs, this.shadow.appendChild(t), requestAnimationFrame(() => {
3458
+ t.textContent = zs, this.shadow.appendChild(t), requestAnimationFrame(() => {
3359
3459
  this.setAttribute("data-ready", "");
3360
3460
  });
3361
3461
  }
3362
3462
  static get observedAttributes() {
3363
3463
  return [
3364
- ...Oe.map((t) => t.attr),
3464
+ ...Pe.map((t) => t.attr),
3365
3465
  // Out-of-table attributes (handled by special-case logic in attributeChangedCallback)
3366
3466
  "initial-values",
3367
- "show-debug-info"
3467
+ "show-debug-info",
3468
+ ...Object.keys(Qe)
3368
3469
  ];
3369
3470
  }
3370
3471
  /**
@@ -3379,30 +3480,36 @@ class ze extends $s {
3379
3480
  (t = this.picker) == null || t.clearAll();
3380
3481
  }
3381
3482
  connectedCallback() {
3382
- Ae.add(this), this.render();
3483
+ Le.add(this), this.render();
3383
3484
  const t = this.parseDeclarativeOptions();
3384
- 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();
3385
3486
  }
3386
3487
  disconnectedCallback() {
3387
- Ae.delete(this), this.picker && this.picker.destroy();
3488
+ Le.delete(this), this.picker && this.picker.destroy();
3388
3489
  }
3389
3490
  attributeChangedCallback(t, s, i) {
3390
3491
  var a;
3391
- 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;
3392
3499
  if (t === "show-debug-info") {
3393
- const n = this.shadow.querySelector(".ms__debug-info");
3394
- n && n.remove(), i === "true" && this.renderDebugInfo();
3500
+ const l = this.shadow.querySelector(".ms__debug-info");
3501
+ l && l.remove(), i === "true" && this.renderDebugInfo();
3395
3502
  return;
3396
3503
  }
3397
- const r = Rs.get(t);
3398
- if (r) {
3399
- const n = Ze(r, i), l = (a = Je.find((u) => u.key === r.key)) == null ? void 0 : a.field, d = 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;
3400
3507
  if (this._batchDepth > 0) {
3401
- this._batchPartial[r.key] = d;
3508
+ this._batchPartial[n.key] = d;
3402
3509
  return;
3403
3510
  }
3404
- const c = { [r.key]: d };
3405
- if (this.picker.updateOptions(c)) return;
3511
+ const p = { [n.key]: d };
3512
+ if (this.picker.updateOptions(p)) return;
3406
3513
  }
3407
3514
  if (this._batchDepth > 0) {
3408
3515
  this._batchNeedsReinit = !0;
@@ -3426,8 +3533,8 @@ class ze extends $s {
3426
3533
  setAttributes(t) {
3427
3534
  this._batchDepth++;
3428
3535
  try {
3429
- for (const [r, a] of Object.entries(t))
3430
- 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));
3431
3538
  } finally {
3432
3539
  this._batchDepth--;
3433
3540
  }
@@ -3451,23 +3558,23 @@ class ze extends $s {
3451
3558
  s.className = "ms__debug-info";
3452
3559
  const i = document.createElement("details"), r = document.createElement("summary");
3453
3560
  r.textContent = "Debug Info";
3454
- const a = document.createElement("div");
3455
- 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();
3456
3563
  }
3457
3564
  updateDebugInfo() {
3458
- var p, b;
3565
+ var m, b;
3459
3566
  const t = this.shadow.querySelector(".ms__debug-stats");
3460
3567
  if (!t || !this.picker) return;
3461
- const s = "1.12.0-rc06", i = gt().length, a = this.picker.getSelected().length, n = ((p = this._options) == null ? void 0 : p.length) || 0, l = this.picker, d = l.isOpen || !1, c = l.searchTerm || "", m = 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;
3462
3569
  t.innerHTML = `
3463
3570
  <span>Version: ${s}</span>
3464
3571
  <span>Total Instances: ${i}</span>
3465
- <span>Options: ${n}</span>
3572
+ <span>Options: ${a}</span>
3466
3573
  <span>Filtered: ${u}</span>
3467
- <span>Selected: ${a}</span>
3468
- <span>Dropdown: ${d ? "Open" : "Closed"}</span>
3469
- <span>Search: ${c || "none"}</span>
3470
- <span>Loading: ${m ? "Yes" : "No"}</span>
3574
+ <span>Selected: ${n}</span>
3575
+ <span>Dropdown: ${c ? "Open" : "Closed"}</span>
3576
+ <span>Search: ${d || "none"}</span>
3577
+ <span>Loading: ${p ? "Yes" : "No"}</span>
3471
3578
  `, setTimeout(() => {
3472
3579
  this.getAttribute("show-debug-info") === "true" && this.updateDebugInfo();
3473
3580
  }, 500);
@@ -3477,38 +3584,38 @@ class ze extends $s {
3477
3584
  * Returns array of options in the format expected by the picker
3478
3585
  */
3479
3586
  parseDeclarativeOptions() {
3480
- var r, a, n, l;
3587
+ var r, n, a, l;
3481
3588
  const t = [], s = Array.from(this.children);
3482
3589
  if (s.length === 0)
3483
3590
  return null;
3484
3591
  let i = !1;
3485
- for (const d of s)
3486
- if (d.tagName === "OPTION") {
3487
- const c = d, m = {
3488
- value: c.value || ((r = c.textContent) == null ? void 0 : r.trim()) || "",
3489
- label: ((a = c.textContent) == null ? void 0 : a.trim()) || c.value || ""
3592
+ for (const c of s)
3593
+ if (c.tagName === "OPTION") {
3594
+ const d = c, p = {
3595
+ value: d.value || ((r = d.textContent) == null ? void 0 : r.trim()) || "",
3596
+ label: ((n = d.textContent) == null ? void 0 : n.trim()) || d.value || ""
3490
3597
  };
3491
- c.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(m.value)), c.hasAttribute("disabled") && (m.disabled = !0), c.hasAttribute("data-icon") && (m.icon = c.getAttribute("data-icon")), c.hasAttribute("data-subtitle") && (m.subtitle = c.getAttribute("data-subtitle")), t.push(m), i = !0;
3492
- } else if (d.tagName === "OPTGROUP") {
3493
- const c = d, m = c.label || c.getAttribute("label") || "Group", u = Array.from(c.querySelectorAll("option"));
3494
- for (const p of u) {
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;
3599
+ } else if (c.tagName === "OPTGROUP") {
3600
+ const d = c, p = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
3601
+ for (const m of u) {
3495
3602
  const b = {
3496
- value: p.value || ((n = p.textContent) == null ? void 0 : n.trim()) || "",
3497
- label: ((l = p.textContent) == null ? void 0 : l.trim()) || p.value || "",
3498
- group: m
3603
+ value: m.value || ((a = m.textContent) == null ? void 0 : a.trim()) || "",
3604
+ label: ((l = m.textContent) == null ? void 0 : l.trim()) || m.value || "",
3605
+ group: p
3499
3606
  };
3500
- p.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(b.value)), p.hasAttribute("disabled") && (b.disabled = !0), p.hasAttribute("data-icon") && (b.icon = p.getAttribute("data-icon")), p.hasAttribute("data-subtitle") && (b.subtitle = p.getAttribute("data-subtitle")), t.push(b), i = !0;
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;
3501
3608
  }
3502
3609
  }
3503
- return i ? (O.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((d) => {
3504
- (d.tagName === "OPTION" || d.tagName === "OPTGROUP") && d.remove();
3610
+ return i ? (A.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
3611
+ (c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
3505
3612
  }), t) : null;
3506
3613
  }
3507
3614
  /** Parse all observed attributes via ATTRIBUTE_TABLE into a partial config object. */
3508
3615
  parseAttributesFromTable() {
3509
3616
  const t = {};
3510
- for (const s of Oe) {
3511
- const i = Ze(s, this.getAttribute(s.attr));
3617
+ for (const s of Pe) {
3618
+ const i = tt(s, this.getAttribute(s.attr));
3512
3619
  i !== void 0 && (t[s.key] = i);
3513
3620
  }
3514
3621
  return t;
@@ -3520,26 +3627,26 @@ class ze extends $s {
3520
3627
  if (s && this._options === void 0)
3521
3628
  try {
3522
3629
  t = JSON.parse(s);
3523
- } catch (a) {
3524
- O.error("[MultiSelectElement] Failed to parse data-options:", a);
3630
+ } catch (n) {
3631
+ A.error("[MultiSelectElement] Failed to parse data-options:", n);
3525
3632
  }
3526
3633
  let i;
3527
3634
  if (this._declarativeSelectedValues && this._declarativeSelectedValues.length > 0)
3528
- 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`);
3529
3636
  else {
3530
- const a = this.getAttribute("initial-values");
3531
- if (a)
3637
+ const n = this.getAttribute("initial-values");
3638
+ if (n)
3532
3639
  try {
3533
- i = JSON.parse(a);
3534
- } catch (n) {
3535
- 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);
3536
3643
  }
3537
3644
  }
3538
3645
  const r = this.parseAttributesFromTable();
3539
- for (const { key: a, field: n } of Je)
3540
- 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]);
3541
3648
  if (this._hasDeclarativeOptions) {
3542
- const a = {
3649
+ const n = {
3543
3650
  valueMember: this._getValueCallback,
3544
3651
  displayValueMember: this._getDisplayValueCallback,
3545
3652
  groupMember: this._getGroupCallback,
@@ -3547,8 +3654,8 @@ class ze extends $s {
3547
3654
  subtitleMember: this._getSubtitleCallback,
3548
3655
  disabledMember: this._getDisabledCallback
3549
3656
  };
3550
- for (const { key: n, member: l } of Fs)
3551
- 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);
3552
3659
  }
3553
3660
  if (Object.assign(r, {
3554
3661
  actionButtons: this._actionButtons,
@@ -3576,43 +3683,43 @@ class ze extends $s {
3576
3683
  getBadgeTooltipCallback: this._getBadgeTooltipCallback,
3577
3684
  getOptionTooltipCallback: this._getOptionTooltipCallback,
3578
3685
  getRemoveButtonTooltipCallback: this._getRemoveButtonTooltipCallback,
3579
- 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`),
3580
3687
  options: this._options ?? t,
3581
3688
  beforeSearchCallback: this._beforeSearchCallback,
3582
3689
  beforeSelectCallback: this._beforeSelectCallback,
3583
3690
  beforeDeselectCallback: this._beforeDeselectCallback,
3584
3691
  searchCallback: this._searchCallback,
3585
3692
  addNewCallback: this._addNewCallback,
3586
- onSelect: (a) => {
3587
- var n;
3588
- 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", {
3589
3696
  bubbles: !0,
3590
3697
  composed: !0,
3591
3698
  detail: {
3592
- option: a,
3593
- selectedOptions: (n = this.picker) == null ? void 0 : n.getSelected(),
3699
+ option: n,
3700
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
3594
3701
  selectedValues: this.collectSelectedValues()
3595
3702
  }
3596
3703
  }));
3597
3704
  },
3598
- onDeselect: (a) => {
3599
- var n;
3600
- 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", {
3601
3708
  bubbles: !0,
3602
3709
  composed: !0,
3603
3710
  detail: {
3604
- option: a,
3605
- selectedOptions: (n = this.picker) == null ? void 0 : n.getSelected(),
3711
+ option: n,
3712
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
3606
3713
  selectedValues: this.collectSelectedValues()
3607
3714
  }
3608
3715
  }));
3609
3716
  },
3610
- onChange: (a) => {
3611
- this._onChange && this._onChange(a), this.dispatchEvent(new CustomEvent("change", {
3717
+ onChange: (n) => {
3718
+ this._onChange && this._onChange(n), this.dispatchEvent(new CustomEvent("change", {
3612
3719
  bubbles: !0,
3613
3720
  composed: !0,
3614
3721
  detail: {
3615
- selectedOptions: a,
3722
+ selectedOptions: n,
3616
3723
  selectedValues: this.collectSelectedValues()
3617
3724
  }
3618
3725
  }));
@@ -3621,11 +3728,11 @@ class ze extends $s {
3621
3728
  container: this.shadow,
3622
3729
  // Pass host element (this) for hidden inputs in light DOM
3623
3730
  hostElement: this
3624
- }), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new zs(this.containerElement, r), this._customStylesCallback) {
3625
- const a = this._customStylesCallback();
3626
- if (a) {
3627
- const n = document.createElement("style");
3628
- 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);
3629
3736
  }
3630
3737
  }
3631
3738
  }
@@ -4079,8 +4186,8 @@ class ze extends $s {
4079
4186
  getSelected() {
4080
4187
  return this.picker ? this.picker.getSelected() : [];
4081
4188
  }
4082
- setSelected(t) {
4083
- this.picker && this.picker.setSelected(t);
4189
+ setSelected(t, s = {}) {
4190
+ this.picker && this.picker.setSelected(t, s);
4084
4191
  }
4085
4192
  getValue() {
4086
4193
  return this.picker ? this.picker.getValue() : null;
@@ -4096,37 +4203,37 @@ class ze extends $s {
4096
4203
  h(ze, "formAssociated", !0);
4097
4204
  typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", ze));
4098
4205
  typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
4099
- version: () => "1.12.0-rc06",
4206
+ version: () => "1.12.0-rc08",
4100
4207
  config: {
4101
4208
  name: "@keenmate/web-multiselect",
4102
- version: "1.12.0-rc06",
4209
+ version: "1.12.0-rc08",
4103
4210
  author: "Keenmate",
4104
4211
  license: "MIT",
4105
4212
  repository: "git+https://github.com/keenmate/web-multiselect.git",
4106
4213
  homepage: "https://web-multiselect.keenmate.dev"
4107
4214
  },
4108
4215
  logging: {
4109
- enableLogging: ws,
4110
- disableLogging: xs,
4111
- setLogLevel: Cs,
4112
- setCategoryLevel: Ss,
4113
- getCategories: () => [...ys]
4216
+ enableLogging: Ss,
4217
+ disableLogging: Ts,
4218
+ setLogLevel: Is,
4219
+ setCategoryLevel: Ms,
4220
+ getCategories: () => [...xs]
4114
4221
  },
4115
4222
  register: () => {
4116
4223
  typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", ze);
4117
4224
  },
4118
- getInstances: () => gt()
4225
+ getInstances: () => kt()
4119
4226
  });
4120
4227
  export {
4121
- ys as LOGGING_CATEGORIES,
4228
+ xs as LOGGING_CATEGORIES,
4122
4229
  ze as MultiSelectElement,
4123
- zs as WebMultiSelect,
4124
- O as dataLogger,
4125
- xs as disableLogging,
4126
- ws as enableLogging,
4127
- de as initLogger,
4230
+ $s as WebMultiSelect,
4231
+ A as dataLogger,
4232
+ Ts as disableLogging,
4233
+ Ss as enableLogging,
4234
+ he as initLogger,
4128
4235
  L as interactionLogger,
4129
- Ss as setCategoryLevel,
4130
- Cs as setLogLevel,
4236
+ Ms as setCategoryLevel,
4237
+ Is as setLogLevel,
4131
4238
  R as uiLogger
4132
4239
  };