@spear-ai/spectral 1.9.0 → 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 (237) 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 -274
  32. package/dist/DateTimePicker/DateTimeInput.d.ts +5 -3
  33. package/dist/DateTimePicker/DateTimeInput.js +133 -88
  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 -23
  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.d.ts.map +1 -1
  201. package/dist/primitives/popover.js +34 -25
  202. package/dist/primitives/select.js +70 -138
  203. package/dist/primitives/slot.js +32 -31
  204. package/dist/primitives/textarea.js +10 -16
  205. package/dist/proxy-Dn10Pl_g.js +4920 -0
  206. package/dist/styles/main.css +2 -1
  207. package/dist/styles/spectral.css +1 -1
  208. package/dist/twUtils-VNWgstKL.js +1673 -0
  209. package/dist/use-animation-CBUDycyW.js +57 -0
  210. package/dist/utils/constants.js +4 -4
  211. package/dist/utils/formFieldUtils.js +136 -148
  212. package/dist/utils/sharedUtils.js +26 -7
  213. package/dist/utils/twUtils.js +2 -2919
  214. package/package.json +24 -28
  215. package/dist/ComboboxBase-CxNxYtdT.js +0 -408
  216. package/dist/clsx-OuTLNxxd.js +0 -16
  217. package/dist/index-0ioNhtNM.js +0 -10
  218. package/dist/index-6oYKCvIn.js +0 -677
  219. package/dist/index-BFOf48AQ.js +0 -69
  220. package/dist/index-BZPx6jYI.js +0 -8
  221. package/dist/index-BlHU_t18.js +0 -142
  222. package/dist/index-Bm1RbF6w.js +0 -1037
  223. package/dist/index-Bv2OIg5P.js +0 -225
  224. package/dist/index-CKEI0pDv.js +0 -56
  225. package/dist/index-CM_hWgfC.js +0 -32
  226. package/dist/index-C_YVr64u.js +0 -1538
  227. package/dist/index-Cl8VeY0o.js +0 -149
  228. package/dist/index-CwSyIPrv.js +0 -13
  229. package/dist/index-D29mdTf5.js +0 -34
  230. package/dist/index-DEYs15GP.js +0 -66
  231. package/dist/index-Dc0No4pV.js +0 -233
  232. package/dist/index-T6XEa11q.js +0 -822
  233. package/dist/index-pBCLb6Gr.js +0 -240
  234. package/dist/index-psiVrsnE.js +0 -27
  235. package/dist/index-rKs9bXHr.js +0 -6
  236. package/dist/proxy-CO_-Vget.js +0 -4975
  237. package/dist/use-animation-DhEPRwZ3.js +0 -62
@@ -0,0 +1,491 @@
1
+ import "./styles/main.css";
2
+ import { CheckmarkIcon as e } from "./Icons/CheckmarkIcon.js";
3
+ import { SearchIcon as t } from "./Icons/SearchIcon.js";
4
+ import { c as n, t as r } from "./dist-7HRQ5IKN.js";
5
+ import { t as i } from "./dist-Dtvmk11N.js";
6
+ import { t as a } from "./twUtils-VNWgstKL.js";
7
+ import { InputGroup as o, InputGroupAddon as s } from "./primitives/input-group.js";
8
+ import { a as c, i as l, n as u, o as d } from "./dist-B9tup-4O.js";
9
+ import * as f from "react";
10
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
11
+ //#region node_modules/.pnpm/cmdk@1.1.1_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@19.2.14_react-dom_c7cada531f0aaf30a175ae441f7fe8bc/node_modules/cmdk/dist/chunk-NZJY6EH4.mjs
12
+ var h = 1, g = .9, _ = .8, v = .17, y = .1, b = .999, x = .9999, S = .99, C = /[\\\/_+.#"@\[\(\{&]/, w = /[\\\/_+.#"@\[\(\{&]/g, T = /[\s-]/, E = /[\s-]/g;
13
+ function D(e, t, n, r, i, a, o) {
14
+ if (a === t.length) return i === e.length ? h : S;
15
+ var s = `${i},${a}`;
16
+ if (o[s] !== void 0) return o[s];
17
+ for (var c = r.charAt(a), l = n.indexOf(c, i), u = 0, d, f, p, m; l >= 0;) d = D(e, t, n, r, l + 1, a + 1, o), d > u && (l === i ? d *= h : C.test(e.charAt(l - 1)) ? (d *= _, p = e.slice(i, l - 1).match(w), p && i > 0 && (d *= b ** +p.length)) : T.test(e.charAt(l - 1)) ? (d *= g, m = e.slice(i, l - 1).match(E), m && i > 0 && (d *= b ** +m.length)) : (d *= v, i > 0 && (d *= b ** +(l - i))), e.charAt(l) !== t.charAt(a) && (d *= x)), (d < y && n.charAt(l - 1) === r.charAt(a + 1) || r.charAt(a + 1) === r.charAt(a) && n.charAt(l - 1) !== r.charAt(a)) && (f = D(e, t, n, r, l + 1, a + 2, o), f * y > d && (d = f * y)), d > u && (u = d), l = n.indexOf(c, l + 1);
18
+ return o[s] = u, u;
19
+ }
20
+ function O(e) {
21
+ return e.toLowerCase().replace(E, " ");
22
+ }
23
+ function k(e, t, n) {
24
+ return e = n && n.length > 0 ? `${e + " " + n.join(" ")}` : e, D(e, t, O(e), O(t), 0, 0, {});
25
+ }
26
+ //#endregion
27
+ //#region node_modules/.pnpm/cmdk@1.1.1_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@19.2.14_react-dom_c7cada531f0aaf30a175ae441f7fe8bc/node_modules/cmdk/dist/index.mjs
28
+ var A = "[cmdk-group=\"\"]", j = "[cmdk-group-items=\"\"]", ee = "[cmdk-group-heading=\"\"]", M = "[cmdk-item=\"\"]", te = `${M}:not([aria-disabled="true"])`, N = "cmdk-item-select", P = "data-value", ne = (e, t, n) => k(e, t, n), F = f.createContext(void 0), I = () => f.useContext(F), L = f.createContext(void 0), R = () => f.useContext(L), z = f.createContext(void 0), B = f.forwardRef((e, t) => {
29
+ let n = Z(() => ({
30
+ search: "",
31
+ value: e.value ?? e.defaultValue ?? "",
32
+ selectedItemId: void 0,
33
+ filtered: {
34
+ count: 0,
35
+ items: /* @__PURE__ */ new Map(),
36
+ groups: /* @__PURE__ */ new Set()
37
+ }
38
+ })), a = Z(() => /* @__PURE__ */ new Set()), o = Z(() => /* @__PURE__ */ new Map()), s = Z(() => /* @__PURE__ */ new Map()), c = Z(() => /* @__PURE__ */ new Set()), l = Y(e), { label: u, children: d, value: p, onValueChange: m, filter: h, shouldFilter: g, loop: _, disablePointerSelection: v = !1, vimBindings: y = !0, ...b } = e, x = i(), S = i(), C = i(), w = f.useRef(null), T = se();
39
+ X(() => {
40
+ if (p !== void 0) {
41
+ let e = p.trim();
42
+ n.current.value = e, E.emit();
43
+ }
44
+ }, [p]), X(() => {
45
+ T(6, z);
46
+ }, []);
47
+ let E = f.useMemo(() => ({
48
+ subscribe: (e) => (c.current.add(e), () => c.current.delete(e)),
49
+ snapshot: () => n.current,
50
+ setState: (e, t, r) => {
51
+ var i, a, o;
52
+ if (!Object.is(n.current[e], t)) {
53
+ if (n.current[e] = t, e === "search") R(), k(), T(1, I);
54
+ else if (e === "value") {
55
+ if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
56
+ let e = document.getElementById(C);
57
+ e ? e.focus() : (i = document.getElementById(x)) == null || i.focus();
58
+ }
59
+ if (T(7, () => {
60
+ n.current.selectedItemId = B()?.id, E.emit();
61
+ }), r || T(5, z), l.current?.value !== void 0) {
62
+ let e = t ?? "";
63
+ (o = (a = l.current).onValueChange) == null || o.call(a, e);
64
+ return;
65
+ }
66
+ }
67
+ E.emit();
68
+ }
69
+ },
70
+ emit: () => {
71
+ c.current.forEach((e) => e());
72
+ }
73
+ }), []), D = f.useMemo(() => ({
74
+ value: (e, t, r) => {
75
+ t !== s.current.get(e)?.value && (s.current.set(e, {
76
+ value: t,
77
+ keywords: r
78
+ }), n.current.filtered.items.set(e, O(t, r)), T(2, () => {
79
+ k(), E.emit();
80
+ }));
81
+ },
82
+ item: (e, t) => (a.current.add(e), t && (o.current.has(t) ? o.current.get(t).add(e) : o.current.set(t, new Set([e]))), T(3, () => {
83
+ R(), k(), n.current.value || I(), E.emit();
84
+ }), () => {
85
+ s.current.delete(e), a.current.delete(e), n.current.filtered.items.delete(e);
86
+ let t = B();
87
+ T(4, () => {
88
+ R(), t?.getAttribute("id") === e && I(), E.emit();
89
+ });
90
+ }),
91
+ group: (e) => (o.current.has(e) || o.current.set(e, /* @__PURE__ */ new Set()), () => {
92
+ s.current.delete(e), o.current.delete(e);
93
+ }),
94
+ filter: () => l.current.shouldFilter,
95
+ label: u || e["aria-label"],
96
+ getDisablePointerSelection: () => l.current.disablePointerSelection,
97
+ listId: x,
98
+ inputId: C,
99
+ labelId: S,
100
+ listInnerRef: w
101
+ }), []);
102
+ function O(e, t) {
103
+ let r = l.current?.filter ?? ne;
104
+ return e ? r(e, n.current.search, t) : 0;
105
+ }
106
+ function k() {
107
+ if (!n.current.search || l.current.shouldFilter === !1) return;
108
+ let e = n.current.filtered.items, t = [];
109
+ n.current.filtered.groups.forEach((n) => {
110
+ let r = o.current.get(n), i = 0;
111
+ r.forEach((t) => {
112
+ let n = e.get(t);
113
+ i = Math.max(n, i);
114
+ }), t.push([n, i]);
115
+ });
116
+ let r = w.current;
117
+ V().sort((t, n) => {
118
+ let r = t.getAttribute("id"), i = n.getAttribute("id");
119
+ return (e.get(i) ?? 0) - (e.get(r) ?? 0);
120
+ }).forEach((e) => {
121
+ let t = e.closest(j);
122
+ t ? t.appendChild(e.parentElement === t ? e : e.closest(`${j} > *`)) : r.appendChild(e.parentElement === r ? e : e.closest(`${j} > *`));
123
+ }), t.sort((e, t) => t[1] - e[1]).forEach((e) => {
124
+ let t = w.current?.querySelector(`${A}[${P}="${encodeURIComponent(e[0])}"]`);
125
+ t?.parentElement.appendChild(t);
126
+ });
127
+ }
128
+ function I() {
129
+ let e = V().find((e) => e.getAttribute("aria-disabled") !== "true")?.getAttribute(P);
130
+ E.setState("value", e || void 0);
131
+ }
132
+ function R() {
133
+ if (!n.current.search || l.current.shouldFilter === !1) {
134
+ n.current.filtered.count = a.current.size;
135
+ return;
136
+ }
137
+ n.current.filtered.groups = /* @__PURE__ */ new Set();
138
+ let e = 0;
139
+ for (let t of a.current) {
140
+ let r = O(s.current.get(t)?.value ?? "", s.current.get(t)?.keywords ?? []);
141
+ n.current.filtered.items.set(t, r), r > 0 && e++;
142
+ }
143
+ for (let [e, t] of o.current) for (let r of t) if (n.current.filtered.items.get(r) > 0) {
144
+ n.current.filtered.groups.add(e);
145
+ break;
146
+ }
147
+ n.current.filtered.count = e;
148
+ }
149
+ function z() {
150
+ var e;
151
+ let t = B();
152
+ t && (t.parentElement?.firstChild === t && ((e = t.closest(A)?.querySelector(ee)) == null || e.scrollIntoView({ block: "nearest" })), t.scrollIntoView({ block: "nearest" }));
153
+ }
154
+ function B() {
155
+ return w.current?.querySelector(`${M}[aria-selected="true"]`);
156
+ }
157
+ function V() {
158
+ return Array.from(w.current?.querySelectorAll(te) || []);
159
+ }
160
+ function H(e) {
161
+ let t = V()[e];
162
+ t && E.setState("value", t.getAttribute(P));
163
+ }
164
+ function U(e) {
165
+ var t;
166
+ let n = B(), r = V(), i = r.findIndex((e) => e === n), a = r[i + e];
167
+ (t = l.current) != null && t.loop && (a = i + e < 0 ? r[r.length - 1] : i + e === r.length ? r[0] : r[i + e]), a && E.setState("value", a.getAttribute(P));
168
+ }
169
+ function W(e) {
170
+ let t = B()?.closest(A), n;
171
+ for (; t && !n;) t = e > 0 ? ie(t, A) : ae(t, A), n = t?.querySelector(te);
172
+ n ? E.setState("value", n.getAttribute(P)) : U(e);
173
+ }
174
+ let G = () => H(V().length - 1), K = (e) => {
175
+ e.preventDefault(), e.metaKey ? G() : e.altKey ? W(1) : U(1);
176
+ }, q = (e) => {
177
+ e.preventDefault(), e.metaKey ? H(0) : e.altKey ? W(-1) : U(-1);
178
+ };
179
+ return f.createElement(r.div, {
180
+ ref: t,
181
+ tabIndex: -1,
182
+ ...b,
183
+ "cmdk-root": "",
184
+ onKeyDown: (e) => {
185
+ var t;
186
+ (t = b.onKeyDown) == null || t.call(b, e);
187
+ let n = e.nativeEvent.isComposing || e.keyCode === 229;
188
+ if (!(e.defaultPrevented || n)) switch (e.key) {
189
+ case "n":
190
+ case "j":
191
+ y && e.ctrlKey && K(e);
192
+ break;
193
+ case "ArrowDown":
194
+ K(e);
195
+ break;
196
+ case "p":
197
+ case "k":
198
+ y && e.ctrlKey && q(e);
199
+ break;
200
+ case "ArrowUp":
201
+ q(e);
202
+ break;
203
+ case "Home":
204
+ e.preventDefault(), H(0);
205
+ break;
206
+ case "End":
207
+ e.preventDefault(), G();
208
+ break;
209
+ case "Enter": {
210
+ e.preventDefault();
211
+ let t = B();
212
+ if (t) {
213
+ let e = new Event(N);
214
+ t.dispatchEvent(e);
215
+ }
216
+ }
217
+ }
218
+ }
219
+ }, f.createElement("label", {
220
+ "cmdk-label": "",
221
+ htmlFor: D.inputId,
222
+ id: D.labelId,
223
+ style: le
224
+ }, u), $(e, (e) => f.createElement(L.Provider, { value: E }, f.createElement(F.Provider, { value: D }, e))));
225
+ }), V = f.forwardRef((e, t) => {
226
+ let a = i(), o = f.useRef(null), s = f.useContext(z), c = I(), l = Y(e), u = l.current?.forceMount ?? s?.forceMount;
227
+ X(() => {
228
+ if (!u) return c.item(a, s?.id);
229
+ }, [u]);
230
+ let d = oe(a, o, [
231
+ e.value,
232
+ e.children,
233
+ o
234
+ ], e.keywords), p = R(), m = Q((e) => e.value && e.value === d.current), h = Q((e) => u || c.filter() === !1 ? !0 : e.search ? e.filtered.items.get(a) > 0 : !0);
235
+ f.useEffect(() => {
236
+ let t = o.current;
237
+ if (!(!t || e.disabled)) return t.addEventListener(N, g), () => t.removeEventListener(N, g);
238
+ }, [
239
+ h,
240
+ e.onSelect,
241
+ e.disabled
242
+ ]);
243
+ function g() {
244
+ var e, t;
245
+ _(), (t = (e = l.current).onSelect) == null || t.call(e, d.current);
246
+ }
247
+ function _() {
248
+ p.setState("value", d.current, !0);
249
+ }
250
+ if (!h) return null;
251
+ let { disabled: v, value: y, onSelect: b, forceMount: x, keywords: S, ...C } = e;
252
+ return f.createElement(r.div, {
253
+ ref: n(o, t),
254
+ ...C,
255
+ id: a,
256
+ "cmdk-item": "",
257
+ role: "option",
258
+ "aria-disabled": !!v,
259
+ "aria-selected": !!m,
260
+ "data-disabled": !!v,
261
+ "data-selected": !!m,
262
+ onPointerMove: v || c.getDisablePointerSelection() ? void 0 : _,
263
+ onClick: v ? void 0 : g
264
+ }, e.children);
265
+ }), H = f.forwardRef((e, t) => {
266
+ let { heading: a, children: o, forceMount: s, ...c } = e, l = i(), u = f.useRef(null), d = f.useRef(null), p = i(), m = I(), h = Q((e) => s || m.filter() === !1 ? !0 : e.search ? e.filtered.groups.has(l) : !0);
267
+ X(() => m.group(l), []), oe(l, u, [
268
+ e.value,
269
+ e.heading,
270
+ d
271
+ ]);
272
+ let g = f.useMemo(() => ({
273
+ id: l,
274
+ forceMount: s
275
+ }), [s]);
276
+ return f.createElement(r.div, {
277
+ ref: n(u, t),
278
+ ...c,
279
+ "cmdk-group": "",
280
+ role: "presentation",
281
+ hidden: h ? void 0 : !0
282
+ }, a && f.createElement("div", {
283
+ ref: d,
284
+ "cmdk-group-heading": "",
285
+ "aria-hidden": !0,
286
+ id: p
287
+ }, a), $(e, (e) => f.createElement("div", {
288
+ "cmdk-group-items": "",
289
+ role: "group",
290
+ "aria-labelledby": a ? p : void 0
291
+ }, f.createElement(z.Provider, { value: g }, e))));
292
+ }), U = f.forwardRef((e, t) => {
293
+ let { alwaysRender: i, ...a } = e, o = f.useRef(null), s = Q((e) => !e.search);
294
+ return !i && !s ? null : f.createElement(r.div, {
295
+ ref: n(o, t),
296
+ ...a,
297
+ "cmdk-separator": "",
298
+ role: "separator"
299
+ });
300
+ }), W = f.forwardRef((e, t) => {
301
+ let { onValueChange: n, ...i } = e, a = e.value != null, o = R(), s = Q((e) => e.search), c = Q((e) => e.selectedItemId), l = I();
302
+ return f.useEffect(() => {
303
+ e.value != null && o.setState("search", e.value);
304
+ }, [e.value]), f.createElement(r.input, {
305
+ ref: t,
306
+ ...i,
307
+ "cmdk-input": "",
308
+ autoComplete: "off",
309
+ autoCorrect: "off",
310
+ spellCheck: !1,
311
+ "aria-autocomplete": "list",
312
+ role: "combobox",
313
+ "aria-expanded": !0,
314
+ "aria-controls": l.listId,
315
+ "aria-labelledby": l.labelId,
316
+ "aria-activedescendant": c,
317
+ id: l.inputId,
318
+ type: "text",
319
+ value: a ? e.value : s,
320
+ onChange: (e) => {
321
+ a || o.setState("search", e.target.value), n?.(e.target.value);
322
+ }
323
+ });
324
+ }), G = f.forwardRef((e, t) => {
325
+ let { children: i, label: a = "Suggestions", ...o } = e, s = f.useRef(null), c = f.useRef(null), l = Q((e) => e.selectedItemId), u = I();
326
+ return f.useEffect(() => {
327
+ if (c.current && s.current) {
328
+ let e = c.current, t = s.current, n, r = new ResizeObserver(() => {
329
+ n = requestAnimationFrame(() => {
330
+ let n = e.offsetHeight;
331
+ t.style.setProperty("--cmdk-list-height", n.toFixed(1) + "px");
332
+ });
333
+ });
334
+ return r.observe(e), () => {
335
+ cancelAnimationFrame(n), r.unobserve(e);
336
+ };
337
+ }
338
+ }, []), f.createElement(r.div, {
339
+ ref: n(s, t),
340
+ ...o,
341
+ "cmdk-list": "",
342
+ role: "listbox",
343
+ tabIndex: -1,
344
+ "aria-activedescendant": l,
345
+ "aria-label": a,
346
+ id: u.listId
347
+ }, $(e, (e) => f.createElement("div", {
348
+ ref: n(c, u.listInnerRef),
349
+ "cmdk-list-sizer": ""
350
+ }, e)));
351
+ }), K = f.forwardRef((e, t) => {
352
+ let { open: n, onOpenChange: r, overlayClassName: i, contentClassName: a, container: o, ...s } = e;
353
+ return f.createElement(d, {
354
+ open: n,
355
+ onOpenChange: r
356
+ }, f.createElement(c, { container: o }, f.createElement(l, {
357
+ "cmdk-overlay": "",
358
+ className: i
359
+ }), f.createElement(u, {
360
+ "aria-label": e.label,
361
+ "cmdk-dialog": "",
362
+ className: a
363
+ }, f.createElement(B, {
364
+ ref: t,
365
+ ...s
366
+ }))));
367
+ }), q = f.forwardRef((e, t) => Q((e) => e.filtered.count === 0) ? f.createElement(r.div, {
368
+ ref: t,
369
+ ...e,
370
+ "cmdk-empty": "",
371
+ role: "presentation"
372
+ }) : null), re = f.forwardRef((e, t) => {
373
+ let { progress: n, children: i, label: a = "Loading...", ...o } = e;
374
+ return f.createElement(r.div, {
375
+ ref: t,
376
+ ...o,
377
+ "cmdk-loading": "",
378
+ role: "progressbar",
379
+ "aria-valuenow": n,
380
+ "aria-valuemin": 0,
381
+ "aria-valuemax": 100,
382
+ "aria-label": a
383
+ }, $(e, (e) => f.createElement("div", { "aria-hidden": !0 }, e)));
384
+ }), J = Object.assign(B, {
385
+ List: G,
386
+ Item: V,
387
+ Input: W,
388
+ Group: H,
389
+ Separator: U,
390
+ Dialog: K,
391
+ Empty: q,
392
+ Loading: re
393
+ });
394
+ function ie(e, t) {
395
+ let n = e.nextElementSibling;
396
+ for (; n;) {
397
+ if (n.matches(t)) return n;
398
+ n = n.nextElementSibling;
399
+ }
400
+ }
401
+ function ae(e, t) {
402
+ let n = e.previousElementSibling;
403
+ for (; n;) {
404
+ if (n.matches(t)) return n;
405
+ n = n.previousElementSibling;
406
+ }
407
+ }
408
+ function Y(e) {
409
+ let t = f.useRef(e);
410
+ return X(() => {
411
+ t.current = e;
412
+ }), t;
413
+ }
414
+ var X = typeof window > "u" ? f.useEffect : f.useLayoutEffect;
415
+ function Z(e) {
416
+ let t = f.useRef();
417
+ return t.current === void 0 && (t.current = e()), t;
418
+ }
419
+ function Q(e) {
420
+ let t = R(), n = () => e(t.snapshot());
421
+ return f.useSyncExternalStore(t.subscribe, n, n);
422
+ }
423
+ function oe(e, t, n, r = []) {
424
+ let i = f.useRef(), a = I();
425
+ return X(() => {
426
+ var o;
427
+ let s = (() => {
428
+ for (let e of n) {
429
+ if (typeof e == "string") return e.trim();
430
+ if (typeof e == "object" && "current" in e) return e.current ? e.current.textContent?.trim() : i.current;
431
+ }
432
+ })(), c = r.map((e) => e.trim());
433
+ a.value(e, s, c), (o = t.current) == null || o.setAttribute(P, s), i.current = s;
434
+ }), i;
435
+ }
436
+ var se = () => {
437
+ let [e, t] = f.useState(), n = Z(() => /* @__PURE__ */ new Map());
438
+ return X(() => {
439
+ n.current.forEach((e) => e()), n.current = /* @__PURE__ */ new Map();
440
+ }, [e]), (e, r) => {
441
+ n.current.set(e, r), t({});
442
+ };
443
+ };
444
+ function ce(e) {
445
+ let t = e.type;
446
+ return typeof t == "function" ? t(e.props) : "render" in t ? t.render(e.props) : e;
447
+ }
448
+ function $({ asChild: e, children: t }, n) {
449
+ return e && f.isValidElement(t) ? f.cloneElement(ce(t), { ref: t.ref }, n(t.props.children)) : n(t);
450
+ }
451
+ var le = {
452
+ position: "absolute",
453
+ width: "1px",
454
+ height: "1px",
455
+ padding: "0",
456
+ margin: "-1px",
457
+ overflow: "hidden",
458
+ clip: "rect(0, 0, 0, 0)",
459
+ whiteSpace: "nowrap",
460
+ borderWidth: "0"
461
+ }, ue = ({ className: e, ...t }) => /* @__PURE__ */ p(J, {
462
+ "data-slot": "command",
463
+ className: a("rounded-xl! bg-popover p-1 text-popover-foreground flex size-full flex-col overflow-hidden", e),
464
+ ...t
465
+ }), de = ({ className: e, ...n }) => /* @__PURE__ */ p("div", {
466
+ "data-slot": "command-input-wrapper",
467
+ className: "p-1 pb-0",
468
+ children: /* @__PURE__ */ m(o, {
469
+ className: "h-8! rounded-lg! border-input/30 bg-input/30 *:data-[slot=input-group-addon]:pl-2! shadow-none!",
470
+ children: [/* @__PURE__ */ p(J.Input, {
471
+ "data-slot": "command-input",
472
+ className: a("text-sm w-full outline-hidden disabled:cursor-not-allowed disabled:opacity-50", e),
473
+ ...n
474
+ }), /* @__PURE__ */ p(s, { children: /* @__PURE__ */ p(t, { className: "size-4 shrink-0 opacity-50" }) })]
475
+ })
476
+ }), fe = ({ className: e, ...t }) => /* @__PURE__ */ p(J.List, {
477
+ "data-slot": "command-list",
478
+ className: a("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none", e),
479
+ ...t
480
+ }), pe = ({ className: e, ...t }) => /* @__PURE__ */ p(J.Empty, {
481
+ "data-slot": "command-empty",
482
+ className: a("py-6 text-sm text-center", e),
483
+ ...t
484
+ }), me = ({ className: t, children: n, ...r }) => /* @__PURE__ */ m(J.Item, {
485
+ "data-slot": "command-item",
486
+ className: a("group/command-item gap-2 rounded-sm px-2 py-1.5 text-sm in-data-[slot=dialog-content]:rounded-lg! data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground relative flex cursor-default items-center outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", t),
487
+ ...r,
488
+ children: [n, /* @__PURE__ */ p(e, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })]
489
+ });
490
+ //#endregion
491
+ export { fe as a, me as i, pe as n, J as o, de as r, ue as t };
@@ -1,7 +1,7 @@
1
- import { ControlGroupProps } from './ControlGroup';
2
1
  import { Select } from '../primitives/select';
3
2
  import { FormFieldState } from '../utils/formFieldUtils';
4
3
  import { ComponentProps } from 'react';
4
+ import { ControlGroupProps } from './ControlGroup';
5
5
  export interface SelectOptionType {
6
6
  label: string;
7
7
  value: string;