@arolariu/components 0.5.0 → 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} +25 -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 +387 -51
  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 +222 -23
  245. package/dist/components/ui/field.d.ts.map +1 -1
  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 -5363
  682. package/dist/index.css.map +1 -1
  683. package/dist/index.d.ts +38 -8
  684. package/dist/index.d.ts.map +1 -1
  685. package/dist/index.js +89 -72
  686. package/dist/lib/utilities.d.ts +5 -4
  687. package/dist/lib/utilities.d.ts.map +1 -1
  688. package/dist/lib/utilities.js +1 -2
  689. package/dist/lib/utilities.js.map +1 -1
  690. package/dist/motion/Collapse.js +19 -0
  691. package/dist/motion/Collapse.js.map +1 -0
  692. package/dist/motion/Collapse.module.js +8 -0
  693. package/dist/motion/Collapse.module.js.map +1 -0
  694. package/dist/motion/Collapse_module.css +25 -0
  695. package/dist/motion/Collapse_module.css.map +1 -0
  696. package/dist/motion/Presence.js +14 -0
  697. package/dist/motion/Presence.js.map +1 -0
  698. package/dist/motion/index.js +5 -0
  699. package/dist/motion/presets.js +117 -0
  700. package/dist/motion/presets.js.map +1 -0
  701. package/dist/motion/tokens.js +41 -0
  702. package/dist/motion/tokens.js.map +1 -0
  703. package/package.json +154 -67
  704. package/src/components/ui/accordion.module.css +70 -0
  705. package/src/components/ui/accordion.tsx +278 -44
  706. package/src/components/ui/alert-dialog.module.css +87 -0
  707. package/src/components/ui/alert-dialog.tsx +474 -99
  708. package/src/components/ui/alert.module.css +57 -0
  709. package/src/components/ui/alert.tsx +136 -43
  710. package/src/components/ui/aspect-ratio.module.css +7 -0
  711. package/src/components/ui/aspect-ratio.tsx +38 -3
  712. package/src/components/ui/async-boundary.tsx +56 -0
  713. package/src/components/ui/avatar.module.css +31 -0
  714. package/src/components/ui/avatar.tsx +146 -36
  715. package/src/components/ui/background-beams.module.css +20 -0
  716. package/src/components/ui/background-beams.tsx +173 -134
  717. package/src/components/ui/badge.module.css +60 -0
  718. package/src/components/ui/badge.tsx +100 -32
  719. package/src/components/ui/breadcrumb.module.css +87 -0
  720. package/src/components/ui/breadcrumb.tsx +256 -74
  721. package/src/components/ui/bubble-background.module.css +97 -0
  722. package/src/components/ui/bubble-background.tsx +92 -52
  723. package/src/components/ui/button-group.module.css +76 -0
  724. package/src/components/ui/button-group.tsx +135 -46
  725. package/src/components/ui/button.module.css +138 -0
  726. package/src/components/ui/button.tsx +159 -41
  727. package/src/components/ui/calendar.module.css +250 -0
  728. package/src/components/ui/calendar.tsx +133 -103
  729. package/src/components/ui/card-skeleton.module.css +50 -0
  730. package/src/components/ui/card-skeleton.tsx +69 -0
  731. package/src/components/ui/card.module.css +41 -0
  732. package/src/components/ui/card.tsx +175 -22
  733. package/src/components/ui/carousel.module.css +80 -0
  734. package/src/components/ui/carousel.tsx +184 -43
  735. package/src/components/ui/chart.module.css +164 -0
  736. package/src/components/ui/chart.tsx +444 -102
  737. package/src/components/ui/checkbox-group.module.css +8 -0
  738. package/src/components/ui/checkbox-group.tsx +54 -0
  739. package/src/components/ui/checkbox.module.css +43 -0
  740. package/src/components/ui/checkbox.tsx +73 -19
  741. package/src/components/ui/collapsible.module.css +24 -0
  742. package/src/components/ui/collapsible.tsx +139 -3
  743. package/src/components/ui/command.module.css +193 -0
  744. package/src/components/ui/command.tsx +877 -114
  745. package/src/components/ui/context-menu.module.css +113 -0
  746. package/src/components/ui/context-menu.tsx +616 -157
  747. package/src/components/ui/copy-button.module.css +34 -0
  748. package/src/components/ui/copy-button.tsx +116 -0
  749. package/src/components/ui/counting-number.module.css +4 -0
  750. package/src/components/ui/counting-number.tsx +69 -31
  751. package/src/components/ui/dialog.module.css +113 -0
  752. package/src/components/ui/dialog.tsx +427 -81
  753. package/src/components/ui/dot-background.module.css +12 -0
  754. package/src/components/ui/dot-background.tsx +134 -126
  755. package/src/components/ui/drawer.module.css +85 -0
  756. package/src/components/ui/drawer.tsx +408 -80
  757. package/src/components/ui/dropdown-menu.module.css +113 -0
  758. package/src/components/ui/dropdown-menu.tsx +616 -159
  759. package/src/components/ui/dropdrawer.module.css +322 -0
  760. package/src/components/ui/dropdrawer.tsx +850 -398
  761. package/src/components/ui/empty.module.css +84 -0
  762. package/src/components/ui/empty.tsx +176 -52
  763. package/src/components/ui/error-boundary.module.css +36 -0
  764. package/src/components/ui/error-boundary.tsx +127 -0
  765. package/src/components/ui/field.module.css +179 -0
  766. package/src/components/ui/field.tsx +345 -139
  767. package/src/components/ui/fireworks-background.module.css +13 -0
  768. package/src/components/ui/fireworks-background.tsx +89 -51
  769. package/src/components/ui/flip-button.module.css +44 -0
  770. package/src/components/ui/flip-button.tsx +59 -28
  771. package/src/components/ui/focus-scope.module.css +3 -0
  772. package/src/components/ui/focus-scope.tsx +160 -0
  773. package/src/components/ui/form-skeleton.module.css +28 -0
  774. package/src/components/ui/form-skeleton.tsx +62 -0
  775. package/src/components/ui/form.module.css +20 -0
  776. package/src/components/ui/form.tsx +244 -33
  777. package/src/components/ui/gradient-background.module.css +6 -0
  778. package/src/components/ui/gradient-background.tsx +27 -5
  779. package/src/components/ui/gradient-text.module.css +23 -0
  780. package/src/components/ui/gradient-text.tsx +36 -9
  781. package/src/components/ui/highlight-text.module.css +14 -0
  782. package/src/components/ui/highlight-text.tsx +37 -15
  783. package/src/components/ui/hole-background.module.css +84 -0
  784. package/src/components/ui/hole-background.tsx +290 -162
  785. package/src/components/ui/hover-card.module.css +21 -0
  786. package/src/components/ui/hover-card.tsx +142 -21
  787. package/src/components/ui/input-group.module.css +148 -0
  788. package/src/components/ui/input-group.tsx +222 -98
  789. package/src/components/ui/input-otp.module.css +92 -0
  790. package/src/components/ui/input-otp.tsx +159 -33
  791. package/src/components/ui/input.module.css +37 -0
  792. package/src/components/ui/input.tsx +56 -14
  793. package/src/components/ui/item.module.css +143 -0
  794. package/src/components/ui/item.tsx +331 -104
  795. package/src/components/ui/kbd.module.css +31 -0
  796. package/src/components/ui/kbd.tsx +60 -17
  797. package/src/components/ui/label.module.css +13 -0
  798. package/src/components/ui/label.tsx +38 -14
  799. package/src/components/ui/list-skeleton.module.css +35 -0
  800. package/src/components/ui/list-skeleton.tsx +70 -0
  801. package/src/components/ui/loading-overlay.module.css +19 -0
  802. package/src/components/ui/loading-overlay.tsx +72 -0
  803. package/src/components/ui/menubar.module.css +144 -0
  804. package/src/components/ui/menubar.tsx +605 -192
  805. package/src/components/ui/meter.module.css +32 -0
  806. package/src/components/ui/meter.tsx +170 -0
  807. package/src/components/ui/navigation-menu.module.css +110 -0
  808. package/src/components/ui/navigation-menu.tsx +375 -101
  809. package/src/components/ui/number-field.module.css +126 -0
  810. package/src/components/ui/number-field.tsx +254 -0
  811. package/src/components/ui/pagination.module.css +64 -0
  812. package/src/components/ui/pagination.tsx +250 -72
  813. package/src/components/ui/popover.module.css +26 -0
  814. package/src/components/ui/popover.tsx +207 -25
  815. package/src/components/ui/progress.module.css +15 -0
  816. package/src/components/ui/progress.tsx +53 -16
  817. package/src/components/ui/radio-group.module.css +41 -0
  818. package/src/components/ui/radio-group.tsx +91 -34
  819. package/src/components/ui/resizable.module.css +67 -0
  820. package/src/components/ui/resizable.tsx +106 -26
  821. package/src/components/ui/ripple-button.module.css +35 -0
  822. package/src/components/ui/ripple-button.tsx +55 -21
  823. package/src/components/ui/scratcher.module.css +9 -0
  824. package/src/components/ui/scratcher.tsx +129 -99
  825. package/src/components/ui/scroll-area.module.css +47 -0
  826. package/src/components/ui/scroll-area.tsx +96 -34
  827. package/src/components/ui/select.module.css +131 -0
  828. package/src/components/ui/select.tsx +435 -124
  829. package/src/components/ui/separator.module.css +14 -0
  830. package/src/components/ui/separator.tsx +59 -18
  831. package/src/components/ui/sheet.module.css +138 -0
  832. package/src/components/ui/sheet.tsx +424 -95
  833. package/src/components/ui/sidebar.module.css +594 -0
  834. package/src/components/ui/sidebar.tsx +899 -425
  835. package/src/components/ui/skeleton.module.css +14 -0
  836. package/src/components/ui/skeleton.tsx +39 -9
  837. package/src/components/ui/slider.module.css +48 -0
  838. package/src/components/ui/slider.tsx +89 -16
  839. package/src/components/ui/sonner.module.css +246 -0
  840. package/src/components/ui/sonner.tsx +769 -25
  841. package/src/components/ui/spinner.module.css +25 -0
  842. package/src/components/ui/spinner.tsx +51 -12
  843. package/src/components/ui/stepper.module.css +72 -0
  844. package/src/components/ui/stepper.tsx +95 -0
  845. package/src/components/ui/switch.module.css +42 -0
  846. package/src/components/ui/switch.tsx +53 -20
  847. package/src/components/ui/table-skeleton.module.css +29 -0
  848. package/src/components/ui/table-skeleton.tsx +79 -0
  849. package/src/components/ui/table.module.css +66 -0
  850. package/src/components/ui/table.tsx +235 -61
  851. package/src/components/ui/tabs.module.css +89 -0
  852. package/src/components/ui/tabs.tsx +192 -45
  853. package/src/components/ui/textarea.module.css +30 -0
  854. package/src/components/ui/textarea.tsx +30 -10
  855. package/src/components/ui/timeline.module.css +43 -0
  856. package/src/components/ui/timeline.tsx +153 -0
  857. package/src/components/ui/toggle-group.module.css +5 -0
  858. package/src/components/ui/toggle-group.tsx +116 -35
  859. package/src/components/ui/toggle.module.css +57 -0
  860. package/src/components/ui/toggle.tsx +89 -33
  861. package/src/components/ui/toolbar.module.css +112 -0
  862. package/src/components/ui/toolbar.tsx +210 -0
  863. package/src/components/ui/tooltip.module.css +39 -0
  864. package/src/components/ui/tooltip.tsx +181 -24
  865. package/src/components/ui/typewriter.module.css +101 -0
  866. package/src/components/ui/typewriter.tsx +130 -128
  867. package/src/components/ui/visually-hidden.module.css +11 -0
  868. package/src/components/ui/visually-hidden.tsx +50 -0
  869. package/src/css-modules.d.ts +9 -0
  870. package/src/hooks/useAnnounce.tsx +73 -0
  871. package/src/hooks/useBreakpoint.tsx +41 -0
  872. package/src/hooks/useColorScheme.tsx +23 -0
  873. package/src/hooks/useFocusManager.tsx +89 -0
  874. package/src/hooks/useFocusVisible.tsx +88 -0
  875. package/src/hooks/useIsMobile.tsx +7 -28
  876. package/src/hooks/useMediaQuery.tsx +34 -0
  877. package/src/hooks/usePrefersContrast.tsx +24 -0
  878. package/src/hooks/useReducedMotion.tsx +20 -0
  879. package/src/index.css +127 -65
  880. package/src/index.ts +196 -18
  881. package/src/lib/utilities.ts +7 -6
  882. package/src/motion/Collapse.module.css +22 -0
  883. package/src/motion/Collapse.tsx +52 -0
  884. package/src/motion/Presence.tsx +44 -0
  885. package/src/motion/index.ts +13 -0
  886. package/src/motion/presets.ts +77 -0
  887. package/src/motion/tokens.ts +37 -0
  888. package/src/hooks/useIsMobile.test.tsx +0 -96
  889. package/src/hooks/useWindowSize.test.tsx +0 -57
  890. package/src/index.test.ts +0 -537
  891. package/src/lib/color-conversion-utilities.test.ts +0 -225
  892. package/src/lib/utilities.test.ts +0 -37
@@ -1,217 +1,630 @@
1
1
  "use client";
2
2
 
3
- import * as MenubarPrimitive from "@radix-ui/react-menubar";
3
+ import {Menu as BaseMenu} from "@base-ui/react/menu";
4
+ import {Menubar as BaseMenubar} from "@base-ui/react/menubar";
5
+ import {mergeProps} from "@base-ui/react/merge-props";
6
+ import {useRender} from "@base-ui/react/use-render";
4
7
  import {Check, ChevronRight, Circle} from "lucide-react";
5
8
  import * as React from "react";
6
9
 
7
10
  import {cn} from "@/lib/utilities";
11
+ import styles from "./menubar.module.css";
8
12
 
9
- function MenubarMenu({...props}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {
10
- return <MenubarPrimitive.Menu {...props} />;
13
+ type MenubarProps = Omit<React.ComponentPropsWithRef<typeof BaseMenubar>, "className"> & {className?: string};
14
+ interface MenubarTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Trigger>, "className"> {
15
+ /**
16
+ * Applies additional CSS classes to the component root element.
17
+ * @default undefined
18
+ */
19
+ className?: string;
11
20
  }
21
+ interface MenubarSubTriggerProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.SubmenuTrigger>, "className"> {
22
+ /**
23
+ * Applies additional CSS classes to the component root element.
24
+ * @default undefined
25
+ */
26
+ className?: string;
27
+ /**
28
+ * Applies inset spacing to align nested content.
29
+ * @default false
30
+ */
31
+ inset?: boolean;
32
+ }
33
+ interface MenubarContentProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Positioner>, "className"> {
34
+ /**
35
+ * Applies additional CSS classes to the component root element.
36
+ * @default undefined
37
+ */
38
+ className?: string;
39
+ }
40
+ interface MenubarItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Item>, "className"> {
41
+ /**
42
+ * Applies additional CSS classes to the component root element.
43
+ * @default undefined
44
+ */
45
+ className?: string;
46
+ /**
47
+ * Applies inset spacing to align nested content.
48
+ * @default false
49
+ */
50
+ inset?: boolean;
51
+ }
52
+ interface MenubarCheckboxItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.CheckboxItem>, "className"> {
53
+ /**
54
+ * Applies additional CSS classes to the component root element.
55
+ * @default undefined
56
+ */
57
+ className?: string;
58
+ }
59
+ interface MenubarRadioItemProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.RadioItem>, "className"> {
60
+ /**
61
+ * Applies additional CSS classes to the component root element.
62
+ * @default undefined
63
+ */
64
+ className?: string;
65
+ }
66
+ interface MenubarLabelProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.GroupLabel>, "className"> {
67
+ /**
68
+ * Applies additional CSS classes to the component root element.
69
+ * @default undefined
70
+ */
71
+ className?: string;
72
+ /**
73
+ * Applies inset spacing to align nested content.
74
+ * @default false
75
+ */
76
+ inset?: boolean;
77
+ }
78
+ interface MenubarSeparatorProps extends Omit<React.ComponentPropsWithRef<typeof BaseMenu.Separator>, "className"> {
79
+ /**
80
+ * Applies additional CSS classes to the component root element.
81
+ * @default undefined
82
+ */
83
+ className?: string;
84
+ }
85
+ interface MenubarShortcutProps extends React.ComponentPropsWithRef<"span"> {
86
+ /**
87
+ * Applies additional CSS classes to the component root element.
88
+ * @default undefined
89
+ */
90
+ className?: string;
91
+ /**
92
+ * Overrides the default rendered element while preserving component behavior.
93
+ * @default undefined
94
+ */
95
+ render?: useRender.RenderProp<Record<string, never>>;
96
+ /**
97
+ * Enables child element composition instead of rendering the default wrapper.
98
+ * @default false
99
+ * @deprecated Prefer Base UI's `render` prop.
100
+ */
101
+ asChild?: boolean;
102
+ }
103
+
104
+ /**
105
+ * Renders the menubar menu.
106
+ *
107
+ * @remarks
108
+ * - Delegates structure and state to the underlying Base UI primitive
109
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
110
+ * - Preserves the underlying primitive API for advanced composition
111
+ *
112
+ * @example
113
+ * ```tsx
114
+ * <MenubarMenu>Content</MenubarMenu>
115
+ * ```
116
+ *
117
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
118
+ */
119
+ const MenubarMenu: typeof BaseMenu.Root & {displayName?: string} = BaseMenu.Root;
120
+ /**
121
+ * Renders the menubar group.
122
+ *
123
+ * @remarks
124
+ * - Delegates structure and state to the underlying Base UI primitive
125
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
126
+ * - Preserves the underlying primitive API for advanced composition
127
+ *
128
+ * @example
129
+ * ```tsx
130
+ * <MenubarGroup>Content</MenubarGroup>
131
+ * ```
132
+ *
133
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
134
+ */
135
+ const MenubarGroup = BaseMenu.Group;
136
+ /**
137
+ * Provides the menubar portal container.
138
+ *
139
+ * @remarks
140
+ * - Delegates structure and state to the underlying Base UI primitive
141
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
142
+ * - Preserves the underlying primitive API for advanced composition
143
+ *
144
+ * @example
145
+ * ```tsx
146
+ * <MenubarPortal>Content</MenubarPortal>
147
+ * ```
148
+ *
149
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
150
+ */
151
+ const MenubarPortal = BaseMenu.Portal;
152
+ /**
153
+ * Coordinates the menubar radio group.
154
+ *
155
+ * @remarks
156
+ * - Delegates structure and state to the underlying Base UI primitive
157
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
158
+ * - Preserves the underlying primitive API for advanced composition
159
+ *
160
+ * @example
161
+ * ```tsx
162
+ * <MenubarRadioGroup>Content</MenubarRadioGroup>
163
+ * ```
164
+ *
165
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
166
+ */
167
+ const MenubarRadioGroup = BaseMenu.RadioGroup;
168
+ /**
169
+ * Coordinates the menubar sub.
170
+ *
171
+ * @remarks
172
+ * - Delegates structure and state to the underlying Base UI primitive
173
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
174
+ * - Preserves the underlying primitive API for advanced composition
175
+ *
176
+ * @example
177
+ * ```tsx
178
+ * <MenubarSub>Content</MenubarSub>
179
+ * ```
180
+ *
181
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
182
+ */
183
+ const MenubarSub: typeof BaseMenu.SubmenuRoot & {displayName?: string} = BaseMenu.SubmenuRoot;
184
+
185
+ /**
186
+ * Coordinates menubar state and accessibility behavior.
187
+ *
188
+ * @remarks
189
+ * - Renders a `<div>` element by default
190
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
191
+ * - Supports the `render` prop for element composition
192
+ *
193
+ * @example
194
+ * ```tsx
195
+ * <Menubar>Content</Menubar>
196
+ * ```
197
+ *
198
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
199
+ */
200
+ function Menubar(props: Readonly<Menubar.Props>): React.ReactElement {
201
+ const {className, children, render, ...otherProps} = props;
202
+
203
+ return (
204
+ <BaseMenubar
205
+ {...otherProps}
206
+ render={useRender({
207
+ defaultTagName: "div",
208
+ render: render as never,
209
+ props: mergeProps({className: cn(styles.root, className)}, {}),
210
+ })}>
211
+ {children}
212
+ </BaseMenubar>
213
+ );
214
+ }
215
+
216
+ /**
217
+ * Renders the menubar trigger.
218
+ *
219
+ * @remarks
220
+ * - Renders a `<button>` element by default
221
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
222
+ * - Supports the `render` prop for element composition
223
+ *
224
+ * @example
225
+ * ```tsx
226
+ * <MenubarTrigger>Content</MenubarTrigger>
227
+ * ```
228
+ *
229
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
230
+ */
231
+ const MenubarTrigger = React.forwardRef<HTMLButtonElement, MenubarTrigger.Props>(
232
+ (props: Readonly<MenubarTrigger.Props>, ref): React.ReactElement => {
233
+ const {className, children, render, ...otherProps} = props;
12
234
 
13
- function MenubarGroup({...props}: React.ComponentProps<typeof MenubarPrimitive.Group>) {
14
- return <MenubarPrimitive.Group {...props} />;
235
+ return (
236
+ <BaseMenu.Trigger
237
+ ref={ref}
238
+ {...otherProps}
239
+ render={useRender({
240
+ defaultTagName: "button",
241
+ render: render as never,
242
+ props: mergeProps({className: cn(styles.trigger, className)}, {}),
243
+ })}>
244
+ {children}
245
+ </BaseMenu.Trigger>
246
+ );
247
+ },
248
+ );
249
+
250
+ /**
251
+ * Renders the menubar sub trigger.
252
+ *
253
+ * @remarks
254
+ * - Renders a `<div>` element by default
255
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
256
+ * - Supports the `render` prop for element composition
257
+ *
258
+ * @example
259
+ * ```tsx
260
+ * <MenubarSubTrigger>Content</MenubarSubTrigger>
261
+ * ```
262
+ *
263
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
264
+ */
265
+ function MenubarSubTrigger(props: Readonly<MenubarSubTrigger.Props>): React.ReactElement {
266
+ const {className, children, inset = false, render, ...otherProps} = props;
267
+
268
+ return (
269
+ <BaseMenu.SubmenuTrigger
270
+ {...otherProps}
271
+ render={useRender({
272
+ defaultTagName: "div",
273
+ render: render as never,
274
+ props: mergeProps({className: cn(styles.item, styles.subTrigger, inset && styles.inset, className)}, {}),
275
+ })}>
276
+ {children}
277
+ <ChevronRight className={styles.subTriggerIcon} />
278
+ </BaseMenu.SubmenuTrigger>
279
+ );
15
280
  }
16
281
 
17
- function MenubarPortal({...props}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {
18
- return <MenubarPrimitive.Portal {...props} />;
282
+ /**
283
+ * Renders the menubar sub content.
284
+ *
285
+ * @remarks
286
+ * - Renders a `<div>` element by default
287
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
288
+ * - Supports the `render` prop for element composition
289
+ *
290
+ * @example
291
+ * ```tsx
292
+ * <MenubarSubContent>Content</MenubarSubContent>
293
+ * ```
294
+ *
295
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
296
+ */
297
+ function MenubarSubContent(props: Readonly<MenubarContent.Props>): React.ReactElement {
298
+ const {className, children, render, ...otherProps} = props;
299
+
300
+ return (
301
+ <BaseMenu.Positioner
302
+ {...otherProps}
303
+ render={useRender({
304
+ defaultTagName: "div",
305
+ props: mergeProps({className: styles.positioner}, {}),
306
+ })}>
307
+ <BaseMenu.Popup
308
+ render={useRender({
309
+ defaultTagName: "div",
310
+ render: render as never,
311
+ props: mergeProps({className: cn(styles.content, className)}, {}),
312
+ })}>
313
+ {children}
314
+ </BaseMenu.Popup>
315
+ </BaseMenu.Positioner>
316
+ );
19
317
  }
20
318
 
21
- function MenubarRadioGroup({...props}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {
22
- return <MenubarPrimitive.RadioGroup {...props} />;
319
+ /**
320
+ * Renders the menubar content.
321
+ *
322
+ * @remarks
323
+ * - Renders a `<div>` element by default
324
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
325
+ * - Supports the `render` prop for element composition
326
+ *
327
+ * @example
328
+ * ```tsx
329
+ * <MenubarContent>Content</MenubarContent>
330
+ * ```
331
+ *
332
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
333
+ */
334
+ const MenubarContent = React.forwardRef<React.ComponentRef<typeof BaseMenu.Popup>, MenubarContent.Props>(
335
+ (props: Readonly<MenubarContent.Props>, ref): React.ReactElement => {
336
+ const {alignOffset = -4, className, children, render, sideOffset = 8, ...otherProps} = props;
337
+
338
+ return (
339
+ <MenubarPortal>
340
+ <BaseMenu.Positioner
341
+ alignOffset={alignOffset}
342
+ sideOffset={sideOffset}
343
+ {...otherProps}
344
+ render={useRender({
345
+ defaultTagName: "div",
346
+ props: mergeProps({className: styles.positioner}, {}),
347
+ })}>
348
+ <BaseMenu.Popup
349
+ ref={ref}
350
+ render={useRender({
351
+ defaultTagName: "div",
352
+ render: render as never,
353
+ props: mergeProps({className: cn(styles.content, className)}, {}),
354
+ })}>
355
+ {children}
356
+ </BaseMenu.Popup>
357
+ </BaseMenu.Positioner>
358
+ </MenubarPortal>
359
+ );
360
+ },
361
+ );
362
+
363
+ /**
364
+ * Renders the menubar item.
365
+ *
366
+ * @remarks
367
+ * - Renders a `<div>` element by default
368
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
369
+ * - Supports the `render` prop for element composition
370
+ *
371
+ * @example
372
+ * ```tsx
373
+ * <MenubarItem>Content</MenubarItem>
374
+ * ```
375
+ *
376
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
377
+ */
378
+ function MenubarItem(props: Readonly<MenubarItem.Props>): React.ReactElement {
379
+ const {className, children, inset = false, render, ...otherProps} = props;
380
+
381
+ return (
382
+ <BaseMenu.Item
383
+ {...otherProps}
384
+ render={useRender({
385
+ defaultTagName: "div",
386
+ render: render as never,
387
+ props: mergeProps({className: cn(styles.item, inset && styles.inset, className)}, {}),
388
+ })}>
389
+ {children}
390
+ </BaseMenu.Item>
391
+ );
23
392
  }
24
393
 
25
- function MenubarSub({...props}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {
394
+ /**
395
+ * Renders the menubar checkbox item.
396
+ *
397
+ * @remarks
398
+ * - Renders a `<div>` element by default
399
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
400
+ * - Supports the `render` prop for element composition
401
+ *
402
+ * @example
403
+ * ```tsx
404
+ * <MenubarCheckboxItem>Content</MenubarCheckboxItem>
405
+ * ```
406
+ *
407
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
408
+ */
409
+ function MenubarCheckboxItem(props: Readonly<MenubarCheckboxItem.Props>): React.ReactElement {
410
+ const {className, children, render, ...otherProps} = props;
411
+
26
412
  return (
27
- <MenubarPrimitive.Sub
28
- data-slot='menubar-sub'
29
- {...props}
30
- />
413
+ <BaseMenu.CheckboxItem
414
+ {...otherProps}
415
+ render={useRender({
416
+ defaultTagName: "div",
417
+ render: render as never,
418
+ props: mergeProps({className: cn(styles.item, styles.indicatorItem, className)}, {}),
419
+ })}>
420
+ <span className={styles.indicatorSlot}>
421
+ <BaseMenu.CheckboxItemIndicator>
422
+ <Check className={styles.indicatorIcon} />
423
+ </BaseMenu.CheckboxItemIndicator>
424
+ </span>
425
+ {children}
426
+ </BaseMenu.CheckboxItem>
31
427
  );
32
428
  }
33
429
 
34
- const Menubar = React.forwardRef<
35
- React.ComponentRef<typeof MenubarPrimitive.Root>,
36
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>
37
- >(({className, ...props}, ref) => (
38
- <MenubarPrimitive.Root
39
- ref={ref}
40
- className={cn(
41
- "flex h-9 items-center space-x-1 rounded-md border border-neutral-200 bg-white p-1 shadow-sm dark:border-neutral-800 dark:bg-neutral-950",
42
- className,
43
- )}
44
- {...props}
45
- />
46
- ));
47
- Menubar.displayName = MenubarPrimitive.Root.displayName;
48
-
49
- const MenubarTrigger = React.forwardRef<
50
- React.ComponentRef<typeof MenubarPrimitive.Trigger>,
51
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>
52
- >(({className, ...props}, ref) => (
53
- <MenubarPrimitive.Trigger
54
- ref={ref}
55
- className={cn(
56
- "flex cursor-default items-center rounded-sm px-3 py-1 text-sm font-medium outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
57
- className,
58
- )}
59
- {...props}
60
- />
61
- ));
62
- MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
63
-
64
- const MenubarSubTrigger = React.forwardRef<
65
- React.ComponentRef<typeof MenubarPrimitive.SubTrigger>,
66
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {
67
- inset?: boolean;
68
- }
69
- >(({className, inset, children, ...props}, ref) => (
70
- <MenubarPrimitive.SubTrigger
71
- ref={ref}
72
- className={cn(
73
- "flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50",
74
- inset && "pl-8",
75
- className,
76
- )}
77
- {...props}>
78
- {children}
79
- <ChevronRight className='ml-auto h-4 w-4' />
80
- </MenubarPrimitive.SubTrigger>
81
- ));
82
- MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
83
-
84
- const MenubarSubContent = React.forwardRef<
85
- React.ComponentRef<typeof MenubarPrimitive.SubContent>,
86
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>
87
- >(({className, ...props}, ref) => (
88
- <MenubarPrimitive.SubContent
89
- ref={ref}
90
- className={cn(
91
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-lg dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
92
- className,
93
- )}
94
- {...props}
95
- />
96
- ));
97
- MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
98
-
99
- const MenubarContent = React.forwardRef<
100
- React.ComponentRef<typeof MenubarPrimitive.Content>,
101
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>
102
- >(({className, align = "start", alignOffset = -4, sideOffset = 8, ...props}, ref) => (
103
- <MenubarPrimitive.Portal>
104
- <MenubarPrimitive.Content
105
- ref={ref}
106
- align={align}
107
- alignOffset={alignOffset}
108
- sideOffset={sideOffset}
109
- className={cn(
110
- "data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-[--radix-menubar-content-transform-origin] overflow-hidden rounded-md border border-neutral-200 bg-white p-1 text-neutral-950 shadow-md dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
111
- className,
112
- )}
113
- {...props}
114
- />
115
- </MenubarPrimitive.Portal>
116
- ));
117
- MenubarContent.displayName = MenubarPrimitive.Content.displayName;
118
-
119
- const MenubarItem = React.forwardRef<
120
- React.ComponentRef<typeof MenubarPrimitive.Item>,
121
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {
122
- inset?: boolean;
123
- }
124
- >(({className, inset, ...props}, ref) => (
125
- <MenubarPrimitive.Item
126
- ref={ref}
127
- className={cn(
128
- "relative flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
129
- inset && "pl-8",
130
- className,
131
- )}
132
- {...props}
133
- />
134
- ));
135
- MenubarItem.displayName = MenubarPrimitive.Item.displayName;
136
-
137
- const MenubarCheckboxItem = React.forwardRef<
138
- React.ComponentRef<typeof MenubarPrimitive.CheckboxItem>,
139
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>
140
- >(({className, children, checked, ...props}, ref) => (
141
- <MenubarPrimitive.CheckboxItem
142
- ref={ref}
143
- className={cn(
144
- "relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
145
- className,
146
- )}
147
- checked={checked}
148
- {...props}>
149
- <span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>
150
- <MenubarPrimitive.ItemIndicator>
151
- <Check className='h-4 w-4' />
152
- </MenubarPrimitive.ItemIndicator>
153
- </span>
154
- {children}
155
- </MenubarPrimitive.CheckboxItem>
156
- ));
157
- MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
158
-
159
- const MenubarRadioItem = React.forwardRef<
160
- React.ComponentRef<typeof MenubarPrimitive.RadioItem>,
161
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>
162
- >(({className, children, ...props}, ref) => (
163
- <MenubarPrimitive.RadioItem
164
- ref={ref}
165
- className={cn(
166
- "relative flex cursor-default items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none focus:bg-neutral-100 focus:text-neutral-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50",
167
- className,
168
- )}
169
- {...props}>
170
- <span className='absolute left-2 flex h-3.5 w-3.5 items-center justify-center'>
171
- <MenubarPrimitive.ItemIndicator>
172
- <Circle className='h-4 w-4 fill-current' />
173
- </MenubarPrimitive.ItemIndicator>
174
- </span>
175
- {children}
176
- </MenubarPrimitive.RadioItem>
177
- ));
178
- MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
179
-
180
- const MenubarLabel = React.forwardRef<
181
- React.ComponentRef<typeof MenubarPrimitive.Label>,
182
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {
183
- inset?: boolean;
184
- }
185
- >(({className, inset, ...props}, ref) => (
186
- <MenubarPrimitive.Label
187
- ref={ref}
188
- className={cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)}
189
- {...props}
190
- />
191
- ));
192
- MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
193
-
194
- const MenubarSeparator = React.forwardRef<
195
- React.ComponentRef<typeof MenubarPrimitive.Separator>,
196
- React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>
197
- >(({className, ...props}, ref) => (
198
- <MenubarPrimitive.Separator
199
- ref={ref}
200
- className={cn("-mx-1 my-1 h-px bg-neutral-100 dark:bg-neutral-800", className)}
201
- {...props}
202
- />
203
- ));
204
- MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
205
-
206
- const MenubarShortcut = ({className, ...props}: React.HTMLAttributes<HTMLSpanElement>) => {
430
+ /**
431
+ * Renders the menubar radio item.
432
+ *
433
+ * @remarks
434
+ * - Renders a `<div>` element by default
435
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
436
+ * - Supports the `render` prop for element composition
437
+ *
438
+ * @example
439
+ * ```tsx
440
+ * <MenubarRadioItem>Content</MenubarRadioItem>
441
+ * ```
442
+ *
443
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
444
+ */
445
+ function MenubarRadioItem(props: Readonly<MenubarRadioItem.Props>): React.ReactElement {
446
+ const {className, children, render, ...otherProps} = props;
447
+
448
+ return (
449
+ <BaseMenu.RadioItem
450
+ {...otherProps}
451
+ render={useRender({
452
+ defaultTagName: "div",
453
+ render: render as never,
454
+ props: mergeProps({className: cn(styles.item, styles.indicatorItem, className)}, {}),
455
+ })}>
456
+ <span className={styles.indicatorSlot}>
457
+ <BaseMenu.RadioItemIndicator>
458
+ <Circle className={styles.radioIndicatorIcon} />
459
+ </BaseMenu.RadioItemIndicator>
460
+ </span>
461
+ {children}
462
+ </BaseMenu.RadioItem>
463
+ );
464
+ }
465
+
466
+ /**
467
+ * Renders the menubar label.
468
+ *
469
+ * @remarks
470
+ * - Renders a `<div>` element by default
471
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
472
+ * - Supports the `render` prop for element composition
473
+ *
474
+ * @example
475
+ * ```tsx
476
+ * <MenubarLabel>Content</MenubarLabel>
477
+ * ```
478
+ *
479
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
480
+ */
481
+ function MenubarLabel(props: Readonly<MenubarLabel.Props>): React.ReactElement {
482
+ const {className, children, inset = false, render, ...otherProps} = props;
483
+
207
484
  return (
208
- <span
209
- className={cn("ml-auto text-xs tracking-widest text-neutral-500 dark:text-neutral-400", className)}
210
- {...props}
485
+ <BaseMenu.GroupLabel
486
+ {...otherProps}
487
+ render={useRender({
488
+ defaultTagName: "div",
489
+ render: render as never,
490
+ props: mergeProps({className: cn(styles.label, inset && styles.inset, className)}, {}),
491
+ })}>
492
+ {children}
493
+ </BaseMenu.GroupLabel>
494
+ );
495
+ }
496
+
497
+ /**
498
+ * Renders the menubar separator.
499
+ *
500
+ * @remarks
501
+ * - Renders a `<div>` element by default
502
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
503
+ * - Supports the `render` prop for element composition
504
+ *
505
+ * @example
506
+ * ```tsx
507
+ * <MenubarSeparator>Content</MenubarSeparator>
508
+ * ```
509
+ *
510
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
511
+ */
512
+ function MenubarSeparator(props: Readonly<MenubarSeparator.Props>): React.ReactElement {
513
+ const {className, render, ...otherProps} = props;
514
+
515
+ return (
516
+ <BaseMenu.Separator
517
+ {...otherProps}
518
+ render={useRender({
519
+ defaultTagName: "div",
520
+ render: render as never,
521
+ props: mergeProps({className: cn(styles.separator, className)}, {}),
522
+ })}
211
523
  />
212
524
  );
213
- };
214
- MenubarShortcut.displayname = "MenubarShortcut";
525
+ }
526
+
527
+ /**
528
+ * Renders the menubar shortcut.
529
+ *
530
+ * @remarks
531
+ * - Renders a `<span>` element by default
532
+ * - Built on {@link https://base-ui.com/react/components/menubar | Base UI Menubar}
533
+ * - Supports the `render` prop for element composition
534
+ *
535
+ * @example
536
+ * ```tsx
537
+ * <MenubarShortcut>Content</MenubarShortcut>
538
+ * ```
539
+ *
540
+ * @see {@link https://base-ui.com/react/components/menubar | Base UI Documentation}
541
+ */
542
+ function MenubarShortcut(props: Readonly<MenubarShortcut.Props>): React.ReactElement {
543
+ const {asChild = false, children, className, render, ...otherProps} = props;
544
+ const renderProp = asChild && React.isValidElement(children) ? children : render;
545
+
546
+ return useRender({
547
+ defaultTagName: "span",
548
+ render: renderProp as never,
549
+ props: mergeProps({className: cn(styles.shortcut, className)}, otherProps, {
550
+ children: renderProp ? undefined : children,
551
+ }),
552
+ });
553
+ }
554
+
555
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
556
+ namespace Menubar {
557
+ export type Props = MenubarProps;
558
+ export type State = BaseMenubar.State;
559
+ }
560
+
561
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
562
+ namespace MenubarTrigger {
563
+ export type Props = MenubarTriggerProps;
564
+ export type State = BaseMenu.Trigger.State;
565
+ }
566
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
567
+ namespace MenubarSubTrigger {
568
+ export type Props = MenubarSubTriggerProps;
569
+ export type State = BaseMenu.SubmenuTrigger.State;
570
+ }
571
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
572
+ namespace MenubarContent {
573
+ export type Props = MenubarContentProps;
574
+ export type State = BaseMenu.Popup.State;
575
+ }
576
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
577
+ namespace MenubarSubContent {
578
+ export type Props = MenubarContentProps;
579
+ export type State = BaseMenu.Popup.State;
580
+ }
581
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
582
+ namespace MenubarItem {
583
+ export type Props = MenubarItemProps;
584
+ export type State = BaseMenu.Item.State;
585
+ }
586
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
587
+ namespace MenubarCheckboxItem {
588
+ export type Props = MenubarCheckboxItemProps;
589
+ export type State = BaseMenu.CheckboxItem.State;
590
+ }
591
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
592
+ namespace MenubarRadioItem {
593
+ export type Props = MenubarRadioItemProps;
594
+ export type State = BaseMenu.RadioItem.State;
595
+ }
596
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
597
+ namespace MenubarLabel {
598
+ export type Props = MenubarLabelProps;
599
+ export type State = BaseMenu.GroupLabel.State;
600
+ }
601
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
602
+ namespace MenubarSeparator {
603
+ export type Props = MenubarSeparatorProps;
604
+ export type State = BaseMenu.Separator.State;
605
+ }
606
+ // eslint-disable-next-line no-redeclare -- required for the canonical component namespace typing API
607
+ namespace MenubarShortcut {
608
+ export type Props = MenubarShortcutProps;
609
+ export type State = Record<string, never>;
610
+ }
611
+
612
+ MenubarMenu.displayName = "MenubarMenu";
613
+ MenubarGroup.displayName = "MenubarGroup";
614
+ MenubarPortal.displayName = "MenubarPortal";
615
+ MenubarRadioGroup.displayName = "MenubarRadioGroup";
616
+ MenubarSub.displayName = "MenubarSub";
617
+ Menubar.displayName = "Menubar";
618
+ MenubarTrigger.displayName = "MenubarTrigger";
619
+ MenubarSubTrigger.displayName = "MenubarSubTrigger";
620
+ MenubarSubContent.displayName = "MenubarSubContent";
621
+ MenubarContent.displayName = "MenubarContent";
622
+ MenubarItem.displayName = "MenubarItem";
623
+ MenubarCheckboxItem.displayName = "MenubarCheckboxItem";
624
+ MenubarRadioItem.displayName = "MenubarRadioItem";
625
+ MenubarLabel.displayName = "MenubarLabel";
626
+ MenubarSeparator.displayName = "MenubarSeparator";
627
+ MenubarShortcut.displayName = "MenubarShortcut";
215
628
 
216
629
  export {
217
630
  Menubar,