@arolariu/components 0.4.2 → 1.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 (892) hide show
  1. package/{changelog.md → CHANGELOG.md} +36 -0
  2. package/CONTRIBUTING.md +344 -265
  3. package/DEBUGGING.md +185 -103
  4. package/EXAMPLES.md +470 -345
  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 +321 -18
  15. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  16. package/dist/components/ui/alert-dialog.js +145 -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 +97 -4
  41. package/dist/components/ui/avatar.d.ts.map +1 -1
  42. package/dist/components/ui/avatar.js +50 -21
  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 +39 -5
  97. package/dist/components/ui/calendar.d.ts.map +1 -1
  98. package/dist/components/ui/calendar.js +72 -61
  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 +158 -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 +31 -0
  135. package/dist/components/ui/checkbox-group.d.ts.map +1 -0
  136. package/dist/components/ui/checkbox-group.js +25 -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 +33 -2
  143. package/dist/components/ui/checkbox.d.ts.map +1 -1
  144. package/dist/components/ui/checkbox.js +37 -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/command.d.ts +284 -51
  159. package/dist/components/ui/command.d.ts.map +1 -1
  160. package/dist/components/ui/command.js +391 -50
  161. package/dist/components/ui/command.js.map +1 -1
  162. package/dist/components/ui/command.module.js +20 -0
  163. package/dist/components/ui/command.module.js.map +1 -0
  164. package/dist/components/ui/command_module.css +194 -0
  165. package/dist/components/ui/command_module.css.map +1 -0
  166. package/dist/components/ui/context-menu.d.ts +414 -21
  167. package/dist/components/ui/context-menu.d.ts.map +1 -1
  168. package/dist/components/ui/context-menu.js +190 -68
  169. package/dist/components/ui/context-menu.js.map +1 -1
  170. package/dist/components/ui/context-menu.module.js +19 -0
  171. package/dist/components/ui/context-menu.module.js.map +1 -0
  172. package/dist/components/ui/context-menu_module.css +114 -0
  173. package/dist/components/ui/context-menu_module.css.map +1 -0
  174. package/dist/components/ui/copy-button.d.ts +41 -0
  175. package/dist/components/ui/copy-button.d.ts.map +1 -0
  176. package/dist/components/ui/copy-button.js +51 -0
  177. package/dist/components/ui/copy-button.js.map +1 -0
  178. package/dist/components/ui/copy-button.module.js +8 -0
  179. package/dist/components/ui/copy-button.module.js.map +1 -0
  180. package/dist/components/ui/copy-button_module.css +37 -0
  181. package/dist/components/ui/copy-button_module.css.map +1 -0
  182. package/dist/components/ui/counting-number.d.ts +28 -2
  183. package/dist/components/ui/counting-number.d.ts.map +1 -1
  184. package/dist/components/ui/counting-number.js +31 -27
  185. package/dist/components/ui/counting-number.js.map +1 -1
  186. package/dist/components/ui/counting-number.module.js +7 -0
  187. package/dist/components/ui/counting-number.module.js.map +1 -0
  188. package/dist/components/ui/counting-number_module.css +7 -0
  189. package/dist/components/ui/counting-number_module.css.map +1 -0
  190. package/dist/components/ui/dialog.d.ts +287 -17
  191. package/dist/components/ui/dialog.d.ts.map +1 -1
  192. package/dist/components/ui/dialog.js +129 -52
  193. package/dist/components/ui/dialog.js.map +1 -1
  194. package/dist/components/ui/dialog.module.js +13 -0
  195. package/dist/components/ui/dialog.module.js.map +1 -0
  196. package/dist/components/ui/dialog_module.css +114 -0
  197. package/dist/components/ui/dialog_module.css.map +1 -0
  198. package/dist/components/ui/dot-background.d.ts +25 -35
  199. package/dist/components/ui/dot-background.d.ts.map +1 -1
  200. package/dist/components/ui/dot-background.js +31 -22
  201. package/dist/components/ui/dot-background.js.map +1 -1
  202. package/dist/components/ui/dot-background.module.js +8 -0
  203. package/dist/components/ui/dot-background.module.js.map +1 -0
  204. package/dist/components/ui/dot-background_module.css +15 -0
  205. package/dist/components/ui/dot-background_module.css.map +1 -0
  206. package/dist/components/ui/drawer.d.ts +287 -18
  207. package/dist/components/ui/drawer.d.ts.map +1 -1
  208. package/dist/components/ui/drawer.js +117 -40
  209. package/dist/components/ui/drawer.js.map +1 -1
  210. package/dist/components/ui/drawer.module.js +14 -0
  211. package/dist/components/ui/drawer.module.js.map +1 -0
  212. package/dist/components/ui/drawer_module.css +86 -0
  213. package/dist/components/ui/drawer_module.css.map +1 -0
  214. package/dist/components/ui/dropdown-menu.d.ts +414 -21
  215. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  216. package/dist/components/ui/dropdown-menu.js +189 -68
  217. package/dist/components/ui/dropdown-menu.js.map +1 -1
  218. package/dist/components/ui/dropdown-menu.module.js +19 -0
  219. package/dist/components/ui/dropdown-menu.module.js.map +1 -0
  220. package/dist/components/ui/dropdown-menu_module.css +114 -0
  221. package/dist/components/ui/dropdown-menu_module.css.map +1 -0
  222. package/dist/components/ui/dropdrawer.d.ts +313 -17
  223. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  224. package/dist/components/ui/dropdrawer.js +423 -159
  225. package/dist/components/ui/dropdrawer.js.map +1 -1
  226. package/dist/components/ui/dropdrawer.module.js +43 -0
  227. package/dist/components/ui/dropdrawer.module.js.map +1 -0
  228. package/dist/components/ui/dropdrawer_module.css +307 -0
  229. package/dist/components/ui/dropdrawer_module.css.map +1 -0
  230. package/dist/components/ui/empty.d.ts +129 -10
  231. package/dist/components/ui/empty.d.ts.map +1 -1
  232. package/dist/components/ui/empty.js +32 -47
  233. package/dist/components/ui/empty.js.map +1 -1
  234. package/dist/components/ui/empty.module.js +13 -0
  235. package/dist/components/ui/empty.module.js.map +1 -0
  236. package/dist/components/ui/empty_module.css +85 -0
  237. package/dist/components/ui/empty_module.css.map +1 -0
  238. package/dist/components/ui/error-boundary.js +61 -0
  239. package/dist/components/ui/error-boundary.js.map +1 -0
  240. package/dist/components/ui/error-boundary.module.js +10 -0
  241. package/dist/components/ui/error-boundary.module.js.map +1 -0
  242. package/dist/components/ui/error-boundary_module.css +41 -0
  243. package/dist/components/ui/error-boundary_module.css.map +1 -0
  244. package/dist/components/ui/field.d.ts +225 -0
  245. package/dist/components/ui/field.d.ts.map +1 -0
  246. package/dist/components/ui/field.js +76 -86
  247. package/dist/components/ui/field.js.map +1 -1
  248. package/dist/components/ui/field.module.js +24 -0
  249. package/dist/components/ui/field.module.js.map +1 -0
  250. package/dist/components/ui/field_module.css +185 -0
  251. package/dist/components/ui/field_module.css.map +1 -0
  252. package/dist/components/ui/fireworks-background.d.ts +27 -3
  253. package/dist/components/ui/fireworks-background.d.ts.map +1 -1
  254. package/dist/components/ui/fireworks-background.js +36 -35
  255. package/dist/components/ui/fireworks-background.js.map +1 -1
  256. package/dist/components/ui/fireworks-background.module.js +8 -0
  257. package/dist/components/ui/fireworks-background.module.js.map +1 -0
  258. package/dist/components/ui/fireworks-background_module.css +17 -0
  259. package/dist/components/ui/fireworks-background_module.css.map +1 -0
  260. package/dist/components/ui/flip-button.d.ts +27 -3
  261. package/dist/components/ui/flip-button.d.ts.map +1 -1
  262. package/dist/components/ui/flip-button.js +27 -17
  263. package/dist/components/ui/flip-button.js.map +1 -1
  264. package/dist/components/ui/flip-button.module.js +11 -0
  265. package/dist/components/ui/flip-button.module.js.map +1 -0
  266. package/dist/components/ui/flip-button_module.css +47 -0
  267. package/dist/components/ui/flip-button_module.css.map +1 -0
  268. package/dist/components/ui/focus-scope.js +70 -0
  269. package/dist/components/ui/focus-scope.js.map +1 -0
  270. package/dist/components/ui/focus-scope.module.js +7 -0
  271. package/dist/components/ui/focus-scope.module.js.map +1 -0
  272. package/dist/components/ui/focus-scope_module.css +6 -0
  273. package/dist/components/ui/focus-scope_module.css.map +1 -0
  274. package/dist/components/ui/form-skeleton.js +32 -0
  275. package/dist/components/ui/form-skeleton.js.map +1 -0
  276. package/dist/components/ui/form-skeleton.module.js +11 -0
  277. package/dist/components/ui/form-skeleton.module.js.map +1 -0
  278. package/dist/components/ui/form-skeleton_module.css +30 -0
  279. package/dist/components/ui/form-skeleton_module.css.map +1 -0
  280. package/dist/components/ui/form.d.ts +143 -13
  281. package/dist/components/ui/form.d.ts.map +1 -1
  282. package/dist/components/ui/form.js +55 -21
  283. package/dist/components/ui/form.js.map +1 -1
  284. package/dist/components/ui/form.module.js +10 -0
  285. package/dist/components/ui/form.module.js.map +1 -0
  286. package/dist/components/ui/form_module.css +22 -0
  287. package/dist/components/ui/form_module.css.map +1 -0
  288. package/dist/components/ui/gradient-background.d.ts +21 -3
  289. package/dist/components/ui/gradient-background.d.ts.map +1 -1
  290. package/dist/components/ui/gradient-background.js +8 -4
  291. package/dist/components/ui/gradient-background.js.map +1 -1
  292. package/dist/components/ui/gradient-background.module.js +7 -0
  293. package/dist/components/ui/gradient-background.module.js.map +1 -0
  294. package/dist/components/ui/gradient-background_module.css +9 -0
  295. package/dist/components/ui/gradient-background_module.css.map +1 -0
  296. package/dist/components/ui/gradient-text.d.ts +23 -2
  297. package/dist/components/ui/gradient-text.d.ts.map +1 -1
  298. package/dist/components/ui/gradient-text.js +8 -6
  299. package/dist/components/ui/gradient-text.js.map +1 -1
  300. package/dist/components/ui/gradient-text.module.js +9 -0
  301. package/dist/components/ui/gradient-text.module.js.map +1 -0
  302. package/dist/components/ui/gradient-text_module.css +24 -0
  303. package/dist/components/ui/gradient-text_module.css.map +1 -0
  304. package/dist/components/ui/highlight-text.d.ts +24 -2
  305. package/dist/components/ui/highlight-text.d.ts.map +1 -1
  306. package/dist/components/ui/highlight-text.js +7 -10
  307. package/dist/components/ui/highlight-text.js.map +1 -1
  308. package/dist/components/ui/highlight-text.module.js +7 -0
  309. package/dist/components/ui/highlight-text.module.js.map +1 -0
  310. package/dist/components/ui/highlight-text_module.css +16 -0
  311. package/dist/components/ui/highlight-text_module.css.map +1 -0
  312. package/dist/components/ui/hole-background.d.ts +23 -2
  313. package/dist/components/ui/hole-background.d.ts.map +1 -1
  314. package/dist/components/ui/hole-background.js +155 -118
  315. package/dist/components/ui/hole-background.js.map +1 -1
  316. package/dist/components/ui/hole-background.module.js +10 -0
  317. package/dist/components/ui/hole-background.module.js.map +1 -0
  318. package/dist/components/ui/hole-background_module.css +85 -0
  319. package/dist/components/ui/hole-background_module.css.map +1 -0
  320. package/dist/components/ui/hover-card.d.ts +85 -4
  321. package/dist/components/ui/hover-card.d.ts.map +1 -1
  322. package/dist/components/ui/hover-card.js +52 -10
  323. package/dist/components/ui/hover-card.js.map +1 -1
  324. package/dist/components/ui/hover-card.module.js +8 -0
  325. package/dist/components/ui/hover-card.module.js.map +1 -0
  326. package/dist/components/ui/hover-card_module.css +23 -0
  327. package/dist/components/ui/hover-card_module.css.map +1 -0
  328. package/dist/components/ui/input-group.d.ts +132 -13
  329. package/dist/components/ui/input-group.d.ts.map +1 -1
  330. package/dist/components/ui/input-group.js +62 -66
  331. package/dist/components/ui/input-group.js.map +1 -1
  332. package/dist/components/ui/input-group.module.js +20 -0
  333. package/dist/components/ui/input-group.module.js.map +1 -0
  334. package/dist/components/ui/input-group_module.css +150 -0
  335. package/dist/components/ui/input-group_module.css.map +1 -0
  336. package/dist/components/ui/input-otp.d.ts +110 -30
  337. package/dist/components/ui/input-otp.d.ts.map +1 -1
  338. package/dist/components/ui/input-otp.js +24 -15
  339. package/dist/components/ui/input-otp.js.map +1 -1
  340. package/dist/components/ui/input-otp.module.js +17 -0
  341. package/dist/components/ui/input-otp.module.js.map +1 -0
  342. package/dist/components/ui/input-otp_module.css +89 -0
  343. package/dist/components/ui/input-otp_module.css.map +1 -0
  344. package/dist/components/ui/input.d.ts +31 -1
  345. package/dist/components/ui/input.d.ts.map +1 -1
  346. package/dist/components/ui/input.js +21 -8
  347. package/dist/components/ui/input.js.map +1 -1
  348. package/dist/components/ui/input.module.js +7 -0
  349. package/dist/components/ui/input.module.js.map +1 -0
  350. package/dist/components/ui/input_module.css +40 -0
  351. package/dist/components/ui/input_module.css.map +1 -0
  352. package/dist/components/ui/item.d.ts +221 -19
  353. package/dist/components/ui/item.d.ts.map +1 -1
  354. package/dist/components/ui/item.js +66 -90
  355. package/dist/components/ui/item.js.map +1 -1
  356. package/dist/components/ui/item.module.js +22 -0
  357. package/dist/components/ui/item.module.js.map +1 -0
  358. package/dist/components/ui/item_module.css +143 -0
  359. package/dist/components/ui/item_module.css.map +1 -0
  360. package/dist/components/ui/kbd.d.ts +43 -2
  361. package/dist/components/ui/kbd.d.ts.map +1 -1
  362. package/dist/components/ui/kbd.js +12 -12
  363. package/dist/components/ui/kbd.js.map +1 -1
  364. package/dist/components/ui/kbd.module.js +8 -0
  365. package/dist/components/ui/kbd.module.js.map +1 -0
  366. package/dist/components/ui/kbd_module.css +35 -0
  367. package/dist/components/ui/kbd_module.css.map +1 -0
  368. package/dist/components/ui/label.d.ts +30 -3
  369. package/dist/components/ui/label.d.ts.map +1 -1
  370. package/dist/components/ui/label.js +7 -8
  371. package/dist/components/ui/label.js.map +1 -1
  372. package/dist/components/ui/label.module.js +7 -0
  373. package/dist/components/ui/label.module.js.map +1 -0
  374. package/dist/components/ui/label_module.css +17 -0
  375. package/dist/components/ui/label_module.css.map +1 -0
  376. package/dist/components/ui/list-skeleton.js +35 -0
  377. package/dist/components/ui/list-skeleton.js.map +1 -0
  378. package/dist/components/ui/list-skeleton.module.js +12 -0
  379. package/dist/components/ui/list-skeleton.module.js.map +1 -0
  380. package/dist/components/ui/list-skeleton_module.css +39 -0
  381. package/dist/components/ui/list-skeleton_module.css.map +1 -0
  382. package/dist/components/ui/loading-overlay.js +21 -0
  383. package/dist/components/ui/loading-overlay.js.map +1 -0
  384. package/dist/components/ui/loading-overlay.module.js +9 -0
  385. package/dist/components/ui/loading-overlay.module.js.map +1 -0
  386. package/dist/components/ui/loading-overlay_module.css +22 -0
  387. package/dist/components/ui/loading-overlay_module.css.map +1 -0
  388. package/dist/components/ui/menubar.d.ts +422 -22
  389. package/dist/components/ui/menubar.d.ts.map +1 -1
  390. package/dist/components/ui/menubar.js +199 -100
  391. package/dist/components/ui/menubar.js.map +1 -1
  392. package/dist/components/ui/menubar.module.js +21 -0
  393. package/dist/components/ui/menubar.module.js.map +1 -0
  394. package/dist/components/ui/menubar_module.css +145 -0
  395. package/dist/components/ui/menubar_module.css.map +1 -0
  396. package/dist/components/ui/meter.d.ts +101 -0
  397. package/dist/components/ui/meter.d.ts.map +1 -0
  398. package/dist/components/ui/meter.js +71 -0
  399. package/dist/components/ui/meter.js.map +1 -0
  400. package/dist/components/ui/meter.module.js +10 -0
  401. package/dist/components/ui/meter.module.js.map +1 -0
  402. package/dist/components/ui/meter_module.css +31 -0
  403. package/dist/components/ui/meter_module.css.map +1 -0
  404. package/dist/components/ui/navigation-menu.d.ts +242 -11
  405. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  406. package/dist/components/ui/navigation-menu.js +135 -49
  407. package/dist/components/ui/navigation-menu.js.map +1 -1
  408. package/dist/components/ui/navigation-menu.module.js +18 -0
  409. package/dist/components/ui/navigation-menu.module.js.map +1 -0
  410. package/dist/components/ui/navigation-menu_module.css +112 -0
  411. package/dist/components/ui/navigation-menu_module.css.map +1 -0
  412. package/dist/components/ui/number-field.d.ts +144 -0
  413. package/dist/components/ui/number-field.d.ts.map +1 -0
  414. package/dist/components/ui/number-field.js +111 -0
  415. package/dist/components/ui/number-field.js.map +1 -0
  416. package/dist/components/ui/number-field.module.js +15 -0
  417. package/dist/components/ui/number-field.module.js.map +1 -0
  418. package/dist/components/ui/number-field_module.css +125 -0
  419. package/dist/components/ui/number-field_module.css.map +1 -0
  420. package/dist/components/ui/pagination.d.ts +150 -24
  421. package/dist/components/ui/pagination.d.ts.map +1 -1
  422. package/dist/components/ui/pagination.js +41 -38
  423. package/dist/components/ui/pagination.js.map +1 -1
  424. package/dist/components/ui/pagination.module.js +14 -0
  425. package/dist/components/ui/pagination.module.js.map +1 -0
  426. package/dist/components/ui/pagination_module.css +66 -0
  427. package/dist/components/ui/pagination_module.css.map +1 -0
  428. package/dist/components/ui/popover.d.ts +133 -5
  429. package/dist/components/ui/popover.d.ts.map +1 -1
  430. package/dist/components/ui/popover.js +68 -14
  431. package/dist/components/ui/popover.js.map +1 -1
  432. package/dist/components/ui/popover.module.js +9 -0
  433. package/dist/components/ui/popover.module.js.map +1 -0
  434. package/dist/components/ui/popover_module.css +28 -0
  435. package/dist/components/ui/popover_module.css.map +1 -0
  436. package/dist/components/ui/progress.d.ts +34 -2
  437. package/dist/components/ui/progress.d.ts.map +1 -1
  438. package/dist/components/ui/progress.js +22 -14
  439. package/dist/components/ui/progress.js.map +1 -1
  440. package/dist/components/ui/progress.module.js +8 -0
  441. package/dist/components/ui/progress.module.js.map +1 -0
  442. package/dist/components/ui/progress_module.css +20 -0
  443. package/dist/components/ui/progress_module.css.map +1 -0
  444. package/dist/components/ui/radio-group.d.ts +44 -3
  445. package/dist/components/ui/radio-group.d.ts.map +1 -1
  446. package/dist/components/ui/radio-group.js +38 -16
  447. package/dist/components/ui/radio-group.js.map +1 -1
  448. package/dist/components/ui/radio-group.module.js +10 -0
  449. package/dist/components/ui/radio-group.module.js.map +1 -0
  450. package/dist/components/ui/radio-group_module.css +44 -0
  451. package/dist/components/ui/radio-group_module.css.map +1 -0
  452. package/dist/components/ui/resizable.d.ts +79 -6
  453. package/dist/components/ui/resizable.d.ts.map +1 -1
  454. package/dist/components/ui/resizable.js +23 -13
  455. package/dist/components/ui/resizable.js.map +1 -1
  456. package/dist/components/ui/resizable.module.js +10 -0
  457. package/dist/components/ui/resizable.module.js.map +1 -0
  458. package/dist/components/ui/resizable_module.css +70 -0
  459. package/dist/components/ui/resizable_module.css.map +1 -0
  460. package/dist/components/ui/ripple-button.d.ts +23 -2
  461. package/dist/components/ui/ripple-button.d.ts.map +1 -1
  462. package/dist/components/ui/ripple-button.js +26 -11
  463. package/dist/components/ui/ripple-button.js.map +1 -1
  464. package/dist/components/ui/ripple-button.module.js +9 -0
  465. package/dist/components/ui/ripple-button.module.js.map +1 -0
  466. package/dist/components/ui/ripple-button_module.css +38 -0
  467. package/dist/components/ui/ripple-button_module.css.map +1 -0
  468. package/dist/components/ui/scratcher.d.ts +25 -2
  469. package/dist/components/ui/scratcher.d.ts.map +1 -1
  470. package/dist/components/ui/scratcher.js +85 -87
  471. package/dist/components/ui/scratcher.js.map +1 -1
  472. package/dist/components/ui/scratcher.module.js +8 -0
  473. package/dist/components/ui/scratcher.module.js.map +1 -0
  474. package/dist/components/ui/scratcher_module.css +13 -0
  475. package/dist/components/ui/scratcher_module.css.map +1 -0
  476. package/dist/components/ui/scroll-area.d.ts +46 -3
  477. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  478. package/dist/components/ui/scroll-area.js +44 -19
  479. package/dist/components/ui/scroll-area.js.map +1 -1
  480. package/dist/components/ui/scroll-area.module.js +14 -0
  481. package/dist/components/ui/scroll-area.module.js.map +1 -0
  482. package/dist/components/ui/scroll-area_module.css +51 -0
  483. package/dist/components/ui/scroll-area_module.css.map +1 -0
  484. package/dist/components/ui/select.d.ts +269 -11
  485. package/dist/components/ui/select.d.ts.map +1 -1
  486. package/dist/components/ui/select.js +152 -67
  487. package/dist/components/ui/select.js.map +1 -1
  488. package/dist/components/ui/select.module.js +20 -0
  489. package/dist/components/ui/select.module.js.map +1 -0
  490. package/dist/components/ui/select_module.css +134 -0
  491. package/dist/components/ui/select_module.css.map +1 -0
  492. package/dist/components/ui/separator.d.ts +36 -2
  493. package/dist/components/ui/separator.d.ts.map +1 -1
  494. package/dist/components/ui/separator.js +20 -10
  495. package/dist/components/ui/separator.js.map +1 -1
  496. package/dist/components/ui/separator.module.js +9 -0
  497. package/dist/components/ui/separator.module.js.map +1 -0
  498. package/dist/components/ui/separator_module.css +17 -0
  499. package/dist/components/ui/separator_module.css.map +1 -0
  500. package/dist/components/ui/sheet.d.ts +297 -23
  501. package/dist/components/ui/sheet.d.ts.map +1 -1
  502. package/dist/components/ui/sheet.js +121 -63
  503. package/dist/components/ui/sheet.js.map +1 -1
  504. package/dist/components/ui/sheet.module.js +18 -0
  505. package/dist/components/ui/sheet.module.js.map +1 -0
  506. package/dist/components/ui/sheet_module.css +136 -0
  507. package/dist/components/ui/sheet_module.css.map +1 -0
  508. package/dist/components/ui/sidebar.d.ts +491 -23
  509. package/dist/components/ui/sidebar.d.ts.map +1 -1
  510. package/dist/components/ui/sidebar.js +214 -143
  511. package/dist/components/ui/sidebar.js.map +1 -1
  512. package/dist/components/ui/sidebar.module.js +50 -0
  513. package/dist/components/ui/sidebar.module.js.map +1 -0
  514. package/dist/components/ui/sidebar_module.css +569 -0
  515. package/dist/components/ui/sidebar_module.css.map +1 -0
  516. package/dist/components/ui/skeleton.d.ts +30 -1
  517. package/dist/components/ui/skeleton.d.ts.map +1 -1
  518. package/dist/components/ui/skeleton.js +7 -7
  519. package/dist/components/ui/skeleton.js.map +1 -1
  520. package/dist/components/ui/skeleton.module.js +8 -0
  521. package/dist/components/ui/skeleton.module.js.map +1 -0
  522. package/dist/components/ui/skeleton_module.css +18 -0
  523. package/dist/components/ui/skeleton_module.css.map +1 -0
  524. package/dist/components/ui/slider.d.ts +48 -2
  525. package/dist/components/ui/slider.d.ts.map +1 -1
  526. package/dist/components/ui/slider.js +44 -17
  527. package/dist/components/ui/slider.js.map +1 -1
  528. package/dist/components/ui/slider.module.js +11 -0
  529. package/dist/components/ui/slider.module.js.map +1 -0
  530. package/dist/components/ui/slider_module.css +55 -0
  531. package/dist/components/ui/slider_module.css.map +1 -0
  532. package/dist/components/ui/sonner.d.ts +137 -4
  533. package/dist/components/ui/sonner.d.ts.map +1 -1
  534. package/dist/components/ui/sonner.js +450 -18
  535. package/dist/components/ui/sonner.js.map +1 -1
  536. package/dist/components/ui/sonner.module.js +34 -0
  537. package/dist/components/ui/sonner.module.js.map +1 -0
  538. package/dist/components/ui/sonner_module.css +233 -0
  539. package/dist/components/ui/sonner_module.css.map +1 -0
  540. package/dist/components/ui/spinner.d.ts +20 -1
  541. package/dist/components/ui/spinner.d.ts.map +1 -1
  542. package/dist/components/ui/spinner.js +29 -11
  543. package/dist/components/ui/spinner.js.map +1 -1
  544. package/dist/components/ui/spinner.module.js +10 -0
  545. package/dist/components/ui/spinner.module.js.map +1 -0
  546. package/dist/components/ui/spinner_module.css +28 -0
  547. package/dist/components/ui/spinner_module.css.map +1 -0
  548. package/dist/components/ui/stepper.d.ts +48 -0
  549. package/dist/components/ui/stepper.d.ts.map +1 -0
  550. package/dist/components/ui/stepper.js +41 -0
  551. package/dist/components/ui/stepper.js.map +1 -0
  552. package/dist/components/ui/stepper.module.js +12 -0
  553. package/dist/components/ui/stepper.module.js.map +1 -0
  554. package/dist/components/ui/stepper_module.css +75 -0
  555. package/dist/components/ui/stepper_module.css.map +1 -0
  556. package/dist/components/ui/switch.d.ts +29 -2
  557. package/dist/components/ui/switch.d.ts.map +1 -1
  558. package/dist/components/ui/switch.js +21 -9
  559. package/dist/components/ui/switch.js.map +1 -1
  560. package/dist/components/ui/switch.module.js +8 -0
  561. package/dist/components/ui/switch.module.js.map +1 -0
  562. package/dist/components/ui/switch_module.css +45 -0
  563. package/dist/components/ui/switch_module.css.map +1 -0
  564. package/dist/components/ui/table-skeleton.js +34 -0
  565. package/dist/components/ui/table-skeleton.js.map +1 -0
  566. package/dist/components/ui/table-skeleton.module.js +11 -0
  567. package/dist/components/ui/table-skeleton.module.js.map +1 -0
  568. package/dist/components/ui/table-skeleton_module.css +32 -0
  569. package/dist/components/ui/table-skeleton_module.css.map +1 -0
  570. package/dist/components/ui/table.d.ts +170 -8
  571. package/dist/components/ui/table.d.ts.map +1 -1
  572. package/dist/components/ui/table.js +17 -17
  573. package/dist/components/ui/table.js.map +1 -1
  574. package/dist/components/ui/table.module.js +15 -0
  575. package/dist/components/ui/table.module.js.map +1 -0
  576. package/dist/components/ui/table_module.css +71 -0
  577. package/dist/components/ui/table_module.css.map +1 -0
  578. package/dist/components/ui/tabs.d.ts +114 -5
  579. package/dist/components/ui/tabs.d.ts.map +1 -1
  580. package/dist/components/ui/tabs.js +71 -20
  581. package/dist/components/ui/tabs.js.map +1 -1
  582. package/dist/components/ui/tabs.module.js +10 -0
  583. package/dist/components/ui/tabs.module.js.map +1 -0
  584. package/dist/components/ui/tabs_module.css +89 -0
  585. package/dist/components/ui/tabs_module.css.map +1 -0
  586. package/dist/components/ui/textarea.d.ts +24 -1
  587. package/dist/components/ui/textarea.d.ts.map +1 -1
  588. package/dist/components/ui/textarea.js +2 -2
  589. package/dist/components/ui/textarea.js.map +1 -1
  590. package/dist/components/ui/textarea.module.js +7 -0
  591. package/dist/components/ui/textarea.module.js.map +1 -0
  592. package/dist/components/ui/textarea_module.css +33 -0
  593. package/dist/components/ui/textarea_module.css.map +1 -0
  594. package/dist/components/ui/timeline.d.ts +111 -0
  595. package/dist/components/ui/timeline.d.ts.map +1 -0
  596. package/dist/components/ui/timeline.js +34 -0
  597. package/dist/components/ui/timeline.js.map +1 -0
  598. package/dist/components/ui/timeline.module.js +10 -0
  599. package/dist/components/ui/timeline.module.js.map +1 -0
  600. package/dist/components/ui/timeline_module.css +47 -0
  601. package/dist/components/ui/timeline_module.css.map +1 -0
  602. package/dist/components/ui/toggle-group.d.ts +81 -10
  603. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  604. package/dist/components/ui/toggle-group.js +32 -23
  605. package/dist/components/ui/toggle-group.js.map +1 -1
  606. package/dist/components/ui/toggle-group.module.js +7 -0
  607. package/dist/components/ui/toggle-group.module.js.map +1 -0
  608. package/dist/components/ui/toggle-group_module.css +8 -0
  609. package/dist/components/ui/toggle-group_module.css.map +1 -0
  610. package/dist/components/ui/toggle.d.ts +60 -11
  611. package/dist/components/ui/toggle.d.ts.map +1 -1
  612. package/dist/components/ui/toggle.js +29 -29
  613. package/dist/components/ui/toggle.js.map +1 -1
  614. package/dist/components/ui/toggle.module.js +12 -0
  615. package/dist/components/ui/toggle.module.js.map +1 -0
  616. package/dist/components/ui/toggle_module.css +62 -0
  617. package/dist/components/ui/toggle_module.css.map +1 -0
  618. package/dist/components/ui/toolbar.d.ts +127 -0
  619. package/dist/components/ui/toolbar.d.ts.map +1 -0
  620. package/dist/components/ui/toolbar.js +85 -0
  621. package/dist/components/ui/toolbar.js.map +1 -0
  622. package/dist/components/ui/toolbar.module.js +12 -0
  623. package/dist/components/ui/toolbar.module.js.map +1 -0
  624. package/dist/components/ui/toolbar_module.css +115 -0
  625. package/dist/components/ui/toolbar_module.css.map +1 -0
  626. package/dist/components/ui/tooltip.d.ts +119 -5
  627. package/dist/components/ui/tooltip.d.ts.map +1 -1
  628. package/dist/components/ui/tooltip.js +48 -13
  629. package/dist/components/ui/tooltip.js.map +1 -1
  630. package/dist/components/ui/tooltip.module.js +9 -0
  631. package/dist/components/ui/tooltip.module.js.map +1 -0
  632. package/dist/components/ui/tooltip_module.css +35 -0
  633. package/dist/components/ui/tooltip_module.css.map +1 -0
  634. package/dist/components/ui/typewriter.d.ts +48 -13
  635. package/dist/components/ui/typewriter.d.ts.map +1 -1
  636. package/dist/components/ui/typewriter.js +46 -49
  637. package/dist/components/ui/typewriter.js.map +1 -1
  638. package/dist/components/ui/typewriter.module.js +16 -0
  639. package/dist/components/ui/typewriter.module.js.map +1 -0
  640. package/dist/components/ui/typewriter_module.css +102 -0
  641. package/dist/components/ui/typewriter_module.css.map +1 -0
  642. package/dist/components/ui/visually-hidden.d.ts +38 -0
  643. package/dist/components/ui/visually-hidden.d.ts.map +1 -0
  644. package/dist/components/ui/visually-hidden.js +13 -0
  645. package/dist/components/ui/visually-hidden.js.map +1 -0
  646. package/dist/components/ui/visually-hidden.module.js +7 -0
  647. package/dist/components/ui/visually-hidden.module.js.map +1 -0
  648. package/dist/components/ui/visually-hidden_module.css +14 -0
  649. package/dist/components/ui/visually-hidden_module.css.map +1 -0
  650. package/dist/hooks/useAnnounce.js +46 -0
  651. package/dist/hooks/useAnnounce.js.map +1 -0
  652. package/dist/hooks/useBreakpoint.d.ts +17 -0
  653. package/dist/hooks/useBreakpoint.d.ts.map +1 -0
  654. package/dist/hooks/useBreakpoint.js +16 -0
  655. package/dist/hooks/useBreakpoint.js.map +1 -0
  656. package/dist/hooks/useColorScheme.d.ts +14 -0
  657. package/dist/hooks/useColorScheme.d.ts.map +1 -0
  658. package/dist/hooks/useColorScheme.js +9 -0
  659. package/dist/hooks/useColorScheme.js.map +1 -0
  660. package/dist/hooks/useFocusManager.js +51 -0
  661. package/dist/hooks/useFocusManager.js.map +1 -0
  662. package/dist/hooks/useFocusVisible.d.ts +50 -0
  663. package/dist/hooks/useFocusVisible.d.ts.map +1 -0
  664. package/dist/hooks/useFocusVisible.js +35 -0
  665. package/dist/hooks/useFocusVisible.js.map +1 -0
  666. package/dist/hooks/useIsMobile.d.ts +5 -11
  667. package/dist/hooks/useIsMobile.d.ts.map +1 -1
  668. package/dist/hooks/useIsMobile.js +2 -13
  669. package/dist/hooks/useIsMobile.js.map +1 -1
  670. package/dist/hooks/useMediaQuery.d.ts +14 -0
  671. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  672. package/dist/hooks/useMediaQuery.js +20 -0
  673. package/dist/hooks/useMediaQuery.js.map +1 -0
  674. package/dist/hooks/usePrefersContrast.d.ts +19 -0
  675. package/dist/hooks/usePrefersContrast.d.ts.map +1 -0
  676. package/dist/hooks/usePrefersContrast.js +8 -0
  677. package/dist/hooks/usePrefersContrast.js.map +1 -0
  678. package/dist/hooks/useReducedMotion.d.ts +19 -0
  679. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  680. package/dist/hooks/useReducedMotion.js +2 -0
  681. package/dist/index.css +104 -5355
  682. package/dist/index.css.map +1 -1
  683. package/dist/index.d.ts +40 -8
  684. package/dist/index.d.ts.map +1 -1
  685. package/dist/index.js +89 -70
  686. package/dist/lib/color-conversion-utilities.d.ts +82 -0
  687. package/dist/lib/color-conversion-utilities.d.ts.map +1 -0
  688. package/dist/lib/color-conversion-utilities.js +94 -0
  689. package/dist/lib/color-conversion-utilities.js.map +1 -0
  690. package/dist/lib/utilities.d.ts +5 -4
  691. package/dist/lib/utilities.d.ts.map +1 -1
  692. package/dist/lib/utilities.js +1 -2
  693. package/dist/lib/utilities.js.map +1 -1
  694. package/dist/motion/Collapse.js +19 -0
  695. package/dist/motion/Collapse.js.map +1 -0
  696. package/dist/motion/Collapse.module.js +8 -0
  697. package/dist/motion/Collapse.module.js.map +1 -0
  698. package/dist/motion/Collapse_module.css +25 -0
  699. package/dist/motion/Collapse_module.css.map +1 -0
  700. package/dist/motion/Presence.js +14 -0
  701. package/dist/motion/Presence.js.map +1 -0
  702. package/dist/motion/index.js +5 -0
  703. package/dist/motion/presets.js +117 -0
  704. package/dist/motion/presets.js.map +1 -0
  705. package/dist/motion/tokens.js +41 -0
  706. package/dist/motion/tokens.js.map +1 -0
  707. package/package.json +159 -65
  708. package/src/components/ui/accordion.module.css +70 -0
  709. package/src/components/ui/accordion.tsx +278 -44
  710. package/src/components/ui/alert-dialog.module.css +87 -0
  711. package/src/components/ui/alert-dialog.tsx +474 -99
  712. package/src/components/ui/alert.module.css +57 -0
  713. package/src/components/ui/alert.tsx +136 -43
  714. package/src/components/ui/aspect-ratio.module.css +7 -0
  715. package/src/components/ui/aspect-ratio.tsx +38 -3
  716. package/src/components/ui/async-boundary.tsx +56 -0
  717. package/src/components/ui/avatar.module.css +31 -0
  718. package/src/components/ui/avatar.tsx +146 -36
  719. package/src/components/ui/background-beams.module.css +20 -0
  720. package/src/components/ui/background-beams.tsx +173 -134
  721. package/src/components/ui/badge.module.css +60 -0
  722. package/src/components/ui/badge.tsx +100 -32
  723. package/src/components/ui/breadcrumb.module.css +87 -0
  724. package/src/components/ui/breadcrumb.tsx +256 -74
  725. package/src/components/ui/bubble-background.module.css +97 -0
  726. package/src/components/ui/bubble-background.tsx +92 -52
  727. package/src/components/ui/button-group.module.css +76 -0
  728. package/src/components/ui/button-group.tsx +135 -46
  729. package/src/components/ui/button.module.css +138 -0
  730. package/src/components/ui/button.tsx +159 -41
  731. package/src/components/ui/calendar.module.css +250 -0
  732. package/src/components/ui/calendar.tsx +133 -103
  733. package/src/components/ui/card-skeleton.module.css +50 -0
  734. package/src/components/ui/card-skeleton.tsx +69 -0
  735. package/src/components/ui/card.module.css +41 -0
  736. package/src/components/ui/card.tsx +175 -22
  737. package/src/components/ui/carousel.module.css +80 -0
  738. package/src/components/ui/carousel.tsx +184 -43
  739. package/src/components/ui/chart.module.css +164 -0
  740. package/src/components/ui/chart.tsx +444 -102
  741. package/src/components/ui/checkbox-group.module.css +8 -0
  742. package/src/components/ui/checkbox-group.tsx +54 -0
  743. package/src/components/ui/checkbox.module.css +43 -0
  744. package/src/components/ui/checkbox.tsx +73 -19
  745. package/src/components/ui/collapsible.module.css +24 -0
  746. package/src/components/ui/collapsible.tsx +139 -3
  747. package/src/components/ui/command.module.css +193 -0
  748. package/src/components/ui/command.tsx +877 -113
  749. package/src/components/ui/context-menu.module.css +113 -0
  750. package/src/components/ui/context-menu.tsx +616 -157
  751. package/src/components/ui/copy-button.module.css +34 -0
  752. package/src/components/ui/copy-button.tsx +116 -0
  753. package/src/components/ui/counting-number.module.css +4 -0
  754. package/src/components/ui/counting-number.tsx +69 -31
  755. package/src/components/ui/dialog.module.css +113 -0
  756. package/src/components/ui/dialog.tsx +427 -81
  757. package/src/components/ui/dot-background.module.css +12 -0
  758. package/src/components/ui/dot-background.tsx +134 -126
  759. package/src/components/ui/drawer.module.css +85 -0
  760. package/src/components/ui/drawer.tsx +408 -80
  761. package/src/components/ui/dropdown-menu.module.css +113 -0
  762. package/src/components/ui/dropdown-menu.tsx +616 -159
  763. package/src/components/ui/dropdrawer.module.css +322 -0
  764. package/src/components/ui/dropdrawer.tsx +850 -398
  765. package/src/components/ui/empty.module.css +84 -0
  766. package/src/components/ui/empty.tsx +176 -52
  767. package/src/components/ui/error-boundary.module.css +36 -0
  768. package/src/components/ui/error-boundary.tsx +127 -0
  769. package/src/components/ui/field.module.css +179 -0
  770. package/src/components/ui/field.tsx +345 -139
  771. package/src/components/ui/fireworks-background.module.css +13 -0
  772. package/src/components/ui/fireworks-background.tsx +89 -51
  773. package/src/components/ui/flip-button.module.css +44 -0
  774. package/src/components/ui/flip-button.tsx +59 -28
  775. package/src/components/ui/focus-scope.module.css +3 -0
  776. package/src/components/ui/focus-scope.tsx +160 -0
  777. package/src/components/ui/form-skeleton.module.css +28 -0
  778. package/src/components/ui/form-skeleton.tsx +62 -0
  779. package/src/components/ui/form.module.css +20 -0
  780. package/src/components/ui/form.tsx +244 -33
  781. package/src/components/ui/gradient-background.module.css +6 -0
  782. package/src/components/ui/gradient-background.tsx +27 -5
  783. package/src/components/ui/gradient-text.module.css +23 -0
  784. package/src/components/ui/gradient-text.tsx +36 -9
  785. package/src/components/ui/highlight-text.module.css +14 -0
  786. package/src/components/ui/highlight-text.tsx +37 -15
  787. package/src/components/ui/hole-background.module.css +84 -0
  788. package/src/components/ui/hole-background.tsx +290 -162
  789. package/src/components/ui/hover-card.module.css +21 -0
  790. package/src/components/ui/hover-card.tsx +142 -21
  791. package/src/components/ui/input-group.module.css +148 -0
  792. package/src/components/ui/input-group.tsx +222 -98
  793. package/src/components/ui/input-otp.module.css +92 -0
  794. package/src/components/ui/input-otp.tsx +159 -33
  795. package/src/components/ui/input.module.css +37 -0
  796. package/src/components/ui/input.tsx +56 -14
  797. package/src/components/ui/item.module.css +143 -0
  798. package/src/components/ui/item.tsx +331 -104
  799. package/src/components/ui/kbd.module.css +31 -0
  800. package/src/components/ui/kbd.tsx +60 -17
  801. package/src/components/ui/label.module.css +13 -0
  802. package/src/components/ui/label.tsx +38 -14
  803. package/src/components/ui/list-skeleton.module.css +35 -0
  804. package/src/components/ui/list-skeleton.tsx +70 -0
  805. package/src/components/ui/loading-overlay.module.css +19 -0
  806. package/src/components/ui/loading-overlay.tsx +72 -0
  807. package/src/components/ui/menubar.module.css +144 -0
  808. package/src/components/ui/menubar.tsx +605 -192
  809. package/src/components/ui/meter.module.css +32 -0
  810. package/src/components/ui/meter.tsx +170 -0
  811. package/src/components/ui/navigation-menu.module.css +110 -0
  812. package/src/components/ui/navigation-menu.tsx +375 -101
  813. package/src/components/ui/number-field.module.css +126 -0
  814. package/src/components/ui/number-field.tsx +254 -0
  815. package/src/components/ui/pagination.module.css +64 -0
  816. package/src/components/ui/pagination.tsx +250 -72
  817. package/src/components/ui/popover.module.css +26 -0
  818. package/src/components/ui/popover.tsx +207 -25
  819. package/src/components/ui/progress.module.css +15 -0
  820. package/src/components/ui/progress.tsx +53 -16
  821. package/src/components/ui/radio-group.module.css +41 -0
  822. package/src/components/ui/radio-group.tsx +91 -34
  823. package/src/components/ui/resizable.module.css +67 -0
  824. package/src/components/ui/resizable.tsx +106 -26
  825. package/src/components/ui/ripple-button.module.css +35 -0
  826. package/src/components/ui/ripple-button.tsx +55 -21
  827. package/src/components/ui/scratcher.module.css +9 -0
  828. package/src/components/ui/scratcher.tsx +129 -99
  829. package/src/components/ui/scroll-area.module.css +47 -0
  830. package/src/components/ui/scroll-area.tsx +96 -34
  831. package/src/components/ui/select.module.css +131 -0
  832. package/src/components/ui/select.tsx +435 -124
  833. package/src/components/ui/separator.module.css +14 -0
  834. package/src/components/ui/separator.tsx +59 -18
  835. package/src/components/ui/sheet.module.css +138 -0
  836. package/src/components/ui/sheet.tsx +424 -95
  837. package/src/components/ui/sidebar.module.css +594 -0
  838. package/src/components/ui/sidebar.tsx +899 -425
  839. package/src/components/ui/skeleton.module.css +14 -0
  840. package/src/components/ui/skeleton.tsx +39 -9
  841. package/src/components/ui/slider.module.css +48 -0
  842. package/src/components/ui/slider.tsx +89 -16
  843. package/src/components/ui/sonner.module.css +246 -0
  844. package/src/components/ui/sonner.tsx +769 -25
  845. package/src/components/ui/spinner.module.css +25 -0
  846. package/src/components/ui/spinner.tsx +51 -12
  847. package/src/components/ui/stepper.module.css +72 -0
  848. package/src/components/ui/stepper.tsx +95 -0
  849. package/src/components/ui/switch.module.css +42 -0
  850. package/src/components/ui/switch.tsx +53 -20
  851. package/src/components/ui/table-skeleton.module.css +29 -0
  852. package/src/components/ui/table-skeleton.tsx +79 -0
  853. package/src/components/ui/table.module.css +66 -0
  854. package/src/components/ui/table.tsx +235 -61
  855. package/src/components/ui/tabs.module.css +89 -0
  856. package/src/components/ui/tabs.tsx +192 -45
  857. package/src/components/ui/textarea.module.css +30 -0
  858. package/src/components/ui/textarea.tsx +30 -10
  859. package/src/components/ui/timeline.module.css +43 -0
  860. package/src/components/ui/timeline.tsx +153 -0
  861. package/src/components/ui/toggle-group.module.css +5 -0
  862. package/src/components/ui/toggle-group.tsx +116 -35
  863. package/src/components/ui/toggle.module.css +57 -0
  864. package/src/components/ui/toggle.tsx +89 -33
  865. package/src/components/ui/toolbar.module.css +112 -0
  866. package/src/components/ui/toolbar.tsx +210 -0
  867. package/src/components/ui/tooltip.module.css +39 -0
  868. package/src/components/ui/tooltip.tsx +181 -24
  869. package/src/components/ui/typewriter.module.css +101 -0
  870. package/src/components/ui/typewriter.tsx +130 -128
  871. package/src/components/ui/visually-hidden.module.css +11 -0
  872. package/src/components/ui/visually-hidden.tsx +50 -0
  873. package/src/css-modules.d.ts +9 -0
  874. package/src/hooks/useAnnounce.tsx +73 -0
  875. package/src/hooks/useBreakpoint.tsx +41 -0
  876. package/src/hooks/useColorScheme.tsx +23 -0
  877. package/src/hooks/useFocusManager.tsx +89 -0
  878. package/src/hooks/useFocusVisible.tsx +88 -0
  879. package/src/hooks/useIsMobile.tsx +7 -28
  880. package/src/hooks/useMediaQuery.tsx +34 -0
  881. package/src/hooks/usePrefersContrast.tsx +24 -0
  882. package/src/hooks/useReducedMotion.tsx +20 -0
  883. package/src/index.css +127 -65
  884. package/src/index.ts +223 -16
  885. package/src/lib/color-conversion-utilities.ts +165 -0
  886. package/src/lib/utilities.ts +7 -6
  887. package/src/motion/Collapse.module.css +22 -0
  888. package/src/motion/Collapse.tsx +52 -0
  889. package/src/motion/Presence.tsx +44 -0
  890. package/src/motion/index.ts +13 -0
  891. package/src/motion/presets.ts +77 -0
  892. package/src/motion/tokens.ts +37 -0
@@ -1,21 +1,51 @@
1
1
  "use client";
2
2
 
3
- /* eslint-disable */
3
+ /* eslint-disable 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,191 @@ 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
+ function formatChartValue(value: TooltipValueType, itemConfig: ChartConfig[string] | undefined): React.ReactNode {
452
+ if (typeof value === "number") {
453
+ return itemConfig?.formatter ? itemConfig.formatter(value) : value.toLocaleString();
454
+ }
455
+
456
+ return String(value);
457
+ }
458
+
459
+ function formatLegendDataKey(dataKey: LegendPayload["dataKey"]): string | null {
460
+ return typeof dataKey === "number" || typeof dataKey === "string" ? String(dataKey) : null;
461
+ }
462
+
463
+ function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string): ChartConfig[string] | undefined {
278
464
  if (typeof payload !== "object" || payload === null) {
279
465
  return undefined;
280
466
  }
281
467
 
282
- const payloadPayload =
283
- "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : undefined;
468
+ const payloadObject = payload as Record<string, unknown>;
469
+ const nestedPayload =
470
+ typeof payloadObject["payload"] === "object" && payloadObject["payload"] !== null
471
+ ? (payloadObject["payload"] as Record<string, unknown>)
472
+ : undefined;
284
473
 
285
- let configLabelKey: string = key;
474
+ let configLabelKey = key;
286
475
 
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;
476
+ if (typeof payloadObject[key] === "string") {
477
+ configLabelKey = payloadObject[key] as string;
478
+ } else if (nestedPayload && typeof nestedPayload[key] === "string") {
479
+ configLabelKey = nestedPayload[key] as string;
291
480
  }
292
481
 
293
- return configLabelKey in config ? config[configLabelKey] : config[key];
482
+ return config[configLabelKey] ?? config[key];
294
483
  }
295
484
 
485
+ ChartContainer.displayName = "ChartContainer";
486
+ ChartStyle.displayName = "ChartStyle";
487
+ Object.assign(ChartTooltip, {displayName: "ChartTooltip"});
488
+ ChartTooltipContent.displayName = "ChartTooltipContent";
489
+ Object.assign(ChartLegend, {displayName: "ChartLegend"});
490
+ ChartLegendContent.displayName = "ChartLegendContent";
491
+
296
492
  export {ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent};
493
+
494
+ // ---------------------------------------------------------------------------
495
+ // Recharts v3.8+ primitive re-exports
496
+ // Consumers should import chart primitives from "@arolariu/components/chart"
497
+ // instead of importing directly from "recharts".
498
+ // ---------------------------------------------------------------------------
499
+
500
+ // -- Chart containers -------------------------------------------------------
501
+ /** @see {@link https://recharts.github.io/en-US/api/AreaChart | AreaChart API} */
502
+ export const AreaChart = RechartsPrimitive.AreaChart;
503
+ /** @see {@link https://recharts.github.io/en-US/api/BarChart | BarChart API} */
504
+ export const BarChart = RechartsPrimitive.BarChart;
505
+ /** @see {@link https://recharts.github.io/en-US/api/ComposedChart | ComposedChart API} */
506
+ export const ComposedChart = RechartsPrimitive.ComposedChart;
507
+ /** @see {@link https://recharts.github.io/en-US/api/FunnelChart | FunnelChart API} */
508
+ export const FunnelChart = RechartsPrimitive.FunnelChart;
509
+ /** @see {@link https://recharts.github.io/en-US/api/LineChart | LineChart API} */
510
+ export const LineChart = RechartsPrimitive.LineChart;
511
+ /** @see {@link https://recharts.github.io/en-US/api/PieChart | PieChart API} */
512
+ export const PieChart = RechartsPrimitive.PieChart;
513
+ /** @see {@link https://recharts.github.io/en-US/api/RadarChart | RadarChart API} */
514
+ export const RadarChart = RechartsPrimitive.RadarChart;
515
+ /** @see {@link https://recharts.github.io/en-US/api/RadialBarChart | RadialBarChart API} */
516
+ export const RadialBarChart = RechartsPrimitive.RadialBarChart;
517
+ /** @see {@link https://recharts.github.io/en-US/api/ScatterChart | ScatterChart API} */
518
+ export const ScatterChart = RechartsPrimitive.ScatterChart;
519
+ /** @see {@link https://recharts.github.io/en-US/api/Sankey | Sankey API} */
520
+ export const Sankey = RechartsPrimitive.Sankey;
521
+ /** @see {@link https://recharts.github.io/en-US/api/SunburstChart | SunburstChart API} */
522
+ export const SunburstChart = RechartsPrimitive.SunburstChart;
523
+ /** @see {@link https://recharts.github.io/en-US/api/Treemap | Treemap API} */
524
+ export const Treemap = RechartsPrimitive.Treemap;
525
+
526
+ // -- Series elements --------------------------------------------------------
527
+ /** @see {@link https://recharts.github.io/en-US/api/Area | Area API} */
528
+ export const Area = RechartsPrimitive.Area;
529
+ /** @see {@link https://recharts.github.io/en-US/api/Bar | Bar API} */
530
+ export const Bar = RechartsPrimitive.Bar;
531
+ /**
532
+ * Groups stacked bars and configures shared stack properties such as radius.
533
+ * @since recharts 3.6
534
+ * @see {@link https://recharts.github.io/en-US/guide/roundedBars | BarStack Guide}
535
+ */
536
+ export const BarStack = RechartsPrimitive.BarStack;
537
+ /** @see {@link https://recharts.github.io/en-US/api/Funnel | Funnel API} */
538
+ export const Funnel = RechartsPrimitive.Funnel;
539
+ /** @see {@link https://recharts.github.io/en-US/api/Line | Line API} */
540
+ export const Line = RechartsPrimitive.Line;
541
+ /** @see {@link https://recharts.github.io/en-US/api/Pie | Pie API} */
542
+ export const Pie = RechartsPrimitive.Pie;
543
+ /** @see {@link https://recharts.github.io/en-US/api/Radar | Radar API} */
544
+ export const Radar = RechartsPrimitive.Radar;
545
+ /** @see {@link https://recharts.github.io/en-US/api/RadialBar | RadialBar API} */
546
+ export const RadialBar = RechartsPrimitive.RadialBar;
547
+ /** @see {@link https://recharts.github.io/en-US/api/Scatter | Scatter API} */
548
+ export const Scatter = RechartsPrimitive.Scatter;
549
+
550
+ // -- Axis & grid ------------------------------------------------------------
551
+ /** @see {@link https://recharts.github.io/en-US/api/CartesianGrid | CartesianGrid API} */
552
+ export const CartesianGrid = RechartsPrimitive.CartesianGrid;
553
+ /** @see {@link https://recharts.github.io/en-US/api/PolarAngleAxis | PolarAngleAxis API} */
554
+ export const PolarAngleAxis = RechartsPrimitive.PolarAngleAxis;
555
+ /** @see {@link https://recharts.github.io/en-US/api/PolarGrid | PolarGrid API} */
556
+ export const PolarGrid = RechartsPrimitive.PolarGrid;
557
+ /** @see {@link https://recharts.github.io/en-US/api/PolarRadiusAxis | PolarRadiusAxis API} */
558
+ export const PolarRadiusAxis = RechartsPrimitive.PolarRadiusAxis;
559
+ /** @see {@link https://recharts.github.io/en-US/api/XAxis | XAxis API} – supports `type: "auto"` since v3.7. */
560
+ export const XAxis = RechartsPrimitive.XAxis;
561
+ /** @see {@link https://recharts.github.io/en-US/api/YAxis | YAxis API} – supports `type: "auto"` since v3.7. */
562
+ export const YAxis = RechartsPrimitive.YAxis;
563
+ /** @see {@link https://recharts.github.io/en-US/api/ZAxis | ZAxis API} */
564
+ export const ZAxis = RechartsPrimitive.ZAxis;
565
+
566
+ // -- Annotations & overlays ------------------------------------------------
567
+ /** @see {@link https://recharts.github.io/en-US/api/Brush | Brush API} */
568
+ export const Brush = RechartsPrimitive.Brush;
569
+ /** @see {@link https://recharts.github.io/en-US/api/ErrorBar | ErrorBar API} */
570
+ export const ErrorBar = RechartsPrimitive.ErrorBar;
571
+ /** @see {@link https://recharts.github.io/en-US/api/Label | Label API} */
572
+ export const RechartsLabel = RechartsPrimitive.Label;
573
+ /** @see {@link https://recharts.github.io/en-US/api/LabelList | LabelList API} */
574
+ export const LabelList = RechartsPrimitive.LabelList;
575
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceArea | ReferenceArea API} */
576
+ export const ReferenceArea = RechartsPrimitive.ReferenceArea;
577
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceDot | ReferenceDot API} */
578
+ export const ReferenceDot = RechartsPrimitive.ReferenceDot;
579
+ /** @see {@link https://recharts.github.io/en-US/api/ReferenceLine | ReferenceLine API} */
580
+ export const ReferenceLine = RechartsPrimitive.ReferenceLine;
581
+
582
+ // -- Layout -----------------------------------------------------------------
583
+ /**
584
+ * Wraps a chart in a responsive container. Since recharts 3.3+, you can
585
+ * alternatively use the `responsive` prop directly on chart containers.
586
+ * @see {@link https://recharts.github.io/en-US/api/ResponsiveContainer | ResponsiveContainer API}
587
+ */
588
+ export const ResponsiveContainer = RechartsPrimitive.ResponsiveContainer;
589
+ /** @see {@link https://recharts.github.io/en-US/api/Customized | Customized API} */
590
+ export const Customized = RechartsPrimitive.Customized;
591
+
592
+ // -- Shapes -----------------------------------------------------------------
593
+ /**
594
+ * @deprecated Since recharts 3.7. Use the `shape` prop on chart series elements instead.
595
+ * @see {@link https://recharts.github.io/en-US/api/Cell | Cell API}
596
+ */
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;
606
+
607
+ // -- Z-index (v3.4+) -------------------------------------------------------
608
+ /** @since recharts 3.4 @see {@link https://recharts.github.io/en-US/guide/zIndex | Z-Index Guide} */
609
+ export const ZIndexLayer = RechartsPrimitive.ZIndexLayer;
610
+ /** Default z-index ordering constants. @since recharts 3.4 */
611
+ export const DefaultZIndexes = RechartsPrimitive.DefaultZIndexes;
612
+
613
+ // -- Hooks (v3+) ------------------------------------------------------------
614
+ /** Returns the current chart width in pixels. */
615
+ export const useChartWidth = RechartsPrimitive.useChartWidth;
616
+ /** Returns the current chart height in pixels. */
617
+ export const useChartHeight = RechartsPrimitive.useChartHeight;
618
+ /** Returns the chart offset (margins, axes). */
619
+ export const useOffset = RechartsPrimitive.useOffset;
620
+ /** Returns the plot area dimensions. */
621
+ export const usePlotArea = RechartsPrimitive.usePlotArea;
622
+ /** Returns the chart margin. */
623
+ export const useMargin = RechartsPrimitive.useMargin;
624
+ /** Returns whether the tooltip is currently active. @since recharts 3.7 */
625
+ export const useIsTooltipActive = RechartsPrimitive.useIsTooltipActive;
626
+ /** Returns the active tooltip coordinate. @since recharts 3.7 */
627
+ export const useActiveTooltipCoordinate = RechartsPrimitive.useActiveTooltipCoordinate;
628
+ /** Returns the active tooltip data points. */
629
+ export const useActiveTooltipDataPoints = RechartsPrimitive.useActiveTooltipDataPoints;
630
+ /** Returns the active tooltip label. */
631
+ export const useActiveTooltipLabel = RechartsPrimitive.useActiveTooltipLabel;
632
+ /** Returns the current X-axis domain. */
633
+ export const useXAxisDomain = RechartsPrimitive.useXAxisDomain;
634
+ /** Returns the current Y-axis domain. */
635
+ export const useYAxisDomain = RechartsPrimitive.useYAxisDomain;
636
+
637
+ // -- Type re-exports --------------------------------------------------------
638
+ export type {DefaultLegendContentProps, DefaultTooltipContentProps, TooltipValueType} from "recharts";