@spear-ai/spectral 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +6 -5
  2. package/dist/.js +112 -239
  3. package/dist/Accordion-CDXdSAST.js +363 -0
  4. package/dist/Accordion.js +3 -498
  5. package/dist/Alert/AlertBase.js +69 -152
  6. package/dist/Alert.js +58 -106
  7. package/dist/AnimatePresence-D-9jXfgI.js +178 -0
  8. package/dist/App.js +6 -6
  9. package/dist/Avatar.js +83 -65
  10. package/dist/Badge.d.ts +1 -3
  11. package/dist/Badge.js +21 -25
  12. package/dist/Button.js +102 -178
  13. package/dist/ButtonGroup/ButtonGroupButton.js +38 -40
  14. package/dist/ButtonGroup.js +55 -59
  15. package/dist/ButtonIcon.js +58 -134
  16. package/dist/Calendar-s4lyijkn.js +3109 -0
  17. package/dist/Checkbox/CheckboxBase.js +94 -126
  18. package/dist/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox.js +40 -105
  20. package/dist/Combobox/ComboboxBase.js +2 -79
  21. package/dist/Combobox.js +106 -172
  22. package/dist/ComboboxBase-D8Nf4xC-.js +491 -0
  23. package/dist/ControlGroup/ControlGroupSelect.d.ts +1 -1
  24. package/dist/ControlGroup/ControlGroupSelect.js +85 -101
  25. package/dist/ControlGroup.js +45 -48
  26. package/dist/DataCard/Card.js +37 -12
  27. package/dist/DataCard.d.ts +1 -1
  28. package/dist/DataCard.js +36 -16
  29. package/dist/DateTimePicker/Calendar.js +2 -2967
  30. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts +1 -1
  31. package/dist/DateTimePicker/DateTimeDisplayInput.js +379 -275
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +1 -1
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -141
  34. package/dist/DateTimePicker/DateTimeUtils.js +2 -2193
  35. package/dist/DateTimePicker/TimePeriodSelect.d.ts +1 -1
  36. package/dist/DateTimePicker/TimePeriodSelect.js +45 -20
  37. package/dist/DateTimePicker/TimePicker.d.ts +1 -1
  38. package/dist/DateTimePicker/TimePicker.js +76 -60
  39. package/dist/DateTimePicker.d.ts +2 -2
  40. package/dist/DateTimePicker.js +87 -205
  41. package/dist/DateTimeUtils-DVvG6H-p.js +2098 -0
  42. package/dist/Dialog.js +74 -74
  43. package/dist/Drawer.js +67 -37
  44. package/dist/HoverCard-CYDsIiVK.js +201 -0
  45. package/dist/HoverCard.d.ts +1 -1
  46. package/dist/HoverCard.js +2 -218
  47. package/dist/Icons/AnalyzeIcon.js +50 -57
  48. package/dist/Icons/AnnotationsIcon.js +20 -15
  49. package/dist/Icons/ApprovedIcon.js +26 -18
  50. package/dist/Icons/ArrowDownIcon.js +20 -6
  51. package/dist/Icons/ArrowUpIcon.js +20 -6
  52. package/dist/Icons/BoxToolIcon.js +17 -12
  53. package/dist/Icons/CalendarIcon.js +43 -20
  54. package/dist/Icons/CheckCircleIcon.js +26 -10
  55. package/dist/Icons/CheckSquareIcon.js +26 -10
  56. package/dist/Icons/CheckmarkIcon.js +22 -9
  57. package/dist/Icons/ChevronDownIcon.js +22 -9
  58. package/dist/Icons/ChevronUpIcon.js +22 -9
  59. package/dist/Icons/ClockIcon.js +26 -18
  60. package/dist/Icons/CloseCircleIcon.js +26 -10
  61. package/dist/Icons/CloseIcon.js +18 -9
  62. package/dist/Icons/DashboardIcon.js +36 -10
  63. package/dist/Icons/DatabaseIcon.js +36 -19
  64. package/dist/Icons/DeleteIcon.js +36 -19
  65. package/dist/Icons/DurationIcon.js +57 -22
  66. package/dist/Icons/EditIcon.js +26 -27
  67. package/dist/Icons/EmailIcon.js +26 -10
  68. package/dist/Icons/EraserIcon.js +41 -25
  69. package/dist/Icons/ErrorIcon.js +27 -11
  70. package/dist/Icons/EyeClosedIcon.js +29 -13
  71. package/dist/Icons/EyeClosedIcon2.js +27 -11
  72. package/dist/Icons/EyeOpenIcon.js +22 -9
  73. package/dist/Icons/FileDownloadIcon.js +43 -20
  74. package/dist/Icons/GoToFirstIcon.js +26 -9
  75. package/dist/Icons/GoToLastIcon.js +26 -9
  76. package/dist/Icons/HarmonicCursorsIcon.js +23 -9
  77. package/dist/Icons/IconBase.d.ts +3 -3
  78. package/dist/Icons/IconBase.js +49 -66
  79. package/dist/Icons/InfoIcon.js +36 -10
  80. package/dist/Icons/KeyboardIcon.js +26 -27
  81. package/dist/Icons/LabelIcon.js +19 -14
  82. package/dist/Icons/LassoIcon.js +36 -28
  83. package/dist/Icons/LineToolIcon.js +48 -39
  84. package/dist/Icons/LiveViewIcon.js +50 -12
  85. package/dist/Icons/LoaderIcon.js +67 -27
  86. package/dist/Icons/LocationIcon.js +26 -27
  87. package/dist/Icons/LogoutIcon.js +20 -15
  88. package/dist/Icons/MeasureIcon.js +78 -25
  89. package/dist/Icons/MessagesIcon.js +33 -18
  90. package/dist/Icons/MetadataIcon.js +20 -15
  91. package/dist/Icons/MinusIcon.d.ts +1 -1
  92. package/dist/Icons/MinusIcon.js +18 -6
  93. package/dist/Icons/OntologyIcon.js +87 -71
  94. package/dist/Icons/PanelIconClose.js +28 -10
  95. package/dist/Icons/PanelIconOpen.js +28 -10
  96. package/dist/Icons/PlayIcon.js +20 -6
  97. package/dist/Icons/PlusIcon.js +20 -14
  98. package/dist/Icons/PolygonIcon.js +50 -39
  99. package/dist/Icons/ProgressCheckIcon.d.ts +5 -0
  100. package/dist/Icons/ProgressCheckIcon.js +58 -0
  101. package/dist/Icons/ResetIcon.js +17 -12
  102. package/dist/Icons/ReviewedIcon.js +36 -19
  103. package/dist/Icons/ScissorsIcon.js +22 -17
  104. package/dist/Icons/SearchIcon.js +26 -9
  105. package/dist/Icons/SettingsIcon.js +26 -27
  106. package/dist/Icons/SortAscendingIcon.js +50 -12
  107. package/dist/Icons/SortAtoZIcon.js +50 -12
  108. package/dist/Icons/SortDescendingIcon.js +50 -12
  109. package/dist/Icons/SortZtoAIcon.js +50 -12
  110. package/dist/Icons/StackIcon.js +26 -9
  111. package/dist/Icons/StarIcon.js +20 -6
  112. package/dist/Icons/TrashIcon.js +17 -12
  113. package/dist/Icons/UndoIcon.js +20 -15
  114. package/dist/Icons/User2Icon.js +26 -10
  115. package/dist/Icons/UserIcon.js +19 -14
  116. package/dist/Icons/WarningIcon.js +19 -14
  117. package/dist/Icons/ZoomAllIcon.js +71 -15
  118. package/dist/Icons/ZoomXIcon.js +36 -10
  119. package/dist/Icons/ZoomYIcon.js +36 -10
  120. package/dist/Icons/index.d.ts +1 -0
  121. package/dist/Icons.js +68 -136
  122. package/dist/IconsAnimated/PanelLeftCloseIcon.js +66 -36
  123. package/dist/IconsAnimated/PanelLeftOpenIcon.js +66 -36
  124. package/dist/IconsAnimated.js +3 -6
  125. package/dist/Input/InputUtils.js +51 -52
  126. package/dist/Input.js +132 -185
  127. package/dist/InputOTP-XUWW9xcI.js +461 -0
  128. package/dist/InputOTP.js +2 -382
  129. package/dist/Kbd.d.ts +1 -1
  130. package/dist/Kbd.js +182 -86
  131. package/dist/Label.js +12 -14
  132. package/dist/MultiSelect/MultiSelectBase.js +331 -403
  133. package/dist/MultiSelect.d.ts +1 -1
  134. package/dist/MultiSelect.js +23 -23
  135. package/dist/Popover.js +28 -32
  136. package/dist/RadioButton.d.ts +17 -0
  137. package/dist/RadioButton.js +33 -0
  138. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +3 -1
  139. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +49 -46
  140. package/dist/RadioButtonGroup.d.ts +1 -1
  141. package/dist/RadioButtonGroup.js +11 -8
  142. package/dist/RadioGroup-w_q6RGEK.js +447 -0
  143. package/dist/RadioGroup.js +2 -505
  144. package/dist/Select.js +163 -186
  145. package/dist/Separator.js +16 -19
  146. package/dist/Skeleton.js +10 -6
  147. package/dist/Slider-BzzZT3Zm.js +490 -0
  148. package/dist/Slider.js +2 -562
  149. package/dist/SpectralProvider.js +8 -5
  150. package/dist/Switch/SwitchBase.js +91 -95
  151. package/dist/Switch-CVzRJ-0n.js +126 -0
  152. package/dist/Switch.d.ts +1 -1
  153. package/dist/Switch.js +2 -134
  154. package/dist/Tabs/TabsBase.js +242 -250
  155. package/dist/Tabs/tabsUtils.js +65 -73
  156. package/dist/Tabs.d.ts +1 -1
  157. package/dist/Tabs.js +73 -103
  158. package/dist/Textarea/TextareaUtils.js +35 -46
  159. package/dist/Textarea.js +83 -160
  160. package/dist/Toast-9zqXxKKO.js +711 -0
  161. package/dist/Toast.js +2 -885
  162. package/dist/Toggle/ToggleBase.js +46 -56
  163. package/dist/Toggle.d.ts +1 -1
  164. package/dist/Toggle.js +52 -62
  165. package/dist/ToggleGroup/ToggleGroupBase.js +128 -104
  166. package/dist/ToggleGroup.d.ts +1 -1
  167. package/dist/ToggleGroup.js +52 -63
  168. package/dist/Tooltip-D1K8kY1y.js +389 -0
  169. package/dist/Tooltip.js +2 -365
  170. package/dist/Tray.js +174 -217
  171. package/dist/chunk-h9knIhTc.js +20 -0
  172. package/dist/clsx-jM1GlMvB.js +16 -0
  173. package/dist/dist-3Af8168y.js +913 -0
  174. package/dist/dist-7HRQ5IKN.js +249 -0
  175. package/dist/dist-B2k1iWFp.js +129 -0
  176. package/dist/dist-B4FgboI8.js +122 -0
  177. package/dist/dist-B4g6zpUF.js +33 -0
  178. package/dist/dist-B9tup-4O.js +216 -0
  179. package/dist/dist-BK1K0g9W.js +29 -0
  180. package/dist/dist-Bfjk-jx9.js +28 -0
  181. package/dist/dist-Bft31cJh.js +65 -0
  182. package/dist/dist-BtdmHAzK.js +190 -0
  183. package/dist/dist-C0Hifjgh.js +1287 -0
  184. package/dist/dist-CGzgmYB9.js +68 -0
  185. package/dist/dist-ClmepHp4.js +10 -0
  186. package/dist/dist-D8Wb_MX9.js +6 -0
  187. package/dist/dist-Dtvmk11N.js +12 -0
  188. package/dist/dist-fW81qjVl.js +677 -0
  189. package/dist/dist-s1uWaZYZ.js +11 -0
  190. package/dist/es2015-YHaMV-St.js +701 -0
  191. package/dist/hooks/useAccordionAutoScroll.js +66 -67
  192. package/dist/hooks/useControllableState.js +14 -13
  193. package/dist/hooks/useTheme.js +21 -17
  194. package/dist/index.d.ts +2 -1
  195. package/dist/index.d.ts.map +1 -1
  196. package/dist/main.js +18954 -27224
  197. package/dist/primitives/button.js +39 -41
  198. package/dist/primitives/input-group.js +57 -73
  199. package/dist/primitives/input.js +11 -20
  200. package/dist/primitives/popover.js +34 -28
  201. package/dist/primitives/select.js +70 -138
  202. package/dist/primitives/slot.js +32 -31
  203. package/dist/primitives/textarea.js +10 -16
  204. package/dist/proxy-Dn10Pl_g.js +4920 -0
  205. package/dist/styles/main.css +2 -1
  206. package/dist/styles/spectral.css +1 -1
  207. package/dist/twUtils-VNWgstKL.js +1673 -0
  208. package/dist/use-animation-CBUDycyW.js +57 -0
  209. package/dist/utils/constants.js +4 -4
  210. package/dist/utils/formFieldUtils.js +136 -148
  211. package/dist/utils/sharedUtils.js +26 -7
  212. package/dist/utils/twUtils.js +2 -2919
  213. package/package.json +24 -28
  214. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  215. package/dist/clsx-OuTLNxxd.js +0 -16
  216. package/dist/index-0ioNhtNM.js +0 -10
  217. package/dist/index-6oYKCvIn.js +0 -677
  218. package/dist/index-BFOf48AQ.js +0 -69
  219. package/dist/index-BZPx6jYI.js +0 -8
  220. package/dist/index-BlHU_t18.js +0 -142
  221. package/dist/index-Bm1RbF6w.js +0 -1037
  222. package/dist/index-Bv2OIg5P.js +0 -225
  223. package/dist/index-CKEI0pDv.js +0 -56
  224. package/dist/index-CM_hWgfC.js +0 -32
  225. package/dist/index-C_YVr64u.js +0 -1538
  226. package/dist/index-Cl8VeY0o.js +0 -149
  227. package/dist/index-CwSyIPrv.js +0 -13
  228. package/dist/index-D29mdTf5.js +0 -34
  229. package/dist/index-DEYs15GP.js +0 -66
  230. package/dist/index-Dc0No4pV.js +0 -233
  231. package/dist/index-T6XEa11q.js +0 -822
  232. package/dist/index-pBCLb6Gr.js +0 -240
  233. package/dist/index-psiVrsnE.js +0 -27
  234. package/dist/index-rKs9bXHr.js +0 -6
  235. package/dist/proxy-CO_-Vget.js +0 -4975
  236. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -1,822 +0,0 @@
1
- import "./styles/main.css";
2
- import * as t from "react";
3
- import * as be from "react-dom";
4
- import { c as Re } from "./index-rKs9bXHr.js";
5
- import { e as Ee, u as k, P as M, c as R, f as Y, a as st, b as ct } from "./index-Dc0No4pV.js";
6
- import { u as lt, c as at } from "./index-CKEI0pDv.js";
7
- import { P as it, D as dt } from "./index-BlHU_t18.js";
8
- import { h as ut, u as pt, R as ft, F as mt } from "./index-6oYKCvIn.js";
9
- import { u as Ie } from "./index-CwSyIPrv.js";
10
- import { R as ht, A as vt, c as _e, C as gt, a as St } from "./index-C_YVr64u.js";
11
- import { u as wt } from "./index-0ioNhtNM.js";
12
- import { u as Ct } from "./index-BZPx6jYI.js";
13
- import { V as xt } from "./index-CM_hWgfC.js";
14
- import { jsx as p, jsxs as le, Fragment as Te } from "react/jsx-runtime";
15
- var yt = [" ", "Enter", "ArrowUp", "ArrowDown"], It = [" ", "Enter"], J = "Select", [ie, de, Tt] = at(J), [te] = st(J, [
16
- Tt,
17
- _e
18
- ]), ue = _e(), [Pt, j] = te(J), [Rt, Et] = te(J), Ne = (o) => {
19
- const {
20
- __scopeSelect: l,
21
- children: e,
22
- open: a,
23
- defaultOpen: s,
24
- onOpenChange: d,
25
- value: n,
26
- defaultValue: r,
27
- onValueChange: c,
28
- dir: f,
29
- name: g,
30
- autoComplete: C,
31
- disabled: E,
32
- required: T,
33
- form: y
34
- } = o, i = ue(l), [h, S] = t.useState(null), [m, v] = t.useState(null), [W, A] = t.useState(!1), oe = lt(f), [b, D] = Ee({
35
- prop: a,
36
- defaultProp: s ?? !1,
37
- onChange: d,
38
- caller: J
39
- }), [K, X] = Ee({
40
- prop: n,
41
- defaultProp: r,
42
- onChange: c,
43
- caller: J
44
- }), V = t.useRef(null), B = h ? y || !!h.closest("form") : !0, [G, H] = t.useState(/* @__PURE__ */ new Set()), F = Array.from(G).map((_) => _.props.value).join(";");
45
- return /* @__PURE__ */ p(ht, { ...i, children: /* @__PURE__ */ le(
46
- Pt,
47
- {
48
- required: T,
49
- scope: l,
50
- trigger: h,
51
- onTriggerChange: S,
52
- valueNode: m,
53
- onValueNodeChange: v,
54
- valueNodeHasChildren: W,
55
- onValueNodeHasChildrenChange: A,
56
- contentId: Ie(),
57
- value: K,
58
- onValueChange: X,
59
- open: b,
60
- onOpenChange: D,
61
- dir: oe,
62
- triggerPointerDownPosRef: V,
63
- disabled: E,
64
- children: [
65
- /* @__PURE__ */ p(ie.Provider, { scope: l, children: /* @__PURE__ */ p(
66
- Rt,
67
- {
68
- scope: o.__scopeSelect,
69
- onNativeOptionAdd: t.useCallback((_) => {
70
- H((L) => new Set(L).add(_));
71
- }, []),
72
- onNativeOptionRemove: t.useCallback((_) => {
73
- H((L) => {
74
- const U = new Set(L);
75
- return U.delete(_), U;
76
- });
77
- }, []),
78
- children: e
79
- }
80
- ) }),
81
- B ? /* @__PURE__ */ le(
82
- tt,
83
- {
84
- "aria-hidden": !0,
85
- required: T,
86
- tabIndex: -1,
87
- name: g,
88
- autoComplete: C,
89
- value: K,
90
- onChange: (_) => X(_.target.value),
91
- disabled: E,
92
- form: y,
93
- children: [
94
- K === void 0 ? /* @__PURE__ */ p("option", { value: "" }) : null,
95
- Array.from(G)
96
- ]
97
- },
98
- F
99
- ) : null
100
- ]
101
- }
102
- ) });
103
- };
104
- Ne.displayName = J;
105
- var Me = "SelectTrigger", Ae = t.forwardRef(
106
- (o, l) => {
107
- const { __scopeSelect: e, disabled: a = !1, ...s } = o, d = ue(e), n = j(Me, e), r = n.disabled || a, c = k(l, n.onTriggerChange), f = de(e), g = t.useRef("touch"), [C, E, T] = nt((i) => {
108
- const h = f().filter((v) => !v.disabled), S = h.find((v) => v.value === n.value), m = rt(h, i, S);
109
- m !== void 0 && n.onValueChange(m.value);
110
- }), y = (i) => {
111
- r || (n.onOpenChange(!0), T()), i && (n.triggerPointerDownPosRef.current = {
112
- x: Math.round(i.pageX),
113
- y: Math.round(i.pageY)
114
- });
115
- };
116
- return /* @__PURE__ */ p(vt, { asChild: !0, ...d, children: /* @__PURE__ */ p(
117
- M.button,
118
- {
119
- type: "button",
120
- role: "combobox",
121
- "aria-controls": n.contentId,
122
- "aria-expanded": n.open,
123
- "aria-required": n.required,
124
- "aria-autocomplete": "none",
125
- dir: n.dir,
126
- "data-state": n.open ? "open" : "closed",
127
- disabled: r,
128
- "data-disabled": r ? "" : void 0,
129
- "data-placeholder": ot(n.value) ? "" : void 0,
130
- ...s,
131
- ref: c,
132
- onClick: R(s.onClick, (i) => {
133
- i.currentTarget.focus(), g.current !== "mouse" && y(i);
134
- }),
135
- onPointerDown: R(s.onPointerDown, (i) => {
136
- g.current = i.pointerType;
137
- const h = i.target;
138
- h.hasPointerCapture(i.pointerId) && h.releasePointerCapture(i.pointerId), i.button === 0 && i.ctrlKey === !1 && i.pointerType === "mouse" && (y(i), i.preventDefault());
139
- }),
140
- onKeyDown: R(s.onKeyDown, (i) => {
141
- const h = C.current !== "";
142
- !(i.ctrlKey || i.altKey || i.metaKey) && i.key.length === 1 && E(i.key), !(h && i.key === " ") && yt.includes(i.key) && (y(), i.preventDefault());
143
- })
144
- }
145
- ) });
146
- }
147
- );
148
- Ae.displayName = Me;
149
- var Oe = "SelectValue", De = t.forwardRef(
150
- (o, l) => {
151
- const { __scopeSelect: e, className: a, style: s, children: d, placeholder: n = "", ...r } = o, c = j(Oe, e), { onValueNodeHasChildrenChange: f } = c, g = d !== void 0, C = k(l, c.onValueNodeChange);
152
- return Y(() => {
153
- f(g);
154
- }, [f, g]), /* @__PURE__ */ p(
155
- M.span,
156
- {
157
- ...r,
158
- ref: C,
159
- style: { pointerEvents: "none" },
160
- children: ot(c.value) ? /* @__PURE__ */ p(Te, { children: n }) : d
161
- }
162
- );
163
- }
164
- );
165
- De.displayName = Oe;
166
- var bt = "SelectIcon", Le = t.forwardRef(
167
- (o, l) => {
168
- const { __scopeSelect: e, children: a, ...s } = o;
169
- return /* @__PURE__ */ p(M.span, { "aria-hidden": !0, ...s, ref: l, children: a || "▼" });
170
- }
171
- );
172
- Le.displayName = bt;
173
- var _t = "SelectPortal", ke = (o) => /* @__PURE__ */ p(it, { asChild: !0, ...o });
174
- ke.displayName = _t;
175
- var Q = "SelectContent", Ve = t.forwardRef(
176
- (o, l) => {
177
- const e = j(Q, o.__scopeSelect), [a, s] = t.useState();
178
- if (Y(() => {
179
- s(new DocumentFragment());
180
- }, []), !e.open) {
181
- const d = a;
182
- return d ? be.createPortal(
183
- /* @__PURE__ */ p(Be, { scope: o.__scopeSelect, children: /* @__PURE__ */ p(ie.Slot, { scope: o.__scopeSelect, children: /* @__PURE__ */ p("div", { children: o.children }) }) }),
184
- d
185
- ) : null;
186
- }
187
- return /* @__PURE__ */ p(He, { ...o, ref: l });
188
- }
189
- );
190
- Ve.displayName = Q;
191
- var O = 10, [Be, q] = te(Q), Nt = "SelectContentImpl", Mt = ct("SelectContent.RemoveScroll"), He = t.forwardRef(
192
- (o, l) => {
193
- const {
194
- __scopeSelect: e,
195
- position: a = "item-aligned",
196
- onCloseAutoFocus: s,
197
- onEscapeKeyDown: d,
198
- onPointerDownOutside: n,
199
- //
200
- // PopperContent props
201
- side: r,
202
- sideOffset: c,
203
- align: f,
204
- alignOffset: g,
205
- arrowPadding: C,
206
- collisionBoundary: E,
207
- collisionPadding: T,
208
- sticky: y,
209
- hideWhenDetached: i,
210
- avoidCollisions: h,
211
- //
212
- ...S
213
- } = o, m = j(Q, e), [v, W] = t.useState(null), [A, oe] = t.useState(null), b = k(l, (u) => W(u)), [D, K] = t.useState(null), [X, V] = t.useState(
214
- null
215
- ), B = de(e), [G, H] = t.useState(!1), F = t.useRef(!1);
216
- t.useEffect(() => {
217
- if (v) return ut(v);
218
- }, [v]), pt();
219
- const _ = t.useCallback(
220
- (u) => {
221
- const [I, ...N] = B().map((P) => P.ref.current), [w] = N.slice(-1), x = document.activeElement;
222
- for (const P of u)
223
- if (P === x || (P?.scrollIntoView({ block: "nearest" }), P === I && A && (A.scrollTop = 0), P === w && A && (A.scrollTop = A.scrollHeight), P?.focus(), document.activeElement !== x)) return;
224
- },
225
- [B, A]
226
- ), L = t.useCallback(
227
- () => _([D, v]),
228
- [_, D, v]
229
- );
230
- t.useEffect(() => {
231
- G && L();
232
- }, [G, L]);
233
- const { onOpenChange: U, triggerPointerDownPosRef: z } = m;
234
- t.useEffect(() => {
235
- if (v) {
236
- let u = { x: 0, y: 0 };
237
- const I = (w) => {
238
- u = {
239
- x: Math.abs(Math.round(w.pageX) - (z.current?.x ?? 0)),
240
- y: Math.abs(Math.round(w.pageY) - (z.current?.y ?? 0))
241
- };
242
- }, N = (w) => {
243
- u.x <= 10 && u.y <= 10 ? w.preventDefault() : v.contains(w.target) || U(!1), document.removeEventListener("pointermove", I), z.current = null;
244
- };
245
- return z.current !== null && (document.addEventListener("pointermove", I), document.addEventListener("pointerup", N, { capture: !0, once: !0 })), () => {
246
- document.removeEventListener("pointermove", I), document.removeEventListener("pointerup", N, { capture: !0 });
247
- };
248
- }
249
- }, [v, U, z]), t.useEffect(() => {
250
- const u = () => U(!1);
251
- return window.addEventListener("blur", u), window.addEventListener("resize", u), () => {
252
- window.removeEventListener("blur", u), window.removeEventListener("resize", u);
253
- };
254
- }, [U]);
255
- const [pe, se] = nt((u) => {
256
- const I = B().filter((x) => !x.disabled), N = I.find((x) => x.ref.current === document.activeElement), w = rt(I, u, N);
257
- w && setTimeout(() => w.ref.current.focus());
258
- }), fe = t.useCallback(
259
- (u, I, N) => {
260
- const w = !F.current && !N;
261
- (m.value !== void 0 && m.value === I || w) && (K(u), w && (F.current = !0));
262
- },
263
- [m.value]
264
- ), me = t.useCallback(() => v?.focus(), [v]), ee = t.useCallback(
265
- (u, I, N) => {
266
- const w = !F.current && !N;
267
- (m.value !== void 0 && m.value === I || w) && V(u);
268
- },
269
- [m.value]
270
- ), ce = a === "popper" ? Se : Fe, ne = ce === Se ? {
271
- side: r,
272
- sideOffset: c,
273
- align: f,
274
- alignOffset: g,
275
- arrowPadding: C,
276
- collisionBoundary: E,
277
- collisionPadding: T,
278
- sticky: y,
279
- hideWhenDetached: i,
280
- avoidCollisions: h
281
- } : {};
282
- return /* @__PURE__ */ p(
283
- Be,
284
- {
285
- scope: e,
286
- content: v,
287
- viewport: A,
288
- onViewportChange: oe,
289
- itemRefCallback: fe,
290
- selectedItem: D,
291
- onItemLeave: me,
292
- itemTextRefCallback: ee,
293
- focusSelectedItem: L,
294
- selectedItemText: X,
295
- position: a,
296
- isPositioned: G,
297
- searchRef: pe,
298
- children: /* @__PURE__ */ p(ft, { as: Mt, allowPinchZoom: !0, children: /* @__PURE__ */ p(
299
- mt,
300
- {
301
- asChild: !0,
302
- trapped: m.open,
303
- onMountAutoFocus: (u) => {
304
- u.preventDefault();
305
- },
306
- onUnmountAutoFocus: R(s, (u) => {
307
- m.trigger?.focus({ preventScroll: !0 }), u.preventDefault();
308
- }),
309
- children: /* @__PURE__ */ p(
310
- dt,
311
- {
312
- asChild: !0,
313
- disableOutsidePointerEvents: !0,
314
- onEscapeKeyDown: d,
315
- onPointerDownOutside: n,
316
- onFocusOutside: (u) => u.preventDefault(),
317
- onDismiss: () => m.onOpenChange(!1),
318
- children: /* @__PURE__ */ p(
319
- ce,
320
- {
321
- role: "listbox",
322
- id: m.contentId,
323
- "data-state": m.open ? "open" : "closed",
324
- dir: m.dir,
325
- onContextMenu: (u) => u.preventDefault(),
326
- ...S,
327
- ...ne,
328
- onPlaced: () => H(!0),
329
- ref: b,
330
- style: {
331
- // flex layout so we can place the scroll buttons properly
332
- display: "flex",
333
- flexDirection: "column",
334
- // reset the outline by default as the content MAY get focused
335
- outline: "none",
336
- ...S.style
337
- },
338
- onKeyDown: R(S.onKeyDown, (u) => {
339
- const I = u.ctrlKey || u.altKey || u.metaKey;
340
- if (u.key === "Tab" && u.preventDefault(), !I && u.key.length === 1 && se(u.key), ["ArrowUp", "ArrowDown", "Home", "End"].includes(u.key)) {
341
- let w = B().filter((x) => !x.disabled).map((x) => x.ref.current);
342
- if (["ArrowUp", "End"].includes(u.key) && (w = w.slice().reverse()), ["ArrowUp", "ArrowDown"].includes(u.key)) {
343
- const x = u.target, P = w.indexOf(x);
344
- w = w.slice(P + 1);
345
- }
346
- setTimeout(() => _(w)), u.preventDefault();
347
- }
348
- })
349
- }
350
- )
351
- }
352
- )
353
- }
354
- ) })
355
- }
356
- );
357
- }
358
- );
359
- He.displayName = Nt;
360
- var At = "SelectItemAlignedPosition", Fe = t.forwardRef((o, l) => {
361
- const { __scopeSelect: e, onPlaced: a, ...s } = o, d = j(Q, e), n = q(Q, e), [r, c] = t.useState(null), [f, g] = t.useState(null), C = k(l, (b) => g(b)), E = de(e), T = t.useRef(!1), y = t.useRef(!0), { viewport: i, selectedItem: h, selectedItemText: S, focusSelectedItem: m } = n, v = t.useCallback(() => {
362
- if (d.trigger && d.valueNode && r && f && i && h && S) {
363
- const b = d.trigger.getBoundingClientRect(), D = f.getBoundingClientRect(), K = d.valueNode.getBoundingClientRect(), X = S.getBoundingClientRect();
364
- if (d.dir !== "rtl") {
365
- const x = X.left - D.left, P = K.left - x, Z = b.left - P, $ = b.width + Z, he = Math.max($, D.width), ve = window.innerWidth - O, ge = Re(P, [
366
- O,
367
- // Prevents the content from going off the starting edge of the
368
- // viewport. It may still go off the ending edge, but this can be
369
- // controlled by the user since they may want to manage overflow in a
370
- // specific way.
371
- // https://github.com/radix-ui/primitives/issues/2049
372
- Math.max(O, ve - he)
373
- ]);
374
- r.style.minWidth = $ + "px", r.style.left = ge + "px";
375
- } else {
376
- const x = D.right - X.right, P = window.innerWidth - K.right - x, Z = window.innerWidth - b.right - P, $ = b.width + Z, he = Math.max($, D.width), ve = window.innerWidth - O, ge = Re(P, [
377
- O,
378
- Math.max(O, ve - he)
379
- ]);
380
- r.style.minWidth = $ + "px", r.style.right = ge + "px";
381
- }
382
- const V = E(), B = window.innerHeight - O * 2, G = i.scrollHeight, H = window.getComputedStyle(f), F = parseInt(H.borderTopWidth, 10), _ = parseInt(H.paddingTop, 10), L = parseInt(H.borderBottomWidth, 10), U = parseInt(H.paddingBottom, 10), z = F + _ + G + U + L, pe = Math.min(h.offsetHeight * 5, z), se = window.getComputedStyle(i), fe = parseInt(se.paddingTop, 10), me = parseInt(se.paddingBottom, 10), ee = b.top + b.height / 2 - O, ce = B - ee, ne = h.offsetHeight / 2, u = h.offsetTop + ne, I = F + _ + u, N = z - I;
383
- if (I <= ee) {
384
- const x = V.length > 0 && h === V[V.length - 1].ref.current;
385
- r.style.bottom = "0px";
386
- const P = f.clientHeight - i.offsetTop - i.offsetHeight, Z = Math.max(
387
- ce,
388
- ne + // viewport might have padding bottom, include it to avoid a scrollable viewport
389
- (x ? me : 0) + P + L
390
- ), $ = I + Z;
391
- r.style.height = $ + "px";
392
- } else {
393
- const x = V.length > 0 && h === V[0].ref.current;
394
- r.style.top = "0px";
395
- const Z = Math.max(
396
- ee,
397
- F + i.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport
398
- (x ? fe : 0) + ne
399
- ) + N;
400
- r.style.height = Z + "px", i.scrollTop = I - ee + i.offsetTop;
401
- }
402
- r.style.margin = `${O}px 0`, r.style.minHeight = pe + "px", r.style.maxHeight = B + "px", a?.(), requestAnimationFrame(() => T.current = !0);
403
- }
404
- }, [
405
- E,
406
- d.trigger,
407
- d.valueNode,
408
- r,
409
- f,
410
- i,
411
- h,
412
- S,
413
- d.dir,
414
- a
415
- ]);
416
- Y(() => v(), [v]);
417
- const [W, A] = t.useState();
418
- Y(() => {
419
- f && A(window.getComputedStyle(f).zIndex);
420
- }, [f]);
421
- const oe = t.useCallback(
422
- (b) => {
423
- b && y.current === !0 && (v(), m?.(), y.current = !1);
424
- },
425
- [v, m]
426
- );
427
- return /* @__PURE__ */ p(
428
- Dt,
429
- {
430
- scope: e,
431
- contentWrapper: r,
432
- shouldExpandOnScrollRef: T,
433
- onScrollButtonChange: oe,
434
- children: /* @__PURE__ */ p(
435
- "div",
436
- {
437
- ref: c,
438
- style: {
439
- display: "flex",
440
- flexDirection: "column",
441
- position: "fixed",
442
- zIndex: W
443
- },
444
- children: /* @__PURE__ */ p(
445
- M.div,
446
- {
447
- ...s,
448
- ref: C,
449
- style: {
450
- // When we get the height of the content, it includes borders. If we were to set
451
- // the height without having `boxSizing: 'border-box'` it would be too big.
452
- boxSizing: "border-box",
453
- // We need to ensure the content doesn't get taller than the wrapper
454
- maxHeight: "100%",
455
- ...s.style
456
- }
457
- }
458
- )
459
- }
460
- )
461
- }
462
- );
463
- });
464
- Fe.displayName = At;
465
- var Ot = "SelectPopperPosition", Se = t.forwardRef((o, l) => {
466
- const {
467
- __scopeSelect: e,
468
- align: a = "start",
469
- collisionPadding: s = O,
470
- ...d
471
- } = o, n = ue(e);
472
- return /* @__PURE__ */ p(
473
- gt,
474
- {
475
- ...n,
476
- ...d,
477
- ref: l,
478
- align: a,
479
- collisionPadding: s,
480
- style: {
481
- // Ensure border-box for floating-ui calculations
482
- boxSizing: "border-box",
483
- ...d.style,
484
- "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
485
- "--radix-select-content-available-width": "var(--radix-popper-available-width)",
486
- "--radix-select-content-available-height": "var(--radix-popper-available-height)",
487
- "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
488
- "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
489
- }
490
- }
491
- );
492
- });
493
- Se.displayName = Ot;
494
- var [Dt, Pe] = te(Q, {}), we = "SelectViewport", Ue = t.forwardRef(
495
- (o, l) => {
496
- const { __scopeSelect: e, nonce: a, ...s } = o, d = q(we, e), n = Pe(we, e), r = k(l, d.onViewportChange), c = t.useRef(0);
497
- return /* @__PURE__ */ le(Te, { children: [
498
- /* @__PURE__ */ p(
499
- "style",
500
- {
501
- dangerouslySetInnerHTML: {
502
- __html: "[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"
503
- },
504
- nonce: a
505
- }
506
- ),
507
- /* @__PURE__ */ p(ie.Slot, { scope: e, children: /* @__PURE__ */ p(
508
- M.div,
509
- {
510
- "data-radix-select-viewport": "",
511
- role: "presentation",
512
- ...s,
513
- ref: r,
514
- style: {
515
- // we use position: 'relative' here on the `viewport` so that when we call
516
- // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport
517
- // (independent of the scrollUpButton).
518
- position: "relative",
519
- flex: 1,
520
- // Viewport should only be scrollable in the vertical direction.
521
- // This won't work in vertical writing modes, so we'll need to
522
- // revisit this if/when that is supported
523
- // https://developer.chrome.com/blog/vertical-form-controls
524
- overflow: "hidden auto",
525
- ...s.style
526
- },
527
- onScroll: R(s.onScroll, (f) => {
528
- const g = f.currentTarget, { contentWrapper: C, shouldExpandOnScrollRef: E } = n;
529
- if (E?.current && C) {
530
- const T = Math.abs(c.current - g.scrollTop);
531
- if (T > 0) {
532
- const y = window.innerHeight - O * 2, i = parseFloat(C.style.minHeight), h = parseFloat(C.style.height), S = Math.max(i, h);
533
- if (S < y) {
534
- const m = S + T, v = Math.min(y, m), W = m - v;
535
- C.style.height = v + "px", C.style.bottom === "0px" && (g.scrollTop = W > 0 ? W : 0, C.style.justifyContent = "flex-end");
536
- }
537
- }
538
- }
539
- c.current = g.scrollTop;
540
- })
541
- }
542
- ) })
543
- ] });
544
- }
545
- );
546
- Ue.displayName = we;
547
- var We = "SelectGroup", [Lt, kt] = te(We), Ke = t.forwardRef(
548
- (o, l) => {
549
- const { __scopeSelect: e, ...a } = o, s = Ie();
550
- return /* @__PURE__ */ p(Lt, { scope: e, id: s, children: /* @__PURE__ */ p(M.div, { role: "group", "aria-labelledby": s, ...a, ref: l }) });
551
- }
552
- );
553
- Ke.displayName = We;
554
- var Ge = "SelectLabel", ze = t.forwardRef(
555
- (o, l) => {
556
- const { __scopeSelect: e, ...a } = o, s = kt(Ge, e);
557
- return /* @__PURE__ */ p(M.div, { id: s.id, ...a, ref: l });
558
- }
559
- );
560
- ze.displayName = Ge;
561
- var ae = "SelectItem", [Vt, Ye] = te(ae), je = t.forwardRef(
562
- (o, l) => {
563
- const {
564
- __scopeSelect: e,
565
- value: a,
566
- disabled: s = !1,
567
- textValue: d,
568
- ...n
569
- } = o, r = j(ae, e), c = q(ae, e), f = r.value === a, [g, C] = t.useState(d ?? ""), [E, T] = t.useState(!1), y = k(
570
- l,
571
- (m) => c.itemRefCallback?.(m, a, s)
572
- ), i = Ie(), h = t.useRef("touch"), S = () => {
573
- s || (r.onValueChange(a), r.onOpenChange(!1));
574
- };
575
- if (a === "")
576
- throw new Error(
577
- "A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder."
578
- );
579
- return /* @__PURE__ */ p(
580
- Vt,
581
- {
582
- scope: e,
583
- value: a,
584
- disabled: s,
585
- textId: i,
586
- isSelected: f,
587
- onItemTextChange: t.useCallback((m) => {
588
- C((v) => v || (m?.textContent ?? "").trim());
589
- }, []),
590
- children: /* @__PURE__ */ p(
591
- ie.ItemSlot,
592
- {
593
- scope: e,
594
- value: a,
595
- disabled: s,
596
- textValue: g,
597
- children: /* @__PURE__ */ p(
598
- M.div,
599
- {
600
- role: "option",
601
- "aria-labelledby": i,
602
- "data-highlighted": E ? "" : void 0,
603
- "aria-selected": f && E,
604
- "data-state": f ? "checked" : "unchecked",
605
- "aria-disabled": s || void 0,
606
- "data-disabled": s ? "" : void 0,
607
- tabIndex: s ? void 0 : -1,
608
- ...n,
609
- ref: y,
610
- onFocus: R(n.onFocus, () => T(!0)),
611
- onBlur: R(n.onBlur, () => T(!1)),
612
- onClick: R(n.onClick, () => {
613
- h.current !== "mouse" && S();
614
- }),
615
- onPointerUp: R(n.onPointerUp, () => {
616
- h.current === "mouse" && S();
617
- }),
618
- onPointerDown: R(n.onPointerDown, (m) => {
619
- h.current = m.pointerType;
620
- }),
621
- onPointerMove: R(n.onPointerMove, (m) => {
622
- h.current = m.pointerType, s ? c.onItemLeave?.() : h.current === "mouse" && m.currentTarget.focus({ preventScroll: !0 });
623
- }),
624
- onPointerLeave: R(n.onPointerLeave, (m) => {
625
- m.currentTarget === document.activeElement && c.onItemLeave?.();
626
- }),
627
- onKeyDown: R(n.onKeyDown, (m) => {
628
- c.searchRef?.current !== "" && m.key === " " || (It.includes(m.key) && S(), m.key === " " && m.preventDefault());
629
- })
630
- }
631
- )
632
- }
633
- )
634
- }
635
- );
636
- }
637
- );
638
- je.displayName = ae;
639
- var re = "SelectItemText", qe = t.forwardRef(
640
- (o, l) => {
641
- const { __scopeSelect: e, className: a, style: s, ...d } = o, n = j(re, e), r = q(re, e), c = Ye(re, e), f = Et(re, e), [g, C] = t.useState(null), E = k(
642
- l,
643
- (S) => C(S),
644
- c.onItemTextChange,
645
- (S) => r.itemTextRefCallback?.(S, c.value, c.disabled)
646
- ), T = g?.textContent, y = t.useMemo(
647
- () => /* @__PURE__ */ p("option", { value: c.value, disabled: c.disabled, children: T }, c.value),
648
- [c.disabled, c.value, T]
649
- ), { onNativeOptionAdd: i, onNativeOptionRemove: h } = f;
650
- return Y(() => (i(y), () => h(y)), [i, h, y]), /* @__PURE__ */ le(Te, { children: [
651
- /* @__PURE__ */ p(M.span, { id: c.textId, ...d, ref: E }),
652
- c.isSelected && n.valueNode && !n.valueNodeHasChildren ? be.createPortal(d.children, n.valueNode) : null
653
- ] });
654
- }
655
- );
656
- qe.displayName = re;
657
- var Xe = "SelectItemIndicator", Ze = t.forwardRef(
658
- (o, l) => {
659
- const { __scopeSelect: e, ...a } = o;
660
- return Ye(Xe, e).isSelected ? /* @__PURE__ */ p(M.span, { "aria-hidden": !0, ...a, ref: l }) : null;
661
- }
662
- );
663
- Ze.displayName = Xe;
664
- var Ce = "SelectScrollUpButton", $e = t.forwardRef((o, l) => {
665
- const e = q(Ce, o.__scopeSelect), a = Pe(Ce, o.__scopeSelect), [s, d] = t.useState(!1), n = k(l, a.onScrollButtonChange);
666
- return Y(() => {
667
- if (e.viewport && e.isPositioned) {
668
- let r = function() {
669
- const f = c.scrollTop > 0;
670
- d(f);
671
- };
672
- const c = e.viewport;
673
- return r(), c.addEventListener("scroll", r), () => c.removeEventListener("scroll", r);
674
- }
675
- }, [e.viewport, e.isPositioned]), s ? /* @__PURE__ */ p(
676
- Qe,
677
- {
678
- ...o,
679
- ref: n,
680
- onAutoScroll: () => {
681
- const { viewport: r, selectedItem: c } = e;
682
- r && c && (r.scrollTop = r.scrollTop - c.offsetHeight);
683
- }
684
- }
685
- ) : null;
686
- });
687
- $e.displayName = Ce;
688
- var xe = "SelectScrollDownButton", Je = t.forwardRef((o, l) => {
689
- const e = q(xe, o.__scopeSelect), a = Pe(xe, o.__scopeSelect), [s, d] = t.useState(!1), n = k(l, a.onScrollButtonChange);
690
- return Y(() => {
691
- if (e.viewport && e.isPositioned) {
692
- let r = function() {
693
- const f = c.scrollHeight - c.clientHeight, g = Math.ceil(c.scrollTop) < f;
694
- d(g);
695
- };
696
- const c = e.viewport;
697
- return r(), c.addEventListener("scroll", r), () => c.removeEventListener("scroll", r);
698
- }
699
- }, [e.viewport, e.isPositioned]), s ? /* @__PURE__ */ p(
700
- Qe,
701
- {
702
- ...o,
703
- ref: n,
704
- onAutoScroll: () => {
705
- const { viewport: r, selectedItem: c } = e;
706
- r && c && (r.scrollTop = r.scrollTop + c.offsetHeight);
707
- }
708
- }
709
- ) : null;
710
- });
711
- Je.displayName = xe;
712
- var Qe = t.forwardRef((o, l) => {
713
- const { __scopeSelect: e, onAutoScroll: a, ...s } = o, d = q("SelectScrollButton", e), n = t.useRef(null), r = de(e), c = t.useCallback(() => {
714
- n.current !== null && (window.clearInterval(n.current), n.current = null);
715
- }, []);
716
- return t.useEffect(() => () => c(), [c]), Y(() => {
717
- r().find((g) => g.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
718
- }, [r]), /* @__PURE__ */ p(
719
- M.div,
720
- {
721
- "aria-hidden": !0,
722
- ...s,
723
- ref: l,
724
- style: { flexShrink: 0, ...s.style },
725
- onPointerDown: R(s.onPointerDown, () => {
726
- n.current === null && (n.current = window.setInterval(a, 50));
727
- }),
728
- onPointerMove: R(s.onPointerMove, () => {
729
- d.onItemLeave?.(), n.current === null && (n.current = window.setInterval(a, 50));
730
- }),
731
- onPointerLeave: R(s.onPointerLeave, () => {
732
- c();
733
- })
734
- }
735
- );
736
- }), Bt = "SelectSeparator", et = t.forwardRef(
737
- (o, l) => {
738
- const { __scopeSelect: e, ...a } = o;
739
- return /* @__PURE__ */ p(M.div, { "aria-hidden": !0, ...a, ref: l });
740
- }
741
- );
742
- et.displayName = Bt;
743
- var ye = "SelectArrow", Ht = t.forwardRef(
744
- (o, l) => {
745
- const { __scopeSelect: e, ...a } = o, s = ue(e), d = j(ye, e), n = q(ye, e);
746
- return d.open && n.position === "popper" ? /* @__PURE__ */ p(St, { ...s, ...a, ref: l }) : null;
747
- }
748
- );
749
- Ht.displayName = ye;
750
- var Ft = "SelectBubbleInput", tt = t.forwardRef(
751
- ({ __scopeSelect: o, value: l, ...e }, a) => {
752
- const s = t.useRef(null), d = k(a, s), n = Ct(l);
753
- return t.useEffect(() => {
754
- const r = s.current;
755
- if (!r) return;
756
- const c = window.HTMLSelectElement.prototype, g = Object.getOwnPropertyDescriptor(
757
- c,
758
- "value"
759
- ).set;
760
- if (n !== l && g) {
761
- const C = new Event("change", { bubbles: !0 });
762
- g.call(r, l), r.dispatchEvent(C);
763
- }
764
- }, [n, l]), /* @__PURE__ */ p(
765
- M.select,
766
- {
767
- ...e,
768
- style: { ...xt, ...e.style },
769
- ref: d,
770
- defaultValue: l
771
- }
772
- );
773
- }
774
- );
775
- tt.displayName = Ft;
776
- function ot(o) {
777
- return o === "" || o === void 0;
778
- }
779
- function nt(o) {
780
- const l = wt(o), e = t.useRef(""), a = t.useRef(0), s = t.useCallback(
781
- (n) => {
782
- const r = e.current + n;
783
- l(r), (function c(f) {
784
- e.current = f, window.clearTimeout(a.current), f !== "" && (a.current = window.setTimeout(() => c(""), 1e3));
785
- })(r);
786
- },
787
- [l]
788
- ), d = t.useCallback(() => {
789
- e.current = "", window.clearTimeout(a.current);
790
- }, []);
791
- return t.useEffect(() => () => window.clearTimeout(a.current), []), [e, s, d];
792
- }
793
- function rt(o, l, e) {
794
- const s = l.length > 1 && Array.from(l).every((f) => f === l[0]) ? l[0] : l, d = e ? o.indexOf(e) : -1;
795
- let n = Ut(o, Math.max(d, 0));
796
- s.length === 1 && (n = n.filter((f) => f !== e));
797
- const c = n.find(
798
- (f) => f.textValue.toLowerCase().startsWith(s.toLowerCase())
799
- );
800
- return c !== e ? c : void 0;
801
- }
802
- function Ut(o, l) {
803
- return o.map((e, a) => o[(l + a) % o.length]);
804
- }
805
- var Qt = Ne, eo = Ae, to = De, oo = Le, no = ke, ro = Ve, so = Ue, co = Ke, lo = ze, ao = je, io = qe, uo = Ze, po = $e, fo = Je, mo = et;
806
- export {
807
- ro as C,
808
- co as G,
809
- oo as I,
810
- lo as L,
811
- no as P,
812
- Qt as R,
813
- po as S,
814
- eo as T,
815
- to as V,
816
- so as a,
817
- fo as b,
818
- mo as c,
819
- ao as d,
820
- io as e,
821
- uo as f
822
- };