@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
@@ -40,6 +40,7 @@ export type SelectContextType = {
40
40
  registerOption: (option: SelectOption) => void;
41
41
  options: SelectOption[];
42
42
  multiple: boolean;
43
+ listboxId: string;
43
44
  };
44
45
 
45
46
  export type SelectProps = {
@@ -1,7 +1,7 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
3
  export const selectTriggerVariants = cva(
4
- "flex items-center justify-between rounded-md border transition-all focus:outline-none",
4
+ "flex items-center justify-between rounded-md border transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2",
5
5
  {
6
6
  variants: {
7
7
  variant: {
@@ -19,23 +19,23 @@ export const selectTriggerVariants = cva(
19
19
  emerald: "border-emerald-600 text-emerald-600",
20
20
  glass: "border-white/15 bg-white/10 text-white backdrop-blur-md",
21
21
  "gradient-blue":
22
- "bg-linear-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-white",
22
+ "bg-linear-to-r from-blue-600 to-purple-600 backdrop-blur-xl text-white",
23
23
  "gradient-green":
24
- "bg-linear-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-white",
24
+ "bg-linear-to-r from-green-600 to-lime-600 backdrop-blur-xl text-white",
25
25
  "gradient-red":
26
- "bg-linear-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-white",
26
+ "bg-linear-to-r from-red-600 to-pink-600 backdrop-blur-xl text-white",
27
27
  "gradient-yellow":
28
- "bg-linear-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-white",
28
+ "bg-linear-to-r from-yellow-600 to-orange-600 backdrop-blur-xl text-white",
29
29
  "gradient-purple":
30
- "bg-linear-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-white",
30
+ "bg-linear-to-r from-purple-600 to-pink-600 backdrop-blur-xl text-white",
31
31
  "gradient-teal":
32
- "bg-linear-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-white",
32
+ "bg-linear-to-r from-teal-600 to-cyan-600 backdrop-blur-xl text-white",
33
33
  "gradient-indigo":
34
- "bg-linear-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-white",
34
+ "bg-linear-to-r from-indigo-600 to-purple-600 backdrop-blur-xl text-white",
35
35
  "gradient-pink":
36
- "bg-linear-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-white",
36
+ "bg-linear-to-r from-pink-600 to-rose-600 backdrop-blur-xl text-white",
37
37
  "gradient-orange":
38
- "bg-linear-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-white",
38
+ "bg-linear-to-r from-orange-600 to-red-600 backdrop-blur-xl text-white",
39
39
  },
40
40
  size: {
41
41
  sm: "px-2 py-1 text-sm",
@@ -50,58 +50,61 @@ export const selectTriggerVariants = cva(
50
50
  },
51
51
  );
52
52
 
53
- export const selectItemVariants = cva("cursor-pointer px-3 py-2 rounded-md", {
54
- variants: {
55
- appearance: {
56
- default:
57
- "bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
58
- glass:
59
- "bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100",
60
- outline:
61
- "border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
62
- ghost:
63
- "border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900",
64
- sky: "border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800",
65
- rose: "border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800",
66
- purple:
67
- "border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800",
68
- pink: "border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800",
69
- orange:
70
- "border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800",
71
- yellow:
72
- "border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800",
73
- teal: "border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800",
74
- indigo:
75
- "border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800",
76
- emerald:
77
- "border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800",
78
- "gradient-blue":
79
- "bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-blue-100",
80
- "gradient-green":
81
- "bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl data-[selected=true]:text-green-100",
82
- "gradient-red":
83
- "bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-red-100",
84
- "gradient-yellow":
85
- "bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl data-[selected=true]:text-yellow-100",
86
- "gradient-purple":
87
- "bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl data-[selected=true]:text-purple-100",
88
- "gradient-teal":
89
- "bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl data-[selected=true]:text-teal-100",
90
- "gradient-indigo":
91
- "bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl data-[selected=true]:text-indigo-100",
92
- "gradient-pink":
93
- "bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl data-[selected=true]:text-pink-100",
94
- "gradient-orange":
95
- "bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl data-[selected=true]:text-orange-100",
53
+ export const selectItemVariants = cva(
54
+ "cursor-pointer px-3 py-2 rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-inset",
55
+ {
56
+ variants: {
57
+ appearance: {
58
+ default:
59
+ "bg-white text-gray-900 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
60
+ glass:
61
+ "bg-white/10 text-gray-100 data-[selected=true]:bg-white/10 data-[selected=true]:text-gray-100",
62
+ outline:
63
+ "border-2 border-gray-500 text-gray-900 data-[selected=true]:border-2 data-[selected=true]:border-gray-500 data-[selected=true]:bg-gray-200 data-[selected=true]:text-gray-900",
64
+ ghost:
65
+ "border-transparent text-gray-900 data-[selected=true]:border-transparent data-[selected=true]:bg-transparent data-[selected=true]:text-gray-900",
66
+ sky: "border-sky-600 text-sky-800 data-[selected=true]:border-sky-600 data-[selected=true]:bg-sky-200 data-[selected=true]:text-sky-800",
67
+ rose: "border-rose-600 text-rose-800 data-[selected=true]:border-rose-600 data-[selected=true]:bg-rose-200 data-[selected=true]:text-rose-800",
68
+ purple:
69
+ "border-purple-600 text-purple-800 data-[selected=true]:border-purple-600 data-[selected=true]:bg-purple-200 data-[selected=true]:text-purple-800",
70
+ pink: "border-pink-600 text-pink-800 data-[selected=true]:border-pink-600 data-[selected=true]:bg-pink-200 data-[selected=true]:text-pink-800",
71
+ orange:
72
+ "border-orange-600 text-orange-800 data-[selected=true]:border-orange-600 data-[selected=true]:bg-orange-200 data-[selected=true]:text-orange-800",
73
+ yellow:
74
+ "border-yellow-600 text-yellow-800 data-[selected=true]:border-yellow-600 data-[selected=true]:bg-yellow-200 data-[selected=true]:text-yellow-800",
75
+ teal: "border-teal-600 text-teal-800 data-[selected=true]:border-teal-600 data-[selected=true]:bg-teal-200 data-[selected=true]:text-teal-800",
76
+ indigo:
77
+ "border-indigo-600 text-indigo-800 data-[selected=true]:border-indigo-600 data-[selected=true]:bg-indigo-200 data-[selected=true]:text-indigo-800",
78
+ emerald:
79
+ "border-emerald-600 text-emerald-800 data-[selected=true]:border-emerald-600 data-[selected=true]:bg-emerald-200 data-[selected=true]:text-emerald-800",
80
+ "gradient-blue":
81
+ "bg-linear-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl text-blue-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-blue-600 data-[selected=true]:to-purple-600 data-[selected=true]:text-blue-100",
82
+ "gradient-green":
83
+ "bg-linear-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl text-green-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-green-600 data-[selected=true]:to-lime-600 data-[selected=true]:text-green-100",
84
+ "gradient-red":
85
+ "bg-linear-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl text-red-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-red-600 data-[selected=true]:to-pink-600 data-[selected=true]:text-red-100",
86
+ "gradient-yellow":
87
+ "bg-linear-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl text-yellow-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-yellow-600 data-[selected=true]:to-orange-600 data-[selected=true]:text-yellow-100",
88
+ "gradient-purple":
89
+ "bg-linear-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl text-purple-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-purple-600 data-[selected=true]:to-pink-600 data-[selected=true]:text-purple-100",
90
+ "gradient-teal":
91
+ "bg-linear-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl text-teal-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-teal-600 data-[selected=true]:to-cyan-600 data-[selected=true]:text-teal-100",
92
+ "gradient-indigo":
93
+ "bg-linear-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl text-indigo-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-indigo-600 data-[selected=true]:to-purple-600 data-[selected=true]:text-indigo-100",
94
+ "gradient-pink":
95
+ "bg-linear-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl text-pink-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-pink-600 data-[selected=true]:to-rose-600 data-[selected=true]:text-pink-100",
96
+ "gradient-orange":
97
+ "bg-linear-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl text-orange-50 data-[selected=true]:bg-linear-to-r data-[selected=true]:from-orange-600 data-[selected=true]:to-red-600 data-[selected=true]:text-orange-100",
98
+ },
99
+ disabled: {
100
+ true: "opacity-50 cursor-not-allowed",
101
+ },
96
102
  },
97
- disabled: {
98
- true: "opacity-50 cursor-not-allowed",
103
+ defaultVariants: {
104
+ appearance: "default",
99
105
  },
100
106
  },
101
- defaultVariants: {
102
- appearance: "default",
103
- },
104
- });
107
+ );
105
108
 
106
109
  export const selectContentVariants = cva(
107
110
  "absolute z-10 mt-2 w-full rounded-md border bg-white shadow-md",
@@ -122,23 +125,23 @@ export const selectContentVariants = cva(
122
125
  indigo: "border-indigo-600",
123
126
  emerald: "border-emerald-600",
124
127
  "gradient-blue":
125
- "bg-gradient-to-r from-blue-600 to-purple-600 bg-gradient-to-r from-blue-950/70 to-purple-950/70 backdrop-blur-xl",
128
+ "bg-linear-to-r from-blue-600 to-purple-600 backdrop-blur-xl",
126
129
  "gradient-green":
127
- "bg-gradient-to-r from-green-600 to-lime-600 bg-gradient-to-r from-green-950/70 to-lime-950/70 backdrop-blur-xl",
130
+ "bg-linear-to-r from-green-600 to-lime-600 backdrop-blur-xl",
128
131
  "gradient-red":
129
- "bg-gradient-to-r from-red-600 to-pink-600 bg-gradient-to-r from-red-950/70 to-pink-950/70 backdrop-blur-xl",
132
+ "bg-linear-to-r from-red-600 to-pink-600 backdrop-blur-xl",
130
133
  "gradient-yellow":
131
- "bg-gradient-to-r from-yellow-600 to-orange-600 bg-gradient-to-r from-yellow-950/70 to-orange-950/70 backdrop-blur-xl",
134
+ "bg-linear-to-r from-yellow-600 to-orange-600 backdrop-blur-xl",
132
135
  "gradient-purple":
133
- "bg-gradient-to-r from-purple-600 to-pink-600 bg-gradient-to-r from-purple-950/70 to-pink-950/70 backdrop-blur-xl",
136
+ "bg-linear-to-r from-purple-600 to-pink-600 backdrop-blur-xl",
134
137
  "gradient-teal":
135
- "bg-gradient-to-r from-teal-600 to-cyan-600 bg-gradient-to-r from-teal-950/70 to-cyan-950/70 backdrop-blur-xl",
138
+ "bg-linear-to-r from-teal-600 to-cyan-600 backdrop-blur-xl",
136
139
  "gradient-indigo":
137
- "bg-gradient-to-r from-indigo-600 to-purple-600 bg-gradient-to-r from-indigo-950/70 to-purple-950/70 backdrop-blur-xl",
140
+ "bg-linear-to-r from-indigo-600 to-purple-600 backdrop-blur-xl",
138
141
  "gradient-pink":
139
- "bg-gradient-to-r from-pink-600 to-rose-600 bg-gradient-to-r from-pink-950/70 to-rose-950/70 backdrop-blur-xl",
142
+ "bg-linear-to-r from-pink-600 to-rose-600 backdrop-blur-xl",
140
143
  "gradient-orange":
141
- "bg-gradient-to-r from-orange-600 to-red-600 bg-gradient-to-r from-orange-950/70 to-red-950/70 backdrop-blur-xl",
144
+ "bg-linear-to-r from-orange-600 to-red-600 backdrop-blur-xl",
142
145
  },
143
146
  size: {
144
147
  sm: "px-2 py-1 text-sm",
@@ -35,7 +35,14 @@ export function SkeletonTextAnimated(props: SkeletonTextAnimatedProps) {
35
35
  const effectiveAnimation = useSkeletonAnimation(animation);
36
36
  const motionProps = skeletonAnimationPresets[effectiveAnimation];
37
37
 
38
- return <SkeletonTextBase {...props} as={motion.div} initial={false} {...motionProps} />;
38
+ return (
39
+ <SkeletonTextBase
40
+ {...props}
41
+ as={motion.div}
42
+ initial={false}
43
+ {...motionProps}
44
+ />
45
+ );
39
46
  }
40
47
 
41
48
  SkeletonTextAnimated.displayName = "SkeletonText";
@@ -44,7 +51,14 @@ export function SkeletonAvatarAnimated(props: SkeletonAvatarAnimatedProps) {
44
51
  const { animation = "shimmer" } = props;
45
52
  const effectiveAnimation = useSkeletonAnimation(animation);
46
53
  const motionProps = skeletonAnimationPresets[effectiveAnimation];
47
- return <SkeletonAvatarBase {...props} as={motion.div} initial={false} {...motionProps} />;
54
+ return (
55
+ <SkeletonAvatarBase
56
+ {...props}
57
+ as={motion.div}
58
+ initial={false}
59
+ {...motionProps}
60
+ />
61
+ );
48
62
  }
49
63
 
50
64
  SkeletonAvatarAnimated.displayName = "SkeletonAvatar";
@@ -113,7 +127,14 @@ export function SkeletonButtonAnimated(props: SkeletonButtonAnimatedProps) {
113
127
  const { animation = "shimmer" } = props;
114
128
  const effectiveAnimation = useSkeletonAnimation(animation);
115
129
  const motionProps = skeletonAnimationPresets[effectiveAnimation];
116
- return <SkeletonButtonBase {...props} as={motion.div} initial={false} {...motionProps} />;
130
+ return (
131
+ <SkeletonButtonBase
132
+ {...props}
133
+ as={motion.div}
134
+ initial={false}
135
+ {...motionProps}
136
+ />
137
+ );
117
138
  }
118
139
 
119
- SkeletonButtonAnimated.displayName = "SkeletonButton";
140
+ SkeletonButtonAnimated.displayName = "SkeletonButton";
@@ -17,7 +17,6 @@ export type SkeletonAnimationPresets = Record<
17
17
  SkeletonPresetMotionProps
18
18
  >;
19
19
 
20
-
21
20
  export type SkeletonAnimatedProps = SkeletonVariantProps &
22
21
  Omit<HTMLMotionProps<"div">, "children"> & {
23
22
  animation?: SkeletonAnimation;
@@ -43,7 +43,7 @@ export function SkeletonBase(props: SkeletonProps) {
43
43
  busy,
44
44
  children,
45
45
  ref,
46
- as:Wrapper = "div",
46
+ as: Wrapper = "div",
47
47
  ...rest
48
48
  } = props;
49
49
  const ctx = useMemo(() => animation, [animation]);
@@ -87,7 +87,7 @@ export function SkeletonTextBase(props: SkeletonTextProps) {
87
87
  shimmerTone,
88
88
  busy,
89
89
  ref,
90
- as:Wrapper = "div",
90
+ as: Wrapper = "div",
91
91
  } = props;
92
92
  const effectiveAnimation = useSkeletonAnimation(animation);
93
93
  const motionClass = skeletonMotionClass(effectiveAnimation);
@@ -146,7 +146,7 @@ export function SkeletonAvatarBase(props: SkeletonAvatarProps) {
146
146
  shimmerTone,
147
147
  busy,
148
148
  ref,
149
- as:Wrapper = "div",
149
+ as: Wrapper = "div",
150
150
  ...rest
151
151
  } = props;
152
152
  const effectiveAnimation = useSkeletonAnimation(animation ?? "shimmer");
@@ -52,15 +52,15 @@ export const skeletonVariants = cva(
52
52
  gray: "bg-gray-500/10",
53
53
  amber: "bg-amber-500/10",
54
54
  violet: "bg-violet-500/10",
55
- "gradient-blue": "bg-gradient-to-r from-blue-600 to-purple-600",
56
- "gradient-green": "bg-gradient-to-r from-green-600 to-lime-600",
57
- "gradient-red": "bg-gradient-to-r from-red-600 to-pink-600",
58
- "gradient-yellow": "bg-gradient-to-r from-yellow-600 to-orange-600",
59
- "gradient-purple": "bg-gradient-to-r from-purple-600 to-pink-600",
60
- "gradient-teal": "bg-gradient-to-r from-teal-600 to-cyan-600",
61
- "gradient-indigo": "bg-gradient-to-r from-indigo-600 to-purple-600",
62
- "gradient-pink": "bg-gradient-to-r from-pink-600 to-rose-600",
63
- "gradient-orange": "bg-gradient-to-r from-orange-600 to-red-600",
55
+ "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600",
56
+ "gradient-green": "bg-linear-to-r from-green-600 to-lime-600",
57
+ "gradient-red": "bg-linear-to-r from-red-600 to-pink-600",
58
+ "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600",
59
+ "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600",
60
+ "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600",
61
+ "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600",
62
+ "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600",
63
+ "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600",
64
64
  },
65
65
  size: {
66
66
  sm: "min-h-3",
@@ -41,7 +41,9 @@ describe("Slider", () => {
41
41
  </SliderTrack>
42
42
  </Slider>,
43
43
  );
44
- expect(screen.getByRole("slider")).toHaveAttribute("aria-valuenow", "25");
44
+ const thumb = screen.getByRole("slider");
45
+ expect(thumb).toHaveAttribute("aria-valuenow", "25");
46
+ expect(thumb).toHaveAttribute("aria-label", "Level");
45
47
  });
46
48
 
47
49
  it("should adjust value with keyboard", async () => {
@@ -76,19 +78,31 @@ describe("Slider", () => {
76
78
 
77
79
  describe("RangeSlider", () => {
78
80
  it("should stamp data-slot on range slider", () => {
79
- render(
80
- <RangeSlider
81
- aria-label="Budget"
82
- defaultValue={[20, 80]}
83
- />,
84
- );
81
+ render(<RangeSlider aria-label="Budget" defaultValue={[20, 80]} />);
85
82
  expect(document.querySelector('[data-slot="range-slider"]')).toBeTruthy();
86
83
  });
87
84
 
88
85
  it("should render two slider thumbs", () => {
86
+ render(<RangeSlider defaultValue={[10, 90]} aria-label="Range" />);
87
+ expect(screen.getAllByRole("slider")).toHaveLength(2);
88
+ });
89
+
90
+ it("should give each thumb an accessible name when aria-label is set", () => {
91
+ render(<RangeSlider defaultValue={[10, 90]} aria-label="Budget" />);
92
+ const thumbs = screen.getAllByRole("slider");
93
+ expect(thumbs[0]).toHaveAttribute("aria-label", "Budget, minimum");
94
+ expect(thumbs[1]).toHaveAttribute("aria-label", "Budget, maximum");
95
+ });
96
+
97
+ it("should mirror aria-labelledby onto thumbs when aria-label is omitted", () => {
89
98
  render(
90
- <RangeSlider defaultValue={[10, 90]} aria-label="Range" />,
99
+ <>
100
+ <span id="range-lbl">Volume band</span>
101
+ <RangeSlider defaultValue={[10, 90]} aria-labelledby="range-lbl" />
102
+ </>,
91
103
  );
92
- expect(screen.getAllByRole("slider")).toHaveLength(2);
104
+ const thumbs = screen.getAllByRole("slider");
105
+ expect(thumbs[0]).toHaveAttribute("aria-labelledby", "range-lbl");
106
+ expect(thumbs[1]).toHaveAttribute("aria-labelledby", "range-lbl");
93
107
  });
94
108
  });
@@ -208,8 +208,21 @@ export function Slider({
208
208
  size: size ?? "md",
209
209
  appearance: appearance ?? "default",
210
210
  trackRef,
211
+ "aria-label": ariaLabel,
212
+ "aria-labelledby": ariaLabelledBy,
211
213
  }),
212
- [appearance, disabled, max, min, setValue, size, step, value],
214
+ [
215
+ appearance,
216
+ ariaLabel,
217
+ ariaLabelledBy,
218
+ disabled,
219
+ max,
220
+ min,
221
+ setValue,
222
+ size,
223
+ step,
224
+ value,
225
+ ],
213
226
  );
214
227
 
215
228
  return (
@@ -303,8 +316,18 @@ export function SliderThumb({
303
316
  ref: refProp,
304
317
  ...rest
305
318
  }: SliderThumbProps & { ref?: Ref<HTMLDivElement> }) {
306
- const { min, max, value, step, setValue, disabled, size, trackRef } =
307
- useSliderContext("SliderThumb");
319
+ const {
320
+ min,
321
+ max,
322
+ value,
323
+ step,
324
+ setValue,
325
+ disabled,
326
+ size,
327
+ trackRef,
328
+ "aria-label": sliderAriaLabel,
329
+ "aria-labelledby": sliderAriaLabelledBy,
330
+ } = useSliderContext("SliderThumb");
308
331
  /** Horizontal thumb position; same mapping as `SliderRange` width uses. */
309
332
  const pct = max === min ? 0 : ((value - min) / (max - min)) * 100;
310
333
 
@@ -414,6 +437,8 @@ export function SliderThumb({
414
437
  role="slider"
415
438
  tabIndex={disabled ? -1 : 0}
416
439
  data-slot="slider-thumb"
440
+ aria-label={sliderAriaLabel}
441
+ aria-labelledby={sliderAriaLabelledBy}
417
442
  aria-valuemin={min}
418
443
  aria-valuemax={max}
419
444
  aria-valuenow={value}
@@ -561,6 +586,13 @@ export function RangeSlider({
561
586
 
562
587
  const resolvedSize = size ?? "md";
563
588
 
589
+ const lowThumbAriaLabel =
590
+ ariaLabel !== undefined ? `${ariaLabel}, minimum` : undefined;
591
+ const highThumbAriaLabel =
592
+ ariaLabel !== undefined ? `${ariaLabel}, maximum` : undefined;
593
+ const thumbAriaLabelledBy =
594
+ ariaLabel === undefined ? ariaLabelledBy : undefined;
595
+
564
596
  return (
565
597
  <div
566
598
  ref={ref}
@@ -568,7 +600,6 @@ export function RangeSlider({
568
600
  role="group"
569
601
  aria-label={ariaLabel}
570
602
  aria-labelledby={ariaLabelledBy}
571
- aria-valuetext={`${lo} – ${hi}`}
572
603
  className={cn(sliderRootVariants({ size: resolvedSize }), className)}
573
604
  {...rest}
574
605
  >
@@ -596,6 +627,8 @@ export function RangeSlider({
596
627
  trackRef={trackRef}
597
628
  onMoveClientX={(x) => moveThumb(0, x)}
598
629
  onNudge={(delta) => setPair([lo + delta, hi])}
630
+ aria-label={lowThumbAriaLabel}
631
+ aria-labelledby={thumbAriaLabelledBy}
599
632
  />
600
633
  <RangeThumb
601
634
  disabled={disabled}
@@ -608,6 +641,8 @@ export function RangeSlider({
608
641
  trackRef={trackRef}
609
642
  onMoveClientX={(x) => moveThumb(1, x)}
610
643
  onNudge={(delta) => setPair([lo, hi + delta])}
644
+ aria-label={highThumbAriaLabel}
645
+ aria-labelledby={thumbAriaLabelledBy}
611
646
  />
612
647
  </div>
613
648
  </div>
@@ -629,6 +664,8 @@ type RangeThumbProps = {
629
664
  onMoveClientX: (clientX: number) => void;
630
665
  /** Relative keyboard adjustment in value units; parent merges into the pair. */
631
666
  onNudge: (delta: number) => void;
667
+ "aria-label"?: string;
668
+ "aria-labelledby"?: string;
632
669
  };
633
670
 
634
671
  /** Private thumb implementation shared by the low and high endpoints. */
@@ -643,6 +680,8 @@ function RangeThumb({
643
680
  trackRef,
644
681
  onMoveClientX,
645
682
  onNudge,
683
+ "aria-label": thumbAriaLabel,
684
+ "aria-labelledby": thumbAriaLabelledBy,
646
685
  }: RangeThumbProps) {
647
686
  const onPointerDown = useCallback(
648
687
  (event: ReactPointerEvent<HTMLDivElement>) => {
@@ -712,6 +751,8 @@ function RangeThumb({
712
751
  role="slider"
713
752
  tabIndex={disabled ? -1 : 0}
714
753
  data-slot="range-slider-thumb"
754
+ aria-label={thumbAriaLabel}
755
+ aria-labelledby={thumbAriaLabelledBy}
715
756
  aria-valuemin={min}
716
757
  aria-valuemax={max}
717
758
  aria-valuenow={value}
@@ -20,9 +20,9 @@ export type SliderProps = SliderRootVariantProps & {
20
20
  onValueChange?: (value: number) => void;
21
21
  disabled?: boolean;
22
22
  appearance?: VariantProps<typeof sliderRangeVariants>["appearance"];
23
- /** Label for the slider group (accessibility). */
23
+ /** Accessible name for the slider (applied to the focusable thumb). */
24
24
  "aria-label"?: string;
25
- /** Optional visible label id */
25
+ /** Visible label element id (`aria-labelledby` on the focusable thumb). */
26
26
  "aria-labelledby"?: string;
27
27
  children?: ReactNode;
28
28
  } & Omit<ComponentPropsWithoutRef<"div">, "children" | "defaultValue">;
@@ -45,7 +45,9 @@ export type RangeSliderProps = SliderRootVariantProps & {
45
45
  onValueChange?: (value: [number, number]) => void;
46
46
  disabled?: boolean;
47
47
  appearance?: VariantProps<typeof sliderRangeVariants>["appearance"];
48
+ /** Accessible name for the range control (each thumb gets a distinct suffix). */
48
49
  "aria-label"?: string;
50
+ /** Visible label element id for each thumb when `aria-label` is not used. */
49
51
  "aria-labelledby"?: string;
50
52
  } & Omit<ComponentPropsWithoutRef<"div">, "children" | "defaultValue">;
51
53
 
@@ -63,4 +65,8 @@ export type SliderCtx = {
63
65
  size: NonNullable<SliderProps["size"]>;
64
66
  appearance: SliderAppearance;
65
67
  trackRef: RefObject<HTMLDivElement | null>;
66
- };
68
+ /** Mirrored from `<Slider>` so the focusable thumb exposes an accessible name. */
69
+ "aria-label"?: string;
70
+ /** Mirrored from `<Slider>` so the focusable thumb exposes an accessible name. */
71
+ "aria-labelledby"?: string;
72
+ };
@@ -30,7 +30,7 @@ export const sliderTrackVariants = cva(
30
30
  );
31
31
 
32
32
  export const sliderRangeVariants = cva(
33
- "absolute h-full rounded-full bg-gradient-to-r from-violet-500 to-indigo-400",
33
+ "absolute h-full rounded-full bg-linear-to-r from-violet-500 to-indigo-400",
34
34
  {
35
35
  variants: {
36
36
  appearance: {
@@ -33,6 +33,7 @@ export function Spinner(props: SpinnerProps) {
33
33
  initial={false}
34
34
  {...rest}
35
35
  >
36
+ <span className="sr-only">{ariaLabel}</span>
36
37
  <motion.span
37
38
  className="block size-full rounded-full border-2 border-current border-t-transparent"
38
39
  animate={{ rotate: 360 }}
@@ -62,6 +63,7 @@ export function Spinner(props: SpinnerProps) {
62
63
  initial={false}
63
64
  {...rest}
64
65
  >
66
+ <span className="sr-only">{ariaLabel}</span>
65
67
  {[0, 1, 2].map((index) => (
66
68
  <motion.span
67
69
  key={index}
@@ -91,6 +93,7 @@ export function Spinner(props: SpinnerProps) {
91
93
  initial={false}
92
94
  {...rest}
93
95
  >
96
+ <span className="sr-only">{ariaLabel}</span>
94
97
  <motion.span
95
98
  className="block size-full rounded-full bg-current"
96
99
  animate={{ scale: [0.75, 1, 0.75], opacity: [0.45, 1, 0.45] }}
@@ -109,9 +112,8 @@ export function Spinner(props: SpinnerProps) {
109
112
  xl: "w-2",
110
113
  };
111
114
 
112
- const barWidth =
113
- barWidths[size as keyof typeof barWidths];
114
-
115
+ const barWidth = barWidths[size as keyof typeof barWidths];
116
+
115
117
  return (
116
118
  <motion.span
117
119
  ref={ref}
@@ -122,6 +124,7 @@ export function Spinner(props: SpinnerProps) {
122
124
  initial={false}
123
125
  {...rest}
124
126
  >
127
+ <span className="sr-only">{ariaLabel}</span>
125
128
  {[0, 1, 2, 3].map((index) => (
126
129
  <motion.span
127
130
  key={index}
@@ -19,7 +19,7 @@ describe("Stepper", () => {
19
19
  expect(StepperDescription.displayName).toBe("StepperDescription");
20
20
  });
21
21
 
22
- it("should stamp data-slot on stepper root and use list semantics", () => {
22
+ it("should stamp data-slot on stepper root and use ordered list markup", () => {
23
23
  render(
24
24
  <Stepper>
25
25
  <StepperItem>
@@ -30,10 +30,9 @@ describe("Stepper", () => {
30
30
  );
31
31
  const root = document.querySelector('[data-slot="stepper"]');
32
32
  expect(root).toBeTruthy();
33
- expect(root).toHaveAttribute("role", "list");
34
- expect(document.querySelector('[data-slot="stepper-item"]')).toHaveAttribute(
35
- "role",
36
- "listitem",
33
+ expect(root?.tagName).toBe("OL");
34
+ expect(document.querySelector('[data-slot="stepper-item"]')?.tagName).toBe(
35
+ "LI",
37
36
  );
38
37
  });
39
38
 
@@ -153,7 +152,7 @@ describe("Stepper", () => {
153
152
  });
154
153
 
155
154
  it("should forward ref on Stepper", () => {
156
- const ref = createRef<HTMLDivElement>();
155
+ const ref = createRef<HTMLOListElement>();
157
156
  render(
158
157
  <Stepper ref={ref}>
159
158
  <StepperItem>