@uselets/ui 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (845) hide show
  1. package/README.md +2 -1
  2. package/dist/accordion-BCo2odjy.js +2 -0
  3. package/dist/accordion-BCo2odjy.js.map +1 -0
  4. package/dist/accordion-DtSr3uiA.d.ts +15 -0
  5. package/dist/alert-CJRgRQVF.js +2 -0
  6. package/dist/alert-CJRgRQVF.js.map +1 -0
  7. package/dist/alert-dialog-B_nAiD4Y.js +2 -0
  8. package/dist/alert-dialog-B_nAiD4Y.js.map +1 -0
  9. package/dist/alert-dialog-Bf41-OnT.d.ts +34 -0
  10. package/dist/alert-eivgSC_S.d.ts +18 -0
  11. package/dist/anchor-DCOyn0Xa.d.ts +15 -0
  12. package/dist/anchor-srhmShjN.js +2 -0
  13. package/dist/anchor-srhmShjN.js.map +1 -0
  14. package/dist/area-chart-DdDy8Vm3.js +2 -0
  15. package/dist/area-chart-DdDy8Vm3.js.map +1 -0
  16. package/dist/area-chart-F_4ZL20j.d.ts +40 -0
  17. package/dist/avatar-2ZS3Tx76.d.ts +21 -0
  18. package/dist/avatar-CFUwrOwG.js +2 -0
  19. package/dist/avatar-CFUwrOwG.js.map +1 -0
  20. package/dist/badge-BqpQcDFd.d.ts +16 -0
  21. package/dist/badge-Cuq_DqRS.js +2 -0
  22. package/dist/badge-Cuq_DqRS.js.map +1 -0
  23. package/dist/badge-DEgLmZYC.js +2 -0
  24. package/dist/badge-DEgLmZYC.js.map +1 -0
  25. package/dist/badge-gkezuSZY.d.ts +19 -0
  26. package/dist/bar-chart-DIgSnh_j.js +2 -0
  27. package/dist/bar-chart-DIgSnh_j.js.map +1 -0
  28. package/dist/bar-chart-DRrrfMQR.d.ts +42 -0
  29. package/dist/breadcrumb-CqNDAI8V.js +2 -0
  30. package/dist/breadcrumb-CqNDAI8V.js.map +1 -0
  31. package/dist/breadcrumb-DZFS9htN.d.ts +22 -0
  32. package/dist/button-BNGy28pv.d.ts +17 -0
  33. package/dist/button-CQbH5Glc.d.ts +19 -0
  34. package/dist/button-DGewx2nE.js +2 -0
  35. package/dist/button-DGewx2nE.js.map +1 -0
  36. package/dist/button-group-DRgqsyjS.d.ts +18 -0
  37. package/dist/button-group-WJ5LeouK.js +2 -0
  38. package/dist/button-group-WJ5LeouK.js.map +1 -0
  39. package/dist/button-oI3hbOgp.js +2 -0
  40. package/dist/button-oI3hbOgp.js.map +1 -0
  41. package/dist/calendar-C1GgjzIA.d.ts +17 -0
  42. package/dist/calendar-CW1kGXom.js +2 -0
  43. package/dist/calendar-CW1kGXom.js.map +1 -0
  44. package/dist/card-Bx6iiocl.js +2 -0
  45. package/dist/card-Bx6iiocl.js.map +1 -0
  46. package/dist/card-pWjtkTKw.d.ts +22 -0
  47. package/dist/carousel-C6e4eRJD.d.ts +43 -0
  48. package/dist/carousel-D0OTImO7.js +2 -0
  49. package/dist/carousel-D0OTImO7.js.map +1 -0
  50. package/dist/center-CFQDr205.d.ts +13 -0
  51. package/dist/center-Dl1rnq7S.js +2 -0
  52. package/dist/center-Dl1rnq7S.js.map +1 -0
  53. package/dist/chart-Ci4V8B8v.js +8 -0
  54. package/dist/chart-Ci4V8B8v.js.map +1 -0
  55. package/dist/checkbox-DPvW_m7k.js +2 -0
  56. package/dist/checkbox-DPvW_m7k.js.map +1 -0
  57. package/dist/checkbox-y0XBdH4a.d.ts +21 -0
  58. package/dist/code-A6JERAsm.js +2 -0
  59. package/dist/code-A6JERAsm.js.map +1 -0
  60. package/dist/code-Cqoacc61.d.ts +8 -0
  61. package/dist/collapsible-BH8BqfTd.js +2 -0
  62. package/dist/collapsible-BH8BqfTd.js.map +1 -0
  63. package/dist/collapsible-CLSCZ630.d.ts +12 -0
  64. package/dist/color-DJvQFSl5.d.ts +19 -0
  65. package/dist/color-Don4qaht.js +2 -0
  66. package/dist/color-Don4qaht.js.map +1 -0
  67. package/dist/combobox-DkCRXUxd.d.ts +51 -0
  68. package/dist/combobox-fNAIovsN.js +2 -0
  69. package/dist/combobox-fNAIovsN.js.map +1 -0
  70. package/dist/command-0wTb46Ym.js +2 -0
  71. package/dist/command-0wTb46Ym.js.map +1 -0
  72. package/dist/command-D4pNOx0J.d.ts +31 -0
  73. package/dist/components/accordion.d.ts +2 -15
  74. package/dist/components/accordion.js +1 -2
  75. package/dist/components/accordion.spec.d.ts +1 -0
  76. package/dist/components/accordion.spec.js +2 -0
  77. package/dist/components/accordion.spec.js.map +1 -0
  78. package/dist/components/alert-dialog.d.ts +2 -34
  79. package/dist/components/alert-dialog.js +1 -2
  80. package/dist/components/alert-dialog.spec.d.ts +1 -0
  81. package/dist/components/alert-dialog.spec.js +2 -0
  82. package/dist/components/alert-dialog.spec.js.map +1 -0
  83. package/dist/components/alert.d.ts +2 -18
  84. package/dist/components/alert.js +1 -2
  85. package/dist/components/alert.spec.d.ts +1 -0
  86. package/dist/components/alert.spec.js +2 -0
  87. package/dist/components/alert.spec.js.map +1 -0
  88. package/dist/components/anchor.d.ts +2 -15
  89. package/dist/components/anchor.js +1 -2
  90. package/dist/components/anchor.spec.d.ts +1 -0
  91. package/dist/components/anchor.spec.js +2 -0
  92. package/dist/components/anchor.spec.js.map +1 -0
  93. package/dist/components/area-chart.d.ts +2 -40
  94. package/dist/components/area-chart.js +1 -2
  95. package/dist/components/area-chart.spec.d.ts +1 -0
  96. package/dist/components/area-chart.spec.js +2 -0
  97. package/dist/components/area-chart.spec.js.map +1 -0
  98. package/dist/components/avatar.d.ts +2 -21
  99. package/dist/components/avatar.js +1 -2
  100. package/dist/components/avatar.spec.d.ts +1 -0
  101. package/dist/components/avatar.spec.js +2 -0
  102. package/dist/components/avatar.spec.js.map +1 -0
  103. package/dist/components/badge.d.ts +2 -16
  104. package/dist/components/badge.js +1 -2
  105. package/dist/components/badge.spec.d.ts +1 -0
  106. package/dist/components/badge.spec.js +2 -0
  107. package/dist/components/badge.spec.js.map +1 -0
  108. package/dist/components/bar-chart.d.ts +2 -42
  109. package/dist/components/bar-chart.js +1 -2
  110. package/dist/components/bar-chart.spec.d.ts +1 -0
  111. package/dist/components/bar-chart.spec.js +2 -0
  112. package/dist/components/bar-chart.spec.js.map +1 -0
  113. package/dist/components/breadcrumb.d.ts +2 -22
  114. package/dist/components/breadcrumb.js +1 -2
  115. package/dist/components/breadcrumb.spec.d.ts +1 -0
  116. package/dist/components/breadcrumb.spec.js +2 -0
  117. package/dist/components/breadcrumb.spec.js.map +1 -0
  118. package/dist/components/button-group.d.ts +2 -18
  119. package/dist/components/button-group.js +1 -2
  120. package/dist/components/button-group.spec.d.ts +1 -0
  121. package/dist/components/button-group.spec.js +2 -0
  122. package/dist/components/button-group.spec.js.map +1 -0
  123. package/dist/components/button.d.ts +2 -17
  124. package/dist/components/button.js +1 -2
  125. package/dist/components/button.spec.d.ts +1 -0
  126. package/dist/components/button.spec.js +2 -0
  127. package/dist/components/button.spec.js.map +1 -0
  128. package/dist/components/calendar.d.ts +2 -17
  129. package/dist/components/calendar.js +1 -2
  130. package/dist/components/calendar.spec.d.ts +1 -0
  131. package/dist/components/calendar.spec.js +2 -0
  132. package/dist/components/calendar.spec.js.map +1 -0
  133. package/dist/components/card.d.ts +2 -22
  134. package/dist/components/card.js +1 -2
  135. package/dist/components/card.spec.d.ts +1 -0
  136. package/dist/components/card.spec.js +2 -0
  137. package/dist/components/card.spec.js.map +1 -0
  138. package/dist/components/carousel.d.ts +2 -43
  139. package/dist/components/carousel.js +1 -2
  140. package/dist/components/carousel.spec.js +1 -93
  141. package/dist/components/carousel.spec.js.map +1 -1
  142. package/dist/components/center.d.ts +2 -13
  143. package/dist/components/center.js +1 -2
  144. package/dist/components/center.spec.d.ts +1 -0
  145. package/dist/components/center.spec.js +2 -0
  146. package/dist/components/center.spec.js.map +1 -0
  147. package/dist/components/chart.js +1 -8
  148. package/dist/components/chart.spec.d.ts +1 -0
  149. package/dist/components/chart.spec.js +2 -0
  150. package/dist/components/chart.spec.js.map +1 -0
  151. package/dist/components/checkbox.d.ts +2 -21
  152. package/dist/components/checkbox.js +1 -2
  153. package/dist/components/checkbox.spec.d.ts +1 -0
  154. package/dist/components/checkbox.spec.js +2 -0
  155. package/dist/components/checkbox.spec.js.map +1 -0
  156. package/dist/components/code.d.ts +2 -8
  157. package/dist/components/code.js +1 -2
  158. package/dist/components/code.spec.d.ts +1 -0
  159. package/dist/components/code.spec.js +2 -0
  160. package/dist/components/code.spec.js.map +1 -0
  161. package/dist/components/collapsible.d.ts +2 -12
  162. package/dist/components/collapsible.js +1 -2
  163. package/dist/components/collapsible.spec.d.ts +1 -0
  164. package/dist/components/collapsible.spec.js +2 -0
  165. package/dist/components/collapsible.spec.js.map +1 -0
  166. package/dist/components/combobox.d.ts +2 -51
  167. package/dist/components/combobox.js +1 -2
  168. package/dist/components/combobox.spec.d.ts +1 -0
  169. package/dist/components/combobox.spec.js +2 -0
  170. package/dist/components/combobox.spec.js.map +1 -0
  171. package/dist/components/command.d.ts +2 -31
  172. package/dist/components/command.js +1 -2
  173. package/dist/components/command.spec.d.ts +1 -0
  174. package/dist/components/command.spec.js +2 -0
  175. package/dist/components/command.spec.js.map +1 -0
  176. package/dist/components/container.d.ts +2 -12
  177. package/dist/components/container.js +1 -2
  178. package/dist/components/container.spec.d.ts +1 -0
  179. package/dist/components/container.spec.js +2 -0
  180. package/dist/components/container.spec.js.map +1 -0
  181. package/dist/components/data-table.d.ts +2 -111
  182. package/dist/components/data-table.js +1 -2
  183. package/dist/components/data-table.spec.d.ts +1 -0
  184. package/dist/components/data-table.spec.js +2 -0
  185. package/dist/components/data-table.spec.js.map +1 -0
  186. package/dist/components/date-range-picker.d.ts +3 -55
  187. package/dist/components/date-range-picker.js +1 -2
  188. package/dist/components/date-range-picker.spec.d.ts +1 -0
  189. package/dist/components/date-range-picker.spec.js +2 -0
  190. package/dist/components/date-range-picker.spec.js.map +1 -0
  191. package/dist/components/dialog.d.ts +2 -42
  192. package/dist/components/dialog.js +1 -2
  193. package/dist/components/dialog.spec.d.ts +1 -0
  194. package/dist/components/dialog.spec.js +2 -0
  195. package/dist/components/dialog.spec.js.map +1 -0
  196. package/dist/components/donut-chart.d.ts +2 -13
  197. package/dist/components/donut-chart.js +1 -2
  198. package/dist/components/donut-chart.spec.d.ts +1 -0
  199. package/dist/components/donut-chart.spec.js +2 -0
  200. package/dist/components/donut-chart.spec.js.map +1 -0
  201. package/dist/components/drawer.d.ts +2 -43
  202. package/dist/components/drawer.js +1 -2
  203. package/dist/components/drawer.spec.d.ts +1 -0
  204. package/dist/components/drawer.spec.js +2 -0
  205. package/dist/components/drawer.spec.js.map +1 -0
  206. package/dist/components/dropdown-menu.d.ts +2 -48
  207. package/dist/components/dropdown-menu.js +1 -2
  208. package/dist/components/dropdown-menu.spec.d.ts +1 -0
  209. package/dist/components/dropdown-menu.spec.js +2 -0
  210. package/dist/components/dropdown-menu.spec.js.map +1 -0
  211. package/dist/components/dropzone.d.ts +2 -102
  212. package/dist/components/dropzone.js +1 -2
  213. package/dist/components/dropzone.spec.d.ts +1 -0
  214. package/dist/components/dropzone.spec.js +2 -0
  215. package/dist/components/dropzone.spec.js.map +1 -0
  216. package/dist/components/empty.d.ts +2 -21
  217. package/dist/components/empty.js +1 -2
  218. package/dist/components/empty.spec.d.ts +1 -0
  219. package/dist/components/empty.spec.js +2 -0
  220. package/dist/components/empty.spec.js.map +1 -0
  221. package/dist/components/field.d.ts +2 -39
  222. package/dist/components/field.js +1 -2
  223. package/dist/components/field.spec.js +1 -1
  224. package/dist/components/field.spec.js.map +1 -1
  225. package/dist/components/flex.d.ts +2 -16
  226. package/dist/components/flex.js +1 -2
  227. package/dist/components/flex.spec.d.ts +1 -0
  228. package/dist/components/flex.spec.js +2 -0
  229. package/dist/components/flex.spec.js.map +1 -0
  230. package/dist/components/grid.d.ts +2 -20
  231. package/dist/components/grid.js +1 -2
  232. package/dist/components/grid.spec.d.ts +1 -0
  233. package/dist/components/grid.spec.js +2 -0
  234. package/dist/components/grid.spec.js.map +1 -0
  235. package/dist/components/group.d.ts +2 -15
  236. package/dist/components/group.js +1 -2
  237. package/dist/components/group.spec.d.ts +1 -0
  238. package/dist/components/group.spec.js +2 -0
  239. package/dist/components/group.spec.js.map +1 -0
  240. package/dist/components/heading.d.ts +2 -14
  241. package/dist/components/heading.js +1 -2
  242. package/dist/components/heading.spec.d.ts +1 -0
  243. package/dist/components/heading.spec.js +2 -0
  244. package/dist/components/heading.spec.js.map +1 -0
  245. package/dist/components/hover-card.d.ts +2 -13
  246. package/dist/components/hover-card.js +1 -2
  247. package/dist/components/hover-card.spec.d.ts +1 -0
  248. package/dist/components/hover-card.spec.js +2 -0
  249. package/dist/components/hover-card.spec.js.map +1 -0
  250. package/dist/components/input-group.d.ts +2 -26
  251. package/dist/components/input-group.js +1 -2
  252. package/dist/components/input-group.spec.d.ts +1 -0
  253. package/dist/components/input-group.spec.js +2 -0
  254. package/dist/components/input-group.spec.js.map +1 -0
  255. package/dist/components/input-otp.d.ts +2 -19
  256. package/dist/components/input-otp.js +1 -2
  257. package/dist/components/input-otp.spec.d.ts +1 -0
  258. package/dist/components/input-otp.spec.js +2 -0
  259. package/dist/components/input-otp.spec.js.map +1 -0
  260. package/dist/components/input.d.ts +2 -8
  261. package/dist/components/input.js +1 -2
  262. package/dist/components/input.spec.d.ts +1 -0
  263. package/dist/components/input.spec.js +2 -0
  264. package/dist/components/input.spec.js.map +1 -0
  265. package/dist/components/kbd.d.ts +2 -10
  266. package/dist/components/kbd.js +1 -2
  267. package/dist/components/kbd.spec.d.ts +1 -0
  268. package/dist/components/kbd.spec.js +2 -0
  269. package/dist/components/kbd.spec.js.map +1 -0
  270. package/dist/components/label.d.ts +2 -9
  271. package/dist/components/label.js +1 -2
  272. package/dist/components/label.spec.d.ts +1 -0
  273. package/dist/components/label.spec.js +2 -0
  274. package/dist/components/label.spec.js.map +1 -0
  275. package/dist/components/list.d.ts +2 -25
  276. package/dist/components/list.js +1 -2
  277. package/dist/components/list.spec.d.ts +1 -0
  278. package/dist/components/list.spec.js +2 -0
  279. package/dist/components/list.spec.js.map +1 -0
  280. package/dist/components/logo.d.ts +2 -0
  281. package/dist/components/logo.js +1 -0
  282. package/dist/components/logo.spec.d.ts +1 -0
  283. package/dist/components/logo.spec.js +2 -0
  284. package/dist/components/logo.spec.js.map +1 -0
  285. package/dist/components/marker.d.ts +2 -18
  286. package/dist/components/marker.js +1 -2
  287. package/dist/components/marker.spec.d.ts +1 -0
  288. package/dist/components/marker.spec.js +2 -0
  289. package/dist/components/marker.spec.js.map +1 -0
  290. package/dist/components/mask-input.d.ts +2 -16
  291. package/dist/components/mask-input.js +1 -2
  292. package/dist/components/mask-input.spec.d.ts +1 -0
  293. package/dist/components/mask-input.spec.js +2 -0
  294. package/dist/components/mask-input.spec.js.map +1 -0
  295. package/dist/components/native-select.d.ts +2 -14
  296. package/dist/components/native-select.js +1 -2
  297. package/dist/components/native-select.spec.d.ts +1 -0
  298. package/dist/components/native-select.spec.js +2 -0
  299. package/dist/components/native-select.spec.js.map +1 -0
  300. package/dist/components/navigation-menu.d.ts +2 -26
  301. package/dist/components/navigation-menu.js +1 -2
  302. package/dist/components/navigation-menu.spec.d.ts +1 -0
  303. package/dist/components/navigation-menu.spec.js +2 -0
  304. package/dist/components/navigation-menu.spec.js.map +1 -0
  305. package/dist/components/number-field.d.ts +2 -35
  306. package/dist/components/number-field.js +1 -2
  307. package/dist/components/number-field.spec.d.ts +1 -0
  308. package/dist/components/number-field.spec.js +2 -0
  309. package/dist/components/number-field.spec.js.map +1 -0
  310. package/dist/components/pagination.d.ts +2 -27
  311. package/dist/components/pagination.js +1 -2
  312. package/dist/components/pagination.spec.d.ts +1 -0
  313. package/dist/components/pagination.spec.js +2 -0
  314. package/dist/components/pagination.spec.js.map +1 -0
  315. package/dist/components/phone-input.d.ts +2 -13
  316. package/dist/components/phone-input.js +1 -2
  317. package/dist/components/phone-input.spec.d.ts +1 -0
  318. package/dist/components/phone-input.spec.js +2 -0
  319. package/dist/components/phone-input.spec.js.map +1 -0
  320. package/dist/components/pie-chart.d.ts +2 -42
  321. package/dist/components/pie-chart.js +1 -2
  322. package/dist/components/pie-chart.spec.d.ts +1 -0
  323. package/dist/components/pie-chart.spec.js +2 -0
  324. package/dist/components/pie-chart.spec.js.map +1 -0
  325. package/dist/components/popover.d.ts +2 -21
  326. package/dist/components/popover.js +1 -2
  327. package/dist/components/popover.spec.d.ts +1 -0
  328. package/dist/components/popover.spec.js +2 -0
  329. package/dist/components/popover.spec.js.map +1 -0
  330. package/dist/components/progress.d.ts +2 -14
  331. package/dist/components/progress.js +1 -2
  332. package/dist/components/progress.spec.d.ts +1 -0
  333. package/dist/components/progress.spec.js +2 -0
  334. package/dist/components/progress.spec.js.map +1 -0
  335. package/dist/components/radio-group.d.ts +2 -25
  336. package/dist/components/radio-group.js +1 -2
  337. package/dist/components/radio-group.spec.d.ts +1 -0
  338. package/dist/components/radio-group.spec.js +2 -0
  339. package/dist/components/radio-group.spec.js.map +1 -0
  340. package/dist/components/resizable.d.ts +2 -14
  341. package/dist/components/resizable.js +1 -2
  342. package/dist/components/resizable.spec.d.ts +1 -0
  343. package/dist/components/resizable.spec.js +2 -0
  344. package/dist/components/resizable.spec.js.map +1 -0
  345. package/dist/components/ring-progress.d.ts +2 -17
  346. package/dist/components/ring-progress.js +1 -2
  347. package/dist/components/ring-progress.spec.d.ts +1 -0
  348. package/dist/components/ring-progress.spec.js +2 -0
  349. package/dist/components/ring-progress.spec.js.map +1 -0
  350. package/dist/components/scroll-area.d.ts +2 -11
  351. package/dist/components/scroll-area.js +1 -2
  352. package/dist/components/scroll-area.spec.d.ts +1 -0
  353. package/dist/components/scroll-area.spec.js +2 -0
  354. package/dist/components/scroll-area.spec.js.map +1 -0
  355. package/dist/components/select.d.ts +2 -29
  356. package/dist/components/select.js +1 -2
  357. package/dist/components/select.spec.d.ts +1 -0
  358. package/dist/components/select.spec.js +2 -0
  359. package/dist/components/select.spec.js.map +1 -0
  360. package/dist/components/separator.d.ts +2 -9
  361. package/dist/components/separator.js +1 -2
  362. package/dist/components/separator.spec.d.ts +1 -0
  363. package/dist/components/separator.spec.js +2 -0
  364. package/dist/components/separator.spec.js.map +1 -0
  365. package/dist/components/sidebar.d.ts +2 -96
  366. package/dist/components/sidebar.js +1 -2
  367. package/dist/components/sidebar.spec.d.ts +1 -0
  368. package/dist/components/sidebar.spec.js +2 -0
  369. package/dist/components/sidebar.spec.js.map +1 -0
  370. package/dist/components/simple-grid.d.ts +2 -14
  371. package/dist/components/simple-grid.js +1 -2
  372. package/dist/components/simple-grid.spec.d.ts +1 -0
  373. package/dist/components/simple-grid.spec.js +2 -0
  374. package/dist/components/simple-grid.spec.js.map +1 -0
  375. package/dist/components/skeleton.d.ts +2 -10
  376. package/dist/components/skeleton.js +1 -2
  377. package/dist/components/skeleton.spec.js +1 -1
  378. package/dist/components/skeleton.spec.js.map +1 -1
  379. package/dist/components/slider.d.ts +2 -9
  380. package/dist/components/slider.js +1 -2
  381. package/dist/components/slider.spec.d.ts +1 -0
  382. package/dist/components/slider.spec.js +2 -0
  383. package/dist/components/slider.spec.js.map +1 -0
  384. package/dist/components/sonner.d.ts +2 -8
  385. package/dist/components/sonner.js +1 -2
  386. package/dist/components/sonner.spec.d.ts +1 -0
  387. package/dist/components/sonner.spec.js +2 -0
  388. package/dist/components/sonner.spec.js.map +1 -0
  389. package/dist/components/spinner.d.ts +2 -12
  390. package/dist/components/spinner.js +1 -2
  391. package/dist/components/spinner.spec.d.ts +1 -0
  392. package/dist/components/spinner.spec.js +2 -0
  393. package/dist/components/spinner.spec.js.map +1 -0
  394. package/dist/components/stack.d.ts +2 -14
  395. package/dist/components/stack.js +1 -2
  396. package/dist/components/stack.spec.d.ts +1 -0
  397. package/dist/components/stack.spec.js +2 -0
  398. package/dist/components/stack.spec.js.map +1 -0
  399. package/dist/components/stepper.d.ts +2 -71
  400. package/dist/components/stepper.js +1 -2
  401. package/dist/components/stepper.spec.d.ts +1 -0
  402. package/dist/components/stepper.spec.js +2 -0
  403. package/dist/components/stepper.spec.js.map +1 -0
  404. package/dist/components/switch.d.ts +2 -17
  405. package/dist/components/switch.js +1 -2
  406. package/dist/components/switch.spec.d.ts +1 -0
  407. package/dist/components/switch.spec.js +2 -0
  408. package/dist/components/switch.spec.js.map +1 -0
  409. package/dist/components/table.d.ts +2 -33
  410. package/dist/components/table.js +1 -2
  411. package/dist/components/table.spec.d.ts +1 -0
  412. package/dist/components/table.spec.js +2 -0
  413. package/dist/components/table.spec.js.map +1 -0
  414. package/dist/components/tabs.d.ts +2 -21
  415. package/dist/components/tabs.js +1 -2
  416. package/dist/components/tabs.spec.d.ts +1 -0
  417. package/dist/components/tabs.spec.js +2 -0
  418. package/dist/components/tabs.spec.js.map +1 -0
  419. package/dist/components/text.d.ts +2 -14
  420. package/dist/components/text.js +1 -2
  421. package/dist/components/text.spec.d.ts +1 -0
  422. package/dist/components/text.spec.js +2 -0
  423. package/dist/components/text.spec.js.map +1 -0
  424. package/dist/components/textarea.d.ts +2 -8
  425. package/dist/components/textarea.js +1 -2
  426. package/dist/components/textarea.spec.d.ts +1 -0
  427. package/dist/components/textarea.spec.js +2 -0
  428. package/dist/components/textarea.spec.js.map +1 -0
  429. package/dist/components/theme.d.ts +2 -22
  430. package/dist/components/theme.js +1 -2
  431. package/dist/components/theme.spec.d.ts +1 -0
  432. package/dist/components/theme.spec.js +2 -0
  433. package/dist/components/theme.spec.js.map +1 -0
  434. package/dist/components/timeline.d.ts +2 -61
  435. package/dist/components/timeline.js +1 -2
  436. package/dist/components/timeline.spec.d.ts +1 -0
  437. package/dist/components/timeline.spec.js +2 -0
  438. package/dist/components/timeline.spec.js.map +1 -0
  439. package/dist/components/toggle-group.d.ts +2 -16
  440. package/dist/components/toggle-group.js +1 -2
  441. package/dist/components/toggle-group.spec.d.ts +1 -0
  442. package/dist/components/toggle-group.spec.js +2 -0
  443. package/dist/components/toggle-group.spec.js.map +1 -0
  444. package/dist/components/toggle.d.ts +2 -15
  445. package/dist/components/toggle.js +1 -2
  446. package/dist/components/toggle.spec.d.ts +1 -0
  447. package/dist/components/toggle.spec.js +2 -0
  448. package/dist/components/toggle.spec.js.map +1 -0
  449. package/dist/components/tooltip.d.ts +2 -21
  450. package/dist/components/tooltip.js +1 -2
  451. package/dist/components/tooltip.spec.d.ts +1 -0
  452. package/dist/components/tooltip.spec.js +2 -0
  453. package/dist/components/tooltip.spec.js.map +1 -0
  454. package/dist/components/unstyled-button.d.ts +2 -10
  455. package/dist/components/unstyled-button.js +1 -2
  456. package/dist/components/unstyled-button.spec.d.ts +1 -0
  457. package/dist/components/unstyled-button.spec.js +2 -0
  458. package/dist/components/unstyled-button.spec.js.map +1 -0
  459. package/dist/components/visibility.d.ts +2 -17
  460. package/dist/components/visibility.js +1 -2
  461. package/dist/components/visibility.spec.d.ts +1 -0
  462. package/dist/components/visibility.spec.js +2 -0
  463. package/dist/components/visibility.spec.js.map +1 -0
  464. package/dist/compose-refs-DUtp7lGn.js +2 -0
  465. package/dist/compose-refs-DUtp7lGn.js.map +1 -0
  466. package/dist/compose-refs-GP3zdokU.d.ts +8 -0
  467. package/dist/container-B8-lt-oX.d.ts +12 -0
  468. package/dist/container-CikeKdez.js +2 -0
  469. package/dist/container-CikeKdez.js.map +1 -0
  470. package/dist/data-table-BT75MSO9.d.ts +111 -0
  471. package/dist/data-table-DcyKClKz.js +2 -0
  472. package/dist/data-table-DcyKClKz.js.map +1 -0
  473. package/dist/date-range-picker-BngvCWcR.d.ts +55 -0
  474. package/dist/date-range-picker-CJVpTZdT.js +2 -0
  475. package/dist/date-range-picker-CJVpTZdT.js.map +1 -0
  476. package/dist/dialog-B7I4Ky1i.js +2 -0
  477. package/dist/dialog-B7I4Ky1i.js.map +1 -0
  478. package/dist/dialog-Ej7pnact.d.ts +42 -0
  479. package/dist/donut-chart-BDJR8TXh.d.ts +13 -0
  480. package/dist/donut-chart-BHU4kDE6.js +2 -0
  481. package/dist/donut-chart-BHU4kDE6.js.map +1 -0
  482. package/dist/drawer-BO4mP6y1.js +2 -0
  483. package/dist/drawer-BO4mP6y1.js.map +1 -0
  484. package/dist/drawer-DUfJzrKE.d.ts +43 -0
  485. package/dist/dropdown-menu-CVDIf0Rd.d.ts +48 -0
  486. package/dist/dropdown-menu-zRuQQS5S.js +2 -0
  487. package/dist/dropdown-menu-zRuQQS5S.js.map +1 -0
  488. package/dist/dropzone-43h3L9Ko.d.ts +102 -0
  489. package/dist/dropzone-BLZkZThJ.js +2 -0
  490. package/dist/dropzone-BLZkZThJ.js.map +1 -0
  491. package/dist/empty-BhKsDYZ5.js +2 -0
  492. package/dist/empty-BhKsDYZ5.js.map +1 -0
  493. package/dist/empty-D8ZiTCVK.d.ts +21 -0
  494. package/dist/field-C209yHO9.d.ts +39 -0
  495. package/dist/field-DzR-XrO7.js +2 -0
  496. package/dist/field-DzR-XrO7.js.map +1 -0
  497. package/dist/flex-BC4Diiy4.js +2 -0
  498. package/dist/flex-BC4Diiy4.js.map +1 -0
  499. package/dist/flex-aJXipTAz.d.ts +16 -0
  500. package/dist/grid-B3He1bGe.js +2 -0
  501. package/dist/grid-B3He1bGe.js.map +1 -0
  502. package/dist/grid-D_aEANA7.d.ts +20 -0
  503. package/dist/group-B6n_lMc4.js +2 -0
  504. package/dist/group-B6n_lMc4.js.map +1 -0
  505. package/dist/group-DBtx8eSe.d.ts +15 -0
  506. package/dist/heading-BTXl4JfI.d.ts +14 -0
  507. package/dist/heading-DaxKLVRm.js +2 -0
  508. package/dist/heading-DaxKLVRm.js.map +1 -0
  509. package/dist/hooks/use-breakpoint-value.d.ts +2 -8
  510. package/dist/hooks/use-breakpoint-value.js +1 -2
  511. package/dist/hooks/use-breakpoint-value.spec.js +34 -1
  512. package/dist/hooks/use-breakpoint-value.spec.js.map +1 -1
  513. package/dist/hooks/use-breakpoint.d.ts +2 -8
  514. package/dist/hooks/use-breakpoint.js +1 -2
  515. package/dist/hooks/use-breakpoint.spec.js +1 -1
  516. package/dist/hooks/use-breakpoint.spec.js.map +1 -1
  517. package/dist/hooks/use-disclosure.d.ts +2 -22
  518. package/dist/hooks/use-disclosure.js +1 -2
  519. package/dist/hooks/use-disclosure.spec.js +1 -1
  520. package/dist/hooks/use-disclosure.spec.js.map +1 -1
  521. package/dist/hooks/use-document-visibility.d.ts +2 -6
  522. package/dist/hooks/use-document-visibility.js +1 -2
  523. package/dist/hooks/use-document-visibility.spec.js +1 -1
  524. package/dist/hooks/use-document-visibility.spec.js.map +1 -1
  525. package/dist/hooks/use-hotkeys.spec.js +1 -1
  526. package/dist/hooks/use-idle.d.ts +2 -13
  527. package/dist/hooks/use-idle.js +1 -2
  528. package/dist/hooks/use-idle.spec.js +1 -1
  529. package/dist/hooks/use-idle.spec.js.map +1 -1
  530. package/dist/hooks/use-interval.d.ts +2 -24
  531. package/dist/hooks/use-interval.js +1 -2
  532. package/dist/hooks/use-interval.spec.js +1 -1
  533. package/dist/hooks/use-local-storage.d.ts +2 -16
  534. package/dist/hooks/use-local-storage.js +1 -2
  535. package/dist/hooks/use-local-storage.spec.js +1 -1
  536. package/dist/hooks/use-local-storage.spec.js.map +1 -1
  537. package/dist/hooks/use-mask.d.ts +2 -8
  538. package/dist/hooks/use-mask.js +1 -2
  539. package/dist/hooks/use-mask.spec.d.ts +1 -0
  540. package/dist/hooks/use-mask.spec.js +2 -0
  541. package/dist/hooks/use-mask.spec.js.map +1 -0
  542. package/dist/hooks/use-mobile.d.ts +2 -6
  543. package/dist/hooks/use-mobile.js +1 -2
  544. package/dist/hooks/use-mobile.spec.js +1 -1
  545. package/dist/hover-card-C3yz2zQi.d.ts +13 -0
  546. package/dist/hover-card-Dc8yLsm-.js +2 -0
  547. package/dist/hover-card-Dc8yLsm-.js.map +1 -0
  548. package/dist/index.d.ts +94 -93
  549. package/dist/index.js +1 -1
  550. package/dist/input-CI3RPXz0.d.ts +8 -0
  551. package/dist/input-Cmjl8YdK.js +2 -0
  552. package/dist/input-Cmjl8YdK.js.map +1 -0
  553. package/dist/input-group-CBn36aMg.d.ts +26 -0
  554. package/dist/input-group-DsO2W3Lw.js +2 -0
  555. package/dist/input-group-DsO2W3Lw.js.map +1 -0
  556. package/dist/input-otp-CzfRHf2V.js +2 -0
  557. package/dist/input-otp-CzfRHf2V.js.map +1 -0
  558. package/dist/input-otp-gIEkdiIC.d.ts +19 -0
  559. package/dist/kbd-BTl3AgkY.js +2 -0
  560. package/dist/kbd-BTl3AgkY.js.map +1 -0
  561. package/dist/kbd-DELCQBD0.d.ts +10 -0
  562. package/dist/label-BQDEej_c.js +2 -0
  563. package/dist/label-BQDEej_c.js.map +1 -0
  564. package/dist/label-KZl6I5Ey.d.ts +9 -0
  565. package/dist/lib/badge.d.ts +2 -19
  566. package/dist/lib/badge.js +1 -2
  567. package/dist/lib/badge.spec.d.ts +1 -0
  568. package/dist/lib/badge.spec.js +2 -0
  569. package/dist/lib/badge.spec.js.map +1 -0
  570. package/dist/lib/button.d.ts +2 -19
  571. package/dist/lib/button.js +1 -2
  572. package/dist/lib/button.spec.d.ts +1 -0
  573. package/dist/lib/button.spec.js +2 -0
  574. package/dist/lib/button.spec.js.map +1 -0
  575. package/dist/lib/color.d.ts +2 -19
  576. package/dist/lib/color.js +1 -2
  577. package/dist/lib/color.spec.d.ts +1 -0
  578. package/dist/lib/color.spec.js +2 -0
  579. package/dist/lib/color.spec.js.map +1 -0
  580. package/dist/lib/compose-refs.d.ts +2 -8
  581. package/dist/lib/compose-refs.js +1 -2
  582. package/dist/lib/compose-refs.spec.d.ts +1 -0
  583. package/dist/lib/compose-refs.spec.js +2 -0
  584. package/dist/lib/compose-refs.spec.js.map +1 -0
  585. package/dist/lib/progress.d.ts +2 -19
  586. package/dist/lib/progress.js +1 -2
  587. package/dist/lib/progress.spec.d.ts +1 -0
  588. package/dist/lib/progress.spec.js +2 -0
  589. package/dist/lib/progress.spec.js.map +1 -0
  590. package/dist/lib/utils.d.ts +2 -8
  591. package/dist/lib/utils.js +1 -2
  592. package/dist/lib/utils.spec.d.ts +1 -0
  593. package/dist/lib/utils.spec.js +2 -0
  594. package/dist/lib/utils.spec.js.map +1 -0
  595. package/dist/list-BbCg-ndB.js +2 -0
  596. package/dist/list-BbCg-ndB.js.map +1 -0
  597. package/dist/list-DMa2j1rk.d.ts +25 -0
  598. package/dist/logo-B0v9bNJH.js +2 -0
  599. package/dist/logo-B0v9bNJH.js.map +1 -0
  600. package/dist/logo-Buo7sqqn.d.ts +69 -0
  601. package/dist/marker-4_EnMIHk.js +2 -0
  602. package/dist/marker-4_EnMIHk.js.map +1 -0
  603. package/dist/marker-C4wLa1c0.d.ts +18 -0
  604. package/dist/mask-input-B4R5K1h6.d.ts +16 -0
  605. package/dist/mask-input-ssK7U_Pl.js +2 -0
  606. package/dist/mask-input-ssK7U_Pl.js.map +1 -0
  607. package/dist/native-select-BVmdMkHY.d.ts +14 -0
  608. package/dist/native-select-DZW3Y7nq.js +2 -0
  609. package/dist/native-select-DZW3Y7nq.js.map +1 -0
  610. package/dist/navigation-menu-B6drNL1-.js +2 -0
  611. package/dist/navigation-menu-B6drNL1-.js.map +1 -0
  612. package/dist/navigation-menu-siQVRMUF.d.ts +26 -0
  613. package/dist/number-field-IdgO_BUa.d.ts +35 -0
  614. package/dist/number-field-rEMfZa6A.js +2 -0
  615. package/dist/number-field-rEMfZa6A.js.map +1 -0
  616. package/dist/pagination-BZ3xMXsy.d.ts +27 -0
  617. package/dist/pagination-gnUKddCN.js +2 -0
  618. package/dist/pagination-gnUKddCN.js.map +1 -0
  619. package/dist/phone-input-By5lNF03.d.ts +13 -0
  620. package/dist/phone-input-D72tVPWH.js +2 -0
  621. package/dist/phone-input-D72tVPWH.js.map +1 -0
  622. package/dist/pie-chart-CvG27kFN.d.ts +42 -0
  623. package/dist/pie-chart-S4nMKbsW.js +2 -0
  624. package/dist/pie-chart-S4nMKbsW.js.map +1 -0
  625. package/dist/popover-BtX3tX8M.js +2 -0
  626. package/dist/popover-BtX3tX8M.js.map +1 -0
  627. package/dist/popover-DchAqyKn.d.ts +21 -0
  628. package/dist/progress-DeXRCHUw.d.ts +19 -0
  629. package/dist/progress-QvpY7tiy.js +2 -0
  630. package/dist/progress-QvpY7tiy.js.map +1 -0
  631. package/dist/progress-icFwrvnE.js +2 -0
  632. package/dist/progress-icFwrvnE.js.map +1 -0
  633. package/dist/progress-mEAw9ZhK.d.ts +14 -0
  634. package/dist/radio-group-BNbepK_U.d.ts +25 -0
  635. package/dist/radio-group-DM8n0XPS.js +2 -0
  636. package/dist/radio-group-DM8n0XPS.js.map +1 -0
  637. package/dist/{react.esm-D5AipFQb.js → react.esm-BkhVXJ8s.js} +2 -2
  638. package/dist/{react.esm-D5AipFQb.js.map → react.esm-BkhVXJ8s.js.map} +1 -1
  639. package/dist/resizable-DMQG3xF_.d.ts +14 -0
  640. package/dist/resizable-Dbg7r7nF.js +2 -0
  641. package/dist/resizable-Dbg7r7nF.js.map +1 -0
  642. package/dist/ring-progress-65ccdTQQ.d.ts +17 -0
  643. package/dist/ring-progress-Bfqq_HHA.js +2 -0
  644. package/dist/ring-progress-Bfqq_HHA.js.map +1 -0
  645. package/dist/scroll-area-DFcj5q66.d.ts +11 -0
  646. package/dist/scroll-area-DKS4QPHg.js +2 -0
  647. package/dist/scroll-area-DKS4QPHg.js.map +1 -0
  648. package/dist/select-BoYp-Xyc.d.ts +29 -0
  649. package/dist/select-C3QYNv4t.js +2 -0
  650. package/dist/select-C3QYNv4t.js.map +1 -0
  651. package/dist/separator-BsRLiqWE.d.ts +9 -0
  652. package/dist/separator-CCMmbXL0.js +2 -0
  653. package/dist/separator-CCMmbXL0.js.map +1 -0
  654. package/dist/sidebar-B5bEgDy5.js +2 -0
  655. package/dist/sidebar-B5bEgDy5.js.map +1 -0
  656. package/dist/sidebar-D7HQlj5O.d.ts +96 -0
  657. package/dist/simple-grid-9EryoUWI.js +2 -0
  658. package/dist/simple-grid-9EryoUWI.js.map +1 -0
  659. package/dist/simple-grid-B2zjpwZ3.d.ts +14 -0
  660. package/dist/skeleton-Cn3zBJRe.js +2 -0
  661. package/dist/skeleton-Cn3zBJRe.js.map +1 -0
  662. package/dist/skeleton-Co8pevj-.d.ts +10 -0
  663. package/dist/skills/uselets-ui/references/component-catalog.md +3 -0
  664. package/dist/skills/uselets-ui/references/package-guide.md +1 -1
  665. package/dist/slider-CC-gQawq.js +2 -0
  666. package/dist/slider-CC-gQawq.js.map +1 -0
  667. package/dist/slider-DmZ1YfLg.d.ts +9 -0
  668. package/dist/sonner-Binx8JJ2.d.ts +8 -0
  669. package/dist/sonner-DrKqhTDI.js +2 -0
  670. package/dist/sonner-DrKqhTDI.js.map +1 -0
  671. package/dist/spinner-Dz63Ltq-.d.ts +12 -0
  672. package/dist/spinner-ntLrcDLN.js +2 -0
  673. package/dist/spinner-ntLrcDLN.js.map +1 -0
  674. package/dist/stack-BbLllsqk.js +2 -0
  675. package/dist/stack-BbLllsqk.js.map +1 -0
  676. package/dist/stack-WiND8Dxq.d.ts +14 -0
  677. package/dist/stepper-BQ-59_UO.js +2 -0
  678. package/dist/stepper-BQ-59_UO.js.map +1 -0
  679. package/dist/stepper-DK5_o7RG.d.ts +71 -0
  680. package/dist/switch-DjdOGECT.js +2 -0
  681. package/dist/switch-DjdOGECT.js.map +1 -0
  682. package/dist/switch-OtBakZHc.d.ts +17 -0
  683. package/dist/table-CuE0Aenj.js +2 -0
  684. package/dist/table-CuE0Aenj.js.map +1 -0
  685. package/dist/table-qIAtG7Y5.d.ts +33 -0
  686. package/dist/tabs-BgWxTTah.d.ts +21 -0
  687. package/dist/tabs-DK9-RHkP.js +2 -0
  688. package/dist/tabs-DK9-RHkP.js.map +1 -0
  689. package/dist/text-CKFZ9Xsj.d.ts +14 -0
  690. package/dist/text-Kg1xuinT.js +2 -0
  691. package/dist/text-Kg1xuinT.js.map +1 -0
  692. package/dist/textarea-C8zrf9Rz.js +2 -0
  693. package/dist/textarea-C8zrf9Rz.js.map +1 -0
  694. package/dist/textarea-Cr9_P-bV.d.ts +8 -0
  695. package/dist/theme-BwEhfTyl.d.ts +22 -0
  696. package/dist/theme-DZJ_cJYp.js +2 -0
  697. package/dist/theme-DZJ_cJYp.js.map +1 -0
  698. package/dist/timeline-BDY3YzeJ.d.ts +61 -0
  699. package/dist/timeline-pBm0t1tb.js +2 -0
  700. package/dist/timeline-pBm0t1tb.js.map +1 -0
  701. package/dist/toggle-DJJkcqDy.js +2 -0
  702. package/dist/toggle-DJJkcqDy.js.map +1 -0
  703. package/dist/toggle-group-C3iNDYqI.d.ts +16 -0
  704. package/dist/toggle-group-D0OIpZN-.js +2 -0
  705. package/dist/toggle-group-D0OIpZN-.js.map +1 -0
  706. package/dist/toggle-jc8s_Z3T.d.ts +15 -0
  707. package/dist/tooltip-BZjnEqw5.d.ts +21 -0
  708. package/dist/tooltip-CNUNWZvs.js +2 -0
  709. package/dist/tooltip-CNUNWZvs.js.map +1 -0
  710. package/dist/unstyled-button-C-Zs4Qv2.d.ts +10 -0
  711. package/dist/unstyled-button-lGbDJA55.js +2 -0
  712. package/dist/unstyled-button-lGbDJA55.js.map +1 -0
  713. package/dist/use-breakpoint-D6YACz8C.js +2 -0
  714. package/dist/use-breakpoint-D6YACz8C.js.map +1 -0
  715. package/dist/use-breakpoint-DDuQFekj.d.ts +8 -0
  716. package/dist/use-breakpoint-value-BDjKflDX.js +2 -0
  717. package/dist/use-breakpoint-value-BDjKflDX.js.map +1 -0
  718. package/dist/use-breakpoint-value-CRbHqGAu.d.ts +8 -0
  719. package/dist/use-disclosure-CNaFpYFQ.d.ts +22 -0
  720. package/dist/use-disclosure-Cr405eRD.js +2 -0
  721. package/dist/use-disclosure-Cr405eRD.js.map +1 -0
  722. package/dist/use-document-visibility-CoWjCswu.js +2 -0
  723. package/dist/use-document-visibility-CoWjCswu.js.map +1 -0
  724. package/dist/use-document-visibility-DIzUN4tB.d.ts +6 -0
  725. package/dist/use-idle-Bsi10VE9.d.ts +13 -0
  726. package/dist/use-idle-DgheJlxd.js +2 -0
  727. package/dist/use-idle-DgheJlxd.js.map +1 -0
  728. package/dist/use-interval-B1aNo3tA.js +2 -0
  729. package/dist/use-interval-B1aNo3tA.js.map +1 -0
  730. package/dist/use-interval-CJVmE_lC.d.ts +24 -0
  731. package/dist/use-local-storage-CJBqB1GC.js +2 -0
  732. package/dist/use-local-storage-CJBqB1GC.js.map +1 -0
  733. package/dist/use-local-storage-Cmq4PWJc.d.ts +16 -0
  734. package/dist/use-mask-DBvFShXA.js +2 -0
  735. package/dist/use-mask-DBvFShXA.js.map +1 -0
  736. package/dist/use-mask-DRJVVcdh.d.ts +8 -0
  737. package/dist/use-mobile-BYwiljVq.d.ts +6 -0
  738. package/dist/use-mobile-OMmp56u2.js +2 -0
  739. package/dist/use-mobile-OMmp56u2.js.map +1 -0
  740. package/dist/utils-DGsdoA5l.d.ts +8 -0
  741. package/dist/utils-DP9KtG7I.js +2 -0
  742. package/dist/utils-DP9KtG7I.js.map +1 -0
  743. package/dist/visibility-_3zV3l-A.d.ts +17 -0
  744. package/dist/visibility-twHwe9Xp.js +2 -0
  745. package/dist/visibility-twHwe9Xp.js.map +1 -0
  746. package/package.json +10 -8
  747. package/skills/uselets-ui/references/component-catalog.md +3 -0
  748. package/skills/uselets-ui/references/package-guide.md +1 -1
  749. package/dist/components/accordion.js.map +0 -1
  750. package/dist/components/alert-dialog.js.map +0 -1
  751. package/dist/components/alert.js.map +0 -1
  752. package/dist/components/anchor.js.map +0 -1
  753. package/dist/components/area-chart.js.map +0 -1
  754. package/dist/components/avatar.js.map +0 -1
  755. package/dist/components/badge.js.map +0 -1
  756. package/dist/components/bar-chart.js.map +0 -1
  757. package/dist/components/breadcrumb.js.map +0 -1
  758. package/dist/components/button-group.js.map +0 -1
  759. package/dist/components/button.js.map +0 -1
  760. package/dist/components/calendar.js.map +0 -1
  761. package/dist/components/card.js.map +0 -1
  762. package/dist/components/carousel.js.map +0 -1
  763. package/dist/components/center.js.map +0 -1
  764. package/dist/components/chart.js.map +0 -1
  765. package/dist/components/checkbox.js.map +0 -1
  766. package/dist/components/code.js.map +0 -1
  767. package/dist/components/collapsible.js.map +0 -1
  768. package/dist/components/combobox.js.map +0 -1
  769. package/dist/components/command.js.map +0 -1
  770. package/dist/components/container.js.map +0 -1
  771. package/dist/components/data-table.js.map +0 -1
  772. package/dist/components/date-range-picker.js.map +0 -1
  773. package/dist/components/dialog.js.map +0 -1
  774. package/dist/components/donut-chart.js.map +0 -1
  775. package/dist/components/drawer.js.map +0 -1
  776. package/dist/components/dropdown-menu.js.map +0 -1
  777. package/dist/components/dropzone.js.map +0 -1
  778. package/dist/components/empty.js.map +0 -1
  779. package/dist/components/field.js.map +0 -1
  780. package/dist/components/flex.js.map +0 -1
  781. package/dist/components/grid.js.map +0 -1
  782. package/dist/components/group.js.map +0 -1
  783. package/dist/components/heading.js.map +0 -1
  784. package/dist/components/hover-card.js.map +0 -1
  785. package/dist/components/input-group.js.map +0 -1
  786. package/dist/components/input-otp.js.map +0 -1
  787. package/dist/components/input.js.map +0 -1
  788. package/dist/components/kbd.js.map +0 -1
  789. package/dist/components/label.js.map +0 -1
  790. package/dist/components/list.js.map +0 -1
  791. package/dist/components/marker.js.map +0 -1
  792. package/dist/components/mask-input.js.map +0 -1
  793. package/dist/components/native-select.js.map +0 -1
  794. package/dist/components/navigation-menu.js.map +0 -1
  795. package/dist/components/number-field.js.map +0 -1
  796. package/dist/components/pagination.js.map +0 -1
  797. package/dist/components/phone-input.js.map +0 -1
  798. package/dist/components/pie-chart.js.map +0 -1
  799. package/dist/components/popover.js.map +0 -1
  800. package/dist/components/progress.js.map +0 -1
  801. package/dist/components/radio-group.js.map +0 -1
  802. package/dist/components/resizable.js.map +0 -1
  803. package/dist/components/ring-progress.js.map +0 -1
  804. package/dist/components/scroll-area.js.map +0 -1
  805. package/dist/components/select.js.map +0 -1
  806. package/dist/components/separator.js.map +0 -1
  807. package/dist/components/sidebar.js.map +0 -1
  808. package/dist/components/simple-grid.js.map +0 -1
  809. package/dist/components/skeleton.js.map +0 -1
  810. package/dist/components/slider.js.map +0 -1
  811. package/dist/components/sonner.js.map +0 -1
  812. package/dist/components/spinner.js.map +0 -1
  813. package/dist/components/stack.js.map +0 -1
  814. package/dist/components/stepper.js.map +0 -1
  815. package/dist/components/switch.js.map +0 -1
  816. package/dist/components/table.js.map +0 -1
  817. package/dist/components/tabs.js.map +0 -1
  818. package/dist/components/text.js.map +0 -1
  819. package/dist/components/textarea.js.map +0 -1
  820. package/dist/components/theme.js.map +0 -1
  821. package/dist/components/timeline.js.map +0 -1
  822. package/dist/components/toggle-group.js.map +0 -1
  823. package/dist/components/toggle.js.map +0 -1
  824. package/dist/components/tooltip.js.map +0 -1
  825. package/dist/components/unstyled-button.js.map +0 -1
  826. package/dist/components/visibility.js.map +0 -1
  827. package/dist/hooks/use-breakpoint-value.js.map +0 -1
  828. package/dist/hooks/use-breakpoint.js.map +0 -1
  829. package/dist/hooks/use-disclosure.js.map +0 -1
  830. package/dist/hooks/use-document-visibility.js.map +0 -1
  831. package/dist/hooks/use-idle.js.map +0 -1
  832. package/dist/hooks/use-interval.js.map +0 -1
  833. package/dist/hooks/use-local-storage.js.map +0 -1
  834. package/dist/hooks/use-mask.js.map +0 -1
  835. package/dist/hooks/use-mobile.js.map +0 -1
  836. package/dist/lib/badge.js.map +0 -1
  837. package/dist/lib/button.js.map +0 -1
  838. package/dist/lib/color.js.map +0 -1
  839. package/dist/lib/compose-refs.js.map +0 -1
  840. package/dist/lib/progress.js.map +0 -1
  841. package/dist/lib/utils.js.map +0 -1
  842. package/dist/magic-string.es-oADFB1hu.js +0 -15
  843. package/dist/magic-string.es-oADFB1hu.js.map +0 -1
  844. package/dist/utils-Cj3IZeiu.js +0 -37
  845. package/dist/utils-Cj3IZeiu.js.map +0 -1
@@ -1,13 +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/center.d.ts
5
- declare const centerVariants: (props?: ({
6
- direction?: "horizontal" | "vertical" | null | undefined;
7
- size?: "lg" | "md" | "sm" | "xl" | "xs" | null | undefined;
8
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
- type CenterProps = React.ComponentProps<'div'> & VariantProps<typeof centerVariants>;
10
- declare function Center({ className, direction, size, ...props }: CenterProps): React.JSX.Element;
11
- //#endregion
12
- export { Center, CenterProps, centerVariants };
13
- //# sourceMappingURL=center.d.ts.map
1
+ import { n as CenterProps, r as centerVariants, t as Center } from "../center-CFQDr205.js";
2
+ export { Center, CenterProps, centerVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`flex items-center justify-center`,{variants:{direction:{horizontal:`flex-row`,vertical:`flex-col`},size:{xs:`gap-1`,sm:`gap-2`,md:`gap-3`,lg:`gap-4`,xl:`gap-6`}},defaultVariants:{direction:`horizontal`,size:`md`}});function Center({className:n,direction:i=`horizontal`,size:a=`md`,...o}){return t(`div`,{"data-slot":`center`,"data-direction":i,"data-size":a,className:e(r({direction:i,size:a}),n),...o})}export{Center,r as centerVariants};
2
- //# sourceMappingURL=center.js.map
1
+ import{n as e,t}from"../center-Dl1rnq7S.js";export{t as Center,e as centerVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../center-Dl1rnq7S.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`Center`,()=>{it(`renders a div with default variants and data-slot`,()=>{let{container:r}=t(n(e,{children:`Content`})),i=r.querySelector(`[data-slot="center"]`);expect(i).not.toBeNull(),expect(i?.tagName).toBe(`DIV`),expect(i?.getAttribute(`data-direction`)).toBe(`horizontal`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.className).toContain(`items-center`),expect(i?.className).toContain(`justify-center`),expect(i?.className).toContain(`flex-row`),expect(i?.className).toContain(`gap-3`)}),it(`applies the vertical direction variant`,()=>{let{container:r}=t(n(e,{direction:`vertical`,children:`Content`})),i=r.querySelector(`[data-slot="center"]`);expect(i?.getAttribute(`data-direction`)).toBe(`vertical`),expect(i?.className).toContain(`flex-col`)}),it(`applies the requested size variant`,()=>{let{container:r}=t(n(e,{size:`xl`,children:`Content`})),i=r.querySelector(`[data-slot="center"]`);expect(i?.getAttribute(`data-size`)).toBe(`xl`),expect(i?.className).toContain(`gap-6`)}),it(`renders children and merges a custom className`,()=>{let{container:r,getByText:i}=t(n(e,{className:`custom-class`,children:`Hello`})),a=r.querySelector(`[data-slot="center"]`);expect(i(`Hello`)).not.toBeNull(),expect(a?.className).toContain(`custom-class`)}),it(`forwards the ref to the underlying div element`,()=>{let r={current:null};t(n(e,{ref:r,children:`Content`})),expect(r.current).not.toBeNull(),expect(r.current?.getAttribute(`data-slot`)).toBe(`center`)})});
2
+ //# sourceMappingURL=center.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"center.spec.js","names":[],"sources":["../../src/components/center.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Center } from './center'\n\ndescribe('Center', () => {\n it('renders a div with default variants and data-slot', () => {\n const { container } = render(<Center>Content</Center>)\n\n const center = container.querySelector('[data-slot=\"center\"]')\n\n expect(center).not.toBeNull()\n expect(center?.tagName).toBe('DIV')\n expect(center?.getAttribute('data-direction')).toBe('horizontal')\n expect(center?.getAttribute('data-size')).toBe('md')\n expect(center?.className).toContain('items-center')\n expect(center?.className).toContain('justify-center')\n expect(center?.className).toContain('flex-row')\n expect(center?.className).toContain('gap-3')\n })\n\n it('applies the vertical direction variant', () => {\n const { container } = render(<Center direction=\"vertical\">Content</Center>)\n\n const center = container.querySelector('[data-slot=\"center\"]')\n\n expect(center?.getAttribute('data-direction')).toBe('vertical')\n expect(center?.className).toContain('flex-col')\n })\n\n it('applies the requested size variant', () => {\n const { container } = render(<Center size=\"xl\">Content</Center>)\n\n const center = container.querySelector('[data-slot=\"center\"]')\n\n expect(center?.getAttribute('data-size')).toBe('xl')\n expect(center?.className).toContain('gap-6')\n })\n\n it('renders children and merges a custom className', () => {\n const { container, getByText } = render(<Center className=\"custom-class\">Hello</Center>)\n\n const center = container.querySelector('[data-slot=\"center\"]')\n\n expect(getByText('Hello')).not.toBeNull()\n expect(center?.className).toContain('custom-class')\n })\n\n it('forwards the ref to the underlying div element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<Center ref={ref}>Content</Center>)\n\n expect(ref.current).not.toBeNull()\n expect(ref.current?.getAttribute('data-slot')).toBe('center')\n })\n})\n"],"mappings":"uKAIA,SAAS,aAAgB,CACvB,GAAG,wDAA2D,CAC5D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAQ,SAAe,CAAA,CAAC,EAE/C,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,CAAM,CAAC,CAAC,IAAI,SAAS,EAC5B,OAAO,GAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,EAClC,OAAO,GAAQ,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,YAAY,EAChE,OAAO,GAAQ,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACnD,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,cAAc,EAClD,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,gBAAgB,EACpD,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,UAAU,EAC9C,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,OAAO,CAC7C,CAAC,EAED,GAAG,6CAAgD,CACjD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,UAAU,WAAW,SAAA,SAAe,CAAA,CAAC,EAEpE,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,GAAQ,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,UAAU,EAC9D,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,UAAU,CAChD,CAAC,EAED,GAAG,yCAA4C,CAC7C,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,KAAK,KAAK,SAAA,SAAe,CAAA,CAAC,EAEzD,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,GAAQ,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACnD,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,OAAO,CAC7C,CAAC,EAED,GAAG,qDAAwD,CACzD,GAAM,CAAE,YAAW,aAAc,EAAO,EAAC,EAAD,CAAQ,UAAU,eAAe,SAAA,OAAa,CAAA,CAAC,EAEjF,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,EAAU,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,EACxC,OAAO,GAAQ,SAAS,CAAC,CAAC,UAAU,cAAc,CACpD,CAAC,EAED,GAAG,qDAAwD,CACzD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAa,MAAK,SAAA,SAAe,CAAA,CAAC,EAEzC,OAAO,EAAI,OAAO,CAAC,CAAC,IAAI,SAAS,EACjC,OAAO,EAAI,SAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC9D,CAAC,CACH,CAAC"}
@@ -1,8 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Fragment as t,jsx as n,jsxs as r}from"react/jsx-runtime";import*as i from"react";import*as a from"recharts";const o={light:``,dark:`.dark`},s=[`primary`,`brand`,`gray`,`zinc`,`red`,`yellow`,`green`,`blue`,`indigo`,`pink`];function resolveChartColor(e){if(e)return s.includes(e)?`var(--${e})`:e}const c=[`var(--chart-1)`,`var(--chart-2)`,`var(--chart-3)`,`var(--chart-4)`,`var(--chart-5)`],l=i.createContext(null);function useChart(){let e=i.useContext(l);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function ChartContainer({id:t,className:r,children:o,config:s,...c}){let u=i.useId(),d=`chart-${t||u.replace(/:/g,``)}`;return n(l.Provider,{value:{config:s},children:n(`div`,{"data-slot":`chart`,"data-chart":d,className:e(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden`,r),...c,children:n(a.ResponsiveContainer,{children:o})})})}const ChartStyle=({id:e,config:t})=>{let r=Object.entries(t).filter(([,e])=>e.theme||e.color);return r.length?n(`style`,{children:Object.entries(o).map(([t,n])=>`
2
- ${n} [data-chart=${e}] {
3
- ${r.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
4
- `)}
5
- }
6
- `).join(`
7
- `)}):null},u=a.Tooltip;function ChartTooltipContent({active:a,payload:o,className:s,indicator:c=`dot`,hideLabel:l=!1,hideIndicator:u=!1,label:d,labelFormatter:f,labelClassName:p,formatter:m,color:h,nameKey:g,labelKey:_}){let{config:v}=useChart(),y=i.useMemo(()=>{if(l||!o?.length)return null;let[t]=o,r=`${_||t?.dataKey||t?.name||`value`}`,i=getPayloadConfigFromPayload(v,t,r),a=!_&&typeof d==`string`?v[d]?.label||d:i?.label;return f?n(`div`,{className:e(`font-medium`,p),children:f(a,o)}):a?n(`div`,{className:e(`font-medium`,p),children:a}):null},[d,f,o,l,p,v,_]);if(!a||!o?.length)return null;let b=o.length===1&&c!==`dot`;return r(`div`,{className:e(`grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,s),children:[b?null:y,n(`div`,{className:`grid gap-1.5`,children:o.filter(e=>e.type!==`none`).map((i,a)=>{let o=`${g||i.name||i.dataKey||`value`}`,s=getPayloadConfigFromPayload(v,i,o),l=h||i.payload.fill||i.color;return n(`div`,{className:e(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,c===`dot`&&`items-center`),children:m&&i?.value!==void 0&&i.name?m(i.value,i.name,i,a,i.payload):r(t,{children:[s?.icon?n(s.icon,{}):!u&&n(`div`,{className:e(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":c===`dot`,"w-1":c===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":c===`dashed`,"my-0.5":b&&c===`dashed`}),style:{"--color-bg":l,"--color-border":l}}),r(`div`,{className:e(`flex flex-1 justify-between leading-none`,b?`items-end`:`items-center`),children:[r(`div`,{className:`grid gap-1.5`,children:[b?y:null,n(`span`,{className:`text-muted-foreground`,children:s?.label||i.name})]}),i.value&&n(`span`,{className:`font-mono font-medium text-foreground tabular-nums`,children:i.value.toLocaleString()})]})]})},String(i.dataKey))})})]})}const d=a.Legend;function ChartLegendContent({className:t,hideIcon:i=!1,payload:a,verticalAlign:o=`bottom`,nameKey:s}){let{config:c}=useChart();return a?.length?n(`div`,{className:e(`flex items-center justify-center flex-wrap gap-2`,o===`top`?`pb-3`:`pt-3`,t),children:a.filter(e=>e.type!==`none`).map(t=>{let a=`${s||t.dataKey||`value`}`,o=getPayloadConfigFromPayload(c,t,a);return r(`div`,{className:e(`flex items-center gap-1 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground`),children:[o?.icon&&!i?n(o.icon,{}):n(`div`,{className:`h-3 w-3 shrink-0 rounded-[2px]`,style:{backgroundColor:t.color}}),o?.label]},t.value)})}):null}function getPayloadConfigFromPayload(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}export{s as CHART_COLOR_KEYS,ChartContainer,d as ChartLegend,ChartLegendContent,ChartStyle,u as ChartTooltip,ChartTooltipContent,c as DEFAULT_CHART_PALETTE,resolveChartColor};
8
- //# sourceMappingURL=chart.js.map
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../chart-Ci4V8B8v.js";export{c as CHART_COLOR_KEYS,i as ChartContainer,o as ChartLegend,n as ChartLegendContent,e as ChartStyle,a as ChartTooltip,s as ChartTooltipContent,t as DEFAULT_CHART_PALETTE,r as resolveChartColor};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{c as e,i as t,l as n,n as r,s as i,t as a}from"../chart-Ci4V8B8v.js";import{a as o,r as s}from"../react.esm-BkhVXJ8s.js";import{jsx as c}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 l={desktop:{label:`Desktop`,color:`#3b82f6`},mobile:{label:`Mobile`,color:`#22c55e`}};describe(`ChartContainer`,()=>{it(`renders its children inside a data-slot="chart" wrapper with a derived data-chart id`,()=>{let{container:e}=s(c(r,{config:l,children:c(`div`,{children:`content`})})),t=e.querySelector(`[data-slot="chart"]`);expect(t).not.toBeNull(),expect(t?.getAttribute(`data-chart`)).toMatch(/^chart-/)}),it(`derives the data-chart attribute from an explicit id prop`,()=>{let{container:e}=s(c(r,{id:`revenue`,config:l,children:c(`div`,{children:`content`})}));expect(e.querySelector(`[data-slot="chart"]`)?.getAttribute(`data-chart`)).toBe(`chart-revenue`)}),it(`merges a custom className with the base chart classes`,()=>{let{container:e}=s(c(r,{config:l,className:`custom-chart`,children:c(`div`,{children:`content`})})),t=e.querySelector(`[data-slot="chart"]`);expect(t?.className).toContain(`custom-chart`),expect(t?.className).toContain(`aspect-video`)}),it(`spreads additional props onto the wrapper div`,()=>{let{container:e}=s(c(r,{config:l,"data-testid":`my-chart`,children:c(`div`,{children:`content`})}));expect(e.querySelector(`[data-testid="my-chart"]`)).not.toBeNull()}),describe(`ChartTooltipContent`,()=>{it(`throws when rendered outside of a ChartContainer`,()=>{expect(()=>s(c(i,{active:!0,payload:[]}))).toThrow(`useChart must be used within a <ChartContainer />`)}),it(`returns null when active is false`,()=>{let{container:e}=s(c(r,{config:l,children:c(i,{active:!1,payload:[{dataKey:`desktop`,name:`desktop`,value:186,payload:{}}]})}));expect(e.querySelector(`.shadow-xl`)).toBeNull()}),it(`returns null when the payload is empty`,()=>{let{container:e}=s(c(r,{config:l,children:c(i,{active:!0,payload:[]})}));expect(e.querySelector(`.shadow-xl`)).toBeNull()}),it(`renders the resolved config label above the item rows`,()=>{let{container:e}=s(c(r,{config:l,children:c(i,{active:!0,payload:[{dataKey:`desktop`,name:`desktop`,value:186,color:`#3b82f6`,payload:{fill:`#3b82f6`}}]})}));expect(e.querySelector(`div.font-medium`)?.textContent).toBe(`Desktop`),expect(o.getByText(`186`)).not.toBeNull()}),it(`hides the label row when hideLabel is set`,()=>{let{container:e}=s(c(r,{config:l,children:c(i,{active:!0,hideLabel:!0,payload:[{dataKey:`desktop`,name:`desktop`,value:186,payload:{}}]})}));expect(e.querySelector(`div.font-medium`)).toBeNull()}),it(`filters out payload items whose type is "none"`,()=>{s(c(r,{config:l,children:c(i,{active:!0,hideLabel:!0,payload:[{dataKey:`desktop`,name:`desktop`,value:186,type:`none`,payload:{}},{dataKey:`mobile`,name:`mobile`,value:305,payload:{}}]})})),expect(o.queryByText(`186`)).toBeNull(),expect(o.getByText(`305`)).not.toBeNull()}),it(`delegates cell rendering to a custom formatter when provided`,()=>{let e=vi.fn(()=>c(`span`,{children:`custom-cell`}));s(c(r,{config:l,children:c(i,{active:!0,hideLabel:!0,formatter:e,payload:[{dataKey:`desktop`,name:`desktop`,value:186,payload:{}}]})})),expect(e).toHaveBeenCalledWith(186,`desktop`,expect.anything(),0,{}),expect(o.getByText(`custom-cell`)).not.toBeNull()})}),describe(`ChartLegendContent`,()=>{it(`throws when rendered outside of a ChartContainer`,()=>{expect(()=>s(c(t,{payload:[]}))).toThrow(`useChart must be used within a <ChartContainer />`)}),it(`returns null when the payload is empty`,()=>{let{container:e}=s(c(r,{config:l,children:c(t,{payload:[]})}));expect(e.querySelector(`[data-slot="chart"]`)?.textContent).toBe(``)}),it(`renders one entry per payload item using the config label`,()=>{s(c(r,{config:l,children:c(t,{payload:[{value:`desktop`,dataKey:`desktop`,color:`#3b82f6`,type:`rect`},{value:`mobile`,dataKey:`mobile`,color:`#22c55e`,type:`rect`}]})})),expect(o.getByText(`Desktop`)).not.toBeNull(),expect(o.getByText(`Mobile`)).not.toBeNull()}),it(`filters out payload items whose type is "none"`,()=>{s(c(r,{config:l,children:c(t,{payload:[{value:`desktop`,dataKey:`desktop`,color:`#3b82f6`,type:`none`},{value:`mobile`,dataKey:`mobile`,color:`#22c55e`}]})})),expect(o.queryByText(`Desktop`)).toBeNull(),expect(o.getByText(`Mobile`)).not.toBeNull()}),it(`applies bottom padding by default and top padding for verticalAlign="top"`,()=>{let{container:e}=s(c(r,{config:l,children:c(t,{payload:[{value:`desktop`,dataKey:`desktop`,color:`#3b82f6`}]})}));expect(e.querySelector(`.flex.items-center.justify-center`)?.className).toContain(`pt-3`);let{container:n}=s(c(r,{config:l,children:c(t,{verticalAlign:`top`,payload:[{value:`desktop`,dataKey:`desktop`,color:`#3b82f6`}]})}));expect(n.querySelector(`.flex.items-center.justify-center`)?.className).toContain(`pb-3`)})})}),describe(`resolveChartColor`,()=>{it(`returns undefined for a falsy value`,()=>{expect(n(void 0)).toBeUndefined(),expect(n(``)).toBeUndefined()}),it.each(a)(`maps the known color key "%s" to its CSS variable`,e=>{expect(n(e)).toBe(`var(--${e})`)}),it(`passes through arbitrary values unchanged`,()=>{expect(n(`#3b82f6`)).toBe(`#3b82f6`)})}),describe(`DEFAULT_CHART_PALETTE`,()=>{it(`exposes five chart color variables in order`,()=>{expect(e).toEqual([`var(--chart-1)`,`var(--chart-2)`,`var(--chart-3)`,`var(--chart-4)`,`var(--chart-5)`])})});
2
+ //# sourceMappingURL=chart.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.spec.js","names":[],"sources":["../../src/components/chart.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport {\n CHART_COLOR_KEYS,\n type ChartConfig,\n ChartContainer,\n ChartLegendContent,\n ChartTooltipContent,\n DEFAULT_CHART_PALETTE,\n resolveChartColor\n} from './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 at all. Stubbing it to\n // match the offsetWidth/offsetHeight above lets ChartTooltipContent/ChartLegendContent actually 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 config: ChartConfig = {\n desktop: { label: 'Desktop', color: '#3b82f6' },\n mobile: { label: 'Mobile', color: '#22c55e' }\n}\n\ndescribe('ChartContainer', () => {\n it('renders its children inside a data-slot=\"chart\" wrapper with a derived data-chart id', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <div>content</div>\n </ChartContainer>\n )\n\n const chartDiv = container.querySelector('[data-slot=\"chart\"]')\n expect(chartDiv).not.toBeNull()\n expect(chartDiv?.getAttribute('data-chart')).toMatch(/^chart-/)\n })\n\n it('derives the data-chart attribute from an explicit id prop', () => {\n const { container } = render(\n <ChartContainer id=\"revenue\" config={config}>\n <div>content</div>\n </ChartContainer>\n )\n\n expect(container.querySelector('[data-slot=\"chart\"]')?.getAttribute('data-chart')).toBe('chart-revenue')\n })\n\n it('merges a custom className with the base chart classes', () => {\n const { container } = render(\n <ChartContainer config={config} className=\"custom-chart\">\n <div>content</div>\n </ChartContainer>\n )\n\n const chartDiv = container.querySelector('[data-slot=\"chart\"]')\n expect(chartDiv?.className).toContain('custom-chart')\n expect(chartDiv?.className).toContain('aspect-video')\n })\n\n it('spreads additional props onto the wrapper div', () => {\n const { container } = render(\n <ChartContainer config={config} data-testid=\"my-chart\">\n <div>content</div>\n </ChartContainer>\n )\n\n expect(container.querySelector('[data-testid=\"my-chart\"]')).not.toBeNull()\n })\n\n describe('ChartTooltipContent', () => {\n it('throws when rendered outside of a ChartContainer', () => {\n expect(() => render(<ChartTooltipContent active payload={[]} />)).toThrow(\n 'useChart must be used within a <ChartContainer />'\n )\n })\n\n it('returns null when active is false', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <ChartTooltipContent\n active={false}\n payload={[{ dataKey: 'desktop', name: 'desktop', value: 186, payload: {} }] as never}\n />\n </ChartContainer>\n )\n\n expect(container.querySelector('.shadow-xl')).toBeNull()\n })\n\n it('returns null when the payload is empty', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <ChartTooltipContent active payload={[]} />\n </ChartContainer>\n )\n\n expect(container.querySelector('.shadow-xl')).toBeNull()\n })\n\n it('renders the resolved config label above the item rows', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <ChartTooltipContent\n active\n payload={\n [\n { dataKey: 'desktop', name: 'desktop', value: 186, color: '#3b82f6', payload: { fill: '#3b82f6' } }\n ] as never\n }\n />\n </ChartContainer>\n )\n\n expect(container.querySelector('div.font-medium')?.textContent).toBe('Desktop')\n expect(screen.getByText('186')).not.toBeNull()\n })\n\n it('hides the label row when hideLabel is set', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <ChartTooltipContent\n active\n hideLabel\n payload={[{ dataKey: 'desktop', name: 'desktop', value: 186, payload: {} }] as never}\n />\n </ChartContainer>\n )\n\n expect(container.querySelector('div.font-medium')).toBeNull()\n })\n\n it('filters out payload items whose type is \"none\"', () => {\n render(\n <ChartContainer config={config}>\n <ChartTooltipContent\n active\n hideLabel\n payload={\n [\n { dataKey: 'desktop', name: 'desktop', value: 186, type: 'none', payload: {} },\n { dataKey: 'mobile', name: 'mobile', value: 305, payload: {} }\n ] as never\n }\n />\n </ChartContainer>\n )\n\n expect(screen.queryByText('186')).toBeNull()\n expect(screen.getByText('305')).not.toBeNull()\n })\n\n it('delegates cell rendering to a custom formatter when provided', () => {\n const formatter = vi.fn(() => <span>custom-cell</span>)\n\n render(\n <ChartContainer config={config}>\n <ChartTooltipContent\n active\n hideLabel\n formatter={formatter}\n payload={[{ dataKey: 'desktop', name: 'desktop', value: 186, payload: {} }] as never}\n />\n </ChartContainer>\n )\n\n expect(formatter).toHaveBeenCalledWith(186, 'desktop', expect.anything(), 0, {})\n expect(screen.getByText('custom-cell')).not.toBeNull()\n })\n })\n\n describe('ChartLegendContent', () => {\n it('throws when rendered outside of a ChartContainer', () => {\n expect(() => render(<ChartLegendContent payload={[]} />)).toThrow(\n 'useChart must be used within a <ChartContainer />'\n )\n })\n\n it('returns null when the payload is empty', () => {\n const { container } = render(\n <ChartContainer config={config}>\n <ChartLegendContent payload={[]} />\n </ChartContainer>\n )\n\n expect(container.querySelector('[data-slot=\"chart\"]')?.textContent).toBe('')\n })\n\n it('renders one entry per payload item using the config label', () => {\n render(\n <ChartContainer config={config}>\n <ChartLegendContent\n payload={\n [\n { value: 'desktop', dataKey: 'desktop', color: '#3b82f6', type: 'rect' },\n { value: 'mobile', dataKey: 'mobile', color: '#22c55e', type: 'rect' }\n ] as never\n }\n />\n </ChartContainer>\n )\n\n expect(screen.getByText('Desktop')).not.toBeNull()\n expect(screen.getByText('Mobile')).not.toBeNull()\n })\n\n it('filters out payload items whose type is \"none\"', () => {\n render(\n <ChartContainer config={config}>\n <ChartLegendContent\n payload={\n [\n { value: 'desktop', dataKey: 'desktop', color: '#3b82f6', type: 'none' },\n { value: 'mobile', dataKey: 'mobile', color: '#22c55e' }\n ] as never\n }\n />\n </ChartContainer>\n )\n\n expect(screen.queryByText('Desktop')).toBeNull()\n expect(screen.getByText('Mobile')).not.toBeNull()\n })\n\n it('applies bottom padding by default and top padding for verticalAlign=\"top\"', () => {\n const { container: bottomContainer } = render(\n <ChartContainer config={config}>\n <ChartLegendContent payload={[{ value: 'desktop', dataKey: 'desktop', color: '#3b82f6' }] as never} />\n </ChartContainer>\n )\n expect(bottomContainer.querySelector('.flex.items-center.justify-center')?.className).toContain('pt-3')\n\n const { container: topContainer } = render(\n <ChartContainer config={config}>\n <ChartLegendContent\n verticalAlign=\"top\"\n payload={[{ value: 'desktop', dataKey: 'desktop', color: '#3b82f6' }] as never}\n />\n </ChartContainer>\n )\n expect(topContainer.querySelector('.flex.items-center.justify-center')?.className).toContain('pb-3')\n })\n })\n})\n\ndescribe('resolveChartColor', () => {\n it('returns undefined for a falsy value', () => {\n expect(resolveChartColor(undefined)).toBeUndefined()\n expect(resolveChartColor('')).toBeUndefined()\n })\n\n it.each(CHART_COLOR_KEYS)('maps the known color key \"%s\" to its CSS variable', (key) => {\n expect(resolveChartColor(key)).toBe(`var(--${key})`)\n })\n\n it('passes through arbitrary values unchanged', () => {\n expect(resolveChartColor('#3b82f6')).toBe('#3b82f6')\n })\n})\n\ndescribe('DEFAULT_CHART_PALETTE', () => {\n it('exposes five chart color variables in order', () => {\n expect(DEFAULT_CHART_PALETTE).toEqual([\n 'var(--chart-1)',\n 'var(--chart-2)',\n 'var(--chart-3)',\n 'var(--chart-4)',\n 'var(--chart-5)'\n ])\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 { UIColor } from "../lib/color.js";
3
- import { LabelProps } from "./label.js";
4
- import { Checkbox as Checkbox$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/checkbox.d.ts
9
- declare const checkboxVariants: (props?: ({
10
- color?: "blue" | "brand" | "gray" | "green" | "indigo" | "pink" | "primary" | "red" | "yellow" | "zinc" | null | undefined;
11
- size?: "lg" | "md" | "sm" | null | undefined;
12
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
- type CheckboxProps = React.ComponentProps<typeof Checkbox$1.Root> & VariantProps<typeof checkboxVariants> & {
14
- color?: UIColor;
15
- label?: ReactNode;
16
- labelProps?: Omit<LabelProps, 'children' | 'htmlFor'>;
17
- };
18
- declare function Checkbox({ className, color, id, label, labelProps, size, ...props }: CheckboxProps): React.JSX.Element;
19
- //#endregion
20
- export { Checkbox, CheckboxProps };
21
- //# sourceMappingURL=checkbox.d.ts.map
1
+ import { n as CheckboxProps, t as Checkbox } from "../checkbox-y0XBdH4a.js";
2
+ export { Checkbox, CheckboxProps };
@@ -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{IconCheck as i,IconMinus as a}from"@tabler/icons-react";import{Checkbox as o}from"radix-ui";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{cva as l}from"class-variance-authority";import{useId as u}from"react";const d=l(`border-input dark:data-unchecked:bg-input/30 data-checked:bg-(--selection-control) data-checked:text-(--selection-control-foreground) data-checked:border-(--selection-control) aria-invalid:aria-checked:border-(--selection-control) aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex items-center justify-center border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,{variants:{color:t,size:{sm:`size-3.5 rounded-[3px] [&_[data-slot=checkbox-indicator]>svg]:size-3`,md:`size-4 rounded-[4px] [&_[data-slot=checkbox-indicator]>svg]:size-3.5`,lg:`size-5 rounded-[5px] [&_[data-slot=checkbox-indicator]>svg]:size-4`}},defaultVariants:{color:`primary`,size:`md`}}),f=l(``,{variants:{size:{sm:`text-xs`,md:`text-sm`,lg:`text-xl`}},defaultVariants:{size:`md`}});function Checkbox({className:t,color:l=`primary`,id:p,label:m,labelProps:h,size:g=`md`,..._}){let v=u(),y=r(p),b=m!==void 0,x=y??(b?v:void 0),{className:S,...C}=h??{},w=s(o.Root,{"data-slot":`checkbox`,"data-color":l,"data-size":g,id:x,className:e(d({color:l,size:g}),t),..._,children:c(o.Indicator,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:[s(i,{className:`block in-data-[state=indeterminate]:hidden`}),s(a,{className:`hidden in-data-[state=indeterminate]:block`})]})});return b?c(`div`,{"data-slot":`checkbox-field`,className:`flex items-center gap-2`,children:[w,s(n,{...C,htmlFor:x,className:e(f({size:g}),S),children:m})]}):w}export{Checkbox};
2
- //# sourceMappingURL=checkbox.js.map
1
+ import{t as e}from"../checkbox-DPvW_m7k.js";export{e as Checkbox};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../field-DzR-XrO7.js";import{t}from"../checkbox-DPvW_m7k.js";import{a as n,n as r,r as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a}from"react/jsx-runtime";describe(`Checkbox`,()=>{it(`renders a standalone checkbox without a wrapping field when no label is given`,()=>{let{container:e}=i(a(t,{}));expect(e.querySelector(`[data-slot="checkbox-field"]`)).toBeNull();let n=e.querySelector(`[data-slot="checkbox"]`);expect(n).not.toBeNull(),expect(n?.getAttribute(`role`)).toBe(`checkbox`),expect(n?.getAttribute(`data-color`)).toBe(`primary`),expect(n?.getAttribute(`data-size`)).toBe(`md`),expect(n?.getAttribute(`id`)).toBeNull()}),it(`wraps the checkbox with a generated label when label is provided`,()=>{i(a(t,{label:`Accept terms`}));let e=n.getByRole(`checkbox`,{name:`Accept terms`}),r=n.getByText(`Accept terms`);expect(e.getAttribute(`id`)).toBeTruthy(),expect(r.getAttribute(`for`)).toBe(e.getAttribute(`id`))}),it(`preserves an explicit id over the generated one`,()=>{i(a(t,{id:`terms-checkbox`,label:`Accept terms`})),expect(document.getElementById(`terms-checkbox`)).not.toBeNull(),expect(n.getByText(`Accept terms`).getAttribute(`for`)).toBe(`terms-checkbox`)}),it(`resolves the id from a surrounding Field when id is omitted`,()=>{i(a(e,{children:a(t,{label:`Subscribe`})}));let r=n.getByRole(`checkbox`,{name:`Subscribe`});expect(r.getAttribute(`id`)).toBeTruthy(),expect(n.getByText(`Subscribe`).getAttribute(`for`)).toBe(r.getAttribute(`id`))}),it(`toggles the checked state when clicked`,()=>{let{container:e}=i(a(t,{})),n=e.querySelector(`[data-slot="checkbox"]`);expect(n.getAttribute(`data-state`)).toBe(`unchecked`),r.click(n),expect(n.getAttribute(`data-state`)).toBe(`checked`)}),it(`applies the requested color and size variants`,()=>{let{container:e}=i(a(t,{color:`blue`,size:`lg`})),n=e.querySelector(`[data-slot="checkbox"]`);expect(n?.getAttribute(`data-color`)).toBe(`blue`),expect(n?.getAttribute(`data-size`)).toBe(`lg`),expect(n?.className).toContain(`size-5`)})});
2
+ //# sourceMappingURL=checkbox.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.spec.js","names":[],"sources":["../../src/components/checkbox.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Checkbox } from './checkbox'\nimport { Field } from './field'\n\ndescribe('Checkbox', () => {\n it('renders a standalone checkbox without a wrapping field when no label is given', () => {\n const { container } = render(<Checkbox />)\n\n expect(container.querySelector('[data-slot=\"checkbox-field\"]')).toBeNull()\n\n const checkbox = container.querySelector('[data-slot=\"checkbox\"]')\n\n expect(checkbox).not.toBeNull()\n expect(checkbox?.getAttribute('role')).toBe('checkbox')\n expect(checkbox?.getAttribute('data-color')).toBe('primary')\n expect(checkbox?.getAttribute('data-size')).toBe('md')\n expect(checkbox?.getAttribute('id')).toBeNull()\n })\n\n it('wraps the checkbox with a generated label when label is provided', () => {\n render(<Checkbox label=\"Accept terms\" />)\n\n const checkbox = screen.getByRole('checkbox', { name: 'Accept terms' })\n const label = screen.getByText('Accept terms')\n\n expect(checkbox.getAttribute('id')).toBeTruthy()\n expect(label.getAttribute('for')).toBe(checkbox.getAttribute('id'))\n })\n\n it('preserves an explicit id over the generated one', () => {\n render(<Checkbox id=\"terms-checkbox\" label=\"Accept terms\" />)\n\n expect(document.getElementById('terms-checkbox')).not.toBeNull()\n expect(screen.getByText('Accept terms').getAttribute('for')).toBe('terms-checkbox')\n })\n\n it('resolves the id from a surrounding Field when id is omitted', () => {\n render(\n <Field>\n <Checkbox label=\"Subscribe\" />\n </Field>\n )\n\n const checkbox = screen.getByRole('checkbox', { name: 'Subscribe' })\n\n expect(checkbox.getAttribute('id')).toBeTruthy()\n expect(screen.getByText('Subscribe').getAttribute('for')).toBe(checkbox.getAttribute('id'))\n })\n\n it('toggles the checked state when clicked', () => {\n const { container } = render(<Checkbox />)\n\n const checkbox = container.querySelector('[data-slot=\"checkbox\"]') as HTMLElement\n\n expect(checkbox.getAttribute('data-state')).toBe('unchecked')\n\n fireEvent.click(checkbox)\n\n expect(checkbox.getAttribute('data-state')).toBe('checked')\n })\n\n it('applies the requested color and size variants', () => {\n const { container } = render(<Checkbox color=\"blue\" size=\"lg\" />)\n\n const checkbox = container.querySelector('[data-slot=\"checkbox\"]')\n\n expect(checkbox?.getAttribute('data-color')).toBe('blue')\n expect(checkbox?.getAttribute('data-size')).toBe('lg')\n expect(checkbox?.className).toContain('size-5')\n })\n})\n"],"mappings":"2NAKA,SAAS,eAAkB,CACzB,GAAG,oFAAuF,CACxF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,CAAA,CAAC,EAEzC,OAAO,EAAU,cAAc,8BAA8B,CAAC,CAAC,CAAC,SAAS,EAEzE,IAAM,EAAW,EAAU,cAAc,wBAAwB,EAEjE,OAAO,CAAQ,CAAC,CAAC,IAAI,SAAS,EAC9B,OAAO,GAAU,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EACtD,OAAO,GAAU,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAC3D,OAAO,GAAU,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAU,aAAa,IAAI,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC,EAED,GAAG,uEAA0E,CAC3E,EAAO,EAAC,EAAD,CAAU,MAAM,cAAgB,CAAA,CAAC,EAExC,IAAM,EAAW,EAAO,UAAU,WAAY,CAAE,KAAM,cAAe,CAAC,EAChE,EAAQ,EAAO,UAAU,cAAc,EAE7C,OAAO,EAAS,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,EAC/C,OAAO,EAAM,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAS,aAAa,IAAI,CAAC,CACpE,CAAC,EAED,GAAG,sDAAyD,CAC1D,EAAO,EAAC,EAAD,CAAU,GAAG,iBAAiB,MAAM,cAAgB,CAAA,CAAC,EAE5D,OAAO,SAAS,eAAe,gBAAgB,CAAC,CAAC,CAAC,IAAI,SAAS,EAC/D,OAAO,EAAO,UAAU,cAAc,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,gBAAgB,CACpF,CAAC,EAED,GAAG,kEAAqE,CACtE,EACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAU,MAAM,WAAa,CAAA,CACxB,CAAA,CACT,EAEA,IAAM,EAAW,EAAO,UAAU,WAAY,CAAE,KAAM,WAAY,CAAC,EAEnE,OAAO,EAAS,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,EAC/C,OAAO,EAAO,UAAU,WAAW,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,EAAS,aAAa,IAAI,CAAC,CAC5F,CAAC,EAED,GAAG,6CAAgD,CACjD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,CAAA,CAAC,EAEnC,EAAW,EAAU,cAAc,wBAAwB,EAEjE,OAAO,EAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,EAE5D,EAAU,MAAM,CAAQ,EAExB,OAAO,EAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,CAC5D,CAAC,EAED,GAAG,oDAAuD,CACxD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,MAAM,OAAO,KAAK,IAAM,CAAA,CAAC,EAE1D,EAAW,EAAU,cAAc,wBAAwB,EAEjE,OAAO,GAAU,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EACxD,OAAO,GAAU,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,QAAQ,CAChD,CAAC,CACH,CAAC"}
@@ -1,8 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- //#region src/components/code.d.ts
4
- type CodeProps = React.ComponentProps<'code'>;
5
- declare function Code({ className, ...props }: CodeProps): React.JSX.Element;
6
- //#endregion
7
- export { Code, CodeProps };
8
- //# sourceMappingURL=code.d.ts.map
1
+ import { n as CodeProps, t as Code } from "../code-Cqoacc61.js";
2
+ export { Code, CodeProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";function Code({className:n,...r}){return t(`code`,{"data-slot":`code`,className:e(`bg-muted text-foreground inline-flex w-fit items-center rounded-md px-1.5 py-0.5 font-mono text-[0.875em] font-medium`,n),...r})}export{Code};
2
- //# sourceMappingURL=code.js.map
1
+ import{t as e}from"../code-A6JERAsm.js";export{e as Code};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../code-A6JERAsm.js";import{a as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";describe(`Code`,()=>{it(`renders a code element with data-slot and the default styling`,()=>{let{container:i}=n(r(e,{children:`const x = 1`})),a=i.querySelector(`[data-slot="code"]`);expect(a).not.toBeNull(),expect(a?.tagName).toBe(`CODE`),expect(t.getByText(`const x = 1`)).not.toBeNull(),expect(a?.className).toContain(`bg-muted`),expect(a?.className).toContain(`font-mono`),expect(a?.className).toContain(`rounded-md`)}),it(`merges a custom className with the base styling`,()=>{let{container:t}=n(r(e,{className:`custom-code`,children:`snippet`})),i=t.querySelector(`[data-slot="code"]`);expect(i?.className).toContain(`custom-code`),expect(i?.className).toContain(`bg-muted`)}),it(`forwards the ref to the underlying code element`,()=>{let t={current:null};n(r(e,{ref:t,children:`ref snippet`})),expect(t.current).not.toBeNull(),expect(t.current?.tagName).toBe(`CODE`)})});
2
+ //# sourceMappingURL=code.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.spec.js","names":[],"sources":["../../src/components/code.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Code } from './code'\n\ndescribe('Code', () => {\n it('renders a code element with data-slot and the default styling', () => {\n const { container } = render(<Code>const x = 1</Code>)\n\n const code = container.querySelector('[data-slot=\"code\"]')\n\n expect(code).not.toBeNull()\n expect(code?.tagName).toBe('CODE')\n expect(screen.getByText('const x = 1')).not.toBeNull()\n expect(code?.className).toContain('bg-muted')\n expect(code?.className).toContain('font-mono')\n expect(code?.className).toContain('rounded-md')\n })\n\n it('merges a custom className with the base styling', () => {\n const { container } = render(<Code className=\"custom-code\">snippet</Code>)\n\n const code = container.querySelector('[data-slot=\"code\"]')\n\n expect(code?.className).toContain('custom-code')\n expect(code?.className).toContain('bg-muted')\n })\n\n it('forwards the ref to the underlying code element', () => {\n const ref = { current: null as HTMLElement | null }\n\n render(<Code ref={ref}>ref snippet</Code>)\n\n expect(ref.current).not.toBeNull()\n expect(ref.current?.tagName).toBe('CODE')\n })\n})\n"],"mappings":"4KAIA,SAAS,WAAc,CACrB,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAM,aAAiB,CAAA,CAAC,EAE/C,EAAO,EAAU,cAAc,oBAAoB,EAEzD,OAAO,CAAI,CAAC,CAAC,IAAI,SAAS,EAC1B,OAAO,GAAM,OAAO,CAAC,CAAC,KAAK,MAAM,EACjC,OAAO,EAAO,UAAU,aAAa,CAAC,CAAC,CAAC,IAAI,SAAS,EACrD,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,UAAU,EAC5C,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,WAAW,EAC7C,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,YAAY,CAChD,CAAC,EAED,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAM,UAAU,cAAc,SAAA,SAAa,CAAA,CAAC,EAEnE,EAAO,EAAU,cAAc,oBAAoB,EAEzD,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,aAAa,EAC/C,OAAO,GAAM,SAAS,CAAC,CAAC,UAAU,UAAU,CAC9C,CAAC,EAED,GAAG,sDAAyD,CAC1D,IAAM,EAAM,CAAE,QAAS,IAA2B,EAElD,EAAO,EAAC,EAAD,CAAW,MAAK,SAAA,aAAiB,CAAA,CAAC,EAEzC,OAAO,EAAI,OAAO,CAAC,CAAC,IAAI,SAAS,EACjC,OAAO,EAAI,SAAS,OAAO,CAAC,CAAC,KAAK,MAAM,CAC1C,CAAC,CACH,CAAC"}
@@ -1,12 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Collapsible as Collapsible$1 } from "radix-ui";
3
- //#region src/components/collapsible.d.ts
4
- type CollapsibleProps = React.ComponentProps<typeof Collapsible$1.Root>;
5
- type CollapsibleTriggerProps = React.ComponentProps<typeof Collapsible$1.CollapsibleTrigger>;
6
- type CollapsibleContentProps = React.ComponentProps<typeof Collapsible$1.CollapsibleContent>;
7
- declare function Collapsible({ ...props }: CollapsibleProps): import("react").JSX.Element;
8
- declare function CollapsibleTrigger({ ...props }: CollapsibleTriggerProps): import("react").JSX.Element;
9
- declare function CollapsibleContent({ ...props }: CollapsibleContentProps): import("react").JSX.Element;
10
- //#endregion
11
- export { Collapsible, CollapsibleContent, CollapsibleContentProps, CollapsibleProps, CollapsibleTrigger, CollapsibleTriggerProps };
12
- //# sourceMappingURL=collapsible.d.ts.map
1
+ import { a as CollapsibleTrigger, i as CollapsibleProps, n as CollapsibleContent, o as CollapsibleTriggerProps, r as CollapsibleContentProps, t as Collapsible } from "../collapsible-CLSCZ630.js";
2
+ export { Collapsible, CollapsibleContent, CollapsibleContentProps, CollapsibleProps, CollapsibleTrigger, CollapsibleTriggerProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{Collapsible as e}from"radix-ui";import{jsx as t}from"react/jsx-runtime";function Collapsible({...n}){return t(e.Root,{"data-slot":`collapsible`,...n})}function CollapsibleTrigger({...n}){return t(e.CollapsibleTrigger,{"data-slot":`collapsible-trigger`,...n})}function CollapsibleContent({...n}){return t(e.CollapsibleContent,{"data-slot":`collapsible-content`,...n})}export{Collapsible,CollapsibleContent,CollapsibleTrigger};
2
- //# sourceMappingURL=collapsible.js.map
1
+ import{n as e,r as t,t as n}from"../collapsible-BH8BqfTd.js";export{n as Collapsible,e as CollapsibleContent,t as CollapsibleTrigger};
@@ -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"../collapsible-BH8BqfTd.js";import{a as r,n as i,r as a}from"../react.esm-BkhVXJ8s.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";describe(`Collapsible`,()=>{it(`renders closed by default and hides the content`,()=>{let{container:i}=a(s(n,{children:[o(t,{children:`Toggle`}),o(e,{children:`Panel content`})]})),c=i.querySelector(`[data-slot="collapsible"]`),l=r.getByRole(`button`,{name:`Toggle`}),u=i.querySelector(`[data-slot="collapsible-content"]`);expect(c?.getAttribute(`data-state`)).toBe(`closed`),expect(l.getAttribute(`aria-expanded`)).toBe(`false`),expect(u?.getAttribute(`data-state`)).toBe(`closed`),expect(u).toHaveProperty(`hidden`,!0),expect(r.queryByText(`Panel content`)).toBeNull()}),it(`opens the content when the trigger is clicked`,()=>{let{container:c}=a(s(n,{children:[o(t,{children:`Toggle`}),o(e,{children:`Panel content`})]}));i.click(r.getByRole(`button`,{name:`Toggle`}));let l=c.querySelector(`[data-slot="collapsible"]`),u=c.querySelector(`[data-slot="collapsible-content"]`);expect(l?.getAttribute(`data-state`)).toBe(`open`),expect(r.getByRole(`button`,{name:`Toggle`}).getAttribute(`aria-expanded`)).toBe(`true`),expect(u).not.toBeNull(),expect(r.getByText(`Panel content`)).not.toBeNull()}),it(`supports a controlled open state with onOpenChange`,()=>{let c=vi.fn();a(s(n,{open:!1,onOpenChange:c,children:[o(t,{children:`Toggle`}),o(e,{children:`Panel content`})]})),i.click(r.getByRole(`button`,{name:`Toggle`})),expect(c).toHaveBeenCalledWith(!0),expect(r.queryByText(`Panel content`)).toBeNull()}),it(`does not toggle when disabled`,()=>{let{container:c}=a(s(n,{disabled:!0,children:[o(t,{children:`Toggle`}),o(e,{children:`Panel content`})]})),l=r.getByRole(`button`,{name:`Toggle`});expect(l).toHaveProperty(`disabled`,!0),i.click(l),expect(c.querySelector(`[data-slot="collapsible"]`)?.getAttribute(`data-state`)).toBe(`closed`)})});
2
+ //# sourceMappingURL=collapsible.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.spec.js","names":[],"sources":["../../src/components/collapsible.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from './collapsible'\n\ndescribe('Collapsible', () => {\n it('renders closed by default and hides the content', () => {\n const { container } = render(\n <Collapsible>\n <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n <CollapsibleContent>Panel content</CollapsibleContent>\n </Collapsible>\n )\n\n const root = container.querySelector('[data-slot=\"collapsible\"]')\n const trigger = screen.getByRole('button', { name: 'Toggle' })\n const content = container.querySelector('[data-slot=\"collapsible-content\"]')\n\n expect(root?.getAttribute('data-state')).toBe('closed')\n expect(trigger.getAttribute('aria-expanded')).toBe('false')\n expect(content?.getAttribute('data-state')).toBe('closed')\n expect(content).toHaveProperty('hidden', true)\n expect(screen.queryByText('Panel content')).toBeNull()\n })\n\n it('opens the content when the trigger is clicked', () => {\n const { container } = render(\n <Collapsible>\n <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n <CollapsibleContent>Panel content</CollapsibleContent>\n </Collapsible>\n )\n\n fireEvent.click(screen.getByRole('button', { name: 'Toggle' }))\n\n const root = container.querySelector('[data-slot=\"collapsible\"]')\n const content = container.querySelector('[data-slot=\"collapsible-content\"]')\n\n expect(root?.getAttribute('data-state')).toBe('open')\n expect(screen.getByRole('button', { name: 'Toggle' }).getAttribute('aria-expanded')).toBe('true')\n expect(content).not.toBeNull()\n expect(screen.getByText('Panel content')).not.toBeNull()\n })\n\n it('supports a controlled open state with onOpenChange', () => {\n const handleOpenChange = vi.fn()\n\n render(\n <Collapsible open={false} onOpenChange={handleOpenChange}>\n <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n <CollapsibleContent>Panel content</CollapsibleContent>\n </Collapsible>\n )\n\n fireEvent.click(screen.getByRole('button', { name: 'Toggle' }))\n\n expect(handleOpenChange).toHaveBeenCalledWith(true)\n expect(screen.queryByText('Panel content')).toBeNull()\n })\n\n it('does not toggle when disabled', () => {\n const { container } = render(\n <Collapsible disabled>\n <CollapsibleTrigger>Toggle</CollapsibleTrigger>\n <CollapsibleContent>Panel content</CollapsibleContent>\n </Collapsible>\n )\n\n const trigger = screen.getByRole('button', { name: 'Toggle' })\n\n expect(trigger).toHaveProperty('disabled', true)\n\n fireEvent.click(trigger)\n\n expect(container.querySelector('[data-slot=\"collapsible\"]')?.getAttribute('data-state')).toBe('closed')\n })\n})\n"],"mappings":"kNAIA,SAAS,kBAAqB,CAC5B,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAoB,QAA0B,CAAA,EAC9C,EAAC,EAAD,CAAA,SAAoB,eAAiC,CAAA,CAC1C,CAAA,CAAA,CACf,EAEM,EAAO,EAAU,cAAc,2BAA2B,EAC1D,EAAU,EAAO,UAAU,SAAU,CAAE,KAAM,QAAS,CAAC,EACvD,EAAU,EAAU,cAAc,mCAAmC,EAE3E,OAAO,GAAM,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACtD,OAAO,EAAQ,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,EAC1D,OAAO,GAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACzD,OAAO,CAAO,CAAC,CAAC,eAAe,SAAU,EAAI,EAC7C,OAAO,EAAO,YAAY,eAAe,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC,EAED,GAAG,oDAAuD,CACxD,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAoB,QAA0B,CAAA,EAC9C,EAAC,EAAD,CAAA,SAAoB,eAAiC,CAAA,CAC1C,CAAA,CAAA,CACf,EAEA,EAAU,MAAM,EAAO,UAAU,SAAU,CAAE,KAAM,QAAS,CAAC,CAAC,EAE9D,IAAM,EAAO,EAAU,cAAc,2BAA2B,EAC1D,EAAU,EAAU,cAAc,mCAAmC,EAE3E,OAAO,GAAM,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EACpD,OAAO,EAAO,UAAU,SAAU,CAAE,KAAM,QAAS,CAAC,CAAC,CAAC,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,EAChG,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,EAAO,UAAU,eAAe,CAAC,CAAC,CAAC,IAAI,SAAS,CACzD,CAAC,EAED,GAAG,yDAA4D,CAC7D,IAAM,EAAmB,GAAG,GAAG,EAE/B,EACE,EAAC,EAAD,CAAa,KAAM,GAAO,aAAc,EAAxC,SAAA,CACE,EAAC,EAAD,CAAA,SAAoB,QAA0B,CAAA,EAC9C,EAAC,EAAD,CAAA,SAAoB,eAAiC,CAAA,CAC1C,CACf,CAAA,CAAA,EAEA,EAAU,MAAM,EAAO,UAAU,SAAU,CAAE,KAAM,QAAS,CAAC,CAAC,EAE9D,OAAO,CAAgB,CAAC,CAAC,qBAAqB,EAAI,EAClD,OAAO,EAAO,YAAY,eAAe,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC,EAED,GAAG,oCAAuC,CACxC,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAa,SAAA,GAAb,SAAA,CACE,EAAC,EAAD,CAAA,SAAoB,QAA0B,CAAA,EAC9C,EAAC,EAAD,CAAA,SAAoB,eAAiC,CAAA,CAC1C,CACf,CAAA,CAAA,EAEM,EAAU,EAAO,UAAU,SAAU,CAAE,KAAM,QAAS,CAAC,EAE7D,OAAO,CAAO,CAAC,CAAC,eAAe,WAAY,EAAI,EAE/C,EAAU,MAAM,CAAO,EAEvB,OAAO,EAAU,cAAc,2BAA2B,CAAC,EAAE,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CACxG,CAAC,CACH,CAAC"}
@@ -1,51 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- import { Combobox as Combobox$1 } from "@base-ui/react";
4
- //#region src/components/combobox.d.ts
5
- type ComboboxProps = React.ComponentProps<typeof Combobox$1.Root>;
6
- type ComboboxValueProps = Combobox$1.Value.Props;
7
- type ComboboxTriggerProps = Combobox$1.Trigger.Props & {
8
- icon?: React.ReactNode;
9
- };
10
- type ComboboxClearProps = Combobox$1.Clear.Props;
11
- type ComboboxInputProps = Combobox$1.Input.Props & {
12
- icon?: React.ReactNode;
13
- triggerIcon?: React.ReactNode;
14
- showTrigger?: boolean;
15
- showClear?: boolean;
16
- };
17
- type ComboboxContentProps = Combobox$1.Popup.Props & Pick<Combobox$1.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'> & Pick<Combobox$1.Portal.Props, 'container'>;
18
- type ComboboxListProps = Combobox$1.List.Props;
19
- type ComboboxItemProps = Combobox$1.Item.Props;
20
- type ComboboxGroupProps = Combobox$1.Group.Props;
21
- type ComboboxLabelProps = Combobox$1.GroupLabel.Props;
22
- type ComboboxCollectionProps = Combobox$1.Collection.Props;
23
- type ComboboxEmptyProps = Combobox$1.Empty.Props;
24
- type ComboboxSeparatorProps = Combobox$1.Separator.Props;
25
- type ComboboxChipsProps = React.ComponentPropsWithRef<typeof Combobox$1.Chips> & Combobox$1.Chips.Props & {
26
- showClear?: boolean;
27
- };
28
- type ComboboxChipProps = Combobox$1.Chip.Props & {
29
- showRemove?: boolean;
30
- };
31
- type ComboboxChipsInputProps = Combobox$1.Input.Props;
32
- declare const Combobox: typeof Combobox$1.Root;
33
- declare function ComboboxValue({ ...props }: ComboboxValueProps): React.JSX.Element;
34
- declare function ComboboxTrigger({ className, children, icon, ...props }: ComboboxTriggerProps): React.JSX.Element;
35
- declare function ComboboxClear({ className, ...props }: ComboboxClearProps): React.JSX.Element;
36
- declare function ComboboxInput({ className, children, disabled, icon, id, showTrigger, showClear, triggerIcon, ...props }: ComboboxInputProps): React.JSX.Element;
37
- declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, container, ...props }: ComboboxContentProps): React.JSX.Element;
38
- declare function ComboboxList({ className, ...props }: ComboboxListProps): React.JSX.Element;
39
- declare function ComboboxItem({ className, children, ...props }: ComboboxItemProps): React.JSX.Element;
40
- declare function ComboboxGroup({ className, ...props }: ComboboxGroupProps): React.JSX.Element;
41
- declare function ComboboxLabel({ className, ...props }: ComboboxLabelProps): React.JSX.Element;
42
- declare function ComboboxCollection({ ...props }: ComboboxCollectionProps): React.JSX.Element;
43
- declare function ComboboxEmpty({ className, ...props }: ComboboxEmptyProps): React.JSX.Element;
44
- declare function ComboboxSeparator({ className, ...props }: ComboboxSeparatorProps): React.JSX.Element;
45
- declare function ComboboxChips({ className, children, showClear, ...props }: ComboboxChipsProps): React.JSX.Element;
46
- declare function ComboboxChip({ className, children, showRemove, ...props }: ComboboxChipProps): React.JSX.Element;
47
- declare function ComboboxChipsInput({ className, id, ...props }: ComboboxChipsInputProps): React.JSX.Element;
48
- declare function useComboboxAnchor(): React.RefObject<HTMLDivElement | null>;
49
- //#endregion
50
- export { Combobox, ComboboxChip, ComboboxChipProps, ComboboxChips, ComboboxChipsInput, ComboboxChipsInputProps, ComboboxChipsProps, ComboboxClear, ComboboxClearProps, ComboboxCollection, ComboboxCollectionProps, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxEmptyProps, ComboboxGroup, ComboboxGroupProps, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxLabel, ComboboxLabelProps, ComboboxList, ComboboxListProps, ComboboxProps, ComboboxSeparator, ComboboxSeparatorProps, ComboboxTrigger, ComboboxTriggerProps, ComboboxValue, ComboboxValueProps, useComboboxAnchor };
51
- //# sourceMappingURL=combobox.d.ts.map
1
+ import { A as ComboboxTriggerProps, C as ComboboxLabelProps, D as ComboboxSeparator, E as ComboboxProps, M as ComboboxValueProps, N as useComboboxAnchor, O as ComboboxSeparatorProps, S as ComboboxLabel, T as ComboboxListProps, _ as ComboboxGroupProps, a as ComboboxChipsInput, b as ComboboxItem, c as ComboboxClear, d as ComboboxCollectionProps, f as ComboboxContent, g as ComboboxGroup, h as ComboboxEmptyProps, i as ComboboxChips, j as ComboboxValue, k as ComboboxTrigger, l as ComboboxClearProps, m as ComboboxEmpty, n as ComboboxChip, o as ComboboxChipsInputProps, p as ComboboxContentProps, r as ComboboxChipProps, s as ComboboxChipsProps, t as Combobox, u as ComboboxCollection, v as ComboboxInput, w as ComboboxList, x as ComboboxItemProps, y as ComboboxInputProps } from "../combobox-DkCRXUxd.js";
2
+ export { Combobox, ComboboxChip, ComboboxChipProps, ComboboxChips, ComboboxChipsInput, ComboboxChipsInputProps, ComboboxChipsProps, ComboboxClear, ComboboxClearProps, ComboboxCollection, ComboboxCollectionProps, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxEmptyProps, ComboboxGroup, ComboboxGroupProps, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxLabel, ComboboxLabelProps, ComboboxList, ComboboxListProps, ComboboxProps, ComboboxSeparator, ComboboxSeparatorProps, ComboboxTrigger, ComboboxTriggerProps, ComboboxValue, ComboboxValueProps, useComboboxAnchor };
@@ -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{useFieldControlId as n}from"./field.js";import{InputGroup as r,InputGroupAddon as i,InputGroupButton as a,InputGroupInput as o}from"./input-group.js";import{IconCheck as s,IconSelector as c,IconX as l}from"@tabler/icons-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import*as f from"react";import{Combobox as p}from"@base-ui/react";const m=p.Root;function ComboboxValue({...e}){return u(p.Value,{"data-slot":`combobox-value`,...e})}function ComboboxTrigger({className:t,children:n,icon:r=u(c,{className:`pointer-events-none size-4 text-muted-foreground`}),...i}){return d(p.Trigger,{"data-slot":`combobox-trigger`,className:e(`[&_svg:not([class*='size-'])]:size-4`,t),...i,children:[n,r]})}function ComboboxClear({className:t,...n}){return u(p.Clear,{"data-slot":`combobox-clear`,render:u(a,{variant:`ghost`,size:`icon-xs`}),className:e(t),...n,children:u(l,{className:`pointer-events-none`})})}function ComboboxInput({className:t,children:s,disabled:c=!1,icon:l,id:f,showTrigger:m=!0,showClear:h=!1,triggerIcon:g,..._}){let v=n(f);return d(r,{className:e(`w-auto`,t),children:[l&&u(i,{align:`inline-start`,children:l}),u(p.Input,{id:v,render:u(o,{disabled:c}),..._}),d(i,{align:`inline-end`,children:[m&&u(a,{size:`icon-xs`,variant:`ghost`,asChild:!0,"data-slot":`input-group-button`,className:`group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent`,disabled:c,children:u(ComboboxTrigger,{icon:g})}),h&&u(ComboboxClear,{disabled:c})]}),s]})}function ComboboxContent({className:t,side:n=`bottom`,sideOffset:r=6,align:i=`start`,alignOffset:a=0,anchor:o,container:s,...c}){return u(p.Portal,{container:s,className:`absolute`,children:u(p.Positioner,{side:n,sideOffset:r,align:i,alignOffset:a,anchor:o,className:`isolate z-50`,children:u(p.Popup,{"data-slot":`combobox-content`,"data-chips":!!o,className:e(`group/combobox-content max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+(--spacing(7)))] origin-(--transform-origin) overflow-hidden rounded-lg text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!`,t),...c})})})}function ComboboxList({className:t,...n}){return u(p.List,{"data-slot":`combobox-list`,className:e(`no-scrollbar max-h-[min(calc(--spacing(72)-(--spacing(9))),calc(var(--available-height)-(--spacing(9))))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0`,t),...n})}function ComboboxItem({className:t,children:n,...r}){return d(p.Item,{"data-slot":`combobox-item`,className:e(`relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,u(p.ItemIndicator,{render:u(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`}),children:u(s,{className:`pointer-events-none`})})]})}function ComboboxGroup({className:t,...n}){return u(p.Group,{"data-slot":`combobox-group`,className:e(t),...n})}function ComboboxLabel({className:t,...n}){return u(p.GroupLabel,{"data-slot":`combobox-label`,className:e(`px-2 py-1.5 text-xs text-muted-foreground`,t),...n})}function ComboboxCollection({...e}){return u(p.Collection,{"data-slot":`combobox-collection`,...e})}function ComboboxEmpty({className:t,...n}){return u(p.Empty,{"data-slot":`combobox-empty`,className:e(`hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex`,t),...n})}function ComboboxSeparator({className:t,...n}){return u(p.Separator,{"data-slot":`combobox-separator`,className:e(`-mx-1 my-1 h-px bg-border`,t),...n})}function ComboboxChips({className:n,children:r,showClear:i=!1,...a}){return d(p.Chips,{"data-slot":`combobox-chips`,className:e(`flex min-h-8 overflow-hidden flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40`,n),...a,children:[r,i&&u(p.Clear,{"data-slot":`combobox-chips-clear`,render:u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`shrink-0 self-center size-5`,children:u(l,{className:`pointer-events-none`})})]})}function ComboboxChip({className:n,children:r,showRemove:i=!0,...a}){return d(p.Chip,{"data-slot":`combobox-chip`,className:e(`flex h-[calc(--spacing(5.25))] w-fit text-left max-w-full items-center justify-start gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0`,n),...a,children:[u(`span`,{className:`flex-1 truncate`,children:r}),i&&u(p.ChipRemove,{render:u(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`}),className:`-ml-1 opacity-50 shrink-0 hover:opacity-100`,"data-slot":`combobox-chip-remove`,children:u(l,{className:`pointer-events-none`})})]})}function ComboboxChipsInput({className:t,id:r,...i}){let a=n(r);return u(p.Input,{id:a,"data-slot":`combobox-chip-input`,className:e(`min-w-16 flex-1 outline-none`,t),...i})}function useComboboxAnchor(){return f.useRef(null)}export{m as Combobox,ComboboxChip,ComboboxChips,ComboboxChipsInput,ComboboxClear,ComboboxCollection,ComboboxContent,ComboboxEmpty,ComboboxGroup,ComboboxInput,ComboboxItem,ComboboxLabel,ComboboxList,ComboboxSeparator,ComboboxTrigger,ComboboxValue,useComboboxAnchor};
2
- //# sourceMappingURL=combobox.js.map
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"../combobox-fNAIovsN.js";export{h as Combobox,u as ComboboxChip,p as ComboboxChips,s as ComboboxChipsInput,t as ComboboxClear,d as ComboboxCollection,m as ComboboxContent,n as ComboboxEmpty,c as ComboboxGroup,g as ComboboxInput,r as ComboboxItem,i as ComboboxLabel,f as ComboboxList,l as ComboboxSeparator,o as ComboboxTrigger,a as ComboboxValue,e as useComboboxAnchor};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{c as e,d as t,h as n,i as r,n as i,o as a,p as o,r as s,s as c,t as l,u}from"../combobox-fNAIovsN.js";import{a as d,n as f,o as p,r as m}from"../react.esm-BkhVXJ8s.js";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{useState as _}from"react";const v=[{value:`react`,label:`React`},{value:`vue`,label:`Vue`},{value:`svelte`,label:`Svelte`}];function SingleCombobox(){let[n,r]=_(null);return g(l,{items:v,value:n,onValueChange:r,children:[h(u,{placeholder:`Select a framework`,showClear:!0}),h(c,{children:g(o,{children:[h(e,{children:`No results found.`}),h(a,{children:e=>h(t,{value:e,children:e.label},e.value)})]})})]})}function MultipleCombobox(){let[n,u]=_([v[0]]);return g(l,{multiple:!0,items:v,value:n,onValueChange:u,children:[g(s,{showClear:!0,children:[n.map(e=>h(i,{children:e.label},e.value)),h(r,{placeholder:`Add a framework`})]}),h(c,{children:g(o,{children:[h(e,{children:`No results found.`}),h(a,{children:e=>h(t,{value:e,children:e.label},e.value)})]})})]})}describe(`Combobox`,()=>{describe(`ComboboxTrigger`,()=>{it(`renders with data-slot="combobox-trigger" and a default select icon when used standalone`,()=>{let{container:e}=m(h(l,{items:v,children:h(n,{})})),t=e.querySelector(`[data-slot="combobox-trigger"]`);expect(t).not.toBeNull(),expect(t?.querySelector(`svg`)).not.toBeNull()})}),it(`renders a trigger button and the placeholder text inside the input group`,()=>{m(h(SingleCombobox,{})),expect(d.getByRole(`button`)).not.toBeNull(),expect(d.getByPlaceholderText(`Select a framework`)).not.toBeNull()}),it(`opens the popup and lists every item when the trigger is clicked`,async()=>{m(h(SingleCombobox,{})),f.click(d.getByRole(`button`)),expect(await d.findByText(`React`)).not.toBeNull(),expect(d.getByText(`Vue`)).not.toBeNull(),expect(d.getByText(`Svelte`)).not.toBeNull()}),it(`selects an item on click and fills the input with its label`,async()=>{m(h(SingleCombobox,{}));let e=d.getByPlaceholderText(`Select a framework`);f.click(d.getByRole(`button`)),f.click(await d.findByText(`Vue`)),await p(()=>expect(e.value).toBe(`Vue`))}),it(`shows the clear button once a value is selected and clears it when clicked`,async()=>{let{container:e}=m(h(SingleCombobox,{}));expect(e.querySelector(`[data-slot="combobox-clear"]`)).toBeNull();let t=d.getByPlaceholderText(`Select a framework`);f.click(d.getByRole(`button`)),f.click(await d.findByText(`React`)),await p(()=>expect(t.value).toBe(`React`));let n=await p(()=>{let t=e.querySelector(`[data-slot="combobox-clear"]`);return expect(t).not.toBeNull(),t});f.click(n),await p(()=>expect(t.value).toBe(``))}),it(`shows the empty state when the filter query matches nothing`,async()=>{m(h(SingleCombobox,{}));let e=d.getByPlaceholderText(`Select a framework`);f.click(d.getByRole(`button`)),f.change(e,{target:{value:`nonexistent framework`}}),expect(await d.findByText(`No results found.`)).not.toBeNull()}),describe(`multiple selection`,()=>{it(`renders a chip per selected value and an input for adding more`,()=>{let{container:e}=m(h(MultipleCombobox,{}));expect(e.querySelector(`[data-slot="combobox-chips"]`)).not.toBeNull(),expect(e.querySelectorAll(`[data-slot="combobox-chip"]`)).toHaveLength(1),expect(d.getByText(`React`)).not.toBeNull(),expect(d.getByPlaceholderText(`Add a framework`)).not.toBeNull()}),it(`removes a chip when its remove button is clicked`,()=>{let{container:e}=m(h(MultipleCombobox,{})),t=e.querySelector(`[data-slot="combobox-chip"]`).querySelector(`[data-slot="combobox-chip-remove"]`);f.click(t),expect(e.querySelectorAll(`[data-slot="combobox-chip"]`)).toHaveLength(0)})})});
2
+ //# sourceMappingURL=combobox.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.spec.js","names":["waitFor"],"sources":["../../src/components/combobox.spec.tsx"],"sourcesContent":["import { useState } from 'react'\n\nimport { fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxCollection,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxList,\n ComboboxTrigger\n} from './combobox'\n\ntype Framework = { value: string; label: string }\n\nconst frameworks: Framework[] = [\n { value: 'react', label: 'React' },\n { value: 'vue', label: 'Vue' },\n { value: 'svelte', label: 'Svelte' }\n]\n\nfunction SingleCombobox() {\n const [value, setValue] = useState<Framework | null>(null)\n\n return (\n <Combobox items={frameworks} value={value} onValueChange={setValue}>\n <ComboboxInput placeholder=\"Select a framework\" showClear />\n <ComboboxContent>\n <ComboboxList>\n <ComboboxEmpty>No results found.</ComboboxEmpty>\n <ComboboxCollection>\n {(item: Framework) => (\n <ComboboxItem key={item.value} value={item}>\n {item.label}\n </ComboboxItem>\n )}\n </ComboboxCollection>\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n )\n}\n\nfunction MultipleCombobox() {\n const [value, setValue] = useState<Framework[]>([frameworks[0]!])\n\n return (\n <Combobox multiple items={frameworks} value={value} onValueChange={setValue}>\n <ComboboxChips showClear>\n {value.map((item) => (\n <ComboboxChip key={item.value}>{item.label}</ComboboxChip>\n ))}\n <ComboboxChipsInput placeholder=\"Add a framework\" />\n </ComboboxChips>\n <ComboboxContent>\n <ComboboxList>\n <ComboboxEmpty>No results found.</ComboboxEmpty>\n <ComboboxCollection>\n {(item: Framework) => (\n <ComboboxItem key={item.value} value={item}>\n {item.label}\n </ComboboxItem>\n )}\n </ComboboxCollection>\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n )\n}\n\ndescribe('Combobox', () => {\n describe('ComboboxTrigger', () => {\n it('renders with data-slot=\"combobox-trigger\" and a default select icon when used standalone', () => {\n const { container } = render(\n <Combobox items={frameworks}>\n <ComboboxTrigger />\n </Combobox>\n )\n\n const trigger = container.querySelector('[data-slot=\"combobox-trigger\"]')\n\n expect(trigger).not.toBeNull()\n expect(trigger?.querySelector('svg')).not.toBeNull()\n })\n })\n\n it('renders a trigger button and the placeholder text inside the input group', () => {\n render(<SingleCombobox />)\n\n expect(screen.getByRole('button')).not.toBeNull()\n expect(screen.getByPlaceholderText('Select a framework')).not.toBeNull()\n })\n\n it('opens the popup and lists every item when the trigger is clicked', async () => {\n render(<SingleCombobox />)\n\n fireEvent.click(screen.getByRole('button'))\n\n expect(await screen.findByText('React')).not.toBeNull()\n expect(screen.getByText('Vue')).not.toBeNull()\n expect(screen.getByText('Svelte')).not.toBeNull()\n })\n\n it('selects an item on click and fills the input with its label', async () => {\n render(<SingleCombobox />)\n\n const input = screen.getByPlaceholderText('Select a framework') as HTMLInputElement\n\n fireEvent.click(screen.getByRole('button'))\n fireEvent.click(await screen.findByText('Vue'))\n\n await waitFor(() => expect(input.value).toBe('Vue'))\n })\n\n it('shows the clear button once a value is selected and clears it when clicked', async () => {\n const { container } = render(<SingleCombobox />)\n\n expect(container.querySelector('[data-slot=\"combobox-clear\"]')).toBeNull()\n\n const input = screen.getByPlaceholderText('Select a framework') as HTMLInputElement\n\n fireEvent.click(screen.getByRole('button'))\n fireEvent.click(await screen.findByText('React'))\n\n await waitFor(() => expect(input.value).toBe('React'))\n\n const clearButton = await waitFor(() => {\n const button = container.querySelector('[data-slot=\"combobox-clear\"]')\n expect(button).not.toBeNull()\n return button as HTMLElement\n })\n\n fireEvent.click(clearButton)\n\n await waitFor(() => expect(input.value).toBe(''))\n })\n\n it('shows the empty state when the filter query matches nothing', async () => {\n render(<SingleCombobox />)\n\n const input = screen.getByPlaceholderText('Select a framework')\n\n fireEvent.click(screen.getByRole('button'))\n fireEvent.change(input, { target: { value: 'nonexistent framework' } })\n\n expect(await screen.findByText('No results found.')).not.toBeNull()\n })\n\n describe('multiple selection', () => {\n it('renders a chip per selected value and an input for adding more', () => {\n const { container } = render(<MultipleCombobox />)\n\n expect(container.querySelector('[data-slot=\"combobox-chips\"]')).not.toBeNull()\n expect(container.querySelectorAll('[data-slot=\"combobox-chip\"]')).toHaveLength(1)\n expect(screen.getByText('React')).not.toBeNull()\n expect(screen.getByPlaceholderText('Add a framework')).not.toBeNull()\n })\n\n it('removes a chip when its remove button is clicked', () => {\n const { container } = render(<MultipleCombobox />)\n\n const chip = container.querySelector('[data-slot=\"combobox-chip\"]') as HTMLElement\n const removeButton = chip.querySelector('[data-slot=\"combobox-chip-remove\"]') as HTMLElement\n\n fireEvent.click(removeButton)\n\n expect(container.querySelectorAll('[data-slot=\"combobox-chip\"]')).toHaveLength(0)\n })\n })\n})\n"],"mappings":"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"}
@@ -1,31 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Dialog } from "./dialog.js";
3
- import * as React from "react";
4
- import { Command as Command$1 } from "cmdk";
5
- //#region src/components/command.d.ts
6
- type CommandProps = React.ComponentProps<typeof Command$1>;
7
- type CommandDialogProps = React.ComponentProps<typeof Dialog> & {
8
- title?: string;
9
- description?: string;
10
- className?: string;
11
- showCloseButton?: boolean;
12
- };
13
- type CommandInputProps = React.ComponentProps<typeof Command$1.Input>;
14
- type CommandListProps = React.ComponentProps<typeof Command$1.List>;
15
- type CommandEmptyProps = React.ComponentProps<typeof Command$1.Empty>;
16
- type CommandGroupProps = React.ComponentProps<typeof Command$1.Group>;
17
- type CommandSeparatorProps = React.ComponentProps<typeof Command$1.Separator>;
18
- type CommandItemProps = React.ComponentProps<typeof Command$1.Item>;
19
- type CommandShortcutProps = React.ComponentProps<'span'>;
20
- declare function Command({ className, ...props }: CommandProps): React.JSX.Element;
21
- declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: CommandDialogProps): React.JSX.Element;
22
- declare function CommandInput({ className, id, ...props }: CommandInputProps): React.JSX.Element;
23
- declare function CommandList({ className, ...props }: CommandListProps): React.JSX.Element;
24
- declare function CommandEmpty({ className, ...props }: CommandEmptyProps): React.JSX.Element;
25
- declare function CommandGroup({ className, ...props }: CommandGroupProps): React.JSX.Element;
26
- declare function CommandSeparator({ className, ...props }: CommandSeparatorProps): React.JSX.Element;
27
- declare function CommandItem({ className, children, ...props }: CommandItemProps): React.JSX.Element;
28
- declare function CommandShortcut({ className, ...props }: CommandShortcutProps): React.JSX.Element;
29
- //#endregion
30
- export { Command, CommandDialog, CommandDialogProps, CommandEmpty, CommandEmptyProps, CommandGroup, CommandGroupProps, CommandInput, CommandInputProps, CommandItem, CommandItemProps, CommandList, CommandListProps, CommandProps, CommandSeparator, CommandSeparatorProps, CommandShortcut, CommandShortcutProps };
31
- //# sourceMappingURL=command.d.ts.map
1
+ import { _ as CommandShortcut, a as CommandEmptyProps, c as CommandInput, d as CommandItemProps, f as CommandList, g as CommandSeparatorProps, h as CommandSeparator, i as CommandEmpty, l as CommandInputProps, m as CommandProps, n as CommandDialog, o as CommandGroup, p as CommandListProps, r as CommandDialogProps, s as CommandGroupProps, t as Command, u as CommandItem, v as CommandShortcutProps } from "../command-D4pNOx0J.js";
2
+ export { Command, CommandDialog, CommandDialogProps, CommandEmpty, CommandEmptyProps, CommandGroup, CommandGroupProps, CommandInput, CommandInputProps, CommandItem, CommandItemProps, CommandList, CommandListProps, CommandProps, CommandSeparator, CommandSeparatorProps, CommandShortcut, CommandShortcutProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{useFieldControlId as t}from"./field.js";import{InputGroup as n,InputGroupAddon as r}from"./input-group.js";import{Dialog as i,DialogContent as a,DialogDescription as o,DialogHeader as s,DialogTitle as c}from"./dialog.js";import{IconCheck as l,IconSearch as u}from"@tabler/icons-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{Command as p}from"cmdk";function Command({className:t,...n}){return d(p,{"data-slot":`command`,className:e(`flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground`,t),...n})}function CommandDialog({title:t=`Command Palette`,description:n=`Search for a command to run...`,children:r,className:l,showCloseButton:u=!1,...p}){return f(i,{...p,children:[f(s,{className:`sr-only`,children:[d(c,{children:t}),d(o,{children:n})]}),d(a,{className:e(`top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0`,l),showCloseButton:u,children:r})]})}function CommandInput({className:i,id:a,...o}){let s=t(a);return d(`div`,{"data-slot":`command-input-wrapper`,className:`p-1 pb-0`,children:f(n,{className:e(`h-8! rounded-lg! border-input/30 bg-input/30 shadow-none!`,`*:data-[slot=input-group-addon]:pl-2!`),children:[d(p.Input,{id:s,"data-slot":`command-input`,className:e(`w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50`,i),...o}),d(r,{children:d(u,{className:`size-4 shrink-0 opacity-50`})})]})})}function CommandList({className:t,...n}){return d(p.List,{"data-slot":`command-list`,className:e(`no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none`,t),...n})}function CommandEmpty({className:t,...n}){return d(p.Empty,{"data-slot":`command-empty`,className:e(`py-6 text-center text-sm`,t),...n})}function CommandGroup({className:t,...n}){return d(p.Group,{"data-slot":`command-group`,className:e(`overflow-hidden p-1 text-foreground`,`**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5`,`**:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium`,`**:[[cmdk-group-heading]]:text-muted-foreground`,t),...n})}function CommandSeparator({className:t,...n}){return d(p.Separator,{"data-slot":`command-separator`,className:e(`-mx-1 h-px bg-border`,t),...n})}function CommandItem({className:t,children:n,...r}){return f(p.Item,{"data-slot":`command-item`,className:e(`group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none`,`in-data-[slot=dialog-content]:rounded-lg!`,`data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,`data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground`,`[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...r,children:[n,d(l,{className:e(`ml-auto opacity-0`,`group-has-data-[slot=command-shortcut]/command-item:hidden`,`group-data-[checked=true]/command-item:opacity-100`)})]})}function CommandShortcut({className:t,...n}){return d(`span`,{"data-slot":`command-shortcut`,className:e(`ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground`,t),...n})}export{Command,CommandDialog,CommandEmpty,CommandGroup,CommandInput,CommandItem,CommandList,CommandSeparator,CommandShortcut};
2
- //# sourceMappingURL=command.js.map
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../command-0wTb46Ym.js";export{c as Command,i as CommandDialog,o as CommandEmpty,n as CommandGroup,e as CommandInput,a as CommandItem,s as CommandList,t as CommandSeparator,r as CommandShortcut};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"../command-0wTb46Ym.js";import{a as l,n as u,o as d,r as f}from"../react.esm-BkhVXJ8s.js";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{useState as h}from"react";var MockResizeObserver=class{observe(){}unobserve(){}disconnect(){}};beforeAll(()=>{Element.prototype.scrollIntoView=vi.fn(),global.ResizeObserver=MockResizeObserver});function BasicCommand(){return m(c,{children:[p(e,{placeholder:`Search actions...`}),m(s,{children:[p(o,{children:`Nothing found.`}),m(n,{heading:`Shortcuts`,children:[m(a,{value:`changelog`,children:[`Open changelog`,p(r,{children:`G C`})]}),p(a,{value:`release`,children:`Generate release`})]}),p(t,{}),p(n,{heading:`Docs`,children:p(a,{value:`components`,children:`Components`})})]})]})}describe(`Command`,()=>{it(`renders the search input inside its wrapper with a search icon addon`,()=>{let{container:e}=f(p(BasicCommand,{}));expect(e.querySelector(`[data-slot="command-input-wrapper"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="command-input"]`)).not.toBeNull(),expect(l.getByPlaceholderText(`Search actions...`)).not.toBeNull()}),it(`renders groups, items, a separator and the shortcut hint`,()=>{let{container:e}=f(p(BasicCommand,{}));expect(l.getByText(`Shortcuts`)).not.toBeNull(),expect(l.getByText(`Docs`)).not.toBeNull(),expect(l.getByText(`Open changelog`)).not.toBeNull(),expect(l.getByText(`G C`)).not.toBeNull(),expect(e.querySelector(`[data-slot="command-separator"]`)).not.toBeNull()}),it(`filters items based on the input value and shows CommandEmpty when nothing matches`,()=>{f(p(BasicCommand,{}));let e=l.getByPlaceholderText(`Search actions...`);u.change(e,{target:{value:`components`}}),expect(l.queryByText(`Open changelog`)).toBeNull(),expect(l.getByText(`Components`)).not.toBeNull(),u.change(e,{target:{value:`this matches nothing`}}),expect(l.getByText(`Nothing found.`)).not.toBeNull()}),describe(`CommandItem`,()=>{it(`marks an item selected on pointer move via aria-selected and data-selected`,()=>{f(p(BasicCommand,{}));let e=l.getByText(`Components`).closest(`[data-slot="command-item"]`);u.pointerMove(e),expect(e.getAttribute(`aria-selected`)).toBe(`true`),expect(e.getAttribute(`data-selected`)).toBe(`true`)})})}),describe(`CommandDialog`,()=>{it(`renders the command palette inside a dialog and closes on Escape`,async()=>{function Wrapper(){let[t,n]=h(!0);return p(i,{open:t,onOpenChange:n,children:m(c,{children:[p(e,{placeholder:`Search actions...`}),m(s,{children:[p(o,{children:`Nothing found.`}),p(a,{value:`new-story`,children:`New story`})]})]})})}f(p(Wrapper,{})),expect(await l.findByRole(`dialog`)).not.toBeNull(),expect(l.getByText(`New story`)).not.toBeNull(),u.keyDown(document,{key:`Escape`,code:`Escape`}),await d(()=>expect(l.queryByRole(`dialog`)).toBeNull())}),it(`uses the provided title and description for the accessible header`,async()=>{f(p(i,{defaultOpen:!0,title:`Quick actions`,description:`Search and run a command`,children:p(c,{children:p(s,{children:p(a,{value:`only-item`,children:`Only item`})})})})),await l.findByRole(`dialog`),expect(l.getByText(`Quick actions`)).not.toBeNull(),expect(l.getByText(`Search and run a command`)).not.toBeNull()})});
2
+ //# sourceMappingURL=command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.spec.js","names":["waitFor"],"sources":["../../src/components/command.spec.tsx"],"sourcesContent":["import { useState } from 'react'\n\nimport { fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut\n} from './command'\n\n// cmdk scrolls the selected item into view on selection changes and observes the list's size;\n// neither scrollIntoView nor ResizeObserver is implemented in jsdom.\nclass MockResizeObserver {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nbeforeAll(() => {\n Element.prototype.scrollIntoView = vi.fn()\n global.ResizeObserver = MockResizeObserver\n})\n\nfunction BasicCommand() {\n return (\n <Command>\n <CommandInput placeholder=\"Search actions...\" />\n <CommandList>\n <CommandEmpty>Nothing found.</CommandEmpty>\n <CommandGroup heading=\"Shortcuts\">\n <CommandItem value=\"changelog\">\n Open changelog\n <CommandShortcut>G C</CommandShortcut>\n </CommandItem>\n <CommandItem value=\"release\">Generate release</CommandItem>\n </CommandGroup>\n <CommandSeparator />\n <CommandGroup heading=\"Docs\">\n <CommandItem value=\"components\">Components</CommandItem>\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}\n\ndescribe('Command', () => {\n it('renders the search input inside its wrapper with a search icon addon', () => {\n const { container } = render(<BasicCommand />)\n\n expect(container.querySelector('[data-slot=\"command-input-wrapper\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"command-input\"]')).not.toBeNull()\n expect(screen.getByPlaceholderText('Search actions...')).not.toBeNull()\n })\n\n it('renders groups, items, a separator and the shortcut hint', () => {\n const { container } = render(<BasicCommand />)\n\n expect(screen.getByText('Shortcuts')).not.toBeNull()\n expect(screen.getByText('Docs')).not.toBeNull()\n expect(screen.getByText('Open changelog')).not.toBeNull()\n expect(screen.getByText('G C')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"command-separator\"]')).not.toBeNull()\n })\n\n it('filters items based on the input value and shows CommandEmpty when nothing matches', () => {\n render(<BasicCommand />)\n\n const input = screen.getByPlaceholderText('Search actions...')\n\n fireEvent.change(input, { target: { value: 'components' } })\n\n expect(screen.queryByText('Open changelog')).toBeNull()\n expect(screen.getByText('Components')).not.toBeNull()\n\n fireEvent.change(input, { target: { value: 'this matches nothing' } })\n\n expect(screen.getByText('Nothing found.')).not.toBeNull()\n })\n\n describe('CommandItem', () => {\n it('marks an item selected on pointer move via aria-selected and data-selected', () => {\n render(<BasicCommand />)\n\n const item = screen.getByText('Components').closest('[data-slot=\"command-item\"]') as HTMLElement\n\n fireEvent.pointerMove(item)\n\n expect(item.getAttribute('aria-selected')).toBe('true')\n expect(item.getAttribute('data-selected')).toBe('true')\n })\n })\n})\n\ndescribe('CommandDialog', () => {\n it('renders the command palette inside a dialog and closes on Escape', async () => {\n function Wrapper() {\n const [open, setOpen] = useState(true)\n\n return (\n <CommandDialog open={open} onOpenChange={setOpen}>\n <Command>\n <CommandInput placeholder=\"Search actions...\" />\n <CommandList>\n <CommandEmpty>Nothing found.</CommandEmpty>\n <CommandItem value=\"new-story\">New story</CommandItem>\n </CommandList>\n </Command>\n </CommandDialog>\n )\n }\n\n render(<Wrapper />)\n\n expect(await screen.findByRole('dialog')).not.toBeNull()\n expect(screen.getByText('New story')).not.toBeNull()\n\n fireEvent.keyDown(document, { key: 'Escape', code: 'Escape' })\n\n await waitFor(() => expect(screen.queryByRole('dialog')).toBeNull())\n })\n\n it('uses the provided title and description for the accessible header', async () => {\n render(\n <CommandDialog defaultOpen title=\"Quick actions\" description=\"Search and run a command\">\n <Command>\n <CommandList>\n <CommandItem value=\"only-item\">Only item</CommandItem>\n </CommandList>\n </Command>\n </CommandDialog>\n )\n\n await screen.findByRole('dialog')\n\n expect(screen.getByText('Quick actions')).not.toBeNull()\n expect(screen.getByText('Search and run a command')).not.toBeNull()\n })\n})\n"],"mappings":"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"}
@@ -1,12 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { VariantProps } from "class-variance-authority";
3
- import * as React from "react";
4
- //#region src/components/container.d.ts
5
- declare const containerVariants: (props?: ({
6
- size?: "full" | "lg" | "md" | "sm" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>;
9
- declare function Container({ className, size, ...props }: ContainerProps): React.JSX.Element;
10
- //#endregion
11
- export { Container, ContainerProps, containerVariants };
12
- //# sourceMappingURL=container.d.ts.map
1
+ import { n as ContainerProps, r as containerVariants, t as Container } from "../container-B8-lt-oX.js";
2
+ export { Container, ContainerProps, containerVariants };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`mx-auto w-full`,{variants:{size:{sm:`max-w-3xl px-4 sm:px-6`,md:`max-w-5xl px-4 sm:px-6 lg:px-8`,lg:`max-w-7xl px-4 sm:px-6 lg:px-8`,full:`max-w-none px-4 sm:px-6 lg:px-8`}},defaultVariants:{size:`lg`}});function Container({className:n,size:i=`lg`,...a}){return t(`div`,{"data-slot":`container`,"data-size":i,className:e(r({size:i}),n),...a})}export{Container,r as containerVariants};
2
- //# sourceMappingURL=container.js.map
1
+ import{n as e,t}from"../container-CikeKdez.js";export{t as Container,e as containerVariants};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../container-CikeKdez.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`Container`,()=>{it(`renders a div with the default size and data-slot`,()=>{let{container:r}=t(n(e,{children:`Content`})),i=r.querySelector(`[data-slot="container"]`);expect(i).not.toBeNull(),expect(i?.tagName).toBe(`DIV`),expect(i?.getAttribute(`data-size`)).toBe(`lg`),expect(i?.className).toContain(`max-w-7xl`),expect(i?.className).toContain(`mx-auto`)}),it(`applies the sm size variant`,()=>{let{container:r}=t(n(e,{size:`sm`,children:`Content`})),i=r.querySelector(`[data-slot="container"]`);expect(i?.getAttribute(`data-size`)).toBe(`sm`),expect(i?.className).toContain(`max-w-3xl`)}),it(`applies the full size variant`,()=>{let{container:r}=t(n(e,{size:`full`,children:`Content`})),i=r.querySelector(`[data-slot="container"]`);expect(i?.getAttribute(`data-size`)).toBe(`full`),expect(i?.className).toContain(`max-w-none`)}),it(`merges a custom className with the base styling`,()=>{let{container:r}=t(n(e,{className:`custom-container`,children:`Content`})),i=r.querySelector(`[data-slot="container"]`);expect(i?.className).toContain(`custom-container`),expect(i?.className).toContain(`w-full`)}),it(`forwards the ref to the underlying div element`,()=>{let r={current:null};t(n(e,{ref:r,children:`Content`})),expect(r.current).not.toBeNull(),expect(r.current?.getAttribute(`data-slot`)).toBe(`container`)})});
2
+ //# sourceMappingURL=container.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.spec.js","names":[],"sources":["../../src/components/container.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Container } from './container'\n\ndescribe('Container', () => {\n it('renders a div with the default size and data-slot', () => {\n const { container } = render(<Container>Content</Container>)\n\n const element = container.querySelector('[data-slot=\"container\"]')\n\n expect(element).not.toBeNull()\n expect(element?.tagName).toBe('DIV')\n expect(element?.getAttribute('data-size')).toBe('lg')\n expect(element?.className).toContain('max-w-7xl')\n expect(element?.className).toContain('mx-auto')\n })\n\n it('applies the sm size variant', () => {\n const { container } = render(<Container size=\"sm\">Content</Container>)\n\n const element = container.querySelector('[data-slot=\"container\"]')\n\n expect(element?.getAttribute('data-size')).toBe('sm')\n expect(element?.className).toContain('max-w-3xl')\n })\n\n it('applies the full size variant', () => {\n const { container } = render(<Container size=\"full\">Content</Container>)\n\n const element = container.querySelector('[data-slot=\"container\"]')\n\n expect(element?.getAttribute('data-size')).toBe('full')\n expect(element?.className).toContain('max-w-none')\n })\n\n it('merges a custom className with the base styling', () => {\n const { container } = render(<Container className=\"custom-container\">Content</Container>)\n\n const element = container.querySelector('[data-slot=\"container\"]')\n\n expect(element?.className).toContain('custom-container')\n expect(element?.className).toContain('w-full')\n })\n\n it('forwards the ref to the underlying div element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<Container ref={ref}>Content</Container>)\n\n expect(ref.current).not.toBeNull()\n expect(ref.current?.getAttribute('data-slot')).toBe('container')\n })\n})\n"],"mappings":"0KAIA,SAAS,gBAAmB,CAC1B,GAAG,wDAA2D,CAC5D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAA,SAAW,SAAkB,CAAA,CAAC,EAErD,EAAU,EAAU,cAAc,yBAAyB,EAEjE,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,GAAS,OAAO,CAAC,CAAC,KAAK,KAAK,EACnC,OAAO,GAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,WAAW,EAChD,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,SAAS,CAChD,CAAC,EAED,GAAG,kCAAqC,CACtC,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,KAAK,KAAK,SAAA,SAAkB,CAAA,CAAC,EAE/D,EAAU,EAAU,cAAc,yBAAyB,EAEjE,OAAO,GAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,WAAW,CAClD,CAAC,EAED,GAAG,oCAAuC,CACxC,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,KAAK,OAAO,SAAA,SAAkB,CAAA,CAAC,EAEjE,EAAU,EAAU,cAAc,yBAAyB,EAEjE,OAAO,GAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,EACtD,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,YAAY,CACnD,CAAC,EAED,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,UAAU,mBAAmB,SAAA,SAAkB,CAAA,CAAC,EAElF,EAAU,EAAU,cAAc,yBAAyB,EAEjE,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,kBAAkB,EACvD,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,QAAQ,CAC/C,CAAC,EAED,GAAG,qDAAwD,CACzD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAgB,MAAK,SAAA,SAAkB,CAAA,CAAC,EAE/C,OAAO,EAAI,OAAO,CAAC,CAAC,IAAI,SAAS,EACjC,OAAO,EAAI,SAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CACjE,CAAC,CACH,CAAC"}