@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spear-ai/spectral",
3
- "version": "1.9.1",
3
+ "version": "1.10.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {
@@ -65,10 +65,10 @@
65
65
  "date-fns": "^4.1.0",
66
66
  "input-otp": "^1.4.2",
67
67
  "lucide-react": "^0.562.0",
68
- "motion": "^12.34.4",
68
+ "motion": "^12.38.0",
69
69
  "react-day-picker": "^9.14.0",
70
70
  "react-remove-scroll": "^2.7.2",
71
- "react-router": "^7.13.1",
71
+ "react-router": "^7.13.2",
72
72
  "react-use-measure": "^2.1.7",
73
73
  "sonner": "^2.0.7",
74
74
  "tailwind-merge": "^3.5.0",
@@ -78,49 +78,45 @@
78
78
  "zod": "^4.3.6"
79
79
  },
80
80
  "devDependencies": {
81
- "@changesets/cli": "^2.29.8",
81
+ "@changesets/cli": "^2.30.0",
82
82
  "@chromatic-com/storybook": "^4.1.3",
83
83
  "@github-ui/storybook-addon-performance-panel": "^1.1.4",
84
- "@prettier/plugin-oxc": "^0.1.3",
85
84
  "@sentry/react": "^10.41.0",
86
85
  "@sentry/vite-plugin": "^4.9.1",
87
- "@storybook/addon-docs": "^10.2.14",
88
- "@storybook/addon-themes": "^10.2.14",
89
- "@storybook/addon-vitest": "^10.2.14",
90
- "@storybook/builder-vite": "^10.2.14",
91
- "@storybook/react-vite": "^10.2.14",
92
- "@tailwindcss/vite": "^4.2.1",
86
+ "@storybook/addon-docs": "^10.3.4",
87
+ "@storybook/addon-themes": "^10.3.4",
88
+ "@storybook/addon-vitest": "^10.3.4",
89
+ "@storybook/builder-vite": "^10.3.4",
90
+ "@storybook/react-vite": "^10.3.4",
91
+ "@tailwindcss/vite": "^4.2.2",
93
92
  "@testing-library/jest-dom": "^6.9.1",
94
93
  "@testing-library/react": "^16.3.2",
95
94
  "@testing-library/user-event": "^14.6.1",
96
- "@types/node": "^24.11.0",
95
+ "@types/node": "^24.12.0",
97
96
  "@types/react": "^19.2.14",
98
97
  "@types/react-dom": "^19.2.3",
99
- "@vitejs/plugin-react": "^5.1.4",
100
- "@vitejs/plugin-react-swc": "^4.2.3",
101
- "@vitest/browser": "4.0.16",
102
- "@vitest/browser-playwright": "^4.0.18",
103
- "@vitest/coverage-v8": "4.0.16",
104
- "@vitest/ui": "^4.0.18",
98
+ "@vitejs/plugin-react": "^6.0.1",
99
+ "@vitest/browser": "^4.1.2",
100
+ "@vitest/browser-playwright": "^4.1.2",
101
+ "@vitest/coverage-v8": "^4.1.2",
102
+ "@vitest/ui": "^4.1.2",
105
103
  "eslint-plugin-jsx-a11y": "^6.10.2",
106
104
  "glob": "^13.0.6",
107
105
  "http-server": "^14.1.1",
108
- "oxlint": "^1.51.0",
106
+ "oxlint": "^1.58.0",
109
107
  "oxlint-tsgolint": "^0.11.5",
110
108
  "playwright": "^1.58.2",
111
- "prettier": "^3.8.1",
112
- "prettier-plugin-sort-imports": "^1.8.11",
113
- "prettier-plugin-tailwindcss": "^0.7.2",
109
+ "oxfmt": "^0.43.0",
114
110
  "storybook": "^10.2.14",
115
111
  "stylelint": "^16.26.1",
116
112
  "stylelint-config-standard": "^39.0.1",
117
- "tailwindcss": "^4.2.1",
113
+ "tailwindcss": "^4.2.2",
118
114
  "typescript": "^5.9.3",
119
- "vite": "^7.3.1",
115
+ "vite": "^8.0.2",
120
116
  "vite-bundle-visualizer": "^1.2.1",
121
117
  "vite-plugin-dts": "^4.5.4",
122
- "vitest": "^4.0.18",
123
- "vitest-browser-react": "^2.0.5"
118
+ "vitest": "^4.1.2",
119
+ "vitest-browser-react": "^2.1.0"
124
120
  },
125
121
  "peerDependencies": {
126
122
  "react": "^18.0.0 || ^19.0.0",
@@ -150,8 +146,8 @@
150
146
  "storybook:start": "http-server -p 6006 storybook-static",
151
147
  "lint": "oxlint --react-plugin --jsx-a11y-plugin --import-plugin src/",
152
148
  "lint:fix": "oxlint --react-plugin --jsx-a11y-plugin --import-plugin --fix src/",
153
- "format": "prettier --check --ignore-unknown '**/**/*.{!(css|md|mdx|json|html),}'",
154
- "format:fix": "prettier --write --ignore-unknown '**/**/*.{!(css|md|mdx|json|html),}'",
149
+ "format": "oxfmt --check",
150
+ "format:fix": "oxfmt",
155
151
  "changeset": "changeset",
156
152
  "changeset:version": "changeset version",
157
153
  "changeset:publish": "changeset publish",
@@ -1,408 +0,0 @@
1
- import "./styles/main.css";
2
- import { jsx as S, jsxs as he } from "react/jsx-runtime";
3
- import "./Icons/AnalyzeIcon.js";
4
- import "./Icons/AnnotationsIcon.js";
5
- import "./Icons/ApprovedIcon.js";
6
- import "./Icons/ArrowDownIcon.js";
7
- import "./Icons/ArrowUpIcon.js";
8
- import "./Icons/BoxToolIcon.js";
9
- import "./Icons/CalendarIcon.js";
10
- import "./Icons/CheckCircleIcon.js";
11
- import "./Icons/CheckSquareIcon.js";
12
- import { CheckmarkIcon as Ce } from "./Icons/CheckmarkIcon.js";
13
- import "./Icons/ChevronDownIcon.js";
14
- import "./Icons/ChevronUpIcon.js";
15
- import "./Icons/ClockIcon.js";
16
- import "./Icons/CloseCircleIcon.js";
17
- import "./Icons/CloseIcon.js";
18
- import "./Icons/DashboardIcon.js";
19
- import "./Icons/DatabaseIcon.js";
20
- import "./Icons/DeleteIcon.js";
21
- import "./Icons/DurationIcon.js";
22
- import "./Icons/EditIcon.js";
23
- import "./Icons/EmailIcon.js";
24
- import "./Icons/EraserIcon.js";
25
- import "./Icons/ErrorIcon.js";
26
- import "./Icons/EyeClosedIcon.js";
27
- import "./Icons/EyeClosedIcon2.js";
28
- import "./Icons/EyeOpenIcon.js";
29
- import "./Icons/FileDownloadIcon.js";
30
- import "./Icons/GoToFirstIcon.js";
31
- import "./Icons/GoToLastIcon.js";
32
- import "./Icons/HarmonicCursorsIcon.js";
33
- import "./Icons/InfoIcon.js";
34
- import "./Icons/KeyboardIcon.js";
35
- import "./Icons/LabelIcon.js";
36
- import "./Icons/LassoIcon.js";
37
- import "./Icons/LineToolIcon.js";
38
- import "./Icons/LiveViewIcon.js";
39
- import "./Icons/LoaderIcon.js";
40
- import "./Icons/LocationIcon.js";
41
- import "./Icons/LogoutIcon.js";
42
- import "./Icons/MeasureIcon.js";
43
- import "./Icons/MessagesIcon.js";
44
- import "./Icons/MetadataIcon.js";
45
- import "./Icons/MinusIcon.js";
46
- import "./Icons/OntologyIcon.js";
47
- import "./Icons/PanelIconClose.js";
48
- import "./Icons/PanelIconOpen.js";
49
- import "./Icons/PlayIcon.js";
50
- import "./Icons/PlusIcon.js";
51
- import "./Icons/PolygonIcon.js";
52
- import "./Icons/ResetIcon.js";
53
- import "./Icons/ReviewedIcon.js";
54
- import "./Icons/ScissorsIcon.js";
55
- import { SearchIcon as Se } from "./Icons/SearchIcon.js";
56
- import "./Icons/SettingsIcon.js";
57
- import "./Icons/SortAscendingIcon.js";
58
- import "./Icons/SortAtoZIcon.js";
59
- import "./Icons/SortDescendingIcon.js";
60
- import "./Icons/SortZtoAIcon.js";
61
- import "./Icons/StackIcon.js";
62
- import "./Icons/StarIcon.js";
63
- import "./Icons/TrashIcon.js";
64
- import "./Icons/UndoIcon.js";
65
- import "./Icons/User2Icon.js";
66
- import "./Icons/UserIcon.js";
67
- import "./Icons/WarningIcon.js";
68
- import "./Icons/ZoomAllIcon.js";
69
- import "./Icons/ZoomXIcon.js";
70
- import "./Icons/ZoomYIcon.js";
71
- import { InputGroup as Re, InputGroupAddon as Ae } from "./primitives/input-group.js";
72
- import { cn as V } from "./utils/twUtils.js";
73
- import { R as Me, P as $e, O as De, a as Ne } from "./index-pBCLb6Gr.js";
74
- import * as l from "react";
75
- import { P as A, h as q } from "./index-Dc0No4pV.js";
76
- import { u as P } from "./index-CwSyIPrv.js";
77
- var pe = 1, Fe = 0.9, Ke = 0.8, Pe = 0.17, ee = 0.1, te = 0.999, je = 0.9999, Le = 0.99, qe = /[\\\/_+.#"@\[\(\{&]/, Ve = /[\\\/_+.#"@\[\(\{&]/g, Oe = /[\s-]/, ge = /[\s-]/g;
78
- function ne(e, n, r, m, a, c, d) {
79
- if (c === n.length) return a === e.length ? pe : Le;
80
- var p = `${a},${c}`;
81
- if (d[p] !== void 0) return d[p];
82
- for (var b = m.charAt(c), i = r.indexOf(b, a), v = 0, h, I, x, C; i >= 0; ) h = ne(e, n, r, m, i + 1, c + 1, d), h > v && (i === a ? h *= pe : qe.test(e.charAt(i - 1)) ? (h *= Ke, x = e.slice(a, i - 1).match(Ve), x && a > 0 && (h *= Math.pow(te, x.length))) : Oe.test(e.charAt(i - 1)) ? (h *= Fe, C = e.slice(a, i - 1).match(ge), C && a > 0 && (h *= Math.pow(te, C.length))) : (h *= Pe, a > 0 && (h *= Math.pow(te, i - a))), e.charAt(i) !== n.charAt(c) && (h *= je)), (h < ee && r.charAt(i - 1) === m.charAt(c + 1) || m.charAt(c + 1) === m.charAt(c) && r.charAt(i - 1) !== m.charAt(c)) && (I = ne(e, n, r, m, i + 1, c + 2, d), I * ee > h && (h = I * ee)), h > v && (v = h), i = r.indexOf(b, i + 1);
83
- return d[p] = v, v;
84
- }
85
- function fe(e) {
86
- return e.toLowerCase().replace(ge, " ");
87
- }
88
- function ze(e, n, r) {
89
- return e = r && r.length > 0 ? `${e + " " + r.join(" ")}` : e, ne(e, n, fe(e), fe(n), 0, 0, {});
90
- }
91
- var L = '[cmdk-group=""]', re = '[cmdk-group-items=""]', Be = '[cmdk-group-heading=""]', be = '[cmdk-item=""]', ve = `${be}:not([aria-disabled="true"])`, le = "cmdk-item-select", F = "data-value", Ge = (e, n, r) => ze(e, n, r), ye = l.createContext(void 0), O = () => l.useContext(ye), we = l.createContext(void 0), oe = () => l.useContext(we), xe = l.createContext(void 0), ke = l.forwardRef((e, n) => {
92
- let r = K(() => {
93
- var t, u;
94
- return { search: "", value: (u = (t = e.value) != null ? t : e.defaultValue) != null ? u : "", selectedItemId: void 0, filtered: { count: 0, items: /* @__PURE__ */ new Map(), groups: /* @__PURE__ */ new Set() } };
95
- }), m = K(() => /* @__PURE__ */ new Set()), a = K(() => /* @__PURE__ */ new Map()), c = K(() => /* @__PURE__ */ new Map()), d = K(() => /* @__PURE__ */ new Set()), p = Ee(e), { label: b, children: i, value: v, onValueChange: h, filter: I, shouldFilter: x, loop: C, disablePointerSelection: H = !1, vimBindings: M = !0, ...B } = e, T = P(), ae = P(), W = P(), $ = l.useRef(null), y = et();
96
- D(() => {
97
- if (v !== void 0) {
98
- let t = v.trim();
99
- r.current.value = t, k.emit();
100
- }
101
- }, [v]), D(() => {
102
- y(6, ue);
103
- }, []);
104
- let k = l.useMemo(() => ({ subscribe: (t) => (d.current.add(t), () => d.current.delete(t)), snapshot: () => r.current, setState: (t, u, s) => {
105
- var o, f, g, E;
106
- if (!Object.is(r.current[t], u)) {
107
- if (r.current[t] = u, t === "search") Q(), X(), y(1, Y);
108
- else if (t === "value") {
109
- if (document.activeElement.hasAttribute("cmdk-input") || document.activeElement.hasAttribute("cmdk-root")) {
110
- let w = document.getElementById(W);
111
- w ? w.focus() : (o = document.getElementById(T)) == null || o.focus();
112
- }
113
- if (y(7, () => {
114
- var w;
115
- r.current.selectedItemId = (w = N()) == null ? void 0 : w.id, k.emit();
116
- }), s || y(5, ue), ((f = p.current) == null ? void 0 : f.value) !== void 0) {
117
- let w = u ?? "";
118
- (E = (g = p.current).onValueChange) == null || E.call(g, w);
119
- return;
120
- }
121
- }
122
- k.emit();
123
- }
124
- }, emit: () => {
125
- d.current.forEach((t) => t());
126
- } }), []), J = l.useMemo(() => ({ value: (t, u, s) => {
127
- var o;
128
- u !== ((o = c.current.get(t)) == null ? void 0 : o.value) && (c.current.set(t, { value: u, keywords: s }), r.current.filtered.items.set(t, ie(u, s)), y(2, () => {
129
- X(), k.emit();
130
- }));
131
- }, item: (t, u) => (m.current.add(t), u && (a.current.has(u) ? a.current.get(u).add(t) : a.current.set(u, /* @__PURE__ */ new Set([t]))), y(3, () => {
132
- Q(), X(), r.current.value || Y(), k.emit();
133
- }), () => {
134
- c.current.delete(t), m.current.delete(t), r.current.filtered.items.delete(t);
135
- let s = N();
136
- y(4, () => {
137
- Q(), s?.getAttribute("id") === t && Y(), k.emit();
138
- });
139
- }), group: (t) => (a.current.has(t) || a.current.set(t, /* @__PURE__ */ new Set()), () => {
140
- c.current.delete(t), a.current.delete(t);
141
- }), filter: () => p.current.shouldFilter, label: b || e["aria-label"], getDisablePointerSelection: () => p.current.disablePointerSelection, listId: T, inputId: W, labelId: ae, listInnerRef: $ }), []);
142
- function ie(t, u) {
143
- var s, o;
144
- let f = (o = (s = p.current) == null ? void 0 : s.filter) != null ? o : Ge;
145
- return t ? f(t, r.current.search, u) : 0;
146
- }
147
- function X() {
148
- if (!r.current.search || p.current.shouldFilter === !1) return;
149
- let t = r.current.filtered.items, u = [];
150
- r.current.filtered.groups.forEach((o) => {
151
- let f = a.current.get(o), g = 0;
152
- f.forEach((E) => {
153
- let w = t.get(E);
154
- g = Math.max(w, g);
155
- }), u.push([o, g]);
156
- });
157
- let s = $.current;
158
- j().sort((o, f) => {
159
- var g, E;
160
- let w = o.getAttribute("id"), G = f.getAttribute("id");
161
- return ((g = t.get(G)) != null ? g : 0) - ((E = t.get(w)) != null ? E : 0);
162
- }).forEach((o) => {
163
- let f = o.closest(re);
164
- f ? f.appendChild(o.parentElement === f ? o : o.closest(`${re} > *`)) : s.appendChild(o.parentElement === s ? o : o.closest(`${re} > *`));
165
- }), u.sort((o, f) => f[1] - o[1]).forEach((o) => {
166
- var f;
167
- let g = (f = $.current) == null ? void 0 : f.querySelector(`${L}[${F}="${encodeURIComponent(o[0])}"]`);
168
- g?.parentElement.appendChild(g);
169
- });
170
- }
171
- function Y() {
172
- let t = j().find((s) => s.getAttribute("aria-disabled") !== "true"), u = t?.getAttribute(F);
173
- k.setState("value", u || void 0);
174
- }
175
- function Q() {
176
- var t, u, s, o;
177
- if (!r.current.search || p.current.shouldFilter === !1) {
178
- r.current.filtered.count = m.current.size;
179
- return;
180
- }
181
- r.current.filtered.groups = /* @__PURE__ */ new Set();
182
- let f = 0;
183
- for (let g of m.current) {
184
- let E = (u = (t = c.current.get(g)) == null ? void 0 : t.value) != null ? u : "", w = (o = (s = c.current.get(g)) == null ? void 0 : s.keywords) != null ? o : [], G = ie(E, w);
185
- r.current.filtered.items.set(g, G), G > 0 && f++;
186
- }
187
- for (let [g, E] of a.current) for (let w of E) if (r.current.filtered.items.get(w) > 0) {
188
- r.current.filtered.groups.add(g);
189
- break;
190
- }
191
- r.current.filtered.count = f;
192
- }
193
- function ue() {
194
- var t, u, s;
195
- let o = N();
196
- o && (((t = o.parentElement) == null ? void 0 : t.firstChild) === o && ((s = (u = o.closest(L)) == null ? void 0 : u.querySelector(Be)) == null || s.scrollIntoView({ block: "nearest" })), o.scrollIntoView({ block: "nearest" }));
197
- }
198
- function N() {
199
- var t;
200
- return (t = $.current) == null ? void 0 : t.querySelector(`${be}[aria-selected="true"]`);
201
- }
202
- function j() {
203
- var t;
204
- return Array.from(((t = $.current) == null ? void 0 : t.querySelectorAll(ve)) || []);
205
- }
206
- function Z(t) {
207
- let u = j()[t];
208
- u && k.setState("value", u.getAttribute(F));
209
- }
210
- function _(t) {
211
- var u;
212
- let s = N(), o = j(), f = o.findIndex((E) => E === s), g = o[f + t];
213
- (u = p.current) != null && u.loop && (g = f + t < 0 ? o[o.length - 1] : f + t === o.length ? o[0] : o[f + t]), g && k.setState("value", g.getAttribute(F));
214
- }
215
- function ce(t) {
216
- let u = N(), s = u?.closest(L), o;
217
- for (; s && !o; ) s = t > 0 ? Ze(s, L) : _e(s, L), o = s?.querySelector(ve);
218
- o ? k.setState("value", o.getAttribute(F)) : _(t);
219
- }
220
- let de = () => Z(j().length - 1), se = (t) => {
221
- t.preventDefault(), t.metaKey ? de() : t.altKey ? ce(1) : _(1);
222
- }, me = (t) => {
223
- t.preventDefault(), t.metaKey ? Z(0) : t.altKey ? ce(-1) : _(-1);
224
- };
225
- return l.createElement(A.div, { ref: n, tabIndex: -1, ...B, "cmdk-root": "", onKeyDown: (t) => {
226
- var u;
227
- (u = B.onKeyDown) == null || u.call(B, t);
228
- let s = t.nativeEvent.isComposing || t.keyCode === 229;
229
- if (!(t.defaultPrevented || s)) switch (t.key) {
230
- case "n":
231
- case "j": {
232
- M && t.ctrlKey && se(t);
233
- break;
234
- }
235
- case "ArrowDown": {
236
- se(t);
237
- break;
238
- }
239
- case "p":
240
- case "k": {
241
- M && t.ctrlKey && me(t);
242
- break;
243
- }
244
- case "ArrowUp": {
245
- me(t);
246
- break;
247
- }
248
- case "Home": {
249
- t.preventDefault(), Z(0);
250
- break;
251
- }
252
- case "End": {
253
- t.preventDefault(), de();
254
- break;
255
- }
256
- case "Enter": {
257
- t.preventDefault();
258
- let o = N();
259
- if (o) {
260
- let f = new Event(le);
261
- o.dispatchEvent(f);
262
- }
263
- }
264
- }
265
- } }, l.createElement("label", { "cmdk-label": "", htmlFor: J.inputId, id: J.labelId, style: rt }, b), U(e, (t) => l.createElement(we.Provider, { value: k }, l.createElement(ye.Provider, { value: J }, t))));
266
- }), Ue = l.forwardRef((e, n) => {
267
- var r, m;
268
- let a = P(), c = l.useRef(null), d = l.useContext(xe), p = O(), b = Ee(e), i = (m = (r = b.current) == null ? void 0 : r.forceMount) != null ? m : d?.forceMount;
269
- D(() => {
270
- if (!i) return p.item(a, d?.id);
271
- }, [i]);
272
- let v = Ie(a, c, [e.value, e.children, c], e.keywords), h = oe(), I = R((y) => y.value && y.value === v.current), x = R((y) => i || p.filter() === !1 ? !0 : y.search ? y.filtered.items.get(a) > 0 : !0);
273
- l.useEffect(() => {
274
- let y = c.current;
275
- if (!(!y || e.disabled)) return y.addEventListener(le, C), () => y.removeEventListener(le, C);
276
- }, [x, e.onSelect, e.disabled]);
277
- function C() {
278
- var y, k;
279
- H(), (k = (y = b.current).onSelect) == null || k.call(y, v.current);
280
- }
281
- function H() {
282
- h.setState("value", v.current, !0);
283
- }
284
- if (!x) return null;
285
- let { disabled: M, value: B, onSelect: T, forceMount: ae, keywords: W, ...$ } = e;
286
- return l.createElement(A.div, { ref: q(c, n), ...$, id: a, "cmdk-item": "", role: "option", "aria-disabled": !!M, "aria-selected": !!I, "data-disabled": !!M, "data-selected": !!I, onPointerMove: M || p.getDisablePointerSelection() ? void 0 : H, onClick: M ? void 0 : C }, e.children);
287
- }), He = l.forwardRef((e, n) => {
288
- let { heading: r, children: m, forceMount: a, ...c } = e, d = P(), p = l.useRef(null), b = l.useRef(null), i = P(), v = O(), h = R((x) => a || v.filter() === !1 ? !0 : x.search ? x.filtered.groups.has(d) : !0);
289
- D(() => v.group(d), []), Ie(d, p, [e.value, e.heading, b]);
290
- let I = l.useMemo(() => ({ id: d, forceMount: a }), [a]);
291
- return l.createElement(A.div, { ref: q(p, n), ...c, "cmdk-group": "", role: "presentation", hidden: h ? void 0 : !0 }, r && l.createElement("div", { ref: b, "cmdk-group-heading": "", "aria-hidden": !0, id: i }, r), U(e, (x) => l.createElement("div", { "cmdk-group-items": "", role: "group", "aria-labelledby": r ? i : void 0 }, l.createElement(xe.Provider, { value: I }, x))));
292
- }), Te = l.forwardRef((e, n) => {
293
- let { alwaysRender: r, ...m } = e, a = l.useRef(null), c = R((d) => !d.search);
294
- return !r && !c ? null : l.createElement(A.div, { ref: q(a, n), ...m, "cmdk-separator": "", role: "separator" });
295
- }), We = l.forwardRef((e, n) => {
296
- let { onValueChange: r, ...m } = e, a = e.value != null, c = oe(), d = R((i) => i.search), p = R((i) => i.selectedItemId), b = O();
297
- return l.useEffect(() => {
298
- e.value != null && c.setState("search", e.value);
299
- }, [e.value]), l.createElement(A.input, { ref: n, ...m, "cmdk-input": "", autoComplete: "off", autoCorrect: "off", spellCheck: !1, "aria-autocomplete": "list", role: "combobox", "aria-expanded": !0, "aria-controls": b.listId, "aria-labelledby": b.labelId, "aria-activedescendant": p, id: b.inputId, type: "text", value: a ? e.value : d, onChange: (i) => {
300
- a || c.setState("search", i.target.value), r?.(i.target.value);
301
- } });
302
- }), Je = l.forwardRef((e, n) => {
303
- let { children: r, label: m = "Suggestions", ...a } = e, c = l.useRef(null), d = l.useRef(null), p = R((i) => i.selectedItemId), b = O();
304
- return l.useEffect(() => {
305
- if (d.current && c.current) {
306
- let i = d.current, v = c.current, h, I = new ResizeObserver(() => {
307
- h = requestAnimationFrame(() => {
308
- let x = i.offsetHeight;
309
- v.style.setProperty("--cmdk-list-height", x.toFixed(1) + "px");
310
- });
311
- });
312
- return I.observe(i), () => {
313
- cancelAnimationFrame(h), I.unobserve(i);
314
- };
315
- }
316
- }, []), l.createElement(A.div, { ref: q(c, n), ...a, "cmdk-list": "", role: "listbox", tabIndex: -1, "aria-activedescendant": p, "aria-label": m, id: b.listId }, U(e, (i) => l.createElement("div", { ref: q(d, b.listInnerRef), "cmdk-list-sizer": "" }, i)));
317
- }), Xe = l.forwardRef((e, n) => {
318
- let { open: r, onOpenChange: m, overlayClassName: a, contentClassName: c, container: d, ...p } = e;
319
- return l.createElement(Me, { open: r, onOpenChange: m }, l.createElement($e, { container: d }, l.createElement(De, { "cmdk-overlay": "", className: a }), l.createElement(Ne, { "aria-label": e.label, "cmdk-dialog": "", className: c }, l.createElement(ke, { ref: n, ...p }))));
320
- }), Ye = l.forwardRef((e, n) => R((r) => r.filtered.count === 0) ? l.createElement(A.div, { ref: n, ...e, "cmdk-empty": "", role: "presentation" }) : null), Qe = l.forwardRef((e, n) => {
321
- let { progress: r, children: m, label: a = "Loading...", ...c } = e;
322
- return l.createElement(A.div, { ref: n, ...c, "cmdk-loading": "", role: "progressbar", "aria-valuenow": r, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": a }, U(e, (d) => l.createElement("div", { "aria-hidden": !0 }, d)));
323
- }), z = Object.assign(ke, { List: Je, Item: Ue, Input: We, Group: He, Separator: Te, Dialog: Xe, Empty: Ye, Loading: Qe });
324
- function Ze(e, n) {
325
- let r = e.nextElementSibling;
326
- for (; r; ) {
327
- if (r.matches(n)) return r;
328
- r = r.nextElementSibling;
329
- }
330
- }
331
- function _e(e, n) {
332
- let r = e.previousElementSibling;
333
- for (; r; ) {
334
- if (r.matches(n)) return r;
335
- r = r.previousElementSibling;
336
- }
337
- }
338
- function Ee(e) {
339
- let n = l.useRef(e);
340
- return D(() => {
341
- n.current = e;
342
- }), n;
343
- }
344
- var D = typeof window > "u" ? l.useEffect : l.useLayoutEffect;
345
- function K(e) {
346
- let n = l.useRef();
347
- return n.current === void 0 && (n.current = e()), n;
348
- }
349
- function R(e) {
350
- let n = oe(), r = () => e(n.snapshot());
351
- return l.useSyncExternalStore(n.subscribe, r, r);
352
- }
353
- function Ie(e, n, r, m = []) {
354
- let a = l.useRef(), c = O();
355
- return D(() => {
356
- var d;
357
- let p = (() => {
358
- var i;
359
- for (let v of r) {
360
- if (typeof v == "string") return v.trim();
361
- if (typeof v == "object" && "current" in v) return v.current ? (i = v.current.textContent) == null ? void 0 : i.trim() : a.current;
362
- }
363
- })(), b = m.map((i) => i.trim());
364
- c.value(e, p, b), (d = n.current) == null || d.setAttribute(F, p), a.current = p;
365
- }), a;
366
- }
367
- var et = () => {
368
- let [e, n] = l.useState(), r = K(() => /* @__PURE__ */ new Map());
369
- return D(() => {
370
- r.current.forEach((m) => m()), r.current = /* @__PURE__ */ new Map();
371
- }, [e]), (m, a) => {
372
- r.current.set(m, a), n({});
373
- };
374
- };
375
- function tt(e) {
376
- let n = e.type;
377
- return typeof n == "function" ? n(e.props) : "render" in n ? n.render(e.props) : e;
378
- }
379
- function U({ asChild: e, children: n }, r) {
380
- return e && l.isValidElement(n) ? l.cloneElement(tt(n), { ref: n.ref }, r(n.props.children)) : r(n);
381
- }
382
- var rt = { position: "absolute", width: "1px", height: "1px", padding: "0", margin: "-1px", overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", borderWidth: "0" };
383
- const Er = ({ className: e, ...n }) => /* @__PURE__ */ S(z, { "data-slot": "command", className: V("bg-popover text-popover-foreground flex size-full flex-col overflow-hidden rounded-xl! p-1", e), ...n }), Ir = ({ className: e, ...n }) => /* @__PURE__ */ S("div", { "data-slot": "command-input-wrapper", className: "p-1 pb-0", children: /* @__PURE__ */ he(Re, { className: "border-input/30 bg-input/30 h-8! rounded-lg! shadow-none! *:data-[slot=input-group-addon]:pl-2!", children: [
384
- /* @__PURE__ */ S(z.Input, { "data-slot": "command-input", className: V("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", e), ...n }),
385
- /* @__PURE__ */ S(Ae, { children: /* @__PURE__ */ S(Se, { className: "size-4 shrink-0 opacity-50" }) })
386
- ] }) }), Cr = ({ className: e, ...n }) => /* @__PURE__ */ S(z.List, { "data-slot": "command-list", className: V("no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none", e), ...n }), Sr = ({ className: e, ...n }) => /* @__PURE__ */ S(z.Empty, { "data-slot": "command-empty", className: V("py-6 text-center text-sm", e), ...n }), Rr = ({ className: e, children: n, ...r }) => /* @__PURE__ */ he(
387
- z.Item,
388
- {
389
- "data-slot": "command-item",
390
- className: V(
391
- "group/command-item data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
392
- e
393
- ),
394
- ...r,
395
- children: [
396
- n,
397
- /* @__PURE__ */ S(Ce, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })
398
- ]
399
- }
400
- );
401
- export {
402
- Cr as C,
403
- z as _,
404
- Sr as a,
405
- Rr as b,
406
- Er as c,
407
- Ir as d
408
- };
@@ -1,16 +0,0 @@
1
- function a(r) {
2
- var f, n, t = "";
3
- if (typeof r == "string" || typeof r == "number") t += r;
4
- else if (typeof r == "object") if (Array.isArray(r)) {
5
- var o = r.length;
6
- for (f = 0; f < o; f++) r[f] && (n = a(r[f])) && (t && (t += " "), t += n);
7
- } else for (n in r) r[n] && (t && (t += " "), t += n);
8
- return t;
9
- }
10
- function i() {
11
- for (var r, f, n = 0, t = "", o = arguments.length; n < o; n++) (r = arguments[n]) && (f = a(r)) && (t && (t += " "), t += f);
12
- return t;
13
- }
14
- export {
15
- i as c
16
- };
@@ -1,10 +0,0 @@
1
- import * as e from "react";
2
- function c(r) {
3
- const t = e.useRef(r);
4
- return e.useEffect(() => {
5
- t.current = r;
6
- }), e.useMemo(() => (...u) => t.current?.(...u), []);
7
- }
8
- export {
9
- c as u
10
- };