@gv-tech/design-system 2.22.2 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +16 -0
  2. package/dist/accordion.cjs +1 -1
  3. package/dist/accordion.cjs.map +1 -1
  4. package/dist/accordion.mjs +50 -30
  5. package/dist/accordion.mjs.map +1 -1
  6. package/dist/alert-dialog.cjs +1 -1
  7. package/dist/alert-dialog.cjs.map +1 -1
  8. package/dist/alert-dialog.mjs +98 -52
  9. package/dist/alert-dialog.mjs.map +1 -1
  10. package/dist/alert.cjs +1 -1
  11. package/dist/alert.cjs.map +1 -1
  12. package/dist/alert.mjs +37 -29
  13. package/dist/alert.mjs.map +1 -1
  14. package/dist/aspect-ratio.cjs +1 -1
  15. package/dist/aspect-ratio.cjs.map +1 -1
  16. package/dist/aspect-ratio.mjs +9 -3
  17. package/dist/aspect-ratio.mjs.map +1 -1
  18. package/dist/avatar.cjs +1 -1
  19. package/dist/avatar.cjs.map +1 -1
  20. package/dist/avatar.mjs +48 -23
  21. package/dist/avatar.mjs.map +1 -1
  22. package/dist/badge.cjs +1 -1
  23. package/dist/badge.cjs.map +1 -1
  24. package/dist/badge.mjs +16 -13
  25. package/dist/badge.mjs.map +1 -1
  26. package/dist/breadcrumb.cjs +1 -1
  27. package/dist/breadcrumb.cjs.map +1 -1
  28. package/dist/breadcrumb.mjs +67 -57
  29. package/dist/breadcrumb.mjs.map +1 -1
  30. package/dist/button-group.cjs +2 -0
  31. package/dist/button-group.cjs.map +1 -0
  32. package/dist/button-group.d.ts +2 -0
  33. package/dist/button-group.mjs +39 -0
  34. package/dist/button-group.mjs.map +1 -0
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.cjs.map +1 -1
  37. package/dist/button.mjs +32 -25
  38. package/dist/button.mjs.map +1 -1
  39. package/dist/calendar.cjs +1 -1
  40. package/dist/calendar.cjs.map +1 -1
  41. package/dist/calendar.mjs +54 -51
  42. package/dist/calendar.mjs.map +1 -1
  43. package/dist/card.cjs +1 -1
  44. package/dist/card.cjs.map +1 -1
  45. package/dist/card.mjs +55 -41
  46. package/dist/card.mjs.map +1 -1
  47. package/dist/carousel.cjs +1 -1
  48. package/dist/carousel.cjs.map +1 -1
  49. package/dist/carousel.mjs +58 -64
  50. package/dist/carousel.mjs.map +1 -1
  51. package/dist/chart.cjs +3 -3
  52. package/dist/chart.cjs.map +1 -1
  53. package/dist/chart.mjs +59 -66
  54. package/dist/chart.mjs.map +1 -1
  55. package/dist/checkbox.cjs +1 -1
  56. package/dist/checkbox.cjs.map +1 -1
  57. package/dist/checkbox.mjs +17 -15
  58. package/dist/checkbox.mjs.map +1 -1
  59. package/dist/collapsible.cjs +1 -1
  60. package/dist/collapsible.cjs.map +1 -1
  61. package/dist/collapsible.mjs +21 -3
  62. package/dist/collapsible.mjs.map +1 -1
  63. package/dist/combobox.cjs +2 -0
  64. package/dist/combobox.cjs.map +1 -0
  65. package/dist/combobox.d.ts +2 -0
  66. package/dist/combobox.mjs +164 -0
  67. package/dist/combobox.mjs.map +1 -0
  68. package/dist/command.cjs +1 -1
  69. package/dist/command.cjs.map +1 -1
  70. package/dist/command.mjs +86 -75
  71. package/dist/command.mjs.map +1 -1
  72. package/dist/context-menu.cjs +1 -1
  73. package/dist/context-menu.cjs.map +1 -1
  74. package/dist/context-menu.mjs +121 -68
  75. package/dist/context-menu.mjs.map +1 -1
  76. package/dist/design-system.css +1 -1
  77. package/dist/dialog.cjs +1 -1
  78. package/dist/dialog.cjs.map +1 -1
  79. package/dist/dialog.mjs +90 -43
  80. package/dist/dialog.mjs.map +1 -1
  81. package/dist/direction.cjs +2 -0
  82. package/dist/direction.cjs.map +1 -0
  83. package/dist/direction.d.ts +2 -0
  84. package/dist/direction.mjs +17 -0
  85. package/dist/direction.mjs.map +1 -0
  86. package/dist/drawer.cjs +1 -1
  87. package/dist/drawer.cjs.map +1 -1
  88. package/dist/drawer.mjs +75 -45
  89. package/dist/drawer.mjs.map +1 -1
  90. package/dist/dropdown-menu.cjs +1 -1
  91. package/dist/dropdown-menu.cjs.map +1 -1
  92. package/dist/dropdown-menu.mjs +124 -68
  93. package/dist/dropdown-menu.mjs.map +1 -1
  94. package/dist/empty.cjs +2 -0
  95. package/dist/empty.cjs.map +1 -0
  96. package/dist/empty.d.ts +2 -0
  97. package/dist/empty.mjs +62 -0
  98. package/dist/empty.mjs.map +1 -0
  99. package/dist/field.cjs +2 -0
  100. package/dist/field.cjs.map +1 -0
  101. package/dist/field.d.ts +2 -0
  102. package/dist/field.mjs +111 -0
  103. package/dist/field.mjs.map +1 -0
  104. package/dist/form.cjs +1 -1
  105. package/dist/form.cjs.map +1 -1
  106. package/dist/form.mjs +14 -14
  107. package/dist/hover-card.cjs +1 -1
  108. package/dist/hover-card.cjs.map +1 -1
  109. package/dist/hover-card.mjs +28 -12
  110. package/dist/hover-card.mjs.map +1 -1
  111. package/dist/index.cjs +1 -1
  112. package/dist/index.mjs +52 -41
  113. package/dist/input-group.cjs +2 -0
  114. package/dist/input-group.cjs.map +1 -0
  115. package/dist/input-group.d.ts +2 -0
  116. package/dist/input-group.mjs +80 -0
  117. package/dist/input-group.mjs.map +1 -0
  118. package/dist/input-otp.cjs +2 -0
  119. package/dist/input-otp.cjs.map +1 -0
  120. package/dist/input-otp.d.ts +2 -0
  121. package/dist/input-otp.mjs +49 -0
  122. package/dist/input-otp.mjs.map +1 -0
  123. package/dist/input.cjs +1 -1
  124. package/dist/input.cjs.map +1 -1
  125. package/dist/input.mjs +13 -12
  126. package/dist/input.mjs.map +1 -1
  127. package/dist/item.cjs +2 -0
  128. package/dist/item.cjs.map +1 -0
  129. package/dist/item.d.ts +2 -0
  130. package/dist/item.mjs +119 -0
  131. package/dist/item.mjs.map +1 -0
  132. package/dist/kbd.cjs +2 -0
  133. package/dist/kbd.cjs.map +1 -0
  134. package/dist/kbd.d.ts +2 -0
  135. package/dist/kbd.mjs +23 -0
  136. package/dist/kbd.mjs.map +1 -0
  137. package/dist/label.cjs +1 -1
  138. package/dist/label.cjs.map +1 -1
  139. package/dist/label.mjs +12 -11
  140. package/dist/label.mjs.map +1 -1
  141. package/dist/menubar.cjs +1 -1
  142. package/dist/menubar.cjs.map +1 -1
  143. package/dist/menubar.mjs +120 -90
  144. package/dist/menubar.mjs.map +1 -1
  145. package/dist/native-select.cjs +2 -0
  146. package/dist/native-select.cjs.map +1 -0
  147. package/dist/native-select.d.ts +2 -0
  148. package/dist/native-select.mjs +41 -0
  149. package/dist/native-select.mjs.map +1 -0
  150. package/dist/navigation-menu.cjs +1 -1
  151. package/dist/navigation-menu.cjs.map +1 -1
  152. package/dist/navigation-menu.mjs +74 -52
  153. package/dist/navigation-menu.mjs.map +1 -1
  154. package/dist/packages/design-tokens/src/index.d.ts +16 -0
  155. package/dist/packages/design-tokens/src/theme.d.ts +16 -0
  156. package/dist/packages/ui-core/src/contracts/alert.d.ts +3 -1
  157. package/dist/packages/ui-core/src/contracts/badge.d.ts +3 -1
  158. package/dist/packages/ui-core/src/contracts/button-group.d.ts +17 -0
  159. package/dist/packages/ui-core/src/contracts/checkbox.d.ts +2 -2
  160. package/dist/packages/ui-core/src/contracts/combobox.d.ts +65 -0
  161. package/dist/packages/ui-core/src/contracts/direction.d.ts +7 -0
  162. package/dist/packages/ui-core/src/contracts/empty.d.ts +12 -0
  163. package/dist/packages/ui-core/src/contracts/field.d.ts +47 -0
  164. package/dist/packages/ui-core/src/contracts/input-group.d.ts +29 -0
  165. package/dist/packages/ui-core/src/contracts/input-otp.d.ts +16 -0
  166. package/dist/packages/ui-core/src/contracts/item.d.ts +47 -0
  167. package/dist/packages/ui-core/src/contracts/kbd.d.ts +9 -0
  168. package/dist/packages/ui-core/src/contracts/native-select.d.ts +15 -0
  169. package/dist/packages/ui-core/src/contracts/resizable.d.ts +1 -1
  170. package/dist/packages/ui-core/src/contracts/search.d.ts +1 -0
  171. package/dist/packages/ui-core/src/contracts/sidebar.d.ts +107 -0
  172. package/dist/packages/ui-core/src/contracts/sonner.d.ts +1 -9
  173. package/dist/packages/ui-core/src/contracts/spinner.d.ts +3 -0
  174. package/dist/packages/ui-core/src/contracts/switch.d.ts +1 -1
  175. package/dist/packages/ui-core/src/contracts/textarea.d.ts +2 -2
  176. package/dist/packages/ui-core/src/contracts/toast.d.ts +1 -1
  177. package/dist/packages/ui-core/src/contracts/toggle-group.d.ts +1 -1
  178. package/dist/packages/ui-core/src/contracts/toggle.d.ts +2 -2
  179. package/dist/packages/ui-core/src/index.d.ts +14 -0
  180. package/dist/packages/ui-web/src/accordion.d.ts +5 -7
  181. package/dist/packages/ui-web/src/alert-dialog.d.ts +17 -21
  182. package/dist/packages/ui-web/src/alert.d.ts +8 -8
  183. package/dist/packages/ui-web/src/aspect-ratio.d.ts +2 -5
  184. package/dist/packages/ui-web/src/avatar.d.ts +10 -7
  185. package/dist/packages/ui-web/src/badge.d.ts +4 -5
  186. package/dist/packages/ui-web/src/breadcrumb.d.ts +9 -17
  187. package/dist/packages/ui-web/src/button-group.d.ts +11 -0
  188. package/dist/packages/ui-web/src/button.d.ts +4 -6
  189. package/dist/packages/ui-web/src/calendar.d.ts +5 -5
  190. package/dist/packages/ui-web/src/card.d.ts +10 -10
  191. package/dist/packages/ui-web/src/carousel.d.ts +18 -14
  192. package/dist/packages/ui-web/src/chart.d.ts +35 -7
  193. package/dist/packages/ui-web/src/checkbox.d.ts +2 -5
  194. package/dist/packages/ui-web/src/collapsible.d.ts +4 -7
  195. package/dist/packages/ui-web/src/combobox.d.ts +20 -0
  196. package/dist/packages/ui-web/src/command.d.ts +16 -80
  197. package/dist/packages/ui-web/src/context-menu.d.ts +29 -21
  198. package/dist/packages/ui-web/src/dialog.d.ts +15 -17
  199. package/dist/packages/ui-web/src/direction.d.ts +6 -0
  200. package/dist/packages/ui-web/src/drawer.d.ts +11 -23
  201. package/dist/packages/ui-web/src/dropdown-menu.d.ts +27 -21
  202. package/dist/packages/ui-web/src/empty.d.ts +13 -0
  203. package/dist/packages/ui-web/src/field.d.ts +18 -0
  204. package/dist/packages/ui-web/src/hooks/use-mobile.d.ts +1 -0
  205. package/dist/packages/ui-web/src/hooks/use-theme.d.ts +16 -0
  206. package/dist/packages/ui-web/src/hover-card.d.ts +4 -6
  207. package/dist/packages/ui-web/src/index.d.ts +14 -43
  208. package/dist/packages/ui-web/src/input-group.d.ts +18 -0
  209. package/dist/packages/ui-web/src/input-otp.d.ts +8 -0
  210. package/dist/packages/ui-web/src/input.d.ts +1 -4
  211. package/dist/packages/ui-web/src/item.d.ts +25 -0
  212. package/dist/packages/ui-web/src/kbd.d.ts +4 -0
  213. package/dist/packages/ui-web/src/label.d.ts +2 -6
  214. package/dist/packages/ui-web/src/menubar.d.ts +25 -19
  215. package/dist/packages/ui-web/src/native-select.d.ts +7 -0
  216. package/dist/packages/ui-web/src/navigation-menu.d.ts +11 -11
  217. package/dist/packages/ui-web/src/pagination.d.ts +13 -26
  218. package/dist/packages/ui-web/src/popover.d.ts +9 -8
  219. package/dist/packages/ui-web/src/progress.d.ts +2 -4
  220. package/dist/packages/ui-web/src/radio-group.d.ts +3 -8
  221. package/dist/packages/ui-web/src/resizable.d.ts +6 -7
  222. package/dist/packages/ui-web/src/scroll-area.d.ts +3 -5
  223. package/dist/packages/ui-web/src/search.d.ts +1 -1
  224. package/dist/packages/ui-web/src/select.d.ts +13 -13
  225. package/dist/packages/ui-web/src/separator.d.ts +2 -4
  226. package/dist/packages/ui-web/src/sheet.d.ts +13 -27
  227. package/dist/packages/ui-web/src/sidebar.d.ts +45 -0
  228. package/dist/packages/ui-web/src/skeleton.d.ts +1 -4
  229. package/dist/packages/ui-web/src/slider.d.ts +2 -4
  230. package/dist/packages/ui-web/src/sonner.d.ts +1 -5
  231. package/dist/packages/ui-web/src/spinner.d.ts +3 -0
  232. package/dist/packages/ui-web/src/switch.d.ts +4 -4
  233. package/dist/packages/ui-web/src/table.d.ts +8 -10
  234. package/dist/packages/ui-web/src/tabs.d.ts +11 -8
  235. package/dist/packages/ui-web/src/textarea.d.ts +1 -4
  236. package/dist/packages/ui-web/src/toggle-group.d.ts +7 -10
  237. package/dist/packages/ui-web/src/toggle.d.ts +7 -5
  238. package/dist/packages/ui-web/src/tooltip.d.ts +5 -10
  239. package/dist/pagination.cjs +1 -1
  240. package/dist/pagination.cjs.map +1 -1
  241. package/dist/pagination.mjs +77 -59
  242. package/dist/pagination.mjs.map +1 -1
  243. package/dist/popover.cjs +1 -1
  244. package/dist/popover.cjs.map +1 -1
  245. package/dist/popover.mjs +53 -13
  246. package/dist/popover.mjs.map +1 -1
  247. package/dist/progress.cjs +1 -1
  248. package/dist/progress.cjs.map +1 -1
  249. package/dist/progress.mjs +18 -15
  250. package/dist/progress.mjs.map +1 -1
  251. package/dist/radio-group.cjs +1 -1
  252. package/dist/radio-group.cjs.map +1 -1
  253. package/dist/radio-group.mjs +24 -21
  254. package/dist/radio-group.mjs.map +1 -1
  255. package/dist/resizable.cjs +1 -1
  256. package/dist/resizable.cjs.map +1 -1
  257. package/dist/resizable.mjs +25 -16
  258. package/dist/resizable.mjs.map +1 -1
  259. package/dist/scroll-area.cjs +1 -1
  260. package/dist/scroll-area.cjs.map +1 -1
  261. package/dist/scroll-area.mjs +34 -27
  262. package/dist/scroll-area.mjs.map +1 -1
  263. package/dist/scroll-to-top.cjs +1 -1
  264. package/dist/scroll-to-top.mjs +17 -17
  265. package/dist/search.cjs +1 -1
  266. package/dist/search.cjs.map +1 -1
  267. package/dist/search.mjs +18 -17
  268. package/dist/search.mjs.map +1 -1
  269. package/dist/select.cjs +1 -1
  270. package/dist/select.cjs.map +1 -1
  271. package/dist/select.mjs +96 -65
  272. package/dist/select.mjs.map +1 -1
  273. package/dist/separator.cjs +1 -1
  274. package/dist/separator.cjs.map +1 -1
  275. package/dist/separator.mjs +14 -13
  276. package/dist/separator.mjs.map +1 -1
  277. package/dist/sheet.cjs +1 -1
  278. package/dist/sheet.cjs.map +1 -1
  279. package/dist/sheet.mjs +85 -53
  280. package/dist/sheet.mjs.map +1 -1
  281. package/dist/sidebar-BnEmNYS2.mjs +354 -0
  282. package/dist/sidebar-BnEmNYS2.mjs.map +1 -0
  283. package/dist/sidebar-BnuanaZN.js +2 -0
  284. package/dist/sidebar-BnuanaZN.js.map +1 -0
  285. package/dist/sidebar.cjs +1 -0
  286. package/dist/sidebar.d.ts +2 -0
  287. package/dist/sidebar.mjs +3 -0
  288. package/dist/skeleton.cjs +1 -1
  289. package/dist/skeleton.cjs.map +1 -1
  290. package/dist/skeleton.mjs +4 -5
  291. package/dist/skeleton.mjs.map +1 -1
  292. package/dist/slider.cjs +1 -1
  293. package/dist/slider.cjs.map +1 -1
  294. package/dist/slider.mjs +31 -12
  295. package/dist/slider.mjs.map +1 -1
  296. package/dist/sonner.cjs +1 -1
  297. package/dist/sonner.cjs.map +1 -1
  298. package/dist/sonner.mjs +22 -16
  299. package/dist/sonner.mjs.map +1 -1
  300. package/dist/spinner.cjs +2 -0
  301. package/dist/spinner.cjs.map +1 -0
  302. package/dist/spinner.d.ts +2 -0
  303. package/dist/spinner.mjs +17 -0
  304. package/dist/spinner.mjs.map +1 -0
  305. package/dist/support-fab.cjs +1 -1
  306. package/dist/support-fab.cjs.map +1 -1
  307. package/dist/support-fab.mjs +8 -8
  308. package/dist/support-fab.mjs.map +1 -1
  309. package/dist/switch.cjs +1 -1
  310. package/dist/switch.cjs.map +1 -1
  311. package/dist/switch.mjs +17 -11
  312. package/dist/switch.mjs.map +1 -1
  313. package/dist/table-of-contents.cjs +1 -1
  314. package/dist/table-of-contents.mjs +2 -2
  315. package/dist/table.cjs +1 -1
  316. package/dist/table.cjs.map +1 -1
  317. package/dist/table.mjs +65 -56
  318. package/dist/table.mjs.map +1 -1
  319. package/dist/tabs.cjs +1 -1
  320. package/dist/tabs.cjs.map +1 -1
  321. package/dist/tabs.mjs +42 -22
  322. package/dist/tabs.mjs.map +1 -1
  323. package/dist/text.cjs +1 -1
  324. package/dist/text.cjs.map +1 -1
  325. package/dist/text.mjs +3 -3
  326. package/dist/textarea.cjs +1 -1
  327. package/dist/textarea.cjs.map +1 -1
  328. package/dist/textarea.mjs +12 -11
  329. package/dist/textarea.mjs.map +1 -1
  330. package/dist/theme-provider.cjs +1 -1
  331. package/dist/theme-provider.mjs +1 -1
  332. package/dist/theme-toggle-CNDBFa9t.js +2 -0
  333. package/dist/theme-toggle-CNDBFa9t.js.map +1 -0
  334. package/dist/{theme-toggle-B6QS2aTS.mjs → theme-toggle-CgEJLId-.mjs} +26 -10
  335. package/dist/theme-toggle-CgEJLId-.mjs.map +1 -0
  336. package/dist/theme-toggle.cjs +1 -1
  337. package/dist/theme-toggle.mjs +1 -1
  338. package/dist/toast.cjs +1 -1
  339. package/dist/toast.cjs.map +1 -1
  340. package/dist/toast.mjs +19 -19
  341. package/dist/toast.mjs.map +1 -1
  342. package/dist/{toaster-C-1djNvf.js → toaster-C3UZyPzU.js} +2 -2
  343. package/dist/{toaster-C-1djNvf.js.map → toaster-C3UZyPzU.js.map} +1 -1
  344. package/dist/{toaster-CEa33QUH.mjs → toaster-DH0UX0nD.mjs} +2 -2
  345. package/dist/{toaster-CEa33QUH.mjs.map → toaster-DH0UX0nD.mjs.map} +1 -1
  346. package/dist/toaster.cjs +1 -1
  347. package/dist/toaster.mjs +1 -1
  348. package/dist/toggle-group.cjs +1 -1
  349. package/dist/toggle-group.cjs.map +1 -1
  350. package/dist/toggle-group.mjs +41 -28
  351. package/dist/toggle-group.mjs.map +1 -1
  352. package/dist/toggle.cjs +1 -1
  353. package/dist/toggle.cjs.map +1 -1
  354. package/dist/toggle.mjs +32 -16
  355. package/dist/toggle.mjs.map +1 -1
  356. package/dist/tooltip.cjs +1 -1
  357. package/dist/tooltip.cjs.map +1 -1
  358. package/dist/tooltip.mjs +33 -20
  359. package/dist/tooltip.mjs.map +1 -1
  360. package/dist/{utils-DU-Y_pvO.js → utils-D7tt_q-u.js} +2 -2
  361. package/dist/{utils-DU-Y_pvO.js.map → utils-D7tt_q-u.js.map} +1 -1
  362. package/dist/{utils-BsD1_fYL.mjs → utils-IYJAOUsw.mjs} +2 -2
  363. package/dist/{utils-BsD1_fYL.mjs.map → utils-IYJAOUsw.mjs.map} +1 -1
  364. package/dist/{vendor-ChPUVHXi.mjs → vendor-B6CFfDyk.mjs} +29707 -24351
  365. package/dist/vendor-B6CFfDyk.mjs.map +1 -0
  366. package/dist/vendor-UfQavLF9.js +111 -0
  367. package/dist/vendor-UfQavLF9.js.map +1 -0
  368. package/package.json +4 -3
  369. package/dist/src-D3IDWqE2.js +0 -2
  370. package/dist/src-D3IDWqE2.js.map +0 -1
  371. package/dist/src-N08I3kfW.mjs +0 -23
  372. package/dist/src-N08I3kfW.mjs.map +0 -1
  373. package/dist/theme-toggle-B6QS2aTS.mjs.map +0 -1
  374. package/dist/theme-toggle-CbtfA8aG.js +0 -2
  375. package/dist/theme-toggle-CbtfA8aG.js.map +0 -1
  376. package/dist/vendor-3cr8xz0x.js +0 -92
  377. package/dist/vendor-3cr8xz0x.js.map +0 -1
  378. package/dist/vendor-ChPUVHXi.mjs.map +0 -1
package/dist/card.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"card.cjs","names":[],"sources":["../packages/ui-web/src/card.tsx"],"sourcesContent":["'use client';\nimport * as React from 'react';\n\nimport type { CardBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement>, CardBaseProps {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('bg-card text-card-foreground rounded-xl border shadow', className)} {...props} />\n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('leading-none font-semibold tracking-tight', className)} {...props} />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />,\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":"+PAQM,EAAO,EAAM,YAAuC,CAAE,YAAW,GAAG,GAAS,KACjF,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,wDAAyD,CAAS,EAAG,GAAI,CAAQ,CAAA,CAC/G,EACD,EAAK,YAAc,OAEnB,IAAM,EAAa,EAAM,YACtB,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,gCAAiC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAE1F,EACA,EAAW,YAAc,aAEzB,IAAM,EAAY,EAAM,YACrB,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,4CAA6C,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEtG,EACA,EAAU,YAAc,YAExB,IAAM,EAAkB,EAAM,YAC3B,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,gCAAiC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAE1F,EACA,EAAgB,YAAc,kBAE9B,IAAM,EAAc,EAAM,YACvB,CAAE,YAAW,GAAG,GAAS,KAAQ,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,WAAY,CAAS,EAAG,GAAI,CAAQ,CAAA,CACrG,EACA,EAAY,YAAc,cAE1B,IAAM,EAAa,EAAM,YACtB,CAAE,YAAW,GAAG,GAAS,KACxB,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,UAAW,EAAA,EAAG,6BAA8B,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEvF,EACA,EAAW,YAAc"}
1
+ {"version":3,"file":"card.cjs","names":[],"sources":["../packages/ui-web/src/card.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { CardBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nfunction Card({ className, size = 'default', ...props }: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n 'group/card bg-card text-card-foreground ring-foreground/10 flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('text-base leading-snug font-medium group-data-[size=sm]/card:text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn('text-muted-foreground text-sm', className)} {...props} />;\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-4 group-data-[size=sm]/card:px-3', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('bg-muted/50 flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3', className)}\n {...props}\n />\n );\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\nconst _verifyContract: CardBaseProps = {} as React.ComponentProps<typeof Card>;\n"],"mappings":"kPAKA,SAAS,EAAK,CAAE,YAAW,OAAO,UAAW,GAAG,GAAoE,CAClH,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,OACV,YAAW,EACX,UAAW,EAAA,EACT,uVACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,UAAW,EAAA,EACT,qSACA,CACF,EACA,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAU,CAAE,YAAW,GAAG,GAAsC,CACvE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,aACV,UAAW,EAAA,EAAG,uEAAwE,CAAS,EAC/F,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAgB,CAAE,YAAW,GAAG,GAAsC,CAC7E,OAAO,EAAA,EAAA,KAAC,MAAD,CAAK,YAAU,mBAAmB,UAAW,EAAA,EAAG,gCAAiC,CAAS,EAAG,GAAI,CAAQ,CAAA,CAClH,CAEA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,UAAW,EAAA,EAAG,iEAAkE,CAAS,EACzF,GAAI,CACL,CAAA,CAEL,CAEA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAsC,CACzE,OAAO,EAAA,EAAA,KAAC,MAAD,CAAK,YAAU,eAAe,UAAW,EAAA,EAAG,sCAAuC,CAAS,EAAG,GAAI,CAAQ,CAAA,CACpH,CAEA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAsC,CACxE,OACE,EAAA,EAAA,KAAC,MAAD,CACE,YAAU,cACV,UAAW,EAAA,EAAG,wFAAyF,CAAS,EAChH,GAAI,CACL,CAAA,CAEL"}
package/dist/card.mjs CHANGED
@@ -1,46 +1,60 @@
1
1
  "use client";
2
- "use client";
3
- import { vr as e } from "./vendor-ChPUVHXi.mjs";
4
- import { t } from "./utils-BsD1_fYL.mjs";
5
- import * as n from "react";
2
+ import { Jr as e } from "./vendor-B6CFfDyk.mjs";
3
+ import { t } from "./utils-IYJAOUsw.mjs";
4
+ import "react";
6
5
  //#region packages/ui-web/src/card.tsx
7
- var r = e(), i = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
8
- ref: i,
9
- className: t("bg-card text-card-foreground rounded-xl border shadow", e),
10
- ...n
11
- }));
12
- i.displayName = "Card";
13
- var a = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
14
- ref: i,
15
- className: t("flex flex-col space-y-1.5 p-6", e),
16
- ...n
17
- }));
18
- a.displayName = "CardHeader";
19
- var o = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
20
- ref: i,
21
- className: t("leading-none font-semibold tracking-tight", e),
22
- ...n
23
- }));
24
- o.displayName = "CardTitle";
25
- var s = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
26
- ref: i,
27
- className: t("text-muted-foreground text-sm", e),
28
- ...n
29
- }));
30
- s.displayName = "CardDescription";
31
- var c = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
32
- ref: i,
33
- className: t("p-6 pt-0", e),
34
- ...n
35
- }));
36
- c.displayName = "CardContent";
37
- var l = n.forwardRef(({ className: e, ...n }, i) => /* @__PURE__ */ (0, r.jsx)("div", {
38
- ref: i,
39
- className: t("flex items-center p-6 pt-0", e),
40
- ...n
41
- }));
42
- l.displayName = "CardFooter";
6
+ var n = e();
7
+ function r({ className: e, size: r = "default", ...i }) {
8
+ return /* @__PURE__ */ (0, n.jsx)("div", {
9
+ "data-slot": "card",
10
+ "data-size": r,
11
+ className: t("group/card bg-card text-card-foreground ring-foreground/10 flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", e),
12
+ ...i
13
+ });
14
+ }
15
+ function i({ className: e, ...r }) {
16
+ return /* @__PURE__ */ (0, n.jsx)("div", {
17
+ "data-slot": "card-header",
18
+ className: t("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3", e),
19
+ ...r
20
+ });
21
+ }
22
+ function a({ className: e, ...r }) {
23
+ return /* @__PURE__ */ (0, n.jsx)("div", {
24
+ "data-slot": "card-title",
25
+ className: t("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm", e),
26
+ ...r
27
+ });
28
+ }
29
+ function o({ className: e, ...r }) {
30
+ return /* @__PURE__ */ (0, n.jsx)("div", {
31
+ "data-slot": "card-description",
32
+ className: t("text-muted-foreground text-sm", e),
33
+ ...r
34
+ });
35
+ }
36
+ function s({ className: e, ...r }) {
37
+ return /* @__PURE__ */ (0, n.jsx)("div", {
38
+ "data-slot": "card-action",
39
+ className: t("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
40
+ ...r
41
+ });
42
+ }
43
+ function c({ className: e, ...r }) {
44
+ return /* @__PURE__ */ (0, n.jsx)("div", {
45
+ "data-slot": "card-content",
46
+ className: t("px-4 group-data-[size=sm]/card:px-3", e),
47
+ ...r
48
+ });
49
+ }
50
+ function l({ className: e, ...r }) {
51
+ return /* @__PURE__ */ (0, n.jsx)("div", {
52
+ "data-slot": "card-footer",
53
+ className: t("bg-muted/50 flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3", e),
54
+ ...r
55
+ });
56
+ }
43
57
  //#endregion
44
- export { i as Card, c as CardContent, s as CardDescription, l as CardFooter, a as CardHeader, o as CardTitle };
58
+ export { r as Card, s as CardAction, c as CardContent, o as CardDescription, l as CardFooter, i as CardHeader, a as CardTitle };
45
59
 
46
60
  //# sourceMappingURL=card.mjs.map
package/dist/card.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"card.mjs","names":[],"sources":["../packages/ui-web/src/card.tsx"],"sourcesContent":["'use client';\nimport * as React from 'react';\n\nimport type { CardBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement>, CardBaseProps {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('bg-card text-card-foreground rounded-xl border shadow', className)} {...props} />\n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('leading-none font-semibold tracking-tight', className)} {...props} />\n ),\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n ),\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />,\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n"],"mappings":";;;;;;aAQM,IAAO,EAAM,YAAuC,EAAE,cAAW,GAAG,KAAS,MACjF,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,yDAAyD,CAAS;CAAG,GAAI;AAAQ,CAAA,CAC/G;AACD,EAAK,cAAc;AAEnB,IAAM,IAAa,EAAM,YACtB,EAAE,cAAW,GAAG,KAAS,MACxB,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,iCAAiC,CAAS;CAAG,GAAI;AAAQ,CAAA,CAE1F;AACA,EAAW,cAAc;AAEzB,IAAM,IAAY,EAAM,YACrB,EAAE,cAAW,GAAG,KAAS,MACxB,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,6CAA6C,CAAS;CAAG,GAAI;AAAQ,CAAA,CAEtG;AACA,EAAU,cAAc;AAExB,IAAM,IAAkB,EAAM,YAC3B,EAAE,cAAW,GAAG,KAAS,MACxB,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,iCAAiC,CAAS;CAAG,GAAI;AAAQ,CAAA,CAE1F;AACA,EAAgB,cAAc;AAE9B,IAAM,IAAc,EAAM,YACvB,EAAE,cAAW,GAAG,KAAS,MAAQ,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,YAAY,CAAS;CAAG,GAAI;AAAQ,CAAA,CACrG;AACA,EAAY,cAAc;AAE1B,IAAM,IAAa,EAAM,YACtB,EAAE,cAAW,GAAG,KAAS,MACxB,iBAAA,GAAA,EAAA,KAAC,OAAD;CAAU;CAAK,WAAW,EAAG,8BAA8B,CAAS;CAAG,GAAI;AAAQ,CAAA,CAEvF;AACA,EAAW,cAAc"}
1
+ {"version":3,"file":"card.mjs","names":[],"sources":["../packages/ui-web/src/card.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { CardBaseProps } from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\nfunction Card({ className, size = 'default', ...props }: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) {\n return (\n <div\n data-slot=\"card\"\n data-size={size}\n className={cn(\n 'group/card bg-card text-card-foreground ring-foreground/10 flex flex-col gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('text-base leading-snug font-medium group-data-[size=sm]/card:text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn('text-muted-foreground text-sm', className)} {...props} />;\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-4 group-data-[size=sm]/card:px-3', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('bg-muted/50 flex items-center rounded-b-xl border-t p-4 group-data-[size=sm]/card:p-3', className)}\n {...props}\n />\n );\n}\n\nexport { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\nconst _verifyContract: CardBaseProps = {} as React.ComponentProps<typeof Card>;\n"],"mappings":";;;;;;AAKA,SAAS,EAAK,EAAE,cAAW,UAAO,WAAW,GAAG,KAAoE;CAClH,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,aAAW;EACX,WAAW,EACT,wVACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EACT,sSACA,CACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAU,EAAE,cAAW,GAAG,KAAsC;CACvE,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,wEAAwE,CAAS;EAC/F,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAgB,EAAE,cAAW,GAAG,KAAsC;CAC7E,OAAO,iBAAA,GAAA,EAAA,KAAC,OAAD;EAAK,aAAU;EAAmB,WAAW,EAAG,iCAAiC,CAAS;EAAG,GAAI;CAAQ,CAAA;AAClH;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,kEAAkE,CAAS;EACzF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,EAAY,EAAE,cAAW,GAAG,KAAsC;CACzE,OAAO,iBAAA,GAAA,EAAA,KAAC,OAAD;EAAK,aAAU;EAAe,WAAW,EAAG,uCAAuC,CAAS;EAAG,GAAI;CAAQ,CAAA;AACpH;AAEA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAsC;CACxE,OACE,iBAAA,GAAA,EAAA,KAAC,OAAD;EACE,aAAU;EACV,WAAW,EAAG,yFAAyF,CAAS;EAChH,GAAI;CACL,CAAA;AAEL"}
package/dist/carousel.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js"),r=require("./button.cjs");let i=require("react");i=e.r(i);var a=t.vr(),o=i.createContext(null);function s(){let e=i.useContext(o);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}var c=i.forwardRef(({orientation:e=`horizontal`,opts:r,setApi:s,plugins:c,className:l,children:u,...d},f)=>{let[p,m]=t.bn({...r,axis:e===`horizontal`?`x`:`y`},c),[h,g]=i.useState(!1),[_,v]=i.useState(!1),y=i.useCallback(e=>{e&&(g(e.canScrollPrev()),v(e.canScrollNext()))},[]),b=i.useCallback(()=>{m?.scrollPrev()},[m]),x=i.useCallback(()=>{m?.scrollNext()},[m]),S=i.useCallback(e=>{e.key===`ArrowLeft`?(e.preventDefault(),b()):e.key===`ArrowRight`&&(e.preventDefault(),x())},[b,x]);return i.useEffect(()=>{!m||!s||s(m)},[m,s]),i.useEffect(()=>{if(m)return y(m),m.on(`reInit`,y),m.on(`select`,y),()=>{m?.off(`select`,y)}},[m,y]),(0,a.jsx)(o.Provider,{value:{carouselRef:p,api:m,opts:r,orientation:e||(r?.axis===`y`?`vertical`:`horizontal`),scrollPrev:b,scrollNext:x,canScrollPrev:h,canScrollNext:_},children:(0,a.jsx)(`div`,{ref:f,onKeyDownCapture:S,className:n.t(`relative`,l),role:`region`,"aria-roledescription":`carousel`,...d,children:u})})});c.displayName=`Carousel`;var l=i.forwardRef(({className:e,...t},r)=>{let{carouselRef:i,orientation:o}=s();return(0,a.jsx)(`div`,{ref:i,className:`overflow-hidden`,children:(0,a.jsx)(`div`,{ref:r,className:n.t(`flex`,o===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})});l.displayName=`CarouselContent`;var u=i.forwardRef(({className:e,...t},r)=>{let{orientation:i}=s();return(0,a.jsx)(`div`,{ref:r,role:`group`,"aria-roledescription":`slide`,className:n.t(`min-w-0 shrink-0 grow-0 basis-full`,i===`horizontal`?`pl-4`:`pt-4`,e),...t})});u.displayName=`CarouselItem`;var d=i.forwardRef(({className:e,variant:i=`outline`,size:o=`icon`,...c},l)=>{let{orientation:u,scrollPrev:d,canScrollPrev:f}=s();return(0,a.jsxs)(r.Button,{ref:l,variant:i,size:o,className:n.t(`absolute h-8 w-8 rounded-full`,u===`horizontal`?`top-1/2 -left-12 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!f,onClick:d,...c,children:[(0,a.jsx)(t.lr,{className:`h-4 w-4`}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})});d.displayName=`CarouselPrevious`;var f=i.forwardRef(({className:e,variant:i=`outline`,size:o=`icon`,...c},l)=>{let{orientation:u,scrollNext:d,canScrollNext:f}=s();return(0,a.jsxs)(r.Button,{ref:l,variant:i,size:o,className:n.t(`absolute h-8 w-8 rounded-full`,u===`horizontal`?`top-1/2 -right-12 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!f,onClick:d,...c,children:[(0,a.jsx)(t.cr,{className:`h-4 w-4`}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})});f.displayName=`CarouselNext`,exports.Carousel=c,exports.CarouselContent=l,exports.CarouselItem=u,exports.CarouselNext=f,exports.CarouselPrevious=d;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js"),r=require("./button.cjs");let i=require("react");i=e.r(i);var a=t.Jr(),o=i.createContext(null);function s(){let e=i.useContext(o);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}function c({orientation:e=`horizontal`,opts:r,setApi:s,plugins:c,className:l,children:u,...d}){let[f,p]=t.F({...r,axis:e===`horizontal`?`x`:`y`},c),[m,h]=i.useState(!1),[g,_]=i.useState(!1),v=i.useCallback(e=>{e&&(h(e.canScrollPrev()),_(e.canScrollNext()))},[]),y=i.useCallback(()=>{p?.scrollPrev()},[p]),b=i.useCallback(()=>{p?.scrollNext()},[p]),x=i.useCallback(e=>{e.key===`ArrowLeft`?(e.preventDefault(),y()):e.key===`ArrowRight`&&(e.preventDefault(),b())},[y,b]);return i.useEffect(()=>{!p||!s||s(p)},[p,s]),i.useEffect(()=>{if(p)return v(p),p.on(`reInit`,v),p.on(`select`,v),()=>{p?.off(`select`,v)}},[p,v]),(0,a.jsx)(o.Provider,{value:{carouselRef:f,api:p,opts:r,orientation:e||(r?.axis===`y`?`vertical`:`horizontal`),scrollPrev:y,scrollNext:b,canScrollPrev:m,canScrollNext:g},children:(0,a.jsx)(`div`,{onKeyDownCapture:x,className:n.t(`relative`,l),role:`region`,"aria-roledescription":`carousel`,"data-slot":`carousel`,...d,children:u})})}function l({className:e,...t}){let{carouselRef:r,orientation:i}=s();return(0,a.jsx)(`div`,{ref:r,className:`overflow-hidden`,"data-slot":`carousel-content`,children:(0,a.jsx)(`div`,{className:n.t(`flex`,i===`horizontal`?`-ms-4`:`-mt-4 flex-col`,e),...t})})}function u({className:e,...t}){let{orientation:r}=s();return(0,a.jsx)(`div`,{role:`group`,"aria-roledescription":`slide`,"data-slot":`carousel-item`,className:n.t(`min-w-0 shrink-0 grow-0 basis-full`,r===`horizontal`?`ps-4`:`pt-4`,e),...t})}function d({className:e,variant:i=`outline`,size:o=`icon-sm`,...c}){let{orientation:l,scrollPrev:u,canScrollPrev:d}=s();return(0,a.jsxs)(r.Button,{"data-slot":`carousel-previous`,variant:i,size:o,className:n.t(`absolute touch-manipulation rounded-full`,l===`horizontal`?`-start-12 top-1/2 -translate-y-1/2`:`start-1/2 -top-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2`,e),disabled:!d,onClick:u,...c,children:[(0,a.jsx)(t.nt,{}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})}function f({className:e,variant:i=`outline`,size:o=`icon-sm`,...c}){let{orientation:l,scrollNext:u,canScrollNext:d}=s();return(0,a.jsxs)(r.Button,{"data-slot":`carousel-next`,variant:i,size:o,className:n.t(`absolute touch-manipulation rounded-full`,l===`horizontal`?`-end-12 top-1/2 -translate-y-1/2`:`start-1/2 -bottom-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2`,e),disabled:!d,onClick:u,...c,children:[(0,a.jsx)(t.tt,{}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})}exports.Carousel=c,exports.CarouselContent=l,exports.CarouselItem=u,exports.CarouselNext=f,exports.CarouselPrevious=d,exports.useCarousel=s;
2
2
  //# sourceMappingURL=carousel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.cjs","names":[],"sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["'use client';\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\nimport * as React from 'react';\n\nimport {\n CarouselBaseProps,\n CarouselContentBaseProps,\n CarouselItemBaseProps,\n CarouselNextBaseProps,\n CarouselPreviousBaseProps,\n} from '@gv-tech/ui-core';\nimport { Button } from './button';\nimport { cn } from './lib/utils';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = React.HTMLAttributes<HTMLDivElement> &\n CarouselBaseProps & {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\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 = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(\n ({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.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 React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\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: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = 'Carousel';\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselContentBaseProps\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & CarouselItemBaseProps>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n },\n);\nCarouselItem.displayName = 'CarouselItem';\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button> & CarouselPreviousBaseProps\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 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 disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button> & CarouselNextBaseProps>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 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 disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n },\n);\nCarouselNext.displayName = 'CarouselNext';\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CarouselApi };\nexport type { CarouselProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.cjs","names":[],"sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport * as React from 'react';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport { Button } from './button';\nimport { cn } from './lib/utils';\n\nimport type { CarouselBaseProps } from '@gv-tech/ui-core';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype 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 = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.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] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.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 React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n React.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: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ms-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'ps-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'icon-sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute touch-manipulation rounded-full',\n orientation === 'horizontal'\n ? '-start-12 top-1/2 -translate-y-1/2'\n : 'start-1/2 -top-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'icon-sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute touch-manipulation rounded-full',\n orientation === 'horizontal'\n ? '-end-12 top-1/2 -translate-y-1/2'\n : 'start-1/2 -bottom-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2',\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel, type CarouselApi };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifyCarouselContract: CarouselBaseProps = {} as unknown as React.ComponentProps<typeof Carousel>;\n"],"mappings":"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"}
package/dist/carousel.mjs CHANGED
@@ -1,117 +1,111 @@
1
1
  "use client";
2
- "use client";
3
- import { bn as e, cr as t, lr as n, vr as r } from "./vendor-ChPUVHXi.mjs";
4
- import { t as i } from "./utils-BsD1_fYL.mjs";
2
+ import { F as e, Jr as t, nt as n, tt as r } from "./vendor-B6CFfDyk.mjs";
3
+ import { t as i } from "./utils-IYJAOUsw.mjs";
5
4
  import { Button as a } from "./button.mjs";
6
5
  import * as o from "react";
7
6
  //#region packages/ui-web/src/carousel.tsx
8
- var s = r(), c = o.createContext(null);
7
+ var s = t(), c = o.createContext(null);
9
8
  function l() {
10
9
  let e = o.useContext(c);
11
10
  if (!e) throw Error("useCarousel must be used within a <Carousel />");
12
11
  return e;
13
12
  }
14
- var u = o.forwardRef(({ orientation: t = "horizontal", opts: n, setApi: r, plugins: a, className: l, children: u, ...d }, f) => {
15
- let [p, m] = e({
13
+ function u({ orientation: t = "horizontal", opts: n, setApi: r, plugins: a, className: l, children: u, ...d }) {
14
+ let [f, p] = e({
16
15
  ...n,
17
16
  axis: t === "horizontal" ? "x" : "y"
18
- }, a), [h, g] = o.useState(!1), [_, v] = o.useState(!1), y = o.useCallback((e) => {
19
- e && (g(e.canScrollPrev()), v(e.canScrollNext()));
20
- }, []), b = o.useCallback(() => {
21
- m?.scrollPrev();
22
- }, [m]), x = o.useCallback(() => {
23
- m?.scrollNext();
24
- }, [m]), S = o.useCallback((e) => {
25
- e.key === "ArrowLeft" ? (e.preventDefault(), b()) : e.key === "ArrowRight" && (e.preventDefault(), x());
26
- }, [b, x]);
17
+ }, a), [m, h] = o.useState(!1), [g, _] = o.useState(!1), v = o.useCallback((e) => {
18
+ e && (h(e.canScrollPrev()), _(e.canScrollNext()));
19
+ }, []), y = o.useCallback(() => {
20
+ p?.scrollPrev();
21
+ }, [p]), b = o.useCallback(() => {
22
+ p?.scrollNext();
23
+ }, [p]), x = o.useCallback((e) => {
24
+ e.key === "ArrowLeft" ? (e.preventDefault(), y()) : e.key === "ArrowRight" && (e.preventDefault(), b());
25
+ }, [y, b]);
27
26
  return o.useEffect(() => {
28
- !m || !r || r(m);
29
- }, [m, r]), o.useEffect(() => {
30
- if (m) return y(m), m.on("reInit", y), m.on("select", y), () => {
31
- m?.off("select", y);
27
+ !p || !r || r(p);
28
+ }, [p, r]), o.useEffect(() => {
29
+ if (p) return v(p), p.on("reInit", v), p.on("select", v), () => {
30
+ p?.off("select", v);
32
31
  };
33
- }, [m, y]), /* @__PURE__ */ (0, s.jsx)(c.Provider, {
32
+ }, [p, v]), /* @__PURE__ */ (0, s.jsx)(c.Provider, {
34
33
  value: {
35
- carouselRef: p,
36
- api: m,
34
+ carouselRef: f,
35
+ api: p,
37
36
  opts: n,
38
37
  orientation: t || (n?.axis === "y" ? "vertical" : "horizontal"),
39
- scrollPrev: b,
40
- scrollNext: x,
41
- canScrollPrev: h,
42
- canScrollNext: _
38
+ scrollPrev: y,
39
+ scrollNext: b,
40
+ canScrollPrev: m,
41
+ canScrollNext: g
43
42
  },
44
43
  children: /* @__PURE__ */ (0, s.jsx)("div", {
45
- ref: f,
46
- onKeyDownCapture: S,
44
+ onKeyDownCapture: x,
47
45
  className: i("relative", l),
48
46
  role: "region",
49
47
  "aria-roledescription": "carousel",
48
+ "data-slot": "carousel",
50
49
  ...d,
51
50
  children: u
52
51
  })
53
52
  });
54
- });
55
- u.displayName = "Carousel";
56
- var d = o.forwardRef(({ className: e, ...t }, n) => {
57
- let { carouselRef: r, orientation: a } = l();
53
+ }
54
+ function d({ className: e, ...t }) {
55
+ let { carouselRef: n, orientation: r } = l();
58
56
  return /* @__PURE__ */ (0, s.jsx)("div", {
59
- ref: r,
57
+ ref: n,
60
58
  className: "overflow-hidden",
59
+ "data-slot": "carousel-content",
61
60
  children: /* @__PURE__ */ (0, s.jsx)("div", {
62
- ref: n,
63
- className: i("flex", a === "horizontal" ? "-ml-4" : "-mt-4 flex-col", e),
61
+ className: i("flex", r === "horizontal" ? "-ms-4" : "-mt-4 flex-col", e),
64
62
  ...t
65
63
  })
66
64
  });
67
- });
68
- d.displayName = "CarouselContent";
69
- var f = o.forwardRef(({ className: e, ...t }, n) => {
70
- let { orientation: r } = l();
65
+ }
66
+ function f({ className: e, ...t }) {
67
+ let { orientation: n } = l();
71
68
  return /* @__PURE__ */ (0, s.jsx)("div", {
72
- ref: n,
73
69
  role: "group",
74
70
  "aria-roledescription": "slide",
75
- className: i("min-w-0 shrink-0 grow-0 basis-full", r === "horizontal" ? "pl-4" : "pt-4", e),
71
+ "data-slot": "carousel-item",
72
+ className: i("min-w-0 shrink-0 grow-0 basis-full", n === "horizontal" ? "ps-4" : "pt-4", e),
76
73
  ...t
77
74
  });
78
- });
79
- f.displayName = "CarouselItem";
80
- var p = o.forwardRef(({ className: e, variant: t = "outline", size: r = "icon", ...o }, c) => {
81
- let { orientation: u, scrollPrev: d, canScrollPrev: f } = l();
75
+ }
76
+ function p({ className: e, variant: t = "outline", size: r = "icon-sm", ...o }) {
77
+ let { orientation: c, scrollPrev: u, canScrollPrev: d } = l();
82
78
  return /* @__PURE__ */ (0, s.jsxs)(a, {
83
- ref: c,
79
+ "data-slot": "carousel-previous",
84
80
  variant: t,
85
81
  size: r,
86
- className: i("absolute h-8 w-8 rounded-full", u === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", e),
87
- disabled: !f,
88
- onClick: d,
82
+ className: i("absolute touch-manipulation rounded-full", c === "horizontal" ? "-start-12 top-1/2 -translate-y-1/2" : "start-1/2 -top-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2", e),
83
+ disabled: !d,
84
+ onClick: u,
89
85
  ...o,
90
- children: [/* @__PURE__ */ (0, s.jsx)(n, { className: "h-4 w-4" }), /* @__PURE__ */ (0, s.jsx)("span", {
86
+ children: [/* @__PURE__ */ (0, s.jsx)(n, {}), /* @__PURE__ */ (0, s.jsx)("span", {
91
87
  className: "sr-only",
92
88
  children: "Previous slide"
93
89
  })]
94
90
  });
95
- });
96
- p.displayName = "CarouselPrevious";
97
- var m = o.forwardRef(({ className: e, variant: n = "outline", size: r = "icon", ...o }, c) => {
98
- let { orientation: u, scrollNext: d, canScrollNext: f } = l();
91
+ }
92
+ function m({ className: e, variant: t = "outline", size: n = "icon-sm", ...o }) {
93
+ let { orientation: c, scrollNext: u, canScrollNext: d } = l();
99
94
  return /* @__PURE__ */ (0, s.jsxs)(a, {
100
- ref: c,
101
- variant: n,
102
- size: r,
103
- className: i("absolute h-8 w-8 rounded-full", u === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", e),
104
- disabled: !f,
105
- onClick: d,
95
+ "data-slot": "carousel-next",
96
+ variant: t,
97
+ size: n,
98
+ className: i("absolute touch-manipulation rounded-full", c === "horizontal" ? "-end-12 top-1/2 -translate-y-1/2" : "start-1/2 -bottom-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2", e),
99
+ disabled: !d,
100
+ onClick: u,
106
101
  ...o,
107
- children: [/* @__PURE__ */ (0, s.jsx)(t, { className: "h-4 w-4" }), /* @__PURE__ */ (0, s.jsx)("span", {
102
+ children: [/* @__PURE__ */ (0, s.jsx)(r, {}), /* @__PURE__ */ (0, s.jsx)("span", {
108
103
  className: "sr-only",
109
104
  children: "Next slide"
110
105
  })]
111
106
  });
112
- });
113
- m.displayName = "CarouselNext";
107
+ }
114
108
  //#endregion
115
- export { u as Carousel, d as CarouselContent, f as CarouselItem, m as CarouselNext, p as CarouselPrevious };
109
+ export { u as Carousel, d as CarouselContent, f as CarouselItem, m as CarouselNext, p as CarouselPrevious, l as useCarousel };
116
110
 
117
111
  //# sourceMappingURL=carousel.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.mjs","names":[],"sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["'use client';\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\nimport * as React from 'react';\n\nimport {\n CarouselBaseProps,\n CarouselContentBaseProps,\n CarouselItemBaseProps,\n CarouselNextBaseProps,\n CarouselPreviousBaseProps,\n} from '@gv-tech/ui-core';\nimport { Button } from './button';\nimport { cn } from './lib/utils';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = React.HTMLAttributes<HTMLDivElement> &\n CarouselBaseProps & {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\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 = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(\n ({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.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 React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\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: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = 'Carousel';\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselContentBaseProps\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & CarouselItemBaseProps>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}\n {...props}\n />\n );\n },\n);\nCarouselItem.displayName = 'CarouselItem';\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button> & CarouselPreviousBaseProps\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 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 disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button> & CarouselNextBaseProps>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 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 disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n },\n);\nCarouselNext.displayName = 'CarouselNext';\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type CarouselApi };\nexport type { CarouselProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.mjs","names":[],"sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport * as React from 'react';\n\nimport { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';\nimport { Button } from './button';\nimport { cn } from './lib/utils';\n\nimport type { CarouselBaseProps } from '@gv-tech/ui-core';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype 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 = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.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] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.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 React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n React.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: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<'div'>) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div className={cn('flex', orientation === 'horizontal' ? '-ms-4' : '-mt-4 flex-col', className)} {...props} />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<'div'>) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'ps-4' : 'pt-4', className)}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = 'outline',\n size = 'icon-sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute touch-manipulation rounded-full',\n orientation === 'horizontal'\n ? '-start-12 top-1/2 -translate-y-1/2'\n : 'start-1/2 -top-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2',\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = 'outline',\n size = 'icon-sm',\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n 'absolute touch-manipulation rounded-full',\n orientation === 'horizontal'\n ? '-end-12 top-1/2 -translate-y-1/2'\n : 'start-1/2 -bottom-12 -translate-x-1/2 rotate-90 rtl:translate-x-1/2',\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ChevronRightIcon />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel, type CarouselApi };\n\n// Verify that the component satisfies the ui-core contract\nconst _verifyCarouselContract: CarouselBaseProps = {} as unknown as React.ComponentProps<typeof Carousel>;\n"],"mappings":"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"}
package/dist/chart.cjs CHANGED
@@ -1,8 +1,8 @@
1
- "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-3cr8xz0x.js"),n=require("./utils-DU-Y_pvO.js");let r=require("react");r=e.r(r);var i=t.vr(),a={light:``,dark:`.dark`},o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s=r.createContext(null);function c(){let e=r.useContext(s);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}var l=r.forwardRef(({id:e,className:a,children:o,config:c,style:l,role:d,tabIndex:f,"aria-label":p,"aria-labelledby":m,"aria-describedby":h,onClick:g,onKeyDown:_,onKeyUp:v,onFocus:y,onBlur:b},x)=>{let S=r.useId(),C=`chart-${e||S.replace(/:/g,``)}`;return(0,i.jsx)(s.Provider,{value:{config:c},children:(0,i.jsxs)(`div`,{"data-chart":C,ref:x,className:n.t(`[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-sector]:outline-none [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-none`,a),style:l,role:d,tabIndex:f,"aria-label":p,"aria-labelledby":m,"aria-describedby":h,onClick:g,onKeyDown:_,onKeyUp:v,onFocus:y,onBlur:b,children:[(0,i.jsx)(u,{id:C,config:c}),(0,i.jsx)(t.yn,{children:o})]})})});l.displayName=`Chart`;var u=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,i.jsx)(`style`,{children:Object.entries(a).map(([t,r])=>`
1
+ "use client";"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-mLOUI7ql.js"),t=require("./vendor-UfQavLF9.js"),n=require("./utils-D7tt_q-u.js");let r=require("react");r=e.r(r);var i=t.Jr(),a={light:``,dark:`.dark`},o={width:320,height:200},s=r.createContext(null);function c(){let e=r.useContext(s);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function l({id:e,className:a,children:c,config:l,initialDimension:d=o,...f}){let p=r.useId(),m=`chart-${e??p.replace(/:/g,``)}`;return(0,i.jsx)(s.Provider,{value:{config:l},children:(0,i.jsxs)(`div`,{"data-slot":`chart`,"data-chart":m,className:n.t(`[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke=#ccc]]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke=#ccc]]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke=#ccc]]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke=#fff]]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke=#fff]]:stroke-transparent [&_.recharts-surface]:outline-hidden`,a),...f,children:[(0,i.jsx)(u,{id:m,config:l}),(0,i.jsx)(t.P,{initialDimension:d,children:c})]})})}var u=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme??e.color);return n.length?(0,i.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(a).map(([t,r])=>`
2
2
  ${r} [data-chart=${e}] {
3
- ${n.map(([e,n])=>{let r=(t in a&&o(a,t)?n.theme?.[t]:void 0)||n.color;return r?` --color-${e}: ${r};`:null}).join(`
3
+ ${n.map(([e,n])=>{let r=n.theme?.[t]??n.color;return r?` --color-${e}: ${r};`:null}).join(`
4
4
  `)}
5
5
  }
6
6
  `).join(`
7
- `)}):null},d=t._n,f=r.forwardRef(({active:e,payload:t,className:a,indicator:s=`dot`,hideLabel:l=!1,hideIndicator:u=!1,label:d,labelFormatter:f,labelClassName:p,formatter:m,color:g,nameKey:_,labelKey:v},y)=>{let{config:b}=c(),x=r.useMemo(()=>{if(l||!t?.length)return null;let[e]=t,r=h(b,e,`${v||e?.dataKey||e?.name||`value`}`),a=!v&&typeof d==`string`?(o(b,d)?b[d]?.label:void 0)??d:r?.label;return f?(0,i.jsx)(`div`,{className:n.t(`font-medium`,p),children:f(a,t)}):a?(0,i.jsx)(`div`,{className:n.t(`font-medium`,p),children:a}):null},[d,f,t,l,p,b,v]);if(!e||!t?.length)return null;let S=t.length===1&&s!==`dot`;return(0,i.jsxs)(`div`,{ref:y,className:n.t(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl`,a),children:[S?null:x,(0,i.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let r=h(b,e,`${_||e.name||e.dataKey||`value`}`),a=g||e.payload.fill||e.color;return(0,i.jsx)(`div`,{className:n.t(`[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5`,s===`dot`&&`items-center`),children:m&&e?.value!==void 0&&e.name?m(e.value,e.name,e,t,e.payload):(0,i.jsxs)(i.Fragment,{children:[r?.icon?(0,i.jsx)(r.icon,{}):!u&&(0,i.jsx)(`div`,{className:n.t(`shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]`,{"h-2.5 w-2.5":s===`dot`,"w-1":s===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":s===`dashed`,"my-0.5":S&&s===`dashed`}),style:{"--color-bg":a,"--color-border":a}}),(0,i.jsxs)(`div`,{className:n.t(`flex flex-1 justify-between leading-none`,S?`items-end`:`items-center`),children:[(0,i.jsxs)(`div`,{className:`grid gap-1.5`,children:[S?x:null,(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:r?.label||e.name})]}),e.value&&(0,i.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString()})]})]})},typeof e.dataKey==`function`?t:e.dataKey??t)})})]})});f.displayName=`ChartTooltip`;var p=t.vn,m=r.forwardRef(({className:e,hideIcon:t=!1,payload:r,verticalAlign:a=`bottom`,nameKey:o},s)=>{let{config:l}=c();return r?.length?(0,i.jsx)(`div`,{ref:s,className:n.t(`flex items-center justify-center gap-4`,a===`top`?`pb-3`:`pt-3`,e),children:r.filter(e=>e.type!==`none`).map(e=>{let r=h(l,e,`${o||e.dataKey||`value`}`);return(0,i.jsxs)(`div`,{className:n.t(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[r?.icon&&!t?(0,i.jsx)(r.icon,{}):(0,i.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),r?.label]},e.value)})}):null});m.displayName=`ChartLegend`;function h(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return o(t,n)&&typeof t[n]==`string`?i=t[n]:r&&o(r,n)&&typeof r[n]==`string`&&(i=r[n]),o(e,i)?e[i]:o(e,n)?e[n]:void 0}exports.ChartContainer=l,exports.ChartLegend=p,exports.ChartLegendContent=m,exports.ChartStyle=u,exports.ChartTooltip=d,exports.ChartTooltipContent=f;
7
+ `)}}):null},d=t.M;function f({active:e,payload:t,className:a,indicator:o=`dot`,hideLabel:s=!1,hideIndicator:l=!1,label:u,labelFormatter:d,labelClassName:f,formatter:p,color:m,nameKey:g,labelKey:_}){let{config:v}=c(),y=r.useMemo(()=>{if(s||!t?.length)return null;let[e]=t,r=h(v,e,`${_??e?.dataKey??e?.name??`value`}`),a=!_&&typeof u==`string`?v[u]?.label??u:r?.label;return d?(0,i.jsx)(`div`,{className:n.t(`font-medium`,f),children:d(a,t)}):a?(0,i.jsx)(`div`,{className:n.t(`font-medium`,f),children:a}):null},[u,d,t,s,f,v,_]);if(!e||!t?.length)return null;let b=t.length===1&&o!==`dot`;return(0,i.jsxs)(`div`,{className:n.t(`border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl`,a),children:[b?null:y,(0,i.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let r=h(v,e,`${g??e.name??e.dataKey??`value`}`),a=m??e.payload?.fill??e.color;return(0,i.jsx)(`div`,{className:n.t(`[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5`,o===`dot`&&`items-center`),children:p&&e?.value!==void 0&&e.name?p(e.value,e.name,e,t,e.payload):(0,i.jsxs)(i.Fragment,{children:[r?.icon?(0,i.jsx)(r.icon,{}):!l&&(0,i.jsx)(`div`,{className:n.t(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":o===`dot`,"w-1":o===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":o===`dashed`,"my-0.5":b&&o===`dashed`}),style:{"--color-bg":a,"--color-border":a}}),(0,i.jsxs)(`div`,{className:n.t(`flex flex-1 justify-between leading-none`,b?`items-end`:`items-center`),children:[(0,i.jsxs)(`div`,{className:`grid gap-1.5`,children:[b?y:null,(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:r?.label??e.name})]}),e.value!=null&&(0,i.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():String(e.value)})]})]})},t)})})]})}var p=t.N;function m({className:e,hideIcon:t=!1,payload:r,verticalAlign:a=`bottom`,nameKey:o}){let{config:s}=c();return r?.length?(0,i.jsx)(`div`,{className:n.t(`flex items-center justify-center gap-4`,a===`top`?`pb-3`:`pt-3`,e),children:r.filter(e=>e.type!==`none`).map((e,r)=>{let a=h(s,e,`${o??e.dataKey??`value`}`);return(0,i.jsxs)(`div`,{className:n.t(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[a?.icon&&!t?(0,i.jsx)(a.icon,{}):(0,i.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),a?.label]},r)})}):null}function h(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}exports.ChartContainer=l,exports.ChartLegend=p,exports.ChartLegendContent=m,exports.ChartStyle=u,exports.ChartTooltip=d,exports.ChartTooltipContent=f;
8
8
  //# sourceMappingURL=chart.cjs.map