@uselets/ui 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (845) hide show
  1. package/README.md +2 -1
  2. package/dist/accordion-BCo2odjy.js +2 -0
  3. package/dist/accordion-BCo2odjy.js.map +1 -0
  4. package/dist/accordion-DtSr3uiA.d.ts +15 -0
  5. package/dist/alert-CJRgRQVF.js +2 -0
  6. package/dist/alert-CJRgRQVF.js.map +1 -0
  7. package/dist/alert-dialog-B_nAiD4Y.js +2 -0
  8. package/dist/alert-dialog-B_nAiD4Y.js.map +1 -0
  9. package/dist/alert-dialog-Bf41-OnT.d.ts +34 -0
  10. package/dist/alert-eivgSC_S.d.ts +18 -0
  11. package/dist/anchor-DCOyn0Xa.d.ts +15 -0
  12. package/dist/anchor-srhmShjN.js +2 -0
  13. package/dist/anchor-srhmShjN.js.map +1 -0
  14. package/dist/area-chart-DdDy8Vm3.js +2 -0
  15. package/dist/area-chart-DdDy8Vm3.js.map +1 -0
  16. package/dist/area-chart-F_4ZL20j.d.ts +40 -0
  17. package/dist/avatar-2ZS3Tx76.d.ts +21 -0
  18. package/dist/avatar-CFUwrOwG.js +2 -0
  19. package/dist/avatar-CFUwrOwG.js.map +1 -0
  20. package/dist/badge-BqpQcDFd.d.ts +16 -0
  21. package/dist/badge-Cuq_DqRS.js +2 -0
  22. package/dist/badge-Cuq_DqRS.js.map +1 -0
  23. package/dist/badge-DEgLmZYC.js +2 -0
  24. package/dist/badge-DEgLmZYC.js.map +1 -0
  25. package/dist/badge-gkezuSZY.d.ts +19 -0
  26. package/dist/bar-chart-DIgSnh_j.js +2 -0
  27. package/dist/bar-chart-DIgSnh_j.js.map +1 -0
  28. package/dist/bar-chart-DRrrfMQR.d.ts +42 -0
  29. package/dist/breadcrumb-CqNDAI8V.js +2 -0
  30. package/dist/breadcrumb-CqNDAI8V.js.map +1 -0
  31. package/dist/breadcrumb-DZFS9htN.d.ts +22 -0
  32. package/dist/button-BNGy28pv.d.ts +17 -0
  33. package/dist/button-CQbH5Glc.d.ts +19 -0
  34. package/dist/button-DGewx2nE.js +2 -0
  35. package/dist/button-DGewx2nE.js.map +1 -0
  36. package/dist/button-group-DRgqsyjS.d.ts +18 -0
  37. package/dist/button-group-WJ5LeouK.js +2 -0
  38. package/dist/button-group-WJ5LeouK.js.map +1 -0
  39. package/dist/button-oI3hbOgp.js +2 -0
  40. package/dist/button-oI3hbOgp.js.map +1 -0
  41. package/dist/calendar-C1GgjzIA.d.ts +17 -0
  42. package/dist/calendar-CW1kGXom.js +2 -0
  43. package/dist/calendar-CW1kGXom.js.map +1 -0
  44. package/dist/card-Bx6iiocl.js +2 -0
  45. package/dist/card-Bx6iiocl.js.map +1 -0
  46. package/dist/card-pWjtkTKw.d.ts +22 -0
  47. package/dist/carousel-C6e4eRJD.d.ts +43 -0
  48. package/dist/carousel-D0OTImO7.js +2 -0
  49. package/dist/carousel-D0OTImO7.js.map +1 -0
  50. package/dist/center-CFQDr205.d.ts +13 -0
  51. package/dist/center-Dl1rnq7S.js +2 -0
  52. package/dist/center-Dl1rnq7S.js.map +1 -0
  53. package/dist/chart-Ci4V8B8v.js +8 -0
  54. package/dist/chart-Ci4V8B8v.js.map +1 -0
  55. package/dist/checkbox-DPvW_m7k.js +2 -0
  56. package/dist/checkbox-DPvW_m7k.js.map +1 -0
  57. package/dist/checkbox-y0XBdH4a.d.ts +21 -0
  58. package/dist/code-A6JERAsm.js +2 -0
  59. package/dist/code-A6JERAsm.js.map +1 -0
  60. package/dist/code-Cqoacc61.d.ts +8 -0
  61. package/dist/collapsible-BH8BqfTd.js +2 -0
  62. package/dist/collapsible-BH8BqfTd.js.map +1 -0
  63. package/dist/collapsible-CLSCZ630.d.ts +12 -0
  64. package/dist/color-DJvQFSl5.d.ts +19 -0
  65. package/dist/color-Don4qaht.js +2 -0
  66. package/dist/color-Don4qaht.js.map +1 -0
  67. package/dist/combobox-DkCRXUxd.d.ts +51 -0
  68. package/dist/combobox-fNAIovsN.js +2 -0
  69. package/dist/combobox-fNAIovsN.js.map +1 -0
  70. package/dist/command-0wTb46Ym.js +2 -0
  71. package/dist/command-0wTb46Ym.js.map +1 -0
  72. package/dist/command-D4pNOx0J.d.ts +31 -0
  73. package/dist/components/accordion.d.ts +2 -15
  74. package/dist/components/accordion.js +1 -2
  75. package/dist/components/accordion.spec.d.ts +1 -0
  76. package/dist/components/accordion.spec.js +2 -0
  77. package/dist/components/accordion.spec.js.map +1 -0
  78. package/dist/components/alert-dialog.d.ts +2 -34
  79. package/dist/components/alert-dialog.js +1 -2
  80. package/dist/components/alert-dialog.spec.d.ts +1 -0
  81. package/dist/components/alert-dialog.spec.js +2 -0
  82. package/dist/components/alert-dialog.spec.js.map +1 -0
  83. package/dist/components/alert.d.ts +2 -18
  84. package/dist/components/alert.js +1 -2
  85. package/dist/components/alert.spec.d.ts +1 -0
  86. package/dist/components/alert.spec.js +2 -0
  87. package/dist/components/alert.spec.js.map +1 -0
  88. package/dist/components/anchor.d.ts +2 -15
  89. package/dist/components/anchor.js +1 -2
  90. package/dist/components/anchor.spec.d.ts +1 -0
  91. package/dist/components/anchor.spec.js +2 -0
  92. package/dist/components/anchor.spec.js.map +1 -0
  93. package/dist/components/area-chart.d.ts +2 -40
  94. package/dist/components/area-chart.js +1 -2
  95. package/dist/components/area-chart.spec.d.ts +1 -0
  96. package/dist/components/area-chart.spec.js +2 -0
  97. package/dist/components/area-chart.spec.js.map +1 -0
  98. package/dist/components/avatar.d.ts +2 -21
  99. package/dist/components/avatar.js +1 -2
  100. package/dist/components/avatar.spec.d.ts +1 -0
  101. package/dist/components/avatar.spec.js +2 -0
  102. package/dist/components/avatar.spec.js.map +1 -0
  103. package/dist/components/badge.d.ts +2 -16
  104. package/dist/components/badge.js +1 -2
  105. package/dist/components/badge.spec.d.ts +1 -0
  106. package/dist/components/badge.spec.js +2 -0
  107. package/dist/components/badge.spec.js.map +1 -0
  108. package/dist/components/bar-chart.d.ts +2 -42
  109. package/dist/components/bar-chart.js +1 -2
  110. package/dist/components/bar-chart.spec.d.ts +1 -0
  111. package/dist/components/bar-chart.spec.js +2 -0
  112. package/dist/components/bar-chart.spec.js.map +1 -0
  113. package/dist/components/breadcrumb.d.ts +2 -22
  114. package/dist/components/breadcrumb.js +1 -2
  115. package/dist/components/breadcrumb.spec.d.ts +1 -0
  116. package/dist/components/breadcrumb.spec.js +2 -0
  117. package/dist/components/breadcrumb.spec.js.map +1 -0
  118. package/dist/components/button-group.d.ts +2 -18
  119. package/dist/components/button-group.js +1 -2
  120. package/dist/components/button-group.spec.d.ts +1 -0
  121. package/dist/components/button-group.spec.js +2 -0
  122. package/dist/components/button-group.spec.js.map +1 -0
  123. package/dist/components/button.d.ts +2 -17
  124. package/dist/components/button.js +1 -2
  125. package/dist/components/button.spec.d.ts +1 -0
  126. package/dist/components/button.spec.js +2 -0
  127. package/dist/components/button.spec.js.map +1 -0
  128. package/dist/components/calendar.d.ts +2 -17
  129. package/dist/components/calendar.js +1 -2
  130. package/dist/components/calendar.spec.d.ts +1 -0
  131. package/dist/components/calendar.spec.js +2 -0
  132. package/dist/components/calendar.spec.js.map +1 -0
  133. package/dist/components/card.d.ts +2 -22
  134. package/dist/components/card.js +1 -2
  135. package/dist/components/card.spec.d.ts +1 -0
  136. package/dist/components/card.spec.js +2 -0
  137. package/dist/components/card.spec.js.map +1 -0
  138. package/dist/components/carousel.d.ts +2 -43
  139. package/dist/components/carousel.js +1 -2
  140. package/dist/components/carousel.spec.js +1 -93
  141. package/dist/components/carousel.spec.js.map +1 -1
  142. package/dist/components/center.d.ts +2 -13
  143. package/dist/components/center.js +1 -2
  144. package/dist/components/center.spec.d.ts +1 -0
  145. package/dist/components/center.spec.js +2 -0
  146. package/dist/components/center.spec.js.map +1 -0
  147. package/dist/components/chart.js +1 -8
  148. package/dist/components/chart.spec.d.ts +1 -0
  149. package/dist/components/chart.spec.js +2 -0
  150. package/dist/components/chart.spec.js.map +1 -0
  151. package/dist/components/checkbox.d.ts +2 -21
  152. package/dist/components/checkbox.js +1 -2
  153. package/dist/components/checkbox.spec.d.ts +1 -0
  154. package/dist/components/checkbox.spec.js +2 -0
  155. package/dist/components/checkbox.spec.js.map +1 -0
  156. package/dist/components/code.d.ts +2 -8
  157. package/dist/components/code.js +1 -2
  158. package/dist/components/code.spec.d.ts +1 -0
  159. package/dist/components/code.spec.js +2 -0
  160. package/dist/components/code.spec.js.map +1 -0
  161. package/dist/components/collapsible.d.ts +2 -12
  162. package/dist/components/collapsible.js +1 -2
  163. package/dist/components/collapsible.spec.d.ts +1 -0
  164. package/dist/components/collapsible.spec.js +2 -0
  165. package/dist/components/collapsible.spec.js.map +1 -0
  166. package/dist/components/combobox.d.ts +2 -51
  167. package/dist/components/combobox.js +1 -2
  168. package/dist/components/combobox.spec.d.ts +1 -0
  169. package/dist/components/combobox.spec.js +2 -0
  170. package/dist/components/combobox.spec.js.map +1 -0
  171. package/dist/components/command.d.ts +2 -31
  172. package/dist/components/command.js +1 -2
  173. package/dist/components/command.spec.d.ts +1 -0
  174. package/dist/components/command.spec.js +2 -0
  175. package/dist/components/command.spec.js.map +1 -0
  176. package/dist/components/container.d.ts +2 -12
  177. package/dist/components/container.js +1 -2
  178. package/dist/components/container.spec.d.ts +1 -0
  179. package/dist/components/container.spec.js +2 -0
  180. package/dist/components/container.spec.js.map +1 -0
  181. package/dist/components/data-table.d.ts +2 -111
  182. package/dist/components/data-table.js +1 -2
  183. package/dist/components/data-table.spec.d.ts +1 -0
  184. package/dist/components/data-table.spec.js +2 -0
  185. package/dist/components/data-table.spec.js.map +1 -0
  186. package/dist/components/date-range-picker.d.ts +3 -55
  187. package/dist/components/date-range-picker.js +1 -2
  188. package/dist/components/date-range-picker.spec.d.ts +1 -0
  189. package/dist/components/date-range-picker.spec.js +2 -0
  190. package/dist/components/date-range-picker.spec.js.map +1 -0
  191. package/dist/components/dialog.d.ts +2 -42
  192. package/dist/components/dialog.js +1 -2
  193. package/dist/components/dialog.spec.d.ts +1 -0
  194. package/dist/components/dialog.spec.js +2 -0
  195. package/dist/components/dialog.spec.js.map +1 -0
  196. package/dist/components/donut-chart.d.ts +2 -13
  197. package/dist/components/donut-chart.js +1 -2
  198. package/dist/components/donut-chart.spec.d.ts +1 -0
  199. package/dist/components/donut-chart.spec.js +2 -0
  200. package/dist/components/donut-chart.spec.js.map +1 -0
  201. package/dist/components/drawer.d.ts +2 -43
  202. package/dist/components/drawer.js +1 -2
  203. package/dist/components/drawer.spec.d.ts +1 -0
  204. package/dist/components/drawer.spec.js +2 -0
  205. package/dist/components/drawer.spec.js.map +1 -0
  206. package/dist/components/dropdown-menu.d.ts +2 -48
  207. package/dist/components/dropdown-menu.js +1 -2
  208. package/dist/components/dropdown-menu.spec.d.ts +1 -0
  209. package/dist/components/dropdown-menu.spec.js +2 -0
  210. package/dist/components/dropdown-menu.spec.js.map +1 -0
  211. package/dist/components/dropzone.d.ts +2 -102
  212. package/dist/components/dropzone.js +1 -2
  213. package/dist/components/dropzone.spec.d.ts +1 -0
  214. package/dist/components/dropzone.spec.js +2 -0
  215. package/dist/components/dropzone.spec.js.map +1 -0
  216. package/dist/components/empty.d.ts +2 -21
  217. package/dist/components/empty.js +1 -2
  218. package/dist/components/empty.spec.d.ts +1 -0
  219. package/dist/components/empty.spec.js +2 -0
  220. package/dist/components/empty.spec.js.map +1 -0
  221. package/dist/components/field.d.ts +2 -39
  222. package/dist/components/field.js +1 -2
  223. package/dist/components/field.spec.js +1 -1
  224. package/dist/components/field.spec.js.map +1 -1
  225. package/dist/components/flex.d.ts +2 -16
  226. package/dist/components/flex.js +1 -2
  227. package/dist/components/flex.spec.d.ts +1 -0
  228. package/dist/components/flex.spec.js +2 -0
  229. package/dist/components/flex.spec.js.map +1 -0
  230. package/dist/components/grid.d.ts +2 -20
  231. package/dist/components/grid.js +1 -2
  232. package/dist/components/grid.spec.d.ts +1 -0
  233. package/dist/components/grid.spec.js +2 -0
  234. package/dist/components/grid.spec.js.map +1 -0
  235. package/dist/components/group.d.ts +2 -15
  236. package/dist/components/group.js +1 -2
  237. package/dist/components/group.spec.d.ts +1 -0
  238. package/dist/components/group.spec.js +2 -0
  239. package/dist/components/group.spec.js.map +1 -0
  240. package/dist/components/heading.d.ts +2 -14
  241. package/dist/components/heading.js +1 -2
  242. package/dist/components/heading.spec.d.ts +1 -0
  243. package/dist/components/heading.spec.js +2 -0
  244. package/dist/components/heading.spec.js.map +1 -0
  245. package/dist/components/hover-card.d.ts +2 -13
  246. package/dist/components/hover-card.js +1 -2
  247. package/dist/components/hover-card.spec.d.ts +1 -0
  248. package/dist/components/hover-card.spec.js +2 -0
  249. package/dist/components/hover-card.spec.js.map +1 -0
  250. package/dist/components/input-group.d.ts +2 -26
  251. package/dist/components/input-group.js +1 -2
  252. package/dist/components/input-group.spec.d.ts +1 -0
  253. package/dist/components/input-group.spec.js +2 -0
  254. package/dist/components/input-group.spec.js.map +1 -0
  255. package/dist/components/input-otp.d.ts +2 -19
  256. package/dist/components/input-otp.js +1 -2
  257. package/dist/components/input-otp.spec.d.ts +1 -0
  258. package/dist/components/input-otp.spec.js +2 -0
  259. package/dist/components/input-otp.spec.js.map +1 -0
  260. package/dist/components/input.d.ts +2 -8
  261. package/dist/components/input.js +1 -2
  262. package/dist/components/input.spec.d.ts +1 -0
  263. package/dist/components/input.spec.js +2 -0
  264. package/dist/components/input.spec.js.map +1 -0
  265. package/dist/components/kbd.d.ts +2 -10
  266. package/dist/components/kbd.js +1 -2
  267. package/dist/components/kbd.spec.d.ts +1 -0
  268. package/dist/components/kbd.spec.js +2 -0
  269. package/dist/components/kbd.spec.js.map +1 -0
  270. package/dist/components/label.d.ts +2 -9
  271. package/dist/components/label.js +1 -2
  272. package/dist/components/label.spec.d.ts +1 -0
  273. package/dist/components/label.spec.js +2 -0
  274. package/dist/components/label.spec.js.map +1 -0
  275. package/dist/components/list.d.ts +2 -25
  276. package/dist/components/list.js +1 -2
  277. package/dist/components/list.spec.d.ts +1 -0
  278. package/dist/components/list.spec.js +2 -0
  279. package/dist/components/list.spec.js.map +1 -0
  280. package/dist/components/logo.d.ts +2 -0
  281. package/dist/components/logo.js +1 -0
  282. package/dist/components/logo.spec.d.ts +1 -0
  283. package/dist/components/logo.spec.js +2 -0
  284. package/dist/components/logo.spec.js.map +1 -0
  285. package/dist/components/marker.d.ts +2 -18
  286. package/dist/components/marker.js +1 -2
  287. package/dist/components/marker.spec.d.ts +1 -0
  288. package/dist/components/marker.spec.js +2 -0
  289. package/dist/components/marker.spec.js.map +1 -0
  290. package/dist/components/mask-input.d.ts +2 -16
  291. package/dist/components/mask-input.js +1 -2
  292. package/dist/components/mask-input.spec.d.ts +1 -0
  293. package/dist/components/mask-input.spec.js +2 -0
  294. package/dist/components/mask-input.spec.js.map +1 -0
  295. package/dist/components/native-select.d.ts +2 -14
  296. package/dist/components/native-select.js +1 -2
  297. package/dist/components/native-select.spec.d.ts +1 -0
  298. package/dist/components/native-select.spec.js +2 -0
  299. package/dist/components/native-select.spec.js.map +1 -0
  300. package/dist/components/navigation-menu.d.ts +2 -26
  301. package/dist/components/navigation-menu.js +1 -2
  302. package/dist/components/navigation-menu.spec.d.ts +1 -0
  303. package/dist/components/navigation-menu.spec.js +2 -0
  304. package/dist/components/navigation-menu.spec.js.map +1 -0
  305. package/dist/components/number-field.d.ts +2 -35
  306. package/dist/components/number-field.js +1 -2
  307. package/dist/components/number-field.spec.d.ts +1 -0
  308. package/dist/components/number-field.spec.js +2 -0
  309. package/dist/components/number-field.spec.js.map +1 -0
  310. package/dist/components/pagination.d.ts +2 -27
  311. package/dist/components/pagination.js +1 -2
  312. package/dist/components/pagination.spec.d.ts +1 -0
  313. package/dist/components/pagination.spec.js +2 -0
  314. package/dist/components/pagination.spec.js.map +1 -0
  315. package/dist/components/phone-input.d.ts +2 -13
  316. package/dist/components/phone-input.js +1 -2
  317. package/dist/components/phone-input.spec.d.ts +1 -0
  318. package/dist/components/phone-input.spec.js +2 -0
  319. package/dist/components/phone-input.spec.js.map +1 -0
  320. package/dist/components/pie-chart.d.ts +2 -42
  321. package/dist/components/pie-chart.js +1 -2
  322. package/dist/components/pie-chart.spec.d.ts +1 -0
  323. package/dist/components/pie-chart.spec.js +2 -0
  324. package/dist/components/pie-chart.spec.js.map +1 -0
  325. package/dist/components/popover.d.ts +2 -21
  326. package/dist/components/popover.js +1 -2
  327. package/dist/components/popover.spec.d.ts +1 -0
  328. package/dist/components/popover.spec.js +2 -0
  329. package/dist/components/popover.spec.js.map +1 -0
  330. package/dist/components/progress.d.ts +2 -14
  331. package/dist/components/progress.js +1 -2
  332. package/dist/components/progress.spec.d.ts +1 -0
  333. package/dist/components/progress.spec.js +2 -0
  334. package/dist/components/progress.spec.js.map +1 -0
  335. package/dist/components/radio-group.d.ts +2 -25
  336. package/dist/components/radio-group.js +1 -2
  337. package/dist/components/radio-group.spec.d.ts +1 -0
  338. package/dist/components/radio-group.spec.js +2 -0
  339. package/dist/components/radio-group.spec.js.map +1 -0
  340. package/dist/components/resizable.d.ts +2 -14
  341. package/dist/components/resizable.js +1 -2
  342. package/dist/components/resizable.spec.d.ts +1 -0
  343. package/dist/components/resizable.spec.js +2 -0
  344. package/dist/components/resizable.spec.js.map +1 -0
  345. package/dist/components/ring-progress.d.ts +2 -17
  346. package/dist/components/ring-progress.js +1 -2
  347. package/dist/components/ring-progress.spec.d.ts +1 -0
  348. package/dist/components/ring-progress.spec.js +2 -0
  349. package/dist/components/ring-progress.spec.js.map +1 -0
  350. package/dist/components/scroll-area.d.ts +2 -11
  351. package/dist/components/scroll-area.js +1 -2
  352. package/dist/components/scroll-area.spec.d.ts +1 -0
  353. package/dist/components/scroll-area.spec.js +2 -0
  354. package/dist/components/scroll-area.spec.js.map +1 -0
  355. package/dist/components/select.d.ts +2 -29
  356. package/dist/components/select.js +1 -2
  357. package/dist/components/select.spec.d.ts +1 -0
  358. package/dist/components/select.spec.js +2 -0
  359. package/dist/components/select.spec.js.map +1 -0
  360. package/dist/components/separator.d.ts +2 -9
  361. package/dist/components/separator.js +1 -2
  362. package/dist/components/separator.spec.d.ts +1 -0
  363. package/dist/components/separator.spec.js +2 -0
  364. package/dist/components/separator.spec.js.map +1 -0
  365. package/dist/components/sidebar.d.ts +2 -96
  366. package/dist/components/sidebar.js +1 -2
  367. package/dist/components/sidebar.spec.d.ts +1 -0
  368. package/dist/components/sidebar.spec.js +2 -0
  369. package/dist/components/sidebar.spec.js.map +1 -0
  370. package/dist/components/simple-grid.d.ts +2 -14
  371. package/dist/components/simple-grid.js +1 -2
  372. package/dist/components/simple-grid.spec.d.ts +1 -0
  373. package/dist/components/simple-grid.spec.js +2 -0
  374. package/dist/components/simple-grid.spec.js.map +1 -0
  375. package/dist/components/skeleton.d.ts +2 -10
  376. package/dist/components/skeleton.js +1 -2
  377. package/dist/components/skeleton.spec.js +1 -1
  378. package/dist/components/skeleton.spec.js.map +1 -1
  379. package/dist/components/slider.d.ts +2 -9
  380. package/dist/components/slider.js +1 -2
  381. package/dist/components/slider.spec.d.ts +1 -0
  382. package/dist/components/slider.spec.js +2 -0
  383. package/dist/components/slider.spec.js.map +1 -0
  384. package/dist/components/sonner.d.ts +2 -8
  385. package/dist/components/sonner.js +1 -2
  386. package/dist/components/sonner.spec.d.ts +1 -0
  387. package/dist/components/sonner.spec.js +2 -0
  388. package/dist/components/sonner.spec.js.map +1 -0
  389. package/dist/components/spinner.d.ts +2 -12
  390. package/dist/components/spinner.js +1 -2
  391. package/dist/components/spinner.spec.d.ts +1 -0
  392. package/dist/components/spinner.spec.js +2 -0
  393. package/dist/components/spinner.spec.js.map +1 -0
  394. package/dist/components/stack.d.ts +2 -14
  395. package/dist/components/stack.js +1 -2
  396. package/dist/components/stack.spec.d.ts +1 -0
  397. package/dist/components/stack.spec.js +2 -0
  398. package/dist/components/stack.spec.js.map +1 -0
  399. package/dist/components/stepper.d.ts +2 -71
  400. package/dist/components/stepper.js +1 -2
  401. package/dist/components/stepper.spec.d.ts +1 -0
  402. package/dist/components/stepper.spec.js +2 -0
  403. package/dist/components/stepper.spec.js.map +1 -0
  404. package/dist/components/switch.d.ts +2 -17
  405. package/dist/components/switch.js +1 -2
  406. package/dist/components/switch.spec.d.ts +1 -0
  407. package/dist/components/switch.spec.js +2 -0
  408. package/dist/components/switch.spec.js.map +1 -0
  409. package/dist/components/table.d.ts +2 -33
  410. package/dist/components/table.js +1 -2
  411. package/dist/components/table.spec.d.ts +1 -0
  412. package/dist/components/table.spec.js +2 -0
  413. package/dist/components/table.spec.js.map +1 -0
  414. package/dist/components/tabs.d.ts +2 -21
  415. package/dist/components/tabs.js +1 -2
  416. package/dist/components/tabs.spec.d.ts +1 -0
  417. package/dist/components/tabs.spec.js +2 -0
  418. package/dist/components/tabs.spec.js.map +1 -0
  419. package/dist/components/text.d.ts +2 -14
  420. package/dist/components/text.js +1 -2
  421. package/dist/components/text.spec.d.ts +1 -0
  422. package/dist/components/text.spec.js +2 -0
  423. package/dist/components/text.spec.js.map +1 -0
  424. package/dist/components/textarea.d.ts +2 -8
  425. package/dist/components/textarea.js +1 -2
  426. package/dist/components/textarea.spec.d.ts +1 -0
  427. package/dist/components/textarea.spec.js +2 -0
  428. package/dist/components/textarea.spec.js.map +1 -0
  429. package/dist/components/theme.d.ts +2 -22
  430. package/dist/components/theme.js +1 -2
  431. package/dist/components/theme.spec.d.ts +1 -0
  432. package/dist/components/theme.spec.js +2 -0
  433. package/dist/components/theme.spec.js.map +1 -0
  434. package/dist/components/timeline.d.ts +2 -61
  435. package/dist/components/timeline.js +1 -2
  436. package/dist/components/timeline.spec.d.ts +1 -0
  437. package/dist/components/timeline.spec.js +2 -0
  438. package/dist/components/timeline.spec.js.map +1 -0
  439. package/dist/components/toggle-group.d.ts +2 -16
  440. package/dist/components/toggle-group.js +1 -2
  441. package/dist/components/toggle-group.spec.d.ts +1 -0
  442. package/dist/components/toggle-group.spec.js +2 -0
  443. package/dist/components/toggle-group.spec.js.map +1 -0
  444. package/dist/components/toggle.d.ts +2 -15
  445. package/dist/components/toggle.js +1 -2
  446. package/dist/components/toggle.spec.d.ts +1 -0
  447. package/dist/components/toggle.spec.js +2 -0
  448. package/dist/components/toggle.spec.js.map +1 -0
  449. package/dist/components/tooltip.d.ts +2 -21
  450. package/dist/components/tooltip.js +1 -2
  451. package/dist/components/tooltip.spec.d.ts +1 -0
  452. package/dist/components/tooltip.spec.js +2 -0
  453. package/dist/components/tooltip.spec.js.map +1 -0
  454. package/dist/components/unstyled-button.d.ts +2 -10
  455. package/dist/components/unstyled-button.js +1 -2
  456. package/dist/components/unstyled-button.spec.d.ts +1 -0
  457. package/dist/components/unstyled-button.spec.js +2 -0
  458. package/dist/components/unstyled-button.spec.js.map +1 -0
  459. package/dist/components/visibility.d.ts +2 -17
  460. package/dist/components/visibility.js +1 -2
  461. package/dist/components/visibility.spec.d.ts +1 -0
  462. package/dist/components/visibility.spec.js +2 -0
  463. package/dist/components/visibility.spec.js.map +1 -0
  464. package/dist/compose-refs-DUtp7lGn.js +2 -0
  465. package/dist/compose-refs-DUtp7lGn.js.map +1 -0
  466. package/dist/compose-refs-GP3zdokU.d.ts +8 -0
  467. package/dist/container-B8-lt-oX.d.ts +12 -0
  468. package/dist/container-CikeKdez.js +2 -0
  469. package/dist/container-CikeKdez.js.map +1 -0
  470. package/dist/data-table-BT75MSO9.d.ts +111 -0
  471. package/dist/data-table-DcyKClKz.js +2 -0
  472. package/dist/data-table-DcyKClKz.js.map +1 -0
  473. package/dist/date-range-picker-BngvCWcR.d.ts +55 -0
  474. package/dist/date-range-picker-CJVpTZdT.js +2 -0
  475. package/dist/date-range-picker-CJVpTZdT.js.map +1 -0
  476. package/dist/dialog-B7I4Ky1i.js +2 -0
  477. package/dist/dialog-B7I4Ky1i.js.map +1 -0
  478. package/dist/dialog-Ej7pnact.d.ts +42 -0
  479. package/dist/donut-chart-BDJR8TXh.d.ts +13 -0
  480. package/dist/donut-chart-BHU4kDE6.js +2 -0
  481. package/dist/donut-chart-BHU4kDE6.js.map +1 -0
  482. package/dist/drawer-BO4mP6y1.js +2 -0
  483. package/dist/drawer-BO4mP6y1.js.map +1 -0
  484. package/dist/drawer-DUfJzrKE.d.ts +43 -0
  485. package/dist/dropdown-menu-CVDIf0Rd.d.ts +48 -0
  486. package/dist/dropdown-menu-zRuQQS5S.js +2 -0
  487. package/dist/dropdown-menu-zRuQQS5S.js.map +1 -0
  488. package/dist/dropzone-43h3L9Ko.d.ts +102 -0
  489. package/dist/dropzone-BLZkZThJ.js +2 -0
  490. package/dist/dropzone-BLZkZThJ.js.map +1 -0
  491. package/dist/empty-BhKsDYZ5.js +2 -0
  492. package/dist/empty-BhKsDYZ5.js.map +1 -0
  493. package/dist/empty-D8ZiTCVK.d.ts +21 -0
  494. package/dist/field-C209yHO9.d.ts +39 -0
  495. package/dist/field-DzR-XrO7.js +2 -0
  496. package/dist/field-DzR-XrO7.js.map +1 -0
  497. package/dist/flex-BC4Diiy4.js +2 -0
  498. package/dist/flex-BC4Diiy4.js.map +1 -0
  499. package/dist/flex-aJXipTAz.d.ts +16 -0
  500. package/dist/grid-B3He1bGe.js +2 -0
  501. package/dist/grid-B3He1bGe.js.map +1 -0
  502. package/dist/grid-D_aEANA7.d.ts +20 -0
  503. package/dist/group-B6n_lMc4.js +2 -0
  504. package/dist/group-B6n_lMc4.js.map +1 -0
  505. package/dist/group-DBtx8eSe.d.ts +15 -0
  506. package/dist/heading-BTXl4JfI.d.ts +14 -0
  507. package/dist/heading-DaxKLVRm.js +2 -0
  508. package/dist/heading-DaxKLVRm.js.map +1 -0
  509. package/dist/hooks/use-breakpoint-value.d.ts +2 -8
  510. package/dist/hooks/use-breakpoint-value.js +1 -2
  511. package/dist/hooks/use-breakpoint-value.spec.js +34 -1
  512. package/dist/hooks/use-breakpoint-value.spec.js.map +1 -1
  513. package/dist/hooks/use-breakpoint.d.ts +2 -8
  514. package/dist/hooks/use-breakpoint.js +1 -2
  515. package/dist/hooks/use-breakpoint.spec.js +1 -1
  516. package/dist/hooks/use-breakpoint.spec.js.map +1 -1
  517. package/dist/hooks/use-disclosure.d.ts +2 -22
  518. package/dist/hooks/use-disclosure.js +1 -2
  519. package/dist/hooks/use-disclosure.spec.js +1 -1
  520. package/dist/hooks/use-disclosure.spec.js.map +1 -1
  521. package/dist/hooks/use-document-visibility.d.ts +2 -6
  522. package/dist/hooks/use-document-visibility.js +1 -2
  523. package/dist/hooks/use-document-visibility.spec.js +1 -1
  524. package/dist/hooks/use-document-visibility.spec.js.map +1 -1
  525. package/dist/hooks/use-hotkeys.spec.js +1 -1
  526. package/dist/hooks/use-idle.d.ts +2 -13
  527. package/dist/hooks/use-idle.js +1 -2
  528. package/dist/hooks/use-idle.spec.js +1 -1
  529. package/dist/hooks/use-idle.spec.js.map +1 -1
  530. package/dist/hooks/use-interval.d.ts +2 -24
  531. package/dist/hooks/use-interval.js +1 -2
  532. package/dist/hooks/use-interval.spec.js +1 -1
  533. package/dist/hooks/use-local-storage.d.ts +2 -16
  534. package/dist/hooks/use-local-storage.js +1 -2
  535. package/dist/hooks/use-local-storage.spec.js +1 -1
  536. package/dist/hooks/use-local-storage.spec.js.map +1 -1
  537. package/dist/hooks/use-mask.d.ts +2 -8
  538. package/dist/hooks/use-mask.js +1 -2
  539. package/dist/hooks/use-mask.spec.d.ts +1 -0
  540. package/dist/hooks/use-mask.spec.js +2 -0
  541. package/dist/hooks/use-mask.spec.js.map +1 -0
  542. package/dist/hooks/use-mobile.d.ts +2 -6
  543. package/dist/hooks/use-mobile.js +1 -2
  544. package/dist/hooks/use-mobile.spec.js +1 -1
  545. package/dist/hover-card-C3yz2zQi.d.ts +13 -0
  546. package/dist/hover-card-Dc8yLsm-.js +2 -0
  547. package/dist/hover-card-Dc8yLsm-.js.map +1 -0
  548. package/dist/index.d.ts +94 -93
  549. package/dist/index.js +1 -1
  550. package/dist/input-CI3RPXz0.d.ts +8 -0
  551. package/dist/input-Cmjl8YdK.js +2 -0
  552. package/dist/input-Cmjl8YdK.js.map +1 -0
  553. package/dist/input-group-CBn36aMg.d.ts +26 -0
  554. package/dist/input-group-DsO2W3Lw.js +2 -0
  555. package/dist/input-group-DsO2W3Lw.js.map +1 -0
  556. package/dist/input-otp-CzfRHf2V.js +2 -0
  557. package/dist/input-otp-CzfRHf2V.js.map +1 -0
  558. package/dist/input-otp-gIEkdiIC.d.ts +19 -0
  559. package/dist/kbd-BTl3AgkY.js +2 -0
  560. package/dist/kbd-BTl3AgkY.js.map +1 -0
  561. package/dist/kbd-DELCQBD0.d.ts +10 -0
  562. package/dist/label-BQDEej_c.js +2 -0
  563. package/dist/label-BQDEej_c.js.map +1 -0
  564. package/dist/label-KZl6I5Ey.d.ts +9 -0
  565. package/dist/lib/badge.d.ts +2 -19
  566. package/dist/lib/badge.js +1 -2
  567. package/dist/lib/badge.spec.d.ts +1 -0
  568. package/dist/lib/badge.spec.js +2 -0
  569. package/dist/lib/badge.spec.js.map +1 -0
  570. package/dist/lib/button.d.ts +2 -19
  571. package/dist/lib/button.js +1 -2
  572. package/dist/lib/button.spec.d.ts +1 -0
  573. package/dist/lib/button.spec.js +2 -0
  574. package/dist/lib/button.spec.js.map +1 -0
  575. package/dist/lib/color.d.ts +2 -19
  576. package/dist/lib/color.js +1 -2
  577. package/dist/lib/color.spec.d.ts +1 -0
  578. package/dist/lib/color.spec.js +2 -0
  579. package/dist/lib/color.spec.js.map +1 -0
  580. package/dist/lib/compose-refs.d.ts +2 -8
  581. package/dist/lib/compose-refs.js +1 -2
  582. package/dist/lib/compose-refs.spec.d.ts +1 -0
  583. package/dist/lib/compose-refs.spec.js +2 -0
  584. package/dist/lib/compose-refs.spec.js.map +1 -0
  585. package/dist/lib/progress.d.ts +2 -19
  586. package/dist/lib/progress.js +1 -2
  587. package/dist/lib/progress.spec.d.ts +1 -0
  588. package/dist/lib/progress.spec.js +2 -0
  589. package/dist/lib/progress.spec.js.map +1 -0
  590. package/dist/lib/utils.d.ts +2 -8
  591. package/dist/lib/utils.js +1 -2
  592. package/dist/lib/utils.spec.d.ts +1 -0
  593. package/dist/lib/utils.spec.js +2 -0
  594. package/dist/lib/utils.spec.js.map +1 -0
  595. package/dist/list-BbCg-ndB.js +2 -0
  596. package/dist/list-BbCg-ndB.js.map +1 -0
  597. package/dist/list-DMa2j1rk.d.ts +25 -0
  598. package/dist/logo-B0v9bNJH.js +2 -0
  599. package/dist/logo-B0v9bNJH.js.map +1 -0
  600. package/dist/logo-Buo7sqqn.d.ts +69 -0
  601. package/dist/marker-4_EnMIHk.js +2 -0
  602. package/dist/marker-4_EnMIHk.js.map +1 -0
  603. package/dist/marker-C4wLa1c0.d.ts +18 -0
  604. package/dist/mask-input-B4R5K1h6.d.ts +16 -0
  605. package/dist/mask-input-ssK7U_Pl.js +2 -0
  606. package/dist/mask-input-ssK7U_Pl.js.map +1 -0
  607. package/dist/native-select-BVmdMkHY.d.ts +14 -0
  608. package/dist/native-select-DZW3Y7nq.js +2 -0
  609. package/dist/native-select-DZW3Y7nq.js.map +1 -0
  610. package/dist/navigation-menu-B6drNL1-.js +2 -0
  611. package/dist/navigation-menu-B6drNL1-.js.map +1 -0
  612. package/dist/navigation-menu-siQVRMUF.d.ts +26 -0
  613. package/dist/number-field-IdgO_BUa.d.ts +35 -0
  614. package/dist/number-field-rEMfZa6A.js +2 -0
  615. package/dist/number-field-rEMfZa6A.js.map +1 -0
  616. package/dist/pagination-BZ3xMXsy.d.ts +27 -0
  617. package/dist/pagination-gnUKddCN.js +2 -0
  618. package/dist/pagination-gnUKddCN.js.map +1 -0
  619. package/dist/phone-input-By5lNF03.d.ts +13 -0
  620. package/dist/phone-input-D72tVPWH.js +2 -0
  621. package/dist/phone-input-D72tVPWH.js.map +1 -0
  622. package/dist/pie-chart-CvG27kFN.d.ts +42 -0
  623. package/dist/pie-chart-S4nMKbsW.js +2 -0
  624. package/dist/pie-chart-S4nMKbsW.js.map +1 -0
  625. package/dist/popover-BtX3tX8M.js +2 -0
  626. package/dist/popover-BtX3tX8M.js.map +1 -0
  627. package/dist/popover-DchAqyKn.d.ts +21 -0
  628. package/dist/progress-DeXRCHUw.d.ts +19 -0
  629. package/dist/progress-QvpY7tiy.js +2 -0
  630. package/dist/progress-QvpY7tiy.js.map +1 -0
  631. package/dist/progress-icFwrvnE.js +2 -0
  632. package/dist/progress-icFwrvnE.js.map +1 -0
  633. package/dist/progress-mEAw9ZhK.d.ts +14 -0
  634. package/dist/radio-group-BNbepK_U.d.ts +25 -0
  635. package/dist/radio-group-DM8n0XPS.js +2 -0
  636. package/dist/radio-group-DM8n0XPS.js.map +1 -0
  637. package/dist/{react.esm-D5AipFQb.js → react.esm-BkhVXJ8s.js} +2 -2
  638. package/dist/{react.esm-D5AipFQb.js.map → react.esm-BkhVXJ8s.js.map} +1 -1
  639. package/dist/resizable-DMQG3xF_.d.ts +14 -0
  640. package/dist/resizable-Dbg7r7nF.js +2 -0
  641. package/dist/resizable-Dbg7r7nF.js.map +1 -0
  642. package/dist/ring-progress-65ccdTQQ.d.ts +17 -0
  643. package/dist/ring-progress-Bfqq_HHA.js +2 -0
  644. package/dist/ring-progress-Bfqq_HHA.js.map +1 -0
  645. package/dist/scroll-area-DFcj5q66.d.ts +11 -0
  646. package/dist/scroll-area-DKS4QPHg.js +2 -0
  647. package/dist/scroll-area-DKS4QPHg.js.map +1 -0
  648. package/dist/select-BoYp-Xyc.d.ts +29 -0
  649. package/dist/select-C3QYNv4t.js +2 -0
  650. package/dist/select-C3QYNv4t.js.map +1 -0
  651. package/dist/separator-BsRLiqWE.d.ts +9 -0
  652. package/dist/separator-CCMmbXL0.js +2 -0
  653. package/dist/separator-CCMmbXL0.js.map +1 -0
  654. package/dist/sidebar-B5bEgDy5.js +2 -0
  655. package/dist/sidebar-B5bEgDy5.js.map +1 -0
  656. package/dist/sidebar-D7HQlj5O.d.ts +96 -0
  657. package/dist/simple-grid-9EryoUWI.js +2 -0
  658. package/dist/simple-grid-9EryoUWI.js.map +1 -0
  659. package/dist/simple-grid-B2zjpwZ3.d.ts +14 -0
  660. package/dist/skeleton-Cn3zBJRe.js +2 -0
  661. package/dist/skeleton-Cn3zBJRe.js.map +1 -0
  662. package/dist/skeleton-Co8pevj-.d.ts +10 -0
  663. package/dist/skills/uselets-ui/references/component-catalog.md +3 -0
  664. package/dist/skills/uselets-ui/references/package-guide.md +1 -1
  665. package/dist/slider-CC-gQawq.js +2 -0
  666. package/dist/slider-CC-gQawq.js.map +1 -0
  667. package/dist/slider-DmZ1YfLg.d.ts +9 -0
  668. package/dist/sonner-Binx8JJ2.d.ts +8 -0
  669. package/dist/sonner-DrKqhTDI.js +2 -0
  670. package/dist/sonner-DrKqhTDI.js.map +1 -0
  671. package/dist/spinner-Dz63Ltq-.d.ts +12 -0
  672. package/dist/spinner-ntLrcDLN.js +2 -0
  673. package/dist/spinner-ntLrcDLN.js.map +1 -0
  674. package/dist/stack-BbLllsqk.js +2 -0
  675. package/dist/stack-BbLllsqk.js.map +1 -0
  676. package/dist/stack-WiND8Dxq.d.ts +14 -0
  677. package/dist/stepper-BQ-59_UO.js +2 -0
  678. package/dist/stepper-BQ-59_UO.js.map +1 -0
  679. package/dist/stepper-DK5_o7RG.d.ts +71 -0
  680. package/dist/switch-DjdOGECT.js +2 -0
  681. package/dist/switch-DjdOGECT.js.map +1 -0
  682. package/dist/switch-OtBakZHc.d.ts +17 -0
  683. package/dist/table-CuE0Aenj.js +2 -0
  684. package/dist/table-CuE0Aenj.js.map +1 -0
  685. package/dist/table-qIAtG7Y5.d.ts +33 -0
  686. package/dist/tabs-BgWxTTah.d.ts +21 -0
  687. package/dist/tabs-DK9-RHkP.js +2 -0
  688. package/dist/tabs-DK9-RHkP.js.map +1 -0
  689. package/dist/text-CKFZ9Xsj.d.ts +14 -0
  690. package/dist/text-Kg1xuinT.js +2 -0
  691. package/dist/text-Kg1xuinT.js.map +1 -0
  692. package/dist/textarea-C8zrf9Rz.js +2 -0
  693. package/dist/textarea-C8zrf9Rz.js.map +1 -0
  694. package/dist/textarea-Cr9_P-bV.d.ts +8 -0
  695. package/dist/theme-BwEhfTyl.d.ts +22 -0
  696. package/dist/theme-DZJ_cJYp.js +2 -0
  697. package/dist/theme-DZJ_cJYp.js.map +1 -0
  698. package/dist/timeline-BDY3YzeJ.d.ts +61 -0
  699. package/dist/timeline-pBm0t1tb.js +2 -0
  700. package/dist/timeline-pBm0t1tb.js.map +1 -0
  701. package/dist/toggle-DJJkcqDy.js +2 -0
  702. package/dist/toggle-DJJkcqDy.js.map +1 -0
  703. package/dist/toggle-group-C3iNDYqI.d.ts +16 -0
  704. package/dist/toggle-group-D0OIpZN-.js +2 -0
  705. package/dist/toggle-group-D0OIpZN-.js.map +1 -0
  706. package/dist/toggle-jc8s_Z3T.d.ts +15 -0
  707. package/dist/tooltip-BZjnEqw5.d.ts +21 -0
  708. package/dist/tooltip-CNUNWZvs.js +2 -0
  709. package/dist/tooltip-CNUNWZvs.js.map +1 -0
  710. package/dist/unstyled-button-C-Zs4Qv2.d.ts +10 -0
  711. package/dist/unstyled-button-lGbDJA55.js +2 -0
  712. package/dist/unstyled-button-lGbDJA55.js.map +1 -0
  713. package/dist/use-breakpoint-D6YACz8C.js +2 -0
  714. package/dist/use-breakpoint-D6YACz8C.js.map +1 -0
  715. package/dist/use-breakpoint-DDuQFekj.d.ts +8 -0
  716. package/dist/use-breakpoint-value-BDjKflDX.js +2 -0
  717. package/dist/use-breakpoint-value-BDjKflDX.js.map +1 -0
  718. package/dist/use-breakpoint-value-CRbHqGAu.d.ts +8 -0
  719. package/dist/use-disclosure-CNaFpYFQ.d.ts +22 -0
  720. package/dist/use-disclosure-Cr405eRD.js +2 -0
  721. package/dist/use-disclosure-Cr405eRD.js.map +1 -0
  722. package/dist/use-document-visibility-CoWjCswu.js +2 -0
  723. package/dist/use-document-visibility-CoWjCswu.js.map +1 -0
  724. package/dist/use-document-visibility-DIzUN4tB.d.ts +6 -0
  725. package/dist/use-idle-Bsi10VE9.d.ts +13 -0
  726. package/dist/use-idle-DgheJlxd.js +2 -0
  727. package/dist/use-idle-DgheJlxd.js.map +1 -0
  728. package/dist/use-interval-B1aNo3tA.js +2 -0
  729. package/dist/use-interval-B1aNo3tA.js.map +1 -0
  730. package/dist/use-interval-CJVmE_lC.d.ts +24 -0
  731. package/dist/use-local-storage-CJBqB1GC.js +2 -0
  732. package/dist/use-local-storage-CJBqB1GC.js.map +1 -0
  733. package/dist/use-local-storage-Cmq4PWJc.d.ts +16 -0
  734. package/dist/use-mask-DBvFShXA.js +2 -0
  735. package/dist/use-mask-DBvFShXA.js.map +1 -0
  736. package/dist/use-mask-DRJVVcdh.d.ts +8 -0
  737. package/dist/use-mobile-BYwiljVq.d.ts +6 -0
  738. package/dist/use-mobile-OMmp56u2.js +2 -0
  739. package/dist/use-mobile-OMmp56u2.js.map +1 -0
  740. package/dist/utils-DGsdoA5l.d.ts +8 -0
  741. package/dist/utils-DP9KtG7I.js +2 -0
  742. package/dist/utils-DP9KtG7I.js.map +1 -0
  743. package/dist/visibility-_3zV3l-A.d.ts +17 -0
  744. package/dist/visibility-twHwe9Xp.js +2 -0
  745. package/dist/visibility-twHwe9Xp.js.map +1 -0
  746. package/package.json +10 -8
  747. package/skills/uselets-ui/references/component-catalog.md +3 -0
  748. package/skills/uselets-ui/references/package-guide.md +1 -1
  749. package/dist/components/accordion.js.map +0 -1
  750. package/dist/components/alert-dialog.js.map +0 -1
  751. package/dist/components/alert.js.map +0 -1
  752. package/dist/components/anchor.js.map +0 -1
  753. package/dist/components/area-chart.js.map +0 -1
  754. package/dist/components/avatar.js.map +0 -1
  755. package/dist/components/badge.js.map +0 -1
  756. package/dist/components/bar-chart.js.map +0 -1
  757. package/dist/components/breadcrumb.js.map +0 -1
  758. package/dist/components/button-group.js.map +0 -1
  759. package/dist/components/button.js.map +0 -1
  760. package/dist/components/calendar.js.map +0 -1
  761. package/dist/components/card.js.map +0 -1
  762. package/dist/components/carousel.js.map +0 -1
  763. package/dist/components/center.js.map +0 -1
  764. package/dist/components/chart.js.map +0 -1
  765. package/dist/components/checkbox.js.map +0 -1
  766. package/dist/components/code.js.map +0 -1
  767. package/dist/components/collapsible.js.map +0 -1
  768. package/dist/components/combobox.js.map +0 -1
  769. package/dist/components/command.js.map +0 -1
  770. package/dist/components/container.js.map +0 -1
  771. package/dist/components/data-table.js.map +0 -1
  772. package/dist/components/date-range-picker.js.map +0 -1
  773. package/dist/components/dialog.js.map +0 -1
  774. package/dist/components/donut-chart.js.map +0 -1
  775. package/dist/components/drawer.js.map +0 -1
  776. package/dist/components/dropdown-menu.js.map +0 -1
  777. package/dist/components/dropzone.js.map +0 -1
  778. package/dist/components/empty.js.map +0 -1
  779. package/dist/components/field.js.map +0 -1
  780. package/dist/components/flex.js.map +0 -1
  781. package/dist/components/grid.js.map +0 -1
  782. package/dist/components/group.js.map +0 -1
  783. package/dist/components/heading.js.map +0 -1
  784. package/dist/components/hover-card.js.map +0 -1
  785. package/dist/components/input-group.js.map +0 -1
  786. package/dist/components/input-otp.js.map +0 -1
  787. package/dist/components/input.js.map +0 -1
  788. package/dist/components/kbd.js.map +0 -1
  789. package/dist/components/label.js.map +0 -1
  790. package/dist/components/list.js.map +0 -1
  791. package/dist/components/marker.js.map +0 -1
  792. package/dist/components/mask-input.js.map +0 -1
  793. package/dist/components/native-select.js.map +0 -1
  794. package/dist/components/navigation-menu.js.map +0 -1
  795. package/dist/components/number-field.js.map +0 -1
  796. package/dist/components/pagination.js.map +0 -1
  797. package/dist/components/phone-input.js.map +0 -1
  798. package/dist/components/pie-chart.js.map +0 -1
  799. package/dist/components/popover.js.map +0 -1
  800. package/dist/components/progress.js.map +0 -1
  801. package/dist/components/radio-group.js.map +0 -1
  802. package/dist/components/resizable.js.map +0 -1
  803. package/dist/components/ring-progress.js.map +0 -1
  804. package/dist/components/scroll-area.js.map +0 -1
  805. package/dist/components/select.js.map +0 -1
  806. package/dist/components/separator.js.map +0 -1
  807. package/dist/components/sidebar.js.map +0 -1
  808. package/dist/components/simple-grid.js.map +0 -1
  809. package/dist/components/skeleton.js.map +0 -1
  810. package/dist/components/slider.js.map +0 -1
  811. package/dist/components/sonner.js.map +0 -1
  812. package/dist/components/spinner.js.map +0 -1
  813. package/dist/components/stack.js.map +0 -1
  814. package/dist/components/stepper.js.map +0 -1
  815. package/dist/components/switch.js.map +0 -1
  816. package/dist/components/table.js.map +0 -1
  817. package/dist/components/tabs.js.map +0 -1
  818. package/dist/components/text.js.map +0 -1
  819. package/dist/components/textarea.js.map +0 -1
  820. package/dist/components/theme.js.map +0 -1
  821. package/dist/components/timeline.js.map +0 -1
  822. package/dist/components/toggle-group.js.map +0 -1
  823. package/dist/components/toggle.js.map +0 -1
  824. package/dist/components/tooltip.js.map +0 -1
  825. package/dist/components/unstyled-button.js.map +0 -1
  826. package/dist/components/visibility.js.map +0 -1
  827. package/dist/hooks/use-breakpoint-value.js.map +0 -1
  828. package/dist/hooks/use-breakpoint.js.map +0 -1
  829. package/dist/hooks/use-disclosure.js.map +0 -1
  830. package/dist/hooks/use-document-visibility.js.map +0 -1
  831. package/dist/hooks/use-idle.js.map +0 -1
  832. package/dist/hooks/use-interval.js.map +0 -1
  833. package/dist/hooks/use-local-storage.js.map +0 -1
  834. package/dist/hooks/use-mask.js.map +0 -1
  835. package/dist/hooks/use-mobile.js.map +0 -1
  836. package/dist/lib/badge.js.map +0 -1
  837. package/dist/lib/button.js.map +0 -1
  838. package/dist/lib/color.js.map +0 -1
  839. package/dist/lib/compose-refs.js.map +0 -1
  840. package/dist/lib/progress.js.map +0 -1
  841. package/dist/lib/utils.js.map +0 -1
  842. package/dist/magic-string.es-oADFB1hu.js +0 -15
  843. package/dist/magic-string.es-oADFB1hu.js.map +0 -1
  844. package/dist/utils-Cj3IZeiu.js +0 -37
  845. package/dist/utils-Cj3IZeiu.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.spec.js","names":[],"sources":["../../src/components/slider.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nclass ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nglobalThis.ResizeObserver = ResizeObserverStub as unknown as typeof ResizeObserver\n\nimport { Field, FieldLabel } from './field'\nimport { Slider } from './slider'\n\ndescribe('Slider', () => {\n it('renders the track, range and one thumb per default min/max value', () => {\n const { container } = render(<Slider />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"slider-track\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"slider-range\"]')).not.toBeNull()\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(2)\n })\n\n it('renders a single thumb when defaultValue has one value', () => {\n const { container } = render(<Slider defaultValue={[40]} />)\n\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(1)\n })\n\n it('renders one thumb per value when the value prop is controlled', () => {\n const { container } = render(<Slider value={[10, 50, 90]} onValueChange={() => {}} />)\n\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(3)\n })\n\n it('assigns an explicit id to the root element', () => {\n const { container } = render(<Slider id=\"volume\" />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')?.getAttribute('id')).toBe('volume')\n })\n\n it('wires the field control id when rendered inside Field', () => {\n const { container } = render(\n <Field>\n <FieldLabel>Volume</FieldLabel>\n <Slider />\n </Field>\n )\n\n const label = container.querySelector('[data-slot=\"field-label\"]')\n const slider = container.querySelector('[data-slot=\"slider\"]')\n\n expect(label?.getAttribute('for')).toBe(slider?.getAttribute('id'))\n expect(slider?.getAttribute('id')).toBeTruthy()\n })\n\n it('merges a custom className onto the root', () => {\n const { container } = render(<Slider className=\"custom-slider\" />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')?.className).toContain('custom-slider')\n })\n})\n"],"mappings":"uNAEA,IAAM,mBAAN,KAAyB,CACvB,SAAU,CAAC,CACX,WAAY,CAAC,CACb,YAAa,CAAC,CAChB,EAEA,WAAW,eAAiB,mBAK5B,SAAS,aAAgB,CACvB,GAAG,uEAA0E,CAC3E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAS,CAAA,CAAC,EAEvC,OAAO,EAAU,cAAc,sBAAsB,CAAC,CAAC,CAAC,IAAI,SAAS,EACrE,OAAO,EAAU,cAAc,4BAA4B,CAAC,CAAC,CAAC,IAAI,SAAS,EAC3E,OAAO,EAAU,cAAc,4BAA4B,CAAC,CAAC,CAAC,IAAI,SAAS,EAC3E,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,6DAAgE,CACjE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,aAAc,CAAC,EAAE,CAAI,CAAA,CAAC,EAE3D,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,MAAO,CAAC,GAAI,GAAI,EAAE,EAAG,kBAAqB,CAAC,CAAI,CAAA,CAAC,EAErF,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,iDAAoD,CACrD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,GAAG,QAAU,CAAA,CAAC,EAEnD,OAAO,EAAU,cAAc,sBAAsB,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC3F,CAAC,EAED,GAAG,4DAA+D,CAChE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,QAAkB,CAAA,EAC9B,EAAC,EAAD,CAAS,CAAA,CACJ,CAAA,CAAA,CACT,EAEM,EAAQ,EAAU,cAAc,2BAA2B,EAC3D,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,GAAO,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,aAAa,IAAI,CAAC,EAClE,OAAO,GAAQ,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,CAChD,CAAC,EAED,GAAG,8CAAiD,CAClD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,UAAU,eAAiB,CAAA,CAAC,EAEjE,OAAO,EAAU,cAAc,sBAAsB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,eAAe,CAC9F,CAAC,CACH,CAAC"}
@@ -1,8 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { ToasterProps as ToasterProps$1, toast } from "sonner";
3
- //#region src/components/sonner.d.ts
4
- type ToasterProps = ToasterProps$1;
5
- declare const Toaster: (props: ToasterProps) => import("react").JSX.Element;
6
- //#endregion
7
- export { Toaster, ToasterProps, toast };
8
- //# sourceMappingURL=sonner.d.ts.map
1
+ import { n as ToasterProps, r as toast, t as Toaster } from "../sonner-Binx8JJ2.js";
2
+ export { Toaster, ToasterProps, toast };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{IconAlertOctagon as e,IconAlertTriangle as t,IconCircleCheck as n,IconInfoCircle as r,IconLoader as i}from"@tabler/icons-react";import{jsx as a}from"react/jsx-runtime";import{useTheme as o}from"next-themes";import{Toaster as s,toast as c}from"sonner";const Toaster=c=>{let{theme:l=`system`}=o();return a(s,{theme:l,className:`toaster group`,richColors:!0,icons:{success:a(n,{className:`size-4`}),info:a(r,{className:`size-4`}),warning:a(t,{className:`size-4`}),error:a(e,{className:`size-4`}),loading:a(i,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},toastOptions:{classNames:{toast:`cn-toast`}},...c})};export{Toaster,c as toast};
2
- //# sourceMappingURL=sonner.js.map
1
+ import{n as e,t}from"../sonner-DrKqhTDI.js";export{t as Toaster,e as toast};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{r as e}from"../react.esm-BkhVXJ8s.js";import{jsx as t}from"react/jsx-runtime";const{SonnerMock:n,useThemeMock:r}=vi.hoisted(()=>({SonnerMock:vi.fn(e=>null),useThemeMock:vi.fn(()=>({theme:`system`}))}));vi.mock(`sonner`,()=>({Toaster:n,toast:{message:vi.fn()}})),vi.mock(`next-themes`,()=>({useTheme:r}));const{Toaster:i,toast:a}=await import(`./sonner.js`);function lastSonnerProps(){let e=n.mock.calls.at(-1)?.[0];if(!e)throw Error(`Toaster (mocked Sonner) was not rendered`);return e}describe(`Toaster`,()=>{it(`defaults to the system theme when next-themes reports none`,()=>{r.mockReturnValueOnce({theme:void 0}),e(t(i,{})),expect(lastSonnerProps().theme).toBe(`system`)}),it(`forwards the resolved theme from next-themes`,()=>{r.mockReturnValueOnce({theme:`dark`}),e(t(i,{})),expect(lastSonnerProps().theme).toBe(`dark`)}),it(`configures richColors, base className, and the CSS variable style block`,()=>{e(t(i,{}));let n=lastSonnerProps();expect(n.richColors).toBe(!0),expect(n.className).toBe(`toaster group`),expect(n.style[`--normal-bg`]).toBe(`var(--popover)`),expect(n.style[`--normal-text`]).toBe(`var(--popover-foreground)`),expect(n.style[`--normal-border`]).toBe(`var(--border)`),expect(n.style[`--border-radius`]).toBe(`var(--radius)`)}),it(`provides an icon for every toast type`,()=>{e(t(i,{}));let{icons:n}=lastSonnerProps();for(let e of[`success`,`info`,`warning`,`error`,`loading`])expect(n?.[e]).toBeTruthy()}),it(`sets the shared toast className via toastOptions`,()=>{e(t(i,{})),expect(lastSonnerProps().toastOptions?.classNames?.toast).toBe(`cn-toast`)}),it(`lets consumer props override the defaults through prop spreading`,()=>{e(t(i,{position:`top-center`,richColors:!1}));let n=lastSonnerProps();expect(n.position).toBe(`top-center`),expect(n.richColors).toBe(!1)}),it(`re-exports the sonner toast function`,()=>{expect(a).toBeDefined()})});
2
+ //# sourceMappingURL=sonner.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.spec.js","names":[],"sources":["../../src/components/sonner.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\ntype SonnerProps = {\n theme?: string\n richColors?: boolean\n className?: string\n style?: Record<string, string>\n icons?: Record<string, unknown>\n toastOptions?: { classNames?: { toast?: string } }\n position?: string\n [key: string]: unknown\n}\n\nconst { SonnerMock, useThemeMock } = vi.hoisted(() => ({\n SonnerMock: vi.fn((_props?: SonnerProps) => null),\n useThemeMock: vi.fn((): { theme?: string } => ({ theme: 'system' }))\n}))\n\nvi.mock('sonner', () => ({\n Toaster: SonnerMock,\n toast: { message: vi.fn() }\n}))\n\nvi.mock('next-themes', () => ({\n useTheme: useThemeMock\n}))\n\nconst { Toaster, toast } = await import('./sonner')\n\nfunction lastSonnerProps(): SonnerProps {\n const props = SonnerMock.mock.calls.at(-1)?.[0]\n\n if (!props) {\n throw new Error('Toaster (mocked Sonner) was not rendered')\n }\n\n return props\n}\n\ndescribe('Toaster', () => {\n it('defaults to the system theme when next-themes reports none', () => {\n useThemeMock.mockReturnValueOnce({ theme: undefined })\n\n render(<Toaster />)\n\n expect(lastSonnerProps().theme).toBe('system')\n })\n\n it('forwards the resolved theme from next-themes', () => {\n useThemeMock.mockReturnValueOnce({ theme: 'dark' })\n\n render(<Toaster />)\n\n expect(lastSonnerProps().theme).toBe('dark')\n })\n\n it('configures richColors, base className, and the CSS variable style block', () => {\n render(<Toaster />)\n\n const props = lastSonnerProps()\n\n expect(props.richColors).toBe(true)\n expect(props.className).toBe('toaster group')\n expect(props.style!['--normal-bg']).toBe('var(--popover)')\n expect(props.style!['--normal-text']).toBe('var(--popover-foreground)')\n expect(props.style!['--normal-border']).toBe('var(--border)')\n expect(props.style!['--border-radius']).toBe('var(--radius)')\n })\n\n it('provides an icon for every toast type', () => {\n render(<Toaster />)\n\n const { icons } = lastSonnerProps()\n\n for (const key of ['success', 'info', 'warning', 'error', 'loading']) {\n expect(icons?.[key]).toBeTruthy()\n }\n })\n\n it('sets the shared toast className via toastOptions', () => {\n render(<Toaster />)\n\n expect(lastSonnerProps().toastOptions?.classNames?.toast).toBe('cn-toast')\n })\n\n it('lets consumer props override the defaults through prop spreading', () => {\n render(<Toaster position=\"top-center\" richColors={false} />)\n\n const props = lastSonnerProps()\n\n expect(props.position).toBe('top-center')\n expect(props.richColors).toBe(false)\n })\n\n it('re-exports the sonner toast function', () => {\n expect(toast).toBeDefined()\n })\n})\n"],"mappings":"6HAaA,KAAM,CAAE,aAAY,gBAAiB,GAAG,aAAe,CACrD,WAAY,GAAG,GAAI,GAAyB,IAAI,EAChD,aAAc,GAAG,QAA8B,CAAE,MAAO,QAAS,EAAE,CACrE,EAAE,EAEF,GAAG,KAAK,cAAiB,CACvB,QAAS,EACT,MAAO,CAAE,QAAS,GAAG,GAAG,CAAE,CAC5B,EAAE,EAEF,GAAG,KAAK,mBAAsB,CAC5B,SAAU,CACZ,EAAE,EAEF,KAAM,CAAE,UAAS,SAAU,MAAM,OAAO,eAExC,SAAS,iBAA+B,CACtC,IAAM,EAAQ,EAAW,KAAK,MAAM,GAAG,EAAE,CAAC,GAAG,GAE7C,GAAI,CAAC,EACH,MAAU,MAAM,0CAA0C,EAG5D,OAAO,CACT,CAEA,SAAS,cAAiB,CACxB,GAAG,iEAAoE,CACrE,EAAa,oBAAoB,CAAE,MAAO,IAAA,EAAU,CAAC,EAErD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ,CAC/C,CAAC,EAED,GAAG,mDAAsD,CACvD,EAAa,oBAAoB,CAAE,MAAO,MAAO,CAAC,EAElD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAC7C,CAAC,EAED,GAAG,8EAAiF,CAClF,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,IAAM,EAAQ,gBAAgB,EAE9B,OAAO,EAAM,UAAU,CAAC,CAAC,KAAK,EAAI,EAClC,OAAO,EAAM,SAAS,CAAC,CAAC,KAAK,eAAe,EAC5C,OAAO,EAAM,MAAO,cAAc,CAAC,CAAC,KAAK,gBAAgB,EACzD,OAAO,EAAM,MAAO,gBAAgB,CAAC,CAAC,KAAK,2BAA2B,EACtE,OAAO,EAAM,MAAO,kBAAkB,CAAC,CAAC,KAAK,eAAe,EAC5D,OAAO,EAAM,MAAO,kBAAkB,CAAC,CAAC,KAAK,eAAe,CAC9D,CAAC,EAED,GAAG,4CAA+C,CAChD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,GAAM,CAAE,SAAU,gBAAgB,EAElC,IAAK,IAAM,IAAO,CAAC,UAAW,OAAQ,UAAW,QAAS,SAAS,EACjE,OAAO,IAAQ,EAAI,CAAC,CAAC,WAAW,CAEpC,CAAC,EAED,GAAG,uDAA0D,CAC3D,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,CAAC,KAAK,UAAU,CAC3E,CAAC,EAED,GAAG,uEAA0E,CAC3E,EAAO,EAAC,EAAD,CAAS,SAAS,aAAa,WAAY,EAAQ,CAAA,CAAC,EAE3D,IAAM,EAAQ,gBAAgB,EAE9B,OAAO,EAAM,QAAQ,CAAC,CAAC,KAAK,YAAY,EACxC,OAAO,EAAM,UAAU,CAAC,CAAC,KAAK,EAAK,CACrC,CAAC,EAED,GAAG,2CAA8C,CAC/C,OAAO,CAAK,CAAC,CAAC,YAAY,CAC5B,CAAC,CACH,CAAC"}
@@ -1,12 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
- //#region src/components/spinner.d.ts
5
- declare const spinnerVariants: (props?: ({
6
- size?: "lg" | "md" | "sm" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- type SpinnerProps = React.ComponentProps<'svg'> & VariantProps<typeof spinnerVariants>;
9
- declare function Spinner({ className, size, ...props }: SpinnerProps): React.JSX.Element;
10
- //#endregion
11
- export { Spinner, SpinnerProps, spinnerVariants };
12
- //# sourceMappingURL=spinner.d.ts.map
1
+ import { n as SpinnerProps, r as spinnerVariants, t as Spinner } from "../spinner-Dz63Ltq-.js";
2
+ export { Spinner, SpinnerProps, spinnerVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{IconLoader as t}from"@tabler/icons-react";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";const i=r(`animate-spin`,{variants:{size:{sm:`size-3`,md:`size-4`,lg:`size-5`}},defaultVariants:{size:`md`}});function Spinner({className:r,size:a=`md`,...o}){return n(t,{role:`status`,"aria-label":`Loading`,"data-slot":`spinner`,"data-size":a,className:e(i({size:a}),r),...o})}export{Spinner,i as spinnerVariants};
2
- //# sourceMappingURL=spinner.js.map
1
+ import{n as e,t}from"../spinner-ntLrcDLN.js";export{t as Spinner,e as spinnerVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../spinner-ntLrcDLN.js";import{a as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";describe(`Spinner`,()=>{it(`renders with the status role, a loading label and the default medium size`,()=>{let{container:t}=n(r(e,{})),i=t.querySelector(`[data-slot="spinner"]`);expect(i).not.toBeNull(),expect(i?.getAttribute(`role`)).toBe(`status`),expect(i?.getAttribute(`aria-label`)).toBe(`Loading`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`class`)).toContain(`animate-spin`),expect(i?.getAttribute(`class`)).toContain(`size-4`)}),it(`applies the small and large size variant classes`,()=>{let{container:t}=n(r(e,{size:`sm`})),i=t.querySelector(`[data-slot="spinner"]`);expect(i?.getAttribute(`data-size`)).toBe(`sm`),expect(i?.getAttribute(`class`)).toContain(`size-3`);let{container:a}=n(r(e,{size:`lg`})),o=a.querySelector(`[data-slot="spinner"]`);expect(o?.getAttribute(`data-size`)).toBe(`lg`),expect(o?.getAttribute(`class`)).toContain(`size-5`)}),it(`merges a custom className with the variant classes`,()=>{let{container:t}=n(r(e,{className:`text-primary`})),i=t.querySelector(`[data-slot="spinner"]`);expect(i?.getAttribute(`class`)).toContain(`text-primary`),expect(i?.getAttribute(`class`)).toContain(`animate-spin`)}),it(`is discoverable through the status role`,()=>{n(r(e,{})),expect(t.getByRole(`status`,{name:`Loading`})).not.toBeNull()})});
2
+ //# sourceMappingURL=spinner.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.spec.js","names":[],"sources":["../../src/components/spinner.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Spinner } from './spinner'\n\ndescribe('Spinner', () => {\n it('renders with the status role, a loading label and the default medium size', () => {\n const { container } = render(<Spinner />)\n\n const spinner = container.querySelector('[data-slot=\"spinner\"]')\n\n expect(spinner).not.toBeNull()\n expect(spinner?.getAttribute('role')).toBe('status')\n expect(spinner?.getAttribute('aria-label')).toBe('Loading')\n expect(spinner?.getAttribute('data-size')).toBe('md')\n expect(spinner?.getAttribute('class')).toContain('animate-spin')\n expect(spinner?.getAttribute('class')).toContain('size-4')\n })\n\n it('applies the small and large size variant classes', () => {\n const { container: smallContainer } = render(<Spinner size=\"sm\" />)\n const small = smallContainer.querySelector('[data-slot=\"spinner\"]')\n\n expect(small?.getAttribute('data-size')).toBe('sm')\n expect(small?.getAttribute('class')).toContain('size-3')\n\n const { container: largeContainer } = render(<Spinner size=\"lg\" />)\n const large = largeContainer.querySelector('[data-slot=\"spinner\"]')\n\n expect(large?.getAttribute('data-size')).toBe('lg')\n expect(large?.getAttribute('class')).toContain('size-5')\n })\n\n it('merges a custom className with the variant classes', () => {\n const { container } = render(<Spinner className=\"text-primary\" />)\n\n const spinner = container.querySelector('[data-slot=\"spinner\"]')\n\n expect(spinner?.getAttribute('class')).toContain('text-primary')\n expect(spinner?.getAttribute('class')).toContain('animate-spin')\n })\n\n it('is discoverable through the status role', () => {\n render(<Spinner />)\n\n expect(screen.getByRole('status', { name: 'Loading' })).not.toBeNull()\n })\n})\n"],"mappings":"+KAIA,SAAS,cAAiB,CACxB,GAAG,gFAAmF,CACpF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElC,EAAU,EAAU,cAAc,uBAAuB,EAE/D,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,GAAS,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EACnD,OAAO,GAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAC1D,OAAO,GAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,EAC/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,CAC3D,CAAC,EAED,GAAG,uDAA0D,CAC3D,GAAM,CAAE,UAAW,GAAmB,EAAO,EAAC,EAAD,CAAS,KAAK,IAAM,CAAA,CAAC,EAC5D,EAAQ,EAAe,cAAc,uBAAuB,EAElE,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,EAEvD,GAAM,CAAE,UAAW,GAAmB,EAAO,EAAC,EAAD,CAAS,KAAK,IAAM,CAAA,CAAC,EAC5D,EAAQ,EAAe,cAAc,uBAAuB,EAElE,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,CACzD,CAAC,EAED,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAS,UAAU,cAAgB,CAAA,CAAC,EAE3D,EAAU,EAAU,cAAc,uBAAuB,EAE/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,EAC/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,CACjE,CAAC,EAED,GAAG,8CAAiD,CAClD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,EAAO,UAAU,SAAU,CAAE,KAAM,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CACvE,CAAC,CACH,CAAC"}
@@ -1,14 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
- //#region src/components/stack.d.ts
5
- declare const stackVariants: (props?: ({
6
- align?: "baseline" | "center" | "end" | "start" | "stretch" | null | undefined;
7
- justify?: "around" | "between" | "center" | "end" | "evenly" | "start" | null | undefined;
8
- gap?: "lg" | "md" | "sm" | "xl" | "xs" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
- type StackProps = React.ComponentProps<'div'> & VariantProps<typeof stackVariants>;
11
- declare function Stack({ className, align, justify, gap, ...props }: StackProps): React.JSX.Element;
12
- //#endregion
13
- export { Stack, StackProps, stackVariants };
14
- //# sourceMappingURL=stack.d.ts.map
1
+ import { n as StackProps, r as stackVariants, t as Stack } from "../stack-WiND8Dxq.js";
2
+ export { Stack, StackProps, stackVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`flex flex-col`,{variants:{align:{start:`items-start`,end:`items-end`,center:`items-center`,baseline:`items-baseline`,stretch:`items-stretch`},justify:{start:`justify-start`,end:`justify-end`,center:`justify-center`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`},gap:{xs:`gap-1`,sm:`gap-2`,md:`gap-4`,lg:`gap-6`,xl:`gap-8`}},defaultVariants:{gap:`md`}});function Stack({className:n,align:i,justify:a,gap:o=`md`,...s}){return t(`div`,{"data-slot":`stack`,"data-align":i,"data-justify":a,"data-gap":o,className:e(r({align:i,justify:a,gap:o}),n),...s})}export{Stack,r as stackVariants};
2
- //# sourceMappingURL=stack.js.map
1
+ import{n as e,t}from"../stack-BbLllsqk.js";export{t as Stack,e as stackVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../stack-BbLllsqk.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`Stack`,()=>{it(`renders with data-slot, flex-col layout and the default md gap`,()=>{let{container:r}=t(n(e,{})),i=r.querySelector(`[data-slot="stack"]`);expect(i).not.toBeNull(),expect(i?.className).toContain(`flex`),expect(i?.className).toContain(`flex-col`),expect(i?.className).toContain(`gap-4`),expect(i?.getAttribute(`data-gap`)).toBe(`md`),expect(i?.getAttribute(`data-align`)).toBeNull(),expect(i?.getAttribute(`data-justify`)).toBeNull()}),it(`applies the align, justify and gap variant classes and data attributes`,()=>{let{container:r}=t(n(e,{align:`center`,justify:`between`,gap:`xl`})),i=r.querySelector(`[data-slot="stack"]`);expect(i?.getAttribute(`data-align`)).toBe(`center`),expect(i?.getAttribute(`data-justify`)).toBe(`between`),expect(i?.getAttribute(`data-gap`)).toBe(`xl`),expect(i?.className).toContain(`items-center`),expect(i?.className).toContain(`justify-between`),expect(i?.className).toContain(`gap-8`)}),it(`merges a custom className with the variant classes`,()=>{let{container:r}=t(n(e,{className:`custom-stack`}));expect(r.querySelector(`[data-slot="stack"]`)?.className).toContain(`custom-stack`)}),it(`forwards ref to the underlying div element`,()=>{let r={current:null};t(n(e,{ref:r})),expect(r.current).toBeInstanceOf(HTMLDivElement)})});
2
+ //# sourceMappingURL=stack.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.spec.js","names":[],"sources":["../../src/components/stack.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Stack } from './stack'\n\ndescribe('Stack', () => {\n it('renders with data-slot, flex-col layout and the default md gap', () => {\n const { container } = render(<Stack />)\n\n const stack = container.querySelector('[data-slot=\"stack\"]')\n\n expect(stack).not.toBeNull()\n expect(stack?.className).toContain('flex')\n expect(stack?.className).toContain('flex-col')\n expect(stack?.className).toContain('gap-4')\n expect(stack?.getAttribute('data-gap')).toBe('md')\n expect(stack?.getAttribute('data-align')).toBeNull()\n expect(stack?.getAttribute('data-justify')).toBeNull()\n })\n\n it('applies the align, justify and gap variant classes and data attributes', () => {\n const { container } = render(<Stack align=\"center\" justify=\"between\" gap=\"xl\" />)\n\n const stack = container.querySelector('[data-slot=\"stack\"]')\n\n expect(stack?.getAttribute('data-align')).toBe('center')\n expect(stack?.getAttribute('data-justify')).toBe('between')\n expect(stack?.getAttribute('data-gap')).toBe('xl')\n expect(stack?.className).toContain('items-center')\n expect(stack?.className).toContain('justify-between')\n expect(stack?.className).toContain('gap-8')\n })\n\n it('merges a custom className with the variant classes', () => {\n const { container } = render(<Stack className=\"custom-stack\" />)\n\n expect(container.querySelector('[data-slot=\"stack\"]')?.className).toContain('custom-stack')\n })\n\n it('forwards ref to the underlying div element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<Stack ref={ref} />)\n\n expect(ref.current).toBeInstanceOf(HTMLDivElement)\n })\n})\n"],"mappings":"sKAIA,SAAS,YAAe,CACtB,GAAG,qEAAwE,CACzE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,CAAA,CAAC,EAEhC,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,CAAK,CAAC,CAAC,IAAI,SAAS,EAC3B,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,MAAM,EACzC,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,UAAU,EAC7C,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,OAAO,EAC1C,OAAO,GAAO,aAAa,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,SAAS,EACnD,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC,EAED,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,MAAM,SAAS,QAAQ,UAAU,IAAI,IAAM,CAAA,CAAC,EAE1E,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACvD,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAC1D,OAAO,GAAO,aAAa,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,cAAc,EACjD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,iBAAiB,EACpD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,OAAO,CAC5C,CAAC,EAED,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,UAAU,cAAgB,CAAA,CAAC,EAE/D,OAAO,EAAU,cAAc,qBAAqB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAC5F,CAAC,EAED,GAAG,iDAAoD,CACrD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAY,KAAM,CAAA,CAAC,EAE1B,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,cAAc,CACnD,CAAC,CACH,CAAC"}
@@ -1,71 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { HTMLAttributes } from "react";
3
- //#region src/components/stepper.d.ts
4
- type StepperOrientation = 'horizontal' | 'vertical';
5
- type StepState = 'active' | 'completed' | 'inactive' | 'loading';
6
- type StepIndicators = {
7
- active?: React.ReactNode;
8
- completed?: React.ReactNode;
9
- inactive?: React.ReactNode;
10
- loading?: React.ReactNode;
11
- };
12
- interface StepperContextValue {
13
- activeStep: number;
14
- setActiveStep: (step: number) => void;
15
- stepsCount: number;
16
- orientation: StepperOrientation;
17
- registerTrigger: (node: HTMLButtonElement | null) => void;
18
- triggerNodes: HTMLButtonElement[];
19
- focusNext: (currentIdx: number) => void;
20
- focusPrev: (currentIdx: number) => void;
21
- focusFirst: () => void;
22
- focusLast: () => void;
23
- indicators: StepIndicators;
24
- }
25
- interface StepItemContextValue {
26
- step: number;
27
- state: StepState;
28
- isDisabled: boolean;
29
- isLoading: boolean;
30
- }
31
- declare function useStepper(): StepperContextValue;
32
- declare function useStepItem(): StepItemContextValue;
33
- interface StepperProps extends HTMLAttributes<HTMLDivElement> {
34
- defaultValue?: number;
35
- value?: number;
36
- onValueChange?: (value: number) => void;
37
- orientation?: StepperOrientation;
38
- indicators?: StepIndicators;
39
- }
40
- declare function Stepper({ defaultValue, value, onValueChange, orientation, className, children, indicators, ...props }: StepperProps): import("react").JSX.Element;
41
- interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {
42
- step: number;
43
- completed?: boolean;
44
- disabled?: boolean;
45
- loading?: boolean;
46
- }
47
- declare function StepperItem({ step, completed, disabled, loading, className, children, ...props }: StepperItemProps): import("react").JSX.Element;
48
- interface StepperTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
49
- asChild?: boolean;
50
- }
51
- declare function StepperTrigger({ asChild, className, children, tabIndex, ...props }: StepperTriggerProps): import("react").JSX.Element;
52
- type StepperIndicatorProps = React.ComponentProps<'div'>;
53
- declare function StepperIndicator({ children, className }: StepperIndicatorProps): import("react").JSX.Element;
54
- type StepperSeparatorProps = React.ComponentProps<'div'>;
55
- declare function StepperSeparator({ className }: StepperSeparatorProps): import("react").JSX.Element;
56
- type StepperTitleProps = React.ComponentProps<'h3'>;
57
- declare function StepperTitle({ children, className }: StepperTitleProps): import("react").JSX.Element;
58
- type StepperDescriptionProps = React.ComponentProps<'div'>;
59
- declare function StepperDescription({ children, className }: StepperDescriptionProps): import("react").JSX.Element;
60
- type StepperNavProps = React.ComponentProps<'nav'>;
61
- declare function StepperNav({ children, className }: StepperNavProps): import("react").JSX.Element;
62
- type StepperPanelProps = React.ComponentProps<'div'>;
63
- declare function StepperPanel({ children, className }: StepperPanelProps): import("react").JSX.Element;
64
- interface StepperContentProps extends React.ComponentProps<'div'> {
65
- value: number;
66
- forceMount?: boolean;
67
- }
68
- declare function StepperContent({ value, forceMount, children, className }: StepperContentProps): import("react").JSX.Element | null;
69
- //#endregion
70
- export { Stepper, StepperContent, type StepperContentProps, StepperDescription, StepperDescriptionProps, StepperIndicator, StepperIndicatorProps, StepperItem, type StepperItemProps, StepperNav, StepperNavProps, StepperPanel, StepperPanelProps, type StepperProps, StepperSeparator, StepperSeparatorProps, StepperTitle, StepperTitleProps, StepperTrigger, type StepperTriggerProps, useStepItem, useStepper };
71
- //# sourceMappingURL=stepper.d.ts.map
1
+ import { S as useStepper, _ as StepperTitle, a as StepperDescriptionProps, b as StepperTriggerProps, c as StepperItem, d as StepperNavProps, f as StepperPanel, g as StepperSeparatorProps, h as StepperSeparator, i as StepperDescription, l as StepperItemProps, m as StepperProps, n as StepperContent, o as StepperIndicator, p as StepperPanelProps, r as StepperContentProps, s as StepperIndicatorProps, t as Stepper, u as StepperNav, v as StepperTitleProps, x as useStepItem, y as StepperTrigger } from "../stepper-DK5_o7RG.js";
2
+ export { Stepper, StepperContent, type StepperContentProps, StepperDescription, StepperDescriptionProps, StepperIndicator, StepperIndicatorProps, StepperItem, type StepperItemProps, StepperNav, StepperNavProps, StepperPanel, StepperPanelProps, type StepperProps, StepperSeparator, StepperSeparatorProps, StepperTitle, StepperTitleProps, StepperTrigger, type StepperTriggerProps, useStepItem, useStepper };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{Children as n,createContext as r,isValidElement as i,useCallback as a,useContext as o,useEffect as s,useMemo as c,useRef as l,useState as u}from"react";const d=r(void 0),f=r(void 0);function useStepper(){let e=o(d);if(!e)throw Error(`useStepper must be used within a Stepper`);return e}function useStepItem(){let e=o(f);if(!e)throw Error(`useStepItem must be used within a StepperItem`);return e}function Stepper({defaultValue:r=1,value:o,onValueChange:s,orientation:l=`horizontal`,className:f,children:p,indicators:m={},...h}){let[g,_]=u(r),[v,y]=u([]),b=a(e=>{y(t=>e&&!t.includes(e)?[...t,e]:!e&&t.includes(e)?t.filter(t=>t!==e):t)},[]),x=a(e=>{o===void 0&&_(e),s?.(e)},[o,s]),S=o??g,C=a(e=>{v[e]&&v[e].focus()},[v]),w=a(e=>C((e+1)%v.length),[C,v]),T=a(e=>C((e-1+v.length)%v.length),[C,v]),E=a(()=>C(0),[C]),D=a(()=>C(v.length-1),[C,v]),O=c(()=>({activeStep:S,setActiveStep:x,stepsCount:n.toArray(p).filter(e=>i(e)&&e.type.displayName===`StepperItem`).length,orientation:l,registerTrigger:b,focusNext:w,focusPrev:T,focusFirst:E,focusLast:D,triggerNodes:v,indicators:m}),[S,x,p,l,b,v,E,D,w,T,m]);return t(d.Provider,{value:O,children:t(`div`,{role:`tablist`,"aria-orientation":l,"data-slot":`stepper`,className:e(`w-full`,f),"data-orientation":l,...h,children:p})})}function StepperItem({step:n,completed:r=!1,disabled:i=!1,loading:a=!1,className:o,children:s,...c}){let{activeStep:l}=useStepper(),u=r||n<l?`completed`:l===n?`active`:`inactive`,d=a&&n===l;return t(f.Provider,{value:{step:n,state:u,isDisabled:i,isLoading:d},children:t(`div`,{"data-slot":`stepper-item`,className:e(`group/step flex items-center justify-center not-last:flex-1 group-data-[orientation=horizontal]/stepper-nav:flex-row group-data-[orientation=vertical]/stepper-nav:flex-col`,o),"data-state":u,...d?{"data-loading":!0}:{},...c,children:s})})}function StepperTrigger({asChild:n=!1,className:r,children:i,tabIndex:a,...o}){let{state:u,isLoading:d}=useStepItem(),{setActiveStep:f,activeStep:p,registerTrigger:m,triggerNodes:h,focusNext:g,focusPrev:_,focusFirst:v,focusLast:y}=useStepper(),{step:b,isDisabled:x}=useStepItem(),S=p===b,C=`stepper-tab-${b}`,w=`stepper-panel-${b}`,T=l(null);s(()=>{T.current&&m(T.current)},[m]);let E=c(()=>h.findIndex(e=>e===T.current),[h]),handleKeyDown=e=>{switch(e.key){case`ArrowRight`:case`ArrowDown`:e.preventDefault(),E!==-1&&g&&g(E);break;case`ArrowLeft`:case`ArrowUp`:e.preventDefault(),E!==-1&&_&&_(E);break;case`Home`:e.preventDefault(),v&&v();break;case`End`:e.preventDefault(),y&&y();break;case`Enter`:case` `:e.preventDefault(),f(b);break}};return n?t(`span`,{"data-slot":`stepper-trigger`,"data-state":u,className:r,children:i}):t(`button`,{ref:T,role:`tab`,id:C,"aria-selected":S,"aria-controls":w,tabIndex:typeof a==`number`?a:S?0:-1,"data-slot":`stepper-trigger`,"data-state":u,"data-loading":d,className:e(`focus-visible:border-ring focus-visible:ring-ring/50 inline-flex cursor-pointer items-center outline-none focus-visible:z-10 focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-60`,`gap-2.5 rounded-full`,r),onClick:()=>f(b),onKeyDown:handleKeyDown,disabled:x,...o,children:i})}function StepperIndicator({children:n,className:r}){let{state:i,isLoading:a}=useStepItem(),{indicators:o}=useStepper();return t(`div`,{"data-slot":`stepper-indicator`,"data-state":i,className:e(`border-background bg-accent text-accent-foreground data-[state=completed]:bg-primary data-[state=completed]:text-primary-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground relative flex size-6 shrink-0 items-center justify-center overflow-hidden`,`rounded-full text-xs`,r),children:t(`div`,{className:`absolute`,children:o&&(a&&o.loading||i===`completed`&&o.completed||i===`active`&&o.active||i===`inactive`&&o.inactive)?a&&o.loading||i===`completed`&&o.completed||i===`active`&&o.active||i===`inactive`&&o.inactive:n})})}function StepperSeparator({className:n}){let{state:r}=useStepItem();return t(`div`,{"data-slot":`stepper-separator`,"data-state":r,className:e(`bg-muted rounded-sm group-data-[orientation=horizontal]/stepper-nav:h-0.5 group-data-[orientation=vertical]/stepper-nav:h-12 group-data-[orientation=vertical]/stepper-nav:w-0.5 m-0.5 group-data-[orientation=horizontal]/stepper-nav:flex-1`,n)})}function StepperTitle({children:n,className:r}){let{state:i}=useStepItem();return t(`h3`,{"data-slot":`stepper-title`,"data-state":i,className:e(`text-sm leading-none font-medium`,r),children:n})}function StepperDescription({children:n,className:r}){let{state:i}=useStepItem();return t(`div`,{"data-slot":`stepper-description`,"data-state":i,className:e(`text-muted-foreground text-sm`,r),children:n})}function StepperNav({children:n,className:r}){let{activeStep:i,orientation:a}=useStepper();return t(`nav`,{"data-slot":`stepper-nav`,"data-state":i,"data-orientation":a,className:e(`group/stepper-nav inline-flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col`,r),children:n})}function StepperPanel({children:n,className:r}){let{activeStep:i}=useStepper();return t(`div`,{"data-slot":`stepper-panel`,"data-state":i,className:e(`w-full`,r),children:n})}function StepperContent({value:n,forceMount:r,children:i,className:a}){let{activeStep:o}=useStepper(),s=n===o;return!r&&!s?null:t(`div`,{"data-slot":`stepper-content`,"data-state":o,className:e(`w-full`,a,!s&&r&&`hidden`),hidden:!s&&r,children:i})}export{Stepper,StepperContent,StepperDescription,StepperIndicator,StepperItem,StepperNav,StepperPanel,StepperSeparator,StepperTitle,StepperTrigger,useStepItem,useStepper};
2
- //# sourceMappingURL=stepper.js.map
1
+ import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../stepper-BQ-59_UO.js";export{u as Stepper,o as StepperContent,c as StepperDescription,i as StepperIndicator,e as StepperItem,s as StepperNav,l as StepperPanel,t as StepperSeparator,a as StepperTitle,d as StepperTrigger,n as useStepItem,r as useStepper};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../stepper-BQ-59_UO.js";import{i as f,n as p,r as m,t as h}from"../react.esm-BkhVXJ8s.js";import{jsx as g,jsxs as _}from"react/jsx-runtime";function ThreeStepStepper({children:n,...r}={}){return _(u,{defaultValue:2,...r,children:[n,_(s,{children:[_(e,{step:1,"data-testid":`item-1`,children:[_(d,{children:[g(i,{children:`1`}),g(a,{children:`Step one`}),g(c,{children:`First`})]}),g(t,{})]}),_(e,{step:2,"data-testid":`item-2`,children:[_(d,{children:[g(i,{children:`2`}),g(a,{children:`Step two`})]}),g(t,{})]}),g(e,{step:3,"data-testid":`item-3`,children:_(d,{children:[g(i,{children:`3`}),g(a,{children:`Step three`})]})})]}),_(l,{children:[g(o,{value:1,children:`First content`}),g(o,{value:2,children:`Second content`}),g(o,{value:3,children:`Third content`})]})]})}describe(`Stepper`,()=>{it(`renders the root as a tablist wired with the horizontal orientation by default`,()=>{let{container:e}=m(g(u,{})),t=e.querySelector(`[data-slot="stepper"]`);expect(t.getAttribute(`role`)).toBe(`tablist`),expect(t.getAttribute(`aria-orientation`)).toBe(`horizontal`),expect(t.getAttribute(`data-orientation`)).toBe(`horizontal`),expect(t.className).toContain(`w-full`)}),it(`respects an explicit vertical orientation`,()=>{let{container:e}=m(g(u,{orientation:`vertical`})),t=e.querySelector(`[data-slot="stepper"]`);expect(t.getAttribute(`aria-orientation`)).toBe(`vertical`),expect(t.getAttribute(`data-orientation`)).toBe(`vertical`)}),it(`shows correct active, completed, and upcoming state across three steps`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2}));expect(e(`item-1`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`active`),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`inactive`)}),it(`advances the active step when a trigger is clicked (uncontrolled)`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1}));p.click(e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e(`item-1`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`active`)}),it(`stays on the controlled value and calls onValueChange instead of updating internal state`,()=>{let e=vi.fn(),{getByTestId:t}=m(g(ThreeStepStepper,{value:1,onValueChange:e}));p.click(t(`item-3`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e).toHaveBeenCalledWith(3),expect(t(`item-1`).getAttribute(`data-state`)).toBe(`active`),expect(t(`item-3`).getAttribute(`data-state`)).toBe(`inactive`)}),it(`forces a step to completed via the completed prop regardless of its position`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:2,completed:!0,"data-testid":`forced`,children:g(d,{children:`Two`})})}));expect(t.querySelector(`[data-testid="forced"]`)?.getAttribute(`data-state`)).toBe(`completed`)}),it(`marks the active step as loading via data-loading when the loading prop is set`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:1,loading:!0,"data-testid":`loading-item`,children:g(d,{children:`One`})})}));expect(t.querySelector(`[data-testid="loading-item"]`)?.getAttribute(`data-loading`)).toBe(`true`)}),it(`does not mark an inactive step as loading even when the loading prop is set`,()=>{let{container:t}=m(g(u,{defaultValue:2,children:g(e,{step:1,loading:!0,"data-testid":`loading-item`,children:g(d,{children:`One`})})}));expect(t.querySelector(`[data-testid="loading-item"]`)?.hasAttribute(`data-loading`)).toBe(!1)})}),describe(`useStepper`,()=>{it(`throws when used outside a Stepper`,()=>{expect(()=>f(()=>r())).toThrow(`useStepper must be used within a Stepper`)}),it(`exposes the active step, orientation, and setActiveStep from context`,()=>{let wrapper=({children:e})=>g(u,{defaultValue:2,children:e}),{result:e}=f(()=>r(),{wrapper});expect(e.current.activeStep).toBe(2),expect(e.current.orientation).toBe(`horizontal`),expect(typeof e.current.setActiveStep).toBe(`function`)}),it(`stepsCount stays 0 even with StepperItem children, since StepperItem has no displayName set`,()=>{let wrapper=({children:t})=>_(u,{defaultValue:1,children:[g(e,{step:1,children:g(d,{children:`One`})}),g(e,{step:2,children:g(d,{children:`Two`})}),t]}),{result:t}=f(()=>r(),{wrapper});expect(t.current.stepsCount).toBe(0)}),it(`updates the active step across the tree when setActiveStep is called`,()=>{let e={};function Capture(){return e.current=r(),null}let{getByTestId:t}=m(g(ThreeStepStepper,{defaultValue:1,children:g(Capture,{})}));h(()=>e.current?.setActiveStep(3)),expect(t(`item-3`).getAttribute(`data-state`)).toBe(`active`)})}),describe(`useStepItem`,()=>{it(`throws when used outside a StepperItem`,()=>{expect(()=>f(()=>n())).toThrow(`useStepItem must be used within a StepperItem`)}),it(`exposes step, state, isDisabled, and isLoading from context`,()=>{let wrapper=({children:t})=>g(u,{defaultValue:1,children:g(e,{step:1,disabled:!0,children:t})}),{result:t}=f(()=>n(),{wrapper});expect(t.current.step).toBe(1),expect(t.current.state).toBe(`active`),expect(t.current.isDisabled).toBe(!0),expect(t.current.isLoading).toBe(!1)})}),describe(`StepperItem`,()=>{it(`renders with data-slot stepper-item and the group/step class`,()=>{let{container:t}=m(g(u,{children:g(e,{step:1,children:g(d,{children:`One`})})})),n=t.querySelector(`[data-slot="stepper-item"]`);expect(n.className).toContain(`group/step`)})}),describe(`StepperTrigger`,()=>{it(`renders a tab button with the expected aria wiring for the active step`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`);expect(t.tagName).toBe(`BUTTON`),expect(t.getAttribute(`role`)).toBe(`tab`),expect(t.getAttribute(`aria-selected`)).toBe(`true`),expect(t.getAttribute(`aria-controls`)).toBe(`stepper-panel-2`),expect(t.tabIndex).toBe(0)}),it(`gives inactive step triggers a tabIndex of -1`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`);expect(t.tabIndex).toBe(-1)}),it(`sets the active step when clicked`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1}));p.click(e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`active`)}),it(`disables the button and blocks activation when the StepperItem is disabled`,()=>{let{container:t}=m(_(u,{defaultValue:1,children:[g(e,{step:1,children:g(d,{children:`One`})}),g(e,{step:2,disabled:!0,"data-testid":`disabled-item`,children:g(d,{children:`Two`})})]})),n=t.querySelector(`[data-testid="disabled-item"] [data-slot="stepper-trigger"]`);expect(n.disabled).toBe(!0)}),it(`moves focus to the next trigger on ArrowRight and to the previous on ArrowLeft`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`),n=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`);t.focus(),p.keyDown(t,{key:`ArrowRight`}),expect(document.activeElement).toBe(n),p.keyDown(n,{key:`ArrowLeft`}),expect(document.activeElement).toBe(t)}),it(`moves focus to the first/last trigger on Home/End`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`),n=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`),r=e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`);n.focus(),p.keyDown(n,{key:`End`}),expect(document.activeElement).toBe(r),p.keyDown(r,{key:`Home`}),expect(document.activeElement).toBe(t)}),it(`activates the focused step on Enter and Space`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`);p.keyDown(t,{key:`Enter`}),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`active`)}),it(`renders a span instead of a button when asChild is set`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:1,children:g(d,{asChild:!0,children:`Custom`})})})),n=t.querySelector(`[data-slot="stepper-trigger"]`);expect(n.tagName).toBe(`SPAN`),expect(n.getAttribute(`data-state`)).toBe(`active`),expect(n.textContent).toBe(`Custom`)})}),describe(`StepperIndicator`,()=>{it(`renders its children by default and reflects the step state`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-2`).querySelector(`[data-slot="stepper-indicator"]`);expect(t.getAttribute(`data-state`)).toBe(`active`),expect(t.textContent).toBe(`2`)}),it(`swaps in a custom indicator node for the matching state`,()=>{let{container:t}=m(g(u,{defaultValue:1,indicators:{active:g(`span`,{"data-testid":`custom-active`,children:`*`})},children:g(e,{step:1,children:g(i,{children:`1`})})}));expect(t.querySelector(`[data-testid="custom-active"]`)).not.toBeNull()}),it(`prefers the loading indicator when the active step is loading`,()=>{let{container:t}=m(g(u,{defaultValue:1,indicators:{loading:g(`span`,{"data-testid":`custom-loading`,children:`…`})},children:g(e,{step:1,loading:!0,children:g(i,{children:`1`})})}));expect(t.querySelector(`[data-testid="custom-loading"]`)).not.toBeNull()})}),describe(`StepperSeparator`,()=>{it(`renders with data-slot stepper-separator and mirrors the item state`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-separator"]`);expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperTitle`,()=>{it(`renders its children with data-slot stepper-title`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-title"]`);expect(t.tagName).toBe(`H3`),expect(t.textContent).toBe(`Step one`),expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperDescription`,()=>{it(`renders its children with data-slot stepper-description`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-description"]`);expect(t.textContent).toBe(`First`),expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperNav`,()=>{it(`renders with data-slot stepper-nav and mirrors orientation and active step`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2,orientation:`vertical`})),t=e.querySelector(`[data-slot="stepper-nav"]`);expect(t.tagName).toBe(`NAV`),expect(t.getAttribute(`data-orientation`)).toBe(`vertical`),expect(t.getAttribute(`data-state`)).toBe(`2`)})}),describe(`StepperPanel`,()=>{it(`renders with data-slot stepper-panel and mirrors the active step`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e.querySelector(`[data-slot="stepper-panel"]`);expect(t.getAttribute(`data-state`)).toBe(`2`)})}),describe(`StepperContent`,()=>{it(`renders only the content for the active step by default`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e.querySelectorAll(`[data-slot="stepper-content"]`);expect(t.length).toBe(1),expect(t[0]?.textContent).toBe(`Second content`)}),it(`keeps inactive content mounted but hidden when forceMount is set`,()=>{let{container:e}=m(_(u,{defaultValue:1,children:[g(o,{value:1,children:`Active`}),g(o,{value:2,forceMount:!0,children:`Inactive but mounted`})]})),t=Array.from(e.querySelectorAll(`[data-slot="stepper-content"]`)).find(e=>e.textContent===`Inactive but mounted`);expect(t).not.toBeUndefined(),expect(t.hasAttribute(`hidden`)).toBe(!0),expect(t.className).toContain(`hidden`)})});
2
+ //# sourceMappingURL=stepper.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.spec.js","names":[],"sources":["../../src/components/stepper.spec.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport { act, fireEvent, render, renderHook } from '@testing-library/react'\n\nimport {\n Stepper,\n StepperContent,\n StepperDescription,\n StepperIndicator,\n StepperItem,\n StepperNav,\n StepperPanel,\n StepperSeparator,\n StepperTitle,\n StepperTrigger,\n useStepItem,\n useStepper\n} from './stepper'\n\nfunction ThreeStepStepper({\n children,\n ...props\n}: Partial<Parameters<typeof Stepper>[0]> & { children?: ReactNode } = {}) {\n return (\n <Stepper defaultValue={2} {...props}>\n {children}\n <StepperNav>\n <StepperItem step={1} data-testid=\"item-1\">\n <StepperTrigger>\n <StepperIndicator>1</StepperIndicator>\n <StepperTitle>Step one</StepperTitle>\n <StepperDescription>First</StepperDescription>\n </StepperTrigger>\n <StepperSeparator />\n </StepperItem>\n <StepperItem step={2} data-testid=\"item-2\">\n <StepperTrigger>\n <StepperIndicator>2</StepperIndicator>\n <StepperTitle>Step two</StepperTitle>\n </StepperTrigger>\n <StepperSeparator />\n </StepperItem>\n <StepperItem step={3} data-testid=\"item-3\">\n <StepperTrigger>\n <StepperIndicator>3</StepperIndicator>\n <StepperTitle>Step three</StepperTitle>\n </StepperTrigger>\n </StepperItem>\n </StepperNav>\n <StepperPanel>\n <StepperContent value={1}>First content</StepperContent>\n <StepperContent value={2}>Second content</StepperContent>\n <StepperContent value={3}>Third content</StepperContent>\n </StepperPanel>\n </Stepper>\n )\n}\n\ndescribe('Stepper', () => {\n it('renders the root as a tablist wired with the horizontal orientation by default', () => {\n const { container } = render(<Stepper />)\n\n const stepper = container.querySelector('[data-slot=\"stepper\"]') as HTMLElement\n\n expect(stepper.getAttribute('role')).toBe('tablist')\n expect(stepper.getAttribute('aria-orientation')).toBe('horizontal')\n expect(stepper.getAttribute('data-orientation')).toBe('horizontal')\n expect(stepper.className).toContain('w-full')\n })\n\n it('respects an explicit vertical orientation', () => {\n const { container } = render(<Stepper orientation=\"vertical\" />)\n\n const stepper = container.querySelector('[data-slot=\"stepper\"]') as HTMLElement\n expect(stepper.getAttribute('aria-orientation')).toBe('vertical')\n expect(stepper.getAttribute('data-orientation')).toBe('vertical')\n })\n\n it('shows correct active, completed, and upcoming state across three steps', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('active')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('inactive')\n })\n\n it('advances the active step when a trigger is clicked (uncontrolled)', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n fireEvent.click(getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n\n it('stays on the controlled value and calls onValueChange instead of updating internal state', () => {\n const onValueChange = vi.fn()\n const { getByTestId } = render(<ThreeStepStepper value={1} onValueChange={onValueChange} />)\n\n fireEvent.click(getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(onValueChange).toHaveBeenCalledWith(3)\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('active')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('inactive')\n })\n\n it('forces a step to completed via the completed prop regardless of its position', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={2} completed data-testid=\"forced\">\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"forced\"]')?.getAttribute('data-state')).toBe('completed')\n })\n\n it('marks the active step as loading via data-loading when the loading prop is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1} loading data-testid=\"loading-item\">\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"loading-item\"]')?.getAttribute('data-loading')).toBe('true')\n })\n\n it('does not mark an inactive step as loading even when the loading prop is set', () => {\n const { container } = render(\n <Stepper defaultValue={2}>\n <StepperItem step={1} loading data-testid=\"loading-item\">\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"loading-item\"]')?.hasAttribute('data-loading')).toBe(false)\n })\n})\n\ndescribe('useStepper', () => {\n it('throws when used outside a Stepper', () => {\n expect(() => renderHook(() => useStepper())).toThrow('useStepper must be used within a Stepper')\n })\n\n it('exposes the active step, orientation, and setActiveStep from context', () => {\n const wrapper = ({ children }: { children: ReactNode }) => <Stepper defaultValue={2}>{children}</Stepper>\n const { result } = renderHook(() => useStepper(), { wrapper })\n\n expect(result.current.activeStep).toBe(2)\n expect(result.current.orientation).toBe('horizontal')\n expect(typeof result.current.setActiveStep).toBe('function')\n })\n\n it('stepsCount stays 0 even with StepperItem children, since StepperItem has no displayName set', () => {\n const wrapper = ({ children }: { children: ReactNode }) => (\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n <StepperItem step={2}>\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n {children}\n </Stepper>\n )\n const { result } = renderHook(() => useStepper(), { wrapper })\n\n expect(result.current.stepsCount).toBe(0)\n })\n\n it('updates the active step across the tree when setActiveStep is called', () => {\n const captured: { current?: ReturnType<typeof useStepper> } = {}\n function Capture() {\n captured.current = useStepper()\n return null\n }\n\n const { getByTestId } = render(\n <ThreeStepStepper defaultValue={1}>\n <Capture />\n </ThreeStepStepper>\n )\n\n act(() => captured.current?.setActiveStep(3))\n\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n})\n\ndescribe('useStepItem', () => {\n it('throws when used outside a StepperItem', () => {\n expect(() => renderHook(() => useStepItem())).toThrow('useStepItem must be used within a StepperItem')\n })\n\n it('exposes step, state, isDisabled, and isLoading from context', () => {\n const wrapper = ({ children }: { children: ReactNode }) => (\n <Stepper defaultValue={1}>\n <StepperItem step={1} disabled>\n {children}\n </StepperItem>\n </Stepper>\n )\n const { result } = renderHook(() => useStepItem(), { wrapper })\n\n expect(result.current.step).toBe(1)\n expect(result.current.state).toBe('active')\n expect(result.current.isDisabled).toBe(true)\n expect(result.current.isLoading).toBe(false)\n })\n})\n\ndescribe('StepperItem', () => {\n it('renders with data-slot stepper-item and the group/step class', () => {\n const { container } = render(\n <Stepper>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const item = container.querySelector('[data-slot=\"stepper-item\"]') as HTMLElement\n expect(item.className).toContain('group/step')\n })\n})\n\ndescribe('StepperTrigger', () => {\n it('renders a tab button with the expected aria wiring for the active step', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const trigger = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n expect(trigger.tagName).toBe('BUTTON')\n expect(trigger.getAttribute('role')).toBe('tab')\n expect(trigger.getAttribute('aria-selected')).toBe('true')\n expect(trigger.getAttribute('aria-controls')).toBe('stepper-panel-2')\n expect(trigger.tabIndex).toBe(0)\n })\n\n it('gives inactive step triggers a tabIndex of -1', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const trigger = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n expect(trigger.tabIndex).toBe(-1)\n })\n\n it('sets the active step when clicked', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n fireEvent.click(getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('active')\n })\n\n it('disables the button and blocks activation when the StepperItem is disabled', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n <StepperItem step={2} disabled data-testid=\"disabled-item\">\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const trigger = container.querySelector(\n '[data-testid=\"disabled-item\"] [data-slot=\"stepper-trigger\"]'\n ) as HTMLButtonElement\n expect(trigger.disabled).toBe(true)\n })\n\n it('moves focus to the next trigger on ArrowRight and to the previous on ArrowLeft', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger1 = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger2 = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n trigger1.focus()\n fireEvent.keyDown(trigger1, { key: 'ArrowRight' })\n expect(document.activeElement).toBe(trigger2)\n\n fireEvent.keyDown(trigger2, { key: 'ArrowLeft' })\n expect(document.activeElement).toBe(trigger1)\n })\n\n it('moves focus to the first/last trigger on Home/End', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger1 = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger2 = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger3 = getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n trigger2.focus()\n fireEvent.keyDown(trigger2, { key: 'End' })\n expect(document.activeElement).toBe(trigger3)\n\n fireEvent.keyDown(trigger3, { key: 'Home' })\n expect(document.activeElement).toBe(trigger1)\n })\n\n it('activates the focused step on Enter and Space', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger3 = getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n fireEvent.keyDown(trigger3, { key: 'Enter' })\n\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n\n it('renders a span instead of a button when asChild is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger asChild>Custom</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const trigger = container.querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n expect(trigger.tagName).toBe('SPAN')\n expect(trigger.getAttribute('data-state')).toBe('active')\n expect(trigger.textContent).toBe('Custom')\n })\n})\n\ndescribe('StepperIndicator', () => {\n it('renders its children by default and reflects the step state', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const indicator = getByTestId('item-2').querySelector('[data-slot=\"stepper-indicator\"]') as HTMLElement\n expect(indicator.getAttribute('data-state')).toBe('active')\n expect(indicator.textContent).toBe('2')\n })\n\n it('swaps in a custom indicator node for the matching state', () => {\n const { container } = render(\n <Stepper defaultValue={1} indicators={{ active: <span data-testid=\"custom-active\">*</span> }}>\n <StepperItem step={1}>\n <StepperIndicator>1</StepperIndicator>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"custom-active\"]')).not.toBeNull()\n })\n\n it('prefers the loading indicator when the active step is loading', () => {\n const { container } = render(\n <Stepper defaultValue={1} indicators={{ loading: <span data-testid=\"custom-loading\">…</span> }}>\n <StepperItem step={1} loading>\n <StepperIndicator>1</StepperIndicator>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"custom-loading\"]')).not.toBeNull()\n })\n})\n\ndescribe('StepperSeparator', () => {\n it('renders with data-slot stepper-separator and mirrors the item state', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const separator = getByTestId('item-1').querySelector('[data-slot=\"stepper-separator\"]') as HTMLElement\n expect(separator.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperTitle', () => {\n it('renders its children with data-slot stepper-title', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const title = getByTestId('item-1').querySelector('[data-slot=\"stepper-title\"]') as HTMLElement\n expect(title.tagName).toBe('H3')\n expect(title.textContent).toBe('Step one')\n expect(title.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperDescription', () => {\n it('renders its children with data-slot stepper-description', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const description = getByTestId('item-1').querySelector('[data-slot=\"stepper-description\"]') as HTMLElement\n expect(description.textContent).toBe('First')\n expect(description.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperNav', () => {\n it('renders with data-slot stepper-nav and mirrors orientation and active step', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} orientation=\"vertical\" />)\n\n const nav = container.querySelector('[data-slot=\"stepper-nav\"]') as HTMLElement\n expect(nav.tagName).toBe('NAV')\n expect(nav.getAttribute('data-orientation')).toBe('vertical')\n expect(nav.getAttribute('data-state')).toBe('2')\n })\n})\n\ndescribe('StepperPanel', () => {\n it('renders with data-slot stepper-panel and mirrors the active step', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} />)\n\n const panel = container.querySelector('[data-slot=\"stepper-panel\"]') as HTMLElement\n expect(panel.getAttribute('data-state')).toBe('2')\n })\n})\n\ndescribe('StepperContent', () => {\n it('renders only the content for the active step by default', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} />)\n\n const contents = container.querySelectorAll('[data-slot=\"stepper-content\"]')\n expect(contents.length).toBe(1)\n expect(contents[0]?.textContent).toBe('Second content')\n })\n\n it('keeps inactive content mounted but hidden when forceMount is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperContent value={1}>Active</StepperContent>\n <StepperContent value={2} forceMount>\n Inactive but mounted\n </StepperContent>\n </Stepper>\n )\n\n const hiddenContent = Array.from(container.querySelectorAll('[data-slot=\"stepper-content\"]')).find(\n (el) => el.textContent === 'Inactive but mounted'\n ) as HTMLElement\n\n expect(hiddenContent).not.toBeUndefined()\n expect(hiddenContent.hasAttribute('hidden')).toBe(true)\n expect(hiddenContent.className).toContain('hidden')\n })\n})\n"],"mappings":"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"}
@@ -1,17 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { UIColor } from "../lib/color.js";
3
- import { LabelProps } from "./label.js";
4
- import { Switch as Switch$1 } from "radix-ui";
5
- import * as React from "react";
6
- import { ReactNode } from "react";
7
- //#region src/components/switch.d.ts
8
- type SwitchProps = React.ComponentProps<typeof Switch$1.Root> & {
9
- color?: UIColor;
10
- label?: ReactNode;
11
- labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>;
12
- size?: 'sm' | 'md' | 'lg';
13
- };
14
- declare function Switch({ className, color, id, label, labelProps, size, ...props }: SwitchProps): React.JSX.Element;
15
- //#endregion
16
- export { Switch, SwitchProps };
17
- //# sourceMappingURL=switch.d.ts.map
1
+ import { n as SwitchProps, t as Switch } from "../switch-OtBakZHc.js";
2
+ export { Switch, SwitchProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Label as t}from"./label.js";import{useFieldControlId as n}from"./field.js";import{Switch as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{cva as o}from"class-variance-authority";import{useId as s}from"react";const c={primary:`[--switch-checked:var(--primary)]`,brand:`[--switch-checked:var(--brand)]`,gray:`[--switch-checked:var(--gray)]`,zinc:`[--switch-checked:var(--zinc)]`,red:`[--switch-checked:var(--red)]`,yellow:`[--switch-checked:var(--yellow)]`,blue:`[--switch-checked:var(--blue)]`,indigo:`[--switch-checked:var(--indigo)]`,pink:`[--switch-checked:var(--pink)]`,green:`[--switch-checked:var(--green)]`},l=o(``,{variants:{size:{sm:`text-sm`,md:`text-base`,lg:`text-lg`}},defaultVariants:{size:`md`}});function Switch({className:o,color:u=`green`,id:d,label:f,labelProps:p,size:m=`md`,...h}){let g=s(),_=n(d),v=f!==void 0,y=_??(v?g:void 0),{className:b,...x}=p??{},S=i(r.Root,{"data-slot":`switch`,"data-color":u,"data-size":m,id:y,className:e(`peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none`,`after:absolute after:-inset-x-3 after:-inset-y-2`,`focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50`,`aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20`,`data-[size=lg]:h-5.5 data-[size=lg]:w-12 data-[size=md]:h-5 data-[size=md]:w-10.5 data-[size=sm]:h-4 data-[size=sm]:w-8.5`,`dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,`data-checked:bg-(--switch-checked) data-unchecked:bg-input dark:data-unchecked:bg-input/80`,`data-disabled:cursor-not-allowed data-disabled:opacity-50`,c[u],o),...h,children:i(r.Thumb,{"data-slot":`switch-thumb`,className:e(`pointer-events-none flex items-center justify-center rounded-full bg-background ring-0 transition-transform`,`group-data-[size=lg]/switch:size-4.5 group-data-[size=md]/switch:size-4 group-data-[size=sm]/switch:size-3`,`group-data-[size=lg]/switch:data-checked:translate-x-7`,`group-data-[size=md]/switch:data-checked:translate-x-6`,`group-data-[size=sm]/switch:data-checked:translate-x-5`,`group-data-[size=lg]/switch:data-unchecked:translate-x-0.5`,`group-data-[size=md]/switch:data-unchecked:translate-x-0.5`,`group-data-[size=sm]/switch:data-unchecked:translate-x-0.5`,`dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground`),children:i(`span`,{"data-slot":`switch-thumb-indicator`,className:e(`rounded-full transition-colors`,`group-data-[size=lg]/switch:size-2.5 group-data-[size=md]/switch:size-2 group-data-[size=sm]/switch:size-1.5`,`group-data-checked/switch:bg-(--switch-checked) group-data-unchecked/switch:bg-input`,`group-data-unchecked/switch:dark:bg-input/80`)})})});return v?a(`div`,{"data-slot":`switch-field`,className:`flex items-center gap-2`,children:[S,i(t,{...x,htmlFor:y,className:e(l({size:m}),b),children:f})]}):S}export{Switch};
2
- //# sourceMappingURL=switch.js.map
1
+ import{t as e}from"../switch-DjdOGECT.js";export{e as Switch};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{o as e,t}from"../field-DzR-XrO7.js";import{t as n}from"../switch-DjdOGECT.js";import{a as r,n as i,r as a}from"../react.esm-BkhVXJ8s.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";describe(`Switch`,()=>{it(`renders as a switch with the default color and size and no wrapping label`,()=>{let{container:e}=a(o(n,{})),t=e.querySelector(`[data-slot="switch"]`);expect(t).not.toBeNull(),expect(t?.getAttribute(`role`)).toBe(`switch`),expect(t?.getAttribute(`data-color`)).toBe(`green`),expect(t?.getAttribute(`data-size`)).toBe(`md`),expect(t?.getAttribute(`id`)).toBeNull(),expect(e.querySelector(`[data-slot="switch-field"]`)).toBeNull()}),it(`toggles the checked state when clicked`,()=>{a(o(n,{}));let e=r.getByRole(`switch`);expect(e.getAttribute(`aria-checked`)).toBe(`false`),i.click(e),expect(e.getAttribute(`aria-checked`)).toBe(`true`),expect(e.getAttribute(`data-state`)).toBe(`checked`)}),it(`renders a wired label and generates a shared id when label is provided`,()=>{a(o(n,{label:`Enable notifications`}));let e=r.getByRole(`switch`),t=r.getByText(`Enable notifications`);expect(e.getAttribute(`id`)).toBeTruthy(),expect(t.getAttribute(`for`)).toBe(e.getAttribute(`id`))}),it(`applies custom color and size variants`,()=>{let{container:e}=a(o(n,{color:`blue`,size:`lg`})),t=e.querySelector(`[data-slot="switch"]`);expect(t?.getAttribute(`data-color`)).toBe(`blue`),expect(t?.getAttribute(`data-size`)).toBe(`lg`),expect(t?.className).toContain(`[--switch-checked:var(--blue)]`)}),it(`wires the field control id when rendered inside Field`,()=>{a(s(t,{children:[o(e,{children:`Terms`}),o(n,{})]}));let i=r.getByText(`Terms`),c=r.getByRole(`switch`);expect(i.getAttribute(`for`)).toBe(c.getAttribute(`id`))})});
2
+ //# sourceMappingURL=switch.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.spec.js","names":[],"sources":["../../src/components/switch.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Field, FieldLabel } from './field'\nimport { Switch } from './switch'\n\ndescribe('Switch', () => {\n it('renders as a switch with the default color and size and no wrapping label', () => {\n const { container } = render(<Switch />)\n\n const switchEl = container.querySelector('[data-slot=\"switch\"]')\n\n expect(switchEl).not.toBeNull()\n expect(switchEl?.getAttribute('role')).toBe('switch')\n expect(switchEl?.getAttribute('data-color')).toBe('green')\n expect(switchEl?.getAttribute('data-size')).toBe('md')\n expect(switchEl?.getAttribute('id')).toBeNull()\n expect(container.querySelector('[data-slot=\"switch-field\"]')).toBeNull()\n })\n\n it('toggles the checked state when clicked', () => {\n render(<Switch />)\n\n const switchEl = screen.getByRole('switch')\n\n expect(switchEl.getAttribute('aria-checked')).toBe('false')\n\n fireEvent.click(switchEl)\n\n expect(switchEl.getAttribute('aria-checked')).toBe('true')\n expect(switchEl.getAttribute('data-state')).toBe('checked')\n })\n\n it('renders a wired label and generates a shared id when label is provided', () => {\n render(<Switch label=\"Enable notifications\" />)\n\n const switchEl = screen.getByRole('switch')\n const label = screen.getByText('Enable notifications')\n\n expect(switchEl.getAttribute('id')).toBeTruthy()\n expect(label.getAttribute('for')).toBe(switchEl.getAttribute('id'))\n })\n\n it('applies custom color and size variants', () => {\n const { container } = render(<Switch color=\"blue\" size=\"lg\" />)\n\n const switchEl = container.querySelector('[data-slot=\"switch\"]')\n\n expect(switchEl?.getAttribute('data-color')).toBe('blue')\n expect(switchEl?.getAttribute('data-size')).toBe('lg')\n expect(switchEl?.className).toContain('[--switch-checked:var(--blue)]')\n })\n\n it('wires the field control id when rendered inside Field', () => {\n render(\n <Field>\n <FieldLabel>Terms</FieldLabel>\n <Switch />\n </Field>\n )\n\n const label = screen.getByText('Terms')\n const switchEl = screen.getByRole('switch')\n\n expect(label.getAttribute('for')).toBe(switchEl.getAttribute('id'))\n })\n})\n"],"mappings":"0OAKA,SAAS,aAAgB,CACvB,GAAG,gFAAmF,CACpF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAS,CAAA,CAAC,EAEjC,EAAW,EAAU,cAAc,sBAAsB,EAE/D,OAAO,CAAQ,CAAC,CAAC,IAAI,SAAS,EAC9B,OAAO,GAAU,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EACpD,OAAO,GAAU,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,EACzD,OAAO,GAAU,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAU,aAAa,IAAI,CAAC,CAAC,CAAC,SAAS,EAC9C,OAAO,EAAU,cAAc,4BAA4B,CAAC,CAAC,CAAC,SAAS,CACzE,CAAC,EAED,GAAG,6CAAgD,CACjD,EAAO,EAAC,EAAD,CAAS,CAAA,CAAC,EAEjB,IAAM,EAAW,EAAO,UAAU,QAAQ,EAE1C,OAAO,EAAS,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,OAAO,EAE1D,EAAU,MAAM,CAAQ,EAExB,OAAO,EAAS,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,EACzD,OAAO,EAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,CAC5D,CAAC,EAED,GAAG,6EAAgF,CACjF,EAAO,EAAC,EAAD,CAAQ,MAAM,sBAAwB,CAAA,CAAC,EAE9C,IAAM,EAAW,EAAO,UAAU,QAAQ,EACpC,EAAQ,EAAO,UAAU,sBAAsB,EAErD,OAAO,EAAS,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,EAC/C,OAAO,EAAM,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAS,aAAa,IAAI,CAAC,CACpE,CAAC,EAED,GAAG,6CAAgD,CACjD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,MAAM,OAAO,KAAK,IAAM,CAAA,CAAC,EAExD,EAAW,EAAU,cAAc,sBAAsB,EAE/D,OAAO,GAAU,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EACxD,OAAO,GAAU,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,gCAAgC,CACxE,CAAC,EAED,GAAG,4DAA+D,CAChE,EACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,OAAiB,CAAA,EAC7B,EAAC,EAAD,CAAS,CAAA,CACJ,CAAA,CAAA,CACT,EAEA,IAAM,EAAQ,EAAO,UAAU,OAAO,EAChC,EAAW,EAAO,UAAU,QAAQ,EAE1C,OAAO,EAAM,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAS,aAAa,IAAI,CAAC,CACpE,CAAC,CACH,CAAC"}
@@ -1,33 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
- //#region src/components/table.d.ts
5
- type TableContainerProps = React.ComponentProps<'div'> & {
6
- minWidth?: number | string;
7
- };
8
- declare const tableVariants: (props?: ({
9
- variant?: "line" | "outline" | null | undefined;
10
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
- type TableProps = React.ComponentProps<'table'> & VariantProps<typeof tableVariants> & {
12
- striped?: boolean;
13
- stickyHeader?: boolean;
14
- };
15
- type TableHeaderProps = React.ComponentProps<'thead'>;
16
- type TableBodyProps = React.ComponentProps<'tbody'>;
17
- type TableFooterProps = React.ComponentProps<'tfoot'>;
18
- type TableRowProps = React.ComponentProps<'tr'>;
19
- type TableHeadProps = React.ComponentProps<'th'>;
20
- type TableCellProps = React.ComponentProps<'td'>;
21
- type TableCaptionProps = React.ComponentProps<'caption'>;
22
- declare function TableContainer({ className, minWidth, style, ...props }: TableContainerProps): React.JSX.Element;
23
- declare function Table({ className, variant, striped, stickyHeader, ...props }: TableProps): React.JSX.Element;
24
- declare function TableHeader({ className, ...props }: TableHeaderProps): React.JSX.Element;
25
- declare function TableBody({ className, ...props }: TableBodyProps): React.JSX.Element;
26
- declare function TableFooter({ className, ...props }: TableFooterProps): React.JSX.Element;
27
- declare function TableRow({ className, ...props }: TableRowProps): React.JSX.Element;
28
- declare function TableHead({ className, ...props }: TableHeadProps): React.JSX.Element;
29
- declare function TableCell({ className, ...props }: TableCellProps): React.JSX.Element;
30
- declare function TableCaption({ className, ...props }: TableCaptionProps): React.JSX.Element;
31
- //#endregion
32
- export { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableContainer, TableContainerProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, tableVariants };
33
- //# sourceMappingURL=table.d.ts.map
1
+ import { _ as TableRow, a as TableCaptionProps, c as TableContainer, d as TableFooterProps, f as TableHead, g as TableProps, h as TableHeaderProps, i as TableCaption, l as TableContainerProps, m as TableHeader, n as TableBody, o as TableCell, p as TableHeadProps, r as TableBodyProps, s as TableCellProps, t as Table, u as TableFooter, v as TableRowProps, y as tableVariants } from "../table-qIAtG7Y5.js";
2
+ export { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableContainer, TableContainerProps, TableFooter, TableFooterProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, tableVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`w-full caption-bottom text-sm`,{variants:{variant:{line:``,outline:e(`rounded-lg border border-separate border-spacing-0`,`[&_thead_th]:border-b`,`[&_tbody_tr:not(:last-child)>td]:border-b`)}},defaultVariants:{variant:`line`}});function TableContainer({className:n,minWidth:r,style:i,...a}){return t(`div`,{"data-slot":`table-container`,className:e(`relative w-full overflow-x-auto`,`has-[>table[data-variant=outline]]:rounded-lg has-[>table[data-variant=outline]]:border`,`[&>table[data-variant=outline]]:rounded-none [&>table[data-variant=outline]]:border-0`,n),style:r===void 0?i:{minWidth:r,...i},...a})}function Table({className:n,variant:i=`line`,striped:a=!0,stickyHeader:o=!1,...s}){return t(`table`,{"data-slot":`table`,"data-variant":i,"data-striped":a?`true`:`false`,"data-sticky-header":o?`true`:`false`,className:e(r({variant:i}),`data-[striped=true]:[&_tbody_tr:nth-child(even):not([data-state=selected]):not(:hover)]:bg-muted/50`,`data-[sticky-header=true]:[&_thead]:sticky data-[sticky-header=true]:[&_thead]:top-0 data-[sticky-header=true]:[&_thead]:z-10 data-[sticky-header=true]:[&_thead]:bg-background`,n),...s})}function TableHeader({className:n,...r}){return t(`thead`,{"data-slot":`table-header`,className:e(`[&_tr]:border-b`,n),...r})}function TableBody({className:n,...r}){return t(`tbody`,{"data-slot":`table-body`,className:e(`[&_tr:last-child]:border-0`,n),...r})}function TableFooter({className:n,...r}){return t(`tfoot`,{"data-slot":`table-footer`,className:e(`border-t bg-muted/50 font-medium [&>tr]:last:border-b-0`,n),...r})}function TableRow({className:n,...r}){return t(`tr`,{"data-slot":`table-row`,className:e(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,n),...r})}function TableHead({className:n,...r}){return t(`th`,{"data-slot":`table-head`,className:e(`h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground has-[[role=checkbox]]:pr-0`,n),...r})}function TableCell({className:n,...r}){return t(`td`,{"data-slot":`table-cell`,className:e(`p-2 align-middle whitespace-nowrap has-[[role=checkbox]]:pr-0`,n),...r})}function TableCaption({className:n,...r}){return t(`caption`,{"data-slot":`table-caption`,className:e(`mt-4 text-sm text-muted-foreground`,n),...r})}export{Table,TableBody,TableCaption,TableCell,TableContainer,TableFooter,TableHead,TableHeader,TableRow,r as tableVariants};
2
- //# sourceMappingURL=table.js.map
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"../table-CuE0Aenj.js";export{c as Table,i as TableBody,o as TableCaption,n as TableCell,e as TableContainer,a as TableFooter,s as TableHead,t as TableHeader,r as TableRow,l as tableVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../table-CuE0Aenj.js";import{a as l,r as u}from"../react.esm-BkhVXJ8s.js";import{jsx as d,jsxs as f}from"react/jsx-runtime";function renderTable(l){return u(d(e,{children:f(c,{...l,children:[d(o,{children:`A list of recent invoices`}),d(t,{children:f(r,{children:[d(s,{children:`Invoice`}),d(s,{children:`Status`})]})}),f(i,{children:[f(r,{children:[d(n,{children:`INV001`}),d(n,{children:`Paid`})]}),f(r,{"data-state":`selected`,children:[d(n,{children:`INV002`}),d(n,{children:`Pending`})]})]}),d(a,{children:f(r,{children:[d(n,{children:`Total`}),d(n,{children:`2 invoices`})]})})]})}))}describe(`Table`,()=>{it(`renders every subcomponent with its own data-slot`,()=>{let{container:e}=renderTable();expect(e.querySelector(`[data-slot="table-container"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="table"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="table-caption"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="table-header"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="table-body"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="table-footer"]`)).not.toBeNull(),expect(e.querySelectorAll(`[data-slot="table-row"]`)).toHaveLength(4),expect(e.querySelectorAll(`[data-slot="table-head"]`)).toHaveLength(2),expect(e.querySelectorAll(`[data-slot="table-cell"]`)).toHaveLength(6)}),it(`renders real table semantics that are queryable by role`,()=>{renderTable(),expect(l.getByRole(`table`)).not.toBeNull(),expect(l.getAllByRole(`columnheader`)).toHaveLength(2),expect(l.getAllByRole(`row`)).toHaveLength(4),expect(l.getByText(`A list of recent invoices`)).not.toBeNull()}),it(`defaults to the line variant, striped rows and no sticky header`,()=>{let{container:e}=renderTable(),t=e.querySelector(`[data-slot="table"]`);expect(t?.getAttribute(`data-variant`)).toBe(`line`),expect(t?.getAttribute(`data-striped`)).toBe(`true`),expect(t?.getAttribute(`data-sticky-header`)).toBe(`false`)}),it(`applies the outline variant classes when requested`,()=>{let{container:e}=renderTable({variant:`outline`}),t=e.querySelector(`[data-slot="table"]`);expect(t?.getAttribute(`data-variant`)).toBe(`outline`),expect(t?.className).toContain(`border-separate`)}),it(`disables striping and enables the sticky header via data attributes`,()=>{let{container:e}=renderTable({striped:!1,stickyHeader:!0}),t=e.querySelector(`[data-slot="table"]`);expect(t?.getAttribute(`data-striped`)).toBe(`false`),expect(t?.getAttribute(`data-sticky-header`)).toBe(`true`)}),it(`marks a row as selected via data-state`,()=>{renderTable();let e=l.getByText(`INV002`).closest(`[data-slot="table-row"]`);expect(e?.getAttribute(`data-state`)).toBe(`selected`)}),it(`applies a numeric minWidth as a pixel value on the container style`,()=>{let{container:t}=u(d(e,{minWidth:640,children:d(c,{children:d(i,{children:d(r,{children:d(n,{children:`Cell`})})})})})),a=t.querySelector(`[data-slot="table-container"]`);expect(a.style.minWidth).toBe(`640px`)}),it(`leaves the style untouched when no minWidth is provided`,()=>{let{container:t}=u(d(e,{style:{color:`red`},children:d(c,{children:d(i,{children:d(r,{children:d(n,{children:`Cell`})})})})})),a=t.querySelector(`[data-slot="table-container"]`);expect(a.style.minWidth).toBe(``),expect(a.style.color).toBe(`red`)})});
2
+ //# sourceMappingURL=table.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.spec.js","names":[],"sources":["../../src/components/table.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableContainer,\n TableFooter,\n TableHead,\n TableHeader,\n type TableProps,\n TableRow\n} from './table'\n\nfunction renderTable(props?: TableProps) {\n return render(\n <TableContainer>\n <Table {...props}>\n <TableCaption>A list of recent invoices</TableCaption>\n <TableHeader>\n <TableRow>\n <TableHead>Invoice</TableHead>\n <TableHead>Status</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell>INV001</TableCell>\n <TableCell>Paid</TableCell>\n </TableRow>\n <TableRow data-state=\"selected\">\n <TableCell>INV002</TableCell>\n <TableCell>Pending</TableCell>\n </TableRow>\n </TableBody>\n <TableFooter>\n <TableRow>\n <TableCell>Total</TableCell>\n <TableCell>2 invoices</TableCell>\n </TableRow>\n </TableFooter>\n </Table>\n </TableContainer>\n )\n}\n\ndescribe('Table', () => {\n it('renders every subcomponent with its own data-slot', () => {\n const { container } = renderTable()\n\n expect(container.querySelector('[data-slot=\"table-container\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"table\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"table-caption\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"table-header\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"table-body\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"table-footer\"]')).not.toBeNull()\n expect(container.querySelectorAll('[data-slot=\"table-row\"]')).toHaveLength(4)\n expect(container.querySelectorAll('[data-slot=\"table-head\"]')).toHaveLength(2)\n expect(container.querySelectorAll('[data-slot=\"table-cell\"]')).toHaveLength(6)\n })\n\n it('renders real table semantics that are queryable by role', () => {\n renderTable()\n\n expect(screen.getByRole('table')).not.toBeNull()\n expect(screen.getAllByRole('columnheader')).toHaveLength(2)\n expect(screen.getAllByRole('row')).toHaveLength(4)\n expect(screen.getByText('A list of recent invoices')).not.toBeNull()\n })\n\n it('defaults to the line variant, striped rows and no sticky header', () => {\n const { container } = renderTable()\n\n const table = container.querySelector('[data-slot=\"table\"]')\n\n expect(table?.getAttribute('data-variant')).toBe('line')\n expect(table?.getAttribute('data-striped')).toBe('true')\n expect(table?.getAttribute('data-sticky-header')).toBe('false')\n })\n\n it('applies the outline variant classes when requested', () => {\n const { container } = renderTable({ variant: 'outline' })\n\n const table = container.querySelector('[data-slot=\"table\"]')\n\n expect(table?.getAttribute('data-variant')).toBe('outline')\n expect(table?.className).toContain('border-separate')\n })\n\n it('disables striping and enables the sticky header via data attributes', () => {\n const { container } = renderTable({ striped: false, stickyHeader: true })\n\n const table = container.querySelector('[data-slot=\"table\"]')\n\n expect(table?.getAttribute('data-striped')).toBe('false')\n expect(table?.getAttribute('data-sticky-header')).toBe('true')\n })\n\n it('marks a row as selected via data-state', () => {\n renderTable()\n\n const selectedRow = screen.getByText('INV002').closest('[data-slot=\"table-row\"]')\n\n expect(selectedRow?.getAttribute('data-state')).toBe('selected')\n })\n\n it('applies a numeric minWidth as a pixel value on the container style', () => {\n const { container } = render(\n <TableContainer minWidth={640}>\n <Table>\n <TableBody>\n <TableRow>\n <TableCell>Cell</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n )\n\n const tableContainer = container.querySelector('[data-slot=\"table-container\"]') as HTMLElement\n\n expect(tableContainer.style.minWidth).toBe('640px')\n })\n\n it('leaves the style untouched when no minWidth is provided', () => {\n const { container } = render(\n <TableContainer style={{ color: 'red' }}>\n <Table>\n <TableBody>\n <TableRow>\n <TableCell>Cell</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableContainer>\n )\n\n const tableContainer = container.querySelector('[data-slot=\"table-container\"]') as HTMLElement\n\n expect(tableContainer.style.minWidth).toBe('')\n expect(tableContainer.style.color).toBe('red')\n })\n})\n"],"mappings":"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"}
@@ -1,21 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Tabs as Tabs$1 } from "radix-ui";
3
- import { VariantProps } from "class-variance-authority";
4
- import * as React from "react";
5
- //#region src/components/tabs.d.ts
6
- type TabsProps = React.ComponentProps<typeof Tabs$1.Root>;
7
- declare function Tabs({ className, orientation, ...props }: TabsProps): React.JSX.Element;
8
- declare const tabsListVariants: (props?: ({
9
- variant?: "enclosed" | "line" | null | undefined;
10
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
- type TabsListProps = React.ComponentProps<typeof Tabs$1.List> & VariantProps<typeof tabsListVariants> & {
12
- grow?: boolean;
13
- };
14
- type TabsTriggerProps = React.ComponentProps<typeof Tabs$1.Trigger>;
15
- type TabsContentProps = React.ComponentProps<typeof Tabs$1.Content>;
16
- declare function TabsList({ className, variant, grow, ...props }: TabsListProps): React.JSX.Element;
17
- declare function TabsTrigger({ className, ...props }: TabsTriggerProps): React.JSX.Element;
18
- declare function TabsContent({ className, ...props }: TabsContentProps): React.JSX.Element;
19
- //#endregion
20
- export { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps, tabsListVariants };
21
- //# sourceMappingURL=tabs.d.ts.map
1
+ import { a as TabsListProps, c as TabsTriggerProps, i as TabsList, l as tabsListVariants, n as TabsContent, o as TabsProps, r as TabsContentProps, s as TabsTrigger, t as Tabs } from "../tabs-BgWxTTah.js";
2
+ export { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsProps, TabsTrigger, TabsTriggerProps, tabsListVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Tabs as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import{cva as r}from"class-variance-authority";function Tabs({className:r,orientation:i=`horizontal`,...a}){return n(t.Root,{"data-slot":`tabs`,"data-orientation":i,className:e(`group/tabs flex gap-2 data-horizontal:flex-col`,r),...a})}const i=r(`group/tabs-list inline-flex items-center justify-start rounded-lg h-fit group-data-horizontal/tabs:flex-wrap group-data-horizontal/tabs:w-full group-data-vertical/tabs:w-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none`,{variants:{variant:{enclosed:`bg-muted p-0.75`,line:`gap-1 bg-transparent group-data-horizontal/tabs:border-b group-data-horizontal/tabs:border-b-border group-data-vertical/tabs:border-r group-data-vertical/tabs:border-r-border`}},defaultVariants:{variant:`line`}});function TabsList({className:r,variant:a=`line`,grow:o=!1,...s}){return n(t.List,{"data-slot":`tabs-list`,"data-variant":a,"data-grow":o,className:e(i({variant:a}),r),...s})}function TabsTrigger({className:r,...i}){return n(t.Trigger,{"data-slot":`tabs-trigger`,className:e(`relative inline-flex items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-normal whitespace-nowrap text-foreground transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:bg-muted focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=enclosed]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-horizontal/tabs:group-data-[grow=true]/tabs-list:flex-1`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:rounded-t-[8px] group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:rounded-b-none group-data-vertical/tabs:group-data-[variant=line]/tabs-list:rounded-l-[8px] group-data-vertical/tabs:group-data-[variant=line]/tabs-list:rounded-r-none`,`group-data-[variant=line]/tabs-list:h-8 group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:data-active:border-b-primary-500 group-data-vertical/tabs:group-data-[variant=line]/tabs-list:data-active:border-r-primary-500`,`group-data-[variant=enclosed]/tabs-list:h-[calc(100%-1px)] group-data-[variant=enclosed]/tabs-list:data-active:bg-background group-data-[variant=enclosed]/tabs-list:data-active:hover:bg-muted dark:group-data-[variant=enclosed]/tabs-list:data-active:border-input dark:group-data-[variant=enclosed]/tabs-list:data-active:bg-input/30`,r),...i})}function TabsContent({className:r,...i}){return n(t.Content,{"data-slot":`tabs-content`,className:e(`flex-1 text-sm outline-none`,r),...i})}export{Tabs,TabsContent,TabsList,TabsTrigger,i as tabsListVariants};
2
- //# sourceMappingURL=tabs.js.map
1
+ import{a as e,i as t,n,r,t as i}from"../tabs-DK9-RHkP.js";export{i as Tabs,n as TabsContent,r as TabsList,t as TabsTrigger,e as tabsListVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{i as e,n as t,r as n,t as r}from"../tabs-DK9-RHkP.js";import{a as i,n as a,r as o}from"../react.esm-BkhVXJ8s.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";function renderTabs(i){return o(c(r,{defaultValue:`account`,orientation:i?.orientation,children:[c(n,{variant:i?.variant,children:[s(e,{value:`account`,children:`Account`}),s(e,{value:`password`,children:`Password`})]}),s(t,{value:`account`,children:`Account settings`}),s(t,{value:`password`,children:`Password settings`})]}))}describe(`Tabs`,()=>{it(`renders the root with data-slot and the default horizontal orientation`,()=>{let{container:e}=renderTabs(),t=e.querySelector(`[data-slot="tabs"]`);expect(t).not.toBeNull(),expect(t?.getAttribute(`data-orientation`)).toBe(`horizontal`),expect(t?.className).toContain(`data-horizontal:flex-col`)}),it(`shows only the active tab content and marks the active trigger`,()=>{renderTabs(),expect(i.getByText(`Account settings`)).not.toBeNull(),expect(i.queryByText(`Password settings`)).toBeNull();let e=i.getByRole(`tab`,{name:`Account`}),t=i.getByRole(`tab`,{name:`Password`});expect(e.getAttribute(`data-state`)).toBe(`active`),expect(t.getAttribute(`data-state`)).toBe(`inactive`)}),it(`switches the active tab content when a different trigger is clicked`,()=>{renderTabs(),a.mouseDown(i.getByRole(`tab`,{name:`Password`})),expect(i.getByText(`Password settings`)).not.toBeNull(),expect(i.queryByText(`Account settings`)).toBeNull(),expect(i.getByRole(`tab`,{name:`Password`}).getAttribute(`data-state`)).toBe(`active`)}),it(`calls onValueChange when a trigger is activated`,()=>{let l=vi.fn();o(c(r,{defaultValue:`account`,onValueChange:l,children:[c(n,{children:[s(e,{value:`account`,children:`Account`}),s(e,{value:`password`,children:`Password`})]}),s(t,{value:`account`,children:`Account settings`}),s(t,{value:`password`,children:`Password settings`})]})),a.mouseDown(i.getByRole(`tab`,{name:`Password`})),expect(l).toHaveBeenCalledWith(`password`)}),it(`applies the vertical orientation data attribute and class to the root`,()=>{let{container:e}=renderTabs({orientation:`vertical`}),t=e.querySelector(`[data-slot="tabs"]`);expect(t?.getAttribute(`data-orientation`)).toBe(`vertical`)}),it(`defaults the list variant to line and lets it be switched to enclosed`,()=>{let{container:i,rerender:a}=renderTabs(),o=i.querySelector(`[data-slot="tabs-list"]`);expect(o?.getAttribute(`data-variant`)).toBe(`line`),expect(o?.className).toContain(`bg-transparent`),a(c(r,{defaultValue:`account`,children:[s(n,{variant:`enclosed`,children:s(e,{value:`account`,children:`Account`})}),s(t,{value:`account`,children:`Account settings`})]})),o=i.querySelector(`[data-slot="tabs-list"]`),expect(o?.getAttribute(`data-variant`)).toBe(`enclosed`),expect(o?.className).toContain(`bg-muted`)}),it(`marks the list as growing when the grow prop is set`,()=>{o(c(r,{defaultValue:`account`,children:[s(n,{grow:!0,children:s(e,{value:`account`,children:`Account`})}),s(t,{value:`account`,children:`Account settings`})]})),expect(i.getByRole(`tablist`).getAttribute(`data-grow`)).toBe(`true`)}),it(`disables a trigger and keeps it inactive when clicked`,()=>{let l=vi.fn();o(c(r,{defaultValue:`account`,onValueChange:l,children:[c(n,{children:[s(e,{value:`account`,children:`Account`}),s(e,{value:`password`,disabled:!0,children:`Password`})]}),s(t,{value:`account`,children:`Account settings`}),s(t,{value:`password`,children:`Password settings`})]})),a.mouseDown(i.getByRole(`tab`,{name:`Password`})),expect(l).not.toHaveBeenCalled(),expect(i.getByText(`Account settings`)).not.toBeNull()})});
2
+ //# sourceMappingURL=tabs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.spec.js","names":[],"sources":["../../src/components/tabs.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from './tabs'\n\nfunction renderTabs(props?: { orientation?: 'horizontal' | 'vertical'; variant?: 'line' | 'enclosed' }) {\n return render(\n <Tabs defaultValue=\"account\" orientation={props?.orientation}>\n <TabsList variant={props?.variant}>\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n <TabsTrigger value=\"password\">Password</TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">Account settings</TabsContent>\n <TabsContent value=\"password\">Password settings</TabsContent>\n </Tabs>\n )\n}\n\ndescribe('Tabs', () => {\n it('renders the root with data-slot and the default horizontal orientation', () => {\n const { container } = renderTabs()\n\n const root = container.querySelector('[data-slot=\"tabs\"]')\n\n expect(root).not.toBeNull()\n expect(root?.getAttribute('data-orientation')).toBe('horizontal')\n expect(root?.className).toContain('data-horizontal:flex-col')\n })\n\n it('shows only the active tab content and marks the active trigger', () => {\n renderTabs()\n\n expect(screen.getByText('Account settings')).not.toBeNull()\n expect(screen.queryByText('Password settings')).toBeNull()\n\n const activeTrigger = screen.getByRole('tab', { name: 'Account' })\n const inactiveTrigger = screen.getByRole('tab', { name: 'Password' })\n\n expect(activeTrigger.getAttribute('data-state')).toBe('active')\n expect(inactiveTrigger.getAttribute('data-state')).toBe('inactive')\n })\n\n it('switches the active tab content when a different trigger is clicked', () => {\n renderTabs()\n\n fireEvent.mouseDown(screen.getByRole('tab', { name: 'Password' }))\n\n expect(screen.getByText('Password settings')).not.toBeNull()\n expect(screen.queryByText('Account settings')).toBeNull()\n expect(screen.getByRole('tab', { name: 'Password' }).getAttribute('data-state')).toBe('active')\n })\n\n it('calls onValueChange when a trigger is activated', () => {\n const onValueChange = vi.fn()\n\n render(\n <Tabs defaultValue=\"account\" onValueChange={onValueChange}>\n <TabsList>\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n <TabsTrigger value=\"password\">Password</TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">Account settings</TabsContent>\n <TabsContent value=\"password\">Password settings</TabsContent>\n </Tabs>\n )\n\n fireEvent.mouseDown(screen.getByRole('tab', { name: 'Password' }))\n\n expect(onValueChange).toHaveBeenCalledWith('password')\n })\n\n it('applies the vertical orientation data attribute and class to the root', () => {\n const { container } = renderTabs({ orientation: 'vertical' })\n\n const root = container.querySelector('[data-slot=\"tabs\"]')\n\n expect(root?.getAttribute('data-orientation')).toBe('vertical')\n })\n\n it('defaults the list variant to line and lets it be switched to enclosed', () => {\n const { container, rerender } = renderTabs()\n\n let list = container.querySelector('[data-slot=\"tabs-list\"]')\n expect(list?.getAttribute('data-variant')).toBe('line')\n expect(list?.className).toContain('bg-transparent')\n\n rerender(\n <Tabs defaultValue=\"account\">\n <TabsList variant=\"enclosed\">\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">Account settings</TabsContent>\n </Tabs>\n )\n\n list = container.querySelector('[data-slot=\"tabs-list\"]')\n expect(list?.getAttribute('data-variant')).toBe('enclosed')\n expect(list?.className).toContain('bg-muted')\n })\n\n it('marks the list as growing when the grow prop is set', () => {\n render(\n <Tabs defaultValue=\"account\">\n <TabsList grow>\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">Account settings</TabsContent>\n </Tabs>\n )\n\n expect(screen.getByRole('tablist').getAttribute('data-grow')).toBe('true')\n })\n\n it('disables a trigger and keeps it inactive when clicked', () => {\n const onValueChange = vi.fn()\n\n render(\n <Tabs defaultValue=\"account\" onValueChange={onValueChange}>\n <TabsList>\n <TabsTrigger value=\"account\">Account</TabsTrigger>\n <TabsTrigger value=\"password\" disabled>\n Password\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"account\">Account settings</TabsContent>\n <TabsContent value=\"password\">Password settings</TabsContent>\n </Tabs>\n )\n\n fireEvent.mouseDown(screen.getByRole('tab', { name: 'Password' }))\n\n expect(onValueChange).not.toHaveBeenCalled()\n expect(screen.getByText('Account settings')).not.toBeNull()\n })\n})\n"],"mappings":"kNAIA,SAAS,WAAW,EAAoF,CACtG,OAAO,EACL,EAAC,EAAD,CAAM,aAAa,UAAU,YAAa,GAAO,YAAjD,SAAA,CACE,EAAC,EAAD,CAAU,QAAS,GAAO,QAA1B,SAAA,CACE,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,SAAoB,CAAA,EACjD,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,UAAqB,CAAA,CAC3C,IACV,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,kBAA6B,CAAA,EAC1D,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,mBAA8B,CAAA,CACxD,CACR,CAAA,CAAA,CACF,CAEA,SAAS,WAAc,CACrB,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,WAAW,EAE3B,EAAO,EAAU,cAAc,oBAAoB,EAEzD,OAAO,CAAI,CAAC,CAAC,IAAI,SAAS,EAC1B,OAAO,GAAM,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,YAAY,EAChE,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,0BAA0B,CAC9D,CAAC,EAED,GAAG,qEAAwE,CACzE,WAAW,EAEX,OAAO,EAAO,UAAU,kBAAkB,CAAC,CAAC,CAAC,IAAI,SAAS,EAC1D,OAAO,EAAO,YAAY,mBAAmB,CAAC,CAAC,CAAC,SAAS,EAEzD,IAAM,EAAgB,EAAO,UAAU,MAAO,CAAE,KAAM,SAAU,CAAC,EAC3D,EAAkB,EAAO,UAAU,MAAO,CAAE,KAAM,UAAW,CAAC,EAEpE,OAAO,EAAc,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC9D,OAAO,EAAgB,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CACpE,CAAC,EAED,GAAG,0EAA6E,CAC9E,WAAW,EAEX,EAAU,UAAU,EAAO,UAAU,MAAO,CAAE,KAAM,UAAW,CAAC,CAAC,EAEjE,OAAO,EAAO,UAAU,mBAAmB,CAAC,CAAC,CAAC,IAAI,SAAS,EAC3D,OAAO,EAAO,YAAY,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACxD,OAAO,EAAO,UAAU,MAAO,CAAE,KAAM,UAAW,CAAC,CAAC,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CAChG,CAAC,EAED,GAAG,sDAAyD,CAC1D,IAAM,EAAgB,GAAG,GAAG,EAE5B,EACE,EAAC,EAAD,CAAM,aAAa,UAAyB,gBAA5C,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,SAAoB,CAAA,EACjD,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,UAAqB,CAAA,CAC3C,CAAA,CAAA,EACV,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,kBAA6B,CAAA,EAC1D,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,mBAA8B,CAAA,CACxD,CACR,CAAA,CAAA,EAEA,EAAU,UAAU,EAAO,UAAU,MAAO,CAAE,KAAM,UAAW,CAAC,CAAC,EAEjE,OAAO,CAAa,CAAC,CAAC,qBAAqB,UAAU,CACvD,CAAC,EAED,GAAG,4EAA+E,CAChF,GAAM,CAAE,aAAc,WAAW,CAAE,YAAa,UAAW,CAAC,EAEtD,EAAO,EAAU,cAAc,oBAAoB,EAEzD,OAAO,GAAM,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,CAChE,CAAC,EAED,GAAG,4EAA+E,CAChF,GAAM,CAAE,YAAW,YAAa,WAAW,EAEvC,EAAO,EAAU,cAAc,yBAAyB,EAC5D,OAAO,GAAM,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,EACtD,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,gBAAgB,EAElD,EACE,EAAC,EAAD,CAAM,aAAa,UAAnB,SAAA,CACE,EAAC,EAAD,CAAU,QAAQ,WAChB,SAAA,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,SAAoB,CAAA,CACzC,CAAA,EACV,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,kBAA6B,CAAA,CACtD,CACR,CAAA,CAAA,EAEA,EAAO,EAAU,cAAc,yBAAyB,EACxD,OAAO,GAAM,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,UAAU,EAC1D,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,UAAU,CAC9C,CAAC,EAED,GAAG,0DAA6D,CAC9D,EACE,EAAC,EAAD,CAAM,aAAa,UAAnB,SAAA,CACE,EAAC,EAAD,CAAU,KAAA,GACR,SAAA,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,SAAoB,CAAA,CACzC,CAAA,EACV,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,kBAA6B,CAAA,CACtD,CACR,CAAA,CAAA,EAEA,OAAO,EAAO,UAAU,SAAS,CAAC,CAAC,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAC3E,CAAC,EAED,GAAG,4DAA+D,CAChE,IAAM,EAAgB,GAAG,GAAG,EAE5B,EACE,EAAC,EAAD,CAAM,aAAa,UAAyB,gBAA5C,SAAA,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,SAAoB,CAAA,EACjD,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,GAAS,SAAA,UAE1B,CAAA,CACL,CAAA,CAAA,EACV,EAAC,EAAD,CAAa,MAAM,UAAU,SAAA,kBAA6B,CAAA,EAC1D,EAAC,EAAD,CAAa,MAAM,WAAW,SAAA,mBAA8B,CAAA,CACxD,CACR,CAAA,CAAA,EAEA,EAAU,UAAU,EAAO,UAAU,MAAO,CAAE,KAAM,UAAW,CAAC,CAAC,EAEjE,OAAO,CAAa,CAAC,CAAC,IAAI,iBAAiB,EAC3C,OAAO,EAAO,UAAU,kBAAkB,CAAC,CAAC,CAAC,IAAI,SAAS,CAC5D,CAAC,CACH,CAAC"}