@zentauri-ui/zentauri-components 1.4.6 → 1.4.7

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 (682) hide show
  1. package/README.md +136 -90
  2. package/cli/index.mjs +45 -26
  3. package/cli/registry.json +9 -1
  4. package/cli/rewrite-imports.mjs +8 -3
  5. package/dist/charts/area/Area.d.ts +6 -0
  6. package/dist/charts/area/Area.d.ts.map +1 -0
  7. package/dist/charts/area/index.d.ts +4 -0
  8. package/dist/charts/area/index.d.ts.map +1 -0
  9. package/dist/charts/area.js +119 -0
  10. package/dist/charts/area.js.map +1 -0
  11. package/dist/charts/area.mjs +106 -0
  12. package/dist/charts/area.mjs.map +1 -0
  13. package/dist/charts/bar/Bar.d.ts +6 -0
  14. package/dist/charts/bar/Bar.d.ts.map +1 -0
  15. package/dist/charts/bar/index.d.ts +4 -0
  16. package/dist/charts/bar/index.d.ts.map +1 -0
  17. package/dist/charts/bar.js +110 -0
  18. package/dist/charts/bar.js.map +1 -0
  19. package/dist/charts/bar.mjs +97 -0
  20. package/dist/charts/bar.mjs.map +1 -0
  21. package/dist/charts/bubble/Bubble.d.ts +6 -0
  22. package/dist/charts/bubble/Bubble.d.ts.map +1 -0
  23. package/dist/charts/bubble/index.d.ts +4 -0
  24. package/dist/charts/bubble/index.d.ts.map +1 -0
  25. package/dist/charts/bubble.js +122 -0
  26. package/dist/charts/bubble.js.map +1 -0
  27. package/dist/charts/bubble.mjs +109 -0
  28. package/dist/charts/bubble.mjs.map +1 -0
  29. package/dist/charts/line/Line.d.ts +6 -0
  30. package/dist/charts/line/Line.d.ts.map +1 -0
  31. package/dist/charts/line/index.d.ts +4 -0
  32. package/dist/charts/line/index.d.ts.map +1 -0
  33. package/dist/charts/line.js +113 -0
  34. package/dist/charts/line.js.map +1 -0
  35. package/dist/charts/line.mjs +100 -0
  36. package/dist/charts/line.mjs.map +1 -0
  37. package/dist/charts/shared/chart-frame.d.ts +32 -0
  38. package/dist/charts/shared/chart-frame.d.ts.map +1 -0
  39. package/dist/charts/shared/colors.d.ts +43 -0
  40. package/dist/charts/shared/colors.d.ts.map +1 -0
  41. package/dist/charts/shared/types.d.ts +43 -0
  42. package/dist/charts/shared/types.d.ts.map +1 -0
  43. package/dist/charts/shared/variants.d.ts +93 -0
  44. package/dist/charts/shared/variants.d.ts.map +1 -0
  45. package/dist/{chunk-IXDJ3IPG.mjs → chunk-2BAMNRAL.mjs} +40 -32
  46. package/dist/chunk-2BAMNRAL.mjs.map +1 -0
  47. package/dist/{chunk-JE3PD5ZA.js → chunk-2VUMVDR3.js} +8 -8
  48. package/dist/{chunk-JE3PD5ZA.js.map → chunk-2VUMVDR3.js.map} +1 -1
  49. package/dist/{chunk-DFEZH7TC.mjs → chunk-4D54YOL6.mjs} +2 -2
  50. package/dist/{chunk-DFEZH7TC.mjs.map → chunk-4D54YOL6.mjs.map} +1 -1
  51. package/dist/{chunk-BORK3BJO.mjs → chunk-5TV7EL3H.mjs} +19 -19
  52. package/dist/chunk-5TV7EL3H.mjs.map +1 -0
  53. package/dist/{chunk-BSWYZTYK.js → chunk-7DCFVPWN.js} +2 -2
  54. package/dist/chunk-7DCFVPWN.js.map +1 -0
  55. package/dist/{chunk-5QB2KNZQ.js → chunk-7TLKLMBM.js} +11 -9
  56. package/dist/chunk-7TLKLMBM.js.map +1 -0
  57. package/dist/{chunk-2P3UU2J3.mjs → chunk-A6KMZ5ZS.mjs} +12 -12
  58. package/dist/chunk-A6KMZ5ZS.mjs.map +1 -0
  59. package/dist/{chunk-U4YQCAXW.js → chunk-AD2LA3XN.js} +18 -18
  60. package/dist/chunk-AD2LA3XN.js.map +1 -0
  61. package/dist/{chunk-XLAFQ24R.js → chunk-AUGLZ3AN.js} +49 -41
  62. package/dist/chunk-AUGLZ3AN.js.map +1 -0
  63. package/dist/{chunk-OJ67PZ6N.js → chunk-BCZIYH53.js} +8 -8
  64. package/dist/{chunk-OJ67PZ6N.js.map → chunk-BCZIYH53.js.map} +1 -1
  65. package/dist/{chunk-UBFKTC2P.mjs → chunk-C5L465FW.mjs} +12 -12
  66. package/dist/chunk-C5L465FW.mjs.map +1 -0
  67. package/dist/chunk-CIN5JDN4.js +174 -0
  68. package/dist/chunk-CIN5JDN4.js.map +1 -0
  69. package/dist/{chunk-3OR47XMY.js → chunk-E4FZY7O2.js} +52 -33
  70. package/dist/chunk-E4FZY7O2.js.map +1 -0
  71. package/dist/{chunk-LVUPECBT.mjs → chunk-FQBMIZH2.mjs} +12 -12
  72. package/dist/chunk-FQBMIZH2.mjs.map +1 -0
  73. package/dist/{chunk-RDSPHBHK.mjs → chunk-G3LEYBRV.mjs} +50 -7
  74. package/dist/chunk-G3LEYBRV.mjs.map +1 -0
  75. package/dist/chunk-GBWGVNDA.js +160 -0
  76. package/dist/chunk-GBWGVNDA.js.map +1 -0
  77. package/dist/{chunk-XWM2S6VV.mjs → chunk-I6GR234Z.mjs} +22 -20
  78. package/dist/chunk-I6GR234Z.mjs.map +1 -0
  79. package/dist/{chunk-UXGHUBNJ.mjs → chunk-INMNX3HQ.mjs} +13 -13
  80. package/dist/{chunk-UXGHUBNJ.mjs.map → chunk-INMNX3HQ.mjs.map} +1 -1
  81. package/dist/chunk-IQZROQNJ.mjs +165 -0
  82. package/dist/chunk-IQZROQNJ.mjs.map +1 -0
  83. package/dist/{chunk-PGH27VTL.mjs → chunk-JBAUEGYD.mjs} +40 -32
  84. package/dist/chunk-JBAUEGYD.mjs.map +1 -0
  85. package/dist/{chunk-WZKGRU3U.js → chunk-JUDMPOCI.js} +103 -38
  86. package/dist/chunk-JUDMPOCI.js.map +1 -0
  87. package/dist/chunk-K6YI4FJO.mjs +158 -0
  88. package/dist/chunk-K6YI4FJO.mjs.map +1 -0
  89. package/dist/{chunk-WP7GYBRI.js → chunk-KC5LEZ6J.js} +2 -2
  90. package/dist/chunk-KC5LEZ6J.js.map +1 -0
  91. package/dist/{chunk-BVXTOEBI.mjs → chunk-LN77JJTY.mjs} +45 -26
  92. package/dist/chunk-LN77JJTY.mjs.map +1 -0
  93. package/dist/{chunk-E3DZNJAD.js → chunk-MCOQHXRW.js} +23 -21
  94. package/dist/chunk-MCOQHXRW.js.map +1 -0
  95. package/dist/{chunk-FLILFCQE.mjs → chunk-MTLLJFUI.mjs} +7 -8
  96. package/dist/chunk-MTLLJFUI.mjs.map +1 -0
  97. package/dist/{chunk-6I7X5BF2.js → chunk-N2OAI2HN.js} +18 -18
  98. package/dist/chunk-N2OAI2HN.js.map +1 -0
  99. package/dist/{chunk-BITDSQMR.js → chunk-OB4KJZK2.js} +19 -19
  100. package/dist/chunk-OB4KJZK2.js.map +1 -0
  101. package/dist/{chunk-PCK6LX3K.js → chunk-OLEMP2HL.js} +19 -19
  102. package/dist/{chunk-PCK6LX3K.js.map → chunk-OLEMP2HL.js.map} +1 -1
  103. package/dist/{chunk-2PQEXQVR.js → chunk-PWL5WD34.js} +76 -27
  104. package/dist/chunk-PWL5WD34.js.map +1 -0
  105. package/dist/{chunk-N4NO3SYL.js → chunk-Q5B44QW7.js} +48 -40
  106. package/dist/chunk-Q5B44QW7.js.map +1 -0
  107. package/dist/{chunk-FT2LMA66.mjs → chunk-QADZK5R7.mjs} +2 -2
  108. package/dist/chunk-QADZK5R7.mjs.map +1 -0
  109. package/dist/{chunk-WDCIZHXY.mjs → chunk-QZTEFGZF.mjs} +6 -4
  110. package/dist/chunk-QZTEFGZF.mjs.map +1 -0
  111. package/dist/{chunk-UOFTZKMM.js → chunk-S7WKFNPT.js} +18 -18
  112. package/dist/chunk-S7WKFNPT.js.map +1 -0
  113. package/dist/{chunk-XIXF7UVM.mjs → chunk-TINHLHCN.mjs} +12 -12
  114. package/dist/chunk-TINHLHCN.mjs.map +1 -0
  115. package/dist/{chunk-7HL3A4YF.mjs → chunk-TJUNN2PT.mjs} +73 -24
  116. package/dist/chunk-TJUNN2PT.mjs.map +1 -0
  117. package/dist/{chunk-4B7KGBQB.js → chunk-UWA23DUC.js} +12 -13
  118. package/dist/chunk-UWA23DUC.js.map +1 -0
  119. package/dist/{chunk-CY5BQKRZ.mjs → chunk-VXDEPZKH.mjs} +2 -2
  120. package/dist/chunk-VXDEPZKH.mjs.map +1 -0
  121. package/dist/{chunk-C2FCPQTO.js → chunk-Y745GQR2.js} +16 -16
  122. package/dist/chunk-Y745GQR2.js.map +1 -0
  123. package/dist/{chunk-TZ2JVWTZ.mjs → chunk-YNBJAFI2.mjs} +3 -3
  124. package/dist/{chunk-TZ2JVWTZ.mjs.map → chunk-YNBJAFI2.mjs.map} +1 -1
  125. package/dist/{chunk-P5HUBXUX.js → chunk-YTRGRHEB.js} +55 -12
  126. package/dist/chunk-YTRGRHEB.js.map +1 -0
  127. package/dist/{chunk-YNCD6TKE.mjs → chunk-ZBBFOMSJ.mjs} +103 -38
  128. package/dist/chunk-ZBBFOMSJ.mjs.map +1 -0
  129. package/dist/{chunk-UOZYPWDZ.js → chunk-ZS5756ZC.js} +2 -2
  130. package/dist/{chunk-UOZYPWDZ.js.map → chunk-ZS5756ZC.js.map} +1 -1
  131. package/dist/{chunk-W6PRMYUC.mjs → chunk-ZYZJ74XB.mjs} +3 -3
  132. package/dist/{chunk-W6PRMYUC.mjs.map → chunk-ZYZJ74XB.mjs.map} +1 -1
  133. package/dist/hooks/index.d.ts +2 -2
  134. package/dist/hooks/index.d.ts.map +1 -1
  135. package/dist/hooks/useClickOutside/useClickOutside.d.ts.map +1 -1
  136. package/dist/hooks/useClickOutside.js +2 -2
  137. package/dist/hooks/useClickOutside.mjs +1 -1
  138. package/dist/hooks/useClipboard/useClipboard.d.ts.map +1 -1
  139. package/dist/hooks/useClipboard.js.map +1 -1
  140. package/dist/hooks/useClipboard.mjs.map +1 -1
  141. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts +5 -14
  142. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts.map +1 -1
  143. package/dist/hooks/useFocusManagement.js +2 -2
  144. package/dist/hooks/useFocusManagement.mjs +1 -1
  145. package/dist/hooks/useLocalStorage/index.d.ts +1 -1
  146. package/dist/hooks/useLocalStorage/index.d.ts.map +1 -1
  147. package/dist/hooks/useLocalStorage.js +1 -3
  148. package/dist/hooks/useLocalStorage.js.map +1 -1
  149. package/dist/hooks/useLocalStorage.mjs +1 -3
  150. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  151. package/dist/hooks/useMediaQuery/useMediaQuery.d.ts.map +1 -1
  152. package/dist/hooks/useMediaQuery.js +2 -2
  153. package/dist/hooks/useMediaQuery.mjs +1 -1
  154. package/dist/hooks/usePagination.js +4 -4
  155. package/dist/hooks/usePagination.mjs +2 -2
  156. package/dist/hooks/usePrefersColorScheme.js +2 -2
  157. package/dist/hooks/usePrefersColorScheme.mjs +1 -1
  158. package/dist/hooks/usePrefersReducedMotion.js +2 -2
  159. package/dist/hooks/usePrefersReducedMotion.mjs +1 -1
  160. package/dist/hooks/useResizeObserver/index.d.ts +1 -1
  161. package/dist/hooks/useResizeObserver/index.d.ts.map +1 -1
  162. package/dist/hooks/useSessionStorage/useSessionStorage.d.ts.map +1 -1
  163. package/dist/hooks/useSessionStorage.js.map +1 -1
  164. package/dist/hooks/useSessionStorage.mjs.map +1 -1
  165. package/dist/hooks/useThrottledCallback/useThrottledCallback.d.ts.map +1 -1
  166. package/dist/hooks/useThrottledCallback.js.map +1 -1
  167. package/dist/hooks/useThrottledCallback.mjs.map +1 -1
  168. package/dist/hooks/useWindowSize/useWindowSize.d.ts.map +1 -1
  169. package/dist/hooks/useWindowSize.js +4 -1
  170. package/dist/hooks/useWindowSize.js.map +1 -1
  171. package/dist/hooks/useWindowSize.mjs +4 -1
  172. package/dist/hooks/useWindowSize.mjs.map +1 -1
  173. package/dist/hooks/utils.js +5 -5
  174. package/dist/hooks/utils.mjs +1 -1
  175. package/dist/lib/utils.d.ts.map +1 -1
  176. package/dist/ui/accordion/accordion.d.ts.map +1 -1
  177. package/dist/ui/accordion/animated/accordion-content-animated.d.ts.map +1 -1
  178. package/dist/ui/accordion/animated/index.d.ts +1 -1
  179. package/dist/ui/accordion/animated/index.d.ts.map +1 -1
  180. package/dist/ui/accordion/animated/types.d.ts.map +1 -1
  181. package/dist/ui/accordion/animated.js +8 -11
  182. package/dist/ui/accordion/animated.js.map +1 -1
  183. package/dist/ui/accordion/animated.mjs +4 -7
  184. package/dist/ui/accordion/animated.mjs.map +1 -1
  185. package/dist/ui/accordion/variants.d.ts +2 -2
  186. package/dist/ui/accordion.js +10 -10
  187. package/dist/ui/accordion.js.map +1 -1
  188. package/dist/ui/accordion.mjs +3 -3
  189. package/dist/ui/accordion.mjs.map +1 -1
  190. package/dist/ui/alert/alert-base.d.ts.map +1 -1
  191. package/dist/ui/alert/alert.d.ts.map +1 -1
  192. package/dist/ui/alert/animated/index.d.ts.map +1 -1
  193. package/dist/ui/alert/animated.js +3 -3
  194. package/dist/ui/alert/animated.mjs +2 -2
  195. package/dist/ui/alert/types.d.ts.map +1 -1
  196. package/dist/ui/alert/variants.d.ts +1 -1
  197. package/dist/ui/alert.js +11 -11
  198. package/dist/ui/alert.js.map +1 -1
  199. package/dist/ui/alert.mjs +3 -3
  200. package/dist/ui/alert.mjs.map +1 -1
  201. package/dist/ui/avatar/animated/index.d.ts +1 -1
  202. package/dist/ui/avatar/animated/index.d.ts.map +1 -1
  203. package/dist/ui/avatar/animated.js +6 -6
  204. package/dist/ui/avatar/animated.mjs +3 -3
  205. package/dist/ui/avatar/avatar-base.d.ts.map +1 -1
  206. package/dist/ui/avatar/avatar.d.ts.map +1 -1
  207. package/dist/ui/avatar/variants.d.ts +1 -1
  208. package/dist/ui/avatar/variants.d.ts.map +1 -1
  209. package/dist/ui/avatar.js +10 -10
  210. package/dist/ui/avatar.js.map +1 -1
  211. package/dist/ui/avatar.mjs +3 -3
  212. package/dist/ui/avatar.mjs.map +1 -1
  213. package/dist/ui/badge/animated/index.d.ts +1 -1
  214. package/dist/ui/badge/animated/index.d.ts.map +1 -1
  215. package/dist/ui/badge/animated/types.d.ts.map +1 -1
  216. package/dist/ui/badge/animated.js +3 -3
  217. package/dist/ui/badge/animated.mjs +2 -2
  218. package/dist/ui/badge/badge-base.d.ts +1 -1
  219. package/dist/ui/badge/badge-base.d.ts.map +1 -1
  220. package/dist/ui/badge/types.d.ts +1 -0
  221. package/dist/ui/badge/types.d.ts.map +1 -1
  222. package/dist/ui/badge/variants.d.ts +18 -18
  223. package/dist/ui/badge/variants.d.ts.map +1 -1
  224. package/dist/ui/badge.js +5 -5
  225. package/dist/ui/badge.mjs +3 -3
  226. package/dist/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
  227. package/dist/ui/breadcrumb/types.d.ts.map +1 -1
  228. package/dist/ui/breadcrumb/variants.d.ts +1 -1
  229. package/dist/ui/breadcrumb/variants.d.ts.map +1 -1
  230. package/dist/ui/breadcrumb.js +47 -43
  231. package/dist/ui/breadcrumb.js.map +1 -1
  232. package/dist/ui/breadcrumb.mjs +43 -39
  233. package/dist/ui/breadcrumb.mjs.map +1 -1
  234. package/dist/ui/buttons/animated/index.d.ts +1 -1
  235. package/dist/ui/buttons/animated/index.d.ts.map +1 -1
  236. package/dist/ui/buttons/animated/types.d.ts.map +1 -1
  237. package/dist/ui/buttons/animated.js +4 -4
  238. package/dist/ui/buttons/animated.mjs +2 -2
  239. package/dist/ui/buttons/types.d.ts.map +1 -1
  240. package/dist/ui/buttons/variants.d.ts +2 -2
  241. package/dist/ui/buttons.js +5 -5
  242. package/dist/ui/buttons.mjs +3 -3
  243. package/dist/ui/card/animated.js +8 -8
  244. package/dist/ui/card/animated.mjs +3 -3
  245. package/dist/ui/card/card-base.d.ts.map +1 -1
  246. package/dist/ui/card/card.d.ts.map +1 -1
  247. package/dist/ui/card/index.d.ts +2 -2
  248. package/dist/ui/card/index.d.ts.map +1 -1
  249. package/dist/ui/card/variants.d.ts +1 -1
  250. package/dist/ui/card.js +13 -13
  251. package/dist/ui/card.js.map +1 -1
  252. package/dist/ui/card.mjs +3 -3
  253. package/dist/ui/card.mjs.map +1 -1
  254. package/dist/ui/divider/animated/index.d.ts +1 -1
  255. package/dist/ui/divider/animated/index.d.ts.map +1 -1
  256. package/dist/ui/divider/animated/types.d.ts.map +1 -1
  257. package/dist/ui/divider/animated.js +3 -3
  258. package/dist/ui/divider/animated.mjs +2 -2
  259. package/dist/ui/divider/divider-base.d.ts.map +1 -1
  260. package/dist/ui/divider/variants.d.ts +2 -2
  261. package/dist/ui/divider.js +7 -7
  262. package/dist/ui/divider.mjs +3 -3
  263. package/dist/ui/drawer/animated/drawer-content-animated.d.ts.map +1 -1
  264. package/dist/ui/drawer/animated/index.d.ts +1 -1
  265. package/dist/ui/drawer/animated/index.d.ts.map +1 -1
  266. package/dist/ui/drawer/animated.js +19 -20
  267. package/dist/ui/drawer/animated.js.map +1 -1
  268. package/dist/ui/drawer/animated.mjs +9 -10
  269. package/dist/ui/drawer/animated.mjs.map +1 -1
  270. package/dist/ui/drawer/drawer-base.d.ts +1 -1
  271. package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
  272. package/dist/ui/drawer/types.d.ts +1 -0
  273. package/dist/ui/drawer/types.d.ts.map +1 -1
  274. package/dist/ui/drawer/variants.d.ts +3 -3
  275. package/dist/ui/drawer.js +13 -13
  276. package/dist/ui/drawer.mjs +3 -3
  277. package/dist/ui/dropdown/dropdown.d.ts +1 -1
  278. package/dist/ui/dropdown/dropdown.d.ts.map +1 -1
  279. package/dist/ui/dropdown/types.d.ts +1 -0
  280. package/dist/ui/dropdown/types.d.ts.map +1 -1
  281. package/dist/ui/dropdown/variants.d.ts +4 -4
  282. package/dist/ui/dropdown.js +49 -31
  283. package/dist/ui/dropdown.js.map +1 -1
  284. package/dist/ui/dropdown.mjs +46 -28
  285. package/dist/ui/dropdown.mjs.map +1 -1
  286. package/dist/ui/empty-state/animated/empty-state-animated.d.ts.map +1 -1
  287. package/dist/ui/empty-state/animated/index.d.ts +2 -2
  288. package/dist/ui/empty-state/animated/index.d.ts.map +1 -1
  289. package/dist/ui/empty-state/animated.js +3 -3
  290. package/dist/ui/empty-state/animated.js.map +1 -1
  291. package/dist/ui/empty-state/animated.mjs +2 -2
  292. package/dist/ui/empty-state/animated.mjs.map +1 -1
  293. package/dist/ui/empty-state/empty-state-base.d.ts.map +1 -1
  294. package/dist/ui/empty-state/index.d.ts +1 -1
  295. package/dist/ui/empty-state/index.d.ts.map +1 -1
  296. package/dist/ui/empty-state/types.d.ts +1 -0
  297. package/dist/ui/empty-state/types.d.ts.map +1 -1
  298. package/dist/ui/empty-state.js +11 -11
  299. package/dist/ui/empty-state.mjs +3 -3
  300. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  301. package/dist/ui/file-upload/variants.d.ts +1 -1
  302. package/dist/ui/file-upload/variants.d.ts.map +1 -1
  303. package/dist/ui/file-upload.js +4 -6
  304. package/dist/ui/file-upload.js.map +1 -1
  305. package/dist/ui/file-upload.mjs +2 -4
  306. package/dist/ui/file-upload.mjs.map +1 -1
  307. package/dist/ui/inputs/animated/index.d.ts +1 -1
  308. package/dist/ui/inputs/animated/index.d.ts.map +1 -1
  309. package/dist/ui/inputs/animated.js +3 -3
  310. package/dist/ui/inputs/animated.mjs +1 -1
  311. package/dist/ui/inputs/input-base.d.ts.map +1 -1
  312. package/dist/ui/inputs/types.d.ts +3 -1
  313. package/dist/ui/inputs/types.d.ts.map +1 -1
  314. package/dist/ui/inputs/variants.d.ts +2 -2
  315. package/dist/ui/inputs.js +49 -5
  316. package/dist/ui/inputs.js.map +1 -1
  317. package/dist/ui/inputs.mjs +47 -3
  318. package/dist/ui/inputs.mjs.map +1 -1
  319. package/dist/ui/modal/animated/index.d.ts +1 -1
  320. package/dist/ui/modal/animated/index.d.ts.map +1 -1
  321. package/dist/ui/modal/animated/modal-content-animated.d.ts.map +1 -1
  322. package/dist/ui/modal/animated.js +12 -13
  323. package/dist/ui/modal/animated.js.map +1 -1
  324. package/dist/ui/modal/animated.mjs +8 -9
  325. package/dist/ui/modal/animated.mjs.map +1 -1
  326. package/dist/ui/modal/index.d.ts +1 -1
  327. package/dist/ui/modal/index.d.ts.map +1 -1
  328. package/dist/ui/modal/modal-base.d.ts +4 -2
  329. package/dist/ui/modal/modal-base.d.ts.map +1 -1
  330. package/dist/ui/modal/types.d.ts.map +1 -1
  331. package/dist/ui/modal/variants.d.ts +2 -2
  332. package/dist/ui/modal.js +14 -14
  333. package/dist/ui/modal.js.map +1 -1
  334. package/dist/ui/modal.mjs +4 -4
  335. package/dist/ui/modal.mjs.map +1 -1
  336. package/dist/ui/pagination/pagination.d.ts +2 -2
  337. package/dist/ui/pagination/variants.d.ts +3 -3
  338. package/dist/ui/pagination.js +25 -25
  339. package/dist/ui/pagination.js.map +1 -1
  340. package/dist/ui/pagination.mjs +15 -15
  341. package/dist/ui/pagination.mjs.map +1 -1
  342. package/dist/ui/progress/animated/progress-animated.d.ts.map +1 -1
  343. package/dist/ui/progress/animated.js +52 -14
  344. package/dist/ui/progress/animated.js.map +1 -1
  345. package/dist/ui/progress/animated.mjs +45 -7
  346. package/dist/ui/progress/animated.mjs.map +1 -1
  347. package/dist/ui/progress/index.d.ts +2 -2
  348. package/dist/ui/progress/index.d.ts.map +1 -1
  349. package/dist/ui/progress/progress-base.d.ts.map +1 -1
  350. package/dist/ui/progress/progress.d.ts.map +1 -1
  351. package/dist/ui/progress/types.d.ts +3 -0
  352. package/dist/ui/progress/types.d.ts.map +1 -1
  353. package/dist/ui/progress/variants.d.ts +1 -1
  354. package/dist/ui/progress.js +10 -15
  355. package/dist/ui/progress.js.map +1 -1
  356. package/dist/ui/progress.mjs +4 -9
  357. package/dist/ui/progress.mjs.map +1 -1
  358. package/dist/ui/search/search-bar.d.ts +1 -1
  359. package/dist/ui/search/search-bar.d.ts.map +1 -1
  360. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  361. package/dist/ui/search/search-suggestion-utils.d.ts.map +1 -1
  362. package/dist/ui/search.js +15 -7
  363. package/dist/ui/search.js.map +1 -1
  364. package/dist/ui/search.mjs +11 -3
  365. package/dist/ui/search.mjs.map +1 -1
  366. package/dist/ui/select/select.d.ts +1 -1
  367. package/dist/ui/select/select.d.ts.map +1 -1
  368. package/dist/ui/select/types.d.ts +1 -0
  369. package/dist/ui/select/types.d.ts.map +1 -1
  370. package/dist/ui/select/variants.d.ts +4 -4
  371. package/dist/ui/select/variants.d.ts.map +1 -1
  372. package/dist/ui/select.js +145 -63
  373. package/dist/ui/select.js.map +1 -1
  374. package/dist/ui/select.mjs +141 -59
  375. package/dist/ui/select.mjs.map +1 -1
  376. package/dist/ui/skeleton/animated/skeleton-animated.d.ts.map +1 -1
  377. package/dist/ui/skeleton/animated/types.d.ts.map +1 -1
  378. package/dist/ui/skeleton/animated.js +34 -10
  379. package/dist/ui/skeleton/animated.js.map +1 -1
  380. package/dist/ui/skeleton/animated.mjs +29 -5
  381. package/dist/ui/skeleton/animated.mjs.map +1 -1
  382. package/dist/ui/skeleton/variants.d.ts +3 -3
  383. package/dist/ui/skeleton.js +10 -10
  384. package/dist/ui/skeleton.mjs +2 -2
  385. package/dist/ui/slider/slider.d.ts.map +1 -1
  386. package/dist/ui/slider/types.d.ts +8 -2
  387. package/dist/ui/slider/types.d.ts.map +1 -1
  388. package/dist/ui/slider/variants.d.ts +1 -1
  389. package/dist/ui/slider.js +53 -17
  390. package/dist/ui/slider.js.map +1 -1
  391. package/dist/ui/slider.mjs +45 -9
  392. package/dist/ui/slider.mjs.map +1 -1
  393. package/dist/ui/spinner/animated/spinner.d.ts.map +1 -1
  394. package/dist/ui/spinner/animated/variants.d.ts +1 -1
  395. package/dist/ui/spinner/animated.js +68 -56
  396. package/dist/ui/spinner/animated.js.map +1 -1
  397. package/dist/ui/spinner/animated.mjs +64 -52
  398. package/dist/ui/spinner/animated.mjs.map +1 -1
  399. package/dist/ui/stepper/stepper.d.ts +2 -7
  400. package/dist/ui/stepper/stepper.d.ts.map +1 -1
  401. package/dist/ui/stepper/types.d.ts +3 -3
  402. package/dist/ui/stepper/types.d.ts.map +1 -1
  403. package/dist/ui/stepper/variants.d.ts +1 -1
  404. package/dist/ui/stepper/variants.d.ts.map +1 -1
  405. package/dist/ui/stepper.js +12 -13
  406. package/dist/ui/stepper.js.map +1 -1
  407. package/dist/ui/stepper.mjs +9 -10
  408. package/dist/ui/stepper.mjs.map +1 -1
  409. package/dist/ui/table/animated/index.d.ts +2 -2
  410. package/dist/ui/table/animated/index.d.ts.map +1 -1
  411. package/dist/ui/table/animated.js +9 -9
  412. package/dist/ui/table/animated.mjs +3 -3
  413. package/dist/ui/table/table-base.d.ts +1 -1
  414. package/dist/ui/table/table-base.d.ts.map +1 -1
  415. package/dist/ui/table/types.d.ts +5 -1
  416. package/dist/ui/table/types.d.ts.map +1 -1
  417. package/dist/ui/table/variants.d.ts +3 -3
  418. package/dist/ui/table.js +15 -15
  419. package/dist/ui/table.mjs +2 -2
  420. package/dist/ui/tabs/animated/animations.d.ts.map +1 -1
  421. package/dist/ui/tabs/animated/index.d.ts +1 -1
  422. package/dist/ui/tabs/animated/index.d.ts.map +1 -1
  423. package/dist/ui/tabs/animated/types.d.ts.map +1 -1
  424. package/dist/ui/tabs/animated.js +4 -4
  425. package/dist/ui/tabs/animated.js.map +1 -1
  426. package/dist/ui/tabs/animated.mjs +2 -2
  427. package/dist/ui/tabs/animated.mjs.map +1 -1
  428. package/dist/ui/tabs/index.d.ts +1 -1
  429. package/dist/ui/tabs/index.d.ts.map +1 -1
  430. package/dist/ui/tabs/tabs-base.d.ts.map +1 -1
  431. package/dist/ui/tabs/tabs.d.ts +1 -1
  432. package/dist/ui/tabs/tabs.d.ts.map +1 -1
  433. package/dist/ui/tabs/types.d.ts +2 -1
  434. package/dist/ui/tabs/types.d.ts.map +1 -1
  435. package/dist/ui/tabs/variants.d.ts +1 -1
  436. package/dist/ui/tabs.js +10 -10
  437. package/dist/ui/tabs.mjs +2 -2
  438. package/dist/ui/toast/animated/toast-animated.d.ts.map +1 -1
  439. package/dist/ui/toast/animated.js +12 -10
  440. package/dist/ui/toast/animated.js.map +1 -1
  441. package/dist/ui/toast/animated.mjs +5 -3
  442. package/dist/ui/toast/animated.mjs.map +1 -1
  443. package/dist/ui/toast/types.d.ts.map +1 -1
  444. package/dist/ui/toast/variants.d.ts +1 -1
  445. package/dist/ui/toast.js +13 -13
  446. package/dist/ui/toast.mjs +2 -2
  447. package/dist/ui/toggle/animated/index.d.ts +2 -2
  448. package/dist/ui/toggle/animated/index.d.ts.map +1 -1
  449. package/dist/ui/toggle/animated/types.d.ts.map +1 -1
  450. package/dist/ui/toggle/animated.js +3 -3
  451. package/dist/ui/toggle/animated.mjs +1 -1
  452. package/dist/ui/toggle/index.d.ts +1 -1
  453. package/dist/ui/toggle/index.d.ts.map +1 -1
  454. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  455. package/dist/ui/toggle/variants.d.ts +1 -1
  456. package/dist/ui/toggle.js +31 -6
  457. package/dist/ui/toggle.js.map +1 -1
  458. package/dist/ui/toggle.mjs +30 -5
  459. package/dist/ui/toggle.mjs.map +1 -1
  460. package/dist/ui/tooltip/animated/animations.d.ts.map +1 -1
  461. package/dist/ui/tooltip/animated/types.d.ts.map +1 -1
  462. package/dist/ui/tooltip/animated.js +5 -5
  463. package/dist/ui/tooltip/animated.js.map +1 -1
  464. package/dist/ui/tooltip/animated.mjs +2 -2
  465. package/dist/ui/tooltip/animated.mjs.map +1 -1
  466. package/dist/ui/tooltip/tooltip-base.d.ts.map +1 -1
  467. package/dist/ui/tooltip/types.d.ts +1 -0
  468. package/dist/ui/tooltip/types.d.ts.map +1 -1
  469. package/dist/ui/tooltip/variants.d.ts +1 -1
  470. package/dist/ui/tooltip/variants.d.ts.map +1 -1
  471. package/dist/ui/tooltip.js +8 -8
  472. package/dist/ui/tooltip.mjs +2 -2
  473. package/dist/ui/typography/blockquote-base.d.ts.map +1 -1
  474. package/dist/ui/typography/code-block-base.d.ts.map +1 -1
  475. package/dist/ui/typography/heading-base.d.ts.map +1 -1
  476. package/dist/ui/typography/list-base.d.ts.map +1 -1
  477. package/dist/ui/typography/types.d.ts.map +1 -1
  478. package/dist/ui/typography/variants.d.ts +3 -3
  479. package/dist/ui/typography/variants.d.ts.map +1 -1
  480. package/dist/ui/typography.js +21 -43
  481. package/dist/ui/typography.js.map +1 -1
  482. package/dist/ui/typography.mjs +13 -35
  483. package/dist/ui/typography.mjs.map +1 -1
  484. package/package.json +32 -12
  485. package/src/charts/area/Area.tsx +103 -0
  486. package/src/charts/area/index.ts +9 -0
  487. package/src/charts/bar/Bar.tsx +94 -0
  488. package/src/charts/bar/index.ts +9 -0
  489. package/src/charts/bubble/Bubble.tsx +113 -0
  490. package/src/charts/bubble/index.ts +9 -0
  491. package/src/charts/line/Line.tsx +97 -0
  492. package/src/charts/line/index.ts +9 -0
  493. package/src/charts/shared/chart-frame.tsx +107 -0
  494. package/src/charts/shared/colors.ts +31 -0
  495. package/src/charts/shared/types.ts +60 -0
  496. package/src/charts/shared/variants.ts +87 -0
  497. package/src/hooks/index.ts +8 -2
  498. package/src/hooks/useClickOutside/useClickOutside.ts +1 -4
  499. package/src/hooks/useClipboard/useClipboard.test.ts +3 -1
  500. package/src/hooks/useClipboard/useClipboard.ts +1 -2
  501. package/src/hooks/useDisclosure/useDisclosure.test.ts +1 -2
  502. package/src/hooks/useDocumentTitle/useDocumentTitle.test.ts +1 -3
  503. package/src/hooks/useFocusManagement/useFocusManagement.test.tsx +8 -0
  504. package/src/hooks/useFocusManagement/useFocusManagement.ts +162 -34
  505. package/src/hooks/useInView/useInView.test.ts +6 -1
  506. package/src/hooks/useLocalStorage/index.ts +1 -4
  507. package/src/hooks/useLocalStorage/useLocalStorage.test.ts +8 -20
  508. package/src/hooks/useLocalStorage/useLocalStorage.ts +4 -4
  509. package/src/hooks/useMediaQuery/useMediaQuery.ts +1 -4
  510. package/src/hooks/usePrefersReducedMotion/usePrefersReducedMotion.test.ts +3 -1
  511. package/src/hooks/useResizeObserver/index.ts +1 -4
  512. package/src/hooks/useSessionStorage/useSessionStorage.test.ts +2 -6
  513. package/src/hooks/useSessionStorage/useSessionStorage.ts +4 -2
  514. package/src/hooks/useThrottledCallback/useThrottledCallback.ts +4 -3
  515. package/src/hooks/useWindowSize/useWindowSize.ts +4 -1
  516. package/src/lib/utils.ts +3 -3
  517. package/src/ui/accordion/accordion.tsx +6 -1
  518. package/src/ui/accordion/animated/accordion-content-animated.tsx +1 -4
  519. package/src/ui/accordion/animated/index.ts +4 -1
  520. package/src/ui/accordion/animated/types.ts +6 -2
  521. package/src/ui/accordion/variants.ts +9 -9
  522. package/src/ui/alert/alert-base.tsx +6 -1
  523. package/src/ui/alert/alert.tsx +2 -2
  524. package/src/ui/alert/animated/index.ts +2 -2
  525. package/src/ui/alert/animated/types.ts +1 -1
  526. package/src/ui/alert/types.ts +1 -3
  527. package/src/ui/alert/variants.ts +9 -9
  528. package/src/ui/avatar/animated/index.ts +6 -2
  529. package/src/ui/avatar/avatar-base.tsx +2 -7
  530. package/src/ui/avatar/avatar.tsx +6 -1
  531. package/src/ui/avatar/variants.ts +23 -11
  532. package/src/ui/badge/animated/index.ts +6 -2
  533. package/src/ui/badge/animated/types.ts +1 -2
  534. package/src/ui/badge/badge-base.tsx +4 -1
  535. package/src/ui/badge/types.ts +1 -0
  536. package/src/ui/badge/variants.ts +16 -18
  537. package/src/ui/breadcrumb/breadcrumb.tsx +10 -2
  538. package/src/ui/breadcrumb/types.ts +20 -9
  539. package/src/ui/breadcrumb/variants.ts +34 -38
  540. package/src/ui/buttons/animated/index.ts +7 -1
  541. package/src/ui/buttons/animated/types.ts +0 -1
  542. package/src/ui/buttons/button.test.tsx +2 -2
  543. package/src/ui/buttons/types.ts +4 -5
  544. package/src/ui/buttons/variants.ts +17 -17
  545. package/src/ui/card/animated/types.ts +0 -1
  546. package/src/ui/card/card-base.tsx +1 -6
  547. package/src/ui/card/card.test.tsx +7 -3
  548. package/src/ui/card/card.tsx +1 -3
  549. package/src/ui/card/index.ts +7 -3
  550. package/src/ui/card/types.ts +1 -1
  551. package/src/ui/card/variants.ts +9 -9
  552. package/src/ui/divider/animated/index.ts +5 -1
  553. package/src/ui/divider/animated/types.ts +4 -2
  554. package/src/ui/divider/divider-base.tsx +0 -1
  555. package/src/ui/drawer/animated/drawer-content-animated.tsx +6 -11
  556. package/src/ui/drawer/animated/index.ts +6 -1
  557. package/src/ui/drawer/drawer-base.tsx +16 -8
  558. package/src/ui/drawer/types.ts +12 -3
  559. package/src/ui/drawer/variants.ts +18 -18
  560. package/src/ui/dropdown/dropdown.test.tsx +1 -3
  561. package/src/ui/dropdown/dropdown.tsx +30 -5
  562. package/src/ui/dropdown/types.ts +1 -0
  563. package/src/ui/dropdown/variants.ts +20 -20
  564. package/src/ui/empty-state/animated/empty-state-animated.tsx +2 -4
  565. package/src/ui/empty-state/animated/index.ts +8 -5
  566. package/src/ui/empty-state/empty-state-base.tsx +14 -2
  567. package/src/ui/empty-state/index.ts +7 -1
  568. package/src/ui/empty-state/types.ts +1 -0
  569. package/src/ui/file-upload/file-upload.tsx +3 -9
  570. package/src/ui/file-upload/variants.ts +18 -9
  571. package/src/ui/inputs/animated/index.ts +7 -1
  572. package/src/ui/inputs/input-base.tsx +60 -6
  573. package/src/ui/inputs/input.test.tsx +5 -1
  574. package/src/ui/inputs/types.ts +7 -2
  575. package/src/ui/modal/animated/index.ts +6 -1
  576. package/src/ui/modal/animated/modal-content-animated.tsx +4 -5
  577. package/src/ui/modal/index.ts +1 -1
  578. package/src/ui/modal/modal-base.tsx +19 -10
  579. package/src/ui/modal/modal.test.tsx +44 -4
  580. package/src/ui/modal/modal.tsx +1 -1
  581. package/src/ui/modal/types.ts +10 -2
  582. package/src/ui/modal/variants.ts +18 -18
  583. package/src/ui/pagination/pagination.tsx +2 -2
  584. package/src/ui/pagination/variants.ts +9 -9
  585. package/src/ui/progress/animated/progress-animated.tsx +43 -5
  586. package/src/ui/progress/animated/types.ts +1 -1
  587. package/src/ui/progress/index.ts +12 -2
  588. package/src/ui/progress/progress-base.tsx +61 -5
  589. package/src/ui/progress/progress.test.tsx +1 -3
  590. package/src/ui/progress/progress.tsx +2 -6
  591. package/src/ui/progress/types.ts +3 -0
  592. package/src/ui/search/filter-search-suggestions.test.ts +46 -12
  593. package/src/ui/search/filter-search-suggestions.ts +3 -3
  594. package/src/ui/search/search-bar.tsx +22 -22
  595. package/src/ui/search/search-suggestion-list.tsx +14 -5
  596. package/src/ui/search/search-suggestion-utils.ts +4 -1
  597. package/src/ui/select/select.tsx +96 -6
  598. package/src/ui/select/types.ts +1 -0
  599. package/src/ui/select/variants.ts +71 -68
  600. package/src/ui/skeleton/animated/skeleton-animated.tsx +25 -4
  601. package/src/ui/skeleton/animated/types.ts +0 -1
  602. package/src/ui/skeleton/skeleton-base.tsx +3 -3
  603. package/src/ui/skeleton/variants.ts +9 -9
  604. package/src/ui/slider/slider.test.tsx +23 -9
  605. package/src/ui/slider/slider.tsx +45 -4
  606. package/src/ui/slider/types.ts +9 -3
  607. package/src/ui/slider/variants.ts +1 -1
  608. package/src/ui/spinner/animated/spinner.tsx +6 -3
  609. package/src/ui/stepper/stepper.test.tsx +5 -6
  610. package/src/ui/stepper/stepper.tsx +12 -16
  611. package/src/ui/stepper/types.ts +11 -5
  612. package/src/ui/stepper/variants.ts +30 -15
  613. package/src/ui/table/animated/index.ts +6 -4
  614. package/src/ui/table/table-base.tsx +32 -11
  615. package/src/ui/table/types.ts +8 -1
  616. package/src/ui/tabs/animated/animations.ts +5 -1
  617. package/src/ui/tabs/animated/index.ts +7 -1
  618. package/src/ui/tabs/animated/types.ts +3 -3
  619. package/src/ui/tabs/index.ts +8 -1
  620. package/src/ui/tabs/tabs-base.tsx +71 -10
  621. package/src/ui/tabs/tabs.tsx +8 -1
  622. package/src/ui/tabs/types.ts +2 -1
  623. package/src/ui/tabs/variants.ts +10 -10
  624. package/src/ui/toast/animated/toast-animated.tsx +3 -1
  625. package/src/ui/toast/animated/types.ts +1 -1
  626. package/src/ui/toast/toast-base.tsx +1 -1
  627. package/src/ui/toast/types.ts +3 -1
  628. package/src/ui/toast/variants.ts +9 -9
  629. package/src/ui/toggle/animated/index.ts +7 -4
  630. package/src/ui/toggle/animated/types.ts +4 -2
  631. package/src/ui/toggle/index.ts +5 -1
  632. package/src/ui/toggle/toggle-base.tsx +36 -4
  633. package/src/ui/tooltip/animated/animations.ts +0 -1
  634. package/src/ui/tooltip/animated/types.ts +0 -1
  635. package/src/ui/tooltip/tooltip-base.tsx +118 -22
  636. package/src/ui/tooltip/types.ts +1 -0
  637. package/src/ui/tooltip/variants.ts +11 -13
  638. package/src/ui/typography/blockquote-base.tsx +1 -8
  639. package/src/ui/typography/code-block-base.tsx +19 -24
  640. package/src/ui/typography/heading-base.tsx +35 -38
  641. package/src/ui/typography/inline-code-base.tsx +15 -15
  642. package/src/ui/typography/list-base.tsx +1 -9
  643. package/src/ui/typography/text-base.tsx +32 -32
  644. package/src/ui/typography/types.ts +4 -17
  645. package/src/ui/typography/typography.test.tsx +3 -1
  646. package/src/ui/typography/variants.ts +16 -8
  647. package/dist/chunk-2P3UU2J3.mjs.map +0 -1
  648. package/dist/chunk-2PQEXQVR.js.map +0 -1
  649. package/dist/chunk-3OR47XMY.js.map +0 -1
  650. package/dist/chunk-4B7KGBQB.js.map +0 -1
  651. package/dist/chunk-5QB2KNZQ.js.map +0 -1
  652. package/dist/chunk-6I7X5BF2.js.map +0 -1
  653. package/dist/chunk-7HL3A4YF.mjs.map +0 -1
  654. package/dist/chunk-BITDSQMR.js.map +0 -1
  655. package/dist/chunk-BORK3BJO.mjs.map +0 -1
  656. package/dist/chunk-BSWYZTYK.js.map +0 -1
  657. package/dist/chunk-BVXTOEBI.mjs.map +0 -1
  658. package/dist/chunk-C2FCPQTO.js.map +0 -1
  659. package/dist/chunk-CY5BQKRZ.mjs.map +0 -1
  660. package/dist/chunk-E3DZNJAD.js.map +0 -1
  661. package/dist/chunk-FLILFCQE.mjs.map +0 -1
  662. package/dist/chunk-FT2LMA66.mjs.map +0 -1
  663. package/dist/chunk-IXDJ3IPG.mjs.map +0 -1
  664. package/dist/chunk-LVUPECBT.mjs.map +0 -1
  665. package/dist/chunk-N4NO3SYL.js.map +0 -1
  666. package/dist/chunk-P5HUBXUX.js.map +0 -1
  667. package/dist/chunk-PGH27VTL.mjs.map +0 -1
  668. package/dist/chunk-RDSPHBHK.mjs.map +0 -1
  669. package/dist/chunk-U4YQCAXW.js.map +0 -1
  670. package/dist/chunk-UBFKTC2P.mjs.map +0 -1
  671. package/dist/chunk-UOFTZKMM.js.map +0 -1
  672. package/dist/chunk-WDCIZHXY.mjs.map +0 -1
  673. package/dist/chunk-WL5I7RVS.mjs +0 -54
  674. package/dist/chunk-WL5I7RVS.mjs.map +0 -1
  675. package/dist/chunk-WP7GYBRI.js.map +0 -1
  676. package/dist/chunk-WZKGRU3U.js.map +0 -1
  677. package/dist/chunk-XIXF7UVM.mjs.map +0 -1
  678. package/dist/chunk-XLAFQ24R.js.map +0 -1
  679. package/dist/chunk-XWM2S6VV.mjs.map +0 -1
  680. package/dist/chunk-YNCD6TKE.mjs.map +0 -1
  681. package/dist/chunk-YPLVTUYL.js +0 -56
  682. package/dist/chunk-YPLVTUYL.js.map +0 -1
@@ -14,43 +14,43 @@ export const buttonVariants = cva(
14
14
  default:
15
15
  "bg-slate-50 text-slate-950 shadow-[0_1px_2px_rgba(15,23,42,0.12)] hover:bg-white",
16
16
  secondary: "bg-slate-800 text-slate-50 hover:bg-slate-700",
17
- destructive: "bg-rose-600 text-white hover:bg-rose-600",
17
+ destructive: "bg-rose-700 text-white hover:bg-rose-800",
18
18
  outline:
19
19
  "border border-white/10 bg-white/5 text-slate-50 hover:bg-white/10",
20
20
  ghost: "bg-transparent text-slate-200 hover:bg-white/5",
21
21
  link: "bg-transparent text-cyan-300 underline-offset-4 hover:underline",
22
22
  glass:
23
23
  "border border-white/15 bg-white/10 text-white backdrop-blur-md hover:bg-white/15",
24
- emerald: "bg-emerald-600 text-white hover:bg-emerald-600",
24
+ emerald: "bg-emerald-800 text-white hover:bg-emerald-900",
25
25
  indigo: "bg-indigo-600 text-white hover:bg-indigo-600",
26
26
  purple: "bg-purple-600 text-white hover:bg-purple-600",
27
27
  pink: "bg-pink-600 text-white hover:bg-pink-600",
28
28
  rose: "bg-rose-600 text-white hover:bg-rose-600",
29
- sky: "bg-sky-600 text-white hover:bg-sky-600",
30
- teal: "bg-teal-600 text-white hover:bg-teal-600",
31
- yellow: "bg-yellow-600 text-white hover:bg-yellow-600",
32
- orange: "bg-orange-600 text-white hover:bg-orange-600",
33
- gray: "bg-gray-600 text-white hover:bg-gray-600",
34
- amber: "bg-amber-600 text-white hover:bg-amber-600",
29
+ sky: "bg-sky-700 text-white hover:bg-sky-800",
30
+ teal: "bg-teal-700 text-white hover:bg-teal-800",
31
+ yellow: "bg-yellow-800 text-white hover:bg-yellow-900",
32
+ orange: "bg-orange-800 text-white hover:bg-orange-900",
33
+ gray: "bg-gray-700 text-white hover:bg-gray-800",
34
+ amber: "bg-amber-800 text-white hover:bg-amber-900",
35
35
  violet: "bg-violet-600 text-white hover:bg-violet-600",
36
36
  "gradient-blue":
37
- "bg-gradient-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600",
37
+ "bg-linear-to-r from-blue-600 to-purple-600 text-white hover:from-blue-600 hover:to-purple-600",
38
38
  "gradient-green":
39
- "bg-gradient-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600",
39
+ "bg-linear-to-r from-green-600 to-lime-600 text-white hover:from-green-600 hover:to-lime-600",
40
40
  "gradient-red":
41
- "bg-gradient-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600",
41
+ "bg-linear-to-r from-red-600 to-pink-600 text-white hover:from-red-600 hover:to-pink-600",
42
42
  "gradient-yellow":
43
- "bg-gradient-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600",
43
+ "bg-linear-to-r from-yellow-600 to-orange-600 text-white hover:from-yellow-600 hover:to-orange-600",
44
44
  "gradient-purple":
45
- "bg-gradient-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600",
45
+ "bg-linear-to-r from-purple-600 to-pink-600 text-white hover:from-purple-600 hover:to-pink-600",
46
46
  "gradient-teal":
47
- "bg-gradient-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600",
47
+ "bg-linear-to-r from-teal-600 to-cyan-600 text-white hover:from-teal-600 hover:to-cyan-600",
48
48
  "gradient-indigo":
49
- "bg-gradient-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600",
49
+ "bg-linear-to-r from-indigo-600 to-purple-600 text-white hover:from-indigo-600 hover:to-purple-600",
50
50
  "gradient-pink":
51
- "bg-gradient-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600",
51
+ "bg-linear-to-r from-pink-600 to-rose-600 text-white hover:from-pink-600 hover:to-rose-600",
52
52
  "gradient-orange":
53
- "bg-gradient-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600",
53
+ "bg-linear-to-r from-orange-600 to-red-600 text-white hover:from-orange-600 hover:to-red-600",
54
54
  },
55
55
  size: {
56
56
  sm: "h-7 md:h-9 px-3 text-xs",
@@ -5,4 +5,3 @@ export type CardAnimation = "none" | "lift" | "glow" | "tilt";
5
5
  export type CardAnimatedProps = Omit<CardBaseProps, "as"> & {
6
6
  animation?: CardAnimation;
7
7
  };
8
-
@@ -1,11 +1,6 @@
1
1
  "use client";
2
2
 
3
- import {
4
- createContext,
5
- useContext,
6
- useMemo,
7
- type ElementType,
8
- } from "react";
3
+ import { createContext, useContext, useMemo, type ElementType } from "react";
9
4
 
10
5
  import { cn } from "../../lib/utils";
11
6
 
@@ -2,10 +2,14 @@ import { createRef } from "react";
2
2
  import { render, screen } from "@testing-library/react";
3
3
  import { describe, expect, it } from "vitest";
4
4
 
5
+ import { Card } from "./card";
5
6
  import {
6
- Card,
7
- } from "./card";
8
- import { CardBody, CardDescription, CardFooter, CardHeader, CardTitle } from "./card-base";
7
+ CardBody,
8
+ CardDescription,
9
+ CardFooter,
10
+ CardHeader,
11
+ CardTitle,
12
+ } from "./card-base";
9
13
 
10
14
  const CARD_SLOT = '[data-slot="card"]';
11
15
 
@@ -1,7 +1,5 @@
1
1
  // card.tsx — default static entry (no framer-motion)
2
- import {
3
- CardBase,
4
- } from "./card-base";
2
+ import { CardBase } from "./card-base";
5
3
  import type { CardProps } from "./types";
6
4
 
7
5
  export function Card(props: CardProps) {
@@ -1,9 +1,13 @@
1
1
  "use client";
2
2
 
3
+ export { Card } from "./card";
3
4
  export {
4
- Card,
5
- } from "./card";
6
- export { CardBody, CardDescription, CardFooter, CardHeader, CardTitle } from "./card-base";
5
+ CardBody,
6
+ CardDescription,
7
+ CardFooter,
8
+ CardHeader,
9
+ CardTitle,
10
+ } from "./card-base";
7
11
  export type {
8
12
  CardBaseProps,
9
13
  CardVariantProps,
@@ -39,4 +39,4 @@ export type CardDescriptionProps = {
39
39
  ref?: Ref<HTMLElement>;
40
40
  } & Omit<HTMLAttributes<HTMLElement>, "className" | "children">;
41
41
 
42
- export type CardSize = NonNullable<CardProps["size"]>;
42
+ export type CardSize = NonNullable<CardProps["size"]>;
@@ -30,23 +30,23 @@ export const cardVariants = cva(
30
30
  amber: "border border-amber-600 bg-amber-950/70 backdrop-blur-xl",
31
31
  violet: "border border-violet-600 bg-violet-950/70 backdrop-blur-xl",
32
32
  "gradient-blue":
33
- "border border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
33
+ "border border-blue-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
34
34
  "gradient-green":
35
- "border border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
35
+ "border border-green-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
36
36
  "gradient-red":
37
- "border border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
37
+ "border border-red-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
38
38
  "gradient-yellow":
39
- "border border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
39
+ "border border-yellow-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
40
40
  "gradient-purple":
41
- "border border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
41
+ "border border-purple-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
42
42
  "gradient-teal":
43
- "border border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
43
+ "border border-teal-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
44
44
  "gradient-indigo":
45
- "border border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
45
+ "border border-indigo-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
46
46
  "gradient-pink":
47
- "border border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
47
+ "border border-pink-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
48
48
  "gradient-orange":
49
- "border border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
49
+ "border border-orange-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
50
50
  },
51
51
  size: {
52
52
  sm: "gap-2 p-3 text-sm",
@@ -1,4 +1,8 @@
1
1
  "use client";
2
2
 
3
3
  export { DividerAnimated } from "./divider-animated";
4
- export type { DividerAnimatedProps, DividerAnimation, DividerDomDragProps } from "./types";
4
+ export type {
5
+ DividerAnimatedProps,
6
+ DividerAnimation,
7
+ DividerDomDragProps,
8
+ } from "./types";
@@ -12,7 +12,9 @@ export type DividerDomDragProps =
12
12
  | "onDragStart"
13
13
  | "onDrop";
14
14
 
15
- export type DividerAnimatedProps = Omit<DividerBaseProps, "as" | DividerDomDragProps> & {
15
+ export type DividerAnimatedProps = Omit<
16
+ DividerBaseProps,
17
+ "as" | DividerDomDragProps
18
+ > & {
16
19
  animation?: DividerAnimation;
17
20
  };
18
-
@@ -10,7 +10,6 @@ import {
10
10
  dividerVariants,
11
11
  } from "./variants";
12
12
 
13
-
14
13
  export function DividerBase({
15
14
  className,
16
15
  appearance,
@@ -9,10 +9,7 @@ import { useFocusManagement } from "../../../hooks/useFocusManagement";
9
9
 
10
10
  import { drawerPanelPresets } from "./animations";
11
11
  import { useDrawerContext } from "../drawer-base";
12
- import {
13
- drawerContentVariants,
14
- drawerOverlayVariants,
15
- } from "../variants";
12
+ import { drawerContentVariants, drawerOverlayVariants } from "../variants";
16
13
  import type { DrawerContentAnimatedProps } from "./types";
17
14
 
18
15
  export function DrawerContentAnimated({
@@ -26,7 +23,7 @@ export function DrawerContentAnimated({
26
23
  id,
27
24
  style,
28
25
  }: DrawerContentAnimatedProps) {
29
- const { open, setOpen, titleId, descriptionId, contentRef } =
26
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } =
30
27
  useDrawerContext("DrawerContent");
31
28
  const resolvedSide = side ?? "right";
32
29
  const reduceMotion = useReducedMotion();
@@ -39,6 +36,7 @@ export function DrawerContentAnimated({
39
36
  open,
40
37
  setOpen,
41
38
  contentRef,
39
+ triggerRef,
42
40
  });
43
41
 
44
42
  const portalTarget = typeof document !== "undefined" ? document.body : null;
@@ -50,10 +48,8 @@ export function DrawerContentAnimated({
50
48
  <AnimatePresence>
51
49
  {open ? (
52
50
  <div className="fixed inset-0 z-50" data-slot="drawer-portal">
53
- <motion.button
54
- type="button"
55
- aria-hidden
56
- tabIndex={-1}
51
+ <motion.div
52
+ role="presentation"
57
53
  data-slot="drawer-overlay"
58
54
  className={drawerOverlayVariants()}
59
55
  onClick={() => setOpen(false)}
@@ -68,8 +64,7 @@ export function DrawerContentAnimated({
68
64
  if (typeof ref === "function") {
69
65
  ref(node);
70
66
  } else if (ref) {
71
- (ref as MutableRefObject<HTMLDivElement | null>).current =
72
- node;
67
+ (ref as MutableRefObject<HTMLDivElement | null>).current = node;
73
68
  }
74
69
  }}
75
70
  role="dialog"
@@ -10,5 +10,10 @@ export {
10
10
  DrawerTrigger,
11
11
  } from "../drawer-base";
12
12
  export { DrawerContentAnimated } from "./drawer-content-animated";
13
- export type { DrawerContentAnimatedProps, DrawerAnimation, DrawerPresetMotionProps, DrawerAnimationPresets } from "./types";
13
+ export type {
14
+ DrawerContentAnimatedProps,
15
+ DrawerAnimation,
16
+ DrawerPresetMotionProps,
17
+ DrawerAnimationPresets,
18
+ } from "./types";
14
19
  export { drawerPanelPresets } from "./animations";
@@ -62,6 +62,7 @@ export function Drawer({
62
62
  const titleId = `${baseId}-title`;
63
63
  const descriptionId = `${baseId}-description`;
64
64
  const contentRef = useRef<HTMLDivElement | null>(null);
65
+ const triggerRef = useRef<HTMLElement | null>(null);
65
66
 
66
67
  const ctx = useMemo(
67
68
  () => ({
@@ -70,6 +71,7 @@ export function Drawer({
70
71
  titleId,
71
72
  descriptionId,
72
73
  contentRef,
74
+ triggerRef,
73
75
  }),
74
76
  [descriptionId, resolvedOpen, setOpen, titleId],
75
77
  );
@@ -86,13 +88,20 @@ export function DrawerTrigger({
86
88
  children,
87
89
  appearance,
88
90
  onClick,
89
- ref,
91
+ ref: refProp,
90
92
  ...rest
91
93
  }: DrawerTriggerProps) {
92
- const { setOpen } = useDrawerContext("DrawerTrigger");
94
+ const { setOpen, triggerRef } = useDrawerContext("DrawerTrigger");
93
95
  return (
94
96
  <button
95
- ref={ref}
97
+ ref={(node) => {
98
+ triggerRef.current = node;
99
+ if (typeof refProp === "function") {
100
+ refProp(node);
101
+ } else if (refProp) {
102
+ (refProp as RefObject<HTMLButtonElement | null>).current = node;
103
+ }
104
+ }}
96
105
  type="button"
97
106
  data-slot="drawer-trigger"
98
107
  className={cn(drawerTriggerVariants({ appearance }), className)}
@@ -121,7 +130,7 @@ export function DrawerContent({
121
130
  id,
122
131
  style,
123
132
  }: DrawerContentProps) {
124
- const { open, setOpen, titleId, descriptionId, contentRef } =
133
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } =
125
134
  useDrawerContext("DrawerContent");
126
135
  const resolvedSide = side ?? "right";
127
136
 
@@ -129,6 +138,7 @@ export function DrawerContent({
129
138
  open,
130
139
  setOpen,
131
140
  contentRef,
141
+ triggerRef,
132
142
  });
133
143
 
134
144
  const portalTarget = typeof document !== "undefined" ? document.body : null;
@@ -139,10 +149,8 @@ export function DrawerContent({
139
149
  return createPortal(
140
150
  open ? (
141
151
  <div className="fixed inset-0 z-50" data-slot="drawer-portal">
142
- <button
143
- type="button"
144
- aria-hidden
145
- tabIndex={-1}
152
+ <div
153
+ role="presentation"
146
154
  data-slot="drawer-overlay"
147
155
  className={drawerOverlayVariants()}
148
156
  onClick={() => setOpen(false)}
@@ -1,9 +1,17 @@
1
1
  import type { VariantProps } from "class-variance-authority";
2
- import type { CSSProperties, HTMLAttributes, ReactNode, Ref, RefObject } from "react";
2
+ import type {
3
+ CSSProperties,
4
+ HTMLAttributes,
5
+ ReactNode,
6
+ Ref,
7
+ RefObject,
8
+ } from "react";
3
9
 
4
10
  import type { drawerContentVariants, drawerTriggerVariants } from "./variants";
5
11
 
6
- export type DrawerContentVariantProps = VariantProps<typeof drawerContentVariants>;
12
+ export type DrawerContentVariantProps = VariantProps<
13
+ typeof drawerContentVariants
14
+ >;
7
15
 
8
16
  export type DrawerProps = {
9
17
  open?: boolean;
@@ -36,4 +44,5 @@ export type DrawerCtx = {
36
44
  titleId: string;
37
45
  descriptionId: string;
38
46
  contentRef: RefObject<HTMLDivElement | null>;
39
- };
47
+ triggerRef: RefObject<HTMLElement | null>;
48
+ };
@@ -24,23 +24,23 @@ export const drawerTriggerVariants = cva(
24
24
  amber: "border-amber-600 bg-amber-950/70 backdrop-blur-xl",
25
25
  violet: "border-violet-600 bg-violet-950/70 backdrop-blur-xl",
26
26
  "gradient-blue":
27
- "border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
27
+ "border-blue-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
28
28
  "gradient-green":
29
- "border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
29
+ "border-green-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
30
30
  "gradient-red":
31
- "border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
31
+ "border-red-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
32
32
  "gradient-yellow":
33
- "border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
33
+ "border-yellow-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
34
34
  "gradient-purple":
35
- "border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
35
+ "border-purple-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
36
36
  "gradient-teal":
37
- "border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
37
+ "border-teal-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
38
38
  "gradient-indigo":
39
- "border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
39
+ "border-indigo-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
40
40
  "gradient-pink":
41
- "border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
41
+ "border-pink-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
42
42
  "gradient-orange":
43
- "border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
43
+ "border-orange-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
44
44
  },
45
45
  },
46
46
  defaultVariants: {
@@ -82,23 +82,23 @@ export const drawerContentVariants = cva(
82
82
  amber: "border-amber-600 bg-amber-950/70 backdrop-blur-xl",
83
83
  violet: "border-violet-600 bg-violet-950/70 backdrop-blur-xl",
84
84
  "gradient-blue":
85
- "border-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
85
+ "border-blue-600 bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
86
86
  "gradient-green":
87
- "border-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
87
+ "border-green-600 bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
88
88
  "gradient-red":
89
- "border-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
89
+ "border-red-600 bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
90
90
  "gradient-yellow":
91
- "border-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
91
+ "border-yellow-600 bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
92
92
  "gradient-purple":
93
- "border-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
93
+ "border-purple-600 bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
94
94
  "gradient-teal":
95
- "border-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
95
+ "border-teal-600 bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
96
96
  "gradient-indigo":
97
- "border-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
97
+ "border-indigo-600 bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
98
98
  "gradient-pink":
99
- "border-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
99
+ "border-pink-600 bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
100
100
  "gradient-orange":
101
- "border-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
101
+ "border-orange-600 bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
102
102
  },
103
103
  },
104
104
  compoundVariants: [
@@ -104,9 +104,7 @@ describe("Dropdown", () => {
104
104
  </DropdownContent>
105
105
  </Dropdown>,
106
106
  );
107
- const item = screen
108
- .getByText("Alpha")
109
- .closest('div[tabindex="0"]') as HTMLElement;
107
+ const item = screen.getByRole("menuitem", { name: "Alpha" });
110
108
  item.focus();
111
109
  fireEvent.keyDown(item, { key: "Enter" });
112
110
  expect(handleSelect).toHaveBeenCalledTimes(1);
@@ -1,6 +1,13 @@
1
1
  "use client";
2
2
 
3
- import { createContext, useContext, useState, useRef, useEffect } from "react";
3
+ import {
4
+ createContext,
5
+ useContext,
6
+ useState,
7
+ useRef,
8
+ useEffect,
9
+ useId,
10
+ } from "react";
4
11
  import { FiCheck } from "react-icons/fi";
5
12
  import { cn } from "../../lib/utils";
6
13
  import type {
@@ -34,6 +41,7 @@ export const Dropdown = ({
34
41
  onOpenChange,
35
42
  multiSelect = false,
36
43
  }: DropdownProps) => {
44
+ const menuId = `${useId()}-menu`;
37
45
  const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
38
46
  const [selectedValues, setSelectedValues] = useState<string[]>([]);
39
47
 
@@ -70,6 +78,7 @@ export const Dropdown = ({
70
78
  selectedValues,
71
79
  toggleSelect,
72
80
  multiSelect,
81
+ menuId,
73
82
  }}
74
83
  >
75
84
  <div className="relative inline-block">{children}</div>
@@ -85,15 +94,25 @@ export const DropdownTrigger = ({
85
94
  className,
86
95
  variant,
87
96
  size,
97
+ onClick,
88
98
  ...props
89
99
  }: DropdownTriggerProps) => {
90
- const { toggle } = useDropdown();
100
+ const { toggle, open, menuId } = useDropdown();
91
101
 
92
102
  return (
93
103
  <button
94
- onClick={toggle}
104
+ type="button"
105
+ aria-expanded={open}
106
+ aria-haspopup="menu"
107
+ aria-controls={menuId}
95
108
  className={cn(triggerVariants({ variant, size }), className)}
96
109
  {...props}
110
+ onClick={(event) => {
111
+ onClick?.(event);
112
+ if (!event.defaultPrevented) {
113
+ toggle();
114
+ }
115
+ }}
97
116
  >
98
117
  {children}
99
118
  </button>
@@ -111,7 +130,7 @@ export const DropdownContent = ({
111
130
  divider,
112
131
  ...props
113
132
  }: DropdownContentProps) => {
114
- const { open, setOpen } = useDropdown();
133
+ const { open, setOpen, menuId } = useDropdown();
115
134
  const ref = useRef<HTMLDivElement>(null);
116
135
 
117
136
  // click outside
@@ -122,6 +141,8 @@ export const DropdownContent = ({
122
141
  return (
123
142
  <div
124
143
  ref={ref}
144
+ id={menuId}
145
+ role="menu"
125
146
  className={cn(
126
147
  contentVariants({ placement, spacing }),
127
148
  className,
@@ -157,10 +178,14 @@ export const DropdownItem = ({
157
178
 
158
179
  return (
159
180
  <div
181
+ role="menuitem"
160
182
  tabIndex={0}
161
183
  onClick={handleClick}
162
184
  onKeyDown={(e) => {
163
- if (e.key === "Enter") handleClick();
185
+ if (e.key === "Enter" || e.key === " ") {
186
+ e.preventDefault();
187
+ handleClick();
188
+ }
164
189
  }}
165
190
  className={cn(itemVariants({ variant }), className)}
166
191
  {...props}
@@ -7,6 +7,7 @@ export type DropdownContextType = {
7
7
  selectedValues: string[];
8
8
  toggleSelect: (value: string) => void;
9
9
  multiSelect: boolean;
10
+ menuId: string;
10
11
  };
11
12
 
12
13
  type Variant =
@@ -1,7 +1,7 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
3
  export const triggerVariants = cva(
4
- "inline-flex items-center justify-between rounded-md font-medium transition focus:outline-none cursor-pointer",
4
+ "inline-flex items-center justify-between rounded-md font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60 cursor-pointer",
5
5
  {
6
6
  variants: {
7
7
  variant: {
@@ -23,23 +23,23 @@ export const triggerVariants = cva(
23
23
  amber: "border border-amber-600 text-amber-600",
24
24
  violet: "border border-violet-600 text-violet-600",
25
25
  "gradient-blue":
26
- "bg-gradient-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600",
26
+ "bg-linear-to-r from-blue-600 to-purple-600 text-blue-200",
27
27
  "gradient-green":
28
- "bg-gradient-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600",
28
+ "bg-linear-to-r from-green-600 to-lime-600 text-green-200",
29
29
  "gradient-red":
30
- "bg-gradient-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600",
30
+ "bg-linear-to-r from-red-600 to-pink-600 text-red-200",
31
31
  "gradient-yellow":
32
- "bg-gradient-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600",
32
+ "bg-linear-to-r from-yellow-600 to-orange-600 text-yellow-200",
33
33
  "gradient-purple":
34
- "bg-gradient-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600",
34
+ "bg-linear-to-r from-purple-600 to-pink-600 text-purple-200",
35
35
  "gradient-teal":
36
- "bg-gradient-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600",
36
+ "bg-linear-to-r from-teal-600 to-cyan-600 text-teal-200",
37
37
  "gradient-indigo":
38
- "bg-gradient-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600",
38
+ "bg-linear-to-r from-indigo-600 to-purple-600 text-indigo-200",
39
39
  "gradient-pink":
40
- "bg-gradient-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600",
40
+ "bg-linear-to-r from-pink-600 to-rose-600 text-pink-200",
41
41
  "gradient-orange":
42
- "bg-gradient-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600",
42
+ "bg-linear-to-r from-orange-600 to-red-600 text-orange-200",
43
43
  },
44
44
  size: {
45
45
  sm: "px-2 py-1 text-sm",
@@ -81,7 +81,7 @@ export const contentVariants = cva(
81
81
  );
82
82
 
83
83
  export const itemVariants = cva(
84
- "flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors",
84
+ "flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60",
85
85
  {
86
86
  variants: {
87
87
  variant: {
@@ -112,23 +112,23 @@ export const itemVariants = cva(
112
112
  violet:
113
113
  "hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800",
114
114
  "gradient-blue":
115
- "hover:bg-gradient-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-gradient-to-r from-blue-200 to-purple-200 text-blue-800",
115
+ "hover:bg-linear-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-linear-to-r from-blue-200 to-purple-200 text-blue-800",
116
116
  "gradient-green":
117
- "hover:bg-gradient-to-r from-green-600 to-lime-600 hover:text-green-900 bg-gradient-to-r from-green-200 to-lime-200 text-green-800",
117
+ "hover:bg-linear-to-r from-green-600 to-lime-600 hover:text-green-900 bg-linear-to-r from-green-200 to-lime-200 text-green-800",
118
118
  "gradient-red":
119
- "hover:bg-gradient-to-r from-red-600 to-pink-600 hover:text-red-900 bg-gradient-to-r from-red-200 to-pink-200 text-red-800",
119
+ "hover:bg-linear-to-r from-red-600 to-pink-600 hover:text-red-900 bg-linear-to-r from-red-200 to-pink-200 text-red-800",
120
120
  "gradient-yellow":
121
- "hover:bg-gradient-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-gradient-to-r from-yellow-200 to-orange-200 text-yellow-800",
121
+ "hover:bg-linear-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-linear-to-r from-yellow-200 to-orange-200 text-yellow-800",
122
122
  "gradient-purple":
123
- "hover:bg-gradient-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-gradient-to-r from-purple-200 to-pink-200 text-purple-800",
123
+ "hover:bg-linear-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-linear-to-r from-purple-200 to-pink-200 text-purple-800",
124
124
  "gradient-teal":
125
- "hover:bg-gradient-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-gradient-to-r from-teal-200 to-cyan-200 text-teal-800",
125
+ "hover:bg-linear-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-linear-to-r from-teal-200 to-cyan-200 text-teal-800",
126
126
  "gradient-indigo":
127
- "hover:bg-gradient-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-gradient-to-r from-indigo-200 to-purple-200 text-indigo-800",
127
+ "hover:bg-linear-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-linear-to-r from-indigo-200 to-purple-200 text-indigo-800",
128
128
  "gradient-pink":
129
- "hover:bg-gradient-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-gradient-to-r from-pink-200 to-rose-200 text-pink-800",
129
+ "hover:bg-linear-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-linear-to-r from-pink-200 to-rose-200 text-pink-800",
130
130
  "gradient-orange":
131
- "hover:bg-gradient-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-gradient-to-r from-orange-200 to-red-200 text-orange-800",
131
+ "hover:bg-linear-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-linear-to-r from-orange-200 to-red-200 text-orange-800",
132
132
  },
133
133
  },
134
134
  defaultVariants: {