@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,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{ScrollArea as t}from"radix-ui";import{jsx as n,jsxs as r}from"react/jsx-runtime";function ScrollArea({className:i,children:a,...o}){return r(t.Root,{"data-slot":`scroll-area`,className:e(`relative`,i),...o,children:[n(t.Viewport,{"data-slot":`scroll-area-viewport`,className:e(`size-full rounded-[inherit] transition-[color,box-shadow] outline-none`,`focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`),children:a}),n(ScrollBar,{}),n(t.Corner,{})]})}function ScrollBar({className:r,orientation:i=`vertical`,...a}){return n(t.ScrollAreaScrollbar,{"data-slot":`scroll-area-scrollbar`,"data-orientation":i,orientation:i,className:e(`flex touch-none p-px transition-colors select-none`,`data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent`,`data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,r),...a,children:n(t.ScrollAreaThumb,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}export{ScrollArea,ScrollBar};
2
- //# sourceMappingURL=scroll-area.js.map
1
+ import{n as e,t}from"../scroll-area-DKS4QPHg.js";export{t as ScrollArea,e as ScrollBar};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,t}from"../scroll-area-DKS4QPHg.js";import{a as n,r}from"../react.esm-BkhVXJ8s.js";import{ScrollArea as i}from"radix-ui";import{jsx as a,jsxs as o}from"react/jsx-runtime";var ResizeObserverStub=class{observe(){}unobserve(){}disconnect(){}};globalThis.ResizeObserver=globalThis.ResizeObserver??ResizeObserverStub,describe(`ScrollArea`,()=>{it(`renders the root and viewport with their data-slots and the given children`,()=>{let{container:e}=r(a(t,{children:a(`div`,{children:`Scrollable content`})}));expect(e.querySelector(`[data-slot="scroll-area"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="scroll-area-viewport"]`)).not.toBeNull(),expect(n.getByText(`Scrollable content`)).not.toBeNull()}),it(`renders a vertical scrollbar with its orientation classes once visible`,()=>{let{container:e}=r(a(t,{type:`always`,children:a(`div`,{children:`Scrollable content`})})),n=e.querySelector(`[data-slot="scroll-area-scrollbar"]`);expect(n?.getAttribute(`data-orientation`)).toBe(`vertical`),expect(n?.className).toContain(`data-vertical:w-2.5`)}),it(`merges a custom className on the root`,()=>{let{container:e}=r(a(t,{className:`custom-class`,children:`content`}));expect(e.querySelector(`[data-slot="scroll-area"]`)?.className).toContain(`custom-class`)}),it(`renders a standalone ScrollBar with the requested orientation`,()=>{let{container:t}=r(o(i.Root,{type:`always`,children:[a(i.Viewport,{children:`content`}),a(e,{orientation:`horizontal`})]})),n=t.querySelector(`[data-slot="scroll-area-scrollbar"]`);expect(n?.getAttribute(`data-orientation`)).toBe(`horizontal`),expect(n?.className).toContain(`data-horizontal:h-2.5`)}),it(`merges a custom className on the scrollbar`,()=>{let{container:t}=r(o(i.Root,{type:`always`,children:[a(i.Viewport,{children:`content`}),a(e,{className:`custom-class`})]}));expect(t.querySelector(`[data-slot="scroll-area-scrollbar"]`)?.className).toContain(`custom-class`)})});
2
+ //# sourceMappingURL=scroll-area.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.spec.js","names":["ScrollArea","ScrollAreaPrimitive"],"sources":["../../src/components/scroll-area.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui'\n\nimport { ScrollArea, ScrollBar } from './scroll-area'\n\n// jsdom does not implement ResizeObserver, which @radix-ui/react-scroll-area relies on\n// unconditionally to measure the viewport, content, and scrollbars.\nclass ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nglobalThis.ResizeObserver = globalThis.ResizeObserver ?? (ResizeObserverStub as unknown as typeof ResizeObserver)\n\ndescribe('ScrollArea', () => {\n it('renders the root and viewport with their data-slots and the given children', () => {\n const { container } = render(\n <ScrollArea>\n <div>Scrollable content</div>\n </ScrollArea>\n )\n\n expect(container.querySelector('[data-slot=\"scroll-area\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"scroll-area-viewport\"]')).not.toBeNull()\n expect(screen.getByText('Scrollable content')).not.toBeNull()\n })\n\n it('renders a vertical scrollbar with its orientation classes once visible', () => {\n const { container } = render(\n <ScrollArea type=\"always\">\n <div>Scrollable content</div>\n </ScrollArea>\n )\n\n const scrollbar = container.querySelector('[data-slot=\"scroll-area-scrollbar\"]')\n\n expect(scrollbar?.getAttribute('data-orientation')).toBe('vertical')\n expect(scrollbar?.className).toContain('data-vertical:w-2.5')\n })\n\n it('merges a custom className on the root', () => {\n const { container } = render(<ScrollArea className=\"custom-class\">content</ScrollArea>)\n\n expect(container.querySelector('[data-slot=\"scroll-area\"]')?.className).toContain('custom-class')\n })\n\n it('renders a standalone ScrollBar with the requested orientation', () => {\n const { container } = render(\n <ScrollAreaPrimitive.Root type=\"always\">\n <ScrollAreaPrimitive.Viewport>content</ScrollAreaPrimitive.Viewport>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollAreaPrimitive.Root>\n )\n\n const scrollbar = container.querySelector('[data-slot=\"scroll-area-scrollbar\"]')\n\n expect(scrollbar?.getAttribute('data-orientation')).toBe('horizontal')\n expect(scrollbar?.className).toContain('data-horizontal:h-2.5')\n })\n\n it('merges a custom className on the scrollbar', () => {\n const { container } = render(\n <ScrollAreaPrimitive.Root type=\"always\">\n <ScrollAreaPrimitive.Viewport>content</ScrollAreaPrimitive.Viewport>\n <ScrollBar className=\"custom-class\" />\n </ScrollAreaPrimitive.Root>\n )\n\n expect(container.querySelector('[data-slot=\"scroll-area-scrollbar\"]')?.className).toContain('custom-class')\n })\n})\n"],"mappings":"gOAOA,IAAM,mBAAN,KAAyB,CACvB,SAAU,CAAC,CACX,WAAY,CAAC,CACb,YAAa,CAAC,CAChB,EAEA,WAAW,eAAiB,WAAW,gBAAmB,mBAE1D,SAAS,iBAAoB,CAC3B,GAAG,iFAAoF,CACrF,GAAM,CAAE,aAAc,EACpB,EAACA,EAAD,CAAA,SACE,EAAC,MAAD,CAAA,SAAK,oBAAuB,CAAA,CAClB,CAAA,CACd,EAEA,OAAO,EAAU,cAAc,2BAA2B,CAAC,CAAC,CAAC,IAAI,SAAS,EAC1E,OAAO,EAAU,cAAc,oCAAoC,CAAC,CAAC,CAAC,IAAI,SAAS,EACnF,OAAO,EAAO,UAAU,oBAAoB,CAAC,CAAC,CAAC,IAAI,SAAS,CAC9D,CAAC,EAED,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,EACpB,EAACA,EAAD,CAAY,KAAK,SACf,SAAA,EAAC,MAAD,CAAA,SAAK,oBAAuB,CAAA,CAClB,CAAA,CACd,EAEM,EAAY,EAAU,cAAc,qCAAqC,EAE/E,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,EACnE,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,qBAAqB,CAC9D,CAAC,EAED,GAAG,4CAA+C,CAChD,GAAM,CAAE,aAAc,EAAO,EAACA,EAAD,CAAY,UAAU,eAAe,SAAA,SAAmB,CAAA,CAAC,EAEtF,OAAO,EAAU,cAAc,2BAA2B,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAClG,CAAC,EAED,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EACpB,EAACC,EAAoB,KAArB,CAA0B,KAAK,SAA/B,SAAA,CACE,EAACA,EAAoB,SAArB,CAAA,SAA8B,SAAqC,CAAA,EACnE,EAAC,EAAD,CAAW,YAAY,YAAc,CAAA,CACb,CAC5B,CAAA,CAAA,EAEM,EAAY,EAAU,cAAc,qCAAqC,EAE/E,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,YAAY,EACrE,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,uBAAuB,CAChE,CAAC,EAED,GAAG,iDAAoD,CACrD,GAAM,CAAE,aAAc,EACpB,EAACA,EAAoB,KAArB,CAA0B,KAAK,SAA/B,SAAA,CACE,EAACA,EAAoB,SAArB,CAAA,SAA8B,SAAqC,CAAA,EACnE,EAAC,EAAD,CAAW,UAAU,cAAgB,CAAA,CACb,CAC5B,CAAA,CAAA,EAEA,OAAO,EAAU,cAAc,qCAAqC,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAC5G,CAAC,CACH,CAAC"}
@@ -1,29 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Select as Select$1 } from "radix-ui";
3
- import * as React from "react";
4
- //#region src/components/select.d.ts
5
- type SelectProps = React.ComponentProps<typeof Select$1.Root>;
6
- type SelectGroupProps = React.ComponentProps<typeof Select$1.Group>;
7
- type SelectValueProps = React.ComponentProps<typeof Select$1.Value>;
8
- type SelectTriggerProps = React.ComponentProps<typeof Select$1.Trigger> & {
9
- size?: 'sm' | 'md';
10
- };
11
- type SelectContentProps = React.ComponentProps<typeof Select$1.Content>;
12
- type SelectLabelProps = React.ComponentProps<typeof Select$1.Label>;
13
- type SelectItemProps = React.ComponentProps<typeof Select$1.Item>;
14
- type SelectSeparatorProps = React.ComponentProps<typeof Select$1.Separator>;
15
- type SelectScrollUpButtonProps = React.ComponentProps<typeof Select$1.ScrollUpButton>;
16
- type SelectScrollDownButtonProps = React.ComponentProps<typeof Select$1.ScrollDownButton>;
17
- declare function Select({ ...props }: SelectProps): React.JSX.Element;
18
- declare function SelectGroup({ className, ...props }: SelectGroupProps): React.JSX.Element;
19
- declare function SelectValue({ ...props }: SelectValueProps): React.JSX.Element;
20
- declare function SelectTrigger({ className, id, size, children, ...props }: SelectTriggerProps): React.JSX.Element;
21
- declare function SelectContent({ className, children, position, align, ...props }: SelectContentProps): React.JSX.Element;
22
- declare function SelectLabel({ className, ...props }: SelectLabelProps): React.JSX.Element;
23
- declare function SelectItem({ className, children, ...props }: SelectItemProps): React.JSX.Element;
24
- declare function SelectSeparator({ className, ...props }: SelectSeparatorProps): React.JSX.Element;
25
- declare function SelectScrollUpButton({ className, ...props }: SelectScrollUpButtonProps): React.JSX.Element;
26
- declare function SelectScrollDownButton({ className, ...props }: SelectScrollDownButtonProps): React.JSX.Element;
27
- //#endregion
28
- export { Select, SelectContent, SelectContentProps, SelectGroup, SelectGroupProps, SelectItem, SelectItemProps, SelectLabel, SelectLabelProps, SelectProps, SelectScrollDownButton, SelectScrollDownButtonProps, SelectScrollUpButton, SelectScrollUpButtonProps, SelectSeparator, SelectSeparatorProps, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps };
29
- //# sourceMappingURL=select.d.ts.map
1
+ import { _ as SelectTrigger, a as SelectGroupProps, b as SelectValueProps, c as SelectLabel, d as SelectScrollDownButton, f as SelectScrollDownButtonProps, g as SelectSeparatorProps, h as SelectSeparator, i as SelectGroup, l as SelectLabelProps, m as SelectScrollUpButtonProps, n as SelectContent, o as SelectItem, p as SelectScrollUpButton, r as SelectContentProps, s as SelectItemProps, t as Select, u as SelectProps, v as SelectTriggerProps, y as SelectValue } from "../select-BoYp-Xyc.js";
2
+ export { Select, SelectContent, SelectContentProps, SelectGroup, SelectGroupProps, SelectItem, SelectItemProps, SelectLabel, SelectLabelProps, SelectProps, SelectScrollDownButton, SelectScrollDownButtonProps, SelectScrollUpButton, SelectScrollUpButtonProps, SelectSeparator, SelectSeparatorProps, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps };
@@ -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{IconCheck as n,IconChevronDown as r,IconChevronUp as i,IconSelector as a}from"@tabler/icons-react";import{Select as o}from"radix-ui";import{jsx as s,jsxs as c}from"react/jsx-runtime";function Select({...e}){return s(o.Root,{"data-slot":`select`,...e})}function SelectGroup({className:t,...n}){return s(o.Group,{"data-slot":`select-group`,className:e(`scroll-my-1 p-1`,t),...n})}function SelectValue({...e}){return s(o.Value,{"data-slot":`select-value`,...e})}function SelectTrigger({className:n,id:r,size:i=`md`,children:l,...u}){let d=t(r);return c(o.Trigger,{id:d,"data-slot":`select-trigger`,"data-size":i,className:e(`border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-1.5 whitespace-nowrap rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none outline-none`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3`,`aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-invalid:ring-3 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,`data-[size=md]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)]`,`*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5`,`[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,`disabled:cursor-not-allowed disabled:opacity-50`,n),...u,children:[l,s(o.Icon,{asChild:!0,children:s(a,{className:`text-muted-foreground size-4 pointer-events-none`})})]})}function SelectContent({className:t,children:n,position:r=`item-aligned`,align:i=`center`,...a}){return s(o.Portal,{children:c(o.Content,{"data-slot":`select-content`,"data-align-trigger":r===`item-aligned`,className:e(`bg-popover text-popover-foreground ring-foreground/10 relative z-50 min-w-36 max-h-(--radix-select-content-available-height) rounded-lg shadow-md ring-1 duration-100 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto`,`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,`data-[align-trigger=true]:animate-none`,r===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,t),position:r,align:i,...a,children:[s(SelectScrollUpButton,{}),s(o.Viewport,{"data-position":r,className:e(`data-[position=popper]:h-(--radix-select-trigger-height)`,`data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`),children:n}),s(SelectScrollDownButton,{})]})})}function SelectLabel({className:t,...n}){return s(o.Label,{"data-slot":`select-label`,className:e(`text-muted-foreground px-1.5 py-1 text-xs`,t),...n})}function SelectItem({className:t,children:r,...i}){return c(o.Item,{"data-slot":`select-item`,className:e(`focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground`,`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none`,`*:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,`[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,`data-disabled:pointer-events-none data-disabled:opacity-50`,t),...i,children:[s(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:s(o.ItemIndicator,{children:s(n,{className:`pointer-events-none`})})}),s(o.ItemText,{children:r})]})}function SelectSeparator({className:t,...n}){return s(o.Separator,{"data-slot":`select-separator`,className:e(`bg-border -mx-1 my-1 h-px pointer-events-none`,t),...n})}function SelectScrollUpButton({className:t,...n}){return s(o.ScrollUpButton,{"data-slot":`select-scroll-up-button`,className:e(`bg-popover z-10 flex cursor-default items-center justify-center py-1`,`[&_svg:not([class*='size-'])]:size-4`,t),...n,children:s(i,{})})}function SelectScrollDownButton({className:t,...n}){return s(o.ScrollDownButton,{"data-slot":`select-scroll-down-button`,className:e(`bg-popover z-10 flex cursor-default items-center justify-center py-1`,`[&_svg:not([class*='size-'])]:size-4`,t),...n,children:s(r,{})})}export{Select,SelectContent,SelectGroup,SelectItem,SelectLabel,SelectScrollDownButton,SelectScrollUpButton,SelectSeparator,SelectTrigger,SelectValue};
2
- //# sourceMappingURL=select.js.map
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"../select-C3QYNv4t.js";export{c as Select,i as SelectContent,o as SelectGroup,n as SelectItem,e as SelectLabel,a as SelectScrollDownButton,s as SelectScrollUpButton,t as SelectSeparator,r as SelectTrigger,l as SelectValue};
@@ -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,r as a,t as o,u as s}from"../select-C3QYNv4t.js";import{a as c,n as l,r as u}from"../react.esm-BkhVXJ8s.js";import{jsx as d,jsxs as f}from"react/jsx-runtime";beforeAll(()=>{window.HTMLElement.prototype.scrollIntoView=vi.fn(),window.HTMLElement.prototype.hasPointerCapture=vi.fn(()=>!1),window.HTMLElement.prototype.setPointerCapture=vi.fn(),window.HTMLElement.prototype.releasePointerCapture=vi.fn()});function renderSelect(c){return u(f(o,{onValueChange:c?.onValueChange,defaultValue:c?.defaultValue,children:[d(r,{children:d(s,{placeholder:`Pick a fruit`})}),f(i,{children:[f(a,{children:[d(e,{children:`Fruits`}),d(n,{value:`apple`,children:`Apple`}),d(n,{value:`banana`,children:`Banana`}),d(n,{value:`cherry`,disabled:!0,children:`Cherry`})]}),d(t,{})]})]}))}describe(`Select`,()=>{it(`renders the trigger with the placeholder and does not render the listbox until opened`,()=>{let{container:e}=renderSelect(),t=e.querySelector(`[data-slot="select-trigger"]`);expect(t).not.toBeNull(),expect(t?.getAttribute(`data-size`)).toBe(`md`),expect(c.getByText(`Pick a fruit`)).not.toBeNull(),expect(c.queryByRole(`listbox`)).toBeNull()}),it(`opens the listbox with its options when the trigger is clicked`,async()=>{renderSelect(),l.click(c.getByRole(`combobox`));let e=await c.findByRole(`listbox`);expect(e.getAttribute(`data-slot`)).toBe(`select-content`),expect(c.getByRole(`option`,{name:`Apple`})).not.toBeNull(),expect(c.getByRole(`option`,{name:`Banana`})).not.toBeNull(),expect(c.getByText(`Fruits`).getAttribute(`data-slot`)).toBe(`select-label`)}),it(`selects an item on click, calls onValueChange and closes the listbox`,async()=>{let e=vi.fn();renderSelect({onValueChange:e}),l.click(c.getByRole(`combobox`)),l.click(await c.findByRole(`option`,{name:`Banana`})),expect(e).toHaveBeenCalledWith(`banana`),expect(c.queryByRole(`listbox`)).toBeNull()}),it(`does not select a disabled item`,async()=>{let e=vi.fn();renderSelect({onValueChange:e}),l.click(c.getByRole(`combobox`));let t=await c.findByRole(`option`,{name:`Cherry`});expect(t.getAttribute(`data-disabled`)).toBe(``),l.click(t),expect(e).not.toHaveBeenCalled(),expect(c.getByRole(`listbox`)).not.toBeNull()}),it(`opens the listbox with the keyboard when the trigger is focused`,async()=>{renderSelect();let e=c.getByRole(`combobox`);e.focus(),l.keyDown(e,{key:`Enter`}),expect(await c.findByRole(`listbox`)).not.toBeNull()}),it(`applies the sm size to the trigger`,()=>{let{container:e}=u(f(o,{children:[d(r,{size:`sm`,children:d(s,{placeholder:`Pick`})}),d(i,{children:d(n,{value:`a`,children:`A`})})]}));expect(e.querySelector(`[data-slot="select-trigger"]`)?.getAttribute(`data-size`)).toBe(`sm`)}),it(`opens with a single item and renders the content without throwing`,async()=>{u(f(o,{defaultOpen:!0,children:[d(r,{children:d(s,{placeholder:`Pick`})}),d(i,{children:d(n,{value:`a`,children:`A`})})]}));let e=await c.findByRole(`listbox`);expect(e).not.toBeNull(),expect(c.getByRole(`option`,{name:`A`})).not.toBeNull()})});
2
+ //# sourceMappingURL=select.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.spec.js","names":[],"sources":["../../src/components/select.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectValue\n} from './select'\n\nbeforeAll(() => {\n window.HTMLElement.prototype.scrollIntoView = vi.fn()\n window.HTMLElement.prototype.hasPointerCapture = vi.fn(() => false)\n window.HTMLElement.prototype.setPointerCapture = vi.fn()\n window.HTMLElement.prototype.releasePointerCapture = vi.fn()\n})\n\nfunction renderSelect(props?: { onValueChange?: (value: string) => void; defaultValue?: string }) {\n return render(\n <Select onValueChange={props?.onValueChange} defaultValue={props?.defaultValue}>\n <SelectTrigger>\n <SelectValue placeholder=\"Pick a fruit\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Fruits</SelectLabel>\n <SelectItem value=\"apple\">Apple</SelectItem>\n <SelectItem value=\"banana\">Banana</SelectItem>\n <SelectItem value=\"cherry\" disabled>\n Cherry\n </SelectItem>\n </SelectGroup>\n <SelectSeparator />\n </SelectContent>\n </Select>\n )\n}\n\ndescribe('Select', () => {\n it('renders the trigger with the placeholder and does not render the listbox until opened', () => {\n const { container } = renderSelect()\n\n const trigger = container.querySelector('[data-slot=\"select-trigger\"]')\n\n expect(trigger).not.toBeNull()\n expect(trigger?.getAttribute('data-size')).toBe('md')\n expect(screen.getByText('Pick a fruit')).not.toBeNull()\n expect(screen.queryByRole('listbox')).toBeNull()\n })\n\n it('opens the listbox with its options when the trigger is clicked', async () => {\n renderSelect()\n\n fireEvent.click(screen.getByRole('combobox'))\n\n const listbox = await screen.findByRole('listbox')\n\n expect(listbox.getAttribute('data-slot')).toBe('select-content')\n expect(screen.getByRole('option', { name: 'Apple' })).not.toBeNull()\n expect(screen.getByRole('option', { name: 'Banana' })).not.toBeNull()\n expect(screen.getByText('Fruits').getAttribute('data-slot')).toBe('select-label')\n })\n\n it('selects an item on click, calls onValueChange and closes the listbox', async () => {\n const onValueChange = vi.fn()\n renderSelect({ onValueChange })\n\n fireEvent.click(screen.getByRole('combobox'))\n fireEvent.click(await screen.findByRole('option', { name: 'Banana' }))\n\n expect(onValueChange).toHaveBeenCalledWith('banana')\n expect(screen.queryByRole('listbox')).toBeNull()\n })\n\n it('does not select a disabled item', async () => {\n const onValueChange = vi.fn()\n renderSelect({ onValueChange })\n\n fireEvent.click(screen.getByRole('combobox'))\n const disabledItem = await screen.findByRole('option', { name: 'Cherry' })\n\n expect(disabledItem.getAttribute('data-disabled')).toBe('')\n\n fireEvent.click(disabledItem)\n\n expect(onValueChange).not.toHaveBeenCalled()\n expect(screen.getByRole('listbox')).not.toBeNull()\n })\n\n it('opens the listbox with the keyboard when the trigger is focused', async () => {\n renderSelect()\n\n const trigger = screen.getByRole('combobox')\n trigger.focus()\n fireEvent.keyDown(trigger, { key: 'Enter' })\n\n expect(await screen.findByRole('listbox')).not.toBeNull()\n })\n\n it('applies the sm size to the trigger', () => {\n const { container } = render(\n <Select>\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Pick\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"a\">A</SelectItem>\n </SelectContent>\n </Select>\n )\n\n expect(container.querySelector('[data-slot=\"select-trigger\"]')?.getAttribute('data-size')).toBe('sm')\n })\n\n it('opens with a single item and renders the content without throwing', async () => {\n render(\n <Select defaultOpen>\n <SelectTrigger>\n <SelectValue placeholder=\"Pick\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"a\">A</SelectItem>\n </SelectContent>\n </Select>\n )\n\n const listbox = await screen.findByRole('listbox')\n\n expect(listbox).not.toBeNull()\n expect(screen.getByRole('option', { name: 'A' })).not.toBeNull()\n })\n})\n"],"mappings":"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"}
@@ -1,9 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Separator as Separator$1 } from "radix-ui";
3
- import * as React from "react";
4
- //#region src/components/separator.d.ts
5
- type SeparatorProps = React.ComponentProps<typeof Separator$1.Root>;
6
- declare function Separator({ className, orientation, decorative, ...props }: SeparatorProps): React.JSX.Element;
7
- //#endregion
8
- export { Separator, SeparatorProps };
9
- //# sourceMappingURL=separator.d.ts.map
1
+ import { n as SeparatorProps, t as Separator } from "../separator-BsRLiqWE.js";
2
+ export { Separator, SeparatorProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{Separator as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function Separator({className:r,orientation:i=`horizontal`,decorative:a=!0,...o}){return n(t.Root,{"data-slot":`separator`,decorative:a,orientation:i,className:e(`bg-border shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch`,r),...o})}export{Separator};
2
- //# sourceMappingURL=separator.js.map
1
+ import{t as e}from"../separator-CCMmbXL0.js";export{e as Separator};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../separator-CCMmbXL0.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`Separator`,()=>{it(`renders a horizontal, decorative separator with the separator data-slot by default`,()=>{let{container:r}=t(n(e,{})),i=r.querySelector(`[data-slot="separator"]`);expect(i?.getAttribute(`data-orientation`)).toBe(`horizontal`),expect(i?.getAttribute(`role`)).toBe(`none`),expect(i?.className).toContain(`bg-border`)}),it(`supports the vertical orientation`,()=>{let{container:r}=t(n(e,{orientation:`vertical`})),i=r.querySelector(`[data-slot="separator"]`);expect(i?.getAttribute(`data-orientation`)).toBe(`vertical`),expect(i?.className).toContain(`data-vertical:w-px`)}),it(`exposes a separator role and aria-orientation when not decorative`,()=>{let{container:r}=t(n(e,{decorative:!1,orientation:`vertical`})),i=r.querySelector(`[data-slot="separator"]`);expect(i?.getAttribute(`role`)).toBe(`separator`),expect(i?.getAttribute(`aria-orientation`)).toBe(`vertical`)}),it(`merges a custom className with the base classes`,()=>{let{container:r}=t(n(e,{className:`custom-class`}));expect(r.querySelector(`[data-slot="separator"]`)?.className).toContain(`custom-class`)}),it(`forwards a ref to the underlying element`,()=>{let r={current:null};t(n(e,{ref:r})),expect(r.current).toBeInstanceOf(HTMLDivElement)})});
2
+ //# sourceMappingURL=separator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.spec.js","names":[],"sources":["../../src/components/separator.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Separator } from './separator'\n\ndescribe('Separator', () => {\n it('renders a horizontal, decorative separator with the separator data-slot by default', () => {\n const { container } = render(<Separator />)\n\n const separator = container.querySelector('[data-slot=\"separator\"]')\n\n expect(separator?.getAttribute('data-orientation')).toBe('horizontal')\n expect(separator?.getAttribute('role')).toBe('none')\n expect(separator?.className).toContain('bg-border')\n })\n\n it('supports the vertical orientation', () => {\n const { container } = render(<Separator orientation=\"vertical\" />)\n\n const separator = container.querySelector('[data-slot=\"separator\"]')\n\n expect(separator?.getAttribute('data-orientation')).toBe('vertical')\n expect(separator?.className).toContain('data-vertical:w-px')\n })\n\n it('exposes a separator role and aria-orientation when not decorative', () => {\n const { container } = render(<Separator decorative={false} orientation=\"vertical\" />)\n\n const separator = container.querySelector('[data-slot=\"separator\"]')\n\n expect(separator?.getAttribute('role')).toBe('separator')\n expect(separator?.getAttribute('aria-orientation')).toBe('vertical')\n })\n\n it('merges a custom className with the base classes', () => {\n const { container } = render(<Separator className=\"custom-class\" />)\n\n expect(container.querySelector('[data-slot=\"separator\"]')?.className).toContain('custom-class')\n })\n\n it('forwards a ref to the underlying element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<Separator ref={ref} />)\n\n expect(ref.current).toBeInstanceOf(HTMLDivElement)\n })\n})\n"],"mappings":"0KAIA,SAAS,gBAAmB,CAC1B,GAAG,yFAA4F,CAC7F,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAY,CAAA,CAAC,EAEpC,EAAY,EAAU,cAAc,yBAAyB,EAEnE,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,YAAY,EACrE,OAAO,GAAW,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EACnD,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,WAAW,CACpD,CAAC,EAED,GAAG,wCAA2C,CAC5C,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,YAAY,UAAY,CAAA,CAAC,EAE3D,EAAY,EAAU,cAAc,yBAAyB,EAEnE,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,EACnE,OAAO,GAAW,SAAS,CAAC,CAAC,UAAU,oBAAoB,CAC7D,CAAC,EAED,GAAG,wEAA2E,CAC5E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,WAAY,GAAO,YAAY,UAAY,CAAA,CAAC,EAE9E,EAAY,EAAU,cAAc,yBAAyB,EAEnE,OAAO,GAAW,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,EACxD,OAAO,GAAW,aAAa,kBAAkB,CAAC,CAAC,CAAC,KAAK,UAAU,CACrE,CAAC,EAED,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAW,UAAU,cAAgB,CAAA,CAAC,EAEnE,OAAO,EAAU,cAAc,yBAAyB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAChG,CAAC,EAED,GAAG,+CAAkD,CACnD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAgB,KAAM,CAAA,CAAC,EAE9B,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,cAAc,CACnD,CAAC,CACH,CAAC"}
@@ -1,96 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Button } from "./button.js";
3
- import { Separator } from "./separator.js";
4
- import { Input } from "./input.js";
5
- import { TooltipContent } from "./tooltip.js";
6
- import { VariantProps } from "class-variance-authority";
7
- import * as React from "react";
8
- //#region src/components/sidebar.d.ts
9
- type SidebarContextProps = {
10
- state: 'expanded' | 'collapsed';
11
- open: boolean;
12
- setOpen: (open: boolean) => void;
13
- openMobile: boolean;
14
- setOpenMobile: (open: boolean) => void;
15
- isMobile: boolean;
16
- toggleSidebar: () => void;
17
- };
18
- type SidebarProviderProps = React.ComponentProps<'div'> & {
19
- defaultOpen?: boolean;
20
- open?: boolean;
21
- onOpenChange?: (open: boolean) => void;
22
- };
23
- type SidebarProps = React.ComponentProps<'div'> & {
24
- side?: 'left' | 'right';
25
- variant?: 'sidebar' | 'floating' | 'inset';
26
- collapsible?: 'offcanvas' | 'icon' | 'none';
27
- };
28
- type SidebarTriggerProps = React.ComponentProps<typeof Button>;
29
- type SidebarRailProps = React.ComponentProps<'button'>;
30
- type SidebarInsetProps = React.ComponentProps<'main'>;
31
- type SidebarInputProps = React.ComponentProps<typeof Input>;
32
- type SidebarHeaderProps = React.ComponentProps<'div'>;
33
- type SidebarFooterProps = React.ComponentProps<'div'>;
34
- type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;
35
- type SidebarContentProps = React.ComponentProps<'div'>;
36
- type SidebarGroupProps = React.ComponentProps<'div'>;
37
- type SidebarGroupLabelProps = React.ComponentProps<'div'> & {
38
- asChild?: boolean;
39
- };
40
- type SidebarGroupActionProps = React.ComponentProps<'button'> & {
41
- asChild?: boolean;
42
- };
43
- type SidebarGroupContentProps = React.ComponentProps<'div'>;
44
- type SidebarMenuProps = React.ComponentProps<'ul'>;
45
- type SidebarMenuItemProps = React.ComponentProps<'li'>;
46
- declare function useSidebar(): SidebarContextProps;
47
- declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: SidebarProviderProps): React.JSX.Element;
48
- declare function Sidebar({ side, variant, collapsible, className, children, dir, ...props }: SidebarProps): React.JSX.Element;
49
- declare function SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps): React.JSX.Element;
50
- declare function SidebarRail({ className, ...props }: SidebarRailProps): React.JSX.Element;
51
- declare function SidebarInset({ className, ...props }: SidebarInsetProps): React.JSX.Element;
52
- declare function SidebarInput({ className, ...props }: SidebarInputProps): React.JSX.Element;
53
- declare function SidebarHeader({ className, ...props }: SidebarHeaderProps): React.JSX.Element;
54
- declare function SidebarFooter({ className, ...props }: SidebarFooterProps): React.JSX.Element;
55
- declare function SidebarSeparator({ className, ...props }: SidebarSeparatorProps): React.JSX.Element;
56
- declare function SidebarContent({ className, ...props }: SidebarContentProps): React.JSX.Element;
57
- declare function SidebarGroup({ className, ...props }: SidebarGroupProps): React.JSX.Element;
58
- declare function SidebarGroupLabel({ className, asChild, ...props }: SidebarGroupLabelProps): React.JSX.Element;
59
- declare function SidebarGroupAction({ className, asChild, ...props }: SidebarGroupActionProps): React.JSX.Element;
60
- declare function SidebarGroupContent({ className, ...props }: SidebarGroupContentProps): React.JSX.Element;
61
- declare function SidebarMenu({ className, ...props }: SidebarMenuProps): React.JSX.Element;
62
- declare function SidebarMenuItem({ className, ...props }: SidebarMenuItemProps): React.JSX.Element;
63
- declare const sidebarMenuButtonVariants: (props?: ({
64
- variant?: "default" | "outline" | null | undefined;
65
- size?: "lg" | "md" | "sm" | null | undefined;
66
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
67
- type SidebarMenuButtonProps = React.ComponentProps<'button'> & {
68
- asChild?: boolean;
69
- isActive?: boolean;
70
- tooltip?: string | React.ComponentProps<typeof TooltipContent>;
71
- } & VariantProps<typeof sidebarMenuButtonVariants>;
72
- type SidebarMenuActionProps = React.ComponentProps<'button'> & {
73
- asChild?: boolean;
74
- showOnHover?: boolean;
75
- };
76
- type SidebarMenuBadgeProps = React.ComponentProps<'div'>;
77
- type SidebarMenuSkeletonProps = React.ComponentProps<'div'> & {
78
- showIcon?: boolean;
79
- };
80
- type SidebarMenuSubProps = React.ComponentProps<'ul'>;
81
- type SidebarMenuSubItemProps = React.ComponentProps<'li'>;
82
- type SidebarMenuSubButtonProps = React.ComponentProps<'a'> & {
83
- asChild?: boolean;
84
- size?: 'sm' | 'md';
85
- isActive?: boolean;
86
- };
87
- declare function SidebarMenuButton({ asChild, isActive, variant, size, tooltip, className, ...props }: SidebarMenuButtonProps): React.JSX.Element;
88
- declare function SidebarMenuAction({ className, asChild, showOnHover, ...props }: SidebarMenuActionProps): React.JSX.Element;
89
- declare function SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps): React.JSX.Element;
90
- declare function SidebarMenuSkeleton({ className, showIcon, ...props }: SidebarMenuSkeletonProps): React.JSX.Element;
91
- declare function SidebarMenuSub({ className, ...props }: SidebarMenuSubProps): React.JSX.Element;
92
- declare function SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps): React.JSX.Element;
93
- declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...props }: SidebarMenuSubButtonProps): React.JSX.Element;
94
- //#endregion
95
- export { Sidebar, SidebarContent, SidebarContentProps, SidebarFooter, SidebarFooterProps, SidebarGroup, SidebarGroupAction, SidebarGroupActionProps, SidebarGroupContent, SidebarGroupContentProps, SidebarGroupLabel, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeader, SidebarHeaderProps, SidebarInput, SidebarInputProps, SidebarInset, SidebarInsetProps, SidebarMenu, SidebarMenuAction, SidebarMenuActionProps, SidebarMenuBadge, SidebarMenuBadgeProps, SidebarMenuButton, SidebarMenuButtonProps, SidebarMenuItem, SidebarMenuItemProps, SidebarMenuProps, SidebarMenuSkeleton, SidebarMenuSkeletonProps, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubButtonProps, SidebarMenuSubItem, SidebarMenuSubItemProps, SidebarMenuSubProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailProps, SidebarSeparator, SidebarSeparatorProps, SidebarTrigger, SidebarTriggerProps, useSidebar };
96
- //# sourceMappingURL=sidebar.d.ts.map
1
+ import { A as SidebarMenuSkeleton, B as SidebarProviderProps, C as SidebarMenuBadge, D as SidebarMenuItem, E as SidebarMenuButtonProps, F as SidebarMenuSubItem, G as SidebarTrigger, H as SidebarRailProps, I as SidebarMenuSubItemProps, K as SidebarTriggerProps, L as SidebarMenuSubProps, M as SidebarMenuSub, N as SidebarMenuSubButton, O as SidebarMenuItemProps, P as SidebarMenuSubButtonProps, R as SidebarProps, S as SidebarMenuActionProps, T as SidebarMenuButton, U as SidebarSeparator, V as SidebarRail, W as SidebarSeparatorProps, _ as SidebarInputProps, a as SidebarFooterProps, b as SidebarMenu, c as SidebarGroupActionProps, d as SidebarGroupLabel, f as SidebarGroupLabelProps, g as SidebarInput, h as SidebarHeaderProps, i as SidebarFooter, j as SidebarMenuSkeletonProps, k as SidebarMenuProps, l as SidebarGroupContent, m as SidebarHeader, n as SidebarContent, o as SidebarGroup, p as SidebarGroupProps, q as useSidebar, r as SidebarContentProps, s as SidebarGroupAction, t as Sidebar, u as SidebarGroupContentProps, v as SidebarInset, w as SidebarMenuBadgeProps, x as SidebarMenuAction, y as SidebarInsetProps, z as SidebarProvider } from "../sidebar-D7HQlj5O.js";
2
+ export { Sidebar, SidebarContent, SidebarContentProps, SidebarFooter, SidebarFooterProps, SidebarGroup, SidebarGroupAction, SidebarGroupActionProps, SidebarGroupContent, SidebarGroupContentProps, SidebarGroupLabel, SidebarGroupLabelProps, SidebarGroupProps, SidebarHeader, SidebarHeaderProps, SidebarInput, SidebarInputProps, SidebarInset, SidebarInsetProps, SidebarMenu, SidebarMenuAction, SidebarMenuActionProps, SidebarMenuBadge, SidebarMenuBadgeProps, SidebarMenuButton, SidebarMenuButtonProps, SidebarMenuItem, SidebarMenuItemProps, SidebarMenuProps, SidebarMenuSkeleton, SidebarMenuSkeletonProps, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubButtonProps, SidebarMenuSubItem, SidebarMenuSubItemProps, SidebarMenuSubProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailProps, SidebarSeparator, SidebarSeparatorProps, SidebarTrigger, SidebarTriggerProps, useSidebar };
@@ -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{Separator as n}from"./separator.js";import{Input as r}from"./input.js";import{Drawer as i,DrawerContent as a,DrawerDescription as o,DrawerHeader as s,DrawerTitle as c}from"./drawer.js";import{useIsMobile as l}from"../hooks/use-mobile.js";import{Skeleton as u}from"./skeleton.js";import{Tooltip as d}from"./tooltip.js";import{IconLayoutSidebar as f}from"@tabler/icons-react";import{Slot as p}from"radix-ui";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{cva as g}from"class-variance-authority";import*as _ from"react";const v=_.createContext(null);function useSidebar(){let e=_.useContext(v);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function SidebarProvider({defaultOpen:t=!0,open:n,onOpenChange:r,className:i,style:a,children:o,...s}){let c=l(),[u,d]=_.useState(!1),[f,p]=_.useState(t),h=n??f,g=_.useCallback(e=>{let t=typeof e==`function`?e(h):e;r?r(t):p(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,h]),y=_.useCallback(()=>c?d(e=>!e):g(e=>!e),[c,g]);_.useEffect(()=>{let handleKeyDown=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener(`keydown`,handleKeyDown),()=>window.removeEventListener(`keydown`,handleKeyDown)},[y]);let b=h?`expanded`:`collapsed`,x=_.useMemo(()=>({state:b,open:h,setOpen:g,isMobile:c,openMobile:u,setOpenMobile:d,toggleSidebar:y}),[b,h,g,c,u,y]);return m(v.Provider,{value:x,children:m(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:e(`group/sidebar-wrapper relative flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,i),...s,children:o})})}function Sidebar({side:t=`left`,variant:n=`sidebar`,collapsible:r=`offcanvas`,className:l,children:u,dir:d,...f}){let{isMobile:p,state:g,openMobile:_,setOpenMobile:v}=useSidebar();return r===`none`?m(`div`,{"data-slot":`sidebar`,className:e(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,l),...f,children:u}):p?m(i,{open:_,onOpenChange:v,direction:t,size:`sm`,children:h(a,{dir:d,"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`h-full w-(--sidebar-width) rounded-none bg-sidebar p-0 text-sidebar-foreground`,style:{"--sidebar-width":`18rem`},...f,children:[h(s,{className:`sr-only`,children:[m(c,{children:`Sidebar`}),m(o,{children:`Displays the mobile sidebar.`})]}),m(`div`,{className:`flex h-full w-full flex-col`,children:u})]})}):h(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":g,"data-collapsible":g===`collapsed`?r:``,"data-variant":n,"data-side":t,"data-slot":`sidebar`,children:[m(`div`,{"data-slot":`sidebar-gap`,className:e(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,n===`floating`||n===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),m(`div`,{"data-slot":`sidebar-container`,"data-side":t,className:e(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,`data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:-left-(--sidebar-width)`,`data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:-right-(--sidebar-width)`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,n!==`floating`&&n!==`inset`&&`group-data-[side=left]:border-r group-data-[side=right]:border-l`,l),...f,children:m(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:e(`flex size-full flex-col bg-sidebar`,`group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm`,`group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`),children:u})})]})}function SidebarTrigger({className:n,onClick:r,...i}){let{toggleSidebar:a}=useSidebar();return h(t,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon-sm`,color:`zinc`,className:e(n),onClick:e=>{r?.(e),a()},...i,children:[m(f,{}),m(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function SidebarRail({className:t,...n}){let{toggleSidebar:r}=useSidebar();return m(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:r,title:`Toggle Sidebar`,className:e(`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:s-1/2 after:w-0.5 hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,t),...n})}function SidebarInset({className:t,...n}){return m(`main`,{"data-slot":`sidebar-inset`,className:e(`relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,t),...n})}function SidebarInput({className:t,...n}){return m(r,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:e(`h-8 w-full bg-background shadow-none`,t),...n})}function SidebarHeader({className:t,...n}){return m(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarFooter({className:t,...n}){return m(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:e(`flex flex-col gap-2 p-2`,t),...n})}function SidebarSeparator({className:t,...r}){return m(n,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:e(`w-auto bg-sidebar-border`,t),...r})}function SidebarContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:e(`no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,t),...n})}function SidebarGroup({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:e(`relative flex w-full min-w-0 flex-col px-2`,t),...n})}function SidebarGroupLabel({className:t,asChild:n=!1,...r}){return m(n?p.Root:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:e(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,t),...r})}function SidebarGroupAction({className:t,asChild:n=!1,...r}){return m(n?p.Root:`button`,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:e(`absolute top-1.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0`,t),...r})}function SidebarGroupContent({className:t,...n}){return m(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:e(`w-full text-sm mt-2`,t),...n})}function SidebarMenu({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:e(`flex w-full min-w-0 flex-col gap-0`,t),...n})}function SidebarMenuItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:e(`group/menu-item relative`,t),...n})}const y=g(`peer/menu-button group/menu-button font-medium flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:[&_svg]:text-sidebar-primary data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{md:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`md`}});function SidebarMenuButton({asChild:t=!1,isActive:n=!1,variant:r=`default`,size:i=`md`,tooltip:a,className:o,...s}){let c=t?p.Root:`button`,{isMobile:l,state:u}=useSidebar(),f=m(c,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":n,className:e(y({variant:r,size:i}),o),...s});return a?(typeof a==`string`&&(a={children:a}),m(d,{label:a.children,side:`right`,align:`center`,hidden:u!==`collapsed`||l,...a,children:f})):f}function SidebarMenuAction({className:t,asChild:n=!1,showOnHover:r=!1,...i}){return m(n?p.Root:`button`,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:e(`absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0`,r&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0`,t),...i})}function SidebarMenuBadge({className:t,...n}){return m(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:e(`pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground`,t),...n})}function SidebarMenuSkeleton({className:t,showIcon:n=!1,...r}){let[i]=_.useState(()=>`${Math.floor(Math.random()*40)+50}%`);return h(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:e(`flex h-8 items-center gap-2 rounded-md px-2`,t),...r,children:[n&&m(u,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),m(u,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function SidebarMenuSub({className:t,...n}){return m(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:e(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden`,t),...n})}function SidebarMenuSubItem({className:t,...n}){return m(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:e(`group/menu-sub-item relative`,t),...n})}function SidebarMenuSubButton({asChild:t=!1,size:n=`md`,isActive:r=!1,className:i,...a}){return m(t?p.Root:`a`,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":n,"data-active":r,className:e(`flex h-7 min-w-0 -translate-x-px items-center font-medium gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,i),...a})}export{Sidebar,SidebarContent,SidebarFooter,SidebarGroup,SidebarGroupAction,SidebarGroupContent,SidebarGroupLabel,SidebarHeader,SidebarInput,SidebarInset,SidebarMenu,SidebarMenuAction,SidebarMenuBadge,SidebarMenuButton,SidebarMenuItem,SidebarMenuSkeleton,SidebarMenuSub,SidebarMenuSubButton,SidebarMenuSubItem,SidebarProvider,SidebarRail,SidebarSeparator,SidebarTrigger,useSidebar};
2
- //# sourceMappingURL=sidebar.js.map
1
+ import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"../sidebar-B5bEgDy5.js";export{v as Sidebar,p as SidebarContent,g as SidebarFooter,u as SidebarGroup,r as SidebarGroupAction,m as SidebarGroupContent,_ as SidebarGroupLabel,a as SidebarHeader,d as SidebarInput,y as SidebarInset,o as SidebarMenu,s as SidebarMenuAction,h as SidebarMenuBadge,f as SidebarMenuButton,l as SidebarMenuItem,c as SidebarMenuSkeleton,n as SidebarMenuSub,b as SidebarMenuSubButton,C as SidebarMenuSubItem,i as SidebarProvider,S as SidebarRail,t as SidebarSeparator,e as SidebarTrigger,x as useSidebar};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{r as e}from"../tooltip-CNUNWZvs.js";import{C as t,S as n,_ as r,a as i,b as a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b,v as x,w as S,x as C,y as w}from"../sidebar-B5bEgDy5.js";import{a as T,i as E,n as D,r as O,t as k}from"../react.esm-BkhVXJ8s.js";import{Fragment as A,jsx as j,jsxs as M}from"react/jsx-runtime";import*as N from"react";if(globalThis.ResizeObserver===void 0){class ResizeObserverStub{observe(){}unobserve(){}disconnect(){}}globalThis.ResizeObserver=ResizeObserverStub}function clearSidebarCookie(){document.cookie=`sidebar_state=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`}function readSidebarCookie(){return document.cookie.split(`; `).find(e=>e.startsWith(`sidebar_state=`))?.split(`=`)[1]}function SidebarStateProbe(){let{state:e,open:t,isMobile:n,openMobile:r}=S();return j(`div`,{"data-testid":`probe`,"data-state":e,"data-open":t,"data-mobile":n,"data-open-mobile":r})}beforeEach(()=>{clearSidebarCookie()}),describe(`SidebarProvider`,()=>{it(`renders its children`,()=>{O(j(a,{children:j(`div`,{children:`sidebar content`})})),expect(T.getByText(`sidebar content`)).not.toBeNull()}),it(`renders a wrapper exposing the sidebar css variables and merges custom style/className`,()=>{let{container:e}=O(j(a,{className:`custom-wrapper`,style:{"--custom":`1px`},children:j(`div`,{children:`content`})})),t=e.querySelector(`[data-slot="sidebar-wrapper"]`);expect(t).not.toBeNull(),expect(t.className).toContain(`custom-wrapper`),expect(t.style.getPropertyValue(`--sidebar-width`)).toBe(`16rem`),expect(t.style.getPropertyValue(`--sidebar-width-icon`)).toBe(`3rem`),expect(t.style.getPropertyValue(`--custom`)).toBe(`1px`)}),it(`defaults to an expanded/open state`,()=>{O(j(a,{children:j(SidebarStateProbe,{})}));let e=T.getByTestId(`probe`);expect(e.getAttribute(`data-state`)).toBe(`expanded`),expect(e.getAttribute(`data-open`)).toBe(`true`)}),it(`honors defaultOpen={false}`,()=>{O(j(a,{defaultOpen:!1,children:j(SidebarStateProbe,{})})),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`)}),it(`toggles open state via the trigger and persists it to the sidebar_state cookie`,()=>{O(M(a,{children:[j(SidebarStateProbe,{}),j(t,{})]})),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`expanded`),D.click(T.getByRole(`button`)),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`),expect(readSidebarCookie()).toBe(`false`),D.click(T.getByRole(`button`)),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`expanded`),expect(readSidebarCookie()).toBe(`true`)}),it(`supports a controlled open state via open/onOpenChange`,()=>{let e=vi.fn();function Controlled(){let[n,r]=N.useState(!1);return M(a,{open:n,onOpenChange:t=>{r(t),e(t)},children:[j(SidebarStateProbe,{}),j(t,{})]})}O(j(Controlled,{})),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`),D.click(T.getByRole(`button`)),expect(e).toHaveBeenCalledWith(!0),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`expanded`),expect(readSidebarCookie()).toBe(`true`)}),it(`toggles the sidebar with the Cmd/Ctrl+B keyboard shortcut`,()=>{O(j(a,{children:j(SidebarStateProbe,{})})),D.keyDown(window,{key:`b`,metaKey:!0}),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`),D.keyDown(window,{key:`b`,ctrlKey:!0}),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`expanded`)}),it(`ignores the shortcut key without a meta/ctrl modifier`,()=>{O(j(a,{children:j(SidebarStateProbe,{})})),D.keyDown(window,{key:`b`}),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`expanded`)}),it(`reports isMobile from the current viewport width`,()=>{setTestViewportWidth(500),O(j(a,{children:j(SidebarStateProbe,{})}));let e=T.getByTestId(`probe`);expect(e.getAttribute(`data-mobile`)).toBe(`true`),expect(e.getAttribute(`data-open-mobile`)).toBe(`false`)}),it(`toggles openMobile instead of open on a mobile viewport, without writing the cookie`,()=>{setTestViewportWidth(500),O(M(a,{children:[j(SidebarStateProbe,{}),j(t,{})]})),D.click(T.getByRole(`button`));let e=T.getByTestId(`probe`);expect(e.getAttribute(`data-open-mobile`)).toBe(`true`),expect(e.getAttribute(`data-open`)).toBe(`true`),expect(readSidebarCookie()).toBeUndefined()})}),describe(`useSidebar`,()=>{it(`throws when used outside of a SidebarProvider`,()=>{expect(()=>E(()=>S())).toThrow(`useSidebar must be used within a SidebarProvider.`)}),it(`exposes state, open, isMobile, openMobile and toggleSidebar to consumers`,()=>{let{result:e}=E(()=>S(),{wrapper:({children:e})=>j(a,{children:e})});expect(e.current.state).toBe(`expanded`),expect(e.current.open).toBe(!0),expect(e.current.isMobile).toBe(!1),expect(e.current.openMobile).toBe(!1),k(()=>{e.current.toggleSidebar()}),expect(e.current.open).toBe(!1),expect(e.current.state).toBe(`collapsed`)})}),describe(`Sidebar`,()=>{it(`renders a plain wrapper when collapsible="none"`,()=>{let{container:e}=O(j(a,{children:j(y,{collapsible:`none`,children:`plain content`})})),t=e.querySelector(`[data-slot="sidebar"]`);expect(t).not.toBeNull(),expect(t.className).toContain(`w-(--sidebar-width)`),expect(t.getAttribute(`data-state`)).toBeNull(),expect(T.getByText(`plain content`)).not.toBeNull()}),it(`renders the desktop layout with gap/container/inner elements reflecting side/variant/state`,()=>{let{container:e}=O(j(a,{defaultOpen:!1,children:j(y,{side:`right`,variant:`floating`,collapsible:`icon`,children:`desktop content`})})),t=e.querySelector(`[data-slot="sidebar"]`);expect(t.getAttribute(`data-state`)).toBe(`collapsed`),expect(t.getAttribute(`data-collapsible`)).toBe(`icon`),expect(t.getAttribute(`data-variant`)).toBe(`floating`),expect(t.getAttribute(`data-side`)).toBe(`right`),expect(e.querySelector(`[data-slot="sidebar-gap"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-container"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-inner"]`)).not.toBeNull()}),it(`clears data-collapsible while expanded`,()=>{let{container:e}=O(j(a,{children:j(y,{collapsible:`icon`,children:`content`})}));expect(e.querySelector(`[data-slot="sidebar"]`)?.getAttribute(`data-collapsible`)).toBe(``)}),it(`is not rendered on mobile until openMobile is toggled, then renders inside a Drawer`,()=>{setTestViewportWidth(500);let{container:e,baseElement:n}=O(M(a,{children:[j(y,{children:j(`span`,{children:`mobile content`})}),j(t,{})]}));expect(e.querySelector(`[data-slot="sidebar"]`)).toBeNull(),expect(n.querySelector(`[data-slot="sidebar"]`)).toBeNull(),D.click(T.getByRole(`button`));let r=n.querySelector(`[data-slot="sidebar"]`);expect(r).not.toBeNull(),expect(r.getAttribute(`data-mobile`)).toBe(`true`),expect(T.getByText(`mobile content`)).not.toBeNull()})}),describe(`SidebarTrigger`,()=>{it(`renders with the sidebar-trigger slot and an accessible label`,()=>{let{container:e}=O(j(a,{children:j(t,{})}));expect(e.querySelector(`[data-slot="sidebar-trigger"]`)).not.toBeNull(),expect(T.getByRole(`button`,{name:`Toggle Sidebar`})).not.toBeNull()}),it(`calls a provided onClick handler in addition to toggling the sidebar`,()=>{let e=vi.fn();O(M(a,{children:[j(SidebarStateProbe,{}),j(t,{onClick:e})]})),D.click(T.getByRole(`button`)),expect(e).toHaveBeenCalledTimes(1),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`)})}),describe(`SidebarRail`,()=>{it(`renders a rail button with the expected slot, label and tabIndex`,()=>{let{container:e}=O(j(a,{children:j(C,{})})),t=e.querySelector(`[data-slot="sidebar-rail"]`);expect(t).not.toBeNull(),expect(t.getAttribute(`aria-label`)).toBe(`Toggle Sidebar`),expect(t.getAttribute(`tabIndex`)).toBe(`-1`)}),it(`toggles the sidebar when clicked`,()=>{O(M(a,{children:[j(SidebarStateProbe,{}),j(C,{})]})),D.click(T.getByTitle(`Toggle Sidebar`)),expect(T.getByTestId(`probe`).getAttribute(`data-state`)).toBe(`collapsed`)})}),describe(`static layout subcomponents`,()=>{it(`renders SidebarInset as a main element`,()=>{let{container:e}=O(j(b,{children:`inset content`}));expect(e.querySelector(`[data-slot="sidebar-inset"]`)?.tagName).toBe(`MAIN`)}),it(`renders SidebarInput as a styled text input`,()=>{O(j(f,{placeholder:`Search`}));let e=T.getByPlaceholderText(`Search`);expect(e.getAttribute(`data-slot`)).toBe(`sidebar-input`),expect(e.className).toContain(`h-8`)}),it(`renders SidebarHeader, SidebarFooter, SidebarSeparator and SidebarContent with their slots`,()=>{let{container:e}=O(M(A,{children:[j(o,{children:`header`}),j(_,{children:`footer`}),j(n,{}),j(m,{children:`content`})]}));expect(e.querySelector(`[data-slot="sidebar-header"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-footer"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-separator"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-content"]`)).not.toBeNull()}),it(`renders SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuBadge, SidebarMenuSub and SidebarMenuSubItem with their slots`,()=>{let{container:e}=O(j(d,{children:j(h,{children:j(s,{children:M(u,{children:[`item`,j(g,{children:`1`}),j(r,{children:j(w,{children:`sub item`})})]})})})}));expect(e.querySelector(`[data-slot="sidebar-group"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-group-content"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-menu"]`)?.tagName).toBe(`UL`),expect(e.querySelector(`[data-slot="sidebar-menu-item"]`)?.tagName).toBe(`LI`),expect(e.querySelector(`[data-slot="sidebar-menu-badge"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="sidebar-menu-sub"]`)?.tagName).toBe(`UL`),expect(e.querySelector(`[data-slot="sidebar-menu-sub-item"]`)?.tagName).toBe(`LI`)})}),describe(`SidebarGroupLabel`,()=>{it(`renders as a div by default`,()=>{let{container:e}=O(j(v,{children:`Label`}));expect(e.querySelector(`[data-slot="sidebar-group-label"]`)?.tagName).toBe(`DIV`)}),it(`renders as the child element when asChild is set`,()=>{let{container:e}=O(j(v,{asChild:!0,children:j(`span`,{children:`Label`})}));expect(e.querySelector(`[data-slot="sidebar-group-label"]`)?.tagName).toBe(`SPAN`)})}),describe(`SidebarGroupAction`,()=>{it(`renders as a button by default`,()=>{let{container:e}=O(j(i,{children:`Add`}));expect(e.querySelector(`[data-slot="sidebar-group-action"]`)?.tagName).toBe(`BUTTON`)}),it(`renders as the child element when asChild is set and forwards click handlers`,()=>{let e=vi.fn();O(j(i,{asChild:!0,onClick:e,children:j(`a`,{href:`#action`,children:`Add`})}));let t=T.getByText(`Add`);expect(t.tagName).toBe(`A`),D.click(t),expect(e).toHaveBeenCalledTimes(1)})}),describe(`SidebarMenuButton`,()=>{it(`renders default size/active data attributes`,()=>{let{container:e}=O(j(a,{children:j(p,{children:`Item`})})),t=e.querySelector(`[data-slot="sidebar-menu-button"]`);expect(t.getAttribute(`data-size`)).toBe(`md`),expect(t.getAttribute(`data-active`)).toBe(`false`)}),it(`reflects isActive and a custom size`,()=>{let{container:e}=O(j(a,{children:j(p,{isActive:!0,size:`lg`,children:`Item`})})),t=e.querySelector(`[data-slot="sidebar-menu-button"]`);expect(t.getAttribute(`data-active`)).toBe(`true`),expect(t.getAttribute(`data-size`)).toBe(`lg`)}),it(`renders as the child element when asChild is set`,()=>{O(j(a,{children:j(p,{asChild:!0,children:j(`a`,{href:`#item`,children:`Item`})})})),expect(T.getByRole(`link`,{name:`Item`})).not.toBeNull()}),it(`renders without a tooltip wrapper when no tooltip is provided`,()=>{let{container:e}=O(j(a,{children:j(p,{children:`Item`})}));expect(e.querySelector(`[data-slot="tooltip-trigger"]`)).toBeNull()}),it(`wraps the button in a Tooltip when a string tooltip is provided`,()=>{let{baseElement:t}=O(j(e,{children:j(a,{defaultOpen:!1,children:j(p,{tooltip:`Item tooltip`,children:`Item`})})}));expect(t.querySelector(`[data-slot="tooltip-content"]`)).toBeNull(),D.focus(T.getByText(`Item`)),expect(t.querySelector(`[data-slot="tooltip-content"]`)?.textContent).toBe(`Item tooltip`)}),it(`accepts an object tooltip with custom content props`,()=>{let{baseElement:t}=O(j(e,{children:j(a,{defaultOpen:!1,children:j(p,{tooltip:{children:`Custom tooltip`,side:`bottom`},children:`Item`})})}));D.focus(T.getByText(`Item`));let n=t.querySelector(`[data-slot="tooltip-content"]`);expect(n?.textContent).toBe(`Custom tooltip`),expect(n?.getAttribute(`data-side`)).toBe(`bottom`)}),it(`hides the tooltip content while expanded and shows it while collapsed on desktop`,()=>{let{baseElement:n}=O(j(e,{children:M(a,{defaultOpen:!0,children:[j(p,{tooltip:`Item tooltip`,children:`Item`}),j(t,{})]})}));D.focus(T.getByText(`Item`));let r=n.querySelector(`[data-slot="tooltip-content"]`);expect(r.hidden).toBe(!0),D.click(T.getByRole(`button`,{name:`Toggle Sidebar`})),expect(r.hidden).toBe(!1)})}),describe(`SidebarMenuAction`,()=>{it(`renders as a button with the menu-action slot`,()=>{let{container:e}=O(j(c,{children:`Action`}));expect(e.querySelector(`[data-slot="sidebar-menu-action"]`)?.tagName).toBe(`BUTTON`)}),it(`applies the showOnHover classes when requested`,()=>{let{container:e}=O(j(c,{showOnHover:!0,children:`Action`})),t=e.querySelector(`[data-slot="sidebar-menu-action"]`);expect(t.className).toContain(`md:opacity-0`)}),it(`renders as the child element when asChild is set`,()=>{O(j(c,{asChild:!0,children:j(`a`,{href:`#action`,children:`Action`})})),expect(T.getByRole(`link`,{name:`Action`})).not.toBeNull()})}),describe(`SidebarMenuSkeleton`,()=>{it(`renders a text placeholder without an icon by default`,()=>{let{container:e}=O(j(l,{}));expect(e.querySelector(`[data-sidebar="menu-skeleton-icon"]`)).toBeNull(),expect(e.querySelector(`[data-sidebar="menu-skeleton-text"]`)).not.toBeNull()}),it(`renders an icon skeleton when showIcon is set`,()=>{let{container:e}=O(j(l,{showIcon:!0}));expect(e.querySelector(`[data-sidebar="menu-skeleton-icon"]`)).not.toBeNull()}),it(`assigns a random text width between 50% and 90%`,()=>{let{container:e}=O(j(l,{})),t=e.querySelector(`[data-sidebar="menu-skeleton-text"]`),n=Number(t.style.getPropertyValue(`--skeleton-width`).replace(`%`,``));expect(n).toBeGreaterThanOrEqual(50),expect(n).toBeLessThanOrEqual(90)})}),describe(`SidebarMenuSubButton`,()=>{it(`renders as an anchor by default with size and active data attributes`,()=>{let{container:e}=O(j(x,{href:`#sub`,children:`Sub item`})),t=e.querySelector(`[data-slot="sidebar-menu-sub-button"]`);expect(t.tagName).toBe(`A`),expect(t.getAttribute(`data-size`)).toBe(`md`),expect(t.getAttribute(`data-active`)).toBe(`false`)}),it(`reflects isActive and a custom size`,()=>{let{container:e}=O(j(x,{isActive:!0,size:`sm`,children:`Sub item`})),t=e.querySelector(`[data-slot="sidebar-menu-sub-button"]`);expect(t.getAttribute(`data-active`)).toBe(`true`),expect(t.getAttribute(`data-size`)).toBe(`sm`)}),it(`renders as the child element when asChild is set`,()=>{O(j(x,{asChild:!0,children:j(`button`,{type:`button`,children:`Sub item`})})),expect(T.getByRole(`button`,{name:`Sub item`})).not.toBeNull()})});
2
+ //# sourceMappingURL=sidebar.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.spec.js","names":[],"sources":["../../src/components/sidebar.spec.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { act, fireEvent, render, renderHook, screen } from '@testing-library/react'\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar\n} from './sidebar'\nimport { TooltipProvider } from './tooltip'\n\n// jsdom does not implement ResizeObserver, which radix-ui's Popper-based Tooltip content\n// relies on for arrow sizing. Stub it so tooltip content can actually mount in tests.\nif (typeof globalThis.ResizeObserver === 'undefined') {\n class ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n }\n\n globalThis.ResizeObserver = ResizeObserverStub as unknown as typeof ResizeObserver\n}\n\nfunction clearSidebarCookie() {\n // biome-ignore lint/suspicious/noDocumentCookie: Test helper resetting the cookie sidebar.tsx persists state to.\n document.cookie = 'sidebar_state=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/'\n}\n\nfunction readSidebarCookie() {\n return document.cookie\n .split('; ')\n .find((entry) => entry.startsWith('sidebar_state='))\n ?.split('=')[1]\n}\n\nfunction SidebarStateProbe() {\n const { state, open, isMobile, openMobile } = useSidebar()\n\n return (\n <div data-testid=\"probe\" data-state={state} data-open={open} data-mobile={isMobile} data-open-mobile={openMobile} />\n )\n}\n\nbeforeEach(() => {\n clearSidebarCookie()\n})\n\ndescribe('SidebarProvider', () => {\n it('renders its children', () => {\n render(\n <SidebarProvider>\n <div>sidebar content</div>\n </SidebarProvider>\n )\n\n expect(screen.getByText('sidebar content')).not.toBeNull()\n })\n\n it('renders a wrapper exposing the sidebar css variables and merges custom style/className', () => {\n const { container } = render(\n <SidebarProvider className=\"custom-wrapper\" style={{ '--custom': '1px' } as React.CSSProperties}>\n <div>content</div>\n </SidebarProvider>\n )\n\n const wrapper = container.querySelector('[data-slot=\"sidebar-wrapper\"]') as HTMLElement\n\n expect(wrapper).not.toBeNull()\n expect(wrapper.className).toContain('custom-wrapper')\n expect(wrapper.style.getPropertyValue('--sidebar-width')).toBe('16rem')\n expect(wrapper.style.getPropertyValue('--sidebar-width-icon')).toBe('3rem')\n expect(wrapper.style.getPropertyValue('--custom')).toBe('1px')\n })\n\n it('defaults to an expanded/open state', () => {\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n </SidebarProvider>\n )\n\n const probe = screen.getByTestId('probe')\n\n expect(probe.getAttribute('data-state')).toBe('expanded')\n expect(probe.getAttribute('data-open')).toBe('true')\n })\n\n it('honors defaultOpen={false}', () => {\n render(\n <SidebarProvider defaultOpen={false}>\n <SidebarStateProbe />\n </SidebarProvider>\n )\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n })\n\n it('toggles open state via the trigger and persists it to the sidebar_state cookie', () => {\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n <SidebarTrigger />\n </SidebarProvider>\n )\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('expanded')\n\n fireEvent.click(screen.getByRole('button'))\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n expect(readSidebarCookie()).toBe('false')\n\n fireEvent.click(screen.getByRole('button'))\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('expanded')\n expect(readSidebarCookie()).toBe('true')\n })\n\n it('supports a controlled open state via open/onOpenChange', () => {\n const onOpenChange = vi.fn()\n\n function Controlled() {\n const [open, setOpen] = React.useState(false)\n\n return (\n <SidebarProvider\n open={open}\n onOpenChange={(next) => {\n setOpen(next)\n onOpenChange(next)\n }}\n >\n <SidebarStateProbe />\n <SidebarTrigger />\n </SidebarProvider>\n )\n }\n\n render(<Controlled />)\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n\n fireEvent.click(screen.getByRole('button'))\n\n expect(onOpenChange).toHaveBeenCalledWith(true)\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('expanded')\n expect(readSidebarCookie()).toBe('true')\n })\n\n it('toggles the sidebar with the Cmd/Ctrl+B keyboard shortcut', () => {\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n </SidebarProvider>\n )\n\n fireEvent.keyDown(window, { key: 'b', metaKey: true })\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n\n fireEvent.keyDown(window, { key: 'b', ctrlKey: true })\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('expanded')\n })\n\n it('ignores the shortcut key without a meta/ctrl modifier', () => {\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n </SidebarProvider>\n )\n\n fireEvent.keyDown(window, { key: 'b' })\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('expanded')\n })\n\n it('reports isMobile from the current viewport width', () => {\n setTestViewportWidth(500)\n\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n </SidebarProvider>\n )\n\n const probe = screen.getByTestId('probe')\n\n expect(probe.getAttribute('data-mobile')).toBe('true')\n expect(probe.getAttribute('data-open-mobile')).toBe('false')\n })\n\n it('toggles openMobile instead of open on a mobile viewport, without writing the cookie', () => {\n setTestViewportWidth(500)\n\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n <SidebarTrigger />\n </SidebarProvider>\n )\n\n fireEvent.click(screen.getByRole('button'))\n\n const probe = screen.getByTestId('probe')\n\n expect(probe.getAttribute('data-open-mobile')).toBe('true')\n expect(probe.getAttribute('data-open')).toBe('true')\n expect(readSidebarCookie()).toBeUndefined()\n })\n})\n\ndescribe('useSidebar', () => {\n it('throws when used outside of a SidebarProvider', () => {\n expect(() => renderHook(() => useSidebar())).toThrow('useSidebar must be used within a SidebarProvider.')\n })\n\n it('exposes state, open, isMobile, openMobile and toggleSidebar to consumers', () => {\n const { result } = renderHook(() => useSidebar(), {\n wrapper: ({ children }) => <SidebarProvider>{children}</SidebarProvider>\n })\n\n expect(result.current.state).toBe('expanded')\n expect(result.current.open).toBe(true)\n expect(result.current.isMobile).toBe(false)\n expect(result.current.openMobile).toBe(false)\n\n act(() => {\n result.current.toggleSidebar()\n })\n\n expect(result.current.open).toBe(false)\n expect(result.current.state).toBe('collapsed')\n })\n})\n\ndescribe('Sidebar', () => {\n it('renders a plain wrapper when collapsible=\"none\"', () => {\n const { container } = render(\n <SidebarProvider>\n <Sidebar collapsible=\"none\">plain content</Sidebar>\n </SidebarProvider>\n )\n\n const sidebar = container.querySelector('[data-slot=\"sidebar\"]') as HTMLElement\n\n expect(sidebar).not.toBeNull()\n expect(sidebar.className).toContain('w-(--sidebar-width)')\n expect(sidebar.getAttribute('data-state')).toBeNull()\n expect(screen.getByText('plain content')).not.toBeNull()\n })\n\n it('renders the desktop layout with gap/container/inner elements reflecting side/variant/state', () => {\n const { container } = render(\n <SidebarProvider defaultOpen={false}>\n <Sidebar side=\"right\" variant=\"floating\" collapsible=\"icon\">\n desktop content\n </Sidebar>\n </SidebarProvider>\n )\n\n const sidebar = container.querySelector('[data-slot=\"sidebar\"]') as HTMLElement\n\n expect(sidebar.getAttribute('data-state')).toBe('collapsed')\n expect(sidebar.getAttribute('data-collapsible')).toBe('icon')\n expect(sidebar.getAttribute('data-variant')).toBe('floating')\n expect(sidebar.getAttribute('data-side')).toBe('right')\n expect(container.querySelector('[data-slot=\"sidebar-gap\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-container\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-inner\"]')).not.toBeNull()\n })\n\n it('clears data-collapsible while expanded', () => {\n const { container } = render(\n <SidebarProvider>\n <Sidebar collapsible=\"icon\">content</Sidebar>\n </SidebarProvider>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar\"]')?.getAttribute('data-collapsible')).toBe('')\n })\n\n it('is not rendered on mobile until openMobile is toggled, then renders inside a Drawer', () => {\n setTestViewportWidth(500)\n\n const { container, baseElement } = render(\n <SidebarProvider>\n <Sidebar>\n <span>mobile content</span>\n </Sidebar>\n <SidebarTrigger />\n </SidebarProvider>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar\"]')).toBeNull()\n expect(baseElement.querySelector('[data-slot=\"sidebar\"]')).toBeNull()\n\n fireEvent.click(screen.getByRole('button'))\n\n const mobileSidebar = baseElement.querySelector('[data-slot=\"sidebar\"]') as HTMLElement\n\n expect(mobileSidebar).not.toBeNull()\n expect(mobileSidebar.getAttribute('data-mobile')).toBe('true')\n expect(screen.getByText('mobile content')).not.toBeNull()\n })\n})\n\ndescribe('SidebarTrigger', () => {\n it('renders with the sidebar-trigger slot and an accessible label', () => {\n const { container } = render(\n <SidebarProvider>\n <SidebarTrigger />\n </SidebarProvider>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar-trigger\"]')).not.toBeNull()\n expect(screen.getByRole('button', { name: 'Toggle Sidebar' })).not.toBeNull()\n })\n\n it('calls a provided onClick handler in addition to toggling the sidebar', () => {\n const handleClick = vi.fn()\n\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n <SidebarTrigger onClick={handleClick} />\n </SidebarProvider>\n )\n\n fireEvent.click(screen.getByRole('button'))\n\n expect(handleClick).toHaveBeenCalledTimes(1)\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n })\n})\n\ndescribe('SidebarRail', () => {\n it('renders a rail button with the expected slot, label and tabIndex', () => {\n const { container } = render(\n <SidebarProvider>\n <SidebarRail />\n </SidebarProvider>\n )\n\n const rail = container.querySelector('[data-slot=\"sidebar-rail\"]') as HTMLElement\n\n expect(rail).not.toBeNull()\n expect(rail.getAttribute('aria-label')).toBe('Toggle Sidebar')\n expect(rail.getAttribute('tabIndex')).toBe('-1')\n })\n\n it('toggles the sidebar when clicked', () => {\n render(\n <SidebarProvider>\n <SidebarStateProbe />\n <SidebarRail />\n </SidebarProvider>\n )\n\n fireEvent.click(screen.getByTitle('Toggle Sidebar'))\n\n expect(screen.getByTestId('probe').getAttribute('data-state')).toBe('collapsed')\n })\n})\n\ndescribe('static layout subcomponents', () => {\n it('renders SidebarInset as a main element', () => {\n const { container } = render(<SidebarInset>inset content</SidebarInset>)\n\n expect(container.querySelector('[data-slot=\"sidebar-inset\"]')?.tagName).toBe('MAIN')\n })\n\n it('renders SidebarInput as a styled text input', () => {\n render(<SidebarInput placeholder=\"Search\" />)\n\n const input = screen.getByPlaceholderText('Search')\n\n expect(input.getAttribute('data-slot')).toBe('sidebar-input')\n expect(input.className).toContain('h-8')\n })\n\n it('renders SidebarHeader, SidebarFooter, SidebarSeparator and SidebarContent with their slots', () => {\n const { container } = render(\n <>\n <SidebarHeader>header</SidebarHeader>\n <SidebarFooter>footer</SidebarFooter>\n <SidebarSeparator />\n <SidebarContent>content</SidebarContent>\n </>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar-header\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-footer\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-separator\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-content\"]')).not.toBeNull()\n })\n\n it('renders SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuBadge, SidebarMenuSub and SidebarMenuSubItem with their slots', () => {\n const { container } = render(\n <SidebarGroup>\n <SidebarGroupContent>\n <SidebarMenu>\n <SidebarMenuItem>\n item\n <SidebarMenuBadge>1</SidebarMenuBadge>\n <SidebarMenuSub>\n <SidebarMenuSubItem>sub item</SidebarMenuSubItem>\n </SidebarMenuSub>\n </SidebarMenuItem>\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar-group\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-group-content\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-menu\"]')?.tagName).toBe('UL')\n expect(container.querySelector('[data-slot=\"sidebar-menu-item\"]')?.tagName).toBe('LI')\n expect(container.querySelector('[data-slot=\"sidebar-menu-badge\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"sidebar-menu-sub\"]')?.tagName).toBe('UL')\n expect(container.querySelector('[data-slot=\"sidebar-menu-sub-item\"]')?.tagName).toBe('LI')\n })\n})\n\ndescribe('SidebarGroupLabel', () => {\n it('renders as a div by default', () => {\n const { container } = render(<SidebarGroupLabel>Label</SidebarGroupLabel>)\n\n expect(container.querySelector('[data-slot=\"sidebar-group-label\"]')?.tagName).toBe('DIV')\n })\n\n it('renders as the child element when asChild is set', () => {\n const { container } = render(\n <SidebarGroupLabel asChild>\n <span>Label</span>\n </SidebarGroupLabel>\n )\n\n expect(container.querySelector('[data-slot=\"sidebar-group-label\"]')?.tagName).toBe('SPAN')\n })\n})\n\ndescribe('SidebarGroupAction', () => {\n it('renders as a button by default', () => {\n const { container } = render(<SidebarGroupAction>Add</SidebarGroupAction>)\n\n expect(container.querySelector('[data-slot=\"sidebar-group-action\"]')?.tagName).toBe('BUTTON')\n })\n\n it('renders as the child element when asChild is set and forwards click handlers', () => {\n const handleClick = vi.fn()\n\n render(\n <SidebarGroupAction asChild onClick={handleClick}>\n <a href=\"#action\">Add</a>\n </SidebarGroupAction>\n )\n\n const action = screen.getByText('Add')\n\n expect(action.tagName).toBe('A')\n\n fireEvent.click(action)\n\n expect(handleClick).toHaveBeenCalledTimes(1)\n })\n})\n\ndescribe('SidebarMenuButton', () => {\n it('renders default size/active data attributes', () => {\n const { container } = render(\n <SidebarProvider>\n <SidebarMenuButton>Item</SidebarMenuButton>\n </SidebarProvider>\n )\n\n const button = container.querySelector('[data-slot=\"sidebar-menu-button\"]') as HTMLElement\n\n expect(button.getAttribute('data-size')).toBe('md')\n expect(button.getAttribute('data-active')).toBe('false')\n })\n\n it('reflects isActive and a custom size', () => {\n const { container } = render(\n <SidebarProvider>\n <SidebarMenuButton isActive size=\"lg\">\n Item\n </SidebarMenuButton>\n </SidebarProvider>\n )\n\n const button = container.querySelector('[data-slot=\"sidebar-menu-button\"]') as HTMLElement\n\n expect(button.getAttribute('data-active')).toBe('true')\n expect(button.getAttribute('data-size')).toBe('lg')\n })\n\n it('renders as the child element when asChild is set', () => {\n render(\n <SidebarProvider>\n <SidebarMenuButton asChild>\n <a href=\"#item\">Item</a>\n </SidebarMenuButton>\n </SidebarProvider>\n )\n\n expect(screen.getByRole('link', { name: 'Item' })).not.toBeNull()\n })\n\n it('renders without a tooltip wrapper when no tooltip is provided', () => {\n const { container } = render(\n <SidebarProvider>\n <SidebarMenuButton>Item</SidebarMenuButton>\n </SidebarProvider>\n )\n\n expect(container.querySelector('[data-slot=\"tooltip-trigger\"]')).toBeNull()\n })\n\n it('wraps the button in a Tooltip when a string tooltip is provided', () => {\n const { baseElement } = render(\n <TooltipProvider>\n <SidebarProvider defaultOpen={false}>\n <SidebarMenuButton tooltip=\"Item tooltip\">Item</SidebarMenuButton>\n </SidebarProvider>\n </TooltipProvider>\n )\n\n expect(baseElement.querySelector('[data-slot=\"tooltip-content\"]')).toBeNull()\n\n fireEvent.focus(screen.getByText('Item'))\n\n expect(baseElement.querySelector('[data-slot=\"tooltip-content\"]')?.textContent).toBe('Item tooltip')\n })\n\n it('accepts an object tooltip with custom content props', () => {\n const { baseElement } = render(\n <TooltipProvider>\n <SidebarProvider defaultOpen={false}>\n <SidebarMenuButton tooltip={{ children: 'Custom tooltip', side: 'bottom' }}>Item</SidebarMenuButton>\n </SidebarProvider>\n </TooltipProvider>\n )\n\n fireEvent.focus(screen.getByText('Item'))\n\n const tooltip = baseElement.querySelector('[data-slot=\"tooltip-content\"]')\n\n expect(tooltip?.textContent).toBe('Custom tooltip')\n expect(tooltip?.getAttribute('data-side')).toBe('bottom')\n })\n\n it('hides the tooltip content while expanded and shows it while collapsed on desktop', () => {\n const { baseElement } = render(\n <TooltipProvider>\n <SidebarProvider defaultOpen>\n <SidebarMenuButton tooltip=\"Item tooltip\">Item</SidebarMenuButton>\n <SidebarTrigger />\n </SidebarProvider>\n </TooltipProvider>\n )\n\n fireEvent.focus(screen.getByText('Item'))\n\n const tooltip = baseElement.querySelector('[data-slot=\"tooltip-content\"]') as HTMLElement\n\n expect(tooltip.hidden).toBe(true)\n\n fireEvent.click(screen.getByRole('button', { name: 'Toggle Sidebar' }))\n\n expect(tooltip.hidden).toBe(false)\n })\n})\n\ndescribe('SidebarMenuAction', () => {\n it('renders as a button with the menu-action slot', () => {\n const { container } = render(<SidebarMenuAction>Action</SidebarMenuAction>)\n\n expect(container.querySelector('[data-slot=\"sidebar-menu-action\"]')?.tagName).toBe('BUTTON')\n })\n\n it('applies the showOnHover classes when requested', () => {\n const { container } = render(<SidebarMenuAction showOnHover>Action</SidebarMenuAction>)\n\n const action = container.querySelector('[data-slot=\"sidebar-menu-action\"]') as HTMLElement\n\n expect(action.className).toContain('md:opacity-0')\n })\n\n it('renders as the child element when asChild is set', () => {\n render(\n <SidebarMenuAction asChild>\n <a href=\"#action\">Action</a>\n </SidebarMenuAction>\n )\n\n expect(screen.getByRole('link', { name: 'Action' })).not.toBeNull()\n })\n})\n\ndescribe('SidebarMenuSkeleton', () => {\n it('renders a text placeholder without an icon by default', () => {\n const { container } = render(<SidebarMenuSkeleton />)\n\n expect(container.querySelector('[data-sidebar=\"menu-skeleton-icon\"]')).toBeNull()\n expect(container.querySelector('[data-sidebar=\"menu-skeleton-text\"]')).not.toBeNull()\n })\n\n it('renders an icon skeleton when showIcon is set', () => {\n const { container } = render(<SidebarMenuSkeleton showIcon />)\n\n expect(container.querySelector('[data-sidebar=\"menu-skeleton-icon\"]')).not.toBeNull()\n })\n\n it('assigns a random text width between 50% and 90%', () => {\n const { container } = render(<SidebarMenuSkeleton />)\n\n const text = container.querySelector('[data-sidebar=\"menu-skeleton-text\"]') as HTMLElement\n const width = Number(text.style.getPropertyValue('--skeleton-width').replace('%', ''))\n\n expect(width).toBeGreaterThanOrEqual(50)\n expect(width).toBeLessThanOrEqual(90)\n })\n})\n\ndescribe('SidebarMenuSubButton', () => {\n it('renders as an anchor by default with size and active data attributes', () => {\n const { container } = render(<SidebarMenuSubButton href=\"#sub\">Sub item</SidebarMenuSubButton>)\n\n const button = container.querySelector('[data-slot=\"sidebar-menu-sub-button\"]') as HTMLElement\n\n expect(button.tagName).toBe('A')\n expect(button.getAttribute('data-size')).toBe('md')\n expect(button.getAttribute('data-active')).toBe('false')\n })\n\n it('reflects isActive and a custom size', () => {\n const { container } = render(\n <SidebarMenuSubButton isActive size=\"sm\">\n Sub item\n </SidebarMenuSubButton>\n )\n\n const button = container.querySelector('[data-slot=\"sidebar-menu-sub-button\"]') as HTMLElement\n\n expect(button.getAttribute('data-active')).toBe('true')\n expect(button.getAttribute('data-size')).toBe('sm')\n })\n\n it('renders as the child element when asChild is set', () => {\n render(\n <SidebarMenuSubButton asChild>\n <button type=\"button\">Sub item</button>\n </SidebarMenuSubButton>\n )\n\n expect(screen.getByRole('button', { name: 'Sub item' })).not.toBeNull()\n })\n})\n"],"mappings":"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"}
@@ -1,14 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- //#region src/components/simple-grid.d.ts
4
- type SimpleGridSpacing = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
- type SimpleGridProps = React.ComponentProps<'div'> & {
6
- cols?: number;
7
- gap?: SimpleGridSpacing;
8
- rowGap?: SimpleGridSpacing;
9
- columnGap?: SimpleGridSpacing;
10
- };
11
- declare function SimpleGrid({ className, cols, gap, rowGap, columnGap, style, ...props }: SimpleGridProps): React.JSX.Element;
12
- //#endregion
13
- export { SimpleGrid, SimpleGridProps };
14
- //# sourceMappingURL=simple-grid.d.ts.map
1
+ import { n as SimpleGridProps, t as SimpleGrid } from "../simple-grid-B2zjpwZ3.js";
2
+ export { SimpleGrid, SimpleGridProps };
@@ -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";const n={xs:1,sm:2,md:4,lg:6,xl:8};function toSpacingValue(e){return`calc(var(--spacing) * ${n[e]})`}function SimpleGrid({className:n,cols:r=1,gap:i,rowGap:a,columnGap:o,style:s,...c}){return t(`div`,{"data-slot":`simple-grid`,className:e(`grid min-w-0`,`[grid-template-columns:repeat(var(--simple-grid-cols),minmax(0,1fr))]`,`gap-[var(--simple-grid-gap)] gap-y-[var(--simple-grid-row-gap)] gap-x-[var(--simple-grid-column-gap)]`,n),style:{"--simple-grid-cols":r,"--simple-grid-gap":i?toSpacingValue(i):`0px`,"--simple-grid-row-gap":a?toSpacingValue(a):`var(--simple-grid-gap)`,"--simple-grid-column-gap":o?toSpacingValue(o):`var(--simple-grid-gap)`,...s},...c})}export{SimpleGrid};
2
- //# sourceMappingURL=simple-grid.js.map
1
+ import{t as e}from"../simple-grid-9EryoUWI.js";export{e as SimpleGrid};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../simple-grid-9EryoUWI.js";import{r as t}from"../react.esm-BkhVXJ8s.js";import{jsx as n}from"react/jsx-runtime";describe(`SimpleGrid`,()=>{it(`renders with data-slot, base grid classes and a single default column`,()=>{let{container:r}=t(n(e,{})),i=r.querySelector(`[data-slot="simple-grid"]`);expect(i).not.toBeNull(),expect(i.className).toContain(`grid`),expect(i.className).toContain(`min-w-0`),expect(i.style.getPropertyValue(`--simple-grid-cols`)).toBe(`1`),expect(i.style.getPropertyValue(`--simple-grid-gap`)).toBe(`0px`)}),it(`sets the cols and gap css variables from the cols and gap props`,()=>{let{container:r}=t(n(e,{cols:3,gap:`lg`})),i=r.querySelector(`[data-slot="simple-grid"]`);expect(i.style.getPropertyValue(`--simple-grid-cols`)).toBe(`3`),expect(i.style.getPropertyValue(`--simple-grid-gap`)).toBe(`calc(var(--spacing) * 6)`),expect(i.style.getPropertyValue(`--simple-grid-row-gap`)).toBe(`var(--simple-grid-gap)`),expect(i.style.getPropertyValue(`--simple-grid-column-gap`)).toBe(`var(--simple-grid-gap)`)}),it(`overrides row and column gaps independently from gap`,()=>{let{container:r}=t(n(e,{gap:`sm`,rowGap:`xl`,columnGap:`xs`})),i=r.querySelector(`[data-slot="simple-grid"]`);expect(i.style.getPropertyValue(`--simple-grid-gap`)).toBe(`calc(var(--spacing) * 2)`),expect(i.style.getPropertyValue(`--simple-grid-row-gap`)).toBe(`calc(var(--spacing) * 8)`),expect(i.style.getPropertyValue(`--simple-grid-column-gap`)).toBe(`calc(var(--spacing) * 1)`)}),it(`merges a custom className with the base classes`,()=>{let{container:r}=t(n(e,{className:`custom-grid`}));expect(r.querySelector(`[data-slot="simple-grid"]`)?.className).toContain(`custom-grid`)}),it(`forwards ref to the underlying div element`,()=>{let r={current:null};t(n(e,{ref:r})),expect(r.current).toBeInstanceOf(HTMLDivElement)})});
2
+ //# sourceMappingURL=simple-grid.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-grid.spec.js","names":[],"sources":["../../src/components/simple-grid.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { SimpleGrid } from './simple-grid'\n\ndescribe('SimpleGrid', () => {\n it('renders with data-slot, base grid classes and a single default column', () => {\n const { container } = render(<SimpleGrid />)\n\n const grid = container.querySelector('[data-slot=\"simple-grid\"]') as HTMLElement\n\n expect(grid).not.toBeNull()\n expect(grid.className).toContain('grid')\n expect(grid.className).toContain('min-w-0')\n expect(grid.style.getPropertyValue('--simple-grid-cols')).toBe('1')\n expect(grid.style.getPropertyValue('--simple-grid-gap')).toBe('0px')\n })\n\n it('sets the cols and gap css variables from the cols and gap props', () => {\n const { container } = render(<SimpleGrid cols={3} gap=\"lg\" />)\n\n const grid = container.querySelector('[data-slot=\"simple-grid\"]') as HTMLElement\n\n expect(grid.style.getPropertyValue('--simple-grid-cols')).toBe('3')\n expect(grid.style.getPropertyValue('--simple-grid-gap')).toBe('calc(var(--spacing) * 6)')\n expect(grid.style.getPropertyValue('--simple-grid-row-gap')).toBe('var(--simple-grid-gap)')\n expect(grid.style.getPropertyValue('--simple-grid-column-gap')).toBe('var(--simple-grid-gap)')\n })\n\n it('overrides row and column gaps independently from gap', () => {\n const { container } = render(<SimpleGrid gap=\"sm\" rowGap=\"xl\" columnGap=\"xs\" />)\n\n const grid = container.querySelector('[data-slot=\"simple-grid\"]') as HTMLElement\n\n expect(grid.style.getPropertyValue('--simple-grid-gap')).toBe('calc(var(--spacing) * 2)')\n expect(grid.style.getPropertyValue('--simple-grid-row-gap')).toBe('calc(var(--spacing) * 8)')\n expect(grid.style.getPropertyValue('--simple-grid-column-gap')).toBe('calc(var(--spacing) * 1)')\n })\n\n it('merges a custom className with the base classes', () => {\n const { container } = render(<SimpleGrid className=\"custom-grid\" />)\n\n expect(container.querySelector('[data-slot=\"simple-grid\"]')?.className).toContain('custom-grid')\n })\n\n it('forwards ref to the underlying div element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<SimpleGrid ref={ref} />)\n\n expect(ref.current).toBeInstanceOf(HTMLDivElement)\n })\n})\n"],"mappings":"4KAIA,SAAS,iBAAoB,CAC3B,GAAG,4EAA+E,CAChF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAa,CAAA,CAAC,EAErC,EAAO,EAAU,cAAc,2BAA2B,EAEhE,OAAO,CAAI,CAAC,CAAC,IAAI,SAAS,EAC1B,OAAO,EAAK,SAAS,CAAC,CAAC,UAAU,MAAM,EACvC,OAAO,EAAK,SAAS,CAAC,CAAC,UAAU,SAAS,EAC1C,OAAO,EAAK,MAAM,iBAAiB,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,EAClE,OAAO,EAAK,MAAM,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,KAAK,KAAK,CACrE,CAAC,EAED,GAAG,sEAAyE,CAC1E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAY,KAAM,EAAG,IAAI,IAAM,CAAA,CAAC,EAEvD,EAAO,EAAU,cAAc,2BAA2B,EAEhE,OAAO,EAAK,MAAM,iBAAiB,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,EAClE,OAAO,EAAK,MAAM,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACxF,OAAO,EAAK,MAAM,iBAAiB,uBAAuB,CAAC,CAAC,CAAC,KAAK,wBAAwB,EAC1F,OAAO,EAAK,MAAM,iBAAiB,0BAA0B,CAAC,CAAC,CAAC,KAAK,wBAAwB,CAC/F,CAAC,EAED,GAAG,2DAA8D,CAC/D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAY,IAAI,KAAK,OAAO,KAAK,UAAU,IAAM,CAAA,CAAC,EAEzE,EAAO,EAAU,cAAc,2BAA2B,EAEhE,OAAO,EAAK,MAAM,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,KAAK,0BAA0B,EACxF,OAAO,EAAK,MAAM,iBAAiB,uBAAuB,CAAC,CAAC,CAAC,KAAK,0BAA0B,EAC5F,OAAO,EAAK,MAAM,iBAAiB,0BAA0B,CAAC,CAAC,CAAC,KAAK,0BAA0B,CACjG,CAAC,EAED,GAAG,sDAAyD,CAC1D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAY,UAAU,aAAe,CAAA,CAAC,EAEnE,OAAO,EAAU,cAAc,2BAA2B,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,aAAa,CACjG,CAAC,EAED,GAAG,iDAAoD,CACrD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAiB,KAAM,CAAA,CAAC,EAE/B,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,cAAc,CACnD,CAAC,CACH,CAAC"}
@@ -1,10 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import * as React from "react";
3
- //#region src/components/skeleton.d.ts
4
- type SkeletonProps = React.ComponentProps<'div'> & {
5
- visible?: boolean;
6
- };
7
- declare function Skeleton({ className, children, visible, ...props }: SkeletonProps): React.JSX.Element;
8
- //#endregion
9
- export { Skeleton, SkeletonProps };
10
- //# sourceMappingURL=skeleton.d.ts.map
1
+ import { n as SkeletonProps, t as Skeleton } from "../skeleton-Co8pevj-.js";
2
+ export { Skeleton, SkeletonProps };
@@ -1,2 +1 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{cn as e}from"../lib/utils.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";function Skeleton({className:r,children:i,visible:a=!0,...o}){return i==null?t(`div`,{"data-slot":`skeleton`,className:e(`bg-muted rounded-md animate-pulse`,r),...o}):n(`div`,{"data-slot":`skeleton`,"aria-busy":a||void 0,className:e(`relative rounded-md`,r),...o,children:[t(`div`,{"data-slot":`skeleton-content`,className:e(a&&`invisible`),"aria-hidden":a||void 0,children:i}),a&&t(`div`,{"data-slot":`skeleton-overlay`,"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 rounded-[inherit] bg-muted animate-pulse`})]})}export{Skeleton};
2
- //# sourceMappingURL=skeleton.js.map
1
+ import{t as e}from"../skeleton-Cn3zBJRe.js";export{e as Skeleton};
@@ -1,2 +1,2 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{Skeleton as e}from"./skeleton.js";import{a as t,r as n}from"../react.esm-D5AipFQb.js";import{jsx as r}from"react/jsx-runtime";describe(`Skeleton`,()=>{it(`renders the legacy placeholder when children are not provided`,()=>{let{container:t}=n(r(e,{className:`h-4 w-48`})),i=t.querySelector(`[data-slot="skeleton"]`);expect(i).not.toBeNull(),expect(i?.className).toContain(`bg-muted`),expect(i?.className).toContain(`animate-pulse`),expect(i?.className).toContain(`h-4`),expect(t.querySelector(`[data-slot="skeleton-overlay"]`)).toBeNull()}),it(`keeps children in the DOM and renders an overlay when visible`,()=>{let{container:i}=n(r(e,{visible:!0,children:r(`button`,{type:`button`,children:`Save changes`})})),a=i.querySelector(`[data-slot="skeleton-content"]`),o=i.querySelector(`[data-slot="skeleton-overlay"]`);expect(t.getByRole(`button`,{hidden:!0,name:`Save changes`})).not.toBeNull(),expect(a?.className).toContain(`invisible`),expect(a?.getAttribute(`aria-hidden`)).toBe(`true`),expect(o).not.toBeNull(),expect(o?.className).toContain(`absolute`),expect(o?.className).toContain(`inset-0`)}),it(`shows children and does not render an overlay when hidden`,()=>{let{container:i}=n(r(e,{visible:!1,children:r(`button`,{type:`button`,children:`Save changes`})})),a=i.querySelector(`[data-slot="skeleton-content"]`);expect(t.getByRole(`button`,{name:`Save changes`})).not.toBeNull(),expect(a?.className).not.toContain(`invisible`),expect(a?.getAttribute(`aria-hidden`)).toBeNull(),expect(i.querySelector(`[data-slot="skeleton-overlay"]`)).toBeNull()})});
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../skeleton-Cn3zBJRe.js";import{a as t,r as n}from"../react.esm-BkhVXJ8s.js";import{jsx as r}from"react/jsx-runtime";describe(`Skeleton`,()=>{it(`renders the legacy placeholder when children are not provided`,()=>{let{container:t}=n(r(e,{className:`h-4 w-48`})),i=t.querySelector(`[data-slot="skeleton"]`);expect(i).not.toBeNull(),expect(i?.className).toContain(`bg-muted`),expect(i?.className).toContain(`animate-pulse`),expect(i?.className).toContain(`h-4`),expect(t.querySelector(`[data-slot="skeleton-overlay"]`)).toBeNull()}),it(`keeps children in the DOM and renders an overlay when visible`,()=>{let{container:i}=n(r(e,{visible:!0,children:r(`button`,{type:`button`,children:`Save changes`})})),a=i.querySelector(`[data-slot="skeleton-content"]`),o=i.querySelector(`[data-slot="skeleton-overlay"]`);expect(t.getByRole(`button`,{hidden:!0,name:`Save changes`})).not.toBeNull(),expect(a?.className).toContain(`invisible`),expect(a?.getAttribute(`aria-hidden`)).toBe(`true`),expect(o).not.toBeNull(),expect(o?.className).toContain(`absolute`),expect(o?.className).toContain(`inset-0`)}),it(`shows children and does not render an overlay when hidden`,()=>{let{container:i}=n(r(e,{visible:!1,children:r(`button`,{type:`button`,children:`Save changes`})})),a=i.querySelector(`[data-slot="skeleton-content"]`);expect(t.getByRole(`button`,{name:`Save changes`})).not.toBeNull(),expect(a?.className).not.toContain(`invisible`),expect(a?.getAttribute(`aria-hidden`)).toBeNull(),expect(i.querySelector(`[data-slot="skeleton-overlay"]`)).toBeNull()})});
2
2
  //# sourceMappingURL=skeleton.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.spec.js","names":[],"sources":["../../src/components/skeleton.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Skeleton } from './skeleton'\n\ndescribe('Skeleton', () => {\n it('renders the legacy placeholder when children are not provided', () => {\n const { container } = render(<Skeleton className=\"h-4 w-48\" />)\n\n const skeleton = container.querySelector('[data-slot=\"skeleton\"]')\n\n expect(skeleton).not.toBeNull()\n expect(skeleton?.className).toContain('bg-muted')\n expect(skeleton?.className).toContain('animate-pulse')\n expect(skeleton?.className).toContain('h-4')\n expect(container.querySelector('[data-slot=\"skeleton-overlay\"]')).toBeNull()\n })\n\n it('keeps children in the DOM and renders an overlay when visible', () => {\n const { container } = render(\n <Skeleton visible>\n <button type=\"button\">Save changes</button>\n </Skeleton>\n )\n\n const content = container.querySelector('[data-slot=\"skeleton-content\"]')\n const overlay = container.querySelector('[data-slot=\"skeleton-overlay\"]')\n\n expect(screen.getByRole('button', { hidden: true, name: 'Save changes' })).not.toBeNull()\n expect(content?.className).toContain('invisible')\n expect(content?.getAttribute('aria-hidden')).toBe('true')\n expect(overlay).not.toBeNull()\n expect(overlay?.className).toContain('absolute')\n expect(overlay?.className).toContain('inset-0')\n })\n\n it('shows children and does not render an overlay when hidden', () => {\n const { container } = render(\n <Skeleton visible={false}>\n <button type=\"button\">Save changes</button>\n </Skeleton>\n )\n\n const content = container.querySelector('[data-slot=\"skeleton-content\"]')\n\n expect(screen.getByRole('button', { name: 'Save changes' })).not.toBeNull()\n expect(content?.className).not.toContain('invisible')\n expect(content?.getAttribute('aria-hidden')).toBeNull()\n expect(container.querySelector('[data-slot=\"skeleton-overlay\"]')).toBeNull()\n })\n})\n"],"mappings":"6KAIA,SAAS,eAAkB,CACzB,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,UAAU,UAAY,CAAA,CAAC,EAExD,EAAW,EAAU,cAAc,wBAAwB,EAEjE,OAAO,CAAQ,CAAC,CAAC,IAAI,SAAS,EAC9B,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,UAAU,EAChD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,eAAe,EACrD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,KAAK,EAC3C,OAAO,EAAU,cAAc,gCAAgC,CAAC,CAAC,CAAC,SAAS,CAC7E,CAAC,EAED,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAU,QAAA,GACR,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAClC,CAAA,CACZ,EAEM,EAAU,EAAU,cAAc,gCAAgC,EAClE,EAAU,EAAU,cAAc,gCAAgC,EAExE,OAAO,EAAO,UAAU,SAAU,CAAE,OAAQ,GAAM,KAAM,cAAe,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EACxF,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,WAAW,EAChD,OAAO,GAAS,aAAa,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,EACxD,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,UAAU,EAC/C,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,SAAS,CAChD,CAAC,EAED,GAAG,gEAAmE,CACpE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAU,QAAS,GACjB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAClC,CAAA,CACZ,EAEM,EAAU,EAAU,cAAc,gCAAgC,EAExE,OAAO,EAAO,UAAU,SAAU,CAAE,KAAM,cAAe,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAC1E,OAAO,GAAS,SAAS,CAAC,CAAC,IAAI,UAAU,WAAW,EACpD,OAAO,GAAS,aAAa,aAAa,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAU,cAAc,gCAAgC,CAAC,CAAC,CAAC,SAAS,CAC7E,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"skeleton.spec.js","names":[],"sources":["../../src/components/skeleton.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Skeleton } from './skeleton'\n\ndescribe('Skeleton', () => {\n it('renders the legacy placeholder when children are not provided', () => {\n const { container } = render(<Skeleton className=\"h-4 w-48\" />)\n\n const skeleton = container.querySelector('[data-slot=\"skeleton\"]')\n\n expect(skeleton).not.toBeNull()\n expect(skeleton?.className).toContain('bg-muted')\n expect(skeleton?.className).toContain('animate-pulse')\n expect(skeleton?.className).toContain('h-4')\n expect(container.querySelector('[data-slot=\"skeleton-overlay\"]')).toBeNull()\n })\n\n it('keeps children in the DOM and renders an overlay when visible', () => {\n const { container } = render(\n <Skeleton visible>\n <button type=\"button\">Save changes</button>\n </Skeleton>\n )\n\n const content = container.querySelector('[data-slot=\"skeleton-content\"]')\n const overlay = container.querySelector('[data-slot=\"skeleton-overlay\"]')\n\n expect(screen.getByRole('button', { hidden: true, name: 'Save changes' })).not.toBeNull()\n expect(content?.className).toContain('invisible')\n expect(content?.getAttribute('aria-hidden')).toBe('true')\n expect(overlay).not.toBeNull()\n expect(overlay?.className).toContain('absolute')\n expect(overlay?.className).toContain('inset-0')\n })\n\n it('shows children and does not render an overlay when hidden', () => {\n const { container } = render(\n <Skeleton visible={false}>\n <button type=\"button\">Save changes</button>\n </Skeleton>\n )\n\n const content = container.querySelector('[data-slot=\"skeleton-content\"]')\n\n expect(screen.getByRole('button', { name: 'Save changes' })).not.toBeNull()\n expect(content?.className).not.toContain('invisible')\n expect(content?.getAttribute('aria-hidden')).toBeNull()\n expect(container.querySelector('[data-slot=\"skeleton-overlay\"]')).toBeNull()\n })\n})\n"],"mappings":"gLAIA,SAAS,eAAkB,CACzB,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,UAAU,UAAY,CAAA,CAAC,EAExD,EAAW,EAAU,cAAc,wBAAwB,EAEjE,OAAO,CAAQ,CAAC,CAAC,IAAI,SAAS,EAC9B,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,UAAU,EAChD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,eAAe,EACrD,OAAO,GAAU,SAAS,CAAC,CAAC,UAAU,KAAK,EAC3C,OAAO,EAAU,cAAc,gCAAgC,CAAC,CAAC,CAAC,SAAS,CAC7E,CAAC,EAED,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAU,QAAA,GACR,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAClC,CAAA,CACZ,EAEM,EAAU,EAAU,cAAc,gCAAgC,EAClE,EAAU,EAAU,cAAc,gCAAgC,EAExE,OAAO,EAAO,UAAU,SAAU,CAAE,OAAQ,GAAM,KAAM,cAAe,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EACxF,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,WAAW,EAChD,OAAO,GAAS,aAAa,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,EACxD,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,UAAU,EAC/C,OAAO,GAAS,SAAS,CAAC,CAAC,UAAU,SAAS,CAChD,CAAC,EAED,GAAG,gEAAmE,CACpE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAU,QAAS,GACjB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAClC,CAAA,CACZ,EAEM,EAAU,EAAU,cAAc,gCAAgC,EAExE,OAAO,EAAO,UAAU,SAAU,CAAE,KAAM,cAAe,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAC1E,OAAO,GAAS,SAAS,CAAC,CAAC,IAAI,UAAU,WAAW,EACpD,OAAO,GAAS,aAAa,aAAa,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAU,cAAc,gCAAgC,CAAC,CAAC,CAAC,SAAS,CAC7E,CAAC,CACH,CAAC"}
@@ -1,9 +1,2 @@
1
- import { n as __name } from "../rolldown-runtime-Bdj-bS2b.js";
2
- import { Slider as Slider$1 } from "radix-ui";
3
- import * as React from "react";
4
- //#region src/components/slider.d.ts
5
- type SliderProps = React.ComponentProps<typeof Slider$1.Root>;
6
- declare function Slider({ className, defaultValue, id, value, min, max, ...props }: SliderProps): React.JSX.Element;
7
- //#endregion
8
- export { Slider, SliderProps };
9
- //# sourceMappingURL=slider.d.ts.map
1
+ import { n as SliderProps, t as Slider } from "../slider-DmZ1YfLg.js";
2
+ export { Slider, SliderProps };
@@ -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{Slider as n}from"radix-ui";import{jsx as r,jsxs as i}from"react/jsx-runtime";import*as a from"react";function Slider({className:o,defaultValue:s,id:c,value:l,min:u=0,max:d=100,...f}){let p=t(c),m=a.useMemo(()=>Array.isArray(l)?l:Array.isArray(s)?s:[u,d],[l,s,u,d]);return i(n.Root,{id:p,"data-slot":`slider`,defaultValue:s,value:l,min:u,max:d,className:e(`relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col`,o),...f,children:[r(n.Track,{"data-slot":`slider-track`,className:e(`relative grow overflow-hidden rounded-full bg-muted`,`data-horizontal:h-1 data-horizontal:w-full`,`data-vertical:h-full data-vertical:w-1`),children:r(n.Range,{"data-slot":`slider-range`,className:`absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full`})}),m.map((t,i)=>r(n.Thumb,{"data-slot":`slider-thumb`,className:e(`relative block size-3 shrink-0 rounded-full border border-ring bg-white dark:bg-primary ring-ring/50`,`transition-[color,box-shadow] select-none after:absolute after:-inset-2`,`hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3`,`disabled:pointer-events-none disabled:opacity-50`)},String(i)))]})}export{Slider};
2
- //# sourceMappingURL=slider.js.map
1
+ import{t as e}from"../slider-CC-gQawq.js";export{e as Slider};
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,2 @@
1
+ import"../rolldown-runtime-Bdj-bS2b.js";import{o as e,t}from"../field-DzR-XrO7.js";import{t as n}from"../slider-CC-gQawq.js";import{r}from"../react.esm-BkhVXJ8s.js";import{jsx as i,jsxs as a}from"react/jsx-runtime";var ResizeObserverStub=class{observe(){}unobserve(){}disconnect(){}};globalThis.ResizeObserver=ResizeObserverStub,describe(`Slider`,()=>{it(`renders the track, range and one thumb per default min/max value`,()=>{let{container:e}=r(i(n,{}));expect(e.querySelector(`[data-slot="slider"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="slider-track"]`)).not.toBeNull(),expect(e.querySelector(`[data-slot="slider-range"]`)).not.toBeNull(),expect(e.querySelectorAll(`[data-slot="slider-thumb"]`)).toHaveLength(2)}),it(`renders a single thumb when defaultValue has one value`,()=>{let{container:e}=r(i(n,{defaultValue:[40]}));expect(e.querySelectorAll(`[data-slot="slider-thumb"]`)).toHaveLength(1)}),it(`renders one thumb per value when the value prop is controlled`,()=>{let{container:e}=r(i(n,{value:[10,50,90],onValueChange:()=>{}}));expect(e.querySelectorAll(`[data-slot="slider-thumb"]`)).toHaveLength(3)}),it(`assigns an explicit id to the root element`,()=>{let{container:e}=r(i(n,{id:`volume`}));expect(e.querySelector(`[data-slot="slider"]`)?.getAttribute(`id`)).toBe(`volume`)}),it(`wires the field control id when rendered inside Field`,()=>{let{container:o}=r(a(t,{children:[i(e,{children:`Volume`}),i(n,{})]})),s=o.querySelector(`[data-slot="field-label"]`),c=o.querySelector(`[data-slot="slider"]`);expect(s?.getAttribute(`for`)).toBe(c?.getAttribute(`id`)),expect(c?.getAttribute(`id`)).toBeTruthy()}),it(`merges a custom className onto the root`,()=>{let{container:e}=r(i(n,{className:`custom-slider`}));expect(e.querySelector(`[data-slot="slider"]`)?.className).toContain(`custom-slider`)})});
2
+ //# sourceMappingURL=slider.spec.js.map