@uselets/ui 1.16.1 → 1.18.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 (844) 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/slider-CC-gQawq.js +2 -0
  665. package/dist/slider-CC-gQawq.js.map +1 -0
  666. package/dist/slider-DmZ1YfLg.d.ts +9 -0
  667. package/dist/sonner-Binx8JJ2.d.ts +8 -0
  668. package/dist/sonner-DrKqhTDI.js +2 -0
  669. package/dist/sonner-DrKqhTDI.js.map +1 -0
  670. package/dist/spinner-Dz63Ltq-.d.ts +12 -0
  671. package/dist/spinner-ntLrcDLN.js +2 -0
  672. package/dist/spinner-ntLrcDLN.js.map +1 -0
  673. package/dist/stack-BbLllsqk.js +2 -0
  674. package/dist/stack-BbLllsqk.js.map +1 -0
  675. package/dist/stack-WiND8Dxq.d.ts +14 -0
  676. package/dist/stepper-BQ-59_UO.js +2 -0
  677. package/dist/stepper-BQ-59_UO.js.map +1 -0
  678. package/dist/stepper-DK5_o7RG.d.ts +71 -0
  679. package/dist/styles/max.css +11 -11
  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/dist/components/accordion.js.map +0 -1
  749. package/dist/components/alert-dialog.js.map +0 -1
  750. package/dist/components/alert.js.map +0 -1
  751. package/dist/components/anchor.js.map +0 -1
  752. package/dist/components/area-chart.js.map +0 -1
  753. package/dist/components/avatar.js.map +0 -1
  754. package/dist/components/badge.js.map +0 -1
  755. package/dist/components/bar-chart.js.map +0 -1
  756. package/dist/components/breadcrumb.js.map +0 -1
  757. package/dist/components/button-group.js.map +0 -1
  758. package/dist/components/button.js.map +0 -1
  759. package/dist/components/calendar.js.map +0 -1
  760. package/dist/components/card.js.map +0 -1
  761. package/dist/components/carousel.js.map +0 -1
  762. package/dist/components/center.js.map +0 -1
  763. package/dist/components/chart.js.map +0 -1
  764. package/dist/components/checkbox.js.map +0 -1
  765. package/dist/components/code.js.map +0 -1
  766. package/dist/components/collapsible.js.map +0 -1
  767. package/dist/components/combobox.js.map +0 -1
  768. package/dist/components/command.js.map +0 -1
  769. package/dist/components/container.js.map +0 -1
  770. package/dist/components/data-table.js.map +0 -1
  771. package/dist/components/date-range-picker.js.map +0 -1
  772. package/dist/components/dialog.js.map +0 -1
  773. package/dist/components/donut-chart.js.map +0 -1
  774. package/dist/components/drawer.js.map +0 -1
  775. package/dist/components/dropdown-menu.js.map +0 -1
  776. package/dist/components/dropzone.js.map +0 -1
  777. package/dist/components/empty.js.map +0 -1
  778. package/dist/components/field.js.map +0 -1
  779. package/dist/components/flex.js.map +0 -1
  780. package/dist/components/grid.js.map +0 -1
  781. package/dist/components/group.js.map +0 -1
  782. package/dist/components/heading.js.map +0 -1
  783. package/dist/components/hover-card.js.map +0 -1
  784. package/dist/components/input-group.js.map +0 -1
  785. package/dist/components/input-otp.js.map +0 -1
  786. package/dist/components/input.js.map +0 -1
  787. package/dist/components/kbd.js.map +0 -1
  788. package/dist/components/label.js.map +0 -1
  789. package/dist/components/list.js.map +0 -1
  790. package/dist/components/marker.js.map +0 -1
  791. package/dist/components/mask-input.js.map +0 -1
  792. package/dist/components/native-select.js.map +0 -1
  793. package/dist/components/navigation-menu.js.map +0 -1
  794. package/dist/components/number-field.js.map +0 -1
  795. package/dist/components/pagination.js.map +0 -1
  796. package/dist/components/phone-input.js.map +0 -1
  797. package/dist/components/pie-chart.js.map +0 -1
  798. package/dist/components/popover.js.map +0 -1
  799. package/dist/components/progress.js.map +0 -1
  800. package/dist/components/radio-group.js.map +0 -1
  801. package/dist/components/resizable.js.map +0 -1
  802. package/dist/components/ring-progress.js.map +0 -1
  803. package/dist/components/scroll-area.js.map +0 -1
  804. package/dist/components/select.js.map +0 -1
  805. package/dist/components/separator.js.map +0 -1
  806. package/dist/components/sidebar.js.map +0 -1
  807. package/dist/components/simple-grid.js.map +0 -1
  808. package/dist/components/skeleton.js.map +0 -1
  809. package/dist/components/slider.js.map +0 -1
  810. package/dist/components/sonner.js.map +0 -1
  811. package/dist/components/spinner.js.map +0 -1
  812. package/dist/components/stack.js.map +0 -1
  813. package/dist/components/stepper.js.map +0 -1
  814. package/dist/components/switch.js.map +0 -1
  815. package/dist/components/table.js.map +0 -1
  816. package/dist/components/tabs.js.map +0 -1
  817. package/dist/components/text.js.map +0 -1
  818. package/dist/components/textarea.js.map +0 -1
  819. package/dist/components/theme.js.map +0 -1
  820. package/dist/components/timeline.js.map +0 -1
  821. package/dist/components/toggle-group.js.map +0 -1
  822. package/dist/components/toggle.js.map +0 -1
  823. package/dist/components/tooltip.js.map +0 -1
  824. package/dist/components/unstyled-button.js.map +0 -1
  825. package/dist/components/visibility.js.map +0 -1
  826. package/dist/hooks/use-breakpoint-value.js.map +0 -1
  827. package/dist/hooks/use-breakpoint.js.map +0 -1
  828. package/dist/hooks/use-disclosure.js.map +0 -1
  829. package/dist/hooks/use-document-visibility.js.map +0 -1
  830. package/dist/hooks/use-idle.js.map +0 -1
  831. package/dist/hooks/use-interval.js.map +0 -1
  832. package/dist/hooks/use-local-storage.js.map +0 -1
  833. package/dist/hooks/use-mask.js.map +0 -1
  834. package/dist/hooks/use-mobile.js.map +0 -1
  835. package/dist/lib/badge.js.map +0 -1
  836. package/dist/lib/button.js.map +0 -1
  837. package/dist/lib/color.js.map +0 -1
  838. package/dist/lib/compose-refs.js.map +0 -1
  839. package/dist/lib/progress.js.map +0 -1
  840. package/dist/lib/utils.js.map +0 -1
  841. package/dist/magic-string.es-oADFB1hu.js +0 -15
  842. package/dist/magic-string.es-oADFB1hu.js.map +0 -1
  843. package/dist/utils-Cj3IZeiu.js +0 -37
  844. package/dist/utils-Cj3IZeiu.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,i as t,n,o as r,r as i,t as a}from"../avatar-CFUwrOwG.js";import{r as o}from"../react.esm-BkhVXJ8s.js";import{jsx as s,jsxs as c}from"react/jsx-runtime";describe(`Avatar`,()=>{it(`defaults to the md size and exposes data-size on the root`,()=>{let{container:e}=o(s(a,{children:s(i,{children:`JD`})})),t=e.querySelector(`[data-slot="avatar"]`);expect(t?.getAttribute(`data-size`)).toBe(`md`),expect(t?.className).toContain(`size-8`)}),it(`applies the size-specific data attribute for sm and lg`,()=>{let{container:e,rerender:t}=o(s(a,{size:`sm`,children:s(i,{children:`JD`})}));expect(e.querySelector(`[data-slot="avatar"]`)?.getAttribute(`data-size`)).toBe(`sm`),t(s(a,{size:`lg`,children:s(i,{children:`JD`})})),expect(e.querySelector(`[data-slot="avatar"]`)?.getAttribute(`data-size`)).toBe(`lg`)}),describe(`AvatarImage and AvatarFallback`,()=>{it(`renders the fallback and does not render the image before it has finished loading`,()=>{let{container:e}=o(c(a,{children:[s(r,{src:`https://example.com/avatar.png`,alt:`Jane Doe`}),s(i,{children:`JD`})]}));expect(e.querySelector(`[data-slot="avatar-fallback"]`)?.textContent).toBe(`JD`),expect(e.querySelector(`[data-slot="avatar-image"]`)).toBeNull()}),it(`renders the image and hides the fallback once the image reports a successful load`,()=>{let e=Object.getOwnPropertyDescriptor(HTMLImageElement.prototype,`complete`),t=Object.getOwnPropertyDescriptor(HTMLImageElement.prototype,`naturalWidth`);Object.defineProperty(HTMLImageElement.prototype,"complete",{configurable:!0,get:()=>!0}),Object.defineProperty(HTMLImageElement.prototype,"naturalWidth",{configurable:!0,get:()=>100});try{let{container:e}=o(c(a,{children:[s(r,{src:`https://example.com/avatar.png`,alt:`Jane Doe`}),s(i,{children:`JD`})]}));expect(e.querySelector(`[data-slot="avatar-image"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="avatar-fallback"]`)).toBeNull()}finally{e&&Object.defineProperty(HTMLImageElement.prototype,"complete",e),t&&Object.defineProperty(HTMLImageElement.prototype,"naturalWidth",t)}})}),it(`renders AvatarBadge with the expected classes`,()=>{let{container:e}=o(c(a,{children:[s(i,{children:`JD`}),s(n,{children:`online`})]}));expect(e.querySelector(`[data-slot="avatar-badge"]`)?.className).toContain(`absolute`)}),it(`renders AvatarGroup and AvatarGroupCount composition`,()=>{let{container:n}=o(c(t,{children:[s(a,{children:s(i,{children:`A`})}),s(a,{children:s(i,{children:`B`})}),s(e,{children:`+3`})]}));expect(n.querySelector(`[data-slot="avatar-group"]`)?.className).toContain(`-space-x-2`),expect(n.querySelector(`[data-slot="avatar-group-count"]`)?.textContent).toBe(`+3`)})});
2
+ //# sourceMappingURL=avatar.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.spec.js","names":[],"sources":["../../src/components/avatar.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from './avatar'\n\ndescribe('Avatar', () => {\n it('defaults to the md size and exposes data-size on the root', () => {\n const { container } = render(\n <Avatar>\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n )\n\n const avatar = container.querySelector('[data-slot=\"avatar\"]')\n\n expect(avatar?.getAttribute('data-size')).toBe('md')\n expect(avatar?.className).toContain('size-8')\n })\n\n it('applies the size-specific data attribute for sm and lg', () => {\n const { container, rerender } = render(\n <Avatar size=\"sm\">\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n )\n\n expect(container.querySelector('[data-slot=\"avatar\"]')?.getAttribute('data-size')).toBe('sm')\n\n rerender(\n <Avatar size=\"lg\">\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n )\n\n expect(container.querySelector('[data-slot=\"avatar\"]')?.getAttribute('data-size')).toBe('lg')\n })\n\n describe('AvatarImage and AvatarFallback', () => {\n it('renders the fallback and does not render the image before it has finished loading', () => {\n const { container } = render(\n <Avatar>\n <AvatarImage src=\"https://example.com/avatar.png\" alt=\"Jane Doe\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n )\n\n expect(container.querySelector('[data-slot=\"avatar-fallback\"]')?.textContent).toBe('JD')\n expect(container.querySelector('[data-slot=\"avatar-image\"]')).toBeNull()\n })\n\n it('renders the image and hides the fallback once the image reports a successful load', () => {\n const completeDescriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'complete')\n const naturalWidthDescriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'naturalWidth')\n\n Object.defineProperty(HTMLImageElement.prototype, 'complete', { configurable: true, get: () => true })\n Object.defineProperty(HTMLImageElement.prototype, 'naturalWidth', { configurable: true, get: () => 100 })\n\n try {\n const { container } = render(\n <Avatar>\n <AvatarImage src=\"https://example.com/avatar.png\" alt=\"Jane Doe\" />\n <AvatarFallback>JD</AvatarFallback>\n </Avatar>\n )\n\n expect(container.querySelector('[data-slot=\"avatar-image\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"avatar-fallback\"]')).toBeNull()\n } finally {\n if (completeDescriptor) {\n Object.defineProperty(HTMLImageElement.prototype, 'complete', completeDescriptor)\n }\n if (naturalWidthDescriptor) {\n Object.defineProperty(HTMLImageElement.prototype, 'naturalWidth', naturalWidthDescriptor)\n }\n }\n })\n })\n\n it('renders AvatarBadge with the expected classes', () => {\n const { container } = render(\n <Avatar>\n <AvatarFallback>JD</AvatarFallback>\n <AvatarBadge>online</AvatarBadge>\n </Avatar>\n )\n\n expect(container.querySelector('[data-slot=\"avatar-badge\"]')?.className).toContain('absolute')\n })\n\n it('renders AvatarGroup and AvatarGroupCount composition', () => {\n const { container } = render(\n <AvatarGroup>\n <Avatar>\n <AvatarFallback>A</AvatarFallback>\n </Avatar>\n <Avatar>\n <AvatarFallback>B</AvatarFallback>\n </Avatar>\n <AvatarGroupCount>+3</AvatarGroupCount>\n </AvatarGroup>\n )\n\n expect(container.querySelector('[data-slot=\"avatar-group\"]')?.className).toContain('-space-x-2')\n expect(container.querySelector('[data-slot=\"avatar-group-count\"]')?.textContent).toBe('+3')\n })\n})\n"],"mappings":"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"}
@@ -1,16 +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/badge.d.ts
5
- declare const badgeVariants: (props?: ({
6
- size?: "lg" | "md" | "sm" | "xl" | "xs" | null | undefined;
7
- variant?: "outline" | "secondary" | "solid" | "subtle" | null | undefined;
8
- color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
- type BadgeProps = React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & {
11
- asChild?: boolean;
12
- };
13
- declare function Badge({ className, size, variant, color, asChild, ...props }: BadgeProps): React.JSX.Element;
14
- //#endregion
15
- export { Badge, BadgeProps, badgeVariants };
16
- //# sourceMappingURL=badge.d.ts.map
1
+ import { n as BadgeProps, r as badgeVariants, t as Badge } from "../badge-BqpQcDFd.js";
2
+ export { Badge, BadgeProps, badgeVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{badgeColorVariants as t}from"../lib/badge.js";import{Slot as n}from"radix-ui";import{jsx as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";const a=i(`group/badge inline-flex w-fit items-center justify-center overflow-hidden border border-transparent font-semibold whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none`,{variants:{size:{xs:`h-4 gap-0.5 px-1.5 text-[10px] rounded-[4px] [&>svg]:size-2.5! has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1`,sm:`h-4.5 gap-0.5 px-2 text-[11px] rounded-[5px] [&>svg]:size-2.5! has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5`,md:`h-5 gap-1 px-2 py-0.5 text-xs rounded-[6px] [&>svg]:size-3! has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5`,lg:`h-6 gap-1 px-2.5 text-xs rounded-[7px] [&>svg]:size-3.5! has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,xl:`h-7 gap-1.5 px-3 text-sm rounded-[8px] [&>svg]:size-4! has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5`},variant:{solid:`bg-(--badge-solid) text-(--badge-solid-foreground) [a]:hover:opacity-90`,secondary:`border-border bg-background text-foreground [a]:hover:bg-muted dark:border-input dark:bg-input/30 dark:[a]:hover:bg-input/50`,outline:`border-(--badge-outline-border) text-(--badge-outline-foreground) [a]:hover:bg-(--badge-soft) [a]:hover:text-(--badge-soft-foreground)`,subtle:`bg-(--badge-soft) text-(--badge-soft-foreground) [a]:hover:bg-(--badge-soft-hover)`},color:t},defaultVariants:{size:`md`,variant:`solid`,color:`primary`}});function Badge({className:t,size:i=`md`,variant:o=`solid`,color:s=`primary`,asChild:c=!1,...l}){return r(c?n.Root:`span`,{"data-slot":`badge`,"data-size":i,"data-variant":o,"data-color":s,className:e(a({size:i,variant:o,color:s}),t),...l})}export{Badge,a as badgeVariants};
2
- //# sourceMappingURL=badge.js.map
1
+ import{n as e,t}from"../badge-Cuq_DqRS.js";export{t as Badge,e as badgeVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../badge-Cuq_DqRS.js";import{a as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";describe(`Badge`,()=>{it(`renders a span with default variants and data-slot`,()=>{let{container:t}=n(r(e,{children:`New`})),i=t.querySelector(`[data-slot="badge"]`);expect(i).not.toBeNull(),expect(i?.tagName).toBe(`SPAN`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`data-variant`)).toBe(`solid`),expect(i?.getAttribute(`data-color`)).toBe(`primary`),expect(i?.className).toContain(`bg-(--badge-solid)`)}),it(`applies the requested size variant`,()=>{let{container:t}=n(r(e,{size:`xl`,children:`Large`})),i=t.querySelector(`[data-slot="badge"]`);expect(i?.getAttribute(`data-size`)).toBe(`xl`),expect(i?.className).toContain(`h-7`)}),it(`applies the requested variant style`,()=>{let{container:t}=n(r(e,{variant:`outline`,children:`Outline`})),i=t.querySelector(`[data-slot="badge"]`);expect(i?.getAttribute(`data-variant`)).toBe(`outline`),expect(i?.className).toContain(`border-(--badge-outline-border)`)}),it(`applies the requested color token`,()=>{let{container:t}=n(r(e,{color:`red`,children:`Danger`})),i=t.querySelector(`[data-slot="badge"]`);expect(i?.getAttribute(`data-color`)).toBe(`red`),expect(i?.className).toContain(`[--badge-solid:var(--red)]`)}),it(`renders the child element directly when asChild is set`,()=>{n(r(e,{asChild:!0,variant:`subtle`,color:`green`,children:r(`a`,{href:`/status`,children:`Status`})}));let i=t.getByRole(`link`,{name:`Status`});expect(i.getAttribute(`data-slot`)).toBe(`badge`),expect(i.tagName).toBe(`A`)}),it(`forwards the ref to the underlying span element`,()=>{let t={current:null};n(r(e,{ref:t,children:`Ref badge`})),expect(t.current).not.toBeNull(),expect(t.current?.tagName).toBe(`SPAN`)})});
2
+ //# sourceMappingURL=badge.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.spec.js","names":[],"sources":["../../src/components/badge.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Badge } from './badge'\n\ndescribe('Badge', () => {\n it('renders a span with default variants and data-slot', () => {\n const { container } = render(<Badge>New</Badge>)\n\n const badge = container.querySelector('[data-slot=\"badge\"]')\n\n expect(badge).not.toBeNull()\n expect(badge?.tagName).toBe('SPAN')\n expect(badge?.getAttribute('data-size')).toBe('md')\n expect(badge?.getAttribute('data-variant')).toBe('solid')\n expect(badge?.getAttribute('data-color')).toBe('primary')\n expect(badge?.className).toContain('bg-(--badge-solid)')\n })\n\n it('applies the requested size variant', () => {\n const { container } = render(<Badge size=\"xl\">Large</Badge>)\n\n const badge = container.querySelector('[data-slot=\"badge\"]')\n\n expect(badge?.getAttribute('data-size')).toBe('xl')\n expect(badge?.className).toContain('h-7')\n })\n\n it('applies the requested variant style', () => {\n const { container } = render(<Badge variant=\"outline\">Outline</Badge>)\n\n const badge = container.querySelector('[data-slot=\"badge\"]')\n\n expect(badge?.getAttribute('data-variant')).toBe('outline')\n expect(badge?.className).toContain('border-(--badge-outline-border)')\n })\n\n it('applies the requested color token', () => {\n const { container } = render(<Badge color=\"red\">Danger</Badge>)\n\n const badge = container.querySelector('[data-slot=\"badge\"]')\n\n expect(badge?.getAttribute('data-color')).toBe('red')\n expect(badge?.className).toContain('[--badge-solid:var(--red)]')\n })\n\n it('renders the child element directly when asChild is set', () => {\n render(\n <Badge asChild variant=\"subtle\" color=\"green\">\n <a href=\"/status\">Status</a>\n </Badge>\n )\n\n const badge = screen.getByRole('link', { name: 'Status' })\n\n expect(badge.getAttribute('data-slot')).toBe('badge')\n expect(badge.tagName).toBe('A')\n })\n\n it('forwards the ref to the underlying span element', () => {\n const ref = { current: null as HTMLSpanElement | null }\n\n render(<Badge ref={ref}>Ref badge</Badge>)\n\n expect(ref.current).not.toBeNull()\n expect(ref.current?.tagName).toBe('SPAN')\n })\n})\n"],"mappings":"6KAIA,SAAS,YAAe,CACtB,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAO,KAAU,CAAA,CAAC,EAEzC,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,CAAK,CAAC,CAAC,IAAI,SAAS,EAC3B,OAAO,GAAO,OAAO,CAAC,CAAC,KAAK,MAAM,EAClC,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,OAAO,EACxD,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EACxD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,oBAAoB,CACzD,CAAC,EAED,GAAG,yCAA4C,CAC7C,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,KAAK,KAAK,SAAA,OAAY,CAAA,CAAC,EAErD,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,KAAK,CAC1C,CAAC,EAED,GAAG,0CAA6C,CAC9C,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,QAAQ,UAAU,SAAA,SAAc,CAAA,CAAC,EAE/D,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAC1D,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,iCAAiC,CACtE,CAAC,EAED,GAAG,wCAA2C,CAC5C,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,MAAM,MAAM,SAAA,QAAa,CAAA,CAAC,EAExD,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,EACpD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,4BAA4B,CACjE,CAAC,EAED,GAAG,6DAAgE,CACjE,EACE,EAAC,EAAD,CAAO,QAAA,GAAQ,QAAQ,SAAS,MAAM,QACpC,SAAA,EAAC,IAAD,CAAG,KAAK,UAAU,SAAA,QAAS,CAAA,CACtB,CAAA,CACT,EAEA,IAAM,EAAQ,EAAO,UAAU,OAAQ,CAAE,KAAM,QAAS,CAAC,EAEzD,OAAO,EAAM,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EACpD,OAAO,EAAM,OAAO,CAAC,CAAC,KAAK,GAAG,CAChC,CAAC,EAED,GAAG,sDAAyD,CAC1D,IAAM,EAAM,CAAE,QAAS,IAA+B,EAEtD,EAAO,EAAC,EAAD,CAAY,MAAK,SAAA,WAAgB,CAAA,CAAC,EAEzC,OAAO,EAAI,OAAO,CAAC,CAAC,IAAI,SAAS,EACjC,OAAO,EAAI,SAAS,OAAO,CAAC,CAAC,KAAK,MAAM,CAC1C,CAAC,CACH,CAAC"}
@@ -1,42 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { c as ChartLegendContentProps, m as ChartTooltipContentProps, n as ChartColorKey } from "../chart-CVe5-EWS.js";
3
- import * as React from "react";
4
- import { Bar, BarChart as BarChart$1 } from "recharts";
5
- //#region src/components/bar-chart.d.ts
6
- type BarChartSeries = {
7
- name: string;
8
- label?: string;
9
- color?: string;
10
- colorKey?: ChartColorKey;
11
- };
12
- type BarChartDatum = Record<string, unknown> & {
13
- color?: string;
14
- colorKey?: ChartColorKey;
15
- };
16
- type BarChartType = 'default' | 'stacked' | 'percent';
17
- type BarChartOrientation = 'vertical' | 'horizontal';
18
- type BarChartGridAxis = 'none' | 'x' | 'y' | 'xy';
19
- type BarChartProps = Omit<React.ComponentProps<'div'>, 'children'> & {
20
- data: BarChartDatum[];
21
- series: BarChartSeries[];
22
- dataKey: string;
23
- type?: BarChartType;
24
- orientation?: BarChartOrientation;
25
- withXAxis?: boolean;
26
- withYAxis?: boolean;
27
- gridAxis?: BarChartGridAxis;
28
- withTooltip?: boolean;
29
- withLegend?: boolean;
30
- barSize?: number;
31
- radius?: number | [number, number, number, number];
32
- unit?: string;
33
- animationDuration?: number;
34
- tooltipProps?: ChartTooltipContentProps;
35
- legendProps?: ChartLegendContentProps;
36
- barProps?: Partial<React.ComponentProps<typeof Bar>>;
37
- barChartProps?: Omit<React.ComponentProps<typeof BarChart$1>, 'data' | 'layout' | 'stackOffset'>;
38
- };
39
- declare function BarChart({ className, data, series, dataKey, type, orientation, withXAxis, withYAxis, gridAxis, withTooltip, withLegend, barSize, radius, unit, animationDuration, tooltipProps, legendProps, barProps, barChartProps, ...props }: BarChartProps): React.JSX.Element;
40
- //#endregion
41
- export { BarChart, BarChartDatum, BarChartGridAxis, BarChartOrientation, BarChartProps, BarChartSeries, BarChartType };
42
- //# sourceMappingURL=bar-chart.d.ts.map
1
+ import { a as BarChartProps, i as BarChartOrientation, n as BarChartDatum, o as BarChartSeries, r as BarChartGridAxis, s as BarChartType, t as BarChart } from "../bar-chart-DRrrfMQR.js";
2
+ export { BarChart, BarChartDatum, BarChartGridAxis, BarChartOrientation, BarChartProps, BarChartSeries, BarChartType };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{ChartContainer as t,ChartLegendContent as n,ChartTooltipContent as r,DEFAULT_CHART_PALETTE as i,resolveChartColor as a}from"./chart.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";import*as c from"react";import{Bar as l,BarChart as u,CartesianGrid as d,Legend as f,Rectangle as p,Tooltip as m,XAxis as h,YAxis as g}from"recharts";function buildConfig(e){return e.reduce((e,t,n)=>(e[t.name]={label:t.label??t.name,color:t.color??a(t.colorKey)??i[n%i.length]},e),{})}function BarChart({className:i,data:_,series:v,dataKey:y,type:b=`default`,orientation:x=`vertical`,withXAxis:S=!0,withYAxis:C=!0,gridAxis:w=`x`,withTooltip:T=!0,withLegend:E=!1,barSize:D,radius:O=4,unit:k,animationDuration:A,tooltipProps:j,legendProps:M,barProps:N,barChartProps:P,...F}){let I=c.useMemo(()=>buildConfig(v),[v]),L=b==="default"?void 0:`stack`,R=b===`percent`?`expand`:void 0,z=x===`horizontal`,B={dataKey:y,tickLine:!1,axisLine:!1,tickMargin:8},V=b===`percent`?e=>`${Math.round(e*100)}%`:k?e=>`${e}${k}`:void 0;return o(t,{"data-slot":`bar-chart`,className:e(`w-full`,i),config:I,...F,children:s(u,{...P,data:_,stackOffset:R,layout:z?`vertical`:`horizontal`,children:[w!==`none`&&o(d,{vertical:w===`y`||w===`xy`,horizontal:w===`x`||w===`xy`}),S&&(z?o(h,{type:`number`,tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:V}):o(h,{type:`category`,...B})),C&&(z?o(g,{type:`category`,...B}):o(g,{type:`number`,tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:V})),T&&o(m,{cursor:!1,content:o(r,{...j})}),E&&o(f,{content:o(n,{...M})}),v.map(e=>{let t=I[e.name]?.color;return o(l,{dataKey:e.name,stackId:L,fill:t,radius:O,barSize:D,animationDuration:A,isAnimationActive:A!==0,shape:e=>{let n=e.payload,r=n?.color??a(n?.colorKey)??t;return o(p,{...e,fill:r})},...N},e.name)})]})})}export{BarChart};
2
- //# sourceMappingURL=bar-chart.js.map
1
+ import{t as e}from"../bar-chart-DIgSnh_j.js";export{e as BarChart};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../bar-chart-DIgSnh_j.js";import{a as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";beforeAll(()=>{vi.stubGlobal(`ResizeObserver`,class{observe(){}unobserve(){}disconnect(){}}),Object.defineProperty(HTMLElement.prototype,"offsetWidth",{configurable:!0,value:500}),Object.defineProperty(HTMLElement.prototype,"offsetHeight",{configurable:!0,value:300}),HTMLElement.prototype.getBoundingClientRect=()=>({width:500,height:300,top:0,left:0,right:500,bottom:300,x:0,y:0,toJSON(){}})});const i=[{month:`January`,desktop:186,mobile:80},{month:`February`,desktop:305,mobile:200},{month:`March`,desktop:237,mobile:120}],a=[{name:`desktop`,label:`Desktop`},{name:`mobile`,label:`Mobile`}];describe(`BarChart`,()=>{it(`renders with data-slot="bar-chart" on the chart wrapper`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(t.querySelector(`[data-slot="bar-chart"]`)).not.toBeNull()}),it(`accepts a data array and series list without throwing`,()=>{expect(()=>n(r(e,{data:i,series:a,dataKey:`month`}))).not.toThrow()}),it(`renders one recharts bar group per series entry`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(t.querySelectorAll(`.recharts-bar`).length).toBe(a.length)}),it(`renders one rectangle per data point for each series`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`,animationDuration:0}));expect(t.querySelectorAll(`.recharts-rectangle`).length).toBe(i.length*a.length)}),it(`merges a custom className with the base width class`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`,className:`custom-bar`})),o=t.querySelector(`[data-slot="bar-chart"]`);expect(o?.className).toContain(`custom-bar`),expect(o?.className).toContain(`w-full`)}),it(`renders a tooltip cursor by default and omits it when withTooltip is false`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(t.querySelectorAll(`.recharts-tooltip-wrapper`).length).toBe(1);let{container:o}=n(r(e,{data:i,series:a,dataKey:`month`,withTooltip:!1}));expect(o.querySelectorAll(`.recharts-tooltip-wrapper`).length).toBe(0)}),it(`omits the legend by default and renders it when withLegend is true`,()=>{let{container:o}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(o.querySelectorAll(`.recharts-legend-wrapper`).length).toBe(0);let{container:s}=n(r(e,{data:i,series:a,dataKey:`month`,withLegend:!0}));expect(s.querySelectorAll(`.recharts-legend-wrapper`).length).toBe(1),expect(t.getAllByText(`Desktop`).length).toBeGreaterThan(0)}),it(`renders an x-axis and y-axis by default and omits them when disabled`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(t.querySelectorAll(`.recharts-xAxis`).length).toBe(1),expect(t.querySelectorAll(`.recharts-yAxis`).length).toBe(1);let{container:o}=n(r(e,{data:i,series:a,dataKey:`month`,withXAxis:!1,withYAxis:!1}));expect(o.querySelectorAll(`.recharts-xAxis`).length).toBe(0),expect(o.querySelectorAll(`.recharts-yAxis`).length).toBe(0)}),it(`omits the cartesian grid when gridAxis is "none"`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`}));expect(t.querySelectorAll(`.recharts-cartesian-grid`).length).toBe(1);let{container:o}=n(r(e,{data:i,series:a,dataKey:`month`,gridAxis:`none`}));expect(o.querySelectorAll(`.recharts-cartesian-grid`).length).toBe(0)}),it(`swaps the category axis from x to y when orientation is "horizontal"`,()=>{let{container:t}=n(r(e,{data:i,series:a,dataKey:`month`,orientation:`vertical`}));expect(t.querySelector(`.recharts-xAxis-tick-labels`)?.textContent).toMatch(/[A-Za-z]/),expect(t.querySelector(`.recharts-yAxis-tick-labels`)?.textContent).not.toMatch(/[A-Za-z]/);let{container:o}=n(r(e,{data:i,series:a,dataKey:`month`,orientation:`horizontal`}));expect(o.querySelector(`.recharts-yAxis-tick-labels`)?.textContent).toMatch(/[A-Za-z]/),expect(o.querySelector(`.recharts-xAxis-tick-labels`)?.textContent).not.toMatch(/[A-Za-z]/),expect(o.querySelectorAll(`.recharts-bar`).length).toBe(a.length)}),it(`colors each bar rectangle using a per-row color override when present`,()=>{let{container:t}=n(r(e,{data:[{month:`January`,desktop:186,color:`#ff0000`},{month:`February`,desktop:305}],series:[{name:`desktop`,label:`Desktop`}],dataKey:`month`,animationDuration:0})),i=t.querySelectorAll(`.recharts-rectangle`);expect(i[0]?.getAttribute(`fill`)).toBe(`#ff0000`),expect(i[1]?.getAttribute(`fill`)).not.toBe(`#ff0000`)})});
2
+ //# sourceMappingURL=bar-chart.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-chart.spec.js","names":[],"sources":["../../src/components/bar-chart.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { BarChart, type BarChartDatum, type BarChartSeries } from './bar-chart'\n\nbeforeAll(() => {\n vi.stubGlobal(\n 'ResizeObserver',\n class {\n observe() {}\n unobserve() {}\n disconnect() {}\n }\n )\n Object.defineProperty(HTMLElement.prototype, 'offsetWidth', { configurable: true, value: 500 })\n Object.defineProperty(HTMLElement.prototype, 'offsetHeight', { configurable: true, value: 300 })\n // jsdom's getBoundingClientRect always returns zeros, which leaves recharts' ResponsiveContainer\n // stuck reporting a non-positive size and refusing to render its children (the actual chart SVG).\n // Stubbing it to match offsetWidth/offsetHeight above lets the real recharts markup mount.\n HTMLElement.prototype.getBoundingClientRect = () =>\n ({\n width: 500,\n height: 300,\n top: 0,\n left: 0,\n right: 500,\n bottom: 300,\n x: 0,\n y: 0,\n toJSON() {}\n }) as DOMRect\n})\n\nconst data: BarChartDatum[] = [\n { month: 'January', desktop: 186, mobile: 80 },\n { month: 'February', desktop: 305, mobile: 200 },\n { month: 'March', desktop: 237, mobile: 120 }\n]\n\nconst series: BarChartSeries[] = [\n { name: 'desktop', label: 'Desktop' },\n { name: 'mobile', label: 'Mobile' }\n]\n\ndescribe('BarChart', () => {\n it('renders with data-slot=\"bar-chart\" on the chart wrapper', () => {\n const { container } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n\n expect(container.querySelector('[data-slot=\"bar-chart\"]')).not.toBeNull()\n })\n\n it('accepts a data array and series list without throwing', () => {\n expect(() => render(<BarChart data={data} series={series} dataKey=\"month\" />)).not.toThrow()\n })\n\n it('renders one recharts bar group per series entry', () => {\n const { container } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n\n expect(container.querySelectorAll('.recharts-bar').length).toBe(series.length)\n })\n\n it('renders one rectangle per data point for each series', () => {\n // animationDuration=0 disables the entrance animation so recharts paints the bars'\n // full-size <path> elements on the very first (synchronous) render instead of the\n // zero-height animation starting frame, which recharts renders as nothing at all.\n const { container } = render(<BarChart data={data} series={series} dataKey=\"month\" animationDuration={0} />)\n\n expect(container.querySelectorAll('.recharts-rectangle').length).toBe(data.length * series.length)\n })\n\n it('merges a custom className with the base width class', () => {\n const { container } = render(<BarChart data={data} series={series} dataKey=\"month\" className=\"custom-bar\" />)\n\n const chartDiv = container.querySelector('[data-slot=\"bar-chart\"]')\n expect(chartDiv?.className).toContain('custom-bar')\n expect(chartDiv?.className).toContain('w-full')\n })\n\n it('renders a tooltip cursor by default and omits it when withTooltip is false', () => {\n const { container: withTooltip } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n expect(withTooltip.querySelectorAll('.recharts-tooltip-wrapper').length).toBe(1)\n\n const { container: withoutTooltip } = render(\n <BarChart data={data} series={series} dataKey=\"month\" withTooltip={false} />\n )\n expect(withoutTooltip.querySelectorAll('.recharts-tooltip-wrapper').length).toBe(0)\n })\n\n it('omits the legend by default and renders it when withLegend is true', () => {\n const { container: withoutLegend } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n expect(withoutLegend.querySelectorAll('.recharts-legend-wrapper').length).toBe(0)\n\n const { container: withLegend } = render(<BarChart data={data} series={series} dataKey=\"month\" withLegend />)\n expect(withLegend.querySelectorAll('.recharts-legend-wrapper').length).toBe(1)\n expect(screen.getAllByText('Desktop').length).toBeGreaterThan(0)\n })\n\n it('renders an x-axis and y-axis by default and omits them when disabled', () => {\n const { container: withAxes } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n expect(withAxes.querySelectorAll('.recharts-xAxis').length).toBe(1)\n expect(withAxes.querySelectorAll('.recharts-yAxis').length).toBe(1)\n\n const { container: withoutAxes } = render(\n <BarChart data={data} series={series} dataKey=\"month\" withXAxis={false} withYAxis={false} />\n )\n expect(withoutAxes.querySelectorAll('.recharts-xAxis').length).toBe(0)\n expect(withoutAxes.querySelectorAll('.recharts-yAxis').length).toBe(0)\n })\n\n it('omits the cartesian grid when gridAxis is \"none\"', () => {\n const { container: withGrid } = render(<BarChart data={data} series={series} dataKey=\"month\" />)\n expect(withGrid.querySelectorAll('.recharts-cartesian-grid').length).toBe(1)\n\n const { container: withoutGrid } = render(<BarChart data={data} series={series} dataKey=\"month\" gridAxis=\"none\" />)\n expect(withoutGrid.querySelectorAll('.recharts-cartesian-grid').length).toBe(0)\n })\n\n it('swaps the category axis from x to y when orientation is \"horizontal\"', () => {\n const { container: vertical } = render(\n <BarChart data={data} series={series} dataKey=\"month\" orientation=\"vertical\" />\n )\n expect(vertical.querySelector('.recharts-xAxis-tick-labels')?.textContent).toMatch(/[A-Za-z]/)\n expect(vertical.querySelector('.recharts-yAxis-tick-labels')?.textContent).not.toMatch(/[A-Za-z]/)\n\n const { container: horizontal } = render(\n <BarChart data={data} series={series} dataKey=\"month\" orientation=\"horizontal\" />\n )\n expect(horizontal.querySelector('.recharts-yAxis-tick-labels')?.textContent).toMatch(/[A-Za-z]/)\n expect(horizontal.querySelector('.recharts-xAxis-tick-labels')?.textContent).not.toMatch(/[A-Za-z]/)\n expect(horizontal.querySelectorAll('.recharts-bar').length).toBe(series.length)\n })\n\n it('colors each bar rectangle using a per-row color override when present', () => {\n const coloredData: BarChartDatum[] = [\n { month: 'January', desktop: 186, color: '#ff0000' },\n { month: 'February', desktop: 305 }\n ]\n\n // animationDuration=0, see the note above: without it recharts never paints a real\n // <path> for the bars, so there would be nothing to inspect the `fill` attribute of.\n const { container } = render(\n <BarChart\n data={coloredData}\n series={[{ name: 'desktop', label: 'Desktop' }]}\n dataKey=\"month\"\n animationDuration={0}\n />\n )\n\n const rectangles = container.querySelectorAll('.recharts-rectangle')\n expect(rectangles[0]?.getAttribute('fill')).toBe('#ff0000')\n expect(rectangles[1]?.getAttribute('fill')).not.toBe('#ff0000')\n })\n})\n"],"mappings":"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"}
@@ -1,22 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- //#region src/components/breadcrumb.d.ts
4
- type BreadcrumbProps = React.ComponentProps<'nav'>;
5
- type BreadcrumbListProps = React.ComponentProps<'ol'>;
6
- type BreadcrumbItemProps = React.ComponentProps<'li'>;
7
- type BreadcrumbLinkProps = React.ComponentProps<'a'> & {
8
- asChild?: boolean;
9
- };
10
- type BreadcrumbPageProps = React.ComponentProps<'span'>;
11
- type BreadcrumbSeparatorProps = React.ComponentProps<'li'>;
12
- type BreadcrumbEllipsisProps = React.ComponentProps<'span'>;
13
- declare function Breadcrumb({ className, ...props }: BreadcrumbProps): React.JSX.Element;
14
- declare function BreadcrumbList({ className, ...props }: BreadcrumbListProps): React.JSX.Element;
15
- declare function BreadcrumbItem({ className, ...props }: BreadcrumbItemProps): React.JSX.Element;
16
- declare function BreadcrumbLink({ asChild, className, ...props }: BreadcrumbLinkProps): React.JSX.Element;
17
- declare function BreadcrumbPage({ className, ...props }: BreadcrumbPageProps): React.JSX.Element;
18
- declare function BreadcrumbSeparator({ children, className, ...props }: BreadcrumbSeparatorProps): React.JSX.Element;
19
- declare function BreadcrumbEllipsis({ className, ...props }: BreadcrumbEllipsisProps): React.JSX.Element;
20
- //#endregion
21
- export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps };
22
- //# sourceMappingURL=breadcrumb.d.ts.map
1
+ import { a as BreadcrumbItemProps, c as BreadcrumbList, d as BreadcrumbPageProps, f as BreadcrumbProps, i as BreadcrumbItem, l as BreadcrumbListProps, m as BreadcrumbSeparatorProps, n as BreadcrumbEllipsis, o as BreadcrumbLink, p as BreadcrumbSeparator, r as BreadcrumbEllipsisProps, s as BreadcrumbLinkProps, t as Breadcrumb, u as BreadcrumbPage } from "../breadcrumb-DZFS9htN.js";
2
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItem, BreadcrumbItemProps, BreadcrumbLink, BreadcrumbLinkProps, BreadcrumbList, BreadcrumbListProps, BreadcrumbPage, BreadcrumbPageProps, BreadcrumbProps, BreadcrumbSeparator, BreadcrumbSeparatorProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{IconChevronRight as t,IconDots as n}from"@tabler/icons-react";import{Slot as r}from"radix-ui";import{jsx as i,jsxs as a}from"react/jsx-runtime";function Breadcrumb({className:t,...n}){return i(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:e(t),...n})}function BreadcrumbList({className:t,...n}){return i(`ol`,{"data-slot":`breadcrumb-list`,className:e(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,t),...n})}function BreadcrumbItem({className:t,...n}){return i(`li`,{"data-slot":`breadcrumb-item`,className:e(`inline-flex items-center gap-1`,t),...n})}function BreadcrumbLink({asChild:t,className:n,...a}){return i(t?r.Root:`a`,{"data-slot":`breadcrumb-link`,className:e(`transition-colors hover:text-foreground`,n),...a})}function BreadcrumbPage({className:t,...n}){return i(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:e(`font-normal text-foreground`,t),...n})}function BreadcrumbSeparator({children:n,className:r,...a}){return i(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:e(`[&>svg]:size-3.5`,r),...a,children:n??i(t,{})})}function BreadcrumbEllipsis({className:t,...r}){return a(`span`,{"data-slot":`breadcrumb-ellipsis`,role:`presentation`,"aria-hidden":`true`,className:e(`flex size-5 items-center justify-center [&>svg]:size-4`,t),...r,children:[i(n,{}),i(`span`,{className:`sr-only`,children:`More`})]})}export{Breadcrumb,BreadcrumbEllipsis,BreadcrumbItem,BreadcrumbLink,BreadcrumbList,BreadcrumbPage,BreadcrumbSeparator};
2
- //# sourceMappingURL=breadcrumb.js.map
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../breadcrumb-CqNDAI8V.js";export{o as Breadcrumb,n as BreadcrumbEllipsis,i as BreadcrumbItem,t as BreadcrumbLink,e as BreadcrumbList,r as BreadcrumbPage,a as BreadcrumbSeparator};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../breadcrumb-CqNDAI8V.js";import{a as s,r as c}from"../react.esm-BkhVXJ8s.js";import{jsx as l,jsxs as u}from"react/jsx-runtime";describe(`Breadcrumb`,()=>{it(`renders a nav element with the breadcrumb aria-label`,()=>{let{container:t}=c(l(o,{children:l(e,{})})),n=t.querySelector(`[data-slot="breadcrumb"]`);expect(n?.tagName).toBe(`NAV`),expect(n?.getAttribute(`aria-label`)).toBe(`breadcrumb`)}),it(`renders a full trail with links, separators and the current page`,()=>{let{container:n}=c(l(o,{children:u(e,{children:[l(i,{children:l(t,{href:`/`,children:`Home`})}),l(a,{}),l(i,{children:l(t,{href:`/library`,children:`Library`})}),l(a,{}),l(i,{children:l(r,{children:`Data`})})]})})),d=s.getByRole(`link`,{name:`Home`});expect(d.getAttribute(`href`)).toBe(`/`);let f=s.getByText(`Data`);expect(f.getAttribute(`aria-current`)).toBe(`page`),expect(n.querySelectorAll(`[data-slot="breadcrumb-separator"]`)).toHaveLength(2)}),describe(`BreadcrumbLink`,()=>{it(`renders as the child element instead of an anchor when asChild is used`,()=>{let{container:e}=c(l(t,{asChild:!0,className:`custom-link`,children:l(`button`,{type:`button`,children:`Go home`})})),n=e.querySelector(`[data-slot="breadcrumb-link"]`);expect(n?.tagName).toBe(`BUTTON`),expect(n?.className).toContain(`custom-link`)})}),describe(`BreadcrumbEllipsis`,()=>{it(`renders a screen-reader-only label and hides itself from the accessibility tree`,()=>{let{container:e}=c(l(n,{})),t=e.querySelector(`[data-slot="breadcrumb-ellipsis"]`);expect(t?.getAttribute(`aria-hidden`)).toBe(`true`),expect(t?.getAttribute(`role`)).toBe(`presentation`),expect(s.getByText(`More`)).not.toBeNull()})}),describe(`BreadcrumbSeparator`,()=>{it(`renders the default chevron icon when no children are provided`,()=>{let{container:e}=c(l(a,{})),t=e.querySelector(`[data-slot="breadcrumb-separator"]`);expect(t?.getAttribute(`role`)).toBe(`presentation`),expect(t?.querySelector(`svg`)).not.toBeNull()}),it(`renders custom separator content instead of the default chevron`,()=>{let{container:e}=c(l(a,{children:`/`}));expect(e.querySelector(`[data-slot="breadcrumb-separator"]`)?.textContent).toBe(`/`)})})});
2
+ //# sourceMappingURL=breadcrumb.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.spec.js","names":[],"sources":["../../src/components/breadcrumb.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from './breadcrumb'\n\ndescribe('Breadcrumb', () => {\n it('renders a nav element with the breadcrumb aria-label', () => {\n const { container } = render(\n <Breadcrumb>\n <BreadcrumbList />\n </Breadcrumb>\n )\n\n const nav = container.querySelector('[data-slot=\"breadcrumb\"]')\n\n expect(nav?.tagName).toBe('NAV')\n expect(nav?.getAttribute('aria-label')).toBe('breadcrumb')\n })\n\n it('renders a full trail with links, separators and the current page', () => {\n const { container } = render(\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/library\">Library</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Data</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n\n const homeLink = screen.getByRole('link', { name: 'Home' })\n expect(homeLink.getAttribute('href')).toBe('/')\n\n const currentPage = screen.getByText('Data')\n expect(currentPage.getAttribute('aria-current')).toBe('page')\n\n expect(container.querySelectorAll('[data-slot=\"breadcrumb-separator\"]')).toHaveLength(2)\n })\n\n describe('BreadcrumbLink', () => {\n it('renders as the child element instead of an anchor when asChild is used', () => {\n const { container } = render(\n <BreadcrumbLink asChild className=\"custom-link\">\n <button type=\"button\">Go home</button>\n </BreadcrumbLink>\n )\n\n const link = container.querySelector('[data-slot=\"breadcrumb-link\"]')\n\n expect(link?.tagName).toBe('BUTTON')\n expect(link?.className).toContain('custom-link')\n })\n })\n\n describe('BreadcrumbEllipsis', () => {\n it('renders a screen-reader-only label and hides itself from the accessibility tree', () => {\n const { container } = render(<BreadcrumbEllipsis />)\n\n const ellipsis = container.querySelector('[data-slot=\"breadcrumb-ellipsis\"]')\n\n expect(ellipsis?.getAttribute('aria-hidden')).toBe('true')\n expect(ellipsis?.getAttribute('role')).toBe('presentation')\n expect(screen.getByText('More')).not.toBeNull()\n })\n })\n\n describe('BreadcrumbSeparator', () => {\n it('renders the default chevron icon when no children are provided', () => {\n const { container } = render(<BreadcrumbSeparator />)\n\n const separator = container.querySelector('[data-slot=\"breadcrumb-separator\"]')\n\n expect(separator?.getAttribute('role')).toBe('presentation')\n expect(separator?.querySelector('svg')).not.toBeNull()\n })\n\n it('renders custom separator content instead of the default chevron', () => {\n const { container } = render(<BreadcrumbSeparator>/</BreadcrumbSeparator>)\n\n expect(container.querySelector('[data-slot=\"breadcrumb-separator\"]')?.textContent).toBe('/')\n })\n })\n})\n"],"mappings":"iOAYA,SAAS,iBAAoB,CAC3B,GAAG,2DAA8D,CAC/D,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAiB,CAAA,CACP,CAAA,CACd,EAEM,EAAM,EAAU,cAAc,0BAA0B,EAE9D,OAAO,GAAK,OAAO,CAAC,CAAC,KAAK,KAAK,EAC/B,OAAO,GAAK,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,CAC3D,CAAC,EAED,GAAG,uEAA0E,CAC3E,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAgB,KAAK,IAAI,SAAA,MAAoB,CAAA,CAC/B,CAAA,EAChB,EAAC,EAAD,CAAsB,CAAA,EACtB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAgB,KAAK,WAAW,SAAA,SAAuB,CAAA,CACzC,CAAA,EAChB,EAAC,EAAD,CAAsB,CAAA,EACtB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAgB,MAAoB,CAAA,CACtB,CAAA,CACF,CAAA,CAAA,CACN,CAAA,CACd,EAEM,EAAW,EAAO,UAAU,OAAQ,CAAE,KAAM,MAAO,CAAC,EAC1D,OAAO,EAAS,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAE9C,IAAM,EAAc,EAAO,UAAU,MAAM,EAC3C,OAAO,EAAY,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,EAE5D,OAAO,EAAU,iBAAiB,oCAAoC,CAAC,CAAC,CAAC,aAAa,CAAC,CACzF,CAAC,EAED,SAAS,qBAAwB,CAC/B,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAgB,QAAA,GAAQ,UAAU,cAChC,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,SAAe,CAAA,CACvB,CAAA,CAClB,EAEM,EAAO,EAAU,cAAc,+BAA+B,EAEpE,OAAO,GAAM,OAAO,CAAC,CAAC,KAAK,QAAQ,EACnC,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,aAAa,CACjD,CAAC,CACH,CAAC,EAED,SAAS,yBAA4B,CACnC,GAAG,sFAAyF,CAC1F,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAqB,CAAA,CAAC,EAE7C,EAAW,EAAU,cAAc,mCAAmC,EAE5E,OAAO,GAAU,aAAa,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,EACzD,OAAO,GAAU,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,EAC1D,OAAO,EAAO,UAAU,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAChD,CAAC,CACH,CAAC,EAED,SAAS,0BAA6B,CACpC,GAAG,qEAAwE,CACzE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAsB,CAAA,CAAC,EAE9C,EAAY,EAAU,cAAc,oCAAoC,EAE9E,OAAO,GAAW,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,cAAc,EAC3D,OAAO,GAAW,cAAc,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CACvD,CAAC,EAED,GAAG,sEAAyE,CAC1E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAqB,GAAsB,CAAA,CAAC,EAEzE,OAAO,EAAU,cAAc,oCAAoC,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,GAAG,CAC7F,CAAC,CACH,CAAC,CACH,CAAC"}
@@ -1,18 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Separator } from "./separator.js";
3
- import { VariantProps } from "class-variance-authority";
4
- //#region src/components/button-group.d.ts
5
- declare const buttonGroupVariants: (props?: ({
6
- orientation?: "horizontal" | "vertical" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- type ButtonGroupProps = React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>;
9
- type ButtonGroupTextProps = React.ComponentProps<'div'> & {
10
- asChild?: boolean;
11
- };
12
- type ButtonGroupSeparatorProps = React.ComponentProps<typeof Separator>;
13
- declare function ButtonGroup({ className, orientation, ...props }: ButtonGroupProps): import("react").JSX.Element;
14
- declare function ButtonGroupText({ className, asChild, ...props }: ButtonGroupTextProps): import("react").JSX.Element;
15
- declare function ButtonGroupSeparator({ className, orientation, ...props }: ButtonGroupSeparatorProps): import("react").JSX.Element;
16
- //#endregion
17
- export { ButtonGroup, ButtonGroupProps, ButtonGroupSeparator, ButtonGroupSeparatorProps, ButtonGroupText, ButtonGroupTextProps, buttonGroupVariants };
18
- //# sourceMappingURL=button-group.d.ts.map
1
+ import { a as ButtonGroupText, i as ButtonGroupSeparatorProps, n as ButtonGroupProps, o as ButtonGroupTextProps, r as ButtonGroupSeparator, s as buttonGroupVariants, t as ButtonGroup } from "../button-group-DRgqsyjS.js";
2
+ export { ButtonGroup, ButtonGroupProps, ButtonGroupSeparator, ButtonGroupSeparatorProps, ButtonGroupText, ButtonGroupTextProps, buttonGroupVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Separator as t}from"./separator.js";import{Slot as n}from"radix-ui";import{jsx as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";const a=i(`flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1`,{variants:{orientation:{horizontal:`[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!`,vertical:`flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!`}},defaultVariants:{orientation:`horizontal`}});function ButtonGroup({className:t,orientation:n,...i}){return r(`div`,{"data-slot":`button-group`,"data-orientation":n,className:e(a({orientation:n}),t),...i})}function ButtonGroupText({className:t,asChild:i=!1,...a}){return r(i?n.Root:`div`,{className:e(`flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4`,t),...a})}function ButtonGroupSeparator({className:n,orientation:i=`vertical`,...a}){return r(t,{"data-slot":`button-group-separator`,orientation:i,className:e(`relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto`,n),...a})}export{ButtonGroup,ButtonGroupSeparator,ButtonGroupText,a as buttonGroupVariants};
2
- //# sourceMappingURL=button-group.js.map
1
+ import{i as e,n as t,r as n,t as r}from"../button-group-WJ5LeouK.js";export{r as ButtonGroup,t as ButtonGroupSeparator,n as ButtonGroupText,e as buttonGroupVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../button-oI3hbOgp.js";import{n as t,r as n,t as r}from"../button-group-WJ5LeouK.js";import{r as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";describe(`ButtonGroup`,()=>{it(`applies the horizontal orientation classes by default without setting data-orientation`,()=>{let{container:t}=i(o(r,{children:[a(e,{children:`One`}),a(e,{children:`Two`})]})),n=t.querySelector(`[data-slot="button-group"]`);expect(n?.getAttribute(`data-orientation`)).toBeNull(),expect(n?.className).toContain(`rounded-l-none`)}),it(`applies vertical orientation classes and sets data-orientation when orientation="vertical"`,()=>{let{container:t}=i(o(r,{orientation:`vertical`,children:[a(e,{children:`One`}),a(e,{children:`Two`})]})),n=t.querySelector(`[data-slot="button-group"]`);expect(n?.getAttribute(`data-orientation`)).toBe(`vertical`),expect(n?.className).toContain(`flex-col`)}),it(`merges a custom className onto the root`,()=>{let{container:t}=i(a(r,{className:`custom-group`,children:a(e,{children:`One`})}));expect(t.querySelector(`[data-slot="button-group"]`)?.className).toContain(`custom-group`)}),describe(`ButtonGroupText`,()=>{it(`renders as a div by default with the expected classes`,()=>{let{container:e}=i(a(n,{children:`Label`})),t=e.querySelector(`div`);expect(t?.textContent).toBe(`Label`),expect(t?.className).toContain(`rounded-lg`)}),it(`renders as the child element when asChild is used`,()=>{let{container:e}=i(a(n,{asChild:!0,children:a(`span`,{children:`Custom`})}));expect(e.querySelector(`span`)?.textContent).toBe(`Custom`),expect(e.querySelector(`div`)).toBeNull()})}),describe(`ButtonGroupSeparator`,()=>{it(`renders with data-slot="button-group-separator" and a vertical orientation by default`,()=>{let{container:e}=i(a(t,{})),n=e.querySelector(`[data-slot="button-group-separator"]`);expect(n?.getAttribute(`data-orientation`)).toBe(`vertical`),expect(n?.className).toContain(`bg-input`)}),it(`supports switching to a horizontal orientation`,()=>{let{container:e}=i(a(t,{orientation:`horizontal`}));expect(e.querySelector(`[data-slot="button-group-separator"]`)?.getAttribute(`data-orientation`)).toBe(`horizontal`)})}),it(`composes buttons and a separator inside a group`,()=>{let{container:n}=i(o(r,{children:[a(e,{children:`One`}),a(t,{}),a(e,{children:`Two`})]})),s=n.querySelector(`[data-slot="button-group"]`);expect(s?.querySelectorAll(`[data-slot="button"]`)).toHaveLength(2),expect(s?.querySelector(`[data-slot="button-group-separator"]`)).not.toBeNull()})});
2
+ //# sourceMappingURL=button-group.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.spec.js","names":[],"sources":["../../src/components/button-group.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Button } from './button'\nimport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from './button-group'\n\ndescribe('ButtonGroup', () => {\n it('applies the horizontal orientation classes by default without setting data-orientation', () => {\n const { container } = render(\n <ButtonGroup>\n <Button>One</Button>\n <Button>Two</Button>\n </ButtonGroup>\n )\n\n const group = container.querySelector('[data-slot=\"button-group\"]')\n\n expect(group?.getAttribute('data-orientation')).toBeNull()\n expect(group?.className).toContain('rounded-l-none')\n })\n\n it('applies vertical orientation classes and sets data-orientation when orientation=\"vertical\"', () => {\n const { container } = render(\n <ButtonGroup orientation=\"vertical\">\n <Button>One</Button>\n <Button>Two</Button>\n </ButtonGroup>\n )\n\n const group = container.querySelector('[data-slot=\"button-group\"]')\n\n expect(group?.getAttribute('data-orientation')).toBe('vertical')\n expect(group?.className).toContain('flex-col')\n })\n\n it('merges a custom className onto the root', () => {\n const { container } = render(\n <ButtonGroup className=\"custom-group\">\n <Button>One</Button>\n </ButtonGroup>\n )\n\n expect(container.querySelector('[data-slot=\"button-group\"]')?.className).toContain('custom-group')\n })\n\n describe('ButtonGroupText', () => {\n it('renders as a div by default with the expected classes', () => {\n const { container } = render(<ButtonGroupText>Label</ButtonGroupText>)\n\n const text = container.querySelector('div')\n\n expect(text?.textContent).toBe('Label')\n expect(text?.className).toContain('rounded-lg')\n })\n\n it('renders as the child element when asChild is used', () => {\n const { container } = render(\n <ButtonGroupText asChild>\n <span>Custom</span>\n </ButtonGroupText>\n )\n\n expect(container.querySelector('span')?.textContent).toBe('Custom')\n expect(container.querySelector('div')).toBeNull()\n })\n })\n\n describe('ButtonGroupSeparator', () => {\n it('renders with data-slot=\"button-group-separator\" and a vertical orientation by default', () => {\n const { container } = render(<ButtonGroupSeparator />)\n\n const separator = container.querySelector('[data-slot=\"button-group-separator\"]')\n\n expect(separator?.getAttribute('data-orientation')).toBe('vertical')\n expect(separator?.className).toContain('bg-input')\n })\n\n it('supports switching to a horizontal orientation', () => {\n const { container } = render(<ButtonGroupSeparator orientation=\"horizontal\" />)\n\n expect(container.querySelector('[data-slot=\"button-group-separator\"]')?.getAttribute('data-orientation')).toBe(\n 'horizontal'\n )\n })\n })\n\n it('composes buttons and a separator inside a group', () => {\n const { container } = render(\n <ButtonGroup>\n <Button>One</Button>\n <ButtonGroupSeparator />\n <Button>Two</Button>\n </ButtonGroup>\n )\n\n const group = container.querySelector('[data-slot=\"button-group\"]')\n\n expect(group?.querySelectorAll('[data-slot=\"button\"]')).toHaveLength(2)\n expect(group?.querySelector('[data-slot=\"button-group-separator\"]')).not.toBeNull()\n })\n})\n"],"mappings":"+OAKA,SAAS,kBAAqB,CAC5B,GAAG,6FAAgG,CACjG,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,EACnB,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,CACR,CAAA,CAAA,CACf,EAEM,EAAQ,EAAU,cAAc,4BAA4B,EAElE,OAAO,GAAO,aAAa,kBAAkB,CAAC,CAAC,CAAC,SAAS,EACzD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,gBAAgB,CACrD,CAAC,EAED,GAAG,iGAAoG,CACrG,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAa,YAAY,WAAzB,SAAA,CACE,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,EACnB,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,CACR,CACf,CAAA,CAAA,EAEM,EAAQ,EAAU,cAAc,4BAA4B,EAElE,OAAO,GAAO,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,EAC/D,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,UAAU,CAC/C,CAAC,EAED,GAAG,8CAAiD,CAClD,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAa,UAAU,eACrB,SAAA,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,CACR,CAAA,CACf,EAEA,OAAO,EAAU,cAAc,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CACnG,CAAC,EAED,SAAS,sBAAyB,CAChC,GAAG,4DAA+D,CAChE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAiB,OAAsB,CAAA,CAAC,EAE/D,EAAO,EAAU,cAAc,KAAK,EAE1C,OAAO,GAAM,WAAW,CAAC,CAAC,KAAK,OAAO,EACtC,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,YAAY,CAChD,CAAC,EAED,GAAG,wDAA2D,CAC5D,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAiB,QAAA,GACf,SAAA,EAAC,OAAD,CAAA,SAAM,QAAY,CAAA,CACH,CAAA,CACnB,EAEA,OAAO,EAAU,cAAc,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,QAAQ,EAClE,OAAO,EAAU,cAAc,KAAK,CAAC,CAAC,CAAC,SAAS,CAClD,CAAC,CACH,CAAC,EAED,SAAS,2BAA8B,CACrC,GAAG,4FAA+F,CAChG,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAuB,CAAA,CAAC,EAE/C,EAAY,EAAU,cAAc,sCAAsC,EAEhF,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,EACnE,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,UAAU,CACnD,CAAC,EAED,GAAG,qDAAwD,CACzD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAsB,YAAY,YAAc,CAAA,CAAC,EAE9E,OAAO,EAAU,cAAc,sCAAsC,CAAC,EAAE,aAAa,kBAAkB,CAAC,CAAC,CAAC,KACxG,YACF,CACF,CAAC,CACH,CAAC,EAED,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,EACnB,EAAC,EAAD,CAAuB,CAAA,EACvB,EAAC,EAAD,CAAA,SAAQ,KAAW,CAAA,CACR,CAAA,CAAA,CACf,EAEM,EAAQ,EAAU,cAAc,4BAA4B,EAElE,OAAO,GAAO,iBAAiB,sBAAsB,CAAC,CAAC,CAAC,aAAa,CAAC,EACtE,OAAO,GAAO,cAAc,sCAAsC,CAAC,CAAC,CAAC,IAAI,SAAS,CACpF,CAAC,CACH,CAAC"}
@@ -1,17 +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/button.d.ts
5
- declare const buttonVariants: (props?: ({
6
- variant?: "ghost" | "link" | "outline" | "secondary" | "solid" | "subtle" | null | undefined;
7
- color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
8
- size?: "icon" | "icon-lg" | "icon-sm" | "icon-xl" | "icon-xs" | "lg" | "md" | "sm" | "xl" | "xs" | null | undefined;
9
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
- type ButtonProps = React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
11
- asChild?: boolean;
12
- loading?: boolean;
13
- };
14
- declare function Button({ children, className, variant, color, size, asChild, disabled, loading, ...props }: ButtonProps): React.JSX.Element;
15
- //#endregion
16
- export { Button, ButtonProps, buttonVariants };
17
- //# sourceMappingURL=button.d.ts.map
1
+ import { n as ButtonProps, r as buttonVariants, t as Button } from "../button-BNGy28pv.js";
2
+ export { Button, ButtonProps, buttonVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{buttonColorVariants as t}from"../lib/button.js";import{Spinner as n}from"./spinner.js";import{Slot as r}from"radix-ui";import{Fragment as i,jsx as a,jsxs as o}from"react/jsx-runtime";import{cva as s}from"class-variance-authority";const c=s(`focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 relative rounded-full border border-transparent bg-clip-padding text-sm font-semibold focus-visible:ring-3 aria-invalid:ring-3 [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all [&_svg]:transition-colors disabled:pointer-events-none disabled:opacity-50 disabled:data-[loading=true]:pointer-events-auto disabled:data-[loading=true]:cursor-not-allowed disabled:data-[loading=true]:opacity-100 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none`,{variants:{variant:{solid:`bg-(--button-solid) text-(--button-solid-foreground) hover:bg-(--button-solid-hover) data-[loading=true]:hover:bg-(--button-solid)`,secondary:`border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,outline:`border-(--button-outline-border) bg-transparent text-(--button-outline-foreground) hover:bg-(--button-solid) hover:text-(--button-solid-foreground) hover:[&_svg]:text-(--button-solid-foreground) data-[loading=true]:hover:bg-background data-[loading=true]:hover:text-(--button-outline-foreground) aria-expanded:bg-(--button-solid) aria-expanded:text-(--button-solid-foreground) aria-expanded:[&_svg]:text-(--button-solid-foreground)`,subtle:`bg-(--button-soft) text-(--button-soft-foreground) hover:bg-(--button-soft-hover) hover:text-(--button-soft-foreground) data-[loading=true]:hover:bg-(--button-soft) data-[loading=true]:hover:text-(--button-soft-foreground) aria-expanded:bg-(--button-soft-hover) aria-expanded:text-(--button-soft-foreground)`,ghost:`text-(--button-ghost-foreground) hover:bg-(--button-ghost-hover) hover:text-(--button-ghost-foreground) data-[loading=true]:hover:bg-transparent data-[loading=true]:hover:text-(--button-ghost-foreground) aria-expanded:bg-(--button-ghost-hover) aria-expanded:text-(--button-ghost-foreground)`,link:`text-(--button-link-foreground) underline-offset-4 hover:underline data-[loading=true]:hover:no-underline`},color:t,size:{xs:`h-7 gap-1 px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 gap-1 px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,md:`h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,lg:`h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,xl:`h-11 gap-2 px-3 has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4`,icon:`size-9`,"icon-xs":`size-7 in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8 in-data-[slot=button-group]:rounded-lg`,"icon-lg":`size-10`,"icon-xl":`size-11`}},defaultVariants:{variant:`solid`,color:`primary`,size:`md`}});function Button({children:t,className:s,variant:l=`solid`,color:u=`primary`,size:d=`md`,asChild:f=!1,disabled:p,loading:m=!1,...h}){return a(f?r.Root:`button`,{type:f?void 0:`button`,"data-slot":`button`,"data-variant":l,"data-color":u,"data-size":d,"data-loading":m,"aria-busy":m?!0:void 0,disabled:p||m,className:e(c({variant:l,color:u,size:d,className:s})),...h,children:m&&!f?o(i,{children:[a(`span`,{className:`invisible inline-flex items-center gap-[inherit]`,children:t}),a(`span`,{className:`absolute inset-0 inline-flex items-center justify-center`,children:a(n,{})})]}):m?a(n,{}):t})}export{Button,c as buttonVariants};
2
- //# sourceMappingURL=button.js.map
1
+ import{n as e,t}from"../button-oI3hbOgp.js";export{t as Button,e as buttonVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../button-oI3hbOgp.js";import{a as t,n,r}from"../react.esm-BkhVXJ8s.js";import{jsx as i}from"react/jsx-runtime";describe(`Button`,()=>{it(`renders a native button with default variants and data-slot`,()=>{let{container:t}=r(i(e,{children:`Save`})),n=t.querySelector(`[data-slot="button"]`);expect(n).not.toBeNull(),expect(n?.tagName).toBe(`BUTTON`),expect(n?.getAttribute(`type`)).toBe(`button`),expect(n?.getAttribute(`data-variant`)).toBe(`solid`),expect(n?.getAttribute(`data-color`)).toBe(`primary`),expect(n?.getAttribute(`data-size`)).toBe(`md`),expect(n?.getAttribute(`data-loading`)).toBe(`false`),expect(n?.className).toContain(`rounded-full`)}),it(`applies the requested variant, color and size`,()=>{let{container:t}=r(i(e,{variant:`outline`,color:`red`,size:`lg`,children:`Delete`})),n=t.querySelector(`[data-slot="button"]`);expect(n?.getAttribute(`data-variant`)).toBe(`outline`),expect(n?.getAttribute(`data-color`)).toBe(`red`),expect(n?.getAttribute(`data-size`)).toBe(`lg`),expect(n?.className).toContain(`border-(--button-outline-border)`)}),it(`disables the button and blocks clicks when disabled`,()=>{let a=vi.fn();r(i(e,{disabled:!0,onClick:a,children:`Disabled`}));let o=t.getByRole(`button`,{name:`Disabled`});expect(o).toHaveProperty(`disabled`,!0),n.click(o),expect(a).not.toHaveBeenCalled()}),it(`fires onClick when enabled`,()=>{let a=vi.fn();r(i(e,{onClick:a,children:`Submit`})),n.click(t.getByRole(`button`,{name:`Submit`})),expect(a).toHaveBeenCalledTimes(1)}),it(`hides the children and shows a spinner when loading`,()=>{let{container:n}=r(i(e,{loading:!0,children:`Submit`})),a=n.querySelector(`[data-slot="button"]`),o=n.querySelector(`[data-slot="spinner"]`);expect(a?.getAttribute(`data-loading`)).toBe(`true`),expect(a?.getAttribute(`aria-busy`)).toBe(`true`),expect(a).toHaveProperty(`disabled`,!0),expect(o).not.toBeNull(),expect(t.getByText(`Submit`).className).toContain(`invisible`)}),it(`renders the child element directly when asChild is set`,()=>{r(i(e,{asChild:!0,children:i(`a`,{href:`/somewhere`,children:`Go`})}));let n=t.getByRole(`link`,{name:`Go`});expect(n.getAttribute(`data-slot`)).toBe(`button`),expect(n.getAttribute(`type`)).toBeNull()})});
2
+ //# sourceMappingURL=button.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.spec.js","names":[],"sources":["../../src/components/button.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Button } from './button'\n\ndescribe('Button', () => {\n it('renders a native button with default variants and data-slot', () => {\n const { container } = render(<Button>Save</Button>)\n\n const button = container.querySelector('[data-slot=\"button\"]')\n\n expect(button).not.toBeNull()\n expect(button?.tagName).toBe('BUTTON')\n expect(button?.getAttribute('type')).toBe('button')\n expect(button?.getAttribute('data-variant')).toBe('solid')\n expect(button?.getAttribute('data-color')).toBe('primary')\n expect(button?.getAttribute('data-size')).toBe('md')\n expect(button?.getAttribute('data-loading')).toBe('false')\n expect(button?.className).toContain('rounded-full')\n })\n\n it('applies the requested variant, color and size', () => {\n const { container } = render(\n <Button variant=\"outline\" color=\"red\" size=\"lg\">\n Delete\n </Button>\n )\n\n const button = container.querySelector('[data-slot=\"button\"]')\n\n expect(button?.getAttribute('data-variant')).toBe('outline')\n expect(button?.getAttribute('data-color')).toBe('red')\n expect(button?.getAttribute('data-size')).toBe('lg')\n expect(button?.className).toContain('border-(--button-outline-border)')\n })\n\n it('disables the button and blocks clicks when disabled', () => {\n const handleClick = vi.fn()\n render(\n <Button disabled onClick={handleClick}>\n Disabled\n </Button>\n )\n\n const button = screen.getByRole('button', { name: 'Disabled' })\n\n expect(button).toHaveProperty('disabled', true)\n fireEvent.click(button)\n expect(handleClick).not.toHaveBeenCalled()\n })\n\n it('fires onClick when enabled', () => {\n const handleClick = vi.fn()\n render(<Button onClick={handleClick}>Submit</Button>)\n\n fireEvent.click(screen.getByRole('button', { name: 'Submit' }))\n\n expect(handleClick).toHaveBeenCalledTimes(1)\n })\n\n it('hides the children and shows a spinner when loading', () => {\n const { container } = render(<Button loading>Submit</Button>)\n\n const button = container.querySelector('[data-slot=\"button\"]')\n const spinner = container.querySelector('[data-slot=\"spinner\"]')\n\n expect(button?.getAttribute('data-loading')).toBe('true')\n expect(button?.getAttribute('aria-busy')).toBe('true')\n expect(button).toHaveProperty('disabled', true)\n expect(spinner).not.toBeNull()\n expect(screen.getByText('Submit').className).toContain('invisible')\n })\n\n it('renders the child element directly when asChild is set', () => {\n render(\n <Button asChild>\n <a href=\"/somewhere\">Go</a>\n </Button>\n )\n\n const button = screen.getByRole('link', { name: 'Go' })\n\n expect(button.getAttribute('data-slot')).toBe('button')\n expect(button.getAttribute('type')).toBeNull()\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 { Button } from "./button.js";
3
- import * as React from "react";
4
- import { DateRange, DayButton, DayPicker, Locale } from "react-day-picker";
5
- import * as locale from "react-day-picker/locale";
6
- //#region src/components/calendar.d.ts
7
- type CalendarProps = React.ComponentProps<typeof DayPicker> & {
8
- buttonVariant?: React.ComponentProps<typeof Button>['variant'];
9
- };
10
- type CalendarDayButtonProps = Omit<React.ComponentProps<typeof DayButton>, 'color'> & {
11
- locale?: Partial<Locale>;
12
- };
13
- declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: CalendarProps): React.JSX.Element;
14
- declare function CalendarDayButton({ className, day, modifiers, locale, ...props }: CalendarDayButtonProps): React.JSX.Element;
15
- //#endregion
16
- export { Calendar, CalendarDayButton, CalendarDayButtonProps, CalendarProps, type DateRange, locale };
17
- //# sourceMappingURL=calendar.d.ts.map
1
+ import { a as DateRange, i as CalendarProps, n as CalendarDayButton, o as locale, r as CalendarDayButtonProps, t as Calendar } from "../calendar-C1GgjzIA.js";
2
+ export { Calendar, CalendarDayButton, CalendarDayButtonProps, CalendarProps, type DateRange, locale };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Button as t,buttonVariants as n}from"./button.js";import{IconChevronDown as r,IconChevronLeft as i,IconChevronRight as a}from"@tabler/icons-react";import{jsx as o}from"react/jsx-runtime";import*as s from"react";import{DayPicker as c,getDefaultClassNames as l}from"react-day-picker";import*as u from"react-day-picker/locale";function Calendar({className:t,classNames:s,showOutsideDays:u=!0,captionLayout:d=`label`,buttonVariant:f=`ghost`,locale:p,formatters:m,components:h,...g}){let _=l();return o(c,{showOutsideDays:u,className:e(`group/calendar bg-background p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(7)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,t),captionLayout:d,locale:p,formatters:{formatMonthDropdown:e=>e.toLocaleString(p?.code,{month:`short`}),...m},classNames:{root:e(`w-fit`,_.root),months:e(`relative flex gap-4`,_.months),month:e(`flex w-full flex-col gap-4`,_.month),nav:e(`absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,_.nav),button_previous:e(n({variant:f}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,_.button_previous),button_next:e(n({variant:f}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,_.button_next),month_caption:e(`flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,_.month_caption),dropdowns:e(`flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,_.dropdowns),dropdown_root:e(`relative rounded-(--cell-radius)`,_.dropdown_root),dropdown:e(`absolute inset-0 bg-popover opacity-0`,_.dropdown),caption_label:e(`font-medium select-none`,d===`label`?`text-sm`:`flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground`,_.caption_label),month_grid:`w-full border-collapse`,weekdays:e(`flex`,_.weekdays),weekday:e(`flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none`,_.weekday),week:e(`mt-2 flex w-full`,_.week),week_number_header:e(`w-(--cell-size) text-xs font-normal text-muted-foreground select-none`,_.week_number_header),week_number:e(`text-xs font-normal tabular-nums text-muted-foreground select-none`,_.week_number),day:e(`group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)`,g.showWeekNumber?`[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)`:`[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)`,_.day),range_start:e(`relative isolate z-0 rounded-l-(--cell-radius) bg-primary-50 after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-primary-50 dark:bg-primary-950 dark:after:bg-primary-950`,_.range_start),range_middle:e(`rounded-none`,_.range_middle),range_end:e(`relative isolate z-0 rounded-r-(--cell-radius) bg-primary-50 after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-primary-50 dark:bg-primary-950 dark:after:bg-primary-950`,_.range_end),today:e(`rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none`,_.today),outside:e(`text-muted-foreground aria-selected:text-muted-foreground`,_.outside),disabled:e(`text-muted-foreground opacity-50`,_.disabled),hidden:e(`invisible`,_.hidden),...s},components:{Root:({className:t,rootRef:n,...r})=>o(`div`,{"data-slot":`calendar`,ref:n,className:e(t),...r}),Chevron:({className:t,orientation:n,...s})=>o(n===`left`?i:n===`right`?a:r,{className:e(`size-4`,t),...s}),DayButton:({...e})=>o(CalendarDayButton,{locale:p,...e}),WeekNumber:({children:e,...t})=>o(`td`,{...t,children:o(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center text-xs font-normal tabular-nums`,children:e})}),...h},...g})}function CalendarDayButton({className:n,day:r,modifiers:i,locale:a,...c}){let u=l(),d=r.date.getDay()===0||r.date.getDay()===6,f=s.useRef(null);return s.useEffect(()=>{i.focused&&f.current?.focus()},[i.focused]),o(t,{ref:f,variant:`ghost`,size:`icon`,color:`zinc`,"data-day":r.date.toLocaleDateString(a?.code),"data-weekend":d,"data-selected-single":i.selected&&!i.range_start&&!i.range_end&&!i.range_middle,"data-range-start":i.range_start,"data-range-end":i.range_end,"data-range-middle":i.range_middle,className:e(`relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 text-foreground leading-none font-normal`,`hover:bg-primary-50 hover:text-foreground dark:hover:bg-primary-950 dark:hover:text-foreground`,`group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50`,`data-[weekend=true]:text-destructive data-[weekend=true]:hover:bg-red-50 data-[weekend=true]:hover:text-destructive dark:data-[weekend=true]:hover:bg-red-950`,`data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-primary-50 data-[range-middle=true]:text-foreground data-[range-middle=true]:hover:bg-primary-50 data-[range-middle=true]:hover:text-foreground dark:data-[range-middle=true]:bg-primary-950 dark:data-[range-middle=true]:hover:bg-primary-950`,`data-[range-middle=true]:data-[weekend=true]:text-destructive data-[range-middle=true]:data-[weekend=true]:hover:bg-red-50 data-[range-middle=true]:data-[weekend=true]:hover:text-destructive dark:data-[range-middle=true]:data-[weekend=true]:hover:bg-red-950`,`data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:bg-primary-500 data-[range-end=true]:text-white data-[range-end=true]:hover:bg-primary-500 data-[range-end=true]:hover:text-white dark:data-[range-end=true]:hover:bg-primary-500`,`data-[range-end=true]:data-[weekend=true]:text-white data-[range-end=true]:data-[weekend=true]:hover:text-white`,`data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:bg-primary-500 data-[range-start=true]:text-white data-[range-start=true]:hover:bg-primary-500 data-[range-start=true]:hover:text-white dark:data-[range-start=true]:hover:bg-primary-500`,`data-[range-start=true]:data-[weekend=true]:text-white data-[range-start=true]:data-[weekend=true]:hover:text-white`,`data-[selected-single=true]:bg-primary-500 data-[selected-single=true]:text-white data-[selected-single=true]:hover:bg-primary-500 data-[selected-single=true]:hover:text-white dark:data-[selected-single=true]:hover:bg-primary-500`,`data-[selected-single=true]:data-[weekend=true]:text-white data-[selected-single=true]:data-[weekend=true]:hover:text-white`,`[&>span]:text-xs [&>span]:opacity-70`,u.day,n),...c})}export{Calendar,CalendarDayButton,u as locale};
2
- //# sourceMappingURL=calendar.js.map
1
+ import{n as e,r as t,t as n}from"../calendar-CW1kGXom.js";export{n as Calendar,e as CalendarDayButton,t as locale};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../calendar-CW1kGXom.js";import{a as t,n,r}from"../react.esm-BkhVXJ8s.js";import{jsx as i}from"react/jsx-runtime";function getCalendarRoot(e){return e.querySelector(`[data-slot="calendar"]`)}function findDayButton(e,t){return Array.from(e.querySelectorAll(`button`)).find(e=>e.textContent?.trim()===t)}describe(`Calendar`,()=>{it(`renders the current month by default`,()=>{let{container:t}=r(i(e,{})),n=t.querySelector(`[data-today="true"]`);expect(n).not.toBeNull(),expect(n?.textContent?.trim()).toBe(String(new Date().getDate()))}),it(`fires onSelect with the clicked date and focuses the day button`,()=>{let t=vi.fn(),{container:a}=r(i(e,{mode:`single`,onSelect:t,defaultMonth:new Date(2024,5,1)})),o=findDayButton(getCalendarRoot(a),`15`);expect(o).toBeDefined(),n.click(o),expect(t).toHaveBeenCalledTimes(1);let s=t.mock.calls[0]?.[0];expect(s.getFullYear()).toBe(2024),expect(s.getMonth()).toBe(5),expect(s.getDate()).toBe(15),expect(document.activeElement).toBe(o)}),it(`moves DOM focus to the adjacent day when navigating with the keyboard`,()=>{let{container:t}=r(i(e,{mode:`single`,defaultMonth:new Date(2024,5,1)})),a=getCalendarRoot(t),o=findDayButton(a,`15`),s=findDayButton(a,`16`);n.click(o),expect(document.activeElement).toBe(o),n.keyDown(o,{key:`ArrowRight`}),expect(document.activeElement).toBe(s)}),it(`navigates to the next and previous month using the nav buttons`,()=>{r(i(e,{defaultMonth:new Date(2024,5,1)})),expect(t.getByText(`June 2024`)).toBeTruthy(),n.click(t.getByRole(`button`,{name:`Go to the Next Month`})),expect(t.getByText(`July 2024`)).toBeTruthy(),n.click(t.getByRole(`button`,{name:`Go to the Previous Month`})),expect(t.getByText(`June 2024`)).toBeTruthy()}),it(`defaults the navigation buttons to the ghost button variant`,()=>{r(i(e,{defaultMonth:new Date(2024,5,1)}));let n=t.getByRole(`button`,{name:`Go to the Previous Month`});expect(n.className).toContain(`button-ghost-hover`)}),it(`applies the buttonVariant prop to the navigation buttons`,()=>{r(i(e,{buttonVariant:`outline`,defaultMonth:new Date(2024,5,1)}));let n=t.getByRole(`button`,{name:`Go to the Previous Month`});expect(n.className).toContain(`button-outline-border`)})});
2
+ //# sourceMappingURL=calendar.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendar.spec.js","names":[],"sources":["../../src/components/calendar.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Calendar } from './calendar'\n\nfunction getCalendarRoot(container: HTMLElement) {\n return container.querySelector('[data-slot=\"calendar\"]') as HTMLElement\n}\n\nfunction findDayButton(calendarRoot: HTMLElement, day: string) {\n return Array.from(calendarRoot.querySelectorAll('button')).find(\n (button) => button.textContent?.trim() === day\n ) as HTMLButtonElement\n}\n\ndescribe('Calendar', () => {\n it('renders the current month by default', () => {\n const { container } = render(<Calendar />)\n\n const todayCell = container.querySelector('[data-today=\"true\"]')\n\n expect(todayCell).not.toBeNull()\n expect(todayCell?.textContent?.trim()).toBe(String(new Date().getDate()))\n })\n\n it('fires onSelect with the clicked date and focuses the day button', () => {\n const onSelect = vi.fn()\n const { container } = render(<Calendar mode=\"single\" onSelect={onSelect} defaultMonth={new Date(2024, 5, 1)} />)\n\n const calendarRoot = getCalendarRoot(container)\n const day15 = findDayButton(calendarRoot, '15')\n\n expect(day15).toBeDefined()\n\n fireEvent.click(day15)\n\n expect(onSelect).toHaveBeenCalledTimes(1)\n\n const selectedDate = onSelect.mock.calls[0]?.[0] as Date\n expect(selectedDate.getFullYear()).toBe(2024)\n expect(selectedDate.getMonth()).toBe(5)\n expect(selectedDate.getDate()).toBe(15)\n\n expect(document.activeElement).toBe(day15)\n })\n\n it('moves DOM focus to the adjacent day when navigating with the keyboard', () => {\n const { container } = render(<Calendar mode=\"single\" defaultMonth={new Date(2024, 5, 1)} />)\n\n const calendarRoot = getCalendarRoot(container)\n const day15 = findDayButton(calendarRoot, '15')\n const day16 = findDayButton(calendarRoot, '16')\n\n fireEvent.click(day15)\n expect(document.activeElement).toBe(day15)\n\n fireEvent.keyDown(day15, { key: 'ArrowRight' })\n\n expect(document.activeElement).toBe(day16)\n })\n\n it('navigates to the next and previous month using the nav buttons', () => {\n render(<Calendar defaultMonth={new Date(2024, 5, 1)} />)\n\n expect(screen.getByText('June 2024')).toBeTruthy()\n\n fireEvent.click(screen.getByRole('button', { name: 'Go to the Next Month' }))\n expect(screen.getByText('July 2024')).toBeTruthy()\n\n fireEvent.click(screen.getByRole('button', { name: 'Go to the Previous Month' }))\n expect(screen.getByText('June 2024')).toBeTruthy()\n })\n\n it('defaults the navigation buttons to the ghost button variant', () => {\n render(<Calendar defaultMonth={new Date(2024, 5, 1)} />)\n\n const previousButton = screen.getByRole('button', { name: 'Go to the Previous Month' })\n\n expect(previousButton.className).toContain('button-ghost-hover')\n })\n\n it('applies the buttonVariant prop to the navigation buttons', () => {\n render(<Calendar buttonVariant=\"outline\" defaultMonth={new Date(2024, 5, 1)} />)\n\n const previousButton = screen.getByRole('button', { name: 'Go to the Previous Month' })\n\n expect(previousButton.className).toContain('button-outline-border')\n })\n})\n"],"mappings":"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"}
@@ -1,22 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- //#region src/components/card.d.ts
4
- type CardProps = React.ComponentProps<'div'> & {
5
- size?: 'sm' | 'md' | 'lg';
6
- };
7
- type CardHeaderProps = React.ComponentProps<'div'>;
8
- type CardTitleProps = React.ComponentProps<'div'>;
9
- type CardDescriptionProps = React.ComponentProps<'div'>;
10
- type CardActionProps = React.ComponentProps<'div'>;
11
- type CardContentProps = React.ComponentProps<'div'>;
12
- type CardFooterProps = React.ComponentProps<'div'>;
13
- declare function Card({ className, size, ...props }: CardProps): React.JSX.Element;
14
- declare function CardHeader({ className, ...props }: CardHeaderProps): React.JSX.Element;
15
- declare function CardTitle({ className, ...props }: CardTitleProps): React.JSX.Element;
16
- declare function CardDescription({ className, ...props }: CardDescriptionProps): React.JSX.Element;
17
- declare function CardAction({ className, ...props }: CardActionProps): React.JSX.Element;
18
- declare function CardContent({ className, ...props }: CardContentProps): React.JSX.Element;
19
- declare function CardFooter({ className, ...props }: CardFooterProps): React.JSX.Element;
20
- //#endregion
21
- export { Card, CardAction, CardActionProps, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps };
22
- //# sourceMappingURL=card.d.ts.map
1
+ import { a as CardContentProps, c as CardFooter, d as CardHeaderProps, f as CardProps, i as CardContent, l as CardFooterProps, m as CardTitleProps, n as CardAction, o as CardDescription, p as CardTitle, r as CardActionProps, s as CardDescriptionProps, t as Card, u as CardHeader } from "../card-pWjtkTKw.js";
2
+ export { Card, CardAction, CardActionProps, CardContent, CardContentProps, CardDescription, CardDescriptionProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps };
@@ -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";function Card({className:n,size:r=`md`,...i}){return t(`div`,{"data-slot":`card`,"data-size":r,className:e(`group/card flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm bg-card text-card-foreground ring-foreground/10 ring-1`,`has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0`,`data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0`,`data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:has-data-[slot=card-footer]:pb-0`,`*:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl`,n),...i})}function CardHeader({className:n,...r}){return t(`div`,{"data-slot":`card-header`,className:e(`group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4`,`group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3`,`group-data-[size=lg]/card:px-6`,`has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,n),...r})}function CardTitle({className:n,...r}){return t(`div`,{"data-slot":`card-title`,className:e(`text-lg leading-snug font-bold group-data-[size=sm]/card:text-sm group-data-[size=lg]/card:text-xl`,n),...r})}function CardDescription({className:n,...r}){return t(`div`,{"data-slot":`card-description`,className:e(`text-muted-foreground text-sm`,n),...r})}function CardAction({className:n,...r}){return t(`div`,{"data-slot":`card-action`,className:e(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,n),...r})}function CardContent({className:n,...r}){return t(`div`,{"data-slot":`card-content`,className:e(`px-4 group-data-[size=sm]/card:px-3 group-data-[size=lg]/card:px-6`,n),...r})}function CardFooter({className:n,...r}){return t(`div`,{"data-slot":`card-footer`,className:e(`bg-muted/50 flex items-center rounded-b-xl border-t p-4`,`group-data-[size=sm]/card:p-3 group-data-[size=lg]/card:p-6`,n),...r})}export{Card,CardAction,CardContent,CardDescription,CardFooter,CardHeader,CardTitle};
2
- //# sourceMappingURL=card.js.map
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../card-Bx6iiocl.js";export{o as Card,n as CardAction,i as CardContent,t as CardDescription,e as CardFooter,r as CardHeader,a as CardTitle};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../card-Bx6iiocl.js";import{r as s}from"../react.esm-BkhVXJ8s.js";import{jsx as c,jsxs as l}from"react/jsx-runtime";describe(`Card`,()=>{it(`defaults to the md size and renders all subcomponent slots`,()=>{let{container:u}=s(l(o,{children:[l(r,{children:[c(a,{children:`Title`}),c(t,{children:`Description`}),c(n,{children:`Action`})]}),c(i,{children:`Content`}),c(e,{children:`Footer`})]}));expect(u.querySelector(`[data-slot="card"]`)?.getAttribute(`data-size`)).toBe(`md`),expect(u.querySelector(`[data-slot="card-header"]`)).not.toBeNull(),expect(u.querySelector(`[data-slot="card-title"]`)?.textContent).toBe(`Title`),expect(u.querySelector(`[data-slot="card-description"]`)?.textContent).toBe(`Description`),expect(u.querySelector(`[data-slot="card-action"]`)?.textContent).toBe(`Action`),expect(u.querySelector(`[data-slot="card-content"]`)?.textContent).toBe(`Content`),expect(u.querySelector(`[data-slot="card-footer"]`)?.textContent).toBe(`Footer`)}),it(`applies size-specific data attribute and classes for sm and lg`,()=>{let{container:e,rerender:t}=s(c(o,{size:`sm`,children:`Body`})),n=e.querySelector(`[data-slot="card"]`);expect(n?.getAttribute(`data-size`)).toBe(`sm`),expect(n?.className).toContain(`data-[size=sm]:py-3`),t(c(o,{size:`lg`,children:`Body`})),n=e.querySelector(`[data-slot="card"]`),expect(n?.getAttribute(`data-size`)).toBe(`lg`),expect(n?.className).toContain(`data-[size=lg]:py-6`)}),it(`merges a custom className onto the root`,()=>{let{container:e}=s(c(o,{className:`custom-card`,children:`Body`}));expect(e.querySelector(`[data-slot="card"]`)?.className).toContain(`custom-card`)}),it(`merges custom classNames onto each subcomponent`,()=>{let{container:u}=s(l(o,{children:[l(r,{className:`custom-header`,children:[c(a,{className:`custom-title`,children:`Title`}),c(t,{className:`custom-description`,children:`Description`}),c(n,{className:`custom-action`,children:`Action`})]}),c(i,{className:`custom-content`,children:`Content`}),c(e,{className:`custom-footer`,children:`Footer`})]}));expect(u.querySelector(`[data-slot="card-header"]`)?.className).toContain(`custom-header`),expect(u.querySelector(`[data-slot="card-title"]`)?.className).toContain(`custom-title`),expect(u.querySelector(`[data-slot="card-description"]`)?.className).toContain(`custom-description`),expect(u.querySelector(`[data-slot="card-action"]`)?.className).toContain(`custom-action`),expect(u.querySelector(`[data-slot="card-content"]`)?.className).toContain(`custom-content`),expect(u.querySelector(`[data-slot="card-footer"]`)?.className).toContain(`custom-footer`)})});
2
+ //# sourceMappingURL=card.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.spec.js","names":[],"sources":["../../src/components/card.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './card'\n\ndescribe('Card', () => {\n it('defaults to the md size and renders all subcomponent slots', () => {\n const { container } = render(\n <Card>\n <CardHeader>\n <CardTitle>Title</CardTitle>\n <CardDescription>Description</CardDescription>\n <CardAction>Action</CardAction>\n </CardHeader>\n <CardContent>Content</CardContent>\n <CardFooter>Footer</CardFooter>\n </Card>\n )\n\n expect(container.querySelector('[data-slot=\"card\"]')?.getAttribute('data-size')).toBe('md')\n expect(container.querySelector('[data-slot=\"card-header\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"card-title\"]')?.textContent).toBe('Title')\n expect(container.querySelector('[data-slot=\"card-description\"]')?.textContent).toBe('Description')\n expect(container.querySelector('[data-slot=\"card-action\"]')?.textContent).toBe('Action')\n expect(container.querySelector('[data-slot=\"card-content\"]')?.textContent).toBe('Content')\n expect(container.querySelector('[data-slot=\"card-footer\"]')?.textContent).toBe('Footer')\n })\n\n it('applies size-specific data attribute and classes for sm and lg', () => {\n const { container, rerender } = render(<Card size=\"sm\">Body</Card>)\n\n let card = container.querySelector('[data-slot=\"card\"]')\n expect(card?.getAttribute('data-size')).toBe('sm')\n expect(card?.className).toContain('data-[size=sm]:py-3')\n\n rerender(<Card size=\"lg\">Body</Card>)\n card = container.querySelector('[data-slot=\"card\"]')\n expect(card?.getAttribute('data-size')).toBe('lg')\n expect(card?.className).toContain('data-[size=lg]:py-6')\n })\n\n it('merges a custom className onto the root', () => {\n const { container } = render(<Card className=\"custom-card\">Body</Card>)\n\n expect(container.querySelector('[data-slot=\"card\"]')?.className).toContain('custom-card')\n })\n\n it('merges custom classNames onto each subcomponent', () => {\n const { container } = render(\n <Card>\n <CardHeader className=\"custom-header\">\n <CardTitle className=\"custom-title\">Title</CardTitle>\n <CardDescription className=\"custom-description\">Description</CardDescription>\n <CardAction className=\"custom-action\">Action</CardAction>\n </CardHeader>\n <CardContent className=\"custom-content\">Content</CardContent>\n <CardFooter className=\"custom-footer\">Footer</CardFooter>\n </Card>\n )\n\n expect(container.querySelector('[data-slot=\"card-header\"]')?.className).toContain('custom-header')\n expect(container.querySelector('[data-slot=\"card-title\"]')?.className).toContain('custom-title')\n expect(container.querySelector('[data-slot=\"card-description\"]')?.className).toContain('custom-description')\n expect(container.querySelector('[data-slot=\"card-action\"]')?.className).toContain('custom-action')\n expect(container.querySelector('[data-slot=\"card-content\"]')?.className).toContain('custom-content')\n expect(container.querySelector('[data-slot=\"card-footer\"]')?.className).toContain('custom-footer')\n })\n})\n"],"mappings":"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"}
@@ -1,43 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Button } from "./button.js";
3
- import * as React from "react";
4
- import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
5
- //#region src/components/carousel.d.ts
6
- type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
7
- type CarouselOptions = UseCarouselParameters[0];
8
- type CarouselPlugin = UseCarouselParameters[1];
9
- type CarouselApi = UseEmblaCarouselType[1];
10
- type CarouselProps = React.ComponentProps<'div'> & {
11
- opts?: CarouselOptions;
12
- plugins?: CarouselPlugin;
13
- orientation?: 'horizontal' | 'vertical';
14
- setApi?: (api: CarouselApi) => void;
15
- };
16
- type CarouselContentProps = React.ComponentProps<'div'>;
17
- type CarouselItemProps = React.ComponentProps<'div'>;
18
- type CarouselPreviousProps = React.ComponentProps<typeof Button>;
19
- type CarouselNextProps = React.ComponentProps<typeof Button>;
20
- type CarouselIndicatorsProps = React.ComponentProps<'div'> & {
21
- getIndicatorProps?: (index: number) => React.ComponentProps<'button'>;
22
- };
23
- type CarouselContextProps = {
24
- carouselRef: ReturnType<typeof useEmblaCarousel>[0];
25
- api: ReturnType<typeof useEmblaCarousel>[1];
26
- scrollPrev: () => void;
27
- scrollNext: () => void;
28
- scrollTo: (index: number) => void;
29
- canScrollPrev: boolean;
30
- canScrollNext: boolean;
31
- selectedIndex: number;
32
- scrollSnaps: number[];
33
- } & CarouselProps;
34
- declare function useCarousel(): CarouselContextProps;
35
- declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: CarouselProps): React.JSX.Element;
36
- declare function CarouselContent({ className, ...props }: CarouselContentProps): React.JSX.Element;
37
- declare function CarouselItem({ className, ...props }: CarouselItemProps): React.JSX.Element;
38
- declare function CarouselPrevious({ className, variant, size, color, ...props }: CarouselPreviousProps): React.JSX.Element;
39
- declare function CarouselNext({ className, variant, size, color, ...props }: CarouselNextProps): React.JSX.Element;
40
- declare function CarouselIndicators({ className, getIndicatorProps, ...props }: CarouselIndicatorsProps): React.JSX.Element | null;
41
- //#endregion
42
- export { Carousel, CarouselApi, CarouselContent, CarouselContentProps, CarouselIndicators, CarouselIndicatorsProps, CarouselItem, CarouselItemProps, CarouselNext, CarouselNextProps, CarouselPrevious, CarouselPreviousProps, CarouselProps, useCarousel };
43
- //# sourceMappingURL=carousel.d.ts.map
1
+ import { a as CarouselIndicators, c as CarouselItemProps, d as CarouselPrevious, f as CarouselPreviousProps, i as CarouselContentProps, l as CarouselNext, m as useCarousel, n as CarouselApi, o as CarouselIndicatorsProps, p as CarouselProps, r as CarouselContent, s as CarouselItem, t as Carousel, u as CarouselNextProps } from "../carousel-C6e4eRJD.js";
2
+ export { Carousel, CarouselApi, CarouselContent, CarouselContentProps, CarouselIndicators, CarouselIndicatorsProps, CarouselItem, CarouselItemProps, CarouselNext, CarouselNextProps, CarouselPrevious, CarouselPreviousProps, CarouselProps, useCarousel };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Button as t}from"./button.js";import{IconChevronLeft as n,IconChevronRight as r}from"@tabler/icons-react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import*as o from"react";import s from"embla-carousel-react";const c=o.createContext(null);function useCarousel(){let e=o.useContext(c);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function Carousel({orientation:t=`horizontal`,opts:n,setApi:r,plugins:a,className:l,children:u,...d}){let[f,p]=s({...n,axis:t===`horizontal`?`x`:`y`},a),[m,h]=o.useState(!1),[g,_]=o.useState(!1),[v,y]=o.useState(0),[b,x]=o.useState([]),S=o.useCallback(e=>{e&&(h(e.canScrollPrev()),_(e.canScrollNext()),y(e.selectedScrollSnap()),x(e.scrollSnapList()))},[]),C=o.useCallback(()=>{p?.scrollPrev()},[p]),w=o.useCallback(()=>{p?.scrollNext()},[p]),T=o.useCallback(e=>{p?.scrollTo(e)},[p]),E=o.useCallback(e=>{e.key===`ArrowLeft`?(e.preventDefault(),C()):e.key===`ArrowRight`&&(e.preventDefault(),w())},[C,w]);return o.useEffect(()=>{!p||!r||r(p)},[p,r]),o.useEffect(()=>{if(p)return S(p),p.on(`reInit`,S),p.on(`select`,S),()=>{p?.off(`reInit`,S),p?.off(`select`,S)}},[p,S]),i(c.Provider,{value:{carouselRef:f,api:p,opts:n,orientation:t||(n?.axis===`y`?`vertical`:`horizontal`),scrollPrev:C,scrollNext:w,scrollTo:T,canScrollPrev:m,canScrollNext:g,selectedIndex:v,scrollSnaps:b},children:i(`section`,{onKeyDownCapture:E,className:e(`relative`,l),"data-slot":`carousel`,...d,children:u})})}function CarouselContent({className:t,...n}){let{carouselRef:r,orientation:a}=useCarousel();return i(`div`,{ref:r,className:`overflow-hidden`,"data-slot":`carousel-content`,children:i(`div`,{className:e(`flex`,a===`horizontal`?`-ml-4`:`-mt-4 flex-col`,t),...n})})}function CarouselItem({className:t,...n}){let{orientation:r}=useCarousel();return i(`div`,{"data-slot":`carousel-item`,className:e(`min-w-0 shrink-0 grow-0 basis-full`,r===`horizontal`?`pl-4`:`pt-4`,t),...n})}function CarouselPrevious({className:r,variant:o=`outline`,size:s=`icon-sm`,color:c=`zinc`,...l}){let{orientation:u,scrollPrev:d,canScrollPrev:f}=useCarousel();return a(t,{"data-slot":`carousel-previous`,color:c,variant:o,size:s,className:e(`absolute touch-manipulation rounded-full`,u===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,r),disabled:!f,onClick:d,...l,children:[i(n,{}),i(`span`,{className:`sr-only`,children:`Previous slide`})]})}function CarouselNext({className:n,variant:o=`outline`,size:s=`icon-sm`,color:c=`zinc`,...l}){let{orientation:u,scrollNext:d,canScrollNext:f}=useCarousel();return a(t,{"data-slot":`carousel-next`,color:c,variant:o,size:s,className:e(`absolute touch-manipulation rounded-full`,u===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,n),disabled:!f,onClick:d,...l,children:[i(r,{}),i(`span`,{className:`sr-only`,children:`Next slide`})]})}function CarouselIndicators({className:t,getIndicatorProps:n,...r}){let{orientation:a,scrollSnaps:o,selectedIndex:s,scrollTo:c}=useCarousel();return o.length===0?null:i(`div`,{"data-slot":`carousel-indicators`,className:e(`pointer-events-none absolute flex justify-center gap-2`,a===`horizontal`?`inset-x-0 bottom-4 flex-row`:`inset-y-0 right-4 flex-col items-center`,t),...r,children:o.map((t,r)=>{let{className:a,onClick:o,...l}=n?.(r)??{};return i(`button`,{...l,type:`button`,"data-slot":`carousel-indicator`,"data-active":s===r||void 0,"aria-label":`Go to slide ${r+1}`,className:e(`pointer-events-auto cursor-pointer size-2.5 touch-manipulation rounded-full bg-background opacity-60 shadow-sm ring-1 ring-border transition-opacity hover:opacity-100 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3 focus-visible:outline-none data-[active=true]:opacity-100`,a),onClick:e=>{c(r),o?.(e)}},t)})})}export{Carousel,CarouselContent,CarouselIndicators,CarouselItem,CarouselNext,CarouselPrevious,useCarousel};
2
- //# sourceMappingURL=carousel.js.map
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../carousel-D0OTImO7.js";export{o as Carousel,n as CarouselContent,i as CarouselIndicators,t as CarouselItem,e as CarouselNext,r as CarouselPrevious,a as useCarousel};