mimir-ui-kit 1.37.18 → 1.38.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. package/dist/assets/Dropdown.css +1 -0
  2. package/dist/close-provider-CEutdhG8.js +9 -0
  3. package/dist/combobox-CVtJDVoZ.js +980 -0
  4. package/dist/components/Accordion/Accordion.js +91 -95
  5. package/dist/components/CheckboxMimir/CheckboxMimir.js +4 -4
  6. package/dist/components/DatePicker/DatePicker.js +19 -19
  7. package/dist/components/DatePicker/hooks.js +11 -11
  8. package/dist/components/Dropdown/Dropdown.d.ts +45 -0
  9. package/dist/components/Dropdown/Dropdown.js +333 -0
  10. package/dist/components/Dropdown/index.d.ts +1 -0
  11. package/dist/components/Dropdown/index.js +4 -0
  12. package/dist/components/MultiSelectSearch/MultiSelectSearch.js +18 -18
  13. package/dist/components/RadioGroup/RadioGroup.js +3 -3
  14. package/dist/components/SelectSearch/SelectSearch.js +21 -21
  15. package/dist/components/Switcher/Switcher.js +4 -4
  16. package/dist/components/TabTrail/TabTrail.js +4 -4
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/components/index.js +117 -115
  19. package/dist/{field-C1kt7aNM.js → field-FJ34aSs4.js} +2 -2
  20. package/dist/{focus-management-DOYCPyGg.js → focus-management-DE4t_lW3.js} +2 -1
  21. package/dist/{hidden-PvGXrYUY.js → hidden-DbgtYPOH.js} +1 -1
  22. package/dist/index.js +141 -139
  23. package/dist/{keyboard-mgWkd2Vh.js → keyboard-B0lm_zyn.js} +111 -114
  24. package/dist/{label-D4GFpe5F.js → label-y3ANLTNC.js} +2 -2
  25. package/dist/open-closed-CdldUPoq.js +86 -0
  26. package/dist/portal-WDFNoIMz.js +1908 -0
  27. package/dist/{use-active-press-CqLGIFz7.js → use-active-press-86hajhdd.js} +1 -1
  28. package/package.json +1 -1
  29. package/dist/combobox-BpYucpxz.js +0 -2896
  30. package/dist/open-closed-D2VjDhAN.js +0 -86
@@ -0,0 +1,980 @@
1
+ import { n as H, u as Ne, d as xe, o as g, M as _e, W as ue, a as te, H as ce, y as fe, p as Qe, $ as Ve, b as Be, D as Ie, I as Je, s as Ze, c as k } from "./keyboard-B0lm_zyn.js";
2
+ import * as se from "react";
3
+ import z, { useRef as V, useEffect as We, useState as Te, createContext as ye, useReducer as et, createRef as tt, useCallback as Ee, useMemo as G, useId as he, useContext as Ce, Fragment as He } from "react";
4
+ import { flushSync as Z } from "react-dom";
5
+ import { w as nt } from "./use-active-press-86hajhdd.js";
6
+ import { u as ot } from "./use-by-comparator-CVuf9KBq.js";
7
+ import { K as it, a as rt, b as st, T as lt, z as at, j as ut, u as ct, I as we, G as dt } from "./label-y3ANLTNC.js";
8
+ import { c as pt, E as mt, R as ft, v as ht, y as vt, n as je, x as bt, a as gt, b as xt, m as Et, f as Ot, d as Pe, t as St, g as It } from "./portal-WDFNoIMz.js";
9
+ import { e as Tt } from "./use-resolve-button-type-DhFdPxnv.js";
10
+ import { c as yt, i as me, u as Ct, R as wt, H as Mt } from "./open-closed-CdldUPoq.js";
11
+ import { f as Rt, _ as $t } from "./focus-management-DE4t_lW3.js";
12
+ import { r as _t } from "./bugs-diTMAGNw.js";
13
+ function re(e, i, t) {
14
+ let n = t.initialDeps ?? [], o;
15
+ return () => {
16
+ var r, l, s, a;
17
+ let c;
18
+ t.key && ((r = t.debug) != null && r.call(t)) && (c = Date.now());
19
+ const d = e();
20
+ if (!(d.length !== n.length || d.some((u, x) => n[x] !== u)))
21
+ return o;
22
+ n = d;
23
+ let b;
24
+ if (t.key && ((l = t.debug) != null && l.call(t)) && (b = Date.now()), o = i(...d), t.key && ((s = t.debug) != null && s.call(t))) {
25
+ const u = Math.round((Date.now() - c) * 100) / 100, x = Math.round((Date.now() - b) * 100) / 100, O = x / 16, h = (y, $) => {
26
+ for (y = String(y); y.length < $; )
27
+ y = " " + y;
28
+ return y;
29
+ };
30
+ console.info(
31
+ `%c⏱ ${h(x, 5)} /${h(u, 5)} ms`,
32
+ `
33
+ font-size: .6rem;
34
+ font-weight: bold;
35
+ color: hsl(${Math.max(
36
+ 0,
37
+ Math.min(120 - 120 * O, 120)
38
+ )}deg 100% 31%);`,
39
+ t == null ? void 0 : t.key
40
+ );
41
+ }
42
+ return (a = t == null ? void 0 : t.onChange) == null || a.call(t, o), o;
43
+ };
44
+ }
45
+ function be(e, i) {
46
+ if (e === void 0)
47
+ throw new Error("Unexpected undefined");
48
+ return e;
49
+ }
50
+ const Pt = (e, i) => Math.abs(e - i) < 1, zt = (e, i, t) => {
51
+ let n;
52
+ return function(...o) {
53
+ e.clearTimeout(n), n = e.setTimeout(() => i.apply(this, o), t);
54
+ };
55
+ }, Dt = (e) => e, Ft = (e) => {
56
+ const i = Math.max(e.startIndex - e.overscan, 0), t = Math.min(e.endIndex + e.overscan, e.count - 1), n = [];
57
+ for (let o = i; o <= t; o++)
58
+ n.push(o);
59
+ return n;
60
+ }, kt = (e, i) => {
61
+ const t = e.scrollElement;
62
+ if (!t)
63
+ return;
64
+ const n = e.targetWindow;
65
+ if (!n)
66
+ return;
67
+ const o = (l) => {
68
+ const { width: s, height: a } = l;
69
+ i({ width: Math.round(s), height: Math.round(a) });
70
+ };
71
+ if (o(t.getBoundingClientRect()), !n.ResizeObserver)
72
+ return () => {
73
+ };
74
+ const r = new n.ResizeObserver((l) => {
75
+ const s = l[0];
76
+ if (s != null && s.borderBoxSize) {
77
+ const a = s.borderBoxSize[0];
78
+ if (a) {
79
+ o({ width: a.inlineSize, height: a.blockSize });
80
+ return;
81
+ }
82
+ }
83
+ o(t.getBoundingClientRect());
84
+ });
85
+ return r.observe(t, { box: "border-box" }), () => {
86
+ r.unobserve(t);
87
+ };
88
+ }, ze = {
89
+ passive: !0
90
+ }, At = typeof window > "u" ? !0 : "onscrollend" in window, Lt = (e, i) => {
91
+ const t = e.scrollElement;
92
+ if (!t)
93
+ return;
94
+ const n = e.targetWindow;
95
+ if (!n)
96
+ return;
97
+ let o = 0;
98
+ const r = At ? () => {
99
+ } : zt(
100
+ n,
101
+ () => {
102
+ i(o, !1);
103
+ },
104
+ e.options.isScrollingResetDelay
105
+ ), l = (c) => () => {
106
+ o = t[e.options.horizontal ? "scrollLeft" : "scrollTop"], r(), i(o, c);
107
+ }, s = l(!0), a = l(!1);
108
+ return a(), t.addEventListener("scroll", s, ze), t.addEventListener("scrollend", a, ze), () => {
109
+ t.removeEventListener("scroll", s), t.removeEventListener("scrollend", a);
110
+ };
111
+ }, Nt = (e, i, t) => {
112
+ if (i != null && i.borderBoxSize) {
113
+ const n = i.borderBoxSize[0];
114
+ if (n)
115
+ return Math.round(
116
+ n[t.options.horizontal ? "inlineSize" : "blockSize"]
117
+ );
118
+ }
119
+ return Math.round(
120
+ e.getBoundingClientRect()[t.options.horizontal ? "width" : "height"]
121
+ );
122
+ }, Vt = (e, {
123
+ adjustments: i = 0,
124
+ behavior: t
125
+ }, n) => {
126
+ var o, r;
127
+ const l = e + i;
128
+ (r = (o = n.scrollElement) == null ? void 0 : o.scrollTo) == null || r.call(o, {
129
+ [n.options.horizontal ? "left" : "top"]: l,
130
+ behavior: t
131
+ });
132
+ };
133
+ class Bt {
134
+ constructor(i) {
135
+ this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollToIndexTimeoutId = null, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.observer = /* @__PURE__ */ (() => {
136
+ let t = null;
137
+ const n = () => t || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : t = new this.targetWindow.ResizeObserver((o) => {
138
+ o.forEach((r) => {
139
+ this._measureElement(r.target, r);
140
+ });
141
+ }));
142
+ return {
143
+ disconnect: () => {
144
+ var o;
145
+ return (o = n()) == null ? void 0 : o.disconnect();
146
+ },
147
+ observe: (o) => {
148
+ var r;
149
+ return (r = n()) == null ? void 0 : r.observe(o, { box: "border-box" });
150
+ },
151
+ unobserve: (o) => {
152
+ var r;
153
+ return (r = n()) == null ? void 0 : r.unobserve(o);
154
+ }
155
+ };
156
+ })(), this.range = null, this.setOptions = (t) => {
157
+ Object.entries(t).forEach(([n, o]) => {
158
+ typeof o > "u" && delete t[n];
159
+ }), this.options = {
160
+ debug: !1,
161
+ initialOffset: 0,
162
+ overscan: 1,
163
+ paddingStart: 0,
164
+ paddingEnd: 0,
165
+ scrollPaddingStart: 0,
166
+ scrollPaddingEnd: 0,
167
+ horizontal: !1,
168
+ getItemKey: Dt,
169
+ rangeExtractor: Ft,
170
+ onChange: () => {
171
+ },
172
+ measureElement: Nt,
173
+ initialRect: { width: 0, height: 0 },
174
+ scrollMargin: 0,
175
+ gap: 0,
176
+ indexAttribute: "data-index",
177
+ initialMeasurementsCache: [],
178
+ lanes: 1,
179
+ isScrollingResetDelay: 150,
180
+ enabled: !0,
181
+ ...t
182
+ };
183
+ }, this.notify = (t, n) => {
184
+ var o, r;
185
+ const { startIndex: l, endIndex: s } = this.range ?? {
186
+ startIndex: void 0,
187
+ endIndex: void 0
188
+ }, a = this.calculateRange();
189
+ (t || l !== (a == null ? void 0 : a.startIndex) || s !== (a == null ? void 0 : a.endIndex)) && ((r = (o = this.options).onChange) == null || r.call(o, this, n));
190
+ }, this.cleanup = () => {
191
+ this.unsubs.filter(Boolean).forEach((t) => t()), this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.observer.disconnect(), this.elementsCache.clear();
192
+ }, this._didMount = () => () => {
193
+ this.cleanup();
194
+ }, this._willUpdate = () => {
195
+ var t;
196
+ const n = this.options.enabled ? this.options.getScrollElement() : null;
197
+ if (this.scrollElement !== n) {
198
+ if (this.cleanup(), !n) {
199
+ this.notify(!1, !1);
200
+ return;
201
+ }
202
+ this.scrollElement = n, this.scrollElement && "ownerDocument" in this.scrollElement ? this.targetWindow = this.scrollElement.ownerDocument.defaultView : this.targetWindow = ((t = this.scrollElement) == null ? void 0 : t.window) ?? null, this._scrollToOffset(this.getScrollOffset(), {
203
+ adjustments: void 0,
204
+ behavior: void 0
205
+ }), this.unsubs.push(
206
+ this.options.observeElementRect(this, (o) => {
207
+ this.scrollRect = o, this.notify(!1, !1);
208
+ })
209
+ ), this.unsubs.push(
210
+ this.options.observeElementOffset(this, (o, r) => {
211
+ this.scrollAdjustments = 0, this.scrollDirection = r ? this.getScrollOffset() < o ? "forward" : "backward" : null, this.scrollOffset = o;
212
+ const l = this.isScrolling;
213
+ this.isScrolling = r, this.notify(l !== r, r);
214
+ })
215
+ );
216
+ }
217
+ }, this.getSize = () => this.options.enabled ? (this.scrollRect = this.scrollRect ?? this.options.initialRect, this.scrollRect[this.options.horizontal ? "width" : "height"]) : (this.scrollRect = null, 0), this.getScrollOffset = () => this.options.enabled ? (this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset == "function" ? this.options.initialOffset() : this.options.initialOffset), this.scrollOffset) : (this.scrollOffset = null, 0), this.getFurthestMeasurement = (t, n) => {
218
+ const o = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
219
+ for (let l = n - 1; l >= 0; l--) {
220
+ const s = t[l];
221
+ if (o.has(s.lane))
222
+ continue;
223
+ const a = r.get(
224
+ s.lane
225
+ );
226
+ if (a == null || s.end > a.end ? r.set(s.lane, s) : s.end < a.end && o.set(s.lane, !0), o.size === this.options.lanes)
227
+ break;
228
+ }
229
+ return r.size === this.options.lanes ? Array.from(r.values()).sort((l, s) => l.end === s.end ? l.index - s.index : l.end - s.end)[0] : void 0;
230
+ }, this.getMeasurementOptions = re(
231
+ () => [
232
+ this.options.count,
233
+ this.options.paddingStart,
234
+ this.options.scrollMargin,
235
+ this.options.getItemKey,
236
+ this.options.enabled
237
+ ],
238
+ (t, n, o, r, l) => (this.pendingMeasuredCacheIndexes = [], {
239
+ count: t,
240
+ paddingStart: n,
241
+ scrollMargin: o,
242
+ getItemKey: r,
243
+ enabled: l
244
+ }),
245
+ {
246
+ key: !1
247
+ }
248
+ ), this.getMeasurements = re(
249
+ () => [this.getMeasurementOptions(), this.itemSizeCache],
250
+ ({ count: t, paddingStart: n, scrollMargin: o, getItemKey: r, enabled: l }, s) => {
251
+ var a;
252
+ if (!l)
253
+ return this.measurementsCache = [], this.itemSizeCache.clear(), [];
254
+ this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((m) => {
255
+ this.itemSizeCache.set(m.key, m.size);
256
+ }));
257
+ const c = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
258
+ this.pendingMeasuredCacheIndexes = [];
259
+ const d = this.measurementsCache.slice(0, c);
260
+ for (let m = c; m < t; m++) {
261
+ let b = (a = this.measurementsCache[m]) == null ? void 0 : a.measureElement;
262
+ b || (b = (S) => {
263
+ const w = r(m), I = this.elementsCache.get(w);
264
+ if (!S) {
265
+ I && (this.observer.unobserve(I), this.elementsCache.delete(w));
266
+ return;
267
+ }
268
+ I !== S && (I && this.observer.unobserve(I), this.observer.observe(S), this.elementsCache.set(w, S)), S.isConnected && this.resizeItem(
269
+ m,
270
+ this.options.measureElement(S, void 0, this)
271
+ );
272
+ });
273
+ const u = r(m), x = this.options.lanes === 1 ? d[m - 1] : this.getFurthestMeasurement(d, m), O = x ? x.end + this.options.gap : n + o, h = s.get(u), y = typeof h == "number" ? h : this.options.estimateSize(m), $ = O + y, _ = x ? x.lane : m % this.options.lanes;
274
+ d[m] = {
275
+ index: m,
276
+ start: O,
277
+ size: y,
278
+ end: $,
279
+ key: u,
280
+ lane: _,
281
+ measureElement: b
282
+ };
283
+ }
284
+ return this.measurementsCache = d, d;
285
+ },
286
+ {
287
+ key: process.env.NODE_ENV !== "production" && "getMeasurements",
288
+ debug: () => this.options.debug
289
+ }
290
+ ), this.calculateRange = re(
291
+ () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],
292
+ (t, n, o) => this.range = t.length > 0 && n > 0 ? Wt({
293
+ measurements: t,
294
+ outerSize: n,
295
+ scrollOffset: o
296
+ }) : null,
297
+ {
298
+ key: process.env.NODE_ENV !== "production" && "calculateRange",
299
+ debug: () => this.options.debug
300
+ }
301
+ ), this.getIndexes = re(
302
+ () => [
303
+ this.options.rangeExtractor,
304
+ this.calculateRange(),
305
+ this.options.overscan,
306
+ this.options.count
307
+ ],
308
+ (t, n, o, r) => n === null ? [] : t({
309
+ startIndex: n.startIndex,
310
+ endIndex: n.endIndex,
311
+ overscan: o,
312
+ count: r
313
+ }),
314
+ {
315
+ key: process.env.NODE_ENV !== "production" && "getIndexes",
316
+ debug: () => this.options.debug
317
+ }
318
+ ), this.indexFromElement = (t) => {
319
+ const n = this.options.indexAttribute, o = t.getAttribute(n);
320
+ return o ? parseInt(o, 10) : (console.warn(
321
+ `Missing attribute name '${n}={index}' on measured element.`
322
+ ), -1);
323
+ }, this._measureElement = (t, n) => {
324
+ const o = this.indexFromElement(t), r = this.getMeasurements()[o];
325
+ if (!r || !t.isConnected) {
326
+ this.elementsCache.forEach((s, a) => {
327
+ s === t && (this.observer.unobserve(t), this.elementsCache.delete(a));
328
+ });
329
+ return;
330
+ }
331
+ const l = this.elementsCache.get(r.key);
332
+ l !== t && (l && this.observer.unobserve(l), this.observer.observe(t), this.elementsCache.set(r.key, t)), this.resizeItem(o, this.options.measureElement(t, n, this));
333
+ }, this.resizeItem = (t, n) => {
334
+ const o = this.getMeasurements()[t];
335
+ if (!o)
336
+ return;
337
+ const r = this.itemSizeCache.get(o.key) ?? o.size, l = n - r;
338
+ l !== 0 && ((this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(o, l, this) : o.start < this.getScrollOffset() + this.scrollAdjustments) && (process.env.NODE_ENV !== "production" && this.options.debug && console.info("correction", l), this._scrollToOffset(this.getScrollOffset(), {
339
+ adjustments: this.scrollAdjustments += l,
340
+ behavior: void 0
341
+ })), this.pendingMeasuredCacheIndexes.push(o.index), this.itemSizeCache = new Map(this.itemSizeCache.set(o.key, n)), this.notify(!0, !1));
342
+ }, this.measureElement = (t) => {
343
+ t && this._measureElement(t, void 0);
344
+ }, this.getVirtualItems = re(
345
+ () => [this.getIndexes(), this.getMeasurements()],
346
+ (t, n) => {
347
+ const o = [];
348
+ for (let r = 0, l = t.length; r < l; r++) {
349
+ const s = t[r], a = n[s];
350
+ o.push(a);
351
+ }
352
+ return o;
353
+ },
354
+ {
355
+ key: process.env.NODE_ENV !== "production" && "getIndexes",
356
+ debug: () => this.options.debug
357
+ }
358
+ ), this.getVirtualItemForOffset = (t) => {
359
+ const n = this.getMeasurements();
360
+ if (n.length !== 0)
361
+ return be(
362
+ n[Ue(
363
+ 0,
364
+ n.length - 1,
365
+ (o) => be(n[o]).start,
366
+ t
367
+ )]
368
+ );
369
+ }, this.getOffsetForAlignment = (t, n) => {
370
+ const o = this.getSize(), r = this.getScrollOffset();
371
+ n === "auto" && (t <= r ? n = "start" : t >= r + o ? n = "end" : n = "start"), n === "start" ? t = t : n === "end" ? t = t - o : n === "center" && (t = t - o / 2);
372
+ const l = this.options.horizontal ? "scrollWidth" : "scrollHeight", a = (this.scrollElement ? "document" in this.scrollElement ? this.scrollElement.document.documentElement[l] : this.scrollElement[l] : 0) - o;
373
+ return Math.max(Math.min(a, t), 0);
374
+ }, this.getOffsetForIndex = (t, n = "auto") => {
375
+ t = Math.max(0, Math.min(t, this.options.count - 1));
376
+ const o = this.getMeasurements()[t];
377
+ if (!o)
378
+ return;
379
+ const r = this.getSize(), l = this.getScrollOffset();
380
+ if (n === "auto")
381
+ if (o.end >= l + r - this.options.scrollPaddingEnd)
382
+ n = "end";
383
+ else if (o.start <= l + this.options.scrollPaddingStart)
384
+ n = "start";
385
+ else
386
+ return [l, n];
387
+ const s = n === "end" ? o.end + this.options.scrollPaddingEnd : o.start - this.options.scrollPaddingStart;
388
+ return [this.getOffsetForAlignment(s, n), n];
389
+ }, this.isDynamicMode = () => this.elementsCache.size > 0, this.cancelScrollToIndex = () => {
390
+ this.scrollToIndexTimeoutId !== null && this.targetWindow && (this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId), this.scrollToIndexTimeoutId = null);
391
+ }, this.scrollToOffset = (t, { align: n = "start", behavior: o } = {}) => {
392
+ this.cancelScrollToIndex(), o === "smooth" && this.isDynamicMode() && console.warn(
393
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
394
+ ), this._scrollToOffset(this.getOffsetForAlignment(t, n), {
395
+ adjustments: void 0,
396
+ behavior: o
397
+ });
398
+ }, this.scrollToIndex = (t, { align: n = "auto", behavior: o } = {}) => {
399
+ t = Math.max(0, Math.min(t, this.options.count - 1)), this.cancelScrollToIndex(), o === "smooth" && this.isDynamicMode() && console.warn(
400
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
401
+ );
402
+ const r = this.getOffsetForIndex(t, n);
403
+ if (!r) return;
404
+ const [l, s] = r;
405
+ this._scrollToOffset(l, { adjustments: void 0, behavior: o }), o !== "smooth" && this.isDynamicMode() && this.targetWindow && (this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {
406
+ if (this.scrollToIndexTimeoutId = null, this.elementsCache.has(
407
+ this.options.getItemKey(t)
408
+ )) {
409
+ const [c] = be(
410
+ this.getOffsetForIndex(t, s)
411
+ );
412
+ Pt(c, this.getScrollOffset()) || this.scrollToIndex(t, { align: s, behavior: o });
413
+ } else
414
+ this.scrollToIndex(t, { align: s, behavior: o });
415
+ }));
416
+ }, this.scrollBy = (t, { behavior: n } = {}) => {
417
+ this.cancelScrollToIndex(), n === "smooth" && this.isDynamicMode() && console.warn(
418
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
419
+ ), this._scrollToOffset(this.getScrollOffset() + t, {
420
+ adjustments: void 0,
421
+ behavior: n
422
+ });
423
+ }, this.getTotalSize = () => {
424
+ var t;
425
+ const n = this.getMeasurements();
426
+ let o;
427
+ return n.length === 0 ? o = this.options.paddingStart : o = this.options.lanes === 1 ? ((t = n[n.length - 1]) == null ? void 0 : t.end) ?? 0 : Math.max(
428
+ ...n.slice(-this.options.lanes).map((r) => r.end)
429
+ ), o - this.options.scrollMargin + this.options.paddingEnd;
430
+ }, this._scrollToOffset = (t, {
431
+ adjustments: n,
432
+ behavior: o
433
+ }) => {
434
+ this.options.scrollToFn(t, { behavior: o, adjustments: n }, this);
435
+ }, this.measure = () => {
436
+ var t, n;
437
+ this.itemSizeCache = /* @__PURE__ */ new Map(), (n = (t = this.options).onChange) == null || n.call(t, this, !1);
438
+ }, this.setOptions(i);
439
+ }
440
+ }
441
+ const Ue = (e, i, t, n) => {
442
+ for (; e <= i; ) {
443
+ const o = (e + i) / 2 | 0, r = t(o);
444
+ if (r < n)
445
+ e = o + 1;
446
+ else if (r > n)
447
+ i = o - 1;
448
+ else
449
+ return o;
450
+ }
451
+ return e > 0 ? e - 1 : 0;
452
+ };
453
+ function Wt({
454
+ measurements: e,
455
+ outerSize: i,
456
+ scrollOffset: t
457
+ }) {
458
+ const n = e.length - 1, r = Ue(0, n, (s) => e[s].start, t);
459
+ let l = r;
460
+ for (; l < n && e[l].end < t + i; )
461
+ l++;
462
+ return { startIndex: r, endIndex: l };
463
+ }
464
+ const Ht = typeof document < "u" ? se.useLayoutEffect : se.useEffect;
465
+ function jt(e) {
466
+ const i = se.useReducer(() => ({}), {})[1], t = {
467
+ ...e,
468
+ onChange: (o, r) => {
469
+ var l;
470
+ r ? Z(i) : i(), (l = e.onChange) == null || l.call(e, o, r);
471
+ }
472
+ }, [n] = se.useState(
473
+ () => new Bt(t)
474
+ );
475
+ return n.setOptions(t), se.useEffect(() => n._didMount(), []), Ht(() => n._willUpdate()), n;
476
+ }
477
+ function Ut(e) {
478
+ return jt({
479
+ observeElementRect: kt,
480
+ observeElementOffset: Lt,
481
+ scrollToFn: Vt,
482
+ ...e
483
+ });
484
+ }
485
+ let Oe = /* @__PURE__ */ new Map(), le = /* @__PURE__ */ new Map();
486
+ function De(e) {
487
+ var i;
488
+ let t = (i = le.get(e)) != null ? i : 0;
489
+ return le.set(e, t + 1), t !== 0 ? () => Fe(e) : (Oe.set(e, { "aria-hidden": e.getAttribute("aria-hidden"), inert: e.inert }), e.setAttribute("aria-hidden", "true"), e.inert = !0, () => Fe(e));
490
+ }
491
+ function Fe(e) {
492
+ var i;
493
+ let t = (i = le.get(e)) != null ? i : 1;
494
+ if (t === 1 ? le.delete(e) : le.set(e, t - 1), t !== 1) return;
495
+ let n = Oe.get(e);
496
+ n && (n["aria-hidden"] === null ? e.removeAttribute("aria-hidden") : e.setAttribute("aria-hidden", n["aria-hidden"]), e.inert = n.inert, Oe.delete(e));
497
+ }
498
+ function Kt(e, { allowed: i, disallowed: t } = {}) {
499
+ let n = pt(e, "inert-others");
500
+ H(() => {
501
+ var o, r;
502
+ if (!n) return;
503
+ let l = xe();
504
+ for (let a of (o = t == null ? void 0 : t()) != null ? o : []) a && l.add(De(a));
505
+ let s = (r = i == null ? void 0 : i()) != null ? r : [];
506
+ for (let a of s) {
507
+ if (!a) continue;
508
+ let c = Ne(a);
509
+ if (!c) continue;
510
+ let d = a.parentElement;
511
+ for (; d && d !== c.body; ) {
512
+ for (let m of d.children) s.some((b) => m.contains(b)) || l.add(De(m));
513
+ d = d.parentElement;
514
+ }
515
+ }
516
+ return l.dispose;
517
+ }, [n, i, t]);
518
+ }
519
+ function Ke(e) {
520
+ let i = V({ value: "", selectionStart: null, selectionEnd: null });
521
+ return mt(e, "blur", (t) => {
522
+ let n = t.target;
523
+ n instanceof HTMLInputElement && (i.current = { value: n.value, selectionStart: n.selectionStart, selectionEnd: n.selectionEnd });
524
+ }), g(() => {
525
+ if (document.activeElement !== e && e instanceof HTMLInputElement && e.isConnected) {
526
+ if (e.focus({ preventScroll: !0 }), e.value !== i.current.value) e.setSelectionRange(e.value.length, e.value.length);
527
+ else {
528
+ let { selectionStart: t, selectionEnd: n } = i.current;
529
+ t !== null && n !== null && e.setSelectionRange(t, n);
530
+ }
531
+ i.current = { value: "", selectionStart: null, selectionEnd: null };
532
+ }
533
+ });
534
+ }
535
+ function ke(e) {
536
+ return [e.screenX, e.screenY];
537
+ }
538
+ function Gt() {
539
+ let e = V([-1, -1]);
540
+ return { wasMoved(i) {
541
+ let t = ke(i);
542
+ return e.current[0] === t[0] && e.current[1] === t[1] ? !1 : (e.current = t, !0);
543
+ }, update(i) {
544
+ e.current = ke(i);
545
+ } };
546
+ }
547
+ function qt(e, { container: i, accept: t, walk: n }) {
548
+ let o = V(t), r = V(n);
549
+ We(() => {
550
+ o.current = t, r.current = n;
551
+ }, [t, n]), H(() => {
552
+ if (!i || !e) return;
553
+ let l = Ne(i);
554
+ if (!l) return;
555
+ let s = o.current, a = r.current, c = Object.assign((m) => s(m), { acceptNode: s }), d = l.createTreeWalker(i, NodeFilter.SHOW_ELEMENT, c, !1);
556
+ for (; d.nextNode(); ) a(d.currentNode);
557
+ }, [i, e, o, r]);
558
+ }
559
+ function Ae(e, i) {
560
+ let t = V([]), n = g(e);
561
+ We(() => {
562
+ let o = [...t.current];
563
+ for (let [r, l] of i.entries()) if (t.current[r] !== l) {
564
+ let s = n(i, o);
565
+ return t.current = i, s;
566
+ }
567
+ }, [n, ...i]);
568
+ }
569
+ function Yt({ children: e, freeze: i }) {
570
+ let t = Se(i, e);
571
+ return z.createElement(z.Fragment, null, t);
572
+ }
573
+ function Se(e, i) {
574
+ let [t, n] = Te(i);
575
+ return !e && t !== i && n(i), e ? t : i;
576
+ }
577
+ function Xt(e) {
578
+ function i() {
579
+ document.readyState !== "loading" && (e(), document.removeEventListener("DOMContentLoaded", i));
580
+ }
581
+ typeof window < "u" && typeof document < "u" && (document.addEventListener("DOMContentLoaded", i), i());
582
+ }
583
+ let J = [];
584
+ Xt(() => {
585
+ function e(i) {
586
+ if (!(i.target instanceof HTMLElement) || i.target === document.body || J[0] === i.target) return;
587
+ let t = i.target;
588
+ t = t.closest(Rt), J.unshift(t ?? i.target), J = J.filter((n) => n != null && n.isConnected), J.splice(10);
589
+ }
590
+ window.addEventListener("click", e, { capture: !0 }), window.addEventListener("mousedown", e, { capture: !0 }), window.addEventListener("focus", e, { capture: !0 }), document.body.addEventListener("click", e, { capture: !0 }), document.body.addEventListener("mousedown", e, { capture: !0 }), document.body.addEventListener("focus", e, { capture: !0 });
591
+ });
592
+ function Qt(e) {
593
+ throw new Error("Unexpected object: " + e);
594
+ }
595
+ var M = ((e) => (e[e.First = 0] = "First", e[e.Previous = 1] = "Previous", e[e.Next = 2] = "Next", e[e.Last = 3] = "Last", e[e.Specific = 4] = "Specific", e[e.Nothing = 5] = "Nothing", e))(M || {});
596
+ function Le(e, i) {
597
+ let t = i.resolveItems();
598
+ if (t.length <= 0) return null;
599
+ let n = i.resolveActiveIndex(), o = n ?? -1;
600
+ switch (e.focus) {
601
+ case 0: {
602
+ for (let r = 0; r < t.length; ++r) if (!i.resolveDisabled(t[r], r, t)) return r;
603
+ return n;
604
+ }
605
+ case 1: {
606
+ o === -1 && (o = t.length);
607
+ for (let r = o - 1; r >= 0; --r) if (!i.resolveDisabled(t[r], r, t)) return r;
608
+ return n;
609
+ }
610
+ case 2: {
611
+ for (let r = o + 1; r < t.length; ++r) if (!i.resolveDisabled(t[r], r, t)) return r;
612
+ return n;
613
+ }
614
+ case 3: {
615
+ for (let r = t.length - 1; r >= 0; --r) if (!i.resolveDisabled(t[r], r, t)) return r;
616
+ return n;
617
+ }
618
+ case 4: {
619
+ for (let r = 0; r < t.length; ++r) if (i.resolveId(t[r], r, t) === e.id) return r;
620
+ return n;
621
+ }
622
+ case 5:
623
+ return null;
624
+ default:
625
+ Qt(e);
626
+ }
627
+ }
628
+ var Me = ((e) => (e[e.Left = 0] = "Left", e[e.Right = 2] = "Right", e))(Me || {}), Jt = ((e) => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(Jt || {}), Zt = ((e) => (e[e.Single = 0] = "Single", e[e.Multi = 1] = "Multi", e))(Zt || {}), en = ((e) => (e[e.Pointer = 0] = "Pointer", e[e.Focus = 1] = "Focus", e[e.Other = 2] = "Other", e))(en || {}), tn = ((e) => (e[e.OpenCombobox = 0] = "OpenCombobox", e[e.CloseCombobox = 1] = "CloseCombobox", e[e.GoToOption = 2] = "GoToOption", e[e.SetTyping = 3] = "SetTyping", e[e.RegisterOption = 4] = "RegisterOption", e[e.UnregisterOption = 5] = "UnregisterOption", e[e.SetActivationTrigger = 6] = "SetActivationTrigger", e[e.UpdateVirtualConfiguration = 7] = "UpdateVirtualConfiguration", e[e.SetInputElement = 8] = "SetInputElement", e[e.SetButtonElement = 9] = "SetButtonElement", e[e.SetOptionsElement = 10] = "SetOptionsElement", e))(tn || {});
629
+ function ge(e, i = (t) => t) {
630
+ let t = e.activeOptionIndex !== null ? e.options[e.activeOptionIndex] : null, n = i(e.options.slice()), o = n.length > 0 && n[0].dataRef.current.order !== null ? n.sort((l, s) => l.dataRef.current.order - s.dataRef.current.order) : $t(n, (l) => l.dataRef.current.domRef.current), r = t ? o.indexOf(t) : null;
631
+ return r === -1 && (r = null), { options: o, activeOptionIndex: r };
632
+ }
633
+ let nn = { 1(e) {
634
+ var i;
635
+ return (i = e.dataRef.current) != null && i.disabled || e.comboboxState === 1 ? e : { ...e, activeOptionIndex: null, comboboxState: 1, isTyping: !1, activationTrigger: 2, __demoMode: !1 };
636
+ }, 0(e) {
637
+ var i, t;
638
+ if ((i = e.dataRef.current) != null && i.disabled || e.comboboxState === 0) return e;
639
+ if ((t = e.dataRef.current) != null && t.value) {
640
+ let n = e.dataRef.current.calculateIndex(e.dataRef.current.value);
641
+ if (n !== -1) return { ...e, activeOptionIndex: n, comboboxState: 0, __demoMode: !1 };
642
+ }
643
+ return { ...e, comboboxState: 0, __demoMode: !1 };
644
+ }, 3(e, i) {
645
+ return e.isTyping === i.isTyping ? e : { ...e, isTyping: i.isTyping };
646
+ }, 2(e, i) {
647
+ var t, n, o, r;
648
+ if ((t = e.dataRef.current) != null && t.disabled || e.optionsElement && !((n = e.dataRef.current) != null && n.optionsPropsRef.current.static) && e.comboboxState === 1) return e;
649
+ if (e.virtual) {
650
+ let { options: c, disabled: d } = e.virtual, m = i.focus === M.Specific ? i.idx : Le(i, { resolveItems: () => c, resolveActiveIndex: () => {
651
+ var u, x;
652
+ return (x = (u = e.activeOptionIndex) != null ? u : c.findIndex((O) => !d(O))) != null ? x : null;
653
+ }, resolveDisabled: d, resolveId() {
654
+ throw new Error("Function not implemented.");
655
+ } }), b = (o = i.trigger) != null ? o : 2;
656
+ return e.activeOptionIndex === m && e.activationTrigger === b ? e : { ...e, activeOptionIndex: m, activationTrigger: b, isTyping: !1, __demoMode: !1 };
657
+ }
658
+ let l = ge(e);
659
+ if (l.activeOptionIndex === null) {
660
+ let c = l.options.findIndex((d) => !d.dataRef.current.disabled);
661
+ c !== -1 && (l.activeOptionIndex = c);
662
+ }
663
+ let s = i.focus === M.Specific ? i.idx : Le(i, { resolveItems: () => l.options, resolveActiveIndex: () => l.activeOptionIndex, resolveId: (c) => c.id, resolveDisabled: (c) => c.dataRef.current.disabled }), a = (r = i.trigger) != null ? r : 2;
664
+ return e.activeOptionIndex === s && e.activationTrigger === a ? e : { ...e, ...l, isTyping: !1, activeOptionIndex: s, activationTrigger: a, __demoMode: !1 };
665
+ }, 4: (e, i) => {
666
+ var t, n, o;
667
+ if ((t = e.dataRef.current) != null && t.virtual) return { ...e, options: [...e.options, i.payload] };
668
+ let r = i.payload, l = ge(e, (a) => (a.push(r), a));
669
+ e.activeOptionIndex === null && (n = e.dataRef.current) != null && n.isSelected(i.payload.dataRef.current.value) && (l.activeOptionIndex = l.options.indexOf(r));
670
+ let s = { ...e, ...l, activationTrigger: 2 };
671
+ return (o = e.dataRef.current) != null && o.__demoMode && e.dataRef.current.value === void 0 && (s.activeOptionIndex = 0), s;
672
+ }, 5: (e, i) => {
673
+ var t;
674
+ if ((t = e.dataRef.current) != null && t.virtual) return { ...e, options: e.options.filter((o) => o.id !== i.id) };
675
+ let n = ge(e, (o) => {
676
+ let r = o.findIndex((l) => l.id === i.id);
677
+ return r !== -1 && o.splice(r, 1), o;
678
+ });
679
+ return { ...e, ...n, activationTrigger: 2 };
680
+ }, 6: (e, i) => e.activationTrigger === i.trigger ? e : { ...e, activationTrigger: i.trigger }, 7: (e, i) => {
681
+ var t, n;
682
+ if (e.virtual === null) return { ...e, virtual: { options: i.options, disabled: (t = i.disabled) != null ? t : () => !1 } };
683
+ if (e.virtual.options === i.options && e.virtual.disabled === i.disabled) return e;
684
+ let o = e.activeOptionIndex;
685
+ if (e.activeOptionIndex !== null) {
686
+ let r = i.options.indexOf(e.virtual.options[e.activeOptionIndex]);
687
+ r !== -1 ? o = r : o = null;
688
+ }
689
+ return { ...e, activeOptionIndex: o, virtual: { options: i.options, disabled: (n = i.disabled) != null ? n : () => !1 } };
690
+ }, 8: (e, i) => e.inputElement === i.element ? e : { ...e, inputElement: i.element }, 9: (e, i) => e.buttonElement === i.element ? e : { ...e, buttonElement: i.element }, 10: (e, i) => e.optionsElement === i.element ? e : { ...e, optionsElement: i.element } }, Re = ye(null);
691
+ Re.displayName = "ComboboxActionsContext";
692
+ function de(e) {
693
+ let i = Ce(Re);
694
+ if (i === null) {
695
+ let t = new Error(`<${e} /> is missing a parent <Combobox /> component.`);
696
+ throw Error.captureStackTrace && Error.captureStackTrace(t, de), t;
697
+ }
698
+ return i;
699
+ }
700
+ let Ge = ye(null);
701
+ function on(e) {
702
+ let i = ne("VirtualProvider"), { options: t } = i.virtual, [n, o] = G(() => {
703
+ let c = i.optionsElement;
704
+ if (!c) return [0, 0];
705
+ let d = window.getComputedStyle(c);
706
+ return [parseFloat(d.paddingBlockStart || d.paddingTop), parseFloat(d.paddingBlockEnd || d.paddingBottom)];
707
+ }, [i.optionsElement]), r = Ut({ enabled: t.length !== 0, scrollPaddingStart: n, scrollPaddingEnd: o, count: t.length, estimateSize() {
708
+ return 40;
709
+ }, getScrollElement() {
710
+ return i.optionsElement;
711
+ }, overscan: 12 }), [l, s] = Te(0);
712
+ H(() => {
713
+ s((c) => c + 1);
714
+ }, [t]);
715
+ let a = r.getVirtualItems();
716
+ return a.length === 0 ? null : z.createElement(Ge.Provider, { value: r }, z.createElement("div", { style: { position: "relative", width: "100%", height: `${r.getTotalSize()}px` }, ref: (c) => {
717
+ if (c) {
718
+ if (typeof process < "u" && process.env.JEST_WORKER_ID !== void 0 || i.activationTrigger === 0) return;
719
+ i.activeOptionIndex !== null && t.length > i.activeOptionIndex && r.scrollToIndex(i.activeOptionIndex);
720
+ }
721
+ } }, a.map((c) => {
722
+ var d;
723
+ return z.createElement(He, { key: c.key }, z.cloneElement((d = e.children) == null ? void 0 : d.call(e, { ...e.slot, option: t[c.index] }), { key: `${l}-${c.key}`, "data-index": c.index, "aria-setsize": t.length, "aria-posinset": c.index + 1, style: { position: "absolute", top: 0, left: 0, transform: `translateY(${c.start}px)`, overflowAnchor: "none" } }));
724
+ })));
725
+ }
726
+ let ae = ye(null);
727
+ ae.displayName = "ComboboxDataContext";
728
+ function ne(e) {
729
+ let i = Ce(ae);
730
+ if (i === null) {
731
+ let t = new Error(`<${e} /> is missing a parent <Combobox /> component.`);
732
+ throw Error.captureStackTrace && Error.captureStackTrace(t, ne), t;
733
+ }
734
+ return i;
735
+ }
736
+ function rn(e, i) {
737
+ return te(i.type, nn, e, i);
738
+ }
739
+ let sn = He;
740
+ function ln(e, i) {
741
+ var t, n;
742
+ let o = rt(), { value: r, defaultValue: l, onChange: s, form: a, name: c, by: d, disabled: m = o || !1, onClose: b, __demoMode: u = !1, multiple: x = !1, immediate: O = !1, virtual: h = null, nullable: y, ...$ } = e, _ = st(l), [S = x ? [] : void 0, w] = lt(r, s, _), [I, C] = et(rn, { dataRef: tt(), comboboxState: u ? 0 : 1, isTyping: !1, options: [], virtual: h ? { options: h.options, disabled: (t = h.disabled) != null ? t : () => !1 } : null, activeOptionIndex: null, activationTrigger: 2, inputElement: null, buttonElement: null, optionsElement: null, __demoMode: u }), E = V(!1), j = V({ static: !1, hold: !1 }), A = ot(d), U = g((v) => h ? d === null ? h.options.indexOf(v) : h.options.findIndex((T) => A(T, v)) : I.options.findIndex((T) => A(T.dataRef.current.value, v))), q = Ee((v) => te(p.mode, { 1: () => S.some((T) => A(T, v)), 0: () => A(S, v) }), [S]), K = g((v) => I.activeOptionIndex === U(v)), p = G(() => ({ ...I, immediate: O, optionsPropsRef: j, value: S, defaultValue: _, disabled: m, mode: x ? 1 : 0, virtual: h ? I.virtual : null, get activeOptionIndex() {
743
+ if (E.current && I.activeOptionIndex === null && (h ? h.options.length > 0 : I.options.length > 0)) {
744
+ if (h) {
745
+ let T = h.options.findIndex((W) => {
746
+ var pe, $e;
747
+ return !(($e = (pe = h.disabled) == null ? void 0 : pe.call(h, W)) != null && $e);
748
+ });
749
+ if (T !== -1) return T;
750
+ }
751
+ let v = I.options.findIndex((T) => !T.dataRef.current.disabled);
752
+ if (v !== -1) return v;
753
+ }
754
+ return I.activeOptionIndex;
755
+ }, calculateIndex: U, compare: A, isSelected: q, isActive: K }), [S, _, m, x, u, I, h]);
756
+ H(() => {
757
+ var v;
758
+ h && C({ type: 7, options: h.options, disabled: (v = h.disabled) != null ? v : null });
759
+ }, [h, h == null ? void 0 : h.options, h == null ? void 0 : h.disabled]), H(() => {
760
+ I.dataRef.current = p;
761
+ }, [p]);
762
+ let B = p.comboboxState === 0;
763
+ ft(B, [p.buttonElement, p.inputElement, p.optionsElement], () => F.closeCombobox());
764
+ let oe = G(() => {
765
+ var v, T, W;
766
+ return { open: p.comboboxState === 0, disabled: m, activeIndex: p.activeOptionIndex, activeOption: p.activeOptionIndex === null ? null : p.virtual ? p.virtual.options[(v = p.activeOptionIndex) != null ? v : 0] : (W = (T = p.options[p.activeOptionIndex]) == null ? void 0 : T.dataRef.current.value) != null ? W : null, value: S };
767
+ }, [p, m, S]), Y = g(() => {
768
+ if (p.activeOptionIndex !== null) {
769
+ if (F.setIsTyping(!1), p.virtual) f(p.virtual.options[p.activeOptionIndex]);
770
+ else {
771
+ let { dataRef: v } = p.options[p.activeOptionIndex];
772
+ f(v.current.value);
773
+ }
774
+ F.goToOption(M.Specific, p.activeOptionIndex);
775
+ }
776
+ }), X = g(() => {
777
+ C({ type: 0 }), E.current = !0;
778
+ }), ee = g(() => {
779
+ C({ type: 1 }), E.current = !1, b == null || b();
780
+ }), ie = g((v) => {
781
+ C({ type: 3, isTyping: v });
782
+ }), D = g((v, T, W) => (E.current = !1, v === M.Specific ? C({ type: 2, focus: M.Specific, idx: T, trigger: W }) : C({ type: 2, focus: v, trigger: W }))), ve = g((v, T) => (C({ type: 4, payload: { id: v, dataRef: T } }), () => {
783
+ p.isActive(T.current.value) && (E.current = !0), C({ type: 5, id: v });
784
+ })), f = g((v) => te(p.mode, { 0() {
785
+ return w == null ? void 0 : w(v);
786
+ }, 1() {
787
+ let T = p.value.slice(), W = T.findIndex((pe) => A(pe, v));
788
+ return W === -1 ? T.push(v) : T.splice(W, 1), w == null ? void 0 : w(T);
789
+ } })), L = g((v) => {
790
+ C({ type: 6, trigger: v });
791
+ }), P = g((v) => {
792
+ C({ type: 8, element: v });
793
+ }), N = g((v) => {
794
+ C({ type: 9, element: v });
795
+ }), R = g((v) => {
796
+ C({ type: 10, element: v });
797
+ }), F = G(() => ({ onChange: f, registerOption: ve, goToOption: D, setIsTyping: ie, closeCombobox: ee, openCombobox: X, setActivationTrigger: L, selectActiveOption: Y, setInputElement: P, setButtonElement: N, setOptionsElement: R }), []), [Q, qe] = at(), Ye = i === null ? {} : { ref: i }, Xe = Ee(() => {
798
+ if (_ !== void 0) return w == null ? void 0 : w(_);
799
+ }, [w, _]);
800
+ return z.createElement(qe, { value: Q, props: { htmlFor: (n = p.inputElement) == null ? void 0 : n.id }, slot: { open: p.comboboxState === 0, disabled: m } }, z.createElement(ht, null, z.createElement(Re.Provider, { value: F }, z.createElement(ae.Provider, { value: p }, z.createElement(yt, { value: te(p.comboboxState, { 0: me.Open, 1: me.Closed }) }, c != null && z.createElement(ut, { disabled: m, data: S != null ? { [c]: S } : {}, form: a, onReset: Xe }), ce({ ourProps: Ye, theirProps: $, slot: oe, defaultTag: sn, name: "Combobox" }))))));
801
+ }
802
+ let an = "input";
803
+ function un(e, i) {
804
+ var t, n, o, r, l;
805
+ let s = ne("Combobox.Input"), a = de("Combobox.Input"), c = he(), d = ct(), { id: m = d || `headlessui-combobox-input-${c}`, onChange: b, displayValue: u, disabled: x = s.disabled || !1, autoFocus: O = !1, type: h = "text", ...y } = e, $ = V(null), _ = fe($, i, vt(), a.setInputElement), S = je(s.inputElement), w = Qe(), I = g(() => {
806
+ a.onChange(null), s.optionsElement && (s.optionsElement.scrollTop = 0), a.goToOption(M.Nothing);
807
+ }), C = G(() => {
808
+ var f;
809
+ return typeof u == "function" && s.value !== void 0 ? (f = u(s.value)) != null ? f : "" : typeof s.value == "string" ? s.value : "";
810
+ }, [s.value, u]);
811
+ Ae(([f, L], [P, N]) => {
812
+ if (s.isTyping) return;
813
+ let R = $.current;
814
+ R && ((N === 0 && L === 1 || f !== P) && (R.value = f), requestAnimationFrame(() => {
815
+ if (s.isTyping || !R || (S == null ? void 0 : S.activeElement) !== R) return;
816
+ let { selectionStart: F, selectionEnd: Q } = R;
817
+ Math.abs((Q ?? 0) - (F ?? 0)) === 0 && F === 0 && R.setSelectionRange(R.value.length, R.value.length);
818
+ }));
819
+ }, [C, s.comboboxState, S, s.isTyping]), Ae(([f], [L]) => {
820
+ if (f === 0 && L === 1) {
821
+ if (s.isTyping) return;
822
+ let P = $.current;
823
+ if (!P) return;
824
+ let N = P.value, { selectionStart: R, selectionEnd: F, selectionDirection: Q } = P;
825
+ P.value = "", P.value = N, Q !== null ? P.setSelectionRange(R, F, Q) : P.setSelectionRange(R, F);
826
+ }
827
+ }, [s.comboboxState]);
828
+ let E = V(!1), j = g(() => {
829
+ E.current = !0;
830
+ }), A = g(() => {
831
+ w.nextFrame(() => {
832
+ E.current = !1;
833
+ });
834
+ }), U = g((f) => {
835
+ switch (a.setIsTyping(!0), f.key) {
836
+ case k.Enter:
837
+ if (s.comboboxState !== 0 || E.current) return;
838
+ if (f.preventDefault(), f.stopPropagation(), s.activeOptionIndex === null) {
839
+ a.closeCombobox();
840
+ return;
841
+ }
842
+ a.selectActiveOption(), s.mode === 0 && a.closeCombobox();
843
+ break;
844
+ case k.ArrowDown:
845
+ return f.preventDefault(), f.stopPropagation(), te(s.comboboxState, { 0: () => a.goToOption(M.Next), 1: () => a.openCombobox() });
846
+ case k.ArrowUp:
847
+ return f.preventDefault(), f.stopPropagation(), te(s.comboboxState, { 0: () => a.goToOption(M.Previous), 1: () => {
848
+ Z(() => a.openCombobox()), s.value || a.goToOption(M.Last);
849
+ } });
850
+ case k.Home:
851
+ if (f.shiftKey) break;
852
+ return f.preventDefault(), f.stopPropagation(), a.goToOption(M.First);
853
+ case k.PageUp:
854
+ return f.preventDefault(), f.stopPropagation(), a.goToOption(M.First);
855
+ case k.End:
856
+ if (f.shiftKey) break;
857
+ return f.preventDefault(), f.stopPropagation(), a.goToOption(M.Last);
858
+ case k.PageDown:
859
+ return f.preventDefault(), f.stopPropagation(), a.goToOption(M.Last);
860
+ case k.Escape:
861
+ return s.comboboxState !== 0 ? void 0 : (f.preventDefault(), s.optionsElement && !s.optionsPropsRef.current.static && f.stopPropagation(), s.mode === 0 && s.value === null && I(), a.closeCombobox());
862
+ case k.Tab:
863
+ if (s.comboboxState !== 0) return;
864
+ s.mode === 0 && s.activationTrigger !== 1 && a.selectActiveOption(), a.closeCombobox();
865
+ break;
866
+ }
867
+ }), q = g((f) => {
868
+ b == null || b(f), s.mode === 0 && f.target.value === "" && I(), a.openCombobox();
869
+ }), K = g((f) => {
870
+ var L, P, N;
871
+ let R = (L = f.relatedTarget) != null ? L : J.find((F) => F !== f.currentTarget);
872
+ if (!((P = s.optionsElement) != null && P.contains(R)) && !((N = s.buttonElement) != null && N.contains(R)) && s.comboboxState === 0) return f.preventDefault(), s.mode === 0 && s.value === null && I(), a.closeCombobox();
873
+ }), p = g((f) => {
874
+ var L, P, N;
875
+ let R = (L = f.relatedTarget) != null ? L : J.find((F) => F !== f.currentTarget);
876
+ (P = s.buttonElement) != null && P.contains(R) || (N = s.optionsElement) != null && N.contains(R) || s.disabled || s.immediate && s.comboboxState !== 0 && w.microTask(() => {
877
+ Z(() => a.openCombobox()), a.setActivationTrigger(1);
878
+ });
879
+ }), B = we(), oe = dt(), { isFocused: Y, focusProps: X } = Ve({ autoFocus: O }), { isHovered: ee, hoverProps: ie } = Be({ isDisabled: x }), D = G(() => ({ open: s.comboboxState === 0, disabled: x, hover: ee, focus: Y, autofocus: O }), [s, ee, Y, O, x]), ve = Ie({ ref: _, id: m, role: "combobox", type: h, "aria-controls": (t = s.optionsElement) == null ? void 0 : t.id, "aria-expanded": s.comboboxState === 0, "aria-activedescendant": s.activeOptionIndex === null ? void 0 : s.virtual ? (n = s.options.find((f) => !f.dataRef.current.disabled && s.compare(f.dataRef.current.value, s.virtual.options[s.activeOptionIndex]))) == null ? void 0 : n.id : (o = s.options[s.activeOptionIndex]) == null ? void 0 : o.id, "aria-labelledby": B, "aria-describedby": oe, "aria-autocomplete": "list", defaultValue: (l = (r = e.defaultValue) != null ? r : s.defaultValue !== void 0 ? u == null ? void 0 : u(s.defaultValue) : null) != null ? l : s.defaultValue, disabled: x || void 0, autoFocus: O, onCompositionStart: j, onCompositionEnd: A, onKeyDown: U, onChange: q, onFocus: p, onBlur: K }, X, ie);
880
+ return ce({ ourProps: ve, theirProps: y, slot: D, defaultTag: an, name: "Combobox.Input" });
881
+ }
882
+ let cn = "button";
883
+ function dn(e, i) {
884
+ var t;
885
+ let n = ne("Combobox.Button"), o = de("Combobox.Button"), r = fe(i, o.setButtonElement), l = Je(), s = he(), { id: a = `headlessui-combobox-button-${s}`, disabled: c = n.disabled || !1, autoFocus: d = !1, ...m } = e, b = Ke(n.inputElement), u = g((E) => {
886
+ switch (E.key) {
887
+ case k.Space:
888
+ case k.Enter:
889
+ E.preventDefault(), E.stopPropagation(), n.comboboxState === 1 && Z(() => o.openCombobox()), b();
890
+ return;
891
+ case k.ArrowDown:
892
+ E.preventDefault(), E.stopPropagation(), n.comboboxState === 1 && (Z(() => o.openCombobox()), n.value || o.goToOption(M.First)), b();
893
+ return;
894
+ case k.ArrowUp:
895
+ E.preventDefault(), E.stopPropagation(), n.comboboxState === 1 && (Z(() => o.openCombobox()), n.value || o.goToOption(M.Last)), b();
896
+ return;
897
+ case k.Escape:
898
+ if (n.comboboxState !== 0) return;
899
+ E.preventDefault(), n.optionsElement && !n.optionsPropsRef.current.static && E.stopPropagation(), Z(() => o.closeCombobox()), b();
900
+ return;
901
+ default:
902
+ return;
903
+ }
904
+ }), x = g((E) => {
905
+ E.preventDefault(), !_t(E.currentTarget) && (E.button === Me.Left && (n.comboboxState === 0 ? o.closeCombobox() : o.openCombobox()), b());
906
+ }), O = we([a]), { isFocusVisible: h, focusProps: y } = Ve({ autoFocus: d }), { isHovered: $, hoverProps: _ } = Be({ isDisabled: c }), { pressed: S, pressProps: w } = nt({ disabled: c }), I = G(() => ({ open: n.comboboxState === 0, active: S || n.comboboxState === 0, disabled: c, value: n.value, hover: $, focus: h }), [n, $, h, S, c]), C = Ie({ ref: r, id: a, type: Tt(e, n.buttonElement), tabIndex: -1, "aria-haspopup": "listbox", "aria-controls": (t = n.optionsElement) == null ? void 0 : t.id, "aria-expanded": n.comboboxState === 0, "aria-labelledby": O, disabled: c || void 0, autoFocus: d, onMouseDown: x, onKeyDown: u }, y, _, w);
907
+ return ce({ mergeRefs: l, ourProps: C, theirProps: m, slot: I, defaultTag: cn, name: "Combobox.Button" });
908
+ }
909
+ let pn = "div", mn = _e.RenderStrategy | _e.Static;
910
+ function fn(e, i) {
911
+ var t, n, o;
912
+ let r = he(), { id: l = `headlessui-combobox-options-${r}`, hold: s = !1, anchor: a, portal: c = !1, modal: d = !0, transition: m = !1, ...b } = e, u = ne("Combobox.Options"), x = de("Combobox.Options"), O = bt(a);
913
+ O && (c = !0);
914
+ let [h, y] = gt(O), [$, _] = Te(null), S = xt(), w = fe(i, O ? h : null, x.setOptionsElement, _), I = je(u.optionsElement), C = Ct(), [E, j] = wt(m, $, C !== null ? (C & me.Open) === me.Open : u.comboboxState === 0);
915
+ Et(E, u.inputElement, x.closeCombobox);
916
+ let A = u.__demoMode ? !1 : d && u.comboboxState === 0;
917
+ Ot(A, I);
918
+ let U = u.__demoMode ? !1 : d && u.comboboxState === 0;
919
+ Kt(U, { allowed: Ee(() => [u.inputElement, u.buttonElement, u.optionsElement], [u.inputElement, u.buttonElement, u.optionsElement]) }), H(() => {
920
+ var D;
921
+ u.optionsPropsRef.current.static = (D = e.static) != null ? D : !1;
922
+ }, [u.optionsPropsRef, e.static]), H(() => {
923
+ u.optionsPropsRef.current.hold = s;
924
+ }, [u.optionsPropsRef, s]), qt(u.comboboxState === 0, { container: u.optionsElement, accept(D) {
925
+ return D.getAttribute("role") === "option" ? NodeFilter.FILTER_REJECT : D.hasAttribute("role") ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;
926
+ }, walk(D) {
927
+ D.setAttribute("role", "none");
928
+ } });
929
+ let q = we([(t = u.buttonElement) == null ? void 0 : t.id]), K = G(() => ({ open: u.comboboxState === 0, option: void 0 }), [u.comboboxState]), p = g(() => {
930
+ x.setActivationTrigger(0);
931
+ }), B = g((D) => {
932
+ D.preventDefault(), x.setActivationTrigger(0);
933
+ }), oe = Ie(O ? S() : {}, { "aria-labelledby": q, role: "listbox", "aria-multiselectable": u.mode === 1 ? !0 : void 0, id: l, ref: w, style: { ...b.style, ...y, "--input-width": Pe(u.inputElement, !0).width, "--button-width": Pe(u.buttonElement, !0).width }, onWheel: u.activationTrigger === 0 ? void 0 : p, onMouseDown: B, ...Mt(j) }), Y = E && u.comboboxState === 1, X = Se(Y, (n = u.virtual) == null ? void 0 : n.options), ee = Se(Y, u.value), ie = g((D) => u.compare(ee, D));
934
+ if (u.virtual) {
935
+ if (X === void 0) throw new Error("Missing `options` in virtual mode");
936
+ Object.assign(b, { children: z.createElement(ae.Provider, { value: X !== u.virtual.options ? { ...u, virtual: { ...u.virtual, options: X } } : u }, z.createElement(on, { slot: K }, b.children)) });
937
+ }
938
+ return z.createElement(St, { enabled: c ? e.static || E : !1 }, z.createElement(ae.Provider, { value: u.mode === 1 ? u : { ...u, isSelected: ie } }, ce({ ourProps: oe, theirProps: { ...b, children: z.createElement(Yt, { freeze: Y }, typeof b.children == "function" ? (o = b.children) == null ? void 0 : o.call(b, K) : b.children) }, slot: K, defaultTag: pn, features: mn, visible: E, name: "Combobox.Options" })));
939
+ }
940
+ let hn = "div";
941
+ function vn(e, i) {
942
+ var t, n, o, r;
943
+ let l = ne("Combobox.Option"), s = de("Combobox.Option"), a = he(), { id: c = `headlessui-combobox-option-${a}`, value: d, disabled: m = (o = (n = (t = l.virtual) == null ? void 0 : t.disabled) == null ? void 0 : n.call(t, d)) != null ? o : !1, order: b = null, ...u } = e, x = Ke(l.inputElement), O = l.virtual ? l.activeOptionIndex === l.calculateIndex(d) : l.activeOptionIndex === null ? !1 : ((r = l.options[l.activeOptionIndex]) == null ? void 0 : r.id) === c, h = l.isSelected(d), y = V(null), $ = Ze({ disabled: m, value: d, domRef: y, order: b }), _ = Ce(Ge), S = fe(i, y, _ ? _.measureElement : null), w = g(() => {
944
+ s.setIsTyping(!1), s.onChange(d);
945
+ });
946
+ H(() => s.registerOption(c, $), [$, c]);
947
+ let I = V(!(l.virtual || l.__demoMode));
948
+ H(() => {
949
+ if (!l.virtual && !l.__demoMode) return xe().requestAnimationFrame(() => {
950
+ I.current = !0;
951
+ });
952
+ }, [l.virtual, l.__demoMode]), H(() => {
953
+ if (I.current && l.comboboxState === 0 && O && l.activationTrigger !== 0) return xe().requestAnimationFrame(() => {
954
+ var p, B;
955
+ (B = (p = y.current) == null ? void 0 : p.scrollIntoView) == null || B.call(p, { block: "nearest" });
956
+ });
957
+ }, [y, O, l.comboboxState, l.activationTrigger, l.activeOptionIndex]);
958
+ let C = g((p) => {
959
+ p.preventDefault(), p.button === Me.Left && (m || (w(), It() || requestAnimationFrame(() => x()), l.mode === 0 && s.closeCombobox()));
960
+ }), E = g(() => {
961
+ if (m) return s.goToOption(M.Nothing);
962
+ let p = l.calculateIndex(d);
963
+ s.goToOption(M.Specific, p);
964
+ }), j = Gt(), A = g((p) => j.update(p)), U = g((p) => {
965
+ if (!j.wasMoved(p) || m || O) return;
966
+ let B = l.calculateIndex(d);
967
+ s.goToOption(M.Specific, B, 0);
968
+ }), q = g((p) => {
969
+ j.wasMoved(p) && (m || O && (l.optionsPropsRef.current.hold || s.goToOption(M.Nothing)));
970
+ }), K = G(() => ({ active: O, focus: O, selected: h, disabled: m }), [O, h, m]);
971
+ return ce({ ourProps: { id: c, ref: S, role: "option", tabIndex: m === !0 ? void 0 : -1, "aria-disabled": m === !0 ? !0 : void 0, "aria-selected": h, disabled: void 0, onMouseDown: C, onFocus: E, onPointerEnter: A, onMouseEnter: A, onPointerMove: U, onMouseMove: U, onPointerLeave: q, onMouseLeave: q }, theirProps: u, slot: K, defaultTag: hn, name: "Combobox.Option" });
972
+ }
973
+ let bn = ue(ln), gn = ue(dn), xn = ue(un), En = it, On = ue(fn), Sn = ue(vn), Dn = Object.assign(bn, { Input: xn, Button: gn, Label: En, Options: On, Option: Sn });
974
+ export {
975
+ xn as G,
976
+ Dn as H,
977
+ On as K,
978
+ gn as U,
979
+ Sn as W
980
+ };