@kuzenbo/core 0.0.4 → 0.0.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 (355) hide show
  1. package/README.md +2 -0
  2. package/dist/action-icon-UjYZjXrB.d.ts +59 -0
  3. package/dist/action-icon-UjYZjXrB.d.ts.map +1 -0
  4. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-4S7I72CH.d.ts} +35 -2
  5. package/dist/avatar-4S7I72CH.d.ts.map +1 -0
  6. package/dist/avatar-C3vF6E7s.js +65 -0
  7. package/dist/avatar-C3vF6E7s.js.map +1 -0
  8. package/dist/badge-DB40swlt.js +58 -0
  9. package/dist/badge-DB40swlt.js.map +1 -0
  10. package/dist/button-CPPkhcmB.d.ts +59 -0
  11. package/dist/button-CPPkhcmB.d.ts.map +1 -0
  12. package/dist/button-shared-variants-J4RVI3K7.js +19 -0
  13. package/dist/button-shared-variants-J4RVI3K7.js.map +1 -0
  14. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-D3dAMsO_.d.ts} +64 -2
  15. package/dist/dialog-D3dAMsO_.d.ts.map +1 -0
  16. package/dist/{dialog-trigger-BUF3elAP.js → dialog-Dzvma_bu.js} +36 -12
  17. package/dist/dialog-Dzvma_bu.js.map +1 -0
  18. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-BG03sLbC.d.ts} +259 -123
  19. package/dist/dropdown-menu-BG03sLbC.d.ts.map +1 -0
  20. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-DOVY76ue.js} +137 -101
  21. package/dist/dropdown-menu-DOVY76ue.js.map +1 -0
  22. package/dist/input-BeE717GK.d.ts +46 -0
  23. package/dist/input-BeE717GK.d.ts.map +1 -0
  24. package/dist/input-cICL6sH_.js +38 -0
  25. package/dist/input-cICL6sH_.js.map +1 -0
  26. package/dist/{input-group-textarea-B-rP98r5.js → input-group-7kPror1q.js} +62 -33
  27. package/dist/input-group-7kPror1q.js.map +1 -0
  28. package/dist/provider.d.ts +3 -3
  29. package/dist/provider.js +2 -2
  30. package/dist/{scroll-bar-C4qEUKlT.js → scroll-bar-BKRy5Me9.js} +1 -1
  31. package/dist/{scroll-bar-C4qEUKlT.js.map → scroll-bar-BKRy5Me9.js.map} +1 -1
  32. package/dist/separator-CgOz2m5i.d.ts +13 -0
  33. package/dist/separator-CgOz2m5i.d.ts.map +1 -0
  34. package/dist/{sheet-trigger-D7neoTF5.js → sheet-FVsgl5Wk.js} +32 -13
  35. package/dist/sheet-FVsgl5Wk.js.map +1 -0
  36. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  37. package/dist/size-context-CvLl3pMC.js.map +1 -0
  38. package/dist/{size-context-DXfCAlWF.d.ts → size-context-DWvVJytl.d.ts} +2 -2
  39. package/dist/size-context-DWvVJytl.d.ts.map +1 -0
  40. package/dist/size-provider-18EvJgDT.js.map +1 -1
  41. package/dist/{size-provider-Bd2C6gKd.d.ts → size-provider-PHAZhU6k.d.ts} +2 -2
  42. package/dist/{size-provider-Bd2C6gKd.d.ts.map → size-provider-PHAZhU6k.d.ts.map} +1 -1
  43. package/dist/{size-system-wzOLSuax.d.ts → size-system-BAI1CnwU.d.ts} +1 -1
  44. package/dist/size-system-BAI1CnwU.d.ts.map +1 -0
  45. package/dist/size-system-BTsMqZRQ.js +99 -0
  46. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  47. package/dist/size.d.ts +3 -3
  48. package/dist/size.js +2 -2
  49. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-G0ByTcvd.js} +19 -19
  50. package/dist/slider-root-presentation-G0ByTcvd.js.map +1 -0
  51. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-DNzHvGii.d.ts} +55 -55
  52. package/dist/slider-style-tokens-DNzHvGii.d.ts.map +1 -0
  53. package/dist/textarea-rmoEkvdu.d.ts +37 -0
  54. package/dist/textarea-rmoEkvdu.d.ts.map +1 -0
  55. package/dist/textarea-vNt8edEA.js +39 -0
  56. package/dist/textarea-vNt8edEA.js.map +1 -0
  57. package/dist/toggle-D8kPPZH9.d.ts +53 -0
  58. package/dist/toggle-D8kPPZH9.d.ts.map +1 -0
  59. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-BUo_HPnp.js} +38 -13
  60. package/dist/tooltip-BUo_HPnp.js.map +1 -0
  61. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DatN3AoZ.d.ts} +62 -14
  62. package/dist/tooltip-DatN3AoZ.d.ts.map +1 -0
  63. package/dist/ui/accordion.d.ts +5 -5
  64. package/dist/ui/accordion.d.ts.map +1 -1
  65. package/dist/ui/accordion.js +53 -52
  66. package/dist/ui/accordion.js.map +1 -1
  67. package/dist/ui/action-icon.d.ts +2 -0
  68. package/dist/ui/action-icon.js +74 -0
  69. package/dist/ui/action-icon.js.map +1 -0
  70. package/dist/ui/affix.d.ts +3 -2
  71. package/dist/ui/affix.d.ts.map +1 -1
  72. package/dist/ui/affix.js +8 -7
  73. package/dist/ui/affix.js.map +1 -1
  74. package/dist/ui/alert-dialog.d.ts +4 -2
  75. package/dist/ui/alert-dialog.d.ts.map +1 -1
  76. package/dist/ui/alert-dialog.js +10 -9
  77. package/dist/ui/alert-dialog.js.map +1 -1
  78. package/dist/ui/alert.d.ts +33 -33
  79. package/dist/ui/alert.d.ts.map +1 -1
  80. package/dist/ui/alert.js +86 -86
  81. package/dist/ui/alert.js.map +1 -1
  82. package/dist/ui/announcement.d.ts.map +1 -1
  83. package/dist/ui/announcement.js +5 -3
  84. package/dist/ui/announcement.js.map +1 -1
  85. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  86. package/dist/ui/aspect-ratio.js.map +1 -1
  87. package/dist/ui/autocomplete.d.ts +74 -74
  88. package/dist/ui/autocomplete.d.ts.map +1 -1
  89. package/dist/ui/autocomplete.js +55 -53
  90. package/dist/ui/autocomplete.js.map +1 -1
  91. package/dist/ui/avatar.d.ts +2 -39
  92. package/dist/ui/avatar.js +2 -24
  93. package/dist/ui/badge.d.ts +28 -28
  94. package/dist/ui/badge.d.ts.map +1 -1
  95. package/dist/ui/badge.js +2 -54
  96. package/dist/ui/breadcrumb.d.ts +65 -65
  97. package/dist/ui/breadcrumb.d.ts.map +1 -1
  98. package/dist/ui/breadcrumb.js +47 -45
  99. package/dist/ui/breadcrumb.js.map +1 -1
  100. package/dist/ui/button-group.d.ts +35 -35
  101. package/dist/ui/button-group.d.ts.map +1 -1
  102. package/dist/ui/button-group.js +29 -28
  103. package/dist/ui/button-group.js.map +1 -1
  104. package/dist/ui/button.d.ts +2 -78
  105. package/dist/ui/button.js +33 -55
  106. package/dist/ui/button.js.map +1 -1
  107. package/dist/ui/card.d.ts +1 -1
  108. package/dist/ui/card.d.ts.map +1 -1
  109. package/dist/ui/card.js +6 -6
  110. package/dist/ui/card.js.map +1 -1
  111. package/dist/ui/carousel.d.ts +3 -3
  112. package/dist/ui/carousel.d.ts.map +1 -1
  113. package/dist/ui/carousel.js +41 -22
  114. package/dist/ui/carousel.js.map +1 -1
  115. package/dist/ui/checkbox-group.d.ts.map +1 -1
  116. package/dist/ui/checkbox-group.js.map +1 -1
  117. package/dist/ui/checkbox.d.ts +21 -21
  118. package/dist/ui/checkbox.js +13 -13
  119. package/dist/ui/checkbox.js.map +1 -1
  120. package/dist/ui/code.d.ts.map +1 -1
  121. package/dist/ui/code.js +5 -5
  122. package/dist/ui/code.js.map +1 -1
  123. package/dist/ui/collapsible.js +1 -1
  124. package/dist/ui/collapsible.js.map +1 -1
  125. package/dist/ui/combobox.d.ts +107 -107
  126. package/dist/ui/combobox.d.ts.map +1 -1
  127. package/dist/ui/combobox.js +94 -93
  128. package/dist/ui/combobox.js.map +1 -1
  129. package/dist/ui/command.d.ts +57 -58
  130. package/dist/ui/command.d.ts.map +1 -1
  131. package/dist/ui/command.js +54 -64
  132. package/dist/ui/command.js.map +1 -1
  133. package/dist/ui/container.d.ts.map +1 -1
  134. package/dist/ui/container.js.map +1 -1
  135. package/dist/ui/context-menu.d.ts +132 -132
  136. package/dist/ui/context-menu.d.ts.map +1 -1
  137. package/dist/ui/context-menu.js +100 -98
  138. package/dist/ui/context-menu.js.map +1 -1
  139. package/dist/ui/copy-button.d.ts +1 -3
  140. package/dist/ui/copy-button.d.ts.map +1 -1
  141. package/dist/ui/copy-button.js +40 -20
  142. package/dist/ui/copy-button.js.map +1 -1
  143. package/dist/ui/dialog.d.ts +2 -66
  144. package/dist/ui/dialog.js +2 -24
  145. package/dist/ui/drawer.d.ts +93 -93
  146. package/dist/ui/drawer.d.ts.map +1 -1
  147. package/dist/ui/drawer.js +68 -66
  148. package/dist/ui/drawer.js.map +1 -1
  149. package/dist/ui/dropdown-menu.d.ts +3 -144
  150. package/dist/ui/dropdown-menu.js +2 -39
  151. package/dist/ui/dropzone.d.ts +55 -55
  152. package/dist/ui/dropzone.d.ts.map +1 -1
  153. package/dist/ui/dropzone.js +77 -72
  154. package/dist/ui/dropzone.js.map +1 -1
  155. package/dist/ui/emoji-picker.d.ts +81 -81
  156. package/dist/ui/emoji-picker.d.ts.map +1 -1
  157. package/dist/ui/emoji-picker.js +92 -87
  158. package/dist/ui/emoji-picker.js.map +1 -1
  159. package/dist/ui/empty.d.ts +62 -60
  160. package/dist/ui/empty.d.ts.map +1 -1
  161. package/dist/ui/empty.js +47 -44
  162. package/dist/ui/empty.js.map +1 -1
  163. package/dist/ui/field.d.ts +12 -12
  164. package/dist/ui/field.d.ts.map +1 -1
  165. package/dist/ui/field.js +9 -7
  166. package/dist/ui/field.js.map +1 -1
  167. package/dist/ui/fieldset.d.ts.map +1 -1
  168. package/dist/ui/fieldset.js.map +1 -1
  169. package/dist/ui/form.d.ts +8 -8
  170. package/dist/ui/form.d.ts.map +1 -1
  171. package/dist/ui/form.js.map +1 -1
  172. package/dist/ui/input-group.d.ts +35 -35
  173. package/dist/ui/input-group.d.ts.map +1 -1
  174. package/dist/ui/input-group.js +2 -28
  175. package/dist/ui/input-otp.d.ts +36 -36
  176. package/dist/ui/input-otp.d.ts.map +1 -1
  177. package/dist/ui/input-otp.js +29 -28
  178. package/dist/ui/input-otp.js.map +1 -1
  179. package/dist/ui/input.d.ts +2 -46
  180. package/dist/ui/input.js +2 -34
  181. package/dist/ui/item.d.ts +20 -20
  182. package/dist/ui/item.d.ts.map +1 -1
  183. package/dist/ui/item.js +22 -22
  184. package/dist/ui/item.js.map +1 -1
  185. package/dist/ui/kbd.d.ts +1 -1
  186. package/dist/ui/kbd.d.ts.map +1 -1
  187. package/dist/ui/kbd.js +8 -8
  188. package/dist/ui/kbd.js.map +1 -1
  189. package/dist/ui/label.d.ts.map +1 -1
  190. package/dist/ui/label.js.map +1 -1
  191. package/dist/ui/marquee.d.ts.map +1 -1
  192. package/dist/ui/marquee.js +1 -1
  193. package/dist/ui/marquee.js.map +1 -1
  194. package/dist/ui/menubar.d.ts +133 -134
  195. package/dist/ui/menubar.d.ts.map +1 -1
  196. package/dist/ui/menubar.js +82 -81
  197. package/dist/ui/menubar.js.map +1 -1
  198. package/dist/ui/meter.d.ts.map +1 -1
  199. package/dist/ui/meter.js.map +1 -1
  200. package/dist/ui/navigation-list.d.ts +227 -227
  201. package/dist/ui/navigation-list.d.ts.map +1 -1
  202. package/dist/ui/navigation-list.js +240 -235
  203. package/dist/ui/navigation-list.js.map +1 -1
  204. package/dist/ui/navigation-menu.d.ts +82 -82
  205. package/dist/ui/navigation-menu.d.ts.map +1 -1
  206. package/dist/ui/navigation-menu.js +70 -67
  207. package/dist/ui/navigation-menu.js.map +1 -1
  208. package/dist/ui/number-field.d.ts +34 -34
  209. package/dist/ui/number-field.d.ts.map +1 -1
  210. package/dist/ui/number-field.js +24 -23
  211. package/dist/ui/number-field.js.map +1 -1
  212. package/dist/ui/pagination.d.ts +43 -43
  213. package/dist/ui/pagination.d.ts.map +1 -1
  214. package/dist/ui/pagination.js +57 -47
  215. package/dist/ui/pagination.js.map +1 -1
  216. package/dist/ui/pill.d.ts +3 -4
  217. package/dist/ui/pill.d.ts.map +1 -1
  218. package/dist/ui/pill.js +37 -26
  219. package/dist/ui/pill.js.map +1 -1
  220. package/dist/ui/popover.d.ts +15 -13
  221. package/dist/ui/popover.d.ts.map +1 -1
  222. package/dist/ui/popover.js +17 -14
  223. package/dist/ui/popover.js.map +1 -1
  224. package/dist/ui/portal.d.ts.map +1 -1
  225. package/dist/ui/portal.js +52 -11
  226. package/dist/ui/portal.js.map +1 -1
  227. package/dist/ui/preview-card.js +5 -5
  228. package/dist/ui/preview-card.js.map +1 -1
  229. package/dist/ui/progress.js.map +1 -1
  230. package/dist/ui/qr-code.d.ts.map +1 -1
  231. package/dist/ui/qr-code.js +7 -7
  232. package/dist/ui/qr-code.js.map +1 -1
  233. package/dist/ui/radio-group.d.ts +23 -23
  234. package/dist/ui/radio-group.js +15 -15
  235. package/dist/ui/radio-group.js.map +1 -1
  236. package/dist/ui/range-slider.d.ts +1 -1
  237. package/dist/ui/range-slider.d.ts.map +1 -1
  238. package/dist/ui/range-slider.js +4 -7
  239. package/dist/ui/range-slider.js.map +1 -1
  240. package/dist/ui/rating.d.ts +35 -35
  241. package/dist/ui/rating.d.ts.map +1 -1
  242. package/dist/ui/rating.js +55 -46
  243. package/dist/ui/rating.js.map +1 -1
  244. package/dist/ui/resizable.d.ts.map +1 -1
  245. package/dist/ui/resizable.js +2 -2
  246. package/dist/ui/resizable.js.map +1 -1
  247. package/dist/ui/scroll-area.js +1 -1
  248. package/dist/ui/scroll-area.js.map +1 -1
  249. package/dist/ui/select.d.ts +87 -87
  250. package/dist/ui/select.d.ts.map +1 -1
  251. package/dist/ui/select.js +85 -84
  252. package/dist/ui/select.js.map +1 -1
  253. package/dist/ui/separator.d.ts +2 -13
  254. package/dist/ui/separator.js.map +1 -1
  255. package/dist/ui/sheet.d.ts.map +1 -1
  256. package/dist/ui/sheet.js +2 -24
  257. package/dist/ui/sidebar.d.ts +75 -76
  258. package/dist/ui/sidebar.d.ts.map +1 -1
  259. package/dist/ui/sidebar.js +88 -87
  260. package/dist/ui/sidebar.js.map +1 -1
  261. package/dist/ui/skeleton.d.ts.map +1 -1
  262. package/dist/ui/skeleton.js +1 -1
  263. package/dist/ui/skeleton.js.map +1 -1
  264. package/dist/ui/slider.d.ts +1 -1
  265. package/dist/ui/slider.d.ts.map +1 -1
  266. package/dist/ui/slider.js +3 -1
  267. package/dist/ui/slider.js.map +1 -1
  268. package/dist/ui/spacer.d.ts.map +1 -1
  269. package/dist/ui/spacer.js +2 -2
  270. package/dist/ui/spacer.js.map +1 -1
  271. package/dist/ui/spinner.d.ts +1 -1
  272. package/dist/ui/spinner.d.ts.map +1 -1
  273. package/dist/ui/spinner.js +2 -2
  274. package/dist/ui/spinner.js.map +1 -1
  275. package/dist/ui/switch.d.ts +12 -12
  276. package/dist/ui/switch.js +7 -7
  277. package/dist/ui/switch.js.map +1 -1
  278. package/dist/ui/table.d.ts +62 -62
  279. package/dist/ui/table.d.ts.map +1 -1
  280. package/dist/ui/table.js +53 -47
  281. package/dist/ui/table.js.map +1 -1
  282. package/dist/ui/tabs.d.ts +25 -25
  283. package/dist/ui/tabs.d.ts.map +1 -1
  284. package/dist/ui/tabs.js +75 -68
  285. package/dist/ui/tabs.js.map +1 -1
  286. package/dist/ui/textarea.d.ts +2 -37
  287. package/dist/ui/textarea.js +2 -35
  288. package/dist/ui/theme-icon.d.ts +30 -30
  289. package/dist/ui/theme-icon.d.ts.map +1 -1
  290. package/dist/ui/theme-icon.js +22 -22
  291. package/dist/ui/theme-icon.js.map +1 -1
  292. package/dist/ui/timeline.d.ts +6 -6
  293. package/dist/ui/timeline.d.ts.map +1 -1
  294. package/dist/ui/timeline.js +163 -163
  295. package/dist/ui/timeline.js.map +1 -1
  296. package/dist/ui/toggle-group.d.ts +33 -33
  297. package/dist/ui/toggle-group.d.ts.map +1 -1
  298. package/dist/ui/toggle-group.js +22 -16
  299. package/dist/ui/toggle-group.js.map +1 -1
  300. package/dist/ui/toggle.d.ts +2 -53
  301. package/dist/ui/toggle.js +15 -15
  302. package/dist/ui/toggle.js.map +1 -1
  303. package/dist/ui/toolbar.d.ts +56 -56
  304. package/dist/ui/toolbar.d.ts.map +1 -1
  305. package/dist/ui/toolbar.js +43 -40
  306. package/dist/ui/toolbar.js.map +1 -1
  307. package/dist/ui/tooltip.d.ts +3 -55
  308. package/dist/ui/tooltip.js +2 -28
  309. package/dist/ui/typography.d.ts +50 -36
  310. package/dist/ui/typography.d.ts.map +1 -1
  311. package/dist/ui/typography.js +28 -17
  312. package/dist/ui/typography.js.map +1 -1
  313. package/package.json +17 -15
  314. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  315. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  316. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  317. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  318. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  319. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  320. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  321. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  322. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  323. package/dist/size-context-BjRwqlSg.js.map +0 -1
  324. package/dist/size-context-DXfCAlWF.d.ts.map +0 -1
  325. package/dist/size-system-DTXmtQXw.js +0 -47
  326. package/dist/size-system-DTXmtQXw.js.map +0 -1
  327. package/dist/size-system-wzOLSuax.d.ts.map +0 -1
  328. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  329. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  330. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  331. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  332. package/dist/ui/avatar.d.ts.map +0 -1
  333. package/dist/ui/avatar.js.map +0 -1
  334. package/dist/ui/badge.js.map +0 -1
  335. package/dist/ui/button.d.ts.map +0 -1
  336. package/dist/ui/dialog.d.ts.map +0 -1
  337. package/dist/ui/dialog.js.map +0 -1
  338. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  339. package/dist/ui/dropdown-menu.js.map +0 -1
  340. package/dist/ui/input-group.js.map +0 -1
  341. package/dist/ui/input.d.ts.map +0 -1
  342. package/dist/ui/input.js.map +0 -1
  343. package/dist/ui/separator.d.ts.map +0 -1
  344. package/dist/ui/sheet.js.map +0 -1
  345. package/dist/ui/textarea.d.ts.map +0 -1
  346. package/dist/ui/textarea.js.map +0 -1
  347. package/dist/ui/toggle.d.ts.map +0 -1
  348. package/dist/ui/tooltip.d.ts.map +0 -1
  349. package/dist/ui/tooltip.js.map +0 -1
  350. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  351. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  352. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  353. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  354. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  355. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
package/dist/ui/button.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
 
3
- import { o as useGlobalUISize, r as filterUndefinedProps, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
4
- import { a as FIELD_TEXT_CLASS_BY_SIZE, i as FIELD_HEIGHT_CLASS_BY_SIZE, r as DEFAULT_NESTED_ICON_CLASS_BY_SIZE } from "../size-system-DTXmtQXw.js";
3
+ import { a as useComponentSize, r as filterUndefinedProps, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
4
+ import { a as resolveFieldHeightClassBySize, i as resolveDefaultNestedIconClassBySize, o as resolveFieldTextClassBySize } from "../size-system-BTsMqZRQ.js";
5
5
  import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
6
6
  import { t as ButtonGroupSizeContext } from "../button-group-size-context-DW7Gn-3k.js";
7
7
  import { Spinner } from "./spinner.js";
8
+ import { t as buttonSharedVariants } from "../button-shared-variants-J4RVI3K7.js";
8
9
  import { useContext } from "react";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  import { cn, tv } from "tailwind-variants";
@@ -12,59 +13,37 @@ import { Button as Button$1 } from "@base-ui/react/button";
12
13
 
13
14
  //#region src/ui/button/button.tsx
14
15
  const buttonVariants = tv({
15
- base: "group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none active:scale-[0.98] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-danger aria-invalid:ring-[3px] aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
16
- variants: {
17
- variant: {
18
- default: "bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80",
19
- outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted",
20
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
21
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
22
- danger: "bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40",
23
- link: "text-primary underline-offset-4 hover:underline"
24
- },
25
- size: {
26
- md: `${FIELD_HEIGHT_CLASS_BY_SIZE.md} gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,
27
- xs: [
28
- FIELD_HEIGHT_CLASS_BY_SIZE.xs,
29
- FIELD_TEXT_CLASS_BY_SIZE.xs,
30
- DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xs,
31
- "gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
32
- ],
33
- sm: [
34
- FIELD_HEIGHT_CLASS_BY_SIZE.sm,
35
- DEFAULT_NESTED_ICON_CLASS_BY_SIZE.sm,
36
- "gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
37
- ],
38
- lg: `${FIELD_HEIGHT_CLASS_BY_SIZE.lg} gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,
39
- xl: [
40
- FIELD_HEIGHT_CLASS_BY_SIZE.xl,
41
- FIELD_TEXT_CLASS_BY_SIZE.xl,
42
- DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xl,
43
- "gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5"
44
- ],
45
- icon: "size-9",
46
- "icon-xs": `size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg ${DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xs}`,
47
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg",
48
- "icon-lg": "size-10",
49
- "icon-xl": `size-11 ${DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xl}`
50
- }
51
- },
52
- defaultVariants: {
53
- variant: "default",
54
- size: "md"
55
- }
16
+ extend: buttonSharedVariants,
17
+ base: "group/button",
18
+ defaultVariants: { size: "md" },
19
+ variants: { size: {
20
+ lg: [resolveFieldHeightClassBySize("lg"), "gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3"],
21
+ md: [resolveFieldHeightClassBySize("md"), "gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"],
22
+ sm: [
23
+ resolveFieldHeightClassBySize("sm"),
24
+ resolveDefaultNestedIconClassBySize("sm"),
25
+ "gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
26
+ ],
27
+ xl: [
28
+ resolveFieldHeightClassBySize("xl"),
29
+ resolveFieldTextClassBySize("xl"),
30
+ resolveDefaultNestedIconClassBySize("xl"),
31
+ "gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5"
32
+ ],
33
+ xs: [
34
+ resolveFieldHeightClassBySize("xs"),
35
+ resolveFieldTextClassBySize("xs"),
36
+ resolveDefaultNestedIconClassBySize("xs"),
37
+ "gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
38
+ ]
39
+ } }
56
40
  });
57
41
  const BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE = {
58
- xs: "xs",
59
- sm: "sm",
60
- md: "md",
61
42
  lg: "lg",
43
+ md: "md",
44
+ sm: "sm",
62
45
  xl: "xl",
63
- icon: "md",
64
- "icon-xs": "xs",
65
- "icon-sm": "sm",
66
- "icon-lg": "lg",
67
- "icon-xl": "xl"
46
+ xs: "xs"
68
47
  };
69
48
  const isButtonSize = (value) => typeof value === "string" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;
70
49
  const ButtonContent = ({ children, isLoading, size }) => /* @__PURE__ */ jsxs("span", {
@@ -84,12 +63,11 @@ const Button = (incomingProps) => {
84
63
  ...filterUndefinedProps(incomingProps)
85
64
  };
86
65
  const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);
87
- const globalSize = useGlobalUISize();
88
- const resolvedSize = isButtonSize(size) ? size : buttonGroupSize ?? (isButtonSize(componentDefaultSize) ? componentDefaultSize : globalSize ?? "md");
66
+ const resolvedSize = useComponentSize(isButtonSize(size) ? size : void 0, buttonGroupSize, isButtonSize(componentDefaultSize) ? componentDefaultSize : void 0);
89
67
  return /* @__PURE__ */ jsx(Button$1, {
90
68
  className: mergeBaseUIClassName(cn(buttonVariants({
91
- variant,
92
- size: resolvedSize
69
+ size: resolvedSize,
70
+ variant
93
71
  })), className),
94
72
  focusableWhenDisabled: Boolean(isLoading),
95
73
  "data-loading": isLoading,
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { useContext } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ButtonGroupSizeContext } from \"../button-group/button-group-size-context\";\nimport {\n filterUndefinedProps,\n useGlobalUISize,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport {\n DEFAULT_NESTED_ICON_CLASS_BY_SIZE,\n FIELD_HEIGHT_CLASS_BY_SIZE,\n FIELD_TEXT_CLASS_BY_SIZE,\n} from \"../shared/size/size-system\";\nimport { Spinner } from \"../spinner/spinner\";\n\nconst buttonVariants = tv({\n base: \"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none active:scale-[0.98] motion-reduce:active:scale-100 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-danger aria-invalid:ring-[3px] aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n danger:\n \"bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n md: `${FIELD_HEIGHT_CLASS_BY_SIZE.md} gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,\n xs: [\n FIELD_HEIGHT_CLASS_BY_SIZE.xs,\n FIELD_TEXT_CLASS_BY_SIZE.xs,\n DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xs,\n \"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n sm: [\n FIELD_HEIGHT_CLASS_BY_SIZE.sm,\n DEFAULT_NESTED_ICON_CLASS_BY_SIZE.sm,\n \"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n lg: `${FIELD_HEIGHT_CLASS_BY_SIZE.lg} gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,\n xl: [\n FIELD_HEIGHT_CLASS_BY_SIZE.xl,\n FIELD_TEXT_CLASS_BY_SIZE.xl,\n DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xl,\n \"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5\",\n ],\n icon: \"size-9\",\n \"icon-xs\": `size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg ${DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xs}`,\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-10\",\n \"icon-xl\": `size-11 ${DEFAULT_NESTED_ICON_CLASS_BY_SIZE.xl}`,\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nexport type ButtonProps = ComponentProps<typeof ButtonPrimitive> &\n VariantProps<typeof buttonVariants> & {\n isLoading?: boolean;\n };\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE: Record<ButtonSize, UISize> = {\n xs: \"xs\",\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n icon: \"md\",\n \"icon-xs\": \"xs\",\n \"icon-sm\": \"sm\",\n \"icon-lg\": \"lg\",\n \"icon-xl\": \"xl\",\n};\n\nconst isButtonSize = (value: unknown): value is ButtonSize =>\n typeof value === \"string\" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;\n\nconst ButtonContent = ({\n children,\n isLoading,\n size,\n}: {\n children: ReactNode;\n isLoading?: boolean;\n size: ButtonSize;\n}) => (\n <span className=\"relative inline-flex items-center justify-center\">\n <span\n className={cn(\n \"inline-flex items-center justify-center gap-2 transition-all duration-200\",\n isLoading\n ? \"pointer-events-none -translate-y-full opacity-0\"\n : \"translate-y-0 opacity-100\"\n )}\n >\n {children}\n </span>\n <span\n className={cn(\n \"absolute inset-0 inline-flex items-center justify-center transition-all duration-200\",\n isLoading\n ? \"translate-y-0 opacity-100\"\n : \"pointer-events-none -translate-y-full opacity-0\"\n )}\n >\n <Spinner size={BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE[size]} />\n </span>\n </span>\n);\n\nconst Button = (incomingProps: ButtonProps) => {\n const componentDefaults = useKuzenboComponentDefaults<ButtonProps>(\"Button\");\n const { size: componentDefaultSize, ...componentDefaultsWithoutSize } =\n componentDefaults;\n const {\n className,\n variant = \"default\",\n size,\n isLoading,\n children,\n disabled,\n ...props\n } = {\n ...filterUndefinedProps(componentDefaultsWithoutSize),\n ...filterUndefinedProps(incomingProps),\n } as ButtonProps;\n\n const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);\n const globalSize = useGlobalUISize();\n\n const resolvedSize: ButtonSize = isButtonSize(size)\n ? size\n : (buttonGroupSize ??\n (isButtonSize(componentDefaultSize)\n ? componentDefaultSize\n : (globalSize ?? \"md\")));\n\n return (\n <ButtonPrimitive\n className={mergeBaseUIClassName<ButtonPrimitive.State>(\n cn(buttonVariants({ variant, size: resolvedSize })),\n className\n )}\n focusableWhenDisabled={Boolean(isLoading)}\n data-loading={isLoading}\n data-size={resolvedSize}\n data-slot=\"button\"\n disabled={disabled || isLoading}\n {...props}\n >\n <ButtonContent isLoading={isLoading} size={resolvedSize}>\n {children}\n </ButtonContent>\n </ButtonPrimitive>\n );\n};\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,iBAAiB,GAAG;CACxB,MAAM;CACN,UAAU;EACR,SAAS;GACP,SACE;GACF,SACE;GACF,WACE;GACF,OACE;GACF,QACE;GACF,MAAM;GACP;EACD,MAAM;GACJ,IAAI,GAAG,2BAA2B,GAAG;GACrC,IAAI;IACF,2BAA2B;IAC3B,yBAAyB;IACzB,kCAAkC;IAClC;IACD;GACD,IAAI;IACF,2BAA2B;IAC3B,kCAAkC;IAClC;IACD;GACD,IAAI,GAAG,2BAA2B,GAAG;GACrC,IAAI;IACF,2BAA2B;IAC3B,yBAAyB;IACzB,kCAAkC;IAClC;IACD;GACD,MAAM;GACN,WAAW,sFAAsF,kCAAkC;GACnI,WACE;GACF,WAAW;GACX,WAAW,WAAW,kCAAkC;GACzD;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CAAC;AASF,MAAM,qCAAiE;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACN,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACZ;AAED,MAAM,gBAAgB,UACpB,OAAO,UAAU,YAAY,SAAS;AAExC,MAAM,iBAAiB,EACrB,UACA,WACA,WAMA,qBAAC;CAAK,WAAU;YACd,oBAAC;EACC,WAAW,GACT,6EACA,YACI,oDACA,4BACL;EAEA;GACI,EACP,oBAAC;EACC,WAAW,GACT,wFACA,YACI,8BACA,kDACL;YAED,oBAAC,WAAQ,MAAM,mCAAmC,QAAS;GACtD;EACF;AAGT,MAAM,UAAU,kBAA+B;CAE7C,MAAM,EAAE,MAAM,sBAAsB,GAAG,iCADb,4BAAyC,SAAS;CAG5E,MAAM,EACJ,WACA,UAAU,WACV,MACA,WACA,UACA,UACA,GAAG,UACD;EACF,GAAG,qBAAqB,6BAA6B;EACrD,GAAG,qBAAqB,cAAc;EACvC;CAED,MAAM,EAAE,MAAM,oBAAoB,WAAW,uBAAuB;CACpE,MAAM,aAAa,iBAAiB;CAEpC,MAAM,eAA2B,aAAa,KAAK,GAC/C,OACC,oBACA,aAAa,qBAAqB,GAC/B,uBACC,cAAc;AAEvB,QACE,oBAACA;EACC,WAAW,qBACT,GAAG,eAAe;GAAE;GAAS,MAAM;GAAc,CAAC,CAAC,EACnD,UACD;EACD,uBAAuB,QAAQ,UAAU;EACzC,gBAAc;EACd,aAAW;EACX,aAAU;EACV,UAAU,YAAY;EACtB,GAAI;YAEJ,oBAAC;GAAyB;GAAW,MAAM;GACxC;IACa;GACA"}
1
+ {"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { useContext } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ButtonGroupSizeContext } from \"../button-group/button-group-size-context\";\nimport {\n useComponentSize,\n filterUndefinedProps,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport {\n resolveDefaultNestedIconClassBySize,\n resolveFieldHeightClassBySize,\n resolveFieldTextClassBySize,\n} from \"../shared/size/size-system\";\nimport { Spinner } from \"../spinner/spinner\";\nimport { buttonSharedVariants } from \"./button-shared-variants\";\n\nconst buttonVariants = tv({\n extend: buttonSharedVariants,\n base: \"group/button\",\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n resolveFieldHeightClassBySize(\"lg\"),\n \"gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n ],\n md: [\n resolveFieldHeightClassBySize(\"md\"),\n \"gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n sm: [\n resolveFieldHeightClassBySize(\"sm\"),\n resolveDefaultNestedIconClassBySize(\"sm\"),\n \"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n xl: [\n resolveFieldHeightClassBySize(\"xl\"),\n resolveFieldTextClassBySize(\"xl\"),\n resolveDefaultNestedIconClassBySize(\"xl\"),\n \"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5\",\n ],\n xs: [\n resolveFieldHeightClassBySize(\"xs\"),\n resolveFieldTextClassBySize(\"xs\"),\n resolveDefaultNestedIconClassBySize(\"xs\"),\n \"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n },\n },\n});\n\nexport type ButtonProps = ComponentProps<typeof ButtonPrimitive> &\n VariantProps<typeof buttonVariants> & {\n isLoading?: boolean;\n };\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE: Record<ButtonSize, UISize> = {\n lg: \"lg\",\n md: \"md\",\n sm: \"sm\",\n xl: \"xl\",\n xs: \"xs\",\n};\n\nconst isButtonSize = (value: unknown): value is ButtonSize =>\n typeof value === \"string\" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;\n\nconst ButtonContent = ({\n children,\n isLoading,\n size,\n}: {\n children: ReactNode;\n isLoading?: boolean;\n size: ButtonSize;\n}) => (\n <span className=\"relative inline-flex items-center justify-center\">\n <span\n className={cn(\n \"inline-flex items-center justify-center gap-2 transition-all duration-200\",\n isLoading\n ? \"pointer-events-none -translate-y-full opacity-0\"\n : \"translate-y-0 opacity-100\"\n )}\n >\n {children}\n </span>\n <span\n className={cn(\n \"absolute inset-0 inline-flex items-center justify-center transition-all duration-200\",\n isLoading\n ? \"translate-y-0 opacity-100\"\n : \"pointer-events-none -translate-y-full opacity-0\"\n )}\n >\n <Spinner size={BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE[size]} />\n </span>\n </span>\n);\n\nconst Button = (incomingProps: ButtonProps) => {\n const componentDefaults = useKuzenboComponentDefaults<ButtonProps>(\"Button\");\n const { size: componentDefaultSize, ...componentDefaultsWithoutSize } =\n componentDefaults;\n const {\n className,\n variant = \"default\",\n size,\n isLoading,\n children,\n disabled,\n ...props\n } = {\n ...filterUndefinedProps(componentDefaultsWithoutSize),\n ...filterUndefinedProps(incomingProps),\n };\n\n const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);\n const resolvedSize = useComponentSize(\n isButtonSize(size) ? size : undefined,\n buttonGroupSize,\n isButtonSize(componentDefaultSize) ? componentDefaultSize : undefined\n );\n\n return (\n <ButtonPrimitive\n className={mergeBaseUIClassName<ButtonPrimitive.State>(\n cn(buttonVariants({ size: resolvedSize, variant })),\n className\n )}\n focusableWhenDisabled={Boolean(isLoading)}\n data-loading={isLoading}\n data-size={resolvedSize}\n data-slot=\"button\"\n disabled={disabled || isLoading}\n {...props}\n >\n <ButtonContent isLoading={isLoading} size={resolvedSize}>\n {children}\n </ButtonContent>\n </ButtonPrimitive>\n );\n};\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;;AAwBA,MAAM,iBAAiB,GAAG;CACxB,QAAQ;CACR,MAAM;CACN,iBAAiB,EACf,MAAM,MACP;CACD,UAAU,EACR,MAAM;EACJ,IAAI,CACF,8BAA8B,KAAK,EACnC,iFACD;EACD,IAAI,CACF,8BAA8B,KAAK,EACnC,mFACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,oCAAoC,KAAK;GACzC;GACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,4BAA4B,KAAK;GACjC,oCAAoC,KAAK;GACzC;GACD;EACD,IAAI;GACF,8BAA8B,KAAK;GACnC,4BAA4B,KAAK;GACjC,oCAAoC,KAAK;GACzC;GACD;EACF,EACF;CACF,CAAC;AASF,MAAM,qCAAiE;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,MAAM,gBAAgB,UACpB,OAAO,UAAU,YAAY,SAAS;AAExC,MAAM,iBAAiB,EACrB,UACA,WACA,WAMA,qBAAC,QAAD;CAAM,WAAU;WAAhB,CACE,oBAAC,QAAD;EACE,WAAW,GACT,6EACA,YACI,oDACA,4BACL;EAEA;EACI,GACP,oBAAC,QAAD;EACE,WAAW,GACT,wFACA,YACI,8BACA,kDACL;YAED,oBAAC,SAAD,EAAS,MAAM,mCAAmC,OAAS;EACtD,EACF;;AAGT,MAAM,UAAU,kBAA+B;CAE7C,MAAM,EAAE,MAAM,sBAAsB,GAAG,iCADb,4BAAyC,SAAS;CAG5E,MAAM,EACJ,WACA,UAAU,WACV,MACA,WACA,UACA,UACA,GAAG,UACD;EACF,GAAG,qBAAqB,6BAA6B;EACrD,GAAG,qBAAqB,cAAc;EACvC;CAED,MAAM,EAAE,MAAM,oBAAoB,WAAW,uBAAuB;CACpE,MAAM,eAAe,iBACnB,aAAa,KAAK,GAAG,OAAO,QAC5B,iBACA,aAAa,qBAAqB,GAAG,uBAAuB,OAC7D;AAED,QACE,oBAACA,UAAD;EACE,WAAW,qBACT,GAAG,eAAe;GAAE,MAAM;GAAc;GAAS,CAAC,CAAC,EACnD,UACD;EACD,uBAAuB,QAAQ,UAAU;EACzC,gBAAc;EACd,aAAW;EACX,aAAU;EACV,UAAU,YAAY;EACtB,GAAI;YAEJ,oBAAC,eAAD;GAA0B;GAAW,MAAM;GACxC;GACa;EACA"}
package/dist/ui/card.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
2
  import { ComponentProps } from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/card.tsx"],"mappings":";;;;;KAGY,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,gBAAA,GAAmB,cAAA;AAAA,cAEzB,WAAA;EAAe,SAAA;EAAA,GAAA;AAAA,GAAyB,gBAAA,KAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFlD,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,cAAA,GAAiB,cAAA;AAAA,cAEvB,SAAA;EAAa,SAAA;EAAA,GAAA;AAAA,GAAyB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCW9C,SAAA,GAAY,cAAA;EAA0B,IAAA,GAAO,MAAA;AAAA;AAAA,cAEnD,IAAA;EAAA,gBAAuB,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"card.d.ts","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/card.tsx"],"mappings":";;;;;KAEY,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,gBAAA,GAAmB,cAAA;AAAA,cAEzB,WAAA;EAAe,SAAA;EAAA,GAAA;AAAA,GAAyB,gBAAA,KAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFlD,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,cAAA,GAAiB,cAAA;AAAA,cAEvB,SAAA;EAAa,SAAA;EAAA,GAAA;AAAA,GAAyB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCU9C,SAAA,GAAY,cAAA;EAA0B,IAAA,GAAO,MAAA;AAAA;AAAA,cAEnD,IAAA;EAAA,gBAAuB,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
package/dist/ui/card.js CHANGED
@@ -14,7 +14,7 @@ const CardAction = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
14
14
  //#endregion
15
15
  //#region src/ui/card/card-content.tsx
16
16
  const CardContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
17
- className: cn("group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7", className),
17
+ className: cn("group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5", className),
18
18
  "data-slot": "card-content",
19
19
  ...props
20
20
  });
@@ -22,7 +22,7 @@ const CardContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
22
22
  //#endregion
23
23
  //#region src/ui/card/card-description.tsx
24
24
  const CardDescription = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
25
- className: cn("text-muted-foreground group-data-[size=xs]/card:text-xs group-data-[size=sm]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=lg]/card:text-sm group-data-[size=xl]/card:text-base", className),
25
+ className: cn("text-muted-foreground group-data-[size=lg]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-base group-data-[size=xs]/card:text-xs", className),
26
26
  "data-slot": "card-description",
27
27
  ...props
28
28
  });
@@ -30,7 +30,7 @@ const CardDescription = ({ className, ...props }) => /* @__PURE__ */ jsx("div",
30
30
  //#endregion
31
31
  //#region src/ui/card/card-footer.tsx
32
32
  const CardFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
33
- className: cn("flex items-center rounded-b-xl group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:pb-2.5 group-data-[size=sm]/card:pb-3 group-data-[size=md]/card:pb-5 group-data-[size=lg]/card:pb-6 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:[.border-t]:pt-2.5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=xl]/card:[.border-t]:pt-7", className),
33
+ className: cn("flex items-center rounded-b-xl group-data-[size=lg]/card:px-6 group-data-[size=lg]/card:pb-6 group-data-[size=md]/card:px-5 group-data-[size=md]/card:pb-5 group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:pb-3 group-data-[size=xl]/card:px-7 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:px-2.5 group-data-[size=xs]/card:pb-2.5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=xl]/card:[.border-t]:pt-7 group-data-[size=xs]/card:[.border-t]:pt-2.5", className),
34
34
  "data-slot": "card-footer",
35
35
  ...props
36
36
  });
@@ -38,7 +38,7 @@ const CardFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
38
38
  //#endregion
39
39
  //#region src/ui/card/card-header.tsx
40
40
  const CardHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
41
- className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=xs]/card:[.border-b]:pb-2.5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=xl]/card:[.border-b]:pb-7", className),
41
+ className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=xl]/card:[.border-b]:pb-7 group-data-[size=xs]/card:[.border-b]:pb-2.5", className),
42
42
  "data-slot": "card-header",
43
43
  ...props
44
44
  });
@@ -46,7 +46,7 @@ const CardHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
46
46
  //#endregion
47
47
  //#region src/ui/card/card-title.tsx
48
48
  const CardTitle = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
49
- className: cn("leading-snug font-medium group-data-[size=xs]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=md]/card:text-base group-data-[size=lg]/card:text-base group-data-[size=xl]/card:text-lg", className),
49
+ className: cn("leading-snug font-medium group-data-[size=lg]/card:text-base group-data-[size=md]/card:text-base group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-lg group-data-[size=xs]/card:text-sm", className),
50
50
  "data-slot": "card-title",
51
51
  ...props
52
52
  });
@@ -61,7 +61,7 @@ const Card = (incomingProps) => {
61
61
  const { className, size: providedSize, ...props } = useCardDefaultProps(incomingProps);
62
62
  const size = useComponentSize(providedSize);
63
63
  return /* @__PURE__ */ jsx("div", {
64
- className: cn("group/card flex flex-col overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", className),
64
+ className: cn("group/card border-border bg-card text-card-foreground flex flex-col overflow-hidden rounded-xl border shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", className),
65
65
  "data-size": size,
66
66
  "data-slot": "card",
67
67
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/use-card-default-props.ts","../../src/ui/card/card.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardActionProps = ComponentProps<\"div\">;\n\nconst CardAction = ({ className, ...props }: CardActionProps) => (\n <div\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n data-slot=\"card-action\"\n {...props}\n />\n);\n\nexport { CardAction };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardContentProps = ComponentProps<\"div\">;\n\nconst CardContent = ({ className, ...props }: CardContentProps) => (\n <div\n className={cn(\n \"group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7\",\n className\n )}\n data-slot=\"card-content\"\n {...props}\n />\n);\n\nexport { CardContent };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardDescriptionProps = ComponentProps<\"div\">;\n\nconst CardDescription = ({ className, ...props }: CardDescriptionProps) => (\n <div\n className={cn(\n \"text-muted-foreground group-data-[size=xs]/card:text-xs group-data-[size=sm]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=lg]/card:text-sm group-data-[size=xl]/card:text-base\",\n className\n )}\n data-slot=\"card-description\"\n {...props}\n />\n);\n\nexport { CardDescription };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardFooterProps = ComponentProps<\"div\">;\n\nconst CardFooter = ({ className, ...props }: CardFooterProps) => (\n <div\n className={cn(\n \"flex items-center rounded-b-xl group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:pb-2.5 group-data-[size=sm]/card:pb-3 group-data-[size=md]/card:pb-5 group-data-[size=lg]/card:pb-6 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:[.border-t]:pt-2.5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=xl]/card:[.border-t]:pt-7\",\n className\n )}\n data-slot=\"card-footer\"\n {...props}\n />\n);\n\nexport { CardFooter };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardHeaderProps = ComponentProps<\"div\">;\n\nconst CardHeader = ({ className, ...props }: CardHeaderProps) => (\n <div\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=xs]/card:px-2.5 group-data-[size=sm]/card:px-3 group-data-[size=md]/card:px-5 group-data-[size=lg]/card:px-6 group-data-[size=xl]/card:px-7 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=xs]/card:[.border-b]:pb-2.5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=xl]/card:[.border-b]:pb-7\",\n className\n )}\n data-slot=\"card-header\"\n {...props}\n />\n);\n\nexport { CardHeader };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\nexport type CardTitleProps = ComponentProps<\"div\">;\n\nconst CardTitle = ({ className, ...props }: CardTitleProps) => (\n <div\n className={cn(\n \"leading-snug font-medium group-data-[size=xs]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=md]/card:text-base group-data-[size=lg]/card:text-base group-data-[size=xl]/card:text-lg\",\n className\n )}\n data-slot=\"card-title\"\n {...props}\n />\n);\n\nexport { CardTitle };\n","import type { CardProps } from \"./card\";\n\nimport { useComponentDefaultProps } from \"../shared/size/size-provider\";\n\nexport const useCardDefaultProps = (incomingProps: CardProps): CardProps =>\n useComponentDefaultProps<CardProps>(\"Card\", {}, incomingProps);\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport type { UISize } from \"../shared/size/size-system\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport { CardAction } from \"./card-action\";\nimport { CardContent } from \"./card-content\";\nimport { CardDescription } from \"./card-description\";\nimport { CardFooter } from \"./card-footer\";\nimport { CardHeader } from \"./card-header\";\nimport { CardTitle } from \"./card-title\";\nimport { useCardDefaultProps } from \"./use-card-default-props\";\nexport type CardProps = ComponentProps<\"div\"> & { size?: UISize };\n\nconst Card = (incomingProps: CardProps) => {\n const {\n className,\n size: providedSize,\n ...props\n } = useCardDefaultProps(incomingProps);\n const size = useComponentSize(providedSize);\n\n return (\n <div\n className={cn(\n \"group/card flex flex-col overflow-hidden rounded-xl border border-border bg-card text-card-foreground shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n data-size={size}\n data-slot=\"card\"\n {...props}\n />\n );\n};\n\nCard.Action = CardAction;\nCard.Content = CardContent;\nCard.Description = CardDescription;\nCard.Footer = CardFooter;\nCard.Header = CardHeader;\nCard.Title = CardTitle;\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n\nexport type { CardActionProps } from \"./card-action\";\nexport type { CardContentProps } from \"./card-content\";\nexport type { CardDescriptionProps } from \"./card-description\";\nexport type { CardFooterProps } from \"./card-footer\";\nexport type { CardHeaderProps } from \"./card-header\";\nexport type { CardTitleProps } from \"./card-title\";\n"],"mappings":";;;;;;;AAKA,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC;CACC,WAAW,GACT,kEACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,eAAe,EAAE,WAAW,GAAG,YACnC,oBAAC;CACC,WAAW,GACT,gKACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,mBAAmB,EAAE,WAAW,GAAG,YACvC,oBAAC;CACC,WAAW,GACT,qMACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC;CACC,WAAW,GACT,qjBACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC;CACC,WAAW,GACT,4jBACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,aAAa,EAAE,WAAW,GAAG,YACjC,oBAAC;CACC,WAAW,GACT,0MACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACTJ,MAAa,uBAAuB,kBAClC,yBAAoC,QAAQ,EAAE,EAAE,cAAc;;;;ACahE,MAAM,QAAQ,kBAA6B;CACzC,MAAM,EACJ,WACA,MAAM,cACN,GAAG,UACD,oBAAoB,cAAc;CACtC,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAAC;EACC,WAAW,GACT,ujBACA,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;GACJ;;AAIN,KAAK,SAAS;AACd,KAAK,UAAU;AACf,KAAK,cAAc;AACnB,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,QAAQ"}
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/use-card-default-props.ts","../../src/ui/card/card.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardActionProps = ComponentProps<\"div\">;\n\nconst CardAction = ({ className, ...props }: CardActionProps) => (\n <div\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n data-slot=\"card-action\"\n {...props}\n />\n);\n\nexport { CardAction };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardContentProps = ComponentProps<\"div\">;\n\nconst CardContent = ({ className, ...props }: CardContentProps) => (\n <div\n className={cn(\n \"group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5\",\n className\n )}\n data-slot=\"card-content\"\n {...props}\n />\n);\n\nexport { CardContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardDescriptionProps = ComponentProps<\"div\">;\n\nconst CardDescription = ({ className, ...props }: CardDescriptionProps) => (\n <div\n className={cn(\n \"text-muted-foreground group-data-[size=lg]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-base group-data-[size=xs]/card:text-xs\",\n className\n )}\n data-slot=\"card-description\"\n {...props}\n />\n);\n\nexport { CardDescription };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardFooterProps = ComponentProps<\"div\">;\n\nconst CardFooter = ({ className, ...props }: CardFooterProps) => (\n <div\n className={cn(\n \"flex items-center rounded-b-xl group-data-[size=lg]/card:px-6 group-data-[size=lg]/card:pb-6 group-data-[size=md]/card:px-5 group-data-[size=md]/card:pb-5 group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:pb-3 group-data-[size=xl]/card:px-7 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:px-2.5 group-data-[size=xs]/card:pb-2.5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=xl]/card:[.border-t]:pt-7 group-data-[size=xs]/card:[.border-t]:pt-2.5\",\n className\n )}\n data-slot=\"card-footer\"\n {...props}\n />\n);\n\nexport { CardFooter };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardHeaderProps = ComponentProps<\"div\">;\n\nconst CardHeader = ({ className, ...props }: CardHeaderProps) => (\n <div\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=xl]/card:[.border-b]:pb-7 group-data-[size=xs]/card:[.border-b]:pb-2.5\",\n className\n )}\n data-slot=\"card-header\"\n {...props}\n />\n);\n\nexport { CardHeader };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardTitleProps = ComponentProps<\"div\">;\n\nconst CardTitle = ({ className, ...props }: CardTitleProps) => (\n <div\n className={cn(\n \"leading-snug font-medium group-data-[size=lg]/card:text-base group-data-[size=md]/card:text-base group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-lg group-data-[size=xs]/card:text-sm\",\n className\n )}\n data-slot=\"card-title\"\n {...props}\n />\n);\n\nexport { CardTitle };\n","import { useComponentDefaultProps } from \"../shared/size/size-provider\";\nimport type { CardProps } from \"./card\";\n\nexport const useCardDefaultProps = (incomingProps: CardProps): CardProps =>\n useComponentDefaultProps<CardProps>(\"Card\", {}, incomingProps);\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport { CardAction } from \"./card-action\";\nimport { CardContent } from \"./card-content\";\nimport { CardDescription } from \"./card-description\";\nimport { CardFooter } from \"./card-footer\";\nimport { CardHeader } from \"./card-header\";\nimport { CardTitle } from \"./card-title\";\nimport { useCardDefaultProps } from \"./use-card-default-props\";\nexport type CardProps = ComponentProps<\"div\"> & { size?: UISize };\n\nconst Card = (incomingProps: CardProps) => {\n const {\n className,\n size: providedSize,\n ...props\n } = useCardDefaultProps(incomingProps);\n const size = useComponentSize(providedSize);\n\n return (\n <div\n className={cn(\n \"group/card border-border bg-card text-card-foreground flex flex-col overflow-hidden rounded-xl border shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n data-size={size}\n data-slot=\"card\"\n {...props}\n />\n );\n};\n\nCard.Action = CardAction;\nCard.Content = CardContent;\nCard.Description = CardDescription;\nCard.Footer = CardFooter;\nCard.Header = CardHeader;\nCard.Title = CardTitle;\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n\nexport type { CardActionProps } from \"./card-action\";\nexport type { CardContentProps } from \"./card-content\";\nexport type { CardDescriptionProps } from \"./card-description\";\nexport type { CardFooterProps } from \"./card-footer\";\nexport type { CardHeaderProps } from \"./card-header\";\nexport type { CardTitleProps } from \"./card-title\";\n"],"mappings":";;;;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,kEACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,eAAe,EAAE,WAAW,GAAG,YACnC,oBAAC,OAAD;CACE,WAAW,GACT,gKACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,mBAAmB,EAAE,WAAW,GAAG,YACvC,oBAAC,OAAD;CACE,WAAW,GACT,qMACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,qjBACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,4jBACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,aAAa,EAAE,WAAW,GAAG,YACjC,oBAAC,OAAD;CACE,WAAW,GACT,0MACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACTJ,MAAa,uBAAuB,kBAClC,yBAAoC,QAAQ,EAAE,EAAE,cAAc;;;;ACYhE,MAAM,QAAQ,kBAA6B;CACzC,MAAM,EACJ,WACA,MAAM,cACN,GAAG,UACD,oBAAoB,cAAc;CACtC,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAAC,OAAD;EACE,WAAW,GACT,ujBACA,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;EACJ;;AAIN,KAAK,SAAS;AACd,KAAK,UAAU;AACf,KAAK,cAAc;AACnB,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,QAAQ"}
@@ -1,4 +1,4 @@
1
- import { Button } from "./button.js";
1
+ import { t as ActionIcon } from "../action-icon-UjYZjXrB.js";
2
2
  import { ComponentProps } from "react";
3
3
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
@@ -18,7 +18,7 @@ declare const CarouselItem: ({
18
18
  }: CarouselItemProps) => react_jsx_runtime0.JSX.Element;
19
19
  //#endregion
20
20
  //#region src/ui/carousel/carousel-next.d.ts
21
- type CarouselNextProps = ComponentProps<typeof Button>;
21
+ type CarouselNextProps = ComponentProps<typeof ActionIcon>;
22
22
  declare const CarouselNext: ({
23
23
  className,
24
24
  variant,
@@ -27,7 +27,7 @@ declare const CarouselNext: ({
27
27
  }: CarouselNextProps) => react_jsx_runtime0.JSX.Element;
28
28
  //#endregion
29
29
  //#region src/ui/carousel/carousel-previous.d.ts
30
- type CarouselPreviousProps = ComponentProps<typeof Button>;
30
+ type CarouselPreviousProps = ComponentProps<typeof ActionIcon>;
31
31
  declare const CarouselPrevious: ({
32
32
  className,
33
33
  variant,
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;KAKY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,MAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,MAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA;;;cCPX,QAAA;EAAA;;;;;;;;KAQH,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;KAIY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,UAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,UAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA;;;cCfX,QAAA;EAAA;;;;;;;;KAQH,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
- import { Button } from "./button.js";
4
- import { createContext, useCallback, useContext, useEffect, useState } from "react";
3
+ import { ActionIcon } from "./action-icon.js";
4
+ import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { cn } from "tailwind-variants";
7
7
  import { ArrowLeft01Icon, ArrowRight01Icon } from "@hugeicons/core-free-icons";
@@ -46,10 +46,10 @@ const CarouselItem = ({ className, ...props }) => {
46
46
 
47
47
  //#endregion
48
48
  //#region src/ui/carousel/carousel-next.tsx
49
- const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
49
+ const CarouselNext = ({ className, variant = "outline", size = "sm", ...props }) => {
50
50
  const { orientation, scrollNext, canScrollNext } = useCarousel();
51
- return /* @__PURE__ */ jsxs(Button, {
52
- className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
51
+ return /* @__PURE__ */ jsxs(ActionIcon, {
52
+ className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
53
53
  "data-slot": "carousel-next",
54
54
  disabled: !canScrollNext,
55
55
  onClick: scrollNext,
@@ -68,10 +68,10 @@ const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...pro
68
68
 
69
69
  //#endregion
70
70
  //#region src/ui/carousel/carousel-previous.tsx
71
- const CarouselPrevious = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
71
+ const CarouselPrevious = ({ className, variant = "outline", size = "sm", ...props }) => {
72
72
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
73
- return /* @__PURE__ */ jsxs(Button, {
74
- className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
73
+ return /* @__PURE__ */ jsxs(ActionIcon, {
74
+ className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
75
75
  "data-slot": "carousel-previous",
76
76
  disabled: !canScrollPrev,
77
77
  onClick: scrollPrev,
@@ -109,14 +109,21 @@ const Carousel = ({ orientation = "horizontal", opts, setApi, plugins, className
109
109
  api?.scrollNext();
110
110
  }, [api]);
111
111
  const handleKeyDown = useCallback((event) => {
112
- if (event.key === "ArrowLeft") {
112
+ if (event.target !== event.currentTarget) return;
113
+ const previousKey = orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
114
+ const nextKey = orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
115
+ if (event.key === previousKey) {
113
116
  event.preventDefault();
114
117
  scrollPrev();
115
- } else if (event.key === "ArrowRight") {
118
+ } else if (event.key === nextKey) {
116
119
  event.preventDefault();
117
120
  scrollNext();
118
121
  }
119
- }, [scrollPrev, scrollNext]);
122
+ }, [
123
+ orientation,
124
+ scrollPrev,
125
+ scrollNext
126
+ ]);
120
127
  useEffect(() => {
121
128
  if (!(api && setApi)) return;
122
129
  setApi(api);
@@ -130,23 +137,35 @@ const Carousel = ({ orientation = "horizontal", opts, setApi, plugins, className
130
137
  api?.off("select", onSelect);
131
138
  };
132
139
  }, [api, onSelect]);
140
+ const resolvedOrientation = orientation || (opts?.axis === "y" ? "vertical" : "horizontal");
141
+ const contextValue = useMemo(() => ({
142
+ api,
143
+ canScrollNext,
144
+ canScrollPrev,
145
+ carouselRef,
146
+ opts,
147
+ orientation: resolvedOrientation,
148
+ scrollNext,
149
+ scrollPrev
150
+ }), [
151
+ carouselRef,
152
+ api,
153
+ opts,
154
+ resolvedOrientation,
155
+ scrollPrev,
156
+ scrollNext,
157
+ canScrollPrev,
158
+ canScrollNext
159
+ ]);
133
160
  return /* @__PURE__ */ jsx(CarouselContext.Provider, {
134
- value: {
135
- carouselRef,
136
- api,
137
- opts,
138
- orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
139
- scrollPrev,
140
- scrollNext,
141
- canScrollPrev,
142
- canScrollNext
143
- },
161
+ value: contextValue,
144
162
  children: /* @__PURE__ */ jsx("div", {
145
163
  "aria-roledescription": "carousel",
146
164
  className: cn("relative", className),
147
165
  "data-slot": "carousel",
148
- onKeyDownCapture: handleKeyDown,
166
+ onKeyDown: handleKeyDown,
149
167
  role: "region",
168
+ tabIndex: 0,
150
169
  ...props,
151
170
  children
152
171
  })
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\n\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import type { ComponentProps } from \"react\";\n\nimport { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof Button>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n};\n\nexport { CarouselNext };\n","import type { ComponentProps } from \"react\";\n\nimport { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof Button>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport {\n type ComponentProps,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport {\n type CarouselApi,\n CarouselContext,\n type CarouselProps,\n useCarousel,\n} from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDownCapture={handleKeyDown}\n role=\"region\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":";;;;;;;;;;;AA4BA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAM,oBAAoB;CACxB,MAAM,UAAU,WAAW,gBAAgB;AAE3C,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,QAAO;;;;;AC9BT,MAAM,mBAAmB,EAAE,WAAW,GAAG,YAAkC;CACzE,MAAM,EAAE,aAAa,gBAAgB,aAAa;AAElD,QACE,oBAAC;EACC,WAAU;EACV,aAAU;EACV,KAAK;YAEL,oBAAC;GACC,WAAW,GACT,QACA,gBAAgB,eAAe,UAAU,kBACzC,UACD;GACD,GAAI;IACJ;GACE;;;;;ACjBV,MAAM,gBAAgB,EAAE,WAAW,GAAG,YAA+B;CACnE,MAAM,EAAE,gBAAgB,aAAa;AAErC,QACE,oBAAC;EACC,wBAAqB;EACrB,WAAW,GACT,sCACA,gBAAgB,eAAe,SAAS,QACxC,UACD;EACD,aAAU;EACV,MAAK;EACL,GAAI;GACJ;;;;;ACXN,MAAM,gBAAgB,EACpB,WACA,UAAU,WACV,OAAO,WACP,GAAG,YACoB;CACvB,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC;EACC,WAAW,GACT,4CACA,gBAAgB,eACZ,uCACA,kDACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;aAEJ,oBAAC;GAAc,MAAM;GAAkB,aAAa;IAAK,EACzD,oBAAC;GAAK,WAAU;aAAU;IAAiB;GACpC;;;;;AC1Bb,MAAM,oBAAoB,EACxB,WACA,UAAU,WACV,OAAO,WACP,GAAG,YACwB;CAC3B,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC;EACC,WAAW,GACT,4CACA,gBAAgB,eACZ,sCACA,+CACJ,UACD;EACD,aAAU;EACV,UAAU,CAAC;EACX,SAAS;EACH;EACG;EACT,GAAI;aAEJ,oBAAC;GAAc,MAAM;GAAiB,aAAa;IAAK,EACxD,oBAAC;GAAK,WAAU;aAAU;IAAqB;GACxC;;;;;ACbb,MAAM,YAAY,EAChB,cAAc,cACd,MACA,QACA,SACA,WACA,UACA,GAAG,YACwC;CAC3C,MAAM,CAAC,aAAa,OAAO,iBACzB;EACE,GAAG;EACH,MAAM,gBAAgB,eAAe,MAAM;EAC5C,EACD,QACD;CACD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CAEzD,MAAM,WAAW,aAAa,aAA0B;AACtD,MAAI,CAAC,SACH;AAEF,mBAAiB,SAAS,eAAe,CAAC;AAC1C,mBAAiB,SAAS,eAAe,CAAC;IACzC,EAAE,CAAC;CAEN,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,aAAa,kBAAkB;AACnC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,gBAAgB,aACnB,UAAyC;AACxC,MAAI,MAAM,QAAQ,aAAa;AAC7B,SAAM,gBAAgB;AACtB,eAAY;aACH,MAAM,QAAQ,cAAc;AACrC,SAAM,gBAAgB;AACtB,eAAY;;IAGhB,CAAC,YAAY,WAAW,CACzB;AAED,iBAAgB;AACd,MAAI,EAAE,OAAO,QACX;AAEF,SAAO,IAAI;IACV,CAAC,KAAK,OAAO,CAAC;AAEjB,iBAAgB;AACd,MAAI,CAAC,IACH;AAEF,WAAS,IAAI;AACb,MAAI,GAAG,UAAU,SAAS;AAC1B,MAAI,GAAG,UAAU,SAAS;AAE1B,eAAa;AACX,QAAK,IAAI,UAAU,SAAS;;IAE7B,CAAC,KAAK,SAAS,CAAC;AAEnB,QACE,oBAAC,gBAAgB;EACf,OAAO;GACL;GACA;GACA;GACA,aACE,gBAAgB,MAAM,SAAS,MAAM,aAAa;GACpD;GACA;GACA;GACA;GACD;YAGD,oBAAC;GACC,wBAAqB;GACrB,WAAW,GAAG,YAAY,UAAU;GACpC,aAAU;GACV,kBAAkB;GAClB,MAAK;GACL,GAAI;GAEH;IACG;GACmB;;AAI/B,SAAS,UAAU;AACnB,SAAS,OAAO;AAChB,SAAS,OAAO;AAChB,SAAS,WAAW"}
1
+ {"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ActionIcon } from \"../action-icon/action-icon\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof ActionIcon>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <ActionIcon\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </ActionIcon>\n );\n};\n\nexport { CarouselNext };\n","import { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ActionIcon } from \"../action-icon/action-icon\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof ActionIcon>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <ActionIcon\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </ActionIcon>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ComponentProps, KeyboardEvent } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport { CarouselContext, useCarousel } from \"./use-carousel\";\nimport type { CarouselApi, CarouselProps } from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n const previousKey =\n orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n if (event.key === previousKey) {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === nextKey) {\n event.preventDefault();\n scrollNext();\n }\n },\n [orientation, scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n const resolvedOrientation =\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\");\n const contextValue = useMemo(\n () => ({\n api,\n canScrollNext,\n canScrollPrev,\n carouselRef,\n opts,\n orientation: resolvedOrientation,\n scrollNext,\n scrollPrev,\n }),\n [\n carouselRef,\n api,\n opts,\n resolvedOrientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n ]\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDown={handleKeyDown}\n role=\"region\"\n tabIndex={0}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group.d.ts","names":[],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"mappings":";;;;;KAQY,kBAAA,GAAqB,cAAA,QAAsB,eAAA;AAAA,cAE1C,aAAA;EAAiB,SAAA;EAAA,GAAA;AAAA,GAAyB,kBAAA,KAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"checkbox-group.d.ts","names":[],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"mappings":";;;;;KAOY,kBAAA,GAAqB,cAAA,QAAsB,eAAA;AAAA,cAE1C,aAAA;EAAiB,SAAA;EAAA,GAAA;AAAA,GAAyB,kBAAA,KAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group.js","names":["BaseCheckboxGroup"],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { CheckboxGroup as BaseCheckboxGroup } from \"@base-ui/react/checkbox-group\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type CheckboxGroupProps = ComponentProps<typeof BaseCheckboxGroup>;\n\nexport const CheckboxGroup = ({ className, ...props }: CheckboxGroupProps) => (\n <BaseCheckboxGroup\n className={mergeBaseUIClassName<BaseCheckboxGroup.State>(\n \"flex flex-col items-start gap-1\",\n className\n )}\n data-slot=\"checkbox-group\"\n {...props}\n />\n);\n"],"mappings":";;;;;;;AAUA,MAAa,iBAAiB,EAAE,WAAW,GAAG,YAC5C,oBAACA;CACC,WAAW,qBACT,mCACA,UACD;CACD,aAAU;CACV,GAAI;EACJ"}
1
+ {"version":3,"file":"checkbox-group.js","names":["BaseCheckboxGroup"],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckboxGroup as BaseCheckboxGroup } from \"@base-ui/react/checkbox-group\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type CheckboxGroupProps = ComponentProps<typeof BaseCheckboxGroup>;\n\nexport const CheckboxGroup = ({ className, ...props }: CheckboxGroupProps) => (\n <BaseCheckboxGroup\n className={mergeBaseUIClassName<BaseCheckboxGroup.State>(\n \"flex flex-col items-start gap-1\",\n className\n )}\n data-slot=\"checkbox-group\"\n {...props}\n />\n);\n"],"mappings":";;;;;;;AASA,MAAa,iBAAiB,EAAE,WAAW,GAAG,YAC5C,oBAACA,iBAAD;CACE,WAAW,qBACT,mCACA,UACD;CACD,aAAU;CACV,GAAI;CACJ"}
@@ -1,4 +1,4 @@
1
- import { t as UISize } from "../size-system-wzOLSuax.js";
1
+ import { t as UISize } from "../size-system-BAI1CnwU.js";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import * as tailwind_variants0 from "tailwind-variants";
4
4
  import { VariantProps } from "tailwind-variants";
@@ -7,27 +7,27 @@ import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
7
7
  //#region src/ui/checkbox/checkbox-indicator.d.ts
8
8
  declare const checkboxIndicatorVariants: tailwind_variants0.TVReturnType<{
9
9
  size: {
10
- xs: string;
11
- sm: string;
12
- md: string;
13
10
  lg: string;
11
+ md: string;
12
+ sm: string;
14
13
  xl: string;
14
+ xs: string;
15
15
  };
16
16
  }, undefined, "grid place-content-center text-current transition-none", {
17
17
  size: {
18
- xs: string;
19
- sm: string;
20
- md: string;
21
18
  lg: string;
19
+ md: string;
20
+ sm: string;
22
21
  xl: string;
22
+ xs: string;
23
23
  };
24
24
  }, undefined, tailwind_variants0.TVReturnType<{
25
25
  size: {
26
- xs: string;
27
- sm: string;
28
- md: string;
29
26
  lg: string;
27
+ md: string;
28
+ sm: string;
30
29
  xl: string;
30
+ xs: string;
31
31
  };
32
32
  }, undefined, "grid place-content-center text-current transition-none", unknown, unknown, undefined>>;
33
33
  type CheckboxIndicatorVariantProps = Omit<VariantProps<typeof checkboxIndicatorVariants>, "size"> & {
@@ -43,29 +43,29 @@ declare const CheckboxIndicator: ({
43
43
  //#region src/ui/checkbox/checkbox.d.ts
44
44
  declare const checkboxVariants: tailwind_variants0.TVReturnType<{
45
45
  size: {
46
- xs: string;
47
- sm: string;
48
- md: string;
49
46
  lg: string;
47
+ md: string;
48
+ sm: string;
50
49
  xl: string;
50
+ xs: string;
51
51
  };
52
- }, undefined, "peer relative flex shrink-0 cursor-pointer items-center justify-center border border-input text-primary-foreground shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger aria-invalid:ring-[3px] aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary", {
52
+ }, undefined, "peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary relative flex shrink-0 items-center justify-center border shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", {
53
53
  size: {
54
- xs: string;
55
- sm: string;
56
- md: string;
57
54
  lg: string;
55
+ md: string;
56
+ sm: string;
58
57
  xl: string;
58
+ xs: string;
59
59
  };
60
60
  }, undefined, tailwind_variants0.TVReturnType<{
61
61
  size: {
62
- xs: string;
63
- sm: string;
64
- md: string;
65
62
  lg: string;
63
+ md: string;
64
+ sm: string;
66
65
  xl: string;
66
+ xs: string;
67
67
  };
68
- }, undefined, "peer relative flex shrink-0 cursor-pointer items-center justify-center border border-input text-primary-foreground shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger aria-invalid:ring-[3px] aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary", unknown, unknown, undefined>>;
68
+ }, undefined, "peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary relative flex shrink-0 items-center justify-center border shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", unknown, unknown, undefined>>;
69
69
  type CheckboxVariantProps = Omit<VariantProps<typeof checkboxVariants>, "size"> & {
70
70
  size?: UISize;
71
71
  };