@arolariu/components 0.5.0 → 1.1.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 (972) hide show
  1. package/{changelog.md → CHANGELOG.md} +82 -0
  2. package/CONTRIBUTING.md +344 -265
  3. package/DEBUGGING.md +185 -103
  4. package/EXAMPLES.md +2976 -341
  5. package/{readme.md → README.md} +306 -203
  6. package/dist/components/ui/accordion.d.ts +157 -5
  7. package/dist/components/ui/accordion.d.ts.map +1 -1
  8. package/dist/components/ui/accordion.js +100 -22
  9. package/dist/components/ui/accordion.js.map +1 -1
  10. package/dist/components/ui/accordion.module.js +12 -0
  11. package/dist/components/ui/accordion.module.js.map +1 -0
  12. package/dist/components/ui/accordion_module.css +72 -0
  13. package/dist/components/ui/accordion_module.css.map +1 -0
  14. package/dist/components/ui/alert-dialog.d.ts +309 -18
  15. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  16. package/dist/components/ui/alert-dialog.js +149 -52
  17. package/dist/components/ui/alert-dialog.js.map +1 -1
  18. package/dist/components/ui/alert-dialog.module.js +13 -0
  19. package/dist/components/ui/alert-dialog.module.js.map +1 -0
  20. package/dist/components/ui/alert-dialog_module.css +89 -0
  21. package/dist/components/ui/alert-dialog_module.css.map +1 -0
  22. package/dist/components/ui/alert.d.ts +109 -6
  23. package/dist/components/ui/alert.d.ts.map +1 -1
  24. package/dist/components/ui/alert.js +12 -21
  25. package/dist/components/ui/alert.js.map +1 -1
  26. package/dist/components/ui/alert.module.js +11 -0
  27. package/dist/components/ui/alert.module.js.map +1 -0
  28. package/dist/components/ui/alert_module.css +59 -0
  29. package/dist/components/ui/alert_module.css.map +1 -0
  30. package/dist/components/ui/aspect-ratio.d.ts +24 -2
  31. package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
  32. package/dist/components/ui/aspect-ratio.js +14 -3
  33. package/dist/components/ui/aspect-ratio.js.map +1 -1
  34. package/dist/components/ui/aspect-ratio.module.js +7 -0
  35. package/dist/components/ui/aspect-ratio.module.js.map +1 -0
  36. package/dist/components/ui/aspect-ratio_module.css +10 -0
  37. package/dist/components/ui/aspect-ratio_module.css.map +1 -0
  38. package/dist/components/ui/async-boundary.js +17 -0
  39. package/dist/components/ui/async-boundary.js.map +1 -0
  40. package/dist/components/ui/avatar.d.ts +88 -4
  41. package/dist/components/ui/avatar.d.ts.map +1 -1
  42. package/dist/components/ui/avatar.js +52 -20
  43. package/dist/components/ui/avatar.js.map +1 -1
  44. package/dist/components/ui/avatar.module.js +9 -0
  45. package/dist/components/ui/avatar.module.js.map +1 -0
  46. package/dist/components/ui/avatar_module.css +35 -0
  47. package/dist/components/ui/avatar_module.css.map +1 -0
  48. package/dist/components/ui/background-beams.d.ts +21 -3
  49. package/dist/components/ui/background-beams.d.ts.map +1 -1
  50. package/dist/components/ui/background-beams.js +22 -11
  51. package/dist/components/ui/background-beams.js.map +1 -1
  52. package/dist/components/ui/background-beams.module.js +8 -0
  53. package/dist/components/ui/background-beams.module.js.map +1 -0
  54. package/dist/components/ui/background-beams_module.css +22 -0
  55. package/dist/components/ui/background-beams_module.css.map +1 -0
  56. package/dist/components/ui/badge.d.ts +79 -6
  57. package/dist/components/ui/badge.d.ts.map +1 -1
  58. package/dist/components/ui/badge.js +19 -23
  59. package/dist/components/ui/badge.js.map +1 -1
  60. package/dist/components/ui/badge.module.js +11 -0
  61. package/dist/components/ui/badge.module.js.map +1 -0
  62. package/dist/components/ui/badge_module.css +63 -0
  63. package/dist/components/ui/badge_module.css.map +1 -0
  64. package/dist/components/ui/breadcrumb.d.ts +158 -13
  65. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  66. package/dist/components/ui/breadcrumb.js +39 -30
  67. package/dist/components/ui/breadcrumb.js.map +1 -1
  68. package/dist/components/ui/breadcrumb.module.js +14 -0
  69. package/dist/components/ui/breadcrumb.module.js.map +1 -0
  70. package/dist/components/ui/breadcrumb_module.css +90 -0
  71. package/dist/components/ui/breadcrumb_module.css.map +1 -0
  72. package/dist/components/ui/bubble-background.d.ts +38 -10
  73. package/dist/components/ui/bubble-background.d.ts.map +1 -1
  74. package/dist/components/ui/bubble-background.js +33 -35
  75. package/dist/components/ui/bubble-background.js.map +1 -1
  76. package/dist/components/ui/bubble-background.module.js +20 -0
  77. package/dist/components/ui/bubble-background.module.js.map +1 -0
  78. package/dist/components/ui/bubble-background_module.css +99 -0
  79. package/dist/components/ui/bubble-background_module.css.map +1 -0
  80. package/dist/components/ui/button-group.d.ts +88 -8
  81. package/dist/components/ui/button-group.d.ts.map +1 -1
  82. package/dist/components/ui/button-group.js +35 -32
  83. package/dist/components/ui/button-group.js.map +1 -1
  84. package/dist/components/ui/button-group.module.js +11 -0
  85. package/dist/components/ui/button-group.module.js.map +1 -0
  86. package/dist/components/ui/button-group_module.css +79 -0
  87. package/dist/components/ui/button-group_module.css.map +1 -0
  88. package/dist/components/ui/button.d.ts +82 -7
  89. package/dist/components/ui/button.d.ts.map +1 -1
  90. package/dist/components/ui/button.js +69 -34
  91. package/dist/components/ui/button.js.map +1 -1
  92. package/dist/components/ui/button.module.js +17 -0
  93. package/dist/components/ui/button.module.js.map +1 -0
  94. package/dist/components/ui/button_module.css +137 -0
  95. package/dist/components/ui/button_module.css.map +1 -0
  96. package/dist/components/ui/calendar.d.ts +36 -5
  97. package/dist/components/ui/calendar.d.ts.map +1 -1
  98. package/dist/components/ui/calendar.js +75 -64
  99. package/dist/components/ui/calendar.js.map +1 -1
  100. package/dist/components/ui/calendar.module.js +35 -0
  101. package/dist/components/ui/calendar.module.js.map +1 -0
  102. package/dist/components/ui/calendar_module.css +245 -0
  103. package/dist/components/ui/calendar_module.css.map +1 -0
  104. package/dist/components/ui/card-skeleton.js +41 -0
  105. package/dist/components/ui/card-skeleton.js.map +1 -0
  106. package/dist/components/ui/card-skeleton.module.js +15 -0
  107. package/dist/components/ui/card-skeleton.module.js.map +1 -0
  108. package/dist/components/ui/card-skeleton_module.css +54 -0
  109. package/dist/components/ui/card-skeleton_module.css.map +1 -0
  110. package/dist/components/ui/card.d.ts +162 -7
  111. package/dist/components/ui/card.d.ts.map +1 -1
  112. package/dist/components/ui/card.js +13 -13
  113. package/dist/components/ui/card.js.map +1 -1
  114. package/dist/components/ui/card.module.js +13 -0
  115. package/dist/components/ui/card.module.js.map +1 -0
  116. package/dist/components/ui/card_module.css +43 -0
  117. package/dist/components/ui/card_module.css.map +1 -0
  118. package/dist/components/ui/carousel.d.ts +127 -3
  119. package/dist/components/ui/carousel.d.ts.map +1 -1
  120. package/dist/components/ui/carousel.js +63 -36
  121. package/dist/components/ui/carousel.js.map +1 -1
  122. package/dist/components/ui/carousel.module.js +17 -0
  123. package/dist/components/ui/carousel.module.js.map +1 -0
  124. package/dist/components/ui/carousel_module.css +82 -0
  125. package/dist/components/ui/carousel_module.css.map +1 -0
  126. package/dist/components/ui/chart.d.ts +323 -13
  127. package/dist/components/ui/chart.d.ts.map +1 -1
  128. package/dist/components/ui/chart.js +224 -53
  129. package/dist/components/ui/chart.js.map +1 -1
  130. package/dist/components/ui/chart.module.js +27 -0
  131. package/dist/components/ui/chart.module.js.map +1 -0
  132. package/dist/components/ui/chart_module.css +159 -0
  133. package/dist/components/ui/chart_module.css.map +1 -0
  134. package/dist/components/ui/checkbox-group.d.ts +27 -0
  135. package/dist/components/ui/checkbox-group.d.ts.map +1 -0
  136. package/dist/components/ui/checkbox-group.js +26 -0
  137. package/dist/components/ui/checkbox-group.js.map +1 -0
  138. package/dist/components/ui/checkbox-group.module.js +7 -0
  139. package/dist/components/ui/checkbox-group.module.js.map +1 -0
  140. package/dist/components/ui/checkbox-group_module.css +11 -0
  141. package/dist/components/ui/checkbox-group_module.css.map +1 -0
  142. package/dist/components/ui/checkbox.d.ts +35 -2
  143. package/dist/components/ui/checkbox.d.ts.map +1 -1
  144. package/dist/components/ui/checkbox.js +40 -12
  145. package/dist/components/ui/checkbox.js.map +1 -1
  146. package/dist/components/ui/checkbox.module.js +8 -0
  147. package/dist/components/ui/checkbox.module.js.map +1 -0
  148. package/dist/components/ui/checkbox_module.css +45 -0
  149. package/dist/components/ui/checkbox_module.css.map +1 -0
  150. package/dist/components/ui/collapsible.d.ts +87 -3
  151. package/dist/components/ui/collapsible.d.ts.map +1 -1
  152. package/dist/components/ui/collapsible.js +46 -32
  153. package/dist/components/ui/collapsible.js.map +1 -1
  154. package/dist/components/ui/collapsible.module.js +8 -0
  155. package/dist/components/ui/collapsible.module.js.map +1 -0
  156. package/dist/components/ui/collapsible_module.css +26 -0
  157. package/dist/components/ui/collapsible_module.css.map +1 -0
  158. package/dist/components/ui/combobox.d.ts +335 -0
  159. package/dist/components/ui/combobox.d.ts.map +1 -0
  160. package/dist/components/ui/combobox.js +206 -0
  161. package/dist/components/ui/combobox.js.map +1 -0
  162. package/dist/components/ui/combobox.module.js +23 -0
  163. package/dist/components/ui/combobox.module.js.map +1 -0
  164. package/dist/components/ui/combobox_module.css +142 -0
  165. package/dist/components/ui/combobox_module.css.map +1 -0
  166. package/dist/components/ui/command.d.ts +284 -51
  167. package/dist/components/ui/command.d.ts.map +1 -1
  168. package/dist/components/ui/command.js +396 -51
  169. package/dist/components/ui/command.js.map +1 -1
  170. package/dist/components/ui/command.module.js +20 -0
  171. package/dist/components/ui/command.module.js.map +1 -0
  172. package/dist/components/ui/command_module.css +194 -0
  173. package/dist/components/ui/command_module.css.map +1 -0
  174. package/dist/components/ui/context-menu.d.ts +414 -21
  175. package/dist/components/ui/context-menu.d.ts.map +1 -1
  176. package/dist/components/ui/context-menu.js +190 -68
  177. package/dist/components/ui/context-menu.js.map +1 -1
  178. package/dist/components/ui/context-menu.module.js +19 -0
  179. package/dist/components/ui/context-menu.module.js.map +1 -0
  180. package/dist/components/ui/context-menu_module.css +114 -0
  181. package/dist/components/ui/context-menu_module.css.map +1 -0
  182. package/dist/components/ui/copy-button.d.ts +41 -0
  183. package/dist/components/ui/copy-button.d.ts.map +1 -0
  184. package/dist/components/ui/copy-button.js +51 -0
  185. package/dist/components/ui/copy-button.js.map +1 -0
  186. package/dist/components/ui/copy-button.module.js +8 -0
  187. package/dist/components/ui/copy-button.module.js.map +1 -0
  188. package/dist/components/ui/copy-button_module.css +37 -0
  189. package/dist/components/ui/copy-button_module.css.map +1 -0
  190. package/dist/components/ui/counting-number.d.ts +28 -2
  191. package/dist/components/ui/counting-number.d.ts.map +1 -1
  192. package/dist/components/ui/counting-number.js +31 -27
  193. package/dist/components/ui/counting-number.js.map +1 -1
  194. package/dist/components/ui/counting-number.module.js +7 -0
  195. package/dist/components/ui/counting-number.module.js.map +1 -0
  196. package/dist/components/ui/counting-number_module.css +7 -0
  197. package/dist/components/ui/counting-number_module.css.map +1 -0
  198. package/dist/components/ui/dialog.d.ts +287 -17
  199. package/dist/components/ui/dialog.d.ts.map +1 -1
  200. package/dist/components/ui/dialog.js +129 -52
  201. package/dist/components/ui/dialog.js.map +1 -1
  202. package/dist/components/ui/dialog.module.js +13 -0
  203. package/dist/components/ui/dialog.module.js.map +1 -0
  204. package/dist/components/ui/dialog_module.css +114 -0
  205. package/dist/components/ui/dialog_module.css.map +1 -0
  206. package/dist/components/ui/dot-background.d.ts +25 -35
  207. package/dist/components/ui/dot-background.d.ts.map +1 -1
  208. package/dist/components/ui/dot-background.js +31 -22
  209. package/dist/components/ui/dot-background.js.map +1 -1
  210. package/dist/components/ui/dot-background.module.js +8 -0
  211. package/dist/components/ui/dot-background.module.js.map +1 -0
  212. package/dist/components/ui/dot-background_module.css +15 -0
  213. package/dist/components/ui/dot-background_module.css.map +1 -0
  214. package/dist/components/ui/drawer.d.ts +287 -18
  215. package/dist/components/ui/drawer.d.ts.map +1 -1
  216. package/dist/components/ui/drawer.js +117 -40
  217. package/dist/components/ui/drawer.js.map +1 -1
  218. package/dist/components/ui/drawer.module.js +14 -0
  219. package/dist/components/ui/drawer.module.js.map +1 -0
  220. package/dist/components/ui/drawer_module.css +86 -0
  221. package/dist/components/ui/drawer_module.css.map +1 -0
  222. package/dist/components/ui/dropdown-menu.d.ts +414 -21
  223. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  224. package/dist/components/ui/dropdown-menu.js +189 -68
  225. package/dist/components/ui/dropdown-menu.js.map +1 -1
  226. package/dist/components/ui/dropdown-menu.module.js +19 -0
  227. package/dist/components/ui/dropdown-menu.module.js.map +1 -0
  228. package/dist/components/ui/dropdown-menu_module.css +114 -0
  229. package/dist/components/ui/dropdown-menu_module.css.map +1 -0
  230. package/dist/components/ui/dropdrawer.d.ts +307 -17
  231. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  232. package/dist/components/ui/dropdrawer.js +438 -166
  233. package/dist/components/ui/dropdrawer.js.map +1 -1
  234. package/dist/components/ui/dropdrawer.module.js +43 -0
  235. package/dist/components/ui/dropdrawer.module.js.map +1 -0
  236. package/dist/components/ui/dropdrawer_module.css +307 -0
  237. package/dist/components/ui/dropdrawer_module.css.map +1 -0
  238. package/dist/components/ui/empty.d.ts +129 -10
  239. package/dist/components/ui/empty.d.ts.map +1 -1
  240. package/dist/components/ui/empty.js +32 -47
  241. package/dist/components/ui/empty.js.map +1 -1
  242. package/dist/components/ui/empty.module.js +13 -0
  243. package/dist/components/ui/empty.module.js.map +1 -0
  244. package/dist/components/ui/empty_module.css +85 -0
  245. package/dist/components/ui/empty_module.css.map +1 -0
  246. package/dist/components/ui/error-boundary.js +61 -0
  247. package/dist/components/ui/error-boundary.js.map +1 -0
  248. package/dist/components/ui/error-boundary.module.js +10 -0
  249. package/dist/components/ui/error-boundary.module.js.map +1 -0
  250. package/dist/components/ui/error-boundary_module.css +41 -0
  251. package/dist/components/ui/error-boundary_module.css.map +1 -0
  252. package/dist/components/ui/field.d.ts +222 -23
  253. package/dist/components/ui/field.d.ts.map +1 -1
  254. package/dist/components/ui/field.js +76 -86
  255. package/dist/components/ui/field.js.map +1 -1
  256. package/dist/components/ui/field.module.js +24 -0
  257. package/dist/components/ui/field.module.js.map +1 -0
  258. package/dist/components/ui/field_module.css +185 -0
  259. package/dist/components/ui/field_module.css.map +1 -0
  260. package/dist/components/ui/fireworks-background.d.ts +27 -3
  261. package/dist/components/ui/fireworks-background.d.ts.map +1 -1
  262. package/dist/components/ui/fireworks-background.js +36 -35
  263. package/dist/components/ui/fireworks-background.js.map +1 -1
  264. package/dist/components/ui/fireworks-background.module.js +8 -0
  265. package/dist/components/ui/fireworks-background.module.js.map +1 -0
  266. package/dist/components/ui/fireworks-background_module.css +17 -0
  267. package/dist/components/ui/fireworks-background_module.css.map +1 -0
  268. package/dist/components/ui/flip-button.d.ts +27 -3
  269. package/dist/components/ui/flip-button.d.ts.map +1 -1
  270. package/dist/components/ui/flip-button.js +27 -17
  271. package/dist/components/ui/flip-button.js.map +1 -1
  272. package/dist/components/ui/flip-button.module.js +11 -0
  273. package/dist/components/ui/flip-button.module.js.map +1 -0
  274. package/dist/components/ui/flip-button_module.css +47 -0
  275. package/dist/components/ui/flip-button_module.css.map +1 -0
  276. package/dist/components/ui/focus-scope.js +70 -0
  277. package/dist/components/ui/focus-scope.js.map +1 -0
  278. package/dist/components/ui/focus-scope.module.js +7 -0
  279. package/dist/components/ui/focus-scope.module.js.map +1 -0
  280. package/dist/components/ui/focus-scope_module.css +6 -0
  281. package/dist/components/ui/focus-scope_module.css.map +1 -0
  282. package/dist/components/ui/form-skeleton.js +32 -0
  283. package/dist/components/ui/form-skeleton.js.map +1 -0
  284. package/dist/components/ui/form-skeleton.module.js +11 -0
  285. package/dist/components/ui/form-skeleton.module.js.map +1 -0
  286. package/dist/components/ui/form-skeleton_module.css +30 -0
  287. package/dist/components/ui/form-skeleton_module.css.map +1 -0
  288. package/dist/components/ui/form.d.ts +143 -13
  289. package/dist/components/ui/form.d.ts.map +1 -1
  290. package/dist/components/ui/form.js +55 -21
  291. package/dist/components/ui/form.js.map +1 -1
  292. package/dist/components/ui/form.module.js +10 -0
  293. package/dist/components/ui/form.module.js.map +1 -0
  294. package/dist/components/ui/form_module.css +22 -0
  295. package/dist/components/ui/form_module.css.map +1 -0
  296. package/dist/components/ui/gradient-background.d.ts +21 -3
  297. package/dist/components/ui/gradient-background.d.ts.map +1 -1
  298. package/dist/components/ui/gradient-background.js +8 -4
  299. package/dist/components/ui/gradient-background.js.map +1 -1
  300. package/dist/components/ui/gradient-background.module.js +7 -0
  301. package/dist/components/ui/gradient-background.module.js.map +1 -0
  302. package/dist/components/ui/gradient-background_module.css +9 -0
  303. package/dist/components/ui/gradient-background_module.css.map +1 -0
  304. package/dist/components/ui/gradient-text.d.ts +23 -2
  305. package/dist/components/ui/gradient-text.d.ts.map +1 -1
  306. package/dist/components/ui/gradient-text.js +8 -6
  307. package/dist/components/ui/gradient-text.js.map +1 -1
  308. package/dist/components/ui/gradient-text.module.js +9 -0
  309. package/dist/components/ui/gradient-text.module.js.map +1 -0
  310. package/dist/components/ui/gradient-text_module.css +24 -0
  311. package/dist/components/ui/gradient-text_module.css.map +1 -0
  312. package/dist/components/ui/highlight-text.d.ts +24 -2
  313. package/dist/components/ui/highlight-text.d.ts.map +1 -1
  314. package/dist/components/ui/highlight-text.js +7 -10
  315. package/dist/components/ui/highlight-text.js.map +1 -1
  316. package/dist/components/ui/highlight-text.module.js +7 -0
  317. package/dist/components/ui/highlight-text.module.js.map +1 -0
  318. package/dist/components/ui/highlight-text_module.css +16 -0
  319. package/dist/components/ui/highlight-text_module.css.map +1 -0
  320. package/dist/components/ui/hole-background.d.ts +23 -2
  321. package/dist/components/ui/hole-background.d.ts.map +1 -1
  322. package/dist/components/ui/hole-background.js +155 -118
  323. package/dist/components/ui/hole-background.js.map +1 -1
  324. package/dist/components/ui/hole-background.module.js +10 -0
  325. package/dist/components/ui/hole-background.module.js.map +1 -0
  326. package/dist/components/ui/hole-background_module.css +85 -0
  327. package/dist/components/ui/hole-background_module.css.map +1 -0
  328. package/dist/components/ui/hover-card.d.ts +85 -4
  329. package/dist/components/ui/hover-card.d.ts.map +1 -1
  330. package/dist/components/ui/hover-card.js +52 -10
  331. package/dist/components/ui/hover-card.js.map +1 -1
  332. package/dist/components/ui/hover-card.module.js +8 -0
  333. package/dist/components/ui/hover-card.module.js.map +1 -0
  334. package/dist/components/ui/hover-card_module.css +23 -0
  335. package/dist/components/ui/hover-card_module.css.map +1 -0
  336. package/dist/components/ui/input-group.d.ts +132 -13
  337. package/dist/components/ui/input-group.d.ts.map +1 -1
  338. package/dist/components/ui/input-group.js +62 -66
  339. package/dist/components/ui/input-group.js.map +1 -1
  340. package/dist/components/ui/input-group.module.js +20 -0
  341. package/dist/components/ui/input-group.module.js.map +1 -0
  342. package/dist/components/ui/input-group_module.css +150 -0
  343. package/dist/components/ui/input-group_module.css.map +1 -0
  344. package/dist/components/ui/input-otp.d.ts +110 -30
  345. package/dist/components/ui/input-otp.d.ts.map +1 -1
  346. package/dist/components/ui/input-otp.js +24 -15
  347. package/dist/components/ui/input-otp.js.map +1 -1
  348. package/dist/components/ui/input-otp.module.js +17 -0
  349. package/dist/components/ui/input-otp.module.js.map +1 -0
  350. package/dist/components/ui/input-otp_module.css +89 -0
  351. package/dist/components/ui/input-otp_module.css.map +1 -0
  352. package/dist/components/ui/input.d.ts +31 -1
  353. package/dist/components/ui/input.d.ts.map +1 -1
  354. package/dist/components/ui/input.js +21 -8
  355. package/dist/components/ui/input.js.map +1 -1
  356. package/dist/components/ui/input.module.js +7 -0
  357. package/dist/components/ui/input.module.js.map +1 -0
  358. package/dist/components/ui/input_module.css +40 -0
  359. package/dist/components/ui/input_module.css.map +1 -0
  360. package/dist/components/ui/item.d.ts +221 -19
  361. package/dist/components/ui/item.d.ts.map +1 -1
  362. package/dist/components/ui/item.js +66 -90
  363. package/dist/components/ui/item.js.map +1 -1
  364. package/dist/components/ui/item.module.js +22 -0
  365. package/dist/components/ui/item.module.js.map +1 -0
  366. package/dist/components/ui/item_module.css +143 -0
  367. package/dist/components/ui/item_module.css.map +1 -0
  368. package/dist/components/ui/kbd.d.ts +43 -2
  369. package/dist/components/ui/kbd.d.ts.map +1 -1
  370. package/dist/components/ui/kbd.js +12 -12
  371. package/dist/components/ui/kbd.js.map +1 -1
  372. package/dist/components/ui/kbd.module.js +8 -0
  373. package/dist/components/ui/kbd.module.js.map +1 -0
  374. package/dist/components/ui/kbd_module.css +35 -0
  375. package/dist/components/ui/kbd_module.css.map +1 -0
  376. package/dist/components/ui/label.d.ts +30 -3
  377. package/dist/components/ui/label.d.ts.map +1 -1
  378. package/dist/components/ui/label.js +7 -8
  379. package/dist/components/ui/label.js.map +1 -1
  380. package/dist/components/ui/label.module.js +7 -0
  381. package/dist/components/ui/label.module.js.map +1 -0
  382. package/dist/components/ui/label_module.css +17 -0
  383. package/dist/components/ui/label_module.css.map +1 -0
  384. package/dist/components/ui/list-skeleton.js +35 -0
  385. package/dist/components/ui/list-skeleton.js.map +1 -0
  386. package/dist/components/ui/list-skeleton.module.js +12 -0
  387. package/dist/components/ui/list-skeleton.module.js.map +1 -0
  388. package/dist/components/ui/list-skeleton_module.css +39 -0
  389. package/dist/components/ui/list-skeleton_module.css.map +1 -0
  390. package/dist/components/ui/loading-overlay.js +21 -0
  391. package/dist/components/ui/loading-overlay.js.map +1 -0
  392. package/dist/components/ui/loading-overlay.module.js +9 -0
  393. package/dist/components/ui/loading-overlay.module.js.map +1 -0
  394. package/dist/components/ui/loading-overlay_module.css +22 -0
  395. package/dist/components/ui/loading-overlay_module.css.map +1 -0
  396. package/dist/components/ui/menubar.d.ts +420 -22
  397. package/dist/components/ui/menubar.d.ts.map +1 -1
  398. package/dist/components/ui/menubar.js +199 -100
  399. package/dist/components/ui/menubar.js.map +1 -1
  400. package/dist/components/ui/menubar.module.js +21 -0
  401. package/dist/components/ui/menubar.module.js.map +1 -0
  402. package/dist/components/ui/menubar_module.css +145 -0
  403. package/dist/components/ui/menubar_module.css.map +1 -0
  404. package/dist/components/ui/meter.d.ts +85 -0
  405. package/dist/components/ui/meter.d.ts.map +1 -0
  406. package/dist/components/ui/meter.js +75 -0
  407. package/dist/components/ui/meter.js.map +1 -0
  408. package/dist/components/ui/meter.module.js +10 -0
  409. package/dist/components/ui/meter.module.js.map +1 -0
  410. package/dist/components/ui/meter_module.css +31 -0
  411. package/dist/components/ui/meter_module.css.map +1 -0
  412. package/dist/components/ui/navigation-menu.d.ts +233 -11
  413. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  414. package/dist/components/ui/navigation-menu.js +138 -49
  415. package/dist/components/ui/navigation-menu.js.map +1 -1
  416. package/dist/components/ui/navigation-menu.module.js +18 -0
  417. package/dist/components/ui/navigation-menu.module.js.map +1 -0
  418. package/dist/components/ui/navigation-menu_module.css +112 -0
  419. package/dist/components/ui/navigation-menu_module.css.map +1 -0
  420. package/dist/components/ui/number-field.d.ts +138 -0
  421. package/dist/components/ui/number-field.d.ts.map +1 -0
  422. package/dist/components/ui/number-field.js +111 -0
  423. package/dist/components/ui/number-field.js.map +1 -0
  424. package/dist/components/ui/number-field.module.js +15 -0
  425. package/dist/components/ui/number-field.module.js.map +1 -0
  426. package/dist/components/ui/number-field_module.css +125 -0
  427. package/dist/components/ui/number-field_module.css.map +1 -0
  428. package/dist/components/ui/pagination.d.ts +150 -24
  429. package/dist/components/ui/pagination.d.ts.map +1 -1
  430. package/dist/components/ui/pagination.js +41 -38
  431. package/dist/components/ui/pagination.js.map +1 -1
  432. package/dist/components/ui/pagination.module.js +14 -0
  433. package/dist/components/ui/pagination.module.js.map +1 -0
  434. package/dist/components/ui/pagination_module.css +66 -0
  435. package/dist/components/ui/pagination_module.css.map +1 -0
  436. package/dist/components/ui/popover.d.ts +133 -5
  437. package/dist/components/ui/popover.d.ts.map +1 -1
  438. package/dist/components/ui/popover.js +68 -14
  439. package/dist/components/ui/popover.js.map +1 -1
  440. package/dist/components/ui/popover.module.js +9 -0
  441. package/dist/components/ui/popover.module.js.map +1 -0
  442. package/dist/components/ui/popover_module.css +28 -0
  443. package/dist/components/ui/popover_module.css.map +1 -0
  444. package/dist/components/ui/progress.d.ts +31 -2
  445. package/dist/components/ui/progress.d.ts.map +1 -1
  446. package/dist/components/ui/progress.js +22 -13
  447. package/dist/components/ui/progress.js.map +1 -1
  448. package/dist/components/ui/progress.module.js +8 -0
  449. package/dist/components/ui/progress.module.js.map +1 -0
  450. package/dist/components/ui/progress_module.css +20 -0
  451. package/dist/components/ui/progress_module.css.map +1 -0
  452. package/dist/components/ui/radio-group.d.ts +42 -3
  453. package/dist/components/ui/radio-group.d.ts.map +1 -1
  454. package/dist/components/ui/radio-group.js +38 -16
  455. package/dist/components/ui/radio-group.js.map +1 -1
  456. package/dist/components/ui/radio-group.module.js +10 -0
  457. package/dist/components/ui/radio-group.module.js.map +1 -0
  458. package/dist/components/ui/radio-group_module.css +44 -0
  459. package/dist/components/ui/radio-group_module.css.map +1 -0
  460. package/dist/components/ui/resizable.d.ts +78 -5
  461. package/dist/components/ui/resizable.d.ts.map +1 -1
  462. package/dist/components/ui/resizable.js +23 -13
  463. package/dist/components/ui/resizable.js.map +1 -1
  464. package/dist/components/ui/resizable.module.js +10 -0
  465. package/dist/components/ui/resizable.module.js.map +1 -0
  466. package/dist/components/ui/resizable_module.css +70 -0
  467. package/dist/components/ui/resizable_module.css.map +1 -0
  468. package/dist/components/ui/ripple-button.d.ts +23 -2
  469. package/dist/components/ui/ripple-button.d.ts.map +1 -1
  470. package/dist/components/ui/ripple-button.js +26 -11
  471. package/dist/components/ui/ripple-button.js.map +1 -1
  472. package/dist/components/ui/ripple-button.module.js +9 -0
  473. package/dist/components/ui/ripple-button.module.js.map +1 -0
  474. package/dist/components/ui/ripple-button_module.css +38 -0
  475. package/dist/components/ui/ripple-button_module.css.map +1 -0
  476. package/dist/components/ui/scratcher.d.ts +26 -3
  477. package/dist/components/ui/scratcher.d.ts.map +1 -1
  478. package/dist/components/ui/scratcher.js +89 -90
  479. package/dist/components/ui/scratcher.js.map +1 -1
  480. package/dist/components/ui/scratcher.module.js +8 -0
  481. package/dist/components/ui/scratcher.module.js.map +1 -0
  482. package/dist/components/ui/scratcher_module.css +13 -0
  483. package/dist/components/ui/scratcher_module.css.map +1 -0
  484. package/dist/components/ui/scroll-area.d.ts +44 -3
  485. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  486. package/dist/components/ui/scroll-area.js +44 -19
  487. package/dist/components/ui/scroll-area.js.map +1 -1
  488. package/dist/components/ui/scroll-area.module.js +14 -0
  489. package/dist/components/ui/scroll-area.module.js.map +1 -0
  490. package/dist/components/ui/scroll-area_module.css +51 -0
  491. package/dist/components/ui/scroll-area_module.css.map +1 -0
  492. package/dist/components/ui/select.d.ts +269 -11
  493. package/dist/components/ui/select.d.ts.map +1 -1
  494. package/dist/components/ui/select.js +152 -67
  495. package/dist/components/ui/select.js.map +1 -1
  496. package/dist/components/ui/select.module.js +20 -0
  497. package/dist/components/ui/select.module.js.map +1 -0
  498. package/dist/components/ui/select_module.css +134 -0
  499. package/dist/components/ui/select_module.css.map +1 -0
  500. package/dist/components/ui/separator.d.ts +33 -2
  501. package/dist/components/ui/separator.d.ts.map +1 -1
  502. package/dist/components/ui/separator.js +20 -9
  503. package/dist/components/ui/separator.js.map +1 -1
  504. package/dist/components/ui/separator.module.js +9 -0
  505. package/dist/components/ui/separator.module.js.map +1 -0
  506. package/dist/components/ui/separator_module.css +17 -0
  507. package/dist/components/ui/separator_module.css.map +1 -0
  508. package/dist/components/ui/sheet.d.ts +297 -23
  509. package/dist/components/ui/sheet.d.ts.map +1 -1
  510. package/dist/components/ui/sheet.js +121 -63
  511. package/dist/components/ui/sheet.js.map +1 -1
  512. package/dist/components/ui/sheet.module.js +18 -0
  513. package/dist/components/ui/sheet.module.js.map +1 -0
  514. package/dist/components/ui/sheet_module.css +136 -0
  515. package/dist/components/ui/sheet_module.css.map +1 -0
  516. package/dist/components/ui/sidebar.d.ts +491 -23
  517. package/dist/components/ui/sidebar.d.ts.map +1 -1
  518. package/dist/components/ui/sidebar.js +214 -143
  519. package/dist/components/ui/sidebar.js.map +1 -1
  520. package/dist/components/ui/sidebar.module.js +50 -0
  521. package/dist/components/ui/sidebar.module.js.map +1 -0
  522. package/dist/components/ui/sidebar_module.css +569 -0
  523. package/dist/components/ui/sidebar_module.css.map +1 -0
  524. package/dist/components/ui/skeleton.d.ts +30 -1
  525. package/dist/components/ui/skeleton.d.ts.map +1 -1
  526. package/dist/components/ui/skeleton.js +7 -7
  527. package/dist/components/ui/skeleton.js.map +1 -1
  528. package/dist/components/ui/skeleton.module.js +8 -0
  529. package/dist/components/ui/skeleton.module.js.map +1 -0
  530. package/dist/components/ui/skeleton_module.css +18 -0
  531. package/dist/components/ui/skeleton_module.css.map +1 -0
  532. package/dist/components/ui/slider.d.ts +48 -2
  533. package/dist/components/ui/slider.d.ts.map +1 -1
  534. package/dist/components/ui/slider.js +44 -17
  535. package/dist/components/ui/slider.js.map +1 -1
  536. package/dist/components/ui/slider.module.js +11 -0
  537. package/dist/components/ui/slider.module.js.map +1 -0
  538. package/dist/components/ui/slider_module.css +55 -0
  539. package/dist/components/ui/slider_module.css.map +1 -0
  540. package/dist/components/ui/sonner.d.ts +138 -4
  541. package/dist/components/ui/sonner.d.ts.map +1 -1
  542. package/dist/components/ui/sonner.js +450 -17
  543. package/dist/components/ui/sonner.js.map +1 -1
  544. package/dist/components/ui/sonner.module.js +34 -0
  545. package/dist/components/ui/sonner.module.js.map +1 -0
  546. package/dist/components/ui/sonner_module.css +233 -0
  547. package/dist/components/ui/sonner_module.css.map +1 -0
  548. package/dist/components/ui/spinner.d.ts +20 -1
  549. package/dist/components/ui/spinner.d.ts.map +1 -1
  550. package/dist/components/ui/spinner.js +29 -11
  551. package/dist/components/ui/spinner.js.map +1 -1
  552. package/dist/components/ui/spinner.module.js +10 -0
  553. package/dist/components/ui/spinner.module.js.map +1 -0
  554. package/dist/components/ui/spinner_module.css +28 -0
  555. package/dist/components/ui/spinner_module.css.map +1 -0
  556. package/dist/components/ui/stepper.d.ts +48 -0
  557. package/dist/components/ui/stepper.d.ts.map +1 -0
  558. package/dist/components/ui/stepper.js +41 -0
  559. package/dist/components/ui/stepper.js.map +1 -0
  560. package/dist/components/ui/stepper.module.js +12 -0
  561. package/dist/components/ui/stepper.module.js.map +1 -0
  562. package/dist/components/ui/stepper_module.css +75 -0
  563. package/dist/components/ui/stepper_module.css.map +1 -0
  564. package/dist/components/ui/switch.d.ts +29 -2
  565. package/dist/components/ui/switch.d.ts.map +1 -1
  566. package/dist/components/ui/switch.js +21 -9
  567. package/dist/components/ui/switch.js.map +1 -1
  568. package/dist/components/ui/switch.module.js +8 -0
  569. package/dist/components/ui/switch.module.js.map +1 -0
  570. package/dist/components/ui/switch_module.css +45 -0
  571. package/dist/components/ui/switch_module.css.map +1 -0
  572. package/dist/components/ui/table-skeleton.js +34 -0
  573. package/dist/components/ui/table-skeleton.js.map +1 -0
  574. package/dist/components/ui/table-skeleton.module.js +11 -0
  575. package/dist/components/ui/table-skeleton.module.js.map +1 -0
  576. package/dist/components/ui/table-skeleton_module.css +32 -0
  577. package/dist/components/ui/table-skeleton_module.css.map +1 -0
  578. package/dist/components/ui/table.d.ts +170 -8
  579. package/dist/components/ui/table.d.ts.map +1 -1
  580. package/dist/components/ui/table.js +17 -17
  581. package/dist/components/ui/table.js.map +1 -1
  582. package/dist/components/ui/table.module.js +15 -0
  583. package/dist/components/ui/table.module.js.map +1 -0
  584. package/dist/components/ui/table_module.css +71 -0
  585. package/dist/components/ui/table_module.css.map +1 -0
  586. package/dist/components/ui/tabs.d.ts +114 -5
  587. package/dist/components/ui/tabs.d.ts.map +1 -1
  588. package/dist/components/ui/tabs.js +71 -20
  589. package/dist/components/ui/tabs.js.map +1 -1
  590. package/dist/components/ui/tabs.module.js +10 -0
  591. package/dist/components/ui/tabs.module.js.map +1 -0
  592. package/dist/components/ui/tabs_module.css +89 -0
  593. package/dist/components/ui/tabs_module.css.map +1 -0
  594. package/dist/components/ui/textarea.d.ts +24 -1
  595. package/dist/components/ui/textarea.d.ts.map +1 -1
  596. package/dist/components/ui/textarea.js +2 -2
  597. package/dist/components/ui/textarea.js.map +1 -1
  598. package/dist/components/ui/textarea.module.js +7 -0
  599. package/dist/components/ui/textarea.module.js.map +1 -0
  600. package/dist/components/ui/textarea_module.css +33 -0
  601. package/dist/components/ui/textarea_module.css.map +1 -0
  602. package/dist/components/ui/timeline.d.ts +111 -0
  603. package/dist/components/ui/timeline.d.ts.map +1 -0
  604. package/dist/components/ui/timeline.js +34 -0
  605. package/dist/components/ui/timeline.js.map +1 -0
  606. package/dist/components/ui/timeline.module.js +10 -0
  607. package/dist/components/ui/timeline.module.js.map +1 -0
  608. package/dist/components/ui/timeline_module.css +47 -0
  609. package/dist/components/ui/timeline_module.css.map +1 -0
  610. package/dist/components/ui/toggle-group.d.ts +75 -10
  611. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  612. package/dist/components/ui/toggle-group.js +32 -21
  613. package/dist/components/ui/toggle-group.js.map +1 -1
  614. package/dist/components/ui/toggle-group.module.js +7 -0
  615. package/dist/components/ui/toggle-group.module.js.map +1 -0
  616. package/dist/components/ui/toggle-group_module.css +8 -0
  617. package/dist/components/ui/toggle-group_module.css.map +1 -0
  618. package/dist/components/ui/toggle.d.ts +60 -11
  619. package/dist/components/ui/toggle.d.ts.map +1 -1
  620. package/dist/components/ui/toggle.js +29 -29
  621. package/dist/components/ui/toggle.js.map +1 -1
  622. package/dist/components/ui/toggle.module.js +12 -0
  623. package/dist/components/ui/toggle.module.js.map +1 -0
  624. package/dist/components/ui/toggle_module.css +62 -0
  625. package/dist/components/ui/toggle_module.css.map +1 -0
  626. package/dist/components/ui/toolbar.d.ts +107 -0
  627. package/dist/components/ui/toolbar.d.ts.map +1 -0
  628. package/dist/components/ui/toolbar.js +90 -0
  629. package/dist/components/ui/toolbar.js.map +1 -0
  630. package/dist/components/ui/toolbar.module.js +12 -0
  631. package/dist/components/ui/toolbar.module.js.map +1 -0
  632. package/dist/components/ui/toolbar_module.css +115 -0
  633. package/dist/components/ui/toolbar_module.css.map +1 -0
  634. package/dist/components/ui/tooltip.d.ts +119 -5
  635. package/dist/components/ui/tooltip.d.ts.map +1 -1
  636. package/dist/components/ui/tooltip.js +48 -13
  637. package/dist/components/ui/tooltip.js.map +1 -1
  638. package/dist/components/ui/tooltip.module.js +9 -0
  639. package/dist/components/ui/tooltip.module.js.map +1 -0
  640. package/dist/components/ui/tooltip_module.css +35 -0
  641. package/dist/components/ui/tooltip_module.css.map +1 -0
  642. package/dist/components/ui/typewriter.d.ts +48 -13
  643. package/dist/components/ui/typewriter.d.ts.map +1 -1
  644. package/dist/components/ui/typewriter.js +46 -49
  645. package/dist/components/ui/typewriter.js.map +1 -1
  646. package/dist/components/ui/typewriter.module.js +16 -0
  647. package/dist/components/ui/typewriter.module.js.map +1 -0
  648. package/dist/components/ui/typewriter_module.css +102 -0
  649. package/dist/components/ui/typewriter_module.css.map +1 -0
  650. package/dist/components/ui/visually-hidden.d.ts +38 -0
  651. package/dist/components/ui/visually-hidden.d.ts.map +1 -0
  652. package/dist/components/ui/visually-hidden.js +13 -0
  653. package/dist/components/ui/visually-hidden.js.map +1 -0
  654. package/dist/components/ui/visually-hidden.module.js +7 -0
  655. package/dist/components/ui/visually-hidden.module.js.map +1 -0
  656. package/dist/components/ui/visually-hidden_module.css +14 -0
  657. package/dist/components/ui/visually-hidden_module.css.map +1 -0
  658. package/dist/hooks/useAnnounce.js +46 -0
  659. package/dist/hooks/useAnnounce.js.map +1 -0
  660. package/dist/hooks/useBreakpoint.d.ts +17 -0
  661. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  662. package/dist/hooks/useBreakpoint.js +16 -0
  663. package/dist/hooks/useBreakpoint.js.map +1 -0
  664. package/dist/hooks/useClipboard.d.ts +77 -0
  665. package/dist/hooks/useClipboard.d.ts.map +1 -0
  666. package/dist/hooks/useClipboard.js +42 -0
  667. package/dist/hooks/useClipboard.js.map +1 -0
  668. package/dist/hooks/useColorScheme.d.ts +14 -0
  669. package/dist/hooks/useColorScheme.d.ts.map +1 -0
  670. package/dist/hooks/useColorScheme.js +9 -0
  671. package/dist/hooks/useColorScheme.js.map +1 -0
  672. package/dist/hooks/useControllableState.d.ts +54 -0
  673. package/dist/hooks/useControllableState.d.ts.map +1 -0
  674. package/dist/hooks/useControllableState.js +29 -0
  675. package/dist/hooks/useControllableState.js.map +1 -0
  676. package/dist/hooks/useDebounce.d.ts +33 -0
  677. package/dist/hooks/useDebounce.d.ts.map +1 -0
  678. package/dist/hooks/useDebounce.js +20 -0
  679. package/dist/hooks/useDebounce.js.map +1 -0
  680. package/dist/hooks/useEventCallback.d.ts +34 -0
  681. package/dist/hooks/useEventCallback.d.ts.map +1 -0
  682. package/dist/hooks/useEventCallback.js +12 -0
  683. package/dist/hooks/useEventCallback.js.map +1 -0
  684. package/dist/hooks/useFocusManager.js +51 -0
  685. package/dist/hooks/useFocusManager.js.map +1 -0
  686. package/dist/hooks/useFocusVisible.d.ts +50 -0
  687. package/dist/hooks/useFocusVisible.d.ts.map +1 -0
  688. package/dist/hooks/useFocusVisible.js +35 -0
  689. package/dist/hooks/useFocusVisible.js.map +1 -0
  690. package/dist/hooks/useId.d.ts +30 -0
  691. package/dist/hooks/useId.d.ts.map +1 -0
  692. package/dist/hooks/useId.js +9 -0
  693. package/dist/hooks/useId.js.map +1 -0
  694. package/dist/hooks/useIntersectionObserver.d.ts +51 -0
  695. package/dist/hooks/useIntersectionObserver.d.ts.map +1 -0
  696. package/dist/hooks/useIntersectionObserver.js +25 -0
  697. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  698. package/dist/hooks/useInterval.d.ts +55 -0
  699. package/dist/hooks/useInterval.d.ts.map +1 -0
  700. package/dist/hooks/useInterval.js +24 -0
  701. package/dist/hooks/useInterval.js.map +1 -0
  702. package/dist/hooks/useIsMobile.d.ts +5 -11
  703. package/dist/hooks/useIsMobile.d.ts.map +1 -1
  704. package/dist/hooks/useIsMobile.js +2 -13
  705. package/dist/hooks/useIsMobile.js.map +1 -1
  706. package/dist/hooks/useLocalStorage.d.ts +43 -0
  707. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  708. package/dist/hooks/useLocalStorage.js +53 -0
  709. package/dist/hooks/useLocalStorage.js.map +1 -0
  710. package/dist/hooks/useMediaQuery.d.ts +14 -0
  711. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  712. package/dist/hooks/useMediaQuery.js +20 -0
  713. package/dist/hooks/useMediaQuery.js.map +1 -0
  714. package/dist/hooks/useMergedRefs.d.ts +27 -0
  715. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  716. package/dist/hooks/useMergedRefs.js +11 -0
  717. package/dist/hooks/useMergedRefs.js.map +1 -0
  718. package/dist/hooks/useOnClickOutside.d.ts +32 -0
  719. package/dist/hooks/useOnClickOutside.d.ts.map +1 -0
  720. package/dist/hooks/useOnClickOutside.js +23 -0
  721. package/dist/hooks/useOnClickOutside.js.map +1 -0
  722. package/dist/hooks/usePrefersContrast.d.ts +19 -0
  723. package/dist/hooks/usePrefersContrast.d.ts.map +1 -0
  724. package/dist/hooks/usePrefersContrast.js +8 -0
  725. package/dist/hooks/usePrefersContrast.js.map +1 -0
  726. package/dist/hooks/usePrevious.d.ts +33 -0
  727. package/dist/hooks/usePrevious.d.ts.map +1 -0
  728. package/dist/hooks/usePrevious.js +14 -0
  729. package/dist/hooks/usePrevious.js.map +1 -0
  730. package/dist/hooks/useReducedMotion.d.ts +19 -0
  731. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  732. package/dist/hooks/useReducedMotion.js +2 -0
  733. package/dist/hooks/useThrottle.d.ts +37 -0
  734. package/dist/hooks/useThrottle.d.ts.map +1 -0
  735. package/dist/hooks/useThrottle.js +34 -0
  736. package/dist/hooks/useThrottle.js.map +1 -0
  737. package/dist/hooks/useTimeout.d.ts +28 -0
  738. package/dist/hooks/useTimeout.d.ts.map +1 -0
  739. package/dist/hooks/useTimeout.js +24 -0
  740. package/dist/hooks/useTimeout.js.map +1 -0
  741. package/dist/index.css +104 -5363
  742. package/dist/index.css.map +1 -1
  743. package/dist/index.d.ts +52 -8
  744. package/dist/index.d.ts.map +1 -1
  745. package/dist/index.js +103 -72
  746. package/dist/lib/utilities.d.ts +5 -5
  747. package/dist/lib/utilities.d.ts.map +1 -1
  748. package/dist/lib/utilities.js +1 -2
  749. package/dist/lib/utilities.js.map +1 -1
  750. package/dist/motion/Collapse.js +19 -0
  751. package/dist/motion/Collapse.js.map +1 -0
  752. package/dist/motion/Collapse.module.js +8 -0
  753. package/dist/motion/Collapse.module.js.map +1 -0
  754. package/dist/motion/Collapse_module.css +25 -0
  755. package/dist/motion/Collapse_module.css.map +1 -0
  756. package/dist/motion/Presence.js +14 -0
  757. package/dist/motion/Presence.js.map +1 -0
  758. package/dist/motion/index.js +5 -0
  759. package/dist/motion/presets.js +117 -0
  760. package/dist/motion/presets.js.map +1 -0
  761. package/dist/motion/tokens.js +41 -0
  762. package/dist/motion/tokens.js.map +1 -0
  763. package/dist/rslib-runtime.js +39 -0
  764. package/dist/rslib-runtime.js.map +1 -0
  765. package/package.json +233 -67
  766. package/src/components/ui/accordion.module.css +70 -0
  767. package/src/components/ui/accordion.tsx +278 -44
  768. package/src/components/ui/alert-dialog.module.css +87 -0
  769. package/src/components/ui/alert-dialog.tsx +481 -99
  770. package/src/components/ui/alert.module.css +57 -0
  771. package/src/components/ui/alert.tsx +136 -43
  772. package/src/components/ui/aspect-ratio.module.css +7 -0
  773. package/src/components/ui/aspect-ratio.tsx +38 -3
  774. package/src/components/ui/async-boundary.tsx +56 -0
  775. package/src/components/ui/avatar.module.css +31 -0
  776. package/src/components/ui/avatar.tsx +149 -36
  777. package/src/components/ui/background-beams.module.css +20 -0
  778. package/src/components/ui/background-beams.tsx +173 -134
  779. package/src/components/ui/badge.module.css +60 -0
  780. package/src/components/ui/badge.tsx +100 -32
  781. package/src/components/ui/breadcrumb.module.css +87 -0
  782. package/src/components/ui/breadcrumb.tsx +256 -74
  783. package/src/components/ui/bubble-background.module.css +97 -0
  784. package/src/components/ui/bubble-background.tsx +92 -52
  785. package/src/components/ui/button-group.module.css +76 -0
  786. package/src/components/ui/button-group.tsx +135 -46
  787. package/src/components/ui/button.module.css +138 -0
  788. package/src/components/ui/button.tsx +159 -41
  789. package/src/components/ui/calendar.module.css +250 -0
  790. package/src/components/ui/calendar.tsx +135 -111
  791. package/src/components/ui/card-skeleton.module.css +50 -0
  792. package/src/components/ui/card-skeleton.tsx +69 -0
  793. package/src/components/ui/card.module.css +41 -0
  794. package/src/components/ui/card.tsx +175 -22
  795. package/src/components/ui/carousel.module.css +80 -0
  796. package/src/components/ui/carousel.tsx +186 -43
  797. package/src/components/ui/chart.module.css +164 -0
  798. package/src/components/ui/chart.tsx +447 -102
  799. package/src/components/ui/checkbox-group.module.css +8 -0
  800. package/src/components/ui/checkbox-group.tsx +53 -0
  801. package/src/components/ui/checkbox.module.css +43 -0
  802. package/src/components/ui/checkbox.tsx +81 -19
  803. package/src/components/ui/collapsible.module.css +24 -0
  804. package/src/components/ui/collapsible.tsx +140 -3
  805. package/src/components/ui/combobox.module.css +158 -0
  806. package/src/components/ui/combobox.tsx +569 -0
  807. package/src/components/ui/command.module.css +193 -0
  808. package/src/components/ui/command.tsx +893 -114
  809. package/src/components/ui/context-menu.module.css +113 -0
  810. package/src/components/ui/context-menu.tsx +619 -157
  811. package/src/components/ui/copy-button.module.css +34 -0
  812. package/src/components/ui/copy-button.tsx +116 -0
  813. package/src/components/ui/counting-number.module.css +4 -0
  814. package/src/components/ui/counting-number.tsx +69 -31
  815. package/src/components/ui/dialog.module.css +113 -0
  816. package/src/components/ui/dialog.tsx +427 -81
  817. package/src/components/ui/dot-background.module.css +12 -0
  818. package/src/components/ui/dot-background.tsx +134 -126
  819. package/src/components/ui/drawer.module.css +85 -0
  820. package/src/components/ui/drawer.tsx +410 -80
  821. package/src/components/ui/dropdown-menu.module.css +113 -0
  822. package/src/components/ui/dropdown-menu.tsx +619 -159
  823. package/src/components/ui/dropdrawer.module.css +322 -0
  824. package/src/components/ui/dropdrawer.tsx +870 -400
  825. package/src/components/ui/empty.module.css +84 -0
  826. package/src/components/ui/empty.tsx +176 -52
  827. package/src/components/ui/error-boundary.module.css +36 -0
  828. package/src/components/ui/error-boundary.tsx +127 -0
  829. package/src/components/ui/field.module.css +179 -0
  830. package/src/components/ui/field.tsx +345 -139
  831. package/src/components/ui/fireworks-background.module.css +13 -0
  832. package/src/components/ui/fireworks-background.tsx +89 -51
  833. package/src/components/ui/flip-button.module.css +44 -0
  834. package/src/components/ui/flip-button.tsx +59 -28
  835. package/src/components/ui/focus-scope.module.css +3 -0
  836. package/src/components/ui/focus-scope.tsx +160 -0
  837. package/src/components/ui/form-skeleton.module.css +28 -0
  838. package/src/components/ui/form-skeleton.tsx +62 -0
  839. package/src/components/ui/form.module.css +20 -0
  840. package/src/components/ui/form.tsx +244 -33
  841. package/src/components/ui/gradient-background.module.css +6 -0
  842. package/src/components/ui/gradient-background.tsx +27 -5
  843. package/src/components/ui/gradient-text.module.css +23 -0
  844. package/src/components/ui/gradient-text.tsx +36 -9
  845. package/src/components/ui/highlight-text.module.css +14 -0
  846. package/src/components/ui/highlight-text.tsx +37 -15
  847. package/src/components/ui/hole-background.module.css +84 -0
  848. package/src/components/ui/hole-background.tsx +290 -162
  849. package/src/components/ui/hover-card.module.css +21 -0
  850. package/src/components/ui/hover-card.tsx +142 -21
  851. package/src/components/ui/input-group.module.css +148 -0
  852. package/src/components/ui/input-group.tsx +222 -98
  853. package/src/components/ui/input-otp.module.css +92 -0
  854. package/src/components/ui/input-otp.tsx +159 -33
  855. package/src/components/ui/input.module.css +37 -0
  856. package/src/components/ui/input.tsx +56 -14
  857. package/src/components/ui/item.module.css +143 -0
  858. package/src/components/ui/item.tsx +331 -104
  859. package/src/components/ui/kbd.module.css +31 -0
  860. package/src/components/ui/kbd.tsx +60 -17
  861. package/src/components/ui/label.module.css +13 -0
  862. package/src/components/ui/label.tsx +38 -14
  863. package/src/components/ui/list-skeleton.module.css +35 -0
  864. package/src/components/ui/list-skeleton.tsx +70 -0
  865. package/src/components/ui/loading-overlay.module.css +19 -0
  866. package/src/components/ui/loading-overlay.tsx +72 -0
  867. package/src/components/ui/menubar.module.css +144 -0
  868. package/src/components/ui/menubar.tsx +604 -192
  869. package/src/components/ui/meter.module.css +32 -0
  870. package/src/components/ui/meter.tsx +169 -0
  871. package/src/components/ui/navigation-menu.module.css +110 -0
  872. package/src/components/ui/navigation-menu.tsx +381 -99
  873. package/src/components/ui/number-field.module.css +126 -0
  874. package/src/components/ui/number-field.tsx +247 -0
  875. package/src/components/ui/pagination.module.css +64 -0
  876. package/src/components/ui/pagination.tsx +250 -72
  877. package/src/components/ui/popover.module.css +26 -0
  878. package/src/components/ui/popover.tsx +207 -25
  879. package/src/components/ui/progress.module.css +15 -0
  880. package/src/components/ui/progress.tsx +54 -16
  881. package/src/components/ui/radio-group.module.css +41 -0
  882. package/src/components/ui/radio-group.tsx +88 -34
  883. package/src/components/ui/resizable.module.css +67 -0
  884. package/src/components/ui/resizable.tsx +106 -26
  885. package/src/components/ui/ripple-button.module.css +35 -0
  886. package/src/components/ui/ripple-button.tsx +55 -21
  887. package/src/components/ui/scratcher.module.css +9 -0
  888. package/src/components/ui/scratcher.tsx +134 -108
  889. package/src/components/ui/scroll-area.module.css +47 -0
  890. package/src/components/ui/scroll-area.tsx +93 -34
  891. package/src/components/ui/select.module.css +131 -0
  892. package/src/components/ui/select.tsx +435 -124
  893. package/src/components/ui/separator.module.css +14 -0
  894. package/src/components/ui/separator.tsx +60 -18
  895. package/src/components/ui/sheet.module.css +138 -0
  896. package/src/components/ui/sheet.tsx +427 -95
  897. package/src/components/ui/sidebar.module.css +594 -0
  898. package/src/components/ui/sidebar.tsx +900 -425
  899. package/src/components/ui/skeleton.module.css +14 -0
  900. package/src/components/ui/skeleton.tsx +39 -9
  901. package/src/components/ui/slider.module.css +48 -0
  902. package/src/components/ui/slider.tsx +89 -16
  903. package/src/components/ui/sonner.module.css +246 -0
  904. package/src/components/ui/sonner.tsx +777 -25
  905. package/src/components/ui/spinner.module.css +25 -0
  906. package/src/components/ui/spinner.tsx +51 -12
  907. package/src/components/ui/stepper.module.css +72 -0
  908. package/src/components/ui/stepper.tsx +95 -0
  909. package/src/components/ui/switch.module.css +42 -0
  910. package/src/components/ui/switch.tsx +53 -20
  911. package/src/components/ui/table-skeleton.module.css +29 -0
  912. package/src/components/ui/table-skeleton.tsx +79 -0
  913. package/src/components/ui/table.module.css +66 -0
  914. package/src/components/ui/table.tsx +235 -61
  915. package/src/components/ui/tabs.module.css +89 -0
  916. package/src/components/ui/tabs.tsx +192 -45
  917. package/src/components/ui/textarea.module.css +30 -0
  918. package/src/components/ui/textarea.tsx +30 -10
  919. package/src/components/ui/timeline.module.css +43 -0
  920. package/src/components/ui/timeline.tsx +153 -0
  921. package/src/components/ui/toggle-group.module.css +5 -0
  922. package/src/components/ui/toggle-group.tsx +115 -32
  923. package/src/components/ui/toggle.module.css +57 -0
  924. package/src/components/ui/toggle.tsx +89 -33
  925. package/src/components/ui/toolbar.module.css +112 -0
  926. package/src/components/ui/toolbar.tsx +209 -0
  927. package/src/components/ui/tooltip.module.css +39 -0
  928. package/src/components/ui/tooltip.tsx +181 -24
  929. package/src/components/ui/typewriter.module.css +101 -0
  930. package/src/components/ui/typewriter.tsx +130 -128
  931. package/src/components/ui/visually-hidden.module.css +11 -0
  932. package/src/components/ui/visually-hidden.tsx +50 -0
  933. package/src/css-modules.d.ts +9 -0
  934. package/src/hooks/useAnnounce.tsx +73 -0
  935. package/src/hooks/useBreakpoint.tsx +41 -0
  936. package/src/hooks/useClipboard.tsx +137 -0
  937. package/src/hooks/useColorScheme.tsx +23 -0
  938. package/src/hooks/useControllableState.tsx +81 -0
  939. package/src/hooks/useDebounce.tsx +50 -0
  940. package/src/hooks/useEventCallback.tsx +47 -0
  941. package/src/hooks/useFocusManager.tsx +89 -0
  942. package/src/hooks/useFocusVisible.tsx +88 -0
  943. package/src/hooks/useId.tsx +36 -0
  944. package/src/hooks/useIntersectionObserver.tsx +81 -0
  945. package/src/hooks/useInterval.tsx +80 -0
  946. package/src/hooks/useIsMobile.tsx +7 -28
  947. package/src/hooks/useLocalStorage.tsx +111 -0
  948. package/src/hooks/useMediaQuery.tsx +34 -0
  949. package/src/hooks/useMergedRefs.tsx +48 -0
  950. package/src/hooks/useOnClickOutside.tsx +55 -0
  951. package/src/hooks/usePrefersContrast.tsx +24 -0
  952. package/src/hooks/usePrevious.tsx +44 -0
  953. package/src/hooks/useReducedMotion.tsx +20 -0
  954. package/src/hooks/useThrottle.tsx +78 -0
  955. package/src/hooks/useTimeout.tsx +51 -0
  956. package/src/index.css +127 -65
  957. package/src/index.ts +219 -18
  958. package/src/lib/utilities.ts +8 -7
  959. package/src/motion/Collapse.module.css +22 -0
  960. package/src/motion/Collapse.tsx +52 -0
  961. package/src/motion/Presence.tsx +44 -0
  962. package/src/motion/index.ts +13 -0
  963. package/src/motion/presets.ts +77 -0
  964. package/src/motion/tokens.ts +37 -0
  965. package/src/stories/DesignPrinciples.mdx +48 -0
  966. package/src/stories/GettingStarted.mdx +92 -0
  967. package/src/stories/Welcome.mdx +44 -0
  968. package/src/hooks/useIsMobile.test.tsx +0 -96
  969. package/src/hooks/useWindowSize.test.tsx +0 -57
  970. package/src/index.test.ts +0 -537
  971. package/src/lib/color-conversion-utilities.test.ts +0 -225
  972. package/src/lib/utilities.test.ts +0 -37
@@ -1,21 +1,51 @@
1
1
  "use client";
2
2
 
3
- /* eslint-disable */
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
- import {cn} from "@/lib/utilities";
6
5
  import * as React from "react";
6
+ import type {DefaultTooltipContentProps, LegendPayload, ResponsiveContainerProps, TooltipValueType} from "recharts";
7
7
  import * as RechartsPrimitive from "recharts";
8
- import type {NameType, ValueType} from "recharts/types/component/DefaultTooltipContent";
9
8
 
10
- // Format: { THEME_NAME: CSS_SELECTOR }
9
+ import {cn} from "@/lib/utilities";
10
+
11
+ import styles from "./chart.module.css";
12
+
11
13
  const THEMES = {light: "", dark: ".dark"} as const;
12
14
 
15
+ /**
16
+ * Describes per-series chart metadata used by legend and tooltip renderers.
17
+ */
18
+ type ChartConfigItem = {
19
+ /**
20
+ * Label rendered by shared legends and tooltips for the series.
21
+ * @default undefined
22
+ */
23
+ label?: React.ReactNode;
24
+ /**
25
+ * Optional icon rendered in legends and tooltips instead of the color swatch.
26
+ * @default undefined
27
+ */
28
+ icon?: React.ComponentType;
29
+ /**
30
+ * Unit suffix appended to rendered values when the payload does not provide one.
31
+ * @default undefined
32
+ */
33
+ unit?: string;
34
+ /**
35
+ * Shared numeric formatter used by helper content renderers when no Recharts tooltip formatter is supplied.
36
+ * @default undefined
37
+ */
38
+ formatter?: (value: number) => string;
39
+ /**
40
+ * Recharts stack identifier that consuming chart primitives can read from config.
41
+ * @default undefined
42
+ */
43
+ stackId?: string;
44
+ };
45
+
13
46
  export type ChartConfig = Record<
14
47
  string,
15
- {
16
- label?: React.ReactNode;
17
- icon?: React.ComponentType;
18
- } & ({color?: string; theme?: never} | {color?: never; theme: Record<keyof typeof THEMES, string>})
48
+ ChartConfigItem & ({color?: string; theme?: never} | {color?: never; theme: Record<keyof typeof THEMES, string>})
19
49
  >;
20
50
 
21
51
  interface ChartContextProps {
@@ -24,7 +54,7 @@ interface ChartContextProps {
24
54
 
25
55
  const ChartContext = React.createContext<ChartContextProps | null>(null);
26
56
 
27
- function useChart() {
57
+ function useChart(): ChartContextProps {
28
58
  const context = React.useContext(ChartContext);
29
59
 
30
60
  if (!context) {
@@ -36,48 +66,124 @@ function useChart() {
36
66
 
37
67
  interface ChartContainerProps
38
68
  extends
39
- Omit<React.ComponentProps<"div">, "children">,
69
+ Omit<React.ComponentProps<"div">, "children" | "className" | "id">,
40
70
  Pick<
41
- React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>,
42
- "initialDimension" | "aspect" | "debounce" | "minHeight" | "minWidth" | "maxHeight" | "height" | "width" | "onResize" | "children"
71
+ ResponsiveContainerProps,
72
+ | "initialDimension"
73
+ | "aspect"
74
+ | "debounce"
75
+ | "minHeight"
76
+ | "minWidth"
77
+ | "maxHeight"
78
+ | "height"
79
+ | "width"
80
+ | "onResize"
81
+ | "children"
82
+ | "className"
83
+ | "id"
43
84
  > {
85
+ /**
86
+ * Series configuration used to resolve labels, icons, and colors.
87
+ * @default undefined
88
+ */
44
89
  config: ChartConfig;
90
+ /**
91
+ * Inline styles applied to the inner `ResponsiveContainer`.
92
+ * @default undefined
93
+ */
45
94
  innerResponsiveContainerStyle?: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["style"];
46
95
  }
47
96
 
48
- function ChartContainer({
49
- id,
50
- config,
51
- initialDimension = {width: 320, height: 200},
52
- className,
53
- children,
54
- ...props
55
- }: Readonly<ChartContainerProps>) {
56
- const uniqueId = React.useId();
57
- const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
58
-
59
- return (
60
- <ChartContext.Provider value={{config}}>
61
- <div
62
- data-slot='chart'
63
- data-chart={chartId}
64
- className={cn(
65
- "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
66
- className,
67
- )}
68
- {...props}>
69
- <ChartStyle
70
- id={chartId}
71
- config={config}
72
- />
73
- <RechartsPrimitive.ResponsiveContainer initialDimension={initialDimension}>{children}</RechartsPrimitive.ResponsiveContainer>
74
- </div>
75
- </ChartContext.Provider>
76
- );
77
- }
78
-
79
- const ChartStyle = ({id, config}: {id: string; config: ChartConfig}) => {
80
- const colorConfig = Object.entries(config).filter(([, config]) => config.theme ?? config.color);
97
+ /**
98
+ * Provides responsive chart layout and series config context for Recharts content.
99
+ *
100
+ * @remarks
101
+ * - Renders a wrapping `<div>` element
102
+ * - Built on `recharts` `ResponsiveContainer`
103
+ * - Injects CSS variables so legends and tooltips can share theme-aware colors
104
+ *
105
+ * @example
106
+ * ```tsx
107
+ * <ChartContainer config={{sales: {label: "Sales", color: "#2563eb"}}}>
108
+ * <RechartsPrimitive.BarChart data={data}>...</RechartsPrimitive.BarChart>
109
+ * </ChartContainer>
110
+ * ```
111
+ *
112
+ * @see {@link https://recharts.org/en-US/api/ResponsiveContainer | Recharts ResponsiveContainer Docs}
113
+ */
114
+ const ChartContainer = React.forwardRef<HTMLDivElement, ChartContainerProps>(
115
+ (
116
+ {
117
+ id,
118
+ config,
119
+ initialDimension = {width: 320, height: 200},
120
+ className,
121
+ children,
122
+ innerResponsiveContainerStyle,
123
+ aspect,
124
+ debounce,
125
+ height,
126
+ maxHeight,
127
+ minHeight,
128
+ minWidth,
129
+ onResize,
130
+ width,
131
+ ...props
132
+ },
133
+ ref,
134
+ ) => {
135
+ const uniqueId = React.useId();
136
+ const chartId = `chart-${id ?? uniqueId.replaceAll(":", "")}`;
137
+
138
+ return (
139
+ <ChartContext.Provider value={{config}}>
140
+ <div
141
+ data-slot='chart'
142
+ data-chart={chartId}
143
+ className={cn(styles.container, className)}
144
+ {...props}>
145
+ <ChartStyle
146
+ id={chartId}
147
+ config={config}
148
+ />
149
+ <RechartsPrimitive.ResponsiveContainer
150
+ ref={ref}
151
+ id={id}
152
+ className={className}
153
+ initialDimension={initialDimension}
154
+ aspect={aspect}
155
+ debounce={debounce}
156
+ height={height}
157
+ maxHeight={maxHeight}
158
+ minHeight={minHeight}
159
+ minWidth={minWidth}
160
+ onResize={onResize}
161
+ style={innerResponsiveContainerStyle}
162
+ width={width}>
163
+ {children}
164
+ </RechartsPrimitive.ResponsiveContainer>
165
+ </div>
166
+ </ChartContext.Provider>
167
+ );
168
+ },
169
+ );
170
+
171
+ /**
172
+ * Emits theme-aware CSS variables for configured chart series colors.
173
+ *
174
+ * @remarks
175
+ * - Renders a `<style>` element
176
+ * - Built on the shared chart configuration contract
177
+ *
178
+ * @example
179
+ * ```tsx
180
+ * <ChartStyle id='chart-sales' config={config} />
181
+ * ```
182
+ *
183
+ * @see {@link https://recharts.org | Recharts Docs}
184
+ */
185
+ const ChartStyle = ({id, config}: Readonly<{id: string; config: ChartConfig}>): React.JSX.Element | null => {
186
+ const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme ?? itemConfig.color);
81
187
 
82
188
  if (!colorConfig.length) {
83
189
  return null;
@@ -105,8 +211,40 @@ ${colorConfig
105
211
  );
106
212
  };
107
213
 
214
+ /**
215
+ * Re-exports the Recharts tooltip primitive for use with shared chart helpers.
216
+ *
217
+ * @remarks
218
+ * - Renders the Recharts tooltip container
219
+ * - Built on `recharts`
220
+ *
221
+ * @example
222
+ * ```tsx
223
+ * <ChartTooltip content={<ChartTooltipContent />} />
224
+ * ```
225
+ *
226
+ * @see {@link https://recharts.org/en-US/api/Tooltip | Recharts Tooltip Docs}
227
+ */
108
228
  const ChartTooltip = RechartsPrimitive.Tooltip;
109
229
 
230
+ /**
231
+ * Renders shared tooltip content for charts configured with {@link ChartContainer}.
232
+ *
233
+ * @remarks
234
+ * - Renders a `<div>` element when active
235
+ * - Built on `recharts` tooltip payloads and shared chart config context
236
+ * - Honors `active`, `payload`, `label`, `labelFormatter`, `formatter`, `separator`,
237
+ * `className`, `labelClassName`, `color`, `nameKey`, and `labelKey`
238
+ * - Ignores `wrapperClassName`, `contentStyle`, `itemStyle`, `labelStyle`, and
239
+ * `accessibilityLayer` because this helper renders its own DOM structure
240
+ *
241
+ * @example
242
+ * ```tsx
243
+ * <ChartTooltip content={<ChartTooltipContent indicator='line' />} />
244
+ * ```
245
+ *
246
+ * @see {@link https://recharts.org/en-US/api/Tooltip | Recharts Tooltip Docs}
247
+ */
110
248
  function ChartTooltipContent({
111
249
  active,
112
250
  payload,
@@ -121,6 +259,7 @@ function ChartTooltipContent({
121
259
  color,
122
260
  nameKey,
123
261
  labelKey,
262
+ separator,
124
263
  }: React.ComponentProps<typeof RechartsPrimitive.Tooltip>
125
264
  & React.ComponentProps<"div"> & {
126
265
  hideLabel?: boolean;
@@ -128,7 +267,7 @@ function ChartTooltipContent({
128
267
  indicator?: "line" | "dot" | "dashed";
129
268
  nameKey?: string;
130
269
  labelKey?: string;
131
- } & Omit<RechartsPrimitive.DefaultTooltipContentProps<ValueType, NameType>, "accessibilityLayer">) {
270
+ } & Omit<DefaultTooltipContentProps, "accessibilityLayer">): React.JSX.Element | null {
132
271
  const {config} = useChart();
133
272
 
134
273
  const tooltipLabel = React.useMemo(() => {
@@ -142,15 +281,15 @@ function ChartTooltipContent({
142
281
  const value = !labelKey && typeof label === "string" ? (config[label]?.label ?? label) : itemConfig?.label;
143
282
 
144
283
  if (labelFormatter) {
145
- return <div className={cn("font-medium", labelClassName)}>{labelFormatter(value, payload)}</div>;
284
+ return <div className={cn(styles.tooltipLabel, labelClassName)}>{labelFormatter(value, payload)}</div>;
146
285
  }
147
286
 
148
- if (!value) {
287
+ if (value === null || value === undefined) {
149
288
  return null;
150
289
  }
151
290
 
152
- return <div className={cn("font-medium", labelClassName)}>{value}</div>;
153
- }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
291
+ return <div className={cn(styles.tooltipLabel, labelClassName)}>{value}</div>;
292
+ }, [config, hideLabel, label, labelClassName, labelFormatter, labelKey, payload]);
154
293
 
155
294
  if (!active || !payload?.length) {
156
295
  return null;
@@ -159,29 +298,35 @@ function ChartTooltipContent({
159
298
  const nestLabel = payload.length === 1 && indicator !== "dot";
160
299
 
161
300
  return (
162
- <div
163
- className={cn(
164
- "border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
165
- className,
166
- )}>
301
+ <div className={cn(styles.tooltip, className)}>
167
302
  {!nestLabel ? tooltipLabel : null}
168
- <div className='grid gap-1.5'>
303
+ <div className={styles.tooltipBody}>
169
304
  {payload
170
305
  .filter((item) => item.type !== "none")
171
306
  .map((item, index) => {
172
- const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
307
+ const key = `${nameKey ?? item.dataKey ?? item.name ?? "value"}`;
173
308
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
174
- const indicatorColor = color ?? item.payload?.fill ?? item.color;
309
+ const indicatorColor = color ?? item.payload?.fill ?? item.color ?? "transparent";
310
+ const indicatorStyle = {
311
+ "--ac-chart-indicator-background": indicatorColor,
312
+ "--ac-chart-indicator-border": indicatorColor,
313
+ } as React.CSSProperties & Record<"--ac-chart-indicator-background" | "--ac-chart-indicator-border", string>;
314
+
315
+ const itemFormatter = formatter ?? item.formatter;
316
+ const hasFormatter = typeof itemFormatter === "function" && item.value !== undefined && item.name !== undefined;
317
+ const formatterResult = hasFormatter ? itemFormatter(item.value, item.name, item, index, payload) : undefined;
318
+ const formattedEntry = Array.isArray(formatterResult) && formatterResult.length === 2 ? formatterResult : undefined;
319
+ const resolvedName = formattedEntry?.[1] ?? itemConfig?.label ?? item.name;
320
+ const resolvedUnit = item.unit ?? itemConfig?.unit;
321
+ const resolvedValue =
322
+ formattedEntry?.[0] ?? (item.value !== null && item.value !== undefined ? formatChartValue(item.value, itemConfig) : null);
175
323
 
176
324
  return (
177
325
  <div
178
- key={index}
179
- className={cn(
180
- "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
181
- indicator === "dot" && "items-center",
182
- )}>
183
- {formatter && item?.value !== undefined && item.name ? (
184
- formatter(item.value, item.name, item, index, item.payload)
326
+ key={`${key}-${index}`}
327
+ className={cn(styles.tooltipItem, indicator === "dot" && styles.tooltipItemCenter)}>
328
+ {formatterResult !== null && formatterResult !== undefined && !formattedEntry ? (
329
+ formatterResult
185
330
  ) : (
186
331
  <>
187
332
  {itemConfig?.icon ? (
@@ -189,29 +334,29 @@ function ChartTooltipContent({
189
334
  ) : (
190
335
  !hideIndicator && (
191
336
  <div
192
- className={cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
193
- "h-2.5 w-2.5": indicator === "dot",
194
- "w-1": indicator === "line",
195
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
196
- "my-0.5": nestLabel && indicator === "dashed",
197
- })}
198
- style={
199
- {
200
- "--color-bg": indicatorColor,
201
- "--color-border": indicatorColor,
202
- } as React.CSSProperties
203
- }
337
+ className={cn(
338
+ styles.tooltipIndicator,
339
+ indicator === "dot" && styles.tooltipIndicatorDot,
340
+ indicator === "line" && styles.tooltipIndicatorLine,
341
+ indicator === "dashed" && styles.tooltipIndicatorDashed,
342
+ nestLabel && indicator === "dashed" && styles.tooltipIndicatorDashedNested,
343
+ )}
344
+ style={indicatorStyle}
204
345
  />
205
346
  )
206
347
  )}
207
- <div className={cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center")}>
208
- <div className='grid gap-1.5'>
348
+ <div className={cn(styles.tooltipValueRow, nestLabel && styles.tooltipValueRowNested)}>
349
+ <div className={styles.tooltipNameWrapper}>
209
350
  {nestLabel ? tooltipLabel : null}
210
- <span className='text-muted-foreground'>{itemConfig?.label ?? item.name}</span>
351
+ {resolvedName !== null && resolvedName !== undefined && <span className={styles.tooltipName}>{resolvedName}</span>}
211
352
  </div>
212
- {item.value != null && (
213
- <span className='text-foreground font-mono font-medium tabular-nums'>
214
- {typeof item.value === "number" ? item.value.toLocaleString() : String(item.value)}
353
+ {resolvedValue !== null && resolvedValue !== undefined && (
354
+ <span className={styles.tooltipValue}>
355
+ {resolvedName !== null && resolvedName !== undefined && separator ? (
356
+ <span aria-hidden='true'>{separator}</span>
357
+ ) : null}
358
+ {resolvedValue}
359
+ {resolvedUnit !== null && resolvedUnit !== undefined ? <span> {resolvedUnit}</span> : null}
215
360
  </span>
216
361
  )}
217
362
  </div>
@@ -225,8 +370,40 @@ function ChartTooltipContent({
225
370
  );
226
371
  }
227
372
 
373
+ /**
374
+ * Re-exports the Recharts legend primitive for use with shared chart helpers.
375
+ *
376
+ * @remarks
377
+ * - Renders the Recharts legend container
378
+ * - Built on `recharts`
379
+ *
380
+ * @example
381
+ * ```tsx
382
+ * <ChartLegend content={<ChartLegendContent />} />
383
+ * ```
384
+ *
385
+ * @see {@link https://recharts.org/en-US/api/Legend | Recharts Legend Docs}
386
+ */
228
387
  const ChartLegend = RechartsPrimitive.Legend;
229
388
 
389
+ /**
390
+ * Renders shared legend content for charts configured with {@link ChartContainer}.
391
+ *
392
+ * @remarks
393
+ * - Renders a `<div>` element when legend payload exists
394
+ * - Built on `recharts` legend payloads and shared chart config context
395
+ * - Honors `payload`, `verticalAlign`, `className`, and the custom `hideIcon`
396
+ * and `nameKey` props
397
+ * - Ignores Recharts presentational props such as `align`, `layout`, `iconSize`,
398
+ * `iconType`, `formatter`, and item mouse handlers because it renders custom markup
399
+ *
400
+ * @example
401
+ * ```tsx
402
+ * <ChartLegend content={<ChartLegendContent />} />
403
+ * ```
404
+ *
405
+ * @see {@link https://recharts.org/en-US/api/Legend | Recharts Legend Docs}
406
+ */
230
407
  function ChartLegendContent({
231
408
  className,
232
409
  hideIcon = false,
@@ -236,7 +413,7 @@ function ChartLegendContent({
236
413
  }: React.ComponentProps<"div"> & {
237
414
  hideIcon?: boolean;
238
415
  nameKey?: string;
239
- } & RechartsPrimitive.DefaultLegendContentProps) {
416
+ } & RechartsPrimitive.DefaultLegendContentProps): React.JSX.Element | null {
240
417
  const {config} = useChart();
241
418
 
242
419
  if (!payload?.length) {
@@ -244,7 +421,7 @@ function ChartLegendContent({
244
421
  }
245
422
 
246
423
  return (
247
- <div className={cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className)}>
424
+ <div className={cn(styles.legend, verticalAlign === "top" ? styles.legendTop : styles.legendBottom, className)}>
248
425
  {payload
249
426
  .filter((item) => item.type !== "none")
250
427
  .map((item) => {
@@ -253,19 +430,17 @@ function ChartLegendContent({
253
430
 
254
431
  return (
255
432
  <div
256
- key={item.value}
257
- className={cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3")}>
433
+ key={String(item.value)}
434
+ className={styles.legendItem}>
258
435
  {itemConfig?.icon && !hideIcon ? (
259
436
  <itemConfig.icon />
260
437
  ) : (
261
438
  <div
262
- className='h-2 w-2 shrink-0 rounded-[2px]'
263
- style={{
264
- backgroundColor: item.color,
265
- }}
439
+ className={styles.legendColor}
440
+ style={{backgroundColor: item.color}}
266
441
  />
267
442
  )}
268
- {itemConfig?.label}
443
+ {itemConfig?.label ?? item.value ?? formatLegendDataKey(item.dataKey)}
269
444
  </div>
270
445
  );
271
446
  })}
@@ -273,24 +448,194 @@ function ChartLegendContent({
273
448
  );
274
449
  }
275
450
 
276
- // Helper to extract item config from a payload.
277
- function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {
451
+ // eslint-disable-next-line sonarjs/function-return-type
452
+ function formatChartValue(value: TooltipValueType, itemConfig: ChartConfig[string] | undefined): React.ReactNode {
453
+ if (typeof value === "number") {
454
+ return itemConfig?.formatter ? itemConfig.formatter(value) : value.toLocaleString();
455
+ }
456
+
457
+ return String(value);
458
+ }
459
+
460
+ // eslint-disable-next-line sonarjs/function-return-type
461
+ function formatLegendDataKey(dataKey: LegendPayload["dataKey"]): string | null {
462
+ return typeof dataKey === "number" || typeof dataKey === "string" ? String(dataKey) : null;
463
+ }
464
+
465
+ function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string): ChartConfig[string] | undefined {
278
466
  if (typeof payload !== "object" || payload === null) {
279
467
  return undefined;
280
468
  }
281
469
 
282
- const payloadPayload =
283
- "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : undefined;
470
+ const payloadObject = payload as Record<string, unknown>;
471
+ const nestedPayload =
472
+ typeof payloadObject["payload"] === "object" && payloadObject["payload"] !== null
473
+ ? (payloadObject["payload"] as Record<string, unknown>)
474
+ : undefined;
284
475
 
285
- let configLabelKey: string = key;
476
+ let configLabelKey = key;
286
477
 
287
- if (key in payload && typeof payload[key as keyof typeof payload] === "string") {
288
- configLabelKey = payload[key as keyof typeof payload] as string;
289
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key as keyof typeof payloadPayload] === "string") {
290
- configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;
478
+ if (typeof payloadObject[key] === "string") {
479
+ configLabelKey = payloadObject[key] as string;
480
+ } else if (nestedPayload && typeof nestedPayload[key] === "string") {
481
+ configLabelKey = nestedPayload[key] as string;
291
482
  }
292
483
 
293
- return configLabelKey in config ? config[configLabelKey] : config[key];
484
+ return config[configLabelKey] ?? config[key];
294
485
  }
295
486
 
487
+ ChartContainer.displayName = "ChartContainer";
488
+ ChartStyle.displayName = "ChartStyle";
489
+ Object.assign(ChartTooltip, {displayName: "ChartTooltip"});
490
+ ChartTooltipContent.displayName = "ChartTooltipContent";
491
+ Object.assign(ChartLegend, {displayName: "ChartLegend"});
492
+ ChartLegendContent.displayName = "ChartLegendContent";
493
+
296
494
  export {ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent};
495
+
496
+ // ---------------------------------------------------------------------------
497
+ // Recharts v3.8+ primitive re-exports
498
+ // Consumers should import chart primitives from "@arolariu/components/chart"
499
+ // instead of importing directly from "recharts".
500
+ // ---------------------------------------------------------------------------
501
+
502
+ // -- Chart containers -------------------------------------------------------
503
+ /** @see {@link https://recharts.github.io/en-US/api/AreaChart | AreaChart API} */
504
+ export const {AreaChart} = RechartsPrimitive;
505
+ /** @see {@link https://recharts.github.io/en-US/api/BarChart | BarChart API} */
506
+ export const {BarChart} = RechartsPrimitive;
507
+ /** @see {@link https://recharts.github.io/en-US/api/ComposedChart | ComposedChart API} */
508
+ export const {ComposedChart} = RechartsPrimitive;
509
+ /** @see {@link https://recharts.github.io/en-US/api/FunnelChart | FunnelChart API} */
510
+ export const {FunnelChart} = RechartsPrimitive;
511
+ /** @see {@link https://recharts.github.io/en-US/api/LineChart | LineChart API} */
512
+ export const {LineChart} = RechartsPrimitive;
513
+ /** @see {@link https://recharts.github.io/en-US/api/PieChart | PieChart API} */
514
+ export const {PieChart} = RechartsPrimitive;
515
+ /** @see {@link https://recharts.github.io/en-US/api/RadarChart | RadarChart API} */
516
+ export const {RadarChart} = RechartsPrimitive;
517
+ /** @see {@link https://recharts.github.io/en-US/api/RadialBarChart | RadialBarChart API} */
518
+ export const {RadialBarChart} = RechartsPrimitive;
519
+ /** @see {@link https://recharts.github.io/en-US/api/ScatterChart | ScatterChart API} */
520
+ export const {ScatterChart} = RechartsPrimitive;
521
+ /** @see {@link https://recharts.github.io/en-US/api/Sankey | Sankey API} */
522
+ export const {Sankey} = RechartsPrimitive;
523
+ /** @see {@link https://recharts.github.io/en-US/api/SunburstChart | SunburstChart API} */
524
+ export const {SunburstChart} = RechartsPrimitive;
525
+ /** @see {@link https://recharts.github.io/en-US/api/Treemap | Treemap API} */
526
+ export const {Treemap} = RechartsPrimitive;
527
+
528
+ // -- Series elements --------------------------------------------------------
529
+ /** @see {@link https://recharts.github.io/en-US/api/Area | Area API} */
530
+ export const {Area} = RechartsPrimitive;
531
+ /** @see {@link https://recharts.github.io/en-US/api/Bar | Bar API} */
532
+ export const {Bar} = RechartsPrimitive;
533
+ /**
534
+ * Groups stacked bars and configures shared stack properties such as radius.
535
+ * @since recharts 3.6
536
+ * @see {@link https://recharts.github.io/en-US/guide/roundedBars | BarStack Guide}
537
+ */
538
+ export const {BarStack} = RechartsPrimitive;
539
+ /** @see {@link https://recharts.github.io/en-US/api/Funnel | Funnel API} */
540
+ export const {Funnel} = RechartsPrimitive;
541
+ /** @see {@link https://recharts.github.io/en-US/api/Line | Line API} */
542
+ export const {Line} = RechartsPrimitive;
543
+ /** @see {@link https://recharts.github.io/en-US/api/Pie | Pie API} */
544
+ export const {Pie} = RechartsPrimitive;
545
+ /** @see {@link https://recharts.github.io/en-US/api/Radar | Radar API} */
546
+ export const {Radar} = RechartsPrimitive;
547
+ /** @see {@link https://recharts.github.io/en-US/api/RadialBar | RadialBar API} */
548
+ export const {RadialBar} = RechartsPrimitive;
549
+ /** @see {@link https://recharts.github.io/en-US/api/Scatter | Scatter API} */
550
+ export const {Scatter} = RechartsPrimitive;
551
+
552
+ // -- Axis & grid ------------------------------------------------------------
553
+ /** @see {@link https://recharts.github.io/en-US/api/CartesianGrid | CartesianGrid API} */
554
+ export const {CartesianGrid} = RechartsPrimitive;
555
+ /** @see {@link https://recharts.github.io/en-US/api/PolarAngleAxis | PolarAngleAxis API} */
556
+ export const {PolarAngleAxis} = RechartsPrimitive;
557
+ /** @see {@link https://recharts.github.io/en-US/api/PolarGrid | PolarGrid API} */
558
+ export const {PolarGrid} = RechartsPrimitive;
559
+ /** @see {@link https://recharts.github.io/en-US/api/PolarRadiusAxis | PolarRadiusAxis API} */
560
+ export const {PolarRadiusAxis} = RechartsPrimitive;
561
+ /** @see {@link https://recharts.github.io/en-US/api/XAxis | XAxis API} – supports `type: "auto"` since v3.7. */
562
+ export const {XAxis} = RechartsPrimitive;
563
+ /** @see {@link https://recharts.github.io/en-US/api/YAxis | YAxis API} – supports `type: "auto"` since v3.7. */
564
+ export const {YAxis} = RechartsPrimitive;
565
+ /** @see {@link https://recharts.github.io/en-US/api/ZAxis | ZAxis API} */
566
+ export const {ZAxis} = RechartsPrimitive;
567
+
568
+ // -- Annotations & overlays ------------------------------------------------
569
+ /** @see {@link https://recharts.github.io/en-US/api/Brush | Brush API} */
570
+ export const {Brush} = RechartsPrimitive;
571
+ /** @see {@link https://recharts.github.io/en-US/api/ErrorBar | ErrorBar API} */
572
+ export const {ErrorBar} = RechartsPrimitive;
573
+ /** @see {@link https://recharts.github.io/en-US/api/Label | Label API} */
574
+ export const {Label: RechartsLabel} = RechartsPrimitive;
575
+ /** @see {@link https://recharts.github.io/en-US/api/LabelList | LabelList API} */
576
+ export const {LabelList} = RechartsPrimitive;
577
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceArea | ReferenceArea API} */
578
+ export const {ReferenceArea} = RechartsPrimitive;
579
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceDot | ReferenceDot API} */
580
+ export const {ReferenceDot} = RechartsPrimitive;
581
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceLine | ReferenceLine API} */
582
+ export const {ReferenceLine} = RechartsPrimitive;
583
+
584
+ // -- Layout -----------------------------------------------------------------
585
+ /**
586
+ * Wraps a chart in a responsive container. Since recharts 3.3+, you can
587
+ * alternatively use the `responsive` prop directly on chart containers.
588
+ * @see {@link https://recharts.github.io/en-US/api/ResponsiveContainer | ResponsiveContainer API}
589
+ */
590
+ export const {ResponsiveContainer} = RechartsPrimitive;
591
+ /** @see {@link https://recharts.github.io/en-US/api/Customized | Customized API} */
592
+ export const {Customized} = RechartsPrimitive;
593
+
594
+ // -- Shapes -----------------------------------------------------------------
595
+ /**
596
+ * @deprecated Since recharts 3.7. Use the `shape` prop on chart series elements instead.
597
+ * @see {@link https://recharts.github.io/en-US/api/Cell | Cell API}
598
+ */
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;
609
+
610
+ // -- Z-index (v3.4+) -------------------------------------------------------
611
+ /** @since recharts 3.4 @see {@link https://recharts.github.io/en-US/guide/zIndex | Z-Index Guide} */
612
+ export const {ZIndexLayer} = RechartsPrimitive;
613
+ /** Default z-index ordering constants. @since recharts 3.4 */
614
+ export const {DefaultZIndexes} = RechartsPrimitive;
615
+
616
+ // -- Hooks (v3+) ------------------------------------------------------------
617
+ /** Returns the current chart width in pixels. */
618
+ export const {useChartWidth} = RechartsPrimitive;
619
+ /** Returns the current chart height in pixels. */
620
+ export const {useChartHeight} = RechartsPrimitive;
621
+ /** Returns the chart offset (margins, axes). */
622
+ export const {useOffset} = RechartsPrimitive;
623
+ /** Returns the plot area dimensions. */
624
+ export const {usePlotArea} = RechartsPrimitive;
625
+ /** Returns the chart margin. */
626
+ export const {useMargin} = RechartsPrimitive;
627
+ /** Returns whether the tooltip is currently active. @since recharts 3.7 */
628
+ export const {useIsTooltipActive} = RechartsPrimitive;
629
+ /** Returns the active tooltip coordinate. @since recharts 3.7 */
630
+ export const {useActiveTooltipCoordinate} = RechartsPrimitive;
631
+ /** Returns the active tooltip data points. */
632
+ export const {useActiveTooltipDataPoints} = RechartsPrimitive;
633
+ /** Returns the active tooltip label. */
634
+ export const {useActiveTooltipLabel} = RechartsPrimitive;
635
+ /** Returns the current X-axis domain. */
636
+ export const {useXAxisDomain} = RechartsPrimitive;
637
+ /** Returns the current Y-axis domain. */
638
+ export const {useYAxisDomain} = RechartsPrimitive;
639
+
640
+ // -- Type re-exports --------------------------------------------------------
641
+ export type {DefaultLegendContentProps, DefaultTooltipContentProps, TooltipValueType} from "recharts";