@arolariu/components 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/EXAMPLES.md +2510 -0
  3. package/dist/components/ui/accordion.js +3 -3
  4. package/dist/components/ui/accordion.js.map +1 -1
  5. package/dist/components/ui/accordion_module.css.map +1 -1
  6. package/dist/components/ui/alert-dialog.d.ts +4 -16
  7. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  8. package/dist/components/ui/alert-dialog.js +21 -17
  9. package/dist/components/ui/alert-dialog.js.map +1 -1
  10. package/dist/components/ui/alert-dialog_module.css +1 -1
  11. package/dist/components/ui/alert-dialog_module.css.map +1 -1
  12. package/dist/components/ui/alert.js +4 -4
  13. package/dist/components/ui/alert.js.map +1 -1
  14. package/dist/components/ui/alert_module.css.map +1 -1
  15. package/dist/components/ui/aspect-ratio.js +2 -2
  16. package/dist/components/ui/aspect-ratio.js.map +1 -1
  17. package/dist/components/ui/aspect-ratio_module.css.map +1 -1
  18. package/dist/components/ui/async-boundary.js +2 -2
  19. package/dist/components/ui/async-boundary.js.map +1 -1
  20. package/dist/components/ui/avatar.d.ts +3 -12
  21. package/dist/components/ui/avatar.d.ts.map +1 -1
  22. package/dist/components/ui/avatar.js +18 -15
  23. package/dist/components/ui/avatar.js.map +1 -1
  24. package/dist/components/ui/avatar_module.css.map +1 -1
  25. package/dist/components/ui/background-beams.js +3 -3
  26. package/dist/components/ui/background-beams.js.map +1 -1
  27. package/dist/components/ui/background-beams_module.css.map +1 -1
  28. package/dist/components/ui/badge.js +2 -2
  29. package/dist/components/ui/badge.js.map +1 -1
  30. package/dist/components/ui/badge_module.css.map +1 -1
  31. package/dist/components/ui/breadcrumb.js +10 -10
  32. package/dist/components/ui/breadcrumb.js.map +1 -1
  33. package/dist/components/ui/breadcrumb_module.css.map +1 -1
  34. package/dist/components/ui/bubble-background.js +5 -5
  35. package/dist/components/ui/bubble-background.js.map +1 -1
  36. package/dist/components/ui/bubble-background_module.css.map +1 -1
  37. package/dist/components/ui/button-group.d.ts +1 -1
  38. package/dist/components/ui/button-group.d.ts.map +1 -1
  39. package/dist/components/ui/button-group.js +6 -6
  40. package/dist/components/ui/button-group.js.map +1 -1
  41. package/dist/components/ui/button-group_module.css.map +1 -1
  42. package/dist/components/ui/button.js +4 -4
  43. package/dist/components/ui/button.js.map +1 -1
  44. package/dist/components/ui/button_module.css.map +1 -1
  45. package/dist/components/ui/calendar.d.ts +3 -5
  46. package/dist/components/ui/calendar.d.ts.map +1 -1
  47. package/dist/components/ui/calendar.js +9 -9
  48. package/dist/components/ui/calendar.js.map +1 -1
  49. package/dist/components/ui/calendar_module.css.map +1 -1
  50. package/dist/components/ui/card-skeleton.js +2 -2
  51. package/dist/components/ui/card-skeleton.js.map +1 -1
  52. package/dist/components/ui/card-skeleton_module.css.map +1 -1
  53. package/dist/components/ui/card.js +8 -8
  54. package/dist/components/ui/card.js.map +1 -1
  55. package/dist/components/ui/card_module.css.map +1 -1
  56. package/dist/components/ui/carousel.d.ts.map +1 -1
  57. package/dist/components/ui/carousel.js +16 -16
  58. package/dist/components/ui/carousel.js.map +1 -1
  59. package/dist/components/ui/carousel_module.css +1 -1
  60. package/dist/components/ui/carousel_module.css.map +1 -1
  61. package/dist/components/ui/chart.d.ts +6 -3
  62. package/dist/components/ui/chart.d.ts.map +1 -1
  63. package/dist/components/ui/chart.js +70 -70
  64. package/dist/components/ui/chart.js.map +1 -1
  65. package/dist/components/ui/chart_module.css.map +1 -1
  66. package/dist/components/ui/checkbox-group.d.ts +2 -6
  67. package/dist/components/ui/checkbox-group.d.ts.map +1 -1
  68. package/dist/components/ui/checkbox-group.js +8 -7
  69. package/dist/components/ui/checkbox-group.js.map +1 -1
  70. package/dist/components/ui/checkbox-group_module.css.map +1 -1
  71. package/dist/components/ui/checkbox.d.ts +3 -1
  72. package/dist/components/ui/checkbox.d.ts.map +1 -1
  73. package/dist/components/ui/checkbox.js +6 -3
  74. package/dist/components/ui/checkbox.js.map +1 -1
  75. package/dist/components/ui/checkbox_module.css.map +1 -1
  76. package/dist/components/ui/collapsible.d.ts.map +1 -1
  77. package/dist/components/ui/collapsible.js +4 -4
  78. package/dist/components/ui/collapsible.js.map +1 -1
  79. package/dist/components/ui/collapsible_module.css.map +1 -1
  80. package/dist/components/ui/combobox.d.ts +335 -0
  81. package/dist/components/ui/combobox.d.ts.map +1 -0
  82. package/dist/components/ui/combobox.js +206 -0
  83. package/dist/components/ui/combobox.js.map +1 -0
  84. package/dist/components/ui/combobox.module.js +23 -0
  85. package/dist/components/ui/combobox.module.js.map +1 -0
  86. package/dist/components/ui/combobox_module.css +142 -0
  87. package/dist/components/ui/combobox_module.css.map +1 -0
  88. package/dist/components/ui/command.d.ts.map +1 -1
  89. package/dist/components/ui/command.js +62 -53
  90. package/dist/components/ui/command.js.map +1 -1
  91. package/dist/components/ui/command_module.css +1 -1
  92. package/dist/components/ui/command_module.css.map +1 -1
  93. package/dist/components/ui/context-menu.d.ts.map +1 -1
  94. package/dist/components/ui/context-menu.js +6 -6
  95. package/dist/components/ui/context-menu.js.map +1 -1
  96. package/dist/components/ui/context-menu_module.css.map +1 -1
  97. package/dist/components/ui/copy-button.js +6 -6
  98. package/dist/components/ui/copy-button.js.map +1 -1
  99. package/dist/components/ui/copy-button_module.css.map +1 -1
  100. package/dist/components/ui/counting-number.js +6 -6
  101. package/dist/components/ui/counting-number.js.map +1 -1
  102. package/dist/components/ui/counting-number_module.css.map +1 -1
  103. package/dist/components/ui/dialog.js +6 -6
  104. package/dist/components/ui/dialog.js.map +1 -1
  105. package/dist/components/ui/dialog_module.css +1 -1
  106. package/dist/components/ui/dialog_module.css.map +1 -1
  107. package/dist/components/ui/dot-background_module.css.map +1 -1
  108. package/dist/components/ui/drawer.d.ts.map +1 -1
  109. package/dist/components/ui/drawer.js +5 -5
  110. package/dist/components/ui/drawer.js.map +1 -1
  111. package/dist/components/ui/drawer_module.css.map +1 -1
  112. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  113. package/dist/components/ui/dropdown-menu.js +6 -6
  114. package/dist/components/ui/dropdown-menu.js.map +1 -1
  115. package/dist/components/ui/dropdown-menu_module.css.map +1 -1
  116. package/dist/components/ui/dropdrawer.d.ts +10 -16
  117. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  118. package/dist/components/ui/dropdrawer.js +73 -65
  119. package/dist/components/ui/dropdrawer.js.map +1 -1
  120. package/dist/components/ui/dropdrawer_module.css.map +1 -1
  121. package/dist/components/ui/empty.js +7 -7
  122. package/dist/components/ui/empty.js.map +1 -1
  123. package/dist/components/ui/empty_module.css.map +1 -1
  124. package/dist/components/ui/error-boundary.js +2 -2
  125. package/dist/components/ui/error-boundary.js.map +1 -1
  126. package/dist/components/ui/error-boundary_module.css.map +1 -1
  127. package/dist/components/ui/field.js +12 -12
  128. package/dist/components/ui/field.js.map +1 -1
  129. package/dist/components/ui/field_module.css.map +1 -1
  130. package/dist/components/ui/fireworks-background.js +6 -6
  131. package/dist/components/ui/fireworks-background.js.map +1 -1
  132. package/dist/components/ui/fireworks-background_module.css.map +1 -1
  133. package/dist/components/ui/flip-button.js +5 -5
  134. package/dist/components/ui/flip-button.js.map +1 -1
  135. package/dist/components/ui/flip-button_module.css.map +1 -1
  136. package/dist/components/ui/focus-scope.js +6 -6
  137. package/dist/components/ui/focus-scope.js.map +1 -1
  138. package/dist/components/ui/focus-scope_module.css.map +1 -1
  139. package/dist/components/ui/form-skeleton.js +2 -2
  140. package/dist/components/ui/form-skeleton.js.map +1 -1
  141. package/dist/components/ui/form-skeleton_module.css.map +1 -1
  142. package/dist/components/ui/form.d.ts +3 -3
  143. package/dist/components/ui/form.d.ts.map +1 -1
  144. package/dist/components/ui/form.js +13 -13
  145. package/dist/components/ui/form.js.map +1 -1
  146. package/dist/components/ui/form_module.css.map +1 -1
  147. package/dist/components/ui/gradient-background.js +2 -2
  148. package/dist/components/ui/gradient-background.js.map +1 -1
  149. package/dist/components/ui/gradient-background_module.css.map +1 -1
  150. package/dist/components/ui/gradient-text.js +2 -2
  151. package/dist/components/ui/gradient-text.js.map +1 -1
  152. package/dist/components/ui/gradient-text_module.css.map +1 -1
  153. package/dist/components/ui/highlight-text.js +4 -4
  154. package/dist/components/ui/highlight-text.js.map +1 -1
  155. package/dist/components/ui/highlight-text_module.css.map +1 -1
  156. package/dist/components/ui/hole-background.js +21 -21
  157. package/dist/components/ui/hole-background.js.map +1 -1
  158. package/dist/components/ui/hole-background_module.css.map +1 -1
  159. package/dist/components/ui/hover-card.js +3 -3
  160. package/dist/components/ui/hover-card.js.map +1 -1
  161. package/dist/components/ui/hover-card_module.css.map +1 -1
  162. package/dist/components/ui/input-group.js +7 -7
  163. package/dist/components/ui/input-group.js.map +1 -1
  164. package/dist/components/ui/input-group_module.css.map +1 -1
  165. package/dist/components/ui/input-otp.d.ts +3 -3
  166. package/dist/components/ui/input-otp.d.ts.map +1 -1
  167. package/dist/components/ui/input-otp.js +6 -6
  168. package/dist/components/ui/input-otp.js.map +1 -1
  169. package/dist/components/ui/input-otp_module.css.map +1 -1
  170. package/dist/components/ui/input.js +2 -2
  171. package/dist/components/ui/input.js.map +1 -1
  172. package/dist/components/ui/input_module.css.map +1 -1
  173. package/dist/components/ui/item.d.ts +1 -1
  174. package/dist/components/ui/item.d.ts.map +1 -1
  175. package/dist/components/ui/item.js +13 -13
  176. package/dist/components/ui/item.js.map +1 -1
  177. package/dist/components/ui/item_module.css.map +1 -1
  178. package/dist/components/ui/kbd.js +3 -3
  179. package/dist/components/ui/kbd.js.map +1 -1
  180. package/dist/components/ui/kbd_module.css.map +1 -1
  181. package/dist/components/ui/label.js +2 -2
  182. package/dist/components/ui/label.js.map +1 -1
  183. package/dist/components/ui/label_module.css.map +1 -1
  184. package/dist/components/ui/list-skeleton.js +2 -2
  185. package/dist/components/ui/list-skeleton.js.map +1 -1
  186. package/dist/components/ui/list-skeleton_module.css.map +1 -1
  187. package/dist/components/ui/loading-overlay.js +2 -2
  188. package/dist/components/ui/loading-overlay.js.map +1 -1
  189. package/dist/components/ui/loading-overlay_module.css.map +1 -1
  190. package/dist/components/ui/menubar.d.ts +11 -13
  191. package/dist/components/ui/menubar.d.ts.map +1 -1
  192. package/dist/components/ui/menubar.js +4 -4
  193. package/dist/components/ui/menubar.js.map +1 -1
  194. package/dist/components/ui/menubar_module.css.map +1 -1
  195. package/dist/components/ui/meter.d.ts +8 -24
  196. package/dist/components/ui/meter.d.ts.map +1 -1
  197. package/dist/components/ui/meter.js +23 -19
  198. package/dist/components/ui/meter.js.map +1 -1
  199. package/dist/components/ui/meter_module.css.map +1 -1
  200. package/dist/components/ui/navigation-menu.d.ts +3 -12
  201. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  202. package/dist/components/ui/navigation-menu.js +15 -12
  203. package/dist/components/ui/navigation-menu.js.map +1 -1
  204. package/dist/components/ui/navigation-menu_module.css +1 -1
  205. package/dist/components/ui/navigation-menu_module.css.map +1 -1
  206. package/dist/components/ui/number-field.d.ts +6 -12
  207. package/dist/components/ui/number-field.d.ts.map +1 -1
  208. package/dist/components/ui/number-field.js +3 -3
  209. package/dist/components/ui/number-field.js.map +1 -1
  210. package/dist/components/ui/number-field_module.css.map +1 -1
  211. package/dist/components/ui/pagination.js +8 -8
  212. package/dist/components/ui/pagination.js.map +1 -1
  213. package/dist/components/ui/pagination_module.css.map +1 -1
  214. package/dist/components/ui/popover.js +5 -5
  215. package/dist/components/ui/popover.js.map +1 -1
  216. package/dist/components/ui/popover_module.css.map +1 -1
  217. package/dist/components/ui/progress.d.ts +1 -4
  218. package/dist/components/ui/progress.d.ts.map +1 -1
  219. package/dist/components/ui/progress.js +10 -9
  220. package/dist/components/ui/progress.js.map +1 -1
  221. package/dist/components/ui/progress_module.css.map +1 -1
  222. package/dist/components/ui/radio-group.d.ts +2 -4
  223. package/dist/components/ui/radio-group.d.ts.map +1 -1
  224. package/dist/components/ui/radio-group.js +3 -3
  225. package/dist/components/ui/radio-group.js.map +1 -1
  226. package/dist/components/ui/radio-group_module.css.map +1 -1
  227. package/dist/components/ui/resizable.d.ts +13 -29
  228. package/dist/components/ui/resizable.d.ts.map +1 -1
  229. package/dist/components/ui/resizable.js +8 -7
  230. package/dist/components/ui/resizable.js.map +1 -1
  231. package/dist/components/ui/resizable_module.css.map +1 -1
  232. package/dist/components/ui/ripple-button.js +9 -9
  233. package/dist/components/ui/ripple-button.js.map +1 -1
  234. package/dist/components/ui/ripple-button_module.css.map +1 -1
  235. package/dist/components/ui/scratcher.d.ts +1 -1
  236. package/dist/components/ui/scratcher.d.ts.map +1 -1
  237. package/dist/components/ui/scratcher.js +5 -4
  238. package/dist/components/ui/scratcher.js.map +1 -1
  239. package/dist/components/ui/scratcher_module.css.map +1 -1
  240. package/dist/components/ui/scroll-area.d.ts +2 -4
  241. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  242. package/dist/components/ui/scroll-area.js +2 -2
  243. package/dist/components/ui/scroll-area.js.map +1 -1
  244. package/dist/components/ui/scroll-area_module.css.map +1 -1
  245. package/dist/components/ui/select.js +4 -4
  246. package/dist/components/ui/select.js.map +1 -1
  247. package/dist/components/ui/select_module.css.map +1 -1
  248. package/dist/components/ui/separator.d.ts +1 -4
  249. package/dist/components/ui/separator.d.ts.map +1 -1
  250. package/dist/components/ui/separator.js +9 -8
  251. package/dist/components/ui/separator.js.map +1 -1
  252. package/dist/components/ui/separator_module.css.map +1 -1
  253. package/dist/components/ui/sheet.d.ts.map +1 -1
  254. package/dist/components/ui/sheet.js +6 -6
  255. package/dist/components/ui/sheet.js.map +1 -1
  256. package/dist/components/ui/sheet_module.css.map +1 -1
  257. package/dist/components/ui/sidebar.d.ts +1 -1
  258. package/dist/components/ui/sidebar.d.ts.map +1 -1
  259. package/dist/components/ui/sidebar.js +36 -36
  260. package/dist/components/ui/sidebar.js.map +1 -1
  261. package/dist/components/ui/sidebar_module.css.map +1 -1
  262. package/dist/components/ui/skeleton.js +2 -2
  263. package/dist/components/ui/skeleton.js.map +1 -1
  264. package/dist/components/ui/skeleton_module.css.map +1 -1
  265. package/dist/components/ui/slider.js +2 -2
  266. package/dist/components/ui/slider.js.map +1 -1
  267. package/dist/components/ui/slider_module.css.map +1 -1
  268. package/dist/components/ui/spinner.js +2 -2
  269. package/dist/components/ui/spinner.js.map +1 -1
  270. package/dist/components/ui/spinner_module.css.map +1 -1
  271. package/dist/components/ui/stepper.js +2 -2
  272. package/dist/components/ui/stepper.js.map +1 -1
  273. package/dist/components/ui/stepper_module.css.map +1 -1
  274. package/dist/components/ui/switch.js +2 -2
  275. package/dist/components/ui/switch.js.map +1 -1
  276. package/dist/components/ui/switch_module.css.map +1 -1
  277. package/dist/components/ui/table-skeleton.js +2 -2
  278. package/dist/components/ui/table-skeleton.js.map +1 -1
  279. package/dist/components/ui/table-skeleton_module.css.map +1 -1
  280. package/dist/components/ui/table.js +9 -9
  281. package/dist/components/ui/table.js.map +1 -1
  282. package/dist/components/ui/table_module.css.map +1 -1
  283. package/dist/components/ui/tabs.js +3 -3
  284. package/dist/components/ui/tabs.js.map +1 -1
  285. package/dist/components/ui/tabs_module.css.map +1 -1
  286. package/dist/components/ui/textarea.js +2 -2
  287. package/dist/components/ui/textarea.js.map +1 -1
  288. package/dist/components/ui/textarea_module.css.map +1 -1
  289. package/dist/components/ui/timeline.js +5 -5
  290. package/dist/components/ui/timeline.js.map +1 -1
  291. package/dist/components/ui/timeline_module.css.map +1 -1
  292. package/dist/components/ui/{sonner.d.ts → toast.d.ts} +15 -6
  293. package/dist/components/ui/toast.d.ts.map +1 -0
  294. package/dist/components/ui/{sonner.js → toast.js} +43 -42
  295. package/dist/components/ui/toast.js.map +1 -0
  296. package/dist/components/ui/toast.module.js +34 -0
  297. package/dist/components/ui/toast.module.js.map +1 -0
  298. package/dist/components/ui/{sonner_module.css → toast_module.css} +35 -35
  299. package/dist/components/ui/toast_module.css.map +1 -0
  300. package/dist/components/ui/toggle-group.d.ts +2 -8
  301. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  302. package/dist/components/ui/toggle-group.js +14 -12
  303. package/dist/components/ui/toggle-group.js.map +1 -1
  304. package/dist/components/ui/toggle-group_module.css.map +1 -1
  305. package/dist/components/ui/toggle.js +2 -2
  306. package/dist/components/ui/toggle.js.map +1 -1
  307. package/dist/components/ui/toggle_module.css.map +1 -1
  308. package/dist/components/ui/toolbar.d.ts +10 -30
  309. package/dist/components/ui/toolbar.d.ts.map +1 -1
  310. package/dist/components/ui/toolbar.js +28 -23
  311. package/dist/components/ui/toolbar.js.map +1 -1
  312. package/dist/components/ui/toolbar_module.css.map +1 -1
  313. package/dist/components/ui/tooltip.js +4 -4
  314. package/dist/components/ui/tooltip.js.map +1 -1
  315. package/dist/components/ui/tooltip_module.css.map +1 -1
  316. package/dist/components/ui/typewriter.js +4 -4
  317. package/dist/components/ui/typewriter.js.map +1 -1
  318. package/dist/components/ui/typewriter_module.css.map +1 -1
  319. package/dist/components/ui/visually-hidden.js +2 -2
  320. package/dist/components/ui/visually-hidden.js.map +1 -1
  321. package/dist/components/ui/visually-hidden_module.css.map +1 -1
  322. package/dist/hooks/useAnnounce.js +5 -5
  323. package/dist/hooks/useAnnounce.js.map +1 -1
  324. package/dist/hooks/useClipboard.d.ts +77 -0
  325. package/dist/hooks/useClipboard.d.ts.map +1 -0
  326. package/dist/hooks/useClipboard.js +42 -0
  327. package/dist/hooks/useClipboard.js.map +1 -0
  328. package/dist/hooks/useControllableState.d.ts +54 -0
  329. package/dist/hooks/useControllableState.d.ts.map +1 -0
  330. package/dist/hooks/useControllableState.js +29 -0
  331. package/dist/hooks/useControllableState.js.map +1 -0
  332. package/dist/hooks/useDebounce.d.ts +33 -0
  333. package/dist/hooks/useDebounce.d.ts.map +1 -0
  334. package/dist/hooks/useDebounce.js +20 -0
  335. package/dist/hooks/useDebounce.js.map +1 -0
  336. package/dist/hooks/useEventCallback.d.ts +34 -0
  337. package/dist/hooks/useEventCallback.d.ts.map +1 -0
  338. package/dist/hooks/useEventCallback.js +12 -0
  339. package/dist/hooks/useEventCallback.js.map +1 -0
  340. package/dist/hooks/useFocusManager.js +6 -6
  341. package/dist/hooks/useFocusManager.js.map +1 -1
  342. package/dist/hooks/useFocusVisible.js +5 -5
  343. package/dist/hooks/useFocusVisible.js.map +1 -1
  344. package/dist/hooks/useId.d.ts +30 -0
  345. package/dist/hooks/useId.d.ts.map +1 -0
  346. package/dist/hooks/useId.js +9 -0
  347. package/dist/hooks/useId.js.map +1 -0
  348. package/dist/hooks/useIntersectionObserver.d.ts +51 -0
  349. package/dist/hooks/useIntersectionObserver.d.ts.map +1 -0
  350. package/dist/hooks/useIntersectionObserver.js +25 -0
  351. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  352. package/dist/hooks/useInterval.d.ts +55 -0
  353. package/dist/hooks/useInterval.d.ts.map +1 -0
  354. package/dist/hooks/useInterval.js +24 -0
  355. package/dist/hooks/useInterval.js.map +1 -0
  356. package/dist/hooks/useLocalStorage.d.ts +43 -0
  357. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  358. package/dist/hooks/useLocalStorage.js +53 -0
  359. package/dist/hooks/useLocalStorage.js.map +1 -0
  360. package/dist/hooks/useMediaQuery.js +3 -3
  361. package/dist/hooks/useMediaQuery.js.map +1 -1
  362. package/dist/hooks/useMergedRefs.d.ts +27 -0
  363. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  364. package/dist/hooks/useMergedRefs.js +11 -0
  365. package/dist/hooks/useMergedRefs.js.map +1 -0
  366. package/dist/hooks/useOnClickOutside.d.ts +32 -0
  367. package/dist/hooks/useOnClickOutside.d.ts.map +1 -0
  368. package/dist/hooks/useOnClickOutside.js +23 -0
  369. package/dist/hooks/useOnClickOutside.js.map +1 -0
  370. package/dist/hooks/usePrevious.d.ts +33 -0
  371. package/dist/hooks/usePrevious.d.ts.map +1 -0
  372. package/dist/hooks/usePrevious.js +14 -0
  373. package/dist/hooks/usePrevious.js.map +1 -0
  374. package/dist/hooks/useThrottle.d.ts +37 -0
  375. package/dist/hooks/useThrottle.d.ts.map +1 -0
  376. package/dist/hooks/useThrottle.js +34 -0
  377. package/dist/hooks/useThrottle.js.map +1 -0
  378. package/dist/hooks/useTimeout.d.ts +28 -0
  379. package/dist/hooks/useTimeout.d.ts.map +1 -0
  380. package/dist/hooks/useTimeout.js +24 -0
  381. package/dist/hooks/useTimeout.js.map +1 -0
  382. package/dist/index.css.map +1 -1
  383. package/dist/index.d.ts +17 -3
  384. package/dist/index.d.ts.map +1 -1
  385. package/dist/index.js +15 -1
  386. package/dist/lib/utilities.d.ts +2 -3
  387. package/dist/lib/utilities.d.ts.map +1 -1
  388. package/dist/lib/utilities.js.map +1 -1
  389. package/dist/motion/Collapse.js +2 -2
  390. package/dist/motion/Collapse.js.map +1 -1
  391. package/dist/motion/Collapse_module.css.map +1 -1
  392. package/dist/motion/tokens.js +5 -5
  393. package/dist/motion/tokens.js.map +1 -1
  394. package/package.json +88 -10
  395. package/src/components/ui/alert-dialog.tsx +15 -8
  396. package/src/components/ui/avatar.tsx +9 -6
  397. package/src/components/ui/calendar.tsx +9 -14
  398. package/src/components/ui/carousel.tsx +2 -0
  399. package/src/components/ui/chart.tsx +65 -62
  400. package/src/components/ui/checkbox-group.tsx +4 -5
  401. package/src/components/ui/checkbox.tsx +10 -2
  402. package/src/components/ui/collapsible.tsx +1 -0
  403. package/src/components/ui/combobox.module.css +158 -0
  404. package/src/components/ui/combobox.tsx +569 -0
  405. package/src/components/ui/command.tsx +31 -15
  406. package/src/components/ui/context-menu.tsx +3 -0
  407. package/src/components/ui/drawer.tsx +2 -0
  408. package/src/components/ui/dropdown-menu.tsx +3 -0
  409. package/src/components/ui/dropdrawer.tsx +80 -62
  410. package/src/components/ui/form.tsx +28 -3
  411. package/src/components/ui/input-otp.tsx +3 -3
  412. package/src/components/ui/menubar.tsx +9 -10
  413. package/src/components/ui/meter.tsx +16 -17
  414. package/src/components/ui/navigation-menu.tsx +41 -33
  415. package/src/components/ui/number-field.tsx +6 -13
  416. package/src/components/ui/progress.tsx +3 -2
  417. package/src/components/ui/radio-group.tsx +2 -5
  418. package/src/components/ui/resizable.tsx +15 -18
  419. package/src/components/ui/scratcher.tsx +6 -10
  420. package/src/components/ui/scroll-area.tsx +2 -5
  421. package/src/components/ui/separator.tsx +4 -3
  422. package/src/components/ui/sheet.tsx +3 -0
  423. package/src/components/ui/sidebar.tsx +1 -0
  424. package/src/components/ui/{sonner.module.css → toast.module.css} +1 -1
  425. package/src/components/ui/{sonner.tsx → toast.tsx} +22 -14
  426. package/src/components/ui/toggle-group.tsx +6 -4
  427. package/src/components/ui/toolbar.tsx +20 -21
  428. package/src/hooks/useClipboard.tsx +137 -0
  429. package/src/hooks/useControllableState.tsx +81 -0
  430. package/src/hooks/useDebounce.tsx +50 -0
  431. package/src/hooks/useEventCallback.tsx +47 -0
  432. package/src/hooks/useId.tsx +36 -0
  433. package/src/hooks/useIntersectionObserver.tsx +81 -0
  434. package/src/hooks/useInterval.tsx +80 -0
  435. package/src/hooks/useLocalStorage.tsx +111 -0
  436. package/src/hooks/useMergedRefs.tsx +48 -0
  437. package/src/hooks/useOnClickOutside.tsx +55 -0
  438. package/src/hooks/usePrevious.tsx +44 -0
  439. package/src/hooks/useThrottle.tsx +78 -0
  440. package/src/hooks/useTimeout.tsx +51 -0
  441. package/src/index.ts +27 -4
  442. package/src/lib/utilities.ts +4 -4
  443. package/src/motion/tokens.ts +4 -4
  444. package/src/stories/DesignPrinciples.mdx +48 -0
  445. package/src/stories/GettingStarted.mdx +92 -0
  446. package/src/stories/Welcome.mdx +44 -0
  447. package/dist/components/ui/sonner.d.ts.map +0 -1
  448. package/dist/components/ui/sonner.js.map +0 -1
  449. package/dist/components/ui/sonner.module.js +0 -34
  450. package/dist/components/ui/sonner.module.js.map +0 -1
  451. package/dist/components/ui/sonner_module.css.map +0 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
 
3
- /* eslint-disable complexity, react/no-object-type-as-default-prop, react/no-danger, react-dom/no-dangerously-set-innerhtml, unicorn/no-negated-condition */
3
+ /* eslint-disable complexity, sonarjs/cognitive-complexity, react/no-object-type-as-default-prop, react/no-danger, react-dom/no-dangerously-set-innerhtml, unicorn/no-negated-condition */
4
4
 
5
5
  import * as React from "react";
6
- import type {DefaultTooltipContentProps, LegendPayload, ResponsiveContainerProps, TooltipValueType} from "recharts";
6
+ import type {DefaultLegendContentProps, DefaultTooltipContentProps, LegendPayload, ResponsiveContainerProps, TooltipValueType} from "recharts";
7
7
  import * as RechartsPrimitive from "recharts";
8
8
 
9
9
  import {cn} from "@/lib/utilities";
@@ -448,6 +448,7 @@ function ChartLegendContent({
448
448
  );
449
449
  }
450
450
 
451
+ // eslint-disable-next-line sonarjs/function-return-type
451
452
  function formatChartValue(value: TooltipValueType, itemConfig: ChartConfig[string] | undefined): React.ReactNode {
452
453
  if (typeof value === "number") {
453
454
  return itemConfig?.formatter ? itemConfig.formatter(value) : value.toLocaleString();
@@ -456,6 +457,7 @@ function formatChartValue(value: TooltipValueType, itemConfig: ChartConfig[strin
456
457
  return String(value);
457
458
  }
458
459
 
460
+ // eslint-disable-next-line sonarjs/function-return-type
459
461
  function formatLegendDataKey(dataKey: LegendPayload["dataKey"]): string | null {
460
462
  return typeof dataKey === "number" || typeof dataKey === "string" ? String(dataKey) : null;
461
463
  }
@@ -499,85 +501,85 @@ export {ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartToolti
499
501
 
500
502
  // -- Chart containers -------------------------------------------------------
501
503
  /** @see {@link https://recharts.github.io/en-US/api/AreaChart | AreaChart API} */
502
- export const AreaChart = RechartsPrimitive.AreaChart;
504
+ export const {AreaChart} = RechartsPrimitive;
503
505
  /** @see {@link https://recharts.github.io/en-US/api/BarChart | BarChart API} */
504
- export const BarChart = RechartsPrimitive.BarChart;
506
+ export const {BarChart} = RechartsPrimitive;
505
507
  /** @see {@link https://recharts.github.io/en-US/api/ComposedChart | ComposedChart API} */
506
- export const ComposedChart = RechartsPrimitive.ComposedChart;
508
+ export const {ComposedChart} = RechartsPrimitive;
507
509
  /** @see {@link https://recharts.github.io/en-US/api/FunnelChart | FunnelChart API} */
508
- export const FunnelChart = RechartsPrimitive.FunnelChart;
510
+ export const {FunnelChart} = RechartsPrimitive;
509
511
  /** @see {@link https://recharts.github.io/en-US/api/LineChart | LineChart API} */
510
- export const LineChart = RechartsPrimitive.LineChart;
512
+ export const {LineChart} = RechartsPrimitive;
511
513
  /** @see {@link https://recharts.github.io/en-US/api/PieChart | PieChart API} */
512
- export const PieChart = RechartsPrimitive.PieChart;
514
+ export const {PieChart} = RechartsPrimitive;
513
515
  /** @see {@link https://recharts.github.io/en-US/api/RadarChart | RadarChart API} */
514
- export const RadarChart = RechartsPrimitive.RadarChart;
516
+ export const {RadarChart} = RechartsPrimitive;
515
517
  /** @see {@link https://recharts.github.io/en-US/api/RadialBarChart | RadialBarChart API} */
516
- export const RadialBarChart = RechartsPrimitive.RadialBarChart;
518
+ export const {RadialBarChart} = RechartsPrimitive;
517
519
  /** @see {@link https://recharts.github.io/en-US/api/ScatterChart | ScatterChart API} */
518
- export const ScatterChart = RechartsPrimitive.ScatterChart;
520
+ export const {ScatterChart} = RechartsPrimitive;
519
521
  /** @see {@link https://recharts.github.io/en-US/api/Sankey | Sankey API} */
520
- export const Sankey = RechartsPrimitive.Sankey;
522
+ export const {Sankey} = RechartsPrimitive;
521
523
  /** @see {@link https://recharts.github.io/en-US/api/SunburstChart | SunburstChart API} */
522
- export const SunburstChart = RechartsPrimitive.SunburstChart;
524
+ export const {SunburstChart} = RechartsPrimitive;
523
525
  /** @see {@link https://recharts.github.io/en-US/api/Treemap | Treemap API} */
524
- export const Treemap = RechartsPrimitive.Treemap;
526
+ export const {Treemap} = RechartsPrimitive;
525
527
 
526
528
  // -- Series elements --------------------------------------------------------
527
529
  /** @see {@link https://recharts.github.io/en-US/api/Area | Area API} */
528
- export const Area = RechartsPrimitive.Area;
530
+ export const {Area} = RechartsPrimitive;
529
531
  /** @see {@link https://recharts.github.io/en-US/api/Bar | Bar API} */
530
- export const Bar = RechartsPrimitive.Bar;
532
+ export const {Bar} = RechartsPrimitive;
531
533
  /**
532
534
  * Groups stacked bars and configures shared stack properties such as radius.
533
535
  * @since recharts 3.6
534
536
  * @see {@link https://recharts.github.io/en-US/guide/roundedBars | BarStack Guide}
535
537
  */
536
- export const BarStack = RechartsPrimitive.BarStack;
538
+ export const {BarStack} = RechartsPrimitive;
537
539
  /** @see {@link https://recharts.github.io/en-US/api/Funnel | Funnel API} */
538
- export const Funnel = RechartsPrimitive.Funnel;
540
+ export const {Funnel} = RechartsPrimitive;
539
541
  /** @see {@link https://recharts.github.io/en-US/api/Line | Line API} */
540
- export const Line = RechartsPrimitive.Line;
542
+ export const {Line} = RechartsPrimitive;
541
543
  /** @see {@link https://recharts.github.io/en-US/api/Pie | Pie API} */
542
- export const Pie = RechartsPrimitive.Pie;
544
+ export const {Pie} = RechartsPrimitive;
543
545
  /** @see {@link https://recharts.github.io/en-US/api/Radar | Radar API} */
544
- export const Radar = RechartsPrimitive.Radar;
546
+ export const {Radar} = RechartsPrimitive;
545
547
  /** @see {@link https://recharts.github.io/en-US/api/RadialBar | RadialBar API} */
546
- export const RadialBar = RechartsPrimitive.RadialBar;
548
+ export const {RadialBar} = RechartsPrimitive;
547
549
  /** @see {@link https://recharts.github.io/en-US/api/Scatter | Scatter API} */
548
- export const Scatter = RechartsPrimitive.Scatter;
550
+ export const {Scatter} = RechartsPrimitive;
549
551
 
550
552
  // -- Axis & grid ------------------------------------------------------------
551
553
  /** @see {@link https://recharts.github.io/en-US/api/CartesianGrid | CartesianGrid API} */
552
- export const CartesianGrid = RechartsPrimitive.CartesianGrid;
554
+ export const {CartesianGrid} = RechartsPrimitive;
553
555
  /** @see {@link https://recharts.github.io/en-US/api/PolarAngleAxis | PolarAngleAxis API} */
554
- export const PolarAngleAxis = RechartsPrimitive.PolarAngleAxis;
556
+ export const {PolarAngleAxis} = RechartsPrimitive;
555
557
  /** @see {@link https://recharts.github.io/en-US/api/PolarGrid | PolarGrid API} */
556
- export const PolarGrid = RechartsPrimitive.PolarGrid;
558
+ export const {PolarGrid} = RechartsPrimitive;
557
559
  /** @see {@link https://recharts.github.io/en-US/api/PolarRadiusAxis | PolarRadiusAxis API} */
558
- export const PolarRadiusAxis = RechartsPrimitive.PolarRadiusAxis;
560
+ export const {PolarRadiusAxis} = RechartsPrimitive;
559
561
  /** @see {@link https://recharts.github.io/en-US/api/XAxis | XAxis API} – supports `type: "auto"` since v3.7. */
560
- export const XAxis = RechartsPrimitive.XAxis;
562
+ export const {XAxis} = RechartsPrimitive;
561
563
  /** @see {@link https://recharts.github.io/en-US/api/YAxis | YAxis API} – supports `type: "auto"` since v3.7. */
562
- export const YAxis = RechartsPrimitive.YAxis;
564
+ export const {YAxis} = RechartsPrimitive;
563
565
  /** @see {@link https://recharts.github.io/en-US/api/ZAxis | ZAxis API} */
564
- export const ZAxis = RechartsPrimitive.ZAxis;
566
+ export const {ZAxis} = RechartsPrimitive;
565
567
 
566
568
  // -- Annotations & overlays ------------------------------------------------
567
569
  /** @see {@link https://recharts.github.io/en-US/api/Brush | Brush API} */
568
- export const Brush = RechartsPrimitive.Brush;
570
+ export const {Brush} = RechartsPrimitive;
569
571
  /** @see {@link https://recharts.github.io/en-US/api/ErrorBar | ErrorBar API} */
570
- export const ErrorBar = RechartsPrimitive.ErrorBar;
572
+ export const {ErrorBar} = RechartsPrimitive;
571
573
  /** @see {@link https://recharts.github.io/en-US/api/Label | Label API} */
572
- export const RechartsLabel = RechartsPrimitive.Label;
574
+ export const {Label: RechartsLabel} = RechartsPrimitive;
573
575
  /** @see {@link https://recharts.github.io/en-US/api/LabelList | LabelList API} */
574
- export const LabelList = RechartsPrimitive.LabelList;
576
+ export const {LabelList} = RechartsPrimitive;
575
577
  /** @see {@link https://recharts.github.io/en-US/api/ReferenceArea | ReferenceArea API} */
576
- export const ReferenceArea = RechartsPrimitive.ReferenceArea;
578
+ export const {ReferenceArea} = RechartsPrimitive;
577
579
  /** @see {@link https://recharts.github.io/en-US/api/ReferenceDot | ReferenceDot API} */
578
- export const ReferenceDot = RechartsPrimitive.ReferenceDot;
580
+ export const {ReferenceDot} = RechartsPrimitive;
579
581
  /** @see {@link https://recharts.github.io/en-US/api/ReferenceLine | ReferenceLine API} */
580
- export const ReferenceLine = RechartsPrimitive.ReferenceLine;
582
+ export const {ReferenceLine} = RechartsPrimitive;
581
583
 
582
584
  // -- Layout -----------------------------------------------------------------
583
585
  /**
@@ -585,54 +587,55 @@ export const ReferenceLine = RechartsPrimitive.ReferenceLine;
585
587
  * alternatively use the `responsive` prop directly on chart containers.
586
588
  * @see {@link https://recharts.github.io/en-US/api/ResponsiveContainer | ResponsiveContainer API}
587
589
  */
588
- export const ResponsiveContainer = RechartsPrimitive.ResponsiveContainer;
590
+ export const {ResponsiveContainer} = RechartsPrimitive;
589
591
  /** @see {@link https://recharts.github.io/en-US/api/Customized | Customized API} */
590
- export const Customized = RechartsPrimitive.Customized;
592
+ export const {Customized} = RechartsPrimitive;
591
593
 
592
594
  // -- Shapes -----------------------------------------------------------------
593
595
  /**
594
596
  * @deprecated Since recharts 3.7. Use the `shape` prop on chart series elements instead.
595
597
  * @see {@link https://recharts.github.io/en-US/api/Cell | Cell API}
596
598
  */
597
- export const Cell = RechartsPrimitive.Cell;
598
- export const Cross = RechartsPrimitive.Cross;
599
- export const Curve = RechartsPrimitive.Curve;
600
- export const Dot = RechartsPrimitive.Dot;
601
- export const Polygon = RechartsPrimitive.Polygon;
602
- export const Rectangle = RechartsPrimitive.Rectangle;
603
- export const Sector = RechartsPrimitive.Sector;
604
- export const Symbols = RechartsPrimitive.Symbols;
605
- export const Trapezoid = RechartsPrimitive.Trapezoid;
599
+ // eslint-disable-next-line sonarjs/deprecation
600
+ export const {Cell} = RechartsPrimitive;
601
+ export const {Cross} = RechartsPrimitive;
602
+ export const {Curve} = RechartsPrimitive;
603
+ export const {Dot} = RechartsPrimitive;
604
+ export const {Polygon} = RechartsPrimitive;
605
+ export const {Rectangle} = RechartsPrimitive;
606
+ export const {Sector} = RechartsPrimitive;
607
+ export const {Symbols} = RechartsPrimitive;
608
+ export const {Trapezoid} = RechartsPrimitive;
606
609
 
607
610
  // -- Z-index (v3.4+) -------------------------------------------------------
608
611
  /** @since recharts 3.4 @see {@link https://recharts.github.io/en-US/guide/zIndex | Z-Index Guide} */
609
- export const ZIndexLayer = RechartsPrimitive.ZIndexLayer;
612
+ export const {ZIndexLayer} = RechartsPrimitive;
610
613
  /** Default z-index ordering constants. @since recharts 3.4 */
611
- export const DefaultZIndexes = RechartsPrimitive.DefaultZIndexes;
614
+ export const {DefaultZIndexes} = RechartsPrimitive;
612
615
 
613
616
  // -- Hooks (v3+) ------------------------------------------------------------
614
617
  /** Returns the current chart width in pixels. */
615
- export const useChartWidth = RechartsPrimitive.useChartWidth;
618
+ export const {useChartWidth} = RechartsPrimitive;
616
619
  /** Returns the current chart height in pixels. */
617
- export const useChartHeight = RechartsPrimitive.useChartHeight;
620
+ export const {useChartHeight} = RechartsPrimitive;
618
621
  /** Returns the chart offset (margins, axes). */
619
- export const useOffset = RechartsPrimitive.useOffset;
622
+ export const {useOffset} = RechartsPrimitive;
620
623
  /** Returns the plot area dimensions. */
621
- export const usePlotArea = RechartsPrimitive.usePlotArea;
624
+ export const {usePlotArea} = RechartsPrimitive;
622
625
  /** Returns the chart margin. */
623
- export const useMargin = RechartsPrimitive.useMargin;
626
+ export const {useMargin} = RechartsPrimitive;
624
627
  /** Returns whether the tooltip is currently active. @since recharts 3.7 */
625
- export const useIsTooltipActive = RechartsPrimitive.useIsTooltipActive;
628
+ export const {useIsTooltipActive} = RechartsPrimitive;
626
629
  /** Returns the active tooltip coordinate. @since recharts 3.7 */
627
- export const useActiveTooltipCoordinate = RechartsPrimitive.useActiveTooltipCoordinate;
630
+ export const {useActiveTooltipCoordinate} = RechartsPrimitive;
628
631
  /** Returns the active tooltip data points. */
629
- export const useActiveTooltipDataPoints = RechartsPrimitive.useActiveTooltipDataPoints;
632
+ export const {useActiveTooltipDataPoints} = RechartsPrimitive;
630
633
  /** Returns the active tooltip label. */
631
- export const useActiveTooltipLabel = RechartsPrimitive.useActiveTooltipLabel;
634
+ export const {useActiveTooltipLabel} = RechartsPrimitive;
632
635
  /** Returns the current X-axis domain. */
633
- export const useXAxisDomain = RechartsPrimitive.useXAxisDomain;
636
+ export const {useXAxisDomain} = RechartsPrimitive;
634
637
  /** Returns the current Y-axis domain. */
635
- export const useYAxisDomain = RechartsPrimitive.useYAxisDomain;
638
+ export const {useYAxisDomain} = RechartsPrimitive;
636
639
 
637
640
  // -- Type re-exports --------------------------------------------------------
638
- export type {DefaultLegendContentProps, DefaultTooltipContentProps, TooltipValueType} from "recharts";
641
+ export type {DefaultLegendContentProps, DefaultTooltipContentProps, TooltipValueType};
@@ -8,8 +8,6 @@ import * as React from "react";
8
8
  import {cn} from "@/lib/utilities";
9
9
  import styles from "./checkbox-group.module.css";
10
10
 
11
- type CheckboxGroupProps = React.ComponentPropsWithRef<typeof BaseCheckboxGroup>;
12
-
13
11
  /**
14
12
  * Groups related checkboxes into a single accessible fieldset-like control.
15
13
  *
@@ -28,12 +26,13 @@ type CheckboxGroupProps = React.ComponentPropsWithRef<typeof BaseCheckboxGroup>;
28
26
  *
29
27
  * @see {@link https://base-ui.com/react/components/checkbox-group | Base UI Checkbox Group Docs}
30
28
  */
31
- function CheckboxGroup(props: Readonly<CheckboxGroup.Props>): React.ReactElement {
29
+ const CheckboxGroup = React.forwardRef<HTMLDivElement, CheckboxGroup.Props>(function CheckboxGroup(props, forwardedRef) {
32
30
  const {className, render, ...otherProps} = props;
33
31
 
34
32
  return (
35
33
  <BaseCheckboxGroup
36
34
  {...otherProps}
35
+ ref={forwardedRef}
37
36
  render={useRender({
38
37
  defaultTagName: "div",
39
38
  render: render as never,
@@ -41,11 +40,11 @@ function CheckboxGroup(props: Readonly<CheckboxGroup.Props>): React.ReactElement
41
40
  })}
42
41
  />
43
42
  );
44
- }
43
+ });
45
44
 
46
45
  // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
47
46
  namespace CheckboxGroup {
48
- export type Props = CheckboxGroupProps;
47
+ export type Props = React.ComponentPropsWithRef<typeof BaseCheckboxGroup>;
49
48
  export type State = BaseCheckboxGroup.State;
50
49
  }
51
50
 
@@ -8,6 +8,9 @@ import * as React from "react";
8
8
  import {cn} from "@/lib/utilities";
9
9
  import styles from "./checkbox.module.css";
10
10
 
11
+ type BaseCheckboxCheckedChange = NonNullable<React.ComponentPropsWithRef<typeof BaseCheckbox.Root>["onCheckedChange"]>;
12
+ type CheckboxChangeEventDetails = Parameters<BaseCheckboxCheckedChange>[1];
13
+
11
14
  /**
12
15
  * Props for the shared checkbox wrapper.
13
16
  */
@@ -17,7 +20,7 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithRef<typeof BaseChec
17
20
  /** The current checked state, including support for the legacy `"indeterminate"` value. @default undefined */
18
21
  checked?: boolean | "indeterminate";
19
22
  /** Called whenever the checked state changes. @default undefined */
20
- onCheckedChange?: (checked: boolean | "indeterminate") => void;
23
+ onCheckedChange?: (checked: boolean | "indeterminate", eventDetails: CheckboxChangeEventDetails) => void;
21
24
  }
22
25
 
23
26
  /**
@@ -41,13 +44,18 @@ const Checkbox = React.forwardRef<React.ComponentRef<typeof BaseCheckbox.Root>,
41
44
  const {checked, className, onCheckedChange, render, ...otherProps} = props;
42
45
  const baseChecked = checked === "indeterminate" ? true : checked;
43
46
  const indeterminate = checked === "indeterminate";
47
+ const handleCheckedChange: BaseCheckboxCheckedChange | undefined = onCheckedChange
48
+ ? (nextChecked, eventDetails) => {
49
+ onCheckedChange(nextChecked, eventDetails);
50
+ }
51
+ : undefined;
44
52
 
45
53
  return (
46
54
  <BaseCheckbox.Root
47
55
  ref={ref}
48
56
  checked={baseChecked}
49
57
  indeterminate={indeterminate}
50
- onCheckedChange={onCheckedChange as React.ComponentPropsWithRef<typeof BaseCheckbox.Root>["onCheckedChange"]}
58
+ onCheckedChange={handleCheckedChange}
51
59
  {...otherProps}
52
60
  render={useRender({
53
61
  defaultTagName: "button",
@@ -68,6 +68,7 @@ function Collapsible(props: Readonly<Collapsible.Props>): React.ReactElement {
68
68
  */
69
69
  const CollapsibleTrigger = React.forwardRef<React.ComponentRef<typeof BaseCollapsible.Trigger>, CollapsibleTrigger.Props>(
70
70
  (props: Readonly<CollapsibleTrigger.Props>, ref): React.ReactElement => {
71
+ // eslint-disable-next-line sonarjs/deprecation -- backward-compatible asChild API
71
72
  const {asChild = false, children, className, render, ...otherProps} = props;
72
73
  const renderProp = asChild && React.isValidElement(children) ? children : render;
73
74
 
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Combobox component styles
3
+ * Compound component combining Command, Popover, and Button
4
+ */
5
+
6
+ /* Root container */
7
+ .combobox {
8
+ display: contents;
9
+ }
10
+
11
+ /* Trigger button */
12
+ .trigger {
13
+ justify-content: space-between;
14
+ width: 100%;
15
+ min-width: 200px;
16
+ }
17
+
18
+ .triggerValue {
19
+ flex: 1;
20
+ text-align: left;
21
+ overflow: hidden;
22
+ text-overflow: ellipsis;
23
+ white-space: nowrap;
24
+ }
25
+
26
+ .triggerPlaceholder {
27
+ color: var(--ac-neutral-500);
28
+ }
29
+
30
+ .triggerIcon {
31
+ margin-left: var(--ac-spacing-2);
32
+ height: 1rem;
33
+ width: 1rem;
34
+ flex-shrink: 0;
35
+ opacity: 0.5;
36
+ }
37
+
38
+ /* Popover content */
39
+ .content {
40
+ width: var(--anchor-width);
41
+ min-width: 200px;
42
+ padding: 0;
43
+ }
44
+
45
+ /* Command container */
46
+ .command {
47
+ border: none;
48
+ box-shadow: none;
49
+ }
50
+
51
+ .commandInput {
52
+ border-bottom: 1px solid var(--ac-neutral-200);
53
+ border-radius: 0;
54
+ }
55
+
56
+ .commandList {
57
+ max-height: 300px;
58
+ overflow-y: auto;
59
+ }
60
+
61
+ /* Items */
62
+ .item {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: var(--ac-spacing-2);
66
+ cursor: pointer;
67
+ padding: var(--ac-spacing-2) var(--ac-spacing-3);
68
+ border-radius: var(--ac-radius-sm);
69
+ transition: background-color 0.2s;
70
+ }
71
+
72
+ .item:hover {
73
+ background-color: var(--ac-neutral-100);
74
+ }
75
+
76
+ .item[data-disabled] {
77
+ opacity: 0.5;
78
+ pointer-events: none;
79
+ }
80
+
81
+ .itemSelected {
82
+ background-color: var(--ac-neutral-100);
83
+ }
84
+
85
+ .itemCheck {
86
+ height: 1rem;
87
+ width: 1rem;
88
+ flex-shrink: 0;
89
+ opacity: 0;
90
+ transition: opacity 0.2s;
91
+ }
92
+
93
+ .itemCheckVisible {
94
+ opacity: 1;
95
+ }
96
+
97
+ .itemLabel {
98
+ flex: 1;
99
+ overflow: hidden;
100
+ text-overflow: ellipsis;
101
+ white-space: nowrap;
102
+ }
103
+
104
+ /* Empty state */
105
+ .empty {
106
+ padding: var(--ac-spacing-6) var(--ac-spacing-4);
107
+ text-align: center;
108
+ color: var(--ac-neutral-500);
109
+ font-size: var(--ac-font-size-sm);
110
+ }
111
+
112
+ /* Group */
113
+ .group {
114
+ padding: var(--ac-spacing-1) 0;
115
+ }
116
+
117
+ /* Separator */
118
+ .separator {
119
+ margin: var(--ac-spacing-1) 0;
120
+ height: 1px;
121
+ background-color: var(--ac-neutral-200);
122
+ }
123
+
124
+ /* Dark mode */
125
+ :global(.dark) .triggerPlaceholder {
126
+ color: var(--ac-neutral-400);
127
+ }
128
+
129
+ :global(.dark) .commandInput {
130
+ border-bottom-color: var(--ac-neutral-700);
131
+ }
132
+
133
+ :global(.dark) .item:hover {
134
+ background-color: var(--ac-neutral-800);
135
+ }
136
+
137
+ :global(.dark) .itemSelected {
138
+ background-color: var(--ac-neutral-800);
139
+ }
140
+
141
+ :global(.dark) .empty {
142
+ color: var(--ac-neutral-400);
143
+ }
144
+
145
+ :global(.dark) .separator {
146
+ background-color: var(--ac-neutral-700);
147
+ }
148
+
149
+ /* Responsive adjustments */
150
+ @media (max-width: 640px) {
151
+ .trigger {
152
+ min-width: 150px;
153
+ }
154
+
155
+ .content {
156
+ min-width: 150px;
157
+ }
158
+ }