@spear-ai/spectral 1.13.1 → 1.14.2

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 (721) hide show
  1. package/dist/Accordion.d.ts +66 -46
  2. package/dist/Accordion.d.ts.map +1 -0
  3. package/dist/Accordion.js +113 -4
  4. package/dist/Accordion.js.map +1 -0
  5. package/dist/Alert/AlertBase.d.ts +75 -41
  6. package/dist/Alert/AlertBase.d.ts.map +1 -0
  7. package/dist/Alert/AlertBase.js +48 -39
  8. package/dist/Alert/AlertBase.js.map +1 -0
  9. package/dist/Alert.d.ts +24 -10
  10. package/dist/Alert.d.ts.map +1 -0
  11. package/dist/Alert.js +62 -50
  12. package/dist/Alert.js.map +1 -0
  13. package/dist/Avatar.d.ts +24 -11
  14. package/dist/Avatar.d.ts.map +1 -0
  15. package/dist/Avatar.js +87 -68
  16. package/dist/Avatar.js.map +1 -0
  17. package/dist/Badge.d.ts +19 -8
  18. package/dist/Badge.d.ts.map +1 -0
  19. package/dist/Badge.js +18 -13
  20. package/dist/Badge.js.map +1 -0
  21. package/dist/Button.d.ts +54 -26
  22. package/dist/Button.d.ts.map +1 -0
  23. package/dist/Button.js +72 -57
  24. package/dist/Button.js.map +1 -0
  25. package/dist/ButtonGroup/ButtonGroupButton.d.ts +25 -12
  26. package/dist/ButtonGroup/ButtonGroupButton.d.ts.map +1 -0
  27. package/dist/ButtonGroup/ButtonGroupButton.js +24 -19
  28. package/dist/ButtonGroup/ButtonGroupButton.js.map +1 -0
  29. package/dist/ButtonGroup.d.ts +60 -31
  30. package/dist/ButtonGroup.d.ts.map +1 -0
  31. package/dist/ButtonGroup.js +64 -49
  32. package/dist/ButtonGroup.js.map +1 -0
  33. package/dist/ButtonIcon.d.ts +32 -16
  34. package/dist/ButtonIcon.d.ts.map +1 -0
  35. package/dist/ButtonIcon.js +43 -35
  36. package/dist/ButtonIcon.js.map +1 -0
  37. package/dist/Checkbox/CheckboxBase.d.ts +54 -26
  38. package/dist/Checkbox/CheckboxBase.d.ts.map +1 -0
  39. package/dist/Checkbox/CheckboxBase.js +106 -74
  40. package/dist/Checkbox/CheckboxBase.js.map +1 -0
  41. package/dist/Checkbox.d.ts +49 -24
  42. package/dist/Checkbox.d.ts.map +1 -0
  43. package/dist/Checkbox.js +49 -40
  44. package/dist/Checkbox.js.map +1 -0
  45. package/dist/Combobox.d.ts +54 -23
  46. package/dist/Combobox.d.ts.map +1 -0
  47. package/dist/Combobox.js +203 -4
  48. package/dist/Combobox.js.map +1 -0
  49. package/dist/ControlGroup/ControlGroupSelect.d.ts +73 -43
  50. package/dist/ControlGroup/ControlGroupSelect.d.ts.map +1 -0
  51. package/dist/ControlGroup/ControlGroupSelect.js +159 -121
  52. package/dist/ControlGroup/ControlGroupSelect.js.map +1 -0
  53. package/dist/ControlGroup.d.ts +43 -21
  54. package/dist/ControlGroup.d.ts.map +1 -0
  55. package/dist/ControlGroup.js +54 -41
  56. package/dist/ControlGroup.js.map +1 -0
  57. package/dist/DataCard/Card.d.ts +36 -9
  58. package/dist/DataCard/Card.d.ts.map +1 -0
  59. package/dist/DataCard/Card.js +57 -37
  60. package/dist/DataCard/Card.js.map +1 -0
  61. package/dist/DataCard.d.ts +23 -9
  62. package/dist/DataCard.d.ts.map +1 -0
  63. package/dist/DataCard.js +40 -36
  64. package/dist/DataCard.js.map +1 -0
  65. package/dist/DateTimePicker/Calendar.d.ts +24 -11
  66. package/dist/DateTimePicker/Calendar.d.ts.map +1 -0
  67. package/dist/DateTimePicker/Calendar.js +54 -3
  68. package/dist/DateTimePicker/Calendar.js.map +1 -0
  69. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts +24 -18
  70. package/dist/DateTimePicker/DateTimeDisplayInput.d.ts.map +1 -0
  71. package/dist/DateTimePicker/DateTimeDisplayInput.js +360 -213
  72. package/dist/DateTimePicker/DateTimeDisplayInput.js.map +1 -0
  73. package/dist/DateTimePicker/DateTimeInput.d.ts +41 -19
  74. package/dist/DateTimePicker/DateTimeInput.d.ts.map +1 -0
  75. package/dist/DateTimePicker/DateTimeInput.js +151 -98
  76. package/dist/DateTimePicker/DateTimeInput.js.map +1 -0
  77. package/dist/DateTimePicker/DateTimeUtils.d.ts +121 -109
  78. package/dist/DateTimePicker/DateTimeUtils.d.ts.map +1 -0
  79. package/dist/DateTimePicker/DateTimeUtils.js +296 -2
  80. package/dist/DateTimePicker/DateTimeUtils.js.map +1 -0
  81. package/dist/DateTimePicker/TimePeriodSelect.d.ts +16 -10
  82. package/dist/DateTimePicker/TimePeriodSelect.d.ts.map +1 -0
  83. package/dist/DateTimePicker/TimePeriodSelect.js +54 -40
  84. package/dist/DateTimePicker/TimePeriodSelect.js.map +1 -0
  85. package/dist/DateTimePicker/TimePicker.d.ts +29 -14
  86. package/dist/DateTimePicker/TimePicker.d.ts.map +1 -0
  87. package/dist/DateTimePicker/TimePicker.js +68 -54
  88. package/dist/DateTimePicker/TimePicker.js.map +1 -0
  89. package/dist/DateTimePicker.d.ts +56 -31
  90. package/dist/DateTimePicker.d.ts.map +1 -0
  91. package/dist/DateTimePicker.js +86 -71
  92. package/dist/DateTimePicker.js.map +1 -0
  93. package/dist/Dialog.d.ts +60 -21
  94. package/dist/Dialog.d.ts.map +1 -0
  95. package/dist/Dialog.js +103 -72
  96. package/dist/Dialog.js.map +1 -0
  97. package/dist/Drawer.d.ts +32 -14
  98. package/dist/Drawer.d.ts.map +1 -0
  99. package/dist/Drawer.js +46 -41
  100. package/dist/Drawer.js.map +1 -0
  101. package/dist/DropdownMenu.d.ts +84 -51
  102. package/dist/DropdownMenu.d.ts.map +1 -0
  103. package/dist/DropdownMenu.js +156 -3
  104. package/dist/DropdownMenu.js.map +1 -0
  105. package/dist/FormFieldMessage.d.ts +32 -8
  106. package/dist/FormFieldMessage.d.ts.map +1 -0
  107. package/dist/FormFieldMessage.js +64 -45
  108. package/dist/FormFieldMessage.js.map +1 -0
  109. package/dist/HoverCard.d.ts +51 -25
  110. package/dist/HoverCard.d.ts.map +1 -0
  111. package/dist/HoverCard.js +67 -3
  112. package/dist/HoverCard.js.map +1 -0
  113. package/dist/Icons/AdjustmentsIcon.d.ts +16 -3
  114. package/dist/Icons/AdjustmentsIcon.d.ts.map +1 -0
  115. package/dist/Icons/AdjustmentsIcon.js +84 -78
  116. package/dist/Icons/AdjustmentsIcon.js.map +1 -0
  117. package/dist/Icons/AnalyzeIcon.d.ts +16 -3
  118. package/dist/Icons/AnalyzeIcon.d.ts.map +1 -0
  119. package/dist/Icons/AnalyzeIcon.js +56 -50
  120. package/dist/Icons/AnalyzeIcon.js.map +1 -0
  121. package/dist/Icons/AnnotationsIcon.d.ts +16 -3
  122. package/dist/Icons/AnnotationsIcon.d.ts.map +1 -0
  123. package/dist/Icons/AnnotationsIcon.js +26 -20
  124. package/dist/Icons/AnnotationsIcon.js.map +1 -0
  125. package/dist/Icons/ApprovedIcon.d.ts +16 -3
  126. package/dist/Icons/ApprovedIcon.d.ts.map +1 -0
  127. package/dist/Icons/ApprovedIcon.js +32 -26
  128. package/dist/Icons/ApprovedIcon.js.map +1 -0
  129. package/dist/Icons/ArrowDownIcon.d.ts +16 -3
  130. package/dist/Icons/ArrowDownIcon.d.ts.map +1 -0
  131. package/dist/Icons/ArrowDownIcon.js +26 -20
  132. package/dist/Icons/ArrowDownIcon.js.map +1 -0
  133. package/dist/Icons/ArrowUpIcon.d.ts +16 -3
  134. package/dist/Icons/ArrowUpIcon.d.ts.map +1 -0
  135. package/dist/Icons/ArrowUpIcon.js +26 -20
  136. package/dist/Icons/ArrowUpIcon.js.map +1 -0
  137. package/dist/Icons/BoxToolIcon.d.ts +16 -3
  138. package/dist/Icons/BoxToolIcon.d.ts.map +1 -0
  139. package/dist/Icons/BoxToolIcon.js +23 -17
  140. package/dist/Icons/BoxToolIcon.js.map +1 -0
  141. package/dist/Icons/CalendarIcon.d.ts +16 -3
  142. package/dist/Icons/CalendarIcon.d.ts.map +1 -0
  143. package/dist/Icons/CalendarIcon.js +49 -43
  144. package/dist/Icons/CalendarIcon.js.map +1 -0
  145. package/dist/Icons/CheckCircleIcon.d.ts +16 -3
  146. package/dist/Icons/CheckCircleIcon.d.ts.map +1 -0
  147. package/dist/Icons/CheckCircleIcon.js +32 -26
  148. package/dist/Icons/CheckCircleIcon.js.map +1 -0
  149. package/dist/Icons/CheckSquareIcon.d.ts +16 -3
  150. package/dist/Icons/CheckSquareIcon.d.ts.map +1 -0
  151. package/dist/Icons/CheckSquareIcon.js +32 -26
  152. package/dist/Icons/CheckSquareIcon.js.map +1 -0
  153. package/dist/Icons/CheckmarkIcon.d.ts +17 -3
  154. package/dist/Icons/CheckmarkIcon.d.ts.map +1 -0
  155. package/dist/Icons/CheckmarkIcon.js +28 -22
  156. package/dist/Icons/CheckmarkIcon.js.map +1 -0
  157. package/dist/Icons/ChevronDownIcon.d.ts +16 -3
  158. package/dist/Icons/ChevronDownIcon.d.ts.map +1 -0
  159. package/dist/Icons/ChevronDownIcon.js +28 -22
  160. package/dist/Icons/ChevronDownIcon.js.map +1 -0
  161. package/dist/Icons/ChevronUpIcon.d.ts +16 -3
  162. package/dist/Icons/ChevronUpIcon.d.ts.map +1 -0
  163. package/dist/Icons/ChevronUpIcon.js +28 -22
  164. package/dist/Icons/ChevronUpIcon.js.map +1 -0
  165. package/dist/Icons/ClockIcon.d.ts +16 -3
  166. package/dist/Icons/ClockIcon.d.ts.map +1 -0
  167. package/dist/Icons/ClockIcon.js +32 -26
  168. package/dist/Icons/ClockIcon.js.map +1 -0
  169. package/dist/Icons/CloseCircleIcon.d.ts +16 -3
  170. package/dist/Icons/CloseCircleIcon.d.ts.map +1 -0
  171. package/dist/Icons/CloseCircleIcon.js +32 -26
  172. package/dist/Icons/CloseCircleIcon.js.map +1 -0
  173. package/dist/Icons/CloseIcon.d.ts +16 -3
  174. package/dist/Icons/CloseIcon.d.ts.map +1 -0
  175. package/dist/Icons/CloseIcon.js +24 -18
  176. package/dist/Icons/CloseIcon.js.map +1 -0
  177. package/dist/Icons/Crosshairs2Icon.d.ts +16 -3
  178. package/dist/Icons/Crosshairs2Icon.d.ts.map +1 -0
  179. package/dist/Icons/Crosshairs2Icon.js +56 -50
  180. package/dist/Icons/Crosshairs2Icon.js.map +1 -0
  181. package/dist/Icons/CrosshairsIcon.d.ts +16 -3
  182. package/dist/Icons/CrosshairsIcon.d.ts.map +1 -0
  183. package/dist/Icons/CrosshairsIcon.js +25 -19
  184. package/dist/Icons/CrosshairsIcon.js.map +1 -0
  185. package/dist/Icons/DashboardIcon.d.ts +16 -3
  186. package/dist/Icons/DashboardIcon.d.ts.map +1 -0
  187. package/dist/Icons/DashboardIcon.js +42 -36
  188. package/dist/Icons/DashboardIcon.js.map +1 -0
  189. package/dist/Icons/DatabaseIcon.d.ts +16 -3
  190. package/dist/Icons/DatabaseIcon.d.ts.map +1 -0
  191. package/dist/Icons/DatabaseIcon.js +42 -36
  192. package/dist/Icons/DatabaseIcon.js.map +1 -0
  193. package/dist/Icons/DeleteIcon.d.ts +16 -3
  194. package/dist/Icons/DeleteIcon.d.ts.map +1 -0
  195. package/dist/Icons/DeleteIcon.js +42 -36
  196. package/dist/Icons/DeleteIcon.js.map +1 -0
  197. package/dist/Icons/DurationIcon.d.ts +16 -3
  198. package/dist/Icons/DurationIcon.d.ts.map +1 -0
  199. package/dist/Icons/DurationIcon.js +63 -57
  200. package/dist/Icons/DurationIcon.js.map +1 -0
  201. package/dist/Icons/EditIcon.d.ts +16 -3
  202. package/dist/Icons/EditIcon.d.ts.map +1 -0
  203. package/dist/Icons/EditIcon.js +32 -26
  204. package/dist/Icons/EditIcon.js.map +1 -0
  205. package/dist/Icons/EmailIcon.d.ts +16 -3
  206. package/dist/Icons/EmailIcon.d.ts.map +1 -0
  207. package/dist/Icons/EmailIcon.js +32 -26
  208. package/dist/Icons/EmailIcon.js.map +1 -0
  209. package/dist/Icons/EraserIcon.d.ts +16 -3
  210. package/dist/Icons/EraserIcon.d.ts.map +1 -0
  211. package/dist/Icons/EraserIcon.js +27 -23
  212. package/dist/Icons/EraserIcon.js.map +1 -0
  213. package/dist/Icons/ErrorIcon.d.ts +16 -3
  214. package/dist/Icons/ErrorIcon.d.ts.map +1 -0
  215. package/dist/Icons/ErrorIcon.js +33 -27
  216. package/dist/Icons/ErrorIcon.js.map +1 -0
  217. package/dist/Icons/EyeClosedIcon.d.ts +16 -3
  218. package/dist/Icons/EyeClosedIcon.d.ts.map +1 -0
  219. package/dist/Icons/EyeClosedIcon.js +35 -29
  220. package/dist/Icons/EyeClosedIcon.js.map +1 -0
  221. package/dist/Icons/EyeClosedIcon2.d.ts +16 -3
  222. package/dist/Icons/EyeClosedIcon2.d.ts.map +1 -0
  223. package/dist/Icons/EyeClosedIcon2.js +33 -27
  224. package/dist/Icons/EyeClosedIcon2.js.map +1 -0
  225. package/dist/Icons/EyeOpenIcon.d.ts +16 -3
  226. package/dist/Icons/EyeOpenIcon.d.ts.map +1 -0
  227. package/dist/Icons/EyeOpenIcon.js +28 -22
  228. package/dist/Icons/EyeOpenIcon.js.map +1 -0
  229. package/dist/Icons/FileDownloadIcon.d.ts +16 -3
  230. package/dist/Icons/FileDownloadIcon.d.ts.map +1 -0
  231. package/dist/Icons/FileDownloadIcon.js +49 -43
  232. package/dist/Icons/FileDownloadIcon.js.map +1 -0
  233. package/dist/Icons/GoToFirstIcon.d.ts +16 -3
  234. package/dist/Icons/GoToFirstIcon.d.ts.map +1 -0
  235. package/dist/Icons/GoToFirstIcon.js +32 -26
  236. package/dist/Icons/GoToFirstIcon.js.map +1 -0
  237. package/dist/Icons/GoToLastIcon.d.ts +16 -3
  238. package/dist/Icons/GoToLastIcon.d.ts.map +1 -0
  239. package/dist/Icons/GoToLastIcon.js +32 -26
  240. package/dist/Icons/GoToLastIcon.js.map +1 -0
  241. package/dist/Icons/HarmonicCursorsIcon.d.ts +16 -3
  242. package/dist/Icons/HarmonicCursorsIcon.d.ts.map +1 -0
  243. package/dist/Icons/HarmonicCursorsIcon.js +29 -23
  244. package/dist/Icons/HarmonicCursorsIcon.js.map +1 -0
  245. package/dist/Icons/IconBase.d.ts +38 -14
  246. package/dist/Icons/IconBase.d.ts.map +1 -0
  247. package/dist/Icons/IconBase.js +61 -41
  248. package/dist/Icons/IconBase.js.map +1 -0
  249. package/dist/Icons/InfoIcon.d.ts +16 -3
  250. package/dist/Icons/InfoIcon.d.ts.map +1 -0
  251. package/dist/Icons/InfoIcon.js +42 -36
  252. package/dist/Icons/InfoIcon.js.map +1 -0
  253. package/dist/Icons/KeyboardIcon.d.ts +16 -3
  254. package/dist/Icons/KeyboardIcon.d.ts.map +1 -0
  255. package/dist/Icons/KeyboardIcon.js +32 -26
  256. package/dist/Icons/KeyboardIcon.js.map +1 -0
  257. package/dist/Icons/LabelIcon.d.ts +16 -3
  258. package/dist/Icons/LabelIcon.d.ts.map +1 -0
  259. package/dist/Icons/LabelIcon.js +25 -19
  260. package/dist/Icons/LabelIcon.js.map +1 -0
  261. package/dist/Icons/LassoIcon.d.ts +16 -3
  262. package/dist/Icons/LassoIcon.d.ts.map +1 -0
  263. package/dist/Icons/LassoIcon.js +42 -36
  264. package/dist/Icons/LassoIcon.js.map +1 -0
  265. package/dist/Icons/LineToolIcon.d.ts +16 -3
  266. package/dist/Icons/LineToolIcon.d.ts.map +1 -0
  267. package/dist/Icons/LineToolIcon.js +54 -48
  268. package/dist/Icons/LineToolIcon.js.map +1 -0
  269. package/dist/Icons/LiveViewIcon.d.ts +16 -3
  270. package/dist/Icons/LiveViewIcon.d.ts.map +1 -0
  271. package/dist/Icons/LiveViewIcon.js +56 -50
  272. package/dist/Icons/LiveViewIcon.js.map +1 -0
  273. package/dist/Icons/LoaderIcon.d.ts +16 -3
  274. package/dist/Icons/LoaderIcon.d.ts.map +1 -0
  275. package/dist/Icons/LoaderIcon.js +35 -31
  276. package/dist/Icons/LoaderIcon.js.map +1 -0
  277. package/dist/Icons/LocationIcon.d.ts +16 -3
  278. package/dist/Icons/LocationIcon.d.ts.map +1 -0
  279. package/dist/Icons/LocationIcon.js +32 -26
  280. package/dist/Icons/LocationIcon.js.map +1 -0
  281. package/dist/Icons/LogoutIcon.d.ts +16 -3
  282. package/dist/Icons/LogoutIcon.d.ts.map +1 -0
  283. package/dist/Icons/LogoutIcon.js +26 -20
  284. package/dist/Icons/LogoutIcon.js.map +1 -0
  285. package/dist/Icons/MaximizeIcon.d.ts +16 -3
  286. package/dist/Icons/MaximizeIcon.d.ts.map +1 -0
  287. package/dist/Icons/MaximizeIcon.js +49 -43
  288. package/dist/Icons/MaximizeIcon.js.map +1 -0
  289. package/dist/Icons/MeasureIcon.d.ts +16 -3
  290. package/dist/Icons/MeasureIcon.d.ts.map +1 -0
  291. package/dist/Icons/MeasureIcon.js +84 -78
  292. package/dist/Icons/MeasureIcon.js.map +1 -0
  293. package/dist/Icons/MenuDotsIcon.d.ts +16 -3
  294. package/dist/Icons/MenuDotsIcon.d.ts.map +1 -0
  295. package/dist/Icons/MenuDotsIcon.js +42 -36
  296. package/dist/Icons/MenuDotsIcon.js.map +1 -0
  297. package/dist/Icons/MenuIcon.d.ts +16 -3
  298. package/dist/Icons/MenuIcon.d.ts.map +1 -0
  299. package/dist/Icons/MenuIcon.js +42 -36
  300. package/dist/Icons/MenuIcon.js.map +1 -0
  301. package/dist/Icons/MessagesIcon.d.ts +16 -3
  302. package/dist/Icons/MessagesIcon.d.ts.map +1 -0
  303. package/dist/Icons/MessagesIcon.js +39 -33
  304. package/dist/Icons/MessagesIcon.js.map +1 -0
  305. package/dist/Icons/MetadataIcon.d.ts +16 -3
  306. package/dist/Icons/MetadataIcon.d.ts.map +1 -0
  307. package/dist/Icons/MetadataIcon.js +26 -20
  308. package/dist/Icons/MetadataIcon.js.map +1 -0
  309. package/dist/Icons/MinimizeIcon.d.ts +16 -3
  310. package/dist/Icons/MinimizeIcon.d.ts.map +1 -0
  311. package/dist/Icons/MinimizeIcon.js +49 -43
  312. package/dist/Icons/MinimizeIcon.js.map +1 -0
  313. package/dist/Icons/MinusIcon.d.ts +16 -3
  314. package/dist/Icons/MinusIcon.d.ts.map +1 -0
  315. package/dist/Icons/MinusIcon.js +24 -18
  316. package/dist/Icons/MinusIcon.js.map +1 -0
  317. package/dist/Icons/OntologyIcon.d.ts +16 -3
  318. package/dist/Icons/OntologyIcon.d.ts.map +1 -0
  319. package/dist/Icons/OntologyIcon.js +93 -87
  320. package/dist/Icons/OntologyIcon.js.map +1 -0
  321. package/dist/Icons/PanelIconClose.d.ts +16 -3
  322. package/dist/Icons/PanelIconClose.d.ts.map +1 -0
  323. package/dist/Icons/PanelIconClose.js +34 -28
  324. package/dist/Icons/PanelIconClose.js.map +1 -0
  325. package/dist/Icons/PanelIconOpen.d.ts +16 -3
  326. package/dist/Icons/PanelIconOpen.d.ts.map +1 -0
  327. package/dist/Icons/PanelIconOpen.js +34 -28
  328. package/dist/Icons/PanelIconOpen.js.map +1 -0
  329. package/dist/Icons/PauseIcon.d.ts +16 -3
  330. package/dist/Icons/PauseIcon.d.ts.map +1 -0
  331. package/dist/Icons/PauseIcon.js +32 -26
  332. package/dist/Icons/PauseIcon.js.map +1 -0
  333. package/dist/Icons/PlayIcon.d.ts +16 -3
  334. package/dist/Icons/PlayIcon.d.ts.map +1 -0
  335. package/dist/Icons/PlayIcon.js +26 -20
  336. package/dist/Icons/PlayIcon.js.map +1 -0
  337. package/dist/Icons/PlusIcon.d.ts +16 -3
  338. package/dist/Icons/PlusIcon.d.ts.map +1 -0
  339. package/dist/Icons/PlusIcon.js +26 -20
  340. package/dist/Icons/PlusIcon.js.map +1 -0
  341. package/dist/Icons/PolygonIcon.d.ts +17 -3
  342. package/dist/Icons/PolygonIcon.d.ts.map +1 -0
  343. package/dist/Icons/PolygonIcon.js +56 -50
  344. package/dist/Icons/PolygonIcon.js.map +1 -0
  345. package/dist/Icons/PrinterIcon.d.ts +16 -3
  346. package/dist/Icons/PrinterIcon.d.ts.map +1 -0
  347. package/dist/Icons/PrinterIcon.js +26 -20
  348. package/dist/Icons/PrinterIcon.js.map +1 -0
  349. package/dist/Icons/ProgressCheckIcon.d.ts +16 -3
  350. package/dist/Icons/ProgressCheckIcon.d.ts.map +1 -0
  351. package/dist/Icons/ProgressCheckIcon.js +63 -57
  352. package/dist/Icons/ProgressCheckIcon.js.map +1 -0
  353. package/dist/Icons/ResetIcon.d.ts +16 -3
  354. package/dist/Icons/ResetIcon.d.ts.map +1 -0
  355. package/dist/Icons/ResetIcon.js +23 -17
  356. package/dist/Icons/ResetIcon.js.map +1 -0
  357. package/dist/Icons/ReviewedIcon.d.ts +16 -3
  358. package/dist/Icons/ReviewedIcon.d.ts.map +1 -0
  359. package/dist/Icons/ReviewedIcon.js +42 -36
  360. package/dist/Icons/ReviewedIcon.js.map +1 -0
  361. package/dist/Icons/ScissorsIcon.d.ts +16 -3
  362. package/dist/Icons/ScissorsIcon.d.ts.map +1 -0
  363. package/dist/Icons/ScissorsIcon.js +28 -22
  364. package/dist/Icons/ScissorsIcon.js.map +1 -0
  365. package/dist/Icons/SearchIcon.d.ts +16 -3
  366. package/dist/Icons/SearchIcon.d.ts.map +1 -0
  367. package/dist/Icons/SearchIcon.js +32 -26
  368. package/dist/Icons/SearchIcon.js.map +1 -0
  369. package/dist/Icons/SettingsIcon.d.ts +16 -3
  370. package/dist/Icons/SettingsIcon.d.ts.map +1 -0
  371. package/dist/Icons/SettingsIcon.js +32 -26
  372. package/dist/Icons/SettingsIcon.js.map +1 -0
  373. package/dist/Icons/SortAscendingIcon.d.ts +16 -3
  374. package/dist/Icons/SortAscendingIcon.d.ts.map +1 -0
  375. package/dist/Icons/SortAscendingIcon.js +56 -50
  376. package/dist/Icons/SortAscendingIcon.js.map +1 -0
  377. package/dist/Icons/SortAtoZIcon.d.ts +16 -3
  378. package/dist/Icons/SortAtoZIcon.d.ts.map +1 -0
  379. package/dist/Icons/SortAtoZIcon.js +56 -50
  380. package/dist/Icons/SortAtoZIcon.js.map +1 -0
  381. package/dist/Icons/SortDescendingIcon.d.ts +16 -3
  382. package/dist/Icons/SortDescendingIcon.d.ts.map +1 -0
  383. package/dist/Icons/SortDescendingIcon.js +56 -50
  384. package/dist/Icons/SortDescendingIcon.js.map +1 -0
  385. package/dist/Icons/SortZtoAIcon.d.ts +16 -3
  386. package/dist/Icons/SortZtoAIcon.d.ts.map +1 -0
  387. package/dist/Icons/SortZtoAIcon.js +56 -50
  388. package/dist/Icons/SortZtoAIcon.js.map +1 -0
  389. package/dist/Icons/SparklesIcon.d.ts +16 -3
  390. package/dist/Icons/SparklesIcon.d.ts.map +1 -0
  391. package/dist/Icons/SparklesIcon.js +26 -20
  392. package/dist/Icons/SparklesIcon.js.map +1 -0
  393. package/dist/Icons/StackIcon.d.ts +16 -3
  394. package/dist/Icons/StackIcon.d.ts.map +1 -0
  395. package/dist/Icons/StackIcon.js +32 -26
  396. package/dist/Icons/StackIcon.js.map +1 -0
  397. package/dist/Icons/StarIcon.d.ts +16 -3
  398. package/dist/Icons/StarIcon.d.ts.map +1 -0
  399. package/dist/Icons/StarIcon.js +26 -20
  400. package/dist/Icons/StarIcon.js.map +1 -0
  401. package/dist/Icons/TrashIcon.d.ts +16 -3
  402. package/dist/Icons/TrashIcon.d.ts.map +1 -0
  403. package/dist/Icons/TrashIcon.js +23 -17
  404. package/dist/Icons/TrashIcon.js.map +1 -0
  405. package/dist/Icons/UndoIcon.d.ts +16 -3
  406. package/dist/Icons/UndoIcon.d.ts.map +1 -0
  407. package/dist/Icons/UndoIcon.js +26 -20
  408. package/dist/Icons/UndoIcon.js.map +1 -0
  409. package/dist/Icons/UploadIcon.d.ts +16 -3
  410. package/dist/Icons/UploadIcon.d.ts.map +1 -0
  411. package/dist/Icons/UploadIcon.js +42 -36
  412. package/dist/Icons/UploadIcon.js.map +1 -0
  413. package/dist/Icons/User2Icon.d.ts +16 -3
  414. package/dist/Icons/User2Icon.d.ts.map +1 -0
  415. package/dist/Icons/User2Icon.js +32 -26
  416. package/dist/Icons/User2Icon.js.map +1 -0
  417. package/dist/Icons/UserIcon.d.ts +16 -3
  418. package/dist/Icons/UserIcon.d.ts.map +1 -0
  419. package/dist/Icons/UserIcon.js +25 -19
  420. package/dist/Icons/UserIcon.js.map +1 -0
  421. package/dist/Icons/WarningIcon.d.ts +16 -3
  422. package/dist/Icons/WarningIcon.d.ts.map +1 -0
  423. package/dist/Icons/WarningIcon.js +25 -19
  424. package/dist/Icons/WarningIcon.js.map +1 -0
  425. package/dist/Icons/ZoomAllIcon.d.ts +16 -3
  426. package/dist/Icons/ZoomAllIcon.d.ts.map +1 -0
  427. package/dist/Icons/ZoomAllIcon.js +77 -71
  428. package/dist/Icons/ZoomAllIcon.js.map +1 -0
  429. package/dist/Icons/ZoomXIcon.d.ts +16 -3
  430. package/dist/Icons/ZoomXIcon.d.ts.map +1 -0
  431. package/dist/Icons/ZoomXIcon.js +42 -36
  432. package/dist/Icons/ZoomXIcon.js.map +1 -0
  433. package/dist/Icons/ZoomYIcon.d.ts +16 -3
  434. package/dist/Icons/ZoomYIcon.d.ts.map +1 -0
  435. package/dist/Icons/ZoomYIcon.js +42 -36
  436. package/dist/Icons/ZoomYIcon.js.map +1 -0
  437. package/dist/Icons.d.ts +82 -0
  438. package/dist/Icons.js +83 -82
  439. package/dist/IconsAnimated/PanelLeftCloseIcon.d.ts +15 -2
  440. package/dist/IconsAnimated/PanelLeftCloseIcon.d.ts.map +1 -0
  441. package/dist/IconsAnimated/PanelLeftCloseIcon.js +45 -35
  442. package/dist/IconsAnimated/PanelLeftCloseIcon.js.map +1 -0
  443. package/dist/IconsAnimated/PanelLeftOpenIcon.d.ts +15 -2
  444. package/dist/IconsAnimated/PanelLeftOpenIcon.d.ts.map +1 -0
  445. package/dist/IconsAnimated/PanelLeftOpenIcon.js +45 -35
  446. package/dist/IconsAnimated/PanelLeftOpenIcon.js.map +1 -0
  447. package/dist/IconsAnimated.d.ts +4 -0
  448. package/dist/IconsAnimated.js +5 -4
  449. package/dist/Input/InputUtils.d.ts +16 -11
  450. package/dist/Input/InputUtils.d.ts.map +1 -0
  451. package/dist/Input/InputUtils.js +47 -36
  452. package/dist/Input/InputUtils.js.map +1 -0
  453. package/dist/Input.d.ts +31 -26
  454. package/dist/Input.d.ts.map +1 -0
  455. package/dist/Input.js +161 -111
  456. package/dist/Input.js.map +1 -0
  457. package/dist/InputNumeric.d.ts +33 -12
  458. package/dist/InputNumeric.d.ts.map +1 -0
  459. package/dist/InputNumeric.js +146 -102
  460. package/dist/InputNumeric.js.map +1 -0
  461. package/dist/InputOTP.d.ts +95 -54
  462. package/dist/InputOTP.d.ts.map +1 -0
  463. package/dist/InputOTP.js +161 -3
  464. package/dist/InputOTP.js.map +1 -0
  465. package/dist/Kbd.d.ts +31 -16
  466. package/dist/Kbd.d.ts.map +1 -0
  467. package/dist/Kbd.js +55 -46
  468. package/dist/Kbd.js.map +1 -0
  469. package/dist/Label.d.ts +19 -9
  470. package/dist/Label.d.ts.map +1 -0
  471. package/dist/Label.js +16 -12
  472. package/dist/Label.js.map +1 -0
  473. package/dist/MultiSelect/MultiSelectBase.d.ts +81 -41
  474. package/dist/MultiSelect/MultiSelectBase.d.ts.map +1 -0
  475. package/dist/MultiSelect/MultiSelectBase.js +318 -235
  476. package/dist/MultiSelect/MultiSelectBase.js.map +1 -0
  477. package/dist/MultiSelect.d.ts +40 -23
  478. package/dist/MultiSelect.d.ts.map +1 -0
  479. package/dist/MultiSelect.js +31 -26
  480. package/dist/MultiSelect.js.map +1 -0
  481. package/dist/Popover.d.ts +28 -8
  482. package/dist/Popover.d.ts.map +1 -0
  483. package/dist/Popover.js +41 -28
  484. package/dist/Popover.js.map +1 -0
  485. package/dist/RadioButton.d.ts +36 -15
  486. package/dist/RadioButton.d.ts.map +1 -0
  487. package/dist/RadioButton.js +34 -26
  488. package/dist/RadioButton.js.map +1 -0
  489. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +50 -23
  490. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts.map +1 -0
  491. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +63 -45
  492. package/dist/RadioButtonGroup/RadioButtonGroupBase.js.map +1 -0
  493. package/dist/RadioButtonGroup.d.ts +31 -10
  494. package/dist/RadioButtonGroup.d.ts.map +1 -0
  495. package/dist/RadioButtonGroup.js +16 -11
  496. package/dist/RadioButtonGroup.js.map +1 -0
  497. package/dist/RadioGroup.d.ts +62 -45
  498. package/dist/RadioGroup.d.ts.map +1 -0
  499. package/dist/RadioGroup.js +184 -3
  500. package/dist/RadioGroup.js.map +1 -0
  501. package/dist/Select.d.ts +38 -33
  502. package/dist/Select.d.ts.map +1 -0
  503. package/dist/Select.js +142 -116
  504. package/dist/Select.js.map +1 -0
  505. package/dist/Separator.d.ts +22 -10
  506. package/dist/Separator.d.ts.map +1 -0
  507. package/dist/Separator.js +20 -16
  508. package/dist/Separator.js.map +1 -0
  509. package/dist/Skeleton.d.ts +11 -2
  510. package/dist/Skeleton.d.ts.map +1 -0
  511. package/dist/Skeleton.js +14 -10
  512. package/dist/Skeleton.js.map +1 -0
  513. package/dist/Slider.d.ts +49 -26
  514. package/dist/Slider.d.ts.map +1 -0
  515. package/dist/Slider.js +167 -3
  516. package/dist/Slider.js.map +1 -0
  517. package/dist/SpectralProvider.d.ts +3 -30
  518. package/dist/SpectralProvider.js +4 -11
  519. package/dist/Switch/SwitchBase.d.ts +51 -24
  520. package/dist/Switch/SwitchBase.d.ts.map +1 -0
  521. package/dist/Switch/SwitchBase.js +91 -72
  522. package/dist/Switch/SwitchBase.js.map +1 -0
  523. package/dist/Switch.d.ts +53 -24
  524. package/dist/Switch.d.ts.map +1 -0
  525. package/dist/Switch.js +118 -3
  526. package/dist/Switch.js.map +1 -0
  527. package/dist/Tabs/TabsBase.d.ts +94 -50
  528. package/dist/Tabs/TabsBase.d.ts.map +1 -0
  529. package/dist/Tabs/TabsBase.js +213 -152
  530. package/dist/Tabs/TabsBase.js.map +1 -0
  531. package/dist/Tabs/tabsUtils.d.ts +35 -30
  532. package/dist/Tabs/tabsUtils.d.ts.map +1 -0
  533. package/dist/Tabs/tabsUtils.js +121 -49
  534. package/dist/Tabs/tabsUtils.js.map +1 -0
  535. package/dist/Tabs.d.ts +55 -35
  536. package/dist/Tabs.d.ts.map +1 -0
  537. package/dist/Tabs.js +81 -60
  538. package/dist/Tabs.js.map +1 -0
  539. package/dist/Textarea/TextareaUtils.d.ts +24 -13
  540. package/dist/Textarea/TextareaUtils.d.ts.map +1 -0
  541. package/dist/Textarea/TextareaUtils.js +52 -29
  542. package/dist/Textarea/TextareaUtils.js.map +1 -0
  543. package/dist/Textarea.d.ts +33 -25
  544. package/dist/Textarea.d.ts.map +1 -0
  545. package/dist/Textarea.js +94 -67
  546. package/dist/Textarea.js.map +1 -0
  547. package/dist/Toast.d.ts +63 -34
  548. package/dist/Toast.d.ts.map +1 -0
  549. package/dist/Toast.js +115 -3
  550. package/dist/Toast.js.map +1 -0
  551. package/dist/Toggle/ToggleBase.d.ts +29 -11
  552. package/dist/Toggle/ToggleBase.d.ts.map +1 -0
  553. package/dist/Toggle/ToggleBase.js +55 -41
  554. package/dist/Toggle/ToggleBase.js.map +1 -0
  555. package/dist/Toggle.d.ts +34 -16
  556. package/dist/Toggle.d.ts.map +1 -0
  557. package/dist/Toggle.js +46 -32
  558. package/dist/Toggle.js.map +1 -0
  559. package/dist/ToggleGroup/ToggleGroupBase.d.ts +45 -30
  560. package/dist/ToggleGroup/ToggleGroupBase.d.ts.map +1 -0
  561. package/dist/ToggleGroup/ToggleGroupBase.js +162 -111
  562. package/dist/ToggleGroup/ToggleGroupBase.js.map +1 -0
  563. package/dist/ToggleGroup/ToggleGroupItem.d.ts +31 -13
  564. package/dist/ToggleGroup/ToggleGroupItem.d.ts.map +1 -0
  565. package/dist/ToggleGroup/ToggleGroupItem.js +35 -27
  566. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -0
  567. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.d.ts +49 -20
  568. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.d.ts.map +1 -0
  569. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.js +123 -91
  570. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.js.map +1 -0
  571. package/dist/ToggleGroup.d.ts +26 -10
  572. package/dist/ToggleGroup.d.ts.map +1 -0
  573. package/dist/ToggleGroup.js +35 -31
  574. package/dist/ToggleGroup.js.map +1 -0
  575. package/dist/Tooltip.d.ts +35 -12
  576. package/dist/Tooltip.d.ts.map +1 -0
  577. package/dist/Tooltip.js +68 -3
  578. package/dist/Tooltip.js.map +1 -0
  579. package/dist/Tray.d.ts +105 -61
  580. package/dist/Tray.d.ts.map +1 -0
  581. package/dist/Tray.js +120 -102
  582. package/dist/Tray.js.map +1 -0
  583. package/dist/components/Icons/iconTypes.d.ts +17 -0
  584. package/dist/components/Icons/iconTypes.d.ts.map +1 -0
  585. package/dist/components/IconsAnimated/iconTypes.d.ts +15 -0
  586. package/dist/components/IconsAnimated/iconTypes.d.ts.map +1 -0
  587. package/dist/components/SpectralProvider/SpectralProvider.d.ts +35 -0
  588. package/dist/components/SpectralProvider/SpectralProvider.d.ts.map +1 -0
  589. package/dist/components/SpectralProvider/SpectralProvider.js +33 -0
  590. package/dist/components/SpectralProvider/SpectralProvider.js.map +1 -0
  591. package/dist/components/ToggleGroup/ToggleGroup.context.js +14 -0
  592. package/dist/components/ToggleGroup/ToggleGroup.context.js.map +1 -0
  593. package/dist/hooks/useAccordionAutoScroll.d.ts +7 -2
  594. package/dist/hooks/useAccordionAutoScroll.d.ts.map +1 -1
  595. package/dist/hooks/useAccordionAutoScroll.js +71 -45
  596. package/dist/hooks/useAccordionAutoScroll.js.map +1 -0
  597. package/dist/hooks/useControllableState.d.ts +12 -8
  598. package/dist/hooks/useControllableState.d.ts.map +1 -1
  599. package/dist/hooks/useControllableState.js +23 -12
  600. package/dist/hooks/useControllableState.js.map +1 -0
  601. package/dist/hooks/useConvertToOklch.d.ts +6 -2
  602. package/dist/hooks/useConvertToOklch.d.ts.map +1 -1
  603. package/dist/hooks/useConvertToOklch.js +87 -42
  604. package/dist/hooks/useConvertToOklch.js.map +1 -0
  605. package/dist/hooks/useTheme.d.ts +10 -6
  606. package/dist/hooks/useTheme.d.ts.map +1 -1
  607. package/dist/hooks/useTheme.js +26 -18
  608. package/dist/hooks/useTheme.js.map +1 -0
  609. package/dist/hooks/useUncontrolledState.d.ts +8 -4
  610. package/dist/hooks/useUncontrolledState.d.ts.map +1 -1
  611. package/dist/hooks/useUncontrolledState.js +21 -11
  612. package/dist/hooks/useUncontrolledState.js.map +1 -0
  613. package/dist/index.d.ts +129 -47
  614. package/dist/index.js +130 -0
  615. package/dist/primitives/button.d.ts +22 -9
  616. package/dist/primitives/button.d.ts.map +1 -1
  617. package/dist/primitives/button.js +21 -15
  618. package/dist/primitives/button.js.map +1 -0
  619. package/dist/primitives/input-group.d.ts +46 -17
  620. package/dist/primitives/input-group.d.ts.map +1 -1
  621. package/dist/primitives/input-group.js +66 -43
  622. package/dist/primitives/input-group.js.map +1 -0
  623. package/dist/primitives/input.d.ts +16 -6
  624. package/dist/primitives/input.d.ts.map +1 -1
  625. package/dist/primitives/input.js +15 -10
  626. package/dist/primitives/input.js.map +1 -0
  627. package/dist/primitives/popover.d.ts +35 -9
  628. package/dist/primitives/popover.d.ts.map +1 -1
  629. package/dist/primitives/popover.js +56 -33
  630. package/dist/primitives/popover.js.map +1 -0
  631. package/dist/primitives/select.d.ts +60 -17
  632. package/dist/primitives/select.d.ts.map +1 -1
  633. package/dist/primitives/select.js +133 -3
  634. package/dist/primitives/select.js.map +1 -0
  635. package/dist/primitives/slot.d.ts +23 -14
  636. package/dist/primitives/slot.d.ts.map +1 -1
  637. package/dist/primitives/slot.js +53 -29
  638. package/dist/primitives/slot.js.map +1 -0
  639. package/dist/primitives/textarea.d.ts +11 -2
  640. package/dist/primitives/textarea.d.ts.map +1 -1
  641. package/dist/primitives/textarea.js +14 -9
  642. package/dist/primitives/textarea.js.map +1 -0
  643. package/dist/styles/horizon/colors.css +1 -0
  644. package/dist/styles/horizon-tokens.css +9 -0
  645. package/dist/styles/spectral.css +2 -2
  646. package/dist/utils/constants.d.ts +5 -1
  647. package/dist/utils/constants.d.ts.map +1 -1
  648. package/dist/utils/constants.js +5 -2
  649. package/dist/utils/constants.js.map +1 -0
  650. package/dist/utils/dropdownPositioning.d.ts +14 -9
  651. package/dist/utils/dropdownPositioning.d.ts.map +1 -1
  652. package/dist/utils/dropdownPositioning.js +57 -34
  653. package/dist/utils/dropdownPositioning.js.map +1 -0
  654. package/dist/utils/formFieldUtils.d.ts +93 -73
  655. package/dist/utils/formFieldUtils.d.ts.map +1 -1
  656. package/dist/utils/formFieldUtils.js +171 -106
  657. package/dist/utils/formFieldUtils.js.map +1 -0
  658. package/dist/utils/sharedUtils.d.ts +10 -6
  659. package/dist/utils/sharedUtils.d.ts.map +1 -1
  660. package/dist/utils/sharedUtils.js +23 -8
  661. package/dist/utils/sharedUtils.js.map +1 -0
  662. package/dist/utils/twUtils.d.ts +7 -2
  663. package/dist/utils/twUtils.d.ts.map +1 -1
  664. package/dist/utils/twUtils.js +12 -2
  665. package/dist/utils/twUtils.js.map +1 -0
  666. package/package.json +32 -24
  667. package/dist/.js +0 -129
  668. package/dist/Accordion-dVZHqyv8.js +0 -363
  669. package/dist/AnimatePresence-Bz_JZ2ah.js +0 -178
  670. package/dist/App.d.ts +0 -2
  671. package/dist/App.d.ts.map +0 -1
  672. package/dist/App.js +0 -9
  673. package/dist/Calendar-FXWVuKWS.js +0 -3109
  674. package/dist/Combination-MimnVFUU.js +0 -698
  675. package/dist/Combobox-DRQqx0os.js +0 -6379
  676. package/dist/DateTimeUtils-BJUAMuot.js +0 -2098
  677. package/dist/DropdownMenu-BO_RPCVU.js +0 -870
  678. package/dist/HoverCard-BhxgELKP.js +0 -201
  679. package/dist/Icons/index.d.ts +0 -81
  680. package/dist/InputOTP-DLn7ja7J.js +0 -464
  681. package/dist/RadioGroup-D-XjCU4Q.js +0 -333
  682. package/dist/Slider-CPYW_VYu.js +0 -490
  683. package/dist/Switch-CSmXtkia.js +0 -145
  684. package/dist/Toast-BuaZxqlt.js +0 -711
  685. package/dist/ToggleGroup/ToggleGroup.context.d.ts +0 -9
  686. package/dist/ToggleGroup/ToggleGroup.context.js +0 -11
  687. package/dist/Tooltip-CTjKOfvC.js +0 -389
  688. package/dist/builtin_esm-external-require-react-ItzZuLxx.js +0 -8
  689. package/dist/chunk-DmRZw4Wy.js +0 -17
  690. package/dist/clsx-Bfoz3aNJ.js +0 -16
  691. package/dist/dist-B9w6c9RC.js +0 -190
  692. package/dist/dist-Br_xj9vz.js +0 -12
  693. package/dist/dist-C-2mar4Y.js +0 -28
  694. package/dist/dist-C4MHwt9g.js +0 -10
  695. package/dist/dist-C6pGYii-.js +0 -6
  696. package/dist/dist-Cc8NfAO6.js +0 -122
  697. package/dist/dist-CcsVPym2.js +0 -68
  698. package/dist/dist-CrYg_9Cu.js +0 -913
  699. package/dist/dist-CwYxT5fv.js +0 -1287
  700. package/dist/dist-D9FsQh8P.js +0 -65
  701. package/dist/dist-DBLajRTL.js +0 -149
  702. package/dist/dist-DEkDg4Sk.js +0 -249
  703. package/dist/dist-DT46nqCO.js +0 -216
  704. package/dist/dist-PfrTYHr_.js +0 -29
  705. package/dist/dist-iDaHUF3d.js +0 -129
  706. package/dist/dist-s1uWaZYZ.js +0 -11
  707. package/dist/dist-tMzzRwxG.js +0 -33
  708. package/dist/index.d.ts.map +0 -1
  709. package/dist/main.d.ts +0 -1
  710. package/dist/main.d.ts.map +0 -1
  711. package/dist/main.js +0 -18960
  712. package/dist/proxy-BFVscmYQ.js +0 -4920
  713. package/dist/select-DFE8xm1L.js +0 -768
  714. package/dist/styles/base-colors.css +0 -62
  715. package/dist/styles/main.css +0 -2
  716. package/dist/styles/theme.css +0 -869
  717. package/dist/twUtils-BpqlKSeB.js +0 -1673
  718. package/dist/use-animation-BeSipRjB.js +0 -57
  719. package/dist/utils/dropdownPositioning.test.d.ts +0 -2
  720. package/dist/utils/dropdownPositioning.test.d.ts.map +0 -1
  721. package/dist/utils/dropdownPositioning.test.js +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectBase.js","names":[],"sources":["../../src/components/MultiSelect/MultiSelectBase.tsx"],"sourcesContent":["import { CheckmarkIcon, ChevronDownIcon, CloseIcon, SearchIcon } from '@components/Icons'\nimport { Label } from '@components/Label/Label'\nimport { useUncontrolledState } from '@hooks/useUncontrolledState'\nimport * as Popover from '@radix-ui/react-popover'\nimport { useAutoDropdownHorizontalShift } from '@utils/dropdownPositioning'\nimport { EmptyState, ErrorMessage, getAriaProps, getDropdownSurfaceClasses, getDropdownWidthStyles, getErrorMessageId, getTriggerClasses, LoadingState, WarningMessage, useFormFieldId, type BaseFormFieldProps, type DropdownWidth, type FormFieldState } from '@utils/formFieldUtils'\nimport { cn } from '@utils/twUtils'\nimport { useCallback, useEffect, useId, useMemo, useRef, useState, type ButtonHTMLAttributes, type ChangeEvent, type CSSProperties, type KeyboardEvent, type Ref } from 'react'\n\nexport type MultiSelectState = Exclude<FormFieldState, 'disabled'>\n\nexport interface MultiSelectOption {\n disabled?: boolean\n group?: string\n label: string\n value: string\n}\n\nexport interface MultiSelectBaseProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onChange'> {\n clearAllLabel?: string\n closeOnSelect?: boolean\n dropdownWidth?: DropdownWidth\n emptyMessage?: string\n errorMessage?: BaseFormFieldProps['errorMessage']\n id?: string\n label?: string\n loadingMessage?: string\n maxCount?: number\n messageReserveLines?: number\n messageReserveSpace?: boolean\n name?: string\n defaultValue?: string[]\n onChange?: (value: string[]) => void\n options: MultiSelectOption[]\n placeholder?: string\n required?: boolean\n searchPlaceholder?: string\n showClearAll?: boolean\n showSearch?: boolean\n showSelectAll?: boolean\n selectAllLabel?: string\n sortAlphabetically?: boolean\n state?: MultiSelectState\n value?: string[]\n warningMessage?: BaseFormFieldProps['errorMessage']\n 'aria-label'?: string\n 'aria-describedby'?: string\n}\n\nconst ICON_SIZE = 'h-4 w-4'\n\nconst getDropdownClasses = (): string => {\n return cn(\n 'max-h-80 z-50 overflow-hidden',\n getDropdownSurfaceClasses(),\n 'motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=open]:animate-in',\n 'motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:fade-in-0',\n 'motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:zoom-in-95',\n 'motion-safe:data-[side=bottom]:slide-in-from-top-2',\n 'motion-safe:data-[side=top]:slide-in-from-bottom-2',\n 'origin-(--radix-popover-content-transform-origin)',\n )\n}\n\ntype FocusableItem = { type: 'search' } | { type: 'select-all' } | { type: 'option'; index: number; value: string } | { type: 'clear-all' }\n\nconst useKeyboardNavigation = (\n options: MultiSelectOption[],\n onClearAll: () => void,\n onClose: () => void,\n onSelect: (value: string) => void,\n onSelectAll: () => void,\n searchInputRef: React.RefObject<HTMLInputElement | null>,\n showSearch: boolean,\n showSelectAll: boolean,\n showClearAll: boolean,\n) => {\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n // Build a flat list of all focusable items\n const focusableItems = useMemo((): FocusableItem[] => {\n const items: FocusableItem[] = []\n\n if (showSearch) {\n items.push({ type: 'search' })\n }\n\n if (showSelectAll) {\n items.push({ type: 'select-all' })\n }\n\n options.forEach((option, index) => {\n if (!option.disabled) {\n items.push({ type: 'option', index, value: option.value })\n }\n })\n\n if (showClearAll) {\n items.push({ type: 'clear-all' })\n }\n\n return items\n }, [options, showSearch, showSelectAll, showClearAll])\n\n // Focus the appropriate element when focusedIndex changes\n const focusCurrentItem = useCallback(\n (index: number) => {\n if (index < 0 || index >= focusableItems.length) return\n const item = focusableItems[index]\n if (item.type === 'search') {\n searchInputRef.current?.focus()\n }\n },\n [focusableItems, searchInputRef],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n const currentItem = focusedIndex >= 0 && focusedIndex < focusableItems.length ? focusableItems[focusedIndex] : null\n\n // Don't prevent default for space in search input (allow typing spaces)\n if (event.key === ' ' && currentItem?.type === 'search') {\n return\n }\n\n // Don't prevent default for Enter in search input (allow form submission behavior)\n if (event.key === 'Enter' && currentItem?.type === 'search') {\n return\n }\n\n const keyHandlers: Record<string, () => void> = {\n ArrowDown: () => {\n event.preventDefault()\n const newIndex = Math.min(focusedIndex + 1, focusableItems.length - 1)\n setFocusedIndex(newIndex)\n focusCurrentItem(newIndex)\n },\n ArrowUp: () => {\n event.preventDefault()\n const newIndex = Math.max(focusedIndex - 1, 0)\n setFocusedIndex(newIndex)\n focusCurrentItem(newIndex)\n },\n Tab: () => {\n // Allow Tab to cycle through focusable items\n if (event.shiftKey) {\n if (focusedIndex <= 0) {\n // At start, close dropdown and return to trigger\n onClose()\n } else {\n event.preventDefault()\n const newIndex = focusedIndex - 1\n setFocusedIndex(newIndex)\n focusCurrentItem(newIndex)\n }\n } else {\n if (focusedIndex >= focusableItems.length - 1) {\n // At end, close dropdown and move to next element\n onClose()\n } else {\n event.preventDefault()\n const newIndex = focusedIndex + 1\n setFocusedIndex(newIndex)\n focusCurrentItem(newIndex)\n }\n }\n },\n Enter: () => {\n event.preventDefault()\n if (focusedIndex >= 0 && focusedIndex < focusableItems.length) {\n const item = focusableItems[focusedIndex]\n if (item.type === 'select-all') {\n onSelectAll()\n } else if (item.type === 'clear-all') {\n onClearAll()\n } else if (item.type === 'option') {\n onSelect(item.value)\n }\n }\n },\n ' ': () => {\n event.preventDefault()\n if (focusedIndex >= 0 && focusedIndex < focusableItems.length) {\n const item = focusableItems[focusedIndex]\n if (item.type === 'select-all') {\n onSelectAll()\n } else if (item.type === 'clear-all') {\n onClearAll()\n } else if (item.type === 'option') {\n onSelect(item.value)\n }\n }\n },\n Escape: () => {\n event.preventDefault()\n onClose()\n },\n }\n\n const handler = keyHandlers[event.key]\n if (handler) {\n handler()\n }\n },\n [focusableItems, focusedIndex, onSelect, onSelectAll, onClearAll, onClose, focusCurrentItem],\n )\n\n // Get the option index for visual focus styling (accounting for select-all offset)\n const getOptionFocusIndex = useCallback(\n (optionIndex: number): boolean => {\n if (focusedIndex < 0 || focusedIndex >= focusableItems.length) return false\n const item = focusableItems[focusedIndex]\n return item.type === 'option' && item.index === optionIndex\n },\n [focusedIndex, focusableItems],\n )\n\n const isSearchFocused = useMemo(() => {\n if (focusedIndex < 0 || focusedIndex >= focusableItems.length) return false\n return focusableItems[focusedIndex].type === 'search'\n }, [focusedIndex, focusableItems])\n\n const isSelectAllFocused = useMemo(() => {\n if (focusedIndex < 0 || focusedIndex >= focusableItems.length) return false\n return focusableItems[focusedIndex].type === 'select-all'\n }, [focusedIndex, focusableItems])\n\n const isClearAllFocused = useMemo(() => {\n if (focusedIndex < 0 || focusedIndex >= focusableItems.length) return false\n return focusableItems[focusedIndex].type === 'clear-all'\n }, [focusedIndex, focusableItems])\n\n const focusedOptionValue = useMemo(() => {\n if (focusedIndex < 0 || focusedIndex >= focusableItems.length) return null\n const item = focusableItems[focusedIndex]\n return item.type === 'option' ? item.value : null\n }, [focusedIndex, focusableItems])\n\n return {\n focusedIndex,\n setFocusedIndex,\n handleKeyDown,\n getOptionFocusIndex,\n isSearchFocused,\n isSelectAllFocused,\n isClearAllFocused,\n focusedOptionValue,\n }\n}\n\nexport const MultiSelectBase = ({\n className,\n clearAllLabel = 'Clear all',\n closeOnSelect = false,\n dropdownWidth = 'trigger',\n emptyMessage = 'No options found',\n errorMessage,\n defaultValue = [],\n disabled,\n id,\n label,\n loadingMessage = 'Loading options…',\n messageReserveLines = 1,\n messageReserveSpace = true,\n maxCount = 3,\n name,\n onChange,\n options = [],\n placeholder = 'Select options',\n ref,\n searchPlaceholder = 'Search options…',\n selectAllLabel = 'Select all',\n showClearAll = true,\n showSearch = true,\n showSelectAll = true,\n sortAlphabetically = false,\n state = 'default',\n value: valueProp,\n warningMessage,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: MultiSelectBaseProps & {\n ref?: Ref<HTMLButtonElement>\n}) => {\n const generatedId = useId()\n const fallbackName = name ?? `multiselect-${generatedId}`\n const multiSelectId = useFormFieldId(id, fallbackName)\n const listboxId = `${multiSelectId}-listbox`\n const errorMessageId = getErrorMessageId(multiSelectId)\n const warningMessageId = `${multiSelectId}-warning`\n const messageId = state === 'error' ? errorMessageId : state === 'warning' && warningMessage ? warningMessageId : undefined\n\n const [isOpen, setIsOpen] = useState(false)\n const { dropdownShiftStyle, setDropdownElement } = useAutoDropdownHorizontalShift(isOpen)\n const [searchValue, setSearchValue] = useState('')\n const [value, setValue] = useUncontrolledState<string[]>({\n value: valueProp,\n defaultValue,\n onChange,\n })\n\n const searchInputRef = useRef<HTMLInputElement>(null)\n\n const isDisabled = Boolean(disabled)\n const isLoading = state === 'loading'\n const ariaProps = getAriaProps(state, ariaDescribedBy, props.required, messageId)\n const { dropdownOverflowStyle, dropdownWidthMode, resolvedDropdownWidth } = getDropdownWidthStyles({\n dropdownWidth,\n triggerWidth: 'var(--radix-popover-trigger-width)',\n })\n\n const filteredOptions = useMemo(() => {\n let filtered = options.filter((option) => option.label.toLowerCase().includes(searchValue.toLowerCase()))\n\n if (sortAlphabetically) {\n filtered = [...filtered].sort((a, b) => a.label.localeCompare(b.label))\n }\n\n return filtered\n }, [options, searchValue, sortAlphabetically])\n\n const groupedOptions = useMemo(() => {\n const groups: Record<string, MultiSelectOption[]> = {}\n const ungrouped: MultiSelectOption[] = []\n\n filteredOptions.forEach((option) => {\n if (option.group) {\n if (!groups[option.group]) {\n groups[option.group] = []\n }\n groups[option.group].push(option)\n } else {\n ungrouped.push(option)\n }\n })\n\n return { groups, ungrouped, hasGroups: Object.keys(groups).length > 0 }\n }, [filteredOptions])\n\n const toggleOption = useCallback(\n (optionValue: string) => {\n const option = options.find((o) => o.value === optionValue)\n if (option?.disabled) return\n\n const newValue = value.includes(optionValue) ? value.filter((v) => v !== optionValue) : [...value, optionValue]\n\n setValue(newValue)\n\n if (closeOnSelect) {\n setIsOpen(false)\n }\n },\n [closeOnSelect, options, setValue, value],\n )\n\n const handleSelectAll = useCallback(() => {\n const allValues = options.filter((o) => !o.disabled).map((o) => o.value)\n const isAllSelected = allValues.every((v) => value.includes(v))\n\n if (isAllSelected) {\n setValue([])\n } else {\n setValue(allValues)\n }\n }, [options, setValue, value])\n\n const handleClearAll = useCallback(() => {\n setValue([])\n }, [setValue])\n\n // Check if all non-disabled options are selected\n const allSelectableValues = useMemo(() => options.filter((o) => !o.disabled).map((o) => o.value), [options])\n const isAllSelected = allSelectableValues.length > 0 && allSelectableValues.every((v) => value.includes(v))\n\n const { focusedOptionValue, getOptionFocusIndex, handleKeyDown, isSelectAllFocused, setFocusedIndex } = useKeyboardNavigation(\n filteredOptions,\n handleClearAll,\n () => setIsOpen(false),\n toggleOption,\n handleSelectAll,\n searchInputRef,\n showSearch,\n showSelectAll,\n false, // No separate clear-all button in dropdown\n )\n\n // Set initial focus index when dropdown opens/closes\n useEffect(() => {\n if (isOpen) {\n setFocusedIndex(0)\n } else {\n setFocusedIndex(-1)\n }\n }, [isOpen, setFocusedIndex])\n\n const handleSearchChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n }, [])\n\n const renderSelectedItems = () => {\n if (value.length === 0) {\n return <span className='min-h-8 flex items-center text-input-text-placeholder'>{placeholder}</span>\n }\n\n const displayedValues = value.slice(0, maxCount)\n const remainingCount = value.length - maxCount\n\n return (\n <div className='gap-1 flex flex-wrap items-center overflow-hidden'>\n {displayedValues.map((val) => {\n const option = options.find((o) => o.value === val)\n if (!option) return null\n\n return (\n <span className='gap-1 px-2 py-1 rounded-md text-xs max-w-48 inline-flex items-center bg-input-bg--selected text-input-text' key={val}>\n <span className='truncate'>{option.label}</span>\n <span\n aria-hidden='true'\n className='hover:text-danger rounded-sm cursor-pointer'\n data-testid='spectral-multiselect-remove-item-button'\n onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n toggleOption(val)\n }}\n onPointerDown={(e) => {\n e.stopPropagation()\n }}\n >\n <CloseIcon size={12} />\n </span>\n </span>\n )\n })}\n {remainingCount > 0 && <span className='text-input-text-secondary text-xs py-1 flex items-center tabular-nums'>+{remainingCount} more</span>}\n </div>\n )\n }\n\n const renderOption = (option: MultiSelectOption, index: number) => {\n const isSelected = value.includes(option.value)\n const isFocused = getOptionFocusIndex(index)\n const optionId = `${listboxId}-option-${option.value}`\n\n return (\n <button\n aria-selected={isSelected}\n className={cn(\n 'my-0.5 first:mt-0 last:mb-0 gap-3 rounded-sm px-3 py-2 text-sm flex w-full items-center text-left hover:bg-input-bg--hover focus-visible:bg-input-bg--hover focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n isFocused && 'bg-input-bg--hover',\n isSelected && 'font-medium text-input-text',\n )}\n disabled={option.disabled}\n id={optionId}\n key={option.value}\n onClick={() => toggleOption(option.value)}\n role='option'\n type='button'\n >\n <div data-testid='spectral-multiselect-selected-indicator' className={cn('w-4 h-4 rounded flex items-center justify-center border border-input-border', isSelected && 'bg-primary border-primary')}>\n {isSelected && <CheckmarkIcon size={12} />}\n </div>\n <span>{option.label}</span>\n </button>\n )\n }\n\n const getCSSCustomProperties = () => ({\n '--multiselect-border-radius': '0.5rem',\n '--multiselect-trigger-height': '3rem',\n '--multiselect-dropdown-max-height': '20rem',\n })\n\n return (\n <div className='w-full' data-testid='spectral-multiselect-root'>\n {label && (\n <Label className={cn('mb-2 block text-text-primary', isDisabled && 'text-text-secondary')} data-testid='spectral-multiselect-label' htmlFor={multiSelectId}>\n {label}\n </Label>\n )}\n <Popover.Root open={isOpen} onOpenChange={setIsOpen}>\n <div className='relative' data-testid='spectral-multiselect-wrapper' onKeyDown={isOpen ? handleKeyDown : undefined} role='none'>\n <Popover.Trigger asChild>\n <button\n aria-activedescendant={isOpen && focusedOptionValue ? `${listboxId}-option-${focusedOptionValue}` : undefined}\n aria-controls={isOpen ? listboxId : undefined}\n aria-expanded={isOpen}\n aria-label={ariaLabel ?? label}\n className={cn(getTriggerClasses(isOpen, state, className), 'max-h-22 py-2 text-sm')}\n data-state={state}\n data-testid='spectral-multiselect-trigger'\n disabled={isDisabled}\n id={multiSelectId}\n name={name}\n ref={ref}\n role='combobox'\n style={getCSSCustomProperties() as CSSProperties}\n type='button'\n {...ariaProps}\n {...props}\n >\n <div className='min-w-0 flex-1 overflow-hidden' data-testid='spectral-multiselect-selected-items'>\n {renderSelectedItems()}\n </div>\n <div className='gap-2 ml-2 flex shrink-0 items-center'>\n <ChevronDownIcon className={cn('text-input-icon transition-transform duration-200', isOpen && 'rotate-180')} size={20} />\n </div>\n </button>\n </Popover.Trigger>\n {showClearAll && value.length > 0 && (\n <button\n aria-label='Clear all selections'\n className='right-10 text-input-icon hover:text-input-icon--hover rounded-sm absolute top-1/2 z-10 -translate-y-1/2 cursor-pointer focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50'\n data-testid='spectral-multiselect-clear-all-button'\n disabled={isDisabled}\n onClick={(e) => {\n e.stopPropagation()\n handleClearAll()\n document.getElementById(multiSelectId)?.focus()\n }}\n type='button'\n >\n <CloseIcon size={12} />\n </button>\n )}\n\n <Popover.Portal>\n <Popover.Content\n align='start'\n avoidCollisions\n className={getDropdownClasses()}\n collisionPadding={10}\n data-dropdown-width-mode={dropdownWidthMode}\n data-dropdown-width-value={dropdownWidthMode === 'custom' ? dropdownWidth : undefined}\n data-testid='spectral-multiselect-dropdown'\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n if (showSearch) {\n searchInputRef.current?.focus()\n }\n }}\n side='bottom'\n sideOffset={4}\n ref={setDropdownElement}\n style={{\n width: resolvedDropdownWidth,\n ...(dropdownWidth === 'trigger' ? {} : dropdownOverflowStyle),\n ...dropdownShiftStyle,\n }}\n >\n <div className='p-1'>\n {showSearch && (\n <div className='mb-2 relative'>\n <SearchIcon className={cn(ICON_SIZE, 'left-3 text-input-icon absolute top-1/2 -translate-y-1/2')} />\n <input\n aria-label='Search options'\n className='pl-9 pr-3 py-2 text-sm rounded-md focus-visible:ring-black w-full border border-input-border bg-input-bg focus-visible:border-input-border--focus focus-visible:ring-1 focus-visible:outline-none'\n data-testid='spectral-multiselect-search-input'\n onChange={handleSearchChange}\n placeholder={searchPlaceholder}\n ref={searchInputRef}\n type='text'\n value={searchValue}\n />\n </div>\n )}\n\n <div className='max-h-64 overflow-y-auto' id={listboxId} role='listbox' aria-multiselectable='true'>\n {isLoading ? (\n <LoadingState className='text-sm' message={loadingMessage} data-testid='spectral-multiselect-loading' />\n ) : filteredOptions.length === 0 ? (\n <EmptyState className='text-sm' data-testid='spectral-multiselect-empty-message' message={emptyMessage} />\n ) : (\n <>\n {showSelectAll && (\n <div className='mb-1'>\n <button\n className={cn(\n 'my-0.5 first:mt-0 last:mb-0 gap-3 rounded-sm px-3 py-2 text-sm font-medium text-input-text-secondary flex w-full items-center hover:bg-input-bg--hover focus-visible:bg-input-bg--hover focus-visible:outline-none',\n isSelectAllFocused && 'bg-input-bg--hover',\n )}\n data-testid='spectral-multiselect-select-all-button'\n onClick={handleSelectAll}\n type='button'\n >\n {isAllSelected ? clearAllLabel : selectAllLabel}\n </button>\n <div className='mx-3 my-1 h-px bg-input-border' />\n </div>\n )}\n\n {groupedOptions.ungrouped.length > 0 && <div className='mb-1'>{groupedOptions.ungrouped.map((option, index) => renderOption(option, index))}</div>}\n\n {Object.entries(groupedOptions.groups).map(([groupName, groupOptions]) => (\n <div key={groupName} className='mb-1' data-testid='spectral-multiselect-group'>\n {(groupedOptions.ungrouped.length > 0 || Object.keys(groupedOptions.groups).indexOf(groupName) > 0) && <div className='mx-3 my-1 h-px bg-input-border' />}\n <div data-testid='spectral-multiselect-group-name' className='px-3 py-1 text-xs font-semibold text-input-text-secondary tracking-wide uppercase'>\n {groupName}\n </div>\n {groupOptions.map((option, _index) => renderOption(option, filteredOptions.indexOf(option)))}\n </div>\n ))}\n </>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </div>\n </Popover.Root>\n\n <ErrorMessage dataTestId='spectral-multiselect-error-message' id={errorMessageId} message={state === 'error' ? errorMessage : null} messageReserveLines={messageReserveLines} messageReserveSpace={messageReserveSpace} />\n <WarningMessage dataTestId='spectral-multiselect-warning-message' id={warningMessageId} message={state === 'warning' ? warningMessage : null} messageReserveLines={messageReserveLines} messageReserveSpace={messageReserveSpace} />\n </div>\n )\n}\nMultiSelectBase.displayName = 'MultiSelectBase'\n"],"mappings":";;;;;;;;;;;;;;;;AAiDA,MAAM,YAAY;AAElB,MAAM,2BAAmC;AACvC,QAAO,GACL,iCACA,2BAA2B,EAC3B,wFACA,sFACA,wFACA,sDACA,sDACA,oDACD;;AAKH,MAAM,yBACJ,SACA,YACA,SACA,UACA,aACA,gBACA,YACA,eACA,iBACG;CACH,MAAM,CAAC,cAAc,mBAAmB,SAAS,GAAG;CAGpD,MAAM,iBAAiB,cAA+B;EACpD,MAAM,QAAyB,EAAE;AAEjC,MAAI,WACF,OAAM,KAAK,EAAE,MAAM,UAAU,CAAC;AAGhC,MAAI,cACF,OAAM,KAAK,EAAE,MAAM,cAAc,CAAC;AAGpC,UAAQ,SAAS,QAAQ,UAAU;AACjC,OAAI,CAAC,OAAO,SACV,OAAM,KAAK;IAAE,MAAM;IAAU;IAAO,OAAO,OAAO;IAAO,CAAC;IAE5D;AAEF,MAAI,aACF,OAAM,KAAK,EAAE,MAAM,aAAa,CAAC;AAGnC,SAAO;IACN;EAAC;EAAS;EAAY;EAAe;EAAa,CAAC;CAGtD,MAAM,mBAAmB,aACtB,UAAkB;AACjB,MAAI,QAAQ,KAAK,SAAS,eAAe,OAAQ;AAEjD,MADa,eAAe,OACnB,SAAS,SAChB,gBAAe,SAAS,OAAO;IAGnC,CAAC,gBAAgB,eAAe,CACjC;AA4HD,QAAO;EACL;EACA;EACA,eA7HoB,aACnB,UAAyC;GACxC,MAAM,cAAc,gBAAgB,KAAK,eAAe,eAAe,SAAS,eAAe,gBAAgB;AAG/G,OAAI,MAAM,QAAQ,OAAO,aAAa,SAAS,SAC7C;AAIF,OAAI,MAAM,QAAQ,WAAW,aAAa,SAAS,SACjD;GAwEF,MAAM,UAAU;IApEd,iBAAiB;AACf,WAAM,gBAAgB;KACtB,MAAM,WAAW,KAAK,IAAI,eAAe,GAAG,eAAe,SAAS,EAAE;AACtE,qBAAgB,SAAS;AACzB,sBAAiB,SAAS;;IAE5B,eAAe;AACb,WAAM,gBAAgB;KACtB,MAAM,WAAW,KAAK,IAAI,eAAe,GAAG,EAAE;AAC9C,qBAAgB,SAAS;AACzB,sBAAiB,SAAS;;IAE5B,WAAW;AAET,SAAI,MAAM,SACR,KAAI,gBAAgB,EAElB,UAAS;UACJ;AACL,YAAM,gBAAgB;MACtB,MAAM,WAAW,eAAe;AAChC,sBAAgB,SAAS;AACzB,uBAAiB,SAAS;;cAGxB,gBAAgB,eAAe,SAAS,EAE1C,UAAS;UACJ;AACL,YAAM,gBAAgB;MACtB,MAAM,WAAW,eAAe;AAChC,sBAAgB,SAAS;AACzB,uBAAiB,SAAS;;;IAIhC,aAAa;AACX,WAAM,gBAAgB;AACtB,SAAI,gBAAgB,KAAK,eAAe,eAAe,QAAQ;MAC7D,MAAM,OAAO,eAAe;AAC5B,UAAI,KAAK,SAAS,aAChB,cAAa;eACJ,KAAK,SAAS,YACvB,aAAY;eACH,KAAK,SAAS,SACvB,UAAS,KAAK,MAAM;;;IAI1B,WAAW;AACT,WAAM,gBAAgB;AACtB,SAAI,gBAAgB,KAAK,eAAe,eAAe,QAAQ;MAC7D,MAAM,OAAO,eAAe;AAC5B,UAAI,KAAK,SAAS,aAChB,cAAa;eACJ,KAAK,SAAS,YACvB,aAAY;eACH,KAAK,SAAS,SACvB,UAAS,KAAK,MAAM;;;IAI1B,cAAc;AACZ,WAAM,gBAAgB;AACtB,cAAS;;IAIc,CAAC,MAAM;AAClC,OAAI,QACF,UAAS;KAGb;GAAC;GAAgB;GAAc;GAAU;GAAa;GAAY;GAAS;GAAiB,CAqC/E;EACb,qBAlC0B,aACzB,gBAAiC;AAChC,OAAI,eAAe,KAAK,gBAAgB,eAAe,OAAQ,QAAO;GACtE,MAAM,OAAO,eAAe;AAC5B,UAAO,KAAK,SAAS,YAAY,KAAK,UAAU;KAElD,CAAC,cAAc,eAAe,CA4BX;EACnB,iBA1BsB,cAAc;AACpC,OAAI,eAAe,KAAK,gBAAgB,eAAe,OAAQ,QAAO;AACtE,UAAO,eAAe,cAAc,SAAS;KAC5C,CAAC,cAAc,eAAe,CAuBhB;EACf,oBAtByB,cAAc;AACvC,OAAI,eAAe,KAAK,gBAAgB,eAAe,OAAQ,QAAO;AACtE,UAAO,eAAe,cAAc,SAAS;KAC5C,CAAC,cAAc,eAAe,CAmBb;EAClB,mBAlBwB,cAAc;AACtC,OAAI,eAAe,KAAK,gBAAgB,eAAe,OAAQ,QAAO;AACtE,UAAO,eAAe,cAAc,SAAS;KAC5C,CAAC,cAAc,eAAe,CAed;EACjB,oBAdyB,cAAc;AACvC,OAAI,eAAe,KAAK,gBAAgB,eAAe,OAAQ,QAAO;GACtE,MAAM,OAAO,eAAe;AAC5B,UAAO,KAAK,SAAS,WAAW,KAAK,QAAQ;KAC5C,CAAC,cAAc,eAAe,CAUb;EACnB;;AAGH,MAAa,mBAAmB,EAC9B,WACA,gBAAgB,aAChB,gBAAgB,OAChB,gBAAgB,WAChB,eAAe,oBACf,cACA,eAAe,EAAE,EACjB,UACA,IACA,OACA,iBAAiB,oBACjB,sBAAsB,GACtB,sBAAsB,MACtB,WAAW,GACX,MACA,UACA,UAAU,EAAE,EACZ,cAAc,kBACd,KACA,oBAAoB,mBACpB,iBAAiB,cACjB,eAAe,MACf,aAAa,MACb,gBAAgB,MAChB,qBAAqB,OACrB,QAAQ,WACR,OAAO,WACP,gBACA,cAAc,WACd,oBAAoB,iBACpB,GAAG,YAGC;CACJ,MAAM,cAAc,OAAO;CAE3B,MAAM,gBAAgB,eAAe,IADhB,QAAQ,eAAe,cACU;CACtD,MAAM,YAAY,GAAG,cAAc;CACnC,MAAM,iBAAiB,kBAAkB,cAAc;CACvD,MAAM,mBAAmB,GAAG,cAAc;CAC1C,MAAM,YAAY,UAAU,UAAU,iBAAiB,UAAU,aAAa,iBAAiB,mBAAmB;CAElH,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,EAAE,oBAAoB,uBAAuB,+BAA+B,OAAO;CACzF,MAAM,CAAC,aAAa,kBAAkB,SAAS,GAAG;CAClD,MAAM,CAAC,OAAO,YAAY,qBAA+B;EACvD,OAAO;EACP;EACA;EACD,CAAC;CAEF,MAAM,iBAAiB,OAAyB,KAAK;CAErD,MAAM,aAAa,QAAQ,SAAS;CACpC,MAAM,YAAY,UAAU;CAC5B,MAAM,YAAY,aAAa,OAAO,iBAAiB,MAAM,UAAU,UAAU;CACjF,MAAM,EAAE,uBAAuB,mBAAmB,0BAA0B,uBAAuB;EACjG;EACA,cAAc;EACf,CAAC;CAEF,MAAM,kBAAkB,cAAc;EACpC,IAAI,WAAW,QAAQ,QAAQ,WAAW,OAAO,MAAM,aAAa,CAAC,SAAS,YAAY,aAAa,CAAC,CAAC;AAEzG,MAAI,mBACF,YAAW,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,CAAC;AAGzE,SAAO;IACN;EAAC;EAAS;EAAa;EAAmB,CAAC;CAE9C,MAAM,iBAAiB,cAAc;EACnC,MAAM,SAA8C,EAAE;EACtD,MAAM,YAAiC,EAAE;AAEzC,kBAAgB,SAAS,WAAW;AAClC,OAAI,OAAO,OAAO;AAChB,QAAI,CAAC,OAAO,OAAO,OACjB,QAAO,OAAO,SAAS,EAAE;AAE3B,WAAO,OAAO,OAAO,KAAK,OAAO;SAEjC,WAAU,KAAK,OAAO;IAExB;AAEF,SAAO;GAAE;GAAQ;GAAW,WAAW,OAAO,KAAK,OAAO,CAAC,SAAS;GAAG;IACtE,CAAC,gBAAgB,CAAC;CAErB,MAAM,eAAe,aAClB,gBAAwB;AAEvB,MADe,QAAQ,MAAM,MAAM,EAAE,UAAU,YACrC,EAAE,SAAU;AAItB,WAFiB,MAAM,SAAS,YAAY,GAAG,MAAM,QAAQ,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,YAAY,CAE7F;AAElB,MAAI,cACF,WAAU,MAAM;IAGpB;EAAC;EAAe;EAAS;EAAU;EAAM,CAC1C;CAED,MAAM,kBAAkB,kBAAkB;EACxC,MAAM,YAAY,QAAQ,QAAQ,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,MAAM;AAGxE,MAFsB,UAAU,OAAO,MAAM,MAAM,SAAS,EAAE,CAE7C,CACf,UAAS,EAAE,CAAC;MAEZ,UAAS,UAAU;IAEpB;EAAC;EAAS;EAAU;EAAM,CAAC;CAE9B,MAAM,iBAAiB,kBAAkB;AACvC,WAAS,EAAE,CAAC;IACX,CAAC,SAAS,CAAC;CAGd,MAAM,sBAAsB,cAAc,QAAQ,QAAQ,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC;CAC5G,MAAM,gBAAgB,oBAAoB,SAAS,KAAK,oBAAoB,OAAO,MAAM,MAAM,SAAS,EAAE,CAAC;CAE3G,MAAM,EAAE,oBAAoB,qBAAqB,eAAe,oBAAoB,oBAAoB,sBACtG,iBACA,sBACM,UAAU,MAAM,EACtB,cACA,iBACA,gBACA,YACA,eACA,MACD;AAGD,iBAAgB;AACd,MAAI,OACF,iBAAgB,EAAE;MAElB,iBAAgB,GAAG;IAEpB,CAAC,QAAQ,gBAAgB,CAAC;CAE7B,MAAM,qBAAqB,aAAa,MAAqC;AAC3E,iBAAe,EAAE,OAAO,MAAM;IAC7B,EAAE,CAAC;CAEN,MAAM,4BAA4B;AAChC,MAAI,MAAM,WAAW,EACnB,QAAO,oBAAC,QAAD;GAAM,WAAU;aAAyD;GAAmB;EAGrG,MAAM,kBAAkB,MAAM,MAAM,GAAG,SAAS;EAChD,MAAM,iBAAiB,MAAM,SAAS;AAEtC,SACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,gBAAgB,KAAK,QAAQ;IAC5B,MAAM,SAAS,QAAQ,MAAM,MAAM,EAAE,UAAU,IAAI;AACnD,QAAI,CAAC,OAAQ,QAAO;AAEpB,WACE,qBAAC,QAAD;KAAM,WAAU;eAAhB,CACE,oBAAC,QAAD;MAAM,WAAU;gBAAY,OAAO;MAAa,GAChD,oBAAC,QAAD;MACE,eAAY;MACZ,WAAU;MACV,eAAY;MACZ,UAAU,MAAM;AACd,SAAE,gBAAgB;AAClB,SAAE,iBAAiB;AACnB,oBAAa,IAAI;;MAEnB,gBAAgB,MAAM;AACpB,SAAE,iBAAiB;;gBAGrB,oBAAC,WAAD,EAAW,MAAM,IAAM;MAClB,EACF;OAjB2H,IAiB3H;KAET,EACD,iBAAiB,KAAK,qBAAC,QAAD;IAAM,WAAU;cAAhB;KAAwF;KAAE;KAAe;KAAY;MACxI;;;CAIV,MAAM,gBAAgB,QAA2B,UAAkB;EACjE,MAAM,aAAa,MAAM,SAAS,OAAO,MAAM;EAC/C,MAAM,YAAY,oBAAoB,MAAM;EAC5C,MAAM,WAAW,GAAG,UAAU,UAAU,OAAO;AAE/C,SACE,qBAAC,UAAD;GACE,iBAAe;GACf,WAAW,GACT,0OACA,aAAa,sBACb,cAAc,8BACf;GACD,UAAU,OAAO;GACjB,IAAI;GAEJ,eAAe,aAAa,OAAO,MAAM;GACzC,MAAK;GACL,MAAK;aAZP,CAcE,oBAAC,OAAD;IAAK,eAAY;IAA0C,WAAW,GAAG,+EAA+E,cAAc,4BAA4B;cAC/L,cAAc,oBAAC,eAAD,EAAe,MAAM,IAAM;IACtC,GACN,oBAAC,QAAD,YAAO,OAAO,OAAa,EACpB;KATF,OAAO,MASL;;CAIb,MAAM,gCAAgC;EACpC,+BAA+B;EAC/B,gCAAgC;EAChC,qCAAqC;EACtC;AAED,QACE,qBAAC,OAAD;EAAK,WAAU;EAAS,eAAY;YAApC;GACG,SACC,oBAAC,OAAD;IAAO,WAAW,GAAG,gCAAgC,cAAc,sBAAsB;IAAE,eAAY;IAA6B,SAAS;cAC1I;IACK;GAEV,oBAAC,QAAQ,MAAT;IAAc,MAAM;IAAQ,cAAc;cACxC,qBAAC,OAAD;KAAK,WAAU;KAAW,eAAY;KAA+B,WAAW,SAAS,gBAAgB;KAAW,MAAK;eAAzH;MACE,oBAAC,QAAQ,SAAT;OAAiB;iBACf,qBAAC,UAAD;QACE,yBAAuB,UAAU,qBAAqB,GAAG,UAAU,UAAU,uBAAuB;QACpG,iBAAe,SAAS,YAAY;QACpC,iBAAe;QACf,cAAY,aAAa;QACzB,WAAW,GAAG,kBAAkB,QAAQ,OAAO,UAAU,EAAE,wBAAwB;QACnF,cAAY;QACZ,eAAY;QACZ,UAAU;QACV,IAAI;QACE;QACD;QACL,MAAK;QACL,OAAO,wBAAwB;QAC/B,MAAK;QACL,GAAI;QACJ,GAAI;kBAhBN,CAkBE,oBAAC,OAAD;SAAK,WAAU;SAAiC,eAAY;mBACzD,qBAAqB;SAClB,GACN,oBAAC,OAAD;SAAK,WAAU;mBACb,oBAAC,iBAAD;UAAiB,WAAW,GAAG,qDAAqD,UAAU,aAAa;UAAE,MAAM;UAAM;SACrH,EACC;;OACO;MACjB,gBAAgB,MAAM,SAAS,KAC9B,oBAAC,UAAD;OACE,cAAW;OACX,WAAU;OACV,eAAY;OACZ,UAAU;OACV,UAAU,MAAM;AACd,UAAE,iBAAiB;AACnB,wBAAgB;AAChB,iBAAS,eAAe,cAAc,EAAE,OAAO;;OAEjD,MAAK;iBAEL,oBAAC,WAAD,EAAW,MAAM,IAAM;OAChB;MAGX,oBAAC,QAAQ,QAAT,YACE,oBAAC,QAAQ,SAAT;OACE,OAAM;OACN;OACA,WAAW,oBAAoB;OAC/B,kBAAkB;OAClB,4BAA0B;OAC1B,6BAA2B,sBAAsB,WAAW,gBAAgB;OAC5E,eAAY;OACZ,kBAAkB,MAAM;AACtB,UAAE,gBAAgB;AAClB,YAAI,WACF,gBAAe,SAAS,OAAO;;OAGnC,MAAK;OACL,YAAY;OACZ,KAAK;OACL,OAAO;QACL,OAAO;QACP,GAAI,kBAAkB,YAAY,EAAE,GAAG;QACvC,GAAG;QACJ;iBAED,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACG,cACC,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,YAAD,EAAY,WAAW,GAAG,WAAW,2DAA2D,EAAI,GACpG,oBAAC,SAAD;UACE,cAAW;UACX,WAAU;UACV,eAAY;UACZ,UAAU;UACV,aAAa;UACb,KAAK;UACL,MAAK;UACL,OAAO;UACP,EACE;YAGR,oBAAC,OAAD;SAAK,WAAU;SAA2B,IAAI;SAAW,MAAK;SAAU,wBAAqB;mBAC1F,YACC,oBAAC,cAAD;UAAc,WAAU;UAAU,SAAS;UAAgB,eAAY;UAAiC,IACtG,gBAAgB,WAAW,IAC7B,oBAAC,YAAD;UAAY,WAAU;UAAU,eAAY;UAAqC,SAAS;UAAgB,IAE1G;UACG,iBACC,qBAAC,OAAD;WAAK,WAAU;qBAAf,CACE,oBAAC,UAAD;YACE,WAAW,GACT,sNACA,sBAAsB,qBACvB;YACD,eAAY;YACZ,SAAS;YACT,MAAK;sBAEJ,gBAAgB,gBAAgB;YAC1B,GACT,oBAAC,OAAD,EAAK,WAAU,kCAAmC,EAC9C;;UAGP,eAAe,UAAU,SAAS,KAAK,oBAAC,OAAD;WAAK,WAAU;qBAAQ,eAAe,UAAU,KAAK,QAAQ,UAAU,aAAa,QAAQ,MAAM,CAAC;WAAO;UAEjJ,OAAO,QAAQ,eAAe,OAAO,CAAC,KAAK,CAAC,WAAW,kBACtD,qBAAC,OAAD;WAAqB,WAAU;WAAO,eAAY;qBAAlD;aACI,eAAe,UAAU,SAAS,KAAK,OAAO,KAAK,eAAe,OAAO,CAAC,QAAQ,UAAU,GAAG,MAAM,oBAAC,OAAD,EAAK,WAAU,kCAAmC;YACzJ,oBAAC,OAAD;aAAK,eAAY;aAAkC,WAAU;uBAC1D;aACG;YACL,aAAa,KAAK,QAAQ,WAAW,aAAa,QAAQ,gBAAgB,QAAQ,OAAO,CAAC,CAAC;YACxF;aANI,UAMJ,CACN;UACD;SAED,EACF;;OACU,GACH;MACb;;IACO;GAEf,oBAAC,cAAD;IAAc,YAAW;IAAqC,IAAI;IAAgB,SAAS,UAAU,UAAU,eAAe;IAA2B;IAA0C;IAAuB;GAC1N,oBAAC,gBAAD;IAAgB,YAAW;IAAuC,IAAI;IAAkB,SAAS,UAAU,YAAY,iBAAiB;IAA2B;IAA0C;IAAuB;GAChO;;;AAGV,gBAAgB,cAAc"}
@@ -1,25 +1,42 @@
1
- import { Ref } from 'react';
2
- import { MultiSelectBaseProps } from './MultiSelectBase';
3
- export interface MultiSelectProps extends Omit<MultiSelectBaseProps, 'defaultValue' | 'onChange' | 'options' | 'value'> {
4
- defaultValue?: string[];
5
- emptyText?: string;
6
- loading?: boolean;
7
- onChange?: (value: string[]) => void;
8
- onSearchChange?: (search: string) => void;
9
- onValueChange?: (value: string[]) => void;
10
- options: {
11
- disabled?: boolean;
12
- group?: string;
13
- label: string;
14
- value: string;
15
- }[];
16
- sortAlphabetically?: boolean;
17
- value?: string[];
1
+ 'use client';
2
+ import { MultiSelectBaseProps } from "./MultiSelect/MultiSelectBase.js";
3
+ import { Ref } from "react";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/MultiSelect/MultiSelect.d.ts
7
+ interface MultiSelectProps extends Omit<MultiSelectBaseProps, 'defaultValue' | 'onChange' | 'options' | 'value'> {
8
+ defaultValue?: string[];
9
+ emptyText?: string;
10
+ loading?: boolean;
11
+ onChange?: (value: string[]) => void;
12
+ onSearchChange?: (search: string) => void;
13
+ onValueChange?: (value: string[]) => void;
14
+ options: {
15
+ disabled?: boolean;
16
+ group?: string;
17
+ label: string;
18
+ value: string;
19
+ }[];
20
+ sortAlphabetically?: boolean;
21
+ value?: string[];
18
22
  }
19
- export declare const MultiSelect: {
20
- ({ emptyText, loading, onChange, onValueChange, options, defaultValue, ref, state, value, ...props }: MultiSelectProps & {
21
- ref?: Ref<HTMLButtonElement>;
22
- }): import("react/jsx-runtime").JSX.Element;
23
- displayName: string;
24
- };
23
+ declare function MultiSelect({
24
+ emptyText,
25
+ loading,
26
+ onChange,
27
+ onValueChange,
28
+ options,
29
+ defaultValue,
30
+ ref,
31
+ state,
32
+ value,
33
+ ...props
34
+ }: MultiSelectProps & {
35
+ ref?: Ref<HTMLButtonElement>;
36
+ }): _$react_jsx_runtime0.JSX.Element;
37
+ declare namespace MultiSelect {
38
+ var displayName: string;
39
+ }
40
+ //#endregion
41
+ export { MultiSelect, MultiSelectProps };
25
42
  //# sourceMappingURL=MultiSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelect.d.ts","names":[],"sources":["../src/components/MultiSelect/MultiSelect.tsx"],"mappings":";;;;;;UAGiB,gBAAA,SAAyB,IAAA,CAAK,oBAAA;EAC7C,YAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA,IAAY,KAAA;EACZ,cAAA,IAAkB,MAAA;EAClB,aAAA,IAAiB,KAAA;EACjB,OAAA;IACE,QAAA;IACA,KAAA;IACA,KAAA;IACA,KAAA;EAAA;EAEF,kBAAA;EACA,KAAA;AAAA;AAAA;EAIA,SAAA;EACA,OAAA;EACA,QAAA;EACA,aAAA;EACA,OAAA;EACA,YAAA;EACA,GAAA;EACA,KAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,gBAAA;EACD,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
@@ -1,31 +1,36 @@
1
- 'use client'
2
- import './styles/main.css'
3
- import { MultiSelectBase as e } from "./MultiSelect/MultiSelectBase.js";
1
+ 'use client';
2
+ import { MultiSelectBase } from "./MultiSelect/MultiSelectBase.js";
4
3
  import "react";
5
- import { jsx as t } from "react/jsx-runtime";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
6
  //#region src/components/MultiSelect/MultiSelect.tsx
7
- var n = ({ emptyText: n = "No matches found.", loading: r = !1, onChange: i, onValueChange: a, options: o, defaultValue: s, ref: c, state: l, value: u, ...d }) => {
8
- let f = o.map((e) => ({
9
- disabled: e.disabled ?? !1,
10
- group: e.group,
11
- label: e.label,
12
- value: e.value
13
- })), p = r ? "loading" : l;
14
- return /* @__PURE__ */ t(e, {
15
- "data-disabled": d.disabled,
16
- defaultValue: s,
17
- disabled: d.disabled,
18
- emptyMessage: n,
19
- onChange: (e) => {
20
- a?.(e), i?.(e);
21
- },
22
- options: f,
23
- ref: c,
24
- state: p,
25
- value: u,
26
- ...d
7
+ const MultiSelect = ({ emptyText = "No matches found.", loading = false, onChange, onValueChange, options, defaultValue, ref, state, value, ...props }) => {
8
+ const baseOptions = options.map((option) => ({
9
+ disabled: option.disabled ?? false,
10
+ group: option.group,
11
+ label: option.label,
12
+ value: option.value
13
+ }));
14
+ const derivedState = loading ? "loading" : state;
15
+ const handleChange = (nextValue) => {
16
+ onValueChange?.(nextValue);
17
+ onChange?.(nextValue);
18
+ };
19
+ return /* @__PURE__ */ jsx(MultiSelectBase, {
20
+ "data-disabled": props.disabled,
21
+ defaultValue,
22
+ disabled: props.disabled,
23
+ emptyMessage: emptyText,
24
+ onChange: handleChange,
25
+ options: baseOptions,
26
+ ref,
27
+ state: derivedState,
28
+ value,
29
+ ...props
27
30
  });
28
31
  };
29
- n.displayName = "MultiSelect";
32
+ MultiSelect.displayName = "MultiSelect";
33
+
30
34
  //#endregion
31
- export { n as MultiSelect };
35
+ export { MultiSelect };
36
+ //# sourceMappingURL=MultiSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelect.js","names":[],"sources":["../src/components/MultiSelect/MultiSelect.tsx"],"sourcesContent":["import { type Ref } from 'react'\nimport { MultiSelectBase, type MultiSelectBaseProps, type MultiSelectOption } from './MultiSelectBase'\n\nexport interface MultiSelectProps extends Omit<MultiSelectBaseProps, 'defaultValue' | 'onChange' | 'options' | 'value'> {\n defaultValue?: string[]\n emptyText?: string\n loading?: boolean\n onChange?: (value: string[]) => void\n onSearchChange?: (search: string) => void\n onValueChange?: (value: string[]) => void\n options: {\n disabled?: boolean\n group?: string\n label: string\n value: string\n }[]\n sortAlphabetically?: boolean\n value?: string[]\n}\n\nexport const MultiSelect = ({\n emptyText = 'No matches found.',\n loading = false,\n onChange,\n onValueChange,\n options,\n defaultValue,\n ref,\n state,\n value,\n ...props\n}: MultiSelectProps & {\n ref?: Ref<HTMLButtonElement>\n}) => {\n const baseOptions: MultiSelectOption[] = options.map((option) => ({\n disabled: option.disabled ?? false,\n group: option.group,\n label: option.label,\n value: option.value,\n }))\n\n const derivedState = loading ? 'loading' : state\n\n const handleChange = (nextValue: string[]) => {\n onValueChange?.(nextValue)\n onChange?.(nextValue)\n }\n\n return <MultiSelectBase data-disabled={props.disabled} defaultValue={defaultValue} disabled={props.disabled} emptyMessage={emptyText} onChange={handleChange} options={baseOptions} ref={ref} state={derivedState} value={value} {...props} />\n}\nMultiSelect.displayName = 'MultiSelect'\n"],"mappings":";;;;;;AAoBA,MAAa,eAAe,EAC1B,YAAY,qBACZ,UAAU,OACV,UACA,eACA,SACA,cACA,KACA,OACA,OACA,GAAG,YAGC;CACJ,MAAM,cAAmC,QAAQ,KAAK,YAAY;EAChE,UAAU,OAAO,YAAY;EAC7B,OAAO,OAAO;EACd,OAAO,OAAO;EACd,OAAO,OAAO;EACf,EAAE;CAEH,MAAM,eAAe,UAAU,YAAY;CAE3C,MAAM,gBAAgB,cAAwB;AAC5C,kBAAgB,UAAU;AAC1B,aAAW,UAAU;;AAGvB,QAAO,oBAAC,iBAAD;EAAiB,iBAAe,MAAM;EAAwB;EAAc,UAAU,MAAM;EAAU,cAAc;EAAW,UAAU;EAAc,SAAS;EAAkB;EAAK,OAAO;EAAqB;EAAO,GAAI;EAAS;;AAEhP,YAAY,cAAc"}
package/dist/Popover.d.ts CHANGED
@@ -1,10 +1,30 @@
1
- import { ComponentPropsWithoutRef } from 'react';
2
- import * as PopoverPrimitive from '@radix-ui/react-popover';
3
- export type PopoverContentProps = ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {
4
- width?: number | string;
1
+ 'use client';
2
+ import { ComponentPropsWithoutRef } from "react";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
5
+
6
+ //#region src/components/Popover/Popover.d.ts
7
+ type PopoverContentProps = ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {
8
+ width?: number | string;
5
9
  };
6
- export declare const Popover: ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Root>) => import("react/jsx-runtime").JSX.Element;
7
- export declare const PopoverTrigger: ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>) => import("react/jsx-runtime").JSX.Element;
8
- export declare const PopoverContent: ({ align, className, collisionPadding, side, sideOffset, width, ...props }: PopoverContentProps) => import("react/jsx-runtime").JSX.Element;
9
- export declare const PopoverAnchor: ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor>) => import("react/jsx-runtime").JSX.Element;
10
+ declare const Popover: ({
11
+ ...props
12
+ }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Root>) => _$react_jsx_runtime0.JSX.Element;
13
+ declare const PopoverTrigger: ({
14
+ ...props
15
+ }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>) => _$react_jsx_runtime0.JSX.Element;
16
+ declare const PopoverContent: ({
17
+ align,
18
+ className,
19
+ collisionPadding,
20
+ side,
21
+ sideOffset,
22
+ width,
23
+ ...props
24
+ }: PopoverContentProps) => _$react_jsx_runtime0.JSX.Element;
25
+ declare const PopoverAnchor: ({
26
+ ...props
27
+ }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor>) => _$react_jsx_runtime0.JSX.Element;
28
+ //#endregion
29
+ export { Popover, PopoverAnchor, PopoverContent, PopoverContentProps, PopoverTrigger };
10
30
  //# sourceMappingURL=Popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.d.ts","names":[],"sources":["../src/components/Popover/Popover.tsx"],"mappings":";;;;;;KAIY,mBAAA,GAAsB,wBAAA,QAAgC,gBAAA,CAAiB,OAAA;EACjF,KAAA;AAAA;AAAA,cAGW,OAAA;EAAA,GAAO;AAAA,GAAkB,wBAAA,QAAgC,gBAAA,CAAiB,IAAA,MAAK,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAI/E,cAAA;EAAA,GAAc;AAAA,GAAkB,wBAAA,QAAgC,gBAAA,CAAiB,OAAA,MAAQ,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAIzF,cAAA;EAAc,KAAA;EAAA,SAAA;EAAA,gBAAA;EAAA,IAAA;EAAA,UAAA;EAAA,KAAA;EAAA,GAAA;AAAA,GAAuH,mBAAA,KAAmB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cA6BxJ,aAAA;EAAA,GAAa;AAAA,GAAkB,wBAAA,QAAgC,gBAAA,CAAiB,MAAA,MAAO,oBAAA,CAAA,GAAA,CAAA,OAAA"}
package/dist/Popover.js CHANGED
@@ -1,31 +1,44 @@
1
- 'use client'
2
- import './styles/main.css'
3
- import { t as e } from "./twUtils-BpqlKSeB.js";
4
- import { a as t, i as n, n as r, r as i, t as a } from "./dist-B9w6c9RC.js";
1
+ 'use client';
2
+ import { cn } from "./utils/twUtils.js";
5
3
  import "react";
6
- import { jsx as o } from "react/jsx-runtime";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
6
+
7
7
  //#region src/components/Popover/Popover.tsx
8
- var s = ({ ...e }) => /* @__PURE__ */ o(n, {
9
- "data-slot": "popover",
10
- "data-testid": "spectral-popover",
11
- ...e
12
- }), c = ({ ...e }) => /* @__PURE__ */ o(t, {
13
- "data-slot": "popover-trigger",
14
- "data-testid": "spectral-popover-trigger",
15
- ...e
16
- }), l = ({ align: t = "center", className: n, collisionPadding: a = 8, side: s = "bottom", sideOffset: c = 4, width: l = "w-fit", ...u }) => /* @__PURE__ */ o(i, { children: /* @__PURE__ */ o(r, {
17
- align: t,
18
- collisionPadding: a,
19
- "data-slot": "popover-content",
20
- "data-testid": "spectral-popover-content",
21
- side: s,
22
- sideOffset: c,
23
- className: e("bg-popover-bg text-popover-text motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:animate-in", "motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95", "z-50 h-fit motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2", "rounded-lg p-4 max-h-(--radix-popover-content-available-height) origin-[--radix-popover-content-transform-origin] border-none", "shadow-md w-(--popover-width) overflow-x-hidden overflow-y-auto outline-none", n),
24
- style: { "--popover-width": typeof l == "number" ? `${l}px` : l === "w-fit" ? "320px" : l },
25
- ...u
26
- }) }), u = ({ ...e }) => /* @__PURE__ */ o(a, {
27
- "data-slot": "popover-anchor",
28
- ...e
29
- });
8
+ const Popover = ({ ...props }) => {
9
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
10
+ "data-slot": "popover",
11
+ "data-testid": "spectral-popover",
12
+ ...props
13
+ });
14
+ };
15
+ const PopoverTrigger = ({ ...props }) => {
16
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
17
+ "data-slot": "popover-trigger",
18
+ "data-testid": "spectral-popover-trigger",
19
+ ...props
20
+ });
21
+ };
22
+ const PopoverContent = ({ align = "center", className, collisionPadding = 8, side = "bottom", sideOffset = 4, width = "w-fit", ...props }) => {
23
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
24
+ align,
25
+ collisionPadding,
26
+ "data-slot": "popover-content",
27
+ "data-testid": "spectral-popover-content",
28
+ side,
29
+ sideOffset,
30
+ className: cn("bg-popover-bg text-popover-text motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:animate-in", "motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95", "z-50 h-fit motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2", "rounded-lg p-4 max-h-(--radix-popover-content-available-height) origin-[--radix-popover-content-transform-origin] border-none", "shadow-md w-(--popover-width) overflow-x-hidden overflow-y-auto outline-none", className),
31
+ style: { "--popover-width": typeof width === "number" ? `${width}px` : width === "w-fit" ? "320px" : width },
32
+ ...props
33
+ }) });
34
+ };
35
+ const PopoverAnchor = ({ ...props }) => {
36
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, {
37
+ "data-slot": "popover-anchor",
38
+ ...props
39
+ });
40
+ };
41
+
30
42
  //#endregion
31
- export { s as Popover, u as PopoverAnchor, l as PopoverContent, c as PopoverTrigger };
43
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
44
+ //# sourceMappingURL=Popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.js","names":[],"sources":["../src/components/Popover/Popover.tsx"],"sourcesContent":["import * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cn } from '@utils/twUtils'\nimport { type ComponentPropsWithoutRef, type CSSProperties } from 'react'\n\nexport type PopoverContentProps = ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n width?: number | string\n}\n\nexport const Popover = ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Root>) => {\n return <PopoverPrimitive.Root data-slot='popover' data-testid='spectral-popover' {...props} />\n}\n\nexport const PopoverTrigger = ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>) => {\n return <PopoverPrimitive.Trigger data-slot='popover-trigger' data-testid='spectral-popover-trigger' {...props} />\n}\n\nexport const PopoverContent = ({ align = 'center', className, collisionPadding = 8, side = 'bottom', sideOffset = 4, width = 'w-fit', ...props }: PopoverContentProps) => {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align={align}\n collisionPadding={collisionPadding}\n data-slot='popover-content'\n data-testid='spectral-popover-content'\n side={side}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover-bg text-popover-text motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:animate-in',\n 'motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95',\n 'z-50 h-fit motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2',\n 'rounded-lg p-4 max-h-(--radix-popover-content-available-height) origin-[--radix-popover-content-transform-origin] border-none',\n 'shadow-md w-(--popover-width) overflow-x-hidden overflow-y-auto outline-none',\n className,\n )}\n style={\n {\n '--popover-width': typeof width === 'number' ? `${width}px` : width === 'w-fit' ? '320px' : width,\n } as CSSProperties\n }\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport const PopoverAnchor = ({ ...props }: ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor>) => {\n return <PopoverPrimitive.Anchor data-slot='popover-anchor' {...props} />\n}\n"],"mappings":";;;;;;;AAQA,MAAa,WAAW,EAAE,GAAG,YAAoE;AAC/F,QAAO,oBAAC,iBAAiB,MAAlB;EAAuB,aAAU;EAAU,eAAY;EAAmB,GAAI;EAAS;;AAGhG,MAAa,kBAAkB,EAAE,GAAG,YAAuE;AACzG,QAAO,oBAAC,iBAAiB,SAAlB;EAA0B,aAAU;EAAkB,eAAY;EAA2B,GAAI;EAAS;;AAGnH,MAAa,kBAAkB,EAAE,QAAQ,UAAU,WAAW,mBAAmB,GAAG,OAAO,UAAU,aAAa,GAAG,QAAQ,SAAS,GAAG,YAAiC;AACxK,QACE,oBAAC,iBAAiB,QAAlB,YACE,oBAAC,iBAAiB,SAAlB;EACS;EACW;EAClB,aAAU;EACV,eAAY;EACN;EACM;EACZ,WAAW,GACT,mKACA,mLACA,uKACA,iIACA,gFACA,UACD;EACD,OACE,EACE,mBAAmB,OAAO,UAAU,WAAW,GAAG,MAAM,MAAM,UAAU,UAAU,UAAU,OAC7F;EAEH,GAAI;EACJ,GACsB;;AAI9B,MAAa,iBAAiB,EAAE,GAAG,YAAsE;AACvG,QAAO,oBAAC,iBAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;EAAS"}
@@ -1,17 +1,38 @@
1
- import { AsChildProp } from './primitives/slot';
2
- import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
- export interface RadioButtonProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onSelect' | 'type'> {
4
- checked?: boolean;
5
- children: ReactNode;
6
- expanded?: boolean;
7
- isKeptActive?: boolean;
8
- onCheckedChange?: (checked: boolean) => void;
9
- onSelect?: (checked: boolean) => void;
1
+ 'use client';
2
+ import { AsChildProp } from "./primitives/slot.js";
3
+ import { ButtonHTMLAttributes, ReactNode, Ref } from "react";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/RadioButton/RadioButton.d.ts
7
+ interface RadioButtonProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onSelect' | 'type'> {
8
+ checked?: boolean;
9
+ children: ReactNode;
10
+ expanded?: boolean;
11
+ isKeptActive?: boolean;
12
+ onCheckedChange?: (checked: boolean) => void;
13
+ onSelect?: (checked: boolean) => void;
14
+ variant?: 'default' | 'outline';
10
15
  }
11
- export declare const RadioButton: {
12
- ({ asChild, checked, children, className, disabled, expanded, isKeptActive, onCheckedChange, onClick, onSelect, ref, ...rest }: RadioButtonProps & {
13
- ref?: Ref<HTMLButtonElement>;
14
- }): import("react/jsx-runtime").JSX.Element;
15
- displayName: string;
16
- };
16
+ declare function RadioButton({
17
+ asChild,
18
+ checked,
19
+ children,
20
+ className,
21
+ disabled,
22
+ expanded,
23
+ isKeptActive,
24
+ onCheckedChange,
25
+ onClick,
26
+ onSelect,
27
+ ref,
28
+ variant,
29
+ ...rest
30
+ }: RadioButtonProps & {
31
+ ref?: Ref<HTMLButtonElement>;
32
+ }): _$react_jsx_runtime0.JSX.Element;
33
+ declare namespace RadioButton {
34
+ var displayName: string;
35
+ }
36
+ //#endregion
37
+ export { RadioButton, RadioButtonProps };
17
38
  //# sourceMappingURL=RadioButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.d.ts","names":[],"sources":["../src/components/RadioButton/RadioButton.tsx"],"mappings":";;;;;;UAIiB,gBAAA,SAAyB,WAAA,EAAa,IAAA,CAAK,oBAAA,CAAqB,iBAAA;EAC/E,OAAA;EACA,QAAA,EAAU,SAAA;EACV,QAAA;EACA,YAAA;EACA,eAAA,IAAmB,OAAA;EACnB,QAAA,IAAY,OAAA;EACZ,OAAA;AAAA;AAAA;EAIA,OAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA;EACA,QAAA;EACA,YAAA;EACA,eAAA;EACA,OAAA;EACA,QAAA;EACA,GAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,gBAAA;EACD,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
@@ -1,34 +1,42 @@
1
- 'use client'
2
- import './styles/main.css'
3
- import { t as e } from "./twUtils-BpqlKSeB.js";
4
- import { Slot as t } from "./primitives/slot.js";
1
+ 'use client';
2
+ import { cn } from "./utils/twUtils.js";
3
+ import { Slot } from "./primitives/slot.js";
5
4
  import "react";
6
- import { jsx as n } from "react/jsx-runtime";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
7
  //#region src/components/RadioButton/RadioButton.tsx
8
- var r = ({ asChild: r = !1, checked: i = !1, children: a, className: o, disabled: s = !1, expanded: c = !1, isKeptActive: l = !1, onCheckedChange: u, onClick: d, onSelect: f, ref: p, ...m }) => {
9
- let h = (e) => {
10
- d?.(e), !(e.defaultPrevented || s) && (u?.(!0), f?.(!0));
11
- }, g = {
12
- ...m,
13
- className: e("gap-2 rounded-md text-sm font-medium focus-visible:border-ring focus-visible:ring-ring/50 h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4 inline-flex items-center justify-center border border-toggle-border bg-toggle-bg text-toggle-text shadow-none transition-colors outline-none hover:cursor-pointer hover:border-toggle-border--hover hover:bg-toggle-bg--hover hover:text-toggle-text--hover focus:z-10 focus:outline-none focus-visible:z-10 focus-visible:ring-[3px] active:border-toggle-border--active active:bg-toggle-bg--active active:text-toggle-text--active disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", c && "w-full", l && "data-[state=on]:border-toggle-border--active data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active", o),
14
- disabled: s,
15
- onClick: h,
8
+ const RadioButton = ({ asChild = false, checked = false, children, className, disabled = false, expanded = false, isKeptActive = false, onCheckedChange, onClick, onSelect, ref, variant = "default", ...rest }) => {
9
+ const handleClick = (event) => {
10
+ onClick?.(event);
11
+ if (event.defaultPrevented || disabled) return;
12
+ onCheckedChange?.(true);
13
+ onSelect?.(true);
14
+ };
15
+ const baseProps = {
16
+ ...rest,
17
+ className: cn(`gap-2 rounded-md text-sm font-medium focus-visible:border-ring focus-visible:ring-ring/50 h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4 inline-flex items-center justify-center border border-toggle-border bg-toggle-bg text-toggle-text shadow-none transition-colors outline-none hover:cursor-pointer hover:border-toggle-border--hover hover:bg-toggle-bg--hover hover:text-toggle-text--hover focus:z-10 focus:outline-none focus-visible:z-10 focus-visible:ring-[3px] active:border-toggle-border--active active:bg-toggle-bg--active active:text-toggle-text--active disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`, "data-[variant=outline]:[--color-toggle-border:var(--color-toggle-outline-border)]", expanded && "w-full", isKeptActive && "data-[state=on]:border-toggle-border--active data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active", className),
18
+ disabled,
19
+ onClick: handleClick,
16
20
  role: "radio",
17
- "aria-checked": i,
18
- "data-state": i ? "on" : "off",
19
- "data-testid": "spectral-radio-button"
21
+ "aria-checked": checked,
22
+ "data-state": checked ? "on" : "off",
23
+ "data-testid": "spectral-radio-button",
24
+ "data-variant": variant
20
25
  };
21
- return r ? /* @__PURE__ */ n(t, {
22
- ref: p,
23
- ...g,
24
- children: a
25
- }) : /* @__PURE__ */ n("button", {
26
- ref: p,
27
- ...g,
26
+ if (asChild) return /* @__PURE__ */ jsx(Slot, {
27
+ ref,
28
+ ...baseProps,
29
+ children
30
+ });
31
+ return /* @__PURE__ */ jsx("button", {
32
+ ref,
33
+ ...baseProps,
28
34
  type: "button",
29
- children: a
35
+ children
30
36
  });
31
37
  };
32
- r.displayName = "RadioButton";
38
+ RadioButton.displayName = "RadioButton";
39
+
33
40
  //#endregion
34
- export { r as RadioButton };
41
+ export { RadioButton };
42
+ //# sourceMappingURL=RadioButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.js","names":[],"sources":["../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["import { Slot, type AsChildProp } from '@primitives/slot'\nimport { cn } from '@utils/twUtils'\nimport { type ButtonHTMLAttributes, type MouseEvent, type ReactNode, type Ref } from 'react'\n\nexport interface RadioButtonProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onSelect' | 'type'> {\n checked?: boolean\n children: ReactNode\n expanded?: boolean\n isKeptActive?: boolean\n onCheckedChange?: (checked: boolean) => void\n onSelect?: (checked: boolean) => void\n variant?: 'default' | 'outline'\n}\n\nexport const RadioButton = ({\n asChild = false,\n checked = false,\n children,\n className,\n disabled = false,\n expanded = false,\n isKeptActive = false,\n onCheckedChange,\n onClick,\n onSelect,\n ref,\n variant = 'default',\n ...rest\n}: RadioButtonProps & {\n ref?: Ref<HTMLButtonElement>\n}) => {\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n if (event.defaultPrevented || disabled) return\n\n onCheckedChange?.(true)\n onSelect?.(true)\n }\n\n const baseProps = {\n ...rest,\n className: cn(\n `gap-2 rounded-md text-sm font-medium focus-visible:border-ring focus-visible:ring-ring/50 h-9 px-3 min-w-9 [&_svg:not([class*='size-']):not([width]):not([height])]:size-4 inline-flex items-center justify-center border border-toggle-border bg-toggle-bg text-toggle-text shadow-none transition-colors outline-none hover:cursor-pointer hover:border-toggle-border--hover hover:bg-toggle-bg--hover hover:text-toggle-text--hover focus:z-10 focus:outline-none focus-visible:z-10 focus-visible:ring-[3px] active:border-toggle-border--active active:bg-toggle-bg--active active:text-toggle-text--active disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`,\n 'data-[variant=outline]:[--color-toggle-border:var(--color-toggle-outline-border)]',\n expanded && 'w-full',\n isKeptActive && 'data-[state=on]:border-toggle-border--active data-[state=on]:bg-toggle-bg--active data-[state=on]:text-toggle-text--active',\n className,\n ),\n disabled,\n onClick: handleClick,\n role: 'radio',\n 'aria-checked': checked,\n 'data-state': checked ? 'on' : 'off',\n 'data-testid': 'spectral-radio-button',\n 'data-variant': variant,\n }\n\n if (asChild) {\n return (\n <Slot ref={ref as Ref<HTMLElement>} {...baseProps}>\n {children}\n </Slot>\n )\n }\n\n return (\n <button ref={ref} {...baseProps} type='button'>\n {children}\n </button>\n )\n}\nRadioButton.displayName = 'RadioButton'\n"],"mappings":";;;;;;;AAcA,MAAa,eAAe,EAC1B,UAAU,OACV,UAAU,OACV,UACA,WACA,WAAW,OACX,WAAW,OACX,eAAe,OACf,iBACA,SACA,UACA,KACA,UAAU,WACV,GAAG,WAGC;CACJ,MAAM,eAAe,UAAyC;AAC5D,YAAU,MAAM;AAChB,MAAI,MAAM,oBAAoB,SAAU;AAExC,oBAAkB,KAAK;AACvB,aAAW,KAAK;;CAGlB,MAAM,YAAY;EAChB,GAAG;EACH,WAAW,GACT,8sBACA,qFACA,YAAY,UACZ,gBAAgB,8HAChB,UACD;EACD;EACA,SAAS;EACT,MAAM;EACN,gBAAgB;EAChB,cAAc,UAAU,OAAO;EAC/B,eAAe;EACf,gBAAgB;EACjB;AAED,KAAI,QACF,QACE,oBAAC,MAAD;EAAW;EAAyB,GAAI;EACrC;EACI;AAIX,QACE,oBAAC,UAAD;EAAa;EAAK,GAAI;EAAW,MAAK;EACnC;EACM;;AAGb,YAAY,cAAc"}
@@ -1,26 +1,53 @@
1
- import { AsChildProp } from '../primitives/slot';
2
- import { ButtonHTMLAttributes, ReactNode, Ref } from 'react';
3
- export interface RadioButtonGroupProps {
4
- asChild?: boolean;
5
- children: ReactNode;
6
- className?: string;
7
- expanded?: boolean;
8
- isKeptActive?: boolean;
9
- onValueChange?: (value: string) => void;
10
- value?: string;
11
- 'aria-label'?: string;
12
- 'aria-labelledby'?: string;
1
+ 'use client';
2
+ import { AsChildProp } from "../primitives/slot.js";
3
+ import { ButtonHTMLAttributes, ReactNode, Ref } from "react";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/RadioButtonGroup/RadioButtonGroupBase.d.ts
7
+ interface RadioButtonGroupProps {
8
+ asChild?: boolean;
9
+ children: ReactNode;
10
+ className?: string;
11
+ expanded?: boolean;
12
+ isKeptActive?: boolean;
13
+ onValueChange?: (value: string) => void;
14
+ value?: string;
15
+ variant?: 'default' | 'outline';
16
+ 'aria-label'?: string;
17
+ 'aria-labelledby'?: string;
13
18
  }
14
- export interface RadioButtonGroupItemProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onSelect' | 'type'> {
15
- children: ReactNode;
16
- onSelect?: (value: string) => void;
17
- value: string;
19
+ interface RadioButtonGroupItemProps extends AsChildProp, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value' | 'onSelect' | 'type'> {
20
+ children: ReactNode;
21
+ onSelect?: (value: string) => void;
22
+ value: string;
18
23
  }
19
- export declare const RadioButtonGroupBase: ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, children, className, expanded, isKeptActive, onValueChange, value }: RadioButtonGroupProps) => import("react/jsx-runtime").JSX.Element;
20
- export declare const RadioButtonGroupItem: {
21
- ({ asChild, children, className, disabled, onClick, onSelect, ref, value, ...rest }: RadioButtonGroupItemProps & {
22
- ref?: Ref<HTMLButtonElement>;
23
- }): import("react/jsx-runtime").JSX.Element;
24
- displayName: string;
25
- };
24
+ declare const RadioButtonGroupBase: ({
25
+ 'aria-label': ariaLabel,
26
+ 'aria-labelledby': ariaLabelledby,
27
+ children,
28
+ className,
29
+ expanded,
30
+ isKeptActive,
31
+ onValueChange,
32
+ value,
33
+ variant
34
+ }: RadioButtonGroupProps) => _$react_jsx_runtime0.JSX.Element;
35
+ declare function RadioButtonGroupItem({
36
+ asChild,
37
+ children,
38
+ className,
39
+ disabled,
40
+ onClick,
41
+ onSelect,
42
+ ref,
43
+ value,
44
+ ...rest
45
+ }: RadioButtonGroupItemProps & {
46
+ ref?: Ref<HTMLButtonElement>;
47
+ }): _$react_jsx_runtime0.JSX.Element;
48
+ declare namespace RadioButtonGroupItem {
49
+ var displayName: string;
50
+ }
51
+ //#endregion
52
+ export { RadioButtonGroupBase, RadioButtonGroupItem, RadioButtonGroupItemProps, RadioButtonGroupProps };
26
53
  //# sourceMappingURL=RadioButtonGroupBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButtonGroupBase.d.ts","names":[],"sources":["../../src/components/RadioButtonGroup/RadioButtonGroupBase.tsx"],"mappings":";;;;;;UAciB,qBAAA;EACf,OAAA;EACA,QAAA,EAAU,SAAA;EACV,SAAA;EACA,QAAA;EACA,YAAA;EACA,aAAA,IAAiB,KAAA;EACjB,KAAA;EACA,OAAA;EACA,YAAA;EACA,iBAAA;AAAA;AAAA,UAGe,yBAAA,SAAkC,WAAA,EAAa,IAAA,CAAK,oBAAA,CAAqB,iBAAA;EACxF,QAAA,EAAU,SAAA;EACV,QAAA,IAAY,KAAA;EACZ,KAAA;AAAA;AAAA,cAGW,oBAAA;EAAA,cAAoB,SAAA;EAAA,mBAAA,cAAA;EAAA,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,YAAA;EAAA,aAAA;EAAA,KAAA;EAAA;AAAA,GAA4K,qBAAA,KAAqB,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;EAwBhO,OAAA;EACA,QAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA,GAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,yBAAA;EACD,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}