@zentauri-ui/zentauri-components 1.8.2 → 1.8.4

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 (880) hide show
  1. package/README.md +155 -27
  2. package/cli/cli.integration.test.ts +94 -2
  3. package/cli/index.mjs +97 -14
  4. package/cli/registry.json +334 -1
  5. package/cli/rewrite-imports.mjs +4 -1
  6. package/dist/animations/blur-in/blur-in.d.ts +5 -0
  7. package/dist/animations/blur-in/blur-in.d.ts.map +1 -0
  8. package/dist/animations/blur-in/index.d.ts +4 -0
  9. package/dist/animations/blur-in/index.d.ts.map +1 -0
  10. package/dist/animations/blur-in/presets.d.ts +19 -0
  11. package/dist/animations/blur-in/presets.d.ts.map +1 -0
  12. package/dist/animations/blur-in/types.d.ts +3 -0
  13. package/dist/animations/blur-in/types.d.ts.map +1 -0
  14. package/dist/animations/blur-in.js +24 -0
  15. package/dist/animations/blur-in.js.map +1 -0
  16. package/dist/animations/blur-in.mjs +21 -0
  17. package/dist/animations/blur-in.mjs.map +1 -0
  18. package/dist/animations/blur-out/blur-out.d.ts +5 -0
  19. package/dist/animations/blur-out/blur-out.d.ts.map +1 -0
  20. package/dist/animations/blur-out/index.d.ts +4 -0
  21. package/dist/animations/blur-out/index.d.ts.map +1 -0
  22. package/dist/animations/blur-out/presets.d.ts +19 -0
  23. package/dist/animations/blur-out/presets.d.ts.map +1 -0
  24. package/dist/animations/blur-out/types.d.ts +3 -0
  25. package/dist/animations/blur-out/types.d.ts.map +1 -0
  26. package/dist/animations/blur-out.js +24 -0
  27. package/dist/animations/blur-out.js.map +1 -0
  28. package/dist/animations/blur-out.mjs +21 -0
  29. package/dist/animations/blur-out.mjs.map +1 -0
  30. package/dist/animations/bounce/bounce.d.ts +5 -0
  31. package/dist/animations/bounce/bounce.d.ts.map +1 -0
  32. package/dist/animations/bounce/index.d.ts +4 -0
  33. package/dist/animations/bounce/index.d.ts.map +1 -0
  34. package/dist/animations/bounce/presets.d.ts +19 -0
  35. package/dist/animations/bounce/presets.d.ts.map +1 -0
  36. package/dist/animations/bounce/types.d.ts +3 -0
  37. package/dist/animations/bounce/types.d.ts.map +1 -0
  38. package/dist/animations/bounce.js +29 -0
  39. package/dist/animations/bounce.js.map +1 -0
  40. package/dist/animations/bounce.mjs +26 -0
  41. package/dist/animations/bounce.mjs.map +1 -0
  42. package/dist/animations/fade-down/fade-down.d.ts +5 -0
  43. package/dist/animations/fade-down/fade-down.d.ts.map +1 -0
  44. package/dist/animations/fade-down/index.d.ts +4 -0
  45. package/dist/animations/fade-down/index.d.ts.map +1 -0
  46. package/dist/animations/fade-down/presets.d.ts +19 -0
  47. package/dist/animations/fade-down/presets.d.ts.map +1 -0
  48. package/dist/animations/fade-down/types.d.ts +3 -0
  49. package/dist/animations/fade-down/types.d.ts.map +1 -0
  50. package/dist/animations/fade-down.js +24 -0
  51. package/dist/animations/fade-down.js.map +1 -0
  52. package/dist/animations/fade-down.mjs +21 -0
  53. package/dist/animations/fade-down.mjs.map +1 -0
  54. package/dist/animations/fade-in/fade-in.d.ts +5 -0
  55. package/dist/animations/fade-in/fade-in.d.ts.map +1 -0
  56. package/dist/animations/fade-in/index.d.ts +4 -0
  57. package/dist/animations/fade-in/index.d.ts.map +1 -0
  58. package/dist/animations/fade-in/presets.d.ts +16 -0
  59. package/dist/animations/fade-in/presets.d.ts.map +1 -0
  60. package/dist/animations/fade-in/types.d.ts +3 -0
  61. package/dist/animations/fade-in/types.d.ts.map +1 -0
  62. package/dist/animations/fade-in.js +24 -0
  63. package/dist/animations/fade-in.js.map +1 -0
  64. package/dist/animations/fade-in.mjs +21 -0
  65. package/dist/animations/fade-in.mjs.map +1 -0
  66. package/dist/animations/fade-left/fade-left.d.ts +5 -0
  67. package/dist/animations/fade-left/fade-left.d.ts.map +1 -0
  68. package/dist/animations/fade-left/index.d.ts +4 -0
  69. package/dist/animations/fade-left/index.d.ts.map +1 -0
  70. package/dist/animations/fade-left/presets.d.ts +19 -0
  71. package/dist/animations/fade-left/presets.d.ts.map +1 -0
  72. package/dist/animations/fade-left/types.d.ts +3 -0
  73. package/dist/animations/fade-left/types.d.ts.map +1 -0
  74. package/dist/animations/fade-left.js +24 -0
  75. package/dist/animations/fade-left.js.map +1 -0
  76. package/dist/animations/fade-left.mjs +21 -0
  77. package/dist/animations/fade-left.mjs.map +1 -0
  78. package/dist/animations/fade-out/fade-out.d.ts +5 -0
  79. package/dist/animations/fade-out/fade-out.d.ts.map +1 -0
  80. package/dist/animations/fade-out/index.d.ts +4 -0
  81. package/dist/animations/fade-out/index.d.ts.map +1 -0
  82. package/dist/animations/fade-out/presets.d.ts +16 -0
  83. package/dist/animations/fade-out/presets.d.ts.map +1 -0
  84. package/dist/animations/fade-out/types.d.ts +3 -0
  85. package/dist/animations/fade-out/types.d.ts.map +1 -0
  86. package/dist/animations/fade-out.js +24 -0
  87. package/dist/animations/fade-out.js.map +1 -0
  88. package/dist/animations/fade-out.mjs +21 -0
  89. package/dist/animations/fade-out.mjs.map +1 -0
  90. package/dist/animations/fade-right/fade-right.d.ts +5 -0
  91. package/dist/animations/fade-right/fade-right.d.ts.map +1 -0
  92. package/dist/animations/fade-right/index.d.ts +4 -0
  93. package/dist/animations/fade-right/index.d.ts.map +1 -0
  94. package/dist/animations/fade-right/presets.d.ts +19 -0
  95. package/dist/animations/fade-right/presets.d.ts.map +1 -0
  96. package/dist/animations/fade-right/types.d.ts +3 -0
  97. package/dist/animations/fade-right/types.d.ts.map +1 -0
  98. package/dist/animations/fade-right.js +24 -0
  99. package/dist/animations/fade-right.js.map +1 -0
  100. package/dist/animations/fade-right.mjs +21 -0
  101. package/dist/animations/fade-right.mjs.map +1 -0
  102. package/dist/animations/fade-up/fade-up.d.ts +5 -0
  103. package/dist/animations/fade-up/fade-up.d.ts.map +1 -0
  104. package/dist/animations/fade-up/index.d.ts +4 -0
  105. package/dist/animations/fade-up/index.d.ts.map +1 -0
  106. package/dist/animations/fade-up/presets.d.ts +19 -0
  107. package/dist/animations/fade-up/presets.d.ts.map +1 -0
  108. package/dist/animations/fade-up/types.d.ts +3 -0
  109. package/dist/animations/fade-up/types.d.ts.map +1 -0
  110. package/dist/animations/fade-up.js +24 -0
  111. package/dist/animations/fade-up.js.map +1 -0
  112. package/dist/animations/fade-up.mjs +21 -0
  113. package/dist/animations/fade-up.mjs.map +1 -0
  114. package/dist/animations/flip/flip.d.ts +5 -0
  115. package/dist/animations/flip/flip.d.ts.map +1 -0
  116. package/dist/animations/flip/index.d.ts +4 -0
  117. package/dist/animations/flip/index.d.ts.map +1 -0
  118. package/dist/animations/flip/presets.d.ts +22 -0
  119. package/dist/animations/flip/presets.d.ts.map +1 -0
  120. package/dist/animations/flip/types.d.ts +3 -0
  121. package/dist/animations/flip/types.d.ts.map +1 -0
  122. package/dist/animations/flip-in/flip-in.d.ts +5 -0
  123. package/dist/animations/flip-in/flip-in.d.ts.map +1 -0
  124. package/dist/animations/flip-in/index.d.ts +4 -0
  125. package/dist/animations/flip-in/index.d.ts.map +1 -0
  126. package/dist/animations/flip-in/presets.d.ts +22 -0
  127. package/dist/animations/flip-in/presets.d.ts.map +1 -0
  128. package/dist/animations/flip-in/types.d.ts +3 -0
  129. package/dist/animations/flip-in/types.d.ts.map +1 -0
  130. package/dist/animations/flip-in.js +24 -0
  131. package/dist/animations/flip-in.js.map +1 -0
  132. package/dist/animations/flip-in.mjs +21 -0
  133. package/dist/animations/flip-in.mjs.map +1 -0
  134. package/dist/animations/flip.js +25 -0
  135. package/dist/animations/flip.js.map +1 -0
  136. package/dist/animations/flip.mjs +22 -0
  137. package/dist/animations/flip.mjs.map +1 -0
  138. package/dist/animations/float/float.d.ts +5 -0
  139. package/dist/animations/float/float.d.ts.map +1 -0
  140. package/dist/animations/float/index.d.ts +4 -0
  141. package/dist/animations/float/index.d.ts.map +1 -0
  142. package/dist/animations/float/presets.d.ts +18 -0
  143. package/dist/animations/float/presets.d.ts.map +1 -0
  144. package/dist/animations/float/types.d.ts +3 -0
  145. package/dist/animations/float/types.d.ts.map +1 -0
  146. package/dist/animations/float.js +24 -0
  147. package/dist/animations/float.js.map +1 -0
  148. package/dist/animations/float.mjs +21 -0
  149. package/dist/animations/float.mjs.map +1 -0
  150. package/dist/animations/hover-lift/hover-lift.d.ts +5 -0
  151. package/dist/animations/hover-lift/hover-lift.d.ts.map +1 -0
  152. package/dist/animations/hover-lift/index.d.ts +4 -0
  153. package/dist/animations/hover-lift/index.d.ts.map +1 -0
  154. package/dist/animations/hover-lift/presets.d.ts +29 -0
  155. package/dist/animations/hover-lift/presets.d.ts.map +1 -0
  156. package/dist/animations/hover-lift/types.d.ts +3 -0
  157. package/dist/animations/hover-lift/types.d.ts.map +1 -0
  158. package/dist/animations/hover-lift.js +26 -0
  159. package/dist/animations/hover-lift.js.map +1 -0
  160. package/dist/animations/hover-lift.mjs +23 -0
  161. package/dist/animations/hover-lift.mjs.map +1 -0
  162. package/dist/animations/hover-scale/hover-scale.d.ts +5 -0
  163. package/dist/animations/hover-scale/hover-scale.d.ts.map +1 -0
  164. package/dist/animations/hover-scale/index.d.ts +4 -0
  165. package/dist/animations/hover-scale/index.d.ts.map +1 -0
  166. package/dist/animations/hover-scale/presets.d.ts +24 -0
  167. package/dist/animations/hover-scale/presets.d.ts.map +1 -0
  168. package/dist/animations/hover-scale/types.d.ts +3 -0
  169. package/dist/animations/hover-scale/types.d.ts.map +1 -0
  170. package/dist/animations/hover-scale.js +26 -0
  171. package/dist/animations/hover-scale.js.map +1 -0
  172. package/dist/animations/hover-scale.mjs +23 -0
  173. package/dist/animations/hover-scale.mjs.map +1 -0
  174. package/dist/animations/magnetic/index.d.ts +4 -0
  175. package/dist/animations/magnetic/index.d.ts.map +1 -0
  176. package/dist/animations/magnetic/magnetic.d.ts +5 -0
  177. package/dist/animations/magnetic/magnetic.d.ts.map +1 -0
  178. package/dist/animations/magnetic/presets.d.ts +32 -0
  179. package/dist/animations/magnetic/presets.d.ts.map +1 -0
  180. package/dist/animations/magnetic/types.d.ts +3 -0
  181. package/dist/animations/magnetic/types.d.ts.map +1 -0
  182. package/dist/animations/magnetic.js +26 -0
  183. package/dist/animations/magnetic.js.map +1 -0
  184. package/dist/animations/magnetic.mjs +23 -0
  185. package/dist/animations/magnetic.mjs.map +1 -0
  186. package/dist/animations/parallax/index.d.ts +4 -0
  187. package/dist/animations/parallax/index.d.ts.map +1 -0
  188. package/dist/animations/parallax/parallax.d.ts +5 -0
  189. package/dist/animations/parallax/parallax.d.ts.map +1 -0
  190. package/dist/animations/parallax/presets.d.ts +20 -0
  191. package/dist/animations/parallax/presets.d.ts.map +1 -0
  192. package/dist/animations/parallax/types.d.ts +3 -0
  193. package/dist/animations/parallax/types.d.ts.map +1 -0
  194. package/dist/animations/parallax.js +24 -0
  195. package/dist/animations/parallax.js.map +1 -0
  196. package/dist/animations/parallax.mjs +21 -0
  197. package/dist/animations/parallax.mjs.map +1 -0
  198. package/dist/animations/ping/index.d.ts +4 -0
  199. package/dist/animations/ping/index.d.ts.map +1 -0
  200. package/dist/animations/ping/ping.d.ts +5 -0
  201. package/dist/animations/ping/ping.d.ts.map +1 -0
  202. package/dist/animations/ping/presets.d.ts +21 -0
  203. package/dist/animations/ping/presets.d.ts.map +1 -0
  204. package/dist/animations/ping/types.d.ts +3 -0
  205. package/dist/animations/ping/types.d.ts.map +1 -0
  206. package/dist/animations/ping.js +25 -0
  207. package/dist/animations/ping.js.map +1 -0
  208. package/dist/animations/ping.mjs +22 -0
  209. package/dist/animations/ping.mjs.map +1 -0
  210. package/dist/animations/pop-in/index.d.ts +4 -0
  211. package/dist/animations/pop-in/index.d.ts.map +1 -0
  212. package/dist/animations/pop-in/pop-in.d.ts +5 -0
  213. package/dist/animations/pop-in/pop-in.d.ts.map +1 -0
  214. package/dist/animations/pop-in/presets.d.ts +19 -0
  215. package/dist/animations/pop-in/presets.d.ts.map +1 -0
  216. package/dist/animations/pop-in/types.d.ts +3 -0
  217. package/dist/animations/pop-in/types.d.ts.map +1 -0
  218. package/dist/animations/pop-in.js +24 -0
  219. package/dist/animations/pop-in.js.map +1 -0
  220. package/dist/animations/pop-in.mjs +21 -0
  221. package/dist/animations/pop-in.mjs.map +1 -0
  222. package/dist/animations/press/index.d.ts +4 -0
  223. package/dist/animations/press/index.d.ts.map +1 -0
  224. package/dist/animations/press/presets.d.ts +24 -0
  225. package/dist/animations/press/presets.d.ts.map +1 -0
  226. package/dist/animations/press/press.d.ts +5 -0
  227. package/dist/animations/press/press.d.ts.map +1 -0
  228. package/dist/animations/press/types.d.ts +3 -0
  229. package/dist/animations/press/types.d.ts.map +1 -0
  230. package/dist/animations/press.js +25 -0
  231. package/dist/animations/press.js.map +1 -0
  232. package/dist/animations/press.mjs +22 -0
  233. package/dist/animations/press.mjs.map +1 -0
  234. package/dist/animations/progress/index.d.ts +4 -0
  235. package/dist/animations/progress/index.d.ts.map +1 -0
  236. package/dist/animations/progress/presets.d.ts +19 -0
  237. package/dist/animations/progress/presets.d.ts.map +1 -0
  238. package/dist/animations/progress/progress.d.ts +5 -0
  239. package/dist/animations/progress/progress.d.ts.map +1 -0
  240. package/dist/animations/progress/types.d.ts +3 -0
  241. package/dist/animations/progress/types.d.ts.map +1 -0
  242. package/dist/animations/progress.js +24 -0
  243. package/dist/animations/progress.js.map +1 -0
  244. package/dist/animations/progress.mjs +21 -0
  245. package/dist/animations/progress.mjs.map +1 -0
  246. package/dist/animations/pulse/index.d.ts +4 -0
  247. package/dist/animations/pulse/index.d.ts.map +1 -0
  248. package/dist/animations/pulse/presets.d.ts +20 -0
  249. package/dist/animations/pulse/presets.d.ts.map +1 -0
  250. package/dist/animations/pulse/pulse.d.ts +5 -0
  251. package/dist/animations/pulse/pulse.d.ts.map +1 -0
  252. package/dist/animations/pulse/types.d.ts +3 -0
  253. package/dist/animations/pulse/types.d.ts.map +1 -0
  254. package/dist/animations/pulse.js +24 -0
  255. package/dist/animations/pulse.js.map +1 -0
  256. package/dist/animations/pulse.mjs +21 -0
  257. package/dist/animations/pulse.mjs.map +1 -0
  258. package/dist/animations/reorder/index.d.ts +4 -0
  259. package/dist/animations/reorder/index.d.ts.map +1 -0
  260. package/dist/animations/reorder/presets.d.ts +24 -0
  261. package/dist/animations/reorder/presets.d.ts.map +1 -0
  262. package/dist/animations/reorder/reorder.d.ts +5 -0
  263. package/dist/animations/reorder/reorder.d.ts.map +1 -0
  264. package/dist/animations/reorder/types.d.ts +3 -0
  265. package/dist/animations/reorder/types.d.ts.map +1 -0
  266. package/dist/animations/reorder.js +26 -0
  267. package/dist/animations/reorder.js.map +1 -0
  268. package/dist/animations/reorder.mjs +23 -0
  269. package/dist/animations/reorder.mjs.map +1 -0
  270. package/dist/animations/reveal-blur/index.d.ts +4 -0
  271. package/dist/animations/reveal-blur/index.d.ts.map +1 -0
  272. package/dist/animations/reveal-blur/presets.d.ts +22 -0
  273. package/dist/animations/reveal-blur/presets.d.ts.map +1 -0
  274. package/dist/animations/reveal-blur/reveal-blur.d.ts +5 -0
  275. package/dist/animations/reveal-blur/reveal-blur.d.ts.map +1 -0
  276. package/dist/animations/reveal-blur/types.d.ts +3 -0
  277. package/dist/animations/reveal-blur/types.d.ts.map +1 -0
  278. package/dist/animations/reveal-blur.js +24 -0
  279. package/dist/animations/reveal-blur.js.map +1 -0
  280. package/dist/animations/reveal-blur.mjs +21 -0
  281. package/dist/animations/reveal-blur.mjs.map +1 -0
  282. package/dist/animations/reveal-down/index.d.ts +4 -0
  283. package/dist/animations/reveal-down/index.d.ts.map +1 -0
  284. package/dist/animations/reveal-down/presets.d.ts +22 -0
  285. package/dist/animations/reveal-down/presets.d.ts.map +1 -0
  286. package/dist/animations/reveal-down/reveal-down.d.ts +5 -0
  287. package/dist/animations/reveal-down/reveal-down.d.ts.map +1 -0
  288. package/dist/animations/reveal-down/types.d.ts +3 -0
  289. package/dist/animations/reveal-down/types.d.ts.map +1 -0
  290. package/dist/animations/reveal-down.js +24 -0
  291. package/dist/animations/reveal-down.js.map +1 -0
  292. package/dist/animations/reveal-down.mjs +21 -0
  293. package/dist/animations/reveal-down.mjs.map +1 -0
  294. package/dist/animations/reveal-left/index.d.ts +4 -0
  295. package/dist/animations/reveal-left/index.d.ts.map +1 -0
  296. package/dist/animations/reveal-left/presets.d.ts +22 -0
  297. package/dist/animations/reveal-left/presets.d.ts.map +1 -0
  298. package/dist/animations/reveal-left/reveal-left.d.ts +5 -0
  299. package/dist/animations/reveal-left/reveal-left.d.ts.map +1 -0
  300. package/dist/animations/reveal-left/types.d.ts +3 -0
  301. package/dist/animations/reveal-left/types.d.ts.map +1 -0
  302. package/dist/animations/reveal-left.js +24 -0
  303. package/dist/animations/reveal-left.js.map +1 -0
  304. package/dist/animations/reveal-left.mjs +21 -0
  305. package/dist/animations/reveal-left.mjs.map +1 -0
  306. package/dist/animations/reveal-right/index.d.ts +4 -0
  307. package/dist/animations/reveal-right/index.d.ts.map +1 -0
  308. package/dist/animations/reveal-right/presets.d.ts +22 -0
  309. package/dist/animations/reveal-right/presets.d.ts.map +1 -0
  310. package/dist/animations/reveal-right/reveal-right.d.ts +5 -0
  311. package/dist/animations/reveal-right/reveal-right.d.ts.map +1 -0
  312. package/dist/animations/reveal-right/types.d.ts +3 -0
  313. package/dist/animations/reveal-right/types.d.ts.map +1 -0
  314. package/dist/animations/reveal-right.js +24 -0
  315. package/dist/animations/reveal-right.js.map +1 -0
  316. package/dist/animations/reveal-right.mjs +21 -0
  317. package/dist/animations/reveal-right.mjs.map +1 -0
  318. package/dist/animations/reveal-up/index.d.ts +4 -0
  319. package/dist/animations/reveal-up/index.d.ts.map +1 -0
  320. package/dist/animations/reveal-up/presets.d.ts +22 -0
  321. package/dist/animations/reveal-up/presets.d.ts.map +1 -0
  322. package/dist/animations/reveal-up/reveal-up.d.ts +5 -0
  323. package/dist/animations/reveal-up/reveal-up.d.ts.map +1 -0
  324. package/dist/animations/reveal-up/types.d.ts +3 -0
  325. package/dist/animations/reveal-up/types.d.ts.map +1 -0
  326. package/dist/animations/reveal-up.js +24 -0
  327. package/dist/animations/reveal-up.js.map +1 -0
  328. package/dist/animations/reveal-up.mjs +21 -0
  329. package/dist/animations/reveal-up.mjs.map +1 -0
  330. package/dist/animations/rotate-in/index.d.ts +4 -0
  331. package/dist/animations/rotate-in/index.d.ts.map +1 -0
  332. package/dist/animations/rotate-in/presets.d.ts +22 -0
  333. package/dist/animations/rotate-in/presets.d.ts.map +1 -0
  334. package/dist/animations/rotate-in/rotate-in.d.ts +5 -0
  335. package/dist/animations/rotate-in/rotate-in.d.ts.map +1 -0
  336. package/dist/animations/rotate-in/types.d.ts +3 -0
  337. package/dist/animations/rotate-in/types.d.ts.map +1 -0
  338. package/dist/animations/rotate-in.js +24 -0
  339. package/dist/animations/rotate-in.js.map +1 -0
  340. package/dist/animations/rotate-in.mjs +21 -0
  341. package/dist/animations/rotate-in.mjs.map +1 -0
  342. package/dist/animations/scale-in/index.d.ts +4 -0
  343. package/dist/animations/scale-in/index.d.ts.map +1 -0
  344. package/dist/animations/scale-in/presets.d.ts +19 -0
  345. package/dist/animations/scale-in/presets.d.ts.map +1 -0
  346. package/dist/animations/scale-in/scale-in.d.ts +5 -0
  347. package/dist/animations/scale-in/scale-in.d.ts.map +1 -0
  348. package/dist/animations/scale-in/types.d.ts +3 -0
  349. package/dist/animations/scale-in/types.d.ts.map +1 -0
  350. package/dist/animations/scale-in.js +24 -0
  351. package/dist/animations/scale-in.js.map +1 -0
  352. package/dist/animations/scale-in.mjs +21 -0
  353. package/dist/animations/scale-in.mjs.map +1 -0
  354. package/dist/animations/scale-out/index.d.ts +4 -0
  355. package/dist/animations/scale-out/index.d.ts.map +1 -0
  356. package/dist/animations/scale-out/presets.d.ts +19 -0
  357. package/dist/animations/scale-out/presets.d.ts.map +1 -0
  358. package/dist/animations/scale-out/scale-out.d.ts +5 -0
  359. package/dist/animations/scale-out/scale-out.d.ts.map +1 -0
  360. package/dist/animations/scale-out/types.d.ts +3 -0
  361. package/dist/animations/scale-out/types.d.ts.map +1 -0
  362. package/dist/animations/scale-out.js +24 -0
  363. package/dist/animations/scale-out.js.map +1 -0
  364. package/dist/animations/scale-out.mjs +21 -0
  365. package/dist/animations/scale-out.mjs.map +1 -0
  366. package/dist/animations/shake/index.d.ts +4 -0
  367. package/dist/animations/shake/index.d.ts.map +1 -0
  368. package/dist/animations/shake/presets.d.ts +19 -0
  369. package/dist/animations/shake/presets.d.ts.map +1 -0
  370. package/dist/animations/shake/shake.d.ts +5 -0
  371. package/dist/animations/shake/shake.d.ts.map +1 -0
  372. package/dist/animations/shake/types.d.ts +3 -0
  373. package/dist/animations/shake/types.d.ts.map +1 -0
  374. package/dist/animations/shake.js +29 -0
  375. package/dist/animations/shake.js.map +1 -0
  376. package/dist/animations/shake.mjs +26 -0
  377. package/dist/animations/shake.mjs.map +1 -0
  378. package/dist/animations/shared/create-motion-animation.d.ts +6 -0
  379. package/dist/animations/shared/create-motion-animation.d.ts.map +1 -0
  380. package/dist/animations/shared/index.d.ts +3 -0
  381. package/dist/animations/shared/index.d.ts.map +1 -0
  382. package/dist/animations/shared/types.d.ts +28 -0
  383. package/dist/animations/shared/types.d.ts.map +1 -0
  384. package/dist/animations/skeleton-shimmer/index.d.ts +4 -0
  385. package/dist/animations/skeleton-shimmer/index.d.ts.map +1 -0
  386. package/dist/animations/skeleton-shimmer/presets.d.ts +19 -0
  387. package/dist/animations/skeleton-shimmer/presets.d.ts.map +1 -0
  388. package/dist/animations/skeleton-shimmer/skeleton-shimmer.d.ts +5 -0
  389. package/dist/animations/skeleton-shimmer/skeleton-shimmer.d.ts.map +1 -0
  390. package/dist/animations/skeleton-shimmer/types.d.ts +3 -0
  391. package/dist/animations/skeleton-shimmer/types.d.ts.map +1 -0
  392. package/dist/animations/skeleton-shimmer.js +24 -0
  393. package/dist/animations/skeleton-shimmer.js.map +1 -0
  394. package/dist/animations/skeleton-shimmer.mjs +21 -0
  395. package/dist/animations/skeleton-shimmer.mjs.map +1 -0
  396. package/dist/animations/slide-down/index.d.ts +4 -0
  397. package/dist/animations/slide-down/index.d.ts.map +1 -0
  398. package/dist/animations/slide-down/presets.d.ts +16 -0
  399. package/dist/animations/slide-down/presets.d.ts.map +1 -0
  400. package/dist/animations/slide-down/slide-down.d.ts +5 -0
  401. package/dist/animations/slide-down/slide-down.d.ts.map +1 -0
  402. package/dist/animations/slide-down/types.d.ts +3 -0
  403. package/dist/animations/slide-down/types.d.ts.map +1 -0
  404. package/dist/animations/slide-down.js +24 -0
  405. package/dist/animations/slide-down.js.map +1 -0
  406. package/dist/animations/slide-down.mjs +21 -0
  407. package/dist/animations/slide-down.mjs.map +1 -0
  408. package/dist/animations/slide-left/index.d.ts +4 -0
  409. package/dist/animations/slide-left/index.d.ts.map +1 -0
  410. package/dist/animations/slide-left/presets.d.ts +16 -0
  411. package/dist/animations/slide-left/presets.d.ts.map +1 -0
  412. package/dist/animations/slide-left/slide-left.d.ts +5 -0
  413. package/dist/animations/slide-left/slide-left.d.ts.map +1 -0
  414. package/dist/animations/slide-left/types.d.ts +3 -0
  415. package/dist/animations/slide-left/types.d.ts.map +1 -0
  416. package/dist/animations/slide-left.js +24 -0
  417. package/dist/animations/slide-left.js.map +1 -0
  418. package/dist/animations/slide-left.mjs +21 -0
  419. package/dist/animations/slide-left.mjs.map +1 -0
  420. package/dist/animations/slide-right/index.d.ts +4 -0
  421. package/dist/animations/slide-right/index.d.ts.map +1 -0
  422. package/dist/animations/slide-right/presets.d.ts +16 -0
  423. package/dist/animations/slide-right/presets.d.ts.map +1 -0
  424. package/dist/animations/slide-right/slide-right.d.ts +5 -0
  425. package/dist/animations/slide-right/slide-right.d.ts.map +1 -0
  426. package/dist/animations/slide-right/types.d.ts +3 -0
  427. package/dist/animations/slide-right/types.d.ts.map +1 -0
  428. package/dist/animations/slide-right.js +24 -0
  429. package/dist/animations/slide-right.js.map +1 -0
  430. package/dist/animations/slide-right.mjs +21 -0
  431. package/dist/animations/slide-right.mjs.map +1 -0
  432. package/dist/animations/slide-up/index.d.ts +4 -0
  433. package/dist/animations/slide-up/index.d.ts.map +1 -0
  434. package/dist/animations/slide-up/presets.d.ts +16 -0
  435. package/dist/animations/slide-up/presets.d.ts.map +1 -0
  436. package/dist/animations/slide-up/slide-up.d.ts +5 -0
  437. package/dist/animations/slide-up/slide-up.d.ts.map +1 -0
  438. package/dist/animations/slide-up/types.d.ts +3 -0
  439. package/dist/animations/slide-up/types.d.ts.map +1 -0
  440. package/dist/animations/slide-up.js +24 -0
  441. package/dist/animations/slide-up.js.map +1 -0
  442. package/dist/animations/slide-up.mjs +21 -0
  443. package/dist/animations/slide-up.mjs.map +1 -0
  444. package/dist/animations/spin/index.d.ts +4 -0
  445. package/dist/animations/spin/index.d.ts.map +1 -0
  446. package/dist/animations/spin/presets.d.ts +18 -0
  447. package/dist/animations/spin/presets.d.ts.map +1 -0
  448. package/dist/animations/spin/spin.d.ts +5 -0
  449. package/dist/animations/spin/spin.d.ts.map +1 -0
  450. package/dist/animations/spin/types.d.ts +3 -0
  451. package/dist/animations/spin/types.d.ts.map +1 -0
  452. package/dist/animations/spin.js +20 -0
  453. package/dist/animations/spin.js.map +1 -0
  454. package/dist/animations/spin.mjs +17 -0
  455. package/dist/animations/spin.mjs.map +1 -0
  456. package/dist/animations/text-reveal/index.d.ts +4 -0
  457. package/dist/animations/text-reveal/index.d.ts.map +1 -0
  458. package/dist/animations/text-reveal/presets.d.ts +22 -0
  459. package/dist/animations/text-reveal/presets.d.ts.map +1 -0
  460. package/dist/animations/text-reveal/text-reveal.d.ts +5 -0
  461. package/dist/animations/text-reveal/text-reveal.d.ts.map +1 -0
  462. package/dist/animations/text-reveal/types.d.ts +3 -0
  463. package/dist/animations/text-reveal/types.d.ts.map +1 -0
  464. package/dist/animations/text-reveal.js +24 -0
  465. package/dist/animations/text-reveal.js.map +1 -0
  466. package/dist/animations/text-reveal.mjs +21 -0
  467. package/dist/animations/text-reveal.mjs.map +1 -0
  468. package/dist/animations/text-shimmer/index.d.ts +4 -0
  469. package/dist/animations/text-shimmer/index.d.ts.map +1 -0
  470. package/dist/animations/text-shimmer/presets.d.ts +19 -0
  471. package/dist/animations/text-shimmer/presets.d.ts.map +1 -0
  472. package/dist/animations/text-shimmer/text-shimmer.d.ts +5 -0
  473. package/dist/animations/text-shimmer/text-shimmer.d.ts.map +1 -0
  474. package/dist/animations/text-shimmer/types.d.ts +3 -0
  475. package/dist/animations/text-shimmer/types.d.ts.map +1 -0
  476. package/dist/animations/text-shimmer.js +24 -0
  477. package/dist/animations/text-shimmer.js.map +1 -0
  478. package/dist/animations/text-shimmer.mjs +21 -0
  479. package/dist/animations/text-shimmer.mjs.map +1 -0
  480. package/dist/animations/tilt/index.d.ts +4 -0
  481. package/dist/animations/tilt/index.d.ts.map +1 -0
  482. package/dist/animations/tilt/presets.d.ts +24 -0
  483. package/dist/animations/tilt/presets.d.ts.map +1 -0
  484. package/dist/animations/tilt/tilt.d.ts +5 -0
  485. package/dist/animations/tilt/tilt.d.ts.map +1 -0
  486. package/dist/animations/tilt/types.d.ts +3 -0
  487. package/dist/animations/tilt/types.d.ts.map +1 -0
  488. package/dist/animations/tilt.js +24 -0
  489. package/dist/animations/tilt.js.map +1 -0
  490. package/dist/animations/tilt.mjs +21 -0
  491. package/dist/animations/tilt.mjs.map +1 -0
  492. package/dist/animations/wiggle/index.d.ts +4 -0
  493. package/dist/animations/wiggle/index.d.ts.map +1 -0
  494. package/dist/animations/wiggle/presets.d.ts +19 -0
  495. package/dist/animations/wiggle/presets.d.ts.map +1 -0
  496. package/dist/animations/wiggle/types.d.ts +3 -0
  497. package/dist/animations/wiggle/types.d.ts.map +1 -0
  498. package/dist/animations/wiggle/wiggle.d.ts +5 -0
  499. package/dist/animations/wiggle/wiggle.d.ts.map +1 -0
  500. package/dist/animations/wiggle.js +29 -0
  501. package/dist/animations/wiggle.js.map +1 -0
  502. package/dist/animations/wiggle.mjs +26 -0
  503. package/dist/animations/wiggle.mjs.map +1 -0
  504. package/dist/charts/shared/variants.d.ts +1 -1
  505. package/dist/{chunk-RKX5MERK.js → chunk-2F7P4EJQ.js} +2 -2
  506. package/dist/chunk-2F7P4EJQ.js.map +1 -0
  507. package/dist/{chunk-MEAVYU2Y.mjs → chunk-2ZKW2E7B.mjs} +10 -3
  508. package/dist/chunk-2ZKW2E7B.mjs.map +1 -0
  509. package/dist/{chunk-CL3VH223.mjs → chunk-3F4FF2H4.mjs} +3 -9
  510. package/dist/chunk-3F4FF2H4.mjs.map +1 -0
  511. package/dist/{chunk-LMIL2R4R.js → chunk-3J3FYIG3.js} +10 -3
  512. package/dist/chunk-3J3FYIG3.js.map +1 -0
  513. package/dist/{chunk-ABOZ5QIX.js → chunk-466QDL44.js} +5 -12
  514. package/dist/chunk-466QDL44.js.map +1 -0
  515. package/dist/chunk-4ZP444GA.mjs +19 -0
  516. package/dist/chunk-4ZP444GA.mjs.map +1 -0
  517. package/dist/chunk-AACGI7FX.mjs +67 -0
  518. package/dist/chunk-AACGI7FX.mjs.map +1 -0
  519. package/dist/{chunk-XXRDLZW7.mjs → chunk-BJSWQQSC.mjs} +2 -2
  520. package/dist/{chunk-XXRDLZW7.mjs.map → chunk-BJSWQQSC.mjs.map} +1 -1
  521. package/dist/{chunk-HDO5ZM2S.mjs → chunk-CIEZFHCO.mjs} +3 -10
  522. package/dist/chunk-CIEZFHCO.mjs.map +1 -0
  523. package/dist/{chunk-VYI3GS2C.mjs → chunk-CJXGDY7A.mjs} +10 -3
  524. package/dist/chunk-CJXGDY7A.mjs.map +1 -0
  525. package/dist/{chunk-7TGUGTTQ.mjs → chunk-ECLHBSC6.mjs} +2 -2
  526. package/dist/chunk-ECLHBSC6.mjs.map +1 -0
  527. package/dist/{chunk-SFRS4EZ5.mjs → chunk-IM6KN77X.mjs} +3 -10
  528. package/dist/chunk-IM6KN77X.mjs.map +1 -0
  529. package/dist/{chunk-QQ6F4LZK.js → chunk-JFS5PJSH.js} +5 -5
  530. package/dist/{chunk-QQ6F4LZK.js.map → chunk-JFS5PJSH.js.map} +1 -1
  531. package/dist/chunk-MUP7DVQR.js +26 -0
  532. package/dist/chunk-MUP7DVQR.js.map +1 -0
  533. package/dist/{chunk-4OCTFG3W.js → chunk-NSJ6KGW2.js} +2 -2
  534. package/dist/{chunk-4OCTFG3W.js.map → chunk-NSJ6KGW2.js.map} +1 -1
  535. package/dist/chunk-ODZM25II.js +69 -0
  536. package/dist/chunk-ODZM25II.js.map +1 -0
  537. package/dist/{chunk-DN7TYUJ6.js → chunk-RFT2FLQT.js} +10 -3
  538. package/dist/chunk-RFT2FLQT.js.map +1 -0
  539. package/dist/{chunk-PMALYOPA.js → chunk-UY65KX3M.js} +3 -10
  540. package/dist/chunk-UY65KX3M.js.map +1 -0
  541. package/dist/{chunk-ASJQP53L.mjs → chunk-VARQ7W4G.mjs} +3 -3
  542. package/dist/{chunk-ASJQP53L.mjs.map → chunk-VARQ7W4G.mjs.map} +1 -1
  543. package/dist/{chunk-KTLJEPLF.js → chunk-VHVQELWF.js} +3 -9
  544. package/dist/chunk-VHVQELWF.js.map +1 -0
  545. package/dist/design-system/copy-button.d.ts.map +1 -1
  546. package/dist/design-system/kbd.d.ts.map +1 -1
  547. package/dist/design-system/tokens.js +32 -0
  548. package/dist/design-system/tokens.js.map +1 -0
  549. package/dist/design-system/tokens.mjs +3 -0
  550. package/dist/design-system/tokens.mjs.map +1 -0
  551. package/dist/hooks/useTableSort/index.d.ts +1 -1
  552. package/dist/hooks/useTableSort/index.d.ts.map +1 -1
  553. package/dist/ui/accordion/variants.d.ts +2 -2
  554. package/dist/ui/alert/animated.js.map +1 -1
  555. package/dist/ui/alert/animated.mjs.map +1 -1
  556. package/dist/ui/animated-number/animated-number.d.ts.map +1 -1
  557. package/dist/ui/animated-number/types.d.ts.map +1 -1
  558. package/dist/ui/animated-number/variants.d.ts.map +1 -1
  559. package/dist/ui/animated-number.js.map +1 -1
  560. package/dist/ui/animated-number.mjs.map +1 -1
  561. package/dist/ui/badge/variants.d.ts +1 -1
  562. package/dist/ui/buttons/animated.js +4 -3
  563. package/dist/ui/buttons/animated.js.map +1 -1
  564. package/dist/ui/buttons/animated.mjs +2 -1
  565. package/dist/ui/buttons/animated.mjs.map +1 -1
  566. package/dist/ui/buttons/variants.d.ts +1 -1
  567. package/dist/ui/buttons.js +5 -4
  568. package/dist/ui/buttons.mjs +3 -2
  569. package/dist/ui/card/variants.d.ts +1 -1
  570. package/dist/ui/checkbox/animated/checkbox-animated.d.ts.map +1 -1
  571. package/dist/ui/checkbox/animated.js.map +1 -1
  572. package/dist/ui/checkbox/animated.mjs.map +1 -1
  573. package/dist/ui/checkbox/checkbox-base.d.ts.map +1 -1
  574. package/dist/ui/checkbox/types.d.ts.map +1 -1
  575. package/dist/ui/checkbox.js +1 -8
  576. package/dist/ui/checkbox.js.map +1 -1
  577. package/dist/ui/checkbox.mjs +1 -8
  578. package/dist/ui/checkbox.mjs.map +1 -1
  579. package/dist/ui/command/animated.js +2 -2
  580. package/dist/ui/command/animated.mjs +1 -1
  581. package/dist/ui/command/index.d.ts +1 -1
  582. package/dist/ui/command/index.d.ts.map +1 -1
  583. package/dist/ui/command/types.d.ts.map +1 -1
  584. package/dist/ui/command.js +15 -15
  585. package/dist/ui/command.mjs +2 -2
  586. package/dist/ui/context-menu/variants.d.ts +2 -2
  587. package/dist/ui/copy-button/animated.js +2 -2
  588. package/dist/ui/copy-button/animated.mjs +1 -1
  589. package/dist/ui/copy-button/types.d.ts.map +1 -1
  590. package/dist/ui/copy-button/variants.d.ts +1 -1
  591. package/dist/ui/copy-button.js +3 -3
  592. package/dist/ui/copy-button.mjs +2 -2
  593. package/dist/ui/drawer/animated.js +11 -11
  594. package/dist/ui/drawer/animated.mjs +2 -2
  595. package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
  596. package/dist/ui/drawer/variants.d.ts +1 -1
  597. package/dist/ui/drawer.js +11 -11
  598. package/dist/ui/drawer.mjs +1 -1
  599. package/dist/ui/dropdown/variants.d.ts +4 -4
  600. package/dist/ui/dropdown.js.map +1 -1
  601. package/dist/ui/dropdown.mjs.map +1 -1
  602. package/dist/ui/dynamic-stepper.js +5 -4
  603. package/dist/ui/dynamic-stepper.js.map +1 -1
  604. package/dist/ui/dynamic-stepper.mjs +3 -2
  605. package/dist/ui/dynamic-stepper.mjs.map +1 -1
  606. package/dist/ui/inputs/variants.d.ts +1 -1
  607. package/dist/ui/kbd/animated/kbd-animated.d.ts.map +1 -1
  608. package/dist/ui/kbd/animated.js +6 -3
  609. package/dist/ui/kbd/animated.js.map +1 -1
  610. package/dist/ui/kbd/animated.mjs +5 -2
  611. package/dist/ui/kbd/animated.mjs.map +1 -1
  612. package/dist/ui/kbd/kbd-base.d.ts.map +1 -1
  613. package/dist/ui/kbd/types.d.ts.map +1 -1
  614. package/dist/ui/kbd/variants.d.ts +1 -1
  615. package/dist/ui/kbd.js +4 -4
  616. package/dist/ui/kbd.mjs +2 -2
  617. package/dist/ui/marquee/variants.d.ts +1 -1
  618. package/dist/ui/otp-input/variants.d.ts +1 -1
  619. package/dist/ui/pagination/variants.d.ts +1 -1
  620. package/dist/ui/pagination.js +5 -4
  621. package/dist/ui/pagination.js.map +1 -1
  622. package/dist/ui/pagination.mjs +2 -1
  623. package/dist/ui/pagination.mjs.map +1 -1
  624. package/dist/ui/popover/animated.js +4 -4
  625. package/dist/ui/popover/animated.mjs +1 -1
  626. package/dist/ui/popover/popover-base.d.ts.map +1 -1
  627. package/dist/ui/popover/types.d.ts.map +1 -1
  628. package/dist/ui/popover/variants.d.ts +1 -1
  629. package/dist/ui/popover.js +7 -7
  630. package/dist/ui/popover.mjs +1 -1
  631. package/dist/ui/progress/variants.d.ts +1 -1
  632. package/dist/ui/radio-group/animated/index.d.ts +1 -1
  633. package/dist/ui/radio-group/animated/index.d.ts.map +1 -1
  634. package/dist/ui/radio-group/animated/radio-group-animated.d.ts.map +1 -1
  635. package/dist/ui/radio-group/animated.js.map +1 -1
  636. package/dist/ui/radio-group/animated.mjs.map +1 -1
  637. package/dist/ui/radio-group/radio-group.d.ts.map +1 -1
  638. package/dist/ui/radio-group.js.map +1 -1
  639. package/dist/ui/radio-group.mjs.map +1 -1
  640. package/dist/ui/rating/variants.d.ts +1 -1
  641. package/dist/ui/scroll-area/variants.d.ts +1 -1
  642. package/dist/ui/select/variants.d.ts +4 -4
  643. package/dist/ui/stepper/variants.d.ts +1 -1
  644. package/dist/ui/timeline/animated/index.d.ts +1 -1
  645. package/dist/ui/timeline/animated/index.d.ts.map +1 -1
  646. package/dist/ui/timeline/animated/timeline-item-animated.d.ts.map +1 -1
  647. package/dist/ui/timeline/animated.js.map +1 -1
  648. package/dist/ui/timeline/animated.mjs.map +1 -1
  649. package/dist/ui/timeline/types.d.ts.map +1 -1
  650. package/dist/ui/toggle/animated/toggle-animated.d.ts.map +1 -1
  651. package/dist/ui/toggle/animated.js +12 -5
  652. package/dist/ui/toggle/animated.js.map +1 -1
  653. package/dist/ui/toggle/animated.mjs +9 -2
  654. package/dist/ui/toggle/animated.mjs.map +1 -1
  655. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  656. package/dist/ui/toggle.js +4 -4
  657. package/dist/ui/toggle.mjs +2 -2
  658. package/dist/ui/tooltip/variants.d.ts +1 -1
  659. package/dist/ui/tree-view/variants.d.ts +2 -2
  660. package/dist/ui/typography/variants.d.ts +2 -2
  661. package/package.json +14 -2
  662. package/src/animations/animations.test.tsx +129 -0
  663. package/src/animations/blur-in/blur-in.tsx +11 -0
  664. package/src/animations/blur-in/index.ts +5 -0
  665. package/src/animations/blur-in/presets.ts +8 -0
  666. package/src/animations/blur-in/types.ts +3 -0
  667. package/src/animations/blur-out/blur-out.tsx +11 -0
  668. package/src/animations/blur-out/index.ts +5 -0
  669. package/src/animations/blur-out/presets.ts +8 -0
  670. package/src/animations/blur-out/types.ts +3 -0
  671. package/src/animations/bounce/bounce.tsx +11 -0
  672. package/src/animations/bounce/index.ts +5 -0
  673. package/src/animations/bounce/presets.ts +13 -0
  674. package/src/animations/bounce/types.ts +3 -0
  675. package/src/animations/fade-down/fade-down.tsx +11 -0
  676. package/src/animations/fade-down/index.ts +5 -0
  677. package/src/animations/fade-down/presets.ts +8 -0
  678. package/src/animations/fade-down/types.ts +3 -0
  679. package/src/animations/fade-in/fade-in.tsx +11 -0
  680. package/src/animations/fade-in/index.ts +5 -0
  681. package/src/animations/fade-in/presets.ts +8 -0
  682. package/src/animations/fade-in/types.ts +3 -0
  683. package/src/animations/fade-left/fade-left.tsx +11 -0
  684. package/src/animations/fade-left/index.ts +5 -0
  685. package/src/animations/fade-left/presets.ts +8 -0
  686. package/src/animations/fade-left/types.ts +3 -0
  687. package/src/animations/fade-out/fade-out.tsx +11 -0
  688. package/src/animations/fade-out/index.ts +5 -0
  689. package/src/animations/fade-out/presets.ts +8 -0
  690. package/src/animations/fade-out/types.ts +3 -0
  691. package/src/animations/fade-right/fade-right.tsx +11 -0
  692. package/src/animations/fade-right/index.ts +5 -0
  693. package/src/animations/fade-right/presets.ts +8 -0
  694. package/src/animations/fade-right/types.ts +3 -0
  695. package/src/animations/fade-up/fade-up.tsx +11 -0
  696. package/src/animations/fade-up/index.ts +5 -0
  697. package/src/animations/fade-up/presets.ts +8 -0
  698. package/src/animations/fade-up/types.ts +3 -0
  699. package/src/animations/flip/flip.tsx +7 -0
  700. package/src/animations/flip/index.ts +5 -0
  701. package/src/animations/flip/presets.ts +13 -0
  702. package/src/animations/flip/types.ts +3 -0
  703. package/src/animations/flip-in/flip-in.tsx +11 -0
  704. package/src/animations/flip-in/index.ts +5 -0
  705. package/src/animations/flip-in/presets.ts +8 -0
  706. package/src/animations/flip-in/types.ts +3 -0
  707. package/src/animations/float/float.tsx +11 -0
  708. package/src/animations/float/index.ts +5 -0
  709. package/src/animations/float/presets.ts +8 -0
  710. package/src/animations/float/types.ts +3 -0
  711. package/src/animations/hover-lift/hover-lift.tsx +11 -0
  712. package/src/animations/hover-lift/index.ts +5 -0
  713. package/src/animations/hover-lift/presets.ts +10 -0
  714. package/src/animations/hover-lift/types.ts +3 -0
  715. package/src/animations/hover-scale/hover-scale.tsx +11 -0
  716. package/src/animations/hover-scale/index.ts +5 -0
  717. package/src/animations/hover-scale/presets.ts +10 -0
  718. package/src/animations/hover-scale/types.ts +3 -0
  719. package/src/animations/magnetic/index.ts +5 -0
  720. package/src/animations/magnetic/magnetic.tsx +11 -0
  721. package/src/animations/magnetic/presets.ts +10 -0
  722. package/src/animations/magnetic/types.ts +3 -0
  723. package/src/animations/parallax/index.ts +5 -0
  724. package/src/animations/parallax/parallax.tsx +11 -0
  725. package/src/animations/parallax/presets.ts +8 -0
  726. package/src/animations/parallax/types.ts +3 -0
  727. package/src/animations/ping/index.ts +5 -0
  728. package/src/animations/ping/ping.tsx +7 -0
  729. package/src/animations/ping/presets.ts +13 -0
  730. package/src/animations/ping/types.ts +3 -0
  731. package/src/animations/pop-in/index.ts +5 -0
  732. package/src/animations/pop-in/pop-in.tsx +11 -0
  733. package/src/animations/pop-in/presets.ts +8 -0
  734. package/src/animations/pop-in/types.ts +3 -0
  735. package/src/animations/press/index.ts +5 -0
  736. package/src/animations/press/presets.ts +9 -0
  737. package/src/animations/press/press.tsx +11 -0
  738. package/src/animations/press/types.ts +3 -0
  739. package/src/animations/progress/index.ts +5 -0
  740. package/src/animations/progress/presets.ts +8 -0
  741. package/src/animations/progress/progress.tsx +11 -0
  742. package/src/animations/progress/types.ts +3 -0
  743. package/src/animations/pulse/index.ts +5 -0
  744. package/src/animations/pulse/presets.ts +8 -0
  745. package/src/animations/pulse/pulse.tsx +11 -0
  746. package/src/animations/pulse/types.ts +3 -0
  747. package/src/animations/reorder/index.ts +5 -0
  748. package/src/animations/reorder/presets.ts +10 -0
  749. package/src/animations/reorder/reorder.tsx +11 -0
  750. package/src/animations/reorder/types.ts +3 -0
  751. package/src/animations/reveal-blur/index.ts +5 -0
  752. package/src/animations/reveal-blur/presets.ts +8 -0
  753. package/src/animations/reveal-blur/reveal-blur.tsx +11 -0
  754. package/src/animations/reveal-blur/types.ts +3 -0
  755. package/src/animations/reveal-down/index.ts +5 -0
  756. package/src/animations/reveal-down/presets.ts +8 -0
  757. package/src/animations/reveal-down/reveal-down.tsx +11 -0
  758. package/src/animations/reveal-down/types.ts +3 -0
  759. package/src/animations/reveal-left/index.ts +5 -0
  760. package/src/animations/reveal-left/presets.ts +8 -0
  761. package/src/animations/reveal-left/reveal-left.tsx +11 -0
  762. package/src/animations/reveal-left/types.ts +3 -0
  763. package/src/animations/reveal-right/index.ts +5 -0
  764. package/src/animations/reveal-right/presets.ts +8 -0
  765. package/src/animations/reveal-right/reveal-right.tsx +11 -0
  766. package/src/animations/reveal-right/types.ts +3 -0
  767. package/src/animations/reveal-up/index.ts +5 -0
  768. package/src/animations/reveal-up/presets.ts +8 -0
  769. package/src/animations/reveal-up/reveal-up.tsx +11 -0
  770. package/src/animations/reveal-up/types.ts +3 -0
  771. package/src/animations/rotate-in/index.ts +5 -0
  772. package/src/animations/rotate-in/presets.ts +8 -0
  773. package/src/animations/rotate-in/rotate-in.tsx +11 -0
  774. package/src/animations/rotate-in/types.ts +3 -0
  775. package/src/animations/scale-in/index.ts +5 -0
  776. package/src/animations/scale-in/presets.ts +8 -0
  777. package/src/animations/scale-in/scale-in.tsx +11 -0
  778. package/src/animations/scale-in/types.ts +3 -0
  779. package/src/animations/scale-out/index.ts +5 -0
  780. package/src/animations/scale-out/presets.ts +8 -0
  781. package/src/animations/scale-out/scale-out.tsx +11 -0
  782. package/src/animations/scale-out/types.ts +3 -0
  783. package/src/animations/shake/index.ts +5 -0
  784. package/src/animations/shake/presets.ts +13 -0
  785. package/src/animations/shake/shake.tsx +11 -0
  786. package/src/animations/shake/types.ts +3 -0
  787. package/src/animations/shared/create-motion-animation.tsx +89 -0
  788. package/src/animations/shared/index.ts +2 -0
  789. package/src/animations/shared/types.ts +34 -0
  790. package/src/animations/skeleton-shimmer/index.ts +5 -0
  791. package/src/animations/skeleton-shimmer/presets.ts +8 -0
  792. package/src/animations/skeleton-shimmer/skeleton-shimmer.tsx +11 -0
  793. package/src/animations/skeleton-shimmer/types.ts +3 -0
  794. package/src/animations/slide-down/index.ts +5 -0
  795. package/src/animations/slide-down/presets.ts +8 -0
  796. package/src/animations/slide-down/slide-down.tsx +11 -0
  797. package/src/animations/slide-down/types.ts +3 -0
  798. package/src/animations/slide-left/index.ts +5 -0
  799. package/src/animations/slide-left/presets.ts +8 -0
  800. package/src/animations/slide-left/slide-left.tsx +11 -0
  801. package/src/animations/slide-left/types.ts +3 -0
  802. package/src/animations/slide-right/index.ts +5 -0
  803. package/src/animations/slide-right/presets.ts +8 -0
  804. package/src/animations/slide-right/slide-right.tsx +11 -0
  805. package/src/animations/slide-right/types.ts +3 -0
  806. package/src/animations/slide-up/index.ts +5 -0
  807. package/src/animations/slide-up/presets.ts +8 -0
  808. package/src/animations/slide-up/slide-up.tsx +11 -0
  809. package/src/animations/slide-up/types.ts +3 -0
  810. package/src/animations/spin/index.ts +5 -0
  811. package/src/animations/spin/presets.ts +8 -0
  812. package/src/animations/spin/spin.tsx +7 -0
  813. package/src/animations/spin/types.ts +3 -0
  814. package/src/animations/text-reveal/index.ts +5 -0
  815. package/src/animations/text-reveal/presets.ts +8 -0
  816. package/src/animations/text-reveal/text-reveal.tsx +11 -0
  817. package/src/animations/text-reveal/types.ts +3 -0
  818. package/src/animations/text-shimmer/index.ts +5 -0
  819. package/src/animations/text-shimmer/presets.ts +8 -0
  820. package/src/animations/text-shimmer/text-shimmer.tsx +11 -0
  821. package/src/animations/text-shimmer/types.ts +3 -0
  822. package/src/animations/tilt/index.ts +5 -0
  823. package/src/animations/tilt/presets.ts +12 -0
  824. package/src/animations/tilt/tilt.tsx +7 -0
  825. package/src/animations/tilt/types.ts +3 -0
  826. package/src/animations/wiggle/index.ts +5 -0
  827. package/src/animations/wiggle/presets.ts +13 -0
  828. package/src/animations/wiggle/types.ts +3 -0
  829. package/src/animations/wiggle/wiggle.tsx +11 -0
  830. package/src/design-system/copy-button.ts +5 -10
  831. package/src/design-system/kbd.ts +5 -10
  832. package/src/hooks/useTableFilter/types.ts +1 -1
  833. package/src/hooks/useTableSort/index.ts +1 -4
  834. package/src/ui/alert/animated/alert-animated.tsx +1 -1
  835. package/src/ui/animated-number/animated-number.tsx +7 -1
  836. package/src/ui/animated-number/types.ts +10 -1
  837. package/src/ui/animated-number/variants.ts +7 -4
  838. package/src/ui/checkbox/animated/checkbox-animated.tsx +3 -1
  839. package/src/ui/checkbox/checkbox-base.tsx +4 -6
  840. package/src/ui/checkbox/checkbox.test.tsx +4 -4
  841. package/src/ui/checkbox/types.ts +4 -7
  842. package/src/ui/command/command-base.tsx +2 -2
  843. package/src/ui/command/command.test.tsx +10 -24
  844. package/src/ui/command/index.ts +1 -1
  845. package/src/ui/command/types.ts +1 -2
  846. package/src/ui/context-menu/context-menu.test.tsx +30 -0
  847. package/src/ui/copy-button/types.ts +4 -2
  848. package/src/ui/drawer/drawer-base.tsx +1 -4
  849. package/src/ui/dropdown/dropdown.tsx +1 -1
  850. package/src/ui/kbd/animated/kbd-animated.tsx +4 -1
  851. package/src/ui/kbd/kbd-base.tsx +4 -1
  852. package/src/ui/kbd/kbd.test.tsx +1 -3
  853. package/src/ui/kbd/types.ts +4 -2
  854. package/src/ui/modal/modal.test.tsx +24 -0
  855. package/src/ui/peer-isolation.test.ts +81 -0
  856. package/src/ui/popover/popover-base.tsx +1 -3
  857. package/src/ui/popover/types.ts +2 -2
  858. package/src/ui/radio-group/animated/index.ts +4 -1
  859. package/src/ui/radio-group/animated/radio-group-animated.tsx +3 -1
  860. package/src/ui/radio-group/radio-group.test.tsx +3 -1
  861. package/src/ui/radio-group/radio-group.tsx +4 -5
  862. package/src/ui/select/select.test.tsx +98 -2
  863. package/src/ui/timeline/animated/index.ts +1 -4
  864. package/src/ui/timeline/animated/timeline-item-animated.tsx +1 -4
  865. package/src/ui/timeline/types.ts +1 -4
  866. package/src/ui/toggle/animated/toggle-animated.tsx +6 -1
  867. package/src/ui/toggle/toggle-base.tsx +6 -1
  868. package/src/ui/tree-view/tree-view.test.tsx +6 -2
  869. package/dist/chunk-7TGUGTTQ.mjs.map +0 -1
  870. package/dist/chunk-ABOZ5QIX.js.map +0 -1
  871. package/dist/chunk-CL3VH223.mjs.map +0 -1
  872. package/dist/chunk-DN7TYUJ6.js.map +0 -1
  873. package/dist/chunk-HDO5ZM2S.mjs.map +0 -1
  874. package/dist/chunk-KTLJEPLF.js.map +0 -1
  875. package/dist/chunk-LMIL2R4R.js.map +0 -1
  876. package/dist/chunk-MEAVYU2Y.mjs.map +0 -1
  877. package/dist/chunk-PMALYOPA.js.map +0 -1
  878. package/dist/chunk-RKX5MERK.js.map +0 -1
  879. package/dist/chunk-SFRS4EZ5.mjs.map +0 -1
  880. package/dist/chunk-VYI3GS2C.mjs.map +0 -1
@@ -1,14 +1,17 @@
1
1
  import { cva } from "class-variance-authority";
2
2
 
3
- import { zuiAnimatedNumberAppearance, zuiAnimatedNumberSize } from "../../design-system/animated-number";
3
+ import {
4
+ zuiAnimatedNumberAppearance,
5
+ zuiAnimatedNumberSize,
6
+ } from "../../design-system/animated-number";
4
7
 
5
- export const animatedNumberAppearance = cva("inline-flex",{
8
+ export const animatedNumberAppearance = cva("inline-flex", {
6
9
  variants: {
7
10
  appearance: zuiAnimatedNumberAppearance,
8
- size: zuiAnimatedNumberSize
11
+ size: zuiAnimatedNumberSize,
9
12
  },
10
13
  defaultVariants: {
11
14
  appearance: "default",
12
15
  size: "md",
13
16
  },
14
- });
17
+ });
@@ -53,7 +53,9 @@ export function CheckboxAnimated(props: CheckboxAnimatedProps) {
53
53
  const state = resolveCheckboxState(resolvedChecked, indeterminate);
54
54
  const labelContent = label ?? children;
55
55
  const hasVisibleLabel =
56
- labelContent !== undefined && labelContent !== null && labelContent !== false;
56
+ labelContent !== undefined &&
57
+ labelContent !== null &&
58
+ labelContent !== false;
57
59
  const motionPreset = checkboxAnimationPresets[animation];
58
60
  const svgMotionProps = animation === "spring" ? motionPreset : undefined;
59
61
  const pathMotionProps = animation === "draw" ? motionPreset : undefined;
@@ -49,7 +49,9 @@ export function CheckboxBase(props: CheckboxProps) {
49
49
  const state = resolveCheckboxState(resolvedChecked, indeterminate);
50
50
  const labelContent = label ?? children;
51
51
  const hasVisibleLabel =
52
- labelContent !== undefined && labelContent !== null && labelContent !== false;
52
+ labelContent !== undefined &&
53
+ labelContent !== null &&
54
+ labelContent !== false;
53
55
 
54
56
  const setChecked = useCallback(
55
57
  (next: boolean) => {
@@ -98,11 +100,7 @@ export function CheckboxBase(props: CheckboxProps) {
98
100
  indicatorClassName,
99
101
  )}
100
102
  >
101
- <path
102
- d="M3.5 8H12.5"
103
- strokeWidth="2.4"
104
- strokeLinecap="round"
105
- />
103
+ <path d="M3.5 8H12.5" strokeWidth="2.4" strokeLinecap="round" />
106
104
  </svg>
107
105
  ) : (
108
106
  <svg
@@ -31,14 +31,14 @@ describe("Checkbox", () => {
31
31
  </Checkbox>,
32
32
  );
33
33
 
34
- await user.click(screen.getByRole("checkbox", { name: "Marketing emails" }));
34
+ await user.click(
35
+ screen.getByRole("checkbox", { name: "Marketing emails" }),
36
+ );
35
37
  expect(onCheckedChange).toHaveBeenLastCalledWith(true);
36
38
  });
37
39
 
38
40
  it("should expose mixed state when indeterminate", () => {
39
- render(
40
- <Checkbox indeterminate aria-label="Select partial group" />,
41
- );
41
+ render(<Checkbox indeterminate aria-label="Select partial group" />);
42
42
  expect(screen.getByRole("checkbox")).toHaveAttribute(
43
43
  "aria-checked",
44
44
  "mixed",
@@ -9,7 +9,9 @@ import type {
9
9
 
10
10
  export type CheckboxState = "checked" | "unchecked" | "indeterminate";
11
11
 
12
- export type CheckboxRootVariantProps = VariantProps<typeof checkboxRootVariants>;
12
+ export type CheckboxRootVariantProps = VariantProps<
13
+ typeof checkboxRootVariants
14
+ >;
13
15
  export type CheckboxControlVariantProps = VariantProps<
14
16
  typeof checkboxControlVariants
15
17
  >;
@@ -21,12 +23,7 @@ export type CheckboxProps = CheckboxRootVariantProps &
21
23
  CheckboxControlVariantProps &
22
24
  Omit<
23
25
  ComponentPropsWithRef<"input">,
24
- | "type"
25
- | "size"
26
- | "checked"
27
- | "defaultChecked"
28
- | "onChange"
29
- | "children"
26
+ "type" | "size" | "checked" | "defaultChecked" | "onChange" | "children"
30
27
  > & {
31
28
  checked?: boolean;
32
29
  defaultChecked?: boolean;
@@ -32,7 +32,7 @@ import type {
32
32
  CommandContentVariantProps,
33
33
  CommandContentLayerProps,
34
34
  CommandContentOverlayRenderProps,
35
- CommandContentPanelRenderProps
35
+ CommandContentPanelRenderProps,
36
36
  } from "./types";
37
37
  import {
38
38
  commandContentVariants,
@@ -45,7 +45,7 @@ import {
45
45
  commandListVariants,
46
46
  commandOverlayVariants,
47
47
  commandSeparatorVariants,
48
- commandTriggerVariants
48
+ commandTriggerVariants,
49
49
  } from "./variants";
50
50
 
51
51
  const CommandContext = createContext<CommandCtx | null>(null);
@@ -51,9 +51,7 @@ describe("Command", () => {
51
51
  const user = userEvent.setup();
52
52
  render(<Palette />);
53
53
  await user.click(screen.getByRole("button", { name: "Open palette" }));
54
- await waitFor(() =>
55
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
56
- );
54
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
57
55
  expect(screen.getByText("Home")).toBeInTheDocument();
58
56
  });
59
57
 
@@ -61,23 +59,19 @@ describe("Command", () => {
61
59
  const { rerender } = render(<Palette open={false} />);
62
60
  expect(screen.queryByRole("dialog")).not.toBeInTheDocument();
63
61
  rerender(<Palette open />);
64
- await waitFor(() =>
65
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
66
- );
62
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
67
63
  });
68
64
 
69
65
  it("should filter items as the user types", async () => {
70
66
  const user = userEvent.setup();
71
67
  render(<Palette open />);
72
- await waitFor(() =>
73
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
74
- );
68
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
75
69
  await user.type(screen.getByRole("combobox"), "settings");
76
70
  await waitFor(() => {
77
71
  expect(screen.getByText("Settings")).toBeVisible();
78
- expect(screen.getByText("Home").closest("[data-slot=command-item]")).toHaveAttribute(
79
- "hidden",
80
- );
72
+ expect(
73
+ screen.getByText("Home").closest("[data-slot=command-item]"),
74
+ ).toHaveAttribute("hidden");
81
75
  });
82
76
  });
83
77
 
@@ -94,9 +88,7 @@ describe("Command", () => {
94
88
  const user = userEvent.setup();
95
89
  const onSelectHome = vi.fn();
96
90
  render(<Palette open onSelectHome={onSelectHome} />);
97
- await waitFor(() =>
98
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
99
- );
91
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
100
92
  const input = screen.getByRole("combobox");
101
93
  input.focus();
102
94
  await user.keyboard("{Enter}");
@@ -107,20 +99,14 @@ describe("Command", () => {
107
99
  const user = userEvent.setup();
108
100
  const onOpenChange = vi.fn();
109
101
  render(<Palette open onOpenChange={onOpenChange} />);
110
- await waitFor(() =>
111
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
112
- );
102
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
113
103
  await user.keyboard("{Escape}");
114
- await waitFor(() =>
115
- expect(onOpenChange).toHaveBeenLastCalledWith(false),
116
- );
104
+ await waitFor(() => expect(onOpenChange).toHaveBeenLastCalledWith(false));
117
105
  });
118
106
 
119
107
  it("should render group headings and a separator", async () => {
120
108
  render(<Palette open />);
121
- await waitFor(() =>
122
- expect(screen.getByRole("dialog")).toBeInTheDocument(),
123
- );
109
+ await waitFor(() => expect(screen.getByRole("dialog")).toBeInTheDocument());
124
110
  expect(screen.getByText("Navigation")).toBeInTheDocument();
125
111
  expect(screen.getByText("Actions")).toBeInTheDocument();
126
112
  expect(
@@ -25,7 +25,7 @@ export type {
25
25
  CommandSectionProps,
26
26
  CommandCtx,
27
27
  ItemMeta,
28
- RegisteredItem
28
+ RegisteredItem,
29
29
  } from "./types";
30
30
  export {
31
31
  commandContentVariants,
@@ -100,7 +100,6 @@ export type CommandCtx = {
100
100
  inputRef: RefObject<HTMLInputElement | null>;
101
101
  };
102
102
 
103
-
104
103
  export type CommandContentOverlayRenderProps = {
105
104
  role: "presentation";
106
105
  "data-slot": "command-overlay";
@@ -126,4 +125,4 @@ export type CommandContentLayerProps = CommandContentProps & {
126
125
  renderPresence?: (children: ReactNode) => ReactNode;
127
126
  renderOverlay?: (props: CommandContentOverlayRenderProps) => ReactNode;
128
127
  renderPanel?: (props: CommandContentPanelRenderProps) => ReactNode;
129
- };
128
+ };
@@ -173,4 +173,34 @@ describe("ContextMenu", () => {
173
173
 
174
174
  expect(screen.getByRole("menuitem", { name: "Archive" })).toBeVisible();
175
175
  });
176
+
177
+ it("should not invoke onSelect for a disabled item and keep the menu open", async () => {
178
+ const user = userEvent.setup();
179
+ const onSelect = vi.fn();
180
+ render(
181
+ <ContextMenu defaultOpen>
182
+ <ContextMenuTrigger>Right-click row</ContextMenuTrigger>
183
+ <ContextMenuContent>
184
+ <ContextMenuItem disabled onSelect={onSelect}>
185
+ Copy
186
+ </ContextMenuItem>
187
+ </ContextMenuContent>
188
+ </ContextMenu>,
189
+ );
190
+
191
+ const item = screen.getByRole("menuitem", { name: "Copy" });
192
+ expect(item).toHaveAttribute("aria-disabled", "true");
193
+
194
+ await user.click(item);
195
+ expect(onSelect).not.toHaveBeenCalled();
196
+ expect(screen.getByRole("menu")).toBeInTheDocument();
197
+ });
198
+
199
+ it("should mark the submenu trigger with aria-haspopup menu", () => {
200
+ renderContextMenu();
201
+ fireEvent.contextMenu(screen.getByTestId("surface"));
202
+ expect(
203
+ screen.getByRole("menuitem", { name: "More actions" }),
204
+ ).toHaveAttribute("aria-haspopup", "menu");
205
+ });
176
206
  });
@@ -12,8 +12,10 @@ export type CopyButtonIconRenderer = (state: {
12
12
  copiedIcon: ReactNode;
13
13
  }) => ReactNode;
14
14
 
15
- export interface CopyButtonBaseProps
16
- extends Omit<ComponentPropsWithRef<"button">, "value" | "onCopy"> {
15
+ export interface CopyButtonBaseProps extends Omit<
16
+ ComponentPropsWithRef<"button">,
17
+ "value" | "onCopy"
18
+ > {
17
19
  /** Text written to the clipboard when the button is pressed. */
18
20
  value: string;
19
21
  /** Milliseconds the copied state stays active before resetting. `0` keeps it until re-copied. */
@@ -202,10 +202,7 @@ DrawerHeader.displayName = "DrawerHeader";
202
202
 
203
203
  export function DrawerBody({ className, children }: DrawerSectionProps) {
204
204
  return (
205
- <div
206
- data-slot="drawer-body"
207
- className={cn("flex-1 text-sm", className)}
208
- >
205
+ <div data-slot="drawer-body" className={cn("flex-1 text-sm", className)}>
209
206
  {children}
210
207
  </div>
211
208
  );
@@ -146,7 +146,7 @@ export const DropdownContent = ({
146
146
  className={cn(
147
147
  contentVariants({ placement, spacing }),
148
148
  className,
149
- divider && "divide-y divide-current"
149
+ divider && "divide-y divide-current",
150
150
  )}
151
151
  {...props}
152
152
  >
@@ -8,7 +8,10 @@ import type { KbdBaseProps } from "../types";
8
8
  import { kbdAnimationPresets } from "./animations";
9
9
  import type { KbdAnimatedProps } from "./types";
10
10
 
11
- export function KbdAnimated({ animation = "none", ...props }: KbdAnimatedProps) {
11
+ export function KbdAnimated({
12
+ animation = "none",
13
+ ...props
14
+ }: KbdAnimatedProps) {
12
15
  const motionProps = kbdAnimationPresets[animation];
13
16
 
14
17
  return (
@@ -31,7 +31,10 @@ export function KbdBase({
31
31
  {items.map((key, index) => (
32
32
  <Fragment key={index}>
33
33
  {index > 0 && separator != null ? (
34
- <span data-slot="kbd-separator" className={kbdSeparatorVariants({ size })}>
34
+ <span
35
+ data-slot="kbd-separator"
36
+ className={kbdSeparatorVariants({ size })}
37
+ >
35
38
  {separator}
36
39
  </span>
37
40
  ) : null}
@@ -34,9 +34,7 @@ describe("Kbd", () => {
34
34
 
35
35
  it("should apply the appearance token", () => {
36
36
  render(<Kbd keys={["A"]} appearance="emerald" />);
37
- const key = document.querySelector(
38
- '[data-slot="kbd-key"]',
39
- ) as HTMLElement;
37
+ const key = document.querySelector('[data-slot="kbd-key"]') as HTMLElement;
40
38
  expect(key.className).toMatch(/--zui-kbd-emerald-bg/);
41
39
  });
42
40
 
@@ -5,8 +5,10 @@ import type { kbdKeyVariants } from "./variants";
5
5
 
6
6
  export type KbdVariantProps = VariantProps<typeof kbdKeyVariants>;
7
7
 
8
- export interface KbdBaseProps
9
- extends Omit<ComponentPropsWithRef<"span">, "children"> {
8
+ export interface KbdBaseProps extends Omit<
9
+ ComponentPropsWithRef<"span">,
10
+ "children"
11
+ > {
10
12
  /** Keys to render as individual keycaps, e.g. `["⌘", "K"]`. Takes precedence over `children`. */
11
13
  keys?: ReactNode[];
12
14
  /** Optional node rendered between keycaps (e.g. "+" or "then"). */
@@ -166,4 +166,28 @@ describe("Modal", () => {
166
166
  );
167
167
  expect(trigger).toHaveFocus();
168
168
  });
169
+
170
+ it("should expose aria-modal and wire labelledby/describedby to its title and description", async () => {
171
+ render(
172
+ <Modal defaultOpen>
173
+ <ModalContent>
174
+ <ModalTitle>Confirm</ModalTitle>
175
+ <ModalDescription>Please review</ModalDescription>
176
+ </ModalContent>
177
+ </Modal>,
178
+ );
179
+ const dialog = await screen.findByRole("dialog");
180
+ expect(dialog).toHaveAttribute("aria-modal", "true");
181
+
182
+ const labelledby = dialog.getAttribute("aria-labelledby");
183
+ const describedby = dialog.getAttribute("aria-describedby");
184
+ expect(labelledby).toBeTruthy();
185
+ expect(describedby).toBeTruthy();
186
+ expect(document.getElementById(labelledby as string)).toHaveTextContent(
187
+ "Confirm",
188
+ );
189
+ expect(document.getElementById(describedby as string)).toHaveTextContent(
190
+ "Please review",
191
+ );
192
+ });
169
193
  });
@@ -0,0 +1,81 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { describe, expect, it } from "vitest";
5
+
6
+ /**
7
+ * Guards the package's optional-peer isolation contract:
8
+ *
9
+ * - A component that ships BOTH a static entry and an `animated/` entry must keep
10
+ * `framer-motion` out of its static files, so importing the static entry never
11
+ * forces the optional `framer-motion` peer onto the consumer. (Components that
12
+ * are themselves motion primitives — e.g. `animated-number`, `marquee` — have no
13
+ * `animated/` split, so this rule does not apply to them.)
14
+ * - No file under `src/ui` may import `recharts`; charts live only in `src/charts/*`.
15
+ */
16
+
17
+ const uiRoot = dirname(fileURLToPath(import.meta.url));
18
+
19
+ const componentDirs = readdirSync(uiRoot, { withFileTypes: true })
20
+ .filter((e) => e.isDirectory())
21
+ .map((e) => e.name);
22
+
23
+ /** `.ts`/`.tsx` files directly involved in the static entry (excludes `animated/` and tests). */
24
+ function staticFiles(dir: string): string[] {
25
+ const out: string[] = [];
26
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
27
+ const full = join(dir, entry.name);
28
+ if (entry.isDirectory()) {
29
+ if (entry.name === "animated") continue;
30
+ out.push(...staticFiles(full));
31
+ } else if (
32
+ /\.(tsx?|jsx?)$/.test(entry.name) &&
33
+ !entry.name.includes(".test.")
34
+ ) {
35
+ out.push(full);
36
+ }
37
+ }
38
+ return out;
39
+ }
40
+
41
+ const FRAMER = /from\s+["']framer-motion/;
42
+ const RECHARTS = /from\s+["']recharts/;
43
+
44
+ describe("static UI entries — optional peer isolation", () => {
45
+ it("scans every UI component directory", () => {
46
+ expect(componentDirs.length).toBeGreaterThan(40);
47
+ });
48
+
49
+ for (const name of componentDirs) {
50
+ const dir = join(uiRoot, name);
51
+ const hasAnimatedEntry = existsSync(join(dir, "animated"));
52
+ if (!hasAnimatedEntry) continue;
53
+
54
+ it(`${name}: static files do not import framer-motion`, () => {
55
+ const offenders = staticFiles(dir).filter((file) =>
56
+ FRAMER.test(readFileSync(file, "utf8")),
57
+ );
58
+ expect(offenders).toEqual([]);
59
+ });
60
+ }
61
+
62
+ it("no UI file imports recharts (charts live in src/charts)", () => {
63
+ const offenders = componentDirs
64
+ .flatMap((name) => {
65
+ const all: string[] = [];
66
+ const dir = join(uiRoot, name);
67
+ // include animated files here too — recharts must never appear in ui/.
68
+ const walk = (d: string) => {
69
+ for (const entry of readdirSync(d, { withFileTypes: true })) {
70
+ const full = join(d, entry.name);
71
+ if (entry.isDirectory()) walk(full);
72
+ else if (/\.(tsx?|jsx?)$/.test(entry.name)) all.push(full);
73
+ }
74
+ };
75
+ walk(dir);
76
+ return all;
77
+ })
78
+ .filter((file) => RECHARTS.test(readFileSync(file, "utf8")));
79
+ expect(offenders).toEqual([]);
80
+ });
81
+ });
@@ -157,9 +157,7 @@ export const Popover = ({
157
157
  );
158
158
 
159
159
  return (
160
- <PopoverContext.Provider
161
- value={contextValue}
162
- >
160
+ <PopoverContext.Provider value={contextValue}>
163
161
  <div className="relative inline-block">{children}</div>
164
162
  </PopoverContext.Provider>
165
163
  );
@@ -30,9 +30,9 @@ export type PopoverTriggerProps = {
30
30
 
31
31
  export type PopoverContentProps = ComponentPropsWithRef<"div"> & {
32
32
  children: ReactNode;
33
- variant?: VariantProps<typeof popoverContentVariants>["variant"]
33
+ variant?: VariantProps<typeof popoverContentVariants>["variant"];
34
34
  size?: VariantProps<typeof popoverContentVariants>["size"];
35
35
  width?: VariantProps<typeof popoverContentVariants>["width"];
36
36
  side?: PopoverSide;
37
37
  align?: PopoverAlign;
38
- };
38
+ };
@@ -1,6 +1,9 @@
1
1
  "use client";
2
2
 
3
- export { RadioGroupAnimated, RadioGroupItemAnimated } from "./radio-group-animated";
3
+ export {
4
+ RadioGroupAnimated,
5
+ RadioGroupItemAnimated,
6
+ } from "./radio-group-animated";
4
7
  export type {
5
8
  RadioGroupAnimatedProps,
6
9
  RadioGroupAnimation,
@@ -110,7 +110,9 @@ export function RadioGroupItemAnimated(props: RadioGroupItemAnimatedProps) {
110
110
  const size = sizeProp ?? context?.size;
111
111
  const labelContent = label ?? children;
112
112
  const hasVisibleLabel =
113
- labelContent !== undefined && labelContent !== null && labelContent !== false;
113
+ labelContent !== undefined &&
114
+ labelContent !== null &&
115
+ labelContent !== false;
114
116
  const motionPreset = radioGroupAnimationPresets[animation];
115
117
 
116
118
  return (
@@ -18,7 +18,9 @@ describe("RadioGroup", () => {
18
18
  </RadioGroup>,
19
19
  );
20
20
  expect(document.querySelector('[data-slot="radio-group"]')).toBeTruthy();
21
- expect(document.querySelector('[data-slot="radio-group-item"]')).toBeTruthy();
21
+ expect(
22
+ document.querySelector('[data-slot="radio-group-item"]'),
23
+ ).toBeTruthy();
22
24
  });
23
25
 
24
26
  it("should select one value at a time", async () => {
@@ -4,10 +4,7 @@ import { useCallback, useId, useState } from "react";
4
4
 
5
5
  import { cn } from "../../lib/utils";
6
6
 
7
- import {
8
- RadioGroupContext,
9
- useRadioGroupContext,
10
- } from "./radio-group-context";
7
+ import { RadioGroupContext, useRadioGroupContext } from "./radio-group-context";
11
8
  import type { RadioGroupItemProps, RadioGroupProps } from "./types";
12
9
  import {
13
10
  radioGroupControlVariants,
@@ -103,7 +100,9 @@ export function RadioGroupItem(props: RadioGroupItemProps) {
103
100
  const size = sizeProp ?? context?.size;
104
101
  const labelContent = label ?? children;
105
102
  const hasVisibleLabel =
106
- labelContent !== undefined && labelContent !== null && labelContent !== false;
103
+ labelContent !== undefined &&
104
+ labelContent !== null &&
105
+ labelContent !== false;
107
106
 
108
107
  return (
109
108
  <label
@@ -1,6 +1,6 @@
1
- import { render, screen } from "@testing-library/react";
1
+ import { render, screen, waitFor } from "@testing-library/react";
2
2
  import userEvent from "@testing-library/user-event";
3
- import { describe, expect, it } from "vitest";
3
+ import { describe, expect, it, vi } from "vitest";
4
4
 
5
5
  import {
6
6
  Select,
@@ -126,3 +126,99 @@ describe("Select", () => {
126
126
  expect(beta).toHaveAttribute("aria-selected", "false");
127
127
  });
128
128
  });
129
+
130
+ describe("Select — keyboard and a11y", () => {
131
+ it("wires trigger aria attributes to the listbox", async () => {
132
+ const user = userEvent.setup();
133
+ render(
134
+ <Select multiple defaultValue={[]}>
135
+ <SelectTrigger>
136
+ <SelectValue placeholder="Pick" />
137
+ </SelectTrigger>
138
+ <SelectContent>
139
+ <SelectItem value="a">Alpha</SelectItem>
140
+ </SelectContent>
141
+ </Select>,
142
+ );
143
+ const trigger = screen.getByRole("button");
144
+ expect(trigger).toHaveAttribute("aria-haspopup", "listbox");
145
+ expect(trigger).toHaveAttribute("aria-expanded", "false");
146
+ const controls = trigger.getAttribute("aria-controls");
147
+
148
+ await user.click(trigger);
149
+ expect(trigger).toHaveAttribute("aria-expanded", "true");
150
+ const listbox = screen.getByRole("listbox");
151
+ expect(listbox).toHaveAttribute("id", controls);
152
+ expect(listbox).toHaveAttribute("aria-multiselectable", "true");
153
+ });
154
+
155
+ it("moves focus across enabled options with arrow keys", async () => {
156
+ const user = userEvent.setup();
157
+ render(
158
+ <Select defaultValue={[]}>
159
+ <SelectTrigger>
160
+ <SelectValue placeholder="Pick" />
161
+ </SelectTrigger>
162
+ <SelectContent>
163
+ <SelectItem value="a">Alpha</SelectItem>
164
+ <SelectItem value="b">Beta</SelectItem>
165
+ </SelectContent>
166
+ </Select>,
167
+ );
168
+ await user.click(screen.getByRole("button"));
169
+ const alpha = await screen.findByRole("option", { name: /alpha/i });
170
+ const beta = screen.getByRole("option", { name: /beta/i });
171
+ await waitFor(() => expect(alpha).toHaveFocus());
172
+
173
+ await user.keyboard("{ArrowDown}");
174
+ expect(beta).toHaveFocus();
175
+ await user.keyboard("{ArrowUp}");
176
+ expect(alpha).toHaveFocus();
177
+ });
178
+
179
+ it("selects the focused option with the Enter key", async () => {
180
+ const user = userEvent.setup();
181
+ const onChange = vi.fn();
182
+ render(
183
+ <Select multiple defaultValue={[]} onChange={onChange}>
184
+ <SelectTrigger>
185
+ <SelectValue placeholder="Pick" />
186
+ </SelectTrigger>
187
+ <SelectContent>
188
+ <SelectItem value="a">Alpha</SelectItem>
189
+ <SelectItem value="b">Beta</SelectItem>
190
+ </SelectContent>
191
+ </Select>,
192
+ );
193
+ await user.click(screen.getByRole("button"));
194
+ const alpha = await screen.findByRole("option", { name: /alpha/i });
195
+ await waitFor(() => expect(alpha).toHaveFocus());
196
+
197
+ await user.keyboard("{Enter}");
198
+ expect(onChange).toHaveBeenCalledWith(["a"]);
199
+ });
200
+
201
+ it("ignores a disabled option for pointer and marks it aria-disabled", async () => {
202
+ const user = userEvent.setup();
203
+ const onChange = vi.fn();
204
+ render(
205
+ <Select multiple defaultValue={[]} onChange={onChange}>
206
+ <SelectTrigger>
207
+ <SelectValue placeholder="Pick" />
208
+ </SelectTrigger>
209
+ <SelectContent>
210
+ <SelectItem value="a" disabled>
211
+ Alpha
212
+ </SelectItem>
213
+ <SelectItem value="b">Beta</SelectItem>
214
+ </SelectContent>
215
+ </Select>,
216
+ );
217
+ await user.click(screen.getByRole("button"));
218
+ const alpha = await screen.findByRole("option", { name: /alpha/i });
219
+ expect(alpha).toHaveAttribute("aria-disabled", "true");
220
+
221
+ await user.click(alpha);
222
+ expect(onChange).not.toHaveBeenCalled();
223
+ });
224
+ });
@@ -8,10 +8,7 @@ export {
8
8
  TimelineTitle,
9
9
  } from "../timeline-base";
10
10
  export { TimelineItem } from "./timeline-item-animated";
11
- export type {
12
- TimelineAnimatedProps,
13
- TimelineItemAnimatedProps,
14
- } from "./types";
11
+ export type { TimelineAnimatedProps, TimelineItemAnimatedProps } from "./types";
15
12
  export {
16
13
  TIMELINE_DEFAULT_STAGGER,
17
14
  timelineItemTransitionPresets,