@stachelock/ui 0.1.3 → 0.1.5

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.
Files changed (84) hide show
  1. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-B3KQTxfD.js → CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js} +2 -2
  2. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-B3KQTxfD.js.map → CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js.map} +1 -1
  3. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js +1300 -0
  4. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js.map +1 -0
  5. package/dist/{DashboardLayout.vue_vue_type_script_setup_true_lang-CClxYrOW.js → DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js} +38 -37
  6. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-VeZhdPhj.js.map +1 -0
  7. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js +217 -0
  8. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js.map +1 -0
  9. package/dist/{DynamicFormField.vue_vue_type_script_setup_true_lang-qAwVNm--.js → DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js} +40 -24
  10. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js.map +1 -0
  11. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js +157 -0
  12. package/dist/EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js.map +1 -0
  13. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js +103 -0
  14. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js.map +1 -0
  15. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js +522 -0
  16. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js.map +1 -0
  17. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-CQIW5dy_.js → SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js} +28 -27
  18. package/dist/{SidebarLayout.vue_vue_type_script_setup_true_lang-CQIW5dy_.js.map → SidebarLayout.vue_vue_type_script_setup_true_lang-J1nfUTdM.js.map} +1 -1
  19. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js +273 -0
  20. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js.map +1 -0
  21. package/dist/{TagifyInput.vue_vue_type_script_setup_true_lang-RHqhKoK5.js → TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js} +60 -50
  22. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js.map +1 -0
  23. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js +82 -0
  24. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js.map +1 -0
  25. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js → UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js} +21 -20
  26. package/dist/{UiModal.vue_vue_type_script_setup_true_lang-CMk62qeq.js.map → UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js.map} +1 -1
  27. package/dist/XMarkIcon-C4wILUsz.js +40 -0
  28. package/dist/XMarkIcon-C4wILUsz.js.map +1 -0
  29. package/dist/calculate-active-index-CksdUwZY.js +87 -0
  30. package/dist/calculate-active-index-CksdUwZY.js.map +1 -0
  31. package/dist/calendars/CalendarDashboard.js +2 -2
  32. package/dist/calendars/CalendarHeader.js +1 -1
  33. package/dist/calendars/EventCard.js +1 -1
  34. package/dist/calendars/EventsList.js +1 -1
  35. package/dist/components/Breadcrumb.js +1 -1
  36. package/dist/components/Modal.js +1 -1
  37. package/dist/components/RadialProgressBar.d.ts +2 -2
  38. package/dist/components/RadialProgressBar.js +1 -1
  39. package/dist/description-CBd3BJ9O.js +30 -0
  40. package/dist/description-CBd3BJ9O.js.map +1 -0
  41. package/dist/dialog-U1KNiPzc.js +493 -0
  42. package/dist/dialog-U1KNiPzc.js.map +1 -0
  43. package/dist/form-DQKuKVqJ.js +51 -0
  44. package/dist/form-DQKuKVqJ.js.map +1 -0
  45. package/dist/forms/DynamicForm.js +1 -1
  46. package/dist/forms/DynamicFormField.js +1 -1
  47. package/dist/forms/FormFieldWrapper.js +71 -42
  48. package/dist/forms/FormFieldWrapper.js.map +1 -1
  49. package/dist/index.js +307 -242
  50. package/dist/index.js.map +1 -1
  51. package/dist/inputs/ComboboxInput.js +1 -1
  52. package/dist/inputs/SelectInput.js +1 -1
  53. package/dist/inputs/SwitchInput.js +1 -1
  54. package/dist/inputs/TagifyInput.js +1 -1
  55. package/dist/keyboard-DJD8TwH4.js +113 -0
  56. package/dist/keyboard-DJD8TwH4.js.map +1 -0
  57. package/dist/layouts/DashboardLayout.js +1 -1
  58. package/dist/layouts/SidebarLayout.js +1 -1
  59. package/dist/open-closed-DgcU-HDT.js +179 -0
  60. package/dist/open-closed-DgcU-HDT.js.map +1 -0
  61. package/dist/src/components/layouts/DashboardLayout.d.ts.map +1 -1
  62. package/dist/src/components/layouts/SidebarLayout.d.ts.map +1 -1
  63. package/dist/transition-CuxxW9dY.js +209 -0
  64. package/dist/transition-CuxxW9dY.js.map +1 -0
  65. package/package.json +1 -1
  66. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-DoJHjJsA.js +0 -304
  67. package/dist/ComboboxInput.vue_vue_type_script_setup_true_lang-DoJHjJsA.js.map +0 -1
  68. package/dist/DashboardLayout.vue_vue_type_script_setup_true_lang-CClxYrOW.js.map +0 -1
  69. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BKhcXkNG.js +0 -201
  70. package/dist/DynamicForm.vue_vue_type_script_setup_true_lang-BKhcXkNG.js.map +0 -1
  71. package/dist/DynamicFormField.vue_vue_type_script_setup_true_lang-qAwVNm--.js.map +0 -1
  72. package/dist/EventCard.vue_vue_type_script_setup_true_lang-B3TP-mWX.js +0 -75
  73. package/dist/EventCard.vue_vue_type_script_setup_true_lang-B3TP-mWX.js.map +0 -1
  74. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cpc9A9Ev.js +0 -89
  75. package/dist/EventsList.vue_vue_type_script_setup_true_lang-Cpc9A9Ev.js.map +0 -1
  76. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BguP8xMU.js +0 -242
  77. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-BguP8xMU.js.map +0 -1
  78. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BagTQ6M0.js +0 -197
  79. package/dist/SwitchInput.vue_vue_type_script_setup_true_lang-BagTQ6M0.js.map +0 -1
  80. package/dist/TagifyInput.vue_vue_type_script_setup_true_lang-RHqhKoK5.js.map +0 -1
  81. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-CMH47CoK.js +0 -68
  82. package/dist/UiBreadcrumb.vue_vue_type_script_setup_true_lang-CMH47CoK.js.map +0 -1
  83. package/dist/UiRadialProgressBar.vue_vue_type_script_setup_true_lang-BGCBJa2S.js +0 -72
  84. package/dist/UiRadialProgressBar.vue_vue_type_script_setup_true_lang-BGCBJa2S.js.map +0 -1
@@ -0,0 +1,1300 @@
1
+ import { computed as y, unref as z, shallowRef as ze, watch as W, triggerRef as he, onScopeDispose as Fe, onUnmounted as Ie, watchEffect as oe, defineComponent as Q, ref as F, provide as Re, onMounted as ve, h as ie, Fragment as Ce, inject as Ee, nextTick as Y, toRaw as U, reactive as Pe, cloneVNode as De, createElementBlock as X, openBlock as j, createVNode as H, withCtx as K, createElementVNode as q, normalizeClass as J, createBlock as se, createCommentVNode as Z, withModifiers as be, toDisplayString as ae, renderList as $e } from "vue";
2
+ import { useField as _e } from "vee-validate";
3
+ import Ne from "./forms/FormFieldWrapper.js";
4
+ import { _ as Be } from "./UiLoading.vue_vue_type_script_setup_true_lang-DCz52-Me.js";
5
+ import { g as Le } from "./id-DafBB_QF.js";
6
+ import { d as je, e as We, s as Ke } from "./form-DQKuKVqJ.js";
7
+ import { o as ce, a as ge, S as qe } from "./transition-CuxxW9dY.js";
8
+ import { a as te, o as E, A as le, f as Ue, E as He, T as fe, i as ne, N as re, u as Qe, b as L } from "./keyboard-DJD8TwH4.js";
9
+ import { i as Me, b as Je, d as Ye, a as ue, l as Ge, O as Xe, n as Ze } from "./open-closed-DgcU-HDT.js";
10
+ import { u as et, c as _, f as xe, r as tt, a as lt } from "./calculate-active-index-CksdUwZY.js";
11
+ function ee(o, v, e) {
12
+ let n = e.initialDeps ?? [], t;
13
+ function a() {
14
+ var s, l, p, f;
15
+ let r;
16
+ e.key && ((s = e.debug) != null && s.call(e)) && (r = Date.now());
17
+ const d = o();
18
+ if (!(d.length !== n.length || d.some((C, k) => n[k] !== C)))
19
+ return t;
20
+ n = d;
21
+ let V;
22
+ if (e.key && ((l = e.debug) != null && l.call(e)) && (V = Date.now()), t = v(...d), e.key && ((p = e.debug) != null && p.call(e))) {
23
+ const C = Math.round((Date.now() - r) * 100) / 100, k = Math.round((Date.now() - V) * 100) / 100, P = k / 16, $ = (b, I) => {
24
+ for (b = String(b); b.length < I; )
25
+ b = " " + b;
26
+ return b;
27
+ };
28
+ console.info(
29
+ `%c⏱ ${$(k, 5)} /${$(C, 5)} ms`,
30
+ `
31
+ font-size: .6rem;
32
+ font-weight: bold;
33
+ color: hsl(${Math.max(
34
+ 0,
35
+ Math.min(120 - 120 * P, 120)
36
+ )}deg 100% 31%);`,
37
+ e?.key
38
+ );
39
+ }
40
+ return (f = e?.onChange) == null || f.call(e, t), t;
41
+ }
42
+ return a.updateDeps = (s) => {
43
+ n = s;
44
+ }, a;
45
+ }
46
+ function ye(o, v) {
47
+ if (o === void 0)
48
+ throw new Error("Unexpected undefined");
49
+ return o;
50
+ }
51
+ const ot = (o, v) => Math.abs(o - v) < 1.01, nt = (o, v, e) => {
52
+ let n;
53
+ return function(...t) {
54
+ o.clearTimeout(n), n = o.setTimeout(() => v.apply(this, t), e);
55
+ };
56
+ }, Se = (o) => {
57
+ const { offsetWidth: v, offsetHeight: e } = o;
58
+ return { width: v, height: e };
59
+ }, st = (o) => o, at = (o) => {
60
+ const v = Math.max(o.startIndex - o.overscan, 0), e = Math.min(o.endIndex + o.overscan, o.count - 1), n = [];
61
+ for (let t = v; t <= e; t++)
62
+ n.push(t);
63
+ return n;
64
+ }, it = (o, v) => {
65
+ const e = o.scrollElement;
66
+ if (!e)
67
+ return;
68
+ const n = o.targetWindow;
69
+ if (!n)
70
+ return;
71
+ const t = (s) => {
72
+ const { width: l, height: p } = s;
73
+ v({ width: Math.round(l), height: Math.round(p) });
74
+ };
75
+ if (t(Se(e)), !n.ResizeObserver)
76
+ return () => {
77
+ };
78
+ const a = new n.ResizeObserver((s) => {
79
+ const l = () => {
80
+ const p = s[0];
81
+ if (p?.borderBoxSize) {
82
+ const f = p.borderBoxSize[0];
83
+ if (f) {
84
+ t({ width: f.inlineSize, height: f.blockSize });
85
+ return;
86
+ }
87
+ }
88
+ t(Se(e));
89
+ };
90
+ o.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(l) : l();
91
+ });
92
+ return a.observe(e, { box: "border-box" }), () => {
93
+ a.unobserve(e);
94
+ };
95
+ }, Oe = {
96
+ passive: !0
97
+ }, we = typeof window > "u" ? !0 : "onscrollend" in window, rt = (o, v) => {
98
+ const e = o.scrollElement;
99
+ if (!e)
100
+ return;
101
+ const n = o.targetWindow;
102
+ if (!n)
103
+ return;
104
+ let t = 0;
105
+ const a = o.options.useScrollendEvent && we ? () => {
106
+ } : nt(
107
+ n,
108
+ () => {
109
+ v(t, !1);
110
+ },
111
+ o.options.isScrollingResetDelay
112
+ ), s = (r) => () => {
113
+ const { horizontal: d, isRtl: S } = o.options;
114
+ t = d ? e.scrollLeft * (S && -1 || 1) : e.scrollTop, a(), v(t, r);
115
+ }, l = s(!0), p = s(!1);
116
+ p(), e.addEventListener("scroll", l, Oe);
117
+ const f = o.options.useScrollendEvent && we;
118
+ return f && e.addEventListener("scrollend", p, Oe), () => {
119
+ e.removeEventListener("scroll", l), f && e.removeEventListener("scrollend", p);
120
+ };
121
+ }, ut = (o, v, e) => {
122
+ if (v?.borderBoxSize) {
123
+ const n = v.borderBoxSize[0];
124
+ if (n)
125
+ return Math.round(
126
+ n[e.options.horizontal ? "inlineSize" : "blockSize"]
127
+ );
128
+ }
129
+ return o[e.options.horizontal ? "offsetWidth" : "offsetHeight"];
130
+ }, dt = (o, {
131
+ adjustments: v = 0,
132
+ behavior: e
133
+ }, n) => {
134
+ var t, a;
135
+ const s = o + v;
136
+ (a = (t = n.scrollElement) == null ? void 0 : t.scrollTo) == null || a.call(t, {
137
+ [n.options.horizontal ? "left" : "top"]: s,
138
+ behavior: e
139
+ });
140
+ };
141
+ class ct {
142
+ constructor(v) {
143
+ this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, 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__ */ (() => {
144
+ let e = null;
145
+ const n = () => e || (!this.targetWindow || !this.targetWindow.ResizeObserver ? null : e = new this.targetWindow.ResizeObserver((t) => {
146
+ t.forEach((a) => {
147
+ const s = () => {
148
+ this._measureElement(a.target, a);
149
+ };
150
+ this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(s) : s();
151
+ });
152
+ }));
153
+ return {
154
+ disconnect: () => {
155
+ var t;
156
+ (t = n()) == null || t.disconnect(), e = null;
157
+ },
158
+ observe: (t) => {
159
+ var a;
160
+ return (a = n()) == null ? void 0 : a.observe(t, { box: "border-box" });
161
+ },
162
+ unobserve: (t) => {
163
+ var a;
164
+ return (a = n()) == null ? void 0 : a.unobserve(t);
165
+ }
166
+ };
167
+ })(), this.range = null, this.setOptions = (e) => {
168
+ Object.entries(e).forEach(([n, t]) => {
169
+ typeof t > "u" && delete e[n];
170
+ }), this.options = {
171
+ debug: !1,
172
+ initialOffset: 0,
173
+ overscan: 1,
174
+ paddingStart: 0,
175
+ paddingEnd: 0,
176
+ scrollPaddingStart: 0,
177
+ scrollPaddingEnd: 0,
178
+ horizontal: !1,
179
+ getItemKey: st,
180
+ rangeExtractor: at,
181
+ onChange: () => {
182
+ },
183
+ measureElement: ut,
184
+ initialRect: { width: 0, height: 0 },
185
+ scrollMargin: 0,
186
+ gap: 0,
187
+ indexAttribute: "data-index",
188
+ initialMeasurementsCache: [],
189
+ lanes: 1,
190
+ isScrollingResetDelay: 150,
191
+ enabled: !0,
192
+ isRtl: !1,
193
+ useScrollendEvent: !1,
194
+ useAnimationFrameWithResizeObserver: !1,
195
+ ...e
196
+ };
197
+ }, this.notify = (e) => {
198
+ var n, t;
199
+ (t = (n = this.options).onChange) == null || t.call(n, this, e);
200
+ }, this.maybeNotify = ee(
201
+ () => (this.calculateRange(), [
202
+ this.isScrolling,
203
+ this.range ? this.range.startIndex : null,
204
+ this.range ? this.range.endIndex : null
205
+ ]),
206
+ (e) => {
207
+ this.notify(e);
208
+ },
209
+ {
210
+ key: process.env.NODE_ENV !== "production" && "maybeNotify",
211
+ debug: () => this.options.debug,
212
+ initialDeps: [
213
+ this.isScrolling,
214
+ this.range ? this.range.startIndex : null,
215
+ this.range ? this.range.endIndex : null
216
+ ]
217
+ }
218
+ ), this.cleanup = () => {
219
+ this.unsubs.filter(Boolean).forEach((e) => e()), this.unsubs = [], this.observer.disconnect(), this.scrollElement = null, this.targetWindow = null;
220
+ }, this._didMount = () => () => {
221
+ this.cleanup();
222
+ }, this._willUpdate = () => {
223
+ var e;
224
+ const n = this.options.enabled ? this.options.getScrollElement() : null;
225
+ if (this.scrollElement !== n) {
226
+ if (this.cleanup(), !n) {
227
+ this.maybeNotify();
228
+ return;
229
+ }
230
+ this.scrollElement = n, this.scrollElement && "ownerDocument" in this.scrollElement ? this.targetWindow = this.scrollElement.ownerDocument.defaultView : this.targetWindow = ((e = this.scrollElement) == null ? void 0 : e.window) ?? null, this.elementsCache.forEach((t) => {
231
+ this.observer.observe(t);
232
+ }), this._scrollToOffset(this.getScrollOffset(), {
233
+ adjustments: void 0,
234
+ behavior: void 0
235
+ }), this.unsubs.push(
236
+ this.options.observeElementRect(this, (t) => {
237
+ this.scrollRect = t, this.maybeNotify();
238
+ })
239
+ ), this.unsubs.push(
240
+ this.options.observeElementOffset(this, (t, a) => {
241
+ this.scrollAdjustments = 0, this.scrollDirection = a ? this.getScrollOffset() < t ? "forward" : "backward" : null, this.scrollOffset = t, this.isScrolling = a, this.maybeNotify();
242
+ })
243
+ );
244
+ }
245
+ }, 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 = (e, n) => {
246
+ const t = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
247
+ for (let s = n - 1; s >= 0; s--) {
248
+ const l = e[s];
249
+ if (t.has(l.lane))
250
+ continue;
251
+ const p = a.get(
252
+ l.lane
253
+ );
254
+ if (p == null || l.end > p.end ? a.set(l.lane, l) : l.end < p.end && t.set(l.lane, !0), t.size === this.options.lanes)
255
+ break;
256
+ }
257
+ return a.size === this.options.lanes ? Array.from(a.values()).sort((s, l) => s.end === l.end ? s.index - l.index : s.end - l.end)[0] : void 0;
258
+ }, this.getMeasurementOptions = ee(
259
+ () => [
260
+ this.options.count,
261
+ this.options.paddingStart,
262
+ this.options.scrollMargin,
263
+ this.options.getItemKey,
264
+ this.options.enabled
265
+ ],
266
+ (e, n, t, a, s) => (this.pendingMeasuredCacheIndexes = [], {
267
+ count: e,
268
+ paddingStart: n,
269
+ scrollMargin: t,
270
+ getItemKey: a,
271
+ enabled: s
272
+ }),
273
+ {
274
+ key: !1
275
+ }
276
+ ), this.getMeasurements = ee(
277
+ () => [this.getMeasurementOptions(), this.itemSizeCache],
278
+ ({ count: e, paddingStart: n, scrollMargin: t, getItemKey: a, enabled: s }, l) => {
279
+ if (!s)
280
+ return this.measurementsCache = [], this.itemSizeCache.clear(), [];
281
+ this.measurementsCache.length === 0 && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((r) => {
282
+ this.itemSizeCache.set(r.key, r.size);
283
+ }));
284
+ const p = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;
285
+ this.pendingMeasuredCacheIndexes = [];
286
+ const f = this.measurementsCache.slice(0, p);
287
+ for (let r = p; r < e; r++) {
288
+ const d = a(r), S = this.options.lanes === 1 ? f[r - 1] : this.getFurthestMeasurement(f, r), V = S ? S.end + this.options.gap : n + t, C = l.get(d), k = typeof C == "number" ? C : this.options.estimateSize(r), P = V + k, $ = S ? S.lane : r % this.options.lanes;
289
+ f[r] = {
290
+ index: r,
291
+ start: V,
292
+ size: k,
293
+ end: P,
294
+ key: d,
295
+ lane: $
296
+ };
297
+ }
298
+ return this.measurementsCache = f, f;
299
+ },
300
+ {
301
+ key: process.env.NODE_ENV !== "production" && "getMeasurements",
302
+ debug: () => this.options.debug
303
+ }
304
+ ), this.calculateRange = ee(
305
+ () => [
306
+ this.getMeasurements(),
307
+ this.getSize(),
308
+ this.getScrollOffset(),
309
+ this.options.lanes
310
+ ],
311
+ (e, n, t, a) => this.range = e.length > 0 && n > 0 ? vt({
312
+ measurements: e,
313
+ outerSize: n,
314
+ scrollOffset: t,
315
+ lanes: a
316
+ }) : null,
317
+ {
318
+ key: process.env.NODE_ENV !== "production" && "calculateRange",
319
+ debug: () => this.options.debug
320
+ }
321
+ ), this.getVirtualIndexes = ee(
322
+ () => {
323
+ let e = null, n = null;
324
+ const t = this.calculateRange();
325
+ return t && (e = t.startIndex, n = t.endIndex), this.maybeNotify.updateDeps([this.isScrolling, e, n]), [
326
+ this.options.rangeExtractor,
327
+ this.options.overscan,
328
+ this.options.count,
329
+ e,
330
+ n
331
+ ];
332
+ },
333
+ (e, n, t, a, s) => a === null || s === null ? [] : e({
334
+ startIndex: a,
335
+ endIndex: s,
336
+ overscan: n,
337
+ count: t
338
+ }),
339
+ {
340
+ key: process.env.NODE_ENV !== "production" && "getVirtualIndexes",
341
+ debug: () => this.options.debug
342
+ }
343
+ ), this.indexFromElement = (e) => {
344
+ const n = this.options.indexAttribute, t = e.getAttribute(n);
345
+ return t ? parseInt(t, 10) : (console.warn(
346
+ `Missing attribute name '${n}={index}' on measured element.`
347
+ ), -1);
348
+ }, this._measureElement = (e, n) => {
349
+ const t = this.indexFromElement(e), a = this.measurementsCache[t];
350
+ if (!a)
351
+ return;
352
+ const s = a.key, l = this.elementsCache.get(s);
353
+ l !== e && (l && this.observer.unobserve(l), this.observer.observe(e), this.elementsCache.set(s, e)), e.isConnected && this.resizeItem(t, this.options.measureElement(e, n, this));
354
+ }, this.resizeItem = (e, n) => {
355
+ const t = this.measurementsCache[e];
356
+ if (!t)
357
+ return;
358
+ const a = this.itemSizeCache.get(t.key) ?? t.size, s = n - a;
359
+ s !== 0 && ((this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(t, s, this) : t.start < this.getScrollOffset() + this.scrollAdjustments) && (process.env.NODE_ENV !== "production" && this.options.debug && console.info("correction", s), this._scrollToOffset(this.getScrollOffset(), {
360
+ adjustments: this.scrollAdjustments += s,
361
+ behavior: void 0
362
+ })), this.pendingMeasuredCacheIndexes.push(t.index), this.itemSizeCache = new Map(this.itemSizeCache.set(t.key, n)), this.notify(!1));
363
+ }, this.measureElement = (e) => {
364
+ if (!e) {
365
+ this.elementsCache.forEach((n, t) => {
366
+ n.isConnected || (this.observer.unobserve(n), this.elementsCache.delete(t));
367
+ });
368
+ return;
369
+ }
370
+ this._measureElement(e, void 0);
371
+ }, this.getVirtualItems = ee(
372
+ () => [this.getVirtualIndexes(), this.getMeasurements()],
373
+ (e, n) => {
374
+ const t = [];
375
+ for (let a = 0, s = e.length; a < s; a++) {
376
+ const l = e[a], p = n[l];
377
+ t.push(p);
378
+ }
379
+ return t;
380
+ },
381
+ {
382
+ key: process.env.NODE_ENV !== "production" && "getVirtualItems",
383
+ debug: () => this.options.debug
384
+ }
385
+ ), this.getVirtualItemForOffset = (e) => {
386
+ const n = this.getMeasurements();
387
+ if (n.length !== 0)
388
+ return ye(
389
+ n[Te(
390
+ 0,
391
+ n.length - 1,
392
+ (t) => ye(n[t]).start,
393
+ e
394
+ )]
395
+ );
396
+ }, this.getOffsetForAlignment = (e, n, t = 0) => {
397
+ const a = this.getSize(), s = this.getScrollOffset();
398
+ n === "auto" && (n = e >= s + a ? "end" : "start"), n === "center" ? e += (t - a) / 2 : n === "end" && (e -= a);
399
+ const l = this.getTotalSize() + this.options.scrollMargin - a;
400
+ return Math.max(Math.min(l, e), 0);
401
+ }, this.getOffsetForIndex = (e, n = "auto") => {
402
+ e = Math.max(0, Math.min(e, this.options.count - 1));
403
+ const t = this.measurementsCache[e];
404
+ if (!t)
405
+ return;
406
+ const a = this.getSize(), s = this.getScrollOffset();
407
+ if (n === "auto")
408
+ if (t.end >= s + a - this.options.scrollPaddingEnd)
409
+ n = "end";
410
+ else if (t.start <= s + this.options.scrollPaddingStart)
411
+ n = "start";
412
+ else
413
+ return [s, n];
414
+ const l = n === "end" ? t.end + this.options.scrollPaddingEnd : t.start - this.options.scrollPaddingStart;
415
+ return [
416
+ this.getOffsetForAlignment(l, n, t.size),
417
+ n
418
+ ];
419
+ }, this.isDynamicMode = () => this.elementsCache.size > 0, this.scrollToOffset = (e, { align: n = "start", behavior: t } = {}) => {
420
+ t === "smooth" && this.isDynamicMode() && console.warn(
421
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
422
+ ), this._scrollToOffset(this.getOffsetForAlignment(e, n), {
423
+ adjustments: void 0,
424
+ behavior: t
425
+ });
426
+ }, this.scrollToIndex = (e, { align: n = "auto", behavior: t } = {}) => {
427
+ t === "smooth" && this.isDynamicMode() && console.warn(
428
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
429
+ ), e = Math.max(0, Math.min(e, this.options.count - 1));
430
+ let a = 0;
431
+ const s = 10, l = (f) => {
432
+ if (!this.targetWindow) return;
433
+ const r = this.getOffsetForIndex(e, f);
434
+ if (!r) {
435
+ console.warn("Failed to get offset for index:", e);
436
+ return;
437
+ }
438
+ const [d, S] = r;
439
+ this._scrollToOffset(d, { adjustments: void 0, behavior: t }), this.targetWindow.requestAnimationFrame(() => {
440
+ const V = this.getScrollOffset(), C = this.getOffsetForIndex(e, S);
441
+ if (!C) {
442
+ console.warn("Failed to get offset for index:", e);
443
+ return;
444
+ }
445
+ ot(C[0], V) || p(S);
446
+ });
447
+ }, p = (f) => {
448
+ this.targetWindow && (a++, a < s ? (process.env.NODE_ENV !== "production" && this.options.debug && console.info("Schedule retry", a, s), this.targetWindow.requestAnimationFrame(() => l(f))) : console.warn(
449
+ `Failed to scroll to index ${e} after ${s} attempts.`
450
+ ));
451
+ };
452
+ l(n);
453
+ }, this.scrollBy = (e, { behavior: n } = {}) => {
454
+ n === "smooth" && this.isDynamicMode() && console.warn(
455
+ "The `smooth` scroll behavior is not fully supported with dynamic size."
456
+ ), this._scrollToOffset(this.getScrollOffset() + e, {
457
+ adjustments: void 0,
458
+ behavior: n
459
+ });
460
+ }, this.getTotalSize = () => {
461
+ var e;
462
+ const n = this.getMeasurements();
463
+ let t;
464
+ if (n.length === 0)
465
+ t = this.options.paddingStart;
466
+ else if (this.options.lanes === 1)
467
+ t = ((e = n[n.length - 1]) == null ? void 0 : e.end) ?? 0;
468
+ else {
469
+ const a = Array(this.options.lanes).fill(null);
470
+ let s = n.length - 1;
471
+ for (; s >= 0 && a.some((l) => l === null); ) {
472
+ const l = n[s];
473
+ a[l.lane] === null && (a[l.lane] = l.end), s--;
474
+ }
475
+ t = Math.max(...a.filter((l) => l !== null));
476
+ }
477
+ return Math.max(
478
+ t - this.options.scrollMargin + this.options.paddingEnd,
479
+ 0
480
+ );
481
+ }, this._scrollToOffset = (e, {
482
+ adjustments: n,
483
+ behavior: t
484
+ }) => {
485
+ this.options.scrollToFn(e, { behavior: t, adjustments: n }, this);
486
+ }, this.measure = () => {
487
+ this.itemSizeCache = /* @__PURE__ */ new Map(), this.notify(!1);
488
+ }, this.setOptions(v);
489
+ }
490
+ }
491
+ const Te = (o, v, e, n) => {
492
+ for (; o <= v; ) {
493
+ const t = (o + v) / 2 | 0, a = e(t);
494
+ if (a < n)
495
+ o = t + 1;
496
+ else if (a > n)
497
+ v = t - 1;
498
+ else
499
+ return t;
500
+ }
501
+ return o > 0 ? o - 1 : 0;
502
+ };
503
+ function vt({
504
+ measurements: o,
505
+ outerSize: v,
506
+ scrollOffset: e,
507
+ lanes: n
508
+ }) {
509
+ const t = o.length - 1, a = (p) => o[p].start;
510
+ if (o.length <= n)
511
+ return {
512
+ startIndex: 0,
513
+ endIndex: t
514
+ };
515
+ let s = Te(
516
+ 0,
517
+ t,
518
+ a,
519
+ e
520
+ ), l = s;
521
+ if (n === 1)
522
+ for (; l < t && o[l].end < e + v; )
523
+ l++;
524
+ else if (n > 1) {
525
+ const p = Array(n).fill(0);
526
+ for (; l < t && p.some((r) => r < e + v); ) {
527
+ const r = o[l];
528
+ p[r.lane] = r.end, l++;
529
+ }
530
+ const f = Array(n).fill(e + v);
531
+ for (; s >= 0 && f.some((r) => r >= e); ) {
532
+ const r = o[s];
533
+ f[r.lane] = r.start, s--;
534
+ }
535
+ s = Math.max(0, s - s % n), l = Math.min(t, l + (n - 1 - l % n));
536
+ }
537
+ return { startIndex: s, endIndex: l };
538
+ }
539
+ function ft(o) {
540
+ const v = new ct(z(o)), e = ze(v), n = v._didMount();
541
+ return W(
542
+ () => z(o).getScrollElement(),
543
+ (t) => {
544
+ t && v._willUpdate();
545
+ },
546
+ {
547
+ immediate: !0
548
+ }
549
+ ), W(
550
+ () => z(o),
551
+ (t) => {
552
+ v.setOptions({
553
+ ...t,
554
+ onChange: (a, s) => {
555
+ var l;
556
+ he(e), (l = t.onChange) == null || l.call(t, a, s);
557
+ }
558
+ }), v._willUpdate(), he(e);
559
+ },
560
+ {
561
+ immediate: !0
562
+ }
563
+ ), Fe(n), e;
564
+ }
565
+ function pt(o) {
566
+ return ft(
567
+ y(() => ({
568
+ observeElementRect: it,
569
+ observeElementOffset: rt,
570
+ scrollToFn: dt,
571
+ ...z(o)
572
+ }))
573
+ );
574
+ }
575
+ function mt() {
576
+ let o = ce();
577
+ return Ie(() => o.dispose()), o;
578
+ }
579
+ function ht() {
580
+ let o = mt();
581
+ return (v) => {
582
+ o.dispose(), o.nextFrame(v);
583
+ };
584
+ }
585
+ function bt({ container: o, accept: v, walk: e, enabled: n }) {
586
+ oe(() => {
587
+ let t = o.value;
588
+ if (!t || n !== void 0 && !n.value) return;
589
+ let a = Me(o);
590
+ if (!a) return;
591
+ let s = Object.assign((p) => v(p), { acceptNode: v }), l = a.createTreeWalker(t, NodeFilter.SHOW_ELEMENT, s, !1);
592
+ for (; l.nextNode(); ) e(l.currentNode);
593
+ });
594
+ }
595
+ var Ve = ((o) => (o[o.Left = 0] = "Left", o[o.Right = 2] = "Right", o))(Ve || {});
596
+ function gt(o, v) {
597
+ return o === v;
598
+ }
599
+ var xt = ((o) => (o[o.Open = 0] = "Open", o[o.Closed = 1] = "Closed", o))(xt || {}), yt = ((o) => (o[o.Single = 0] = "Single", o[o.Multi = 1] = "Multi", o))(yt || {}), St = ((o) => (o[o.Pointer = 0] = "Pointer", o[o.Focus = 1] = "Focus", o[o.Other = 2] = "Other", o))(St || {});
600
+ let Ae = Symbol("ComboboxContext");
601
+ function G(o) {
602
+ let v = Ee(Ae, null);
603
+ if (v === null) {
604
+ let e = new Error(`<${o} /> is missing a parent <Combobox /> component.`);
605
+ throw Error.captureStackTrace && Error.captureStackTrace(e, G), e;
606
+ }
607
+ return v;
608
+ }
609
+ let ke = Symbol("VirtualContext"), Ot = Q({ name: "VirtualProvider", setup(o, { slots: v }) {
610
+ let e = G("VirtualProvider"), n = y(() => {
611
+ let l = E(e.optionsRef);
612
+ if (!l) return { start: 0, end: 0 };
613
+ let p = window.getComputedStyle(l);
614
+ return { start: parseFloat(p.paddingBlockStart || p.paddingTop), end: parseFloat(p.paddingBlockEnd || p.paddingBottom) };
615
+ }), t = pt(y(() => ({ scrollPaddingStart: n.value.start, scrollPaddingEnd: n.value.end, count: e.virtual.value.options.length, estimateSize() {
616
+ return 40;
617
+ }, getScrollElement() {
618
+ return E(e.optionsRef);
619
+ }, overscan: 12 }))), a = y(() => {
620
+ var l;
621
+ return (l = e.virtual.value) == null ? void 0 : l.options;
622
+ }), s = F(0);
623
+ return W([a], () => {
624
+ s.value += 1;
625
+ }), Re(ke, e.virtual.value ? t : null), () => [ie("div", { style: { position: "relative", width: "100%", height: `${t.value.getTotalSize()}px` }, ref: (l) => {
626
+ if (l) {
627
+ if (typeof process < "u" && process.env.JEST_WORKER_ID !== void 0 || e.activationTrigger.value === 0) return;
628
+ e.activeOptionIndex.value !== null && e.virtual.value.options.length > e.activeOptionIndex.value && t.value.scrollToIndex(e.activeOptionIndex.value);
629
+ }
630
+ } }, t.value.getVirtualItems().map((l) => De(v.default({ option: e.virtual.value.options[l.index], open: e.comboboxState.value === 0 })[0], { key: `${s.value}-${l.index}`, "data-index": l.index, "aria-setsize": e.virtual.value.options.length, "aria-posinset": l.index + 1, style: { position: "absolute", top: 0, left: 0, transform: `translateY(${l.start}px)`, overflowAnchor: "none" } })))];
631
+ } }), wt = Q({ name: "Combobox", emits: { "update:modelValue": (o) => !0 }, props: { as: { type: [Object, String], default: "template" }, disabled: { type: [Boolean], default: !1 }, by: { type: [String, Function], nullable: !0, default: null }, modelValue: { type: [Object, String, Number, Boolean], default: void 0 }, defaultValue: { type: [Object, String, Number, Boolean], default: void 0 }, form: { type: String, optional: !0 }, name: { type: String, optional: !0 }, nullable: { type: Boolean, default: !1 }, multiple: { type: [Boolean], default: !1 }, immediate: { type: [Boolean], default: !1 }, virtual: { type: Object, default: null } }, inheritAttrs: !1, setup(o, { slots: v, attrs: e, emit: n }) {
632
+ let t = F(1), a = F(null), s = F(null), l = F(null), p = F(null), f = F({ static: !1, hold: !1 }), r = F([]), d = F(null), S = F(2), V = F(!1);
633
+ function C(u = (m) => m) {
634
+ let m = d.value !== null ? r.value[d.value] : null, g = u(r.value.slice()), x = g.length > 0 && g[0].dataRef.order.value !== null ? g.sort((A, B) => A.dataRef.order.value - B.dataRef.order.value) : Xe(g, (A) => E(A.dataRef.domRef)), T = m ? x.indexOf(m) : null;
635
+ return T === -1 && (T = null), { options: x, activeOptionIndex: T };
636
+ }
637
+ let k = y(() => o.multiple ? 1 : 0), P = y(() => o.nullable), [$, b] = je(y(() => o.modelValue), (u) => n("update:modelValue", u), y(() => o.defaultValue)), I = y(() => $.value === void 0 ? te(k.value, { 1: [], 0: void 0 }) : $.value), N = null, h = null;
638
+ function R(u) {
639
+ return te(k.value, { 0() {
640
+ return b?.(u);
641
+ }, 1: () => {
642
+ let m = U(c.value.value).slice(), g = U(u), x = m.findIndex((T) => c.compare(g, U(T)));
643
+ return x === -1 ? m.push(g) : m.splice(x, 1), b?.(m);
644
+ } });
645
+ }
646
+ let M = y(() => {
647
+ });
648
+ W([M], ([u], [m]) => {
649
+ if (c.virtual.value && u && m && d.value !== null) {
650
+ let g = u.indexOf(m[d.value]);
651
+ g !== -1 ? d.value = g : d.value = null;
652
+ }
653
+ });
654
+ let c = { comboboxState: t, value: I, mode: k, compare(u, m) {
655
+ if (typeof o.by == "string") {
656
+ let g = o.by;
657
+ return u?.[g] === m?.[g];
658
+ }
659
+ return o.by === null ? gt(u, m) : o.by(u, m);
660
+ }, calculateIndex(u) {
661
+ return c.virtual.value ? o.by === null ? c.virtual.value.options.indexOf(u) : c.virtual.value.options.findIndex((m) => c.compare(m, u)) : r.value.findIndex((m) => c.compare(m.dataRef.value, u));
662
+ }, defaultValue: y(() => o.defaultValue), nullable: P, immediate: y(() => !1), virtual: y(() => null), inputRef: s, labelRef: a, buttonRef: l, optionsRef: p, disabled: y(() => o.disabled), options: r, change(u) {
663
+ b(u);
664
+ }, activeOptionIndex: y(() => {
665
+ if (V.value && d.value === null && (c.virtual.value ? c.virtual.value.options.length > 0 : r.value.length > 0)) {
666
+ if (c.virtual.value) {
667
+ let m = c.virtual.value.options.findIndex((g) => {
668
+ var x;
669
+ return !((x = c.virtual.value) != null && x.disabled(g));
670
+ });
671
+ if (m !== -1) return m;
672
+ }
673
+ let u = r.value.findIndex((m) => !m.dataRef.disabled);
674
+ if (u !== -1) return u;
675
+ }
676
+ return d.value;
677
+ }), activationTrigger: S, optionsPropsRef: f, closeCombobox() {
678
+ V.value = !1, !o.disabled && t.value !== 1 && (t.value = 1, d.value = null);
679
+ }, openCombobox() {
680
+ if (V.value = !0, !o.disabled && t.value !== 0) {
681
+ if (c.value.value) {
682
+ let u = c.calculateIndex(c.value.value);
683
+ u !== -1 && (d.value = u);
684
+ }
685
+ t.value = 0;
686
+ }
687
+ }, setActivationTrigger(u) {
688
+ S.value = u;
689
+ }, goToOption(u, m, g) {
690
+ V.value = !1, N !== null && cancelAnimationFrame(N), N = requestAnimationFrame(() => {
691
+ if (o.disabled || p.value && !f.value.static && t.value === 1) return;
692
+ if (c.virtual.value) {
693
+ d.value = u === _.Specific ? m : xe({ focus: u }, { resolveItems: () => c.virtual.value.options, resolveActiveIndex: () => {
694
+ var A, B;
695
+ return (B = (A = c.activeOptionIndex.value) != null ? A : c.virtual.value.options.findIndex((i) => {
696
+ var w;
697
+ return !((w = c.virtual.value) != null && w.disabled(i));
698
+ })) != null ? B : null;
699
+ }, resolveDisabled: (A) => c.virtual.value.disabled(A), resolveId() {
700
+ throw new Error("Function not implemented.");
701
+ } }), S.value = g ?? 2;
702
+ return;
703
+ }
704
+ let x = C();
705
+ if (x.activeOptionIndex === null) {
706
+ let A = x.options.findIndex((B) => !B.dataRef.disabled);
707
+ A !== -1 && (x.activeOptionIndex = A);
708
+ }
709
+ let T = u === _.Specific ? m : xe({ focus: u }, { resolveItems: () => x.options, resolveActiveIndex: () => x.activeOptionIndex, resolveId: (A) => A.id, resolveDisabled: (A) => A.dataRef.disabled });
710
+ d.value = T, S.value = g ?? 2, r.value = x.options;
711
+ });
712
+ }, selectOption(u) {
713
+ let m = r.value.find((x) => x.id === u);
714
+ if (!m) return;
715
+ let { dataRef: g } = m;
716
+ R(g.value);
717
+ }, selectActiveOption() {
718
+ if (c.activeOptionIndex.value !== null) {
719
+ if (c.virtual.value) R(c.virtual.value.options[c.activeOptionIndex.value]);
720
+ else {
721
+ let { dataRef: u } = r.value[c.activeOptionIndex.value];
722
+ R(u.value);
723
+ }
724
+ c.goToOption(_.Specific, c.activeOptionIndex.value);
725
+ }
726
+ }, registerOption(u, m) {
727
+ let g = Pe({ id: u, dataRef: m });
728
+ if (c.virtual.value) {
729
+ r.value.push(g);
730
+ return;
731
+ }
732
+ h && cancelAnimationFrame(h);
733
+ let x = C((T) => (T.push(g), T));
734
+ d.value === null && c.isSelected(m.value.value) && (x.activeOptionIndex = x.options.indexOf(g)), r.value = x.options, d.value = x.activeOptionIndex, S.value = 2, x.options.some((T) => !E(T.dataRef.domRef)) && (h = requestAnimationFrame(() => {
735
+ let T = C();
736
+ r.value = T.options, d.value = T.activeOptionIndex;
737
+ }));
738
+ }, unregisterOption(u, m) {
739
+ if (N !== null && cancelAnimationFrame(N), m && (V.value = !0), c.virtual.value) {
740
+ r.value = r.value.filter((x) => x.id !== u);
741
+ return;
742
+ }
743
+ let g = C((x) => {
744
+ let T = x.findIndex((A) => A.id === u);
745
+ return T !== -1 && x.splice(T, 1), x;
746
+ });
747
+ r.value = g.options, d.value = g.activeOptionIndex, S.value = 2;
748
+ }, isSelected(u) {
749
+ return te(k.value, { 0: () => c.compare(U(c.value.value), U(u)), 1: () => U(c.value.value).some((m) => c.compare(U(m), U(u))) });
750
+ }, isActive(u) {
751
+ return d.value === c.calculateIndex(u);
752
+ } };
753
+ Je([s, l, p], () => c.closeCombobox(), y(() => t.value === 0)), Re(Ae, c), Ye(y(() => te(t.value, { 0: ue.Open, 1: ue.Closed })));
754
+ let O = y(() => {
755
+ var u;
756
+ return (u = E(s)) == null ? void 0 : u.closest("form");
757
+ });
758
+ return ve(() => {
759
+ W([O], () => {
760
+ if (!O.value || o.defaultValue === void 0) return;
761
+ function u() {
762
+ c.change(o.defaultValue);
763
+ }
764
+ return O.value.addEventListener("reset", u), () => {
765
+ var m;
766
+ (m = O.value) == null || m.removeEventListener("reset", u);
767
+ };
768
+ }, { immediate: !0 });
769
+ }), () => {
770
+ var u, m, g;
771
+ let { name: x, disabled: T, form: A, ...B } = o, i = { open: t.value === 0, disabled: T, activeIndex: c.activeOptionIndex.value, activeOption: c.activeOptionIndex.value === null ? null : c.virtual.value ? c.virtual.value.options[(u = c.activeOptionIndex.value) != null ? u : 0] : (g = (m = c.options.value[c.activeOptionIndex.value]) == null ? void 0 : m.dataRef.value) != null ? g : null, value: I.value };
772
+ return ie(Ce, [...x != null && I.value != null ? We({ [x]: I.value }).map(([w, D]) => ie(Ue, He({ features: Qe.Hidden, key: w, as: "input", type: "hidden", hidden: !0, readOnly: !0, form: A, disabled: T, name: w, value: D }))) : [], le({ theirProps: { ...e, ...fe(B, ["by", "defaultValue", "immediate", "modelValue", "multiple", "nullable", "onUpdate:modelValue", "virtual"]) }, ourProps: {}, slot: i, slots: v, attrs: e, name: "Combobox" })]);
773
+ };
774
+ } });
775
+ Q({ name: "ComboboxLabel", props: { as: { type: [Object, String], default: "label" }, id: { type: String, default: null } }, setup(o, { attrs: v, slots: e }) {
776
+ var n;
777
+ let t = (n = o.id) != null ? n : `headlessui-combobox-label-${ne()}`, a = G("ComboboxLabel");
778
+ function s() {
779
+ var l;
780
+ (l = E(a.inputRef)) == null || l.focus({ preventScroll: !0 });
781
+ }
782
+ return () => {
783
+ let l = { open: a.comboboxState.value === 0, disabled: a.disabled.value }, { ...p } = o, f = { id: t, ref: a.labelRef, onClick: s };
784
+ return le({ ourProps: f, theirProps: p, slot: l, attrs: v, slots: e, name: "ComboboxLabel" });
785
+ };
786
+ } });
787
+ let It = Q({ name: "ComboboxButton", props: { as: { type: [Object, String], default: "button" }, id: { type: String, default: null } }, setup(o, { attrs: v, slots: e, expose: n }) {
788
+ var t;
789
+ let a = (t = o.id) != null ? t : `headlessui-combobox-button-${ne()}`, s = G("ComboboxButton");
790
+ n({ el: s.buttonRef, $el: s.buttonRef });
791
+ function l(r) {
792
+ s.disabled.value || (s.comboboxState.value === 0 ? s.closeCombobox() : (r.preventDefault(), s.openCombobox()), Y(() => {
793
+ var d;
794
+ return (d = E(s.inputRef)) == null ? void 0 : d.focus({ preventScroll: !0 });
795
+ }));
796
+ }
797
+ function p(r) {
798
+ switch (r.key) {
799
+ case L.ArrowDown:
800
+ r.preventDefault(), r.stopPropagation(), s.comboboxState.value === 1 && s.openCombobox(), Y(() => {
801
+ var d;
802
+ return (d = s.inputRef.value) == null ? void 0 : d.focus({ preventScroll: !0 });
803
+ });
804
+ return;
805
+ case L.ArrowUp:
806
+ r.preventDefault(), r.stopPropagation(), s.comboboxState.value === 1 && (s.openCombobox(), Y(() => {
807
+ s.value.value || s.goToOption(_.Last);
808
+ })), Y(() => {
809
+ var d;
810
+ return (d = s.inputRef.value) == null ? void 0 : d.focus({ preventScroll: !0 });
811
+ });
812
+ return;
813
+ case L.Escape:
814
+ if (s.comboboxState.value !== 0) return;
815
+ r.preventDefault(), s.optionsRef.value && !s.optionsPropsRef.value.static && r.stopPropagation(), s.closeCombobox(), Y(() => {
816
+ var d;
817
+ return (d = s.inputRef.value) == null ? void 0 : d.focus({ preventScroll: !0 });
818
+ });
819
+ return;
820
+ }
821
+ }
822
+ let f = Ke(y(() => ({ as: o.as, type: v.type })), s.buttonRef);
823
+ return () => {
824
+ var r, d;
825
+ let S = { open: s.comboboxState.value === 0, disabled: s.disabled.value, value: s.value.value }, { ...V } = o, C = { ref: s.buttonRef, id: a, type: f.value, tabindex: "-1", "aria-haspopup": "listbox", "aria-controls": (r = E(s.optionsRef)) == null ? void 0 : r.id, "aria-expanded": s.comboboxState.value === 0, "aria-labelledby": s.labelRef.value ? [(d = E(s.labelRef)) == null ? void 0 : d.id, a].join(" ") : void 0, disabled: s.disabled.value === !0 ? !0 : void 0, onKeydown: p, onClick: l };
826
+ return le({ ourProps: C, theirProps: V, slot: S, attrs: v, slots: e, name: "ComboboxButton" });
827
+ };
828
+ } }), Rt = Q({ name: "ComboboxInput", props: { as: { type: [Object, String], default: "input" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, displayValue: { type: Function }, defaultValue: { type: String, default: void 0 }, id: { type: String, default: null } }, emits: { change: (o) => !0 }, setup(o, { emit: v, attrs: e, slots: n, expose: t }) {
829
+ var a;
830
+ let s = (a = o.id) != null ? a : `headlessui-combobox-input-${ne()}`, l = G("ComboboxInput"), p = y(() => Me(E(l.inputRef))), f = { value: !1 };
831
+ t({ el: l.inputRef, $el: l.inputRef });
832
+ function r() {
833
+ l.change(null);
834
+ let h = E(l.optionsRef);
835
+ h && (h.scrollTop = 0), l.goToOption(_.Nothing);
836
+ }
837
+ let d = y(() => {
838
+ var h;
839
+ let R = l.value.value;
840
+ return E(l.inputRef) ? typeof o.displayValue < "u" && R !== void 0 ? (h = o.displayValue(R)) != null ? h : "" : typeof R == "string" ? R : "" : "";
841
+ });
842
+ ve(() => {
843
+ W([d, l.comboboxState, p], ([h, R], [M, c]) => {
844
+ if (f.value) return;
845
+ let O = E(l.inputRef);
846
+ O && ((c === 0 && R === 1 || h !== M) && (O.value = h), requestAnimationFrame(() => {
847
+ var u;
848
+ if (f.value || !O || ((u = p.value) == null ? void 0 : u.activeElement) !== O) return;
849
+ let { selectionStart: m, selectionEnd: g } = O;
850
+ Math.abs((g ?? 0) - (m ?? 0)) === 0 && m === 0 && O.setSelectionRange(O.value.length, O.value.length);
851
+ }));
852
+ }, { immediate: !0 }), W([l.comboboxState], ([h], [R]) => {
853
+ if (h === 0 && R === 1) {
854
+ if (f.value) return;
855
+ let M = E(l.inputRef);
856
+ if (!M) return;
857
+ let c = M.value, { selectionStart: O, selectionEnd: u, selectionDirection: m } = M;
858
+ M.value = "", M.value = c, m !== null ? M.setSelectionRange(O, u, m) : M.setSelectionRange(O, u);
859
+ }
860
+ });
861
+ });
862
+ let S = F(!1);
863
+ function V() {
864
+ S.value = !0;
865
+ }
866
+ function C() {
867
+ ce().nextFrame(() => {
868
+ S.value = !1;
869
+ });
870
+ }
871
+ let k = ht();
872
+ function P(h) {
873
+ switch (f.value = !0, k(() => {
874
+ f.value = !1;
875
+ }), h.key) {
876
+ case L.Enter:
877
+ if (f.value = !1, l.comboboxState.value !== 0 || S.value) return;
878
+ if (h.preventDefault(), h.stopPropagation(), l.activeOptionIndex.value === null) {
879
+ l.closeCombobox();
880
+ return;
881
+ }
882
+ l.selectActiveOption(), l.mode.value === 0 && l.closeCombobox();
883
+ break;
884
+ case L.ArrowDown:
885
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), te(l.comboboxState.value, { 0: () => l.goToOption(_.Next), 1: () => l.openCombobox() });
886
+ case L.ArrowUp:
887
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), te(l.comboboxState.value, { 0: () => l.goToOption(_.Previous), 1: () => {
888
+ l.openCombobox(), Y(() => {
889
+ l.value.value || l.goToOption(_.Last);
890
+ });
891
+ } });
892
+ case L.Home:
893
+ if (h.shiftKey) break;
894
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), l.goToOption(_.First);
895
+ case L.PageUp:
896
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), l.goToOption(_.First);
897
+ case L.End:
898
+ if (h.shiftKey) break;
899
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), l.goToOption(_.Last);
900
+ case L.PageDown:
901
+ return f.value = !1, h.preventDefault(), h.stopPropagation(), l.goToOption(_.Last);
902
+ case L.Escape:
903
+ if (f.value = !1, l.comboboxState.value !== 0) return;
904
+ h.preventDefault(), l.optionsRef.value && !l.optionsPropsRef.value.static && h.stopPropagation(), l.nullable.value && l.mode.value === 0 && l.value.value === null && r(), l.closeCombobox();
905
+ break;
906
+ case L.Tab:
907
+ if (f.value = !1, l.comboboxState.value !== 0) return;
908
+ l.mode.value === 0 && l.activationTrigger.value !== 1 && l.selectActiveOption(), l.closeCombobox();
909
+ break;
910
+ }
911
+ }
912
+ function $(h) {
913
+ v("change", h), l.nullable.value && l.mode.value === 0 && h.target.value === "" && r(), l.openCombobox();
914
+ }
915
+ function b(h) {
916
+ var R, M, c;
917
+ let O = (R = h.relatedTarget) != null ? R : ge.find((u) => u !== h.currentTarget);
918
+ if (f.value = !1, !((M = E(l.optionsRef)) != null && M.contains(O)) && !((c = E(l.buttonRef)) != null && c.contains(O)) && l.comboboxState.value === 0) return h.preventDefault(), l.mode.value === 0 && (l.nullable.value && l.value.value === null ? r() : l.activationTrigger.value !== 1 && l.selectActiveOption()), l.closeCombobox();
919
+ }
920
+ function I(h) {
921
+ var R, M, c;
922
+ let O = (R = h.relatedTarget) != null ? R : ge.find((u) => u !== h.currentTarget);
923
+ (M = E(l.buttonRef)) != null && M.contains(O) || (c = E(l.optionsRef)) != null && c.contains(O) || l.disabled.value || l.immediate.value && l.comboboxState.value !== 0 && (l.openCombobox(), ce().nextFrame(() => {
924
+ l.setActivationTrigger(1);
925
+ }));
926
+ }
927
+ let N = y(() => {
928
+ var h, R, M, c;
929
+ return (c = (M = (R = o.defaultValue) != null ? R : l.defaultValue.value !== void 0 ? (h = o.displayValue) == null ? void 0 : h.call(o, l.defaultValue.value) : null) != null ? M : l.defaultValue.value) != null ? c : "";
930
+ });
931
+ return () => {
932
+ var h, R, M, c, O, u, m;
933
+ let g = { open: l.comboboxState.value === 0 }, { displayValue: x, onChange: T, ...A } = o, B = { "aria-controls": (h = l.optionsRef.value) == null ? void 0 : h.id, "aria-expanded": l.comboboxState.value === 0, "aria-activedescendant": l.activeOptionIndex.value === null ? void 0 : l.virtual.value ? (R = l.options.value.find((i) => !l.virtual.value.disabled(i.dataRef.value) && l.compare(i.dataRef.value, l.virtual.value.options[l.activeOptionIndex.value]))) == null ? void 0 : R.id : (M = l.options.value[l.activeOptionIndex.value]) == null ? void 0 : M.id, "aria-labelledby": (u = (c = E(l.labelRef)) == null ? void 0 : c.id) != null ? u : (O = E(l.buttonRef)) == null ? void 0 : O.id, "aria-autocomplete": "list", id: s, onCompositionstart: V, onCompositionend: C, onKeydown: P, onInput: $, onFocus: I, onBlur: b, role: "combobox", type: (m = e.type) != null ? m : "text", tabIndex: 0, ref: l.inputRef, defaultValue: N.value, disabled: l.disabled.value === !0 ? !0 : void 0 };
934
+ return le({ ourProps: B, theirProps: A, slot: g, attrs: e, slots: n, features: re.RenderStrategy | re.Static, name: "ComboboxInput" });
935
+ };
936
+ } }), Ct = Q({ name: "ComboboxOptions", props: { as: { type: [Object, String], default: "ul" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, hold: { type: [Boolean], default: !1 } }, setup(o, { attrs: v, slots: e, expose: n }) {
937
+ let t = G("ComboboxOptions"), a = `headlessui-combobox-options-${ne()}`;
938
+ n({ el: t.optionsRef, $el: t.optionsRef }), oe(() => {
939
+ t.optionsPropsRef.value.static = o.static;
940
+ }), oe(() => {
941
+ t.optionsPropsRef.value.hold = o.hold;
942
+ });
943
+ let s = Ge(), l = y(() => s !== null ? (s.value & ue.Open) === ue.Open : t.comboboxState.value === 0);
944
+ bt({ container: y(() => E(t.optionsRef)), enabled: y(() => t.comboboxState.value === 0), accept(f) {
945
+ return f.getAttribute("role") === "option" ? NodeFilter.FILTER_REJECT : f.hasAttribute("role") ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;
946
+ }, walk(f) {
947
+ f.setAttribute("role", "none");
948
+ } });
949
+ function p(f) {
950
+ f.preventDefault();
951
+ }
952
+ return () => {
953
+ var f, r, d;
954
+ let S = { open: t.comboboxState.value === 0 }, V = { "aria-labelledby": (d = (f = E(t.labelRef)) == null ? void 0 : f.id) != null ? d : (r = E(t.buttonRef)) == null ? void 0 : r.id, id: a, ref: t.optionsRef, role: "listbox", "aria-multiselectable": t.mode.value === 1 ? !0 : void 0, onMousedown: p }, C = fe(o, ["hold"]);
955
+ return le({ ourProps: V, theirProps: C, slot: S, attrs: v, slots: t.virtual.value && t.comboboxState.value === 0 ? { ...e, default: () => [ie(Ot, {}, e.default)] } : e, features: re.RenderStrategy | re.Static, visible: l.value, name: "ComboboxOptions" });
956
+ };
957
+ } }), de = Q({ name: "ComboboxOption", props: { as: { type: [Object, String], default: "li" }, value: { type: [Object, String, Number, Boolean] }, disabled: { type: Boolean, default: !1 }, order: { type: [Number], default: null } }, setup(o, { slots: v, attrs: e, expose: n }) {
958
+ let t = G("ComboboxOption"), a = `headlessui-combobox-option-${ne()}`, s = F(null), l = y(() => o.disabled);
959
+ n({ el: s, $el: s });
960
+ let p = y(() => {
961
+ var b;
962
+ return t.virtual.value ? t.activeOptionIndex.value === t.calculateIndex(o.value) : t.activeOptionIndex.value === null ? !1 : ((b = t.options.value[t.activeOptionIndex.value]) == null ? void 0 : b.id) === a;
963
+ }), f = y(() => t.isSelected(o.value)), r = Ee(ke, null), d = y(() => ({ disabled: o.disabled, value: o.value, domRef: s, order: y(() => o.order) }));
964
+ ve(() => t.registerOption(a, d)), Ie(() => t.unregisterOption(a, p.value)), oe(() => {
965
+ let b = E(s);
966
+ b && r?.value.measureElement(b);
967
+ }), oe(() => {
968
+ t.comboboxState.value === 0 && p.value && (t.virtual.value || t.activationTrigger.value !== 0 && Y(() => {
969
+ var b, I;
970
+ return (I = (b = E(s)) == null ? void 0 : b.scrollIntoView) == null ? void 0 : I.call(b, { block: "nearest" });
971
+ }));
972
+ });
973
+ function S(b) {
974
+ b.preventDefault(), b.button === Ve.Left && (l.value || (t.selectOption(a), Ze() || requestAnimationFrame(() => {
975
+ var I;
976
+ return (I = E(t.inputRef)) == null ? void 0 : I.focus({ preventScroll: !0 });
977
+ }), t.mode.value === 0 && t.closeCombobox()));
978
+ }
979
+ function V() {
980
+ var b;
981
+ if (o.disabled || (b = t.virtual.value) != null && b.disabled(o.value)) return t.goToOption(_.Nothing);
982
+ let I = t.calculateIndex(o.value);
983
+ t.goToOption(_.Specific, I);
984
+ }
985
+ let C = et();
986
+ function k(b) {
987
+ C.update(b);
988
+ }
989
+ function P(b) {
990
+ var I;
991
+ if (!C.wasMoved(b) || o.disabled || (I = t.virtual.value) != null && I.disabled(o.value) || p.value) return;
992
+ let N = t.calculateIndex(o.value);
993
+ t.goToOption(_.Specific, N, 0);
994
+ }
995
+ function $(b) {
996
+ var I;
997
+ C.wasMoved(b) && (o.disabled || (I = t.virtual.value) != null && I.disabled(o.value) || p.value && (t.optionsPropsRef.value.hold || t.goToOption(_.Nothing)));
998
+ }
999
+ return () => {
1000
+ let { disabled: b } = o, I = { active: p.value, selected: f.value, disabled: b }, N = { id: a, ref: s, role: "option", tabIndex: b === !0 ? void 0 : -1, "aria-disabled": b === !0 ? !0 : void 0, "aria-selected": f.value, disabled: void 0, onMousedown: S, onFocus: V, onPointerenter: k, onMouseenter: k, onPointermove: P, onMousemove: P, onPointerleave: $, onMouseleave: $ }, h = fe(o, ["order", "value"]);
1001
+ return le({ ourProps: N, theirProps: h, slot: I, attrs: e, slots: v, name: "ComboboxOption" });
1002
+ };
1003
+ } });
1004
+ const Et = { class: "sl-w-full" }, Mt = { class: "sl-block sl-truncate sl-font-medium" }, Tt = {
1005
+ key: 1,
1006
+ class: "sl-relative sl-cursor-default sl-select-none sl-py-2 sl-px-4 sl-text-gray-700"
1007
+ }, Vt = { class: "sl-flex sl-items-center sl-gap-2" }, At = {
1008
+ key: 2,
1009
+ class: "sl-relative sl-cursor-default sl-select-none sl-py-2 sl-px-4 sl-text-gray-700"
1010
+ }, kt = { class: "sl-block sl-truncate" }, zt = { key: 0 }, Ft = 50, qt = /* @__PURE__ */ Q({
1011
+ __name: "ComboboxInput",
1012
+ props: {
1013
+ name: {},
1014
+ items: {},
1015
+ label: {},
1016
+ placeholder: {},
1017
+ disabled: { type: Boolean },
1018
+ rules: {},
1019
+ validateOnMount: { type: Boolean },
1020
+ successMessage: {},
1021
+ tertiaryLabel: {},
1022
+ itemKey: { default: "id" },
1023
+ itemText: { default: "name" },
1024
+ customQuery: {},
1025
+ loading: { type: Boolean, default: !1 },
1026
+ multiple: { type: Boolean, default: !1 },
1027
+ showAll: { type: Boolean, default: !1 },
1028
+ modelValue: {},
1029
+ boxShadow: { type: Boolean, default: !1 }
1030
+ },
1031
+ emits: ["update:modelValue", "update:query", "blur", "focus"],
1032
+ setup(o, { emit: v }) {
1033
+ const e = o, n = v, t = Le(e.name), a = F(""), { value: s, errorMessage: l, handleChange: p, meta: f, setTouched: r } = _e(
1034
+ () => e.name,
1035
+ e.rules,
1036
+ {
1037
+ validateOnMount: e.validateOnMount,
1038
+ initialValue: e.modelValue
1039
+ }
1040
+ ), d = F(
1041
+ e.multiple ? Array.isArray(e.modelValue) ? e.modelValue : [] : e.modelValue
1042
+ );
1043
+ W(
1044
+ () => e.modelValue,
1045
+ (i) => {
1046
+ if (e.multiple) {
1047
+ const w = Array.isArray(i) ? i : [];
1048
+ w !== d.value && (d.value = w, s.value = w);
1049
+ } else
1050
+ i !== d.value && (d.value = i, s.value = i);
1051
+ },
1052
+ { immediate: !0 }
1053
+ ), W(
1054
+ d,
1055
+ (i) => {
1056
+ n("update:modelValue", i);
1057
+ }
1058
+ );
1059
+ const S = y(() => [
1060
+ "sl-w-full",
1061
+ "sl-border-none",
1062
+ "sl-py-2",
1063
+ "sl-pl-3",
1064
+ "sl-pr-10",
1065
+ "sl-text-sm",
1066
+ "sl-leading-5",
1067
+ "sl-text-gray-900",
1068
+ "focus:sl-outline-none",
1069
+ "focus:sl-ring-0",
1070
+ "sl-bg-transparent"
1071
+ ].join(" ")), V = y(() => {
1072
+ const i = [
1073
+ "sl-relative",
1074
+ "sl-w-full",
1075
+ "sl-cursor-default",
1076
+ "sl-rounded-lg",
1077
+ "sl-bg-white",
1078
+ "sl-text-left",
1079
+ "sl-border",
1080
+ "focus-within:sl-ring-2",
1081
+ "focus-within:sl-ring-stachelock-500",
1082
+ "focus-within:sl-border-stachelock-500",
1083
+ "sl-transition-all",
1084
+ "sl-duration-200"
1085
+ ];
1086
+ return e.disabled ? i.push(
1087
+ "sl-bg-gray-50",
1088
+ "sl-cursor-not-allowed",
1089
+ "sl-border-gray-200"
1090
+ ) : l.value ? i.push(
1091
+ "sl-border-red-300",
1092
+ "focus-within:sl-ring-red-500",
1093
+ "focus-within:sl-border-red-500"
1094
+ ) : f.valid && f.touched ? i.push(
1095
+ "sl-border-green-300",
1096
+ "focus-within:sl-ring-green-500",
1097
+ "focus-within:sl-border-green-500"
1098
+ ) : i.push(
1099
+ "sl-border-gray-300",
1100
+ "hover:sl-border-gray-400"
1101
+ ), i.join(" ");
1102
+ }), C = (i) => i[e.itemKey], k = (i) => i ? i[e.itemText] || i.toString() : "", P = F([]), $ = F([]), b = F(1), I = () => {
1103
+ const i = b.value * Ft;
1104
+ $.value = P.value.slice(0, i), b.value += 1;
1105
+ }, N = () => {
1106
+ b.value = 1, $.value = [], I();
1107
+ }, h = () => {
1108
+ if (a.value && a.value !== "")
1109
+ if (e.customQuery)
1110
+ P.value = e.customQuery(a.value, e.items);
1111
+ else {
1112
+ const i = a.value.toLowerCase();
1113
+ P.value = e.items.filter((w) => k(w).toLowerCase().includes(i));
1114
+ }
1115
+ else
1116
+ P.value = e.items;
1117
+ N();
1118
+ }, R = y(() => e.items.filter((i) => !i.disabled)), M = (i) => {
1119
+ const w = i.target;
1120
+ a.value = w.value, n("update:query", a.value), h();
1121
+ }, c = (i) => {
1122
+ d.value = i, r(!0), p(i);
1123
+ }, O = y(() => {
1124
+ if (!e.multiple || !Array.isArray(d.value)) return !1;
1125
+ const i = R.value;
1126
+ return i.length === 0 ? !1 : i.every((w) => d.value.includes(w));
1127
+ }), u = () => {
1128
+ e.multiple && (O.value ? d.value = [] : d.value = [...R.value], p(d.value));
1129
+ }, m = (i) => e.multiple ? !Array.isArray(i) || i.length === 0 ? "" : i.length === 1 ? k(i[0]) : `${i.length} selected` : k(i), g = y(() => e.multiple || a.value === "" ? null : { [e.itemKey]: null, [e.itemText]: a.value }), x = () => {
1130
+ e.multiple || g.value && (e.customQuery ? (n("update:modelValue", a.value), p(a.value)) : (d.value = g.value, p(d.value)));
1131
+ }, T = (i) => {
1132
+ const w = i.target;
1133
+ w.scrollTop + w.clientHeight >= w.scrollHeight && I();
1134
+ }, A = (i) => {
1135
+ n("focus", i);
1136
+ }, B = (i) => {
1137
+ !e.multiple && g.value && (d.value = g.value, p(d.value), n("update:modelValue", d.value)), n("blur", i);
1138
+ };
1139
+ return W(() => e.items, () => {
1140
+ h();
1141
+ }, { immediate: !0, deep: !0 }), (i, w) => (j(), X("div", Et, [
1142
+ H(Ne, {
1143
+ id: z(t),
1144
+ name: i.name,
1145
+ label: i.label,
1146
+ disabled: i.disabled,
1147
+ optional: !i.rules,
1148
+ "tertiary-label": i.tertiaryLabel,
1149
+ "box-shadow": i.boxShadow,
1150
+ "error-message": z(l),
1151
+ "success-message": i.successMessage,
1152
+ "is-valid": z(f).valid,
1153
+ "is-touched": z(f).touched
1154
+ }, {
1155
+ "success-message": K(() => [
1156
+ i.successMessage ? (j(), X("span", zt, ae(i.successMessage), 1)) : Z("", !0)
1157
+ ]),
1158
+ default: K(() => [
1159
+ H(z(wt), {
1160
+ modelValue: d.value,
1161
+ "onUpdate:modelValue": [
1162
+ w[2] || (w[2] = (D) => d.value = D),
1163
+ c
1164
+ ],
1165
+ disabled: i.disabled,
1166
+ multiple: i.multiple
1167
+ }, {
1168
+ default: K(() => [
1169
+ q("div", {
1170
+ class: J(V.value)
1171
+ }, [
1172
+ H(z(Rt), {
1173
+ id: z(t),
1174
+ class: J(S.value),
1175
+ "display-value": m,
1176
+ placeholder: i.placeholder || "Type to search...",
1177
+ modelValue: a.value,
1178
+ "onUpdate:modelValue": w[0] || (w[0] = (D) => a.value = D),
1179
+ onInput: M,
1180
+ onBlur: B,
1181
+ onFocus: A
1182
+ }, null, 8, ["id", "class", "placeholder", "modelValue"]),
1183
+ H(z(It), { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2" }, {
1184
+ default: K(() => [
1185
+ H(z(tt), {
1186
+ class: "sl-h-5 sl-w-5 sl-text-gray-400",
1187
+ "aria-hidden": "true"
1188
+ })
1189
+ ]),
1190
+ _: 1
1191
+ }),
1192
+ H(z(qe), {
1193
+ leave: "sl-transition sl-ease-in sl-duration-100",
1194
+ "leave-from": "sl-opacity-100",
1195
+ "leave-to": "sl-opacity-0",
1196
+ onAfterLeave: w[1] || (w[1] = (D) => a.value = "")
1197
+ }, {
1198
+ default: K(() => [
1199
+ P.value.length > 0 || a.value !== "" || i.multiple && i.showAll ? (j(), se(z(Ct), {
1200
+ key: 0,
1201
+ class: "sl-absolute sl-z-10 sl-mt-1 sl-max-h-60 sl-w-full sl-overflow-auto sl-rounded-md sl-bg-white sl-py-1 sl-text-base sl-shadow-lg sl-ring-1 sl-ring-black sl-ring-opacity-5 focus:sl-outline-none sm:sl-text-sm",
1202
+ onScroll: T
1203
+ }, {
1204
+ default: K(() => [
1205
+ i.multiple && i.showAll ? (j(), se(z(de), {
1206
+ key: 0,
1207
+ value: null,
1208
+ disabled: !0,
1209
+ as: "template"
1210
+ }, {
1211
+ default: K(({ active: D }) => [
1212
+ q("li", {
1213
+ onClick: be(u, ["prevent", "stop"]),
1214
+ class: J([
1215
+ "sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-10 sl-pr-4",
1216
+ D ? "sl-bg-stachelock-600 sl-text-white" : "sl-text-gray-900"
1217
+ ])
1218
+ }, [
1219
+ q("span", Mt, ae(O.value ? "Unselect All" : "Select All"), 1)
1220
+ ], 2)
1221
+ ]),
1222
+ _: 1
1223
+ })) : Z("", !0),
1224
+ i.loading ? (j(), X("div", Tt, [
1225
+ q("div", Vt, [
1226
+ H(Be, { size: "sm" }),
1227
+ w[3] || (w[3] = q("span", null, "Loading...", -1))
1228
+ ])
1229
+ ])) : a.value !== "" && P.value.length === 0 ? (j(), X("div", At, " Nothing found. ")) : Z("", !0),
1230
+ (j(!0), X(Ce, null, $e($.value, (D) => (j(), se(z(de), {
1231
+ key: C(D),
1232
+ value: D,
1233
+ as: "template",
1234
+ disabled: D.disabled
1235
+ }, {
1236
+ default: K(({ active: pe, selected: me }) => [
1237
+ q("li", {
1238
+ class: J([
1239
+ "sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-10 sl-pr-4",
1240
+ pe ? "sl-bg-stachelock-600 sl-text-white" : "sl-text-gray-900",
1241
+ D.disabled ? "sl-opacity-50 sl-cursor-not-allowed" : ""
1242
+ ])
1243
+ }, [
1244
+ q("span", {
1245
+ class: J([
1246
+ "sl-block sl-truncate",
1247
+ me ? "sl-font-medium" : "sl-font-normal"
1248
+ ])
1249
+ }, ae(k(D)), 3),
1250
+ me ? (j(), X("span", {
1251
+ key: 0,
1252
+ class: J(["sl-absolute sl-inset-y-0 sl-left-0 sl-flex sl-items-center sl-pl-3", pe ? "sl-text-white" : "sl-text-stachelock-600"])
1253
+ }, [
1254
+ H(z(lt), {
1255
+ class: "sl-h-5 sl-w-5",
1256
+ "aria-hidden": "true"
1257
+ })
1258
+ ], 2)) : Z("", !0)
1259
+ ], 2)
1260
+ ]),
1261
+ _: 2
1262
+ }, 1032, ["value", "disabled"]))), 128)),
1263
+ !i.multiple && g.value ? (j(), se(z(de), {
1264
+ key: 3,
1265
+ value: g.value,
1266
+ as: "template"
1267
+ }, {
1268
+ default: K(({ active: D }) => [
1269
+ q("li", {
1270
+ onClick: be(x, ["prevent", "stop"]),
1271
+ class: J([
1272
+ "sl-relative sl-cursor-pointer sl-select-none sl-py-2 sl-pl-10 sl-pr-4",
1273
+ D ? "sl-bg-stachelock-600 sl-text-white" : "sl-text-gray-900"
1274
+ ])
1275
+ }, [
1276
+ q("span", kt, ' Enter "' + ae(a.value) + '" manually ', 1)
1277
+ ], 2)
1278
+ ]),
1279
+ _: 1
1280
+ }, 8, ["value"])) : Z("", !0)
1281
+ ]),
1282
+ _: 1
1283
+ })) : Z("", !0)
1284
+ ]),
1285
+ _: 1
1286
+ })
1287
+ ], 2)
1288
+ ]),
1289
+ _: 1
1290
+ }, 8, ["modelValue", "disabled", "multiple"])
1291
+ ]),
1292
+ _: 1
1293
+ }, 8, ["id", "name", "label", "disabled", "optional", "tertiary-label", "box-shadow", "error-message", "success-message", "is-valid", "is-touched"])
1294
+ ]));
1295
+ }
1296
+ });
1297
+ export {
1298
+ qt as _
1299
+ };
1300
+ //# sourceMappingURL=ComboboxInput.vue_vue_type_script_setup_true_lang-2dJNxQUF.js.map