@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
@@ -1,27 +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
- //#region src/components/pagination.d.ts
5
- type PaginationProps = React.ComponentProps<'nav'> & Pick<React.ComponentProps<typeof Button>, 'color'>;
6
- type PaginationContentProps = React.ComponentProps<'ul'>;
7
- type PaginationItemProps = React.ComponentProps<'li'>;
8
- type PaginationLinkProps = {
9
- isActive?: boolean;
10
- } & Pick<React.ComponentProps<typeof Button>, 'size' | 'color'> & React.ComponentProps<'a'>;
11
- type PaginationPreviousProps = React.ComponentProps<typeof PaginationLink> & {
12
- text?: string;
13
- };
14
- type PaginationNextProps = React.ComponentProps<typeof PaginationLink> & {
15
- text?: string;
16
- };
17
- type PaginationEllipsisProps = React.ComponentProps<'span'>;
18
- declare function Pagination({ className, color, children, ...props }: PaginationProps): React.JSX.Element;
19
- declare function PaginationContent({ className, ...props }: PaginationContentProps): React.JSX.Element;
20
- declare function PaginationItem({ ...props }: PaginationItemProps): React.JSX.Element;
21
- declare function PaginationLink({ className, isActive, size, color, ...props }: PaginationLinkProps): React.JSX.Element;
22
- declare function PaginationPrevious({ className, text, ...props }: PaginationPreviousProps): React.JSX.Element;
23
- declare function PaginationNext({ className, text, ...props }: PaginationNextProps): React.JSX.Element;
24
- declare function PaginationEllipsis({ className, ...props }: PaginationEllipsisProps): React.JSX.Element;
25
- //#endregion
26
- export { Pagination, PaginationContent, PaginationContentProps, PaginationEllipsis, PaginationEllipsisProps, PaginationItem, PaginationItemProps, PaginationLink, PaginationLinkProps, PaginationNext, PaginationNextProps, PaginationPrevious, PaginationPreviousProps, PaginationProps };
27
- //# sourceMappingURL=pagination.d.ts.map
1
+ import { a as PaginationEllipsisProps, c as PaginationLink, d as PaginationNextProps, f as PaginationPrevious, i as PaginationEllipsis, l as PaginationLinkProps, m as PaginationProps, n as PaginationContent, o as PaginationItem, p as PaginationPreviousProps, r as PaginationContentProps, s as PaginationItemProps, t as Pagination, u as PaginationNext } from "../pagination-BZ3xMXsy.js";
2
+ export { Pagination, PaginationContent, PaginationContentProps, PaginationEllipsis, PaginationEllipsisProps, PaginationItem, PaginationItemProps, PaginationLink, PaginationLinkProps, PaginationNext, PaginationNextProps, PaginationPrevious, PaginationPreviousProps, PaginationProps };
@@ -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,IconDots as i}from"@tabler/icons-react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import*as s from"react";const c=s.createContext({color:`primary`});function Pagination({className:t,color:n,children:r,...i}){return a(c.Provider,{value:{color:n},children:a(`nav`,{"aria-label":`pagination`,"data-slot":`pagination`,"data-color":n,className:e(`mx-auto flex w-full justify-center`,t),...i,children:r})})}function PaginationContent({className:t,...n}){return a(`ul`,{"data-slot":`pagination-content`,className:e(`flex items-center gap-0.5`,t),...n})}function PaginationItem({...e}){return a(`li`,{"data-slot":`pagination-item`,...e})}function PaginationLink({className:n,isActive:r,size:i=`icon`,color:o=`primary`,...l}){let u=s.useContext(c);return a(t,{asChild:!0,variant:r?`solid`:`secondary`,color:u.color||o,size:i,className:e(n),children:a(`a`,{"aria-current":r?`page`:void 0,"data-slot":`pagination-link`,"data-active":r,...l})})}function PaginationPrevious({className:t,text:r=``,...i}){return o(PaginationLink,{"aria-label":`Go to previous page`,size:r?`md`:`icon`,className:e(r&&`pl-1.5!`,t),...i,children:[a(n,{"data-icon":`inline-start`}),r&&a(`span`,{className:`hidden sm:block`,children:r})]})}function PaginationNext({className:t,text:n=``,...i}){return o(PaginationLink,{"aria-label":`Go to next page`,size:n?`md`:`icon`,className:e(n&&`pr-1.5!`,t),...i,children:[n&&a(`span`,{className:`hidden sm:block`,children:n}),a(r,{"data-icon":`inline-end`})]})}function PaginationEllipsis({className:t,...n}){return o(`span`,{"aria-hidden":!0,"data-slot":`pagination-ellipsis`,className:e(`flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4`,t),...n,children:[a(i,{}),a(`span`,{className:`sr-only`,children:`More pages`})]})}export{Pagination,PaginationContent,PaginationEllipsis,PaginationItem,PaginationLink,PaginationNext,PaginationPrevious};
2
- //# sourceMappingURL=pagination.js.map
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../pagination-gnUKddCN.js";export{o as Pagination,n as PaginationContent,i as PaginationEllipsis,t as PaginationItem,e as PaginationLink,r as PaginationNext,a as PaginationPrevious};
@@ -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"../pagination-gnUKddCN.js";import{a as s,n as c,r as l}from"../react.esm-BkhVXJ8s.js";import{jsx as u,jsxs as d}from"react/jsx-runtime";describe(`Pagination`,()=>{it(`renders the nav landmark with its data-slot and aria-label`,()=>{l(u(o,{color:`brand`,children:u(n,{})}));let e=s.getByRole(`navigation`,{name:`pagination`});expect(e.getAttribute(`data-slot`)).toBe(`pagination`),expect(e.getAttribute(`data-color`)).toBe(`brand`)}),it(`renders PaginationContent and PaginationItem with their data-slots`,()=>{let{container:r}=l(u(o,{children:u(n,{children:u(t,{children:u(e,{href:`#`,children:`1`})})})}));expect(r.querySelector(`[data-slot="pagination-content"]`)?.tagName).toBe(`UL`),expect(r.querySelector(`[data-slot="pagination-item"]`)?.tagName).toBe(`LI`)}),describe(`PaginationLink`,()=>{it(`marks the active page and falls back to the secondary variant otherwise`,()=>{l(u(o,{children:d(n,{children:[u(t,{children:u(e,{href:`#`,isActive:!0,children:`1`})}),u(t,{children:u(e,{href:`#`,children:`2`})})]})}));let r=s.getByText(`1`),i=s.getByText(`2`);expect(r.getAttribute(`aria-current`)).toBe(`page`),expect(r.getAttribute(`data-active`)).toBe(`true`),expect(r.getAttribute(`data-variant`)).toBe(`solid`),expect(i.getAttribute(`aria-current`)).toBeNull(),expect(i.getAttribute(`data-variant`)).toBe(`secondary`)}),it(`fires a click handler for page navigation`,()=>{let r=vi.fn();l(u(o,{children:u(n,{children:u(t,{children:u(e,{href:`#`,onClick:r,children:`2`})})})})),c.click(s.getByText(`2`)),expect(r).toHaveBeenCalledTimes(1)}),it(`uses the color from the surrounding Pagination context over its own default`,()=>{l(u(o,{color:`brand`,children:u(n,{children:u(t,{children:u(e,{href:`#`,children:`1`})})})})),expect(s.getByText(`1`).getAttribute(`data-color`)).toBe(`brand`)})}),it(`renders PaginationPrevious with its icon and aria-label`,()=>{l(u(o,{children:u(n,{children:u(t,{children:u(a,{href:`#`})})})}));let e=s.getByRole(`link`,{name:`Go to previous page`});expect(e.querySelector(`[data-icon="inline-start"]`)).not.toBeNull()}),it(`renders PaginationNext with optional visible text alongside its icon`,()=>{l(u(o,{children:u(n,{children:u(t,{children:u(r,{href:`#`,text:`Next`})})})}));let e=s.getByRole(`link`,{name:`Go to next page`});expect(e.querySelector(`[data-icon="inline-end"]`)).not.toBeNull();let i=s.getByText(`Next`);expect(i.className).toContain(`hidden`),expect(i.className).toContain(`sm:block`)}),it(`renders PaginationEllipsis with a visually hidden label`,()=>{let{container:e}=l(u(i,{})),t=e.querySelector(`[data-slot="pagination-ellipsis"]`);expect(t?.getAttribute(`aria-hidden`)).toBe(`true`),expect(s.getByText(`More pages`).className).toContain(`sr-only`)}),it(`composes a full pagination list with previous, pages, an ellipsis and next`,()=>{l(u(o,{children:d(n,{children:[u(t,{children:u(a,{href:`#`})}),u(t,{children:u(e,{href:`#`,isActive:!0,children:`1`})}),u(t,{children:u(i,{})}),u(t,{children:u(r,{href:`#`})})]})})),expect(s.getAllByRole(`link`)).toHaveLength(3),expect(s.getByText(`More pages`)).not.toBeNull()})});
2
+ //# sourceMappingURL=pagination.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.spec.js","names":[],"sources":["../../src/components/pagination.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious\n} from './pagination'\n\ndescribe('Pagination', () => {\n it('renders the nav landmark with its data-slot and aria-label', () => {\n render(\n <Pagination color=\"brand\">\n <PaginationContent />\n </Pagination>\n )\n\n const nav = screen.getByRole('navigation', { name: 'pagination' })\n expect(nav.getAttribute('data-slot')).toBe('pagination')\n expect(nav.getAttribute('data-color')).toBe('brand')\n })\n\n it('renders PaginationContent and PaginationItem with their data-slots', () => {\n const { container } = render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href=\"#\">1</PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n expect(container.querySelector('[data-slot=\"pagination-content\"]')?.tagName).toBe('UL')\n expect(container.querySelector('[data-slot=\"pagination-item\"]')?.tagName).toBe('LI')\n })\n\n describe('PaginationLink', () => {\n it('marks the active page and falls back to the secondary variant otherwise', () => {\n render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\">2</PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n const activeLink = screen.getByText('1')\n const inactiveLink = screen.getByText('2')\n\n expect(activeLink.getAttribute('aria-current')).toBe('page')\n expect(activeLink.getAttribute('data-active')).toBe('true')\n expect(activeLink.getAttribute('data-variant')).toBe('solid')\n\n expect(inactiveLink.getAttribute('aria-current')).toBeNull()\n expect(inactiveLink.getAttribute('data-variant')).toBe('secondary')\n })\n\n it('fires a click handler for page navigation', () => {\n const handleClick = vi.fn()\n render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href=\"#\" onClick={handleClick}>\n 2\n </PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n fireEvent.click(screen.getByText('2'))\n\n expect(handleClick).toHaveBeenCalledTimes(1)\n })\n\n it('uses the color from the surrounding Pagination context over its own default', () => {\n render(\n <Pagination color=\"brand\">\n <PaginationContent>\n <PaginationItem>\n <PaginationLink href=\"#\">1</PaginationLink>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n expect(screen.getByText('1').getAttribute('data-color')).toBe('brand')\n })\n })\n\n it('renders PaginationPrevious with its icon and aria-label', () => {\n render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n const previous = screen.getByRole('link', { name: 'Go to previous page' })\n expect(previous.querySelector('[data-icon=\"inline-start\"]')).not.toBeNull()\n })\n\n it('renders PaginationNext with optional visible text alongside its icon', () => {\n render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationNext href=\"#\" text=\"Next\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n const next = screen.getByRole('link', { name: 'Go to next page' })\n expect(next.querySelector('[data-icon=\"inline-end\"]')).not.toBeNull()\n\n const label = screen.getByText('Next')\n expect(label.className).toContain('hidden')\n expect(label.className).toContain('sm:block')\n })\n\n it('renders PaginationEllipsis with a visually hidden label', () => {\n const { container } = render(<PaginationEllipsis />)\n const ellipsis = container.querySelector('[data-slot=\"pagination-ellipsis\"]')\n\n expect(ellipsis?.getAttribute('aria-hidden')).toBe('true')\n expect(screen.getByText('More pages').className).toContain('sr-only')\n })\n\n it('composes a full pagination list with previous, pages, an ellipsis and next', () => {\n render(\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious href=\"#\" />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink href=\"#\" isActive>\n 1\n </PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem>\n <PaginationItem>\n <PaginationNext href=\"#\" />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )\n\n expect(screen.getAllByRole('link')).toHaveLength(3)\n expect(screen.getByText('More pages')).not.toBeNull()\n })\n})\n"],"mappings":"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"}
@@ -1,13 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { ComponentProps } from "react";
3
- import * as BasePhoneInput from "react-phone-number-input";
4
- //#region src/components/phone-input.d.ts
5
- type PhoneInputProps = Omit<ComponentProps<'input'>, 'onChange' | 'value' | 'ref'> & Omit<BasePhoneInput.Props<typeof BasePhoneInput.default>, 'onChange' | 'popupClassName' | 'scrollAreaClassName'> & {
6
- onChange?: (value: BasePhoneInput.Value) => void;
7
- popupClassName?: string;
8
- scrollAreaClassName?: string;
9
- };
10
- declare function PhoneInput({ className, popupClassName, scrollAreaClassName, onChange, value, ...props }: PhoneInputProps): import("react").JSX.Element;
11
- //#endregion
12
- export { PhoneInput, PhoneInputProps };
13
- //# sourceMappingURL=phone-input.d.ts.map
1
+ import { n as PhoneInputProps, t as PhoneInput } from "../phone-input-By5lNF03.js";
2
+ export { PhoneInput, PhoneInputProps };
@@ -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{Input as n}from"./input.js";import{Combobox as r,ComboboxContent as i,ComboboxEmpty as a,ComboboxInput as o,ComboboxItem as s,ComboboxList as c,ComboboxSeparator as l,ComboboxTrigger as u,ComboboxValue as d}from"./combobox.js";import{ScrollArea as f}from"./scroll-area.js";import{IconWorld as p}from"@tabler/icons-react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{createContext as g,useContext as _,useMemo as v,useState as y}from"react";import*as b from"react-phone-number-input";import x from"react-phone-number-input/flags";const S=g({popupClassName:void 0,scrollAreaClassName:void 0});function PhoneInput({className:t,popupClassName:n,scrollAreaClassName:r,onChange:i,value:a,...o}){return m(S.Provider,{value:{popupClassName:n,scrollAreaClassName:r},children:m(b.default,{className:e(`flex`,o[`aria-invalid`]&&`[&_*[data-slot=combobox-trigger]]:border-destructive [&_*[data-slot=combobox-trigger]]:ring-destructive/50`,t),flagComponent:FlagComponent,countrySelectComponent:CountrySelect,inputComponent:InputComponent,smartCaret:!1,defaultCountry:`BR`,value:a||void 0,onChange:e=>i?.(e||``),...o})})}function InputComponent({className:t,...r}){return m(n,{className:e(`rounded-s-none focus:z-1`,t),...r})}function CountrySelect({disabled:n,value:p,options:g,onChange:x}){let{popupClassName:C}=_(S),[w,T]=y(``),E=v(()=>w?g.filter(({label:e})=>e.toLowerCase().includes(w.toLowerCase())):g,[g,w]);return h(r,{items:E,value:p||``,onValueChange:e=>{e&&x(e)},children:[m(u,{render:h(t,{variant:`outline`,color:`zinc`,className:e(`flex h-8 items-center gap-1 rounded-s-lg rounded-e-none border-e-0 border-input px-2.5 py-0 leading-none dark:bg-input/30`,`hover:bg-transparent focus:z-10 data-pressed:bg-transparent`,n&&`opacity-50`),disabled:n,children:[m(`span`,{className:`sr-only`,children:m(d,{})}),m(FlagComponent,{country:p,countryName:p})]})}),h(i,{className:e(`w-xs *:data-[slot=input-group]:bg-transparent`,C),children:[m(o,{placeholder:`e.g. United States`,value:w,onChange:e=>T(e.target.value),showTrigger:!1,className:`border-input focus-visible:border-border rounded-none border-0 px-0 py-2.5 shadow-none ring-0! outline-none! focus-visible:ring-0 focus-visible:ring-offset-0`}),m(l,{}),m(a,{className:`px-4 py-2.5 text-sm`,children:`Nenhum país encontrado.`}),m(c,{children:m(`div`,{className:`relative flex max-h-full`,children:m(`div`,{className:`flex max-h-[min(var(--available-height),24rem)] w-full scroll-pt-2 scroll-pb-2 flex-col overscroll-contain`,children:m(f,{className:`size-full min-h-0 **:data-[slot=scroll-area-scrollbar]:m-0 **:data-[slot=scroll-area-viewport]:h-full **:data-[slot=scroll-area-viewport]:overscroll-contain`,children:E.map(e=>e.value?h(s,{value:e.value,className:`flex items-center gap-2`,children:[m(FlagComponent,{country:e.value,countryName:e.label}),m(`span`,{className:`flex-1 text-sm`,children:e.label}),m(`span`,{className:`text-foreground/50 text-sm`,children:`+${b.getCountryCallingCode(e.value)}`})]},e.value):null)})})})})]})]})}function FlagComponent({country:e,countryName:t}){let n=x[e];return m(`span`,{className:`flex h-4 w-4 items-center justify-center [&_svg:not([class*='size-'])]:size-full! [&_svg:not([class*='size-'])]:rounded-[5px]`,children:n?m(n,{title:t}):m(p,{className:`size-4 opacity-60`})})}export{PhoneInput};
2
- //# sourceMappingURL=phone-input.js.map
1
+ import{t as e}from"../phone-input-D72tVPWH.js";export{e as PhoneInput};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../phone-input-D72tVPWH.js";import{n as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";describe(`PhoneInput`,()=>{it(`renders a tel input defaulting to Brazil as the selected country`,()=>{let{container:t}=n(r(e,{})),i=t.querySelector(`input[type="tel"]`),a=t.querySelector(`[data-slot="combobox-trigger"]`);expect(i).not.toBeNull(),expect(i.value).toBe(``),expect(a.textContent).toContain(`Brazil`),expect(a.querySelector(`title`)?.textContent).toBe(`BR`)}),it(`renders the underlying input with the shared input styles and no rounded start`,()=>{let{container:t}=n(r(e,{})),i=t.querySelector(`[data-slot="input"]`);expect(i.className).toContain(`rounded-s-none`),expect(i.className).toContain(`focus:z-1`)}),it(`formats a typed number and reports the E.164 value through onChange`,()=>{let i=vi.fn(),{container:a}=n(r(e,{onChange:i})),o=a.querySelector(`input[type="tel"]`);t.change(o,{target:{value:`11987654321`}}),expect(o.value).toBe(`(11) 98765-4321`),expect(i).toHaveBeenCalledWith(`+5511987654321`)}),it(`renders a controlled value formatted for display`,()=>{let{container:t}=n(r(e,{value:`+5511987654321`})),i=t.querySelector(`input[type="tel"]`);expect(i.value).toBe(`+55 11 98765 4321`)}),it(`calls onChange with an empty string when the value is cleared`,()=>{let i=vi.fn(),{container:a}=n(r(e,{value:`+5511987654321`,onChange:i})),o=a.querySelector(`input[type="tel"]`);t.change(o,{target:{value:``}}),expect(i).toHaveBeenCalledWith(``)}),it(`propagates aria-invalid to the wrapper so the nested combobox trigger gets destructive styling`,()=>{let{container:t}=n(r(e,{"aria-invalid":!0})),i=t.firstElementChild,a=t.querySelector(`input[type="tel"]`);expect(i.className).toContain(`[&_*[data-slot=combobox-trigger]]:border-destructive`),expect(i.className).toContain(`[&_*[data-slot=combobox-trigger]]:ring-destructive/50`),expect(a.getAttribute(`aria-invalid`)).toBe(`true`)}),it(`does not add destructive wrapper classes when aria-invalid is absent`,()=>{let{container:t}=n(r(e,{})),i=t.firstElementChild;expect(i.className).not.toContain(`border-destructive`)}),it(`opens the country popup when the trigger is clicked and lists country options with dial codes`,()=>{let{container:i}=n(r(e,{})),a=i.querySelector(`[data-slot="combobox-trigger"]`);t.click(a),expect(a.getAttribute(`aria-expanded`)).toBe(`true`);let o=document.querySelector(`[data-slot="combobox-content"]`);expect(o).not.toBeNull();let s=document.querySelectorAll(`[data-slot="combobox-item"]`);expect(s.length).toBeGreaterThan(1);let c=Array.from(s).find(e=>e.textContent?.includes(`United States`));expect(c?.textContent).toContain(`+1`)}),it(`selecting a country updates the trigger flag/name and closes the popup`,()=>{let{container:i}=n(r(e,{})),a=i.querySelector(`[data-slot="combobox-trigger"]`);t.click(a);let o=document.querySelectorAll(`[data-slot="combobox-item"]`),s=Array.from(o).find(e=>e.textContent?.includes(`United States`));t.click(s),expect(a.getAttribute(`aria-expanded`)).toBe(`false`),expect(a.textContent).toContain(`United States`),expect(a.querySelector(`title`)?.textContent).toBe(`US`)}),it(`selecting a different country changes the dial-code prefix applied to typed numbers`,()=>{let i=vi.fn(),{container:a}=n(r(e,{onChange:i})),o=a.querySelector(`[data-slot="combobox-trigger"]`);t.click(o);let s=document.querySelectorAll(`[data-slot="combobox-item"]`),c=Array.from(s).find(e=>e.textContent?.includes(`United States`));t.click(c);let l=a.querySelector(`input[type="tel"]`);t.change(l,{target:{value:`2015550123`}}),expect(i).toHaveBeenCalledWith(`+12015550123`)}),it(`filters the country list using the popup search input`,()=>{let{container:i}=n(r(e,{})),a=i.querySelector(`[data-slot="combobox-trigger"]`);t.click(a);let o=document.querySelector(`input[placeholder="e.g. United States"]`);t.change(o,{target:{value:`Portugal`}});let s=document.querySelectorAll(`[data-slot="combobox-item"]`);expect(s.length).toBe(1),expect(s[0]?.textContent).toContain(`Portugal`)}),it(`shows the empty state message when no country matches the search`,()=>{let{container:i}=n(r(e,{})),a=i.querySelector(`[data-slot="combobox-trigger"]`);t.click(a);let o=document.querySelector(`input[placeholder="e.g. United States"]`);t.change(o,{target:{value:`not-a-real-country`}}),expect(document.querySelector(`[data-slot="combobox-empty"]`)?.textContent).toBe(`Nenhum país encontrado.`)}),it(`forwards a custom popupClassName to the popup content`,()=>{let{container:i}=n(r(e,{popupClassName:`my-popup-class`})),a=i.querySelector(`[data-slot="combobox-trigger"]`);t.click(a);let o=document.querySelector(`[data-slot="combobox-content"]`);expect(o.className).toContain(`my-popup-class`)})});
2
+ //# sourceMappingURL=phone-input.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-input.spec.js","names":[],"sources":["../../src/components/phone-input.spec.tsx"],"sourcesContent":["import { fireEvent, render } from '@testing-library/react'\n\nimport { PhoneInput } from './phone-input'\n\ndescribe('PhoneInput', () => {\n it('renders a tel input defaulting to Brazil as the selected country', () => {\n const { container } = render(<PhoneInput />)\n\n const input = container.querySelector('input[type=\"tel\"]') as HTMLInputElement\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n\n expect(input).not.toBeNull()\n expect(input.value).toBe('')\n expect(trigger.textContent).toContain('Brazil')\n expect(trigger.querySelector('title')?.textContent).toBe('BR')\n })\n\n it('renders the underlying input with the shared input styles and no rounded start', () => {\n const { container } = render(<PhoneInput />)\n\n const input = container.querySelector('[data-slot=\"input\"]') as HTMLElement\n\n expect(input.className).toContain('rounded-s-none')\n expect(input.className).toContain('focus:z-1')\n })\n\n it('formats a typed number and reports the E.164 value through onChange', () => {\n const onChange = vi.fn()\n const { container } = render(<PhoneInput onChange={onChange} />)\n\n const input = container.querySelector('input[type=\"tel\"]') as HTMLInputElement\n fireEvent.change(input, { target: { value: '11987654321' } })\n\n expect(input.value).toBe('(11) 98765-4321')\n expect(onChange).toHaveBeenCalledWith('+5511987654321')\n })\n\n it('renders a controlled value formatted for display', () => {\n const { container } = render(<PhoneInput value=\"+5511987654321\" />)\n\n const input = container.querySelector('input[type=\"tel\"]') as HTMLInputElement\n\n expect(input.value).toBe('+55 11 98765 4321')\n })\n\n it('calls onChange with an empty string when the value is cleared', () => {\n const onChange = vi.fn()\n const { container } = render(<PhoneInput value=\"+5511987654321\" onChange={onChange} />)\n\n const input = container.querySelector('input[type=\"tel\"]') as HTMLInputElement\n fireEvent.change(input, { target: { value: '' } })\n\n expect(onChange).toHaveBeenCalledWith('')\n })\n\n it('propagates aria-invalid to the wrapper so the nested combobox trigger gets destructive styling', () => {\n const { container } = render(<PhoneInput aria-invalid />)\n\n const wrapper = container.firstElementChild as HTMLElement\n const input = container.querySelector('input[type=\"tel\"]') as HTMLElement\n\n expect(wrapper.className).toContain('[&_*[data-slot=combobox-trigger]]:border-destructive')\n expect(wrapper.className).toContain('[&_*[data-slot=combobox-trigger]]:ring-destructive/50')\n expect(input.getAttribute('aria-invalid')).toBe('true')\n })\n\n it('does not add destructive wrapper classes when aria-invalid is absent', () => {\n const { container } = render(<PhoneInput />)\n\n const wrapper = container.firstElementChild as HTMLElement\n\n expect(wrapper.className).not.toContain('border-destructive')\n })\n\n it('opens the country popup when the trigger is clicked and lists country options with dial codes', () => {\n const { container } = render(<PhoneInput />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n expect(trigger.getAttribute('aria-expanded')).toBe('true')\n\n const content = document.querySelector('[data-slot=\"combobox-content\"]')\n expect(content).not.toBeNull()\n\n const items = document.querySelectorAll('[data-slot=\"combobox-item\"]')\n expect(items.length).toBeGreaterThan(1)\n\n const usItem = Array.from(items).find((item) => item.textContent?.includes('United States'))\n expect(usItem?.textContent).toContain('+1')\n })\n\n it('selecting a country updates the trigger flag/name and closes the popup', () => {\n const { container } = render(<PhoneInput />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n const items = document.querySelectorAll('[data-slot=\"combobox-item\"]')\n const usItem = Array.from(items).find((item) => item.textContent?.includes('United States')) as HTMLElement\n fireEvent.click(usItem)\n\n expect(trigger.getAttribute('aria-expanded')).toBe('false')\n expect(trigger.textContent).toContain('United States')\n expect(trigger.querySelector('title')?.textContent).toBe('US')\n })\n\n it('selecting a different country changes the dial-code prefix applied to typed numbers', () => {\n const onChange = vi.fn()\n const { container } = render(<PhoneInput onChange={onChange} />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n const items = document.querySelectorAll('[data-slot=\"combobox-item\"]')\n const usItem = Array.from(items).find((item) => item.textContent?.includes('United States')) as HTMLElement\n fireEvent.click(usItem)\n\n const input = container.querySelector('input[type=\"tel\"]') as HTMLInputElement\n fireEvent.change(input, { target: { value: '2015550123' } })\n\n expect(onChange).toHaveBeenCalledWith('+12015550123')\n })\n\n it('filters the country list using the popup search input', () => {\n const { container } = render(<PhoneInput />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n const searchInput = document.querySelector('input[placeholder=\"e.g. United States\"]') as HTMLElement\n fireEvent.change(searchInput, { target: { value: 'Portugal' } })\n\n const items = document.querySelectorAll('[data-slot=\"combobox-item\"]')\n expect(items.length).toBe(1)\n expect(items[0]?.textContent).toContain('Portugal')\n })\n\n it('shows the empty state message when no country matches the search', () => {\n const { container } = render(<PhoneInput />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n const searchInput = document.querySelector('input[placeholder=\"e.g. United States\"]') as HTMLElement\n fireEvent.change(searchInput, { target: { value: 'not-a-real-country' } })\n\n expect(document.querySelector('[data-slot=\"combobox-empty\"]')?.textContent).toBe('Nenhum país encontrado.')\n })\n\n it('forwards a custom popupClassName to the popup content', () => {\n const { container } = render(<PhoneInput popupClassName=\"my-popup-class\" />)\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]') as HTMLElement\n fireEvent.click(trigger)\n\n const content = document.querySelector('[data-slot=\"combobox-content\"]') as HTMLElement\n expect(content.className).toContain('my-popup-class')\n })\n})\n"],"mappings":"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"}
@@ -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, r as ChartConfig } from "../chart-CVe5-EWS.js";
3
- import * as React from "react";
4
- import { Pie } from "recharts";
5
- //#region src/components/pie-chart.d.ts
6
- type PieChartDatum = {
7
- name: string;
8
- value: number;
9
- color?: string;
10
- colorKey?: ChartColorKey;
11
- };
12
- type PieChartProps = Omit<React.ComponentProps<'div'>, 'children'> & {
13
- data: PieChartDatum[];
14
- withTooltip?: boolean;
15
- withLegend?: boolean;
16
- withLabels?: boolean;
17
- labelsPosition?: 'inside' | 'outside';
18
- startAngle?: number;
19
- endAngle?: number;
20
- paddingAngle?: number;
21
- strokeWidth?: number;
22
- strokeColor?: ChartColorKey | string;
23
- innerRadius?: number | string;
24
- outerRadius?: number | string;
25
- animationDuration?: number;
26
- tooltipProps?: ChartTooltipContentProps;
27
- legendProps?: ChartLegendContentProps;
28
- pieProps?: Partial<React.ComponentProps<typeof Pie>>;
29
- children?: React.ReactNode;
30
- };
31
- declare function buildPieConfig(data: PieChartDatum[]): ChartConfig;
32
- type PieChartBaseProps = Omit<PieChartProps, 'children'> & {
33
- dataSlot: string;
34
- innerRadius?: number | string;
35
- outerRadius?: number | string;
36
- centerSlot?: React.ReactNode;
37
- };
38
- declare function PieChartBase({ className, data, withTooltip, withLegend, withLabels, labelsPosition, startAngle, endAngle, paddingAngle, strokeWidth, strokeColor, innerRadius, outerRadius, animationDuration, tooltipProps, legendProps, pieProps, dataSlot, centerSlot, ...props }: PieChartBaseProps): React.JSX.Element;
39
- declare function PieChart(props: PieChartProps): React.JSX.Element;
40
- //#endregion
41
- export { PieChart, PieChartBase, PieChartBaseProps, PieChartDatum, PieChartProps, buildPieConfig };
42
- //# sourceMappingURL=pie-chart.d.ts.map
1
+ import { a as PieChartProps, i as PieChartDatum, n as PieChartBase, o as buildPieConfig, r as PieChartBaseProps, t as PieChart } from "../pie-chart-CvG27kFN.js";
2
+ export { PieChart, PieChartBase, PieChartBaseProps, PieChartDatum, PieChartProps, buildPieConfig };
@@ -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{Legend as l,Pie as u,PieChart as d,Tooltip as f}from"recharts";function buildPieConfig(e){return e.reduce((e,t,n)=>(e[t.name]={label:t.name,color:t.color??a(t.colorKey)??i[n%i.length]},e),{})}function PieChartBase({className:i,data:p,withTooltip:m=!0,withLegend:h=!1,withLabels:g=!1,labelsPosition:_=`outside`,startAngle:v=90,endAngle:y=-270,paddingAngle:b=0,strokeWidth:x=1,strokeColor:S=`var(--background)`,innerRadius:C=0,outerRadius:w=`80%`,animationDuration:T,tooltipProps:E,legendProps:D,pieProps:O,dataSlot:k,centerSlot:A,...j}){let M=c.useMemo(()=>buildPieConfig(p),[p]),N=a(S)??S,P=c.useMemo(()=>p.map(e=>({...e,fill:M[e.name]?.color,stroke:N})),[p,N,M]);return o(t,{"data-slot":k,className:e(`relative aspect-square w-full`,i),config:M,...j,children:s(d,{children:[m&&o(f,{cursor:!1,content:o(r,{hideLabel:!0,...E})}),h&&o(l,{content:o(n,{nameKey:`name`,...D})}),o(u,{data:P,dataKey:`value`,nameKey:`name`,startAngle:v,endAngle:y,innerRadius:C,outerRadius:w,paddingAngle:b,strokeWidth:x,label:g?{fontSize:12}:void 0,labelLine:g&&_===`outside`,animationDuration:T,isAnimationActive:T!==0,...O,children:A})]})})}function PieChart(e){return o(PieChartBase,{...e,dataSlot:`pie-chart`})}export{PieChart,PieChartBase,buildPieConfig};
2
- //# sourceMappingURL=pie-chart.js.map
1
+ import{n as e,r as t,t as n}from"../pie-chart-S4nMKbsW.js";export{n as PieChart,e as PieChartBase,t as buildPieConfig};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,r as t,t as n}from"../pie-chart-S4nMKbsW.js";import{a as r,r as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a}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 o=[{name:`chrome`,value:275},{name:`safari`,value:200},{name:`firefox`,value:187}];describe(`PieChart`,()=>{it(`renders with data-slot="pie-chart" on the chart wrapper`,()=>{let{container:e}=i(a(n,{data:o}));expect(e.querySelector(`[data-slot="pie-chart"]`)).not.toBeNull()}),it(`accepts a data array without throwing`,()=>{expect(()=>i(a(n,{data:o}))).not.toThrow()}),it(`renders one recharts pie sector per data entry`,()=>{let{container:e}=i(a(n,{data:o}));expect(e.querySelectorAll(`.recharts-pie-sector`).length).toBe(o.length)}),it(`renders a tooltip wrapper by default and omits it when withTooltip is false`,()=>{let{container:e}=i(a(n,{data:o}));expect(e.querySelectorAll(`.recharts-tooltip-wrapper`).length).toBe(1);let{container:t}=i(a(n,{data:o,withTooltip:!1}));expect(t.querySelectorAll(`.recharts-tooltip-wrapper`).length).toBe(0)}),it(`omits the legend by default and renders it when withLegend is true`,async()=>{let{container:e}=i(a(n,{data:o}));expect(e.querySelectorAll(`.recharts-legend-wrapper`).length).toBe(0);let{container:t}=i(a(n,{data:o,withLegend:!0}));expect(t.querySelectorAll(`.recharts-legend-wrapper`).length).toBe(1),expect((await r.findAllByText(`chrome`)).length).toBeGreaterThan(0)}),it(`omits slice labels by default and renders them when withLabels is true`,()=>{let{container:e}=i(a(n,{data:o,animationDuration:0}));expect(e.querySelectorAll(`.recharts-pie-label-text`).length).toBe(0);let{container:t}=i(a(n,{data:o,withLabels:!0,animationDuration:0}));expect(t.querySelectorAll(`.recharts-pie-label-text`).length).toBe(o.length)}),describe(`PieChartBase`,()=>{it(`uses the provided dataSlot instead of the default "pie-chart" slot`,()=>{let{container:t}=i(a(e,{dataSlot:`donut-chart`,data:o}));expect(t.querySelector(`[data-slot="donut-chart"]`)).not.toBeNull(),expect(t.querySelector(`[data-slot="pie-chart"]`)).toBeNull()}),it(`renders an arbitrary centerSlot node inside the pie`,()=>{let{container:t}=i(a(e,{dataSlot:`pie-chart`,data:o,centerSlot:a(`text`,{"data-testid":`center`,children:`Center`})}));expect(t.querySelector(`[data-testid="center"]`)).not.toBeNull()}),it(`does not render a centerSlot when none is provided`,()=>{let{container:t}=i(a(e,{dataSlot:`pie-chart`,data:o}));expect(t.querySelector(`[data-testid="center"]`)).toBeNull()})})}),describe(`buildPieConfig`,()=>{it(`builds one config entry per data item keyed by its name`,()=>{let e=t(o);expect(Object.keys(e)).toEqual([`chrome`,`safari`,`firefox`])}),it(`uses the item name as the label`,()=>{let e=t(o);expect(e.chrome?.label).toBe(`chrome`),expect(e.safari?.label).toBe(`safari`)}),it(`assigns colors from the default palette by index when no color/colorKey is provided`,()=>{let e=t(o);expect(e.chrome?.color).toBe(`var(--chart-1)`),expect(e.safari?.color).toBe(`var(--chart-2)`),expect(e.firefox?.color).toBe(`var(--chart-3)`)}),it(`prefers an explicit color over a colorKey and the default palette`,()=>{let e=t([{name:`a`,value:1,color:`#123456`,colorKey:`red`}]);expect(e.a?.color).toBe(`#123456`)}),it(`resolves a colorKey to its CSS variable when no explicit color is set`,()=>{let e=t([{name:`a`,value:1,colorKey:`red`}]);expect(e.a?.color).toBe(`var(--red)`)}),it(`cycles through the default palette once there are more items than palette colors`,()=>{let e=t(Array.from({length:6},(e,t)=>({name:`item-${t}`,value:t+1})));expect(e[`item-0`]?.color).toBe(`var(--chart-1)`),expect(e[`item-4`]?.color).toBe(`var(--chart-5)`),expect(e[`item-5`]?.color).toBe(`var(--chart-1)`)}),it(`returns an empty config for an empty data array`,()=>{expect(t([])).toEqual({})})});
2
+ //# sourceMappingURL=pie-chart.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pie-chart.spec.js","names":[],"sources":["../../src/components/pie-chart.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { buildPieConfig, PieChart, PieChartBase, type PieChartDatum } from './pie-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: PieChartDatum[] = [\n { name: 'chrome', value: 275 },\n { name: 'safari', value: 200 },\n { name: 'firefox', value: 187 }\n]\n\ndescribe('PieChart', () => {\n it('renders with data-slot=\"pie-chart\" on the chart wrapper', () => {\n const { container } = render(<PieChart data={data} />)\n\n expect(container.querySelector('[data-slot=\"pie-chart\"]')).not.toBeNull()\n })\n\n it('accepts a data array without throwing', () => {\n expect(() => render(<PieChart data={data} />)).not.toThrow()\n })\n\n it('renders one recharts pie sector per data entry', () => {\n const { container } = render(<PieChart data={data} />)\n\n expect(container.querySelectorAll('.recharts-pie-sector').length).toBe(data.length)\n })\n\n it('renders a tooltip wrapper by default and omits it when withTooltip is false', () => {\n const { container: withTooltip } = render(<PieChart data={data} />)\n expect(withTooltip.querySelectorAll('.recharts-tooltip-wrapper').length).toBe(1)\n\n const { container: withoutTooltip } = render(<PieChart data={data} withTooltip={false} />)\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', async () => {\n const { container: withoutLegend } = render(<PieChart data={data} />)\n expect(withoutLegend.querySelectorAll('.recharts-legend-wrapper').length).toBe(0)\n\n const { container: withLegend } = render(<PieChart data={data} withLegend />)\n expect(withLegend.querySelectorAll('.recharts-legend-wrapper').length).toBe(1)\n // Recharts registers a pie's legend payload through an internal store update that lands\n // a render pass after the initial mount, so the item labels need an async query to appear.\n expect((await screen.findAllByText('chrome')).length).toBeGreaterThan(0)\n })\n\n it('omits slice labels by default and renders them when withLabels is true', () => {\n // animationDuration=0 disables the entrance animation: recharts withholds label text\n // entirely while a pie is still animating in, so the default (animated) render has\n // no label nodes to assert on even when withLabels is true.\n const { container: withoutLabels } = render(<PieChart data={data} animationDuration={0} />)\n expect(withoutLabels.querySelectorAll('.recharts-pie-label-text').length).toBe(0)\n\n const { container: withLabels } = render(<PieChart data={data} withLabels animationDuration={0} />)\n expect(withLabels.querySelectorAll('.recharts-pie-label-text').length).toBe(data.length)\n })\n\n describe('PieChartBase', () => {\n it('uses the provided dataSlot instead of the default \"pie-chart\" slot', () => {\n const { container } = render(<PieChartBase dataSlot=\"donut-chart\" data={data} />)\n\n expect(container.querySelector('[data-slot=\"donut-chart\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"pie-chart\"]')).toBeNull()\n })\n\n it('renders an arbitrary centerSlot node inside the pie', () => {\n const { container } = render(\n <PieChartBase dataSlot=\"pie-chart\" data={data} centerSlot={<text data-testid=\"center\">Center</text>} />\n )\n\n expect(container.querySelector('[data-testid=\"center\"]')).not.toBeNull()\n })\n\n it('does not render a centerSlot when none is provided', () => {\n const { container } = render(<PieChartBase dataSlot=\"pie-chart\" data={data} />)\n\n expect(container.querySelector('[data-testid=\"center\"]')).toBeNull()\n })\n })\n})\n\ndescribe('buildPieConfig', () => {\n it('builds one config entry per data item keyed by its name', () => {\n const config = buildPieConfig(data)\n\n expect(Object.keys(config)).toEqual(['chrome', 'safari', 'firefox'])\n })\n\n it('uses the item name as the label', () => {\n const config = buildPieConfig(data)\n\n expect(config.chrome?.label).toBe('chrome')\n expect(config.safari?.label).toBe('safari')\n })\n\n it('assigns colors from the default palette by index when no color/colorKey is provided', () => {\n const config = buildPieConfig(data)\n\n expect(config.chrome?.color).toBe('var(--chart-1)')\n expect(config.safari?.color).toBe('var(--chart-2)')\n expect(config.firefox?.color).toBe('var(--chart-3)')\n })\n\n it('prefers an explicit color over a colorKey and the default palette', () => {\n const config = buildPieConfig([{ name: 'a', value: 1, color: '#123456', colorKey: 'red' }])\n\n expect(config.a?.color).toBe('#123456')\n })\n\n it('resolves a colorKey to its CSS variable when no explicit color is set', () => {\n const config = buildPieConfig([{ name: 'a', value: 1, colorKey: 'red' }])\n\n expect(config.a?.color).toBe('var(--red)')\n })\n\n it('cycles through the default palette once there are more items than palette colors', () => {\n const manyItems: PieChartDatum[] = Array.from({ length: 6 }, (_, index) => ({\n name: `item-${index}`,\n value: index + 1\n }))\n\n const config = buildPieConfig(manyItems)\n\n expect(config['item-0']?.color).toBe('var(--chart-1)')\n expect(config['item-4']?.color).toBe('var(--chart-5)')\n expect(config['item-5']?.color).toBe('var(--chart-1)')\n })\n\n it('returns an empty config for an empty data array', () => {\n expect(buildPieConfig([])).toEqual({})\n })\n})\n"],"mappings":"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"}
@@ -1,21 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Popover as Popover$1 } from "radix-ui";
3
- import * as React from "react";
4
- //#region src/components/popover.d.ts
5
- type PopoverProps = React.ComponentProps<typeof Popover$1.Root>;
6
- type PopoverTriggerProps = React.ComponentProps<typeof Popover$1.Trigger>;
7
- type PopoverContentProps = React.ComponentProps<typeof Popover$1.Content>;
8
- type PopoverAnchorProps = React.ComponentProps<typeof Popover$1.Anchor>;
9
- type PopoverHeaderProps = React.ComponentProps<'div'>;
10
- type PopoverTitleProps = React.ComponentProps<'h2'>;
11
- type PopoverDescriptionProps = React.ComponentProps<'p'>;
12
- declare function Popover({ ...props }: PopoverProps): React.JSX.Element;
13
- declare function PopoverTrigger({ ...props }: PopoverTriggerProps): React.JSX.Element;
14
- declare function PopoverContent({ className, align, sideOffset, ...props }: PopoverContentProps): React.JSX.Element;
15
- declare function PopoverAnchor({ ...props }: PopoverAnchorProps): React.JSX.Element;
16
- declare function PopoverHeader({ className, ...props }: PopoverHeaderProps): React.JSX.Element;
17
- declare function PopoverTitle({ className, ...props }: PopoverTitleProps): React.JSX.Element;
18
- declare function PopoverDescription({ className, ...props }: PopoverDescriptionProps): React.JSX.Element;
19
- //#endregion
20
- export { Popover, PopoverAnchor, PopoverAnchorProps, PopoverContent, PopoverContentProps, PopoverDescription, PopoverDescriptionProps, PopoverHeader, PopoverHeaderProps, PopoverProps, PopoverTitle, PopoverTitleProps, PopoverTrigger, PopoverTriggerProps };
21
- //# sourceMappingURL=popover.d.ts.map
1
+ import { a as PopoverContentProps, c as PopoverHeader, d as PopoverTitle, f as PopoverTitleProps, i as PopoverContent, l as PopoverHeaderProps, m as PopoverTriggerProps, n as PopoverAnchor, o as PopoverDescription, p as PopoverTrigger, r as PopoverAnchorProps, s as PopoverDescriptionProps, t as Popover, u as PopoverProps } from "../popover-DchAqyKn.js";
2
+ export { Popover, PopoverAnchor, PopoverAnchorProps, PopoverContent, PopoverContentProps, PopoverDescription, PopoverDescriptionProps, PopoverHeader, PopoverHeaderProps, PopoverProps, PopoverTitle, PopoverTitleProps, PopoverTrigger, PopoverTriggerProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Popover as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function Popover({...e}){return n(t.Root,{"data-slot":`popover`,...e})}function PopoverTrigger({...e}){return n(t.Trigger,{"data-slot":`popover-trigger`,...e})}function PopoverContent({className:r,align:i=`center`,sideOffset:a=4,...o}){return n(t.Portal,{children:n(t.Content,{"data-slot":`popover-content`,align:i,sideOffset:a,className:e(`bg-popover text-popover-foreground ring-foreground/10 z-50 w-72 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 origin-(--radix-popover-content-transform-origin) flex flex-col gap-2.5 outline-hidden`,`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),...o})})}function PopoverAnchor({...e}){return n(t.Anchor,{"data-slot":`popover-anchor`,...e})}function PopoverHeader({className:t,...r}){return n(`div`,{"data-slot":`popover-header`,className:e(`flex flex-col gap-0.5 text-sm`,t),...r})}function PopoverTitle({className:t,...r}){return n(`h2`,{"data-slot":`popover-title`,className:e(`font-medium`,t),...r})}function PopoverDescription({className:t,...r}){return n(`p`,{"data-slot":`popover-description`,className:e(`text-muted-foreground`,t),...r})}export{Popover,PopoverAnchor,PopoverContent,PopoverDescription,PopoverHeader,PopoverTitle,PopoverTrigger};
2
- //# sourceMappingURL=popover.js.map
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"../popover-BtX3tX8M.js";export{o as Popover,n as PopoverAnchor,i as PopoverContent,t as PopoverDescription,e as PopoverHeader,r as PopoverTitle,a as PopoverTrigger};
@@ -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"../popover-BtX3tX8M.js";import{a as s,n as c,r as l}from"../react.esm-BkhVXJ8s.js";import{jsx as u,jsxs as d}from"react/jsx-runtime";function renderPopover(){return l(d(o,{children:[u(a,{children:`Open settings`}),u(i,{children:d(e,{children:[u(r,{children:`Settings`}),u(t,{children:`Manage your preferences`})]})})]}))}describe(`Popover`,()=>{it(`does not render the content until the trigger opens it`,()=>{renderPopover(),expect(s.queryByRole(`dialog`)).toBeNull()}),it(`opens the content when the trigger is clicked`,async()=>{renderPopover(),c.click(s.getByText(`Open settings`));let e=await s.findByRole(`dialog`);expect(e.getAttribute(`data-slot`)).toBe(`popover-content`),expect(e.className).toContain(`bg-popover`),expect(e.className).toContain(`w-72`)}),it(`renders the header, title and description inside the open content`,async()=>{renderPopover(),c.click(s.getByText(`Open settings`)),await s.findByRole(`dialog`);let e=s.getByText(`Settings`),t=s.getByText(`Manage your preferences`);expect(e.getAttribute(`data-slot`)).toBe(`popover-title`),expect(e.className).toContain(`font-medium`),expect(t.getAttribute(`data-slot`)).toBe(`popover-description`),expect(t.className).toContain(`text-muted-foreground`),expect(s.getByText(`Settings`).closest(`[data-slot="popover-header"]`)).not.toBeNull()}),it(`closes the content when the trigger is clicked again`,async()=>{renderPopover();let e=s.getByText(`Open settings`);c.click(e),await s.findByRole(`dialog`),c.click(e),expect(s.queryByRole(`dialog`)).toBeNull()}),it(`accepts custom align and sideOffset props and still renders the content`,async()=>{l(d(o,{defaultOpen:!0,children:[u(a,{children:`Open`}),u(i,{align:`start`,sideOffset:12,children:`Body`})]}));let e=await s.findByRole(`dialog`);expect(e.textContent).toBe(`Body`),expect(e.hasAttribute(`data-align`)).toBe(!0)}),it(`renders the anchor with its data-slot without opening a portal`,()=>{let{container:e}=l(d(o,{children:[u(n,{"data-testid":`anchor`,children:`Anchor point`}),u(a,{children:`Open`}),u(i,{children:`Body`})]})),t=e.querySelector(`[data-slot="popover-anchor"]`);expect(t).not.toBeNull(),expect(t?.textContent).toBe(`Anchor point`),expect(s.queryByRole(`dialog`)).toBeNull()})});
2
+ //# sourceMappingURL=popover.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.spec.js","names":[],"sources":["../../src/components/popover.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport {\n Popover,\n PopoverAnchor,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger\n} from './popover'\n\nfunction renderPopover() {\n return render(\n <Popover>\n <PopoverTrigger>Open settings</PopoverTrigger>\n <PopoverContent>\n <PopoverHeader>\n <PopoverTitle>Settings</PopoverTitle>\n <PopoverDescription>Manage your preferences</PopoverDescription>\n </PopoverHeader>\n </PopoverContent>\n </Popover>\n )\n}\n\ndescribe('Popover', () => {\n it('does not render the content until the trigger opens it', () => {\n renderPopover()\n\n expect(screen.queryByRole('dialog')).toBeNull()\n })\n\n it('opens the content when the trigger is clicked', async () => {\n renderPopover()\n\n fireEvent.click(screen.getByText('Open settings'))\n\n const content = await screen.findByRole('dialog')\n\n expect(content.getAttribute('data-slot')).toBe('popover-content')\n expect(content.className).toContain('bg-popover')\n expect(content.className).toContain('w-72')\n })\n\n it('renders the header, title and description inside the open content', async () => {\n renderPopover()\n\n fireEvent.click(screen.getByText('Open settings'))\n await screen.findByRole('dialog')\n\n const title = screen.getByText('Settings')\n const description = screen.getByText('Manage your preferences')\n\n expect(title.getAttribute('data-slot')).toBe('popover-title')\n expect(title.className).toContain('font-medium')\n expect(description.getAttribute('data-slot')).toBe('popover-description')\n expect(description.className).toContain('text-muted-foreground')\n expect(screen.getByText('Settings').closest('[data-slot=\"popover-header\"]')).not.toBeNull()\n })\n\n it('closes the content when the trigger is clicked again', async () => {\n renderPopover()\n\n const trigger = screen.getByText('Open settings')\n\n fireEvent.click(trigger)\n await screen.findByRole('dialog')\n\n fireEvent.click(trigger)\n\n expect(screen.queryByRole('dialog')).toBeNull()\n })\n\n it('accepts custom align and sideOffset props and still renders the content', async () => {\n render(\n <Popover defaultOpen>\n <PopoverTrigger>Open</PopoverTrigger>\n <PopoverContent align=\"start\" sideOffset={12}>\n Body\n </PopoverContent>\n </Popover>\n )\n\n const content = await screen.findByRole('dialog')\n\n expect(content.textContent).toBe('Body')\n expect(content.hasAttribute('data-align')).toBe(true)\n })\n\n it('renders the anchor with its data-slot without opening a portal', () => {\n const { container } = render(\n <Popover>\n <PopoverAnchor data-testid=\"anchor\">Anchor point</PopoverAnchor>\n <PopoverTrigger>Open</PopoverTrigger>\n <PopoverContent>Body</PopoverContent>\n </Popover>\n )\n\n const anchor = container.querySelector('[data-slot=\"popover-anchor\"]')\n\n expect(anchor).not.toBeNull()\n expect(anchor?.textContent).toBe('Anchor point')\n expect(screen.queryByRole('dialog')).toBeNull()\n })\n})\n"],"mappings":"qOAYA,SAAS,eAAgB,CACvB,OAAO,EACL,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAgB,eAA6B,CAAA,EAC7C,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAc,UAAsB,CAAA,EACpC,EAAC,EAAD,CAAA,SAAoB,yBAA2C,CAAA,CAClD,CAAA,CAAA,CACD,CAAA,CACT,CAAA,CAAA,CACX,CACF,CAEA,SAAS,cAAiB,CACxB,GAAG,6DAAgE,CACjE,cAAc,EAEd,OAAO,EAAO,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,EAED,GAAG,gDAAiD,SAAY,CAC9D,cAAc,EAEd,EAAU,MAAM,EAAO,UAAU,eAAe,CAAC,EAEjD,IAAM,EAAU,MAAM,EAAO,WAAW,QAAQ,EAEhD,OAAO,EAAQ,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,iBAAiB,EAChE,OAAO,EAAQ,SAAS,CAAC,CAAC,UAAU,YAAY,EAChD,OAAO,EAAQ,SAAS,CAAC,CAAC,UAAU,MAAM,CAC5C,CAAC,EAED,GAAG,oEAAqE,SAAY,CAClF,cAAc,EAEd,EAAU,MAAM,EAAO,UAAU,eAAe,CAAC,EACjD,MAAM,EAAO,WAAW,QAAQ,EAEhC,IAAM,EAAQ,EAAO,UAAU,UAAU,EACnC,EAAc,EAAO,UAAU,yBAAyB,EAE9D,OAAO,EAAM,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,eAAe,EAC5D,OAAO,EAAM,SAAS,CAAC,CAAC,UAAU,aAAa,EAC/C,OAAO,EAAY,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,qBAAqB,EACxE,OAAO,EAAY,SAAS,CAAC,CAAC,UAAU,uBAAuB,EAC/D,OAAO,EAAO,UAAU,UAAU,CAAC,CAAC,QAAQ,8BAA8B,CAAC,CAAC,CAAC,IAAI,SAAS,CAC5F,CAAC,EAED,GAAG,uDAAwD,SAAY,CACrE,cAAc,EAEd,IAAM,EAAU,EAAO,UAAU,eAAe,EAEhD,EAAU,MAAM,CAAO,EACvB,MAAM,EAAO,WAAW,QAAQ,EAEhC,EAAU,MAAM,CAAO,EAEvB,OAAO,EAAO,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,EAED,GAAG,0EAA2E,SAAY,CACxF,EACE,EAAC,EAAD,CAAS,YAAA,GAAT,SAAA,CACE,EAAC,EAAD,CAAA,SAAgB,MAAoB,CAAA,EACpC,EAAC,EAAD,CAAgB,MAAM,QAAQ,WAAY,GAAI,SAAA,MAE9B,CAAA,CACT,CACX,CAAA,CAAA,EAEA,IAAM,EAAU,MAAM,EAAO,WAAW,QAAQ,EAEhD,OAAO,EAAQ,WAAW,CAAC,CAAC,KAAK,MAAM,EACvC,OAAO,EAAQ,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,EAAI,CACtD,CAAC,EAED,GAAG,qEAAwE,CACzE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAe,cAAY,SAAS,SAAA,cAA2B,CAAA,EAC/D,EAAC,EAAD,CAAA,SAAgB,MAAoB,CAAA,EACpC,EAAC,EAAD,CAAA,SAAgB,MAAoB,CAAA,CAC7B,CAAA,CAAA,CACX,EAEM,EAAS,EAAU,cAAc,8BAA8B,EAErE,OAAO,CAAM,CAAC,CAAC,IAAI,SAAS,EAC5B,OAAO,GAAQ,WAAW,CAAC,CAAC,KAAK,cAAc,EAC/C,OAAO,EAAO,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,CACH,CAAC"}
@@ -1,14 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Progress as Progress$1 } from "radix-ui";
3
- import { VariantProps } from "class-variance-authority";
4
- import * as React from "react";
5
- //#region src/components/progress.d.ts
6
- declare const progressVariants: (props?: ({
7
- size?: "lg" | "md" | "sm" | 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 ProgressProps = React.ComponentProps<typeof Progress$1.Root> & VariantProps<typeof progressVariants>;
11
- declare function Progress({ className, value, size, color, ...props }: ProgressProps): React.JSX.Element;
12
- //#endregion
13
- export { Progress, ProgressProps, progressVariants };
14
- //# sourceMappingURL=progress.d.ts.map
1
+ import { n as ProgressProps, r as progressVariants, t as Progress } from "../progress-mEAw9ZhK.js";
2
+ export { Progress, ProgressProps, progressVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{progressColorVariants as t}from"../lib/progress.js";import{Progress as n}from"radix-ui";import{jsx as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";const a=i(`relative flex w-full items-center overflow-x-hidden rounded-full bg-muted`,{variants:{size:{sm:`h-0.5`,md:`h-1`,lg:`h-1.5`},color:t},defaultVariants:{size:`md`,color:`primary`}});function Progress({className:t,value:i,size:o=`md`,color:s=`primary`,...c}){return r(n.Root,{"data-slot":`progress`,"data-size":o,"data-color":s,className:e(a({size:o,color:s}),t),...c,children:r(n.Indicator,{"data-slot":`progress-indicator`,className:`size-full flex-1 bg-(--progress-color) transition-all`,style:{transform:`translateX(-${100-(i||0)}%)`}})})}export{Progress,a as progressVariants};
2
- //# sourceMappingURL=progress.js.map
1
+ import{n as e,t}from"../progress-QvpY7tiy.js";export{t as Progress,e as progressVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../progress-QvpY7tiy.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`Progress`,()=>{it(`renders the progress root and indicator with default size and color`,()=>{let{container:r}=t(n(e,{value:50})),i=r.querySelector(`[data-slot="progress"]`),a=r.querySelector(`[data-slot="progress-indicator"]`);expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`data-color`)).toBe(`primary`),expect(i?.className).toContain(`rounded-full`),expect(a?.className).toContain(`bg-(--progress-color)`)}),it(`applies size and color variants and their data attributes`,()=>{let{container:r}=t(n(e,{value:20,size:`lg`,color:`green`})),i=r.querySelector(`[data-slot="progress"]`);expect(i?.getAttribute(`data-size`)).toBe(`lg`),expect(i?.getAttribute(`data-color`)).toBe(`green`),expect(i?.className).toContain(`h-1.5`)}),it(`translates the indicator based on the value`,()=>{let{container:r}=t(n(e,{value:30})),i=r.querySelector(`[data-slot="progress-indicator"]`);expect(i.style.transform).toBe(`translateX(-70%)`)}),it(`defaults the indicator transform to fully hidden when value is omitted`,()=>{let{container:r}=t(n(e,{})),i=r.querySelector(`[data-slot="progress-indicator"]`);expect(i.style.transform).toBe(`translateX(-100%)`)}),it(`merges a custom className with the variant classes`,()=>{let{container:r}=t(n(e,{value:10,className:`custom-class`}));expect(r.querySelector(`[data-slot="progress"]`)?.className).toContain(`custom-class`)})});
2
+ //# sourceMappingURL=progress.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.spec.js","names":[],"sources":["../../src/components/progress.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Progress } from './progress'\n\ndescribe('Progress', () => {\n it('renders the progress root and indicator with default size and color', () => {\n const { container } = render(<Progress value={50} />)\n\n const root = container.querySelector('[data-slot=\"progress\"]')\n const indicator = container.querySelector('[data-slot=\"progress-indicator\"]')\n\n expect(root?.getAttribute('data-size')).toBe('md')\n expect(root?.getAttribute('data-color')).toBe('primary')\n expect(root?.className).toContain('rounded-full')\n expect(indicator?.className).toContain('bg-(--progress-color)')\n })\n\n it('applies size and color variants and their data attributes', () => {\n const { container } = render(<Progress value={20} size=\"lg\" color=\"green\" />)\n\n const root = container.querySelector('[data-slot=\"progress\"]')\n\n expect(root?.getAttribute('data-size')).toBe('lg')\n expect(root?.getAttribute('data-color')).toBe('green')\n expect(root?.className).toContain('h-1.5')\n })\n\n it('translates the indicator based on the value', () => {\n const { container } = render(<Progress value={30} />)\n\n const indicator = container.querySelector('[data-slot=\"progress-indicator\"]') as HTMLElement\n\n expect(indicator.style.transform).toBe('translateX(-70%)')\n })\n\n it('defaults the indicator transform to fully hidden when value is omitted', () => {\n const { container } = render(<Progress />)\n\n const indicator = container.querySelector('[data-slot=\"progress-indicator\"]') as HTMLElement\n\n expect(indicator.style.transform).toBe('translateX(-100%)')\n })\n\n it('merges a custom className with the variant classes', () => {\n const { container } = render(<Progress value={10} className=\"custom-class\" />)\n\n expect(container.querySelector('[data-slot=\"progress\"]')?.className).toContain('custom-class')\n })\n})\n"],"mappings":"yKAIA,SAAS,eAAkB,CACzB,GAAG,0EAA6E,CAC9E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,MAAO,EAAK,CAAA,CAAC,EAE9C,EAAO,EAAU,cAAc,wBAAwB,EACvD,EAAY,EAAU,cAAc,kCAAkC,EAE5E,OAAO,GAAM,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAM,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EACvD,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,cAAc,EAChD,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,uBAAuB,CAChE,CAAC,EAED,GAAG,gEAAmE,CACpE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,MAAO,GAAI,KAAK,KAAK,MAAM,OAAS,CAAA,CAAC,EAEtE,EAAO,EAAU,cAAc,wBAAwB,EAE7D,OAAO,GAAM,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAM,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,EACrD,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,OAAO,CAC3C,CAAC,EAED,GAAG,kDAAqD,CACtD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,MAAO,EAAK,CAAA,CAAC,EAE9C,EAAY,EAAU,cAAc,kCAAkC,EAE5E,OAAO,EAAU,MAAM,SAAS,CAAC,CAAC,KAAK,kBAAkB,CAC3D,CAAC,EAED,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,CAAA,CAAC,EAEnC,EAAY,EAAU,cAAc,kCAAkC,EAE5E,OAAO,EAAU,MAAM,SAAS,CAAC,CAAC,KAAK,mBAAmB,CAC5D,CAAC,EAED,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,MAAO,GAAI,UAAU,cAAgB,CAAA,CAAC,EAE7E,OAAO,EAAU,cAAc,wBAAwB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAC/F,CAAC,CACH,CAAC"}
@@ -1,25 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { UIColor } from "../lib/color.js";
3
- import { LabelProps } from "./label.js";
4
- import { RadioGroup as RadioGroup$1 } from "radix-ui";
5
- import { VariantProps } from "class-variance-authority";
6
- import * as React from "react";
7
- import { ReactNode } from "react";
8
- //#region src/components/radio-group.d.ts
9
- type RadioGroupProps = React.ComponentProps<typeof RadioGroup$1.Root> & {
10
- color?: UIColor;
11
- };
12
- declare const radioGroupItemVariants: (props?: ({
13
- color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
14
- size?: "lg" | "md" | "sm" | null | undefined;
15
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
- type RadioGroupItemProps = React.ComponentProps<typeof RadioGroup$1.Item> & VariantProps<typeof radioGroupItemVariants> & {
17
- color?: UIColor;
18
- label?: ReactNode;
19
- labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>;
20
- };
21
- declare function RadioGroup({ className, color, ...props }: RadioGroupProps): React.JSX.Element;
22
- declare function RadioGroupItem({ className, color, id, label, labelProps, size, ...props }: RadioGroupItemProps): React.JSX.Element;
23
- //#endregion
24
- export { RadioGroup, RadioGroupItem, RadioGroupItemProps, RadioGroupProps };
25
- //# sourceMappingURL=radio-group.d.ts.map
1
+ import { i as RadioGroupProps, n as RadioGroupItem, r as RadioGroupItemProps, t as RadioGroup } from "../radio-group-BNbepK_U.js";
2
+ export { RadioGroup, RadioGroupItem, RadioGroupItemProps, RadioGroupProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{selectionControlColorVariants as t}from"../lib/color.js";import{Label as n}from"./label.js";import{useFieldControlId as r}from"./field.js";import{RadioGroup as i}from"radix-ui";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{cva as s}from"class-variance-authority";import{useId as c}from"react";const l=s([`group/radio-group-item peer relative flex aspect-square shrink-0 rounded-full border border-input outline-none`,`after:absolute after:-inset-x-3 after:-inset-y-2`,`focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50`,`disabled:cursor-not-allowed disabled:opacity-50`,`aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20`,`aria-invalid:aria-checked:border-(--selection-control) dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,`dark:data-unchecked:bg-input/30`,`data-checked:border-(--selection-control) data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground)`],{variants:{color:t,size:{sm:`size-4`,md:`size-4.5`,lg:`size-5.5`}},defaultVariants:{size:`md`}}),u=s(`flex items-center justify-center`,{variants:{size:{sm:`size-4`,md:`size-4.5`,lg:`size-5.5`}},defaultVariants:{size:`md`}}),d=s(`absolute top-1/2 left-1/2 rounded-full bg-primary-foreground`,{variants:{size:{sm:`size-1.5`,md:`size-2`,lg:`size-2.5`}},defaultVariants:{size:`md`}}),f=s(``,{variants:{size:{sm:`text-xs`,md:`text-sm`,lg:`text-xl`}},defaultVariants:{size:`md`}});function RadioGroup({className:n,color:r=`primary`,...o}){return a(i.Root,{"data-slot":`radio-group`,"data-color":r,className:e(`grid w-full gap-2`,t[r],n),...o})}function RadioGroupItem({className:t,color:s,id:p,label:m,labelProps:h,size:g=`md`,..._}){let v=c(),y=r(p),b=m!==void 0,x=y??(b?v:void 0),{className:S,...C}=h??{},w=a(i.Item,{"data-slot":`radio-group-item`,"data-color":s,"data-size":g,id:x,className:e(l({color:s,size:g}),t),..._,children:a(i.Indicator,{"data-slot":`radio-group-indicator`,className:e(u({size:g})),children:a(`span`,{className:e(d({size:g}),`-translate-x-1/2 -translate-y-1/2`)})})});return b?o(`div`,{"data-slot":`radio-group-item-field`,className:`flex items-center gap-2`,children:[w,a(n,{...C,htmlFor:x,className:e(f({size:g}),S),children:m})]}):w}export{RadioGroup,RadioGroupItem};
2
- //# sourceMappingURL=radio-group.js.map
1
+ import{n as e,t}from"../radio-group-DM8n0XPS.js";export{t as RadioGroup,e as RadioGroupItem};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,t}from"../radio-group-DM8n0XPS.js";import{a as n,n as r,r as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";describe(`RadioGroup`,()=>{it(`renders the root with the default color and grid layout classes`,()=>{let{container:n}=i(a(t,{children:a(e,{value:`a`,label:`Option A`})})),r=n.querySelector(`[data-slot="radio-group"]`);expect(r).not.toBeNull(),expect(r?.getAttribute(`data-color`)).toBe(`primary`),expect(r?.className).toContain(`grid`)}),it(`applies a custom color to the root`,()=>{let{container:n}=i(a(t,{color:`red`,children:a(e,{value:`a`,label:`Option A`})})),r=n.querySelector(`[data-slot="radio-group"]`);expect(r?.getAttribute(`data-color`)).toBe(`red`),expect(r?.className).toContain(`[--selection-control:var(--red)]`)}),it(`applies its own independent color prop to an item`,()=>{let{container:n}=i(a(t,{children:a(e,{value:`a`,label:`Option A`,color:`red`})})),r=n.querySelector(`[data-slot="radio-group-item"]`);expect(r?.getAttribute(`data-color`)).toBe(`red`),expect(r?.className).toContain(`[--selection-control:var(--red)]`)}),it(`renders a label associated with the item and generates an id when none is provided`,()=>{i(a(t,{children:a(e,{value:`a`,label:`Option A`})}));let r=n.getByLabelText(`Option A`);expect(r.getAttribute(`id`)).toBeTruthy(),expect(n.getByText(`Option A`).getAttribute(`for`)).toBe(r.getAttribute(`id`))}),it(`does not wrap the item in a label field when no label is provided`,()=>{let{container:n}=i(a(t,{children:a(e,{value:`a`})}));expect(n.querySelector(`[data-slot="radio-group-item-field"]`)).toBeNull(),expect(n.querySelector(`[data-slot="radio-group-item"]`)?.getAttribute(`id`)).toBeNull()}),it(`respects an explicit id over the generated one`,()=>{i(a(t,{children:a(e,{value:`a`,label:`Option A`,id:`custom-id`})})),expect(n.getByLabelText(`Option A`).getAttribute(`id`)).toBe(`custom-id`)}),it(`applies the requested size to the item, indicator and label`,()=>{let{container:r}=i(a(t,{children:a(e,{value:`a`,label:`Option A`,size:`lg`})})),o=r.querySelector(`[data-slot="radio-group-item"]`),s=n.getByText(`Option A`);expect(o?.getAttribute(`data-size`)).toBe(`lg`),expect(o?.className).toContain(`size-5.5`),expect(s.className).toContain(`text-xl`)}),it(`selects an item when clicked and calls onValueChange, keeping the group single-select`,()=>{let s=vi.fn();i(o(t,{onValueChange:s,children:[a(e,{value:`a`,label:`Option A`}),a(e,{value:`b`,label:`Option B`})]}));let c=n.getByLabelText(`Option A`),l=n.getByLabelText(`Option B`);r.click(c),expect(s).toHaveBeenCalledWith(`a`),expect(c.getAttribute(`data-state`)).toBe(`checked`),expect(l.getAttribute(`data-state`)).toBe(`unchecked`),r.click(l),expect(s).toHaveBeenCalledWith(`b`),expect(l.getAttribute(`data-state`)).toBe(`checked`),expect(c.getAttribute(`data-state`)).toBe(`unchecked`)}),it(`renders as a controlled group reflecting the given value`,()=>{i(o(t,{value:`b`,children:[a(e,{value:`a`,label:`Option A`}),a(e,{value:`b`,label:`Option B`})]})),expect(n.getByLabelText(`Option A`).getAttribute(`data-state`)).toBe(`unchecked`),expect(n.getByLabelText(`Option B`).getAttribute(`data-state`)).toBe(`checked`)}),it(`marks a disabled item as disabled and prevents selection`,()=>{let o=vi.fn();i(a(t,{onValueChange:o,children:a(e,{value:`a`,label:`Option A`,disabled:!0})}));let s=n.getByLabelText(`Option A`);expect(s.disabled).toBe(!0),r.click(s),expect(o).not.toHaveBeenCalled()})});
2
+ //# sourceMappingURL=radio-group.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.spec.js","names":[],"sources":["../../src/components/radio-group.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { RadioGroup, RadioGroupItem } from './radio-group'\n\ndescribe('RadioGroup', () => {\n it('renders the root with the default color and grid layout classes', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const root = container.querySelector('[data-slot=\"radio-group\"]')\n\n expect(root).not.toBeNull()\n expect(root?.getAttribute('data-color')).toBe('primary')\n expect(root?.className).toContain('grid')\n })\n\n it('applies a custom color to the root', () => {\n const { container } = render(\n <RadioGroup color=\"red\">\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const root = container.querySelector('[data-slot=\"radio-group\"]')\n\n expect(root?.getAttribute('data-color')).toBe('red')\n expect(root?.className).toContain('[--selection-control:var(--red)]')\n })\n\n it('applies its own independent color prop to an item', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" color=\"red\" />\n </RadioGroup>\n )\n\n const item = container.querySelector('[data-slot=\"radio-group-item\"]')\n\n expect(item?.getAttribute('data-color')).toBe('red')\n expect(item?.className).toContain('[--selection-control:var(--red)]')\n })\n\n it('renders a label associated with the item and generates an id when none is provided', () => {\n render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const radio = screen.getByLabelText('Option A')\n\n expect(radio.getAttribute('id')).toBeTruthy()\n expect(screen.getByText('Option A').getAttribute('for')).toBe(radio.getAttribute('id'))\n })\n\n it('does not wrap the item in a label field when no label is provided', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" />\n </RadioGroup>\n )\n\n expect(container.querySelector('[data-slot=\"radio-group-item-field\"]')).toBeNull()\n expect(container.querySelector('[data-slot=\"radio-group-item\"]')?.getAttribute('id')).toBeNull()\n })\n\n it('respects an explicit id over the generated one', () => {\n render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" id=\"custom-id\" />\n </RadioGroup>\n )\n\n expect(screen.getByLabelText('Option A').getAttribute('id')).toBe('custom-id')\n })\n\n it('applies the requested size to the item, indicator and label', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" size=\"lg\" />\n </RadioGroup>\n )\n\n const item = container.querySelector('[data-slot=\"radio-group-item\"]')\n const label = screen.getByText('Option A')\n\n expect(item?.getAttribute('data-size')).toBe('lg')\n expect(item?.className).toContain('size-5.5')\n expect(label.className).toContain('text-xl')\n })\n\n it('selects an item when clicked and calls onValueChange, keeping the group single-select', () => {\n const onValueChange = vi.fn()\n\n render(\n <RadioGroup onValueChange={onValueChange}>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n <RadioGroupItem value=\"b\" label=\"Option B\" />\n </RadioGroup>\n )\n\n const optionA = screen.getByLabelText('Option A')\n const optionB = screen.getByLabelText('Option B')\n\n fireEvent.click(optionA)\n\n expect(onValueChange).toHaveBeenCalledWith('a')\n expect(optionA.getAttribute('data-state')).toBe('checked')\n expect(optionB.getAttribute('data-state')).toBe('unchecked')\n\n fireEvent.click(optionB)\n\n expect(onValueChange).toHaveBeenCalledWith('b')\n expect(optionB.getAttribute('data-state')).toBe('checked')\n expect(optionA.getAttribute('data-state')).toBe('unchecked')\n })\n\n it('renders as a controlled group reflecting the given value', () => {\n render(\n <RadioGroup value=\"b\">\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n <RadioGroupItem value=\"b\" label=\"Option B\" />\n </RadioGroup>\n )\n\n expect(screen.getByLabelText('Option A').getAttribute('data-state')).toBe('unchecked')\n expect(screen.getByLabelText('Option B').getAttribute('data-state')).toBe('checked')\n })\n\n it('marks a disabled item as disabled and prevents selection', () => {\n const onValueChange = vi.fn()\n\n render(\n <RadioGroup onValueChange={onValueChange}>\n <RadioGroupItem value=\"a\" label=\"Option A\" disabled />\n </RadioGroup>\n )\n\n const optionA = screen.getByLabelText('Option A') as HTMLButtonElement\n\n expect(optionA.disabled).toBe(true)\n\n fireEvent.click(optionA)\n\n expect(onValueChange).not.toHaveBeenCalled()\n })\n})\n"],"mappings":"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"}
@@ -1,14 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as ResizablePrimitive from "react-resizable-panels";
3
- //#region src/components/resizable.d.ts
4
- type ResizablePanelGroupProps = ResizablePrimitive.GroupProps;
5
- type ResizablePanelProps = ResizablePrimitive.PanelProps;
6
- type ResizableHandleProps = ResizablePrimitive.SeparatorProps & {
7
- withHandle?: boolean;
8
- };
9
- declare function ResizablePanelGroup({ className, ...props }: ResizablePanelGroupProps): import("react").JSX.Element;
10
- declare function ResizablePanel({ ...props }: ResizablePanelProps): import("react").JSX.Element;
11
- declare function ResizableHandle({ withHandle, className, ...props }: ResizableHandleProps): import("react").JSX.Element;
12
- //#endregion
13
- export { ResizableHandle, ResizableHandleProps, ResizablePanel, ResizablePanelGroup, ResizablePanelGroupProps, ResizablePanelProps };
14
- //# sourceMappingURL=resizable.d.ts.map
1
+ import { a as ResizablePanelGroupProps, i as ResizablePanelGroup, n as ResizableHandleProps, o as ResizablePanelProps, r as ResizablePanel, t as ResizableHandle } from "../resizable-DMQG3xF_.js";
2
+ export { ResizableHandle, ResizableHandleProps, ResizablePanel, ResizablePanelGroup, ResizablePanelGroupProps, ResizablePanelProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import*as n from"react-resizable-panels";function ResizablePanelGroup({className:r,...i}){return t(n.Group,{"data-slot":`resizable-panel-group`,className:e(`flex h-full w-full aria-[orientation=vertical]:flex-col`,r),...i})}function ResizablePanel({...e}){return t(n.Panel,{"data-slot":`resizable-panel`,...e})}function ResizableHandle({withHandle:r,className:i,...a}){return t(n.Separator,{"data-slot":`resizable-handle`,className:e(`relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90`,i),...a,children:r&&t(`div`,{className:`z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border`})})}export{ResizableHandle,ResizablePanel,ResizablePanelGroup};
2
- //# sourceMappingURL=resizable.js.map
1
+ import{n as e,r as t,t as n}from"../resizable-Dbg7r7nF.js";export{n as ResizableHandle,e as ResizablePanel,t as ResizablePanelGroup};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,r as t,t as n}from"../resizable-Dbg7r7nF.js";import{a as r,r as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";var ResizeObserverStub=class{observe(){}unobserve(){}disconnect(){}};beforeAll(()=>{window.ResizeObserver=ResizeObserverStub}),describe(`ResizablePanelGroup`,()=>{it(`renders the group with its data-slot and layout classes`,()=>{let{container:r}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),s=r.querySelector(`[data-slot="resizable-panel-group"]`);expect(s).not.toBeNull(),expect(s?.className).toContain(`flex`),expect(s?.className).toContain(`h-full`),expect(s?.className).toContain(`w-full`)}),it(`renders each panel with its own data-slot and content`,()=>{let{container:s}=i(o(t,{children:[a(e,{children:`Left panel`}),a(n,{}),a(e,{children:`Right panel`})]})),c=s.querySelectorAll(`[data-slot="resizable-panel"]`);expect(c).toHaveLength(2),expect(r.getByText(`Left panel`)).not.toBeNull(),expect(r.getByText(`Right panel`)).not.toBeNull()}),it(`lays out panels in a row by default`,()=>{let{container:r}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),s=r.querySelector(`[data-slot="resizable-panel-group"]`);expect(s.style.flexDirection).toBe(`row`)}),it(`switches to a column layout and flips the handle orientation when vertical`,()=>{let{container:s}=i(o(t,{orientation:`vertical`,children:[a(e,{children:`Top`}),a(n,{}),a(e,{children:`Bottom`})]})),c=s.querySelector(`[data-slot="resizable-panel-group"]`),l=r.getByRole(`separator`);expect(c.style.flexDirection).toBe(`column`),expect(l.getAttribute(`aria-orientation`)).toBe(`horizontal`)})}),describe(`ResizableHandle`,()=>{it(`renders as a separator with its data-slot`,()=>{let{container:s}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),c=r.getByRole(`separator`);expect(c.getAttribute(`data-slot`)).toBe(`resizable-handle`),expect(s.querySelector(`[data-slot="resizable-handle"]`)).toBe(c)}),it(`does not render a visible grip by default`,()=>{i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),expect(r.getByRole(`separator`).querySelector(`div`)).toBeNull()}),it(`renders a visible grip element when withHandle is set`,()=>{i(o(t,{children:[a(e,{children:`Left`}),a(n,{withHandle:!0}),a(e,{children:`Right`})]}));let s=r.getByRole(`separator`).querySelector(`div`);expect(s).not.toBeNull(),expect(s?.className).toContain(`rounded-lg`)})});
2
+ //# sourceMappingURL=resizable.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.spec.js","names":[],"sources":["../../src/components/resizable.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './resizable'\n\nclass ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nbeforeAll(() => {\n window.ResizeObserver = ResizeObserverStub as unknown as typeof ResizeObserver\n})\n\ndescribe('ResizablePanelGroup', () => {\n it('renders the group with its data-slot and layout classes', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]')\n\n expect(group).not.toBeNull()\n expect(group?.className).toContain('flex')\n expect(group?.className).toContain('h-full')\n expect(group?.className).toContain('w-full')\n })\n\n it('renders each panel with its own data-slot and content', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left panel</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right panel</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const panels = container.querySelectorAll('[data-slot=\"resizable-panel\"]')\n\n expect(panels).toHaveLength(2)\n expect(screen.getByText('Left panel')).not.toBeNull()\n expect(screen.getByText('Right panel')).not.toBeNull()\n })\n\n it('lays out panels in a row by default', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]') as HTMLElement\n\n expect(group.style.flexDirection).toBe('row')\n })\n\n it('switches to a column layout and flips the handle orientation when vertical', () => {\n const { container } = render(\n <ResizablePanelGroup orientation=\"vertical\">\n <ResizablePanel>Top</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Bottom</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]') as HTMLElement\n const handle = screen.getByRole('separator')\n\n expect(group.style.flexDirection).toBe('column')\n expect(handle.getAttribute('aria-orientation')).toBe('horizontal')\n })\n})\n\ndescribe('ResizableHandle', () => {\n it('renders as a separator with its data-slot', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const handle = screen.getByRole('separator')\n\n expect(handle.getAttribute('data-slot')).toBe('resizable-handle')\n expect(container.querySelector('[data-slot=\"resizable-handle\"]')).toBe(handle)\n })\n\n it('does not render a visible grip by default', () => {\n render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n expect(screen.getByRole('separator').querySelector('div')).toBeNull()\n })\n\n it('renders a visible grip element when withHandle is set', () => {\n render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const grip = screen.getByRole('separator').querySelector('div')\n\n expect(grip).not.toBeNull()\n expect(grip?.className).toContain('rounded-lg')\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 { VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
- //#region src/components/ring-progress.d.ts
5
- declare const ringProgressVariants: (props?: ({
6
- size?: "lg" | "md" | "sm" | null | undefined;
7
- color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
8
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
- type RingProgressThickness = 'thin' | 'md' | 'thick';
10
- type RingProgressProps = React.ComponentProps<'svg'> & VariantProps<typeof ringProgressVariants> & {
11
- value?: number;
12
- thickness?: RingProgressThickness;
13
- };
14
- declare function RingProgress({ className, value, size, color, thickness, ...props }: RingProgressProps): React.JSX.Element;
15
- //#endregion
16
- export { RingProgress, RingProgressProps, RingProgressThickness, ringProgressVariants };
17
- //# sourceMappingURL=ring-progress.d.ts.map
1
+ import { i as ringProgressVariants, n as RingProgressProps, r as RingProgressThickness, t as RingProgress } from "../ring-progress-65ccdTQQ.js";
2
+ export { RingProgress, RingProgressProps, RingProgressThickness, ringProgressVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{progressColorVariants as t}from"../lib/progress.js";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";const a=i(`shrink-0`,{variants:{size:{sm:`size-8`,md:`size-10`,lg:`size-12`},color:t},defaultVariants:{size:`md`,color:`primary`}}),o={thin:8,md:12,thick:16};function RingProgress({className:t,value:i=0,size:s=`md`,color:c=`primary`,thickness:l=`md`,...u}){let d=o[l],f=(100-d)/2,p=2*Math.PI*f,m=Math.min(100,Math.max(0,i)),h=p*(1-m/100);return r(`svg`,{"data-slot":`ring-progress`,"data-size":s,"data-color":c,"data-thickness":l,role:`progressbar`,"aria-valuenow":m,"aria-valuemin":0,"aria-valuemax":100,viewBox:`0 0 100 100`,className:e(a({size:s,color:c}),t),...u,children:[n(`circle`,{cx:`50`,cy:`50`,r:f,fill:`none`,strokeWidth:d,className:`stroke-muted`}),n(`circle`,{cx:`50`,cy:`50`,r:f,fill:`none`,strokeWidth:d,strokeLinecap:`round`,strokeDasharray:p,strokeDashoffset:h,transform:`rotate(-90 50 50)`,className:`stroke-(--progress-color) transition-all`})]})}export{RingProgress,a as ringProgressVariants};
2
- //# sourceMappingURL=ring-progress.js.map
1
+ import{n as e,t}from"../ring-progress-Bfqq_HHA.js";export{t as RingProgress,e as ringProgressVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../ring-progress-Bfqq_HHA.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`RingProgress`,()=>{it(`renders an svg with the ring-progress data-slot and default size, color, and thickness`,()=>{let{container:r}=t(n(e,{value:40})),i=r.querySelector(`[data-slot="ring-progress"]`);expect(i?.tagName).toBe(`svg`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`data-color`)).toBe(`primary`),expect(i?.getAttribute(`data-thickness`)).toBe(`md`),expect(i?.getAttribute(`role`)).toBe(`progressbar`),expect(i?.getAttribute(`aria-valuenow`)).toBe(`40`)}),it(`clamps out-of-range values and defaults to 0 when omitted`,()=>{let{container:r}=t(n(e,{value:-20})),{container:i}=t(n(e,{value:150})),{container:a}=t(n(e,{}));expect(r.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`0`),expect(i.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`100`),expect(a.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`0`)}),it(`adjusts the stroke width of both circles based on the thickness variant`,()=>{let{container:r}=t(n(e,{value:50,thickness:`thick`})),i=r.querySelectorAll(`circle`);expect(i).toHaveLength(2),expect(i[0]?.getAttribute(`stroke-width`)).toBe(`16`),expect(i[1]?.getAttribute(`stroke-width`)).toBe(`16`)}),it(`applies the size and color variant classes alongside a custom className`,()=>{let{container:r}=t(n(e,{value:50,size:`lg`,color:`green`,className:`custom-class`})),i=r.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`class`);expect(i).toContain(`size-12`),expect(i).toContain(`custom-class`)}),it(`forwards a ref to the underlying svg element`,()=>{let r={current:null};t(n(e,{ref:r,value:20})),expect(r.current).toBeInstanceOf(SVGSVGElement)})});
2
+ //# sourceMappingURL=ring-progress.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ring-progress.spec.js","names":[],"sources":["../../src/components/ring-progress.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { RingProgress } from './ring-progress'\n\ndescribe('RingProgress', () => {\n it('renders an svg with the ring-progress data-slot and default size, color, and thickness', () => {\n const { container } = render(<RingProgress value={40} />)\n\n const svg = container.querySelector('[data-slot=\"ring-progress\"]')\n\n expect(svg?.tagName).toBe('svg')\n expect(svg?.getAttribute('data-size')).toBe('md')\n expect(svg?.getAttribute('data-color')).toBe('primary')\n expect(svg?.getAttribute('data-thickness')).toBe('md')\n expect(svg?.getAttribute('role')).toBe('progressbar')\n expect(svg?.getAttribute('aria-valuenow')).toBe('40')\n })\n\n it('clamps out-of-range values and defaults to 0 when omitted', () => {\n const { container: low } = render(<RingProgress value={-20} />)\n const { container: high } = render(<RingProgress value={150} />)\n const { container: none } = render(<RingProgress />)\n\n expect(low.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('0')\n expect(high.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('100')\n expect(none.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('0')\n })\n\n it('adjusts the stroke width of both circles based on the thickness variant', () => {\n const { container } = render(<RingProgress value={50} thickness=\"thick\" />)\n\n const circles = container.querySelectorAll('circle')\n\n expect(circles).toHaveLength(2)\n expect(circles[0]?.getAttribute('stroke-width')).toBe('16')\n expect(circles[1]?.getAttribute('stroke-width')).toBe('16')\n })\n\n it('applies the size and color variant classes alongside a custom className', () => {\n const { container } = render(<RingProgress value={50} size=\"lg\" color=\"green\" className=\"custom-class\" />)\n\n const classes = container.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('class')\n\n expect(classes).toContain('size-12')\n expect(classes).toContain('custom-class')\n })\n\n it('forwards a ref to the underlying svg element', () => {\n const ref = { current: null as SVGSVGElement | null }\n\n render(<RingProgress ref={ref} value={20} />)\n\n expect(ref.current).toBeInstanceOf(SVGSVGElement)\n })\n})\n"],"mappings":"8KAIA,SAAS,mBAAsB,CAC7B,GAAG,6FAAgG,CACjG,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,EAAK,CAAA,CAAC,EAElD,EAAM,EAAU,cAAc,6BAA6B,EAEjE,OAAO,GAAK,OAAO,CAAC,CAAC,KAAK,KAAK,EAC/B,OAAO,GAAK,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAChD,OAAO,GAAK,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EACtD,OAAO,GAAK,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAK,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,aAAa,EACpD,OAAO,GAAK,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CACtD,CAAC,EAED,GAAG,gEAAmE,CACpE,GAAM,CAAE,UAAW,GAAQ,EAAO,EAAC,EAAD,CAAc,MAAO,GAAM,CAAA,CAAC,EACxD,CAAE,UAAW,GAAS,EAAO,EAAC,EAAD,CAAc,MAAO,GAAM,CAAA,CAAC,EACzD,CAAE,UAAW,GAAS,EAAO,EAAC,EAAD,CAAe,CAAA,CAAC,EAEnD,OAAO,EAAI,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,EAChG,OAAO,EAAK,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,EACnG,OAAO,EAAK,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,CACnG,CAAC,EAED,GAAG,8EAAiF,CAClF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,GAAI,UAAU,OAAS,CAAA,CAAC,EAEpE,EAAU,EAAU,iBAAiB,QAAQ,EAEnD,OAAO,CAAO,CAAC,CAAC,aAAa,CAAC,EAC9B,OAAO,EAAQ,EAAE,EAAE,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,EAC1D,OAAO,EAAQ,EAAE,EAAE,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAC5D,CAAC,EAED,GAAG,8EAAiF,CAClF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,GAAI,KAAK,KAAK,MAAM,QAAQ,UAAU,cAAgB,CAAA,CAAC,EAEnG,EAAU,EAAU,cAAc,6BAA6B,CAAC,EAAE,aAAa,OAAO,EAE5F,OAAO,CAAO,CAAC,CAAC,UAAU,SAAS,EACnC,OAAO,CAAO,CAAC,CAAC,UAAU,cAAc,CAC1C,CAAC,EAED,GAAG,mDAAsD,CACvD,IAAM,EAAM,CAAE,QAAS,IAA6B,EAEpD,EAAO,EAAC,EAAD,CAAmB,MAAK,MAAO,EAAK,CAAA,CAAC,EAE5C,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,aAAa,CAClD,CAAC,CACH,CAAC"}
@@ -1,11 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { ScrollArea as ScrollArea$1 } from "radix-ui";
3
- import * as React from "react";
4
- //#region src/components/scroll-area.d.ts
5
- type ScrollAreaProps = React.ComponentProps<typeof ScrollArea$1.Root>;
6
- type ScrollBarProps = React.ComponentProps<typeof ScrollArea$1.ScrollAreaScrollbar>;
7
- declare function ScrollArea({ className, children, ...props }: ScrollAreaProps): React.JSX.Element;
8
- declare function ScrollBar({ className, orientation, ...props }: ScrollBarProps): React.JSX.Element;
9
- //#endregion
10
- export { ScrollArea, ScrollAreaProps, ScrollBar, ScrollBarProps };
11
- //# sourceMappingURL=scroll-area.d.ts.map
1
+ import { i as ScrollBarProps, n as ScrollAreaProps, r as ScrollBar, t as ScrollArea } from "../scroll-area-DFcj5q66.js";
2
+ export { ScrollArea, ScrollAreaProps, ScrollBar, ScrollBarProps };