@gv-tech/design-system 2.5.3 → 2.9.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 (753) hide show
  1. package/README.md +11 -8
  2. package/dist/accordion.cjs.js +1 -1
  3. package/dist/accordion.cjs.js.map +1 -1
  4. package/dist/accordion.d.ts +34 -0
  5. package/dist/accordion.es.js +6 -6
  6. package/dist/accordion.es.js.map +1 -1
  7. package/dist/alert-dialog.cjs.js +1 -1
  8. package/dist/alert-dialog.cjs.js.map +1 -1
  9. package/dist/alert-dialog.d.ts +74 -0
  10. package/dist/alert-dialog.es.js +5 -5
  11. package/dist/alert-dialog.es.js.map +1 -1
  12. package/dist/alert.cjs.js +1 -1
  13. package/dist/alert.cjs.js.map +1 -1
  14. package/dist/alert.d.ts +29 -0
  15. package/dist/alert.es.js +3 -3
  16. package/dist/alert.es.js.map +1 -1
  17. package/dist/aspect-ratio.cjs.js +1 -1
  18. package/dist/aspect-ratio.d.ts +14 -0
  19. package/dist/aspect-ratio.es.js +1 -1
  20. package/dist/avatar.cjs.js +1 -1
  21. package/dist/avatar.cjs.js.map +1 -1
  22. package/dist/avatar.d.ts +26 -0
  23. package/dist/avatar.es.js +3 -3
  24. package/dist/avatar.es.js.map +1 -1
  25. package/dist/badge.cjs.js +1 -1
  26. package/dist/badge.d.ts +21 -0
  27. package/dist/badge.es.js +2 -2
  28. package/dist/breadcrumb.cjs.js +1 -1
  29. package/dist/breadcrumb.cjs.js.map +1 -1
  30. package/dist/breadcrumb.d.ts +62 -0
  31. package/dist/breadcrumb.es.js +6 -6
  32. package/dist/breadcrumb.es.js.map +1 -1
  33. package/dist/button.cjs.js +1 -1
  34. package/dist/button.d.ts +22 -0
  35. package/dist/button.es.js +2 -2
  36. package/dist/calendar.cjs.js +1 -1
  37. package/dist/calendar.cjs.js.map +1 -1
  38. package/dist/calendar.d.ts +36 -0
  39. package/dist/calendar.es.js +3 -3
  40. package/dist/calendar.es.js.map +1 -1
  41. package/dist/card.cjs.js +1 -1
  42. package/dist/card.cjs.js.map +1 -1
  43. package/dist/card.d.ts +23 -0
  44. package/dist/card.es.js +5 -5
  45. package/dist/card.es.js.map +1 -1
  46. package/dist/carousel.cjs.js +1 -1
  47. package/dist/carousel.cjs.js.map +1 -1
  48. package/dist/carousel.d.ts +78 -0
  49. package/dist/carousel.es.js +5 -5
  50. package/dist/carousel.es.js.map +1 -1
  51. package/dist/chart.cjs.js +2 -2
  52. package/dist/chart.cjs.js.map +1 -1
  53. package/dist/chart.d.ts +90 -0
  54. package/dist/chart.es.js +7 -7
  55. package/dist/chart.es.js.map +1 -1
  56. package/dist/checkbox.cjs.js +1 -1
  57. package/dist/checkbox.cjs.js.map +1 -1
  58. package/dist/checkbox.d.ts +17 -0
  59. package/dist/checkbox.es.js +3 -3
  60. package/dist/checkbox.es.js.map +1 -1
  61. package/dist/collapsible.cjs.js +1 -1
  62. package/dist/collapsible.d.ts +32 -0
  63. package/dist/collapsible.es.js +1 -1
  64. package/dist/command.cjs.js +1 -1
  65. package/dist/command.cjs.js.map +1 -1
  66. package/dist/command.d.ts +133 -0
  67. package/dist/command.es.js +10 -10
  68. package/dist/command.es.js.map +1 -1
  69. package/dist/context-menu.cjs.js +1 -1
  70. package/dist/context-menu.cjs.js.map +1 -1
  71. package/dist/context-menu.d.ts +115 -0
  72. package/dist/context-menu.es.js +11 -11
  73. package/dist/context-menu.es.js.map +1 -1
  74. package/dist/dialog.cjs.js +1 -1
  75. package/dist/dialog.cjs.js.map +1 -1
  76. package/dist/dialog.d.ts +31 -0
  77. package/dist/dialog.es.js +7 -7
  78. package/dist/dialog.es.js.map +1 -1
  79. package/dist/drawer.cjs.js +1 -1
  80. package/dist/drawer.cjs.js.map +1 -1
  81. package/dist/drawer.d.ts +79 -0
  82. package/dist/drawer.es.js +6 -6
  83. package/dist/drawer.es.js.map +1 -1
  84. package/dist/dropdown-menu.cjs.js +1 -1
  85. package/dist/dropdown-menu.cjs.js.map +1 -1
  86. package/dist/dropdown-menu.d.ts +124 -0
  87. package/dist/dropdown-menu.es.js +9 -9
  88. package/dist/dropdown-menu.es.js.map +1 -1
  89. package/dist/form.cjs.js +1 -1
  90. package/dist/form.cjs.js.map +1 -1
  91. package/dist/form.d.ts +62 -0
  92. package/dist/form.es.js +4 -4
  93. package/dist/form.es.js.map +1 -1
  94. package/dist/hover-card.cjs.js +1 -1
  95. package/dist/hover-card.cjs.js.map +1 -1
  96. package/dist/hover-card.d.ts +30 -0
  97. package/dist/hover-card.es.js +3 -3
  98. package/dist/hover-card.es.js.map +1 -1
  99. package/dist/index.cjs.js +1 -1
  100. package/dist/index.d.ts +2276 -0
  101. package/dist/index.es.js +5 -5
  102. package/dist/input.cjs.js +1 -1
  103. package/dist/input.cjs.js.map +1 -1
  104. package/dist/input.d.ts +14 -0
  105. package/dist/input.es.js +3 -3
  106. package/dist/input.es.js.map +1 -1
  107. package/dist/label.cjs.js +1 -1
  108. package/dist/label.d.ts +14 -0
  109. package/dist/label.es.js +2 -2
  110. package/dist/menubar.cjs.js +1 -1
  111. package/dist/menubar.cjs.js.map +1 -1
  112. package/dist/menubar.d.ts +125 -0
  113. package/dist/menubar.es.js +12 -12
  114. package/dist/menubar.es.js.map +1 -1
  115. package/dist/navigation-menu.cjs.js +1 -1
  116. package/dist/navigation-menu.cjs.js.map +1 -1
  117. package/dist/navigation-menu.d.ts +77 -0
  118. package/dist/navigation-menu.es.js +7 -7
  119. package/dist/navigation-menu.es.js.map +1 -1
  120. package/dist/pagination.cjs.js +1 -1
  121. package/dist/pagination.d.ts +94 -0
  122. package/dist/pagination.es.js +2 -2
  123. package/dist/popover.cjs.js +1 -1
  124. package/dist/popover.cjs.js.map +1 -1
  125. package/dist/popover.d.ts +39 -0
  126. package/dist/popover.es.js +3 -3
  127. package/dist/popover.es.js.map +1 -1
  128. package/dist/progress.cjs.js +1 -1
  129. package/dist/progress.cjs.js.map +1 -1
  130. package/dist/progress.d.ts +11 -0
  131. package/dist/progress.es.js +4 -4
  132. package/dist/progress.es.js.map +1 -1
  133. package/dist/radio-group.cjs.js +1 -1
  134. package/dist/radio-group.cjs.js.map +1 -1
  135. package/dist/radio-group.d.ts +25 -0
  136. package/dist/radio-group.es.js +4 -4
  137. package/dist/radio-group.es.js.map +1 -1
  138. package/dist/resizable.cjs.js +1 -1
  139. package/dist/resizable.cjs.js.map +1 -1
  140. package/dist/resizable.d.ts +53 -0
  141. package/dist/resizable.es.js +4 -4
  142. package/dist/resizable.es.js.map +1 -1
  143. package/dist/scroll-area.cjs.js +1 -1
  144. package/dist/scroll-area.cjs.js.map +1 -1
  145. package/dist/scroll-area.d.ts +22 -0
  146. package/dist/scroll-area.es.js +4 -4
  147. package/dist/scroll-area.es.js.map +1 -1
  148. package/dist/search.cjs.js +1 -1
  149. package/dist/search.cjs.js.map +1 -1
  150. package/dist/search.d.ts +25 -0
  151. package/dist/search.es.js +4 -4
  152. package/dist/search.es.js.map +1 -1
  153. package/dist/select.cjs.js +1 -1
  154. package/dist/select.cjs.js.map +1 -1
  155. package/dist/select.d.ts +87 -0
  156. package/dist/select.es.js +6 -6
  157. package/dist/select.es.js.map +1 -1
  158. package/dist/separator.cjs.js +1 -1
  159. package/dist/separator.cjs.js.map +1 -1
  160. package/dist/separator.d.ts +12 -0
  161. package/dist/separator.es.js +3 -3
  162. package/dist/separator.es.js.map +1 -1
  163. package/dist/sheet.cjs.js +1 -1
  164. package/dist/sheet.cjs.js.map +1 -1
  165. package/dist/sheet.d.ts +97 -0
  166. package/dist/sheet.es.js +6 -6
  167. package/dist/sheet.es.js.map +1 -1
  168. package/dist/skeleton.cjs.js +1 -1
  169. package/dist/skeleton.cjs.js.map +1 -1
  170. package/dist/skeleton.d.ts +11 -0
  171. package/dist/skeleton.es.js +3 -3
  172. package/dist/skeleton.es.js.map +1 -1
  173. package/dist/slider.cjs.js +1 -1
  174. package/dist/slider.cjs.js.map +1 -1
  175. package/dist/slider.d.ts +22 -0
  176. package/dist/slider.es.js +5 -5
  177. package/dist/slider.es.js.map +1 -1
  178. package/dist/sonner.cjs.js +1 -1
  179. package/dist/{packages/ui-core/src/contracts/sonner.d.ts → sonner.d.ts} +25 -16
  180. package/dist/sonner.es.js +1 -1
  181. package/dist/switch.cjs.js +1 -1
  182. package/dist/switch.cjs.js.map +1 -1
  183. package/dist/switch.d.ts +18 -0
  184. package/dist/switch.es.js +4 -4
  185. package/dist/switch.es.js.map +1 -1
  186. package/dist/table.cjs.js +1 -1
  187. package/dist/table.cjs.js.map +1 -1
  188. package/dist/table.d.ts +59 -0
  189. package/dist/table.es.js +6 -6
  190. package/dist/table.es.js.map +1 -1
  191. package/dist/tabs.cjs.js +1 -1
  192. package/dist/tabs.cjs.js.map +1 -1
  193. package/dist/tabs.d.ts +42 -0
  194. package/dist/tabs.es.js +5 -5
  195. package/dist/tabs.es.js.map +1 -1
  196. package/dist/text.cjs.js +1 -1
  197. package/dist/text.d.ts +21 -0
  198. package/dist/text.es.js +2 -2
  199. package/dist/textarea.cjs.js +1 -1
  200. package/dist/textarea.cjs.js.map +1 -1
  201. package/dist/textarea.d.ts +16 -0
  202. package/dist/textarea.es.js +3 -3
  203. package/dist/textarea.es.js.map +1 -1
  204. package/dist/theme-provider.cjs.js +1 -1
  205. package/dist/theme-provider.d.ts +22 -0
  206. package/dist/theme-provider.es.js +1 -1
  207. package/dist/{theme-toggle-BTT5z37-.js → theme-toggle-CsOzHnq2.js} +2 -2
  208. package/dist/{theme-toggle-BTT5z37-.js.map → theme-toggle-CsOzHnq2.js.map} +1 -1
  209. package/dist/{theme-toggle-Dhc53hqa.mjs → theme-toggle-YTiXA-Ib.mjs} +6 -6
  210. package/dist/{theme-toggle-Dhc53hqa.mjs.map → theme-toggle-YTiXA-Ib.mjs.map} +1 -1
  211. package/dist/theme-toggle.cjs.js +1 -1
  212. package/dist/{packages/ui-core/src/contracts/theme-toggle.d.ts → theme-toggle.d.ts} +23 -16
  213. package/dist/theme-toggle.es.js +3 -3
  214. package/dist/toast.cjs.js +1 -1
  215. package/dist/toast.cjs.js.map +1 -1
  216. package/dist/toast.d.ts +26 -0
  217. package/dist/toast.es.js +5 -5
  218. package/dist/toast.es.js.map +1 -1
  219. package/dist/{toaster-BOqCGbZ6.js → toaster-CjkfZJj0.js} +2 -2
  220. package/dist/toaster-CjkfZJj0.js.map +1 -0
  221. package/dist/{toaster-CmNmQ6jI.mjs → toaster-D0gt0m_V.mjs} +2 -2
  222. package/dist/toaster-D0gt0m_V.mjs.map +1 -0
  223. package/dist/toaster.cjs.js +1 -1
  224. package/dist/toaster.d.ts +9 -0
  225. package/dist/toaster.es.js +2 -2
  226. package/dist/{toggle-Dmzk_m4r.js → toggle-BAzsZDaN.js} +2 -2
  227. package/dist/{toggle-Dmzk_m4r.js.map → toggle-BAzsZDaN.js.map} +1 -1
  228. package/dist/{toggle-CYawMoye.mjs → toggle-Dmzr60z6.mjs} +2 -2
  229. package/dist/{toggle-CYawMoye.mjs.map → toggle-Dmzr60z6.mjs.map} +1 -1
  230. package/dist/toggle-group.cjs.js +1 -1
  231. package/dist/toggle-group.d.ts +22 -0
  232. package/dist/toggle-group.es.js +3 -3
  233. package/dist/toggle.cjs.js +1 -1
  234. package/dist/toggle.d.ts +43 -0
  235. package/dist/toggle.es.js +3 -3
  236. package/dist/tooltip.cjs.js +1 -1
  237. package/dist/tooltip.cjs.js.map +1 -1
  238. package/dist/tooltip.d.ts +48 -0
  239. package/dist/tooltip.es.js +3 -3
  240. package/dist/tooltip.es.js.map +1 -1
  241. package/dist/utils-DKStzUzN.js +2 -0
  242. package/dist/{utils-5NfNUIaP.js.map → utils-DKStzUzN.js.map} +1 -1
  243. package/dist/utils-Dk-Gx69q.mjs +8 -0
  244. package/dist/{utils-BfGqxkzX.mjs.map → utils-Dk-Gx69q.mjs.map} +1 -1
  245. package/dist/vendor-DQFuDa7q.js +68 -0
  246. package/dist/vendor-DQFuDa7q.js.map +1 -0
  247. package/dist/{vendor-B8N-rYkV.mjs → vendor-DxBXMLEx.mjs} +5807 -6045
  248. package/dist/vendor-DxBXMLEx.mjs.map +1 -0
  249. package/package.json +23 -13
  250. package/CHANGELOG.md +0 -701
  251. package/dist/packages/design-tokens/src/index.d.ts +0 -91
  252. package/dist/packages/design-tokens/src/index.d.ts.map +0 -1
  253. package/dist/packages/design-tokens/src/index.js +0 -21
  254. package/dist/packages/design-tokens/src/palette.d.ts +0 -32
  255. package/dist/packages/design-tokens/src/palette.d.ts.map +0 -1
  256. package/dist/packages/design-tokens/src/palette.js +0 -33
  257. package/dist/packages/design-tokens/src/radii.d.ts +0 -21
  258. package/dist/packages/design-tokens/src/radii.d.ts.map +0 -1
  259. package/dist/packages/design-tokens/src/radii.js +0 -21
  260. package/dist/packages/design-tokens/src/shadows.d.ts +0 -12
  261. package/dist/packages/design-tokens/src/shadows.d.ts.map +0 -1
  262. package/dist/packages/design-tokens/src/shadows.js +0 -13
  263. package/dist/packages/design-tokens/src/spacing.d.ts +0 -30
  264. package/dist/packages/design-tokens/src/spacing.d.ts.map +0 -1
  265. package/dist/packages/design-tokens/src/spacing.js +0 -30
  266. package/dist/packages/design-tokens/src/theme.d.ts +0 -48
  267. package/dist/packages/design-tokens/src/theme.d.ts.map +0 -1
  268. package/dist/packages/design-tokens/src/theme.js +0 -50
  269. package/dist/packages/design-tokens/src/typography.d.ts +0 -33
  270. package/dist/packages/design-tokens/src/typography.d.ts.map +0 -1
  271. package/dist/packages/design-tokens/src/typography.js +0 -33
  272. package/dist/packages/ui-core/src/contracts/accordion.d.ts +0 -20
  273. package/dist/packages/ui-core/src/contracts/accordion.d.ts.map +0 -1
  274. package/dist/packages/ui-core/src/contracts/accordion.js +0 -1
  275. package/dist/packages/ui-core/src/contracts/alert-dialog.d.ts +0 -40
  276. package/dist/packages/ui-core/src/contracts/alert-dialog.d.ts.map +0 -1
  277. package/dist/packages/ui-core/src/contracts/alert-dialog.js +0 -1
  278. package/dist/packages/ui-core/src/contracts/alert.d.ts +0 -15
  279. package/dist/packages/ui-core/src/contracts/alert.d.ts.map +0 -1
  280. package/dist/packages/ui-core/src/contracts/alert.js +0 -1
  281. package/dist/packages/ui-core/src/contracts/aspect-ratio.d.ts +0 -7
  282. package/dist/packages/ui-core/src/contracts/aspect-ratio.d.ts.map +0 -1
  283. package/dist/packages/ui-core/src/contracts/aspect-ratio.js +0 -1
  284. package/dist/packages/ui-core/src/contracts/avatar.d.ts +0 -15
  285. package/dist/packages/ui-core/src/contracts/avatar.d.ts.map +0 -1
  286. package/dist/packages/ui-core/src/contracts/avatar.js +0 -1
  287. package/dist/packages/ui-core/src/contracts/badge.d.ts +0 -7
  288. package/dist/packages/ui-core/src/contracts/badge.d.ts.map +0 -1
  289. package/dist/packages/ui-core/src/contracts/badge.js +0 -1
  290. package/dist/packages/ui-core/src/contracts/breadcrumb.d.ts +0 -31
  291. package/dist/packages/ui-core/src/contracts/breadcrumb.d.ts.map +0 -1
  292. package/dist/packages/ui-core/src/contracts/breadcrumb.js +0 -1
  293. package/dist/packages/ui-core/src/contracts/button.d.ts +0 -10
  294. package/dist/packages/ui-core/src/contracts/button.d.ts.map +0 -1
  295. package/dist/packages/ui-core/src/contracts/button.js +0 -4
  296. package/dist/packages/ui-core/src/contracts/calendar.d.ts +0 -5
  297. package/dist/packages/ui-core/src/contracts/calendar.d.ts.map +0 -1
  298. package/dist/packages/ui-core/src/contracts/calendar.js +0 -1
  299. package/dist/packages/ui-core/src/contracts/card.d.ts +0 -6
  300. package/dist/packages/ui-core/src/contracts/card.d.ts.map +0 -1
  301. package/dist/packages/ui-core/src/contracts/card.js +0 -3
  302. package/dist/packages/ui-core/src/contracts/carousel.d.ts +0 -25
  303. package/dist/packages/ui-core/src/contracts/carousel.d.ts.map +0 -1
  304. package/dist/packages/ui-core/src/contracts/carousel.js +0 -1
  305. package/dist/packages/ui-core/src/contracts/chart.d.ts +0 -34
  306. package/dist/packages/ui-core/src/contracts/chart.d.ts.map +0 -1
  307. package/dist/packages/ui-core/src/contracts/chart.js +0 -1
  308. package/dist/packages/ui-core/src/contracts/checkbox.d.ts +0 -8
  309. package/dist/packages/ui-core/src/contracts/checkbox.d.ts.map +0 -1
  310. package/dist/packages/ui-core/src/contracts/checkbox.js +0 -3
  311. package/dist/packages/ui-core/src/contracts/collapsible.d.ts +0 -19
  312. package/dist/packages/ui-core/src/contracts/collapsible.d.ts.map +0 -1
  313. package/dist/packages/ui-core/src/contracts/collapsible.js +0 -1
  314. package/dist/packages/ui-core/src/contracts/command.d.ts +0 -36
  315. package/dist/packages/ui-core/src/contracts/command.d.ts.map +0 -1
  316. package/dist/packages/ui-core/src/contracts/command.js +0 -1
  317. package/dist/packages/ui-core/src/contracts/context-menu.d.ts +0 -65
  318. package/dist/packages/ui-core/src/contracts/context-menu.d.ts.map +0 -1
  319. package/dist/packages/ui-core/src/contracts/context-menu.js +0 -1
  320. package/dist/packages/ui-core/src/contracts/dialog.d.ts +0 -14
  321. package/dist/packages/ui-core/src/contracts/dialog.d.ts.map +0 -1
  322. package/dist/packages/ui-core/src/contracts/dialog.js +0 -3
  323. package/dist/packages/ui-core/src/contracts/drawer.d.ts +0 -32
  324. package/dist/packages/ui-core/src/contracts/drawer.d.ts.map +0 -1
  325. package/dist/packages/ui-core/src/contracts/drawer.js +0 -1
  326. package/dist/packages/ui-core/src/contracts/dropdown-menu.d.ts +0 -74
  327. package/dist/packages/ui-core/src/contracts/dropdown-menu.d.ts.map +0 -1
  328. package/dist/packages/ui-core/src/contracts/dropdown-menu.js +0 -1
  329. package/dist/packages/ui-core/src/contracts/form.d.ts +0 -24
  330. package/dist/packages/ui-core/src/contracts/form.d.ts.map +0 -1
  331. package/dist/packages/ui-core/src/contracts/form.js +0 -1
  332. package/dist/packages/ui-core/src/contracts/hover-card.d.ts +0 -19
  333. package/dist/packages/ui-core/src/contracts/hover-card.d.ts.map +0 -1
  334. package/dist/packages/ui-core/src/contracts/hover-card.js +0 -1
  335. package/dist/packages/ui-core/src/contracts/input.d.ts +0 -6
  336. package/dist/packages/ui-core/src/contracts/input.d.ts.map +0 -1
  337. package/dist/packages/ui-core/src/contracts/input.js +0 -3
  338. package/dist/packages/ui-core/src/contracts/label.d.ts +0 -7
  339. package/dist/packages/ui-core/src/contracts/label.d.ts.map +0 -1
  340. package/dist/packages/ui-core/src/contracts/label.js +0 -1
  341. package/dist/packages/ui-core/src/contracts/menubar.d.ts +0 -74
  342. package/dist/packages/ui-core/src/contracts/menubar.d.ts.map +0 -1
  343. package/dist/packages/ui-core/src/contracts/menubar.js +0 -1
  344. package/dist/packages/ui-core/src/contracts/navigation-menu.d.ts +0 -48
  345. package/dist/packages/ui-core/src/contracts/navigation-menu.d.ts.map +0 -1
  346. package/dist/packages/ui-core/src/contracts/navigation-menu.js +0 -1
  347. package/dist/packages/ui-core/src/contracts/pagination.d.ts +0 -32
  348. package/dist/packages/ui-core/src/contracts/pagination.d.ts.map +0 -1
  349. package/dist/packages/ui-core/src/contracts/pagination.js +0 -1
  350. package/dist/packages/ui-core/src/contracts/popover.d.ts +0 -25
  351. package/dist/packages/ui-core/src/contracts/popover.d.ts.map +0 -1
  352. package/dist/packages/ui-core/src/contracts/popover.js +0 -1
  353. package/dist/packages/ui-core/src/contracts/progress.d.ts +0 -5
  354. package/dist/packages/ui-core/src/contracts/progress.d.ts.map +0 -1
  355. package/dist/packages/ui-core/src/contracts/progress.js +0 -1
  356. package/dist/packages/ui-core/src/contracts/radio.d.ts +0 -10
  357. package/dist/packages/ui-core/src/contracts/radio.d.ts.map +0 -1
  358. package/dist/packages/ui-core/src/contracts/radio.js +0 -3
  359. package/dist/packages/ui-core/src/contracts/resizable.d.ts +0 -39
  360. package/dist/packages/ui-core/src/contracts/resizable.d.ts.map +0 -1
  361. package/dist/packages/ui-core/src/contracts/resizable.js +0 -1
  362. package/dist/packages/ui-core/src/contracts/scroll-area.d.ts +0 -14
  363. package/dist/packages/ui-core/src/contracts/scroll-area.d.ts.map +0 -1
  364. package/dist/packages/ui-core/src/contracts/scroll-area.js +0 -1
  365. package/dist/packages/ui-core/src/contracts/search.d.ts +0 -12
  366. package/dist/packages/ui-core/src/contracts/search.d.ts.map +0 -1
  367. package/dist/packages/ui-core/src/contracts/search.js +0 -1
  368. package/dist/packages/ui-core/src/contracts/select.d.ts +0 -55
  369. package/dist/packages/ui-core/src/contracts/select.d.ts.map +0 -1
  370. package/dist/packages/ui-core/src/contracts/select.js +0 -1
  371. package/dist/packages/ui-core/src/contracts/separator.d.ts +0 -6
  372. package/dist/packages/ui-core/src/contracts/separator.d.ts.map +0 -1
  373. package/dist/packages/ui-core/src/contracts/separator.js +0 -1
  374. package/dist/packages/ui-core/src/contracts/sheet.d.ts +0 -49
  375. package/dist/packages/ui-core/src/contracts/sheet.d.ts.map +0 -1
  376. package/dist/packages/ui-core/src/contracts/sheet.js +0 -1
  377. package/dist/packages/ui-core/src/contracts/skeleton.d.ts +0 -6
  378. package/dist/packages/ui-core/src/contracts/skeleton.d.ts.map +0 -1
  379. package/dist/packages/ui-core/src/contracts/skeleton.js +0 -1
  380. package/dist/packages/ui-core/src/contracts/slider.d.ts +0 -16
  381. package/dist/packages/ui-core/src/contracts/slider.d.ts.map +0 -1
  382. package/dist/packages/ui-core/src/contracts/slider.js +0 -1
  383. package/dist/packages/ui-core/src/contracts/sonner.d.ts.map +0 -1
  384. package/dist/packages/ui-core/src/contracts/sonner.js +0 -1
  385. package/dist/packages/ui-core/src/contracts/switch.d.ts +0 -12
  386. package/dist/packages/ui-core/src/contracts/switch.d.ts.map +0 -1
  387. package/dist/packages/ui-core/src/contracts/switch.js +0 -1
  388. package/dist/packages/ui-core/src/contracts/table.d.ts +0 -34
  389. package/dist/packages/ui-core/src/contracts/table.d.ts.map +0 -1
  390. package/dist/packages/ui-core/src/contracts/table.js +0 -1
  391. package/dist/packages/ui-core/src/contracts/tabs.d.ts +0 -28
  392. package/dist/packages/ui-core/src/contracts/tabs.d.ts.map +0 -1
  393. package/dist/packages/ui-core/src/contracts/tabs.js +0 -1
  394. package/dist/packages/ui-core/src/contracts/text.d.ts +0 -7
  395. package/dist/packages/ui-core/src/contracts/text.d.ts.map +0 -1
  396. package/dist/packages/ui-core/src/contracts/text.js +0 -3
  397. package/dist/packages/ui-core/src/contracts/textarea.d.ts +0 -8
  398. package/dist/packages/ui-core/src/contracts/textarea.d.ts.map +0 -1
  399. package/dist/packages/ui-core/src/contracts/textarea.js +0 -1
  400. package/dist/packages/ui-core/src/contracts/theme-provider.d.ts +0 -14
  401. package/dist/packages/ui-core/src/contracts/theme-provider.d.ts.map +0 -1
  402. package/dist/packages/ui-core/src/contracts/theme-provider.js +0 -1
  403. package/dist/packages/ui-core/src/contracts/theme-toggle.d.ts.map +0 -1
  404. package/dist/packages/ui-core/src/contracts/theme-toggle.js +0 -1
  405. package/dist/packages/ui-core/src/contracts/toast.d.ts +0 -11
  406. package/dist/packages/ui-core/src/contracts/toast.d.ts.map +0 -1
  407. package/dist/packages/ui-core/src/contracts/toast.js +0 -3
  408. package/dist/packages/ui-core/src/contracts/toaster.d.ts +0 -4
  409. package/dist/packages/ui-core/src/contracts/toaster.d.ts.map +0 -1
  410. package/dist/packages/ui-core/src/contracts/toaster.js +0 -1
  411. package/dist/packages/ui-core/src/contracts/toggle-group.d.ts +0 -22
  412. package/dist/packages/ui-core/src/contracts/toggle-group.d.ts.map +0 -1
  413. package/dist/packages/ui-core/src/contracts/toggle-group.js +0 -1
  414. package/dist/packages/ui-core/src/contracts/toggle.d.ts +0 -29
  415. package/dist/packages/ui-core/src/contracts/toggle.d.ts.map +0 -1
  416. package/dist/packages/ui-core/src/contracts/toggle.js +0 -29
  417. package/dist/packages/ui-core/src/contracts/tooltip.d.ts +0 -25
  418. package/dist/packages/ui-core/src/contracts/tooltip.d.ts.map +0 -1
  419. package/dist/packages/ui-core/src/contracts/tooltip.js +0 -1
  420. package/dist/packages/ui-core/src/index.d.ts +0 -55
  421. package/dist/packages/ui-core/src/index.d.ts.map +0 -1
  422. package/dist/packages/ui-core/src/index.js +0 -12
  423. package/dist/packages/ui-native/src/accordion.d.ts +0 -46
  424. package/dist/packages/ui-native/src/accordion.d.ts.map +0 -1
  425. package/dist/packages/ui-native/src/accordion.js +0 -34
  426. package/dist/packages/ui-native/src/alert-dialog.d.ts +0 -59
  427. package/dist/packages/ui-native/src/alert-dialog.d.ts.map +0 -1
  428. package/dist/packages/ui-native/src/alert-dialog.js +0 -31
  429. package/dist/packages/ui-native/src/alert.d.ts +0 -10
  430. package/dist/packages/ui-native/src/alert.d.ts.map +0 -1
  431. package/dist/packages/ui-native/src/alert.js +0 -26
  432. package/dist/packages/ui-native/src/aspect-ratio.d.ts +0 -2
  433. package/dist/packages/ui-native/src/aspect-ratio.d.ts.map +0 -1
  434. package/dist/packages/ui-native/src/aspect-ratio.js +0 -5
  435. package/dist/packages/ui-native/src/avatar.d.ts +0 -15
  436. package/dist/packages/ui-native/src/avatar.d.ts.map +0 -1
  437. package/dist/packages/ui-native/src/avatar.js +0 -11
  438. package/dist/packages/ui-native/src/badge.d.ts +0 -12
  439. package/dist/packages/ui-native/src/badge.d.ts.map +0 -1
  440. package/dist/packages/ui-native/src/badge.js +0 -37
  441. package/dist/packages/ui-native/src/breadcrumb.d.ts +0 -2
  442. package/dist/packages/ui-native/src/breadcrumb.d.ts.map +0 -1
  443. package/dist/packages/ui-native/src/breadcrumb.js +0 -5
  444. package/dist/packages/ui-native/src/button.d.ts +0 -14
  445. package/dist/packages/ui-native/src/button.d.ts.map +0 -1
  446. package/dist/packages/ui-native/src/button.js +0 -50
  447. package/dist/packages/ui-native/src/calendar.d.ts +0 -2
  448. package/dist/packages/ui-native/src/calendar.d.ts.map +0 -1
  449. package/dist/packages/ui-native/src/calendar.js +0 -5
  450. package/dist/packages/ui-native/src/card.d.ts +0 -13
  451. package/dist/packages/ui-native/src/card.d.ts.map +0 -1
  452. package/dist/packages/ui-native/src/card.js +0 -18
  453. package/dist/packages/ui-native/src/carousel.d.ts +0 -2
  454. package/dist/packages/ui-native/src/carousel.d.ts.map +0 -1
  455. package/dist/packages/ui-native/src/carousel.js +0 -5
  456. package/dist/packages/ui-native/src/chart.d.ts +0 -2
  457. package/dist/packages/ui-native/src/chart.d.ts.map +0 -1
  458. package/dist/packages/ui-native/src/chart.js +0 -5
  459. package/dist/packages/ui-native/src/checkbox.d.ts +0 -15
  460. package/dist/packages/ui-native/src/checkbox.d.ts.map +0 -1
  461. package/dist/packages/ui-native/src/checkbox.js +0 -11
  462. package/dist/packages/ui-native/src/collapsible.d.ts +0 -21
  463. package/dist/packages/ui-native/src/collapsible.d.ts.map +0 -1
  464. package/dist/packages/ui-native/src/collapsible.js +0 -5
  465. package/dist/packages/ui-native/src/command.d.ts +0 -2
  466. package/dist/packages/ui-native/src/command.d.ts.map +0 -1
  467. package/dist/packages/ui-native/src/command.js +0 -5
  468. package/dist/packages/ui-native/src/context-menu.d.ts +0 -2
  469. package/dist/packages/ui-native/src/context-menu.d.ts.map +0 -1
  470. package/dist/packages/ui-native/src/context-menu.js +0 -5
  471. package/dist/packages/ui-native/src/dialog.d.ts +0 -56
  472. package/dist/packages/ui-native/src/dialog.d.ts.map +0 -1
  473. package/dist/packages/ui-native/src/dialog.js +0 -28
  474. package/dist/packages/ui-native/src/drawer.d.ts +0 -2
  475. package/dist/packages/ui-native/src/drawer.d.ts.map +0 -1
  476. package/dist/packages/ui-native/src/drawer.js +0 -5
  477. package/dist/packages/ui-native/src/dropdown-menu.d.ts +0 -2
  478. package/dist/packages/ui-native/src/dropdown-menu.d.ts.map +0 -1
  479. package/dist/packages/ui-native/src/dropdown-menu.js +0 -5
  480. package/dist/packages/ui-native/src/form.d.ts +0 -2
  481. package/dist/packages/ui-native/src/form.d.ts.map +0 -1
  482. package/dist/packages/ui-native/src/form.js +0 -5
  483. package/dist/packages/ui-native/src/hover-card.d.ts +0 -2
  484. package/dist/packages/ui-native/src/hover-card.d.ts.map +0 -1
  485. package/dist/packages/ui-native/src/hover-card.js +0 -5
  486. package/dist/packages/ui-native/src/index.d.ts +0 -61
  487. package/dist/packages/ui-native/src/index.d.ts.map +0 -1
  488. package/dist/packages/ui-native/src/index.js +0 -107
  489. package/dist/packages/ui-native/src/input.d.ts +0 -8
  490. package/dist/packages/ui-native/src/input.d.ts.map +0 -1
  491. package/dist/packages/ui-native/src/input.js +0 -9
  492. package/dist/packages/ui-native/src/label.d.ts +0 -9
  493. package/dist/packages/ui-native/src/label.d.ts.map +0 -1
  494. package/dist/packages/ui-native/src/label.js +0 -7
  495. package/dist/packages/ui-native/src/lib/render-native.d.ts +0 -4
  496. package/dist/packages/ui-native/src/lib/render-native.d.ts.map +0 -1
  497. package/dist/packages/ui-native/src/lib/render-native.js +0 -13
  498. package/dist/packages/ui-native/src/lib/utils.d.ts +0 -3
  499. package/dist/packages/ui-native/src/lib/utils.d.ts.map +0 -1
  500. package/dist/packages/ui-native/src/lib/utils.js +0 -5
  501. package/dist/packages/ui-native/src/menubar.d.ts +0 -2
  502. package/dist/packages/ui-native/src/menubar.d.ts.map +0 -1
  503. package/dist/packages/ui-native/src/menubar.js +0 -5
  504. package/dist/packages/ui-native/src/navigation-menu.d.ts +0 -2
  505. package/dist/packages/ui-native/src/navigation-menu.d.ts.map +0 -1
  506. package/dist/packages/ui-native/src/navigation-menu.js +0 -5
  507. package/dist/packages/ui-native/src/pagination.d.ts +0 -2
  508. package/dist/packages/ui-native/src/pagination.d.ts.map +0 -1
  509. package/dist/packages/ui-native/src/pagination.js +0 -5
  510. package/dist/packages/ui-native/src/popover.d.ts +0 -2
  511. package/dist/packages/ui-native/src/popover.d.ts.map +0 -1
  512. package/dist/packages/ui-native/src/popover.js +0 -5
  513. package/dist/packages/ui-native/src/progress.d.ts +0 -2
  514. package/dist/packages/ui-native/src/progress.d.ts.map +0 -1
  515. package/dist/packages/ui-native/src/progress.js +0 -5
  516. package/dist/packages/ui-native/src/radio-group.d.ts +0 -11
  517. package/dist/packages/ui-native/src/radio-group.d.ts.map +0 -1
  518. package/dist/packages/ui-native/src/radio-group.js +0 -14
  519. package/dist/packages/ui-native/src/resizable.d.ts +0 -4
  520. package/dist/packages/ui-native/src/resizable.d.ts.map +0 -1
  521. package/dist/packages/ui-native/src/resizable.js +0 -11
  522. package/dist/packages/ui-native/src/scroll-area.d.ts +0 -2
  523. package/dist/packages/ui-native/src/scroll-area.d.ts.map +0 -1
  524. package/dist/packages/ui-native/src/scroll-area.js +0 -5
  525. package/dist/packages/ui-native/src/search.d.ts +0 -3
  526. package/dist/packages/ui-native/src/search.d.ts.map +0 -1
  527. package/dist/packages/ui-native/src/search.js +0 -8
  528. package/dist/packages/ui-native/src/select.d.ts +0 -57
  529. package/dist/packages/ui-native/src/select.d.ts.map +0 -1
  530. package/dist/packages/ui-native/src/select.js +0 -45
  531. package/dist/packages/ui-native/src/separator.d.ts +0 -9
  532. package/dist/packages/ui-native/src/separator.d.ts.map +0 -1
  533. package/dist/packages/ui-native/src/separator.js +0 -7
  534. package/dist/packages/ui-native/src/sheet.d.ts +0 -53
  535. package/dist/packages/ui-native/src/sheet.d.ts.map +0 -1
  536. package/dist/packages/ui-native/src/sheet.js +0 -37
  537. package/dist/packages/ui-native/src/skeleton.d.ts +0 -5
  538. package/dist/packages/ui-native/src/skeleton.d.ts.map +0 -1
  539. package/dist/packages/ui-native/src/skeleton.js +0 -15
  540. package/dist/packages/ui-native/src/slider.d.ts +0 -2
  541. package/dist/packages/ui-native/src/slider.d.ts.map +0 -1
  542. package/dist/packages/ui-native/src/slider.js +0 -5
  543. package/dist/packages/ui-native/src/sonner.d.ts +0 -2
  544. package/dist/packages/ui-native/src/sonner.d.ts.map +0 -1
  545. package/dist/packages/ui-native/src/sonner.js +0 -5
  546. package/dist/packages/ui-native/src/switch.d.ts +0 -8
  547. package/dist/packages/ui-native/src/switch.d.ts.map +0 -1
  548. package/dist/packages/ui-native/src/switch.js +0 -7
  549. package/dist/packages/ui-native/src/table.d.ts +0 -12
  550. package/dist/packages/ui-native/src/table.d.ts.map +0 -1
  551. package/dist/packages/ui-native/src/table.js +0 -22
  552. package/dist/packages/ui-native/src/tabs.d.ts +0 -25
  553. package/dist/packages/ui-native/src/tabs.d.ts.map +0 -1
  554. package/dist/packages/ui-native/src/tabs.js +0 -16
  555. package/dist/packages/ui-native/src/text.d.ts +0 -13
  556. package/dist/packages/ui-native/src/text.d.ts.map +0 -1
  557. package/dist/packages/ui-native/src/text.js +0 -29
  558. package/dist/packages/ui-native/src/textarea.d.ts +0 -6
  559. package/dist/packages/ui-native/src/textarea.d.ts.map +0 -1
  560. package/dist/packages/ui-native/src/textarea.js +0 -9
  561. package/dist/packages/ui-native/src/theme-provider.d.ts +0 -5
  562. package/dist/packages/ui-native/src/theme-provider.d.ts.map +0 -1
  563. package/dist/packages/ui-native/src/theme-provider.js +0 -5
  564. package/dist/packages/ui-native/src/theme-toggle.d.ts +0 -2
  565. package/dist/packages/ui-native/src/theme-toggle.d.ts.map +0 -1
  566. package/dist/packages/ui-native/src/theme-toggle.js +0 -5
  567. package/dist/packages/ui-native/src/toast.d.ts +0 -35
  568. package/dist/packages/ui-native/src/toast.d.ts.map +0 -1
  569. package/dist/packages/ui-native/src/toast.js +0 -23
  570. package/dist/packages/ui-native/src/toaster.d.ts +0 -2
  571. package/dist/packages/ui-native/src/toaster.d.ts.map +0 -1
  572. package/dist/packages/ui-native/src/toaster.js +0 -5
  573. package/dist/packages/ui-native/src/toggle-group.d.ts +0 -11
  574. package/dist/packages/ui-native/src/toggle-group.d.ts.map +0 -1
  575. package/dist/packages/ui-native/src/toggle-group.js +0 -25
  576. package/dist/packages/ui-native/src/toggle.d.ts +0 -8
  577. package/dist/packages/ui-native/src/toggle.d.ts.map +0 -1
  578. package/dist/packages/ui-native/src/toggle.js +0 -9
  579. package/dist/packages/ui-native/src/tooltip.d.ts +0 -27
  580. package/dist/packages/ui-native/src/tooltip.d.ts.map +0 -1
  581. package/dist/packages/ui-native/src/tooltip.js +0 -15
  582. package/dist/packages/ui-web/src/accordion.d.ts +0 -10
  583. package/dist/packages/ui-web/src/accordion.d.ts.map +0 -1
  584. package/dist/packages/ui-web/src/accordion.js +0 -13
  585. package/dist/packages/ui-web/src/alert-dialog.d.ts +0 -23
  586. package/dist/packages/ui-web/src/alert-dialog.d.ts.map +0 -1
  587. package/dist/packages/ui-web/src/alert-dialog.js +0 -25
  588. package/dist/packages/ui-web/src/alert.d.ts +0 -11
  589. package/dist/packages/ui-web/src/alert.d.ts.map +0 -1
  590. package/dist/packages/ui-web/src/alert.js +0 -24
  591. package/dist/packages/ui-web/src/aspect-ratio.d.ts +0 -6
  592. package/dist/packages/ui-web/src/aspect-ratio.d.ts.map +0 -1
  593. package/dist/packages/ui-web/src/aspect-ratio.js +0 -3
  594. package/dist/packages/ui-web/src/avatar.d.ts +0 -9
  595. package/dist/packages/ui-web/src/avatar.d.ts.map +0 -1
  596. package/dist/packages/ui-web/src/avatar.js +0 -11
  597. package/dist/packages/ui-web/src/badge.d.ts +0 -11
  598. package/dist/packages/ui-web/src/badge.d.ts.map +0 -1
  599. package/dist/packages/ui-web/src/badge.js +0 -20
  600. package/dist/packages/ui-web/src/breadcrumb.d.ts +0 -20
  601. package/dist/packages/ui-web/src/breadcrumb.d.ts.map +0 -1
  602. package/dist/packages/ui-web/src/breadcrumb.js +0 -23
  603. package/dist/packages/ui-web/src/button.d.ts +0 -13
  604. package/dist/packages/ui-web/src/button.d.ts.map +0 -1
  605. package/dist/packages/ui-web/src/button.js +0 -33
  606. package/dist/packages/ui-web/src/calendar.d.ts +0 -11
  607. package/dist/packages/ui-web/src/calendar.d.ts.map +0 -1
  608. package/dist/packages/ui-web/src/calendar.js +0 -70
  609. package/dist/packages/ui-web/src/card.d.ts +0 -12
  610. package/dist/packages/ui-web/src/card.d.ts.map +0 -1
  611. package/dist/packages/ui-web/src/card.js +0 -16
  612. package/dist/packages/ui-web/src/carousel.d.ts +0 -24
  613. package/dist/packages/ui-web/src/carousel.d.ts.map +0 -1
  614. package/dist/packages/ui-web/src/carousel.js +0 -98
  615. package/dist/packages/ui-web/src/chart.d.ts +0 -39
  616. package/dist/packages/ui-web/src/chart.d.ts.map +0 -1
  617. package/dist/packages/ui-web/src/chart.js +0 -120
  618. package/dist/packages/ui-web/src/checkbox.d.ts +0 -8
  619. package/dist/packages/ui-web/src/checkbox.d.ts.map +0 -1
  620. package/dist/packages/ui-web/src/checkbox.js +0 -8
  621. package/dist/packages/ui-web/src/collapsible.d.ts +0 -8
  622. package/dist/packages/ui-web/src/collapsible.d.ts.map +0 -1
  623. package/dist/packages/ui-web/src/collapsible.js +0 -5
  624. package/dist/packages/ui-web/src/command.d.ts +0 -83
  625. package/dist/packages/ui-web/src/command.d.ts.map +0 -1
  626. package/dist/packages/ui-web/src/command.js +0 -29
  627. package/dist/packages/ui-web/src/context-menu.d.ts +0 -24
  628. package/dist/packages/ui-web/src/context-menu.d.ts.map +0 -1
  629. package/dist/packages/ui-web/src/context-menu.js +0 -32
  630. package/dist/packages/ui-web/src/dialog.d.ts +0 -20
  631. package/dist/packages/ui-web/src/dialog.d.ts.map +0 -1
  632. package/dist/packages/ui-web/src/dialog.js +0 -22
  633. package/dist/packages/ui-web/src/drawer.d.ts +0 -25
  634. package/dist/packages/ui-web/src/drawer.d.ts.map +0 -1
  635. package/dist/packages/ui-web/src/drawer.js +0 -23
  636. package/dist/packages/ui-web/src/dropdown-menu.d.ts +0 -24
  637. package/dist/packages/ui-web/src/dropdown-menu.d.ts.map +0 -1
  638. package/dist/packages/ui-web/src/dropdown-menu.js +0 -33
  639. package/dist/packages/ui-web/src/form.d.ts +0 -26
  640. package/dist/packages/ui-web/src/form.d.ts.map +0 -1
  641. package/dist/packages/ui-web/src/form.js +0 -64
  642. package/dist/packages/ui-web/src/hooks/use-theme.d.ts +0 -52
  643. package/dist/packages/ui-web/src/hooks/use-theme.d.ts.map +0 -1
  644. package/dist/packages/ui-web/src/hooks/use-theme.js +0 -12
  645. package/dist/packages/ui-web/src/hooks/use-toast.d.ts +0 -45
  646. package/dist/packages/ui-web/src/hooks/use-toast.d.ts.map +0 -1
  647. package/dist/packages/ui-web/src/hooks/use-toast.js +0 -128
  648. package/dist/packages/ui-web/src/hover-card.d.ts +0 -9
  649. package/dist/packages/ui-web/src/hover-card.d.ts.map +0 -1
  650. package/dist/packages/ui-web/src/hover-card.js +0 -10
  651. package/dist/packages/ui-web/src/index.d.ts +0 -101
  652. package/dist/packages/ui-web/src/index.d.ts.map +0 -1
  653. package/dist/packages/ui-web/src/index.js +0 -106
  654. package/dist/packages/ui-web/src/input.d.ts +0 -7
  655. package/dist/packages/ui-web/src/input.d.ts.map +0 -1
  656. package/dist/packages/ui-web/src/input.js +0 -8
  657. package/dist/packages/ui-web/src/label.d.ts +0 -8
  658. package/dist/packages/ui-web/src/label.d.ts.map +0 -1
  659. package/dist/packages/ui-web/src/label.js +0 -10
  660. package/dist/packages/ui-web/src/lib/utils.d.ts +0 -3
  661. package/dist/packages/ui-web/src/lib/utils.d.ts.map +0 -1
  662. package/dist/packages/ui-web/src/lib/utils.js +0 -5
  663. package/dist/packages/ui-web/src/menubar.d.ts +0 -25
  664. package/dist/packages/ui-web/src/menubar.d.ts.map +0 -1
  665. package/dist/packages/ui-web/src/menubar.js +0 -46
  666. package/dist/packages/ui-web/src/navigation-menu.d.ts +0 -15
  667. package/dist/packages/ui-web/src/navigation-menu.d.ts.map +0 -1
  668. package/dist/packages/ui-web/src/navigation-menu.js +0 -23
  669. package/dist/packages/ui-web/src/pagination.d.ts +0 -31
  670. package/dist/packages/ui-web/src/pagination.d.ts.map +0 -1
  671. package/dist/packages/ui-web/src/pagination.js +0 -23
  672. package/dist/packages/ui-web/src/popover.d.ts +0 -10
  673. package/dist/packages/ui-web/src/popover.d.ts.map +0 -1
  674. package/dist/packages/ui-web/src/popover.js +0 -11
  675. package/dist/packages/ui-web/src/progress.d.ts +0 -7
  676. package/dist/packages/ui-web/src/progress.d.ts.map +0 -1
  677. package/dist/packages/ui-web/src/progress.js +0 -8
  678. package/dist/packages/ui-web/src/radio-group.d.ts +0 -11
  679. package/dist/packages/ui-web/src/radio-group.d.ts.map +0 -1
  680. package/dist/packages/ui-web/src/radio-group.js +0 -14
  681. package/dist/packages/ui-web/src/resizable.d.ts +0 -9
  682. package/dist/packages/ui-web/src/resizable.d.ts.map +0 -1
  683. package/dist/packages/ui-web/src/resizable.js +0 -17
  684. package/dist/packages/ui-web/src/scroll-area.d.ts +0 -8
  685. package/dist/packages/ui-web/src/scroll-area.d.ts.map +0 -1
  686. package/dist/packages/ui-web/src/scroll-area.js +0 -10
  687. package/dist/packages/ui-web/src/search.d.ts +0 -8
  688. package/dist/packages/ui-web/src/search.d.ts.map +0 -1
  689. package/dist/packages/ui-web/src/search.js +0 -48
  690. package/dist/packages/ui-web/src/select.d.ts +0 -16
  691. package/dist/packages/ui-web/src/select.d.ts.map +0 -1
  692. package/dist/packages/ui-web/src/select.js +0 -26
  693. package/dist/packages/ui-web/src/separator.d.ts +0 -7
  694. package/dist/packages/ui-web/src/separator.d.ts.map +0 -1
  695. package/dist/packages/ui-web/src/separator.js +0 -8
  696. package/dist/packages/ui-web/src/sheet.d.ts +0 -28
  697. package/dist/packages/ui-web/src/sheet.d.ts.map +0 -1
  698. package/dist/packages/ui-web/src/sheet.js +0 -37
  699. package/dist/packages/ui-web/src/skeleton.d.ts +0 -6
  700. package/dist/packages/ui-web/src/skeleton.d.ts.map +0 -1
  701. package/dist/packages/ui-web/src/skeleton.js +0 -6
  702. package/dist/packages/ui-web/src/slider.d.ts +0 -7
  703. package/dist/packages/ui-web/src/slider.d.ts.map +0 -1
  704. package/dist/packages/ui-web/src/slider.js +0 -8
  705. package/dist/packages/ui-web/src/sonner.d.ts +0 -8
  706. package/dist/packages/ui-web/src/sonner.d.ts.map +0 -1
  707. package/dist/packages/ui-web/src/sonner.js +0 -16
  708. package/dist/packages/ui-web/src/switch.d.ts +0 -7
  709. package/dist/packages/ui-web/src/switch.d.ts.map +0 -1
  710. package/dist/packages/ui-web/src/switch.js +0 -8
  711. package/dist/packages/ui-web/src/table.d.ts +0 -13
  712. package/dist/packages/ui-web/src/table.d.ts.map +0 -1
  713. package/dist/packages/ui-web/src/table.js +0 -21
  714. package/dist/packages/ui-web/src/tabs.d.ts +0 -10
  715. package/dist/packages/ui-web/src/tabs.d.ts.map +0 -1
  716. package/dist/packages/ui-web/src/tabs.js +0 -13
  717. package/dist/packages/ui-web/src/text.d.ts +0 -12
  718. package/dist/packages/ui-web/src/text.d.ts.map +0 -1
  719. package/dist/packages/ui-web/src/text.js +0 -40
  720. package/dist/packages/ui-web/src/textarea.d.ts +0 -7
  721. package/dist/packages/ui-web/src/textarea.d.ts.map +0 -1
  722. package/dist/packages/ui-web/src/textarea.js +0 -9
  723. package/dist/packages/ui-web/src/theme-provider.d.ts +0 -5
  724. package/dist/packages/ui-web/src/theme-provider.d.ts.map +0 -1
  725. package/dist/packages/ui-web/src/theme-provider.js +0 -6
  726. package/dist/packages/ui-web/src/theme-toggle.d.ts +0 -4
  727. package/dist/packages/ui-web/src/theme-toggle.d.ts.map +0 -1
  728. package/dist/packages/ui-web/src/theme-toggle.js +0 -29
  729. package/dist/packages/ui-web/src/toast.d.ts +0 -16
  730. package/dist/packages/ui-web/src/toast.d.ts.map +0 -1
  731. package/dist/packages/ui-web/src/toast.js +0 -33
  732. package/dist/packages/ui-web/src/toaster.d.ts +0 -3
  733. package/dist/packages/ui-web/src/toaster.d.ts.map +0 -1
  734. package/dist/packages/ui-web/src/toaster.js +0 -10
  735. package/dist/packages/ui-web/src/toggle-group.d.ts +0 -13
  736. package/dist/packages/ui-web/src/toggle-group.d.ts.map +0 -1
  737. package/dist/packages/ui-web/src/toggle-group.js +0 -21
  738. package/dist/packages/ui-web/src/toggle.d.ts +0 -9
  739. package/dist/packages/ui-web/src/toggle.d.ts.map +0 -1
  740. package/dist/packages/ui-web/src/toggle.js +0 -9
  741. package/dist/packages/ui-web/src/tooltip.d.ts +0 -13
  742. package/dist/packages/ui-web/src/tooltip.d.ts.map +0 -1
  743. package/dist/packages/ui-web/src/tooltip.js +0 -12
  744. package/dist/src/index.d.ts +0 -4
  745. package/dist/src/index.d.ts.map +0 -1
  746. package/dist/src/index.js +0 -3
  747. package/dist/toaster-BOqCGbZ6.js.map +0 -1
  748. package/dist/toaster-CmNmQ6jI.mjs.map +0 -1
  749. package/dist/utils-5NfNUIaP.js +0 -2
  750. package/dist/utils-BfGqxkzX.mjs +0 -8
  751. package/dist/vendor-B8N-rYkV.mjs.map +0 -1
  752. package/dist/vendor-D51Wvbw-.js +0 -68
  753. package/dist/vendor-D51Wvbw-.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./vendor-D51Wvbw-.js"),z=require("react"),j=require("./button.cjs.js"),d=require("./utils-5NfNUIaP.js");function D(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=D(z),N=o.createContext(null);function m(){const e=o.useContext(N);if(!e)throw new Error("useCarousel must be used within a <Carousel />");return e}const h=o.forwardRef(({orientation:e="horizontal",opts:r,setApi:t,plugins:n,className:c,children:u,...i},x)=>{const[y,s]=l.useEmblaCarousel({...r,axis:e==="horizontal"?"x":"y"},n),[E,P]=o.useState(!1),[S,g]=o.useState(!1),f=o.useCallback(a=>{a&&(P(a.canScrollPrev()),g(a.canScrollNext()))},[]),C=o.useCallback(()=>{s?.scrollPrev()},[s]),p=o.useCallback(()=>{s?.scrollNext()},[s]),k=o.useCallback(a=>{a.key==="ArrowLeft"?(a.preventDefault(),C()):a.key==="ArrowRight"&&(a.preventDefault(),p())},[C,p]);return o.useEffect(()=>{!s||!t||t(s)},[s,t]),o.useEffect(()=>{if(s)return f(s),s.on("reInit",f),s.on("select",f),()=>{s?.off("select",f)}},[s,f]),l.jsxRuntimeExports.jsx(N.Provider,{value:{carouselRef:y,api:s,opts:r,orientation:e||(r?.axis==="y"?"vertical":"horizontal"),scrollPrev:C,scrollNext:p,canScrollPrev:E,canScrollNext:S},children:l.jsxRuntimeExports.jsx("div",{ref:x,onKeyDownCapture:k,className:d.cn("relative",c),role:"region","aria-roledescription":"carousel",...i,children:u})})});h.displayName="Carousel";const v=o.forwardRef(({className:e,...r},t)=>{const{carouselRef:n,orientation:c}=m();return l.jsxRuntimeExports.jsx("div",{ref:n,className:"overflow-hidden",children:l.jsxRuntimeExports.jsx("div",{ref:t,className:d.cn("flex",c==="horizontal"?"-ml-4":"-mt-4 flex-col",e),...r})})});v.displayName="CarouselContent";const w=o.forwardRef(({className:e,...r},t)=>{const{orientation:n}=m();return l.jsxRuntimeExports.jsx("div",{ref:t,role:"group","aria-roledescription":"slide",className:d.cn("min-w-0 shrink-0 grow-0 basis-full",n==="horizontal"?"pl-4":"pt-4",e),...r})});w.displayName="CarouselItem";const R=o.forwardRef(({className:e,variant:r="outline",size:t="icon",...n},c)=>{const{orientation:u,scrollPrev:i,canScrollPrev:x}=m();return l.jsxRuntimeExports.jsxs(j.Button,{ref:c,variant:r,size:t,className:d.cn("absolute h-8 w-8 rounded-full",u==="horizontal"?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!x,onClick:i,...n,children:[l.jsxRuntimeExports.jsx(l.ArrowLeft,{className:"h-4 w-4"}),l.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Previous slide"})]})});R.displayName="CarouselPrevious";const b=o.forwardRef(({className:e,variant:r="outline",size:t="icon",...n},c)=>{const{orientation:u,scrollNext:i,canScrollNext:x}=m();return l.jsxRuntimeExports.jsxs(j.Button,{ref:c,variant:r,size:t,className:d.cn("absolute h-8 w-8 rounded-full",u==="horizontal"?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!x,onClick:i,...n,children:[l.jsxRuntimeExports.jsx(l.ArrowRight,{className:"h-4 w-4"}),l.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Next slide"})]})});b.displayName="CarouselNext";exports.Carousel=h;exports.CarouselContent=v;exports.CarouselItem=w;exports.CarouselNext=b;exports.CarouselPrevious=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./vendor-DQFuDa7q.js"),z=require("react"),j=require("./button.cjs.js"),d=require("./utils-DKStzUzN.js");function D(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=D(z),N=o.createContext(null);function m(){const e=o.useContext(N);if(!e)throw new Error("useCarousel must be used within a <Carousel />");return e}const h=o.forwardRef(({orientation:e="horizontal",opts:r,setApi:t,plugins:n,className:c,children:u,...i},x)=>{const[y,s]=l.useEmblaCarousel({...r,axis:e==="horizontal"?"x":"y"},n),[E,P]=o.useState(!1),[S,g]=o.useState(!1),f=o.useCallback(a=>{a&&(P(a.canScrollPrev()),g(a.canScrollNext()))},[]),C=o.useCallback(()=>{s?.scrollPrev()},[s]),p=o.useCallback(()=>{s?.scrollNext()},[s]),k=o.useCallback(a=>{a.key==="ArrowLeft"?(a.preventDefault(),C()):a.key==="ArrowRight"&&(a.preventDefault(),p())},[C,p]);return o.useEffect(()=>{!s||!t||t(s)},[s,t]),o.useEffect(()=>{if(s)return f(s),s.on("reInit",f),s.on("select",f),()=>{s?.off("select",f)}},[s,f]),l.jsxRuntimeExports.jsx(N.Provider,{value:{carouselRef:y,api:s,opts:r,orientation:e||(r?.axis==="y"?"vertical":"horizontal"),scrollPrev:C,scrollNext:p,canScrollPrev:E,canScrollNext:S},children:l.jsxRuntimeExports.jsx("div",{ref:x,onKeyDownCapture:k,className:d.cn("relative",c),role:"region","aria-roledescription":"carousel",...i,children:u})})});h.displayName="Carousel";const v=o.forwardRef(({className:e,...r},t)=>{const{carouselRef:n,orientation:c}=m();return l.jsxRuntimeExports.jsx("div",{ref:n,className:"overflow-hidden",children:l.jsxRuntimeExports.jsx("div",{ref:t,className:d.cn("flex",c==="horizontal"?"-ml-4":"-mt-4 flex-col",e),...r})})});v.displayName="CarouselContent";const w=o.forwardRef(({className:e,...r},t)=>{const{orientation:n}=m();return l.jsxRuntimeExports.jsx("div",{ref:t,role:"group","aria-roledescription":"slide",className:d.cn("min-w-0 shrink-0 grow-0 basis-full",n==="horizontal"?"pl-4":"pt-4",e),...r})});w.displayName="CarouselItem";const R=o.forwardRef(({className:e,variant:r="outline",size:t="icon",...n},c)=>{const{orientation:u,scrollPrev:i,canScrollPrev:x}=m();return l.jsxRuntimeExports.jsxs(j.Button,{ref:c,variant:r,size:t,className:d.cn("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:!x,onClick:i,...n,children:[l.jsxRuntimeExports.jsx(l.ArrowLeft,{className:"h-4 w-4"}),l.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Previous slide"})]})});R.displayName="CarouselPrevious";const b=o.forwardRef(({className:e,variant:r="outline",size:t="icon",...n},c)=>{const{orientation:u,scrollNext:i,canScrollNext:x}=m();return l.jsxRuntimeExports.jsxs(j.Button,{ref:c,variant:r,size:t,className:d.cn("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:!x,onClick:i,...n,children:[l.jsxRuntimeExports.jsx(l.ArrowRight,{className:"h-4 w-4"}),l.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Next slide"})]})});b.displayName="CarouselNext";exports.Carousel=h;exports.CarouselContent=v;exports.CarouselItem=w;exports.CarouselNext=b;exports.CarouselPrevious=R;
2
2
  //# sourceMappingURL=carousel.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.cjs.js","sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import 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 ? '-left-12 top-1/2 -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 ? '-right-12 top-1/2 -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"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.cjs.js","sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import 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"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { ClassProp } from 'class-variance-authority/types';
2
+ import { default as default_2 } from 'embla-carousel-react';
3
+ import * as React_2 from 'react';
4
+ import { UseEmblaCarouselType } from 'embla-carousel-react';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ declare interface ButtonBaseProps {
8
+ disabled?: boolean;
9
+ className?: string;
10
+ children?: React.ReactNode;
11
+ }
12
+
13
+ declare interface ButtonProps extends React_2.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants>, ButtonBaseProps {
14
+ asChild?: boolean;
15
+ }
16
+
17
+ declare const buttonVariants: (props?: ({
18
+ variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
19
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
20
+ } & ClassProp) | undefined) => string;
21
+
22
+ export declare const Carousel: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLDivElement> & CarouselBaseProps & {
23
+ opts?: CarouselOptions;
24
+ plugins?: CarouselPlugin;
25
+ setApi?: (api: CarouselApi) => void;
26
+ } & React_2.RefAttributes<HTMLDivElement>>;
27
+
28
+ export declare type CarouselApi = UseEmblaCarouselType[1];
29
+
30
+ declare interface CarouselBaseProps {
31
+ className?: string;
32
+ children?: React_2.ReactNode;
33
+ orientation?: 'horizontal' | 'vertical';
34
+ }
35
+
36
+ export declare const CarouselContent: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLDivElement> & CarouselContentBaseProps & React_2.RefAttributes<HTMLDivElement>>;
37
+
38
+ declare interface CarouselContentBaseProps {
39
+ className?: string;
40
+ children?: React_2.ReactNode;
41
+ }
42
+
43
+ export declare const CarouselItem: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTMLDivElement> & CarouselItemBaseProps & React_2.RefAttributes<HTMLDivElement>>;
44
+
45
+ declare interface CarouselItemBaseProps {
46
+ className?: string;
47
+ children?: React_2.ReactNode;
48
+ }
49
+
50
+ export declare const CarouselNext: React_2.ForwardRefExoticComponent<Omit< ButtonProps & React_2.RefAttributes<HTMLButtonElement> & CarouselNextBaseProps, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
51
+
52
+ declare interface CarouselNextBaseProps {
53
+ className?: string;
54
+ variant?: string;
55
+ size?: string;
56
+ }
57
+
58
+ declare type CarouselOptions = UseCarouselParameters[0];
59
+
60
+ declare type CarouselPlugin = UseCarouselParameters[1];
61
+
62
+ export declare const CarouselPrevious: React_2.ForwardRefExoticComponent<Omit< ButtonProps & React_2.RefAttributes<HTMLButtonElement> & CarouselPreviousBaseProps, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
63
+
64
+ declare interface CarouselPreviousBaseProps {
65
+ className?: string;
66
+ variant?: string;
67
+ size?: string;
68
+ }
69
+
70
+ export declare type CarouselProps = React_2.HTMLAttributes<HTMLDivElement> & CarouselBaseProps & {
71
+ opts?: CarouselOptions;
72
+ plugins?: CarouselPlugin;
73
+ setApi?: (api: CarouselApi) => void;
74
+ };
75
+
76
+ declare type UseCarouselParameters = Parameters<typeof default_2>;
77
+
78
+ export { }
@@ -1,7 +1,7 @@
1
- import { u as R, j as t, p as S, q as k } from "./vendor-B8N-rYkV.mjs";
1
+ import { u as R, j as t, p as S, q as k } from "./vendor-DxBXMLEx.mjs";
2
2
  import * as e from "react";
3
3
  import { Button as N } from "./button.es.js";
4
- import { c as x } from "./utils-BfGqxkzX.mjs";
4
+ import { c as x } from "./utils-Dk-Gx69q.mjs";
5
5
  const w = e.createContext(null);
6
6
  function m() {
7
7
  const o = e.useContext(w);
@@ -103,8 +103,8 @@ const D = e.forwardRef(({ className: o, variant: l = "outline", size: s = "icon"
103
103
  variant: l,
104
104
  size: s,
105
105
  className: x(
106
- "absolute h-8 w-8 rounded-full",
107
- i === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
106
+ "absolute h-8 w-8 rounded-full",
107
+ i === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
108
108
  o
109
109
  ),
110
110
  disabled: !f,
@@ -129,7 +129,7 @@ const I = e.forwardRef(
129
129
  size: s,
130
130
  className: x(
131
131
  "absolute h-8 w-8 rounded-full",
132
- i === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
132
+ i === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
133
133
  o
134
134
  ),
135
135
  disabled: !f,
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.es.js","sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import 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 ? '-left-12 top-1/2 -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 ? '-right-12 top-1/2 -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"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":";;;;AAmCA,MAAMA,IAAkBC,EAAM,cAA2C,IAAI;AAE7E,SAASC,IAAc;AACrB,QAAMC,IAAUF,EAAM,WAAWD,CAAe;AAEhD,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,SAAOA;AACT;AAEA,MAAMC,IAAWH,EAAM;AAAA,EACrB,CAAC,EAAE,aAAAI,IAAc,cAAc,MAAAC,GAAM,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC7F,UAAM,CAACC,GAAaC,CAAG,IAAIC;AAAA,MACzB;AAAA,QACE,GAAGT;AAAA,QACH,MAAMD,MAAgB,eAAe,MAAM;AAAA,MAAA;AAAA,MAE7CG;AAAA,IAAA,GAEI,CAACQ,GAAeC,CAAgB,IAAIhB,EAAM,SAAS,EAAK,GACxD,CAACiB,GAAeC,CAAgB,IAAIlB,EAAM,SAAS,EAAK,GAExDmB,IAAWnB,EAAM,YAAY,CAACa,MAAqB;AACvD,MAAKA,MAILG,EAAiBH,EAAI,eAAe,GACpCK,EAAiBL,EAAI,eAAe;AAAA,IACtC,GAAG,CAAA,CAAE,GAECO,IAAapB,EAAM,YAAY,MAAM;AACzC,MAAAa,GAAK,WAAA;AAAA,IACP,GAAG,CAACA,CAAG,CAAC,GAEFQ,IAAarB,EAAM,YAAY,MAAM;AACzC,MAAAa,GAAK,WAAA;AAAA,IACP,GAAG,CAACA,CAAG,CAAC,GAEFS,IAAgBtB,EAAM;AAAA,MAC1B,CAACuB,MAA+C;AAC9C,QAAIA,EAAM,QAAQ,eAChBA,EAAM,eAAA,GACNH,EAAA,KACSG,EAAM,QAAQ,iBACvBA,EAAM,eAAA,GACNF,EAAA;AAAA,MAEJ;AAAA,MACA,CAACD,GAAYC,CAAU;AAAA,IAAA;AAGzB,WAAArB,EAAM,UAAU,MAAM;AACpB,MAAI,CAACa,KAAO,CAACP,KAIbA,EAAOO,CAAG;AAAA,IACZ,GAAG,CAACA,GAAKP,CAAM,CAAC,GAEhBN,EAAM,UAAU,MAAM;AACpB,UAAKa;AAIL,eAAAM,EAASN,CAAG,GACZA,EAAI,GAAG,UAAUM,CAAQ,GACzBN,EAAI,GAAG,UAAUM,CAAQ,GAElB,MAAM;AACX,UAAAN,GAAK,IAAI,UAAUM,CAAQ;AAAA,QAC7B;AAAA,IACF,GAAG,CAACN,GAAKM,CAAQ,CAAC,GAGhBK,gBAAAA,EAAAA;AAAAA,MAACzB,EAAgB;AAAA,MAAhB;AAAA,QACC,OAAO;AAAA,UACL,aAAAa;AAAA,UACA,KAAAC;AAAA,UACA,MAAAR;AAAA,UACA,aAAaD,MAAgBC,GAAM,SAAS,MAAM,aAAa;AAAA,UAC/D,YAAAe;AAAA,UACA,YAAAC;AAAA,UACA,eAAAN;AAAA,UACA,eAAAE;AAAA,QAAA;AAAA,QAGF,UAAAO,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAb;AAAA,YACA,kBAAkBW;AAAA,YAClB,WAAWG,EAAG,YAAYjB,CAAS;AAAA,YACnC,MAAK;AAAA,YACL,wBAAqB;AAAA,YACpB,GAAGE;AAAA,YAEH,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAGN;AACF;AACAN,EAAS,cAAc;AAEvB,MAAMuB,IAAkB1B,EAAM,WAG5B,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAClC,QAAM,EAAE,aAAAC,GAAa,aAAAR,EAAA,IAAgBH,EAAA;AAErC,SACEuB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,KAAKZ,GAAa,WAAU,mBAC/B,UAAAY,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAb;AAAA,MACA,WAAWc,EAAG,QAAQrB,MAAgB,eAAe,UAAU,kBAAkBI,CAAS;AAAA,MACzF,GAAGE;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ,CAAC;AACDgB,EAAgB,cAAc;AAE9B,MAAMC,IAAe3B,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAChC,UAAM,EAAE,aAAAP,EAAA,IAAgBH,EAAA;AAExB,WACEuB,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACA,MAAK;AAAA,QACL,wBAAqB;AAAA,QACrB,WAAWc,EAAG,sCAAsCrB,MAAgB,eAAe,SAAS,QAAQI,CAAS;AAAA,QAC5G,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AACAiB,EAAa,cAAc;AAE3B,MAAMC,IAAmB5B,EAAM,WAG7B,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACtE,QAAM,EAAE,aAAAP,GAAa,YAAAgB,GAAY,eAAAL,EAAA,IAAkBd,EAAA;AAEnD,SACE8B,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAArB;AAAA,MACA,SAAAkB;AAAA,MACA,MAAAC;AAAA,MACA,WAAWL;AAAA,QACT;AAAA,QACArB,MAAgB,eACZ,sCACA;AAAA,QACJI;AAAA,MAAA;AAAA,MAEF,UAAU,CAACO;AAAA,MACX,SAASK;AAAA,MACR,GAAGV;AAAA,MAEJ,UAAA;AAAA,QAAAc,gBAAAA,EAAAA,IAACS,GAAA,EAAU,WAAU,UAAA,CAAU;AAAA,QAC/BT,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,iBAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG9C,CAAC;AACDI,EAAiB,cAAc;AAE/B,MAAMM,IAAelC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACpE,UAAM,EAAE,aAAAP,GAAa,YAAAiB,GAAY,eAAAJ,EAAA,IAAkBhB,EAAA;AAEnD,WACE8B,gBAAAA,EAAAA;AAAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAArB;AAAA,QACA,SAAAkB;AAAA,QACA,MAAAC;AAAA,QACA,WAAWL;AAAA,UACT;AAAA,UACArB,MAAgB,eACZ,uCACA;AAAA,UACJI;AAAA,QAAA;AAAA,QAEF,UAAU,CAACS;AAAA,QACX,SAASI;AAAA,QACR,GAAGX;AAAA,QAEJ,UAAA;AAAA,UAAAc,gBAAAA,EAAAA,IAACW,GAAA,EAAW,WAAU,UAAA,CAAU;AAAA,UAChCX,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG1C;AACF;AACAU,EAAa,cAAc;"}
1
+ {"version":3,"file":"carousel.es.js","sources":["../packages/ui-web/src/carousel.tsx"],"sourcesContent":["import 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"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
package/dist/chart.cjs.js CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./vendor-D51Wvbw-.js"),$=require("react"),l=require("./utils-5NfNUIaP.js");function O(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>o[n]})}}return e.default=o,Object.freeze(e)}const x=O($),P={light:"",dark:".dark"},E=x.createContext(null);function y(){const o=x.useContext(E);if(!o)throw new Error("useChart must be used within a <ChartContainer />");return o}const _=x.forwardRef(({id:o,className:e,children:n,config:r,...a},u)=>{const i=x.useId(),c=`chart-${o||i.replace(/:/g,"")}`;return t.jsxRuntimeExports.jsx(E.Provider,{value:{config:r},children:t.jsxRuntimeExports.jsxs("div",{"data-chart":c,ref:u,className:l.cn("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",e),...a,children:[t.jsxRuntimeExports.jsx(w,{id:c,config:r}),t.jsxRuntimeExports.jsx(t.ResponsiveContainer,{children:n})]})})});_.displayName="Chart";const w=({id:o,config:e})=>{const n=Object.entries(e).filter(([,r])=>r.theme||r.color);return n.length?t.jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(P).map(([r,a])=>`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./vendor-DQFuDa7q.js"),$=require("react"),l=require("./utils-DKStzUzN.js");function O(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>o[n]})}}return e.default=o,Object.freeze(e)}const x=O($),P={light:"",dark:".dark"},E=x.createContext(null);function y(){const o=x.useContext(E);if(!o)throw new Error("useChart must be used within a <ChartContainer />");return o}const _=x.forwardRef(({id:o,className:e,children:n,config:r,...a},u)=>{const i=x.useId(),c=`chart-${o||i.replace(/:/g,"")}`;return t.jsxRuntimeExports.jsx(E.Provider,{value:{config:r},children:t.jsxRuntimeExports.jsxs("div",{"data-chart":c,ref:u,className:l.cn("[&_.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",e),...a,children:[t.jsxRuntimeExports.jsx(w,{id:c,config:r}),t.jsxRuntimeExports.jsx(t.ResponsiveContainer,{children:n})]})})});_.displayName="Chart";const w=({id:o,config:e})=>{const n=Object.entries(e).filter(([,r])=>r.theme||r.color);return n.length?t.jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(P).map(([r,a])=>`
2
2
  ${a} [data-chart=${o}] {
3
3
  ${n.map(([u,i])=>{const c=i.theme?.[r]||i.color;return c?` --color-${u}: ${c};`:null}).join(`
4
4
  `)}
5
5
  }
6
6
  `).join(`
7
- `)}}):null},M=t.Tooltip,k=x.forwardRef(({active:o,payload:e,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:u=!1,label:i,labelFormatter:c,labelClassName:h,formatter:f,color:L,nameKey:T,labelKey:g},S)=>{const{config:p}=y(),C=x.useMemo(()=>{if(a||!e?.length)return null;const[s]=e,j=`${g||s?.dataKey||s?.name||"value"}`,v=b(p,s,j),d=!g&&typeof i=="string"?p[i]?.label||i:v?.label;return c?t.jsxRuntimeExports.jsx("div",{className:l.cn("font-medium",h),children:c(d,e)}):d?t.jsxRuntimeExports.jsx("div",{className:l.cn("font-medium",h),children:d}):null},[i,c,e,a,h,p,g]);if(!o||!e?.length)return null;const m=e.length===1&&r!=="dot";return t.jsxRuntimeExports.jsxs("div",{ref:S,className:l.cn("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[m?null:C,t.jsxRuntimeExports.jsx("div",{className:"grid gap-1.5",children:e.filter(s=>s.type!=="none").map((s,j)=>{const v=`${T||s.name||s.dataKey||"value"}`,d=b(p,s,v),R=L||s.payload.fill||s.color;return t.jsxRuntimeExports.jsx("div",{className:l.cn("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&s?.value!==void 0&&s.name?f(s.value,s.name,s,j,s.payload):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[d?.icon?t.jsxRuntimeExports.jsx(d.icon,{}):!u&&t.jsxRuntimeExports.jsx("div",{className:l.cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":m&&r==="dashed"}),style:{"--color-bg":R,"--color-border":R}}),t.jsxRuntimeExports.jsxs("div",{className:l.cn("flex flex-1 justify-between leading-none",m?"items-end":"items-center"),children:[t.jsxRuntimeExports.jsxs("div",{className:"grid gap-1.5",children:[m?C:null,t.jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:d?.label||s.name})]}),s.value&&t.jsxRuntimeExports.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:s.value.toLocaleString()})]})]})},s.dataKey)})})]})});k.displayName="ChartTooltip";const q=t.Legend,N=x.forwardRef(({className:o,hideIcon:e=!1,payload:n,verticalAlign:r="bottom",nameKey:a},u)=>{const{config:i}=y();return n?.length?t.jsxRuntimeExports.jsx("div",{ref:u,className:l.cn("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",o),children:n.filter(c=>c.type!=="none").map(c=>{const h=`${a||c.dataKey||"value"}`,f=b(i,c,h);return t.jsxRuntimeExports.jsxs("div",{className:l.cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!e?t.jsxRuntimeExports.jsx(f.icon,{}):t.jsxRuntimeExports.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:c.color}}),f?.label]},c.value)})}):null});N.displayName="ChartLegend";function b(o,e,n){if(typeof e!="object"||e===null)return;const r="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0;let a=n;return n in e&&typeof e[n]=="string"?a=e[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in o?o[a]:o[n]}exports.ChartContainer=_;exports.ChartLegend=q;exports.ChartLegendContent=N;exports.ChartStyle=w;exports.ChartTooltip=M;exports.ChartTooltipContent=k;
7
+ `)}}):null},M=t.Tooltip,k=x.forwardRef(({active:o,payload:e,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:u=!1,label:i,labelFormatter:c,labelClassName:h,formatter:f,color:L,nameKey:T,labelKey:g},S)=>{const{config:p}=y(),C=x.useMemo(()=>{if(a||!e?.length)return null;const[s]=e,j=`${g||s?.dataKey||s?.name||"value"}`,v=b(p,s,j),d=!g&&typeof i=="string"?p[i]?.label||i:v?.label;return c?t.jsxRuntimeExports.jsx("div",{className:l.cn("font-medium",h),children:c(d,e)}):d?t.jsxRuntimeExports.jsx("div",{className:l.cn("font-medium",h),children:d}):null},[i,c,e,a,h,p,g]);if(!o||!e?.length)return null;const m=e.length===1&&r!=="dot";return t.jsxRuntimeExports.jsxs("div",{ref:S,className:l.cn("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",n),children:[m?null:C,t.jsxRuntimeExports.jsx("div",{className:"grid gap-1.5",children:e.filter(s=>s.type!=="none").map((s,j)=>{const v=`${T||s.name||s.dataKey||"value"}`,d=b(p,s,v),R=L||s.payload.fill||s.color;return t.jsxRuntimeExports.jsx("div",{className:l.cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",r==="dot"&&"items-center"),children:f&&s?.value!==void 0&&s.name?f(s.value,s.name,s,j,s.payload):t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[d?.icon?t.jsxRuntimeExports.jsx(d.icon,{}):!u&&t.jsxRuntimeExports.jsx("div",{className:l.cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":m&&r==="dashed"}),style:{"--color-bg":R,"--color-border":R}}),t.jsxRuntimeExports.jsxs("div",{className:l.cn("flex flex-1 justify-between leading-none",m?"items-end":"items-center"),children:[t.jsxRuntimeExports.jsxs("div",{className:"grid gap-1.5",children:[m?C:null,t.jsxRuntimeExports.jsx("span",{className:"text-muted-foreground",children:d?.label||s.name})]}),s.value&&t.jsxRuntimeExports.jsx("span",{className:"text-foreground font-mono font-medium tabular-nums",children:s.value.toLocaleString()})]})]})},s.dataKey)})})]})});k.displayName="ChartTooltip";const q=t.Legend,N=x.forwardRef(({className:o,hideIcon:e=!1,payload:n,verticalAlign:r="bottom",nameKey:a},u)=>{const{config:i}=y();return n?.length?t.jsxRuntimeExports.jsx("div",{ref:u,className:l.cn("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",o),children:n.filter(c=>c.type!=="none").map(c=>{const h=`${a||c.dataKey||"value"}`,f=b(i,c,h);return t.jsxRuntimeExports.jsxs("div",{className:l.cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),children:[f?.icon&&!e?t.jsxRuntimeExports.jsx(f.icon,{}):t.jsxRuntimeExports.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:c.color}}),f?.label]},c.value)})}):null});N.displayName="ChartLegend";function b(o,e,n){if(typeof e!="object"||e===null)return;const r="payload"in e&&typeof e.payload=="object"&&e.payload!==null?e.payload:void 0;let a=n;return n in e&&typeof e[n]=="string"?a=e[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in o?o[a]:o[n]}exports.ChartContainer=_;exports.ChartLegend=q;exports.ChartLegendContent=N;exports.ChartStyle=w;exports.ChartTooltip=M;exports.ChartTooltipContent=k;
8
8
  //# sourceMappingURL=chart.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.cjs.js","sources":["../packages/ui-web/src/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport {\n ChartConfig,\n ChartContainerBaseProps,\n ChartLegendContentBaseProps,\n ChartTooltipContentBaseProps,\n} from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n ChartContainerBaseProps & {\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme || itemConfig.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & ChartTooltipContentBaseProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || ((item.payload as Record<string, unknown>).fill as string) || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n })}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> &\n ChartLegendContentBaseProps\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn('flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground')}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload &&\n typeof (payload as { payload: unknown }).payload === 'object' &&\n (payload as { payload: unknown }).payload !== null\n ? ((payload as { payload: unknown }).payload as Record<string, unknown>)\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof (payload as Record<string, unknown>)[key] === 'string') {\n configLabelKey = (payload as Record<string, unknown>)[key] as string;\n } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === 'string') {\n configLabelKey = payloadPayload[key] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\nexport type { ChartConfig };\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive.ResponsiveContainer","colorConfig","itemConfig","theme","prefix","key","color","ChartTooltip","RechartsPrimitive.Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","RechartsPrimitive.Legend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
1
+ {"version":3,"file":"chart.cjs.js","sources":["../packages/ui-web/src/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport {\n ChartConfig,\n ChartContainerBaseProps,\n ChartLegendContentBaseProps,\n ChartTooltipContentBaseProps,\n} from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n ChartContainerBaseProps & {\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"[&_.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\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme || itemConfig.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & ChartTooltipContentBaseProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n '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',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || ((item.payload as Record<string, unknown>).fill as string) || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n '[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n })}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> &\n ChartLegendContentBaseProps\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn('[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3')}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload &&\n typeof (payload as { payload: unknown }).payload === 'object' &&\n (payload as { payload: unknown }).payload !== null\n ? ((payload as { payload: unknown }).payload as Record<string, unknown>)\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof (payload as Record<string, unknown>)[key] === 'string') {\n configLabelKey = (payload as Record<string, unknown>)[key] as string;\n } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === 'string') {\n configLabelKey = payloadPayload[key] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\nexport type { ChartConfig };\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive.ResponsiveContainer","colorConfig","itemConfig","theme","prefix","key","color","ChartTooltip","RechartsPrimitive.Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","RechartsPrimitive.Legend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { AllowInDimension } from 'recharts/types/util/types';
2
+ import { AnimationDuration } from 'recharts/types/util/types';
3
+ import { AnimationTiming } from 'recharts/types/util/types';
4
+ import { CartesianViewBox } from 'recharts/types/util/types';
5
+ import { ContentType } from 'recharts/types/component/Tooltip';
6
+ import { Coordinate } from 'recharts/types/util/types';
7
+ import { JSX } from 'react/jsx-runtime';
8
+ import { NameType } from 'recharts/types/component/DefaultTooltipContent';
9
+ import { Payload } from 'recharts/types/component/DefaultTooltipContent';
10
+ import * as React_2 from 'react';
11
+ import * as RechartsPrimitive from 'recharts';
12
+ import { UniqueOption } from 'recharts/types/util/payload/getUniqPayload';
13
+ import { ValueType } from 'recharts/types/component/DefaultTooltipContent';
14
+
15
+ export declare type ChartConfig = {
16
+ [k in string]: {
17
+ label?: React_2.ReactNode;
18
+ icon?: React_2.ComponentType;
19
+ } & ({
20
+ color?: string;
21
+ theme?: never;
22
+ } | {
23
+ color?: never;
24
+ theme: Record<string, string>;
25
+ });
26
+ };
27
+
28
+ export declare const ChartContainer: React_2.ForwardRefExoticComponent<Omit<React_2.ClassAttributes<HTMLDivElement> & React_2.HTMLAttributes<HTMLDivElement> & ChartContainerBaseProps & {
29
+ children: React_2.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
30
+ }, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
31
+
32
+ declare interface ChartContainerBaseProps {
33
+ config: ChartConfig;
34
+ className?: string;
35
+ children?: React_2.ReactNode;
36
+ id?: string;
37
+ }
38
+
39
+ export declare const ChartLegend: typeof RechartsPrimitive.Legend;
40
+
41
+ export declare const ChartLegendContent: React_2.ForwardRefExoticComponent<Omit<React_2.ClassAttributes<HTMLDivElement> & React_2.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & ChartLegendContentBaseProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
42
+
43
+ declare interface ChartLegendContentBaseProps {
44
+ hideIcon?: boolean;
45
+ nameKey?: string;
46
+ className?: string;
47
+ }
48
+
49
+ export declare const ChartStyle: ({ id, config }: {
50
+ id: string;
51
+ config: ChartConfig;
52
+ }) => JSX.Element | null;
53
+
54
+ export declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
55
+
56
+ export declare const ChartTooltipContent: React_2.ForwardRefExoticComponent<Omit<RechartsPrimitive.DefaultTooltipContentProps< ValueType, NameType> & {
57
+ accessibilityLayer?: boolean;
58
+ active?: boolean | undefined;
59
+ includeHidden?: boolean | undefined;
60
+ allowEscapeViewBox?: AllowInDimension;
61
+ animationDuration?: AnimationDuration;
62
+ animationEasing?: AnimationTiming;
63
+ content?: ContentType<ValueType, NameType> | undefined;
64
+ coordinate?: Partial< Coordinate>;
65
+ cursor?: boolean | React_2.ReactElement | React_2.SVGProps<SVGElement>;
66
+ filterNull?: boolean;
67
+ defaultIndex?: number;
68
+ isAnimationActive?: boolean;
69
+ offset?: number;
70
+ payloadUniqBy?: UniqueOption<Payload<ValueType, NameType>> | undefined;
71
+ position?: Partial< Coordinate>;
72
+ reverseDirection?: AllowInDimension;
73
+ shared?: boolean;
74
+ trigger?: "hover" | "click";
75
+ useTranslate3d?: boolean;
76
+ viewBox?: CartesianViewBox;
77
+ wrapperStyle?: React_2.CSSProperties;
78
+ } & React_2.ClassAttributes<HTMLDivElement> & React_2.HTMLAttributes<HTMLDivElement> & ChartTooltipContentBaseProps, "ref"> & React_2.RefAttributes<HTMLDivElement>>;
79
+
80
+ declare interface ChartTooltipContentBaseProps {
81
+ hideLabel?: boolean;
82
+ hideIndicator?: boolean;
83
+ indicator?: 'line' | 'dot' | 'dashed';
84
+ nameKey?: string;
85
+ labelKey?: string;
86
+ className?: string;
87
+ labelClassName?: string;
88
+ }
89
+
90
+ export { }
package/dist/chart.es.js CHANGED
@@ -1,6 +1,6 @@
1
- import { j as r, r as $, L as R, s as T } from "./vendor-B8N-rYkV.mjs";
1
+ import { j as r, r as $, L as R, s as T } from "./vendor-DxBXMLEx.mjs";
2
2
  import * as f from "react";
3
- import { c as i } from "./utils-BfGqxkzX.mjs";
3
+ import { c as i } from "./utils-Dk-Gx69q.mjs";
4
4
  const E = { light: "", dark: ".dark" }, w = f.createContext(null);
5
5
  function k() {
6
6
  const a = f.useContext(w);
@@ -16,7 +16,7 @@ const I = f.forwardRef(({ id: a, className: e, children: s, config: t, ...c }, d
16
16
  "data-chart": o,
17
17
  ref: d,
18
18
  className: i(
19
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
19
+ "[&_.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",
20
20
  e
21
21
  ),
22
22
  ...c,
@@ -79,7 +79,7 @@ ${s.map(([d, l]) => {
79
79
  {
80
80
  ref: L,
81
81
  className: i(
82
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
82
+ "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",
83
83
  s
84
84
  ),
85
85
  children: [
@@ -90,7 +90,7 @@ ${s.map(([d, l]) => {
90
90
  "div",
91
91
  {
92
92
  className: i(
93
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
93
+ "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
94
94
  t === "dot" && "items-center"
95
95
  ),
96
96
  children: h && n?.value !== void 0 && n.name ? h(n.value, n.name, n, v, n.payload) : /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
@@ -121,7 +121,7 @@ ${s.map(([d, l]) => {
121
121
  m ? C : null,
122
122
  /* @__PURE__ */ r.jsx("span", { className: "text-muted-foreground", children: u?.label || n.name })
123
123
  ] }),
124
- n.value && /* @__PURE__ */ r.jsx("span", { className: "font-mono font-medium tabular-nums text-foreground", children: n.value.toLocaleString() })
124
+ n.value && /* @__PURE__ */ r.jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: n.value.toLocaleString() })
125
125
  ]
126
126
  }
127
127
  )
@@ -148,7 +148,7 @@ const q = R, K = f.forwardRef(({ className: a, hideIcon: e = !1, payload: s, ver
148
148
  return /* @__PURE__ */ r.jsxs(
149
149
  "div",
150
150
  {
151
- className: i("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
151
+ className: i("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
152
152
  children: [
153
153
  h?.icon && !e ? /* @__PURE__ */ r.jsx(h.icon, {}) : /* @__PURE__ */ r.jsx(
154
154
  "div",
@@ -1 +1 @@
1
- {"version":3,"file":"chart.es.js","sources":["../packages/ui-web/src/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport {\n ChartConfig,\n ChartContainerBaseProps,\n ChartLegendContentBaseProps,\n ChartTooltipContentBaseProps,\n} from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n ChartContainerBaseProps & {\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme || itemConfig.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & ChartTooltipContentBaseProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || ((item.payload as Record<string, unknown>).fill as string) || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n })}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> &\n ChartLegendContentBaseProps\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn('flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground')}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload &&\n typeof (payload as { payload: unknown }).payload === 'object' &&\n (payload as { payload: unknown }).payload !== null\n ? ((payload as { payload: unknown }).payload as Record<string, unknown>)\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof (payload as Record<string, unknown>)[key] === 'string') {\n configLabelKey = (payload as Record<string, unknown>)[key] as string;\n } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === 'string') {\n configLabelKey = payloadPayload[key] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\nexport type { ChartConfig };\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive.ResponsiveContainer","colorConfig","itemConfig","theme","prefix","key","color","ChartTooltip","RechartsPrimitive.Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","RechartsPrimitive.Legend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
1
+ {"version":3,"file":"chart.es.js","sources":["../packages/ui-web/src/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport {\n ChartConfig,\n ChartContainerBaseProps,\n ChartLegendContentBaseProps,\n ChartTooltipContentBaseProps,\n} from '@gv-tech/ui-core';\nimport { cn } from './lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n ChartContainerBaseProps & {\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"[&_.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\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, itemConfig]) => itemConfig.theme || itemConfig.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & ChartTooltipContentBaseProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n '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',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || ((item.payload as Record<string, unknown>).fill as string) || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n '[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n })}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> &\n ChartLegendContentBaseProps\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn('[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3')}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload &&\n typeof (payload as { payload: unknown }).payload === 'object' &&\n (payload as { payload: unknown }).payload !== null\n ? ((payload as { payload: unknown }).payload as Record<string, unknown>)\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof (payload as Record<string, unknown>)[key] === 'string') {\n configLabelKey = (payload as Record<string, unknown>)[key] as string;\n } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === 'string') {\n configLabelKey = payloadPayload[key] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\nexport type { ChartConfig };\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive.ResponsiveContainer","colorConfig","itemConfig","theme","prefix","key","color","ChartTooltip","RechartsPrimitive.Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","RechartsPrimitive.Legend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}