@uselets/ui 1.18.5 → 1.18.6

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 (869) hide show
  1. package/dist/{chart-CVe5-EWS.d.ts → chart-B_6nC_ih.d.ts} +2 -2
  2. package/dist/cli/uselets.mjs.map +1 -1
  3. package/dist/components/accordion.d.ts +15 -2
  4. package/dist/components/accordion.js +2 -1
  5. package/dist/components/accordion.js.map +1 -0
  6. package/dist/components/alert-dialog.d.ts +34 -2
  7. package/dist/components/alert-dialog.js +2 -1
  8. package/dist/components/alert-dialog.js.map +1 -0
  9. package/dist/components/alert.d.ts +18 -2
  10. package/dist/components/alert.js +2 -1
  11. package/dist/components/alert.js.map +1 -0
  12. package/dist/components/anchor.d.ts +15 -2
  13. package/dist/components/anchor.js +2 -1
  14. package/dist/components/anchor.js.map +1 -0
  15. package/dist/components/area-chart.d.ts +40 -2
  16. package/dist/components/area-chart.js +2 -1
  17. package/dist/components/area-chart.js.map +1 -0
  18. package/dist/components/avatar.d.ts +21 -2
  19. package/dist/components/avatar.js +2 -1
  20. package/dist/components/avatar.js.map +1 -0
  21. package/dist/components/badge.d.ts +16 -2
  22. package/dist/components/badge.js +2 -1
  23. package/dist/components/badge.js.map +1 -0
  24. package/dist/components/bar-chart.d.ts +42 -2
  25. package/dist/components/bar-chart.js +2 -1
  26. package/dist/components/bar-chart.js.map +1 -0
  27. package/dist/components/breadcrumb.d.ts +22 -2
  28. package/dist/components/breadcrumb.js +2 -1
  29. package/dist/components/breadcrumb.js.map +1 -0
  30. package/dist/components/button-group.d.ts +18 -2
  31. package/dist/components/button-group.js +2 -1
  32. package/dist/components/button-group.js.map +1 -0
  33. package/dist/components/button.d.ts +17 -2
  34. package/dist/components/button.js +2 -1
  35. package/dist/components/button.js.map +1 -0
  36. package/dist/components/calendar.d.ts +17 -2
  37. package/dist/components/calendar.js +2 -1
  38. package/dist/components/calendar.js.map +1 -0
  39. package/dist/components/card.d.ts +22 -2
  40. package/dist/components/card.js +2 -1
  41. package/dist/components/card.js.map +1 -0
  42. package/dist/components/carousel.d.ts +43 -2
  43. package/dist/components/carousel.js +2 -1
  44. package/dist/components/carousel.js.map +1 -0
  45. package/dist/components/center.d.ts +13 -2
  46. package/dist/components/center.js +2 -1
  47. package/dist/components/center.js.map +1 -0
  48. package/dist/components/chart.d.ts +1 -1
  49. package/dist/components/chart.js +8 -1
  50. package/dist/components/chart.js.map +1 -0
  51. package/dist/components/checkbox.d.ts +21 -2
  52. package/dist/components/checkbox.js +2 -1
  53. package/dist/components/checkbox.js.map +1 -0
  54. package/dist/components/code.d.ts +8 -2
  55. package/dist/components/code.js +2 -1
  56. package/dist/components/code.js.map +1 -0
  57. package/dist/components/collapsible.d.ts +12 -2
  58. package/dist/components/collapsible.js +2 -1
  59. package/dist/components/collapsible.js.map +1 -0
  60. package/dist/components/combobox.d.ts +51 -2
  61. package/dist/components/combobox.js +2 -1
  62. package/dist/components/combobox.js.map +1 -0
  63. package/dist/components/command.d.ts +31 -2
  64. package/dist/components/command.js +2 -1
  65. package/dist/components/command.js.map +1 -0
  66. package/dist/components/container.d.ts +12 -2
  67. package/dist/components/container.js +2 -1
  68. package/dist/components/container.js.map +1 -0
  69. package/dist/components/data-table.d.ts +1 -1
  70. package/dist/components/data-table.js +2 -1
  71. package/dist/components/data-table.js.map +1 -0
  72. package/dist/components/date-range-picker.d.ts +55 -3
  73. package/dist/components/date-range-picker.js +2 -1
  74. package/dist/components/date-range-picker.js.map +1 -0
  75. package/dist/components/dialog.d.ts +42 -2
  76. package/dist/components/dialog.js +2 -1
  77. package/dist/components/dialog.js.map +1 -0
  78. package/dist/components/donut-chart.d.ts +13 -2
  79. package/dist/components/donut-chart.js +2 -1
  80. package/dist/components/donut-chart.js.map +1 -0
  81. package/dist/components/drawer.d.ts +43 -2
  82. package/dist/components/drawer.js +2 -1
  83. package/dist/components/drawer.js.map +1 -0
  84. package/dist/components/dropdown-menu.d.ts +48 -2
  85. package/dist/components/dropdown-menu.js +2 -1
  86. package/dist/components/dropdown-menu.js.map +1 -0
  87. package/dist/components/dropzone.d.ts +102 -2
  88. package/dist/components/dropzone.js +2 -1
  89. package/dist/components/dropzone.js.map +1 -0
  90. package/dist/components/empty.d.ts +21 -2
  91. package/dist/components/empty.js +2 -1
  92. package/dist/components/empty.js.map +1 -0
  93. package/dist/components/field.d.ts +39 -2
  94. package/dist/components/field.js +2 -1
  95. package/dist/components/field.js.map +1 -0
  96. package/dist/components/flex.d.ts +16 -2
  97. package/dist/components/flex.js +2 -1
  98. package/dist/components/flex.js.map +1 -0
  99. package/dist/components/grid.d.ts +20 -2
  100. package/dist/components/grid.js +2 -1
  101. package/dist/components/grid.js.map +1 -0
  102. package/dist/components/group.d.ts +15 -2
  103. package/dist/components/group.js +2 -1
  104. package/dist/components/group.js.map +1 -0
  105. package/dist/components/heading.d.ts +14 -2
  106. package/dist/components/heading.js +2 -1
  107. package/dist/components/heading.js.map +1 -0
  108. package/dist/components/hover-card.d.ts +13 -2
  109. package/dist/components/hover-card.js +2 -1
  110. package/dist/components/hover-card.js.map +1 -0
  111. package/dist/components/input-group.d.ts +26 -2
  112. package/dist/components/input-group.js +2 -1
  113. package/dist/components/input-group.js.map +1 -0
  114. package/dist/components/input-otp.d.ts +19 -2
  115. package/dist/components/input-otp.js +2 -1
  116. package/dist/components/input-otp.js.map +1 -0
  117. package/dist/components/input.d.ts +8 -2
  118. package/dist/components/input.js +2 -1
  119. package/dist/components/input.js.map +1 -0
  120. package/dist/components/kbd.d.ts +10 -2
  121. package/dist/components/kbd.js +2 -1
  122. package/dist/components/kbd.js.map +1 -0
  123. package/dist/components/label.d.ts +9 -2
  124. package/dist/components/label.js +2 -1
  125. package/dist/components/label.js.map +1 -0
  126. package/dist/components/list.d.ts +25 -2
  127. package/dist/components/list.js +2 -1
  128. package/dist/components/list.js.map +1 -0
  129. package/dist/components/logo.d.ts +69 -2
  130. package/dist/components/logo.js +1 -1
  131. package/dist/components/marker.d.ts +18 -2
  132. package/dist/components/marker.js +2 -1
  133. package/dist/components/marker.js.map +1 -0
  134. package/dist/components/mask-input.d.ts +16 -2
  135. package/dist/components/mask-input.js +2 -1
  136. package/dist/components/mask-input.js.map +1 -0
  137. package/dist/components/native-select.d.ts +14 -2
  138. package/dist/components/native-select.js +2 -1
  139. package/dist/components/native-select.js.map +1 -0
  140. package/dist/components/navigation-menu.d.ts +26 -2
  141. package/dist/components/navigation-menu.js +2 -1
  142. package/dist/components/navigation-menu.js.map +1 -0
  143. package/dist/components/number-field.d.ts +35 -2
  144. package/dist/components/number-field.js +2 -1
  145. package/dist/components/number-field.js.map +1 -0
  146. package/dist/components/pagination.d.ts +27 -2
  147. package/dist/components/pagination.js +2 -1
  148. package/dist/components/pagination.js.map +1 -0
  149. package/dist/components/phone-input.d.ts +13 -2
  150. package/dist/components/phone-input.js +2 -1
  151. package/dist/components/phone-input.js.map +1 -0
  152. package/dist/components/pie-chart.d.ts +42 -2
  153. package/dist/components/pie-chart.js +2 -1
  154. package/dist/components/pie-chart.js.map +1 -0
  155. package/dist/components/popover.d.ts +21 -2
  156. package/dist/components/popover.js +2 -1
  157. package/dist/components/popover.js.map +1 -0
  158. package/dist/components/progress.d.ts +14 -2
  159. package/dist/components/progress.js +2 -1
  160. package/dist/components/progress.js.map +1 -0
  161. package/dist/components/radio-group.d.ts +25 -2
  162. package/dist/components/radio-group.js +2 -1
  163. package/dist/components/radio-group.js.map +1 -0
  164. package/dist/components/resizable.d.ts +14 -2
  165. package/dist/components/resizable.js +2 -1
  166. package/dist/components/resizable.js.map +1 -0
  167. package/dist/components/ring-progress.d.ts +17 -2
  168. package/dist/components/ring-progress.js +2 -1
  169. package/dist/components/ring-progress.js.map +1 -0
  170. package/dist/components/scroll-area.d.ts +11 -2
  171. package/dist/components/scroll-area.js +2 -1
  172. package/dist/components/scroll-area.js.map +1 -0
  173. package/dist/components/select.d.ts +29 -2
  174. package/dist/components/select.js +2 -1
  175. package/dist/components/select.js.map +1 -0
  176. package/dist/components/separator.d.ts +9 -2
  177. package/dist/components/separator.js +2 -1
  178. package/dist/components/separator.js.map +1 -0
  179. package/dist/components/sidebar.d.ts +96 -2
  180. package/dist/components/sidebar.js +2 -1
  181. package/dist/components/sidebar.js.map +1 -0
  182. package/dist/components/simple-grid.d.ts +14 -2
  183. package/dist/components/simple-grid.js +2 -1
  184. package/dist/components/simple-grid.js.map +1 -0
  185. package/dist/components/skeleton.d.ts +10 -2
  186. package/dist/components/skeleton.js +2 -1
  187. package/dist/components/skeleton.js.map +1 -0
  188. package/dist/components/slider.d.ts +9 -2
  189. package/dist/components/slider.js +2 -1
  190. package/dist/components/slider.js.map +1 -0
  191. package/dist/components/sonner.d.ts +8 -2
  192. package/dist/components/sonner.js +2 -1
  193. package/dist/components/sonner.js.map +1 -0
  194. package/dist/components/spinner.d.ts +12 -2
  195. package/dist/components/spinner.js +2 -1
  196. package/dist/components/spinner.js.map +1 -0
  197. package/dist/components/stack.d.ts +14 -2
  198. package/dist/components/stack.js +2 -1
  199. package/dist/components/stack.js.map +1 -0
  200. package/dist/components/stepper.d.ts +71 -2
  201. package/dist/components/stepper.js +2 -1
  202. package/dist/components/stepper.js.map +1 -0
  203. package/dist/components/switch.d.ts +17 -2
  204. package/dist/components/switch.js +2 -1
  205. package/dist/components/switch.js.map +1 -0
  206. package/dist/components/table.d.ts +33 -2
  207. package/dist/components/table.js +2 -1
  208. package/dist/components/table.js.map +1 -0
  209. package/dist/components/tabs.d.ts +21 -2
  210. package/dist/components/tabs.js +2 -1
  211. package/dist/components/tabs.js.map +1 -0
  212. package/dist/components/text.d.ts +14 -2
  213. package/dist/components/text.js +2 -1
  214. package/dist/components/text.js.map +1 -0
  215. package/dist/components/textarea.d.ts +8 -2
  216. package/dist/components/textarea.js +2 -1
  217. package/dist/components/textarea.js.map +1 -0
  218. package/dist/components/theme.d.ts +22 -2
  219. package/dist/components/theme.js +2 -1
  220. package/dist/components/theme.js.map +1 -0
  221. package/dist/components/timeline.d.ts +61 -2
  222. package/dist/components/timeline.js +2 -1
  223. package/dist/components/timeline.js.map +1 -0
  224. package/dist/components/toggle-group.d.ts +16 -2
  225. package/dist/components/toggle-group.js +2 -1
  226. package/dist/components/toggle-group.js.map +1 -0
  227. package/dist/components/toggle.d.ts +15 -2
  228. package/dist/components/toggle.js +2 -1
  229. package/dist/components/toggle.js.map +1 -0
  230. package/dist/components/tooltip.d.ts +21 -2
  231. package/dist/components/tooltip.js +2 -1
  232. package/dist/components/tooltip.js.map +1 -0
  233. package/dist/components/unstyled-button.d.ts +10 -2
  234. package/dist/components/unstyled-button.js +2 -1
  235. package/dist/components/unstyled-button.js.map +1 -0
  236. package/dist/components/visibility.d.ts +17 -2
  237. package/dist/components/visibility.js +2 -1
  238. package/dist/components/visibility.js.map +1 -0
  239. package/dist/{data-table-DXNWHN9R.d.ts → data-table-DWWVGWbU.d.ts} +4 -4
  240. package/dist/hooks/use-breakpoint-value.d.ts +8 -2
  241. package/dist/hooks/use-breakpoint-value.js +2 -1
  242. package/dist/hooks/use-breakpoint-value.js.map +1 -0
  243. package/dist/hooks/use-breakpoint.d.ts +8 -2
  244. package/dist/hooks/use-breakpoint.js +2 -1
  245. package/dist/hooks/use-breakpoint.js.map +1 -0
  246. package/dist/hooks/use-disclosure.d.ts +22 -2
  247. package/dist/hooks/use-disclosure.js +2 -1
  248. package/dist/hooks/use-disclosure.js.map +1 -0
  249. package/dist/hooks/use-document-visibility.d.ts +6 -2
  250. package/dist/hooks/use-document-visibility.js +2 -1
  251. package/dist/hooks/use-document-visibility.js.map +1 -0
  252. package/dist/hooks/use-hotkeys.d.ts +1 -1
  253. package/dist/hooks/use-hotkeys.js +1 -1
  254. package/dist/hooks/use-idle.d.ts +13 -2
  255. package/dist/hooks/use-idle.js +2 -1
  256. package/dist/hooks/use-idle.js.map +1 -0
  257. package/dist/hooks/use-interval.d.ts +24 -2
  258. package/dist/hooks/use-interval.js +2 -1
  259. package/dist/hooks/use-interval.js.map +1 -0
  260. package/dist/hooks/use-local-storage.d.ts +16 -2
  261. package/dist/hooks/use-local-storage.js +2 -1
  262. package/dist/hooks/use-local-storage.js.map +1 -0
  263. package/dist/hooks/use-mask.d.ts +8 -2
  264. package/dist/hooks/use-mask.js +2 -1
  265. package/dist/hooks/use-mask.js.map +1 -0
  266. package/dist/hooks/use-mobile.d.ts +6 -2
  267. package/dist/hooks/use-mobile.js +2 -1
  268. package/dist/hooks/use-mobile.js.map +1 -0
  269. package/dist/index.d.ts +95 -95
  270. package/dist/index.js +1 -1
  271. package/dist/lib/badge.d.ts +19 -2
  272. package/dist/lib/badge.js +2 -1
  273. package/dist/lib/badge.js.map +1 -0
  274. package/dist/lib/button.d.ts +19 -2
  275. package/dist/lib/button.js +2 -1
  276. package/dist/lib/button.js.map +1 -0
  277. package/dist/lib/color.d.ts +19 -2
  278. package/dist/lib/color.js +2 -1
  279. package/dist/lib/color.js.map +1 -0
  280. package/dist/lib/compose-refs.d.ts +8 -2
  281. package/dist/lib/compose-refs.js +2 -1
  282. package/dist/lib/compose-refs.js.map +1 -0
  283. package/dist/lib/progress.d.ts +19 -2
  284. package/dist/lib/progress.js +2 -1
  285. package/dist/lib/progress.js.map +1 -0
  286. package/dist/lib/utils.d.ts +7 -2
  287. package/dist/lib/utils.js +2 -1
  288. package/dist/lib/utils.js.map +1 -0
  289. package/dist/logo-B0thHtTS.js +2 -0
  290. package/dist/{logo-BkwNxZNw.js.map → logo-B0thHtTS.js.map} +1 -1
  291. package/dist/rolldown-runtime-BhWHdk3m.js +1 -0
  292. package/dist/styles/base.css +1 -19
  293. package/dist/styles/globals.css +1 -2
  294. package/dist/themes/gomax.css +1 -2
  295. package/dist/themes/max.css +1 -2
  296. package/dist/{use-hotkeys-DloZH-B4.d.ts → use-hotkeys-DOjcX9Tt.d.ts} +2 -2
  297. package/dist/{use-hotkeys-C0d5t4yo.js → use-hotkeys-YDJmGWX6.js} +2 -2
  298. package/dist/{use-hotkeys-C0d5t4yo.js.map → use-hotkeys-YDJmGWX6.js.map} +1 -1
  299. package/package.json +6 -7
  300. package/dist/accordion-BCo2odjy.js +0 -2
  301. package/dist/accordion-BCo2odjy.js.map +0 -1
  302. package/dist/accordion-DtSr3uiA.d.ts +0 -15
  303. package/dist/alert-CJRgRQVF.js +0 -2
  304. package/dist/alert-CJRgRQVF.js.map +0 -1
  305. package/dist/alert-dialog-B_nAiD4Y.js +0 -2
  306. package/dist/alert-dialog-B_nAiD4Y.js.map +0 -1
  307. package/dist/alert-dialog-Bf41-OnT.d.ts +0 -34
  308. package/dist/alert-eivgSC_S.d.ts +0 -18
  309. package/dist/anchor-DCOyn0Xa.d.ts +0 -15
  310. package/dist/anchor-srhmShjN.js +0 -2
  311. package/dist/anchor-srhmShjN.js.map +0 -1
  312. package/dist/area-chart-DdDy8Vm3.js +0 -2
  313. package/dist/area-chart-DdDy8Vm3.js.map +0 -1
  314. package/dist/area-chart-F_4ZL20j.d.ts +0 -40
  315. package/dist/avatar-2ZS3Tx76.d.ts +0 -21
  316. package/dist/avatar-CFUwrOwG.js +0 -2
  317. package/dist/avatar-CFUwrOwG.js.map +0 -1
  318. package/dist/badge-BqpQcDFd.d.ts +0 -16
  319. package/dist/badge-Cuq_DqRS.js +0 -2
  320. package/dist/badge-Cuq_DqRS.js.map +0 -1
  321. package/dist/badge-DEgLmZYC.js +0 -2
  322. package/dist/badge-DEgLmZYC.js.map +0 -1
  323. package/dist/badge-gkezuSZY.d.ts +0 -19
  324. package/dist/bar-chart-DIgSnh_j.js +0 -2
  325. package/dist/bar-chart-DIgSnh_j.js.map +0 -1
  326. package/dist/bar-chart-DRrrfMQR.d.ts +0 -42
  327. package/dist/breadcrumb-CqNDAI8V.js +0 -2
  328. package/dist/breadcrumb-CqNDAI8V.js.map +0 -1
  329. package/dist/breadcrumb-DZFS9htN.d.ts +0 -22
  330. package/dist/button-BNGy28pv.d.ts +0 -17
  331. package/dist/button-CQbH5Glc.d.ts +0 -19
  332. package/dist/button-DGewx2nE.js +0 -2
  333. package/dist/button-DGewx2nE.js.map +0 -1
  334. package/dist/button-group-DRgqsyjS.d.ts +0 -18
  335. package/dist/button-group-WJ5LeouK.js +0 -2
  336. package/dist/button-group-WJ5LeouK.js.map +0 -1
  337. package/dist/button-oI3hbOgp.js +0 -2
  338. package/dist/button-oI3hbOgp.js.map +0 -1
  339. package/dist/calendar-C1GgjzIA.d.ts +0 -17
  340. package/dist/calendar-CW1kGXom.js +0 -2
  341. package/dist/calendar-CW1kGXom.js.map +0 -1
  342. package/dist/card-Bx6iiocl.js +0 -2
  343. package/dist/card-Bx6iiocl.js.map +0 -1
  344. package/dist/card-pWjtkTKw.d.ts +0 -22
  345. package/dist/carousel-C6e4eRJD.d.ts +0 -43
  346. package/dist/carousel-D0OTImO7.js +0 -2
  347. package/dist/carousel-D0OTImO7.js.map +0 -1
  348. package/dist/center-CFQDr205.d.ts +0 -13
  349. package/dist/center-Dl1rnq7S.js +0 -2
  350. package/dist/center-Dl1rnq7S.js.map +0 -1
  351. package/dist/chart-Ci4V8B8v.js +0 -8
  352. package/dist/chart-Ci4V8B8v.js.map +0 -1
  353. package/dist/checkbox-DPvW_m7k.js +0 -2
  354. package/dist/checkbox-DPvW_m7k.js.map +0 -1
  355. package/dist/checkbox-y0XBdH4a.d.ts +0 -21
  356. package/dist/code-A6JERAsm.js +0 -2
  357. package/dist/code-A6JERAsm.js.map +0 -1
  358. package/dist/code-Cqoacc61.d.ts +0 -8
  359. package/dist/collapsible-BH8BqfTd.js +0 -2
  360. package/dist/collapsible-BH8BqfTd.js.map +0 -1
  361. package/dist/collapsible-CLSCZ630.d.ts +0 -12
  362. package/dist/color-DJvQFSl5.d.ts +0 -19
  363. package/dist/color-Don4qaht.js +0 -2
  364. package/dist/color-Don4qaht.js.map +0 -1
  365. package/dist/combobox-DkCRXUxd.d.ts +0 -51
  366. package/dist/combobox-ITDBYTtM.js +0 -2
  367. package/dist/combobox-ITDBYTtM.js.map +0 -1
  368. package/dist/command-BxkAy8PP.js +0 -2
  369. package/dist/command-BxkAy8PP.js.map +0 -1
  370. package/dist/command-D4pNOx0J.d.ts +0 -31
  371. package/dist/components/accordion.spec.d.ts +0 -1
  372. package/dist/components/accordion.spec.js +0 -2
  373. package/dist/components/accordion.spec.js.map +0 -1
  374. package/dist/components/alert-dialog.spec.d.ts +0 -1
  375. package/dist/components/alert-dialog.spec.js +0 -2
  376. package/dist/components/alert-dialog.spec.js.map +0 -1
  377. package/dist/components/alert.spec.d.ts +0 -1
  378. package/dist/components/alert.spec.js +0 -2
  379. package/dist/components/alert.spec.js.map +0 -1
  380. package/dist/components/anchor.spec.d.ts +0 -1
  381. package/dist/components/anchor.spec.js +0 -2
  382. package/dist/components/anchor.spec.js.map +0 -1
  383. package/dist/components/area-chart.spec.d.ts +0 -1
  384. package/dist/components/area-chart.spec.js +0 -2
  385. package/dist/components/area-chart.spec.js.map +0 -1
  386. package/dist/components/avatar.spec.d.ts +0 -1
  387. package/dist/components/avatar.spec.js +0 -2
  388. package/dist/components/avatar.spec.js.map +0 -1
  389. package/dist/components/badge.spec.d.ts +0 -1
  390. package/dist/components/badge.spec.js +0 -2
  391. package/dist/components/badge.spec.js.map +0 -1
  392. package/dist/components/bar-chart.spec.d.ts +0 -1
  393. package/dist/components/bar-chart.spec.js +0 -2
  394. package/dist/components/bar-chart.spec.js.map +0 -1
  395. package/dist/components/breadcrumb.spec.d.ts +0 -1
  396. package/dist/components/breadcrumb.spec.js +0 -2
  397. package/dist/components/breadcrumb.spec.js.map +0 -1
  398. package/dist/components/button-group.spec.d.ts +0 -1
  399. package/dist/components/button-group.spec.js +0 -2
  400. package/dist/components/button-group.spec.js.map +0 -1
  401. package/dist/components/button.spec.d.ts +0 -1
  402. package/dist/components/button.spec.js +0 -2
  403. package/dist/components/button.spec.js.map +0 -1
  404. package/dist/components/calendar.spec.d.ts +0 -1
  405. package/dist/components/calendar.spec.js +0 -2
  406. package/dist/components/calendar.spec.js.map +0 -1
  407. package/dist/components/card.spec.d.ts +0 -1
  408. package/dist/components/card.spec.js +0 -2
  409. package/dist/components/card.spec.js.map +0 -1
  410. package/dist/components/carousel.spec.d.ts +0 -1
  411. package/dist/components/carousel.spec.js +0 -2
  412. package/dist/components/carousel.spec.js.map +0 -1
  413. package/dist/components/center.spec.d.ts +0 -1
  414. package/dist/components/center.spec.js +0 -2
  415. package/dist/components/center.spec.js.map +0 -1
  416. package/dist/components/chart.spec.d.ts +0 -1
  417. package/dist/components/chart.spec.js +0 -2
  418. package/dist/components/chart.spec.js.map +0 -1
  419. package/dist/components/checkbox.spec.d.ts +0 -1
  420. package/dist/components/checkbox.spec.js +0 -2
  421. package/dist/components/checkbox.spec.js.map +0 -1
  422. package/dist/components/code.spec.d.ts +0 -1
  423. package/dist/components/code.spec.js +0 -2
  424. package/dist/components/code.spec.js.map +0 -1
  425. package/dist/components/collapsible.spec.d.ts +0 -1
  426. package/dist/components/collapsible.spec.js +0 -2
  427. package/dist/components/collapsible.spec.js.map +0 -1
  428. package/dist/components/combobox.spec.d.ts +0 -1
  429. package/dist/components/combobox.spec.js +0 -2
  430. package/dist/components/combobox.spec.js.map +0 -1
  431. package/dist/components/command.spec.d.ts +0 -1
  432. package/dist/components/command.spec.js +0 -2
  433. package/dist/components/command.spec.js.map +0 -1
  434. package/dist/components/container.spec.d.ts +0 -1
  435. package/dist/components/container.spec.js +0 -2
  436. package/dist/components/container.spec.js.map +0 -1
  437. package/dist/components/data-table.spec.d.ts +0 -1
  438. package/dist/components/data-table.spec.js +0 -2
  439. package/dist/components/data-table.spec.js.map +0 -1
  440. package/dist/components/date-range-picker.spec.d.ts +0 -1
  441. package/dist/components/date-range-picker.spec.js +0 -2
  442. package/dist/components/date-range-picker.spec.js.map +0 -1
  443. package/dist/components/dialog.spec.d.ts +0 -1
  444. package/dist/components/dialog.spec.js +0 -2
  445. package/dist/components/dialog.spec.js.map +0 -1
  446. package/dist/components/donut-chart.spec.d.ts +0 -1
  447. package/dist/components/donut-chart.spec.js +0 -2
  448. package/dist/components/donut-chart.spec.js.map +0 -1
  449. package/dist/components/drawer.spec.d.ts +0 -1
  450. package/dist/components/drawer.spec.js +0 -2
  451. package/dist/components/drawer.spec.js.map +0 -1
  452. package/dist/components/dropdown-menu.spec.d.ts +0 -1
  453. package/dist/components/dropdown-menu.spec.js +0 -2
  454. package/dist/components/dropdown-menu.spec.js.map +0 -1
  455. package/dist/components/dropzone.spec.d.ts +0 -1
  456. package/dist/components/dropzone.spec.js +0 -2
  457. package/dist/components/dropzone.spec.js.map +0 -1
  458. package/dist/components/empty.spec.d.ts +0 -1
  459. package/dist/components/empty.spec.js +0 -2
  460. package/dist/components/empty.spec.js.map +0 -1
  461. package/dist/components/field.spec.d.ts +0 -1
  462. package/dist/components/field.spec.js +0 -2
  463. package/dist/components/field.spec.js.map +0 -1
  464. package/dist/components/flex.spec.d.ts +0 -1
  465. package/dist/components/flex.spec.js +0 -2
  466. package/dist/components/flex.spec.js.map +0 -1
  467. package/dist/components/grid.spec.d.ts +0 -1
  468. package/dist/components/grid.spec.js +0 -2
  469. package/dist/components/grid.spec.js.map +0 -1
  470. package/dist/components/group.spec.d.ts +0 -1
  471. package/dist/components/group.spec.js +0 -2
  472. package/dist/components/group.spec.js.map +0 -1
  473. package/dist/components/heading.spec.d.ts +0 -1
  474. package/dist/components/heading.spec.js +0 -2
  475. package/dist/components/heading.spec.js.map +0 -1
  476. package/dist/components/hover-card.spec.d.ts +0 -1
  477. package/dist/components/hover-card.spec.js +0 -2
  478. package/dist/components/hover-card.spec.js.map +0 -1
  479. package/dist/components/input-group.spec.d.ts +0 -1
  480. package/dist/components/input-group.spec.js +0 -2
  481. package/dist/components/input-group.spec.js.map +0 -1
  482. package/dist/components/input-otp.spec.d.ts +0 -1
  483. package/dist/components/input-otp.spec.js +0 -2
  484. package/dist/components/input-otp.spec.js.map +0 -1
  485. package/dist/components/input.spec.d.ts +0 -1
  486. package/dist/components/input.spec.js +0 -2
  487. package/dist/components/input.spec.js.map +0 -1
  488. package/dist/components/kbd.spec.d.ts +0 -1
  489. package/dist/components/kbd.spec.js +0 -2
  490. package/dist/components/kbd.spec.js.map +0 -1
  491. package/dist/components/label.spec.d.ts +0 -1
  492. package/dist/components/label.spec.js +0 -2
  493. package/dist/components/label.spec.js.map +0 -1
  494. package/dist/components/list.spec.d.ts +0 -1
  495. package/dist/components/list.spec.js +0 -2
  496. package/dist/components/list.spec.js.map +0 -1
  497. package/dist/components/logo.spec.d.ts +0 -1
  498. package/dist/components/logo.spec.js +0 -2
  499. package/dist/components/logo.spec.js.map +0 -1
  500. package/dist/components/marker.spec.d.ts +0 -1
  501. package/dist/components/marker.spec.js +0 -2
  502. package/dist/components/marker.spec.js.map +0 -1
  503. package/dist/components/mask-input.spec.d.ts +0 -1
  504. package/dist/components/mask-input.spec.js +0 -2
  505. package/dist/components/mask-input.spec.js.map +0 -1
  506. package/dist/components/native-select.spec.d.ts +0 -1
  507. package/dist/components/native-select.spec.js +0 -2
  508. package/dist/components/native-select.spec.js.map +0 -1
  509. package/dist/components/navigation-menu.spec.d.ts +0 -1
  510. package/dist/components/navigation-menu.spec.js +0 -2
  511. package/dist/components/navigation-menu.spec.js.map +0 -1
  512. package/dist/components/number-field.spec.d.ts +0 -1
  513. package/dist/components/number-field.spec.js +0 -2
  514. package/dist/components/number-field.spec.js.map +0 -1
  515. package/dist/components/pagination.spec.d.ts +0 -1
  516. package/dist/components/pagination.spec.js +0 -2
  517. package/dist/components/pagination.spec.js.map +0 -1
  518. package/dist/components/phone-input.spec.d.ts +0 -1
  519. package/dist/components/phone-input.spec.js +0 -2
  520. package/dist/components/phone-input.spec.js.map +0 -1
  521. package/dist/components/pie-chart.spec.d.ts +0 -1
  522. package/dist/components/pie-chart.spec.js +0 -2
  523. package/dist/components/pie-chart.spec.js.map +0 -1
  524. package/dist/components/popover.spec.d.ts +0 -1
  525. package/dist/components/popover.spec.js +0 -2
  526. package/dist/components/popover.spec.js.map +0 -1
  527. package/dist/components/progress.spec.d.ts +0 -1
  528. package/dist/components/progress.spec.js +0 -2
  529. package/dist/components/progress.spec.js.map +0 -1
  530. package/dist/components/radio-group.spec.d.ts +0 -1
  531. package/dist/components/radio-group.spec.js +0 -2
  532. package/dist/components/radio-group.spec.js.map +0 -1
  533. package/dist/components/resizable.spec.d.ts +0 -1
  534. package/dist/components/resizable.spec.js +0 -2
  535. package/dist/components/resizable.spec.js.map +0 -1
  536. package/dist/components/ring-progress.spec.d.ts +0 -1
  537. package/dist/components/ring-progress.spec.js +0 -2
  538. package/dist/components/ring-progress.spec.js.map +0 -1
  539. package/dist/components/scroll-area.spec.d.ts +0 -1
  540. package/dist/components/scroll-area.spec.js +0 -2
  541. package/dist/components/scroll-area.spec.js.map +0 -1
  542. package/dist/components/select.spec.d.ts +0 -1
  543. package/dist/components/select.spec.js +0 -2
  544. package/dist/components/select.spec.js.map +0 -1
  545. package/dist/components/separator.spec.d.ts +0 -1
  546. package/dist/components/separator.spec.js +0 -2
  547. package/dist/components/separator.spec.js.map +0 -1
  548. package/dist/components/sidebar.spec.d.ts +0 -1
  549. package/dist/components/sidebar.spec.js +0 -2
  550. package/dist/components/sidebar.spec.js.map +0 -1
  551. package/dist/components/simple-grid.spec.d.ts +0 -1
  552. package/dist/components/simple-grid.spec.js +0 -2
  553. package/dist/components/simple-grid.spec.js.map +0 -1
  554. package/dist/components/skeleton.spec.d.ts +0 -1
  555. package/dist/components/skeleton.spec.js +0 -2
  556. package/dist/components/skeleton.spec.js.map +0 -1
  557. package/dist/components/slider.spec.d.ts +0 -1
  558. package/dist/components/slider.spec.js +0 -2
  559. package/dist/components/slider.spec.js.map +0 -1
  560. package/dist/components/sonner.spec.d.ts +0 -1
  561. package/dist/components/sonner.spec.js +0 -2
  562. package/dist/components/sonner.spec.js.map +0 -1
  563. package/dist/components/spinner.spec.d.ts +0 -1
  564. package/dist/components/spinner.spec.js +0 -2
  565. package/dist/components/spinner.spec.js.map +0 -1
  566. package/dist/components/stack.spec.d.ts +0 -1
  567. package/dist/components/stack.spec.js +0 -2
  568. package/dist/components/stack.spec.js.map +0 -1
  569. package/dist/components/stepper.spec.d.ts +0 -1
  570. package/dist/components/stepper.spec.js +0 -2
  571. package/dist/components/stepper.spec.js.map +0 -1
  572. package/dist/components/switch.spec.d.ts +0 -1
  573. package/dist/components/switch.spec.js +0 -2
  574. package/dist/components/switch.spec.js.map +0 -1
  575. package/dist/components/table.spec.d.ts +0 -1
  576. package/dist/components/table.spec.js +0 -2
  577. package/dist/components/table.spec.js.map +0 -1
  578. package/dist/components/tabs.spec.d.ts +0 -1
  579. package/dist/components/tabs.spec.js +0 -2
  580. package/dist/components/tabs.spec.js.map +0 -1
  581. package/dist/components/text.spec.d.ts +0 -1
  582. package/dist/components/text.spec.js +0 -2
  583. package/dist/components/text.spec.js.map +0 -1
  584. package/dist/components/textarea.spec.d.ts +0 -1
  585. package/dist/components/textarea.spec.js +0 -2
  586. package/dist/components/textarea.spec.js.map +0 -1
  587. package/dist/components/theme.spec.d.ts +0 -1
  588. package/dist/components/theme.spec.js +0 -2
  589. package/dist/components/theme.spec.js.map +0 -1
  590. package/dist/components/timeline.spec.d.ts +0 -1
  591. package/dist/components/timeline.spec.js +0 -2
  592. package/dist/components/timeline.spec.js.map +0 -1
  593. package/dist/components/toggle-group.spec.d.ts +0 -1
  594. package/dist/components/toggle-group.spec.js +0 -2
  595. package/dist/components/toggle-group.spec.js.map +0 -1
  596. package/dist/components/toggle.spec.d.ts +0 -1
  597. package/dist/components/toggle.spec.js +0 -2
  598. package/dist/components/toggle.spec.js.map +0 -1
  599. package/dist/components/tooltip.spec.d.ts +0 -1
  600. package/dist/components/tooltip.spec.js +0 -2
  601. package/dist/components/tooltip.spec.js.map +0 -1
  602. package/dist/components/unstyled-button.spec.d.ts +0 -1
  603. package/dist/components/unstyled-button.spec.js +0 -2
  604. package/dist/components/unstyled-button.spec.js.map +0 -1
  605. package/dist/components/visibility.spec.d.ts +0 -1
  606. package/dist/components/visibility.spec.js +0 -2
  607. package/dist/components/visibility.spec.js.map +0 -1
  608. package/dist/compose-refs-DUtp7lGn.js +0 -2
  609. package/dist/compose-refs-DUtp7lGn.js.map +0 -1
  610. package/dist/compose-refs-GP3zdokU.d.ts +0 -8
  611. package/dist/container-B8-lt-oX.d.ts +0 -12
  612. package/dist/container-CikeKdez.js +0 -2
  613. package/dist/container-CikeKdez.js.map +0 -1
  614. package/dist/data-table-BGfSiHDT.js +0 -2
  615. package/dist/data-table-BGfSiHDT.js.map +0 -1
  616. package/dist/date-range-picker-BjkVzFWQ.js +0 -2
  617. package/dist/date-range-picker-BjkVzFWQ.js.map +0 -1
  618. package/dist/date-range-picker-BngvCWcR.d.ts +0 -55
  619. package/dist/dialog-B7I4Ky1i.js +0 -2
  620. package/dist/dialog-B7I4Ky1i.js.map +0 -1
  621. package/dist/dialog-Ej7pnact.d.ts +0 -42
  622. package/dist/donut-chart-BDJR8TXh.d.ts +0 -13
  623. package/dist/donut-chart-BHU4kDE6.js +0 -2
  624. package/dist/donut-chart-BHU4kDE6.js.map +0 -1
  625. package/dist/drawer-BO4mP6y1.js +0 -2
  626. package/dist/drawer-BO4mP6y1.js.map +0 -1
  627. package/dist/drawer-DUfJzrKE.d.ts +0 -43
  628. package/dist/dropdown-menu-CVDIf0Rd.d.ts +0 -48
  629. package/dist/dropdown-menu-zRuQQS5S.js +0 -2
  630. package/dist/dropdown-menu-zRuQQS5S.js.map +0 -1
  631. package/dist/dropzone-43h3L9Ko.d.ts +0 -102
  632. package/dist/dropzone-BLZkZThJ.js +0 -2
  633. package/dist/dropzone-BLZkZThJ.js.map +0 -1
  634. package/dist/empty-BhKsDYZ5.js +0 -2
  635. package/dist/empty-BhKsDYZ5.js.map +0 -1
  636. package/dist/empty-D8ZiTCVK.d.ts +0 -21
  637. package/dist/field-C209yHO9.d.ts +0 -39
  638. package/dist/field-DzR-XrO7.js +0 -2
  639. package/dist/field-DzR-XrO7.js.map +0 -1
  640. package/dist/flex-BC4Diiy4.js +0 -2
  641. package/dist/flex-BC4Diiy4.js.map +0 -1
  642. package/dist/flex-aJXipTAz.d.ts +0 -16
  643. package/dist/grid-B3He1bGe.js +0 -2
  644. package/dist/grid-B3He1bGe.js.map +0 -1
  645. package/dist/grid-D_aEANA7.d.ts +0 -20
  646. package/dist/group-B6n_lMc4.js +0 -2
  647. package/dist/group-B6n_lMc4.js.map +0 -1
  648. package/dist/group-DBtx8eSe.d.ts +0 -15
  649. package/dist/heading-BTXl4JfI.d.ts +0 -14
  650. package/dist/heading-DaxKLVRm.js +0 -2
  651. package/dist/heading-DaxKLVRm.js.map +0 -1
  652. package/dist/hooks/use-breakpoint-value.spec.d.ts +0 -1
  653. package/dist/hooks/use-breakpoint-value.spec.js +0 -35
  654. package/dist/hooks/use-breakpoint-value.spec.js.map +0 -1
  655. package/dist/hooks/use-breakpoint.spec.d.ts +0 -1
  656. package/dist/hooks/use-breakpoint.spec.js +0 -2
  657. package/dist/hooks/use-breakpoint.spec.js.map +0 -1
  658. package/dist/hooks/use-disclosure.spec.d.ts +0 -1
  659. package/dist/hooks/use-disclosure.spec.js +0 -2
  660. package/dist/hooks/use-disclosure.spec.js.map +0 -1
  661. package/dist/hooks/use-document-visibility.spec.d.ts +0 -1
  662. package/dist/hooks/use-document-visibility.spec.js +0 -2
  663. package/dist/hooks/use-document-visibility.spec.js.map +0 -1
  664. package/dist/hooks/use-hotkeys.spec.d.ts +0 -1
  665. package/dist/hooks/use-hotkeys.spec.js +0 -2
  666. package/dist/hooks/use-hotkeys.spec.js.map +0 -1
  667. package/dist/hooks/use-idle.spec.d.ts +0 -1
  668. package/dist/hooks/use-idle.spec.js +0 -2
  669. package/dist/hooks/use-idle.spec.js.map +0 -1
  670. package/dist/hooks/use-interval.spec.d.ts +0 -1
  671. package/dist/hooks/use-interval.spec.js +0 -2
  672. package/dist/hooks/use-interval.spec.js.map +0 -1
  673. package/dist/hooks/use-local-storage.spec.d.ts +0 -1
  674. package/dist/hooks/use-local-storage.spec.js +0 -2
  675. package/dist/hooks/use-local-storage.spec.js.map +0 -1
  676. package/dist/hooks/use-mask.spec.d.ts +0 -1
  677. package/dist/hooks/use-mask.spec.js +0 -2
  678. package/dist/hooks/use-mask.spec.js.map +0 -1
  679. package/dist/hooks/use-mobile.spec.d.ts +0 -1
  680. package/dist/hooks/use-mobile.spec.js +0 -2
  681. package/dist/hooks/use-mobile.spec.js.map +0 -1
  682. package/dist/hover-card-C3yz2zQi.d.ts +0 -13
  683. package/dist/hover-card-Dc8yLsm-.js +0 -2
  684. package/dist/hover-card-Dc8yLsm-.js.map +0 -1
  685. package/dist/input-CI3RPXz0.d.ts +0 -8
  686. package/dist/input-CJLsPlXh.js +0 -2
  687. package/dist/input-CJLsPlXh.js.map +0 -1
  688. package/dist/input-group-CBn36aMg.d.ts +0 -26
  689. package/dist/input-group-mcar-tED.js +0 -2
  690. package/dist/input-group-mcar-tED.js.map +0 -1
  691. package/dist/input-otp-CzfRHf2V.js +0 -2
  692. package/dist/input-otp-CzfRHf2V.js.map +0 -1
  693. package/dist/input-otp-gIEkdiIC.d.ts +0 -19
  694. package/dist/kbd-BTl3AgkY.js +0 -2
  695. package/dist/kbd-BTl3AgkY.js.map +0 -1
  696. package/dist/kbd-DELCQBD0.d.ts +0 -10
  697. package/dist/label-BQDEej_c.js +0 -2
  698. package/dist/label-BQDEej_c.js.map +0 -1
  699. package/dist/label-KZl6I5Ey.d.ts +0 -9
  700. package/dist/lib/badge.spec.d.ts +0 -1
  701. package/dist/lib/badge.spec.js +0 -2
  702. package/dist/lib/badge.spec.js.map +0 -1
  703. package/dist/lib/button.spec.d.ts +0 -1
  704. package/dist/lib/button.spec.js +0 -2
  705. package/dist/lib/button.spec.js.map +0 -1
  706. package/dist/lib/color.spec.d.ts +0 -1
  707. package/dist/lib/color.spec.js +0 -2
  708. package/dist/lib/color.spec.js.map +0 -1
  709. package/dist/lib/compose-refs.spec.d.ts +0 -1
  710. package/dist/lib/compose-refs.spec.js +0 -2
  711. package/dist/lib/compose-refs.spec.js.map +0 -1
  712. package/dist/lib/progress.spec.d.ts +0 -1
  713. package/dist/lib/progress.spec.js +0 -2
  714. package/dist/lib/progress.spec.js.map +0 -1
  715. package/dist/lib/utils.spec.d.ts +0 -1
  716. package/dist/lib/utils.spec.js +0 -2
  717. package/dist/lib/utils.spec.js.map +0 -1
  718. package/dist/list-BbCg-ndB.js +0 -2
  719. package/dist/list-BbCg-ndB.js.map +0 -1
  720. package/dist/list-DMa2j1rk.d.ts +0 -25
  721. package/dist/logo-BkwNxZNw.js +0 -2
  722. package/dist/logo-Buo7sqqn.d.ts +0 -69
  723. package/dist/marker-4_EnMIHk.js +0 -2
  724. package/dist/marker-4_EnMIHk.js.map +0 -1
  725. package/dist/marker-C4wLa1c0.d.ts +0 -18
  726. package/dist/mask-input-B4R5K1h6.d.ts +0 -16
  727. package/dist/mask-input-cCmVKrHj.js +0 -2
  728. package/dist/mask-input-cCmVKrHj.js.map +0 -1
  729. package/dist/native-select-BVmdMkHY.d.ts +0 -14
  730. package/dist/native-select-Iq25QUH-.js +0 -2
  731. package/dist/native-select-Iq25QUH-.js.map +0 -1
  732. package/dist/navigation-menu-B6drNL1-.js +0 -2
  733. package/dist/navigation-menu-B6drNL1-.js.map +0 -1
  734. package/dist/navigation-menu-siQVRMUF.d.ts +0 -26
  735. package/dist/number-field-IdgO_BUa.d.ts +0 -35
  736. package/dist/number-field-rEMfZa6A.js +0 -2
  737. package/dist/number-field-rEMfZa6A.js.map +0 -1
  738. package/dist/pagination-BZ3xMXsy.d.ts +0 -27
  739. package/dist/pagination-gnUKddCN.js +0 -2
  740. package/dist/pagination-gnUKddCN.js.map +0 -1
  741. package/dist/phone-input-By5lNF03.d.ts +0 -13
  742. package/dist/phone-input-DqgYa1un.js +0 -2
  743. package/dist/phone-input-DqgYa1un.js.map +0 -1
  744. package/dist/pie-chart-CvG27kFN.d.ts +0 -42
  745. package/dist/pie-chart-S4nMKbsW.js +0 -2
  746. package/dist/pie-chart-S4nMKbsW.js.map +0 -1
  747. package/dist/popover-BtX3tX8M.js +0 -2
  748. package/dist/popover-BtX3tX8M.js.map +0 -1
  749. package/dist/popover-DchAqyKn.d.ts +0 -21
  750. package/dist/progress-DeXRCHUw.d.ts +0 -19
  751. package/dist/progress-QvpY7tiy.js +0 -2
  752. package/dist/progress-QvpY7tiy.js.map +0 -1
  753. package/dist/progress-icFwrvnE.js +0 -2
  754. package/dist/progress-icFwrvnE.js.map +0 -1
  755. package/dist/progress-mEAw9ZhK.d.ts +0 -14
  756. package/dist/radio-group-BNbepK_U.d.ts +0 -25
  757. package/dist/radio-group-DM8n0XPS.js +0 -2
  758. package/dist/radio-group-DM8n0XPS.js.map +0 -1
  759. package/dist/react.esm-dE9nuHcL.js +0 -68
  760. package/dist/react.esm-dE9nuHcL.js.map +0 -1
  761. package/dist/resizable-DMQG3xF_.d.ts +0 -14
  762. package/dist/resizable-Dbg7r7nF.js +0 -2
  763. package/dist/resizable-Dbg7r7nF.js.map +0 -1
  764. package/dist/ring-progress-65ccdTQQ.d.ts +0 -17
  765. package/dist/ring-progress-Bfqq_HHA.js +0 -2
  766. package/dist/ring-progress-Bfqq_HHA.js.map +0 -1
  767. package/dist/rolldown-runtime-Bdj-bS2b.js +0 -1
  768. package/dist/scroll-area-DFcj5q66.d.ts +0 -11
  769. package/dist/scroll-area-DKS4QPHg.js +0 -2
  770. package/dist/scroll-area-DKS4QPHg.js.map +0 -1
  771. package/dist/select-BoYp-Xyc.d.ts +0 -29
  772. package/dist/select-CVwVLyWt.js +0 -2
  773. package/dist/select-CVwVLyWt.js.map +0 -1
  774. package/dist/separator-BsRLiqWE.d.ts +0 -9
  775. package/dist/separator-CCMmbXL0.js +0 -2
  776. package/dist/separator-CCMmbXL0.js.map +0 -1
  777. package/dist/sidebar-CJriMotD.js +0 -2
  778. package/dist/sidebar-CJriMotD.js.map +0 -1
  779. package/dist/sidebar-D7HQlj5O.d.ts +0 -96
  780. package/dist/simple-grid-9EryoUWI.js +0 -2
  781. package/dist/simple-grid-9EryoUWI.js.map +0 -1
  782. package/dist/simple-grid-B2zjpwZ3.d.ts +0 -14
  783. package/dist/skeleton-Cn3zBJRe.js +0 -2
  784. package/dist/skeleton-Cn3zBJRe.js.map +0 -1
  785. package/dist/skeleton-Co8pevj-.d.ts +0 -10
  786. package/dist/slider-CC-gQawq.js +0 -2
  787. package/dist/slider-CC-gQawq.js.map +0 -1
  788. package/dist/slider-DmZ1YfLg.d.ts +0 -9
  789. package/dist/sonner-Binx8JJ2.d.ts +0 -8
  790. package/dist/sonner-DrKqhTDI.js +0 -2
  791. package/dist/sonner-DrKqhTDI.js.map +0 -1
  792. package/dist/spinner-Dz63Ltq-.d.ts +0 -12
  793. package/dist/spinner-ntLrcDLN.js +0 -2
  794. package/dist/spinner-ntLrcDLN.js.map +0 -1
  795. package/dist/stack-BbLllsqk.js +0 -2
  796. package/dist/stack-BbLllsqk.js.map +0 -1
  797. package/dist/stack-WiND8Dxq.d.ts +0 -14
  798. package/dist/stepper-BQ-59_UO.js +0 -2
  799. package/dist/stepper-BQ-59_UO.js.map +0 -1
  800. package/dist/stepper-DK5_o7RG.d.ts +0 -71
  801. package/dist/styles/gomax.css +0 -224
  802. package/dist/styles/max.css +0 -225
  803. package/dist/styles/theme.css +0 -214
  804. package/dist/switch-DjdOGECT.js +0 -2
  805. package/dist/switch-DjdOGECT.js.map +0 -1
  806. package/dist/switch-OtBakZHc.d.ts +0 -17
  807. package/dist/table-CuE0Aenj.js +0 -2
  808. package/dist/table-CuE0Aenj.js.map +0 -1
  809. package/dist/table-qIAtG7Y5.d.ts +0 -33
  810. package/dist/tabs-BgWxTTah.d.ts +0 -21
  811. package/dist/tabs-DK9-RHkP.js +0 -2
  812. package/dist/tabs-DK9-RHkP.js.map +0 -1
  813. package/dist/text-CKFZ9Xsj.d.ts +0 -14
  814. package/dist/text-Kg1xuinT.js +0 -2
  815. package/dist/text-Kg1xuinT.js.map +0 -1
  816. package/dist/textarea-Cr9_P-bV.d.ts +0 -8
  817. package/dist/textarea-eJQTMC_d.js +0 -2
  818. package/dist/textarea-eJQTMC_d.js.map +0 -1
  819. package/dist/theme-BwEhfTyl.d.ts +0 -22
  820. package/dist/theme-DZJ_cJYp.js +0 -2
  821. package/dist/theme-DZJ_cJYp.js.map +0 -1
  822. package/dist/timeline-BDY3YzeJ.d.ts +0 -61
  823. package/dist/timeline-pBm0t1tb.js +0 -2
  824. package/dist/timeline-pBm0t1tb.js.map +0 -1
  825. package/dist/toggle-DJJkcqDy.js +0 -2
  826. package/dist/toggle-DJJkcqDy.js.map +0 -1
  827. package/dist/toggle-group-C3iNDYqI.d.ts +0 -16
  828. package/dist/toggle-group-D0OIpZN-.js +0 -2
  829. package/dist/toggle-group-D0OIpZN-.js.map +0 -1
  830. package/dist/toggle-jc8s_Z3T.d.ts +0 -15
  831. package/dist/tooltip-BZjnEqw5.d.ts +0 -21
  832. package/dist/tooltip-CNUNWZvs.js +0 -2
  833. package/dist/tooltip-CNUNWZvs.js.map +0 -1
  834. package/dist/unstyled-button-C-Zs4Qv2.d.ts +0 -10
  835. package/dist/unstyled-button-lGbDJA55.js +0 -2
  836. package/dist/unstyled-button-lGbDJA55.js.map +0 -1
  837. package/dist/use-breakpoint-D6YACz8C.js +0 -2
  838. package/dist/use-breakpoint-D6YACz8C.js.map +0 -1
  839. package/dist/use-breakpoint-DDuQFekj.d.ts +0 -8
  840. package/dist/use-breakpoint-value-BDjKflDX.js +0 -2
  841. package/dist/use-breakpoint-value-BDjKflDX.js.map +0 -1
  842. package/dist/use-breakpoint-value-CRbHqGAu.d.ts +0 -8
  843. package/dist/use-disclosure-CNaFpYFQ.d.ts +0 -22
  844. package/dist/use-disclosure-Cr405eRD.js +0 -2
  845. package/dist/use-disclosure-Cr405eRD.js.map +0 -1
  846. package/dist/use-document-visibility-CoWjCswu.js +0 -2
  847. package/dist/use-document-visibility-CoWjCswu.js.map +0 -1
  848. package/dist/use-document-visibility-DIzUN4tB.d.ts +0 -6
  849. package/dist/use-idle-Bsi10VE9.d.ts +0 -13
  850. package/dist/use-idle-DgheJlxd.js +0 -2
  851. package/dist/use-idle-DgheJlxd.js.map +0 -1
  852. package/dist/use-interval-B1aNo3tA.js +0 -2
  853. package/dist/use-interval-B1aNo3tA.js.map +0 -1
  854. package/dist/use-interval-CJVmE_lC.d.ts +0 -24
  855. package/dist/use-local-storage-CJBqB1GC.js +0 -2
  856. package/dist/use-local-storage-CJBqB1GC.js.map +0 -1
  857. package/dist/use-local-storage-Cmq4PWJc.d.ts +0 -16
  858. package/dist/use-mask-DBvFShXA.js +0 -2
  859. package/dist/use-mask-DBvFShXA.js.map +0 -1
  860. package/dist/use-mask-DRJVVcdh.d.ts +0 -8
  861. package/dist/use-mobile-BYwiljVq.d.ts +0 -6
  862. package/dist/use-mobile-OMmp56u2.js +0 -2
  863. package/dist/use-mobile-OMmp56u2.js.map +0 -1
  864. package/dist/utils-DGsdoA5l.d.ts +0 -8
  865. package/dist/utils-DP9KtG7I.js +0 -2
  866. package/dist/utils-DP9KtG7I.js.map +0 -1
  867. package/dist/visibility-_3zV3l-A.d.ts +0 -17
  868. package/dist/visibility-twHwe9Xp.js +0 -2
  869. package/dist/visibility-twHwe9Xp.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-group.spec.js","names":[],"sources":["../../src/components/radio-group.spec.tsx"],"sourcesContent":["import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { RadioGroup, RadioGroupItem } from './radio-group'\n\ndescribe('RadioGroup', () => {\n it('renders the root with the default color and grid layout classes', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const root = container.querySelector('[data-slot=\"radio-group\"]')\n\n expect(root).not.toBeNull()\n expect(root?.getAttribute('data-color')).toBe('primary')\n expect(root?.className).toContain('grid')\n })\n\n it('applies a custom color to the root', () => {\n const { container } = render(\n <RadioGroup color=\"red\">\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const root = container.querySelector('[data-slot=\"radio-group\"]')\n\n expect(root?.getAttribute('data-color')).toBe('red')\n expect(root?.className).toContain('[--selection-control:var(--red)]')\n })\n\n it('applies its own independent color prop to an item', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" color=\"red\" />\n </RadioGroup>\n )\n\n const item = container.querySelector('[data-slot=\"radio-group-item\"]')\n\n expect(item?.getAttribute('data-color')).toBe('red')\n expect(item?.className).toContain('[--selection-control:var(--red)]')\n })\n\n it('renders a label associated with the item and generates an id when none is provided', () => {\n render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n </RadioGroup>\n )\n\n const radio = screen.getByLabelText('Option A')\n\n expect(radio.getAttribute('id')).toBeTruthy()\n expect(screen.getByText('Option A').getAttribute('for')).toBe(radio.getAttribute('id'))\n })\n\n it('does not wrap the item in a label field when no label is provided', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" />\n </RadioGroup>\n )\n\n expect(container.querySelector('[data-slot=\"radio-group-item-field\"]')).toBeNull()\n expect(container.querySelector('[data-slot=\"radio-group-item\"]')?.getAttribute('id')).toBeNull()\n })\n\n it('respects an explicit id over the generated one', () => {\n render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" id=\"custom-id\" />\n </RadioGroup>\n )\n\n expect(screen.getByLabelText('Option A').getAttribute('id')).toBe('custom-id')\n })\n\n it('applies the requested size to the item, indicator and label', () => {\n const { container } = render(\n <RadioGroup>\n <RadioGroupItem value=\"a\" label=\"Option A\" size=\"lg\" />\n </RadioGroup>\n )\n\n const item = container.querySelector('[data-slot=\"radio-group-item\"]')\n const label = screen.getByText('Option A')\n\n expect(item?.getAttribute('data-size')).toBe('lg')\n expect(item?.className).toContain('size-5.5')\n expect(label.className).toContain('text-xl')\n })\n\n it('selects an item when clicked and calls onValueChange, keeping the group single-select', () => {\n const onValueChange = vi.fn()\n\n render(\n <RadioGroup onValueChange={onValueChange}>\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n <RadioGroupItem value=\"b\" label=\"Option B\" />\n </RadioGroup>\n )\n\n const optionA = screen.getByLabelText('Option A')\n const optionB = screen.getByLabelText('Option B')\n\n fireEvent.click(optionA)\n\n expect(onValueChange).toHaveBeenCalledWith('a')\n expect(optionA.getAttribute('data-state')).toBe('checked')\n expect(optionB.getAttribute('data-state')).toBe('unchecked')\n\n fireEvent.click(optionB)\n\n expect(onValueChange).toHaveBeenCalledWith('b')\n expect(optionB.getAttribute('data-state')).toBe('checked')\n expect(optionA.getAttribute('data-state')).toBe('unchecked')\n })\n\n it('renders as a controlled group reflecting the given value', () => {\n render(\n <RadioGroup value=\"b\">\n <RadioGroupItem value=\"a\" label=\"Option A\" />\n <RadioGroupItem value=\"b\" label=\"Option B\" />\n </RadioGroup>\n )\n\n expect(screen.getByLabelText('Option A').getAttribute('data-state')).toBe('unchecked')\n expect(screen.getByLabelText('Option B').getAttribute('data-state')).toBe('checked')\n })\n\n it('marks a disabled item as disabled and prevents selection', () => {\n const onValueChange = vi.fn()\n\n render(\n <RadioGroup onValueChange={onValueChange}>\n <RadioGroupItem value=\"a\" label=\"Option A\" disabled />\n </RadioGroup>\n )\n\n const optionA = screen.getByLabelText('Option A') as HTMLButtonElement\n\n expect(optionA.disabled).toBe(true)\n\n fireEvent.click(optionA)\n\n expect(onValueChange).not.toHaveBeenCalled()\n })\n})\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,r as t,t as n}from"../resizable-Dbg7r7nF.js";import{a as r,r as i}from"../react.esm-dE9nuHcL.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";var ResizeObserverStub=class{observe(){}unobserve(){}disconnect(){}};beforeAll(()=>{window.ResizeObserver=ResizeObserverStub}),describe(`ResizablePanelGroup`,()=>{it(`renders the group with its data-slot and layout classes`,()=>{let{container:r}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),s=r.querySelector(`[data-slot="resizable-panel-group"]`);expect(s).not.toBeNull(),expect(s?.className).toContain(`flex`),expect(s?.className).toContain(`h-full`),expect(s?.className).toContain(`w-full`)}),it(`renders each panel with its own data-slot and content`,()=>{let{container:s}=i(o(t,{children:[a(e,{children:`Left panel`}),a(n,{}),a(e,{children:`Right panel`})]})),c=s.querySelectorAll(`[data-slot="resizable-panel"]`);expect(c).toHaveLength(2),expect(r.getByText(`Left panel`)).not.toBeNull(),expect(r.getByText(`Right panel`)).not.toBeNull()}),it(`lays out panels in a row by default`,()=>{let{container:r}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),s=r.querySelector(`[data-slot="resizable-panel-group"]`);expect(s.style.flexDirection).toBe(`row`)}),it(`switches to a column layout and flips the handle orientation when vertical`,()=>{let{container:s}=i(o(t,{orientation:`vertical`,children:[a(e,{children:`Top`}),a(n,{}),a(e,{children:`Bottom`})]})),c=s.querySelector(`[data-slot="resizable-panel-group"]`),l=r.getByRole(`separator`);expect(c.style.flexDirection).toBe(`column`),expect(l.getAttribute(`aria-orientation`)).toBe(`horizontal`)})}),describe(`ResizableHandle`,()=>{it(`renders as a separator with its data-slot`,()=>{let{container:s}=i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),c=r.getByRole(`separator`);expect(c.getAttribute(`data-slot`)).toBe(`resizable-handle`),expect(s.querySelector(`[data-slot="resizable-handle"]`)).toBe(c)}),it(`does not render a visible grip by default`,()=>{i(o(t,{children:[a(e,{children:`Left`}),a(n,{}),a(e,{children:`Right`})]})),expect(r.getByRole(`separator`).querySelector(`div`)).toBeNull()}),it(`renders a visible grip element when withHandle is set`,()=>{i(o(t,{children:[a(e,{children:`Left`}),a(n,{withHandle:!0}),a(e,{children:`Right`})]}));let s=r.getByRole(`separator`).querySelector(`div`);expect(s).not.toBeNull(),expect(s?.className).toContain(`rounded-lg`)})});
2
- //# sourceMappingURL=resizable.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable.spec.js","names":[],"sources":["../../src/components/resizable.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './resizable'\n\nclass ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nbeforeAll(() => {\n window.ResizeObserver = ResizeObserverStub as unknown as typeof ResizeObserver\n})\n\ndescribe('ResizablePanelGroup', () => {\n it('renders the group with its data-slot and layout classes', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]')\n\n expect(group).not.toBeNull()\n expect(group?.className).toContain('flex')\n expect(group?.className).toContain('h-full')\n expect(group?.className).toContain('w-full')\n })\n\n it('renders each panel with its own data-slot and content', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left panel</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right panel</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const panels = container.querySelectorAll('[data-slot=\"resizable-panel\"]')\n\n expect(panels).toHaveLength(2)\n expect(screen.getByText('Left panel')).not.toBeNull()\n expect(screen.getByText('Right panel')).not.toBeNull()\n })\n\n it('lays out panels in a row by default', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]') as HTMLElement\n\n expect(group.style.flexDirection).toBe('row')\n })\n\n it('switches to a column layout and flips the handle orientation when vertical', () => {\n const { container } = render(\n <ResizablePanelGroup orientation=\"vertical\">\n <ResizablePanel>Top</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Bottom</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const group = container.querySelector('[data-slot=\"resizable-panel-group\"]') as HTMLElement\n const handle = screen.getByRole('separator')\n\n expect(group.style.flexDirection).toBe('column')\n expect(handle.getAttribute('aria-orientation')).toBe('horizontal')\n })\n})\n\ndescribe('ResizableHandle', () => {\n it('renders as a separator with its data-slot', () => {\n const { container } = render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const handle = screen.getByRole('separator')\n\n expect(handle.getAttribute('data-slot')).toBe('resizable-handle')\n expect(container.querySelector('[data-slot=\"resizable-handle\"]')).toBe(handle)\n })\n\n it('does not render a visible grip by default', () => {\n render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n expect(screen.getByRole('separator').querySelector('div')).toBeNull()\n })\n\n it('renders a visible grip element when withHandle is set', () => {\n render(\n <ResizablePanelGroup>\n <ResizablePanel>Left</ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel>Right</ResizablePanel>\n </ResizablePanelGroup>\n )\n\n const grip = screen.getByRole('separator').querySelector('div')\n\n expect(grip).not.toBeNull()\n expect(grip?.className).toContain('rounded-lg')\n })\n})\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../ring-progress-Bfqq_HHA.js";import{r as t}from"../react.esm-dE9nuHcL.js";import{jsx as n}from"react/jsx-runtime";describe(`RingProgress`,()=>{it(`renders an svg with the ring-progress data-slot and default size, color, and thickness`,()=>{let{container:r}=t(n(e,{value:40})),i=r.querySelector(`[data-slot="ring-progress"]`);expect(i?.tagName).toBe(`svg`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`data-color`)).toBe(`primary`),expect(i?.getAttribute(`data-thickness`)).toBe(`md`),expect(i?.getAttribute(`role`)).toBe(`progressbar`),expect(i?.getAttribute(`aria-valuenow`)).toBe(`40`)}),it(`clamps out-of-range values and defaults to 0 when omitted`,()=>{let{container:r}=t(n(e,{value:-20})),{container:i}=t(n(e,{value:150})),{container:a}=t(n(e,{}));expect(r.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`0`),expect(i.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`100`),expect(a.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`aria-valuenow`)).toBe(`0`)}),it(`adjusts the stroke width of both circles based on the thickness variant`,()=>{let{container:r}=t(n(e,{value:50,thickness:`thick`})),i=r.querySelectorAll(`circle`);expect(i).toHaveLength(2),expect(i[0]?.getAttribute(`stroke-width`)).toBe(`16`),expect(i[1]?.getAttribute(`stroke-width`)).toBe(`16`)}),it(`applies the size and color variant classes alongside a custom className`,()=>{let{container:r}=t(n(e,{value:50,size:`lg`,color:`green`,className:`custom-class`})),i=r.querySelector(`[data-slot="ring-progress"]`)?.getAttribute(`class`);expect(i).toContain(`size-12`),expect(i).toContain(`custom-class`)}),it(`forwards a ref to the underlying svg element`,()=>{let r={current:null};t(n(e,{ref:r,value:20})),expect(r.current).toBeInstanceOf(SVGSVGElement)})});
2
- //# sourceMappingURL=ring-progress.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ring-progress.spec.js","names":[],"sources":["../../src/components/ring-progress.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { RingProgress } from './ring-progress'\n\ndescribe('RingProgress', () => {\n it('renders an svg with the ring-progress data-slot and default size, color, and thickness', () => {\n const { container } = render(<RingProgress value={40} />)\n\n const svg = container.querySelector('[data-slot=\"ring-progress\"]')\n\n expect(svg?.tagName).toBe('svg')\n expect(svg?.getAttribute('data-size')).toBe('md')\n expect(svg?.getAttribute('data-color')).toBe('primary')\n expect(svg?.getAttribute('data-thickness')).toBe('md')\n expect(svg?.getAttribute('role')).toBe('progressbar')\n expect(svg?.getAttribute('aria-valuenow')).toBe('40')\n })\n\n it('clamps out-of-range values and defaults to 0 when omitted', () => {\n const { container: low } = render(<RingProgress value={-20} />)\n const { container: high } = render(<RingProgress value={150} />)\n const { container: none } = render(<RingProgress />)\n\n expect(low.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('0')\n expect(high.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('100')\n expect(none.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('aria-valuenow')).toBe('0')\n })\n\n it('adjusts the stroke width of both circles based on the thickness variant', () => {\n const { container } = render(<RingProgress value={50} thickness=\"thick\" />)\n\n const circles = container.querySelectorAll('circle')\n\n expect(circles).toHaveLength(2)\n expect(circles[0]?.getAttribute('stroke-width')).toBe('16')\n expect(circles[1]?.getAttribute('stroke-width')).toBe('16')\n })\n\n it('applies the size and color variant classes alongside a custom className', () => {\n const { container } = render(<RingProgress value={50} size=\"lg\" color=\"green\" className=\"custom-class\" />)\n\n const classes = container.querySelector('[data-slot=\"ring-progress\"]')?.getAttribute('class')\n\n expect(classes).toContain('size-12')\n expect(classes).toContain('custom-class')\n })\n\n it('forwards a ref to the underlying svg element', () => {\n const ref = { current: null as SVGSVGElement | null }\n\n render(<RingProgress ref={ref} value={20} />)\n\n expect(ref.current).toBeInstanceOf(SVGSVGElement)\n })\n})\n"],"mappings":"8KAIA,SAAS,mBAAsB,CAC7B,GAAG,6FAAgG,CACjG,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,EAAK,CAAA,CAAC,EAElD,EAAM,EAAU,cAAc,6BAA6B,EAEjE,OAAO,GAAK,OAAO,CAAC,CAAC,KAAK,KAAK,EAC/B,OAAO,GAAK,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAChD,OAAO,GAAK,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EACtD,OAAO,GAAK,aAAa,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EACrD,OAAO,GAAK,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,aAAa,EACpD,OAAO,GAAK,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CACtD,CAAC,EAED,GAAG,gEAAmE,CACpE,GAAM,CAAE,UAAW,GAAQ,EAAO,EAAC,EAAD,CAAc,MAAO,GAAM,CAAA,CAAC,EACxD,CAAE,UAAW,GAAS,EAAO,EAAC,EAAD,CAAc,MAAO,GAAM,CAAA,CAAC,EACzD,CAAE,UAAW,GAAS,EAAO,EAAC,EAAD,CAAe,CAAA,CAAC,EAEnD,OAAO,EAAI,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,EAChG,OAAO,EAAK,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,KAAK,EACnG,OAAO,EAAK,cAAc,6BAA6B,CAAC,EAAE,aAAa,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,CACnG,CAAC,EAED,GAAG,8EAAiF,CAClF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,GAAI,UAAU,OAAS,CAAA,CAAC,EAEpE,EAAU,EAAU,iBAAiB,QAAQ,EAEnD,OAAO,CAAO,CAAC,CAAC,aAAa,CAAC,EAC9B,OAAO,EAAQ,EAAE,EAAE,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,EAC1D,OAAO,EAAQ,EAAE,EAAE,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAC5D,CAAC,EAED,GAAG,8EAAiF,CAClF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAc,MAAO,GAAI,KAAK,KAAK,MAAM,QAAQ,UAAU,cAAgB,CAAA,CAAC,EAEnG,EAAU,EAAU,cAAc,6BAA6B,CAAC,EAAE,aAAa,OAAO,EAE5F,OAAO,CAAO,CAAC,CAAC,UAAU,SAAS,EACnC,OAAO,CAAO,CAAC,CAAC,UAAU,cAAc,CAC1C,CAAC,EAED,GAAG,mDAAsD,CACvD,IAAM,EAAM,CAAE,QAAS,IAA6B,EAEpD,EAAO,EAAC,EAAD,CAAmB,MAAK,MAAO,EAAK,CAAA,CAAC,EAE5C,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,aAAa,CAClD,CAAC,CACH,CAAC"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
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-dE9nuHcL.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
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
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-CVwVLyWt.js";import{a as c,n as l,r as u}from"../react.esm-dE9nuHcL.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
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../separator-CCMmbXL0.js";import{r as t}from"../react.esm-dE9nuHcL.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
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
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-CJriMotD.js";import{a as T,i as E,n as D,r as O,t as k}from"../react.esm-dE9nuHcL.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
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../simple-grid-9EryoUWI.js";import{r as t}from"../react.esm-dE9nuHcL.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
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
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-dE9nuHcL.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
- //# sourceMappingURL=skeleton.spec.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
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-dE9nuHcL.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
@@ -1 +0,0 @@
1
- {"version":3,"file":"slider.spec.js","names":[],"sources":["../../src/components/slider.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nclass ResizeObserverStub {\n observe() {}\n unobserve() {}\n disconnect() {}\n}\n\nglobalThis.ResizeObserver = ResizeObserverStub as unknown as typeof ResizeObserver\n\nimport { Field, FieldLabel } from './field'\nimport { Slider } from './slider'\n\ndescribe('Slider', () => {\n it('renders the track, range and one thumb per default min/max value', () => {\n const { container } = render(<Slider />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"slider-track\"]')).not.toBeNull()\n expect(container.querySelector('[data-slot=\"slider-range\"]')).not.toBeNull()\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(2)\n })\n\n it('renders a single thumb when defaultValue has one value', () => {\n const { container } = render(<Slider defaultValue={[40]} />)\n\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(1)\n })\n\n it('renders one thumb per value when the value prop is controlled', () => {\n const { container } = render(<Slider value={[10, 50, 90]} onValueChange={() => {}} />)\n\n expect(container.querySelectorAll('[data-slot=\"slider-thumb\"]')).toHaveLength(3)\n })\n\n it('assigns an explicit id to the root element', () => {\n const { container } = render(<Slider id=\"volume\" />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')?.getAttribute('id')).toBe('volume')\n })\n\n it('wires the field control id when rendered inside Field', () => {\n const { container } = render(\n <Field>\n <FieldLabel>Volume</FieldLabel>\n <Slider />\n </Field>\n )\n\n const label = container.querySelector('[data-slot=\"field-label\"]')\n const slider = container.querySelector('[data-slot=\"slider\"]')\n\n expect(label?.getAttribute('for')).toBe(slider?.getAttribute('id'))\n expect(slider?.getAttribute('id')).toBeTruthy()\n })\n\n it('merges a custom className onto the root', () => {\n const { container } = render(<Slider className=\"custom-slider\" />)\n\n expect(container.querySelector('[data-slot=\"slider\"]')?.className).toContain('custom-slider')\n })\n})\n"],"mappings":"uNAEA,IAAM,mBAAN,KAAyB,CACvB,SAAU,CAAC,CACX,WAAY,CAAC,CACb,YAAa,CAAC,CAChB,EAEA,WAAW,eAAiB,mBAK5B,SAAS,aAAgB,CACvB,GAAG,uEAA0E,CAC3E,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAS,CAAA,CAAC,EAEvC,OAAO,EAAU,cAAc,sBAAsB,CAAC,CAAC,CAAC,IAAI,SAAS,EACrE,OAAO,EAAU,cAAc,4BAA4B,CAAC,CAAC,CAAC,IAAI,SAAS,EAC3E,OAAO,EAAU,cAAc,4BAA4B,CAAC,CAAC,CAAC,IAAI,SAAS,EAC3E,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,6DAAgE,CACjE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,aAAc,CAAC,EAAE,CAAI,CAAA,CAAC,EAE3D,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,oEAAuE,CACxE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,MAAO,CAAC,GAAI,GAAI,EAAE,EAAG,kBAAqB,CAAC,CAAI,CAAA,CAAC,EAErF,OAAO,EAAU,iBAAiB,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,CACjF,CAAC,EAED,GAAG,iDAAoD,CACrD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,GAAG,QAAU,CAAA,CAAC,EAEnD,OAAO,EAAU,cAAc,sBAAsB,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAC3F,CAAC,EAED,GAAG,4DAA+D,CAChE,GAAM,CAAE,aAAc,EACpB,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAY,QAAkB,CAAA,EAC9B,EAAC,EAAD,CAAS,CAAA,CACJ,CAAA,CAAA,CACT,EAEM,EAAQ,EAAU,cAAc,2BAA2B,EAC3D,EAAS,EAAU,cAAc,sBAAsB,EAE7D,OAAO,GAAO,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,aAAa,IAAI,CAAC,EAClE,OAAO,GAAQ,aAAa,IAAI,CAAC,CAAC,CAAC,WAAW,CAChD,CAAC,EAED,GAAG,8CAAiD,CAClD,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,UAAU,eAAiB,CAAA,CAAC,EAEjE,OAAO,EAAU,cAAc,sBAAsB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,eAAe,CAC9F,CAAC,CACH,CAAC"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{r as e}from"../react.esm-dE9nuHcL.js";import{jsx as t}from"react/jsx-runtime";const{SonnerMock:n,useThemeMock:r}=vi.hoisted(()=>({SonnerMock:vi.fn(e=>null),useThemeMock:vi.fn(()=>({theme:`system`}))}));vi.mock(`sonner`,()=>({Toaster:n,toast:{message:vi.fn()}})),vi.mock(`next-themes`,()=>({useTheme:r}));const{Toaster:i,toast:a}=await import(`./sonner.js`);function lastSonnerProps(){let e=n.mock.calls.at(-1)?.[0];if(!e)throw Error(`Toaster (mocked Sonner) was not rendered`);return e}describe(`Toaster`,()=>{it(`defaults to the system theme when next-themes reports none`,()=>{r.mockReturnValueOnce({theme:void 0}),e(t(i,{})),expect(lastSonnerProps().theme).toBe(`system`)}),it(`forwards the resolved theme from next-themes`,()=>{r.mockReturnValueOnce({theme:`dark`}),e(t(i,{})),expect(lastSonnerProps().theme).toBe(`dark`)}),it(`configures richColors, base className, and the CSS variable style block`,()=>{e(t(i,{}));let n=lastSonnerProps();expect(n.richColors).toBe(!0),expect(n.className).toBe(`toaster group`),expect(n.style[`--normal-bg`]).toBe(`var(--popover)`),expect(n.style[`--normal-text`]).toBe(`var(--popover-foreground)`),expect(n.style[`--normal-border`]).toBe(`var(--border)`),expect(n.style[`--border-radius`]).toBe(`var(--radius)`)}),it(`provides an icon for every toast type`,()=>{e(t(i,{}));let{icons:n}=lastSonnerProps();for(let e of[`success`,`info`,`warning`,`error`,`loading`])expect(n?.[e]).toBeTruthy()}),it(`sets the shared toast className via toastOptions`,()=>{e(t(i,{})),expect(lastSonnerProps().toastOptions?.classNames?.toast).toBe(`cn-toast`)}),it(`lets consumer props override the defaults through prop spreading`,()=>{e(t(i,{position:`top-center`,richColors:!1}));let n=lastSonnerProps();expect(n.position).toBe(`top-center`),expect(n.richColors).toBe(!1)}),it(`re-exports the sonner toast function`,()=>{expect(a).toBeDefined()})});
2
- //# sourceMappingURL=sonner.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sonner.spec.js","names":[],"sources":["../../src/components/sonner.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\ntype SonnerProps = {\n theme?: string\n richColors?: boolean\n className?: string\n style?: Record<string, string>\n icons?: Record<string, unknown>\n toastOptions?: { classNames?: { toast?: string } }\n position?: string\n [key: string]: unknown\n}\n\nconst { SonnerMock, useThemeMock } = vi.hoisted(() => ({\n SonnerMock: vi.fn((_props?: SonnerProps) => null),\n useThemeMock: vi.fn((): { theme?: string } => ({ theme: 'system' }))\n}))\n\nvi.mock('sonner', () => ({\n Toaster: SonnerMock,\n toast: { message: vi.fn() }\n}))\n\nvi.mock('next-themes', () => ({\n useTheme: useThemeMock\n}))\n\nconst { Toaster, toast } = await import('./sonner')\n\nfunction lastSonnerProps(): SonnerProps {\n const props = SonnerMock.mock.calls.at(-1)?.[0]\n\n if (!props) {\n throw new Error('Toaster (mocked Sonner) was not rendered')\n }\n\n return props\n}\n\ndescribe('Toaster', () => {\n it('defaults to the system theme when next-themes reports none', () => {\n useThemeMock.mockReturnValueOnce({ theme: undefined })\n\n render(<Toaster />)\n\n expect(lastSonnerProps().theme).toBe('system')\n })\n\n it('forwards the resolved theme from next-themes', () => {\n useThemeMock.mockReturnValueOnce({ theme: 'dark' })\n\n render(<Toaster />)\n\n expect(lastSonnerProps().theme).toBe('dark')\n })\n\n it('configures richColors, base className, and the CSS variable style block', () => {\n render(<Toaster />)\n\n const props = lastSonnerProps()\n\n expect(props.richColors).toBe(true)\n expect(props.className).toBe('toaster group')\n expect(props.style!['--normal-bg']).toBe('var(--popover)')\n expect(props.style!['--normal-text']).toBe('var(--popover-foreground)')\n expect(props.style!['--normal-border']).toBe('var(--border)')\n expect(props.style!['--border-radius']).toBe('var(--radius)')\n })\n\n it('provides an icon for every toast type', () => {\n render(<Toaster />)\n\n const { icons } = lastSonnerProps()\n\n for (const key of ['success', 'info', 'warning', 'error', 'loading']) {\n expect(icons?.[key]).toBeTruthy()\n }\n })\n\n it('sets the shared toast className via toastOptions', () => {\n render(<Toaster />)\n\n expect(lastSonnerProps().toastOptions?.classNames?.toast).toBe('cn-toast')\n })\n\n it('lets consumer props override the defaults through prop spreading', () => {\n render(<Toaster position=\"top-center\" richColors={false} />)\n\n const props = lastSonnerProps()\n\n expect(props.position).toBe('top-center')\n expect(props.richColors).toBe(false)\n })\n\n it('re-exports the sonner toast function', () => {\n expect(toast).toBeDefined()\n })\n})\n"],"mappings":"6HAaA,KAAM,CAAE,aAAY,gBAAiB,GAAG,aAAe,CACrD,WAAY,GAAG,GAAI,GAAyB,IAAI,EAChD,aAAc,GAAG,QAA8B,CAAE,MAAO,QAAS,EAAE,CACrE,EAAE,EAEF,GAAG,KAAK,cAAiB,CACvB,QAAS,EACT,MAAO,CAAE,QAAS,GAAG,GAAG,CAAE,CAC5B,EAAE,EAEF,GAAG,KAAK,mBAAsB,CAC5B,SAAU,CACZ,EAAE,EAEF,KAAM,CAAE,UAAS,SAAU,MAAM,OAAO,eAExC,SAAS,iBAA+B,CACtC,IAAM,EAAQ,EAAW,KAAK,MAAM,GAAG,EAAE,CAAC,GAAG,GAE7C,GAAI,CAAC,EACH,MAAU,MAAM,0CAA0C,EAG5D,OAAO,CACT,CAEA,SAAS,cAAiB,CACxB,GAAG,iEAAoE,CACrE,EAAa,oBAAoB,CAAE,MAAO,IAAA,EAAU,CAAC,EAErD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,QAAQ,CAC/C,CAAC,EAED,GAAG,mDAAsD,CACvD,EAAa,oBAAoB,CAAE,MAAO,MAAO,CAAC,EAElD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM,CAC7C,CAAC,EAED,GAAG,8EAAiF,CAClF,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,IAAM,EAAQ,gBAAgB,EAE9B,OAAO,EAAM,UAAU,CAAC,CAAC,KAAK,EAAI,EAClC,OAAO,EAAM,SAAS,CAAC,CAAC,KAAK,eAAe,EAC5C,OAAO,EAAM,MAAO,cAAc,CAAC,CAAC,KAAK,gBAAgB,EACzD,OAAO,EAAM,MAAO,gBAAgB,CAAC,CAAC,KAAK,2BAA2B,EACtE,OAAO,EAAM,MAAO,kBAAkB,CAAC,CAAC,KAAK,eAAe,EAC5D,OAAO,EAAM,MAAO,kBAAkB,CAAC,CAAC,KAAK,eAAe,CAC9D,CAAC,EAED,GAAG,4CAA+C,CAChD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,GAAM,CAAE,SAAU,gBAAgB,EAElC,IAAK,IAAM,IAAO,CAAC,UAAW,OAAQ,UAAW,QAAS,SAAS,EACjE,OAAO,IAAQ,EAAI,CAAC,CAAC,WAAW,CAEpC,CAAC,EAED,GAAG,uDAA0D,CAC3D,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,gBAAgB,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,CAAC,KAAK,UAAU,CAC3E,CAAC,EAED,GAAG,uEAA0E,CAC3E,EAAO,EAAC,EAAD,CAAS,SAAS,aAAa,WAAY,EAAQ,CAAA,CAAC,EAE3D,IAAM,EAAQ,gBAAgB,EAE9B,OAAO,EAAM,QAAQ,CAAC,CAAC,KAAK,YAAY,EACxC,OAAO,EAAM,UAAU,CAAC,CAAC,KAAK,EAAK,CACrC,CAAC,EAED,GAAG,2CAA8C,CAC/C,OAAO,CAAK,CAAC,CAAC,YAAY,CAC5B,CAAC,CACH,CAAC"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../spinner-ntLrcDLN.js";import{a as t,r as n}from"../react.esm-dE9nuHcL.js";import{jsx as r}from"react/jsx-runtime";describe(`Spinner`,()=>{it(`renders with the status role, a loading label and the default medium size`,()=>{let{container:t}=n(r(e,{})),i=t.querySelector(`[data-slot="spinner"]`);expect(i).not.toBeNull(),expect(i?.getAttribute(`role`)).toBe(`status`),expect(i?.getAttribute(`aria-label`)).toBe(`Loading`),expect(i?.getAttribute(`data-size`)).toBe(`md`),expect(i?.getAttribute(`class`)).toContain(`animate-spin`),expect(i?.getAttribute(`class`)).toContain(`size-4`)}),it(`applies the small and large size variant classes`,()=>{let{container:t}=n(r(e,{size:`sm`})),i=t.querySelector(`[data-slot="spinner"]`);expect(i?.getAttribute(`data-size`)).toBe(`sm`),expect(i?.getAttribute(`class`)).toContain(`size-3`);let{container:a}=n(r(e,{size:`lg`})),o=a.querySelector(`[data-slot="spinner"]`);expect(o?.getAttribute(`data-size`)).toBe(`lg`),expect(o?.getAttribute(`class`)).toContain(`size-5`)}),it(`merges a custom className with the variant classes`,()=>{let{container:t}=n(r(e,{className:`text-primary`})),i=t.querySelector(`[data-slot="spinner"]`);expect(i?.getAttribute(`class`)).toContain(`text-primary`),expect(i?.getAttribute(`class`)).toContain(`animate-spin`)}),it(`is discoverable through the status role`,()=>{n(r(e,{})),expect(t.getByRole(`status`,{name:`Loading`})).not.toBeNull()})});
2
- //# sourceMappingURL=spinner.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spinner.spec.js","names":[],"sources":["../../src/components/spinner.spec.tsx"],"sourcesContent":["import { render, screen } from '@testing-library/react'\n\nimport { Spinner } from './spinner'\n\ndescribe('Spinner', () => {\n it('renders with the status role, a loading label and the default medium size', () => {\n const { container } = render(<Spinner />)\n\n const spinner = container.querySelector('[data-slot=\"spinner\"]')\n\n expect(spinner).not.toBeNull()\n expect(spinner?.getAttribute('role')).toBe('status')\n expect(spinner?.getAttribute('aria-label')).toBe('Loading')\n expect(spinner?.getAttribute('data-size')).toBe('md')\n expect(spinner?.getAttribute('class')).toContain('animate-spin')\n expect(spinner?.getAttribute('class')).toContain('size-4')\n })\n\n it('applies the small and large size variant classes', () => {\n const { container: smallContainer } = render(<Spinner size=\"sm\" />)\n const small = smallContainer.querySelector('[data-slot=\"spinner\"]')\n\n expect(small?.getAttribute('data-size')).toBe('sm')\n expect(small?.getAttribute('class')).toContain('size-3')\n\n const { container: largeContainer } = render(<Spinner size=\"lg\" />)\n const large = largeContainer.querySelector('[data-slot=\"spinner\"]')\n\n expect(large?.getAttribute('data-size')).toBe('lg')\n expect(large?.getAttribute('class')).toContain('size-5')\n })\n\n it('merges a custom className with the variant classes', () => {\n const { container } = render(<Spinner className=\"text-primary\" />)\n\n const spinner = container.querySelector('[data-slot=\"spinner\"]')\n\n expect(spinner?.getAttribute('class')).toContain('text-primary')\n expect(spinner?.getAttribute('class')).toContain('animate-spin')\n })\n\n it('is discoverable through the status role', () => {\n render(<Spinner />)\n\n expect(screen.getByRole('status', { name: 'Loading' })).not.toBeNull()\n })\n})\n"],"mappings":"+KAIA,SAAS,cAAiB,CACxB,GAAG,gFAAmF,CACpF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElC,EAAU,EAAU,cAAc,uBAAuB,EAE/D,OAAO,CAAO,CAAC,CAAC,IAAI,SAAS,EAC7B,OAAO,GAAS,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EACnD,OAAO,GAAS,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAC1D,OAAO,GAAS,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACpD,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,EAC/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,CAC3D,CAAC,EAED,GAAG,uDAA0D,CAC3D,GAAM,CAAE,UAAW,GAAmB,EAAO,EAAC,EAAD,CAAS,KAAK,IAAM,CAAA,CAAC,EAC5D,EAAQ,EAAe,cAAc,uBAAuB,EAElE,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,EAEvD,GAAM,CAAE,UAAW,GAAmB,EAAO,EAAC,EAAD,CAAS,KAAK,IAAM,CAAA,CAAC,EAC5D,EAAQ,EAAe,cAAc,uBAAuB,EAElE,OAAO,GAAO,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAClD,OAAO,GAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,QAAQ,CACzD,CAAC,EAED,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAS,UAAU,cAAgB,CAAA,CAAC,EAE3D,EAAU,EAAU,cAAc,uBAAuB,EAE/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,EAC/D,OAAO,GAAS,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc,CACjE,CAAC,EAED,GAAG,8CAAiD,CAClD,EAAO,EAAC,EAAD,CAAU,CAAA,CAAC,EAElB,OAAO,EAAO,UAAU,SAAU,CAAE,KAAM,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CACvE,CAAC,CACH,CAAC"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{t as e}from"../stack-BbLllsqk.js";import{r as t}from"../react.esm-dE9nuHcL.js";import{jsx as n}from"react/jsx-runtime";describe(`Stack`,()=>{it(`renders with data-slot, flex-col layout and the default md gap`,()=>{let{container:r}=t(n(e,{})),i=r.querySelector(`[data-slot="stack"]`);expect(i).not.toBeNull(),expect(i?.className).toContain(`flex`),expect(i?.className).toContain(`flex-col`),expect(i?.className).toContain(`gap-4`),expect(i?.getAttribute(`data-gap`)).toBe(`md`),expect(i?.getAttribute(`data-align`)).toBeNull(),expect(i?.getAttribute(`data-justify`)).toBeNull()}),it(`applies the align, justify and gap variant classes and data attributes`,()=>{let{container:r}=t(n(e,{align:`center`,justify:`between`,gap:`xl`})),i=r.querySelector(`[data-slot="stack"]`);expect(i?.getAttribute(`data-align`)).toBe(`center`),expect(i?.getAttribute(`data-justify`)).toBe(`between`),expect(i?.getAttribute(`data-gap`)).toBe(`xl`),expect(i?.className).toContain(`items-center`),expect(i?.className).toContain(`justify-between`),expect(i?.className).toContain(`gap-8`)}),it(`merges a custom className with the variant classes`,()=>{let{container:r}=t(n(e,{className:`custom-stack`}));expect(r.querySelector(`[data-slot="stack"]`)?.className).toContain(`custom-stack`)}),it(`forwards ref to the underlying div element`,()=>{let r={current:null};t(n(e,{ref:r})),expect(r.current).toBeInstanceOf(HTMLDivElement)})});
2
- //# sourceMappingURL=stack.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.spec.js","names":[],"sources":["../../src/components/stack.spec.tsx"],"sourcesContent":["import { render } from '@testing-library/react'\n\nimport { Stack } from './stack'\n\ndescribe('Stack', () => {\n it('renders with data-slot, flex-col layout and the default md gap', () => {\n const { container } = render(<Stack />)\n\n const stack = container.querySelector('[data-slot=\"stack\"]')\n\n expect(stack).not.toBeNull()\n expect(stack?.className).toContain('flex')\n expect(stack?.className).toContain('flex-col')\n expect(stack?.className).toContain('gap-4')\n expect(stack?.getAttribute('data-gap')).toBe('md')\n expect(stack?.getAttribute('data-align')).toBeNull()\n expect(stack?.getAttribute('data-justify')).toBeNull()\n })\n\n it('applies the align, justify and gap variant classes and data attributes', () => {\n const { container } = render(<Stack align=\"center\" justify=\"between\" gap=\"xl\" />)\n\n const stack = container.querySelector('[data-slot=\"stack\"]')\n\n expect(stack?.getAttribute('data-align')).toBe('center')\n expect(stack?.getAttribute('data-justify')).toBe('between')\n expect(stack?.getAttribute('data-gap')).toBe('xl')\n expect(stack?.className).toContain('items-center')\n expect(stack?.className).toContain('justify-between')\n expect(stack?.className).toContain('gap-8')\n })\n\n it('merges a custom className with the variant classes', () => {\n const { container } = render(<Stack className=\"custom-stack\" />)\n\n expect(container.querySelector('[data-slot=\"stack\"]')?.className).toContain('custom-stack')\n })\n\n it('forwards ref to the underlying div element', () => {\n const ref = { current: null as HTMLDivElement | null }\n\n render(<Stack ref={ref} />)\n\n expect(ref.current).toBeInstanceOf(HTMLDivElement)\n })\n})\n"],"mappings":"sKAIA,SAAS,YAAe,CACtB,GAAG,qEAAwE,CACzE,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAQ,CAAA,CAAC,EAEhC,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,CAAK,CAAC,CAAC,IAAI,SAAS,EAC3B,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,MAAM,EACzC,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,UAAU,EAC7C,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,OAAO,EAC1C,OAAO,GAAO,aAAa,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,SAAS,EACnD,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,SAAS,CACvD,CAAC,EAED,GAAG,6EAAgF,CACjF,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,MAAM,SAAS,QAAQ,UAAU,IAAI,IAAM,CAAA,CAAC,EAE1E,EAAQ,EAAU,cAAc,qBAAqB,EAE3D,OAAO,GAAO,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACvD,OAAO,GAAO,aAAa,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAC1D,OAAO,GAAO,aAAa,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EACjD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,cAAc,EACjD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,iBAAiB,EACpD,OAAO,GAAO,SAAS,CAAC,CAAC,UAAU,OAAO,CAC5C,CAAC,EAED,GAAG,yDAA4D,CAC7D,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAO,UAAU,cAAgB,CAAA,CAAC,EAE/D,OAAO,EAAU,cAAc,qBAAqB,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,cAAc,CAC5F,CAAC,EAED,GAAG,iDAAoD,CACrD,IAAM,EAAM,CAAE,QAAS,IAA8B,EAErD,EAAO,EAAC,EAAD,CAAY,KAAM,CAAA,CAAC,EAE1B,OAAO,EAAI,OAAO,CAAC,CAAC,eAAe,cAAc,CACnD,CAAC,CACH,CAAC"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"../stepper-BQ-59_UO.js";import{i as f,n as p,r as m,t as h}from"../react.esm-dE9nuHcL.js";import{jsx as g,jsxs as _}from"react/jsx-runtime";function ThreeStepStepper({children:n,...r}={}){return _(u,{defaultValue:2,...r,children:[n,_(s,{children:[_(e,{step:1,"data-testid":`item-1`,children:[_(d,{children:[g(i,{children:`1`}),g(a,{children:`Step one`}),g(c,{children:`First`})]}),g(t,{})]}),_(e,{step:2,"data-testid":`item-2`,children:[_(d,{children:[g(i,{children:`2`}),g(a,{children:`Step two`})]}),g(t,{})]}),g(e,{step:3,"data-testid":`item-3`,children:_(d,{children:[g(i,{children:`3`}),g(a,{children:`Step three`})]})})]}),_(l,{children:[g(o,{value:1,children:`First content`}),g(o,{value:2,children:`Second content`}),g(o,{value:3,children:`Third content`})]})]})}describe(`Stepper`,()=>{it(`renders the root as a tablist wired with the horizontal orientation by default`,()=>{let{container:e}=m(g(u,{})),t=e.querySelector(`[data-slot="stepper"]`);expect(t.getAttribute(`role`)).toBe(`tablist`),expect(t.getAttribute(`aria-orientation`)).toBe(`horizontal`),expect(t.getAttribute(`data-orientation`)).toBe(`horizontal`),expect(t.className).toContain(`w-full`)}),it(`respects an explicit vertical orientation`,()=>{let{container:e}=m(g(u,{orientation:`vertical`})),t=e.querySelector(`[data-slot="stepper"]`);expect(t.getAttribute(`aria-orientation`)).toBe(`vertical`),expect(t.getAttribute(`data-orientation`)).toBe(`vertical`)}),it(`shows correct active, completed, and upcoming state across three steps`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2}));expect(e(`item-1`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`active`),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`inactive`)}),it(`advances the active step when a trigger is clicked (uncontrolled)`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1}));p.click(e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e(`item-1`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`completed`),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`active`)}),it(`stays on the controlled value and calls onValueChange instead of updating internal state`,()=>{let e=vi.fn(),{getByTestId:t}=m(g(ThreeStepStepper,{value:1,onValueChange:e}));p.click(t(`item-3`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e).toHaveBeenCalledWith(3),expect(t(`item-1`).getAttribute(`data-state`)).toBe(`active`),expect(t(`item-3`).getAttribute(`data-state`)).toBe(`inactive`)}),it(`forces a step to completed via the completed prop regardless of its position`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:2,completed:!0,"data-testid":`forced`,children:g(d,{children:`Two`})})}));expect(t.querySelector(`[data-testid="forced"]`)?.getAttribute(`data-state`)).toBe(`completed`)}),it(`marks the active step as loading via data-loading when the loading prop is set`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:1,loading:!0,"data-testid":`loading-item`,children:g(d,{children:`One`})})}));expect(t.querySelector(`[data-testid="loading-item"]`)?.getAttribute(`data-loading`)).toBe(`true`)}),it(`does not mark an inactive step as loading even when the loading prop is set`,()=>{let{container:t}=m(g(u,{defaultValue:2,children:g(e,{step:1,loading:!0,"data-testid":`loading-item`,children:g(d,{children:`One`})})}));expect(t.querySelector(`[data-testid="loading-item"]`)?.hasAttribute(`data-loading`)).toBe(!1)})}),describe(`useStepper`,()=>{it(`throws when used outside a Stepper`,()=>{expect(()=>f(()=>r())).toThrow(`useStepper must be used within a Stepper`)}),it(`exposes the active step, orientation, and setActiveStep from context`,()=>{let wrapper=({children:e})=>g(u,{defaultValue:2,children:e}),{result:e}=f(()=>r(),{wrapper});expect(e.current.activeStep).toBe(2),expect(e.current.orientation).toBe(`horizontal`),expect(typeof e.current.setActiveStep).toBe(`function`)}),it(`stepsCount stays 0 even with StepperItem children, since StepperItem has no displayName set`,()=>{let wrapper=({children:t})=>_(u,{defaultValue:1,children:[g(e,{step:1,children:g(d,{children:`One`})}),g(e,{step:2,children:g(d,{children:`Two`})}),t]}),{result:t}=f(()=>r(),{wrapper});expect(t.current.stepsCount).toBe(0)}),it(`updates the active step across the tree when setActiveStep is called`,()=>{let e={};function Capture(){return e.current=r(),null}let{getByTestId:t}=m(g(ThreeStepStepper,{defaultValue:1,children:g(Capture,{})}));h(()=>e.current?.setActiveStep(3)),expect(t(`item-3`).getAttribute(`data-state`)).toBe(`active`)})}),describe(`useStepItem`,()=>{it(`throws when used outside a StepperItem`,()=>{expect(()=>f(()=>n())).toThrow(`useStepItem must be used within a StepperItem`)}),it(`exposes step, state, isDisabled, and isLoading from context`,()=>{let wrapper=({children:t})=>g(u,{defaultValue:1,children:g(e,{step:1,disabled:!0,children:t})}),{result:t}=f(()=>n(),{wrapper});expect(t.current.step).toBe(1),expect(t.current.state).toBe(`active`),expect(t.current.isDisabled).toBe(!0),expect(t.current.isLoading).toBe(!1)})}),describe(`StepperItem`,()=>{it(`renders with data-slot stepper-item and the group/step class`,()=>{let{container:t}=m(g(u,{children:g(e,{step:1,children:g(d,{children:`One`})})})),n=t.querySelector(`[data-slot="stepper-item"]`);expect(n.className).toContain(`group/step`)})}),describe(`StepperTrigger`,()=>{it(`renders a tab button with the expected aria wiring for the active step`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`);expect(t.tagName).toBe(`BUTTON`),expect(t.getAttribute(`role`)).toBe(`tab`),expect(t.getAttribute(`aria-selected`)).toBe(`true`),expect(t.getAttribute(`aria-controls`)).toBe(`stepper-panel-2`),expect(t.tabIndex).toBe(0)}),it(`gives inactive step triggers a tabIndex of -1`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`);expect(t.tabIndex).toBe(-1)}),it(`sets the active step when clicked`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1}));p.click(e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`)),expect(e(`item-2`).getAttribute(`data-state`)).toBe(`active`)}),it(`disables the button and blocks activation when the StepperItem is disabled`,()=>{let{container:t}=m(_(u,{defaultValue:1,children:[g(e,{step:1,children:g(d,{children:`One`})}),g(e,{step:2,disabled:!0,"data-testid":`disabled-item`,children:g(d,{children:`Two`})})]})),n=t.querySelector(`[data-testid="disabled-item"] [data-slot="stepper-trigger"]`);expect(n.disabled).toBe(!0)}),it(`moves focus to the next trigger on ArrowRight and to the previous on ArrowLeft`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`),n=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`);t.focus(),p.keyDown(t,{key:`ArrowRight`}),expect(document.activeElement).toBe(n),p.keyDown(n,{key:`ArrowLeft`}),expect(document.activeElement).toBe(t)}),it(`moves focus to the first/last trigger on Home/End`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-1`).querySelector(`[data-slot="stepper-trigger"]`),n=e(`item-2`).querySelector(`[data-slot="stepper-trigger"]`),r=e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`);n.focus(),p.keyDown(n,{key:`End`}),expect(document.activeElement).toBe(r),p.keyDown(r,{key:`Home`}),expect(document.activeElement).toBe(t)}),it(`activates the focused step on Enter and Space`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:1})),t=e(`item-3`).querySelector(`[data-slot="stepper-trigger"]`);p.keyDown(t,{key:`Enter`}),expect(e(`item-3`).getAttribute(`data-state`)).toBe(`active`)}),it(`renders a span instead of a button when asChild is set`,()=>{let{container:t}=m(g(u,{defaultValue:1,children:g(e,{step:1,children:g(d,{asChild:!0,children:`Custom`})})})),n=t.querySelector(`[data-slot="stepper-trigger"]`);expect(n.tagName).toBe(`SPAN`),expect(n.getAttribute(`data-state`)).toBe(`active`),expect(n.textContent).toBe(`Custom`)})}),describe(`StepperIndicator`,()=>{it(`renders its children by default and reflects the step state`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-2`).querySelector(`[data-slot="stepper-indicator"]`);expect(t.getAttribute(`data-state`)).toBe(`active`),expect(t.textContent).toBe(`2`)}),it(`swaps in a custom indicator node for the matching state`,()=>{let{container:t}=m(g(u,{defaultValue:1,indicators:{active:g(`span`,{"data-testid":`custom-active`,children:`*`})},children:g(e,{step:1,children:g(i,{children:`1`})})}));expect(t.querySelector(`[data-testid="custom-active"]`)).not.toBeNull()}),it(`prefers the loading indicator when the active step is loading`,()=>{let{container:t}=m(g(u,{defaultValue:1,indicators:{loading:g(`span`,{"data-testid":`custom-loading`,children:`…`})},children:g(e,{step:1,loading:!0,children:g(i,{children:`1`})})}));expect(t.querySelector(`[data-testid="custom-loading"]`)).not.toBeNull()})}),describe(`StepperSeparator`,()=>{it(`renders with data-slot stepper-separator and mirrors the item state`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-separator"]`);expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperTitle`,()=>{it(`renders its children with data-slot stepper-title`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-title"]`);expect(t.tagName).toBe(`H3`),expect(t.textContent).toBe(`Step one`),expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperDescription`,()=>{it(`renders its children with data-slot stepper-description`,()=>{let{getByTestId:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e(`item-1`).querySelector(`[data-slot="stepper-description"]`);expect(t.textContent).toBe(`First`),expect(t.getAttribute(`data-state`)).toBe(`completed`)})}),describe(`StepperNav`,()=>{it(`renders with data-slot stepper-nav and mirrors orientation and active step`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2,orientation:`vertical`})),t=e.querySelector(`[data-slot="stepper-nav"]`);expect(t.tagName).toBe(`NAV`),expect(t.getAttribute(`data-orientation`)).toBe(`vertical`),expect(t.getAttribute(`data-state`)).toBe(`2`)})}),describe(`StepperPanel`,()=>{it(`renders with data-slot stepper-panel and mirrors the active step`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e.querySelector(`[data-slot="stepper-panel"]`);expect(t.getAttribute(`data-state`)).toBe(`2`)})}),describe(`StepperContent`,()=>{it(`renders only the content for the active step by default`,()=>{let{container:e}=m(g(ThreeStepStepper,{defaultValue:2})),t=e.querySelectorAll(`[data-slot="stepper-content"]`);expect(t.length).toBe(1),expect(t[0]?.textContent).toBe(`Second content`)}),it(`keeps inactive content mounted but hidden when forceMount is set`,()=>{let{container:e}=m(_(u,{defaultValue:1,children:[g(o,{value:1,children:`Active`}),g(o,{value:2,forceMount:!0,children:`Inactive but mounted`})]})),t=Array.from(e.querySelectorAll(`[data-slot="stepper-content"]`)).find(e=>e.textContent===`Inactive but mounted`);expect(t).not.toBeUndefined(),expect(t.hasAttribute(`hidden`)).toBe(!0),expect(t.className).toContain(`hidden`)})});
2
- //# sourceMappingURL=stepper.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper.spec.js","names":[],"sources":["../../src/components/stepper.spec.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport { act, fireEvent, render, renderHook } from '@testing-library/react'\n\nimport {\n Stepper,\n StepperContent,\n StepperDescription,\n StepperIndicator,\n StepperItem,\n StepperNav,\n StepperPanel,\n StepperSeparator,\n StepperTitle,\n StepperTrigger,\n useStepItem,\n useStepper\n} from './stepper'\n\nfunction ThreeStepStepper({\n children,\n ...props\n}: Partial<Parameters<typeof Stepper>[0]> & { children?: ReactNode } = {}) {\n return (\n <Stepper defaultValue={2} {...props}>\n {children}\n <StepperNav>\n <StepperItem step={1} data-testid=\"item-1\">\n <StepperTrigger>\n <StepperIndicator>1</StepperIndicator>\n <StepperTitle>Step one</StepperTitle>\n <StepperDescription>First</StepperDescription>\n </StepperTrigger>\n <StepperSeparator />\n </StepperItem>\n <StepperItem step={2} data-testid=\"item-2\">\n <StepperTrigger>\n <StepperIndicator>2</StepperIndicator>\n <StepperTitle>Step two</StepperTitle>\n </StepperTrigger>\n <StepperSeparator />\n </StepperItem>\n <StepperItem step={3} data-testid=\"item-3\">\n <StepperTrigger>\n <StepperIndicator>3</StepperIndicator>\n <StepperTitle>Step three</StepperTitle>\n </StepperTrigger>\n </StepperItem>\n </StepperNav>\n <StepperPanel>\n <StepperContent value={1}>First content</StepperContent>\n <StepperContent value={2}>Second content</StepperContent>\n <StepperContent value={3}>Third content</StepperContent>\n </StepperPanel>\n </Stepper>\n )\n}\n\ndescribe('Stepper', () => {\n it('renders the root as a tablist wired with the horizontal orientation by default', () => {\n const { container } = render(<Stepper />)\n\n const stepper = container.querySelector('[data-slot=\"stepper\"]') as HTMLElement\n\n expect(stepper.getAttribute('role')).toBe('tablist')\n expect(stepper.getAttribute('aria-orientation')).toBe('horizontal')\n expect(stepper.getAttribute('data-orientation')).toBe('horizontal')\n expect(stepper.className).toContain('w-full')\n })\n\n it('respects an explicit vertical orientation', () => {\n const { container } = render(<Stepper orientation=\"vertical\" />)\n\n const stepper = container.querySelector('[data-slot=\"stepper\"]') as HTMLElement\n expect(stepper.getAttribute('aria-orientation')).toBe('vertical')\n expect(stepper.getAttribute('data-orientation')).toBe('vertical')\n })\n\n it('shows correct active, completed, and upcoming state across three steps', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('active')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('inactive')\n })\n\n it('advances the active step when a trigger is clicked (uncontrolled)', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n fireEvent.click(getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('completed')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n\n it('stays on the controlled value and calls onValueChange instead of updating internal state', () => {\n const onValueChange = vi.fn()\n const { getByTestId } = render(<ThreeStepStepper value={1} onValueChange={onValueChange} />)\n\n fireEvent.click(getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(onValueChange).toHaveBeenCalledWith(3)\n expect(getByTestId('item-1').getAttribute('data-state')).toBe('active')\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('inactive')\n })\n\n it('forces a step to completed via the completed prop regardless of its position', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={2} completed data-testid=\"forced\">\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"forced\"]')?.getAttribute('data-state')).toBe('completed')\n })\n\n it('marks the active step as loading via data-loading when the loading prop is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1} loading data-testid=\"loading-item\">\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"loading-item\"]')?.getAttribute('data-loading')).toBe('true')\n })\n\n it('does not mark an inactive step as loading even when the loading prop is set', () => {\n const { container } = render(\n <Stepper defaultValue={2}>\n <StepperItem step={1} loading data-testid=\"loading-item\">\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"loading-item\"]')?.hasAttribute('data-loading')).toBe(false)\n })\n})\n\ndescribe('useStepper', () => {\n it('throws when used outside a Stepper', () => {\n expect(() => renderHook(() => useStepper())).toThrow('useStepper must be used within a Stepper')\n })\n\n it('exposes the active step, orientation, and setActiveStep from context', () => {\n const wrapper = ({ children }: { children: ReactNode }) => <Stepper defaultValue={2}>{children}</Stepper>\n const { result } = renderHook(() => useStepper(), { wrapper })\n\n expect(result.current.activeStep).toBe(2)\n expect(result.current.orientation).toBe('horizontal')\n expect(typeof result.current.setActiveStep).toBe('function')\n })\n\n it('stepsCount stays 0 even with StepperItem children, since StepperItem has no displayName set', () => {\n const wrapper = ({ children }: { children: ReactNode }) => (\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n <StepperItem step={2}>\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n {children}\n </Stepper>\n )\n const { result } = renderHook(() => useStepper(), { wrapper })\n\n expect(result.current.stepsCount).toBe(0)\n })\n\n it('updates the active step across the tree when setActiveStep is called', () => {\n const captured: { current?: ReturnType<typeof useStepper> } = {}\n function Capture() {\n captured.current = useStepper()\n return null\n }\n\n const { getByTestId } = render(\n <ThreeStepStepper defaultValue={1}>\n <Capture />\n </ThreeStepStepper>\n )\n\n act(() => captured.current?.setActiveStep(3))\n\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n})\n\ndescribe('useStepItem', () => {\n it('throws when used outside a StepperItem', () => {\n expect(() => renderHook(() => useStepItem())).toThrow('useStepItem must be used within a StepperItem')\n })\n\n it('exposes step, state, isDisabled, and isLoading from context', () => {\n const wrapper = ({ children }: { children: ReactNode }) => (\n <Stepper defaultValue={1}>\n <StepperItem step={1} disabled>\n {children}\n </StepperItem>\n </Stepper>\n )\n const { result } = renderHook(() => useStepItem(), { wrapper })\n\n expect(result.current.step).toBe(1)\n expect(result.current.state).toBe('active')\n expect(result.current.isDisabled).toBe(true)\n expect(result.current.isLoading).toBe(false)\n })\n})\n\ndescribe('StepperItem', () => {\n it('renders with data-slot stepper-item and the group/step class', () => {\n const { container } = render(\n <Stepper>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const item = container.querySelector('[data-slot=\"stepper-item\"]') as HTMLElement\n expect(item.className).toContain('group/step')\n })\n})\n\ndescribe('StepperTrigger', () => {\n it('renders a tab button with the expected aria wiring for the active step', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const trigger = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n expect(trigger.tagName).toBe('BUTTON')\n expect(trigger.getAttribute('role')).toBe('tab')\n expect(trigger.getAttribute('aria-selected')).toBe('true')\n expect(trigger.getAttribute('aria-controls')).toBe('stepper-panel-2')\n expect(trigger.tabIndex).toBe(0)\n })\n\n it('gives inactive step triggers a tabIndex of -1', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const trigger = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n expect(trigger.tabIndex).toBe(-1)\n })\n\n it('sets the active step when clicked', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n fireEvent.click(getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement)\n\n expect(getByTestId('item-2').getAttribute('data-state')).toBe('active')\n })\n\n it('disables the button and blocks activation when the StepperItem is disabled', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger>One</StepperTrigger>\n </StepperItem>\n <StepperItem step={2} disabled data-testid=\"disabled-item\">\n <StepperTrigger>Two</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const trigger = container.querySelector(\n '[data-testid=\"disabled-item\"] [data-slot=\"stepper-trigger\"]'\n ) as HTMLButtonElement\n expect(trigger.disabled).toBe(true)\n })\n\n it('moves focus to the next trigger on ArrowRight and to the previous on ArrowLeft', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger1 = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger2 = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n trigger1.focus()\n fireEvent.keyDown(trigger1, { key: 'ArrowRight' })\n expect(document.activeElement).toBe(trigger2)\n\n fireEvent.keyDown(trigger2, { key: 'ArrowLeft' })\n expect(document.activeElement).toBe(trigger1)\n })\n\n it('moves focus to the first/last trigger on Home/End', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger1 = getByTestId('item-1').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger2 = getByTestId('item-2').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n const trigger3 = getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n\n trigger2.focus()\n fireEvent.keyDown(trigger2, { key: 'End' })\n expect(document.activeElement).toBe(trigger3)\n\n fireEvent.keyDown(trigger3, { key: 'Home' })\n expect(document.activeElement).toBe(trigger1)\n })\n\n it('activates the focused step on Enter and Space', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={1} />)\n\n const trigger3 = getByTestId('item-3').querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n fireEvent.keyDown(trigger3, { key: 'Enter' })\n\n expect(getByTestId('item-3').getAttribute('data-state')).toBe('active')\n })\n\n it('renders a span instead of a button when asChild is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperItem step={1}>\n <StepperTrigger asChild>Custom</StepperTrigger>\n </StepperItem>\n </Stepper>\n )\n\n const trigger = container.querySelector('[data-slot=\"stepper-trigger\"]') as HTMLElement\n expect(trigger.tagName).toBe('SPAN')\n expect(trigger.getAttribute('data-state')).toBe('active')\n expect(trigger.textContent).toBe('Custom')\n })\n})\n\ndescribe('StepperIndicator', () => {\n it('renders its children by default and reflects the step state', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const indicator = getByTestId('item-2').querySelector('[data-slot=\"stepper-indicator\"]') as HTMLElement\n expect(indicator.getAttribute('data-state')).toBe('active')\n expect(indicator.textContent).toBe('2')\n })\n\n it('swaps in a custom indicator node for the matching state', () => {\n const { container } = render(\n <Stepper defaultValue={1} indicators={{ active: <span data-testid=\"custom-active\">*</span> }}>\n <StepperItem step={1}>\n <StepperIndicator>1</StepperIndicator>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"custom-active\"]')).not.toBeNull()\n })\n\n it('prefers the loading indicator when the active step is loading', () => {\n const { container } = render(\n <Stepper defaultValue={1} indicators={{ loading: <span data-testid=\"custom-loading\">…</span> }}>\n <StepperItem step={1} loading>\n <StepperIndicator>1</StepperIndicator>\n </StepperItem>\n </Stepper>\n )\n\n expect(container.querySelector('[data-testid=\"custom-loading\"]')).not.toBeNull()\n })\n})\n\ndescribe('StepperSeparator', () => {\n it('renders with data-slot stepper-separator and mirrors the item state', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const separator = getByTestId('item-1').querySelector('[data-slot=\"stepper-separator\"]') as HTMLElement\n expect(separator.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperTitle', () => {\n it('renders its children with data-slot stepper-title', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const title = getByTestId('item-1').querySelector('[data-slot=\"stepper-title\"]') as HTMLElement\n expect(title.tagName).toBe('H3')\n expect(title.textContent).toBe('Step one')\n expect(title.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperDescription', () => {\n it('renders its children with data-slot stepper-description', () => {\n const { getByTestId } = render(<ThreeStepStepper defaultValue={2} />)\n\n const description = getByTestId('item-1').querySelector('[data-slot=\"stepper-description\"]') as HTMLElement\n expect(description.textContent).toBe('First')\n expect(description.getAttribute('data-state')).toBe('completed')\n })\n})\n\ndescribe('StepperNav', () => {\n it('renders with data-slot stepper-nav and mirrors orientation and active step', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} orientation=\"vertical\" />)\n\n const nav = container.querySelector('[data-slot=\"stepper-nav\"]') as HTMLElement\n expect(nav.tagName).toBe('NAV')\n expect(nav.getAttribute('data-orientation')).toBe('vertical')\n expect(nav.getAttribute('data-state')).toBe('2')\n })\n})\n\ndescribe('StepperPanel', () => {\n it('renders with data-slot stepper-panel and mirrors the active step', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} />)\n\n const panel = container.querySelector('[data-slot=\"stepper-panel\"]') as HTMLElement\n expect(panel.getAttribute('data-state')).toBe('2')\n })\n})\n\ndescribe('StepperContent', () => {\n it('renders only the content for the active step by default', () => {\n const { container } = render(<ThreeStepStepper defaultValue={2} />)\n\n const contents = container.querySelectorAll('[data-slot=\"stepper-content\"]')\n expect(contents.length).toBe(1)\n expect(contents[0]?.textContent).toBe('Second content')\n })\n\n it('keeps inactive content mounted but hidden when forceMount is set', () => {\n const { container } = render(\n <Stepper defaultValue={1}>\n <StepperContent value={1}>Active</StepperContent>\n <StepperContent value={2} forceMount>\n Inactive but mounted\n </StepperContent>\n </Stepper>\n )\n\n const hiddenContent = Array.from(container.querySelectorAll('[data-slot=\"stepper-content\"]')).find(\n (el) => el.textContent === 'Inactive but mounted'\n ) as HTMLElement\n\n expect(hiddenContent).not.toBeUndefined()\n expect(hiddenContent.hasAttribute('hidden')).toBe(true)\n expect(hiddenContent.className).toContain('hidden')\n })\n})\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {}
@@ -1,2 +0,0 @@
1
- import"../rolldown-runtime-Bdj-bS2b.js";import{o as e,t}from"../field-DzR-XrO7.js";import{t as n}from"../switch-DjdOGECT.js";import{a as r,n as i,r as a}from"../react.esm-dE9nuHcL.js";import{jsx as o,jsxs as s}from"react/jsx-runtime";describe(`Switch`,()=>{it(`renders as a switch with the default color and size and no wrapping label`,()=>{let{container:e}=a(o(n,{})),t=e.querySelector(`[data-slot="switch"]`);expect(t).not.toBeNull(),expect(t?.getAttribute(`role`)).toBe(`switch`),expect(t?.getAttribute(`data-color`)).toBe(`green`),expect(t?.getAttribute(`data-size`)).toBe(`md`),expect(t?.getAttribute(`id`)).toBeNull(),expect(e.querySelector(`[data-slot="switch-field"]`)).toBeNull()}),it(`toggles the checked state when clicked`,()=>{a(o(n,{}));let e=r.getByRole(`switch`);expect(e.getAttribute(`aria-checked`)).toBe(`false`),i.click(e),expect(e.getAttribute(`aria-checked`)).toBe(`true`),expect(e.getAttribute(`data-state`)).toBe(`checked`)}),it(`renders a wired label and generates a shared id when label is provided`,()=>{a(o(n,{label:`Enable notifications`}));let e=r.getByRole(`switch`),t=r.getByText(`Enable notifications`);expect(e.getAttribute(`id`)).toBeTruthy(),expect(t.getAttribute(`for`)).toBe(e.getAttribute(`id`))}),it(`applies custom color and size variants`,()=>{let{container:e}=a(o(n,{color:`blue`,size:`lg`})),t=e.querySelector(`[data-slot="switch"]`);expect(t?.getAttribute(`data-color`)).toBe(`blue`),expect(t?.getAttribute(`data-size`)).toBe(`lg`),expect(t?.className).toContain(`[--switch-checked:var(--blue)]`)}),it(`wires the field control id when rendered inside Field`,()=>{a(s(t,{children:[o(e,{children:`Terms`}),o(n,{})]}));let i=r.getByText(`Terms`),c=r.getByRole(`switch`);expect(i.getAttribute(`for`)).toBe(c.getAttribute(`id`))})});
2
- //# sourceMappingURL=switch.spec.js.map