@health-samurai/react-components 0.0.0-alpha.1 → 0.0.0-alpha.2

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 (217) hide show
  1. package/dist/bundle.css +100 -7
  2. package/dist/src/components/code-editor/index.js +53 -29
  3. package/dist/src/components/code-editor/index.js.map +1 -1
  4. package/dist/src/components/code-editor.stories.js +22 -7
  5. package/dist/src/components/code-editor.stories.js.map +1 -1
  6. package/dist/src/components/copy-icon.js +11 -4
  7. package/dist/src/components/copy-icon.js.map +1 -1
  8. package/dist/src/components/request-line-editor.js +56 -14
  9. package/dist/src/components/request-line-editor.js.map +1 -1
  10. package/dist/src/components/request-line-editor.stories.js +71 -22
  11. package/dist/src/components/request-line-editor.stories.js.map +1 -1
  12. package/dist/src/global.d.js +2 -0
  13. package/dist/src/global.d.js.map +1 -0
  14. package/dist/src/index.css +6 -0
  15. package/dist/src/index.d.ts +1 -0
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +52 -50
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/index.stories.js +8 -5
  20. package/dist/src/index.stories.js.map +1 -1
  21. package/dist/src/shadcn/components/ui/accordion.js +34 -5
  22. package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
  23. package/dist/src/shadcn/components/ui/accordion.stories.js +68 -3
  24. package/dist/src/shadcn/components/ui/accordion.stories.js.map +1 -1
  25. package/dist/src/shadcn/components/ui/alert-dialog.js +61 -14
  26. package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
  27. package/dist/src/shadcn/components/ui/alert-dialog.stories.js +39 -4
  28. package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
  29. package/dist/src/shadcn/components/ui/alert.js +24 -8
  30. package/dist/src/shadcn/components/ui/alert.js.map +1 -1
  31. package/dist/src/shadcn/components/ui/alert.stories.js +57 -3
  32. package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
  33. package/dist/src/shadcn/components/ui/aspect-ratio.js +5 -1
  34. package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
  35. package/dist/src/shadcn/components/ui/aspect-ratio.stories.js +12 -3
  36. package/dist/src/shadcn/components/ui/aspect-ratio.stories.js.map +1 -1
  37. package/dist/src/shadcn/components/ui/avatar.js +17 -4
  38. package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
  39. package/dist/src/shadcn/components/ui/avatar.stories.js +69 -3
  40. package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
  41. package/dist/src/shadcn/components/ui/badge.js +13 -6
  42. package/dist/src/shadcn/components/ui/badge.js.map +1 -1
  43. package/dist/src/shadcn/components/ui/badge.stories.js +55 -3
  44. package/dist/src/shadcn/components/ui/badge.stories.js.map +1 -1
  45. package/dist/src/shadcn/components/ui/breadcrumb.js +56 -11
  46. package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
  47. package/dist/src/shadcn/components/ui/breadcrumb.stories.js +69 -4
  48. package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
  49. package/dist/src/shadcn/components/ui/button.js +23 -13
  50. package/dist/src/shadcn/components/ui/button.js.map +1 -1
  51. package/dist/src/shadcn/components/ui/button.stories.js +190 -10
  52. package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
  53. package/dist/src/shadcn/components/ui/calendar.js +75 -33
  54. package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
  55. package/dist/src/shadcn/components/ui/calendar.stories.js +12 -5
  56. package/dist/src/shadcn/components/ui/calendar.stories.js.map +1 -1
  57. package/dist/src/shadcn/components/ui/card.js +38 -9
  58. package/dist/src/shadcn/components/ui/card.js.map +1 -1
  59. package/dist/src/shadcn/components/ui/card.stories.js +91 -6
  60. package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
  61. package/dist/src/shadcn/components/ui/carousel.js +99 -39
  62. package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
  63. package/dist/src/shadcn/components/ui/carousel.stories.js +30 -6
  64. package/dist/src/shadcn/components/ui/carousel.stories.js.map +1 -1
  65. package/dist/src/shadcn/components/ui/chart.js +118 -55
  66. package/dist/src/shadcn/components/ui/chart.js.map +1 -1
  67. package/dist/src/shadcn/components/ui/chart.stories.js +72 -12
  68. package/dist/src/shadcn/components/ui/chart.stories.js.map +1 -1
  69. package/dist/src/shadcn/components/ui/checkbox.js +14 -2
  70. package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
  71. package/dist/src/shadcn/components/ui/checkbox.stories.js +79 -4
  72. package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
  73. package/dist/src/shadcn/components/ui/collapsible.js +13 -3
  74. package/dist/src/shadcn/components/ui/collapsible.js.map +1 -1
  75. package/dist/src/shadcn/components/ui/collapsible.stories.js +54 -6
  76. package/dist/src/shadcn/components/ui/collapsible.stories.js.map +1 -1
  77. package/dist/src/shadcn/components/ui/command.js +77 -12
  78. package/dist/src/shadcn/components/ui/command.js.map +1 -1
  79. package/dist/src/shadcn/components/ui/command.stories.js +88 -4
  80. package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
  81. package/dist/src/shadcn/components/ui/context-menu.js +106 -17
  82. package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
  83. package/dist/src/shadcn/components/ui/context-menu.stories.js +101 -3
  84. package/dist/src/shadcn/components/ui/context-menu.stories.js.map +1 -1
  85. package/dist/src/shadcn/components/ui/dialog.js +69 -12
  86. package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
  87. package/dist/src/shadcn/components/ui/dialog.stories.js +82 -6
  88. package/dist/src/shadcn/components/ui/dialog.stories.js.map +1 -1
  89. package/dist/src/shadcn/components/ui/drawer.js +61 -12
  90. package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
  91. package/dist/src/shadcn/components/ui/drawer.stories.js +154 -21
  92. package/dist/src/shadcn/components/ui/drawer.stories.js.map +1 -1
  93. package/dist/src/shadcn/components/ui/dropdown-menu.js +107 -17
  94. package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
  95. package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +119 -4
  96. package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
  97. package/dist/src/shadcn/components/ui/form.js +58 -18
  98. package/dist/src/shadcn/components/ui/form.js.map +1 -1
  99. package/dist/src/shadcn/components/ui/form.stories.js +45 -11
  100. package/dist/src/shadcn/components/ui/form.stories.js.map +1 -1
  101. package/dist/src/shadcn/components/ui/hover-card.js +20 -4
  102. package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
  103. package/dist/src/shadcn/components/ui/hover-card.stories.js +51 -5
  104. package/dist/src/shadcn/components/ui/hover-card.stories.js.map +1 -1
  105. package/dist/src/shadcn/components/ui/input-otp.js +35 -7
  106. package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
  107. package/dist/src/shadcn/components/ui/input-otp.stories.js +35 -3
  108. package/dist/src/shadcn/components/ui/input-otp.stories.js.map +1 -1
  109. package/dist/src/shadcn/components/ui/input.js +59 -40
  110. package/dist/src/shadcn/components/ui/input.js.map +1 -1
  111. package/dist/src/shadcn/components/ui/input.stories.js +391 -23
  112. package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
  113. package/dist/src/shadcn/components/ui/label.js +7 -2
  114. package/dist/src/shadcn/components/ui/label.js.map +1 -1
  115. package/dist/src/shadcn/components/ui/label.stories.js +18 -4
  116. package/dist/src/shadcn/components/ui/label.stories.js.map +1 -1
  117. package/dist/src/shadcn/components/ui/menubar.js +116 -19
  118. package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
  119. package/dist/src/shadcn/components/ui/menubar.stories.js +216 -3
  120. package/dist/src/shadcn/components/ui/menubar.stories.js.map +1 -1
  121. package/dist/src/shadcn/components/ui/navigation-menu.js +62 -10
  122. package/dist/src/shadcn/components/ui/navigation-menu.js.map +1 -1
  123. package/dist/src/shadcn/components/ui/navigation-menu.stories.js +263 -11
  124. package/dist/src/shadcn/components/ui/navigation-menu.stories.js.map +1 -1
  125. package/dist/src/shadcn/components/ui/pagination.js +73 -16
  126. package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
  127. package/dist/src/shadcn/components/ui/pagination.stories.js +41 -3
  128. package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
  129. package/dist/src/shadcn/components/ui/popover.js +23 -5
  130. package/dist/src/shadcn/components/ui/popover.js.map +1 -1
  131. package/dist/src/shadcn/components/ui/popover.stories.js +99 -6
  132. package/dist/src/shadcn/components/ui/popover.stories.js.map +1 -1
  133. package/dist/src/shadcn/components/ui/progress.js +14 -2
  134. package/dist/src/shadcn/components/ui/progress.js.map +1 -1
  135. package/dist/src/shadcn/components/ui/progress.stories.js +12 -8
  136. package/dist/src/shadcn/components/ui/progress.stories.js.map +1 -1
  137. package/dist/src/shadcn/components/ui/radio-group.js +19 -3
  138. package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
  139. package/dist/src/shadcn/components/ui/radio-group.stories.js +48 -4
  140. package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
  141. package/dist/src/shadcn/components/ui/resizable.js +22 -4
  142. package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
  143. package/dist/src/shadcn/components/ui/resizable.stories.js +49 -3
  144. package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
  145. package/dist/src/shadcn/components/ui/scroll-area.js +26 -5
  146. package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
  147. package/dist/src/shadcn/components/ui/scroll-area.stories.js +30 -5
  148. package/dist/src/shadcn/components/ui/scroll-area.stories.js.map +1 -1
  149. package/dist/src/shadcn/components/ui/select.js +98 -19
  150. package/dist/src/shadcn/components/ui/select.js.map +1 -1
  151. package/dist/src/shadcn/components/ui/select.stories.js +84 -5
  152. package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
  153. package/dist/src/shadcn/components/ui/separator.js +9 -2
  154. package/dist/src/shadcn/components/ui/separator.js.map +1 -1
  155. package/dist/src/shadcn/components/ui/separator.stories.js +43 -3
  156. package/dist/src/shadcn/components/ui/separator.stories.js.map +1 -1
  157. package/dist/src/shadcn/components/ui/sheet.js +69 -16
  158. package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
  159. package/dist/src/shadcn/components/ui/sheet.stories.js +77 -6
  160. package/dist/src/shadcn/components/ui/sheet.stories.js.map +1 -1
  161. package/dist/src/shadcn/components/ui/sidebar.js +304 -79
  162. package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
  163. package/dist/src/shadcn/components/ui/sidebar.stories.js +321 -59
  164. package/dist/src/shadcn/components/ui/sidebar.stories.js.map +1 -1
  165. package/dist/src/shadcn/components/ui/skeleton.js +7 -2
  166. package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
  167. package/dist/src/shadcn/components/ui/skeleton.stories.js +22 -3
  168. package/dist/src/shadcn/components/ui/skeleton.stories.js.map +1 -1
  169. package/dist/src/shadcn/components/ui/slider.js +40 -7
  170. package/dist/src/shadcn/components/ui/slider.js.map +1 -1
  171. package/dist/src/shadcn/components/ui/slider.stories.js +11 -3
  172. package/dist/src/shadcn/components/ui/slider.stories.js.map +1 -1
  173. package/dist/src/shadcn/components/ui/sonner.js +10 -4
  174. package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
  175. package/dist/src/shadcn/components/ui/sonner.stories.js +14 -9
  176. package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
  177. package/dist/src/shadcn/components/ui/switch.js +11 -2
  178. package/dist/src/shadcn/components/ui/switch.js.map +1 -1
  179. package/dist/src/shadcn/components/ui/switch.stories.js +16 -4
  180. package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
  181. package/dist/src/shadcn/components/ui/table.js +47 -10
  182. package/dist/src/shadcn/components/ui/table.js.map +1 -1
  183. package/dist/src/shadcn/components/ui/table.stories.js +72 -11
  184. package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
  185. package/dist/src/shadcn/components/ui/tabs.d.ts +9 -5
  186. package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
  187. package/dist/src/shadcn/components/ui/tabs.js +75 -18
  188. package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
  189. package/dist/src/shadcn/components/ui/tabs.stories.d.ts +6 -0
  190. package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +1 -1
  191. package/dist/src/shadcn/components/ui/tabs.stories.js +221 -10
  192. package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
  193. package/dist/src/shadcn/components/ui/textarea.js +7 -2
  194. package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
  195. package/dist/src/shadcn/components/ui/textarea.stories.js +6 -3
  196. package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
  197. package/dist/src/shadcn/components/ui/toggle-group.js +29 -8
  198. package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
  199. package/dist/src/shadcn/components/ui/toggle-group.stories.js +30 -3
  200. package/dist/src/shadcn/components/ui/toggle-group.stories.js.map +1 -1
  201. package/dist/src/shadcn/components/ui/toggle.js +16 -7
  202. package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
  203. package/dist/src/shadcn/components/ui/toggle.stories.js +9 -3
  204. package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
  205. package/dist/src/shadcn/components/ui/tooltip.js +26 -5
  206. package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
  207. package/dist/src/shadcn/components/ui/tooltip.stories.js +20 -4
  208. package/dist/src/shadcn/components/ui/tooltip.stories.js.map +1 -1
  209. package/dist/src/shadcn/hooks/use-mobile.js +4 -3
  210. package/dist/src/shadcn/hooks/use-mobile.js.map +1 -1
  211. package/dist/src/shadcn/lib/utils.js +1 -0
  212. package/dist/src/shadcn/lib/utils.js.map +1 -1
  213. package/package.json +8 -4
  214. package/src/index.css +6 -0
  215. package/src/index.tsx +1 -0
  216. package/src/shadcn/components/ui/tabs.stories.tsx +57 -0
  217. package/src/shadcn/components/ui/tabs.tsx +76 -26
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import useEmblaCarousel, {} from "embla-carousel-react";
2
+ import useEmblaCarousel from "embla-carousel-react";
3
3
  import { ArrowLeft, ArrowRight } from "lucide-react";
4
4
  import * as React from "react";
5
- import { Button } from "#shadcn/components/ui/button";
6
- import { cn } from "#shadcn/lib/utils";
7
- const CarouselContext = React.createContext(null);
5
+ import { Button } from "./button.js";
6
+ import { cn } from "../../lib/utils.js";
7
+ const CarouselContext = /*#__PURE__*/ React.createContext(null);
8
8
  function useCarousel() {
9
9
  const context = React.useContext(CarouselContext);
10
10
  if (!context) {
@@ -15,48 +15,58 @@ function useCarousel() {
15
15
  function Carousel({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }) {
16
16
  const [carouselRef, api] = useEmblaCarousel({
17
17
  ...opts,
18
- axis: orientation === "horizontal" ? "x" : "y",
18
+ axis: orientation === "horizontal" ? "x" : "y"
19
19
  }, plugins);
20
20
  const [canScrollPrev, setCanScrollPrev] = React.useState(false);
21
21
  const [canScrollNext, setCanScrollNext] = React.useState(false);
22
- const onSelect = React.useCallback((api) => {
23
- if (!api)
24
- return;
22
+ const onSelect = React.useCallback((api)=>{
23
+ if (!api) return;
25
24
  setCanScrollPrev(api.canScrollPrev());
26
25
  setCanScrollNext(api.canScrollNext());
27
26
  }, []);
28
- const scrollPrev = React.useCallback(() => {
27
+ const scrollPrev = React.useCallback(()=>{
29
28
  api?.scrollPrev();
30
- }, [api]);
31
- const scrollNext = React.useCallback(() => {
29
+ }, [
30
+ api
31
+ ]);
32
+ const scrollNext = React.useCallback(()=>{
32
33
  api?.scrollNext();
33
- }, [api]);
34
- const handleKeyDown = React.useCallback((event) => {
34
+ }, [
35
+ api
36
+ ]);
37
+ const handleKeyDown = React.useCallback((event)=>{
35
38
  if (event.key === "ArrowLeft") {
36
39
  event.preventDefault();
37
40
  scrollPrev();
38
- }
39
- else if (event.key === "ArrowRight") {
41
+ } else if (event.key === "ArrowRight") {
40
42
  event.preventDefault();
41
43
  scrollNext();
42
44
  }
43
- }, [scrollPrev, scrollNext]);
44
- React.useEffect(() => {
45
- if (!api || !setApi)
46
- return;
45
+ }, [
46
+ scrollPrev,
47
+ scrollNext
48
+ ]);
49
+ React.useEffect(()=>{
50
+ if (!api || !setApi) return;
47
51
  setApi(api);
48
- }, [api, setApi]);
49
- React.useEffect(() => {
50
- if (!api)
51
- return;
52
+ }, [
53
+ api,
54
+ setApi
55
+ ]);
56
+ React.useEffect(()=>{
57
+ if (!api) return;
52
58
  onSelect(api);
53
59
  api.on("reInit", onSelect);
54
60
  api.on("select", onSelect);
55
- return () => {
61
+ return ()=>{
56
62
  api?.off("select", onSelect);
57
63
  };
58
- }, [api, onSelect]);
59
- return (_jsx(CarouselContext.Provider, { value: {
64
+ }, [
65
+ api,
66
+ onSelect
67
+ ]);
68
+ return /*#__PURE__*/ _jsx(CarouselContext.Provider, {
69
+ value: {
60
70
  carouselRef,
61
71
  api: api,
62
72
  opts,
@@ -64,30 +74,80 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
64
74
  scrollPrev,
65
75
  scrollNext,
66
76
  canScrollPrev,
67
- canScrollNext,
68
- }, children: _jsx("div", { onKeyDownCapture: handleKeyDown, className: cn("relative", className), role: "region", "aria-roledescription": "carousel", "data-slot": "carousel", ...props, children: children }) }));
77
+ canScrollNext
78
+ },
79
+ children: /*#__PURE__*/ _jsx("div", {
80
+ onKeyDownCapture: handleKeyDown,
81
+ className: cn("relative", className),
82
+ role: "region",
83
+ "aria-roledescription": "carousel",
84
+ "data-slot": "carousel",
85
+ ...props,
86
+ children: children
87
+ })
88
+ });
69
89
  }
70
90
  function CarouselContent({ className, ...props }) {
71
91
  const { carouselRef, orientation } = useCarousel();
72
- return (_jsx("div", { ref: carouselRef, className: "overflow-hidden", "data-slot": "carousel-content", children: _jsx("div", { className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", className), ...props }) }));
92
+ return /*#__PURE__*/ _jsx("div", {
93
+ ref: carouselRef,
94
+ className: "overflow-hidden",
95
+ "data-slot": "carousel-content",
96
+ children: /*#__PURE__*/ _jsx("div", {
97
+ className: cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", className),
98
+ ...props
99
+ })
100
+ });
73
101
  }
74
102
  function CarouselItem({ className, ...props }) {
75
103
  const { orientation } = useCarousel();
76
- return (
77
- // biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn
78
- _jsx("div", { role: "group", "aria-roledescription": "slide", "data-slot": "carousel-item", className: cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className), ...props }));
104
+ return(// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn
105
+ /*#__PURE__*/ _jsx("div", {
106
+ role: "group",
107
+ "aria-roledescription": "slide",
108
+ "data-slot": "carousel-item",
109
+ className: cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className),
110
+ ...props
111
+ }));
79
112
  }
80
113
  function CarouselPrevious({ className, variant = "secondary", size = "small", ...props }) {
81
114
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
82
- return (_jsxs(Button, { "data-slot": "carousel-previous", variant: variant, size: size, className: cn("absolute size-8 rounded-full", orientation === "horizontal"
83
- ? "top-1/2 -left-12 -translate-y-1/2"
84
- : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className), disabled: !canScrollPrev, onClick: scrollPrev, ...props, children: [_jsx(ArrowLeft, {}), _jsx("span", { className: "sr-only", children: "Previous slide" })] }));
115
+ return /*#__PURE__*/ _jsxs(Button, {
116
+ "data-slot": "carousel-previous",
117
+ variant: variant,
118
+ size: size,
119
+ className: cn("absolute size-8 rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
120
+ disabled: !canScrollPrev,
121
+ onClick: scrollPrev,
122
+ ...props,
123
+ children: [
124
+ /*#__PURE__*/ _jsx(ArrowLeft, {}),
125
+ /*#__PURE__*/ _jsx("span", {
126
+ className: "sr-only",
127
+ children: "Previous slide"
128
+ })
129
+ ]
130
+ });
85
131
  }
86
132
  function CarouselNext({ className, variant = "secondary", size = "small", ...props }) {
87
133
  const { orientation, scrollNext, canScrollNext } = useCarousel();
88
- return (_jsxs(Button, { "data-slot": "carousel-next", variant: variant, size: size, className: cn("absolute size-8 rounded-full", orientation === "horizontal"
89
- ? "top-1/2 -right-12 -translate-y-1/2"
90
- : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className), disabled: !canScrollNext, onClick: scrollNext, ...props, children: [_jsx(ArrowRight, {}), _jsx("span", { className: "sr-only", children: "Next slide" })] }));
134
+ return /*#__PURE__*/ _jsxs(Button, {
135
+ "data-slot": "carousel-next",
136
+ variant: variant,
137
+ size: size,
138
+ className: cn("absolute size-8 rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
139
+ disabled: !canScrollNext,
140
+ onClick: scrollNext,
141
+ ...props,
142
+ children: [
143
+ /*#__PURE__*/ _jsx(ArrowRight, {}),
144
+ /*#__PURE__*/ _jsx("span", {
145
+ className: "sr-only",
146
+ children: "Next slide"
147
+ })
148
+ ]
149
+ });
91
150
  }
92
- export { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
151
+ export { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext };
152
+
93
153
  //# sourceMappingURL=carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/carousel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/carousel.tsx"],"sourcesContent":["import useEmblaCarousel, {\n\ttype UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { cn } from \"#shadcn/lib/utils\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n\topts?: CarouselOptions;\n\tplugins?: CarouselPlugin;\n\torientation?: \"horizontal\" | \"vertical\";\n\tsetApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n\tcarouselRef: ReturnType<typeof useEmblaCarousel>[0];\n\tapi: ReturnType<typeof useEmblaCarousel>[1];\n\tscrollPrev: () => void;\n\tscrollNext: () => void;\n\tcanScrollPrev: boolean;\n\tcanScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n\tconst context = React.useContext(CarouselContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"useCarousel must be used within a <Carousel />\");\n\t}\n\n\treturn context;\n}\n\nfunction Carousel({\n\torientation = \"horizontal\",\n\topts,\n\tsetApi,\n\tplugins,\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n\tconst [carouselRef, api] = useEmblaCarousel(\n\t\t{\n\t\t\t...opts,\n\t\t\taxis: orientation === \"horizontal\" ? \"x\" : \"y\",\n\t\t},\n\t\tplugins,\n\t);\n\tconst [canScrollPrev, setCanScrollPrev] = React.useState(false);\n\tconst [canScrollNext, setCanScrollNext] = React.useState(false);\n\n\tconst onSelect = React.useCallback((api: CarouselApi) => {\n\t\tif (!api) return;\n\t\tsetCanScrollPrev(api.canScrollPrev());\n\t\tsetCanScrollNext(api.canScrollNext());\n\t}, []);\n\n\tconst scrollPrev = React.useCallback(() => {\n\t\tapi?.scrollPrev();\n\t}, [api]);\n\n\tconst scrollNext = React.useCallback(() => {\n\t\tapi?.scrollNext();\n\t}, [api]);\n\n\tconst handleKeyDown = React.useCallback(\n\t\t(event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t\tif (event.key === \"ArrowLeft\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollPrev();\n\t\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tscrollNext();\n\t\t\t}\n\t\t},\n\t\t[scrollPrev, scrollNext],\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (!api || !setApi) return;\n\t\tsetApi(api);\n\t}, [api, setApi]);\n\n\tReact.useEffect(() => {\n\t\tif (!api) return;\n\t\tonSelect(api);\n\t\tapi.on(\"reInit\", onSelect);\n\t\tapi.on(\"select\", onSelect);\n\n\t\treturn () => {\n\t\t\tapi?.off(\"select\", onSelect);\n\t\t};\n\t}, [api, onSelect]);\n\n\treturn (\n\t\t<CarouselContext.Provider\n\t\t\tvalue={{\n\t\t\t\tcarouselRef,\n\t\t\t\tapi: api,\n\t\t\t\topts,\n\t\t\t\torientation:\n\t\t\t\t\torientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n\t\t\t\tscrollPrev,\n\t\t\t\tscrollNext,\n\t\t\t\tcanScrollPrev,\n\t\t\t\tcanScrollNext,\n\t\t\t}}\n\t\t>\n\t\t\t{/* biome-ignore lint: FIXME: unchanged shadcn */}\n\t\t\t<div\n\t\t\t\tonKeyDownCapture={handleKeyDown}\n\t\t\t\tclassName={cn(\"relative\", className)}\n\t\t\t\trole=\"region\"\n\t\t\t\taria-roledescription=\"carousel\"\n\t\t\t\tdata-slot=\"carousel\"\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselContext.Provider>\n\t);\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { carouselRef, orientation } = useCarousel();\n\n\treturn (\n\t\t<div\n\t\t\tref={carouselRef}\n\t\t\tclassName=\"overflow-hidden\"\n\t\t\tdata-slot=\"carousel-content\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n\tconst { orientation } = useCarousel();\n\n\treturn (\n\t\t// biome-ignore lint/a11y/useSemanticElements: FIXME: unchanged shadcn\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\taria-roledescription=\"slide\"\n\t\t\tdata-slot=\"carousel-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"min-w-0 shrink-0 grow-0 basis-full\",\n\t\t\t\torientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CarouselPrevious({\n\tclassName,\n\tvariant = \"secondary\",\n\tsize = \"small\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-previous\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -left-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdisabled={!canScrollPrev}\n\t\t\tonClick={scrollPrev}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowLeft />\n\t\t\t<span className=\"sr-only\">Previous slide</span>\n\t\t</Button>\n\t);\n}\n\nfunction CarouselNext({\n\tclassName,\n\tvariant = \"secondary\",\n\tsize = \"small\",\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { orientation, scrollNext, canScrollNext } = useCarousel();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-slot=\"carousel-next\"\n\t\t\tvariant={variant}\n\t\t\tsize={size}\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute size-8 rounded-full\",\n\t\t\t\torientation === \"horizontal\"\n\t\t\t\t\t? \"top-1/2 -right-12 -translate-y-1/2\"\n\t\t\t\t\t: \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tdisabled={!canScrollNext}\n\t\t\tonClick={scrollNext}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ArrowRight />\n\t\t\t<span className=\"sr-only\">Next slide</span>\n\t\t</Button>\n\t);\n}\n\nexport {\n\ttype CarouselApi,\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselPrevious,\n\tCarouselNext,\n};\n"],"names":["useEmblaCarousel","ArrowLeft","ArrowRight","React","Button","cn","CarouselContext","createContext","useCarousel","context","useContext","Error","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","axis","canScrollPrev","setCanScrollPrev","useState","canScrollNext","setCanScrollNext","onSelect","useCallback","scrollPrev","scrollNext","handleKeyDown","event","key","preventDefault","useEffect","on","off","Provider","value","div","onKeyDownCapture","role","aria-roledescription","data-slot","CarouselContent","ref","CarouselItem","CarouselPrevious","variant","size","disabled","onClick","span","CarouselNext"],"mappings":"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"}
@@ -1,13 +1,37 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Card, CardContent } from "#shadcn/components/ui/card";
3
- import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "#shadcn/components/ui/carousel";
2
+ import { Card, CardContent } from "./card.js";
3
+ import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "./carousel.js";
4
4
  const meta = {
5
- title: "Component/Carousel",
5
+ title: "Component/Carousel"
6
6
  };
7
7
  export default meta;
8
8
  export const Demo = {
9
- render: () => (_jsxs(Carousel, { className: "w-full max-w-xs", children: [_jsx(CarouselContent, { children: Array.from({ length: 5 }).map((_, index) => (
10
- // biome-ignore lint/suspicious/noArrayIndexKey: taken from shadcn demo
11
- _jsx(CarouselItem, { children: _jsx("div", { className: "p-1", children: _jsx(Card, { children: _jsx(CardContent, { className: "flex aspect-square items-center justify-center p-6", children: _jsx("span", { className: "text-4xl font-semibold", children: index + 1 }) }) }) }) }, index))) }), _jsx(CarouselPrevious, {}), _jsx(CarouselNext, {})] })),
9
+ render: ()=>/*#__PURE__*/ _jsxs(Carousel, {
10
+ className: "w-full max-w-xs",
11
+ children: [
12
+ /*#__PURE__*/ _jsx(CarouselContent, {
13
+ children: Array.from({
14
+ length: 5
15
+ }).map((_, index)=>// biome-ignore lint/suspicious/noArrayIndexKey: taken from shadcn demo
16
+ /*#__PURE__*/ _jsx(CarouselItem, {
17
+ children: /*#__PURE__*/ _jsx("div", {
18
+ className: "p-1",
19
+ children: /*#__PURE__*/ _jsx(Card, {
20
+ children: /*#__PURE__*/ _jsx(CardContent, {
21
+ className: "flex aspect-square items-center justify-center p-6",
22
+ children: /*#__PURE__*/ _jsx("span", {
23
+ className: "text-4xl font-semibold",
24
+ children: index + 1
25
+ })
26
+ })
27
+ })
28
+ })
29
+ }, index))
30
+ }),
31
+ /*#__PURE__*/ _jsx(CarouselPrevious, {}),
32
+ /*#__PURE__*/ _jsx(CarouselNext, {})
33
+ ]
34
+ })
12
35
  };
36
+
13
37
  //# sourceMappingURL=carousel.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.stories.js","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/carousel.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACN,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,GAChB,MAAM,gCAAgC,CAAC;AAExC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,oBAAoB;CACZ,CAAC;AACjB,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,IAAI,GAAG;IACnB,MAAM,EAAE,GAAG,EAAE,CAAC,CACb,MAAC,QAAQ,IAAC,SAAS,EAAC,iBAAiB,aACpC,KAAC,eAAe,cACd,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC5C,uEAAuE;gBACvE,KAAC,YAAY,cACZ,cAAK,SAAS,EAAC,KAAK,YACnB,KAAC,IAAI,cACJ,KAAC,WAAW,IAAC,SAAS,EAAC,oDAAoD,YAC1E,eAAM,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAG,CAAC,GAAQ,GAC9C,GACR,GACF,IAPY,KAAK,CAQT,CACf,CAAC,GACe,EAClB,KAAC,gBAAgB,KAAG,EACpB,KAAC,YAAY,KAAG,IACN,CACX;CACe,CAAC"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/carousel.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport { Card, CardContent } from \"#shadcn/components/ui/card\";\nimport {\n\tCarousel,\n\tCarouselContent,\n\tCarouselItem,\n\tCarouselNext,\n\tCarouselPrevious,\n} from \"#shadcn/components/ui/carousel\";\n\nconst meta = {\n\ttitle: \"Component/Carousel\",\n} satisfies Meta;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Demo = {\n\trender: () => (\n\t\t<Carousel className=\"w-full max-w-xs\">\n\t\t\t<CarouselContent>\n\t\t\t\t{Array.from({ length: 5 }).map((_, index) => (\n\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: taken from shadcn demo\n\t\t\t\t\t<CarouselItem key={index}>\n\t\t\t\t\t\t<div className=\"p-1\">\n\t\t\t\t\t\t\t<Card>\n\t\t\t\t\t\t\t\t<CardContent className=\"flex aspect-square items-center justify-center p-6\">\n\t\t\t\t\t\t\t\t\t<span className=\"text-4xl font-semibold\">{index + 1}</span>\n\t\t\t\t\t\t\t\t</CardContent>\n\t\t\t\t\t\t\t</Card>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CarouselItem>\n\t\t\t\t))}\n\t\t\t</CarouselContent>\n\t\t\t<CarouselPrevious />\n\t\t\t<CarouselNext />\n\t\t</Carousel>\n\t),\n} satisfies Story;\n"],"names":["Card","CardContent","Carousel","CarouselContent","CarouselItem","CarouselNext","CarouselPrevious","meta","title","Demo","render","className","Array","from","length","map","_","index","div","span"],"mappings":";AACA,SAASA,IAAI,EAAEC,WAAW,QAAQ,YAA6B;AAC/D,SACCC,QAAQ,EACRC,eAAe,EACfC,YAAY,EACZC,YAAY,EACZC,gBAAgB,QACV,gBAAiC;AAExC,MAAMC,OAAO;IACZC,OAAO;AACR;AACA,eAAeD,KAAK;AAIpB,OAAO,MAAME,OAAO;IACnBC,QAAQ,kBACP,MAACR;YAASS,WAAU;;8BACnB,KAACR;8BACCS,MAAMC,IAAI,CAAC;wBAAEC,QAAQ;oBAAE,GAAGC,GAAG,CAAC,CAACC,GAAGC,QAClC,uEAAuE;sCACvE,KAACb;sCACA,cAAA,KAACc;gCAAIP,WAAU;0CACd,cAAA,KAACX;8CACA,cAAA,KAACC;wCAAYU,WAAU;kDACtB,cAAA,KAACQ;4CAAKR,WAAU;sDAA0BM,QAAQ;;;;;2BAJnCA;;8BAWrB,KAACX;8BACD,KAACD;;;AAGJ,EAAkB"}
@@ -1,10 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import * as RechartsPrimitive from "recharts";
4
- import { cn } from "#shadcn/lib/utils";
4
+ import { cn } from "../../lib/utils.js";
5
5
  // Format: { THEME_NAME: CSS_SELECTOR }
6
- const THEMES = { light: "", dark: ".dark" };
7
- const ChartContext = React.createContext(null);
6
+ const THEMES = {
7
+ light: "",
8
+ dark: ".dark"
9
+ };
10
+ const ChartContext = /*#__PURE__*/ React.createContext(null);
8
11
  function useChart() {
9
12
  const context = React.useContext(ChartContext);
10
13
  if (!context) {
@@ -15,51 +18,70 @@ function useChart() {
15
18
  function ChartContainer({ id, className, children, config, ...props }) {
16
19
  const uniqueId = React.useId();
17
20
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
18
- return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { "data-slot": "chart", "data-chart": chartId, className: 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-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), _jsx(RechartsPrimitive.ResponsiveContainer, { children: children })] }) }));
21
+ return /*#__PURE__*/ _jsx(ChartContext.Provider, {
22
+ value: {
23
+ config
24
+ },
25
+ children: /*#__PURE__*/ _jsxs("div", {
26
+ "data-slot": "chart",
27
+ "data-chart": chartId,
28
+ className: 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-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", className),
29
+ ...props,
30
+ children: [
31
+ /*#__PURE__*/ _jsx(ChartStyle, {
32
+ id: chartId,
33
+ config: config
34
+ }),
35
+ /*#__PURE__*/ _jsx(RechartsPrimitive.ResponsiveContainer, {
36
+ children: children
37
+ })
38
+ ]
39
+ })
40
+ });
19
41
  }
20
- const ChartStyle = ({ id, config }) => {
21
- const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);
42
+ const ChartStyle = ({ id, config })=>{
43
+ const colorConfig = Object.entries(config).filter(([, config])=>config.theme || config.color);
22
44
  if (!colorConfig.length) {
23
45
  return null;
24
46
  }
25
- return (_jsx("style", {
47
+ return /*#__PURE__*/ _jsx("style", {
26
48
  // biome-ignore lint/security/noDangerouslySetInnerHtml: FIXME: unchanged shadcn
27
49
  dangerouslySetInnerHTML: {
28
- __html: Object.entries(THEMES)
29
- .map(([theme, prefix]) => `
50
+ __html: Object.entries(THEMES).map(([theme, prefix])=>`
30
51
  ${prefix} [data-chart=${id}] {
31
- ${colorConfig
32
- .map(([key, itemConfig]) => {
33
- const color = itemConfig.theme?.[theme] ||
34
- itemConfig.color;
35
- return color ? ` --color-${key}: ${color};` : null;
36
- })
37
- .join("\n")}
52
+ ${colorConfig.map(([key, itemConfig])=>{
53
+ const color = itemConfig.theme?.[theme] || itemConfig.color;
54
+ return color ? ` --color-${key}: ${color};` : null;
55
+ }).join("\n")}
38
56
  }
39
- `)
40
- .join("\n"),
41
- } }));
57
+ `).join("\n")
58
+ }
59
+ });
42
60
  };
43
61
  const ChartTooltip = RechartsPrimitive.Tooltip;
44
- function ChartTooltipContent({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }) {
62
+ function ChartTooltipContent({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey }) {
45
63
  const { config } = useChart();
46
- const tooltipLabel = React.useMemo(() => {
64
+ const tooltipLabel = React.useMemo(()=>{
47
65
  if (hideLabel || !payload?.length) {
48
66
  return null;
49
67
  }
50
68
  const [item] = payload;
51
69
  const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
52
70
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
53
- const value = !labelKey && typeof label === "string"
54
- ? config[label]?.label || label
55
- : itemConfig?.label;
71
+ const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
56
72
  if (labelFormatter) {
57
- return (_jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) }));
73
+ return /*#__PURE__*/ _jsx("div", {
74
+ className: cn("font-medium", labelClassName),
75
+ children: labelFormatter(value, payload)
76
+ });
58
77
  }
59
78
  if (!value) {
60
79
  return null;
61
80
  }
62
- return _jsx("div", { className: cn("font-medium", labelClassName), children: value });
81
+ return /*#__PURE__*/ _jsx("div", {
82
+ className: cn("font-medium", labelClassName),
83
+ children: value
84
+ });
63
85
  }, [
64
86
  label,
65
87
  labelFormatter,
@@ -67,64 +89,105 @@ function ChartTooltipContent({ active, payload, className, indicator = "dot", hi
67
89
  hideLabel,
68
90
  labelClassName,
69
91
  config,
70
- labelKey,
92
+ labelKey
71
93
  ]);
72
94
  if (!active || !payload?.length) {
73
95
  return null;
74
96
  }
75
97
  const nestLabel = payload.length === 1 && indicator !== "dot";
76
- return (_jsxs("div", { className: 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", className), children: [!nestLabel ? tooltipLabel : null, _jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
98
+ return /*#__PURE__*/ _jsxs("div", {
99
+ className: 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", className),
100
+ children: [
101
+ !nestLabel ? tooltipLabel : null,
102
+ /*#__PURE__*/ _jsx("div", {
103
+ className: "grid gap-1.5",
104
+ children: payload.map((item, index)=>{
77
105
  const key = `${nameKey || item.name || item.dataKey || "value"}`;
78
106
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
79
107
  const indicatorColor = color || item.payload.fill || item.color;
80
- return (_jsx("div", { className: cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", indicator === "dot" && "items-center"), children: formatter && item?.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (_jsxs(_Fragment, { children: [itemConfig?.icon ? (_jsx(itemConfig.icon, {})) : (!hideIndicator && (_jsx("div", { className: cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
108
+ return /*#__PURE__*/ _jsx("div", {
109
+ className: cn("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", indicator === "dot" && "items-center"),
110
+ children: formatter && item?.value !== undefined && item.name ? formatter(item.value, item.name, item, index, item.payload) : /*#__PURE__*/ _jsxs(_Fragment, {
111
+ children: [
112
+ itemConfig?.icon ? /*#__PURE__*/ _jsx(itemConfig.icon, {}) : !hideIndicator && /*#__PURE__*/ _jsx("div", {
113
+ className: cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
81
114
  "h-2.5 w-2.5": indicator === "dot",
82
115
  "w-1": indicator === "line",
83
116
  "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
84
- "my-0.5": nestLabel && indicator === "dashed",
85
- }), style: {
117
+ "my-0.5": nestLabel && indicator === "dashed"
118
+ }),
119
+ style: {
86
120
  "--color-bg": indicatorColor,
87
- "--color-border": indicatorColor,
88
- } }))), _jsxs("div", { className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"), children: [_jsxs("div", { className: "grid gap-1.5", children: [nestLabel ? tooltipLabel : null, _jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })] }), item.value && (_jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() }))] })] })) }, item.dataKey));
89
- }) })] }));
121
+ "--color-border": indicatorColor
122
+ }
123
+ }),
124
+ /*#__PURE__*/ _jsxs("div", {
125
+ className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"),
126
+ children: [
127
+ /*#__PURE__*/ _jsxs("div", {
128
+ className: "grid gap-1.5",
129
+ children: [
130
+ nestLabel ? tooltipLabel : null,
131
+ /*#__PURE__*/ _jsx("span", {
132
+ className: "text-muted-foreground",
133
+ children: itemConfig?.label || item.name
134
+ })
135
+ ]
136
+ }),
137
+ item.value && /*#__PURE__*/ _jsx("span", {
138
+ className: "text-foreground font-mono font-medium tabular-nums",
139
+ children: item.value.toLocaleString()
140
+ })
141
+ ]
142
+ })
143
+ ]
144
+ })
145
+ }, item.dataKey);
146
+ })
147
+ })
148
+ ]
149
+ });
90
150
  }
91
151
  const ChartLegend = RechartsPrimitive.Legend;
92
- function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey, }) {
152
+ function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }) {
93
153
  const { config } = useChart();
94
154
  if (!payload?.length) {
95
155
  return null;
96
156
  }
97
- return (_jsx("div", { className: cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className), children: payload.map((item) => {
157
+ return /*#__PURE__*/ _jsx("div", {
158
+ className: cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className),
159
+ children: payload.map((item)=>{
98
160
  const key = `${nameKey || item.dataKey || "value"}`;
99
161
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
100
- return (_jsxs("div", { className: cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"), children: [itemConfig?.icon && !hideIcon ? (_jsx(itemConfig.icon, {})) : (_jsx("div", { className: "h-2 w-2 shrink-0 rounded-[2px]", style: {
101
- backgroundColor: item.color,
102
- } })), itemConfig?.label] }, item.value));
103
- }) }));
162
+ return /*#__PURE__*/ _jsxs("div", {
163
+ className: cn("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
164
+ children: [
165
+ itemConfig?.icon && !hideIcon ? /*#__PURE__*/ _jsx(itemConfig.icon, {}) : /*#__PURE__*/ _jsx("div", {
166
+ className: "h-2 w-2 shrink-0 rounded-[2px]",
167
+ style: {
168
+ backgroundColor: item.color
169
+ }
170
+ }),
171
+ itemConfig?.label
172
+ ]
173
+ }, item.value);
174
+ })
175
+ });
104
176
  }
105
177
  // Helper to extract item config from a payload.
106
178
  function getPayloadConfigFromPayload(config, payload, key) {
107
179
  if (typeof payload !== "object" || payload === null) {
108
180
  return undefined;
109
181
  }
110
- const payloadPayload = "payload" in payload &&
111
- typeof payload.payload === "object" &&
112
- payload.payload !== null
113
- ? payload.payload
114
- : undefined;
182
+ const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : undefined;
115
183
  let configLabelKey = key;
116
- if (key in payload &&
117
- typeof payload[key] === "string") {
184
+ if (key in payload && typeof payload[key] === "string") {
118
185
  configLabelKey = payload[key];
119
- }
120
- else if (payloadPayload &&
121
- key in payloadPayload &&
122
- typeof payloadPayload[key] === "string") {
186
+ } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
123
187
  configLabelKey = payloadPayload[key];
124
188
  }
125
- return configLabelKey in config
126
- ? config[configLabelKey]
127
- : config[key];
189
+ return configLabelKey in config ? config[configLabelKey] : config[key];
128
190
  }
129
- export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, };
191
+ export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle };
192
+
130
193
  //# sourceMappingURL=chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.js","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/chart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/chart.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n\t[k in string]: {\n\t\tlabel?: React.ReactNode;\n\t\ticon?: React.ComponentType;\n\t} & (\n\t\t| { color?: string; theme?: never }\n\t\t| { color?: never; theme: Record<keyof typeof THEMES, string> }\n\t);\n};\n\ntype ChartContextProps = {\n\tconfig: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n\tconst context = React.useContext(ChartContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"useChart must be used within a <ChartContainer />\");\n\t}\n\n\treturn context;\n}\n\nfunction ChartContainer({\n\tid,\n\tclassName,\n\tchildren,\n\tconfig,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tconfig: ChartConfig;\n\tchildren: React.ComponentProps<\n\t\ttypeof RechartsPrimitive.ResponsiveContainer\n\t>[\"children\"];\n}) {\n\tconst uniqueId = React.useId();\n\tconst chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n\treturn (\n\t\t<ChartContext.Provider value={{ config }}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"chart\"\n\t\t\t\tdata-chart={chartId}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<ChartStyle id={chartId} config={config} />\n\t\t\t\t<RechartsPrimitive.ResponsiveContainer>\n\t\t\t\t\t{children}\n\t\t\t\t</RechartsPrimitive.ResponsiveContainer>\n\t\t\t</div>\n\t\t</ChartContext.Provider>\n\t);\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n\tconst colorConfig = Object.entries(config).filter(\n\t\t([, config]) => config.theme || config.color,\n\t);\n\n\tif (!colorConfig.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<style\n\t\t\t// biome-ignore lint/security/noDangerouslySetInnerHtml: FIXME: unchanged shadcn\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: Object.entries(THEMES)\n\t\t\t\t\t.map(\n\t\t\t\t\t\t([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n\t.map(([key, itemConfig]) => {\n\t\tconst color =\n\t\t\titemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n\t\t\titemConfig.color;\n\t\treturn color ? ` --color-${key}: ${color};` : null;\n\t})\n\t.join(\"\\n\")}\n}\n`,\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n\tactive,\n\tpayload,\n\tclassName,\n\tindicator = \"dot\",\n\thideLabel = false,\n\thideIndicator = false,\n\tlabel,\n\tlabelFormatter,\n\tlabelClassName,\n\tformatter,\n\tcolor,\n\tnameKey,\n\tlabelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n\tReact.ComponentProps<\"div\"> & {\n\t\thideLabel?: boolean;\n\t\thideIndicator?: boolean;\n\t\tindicator?: \"line\" | \"dot\" | \"dashed\";\n\t\tnameKey?: string;\n\t\tlabelKey?: string;\n\t}) {\n\tconst { config } = useChart();\n\n\tconst tooltipLabel = React.useMemo(() => {\n\t\tif (hideLabel || !payload?.length) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [item] = payload;\n\t\tconst key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\tconst value =\n\t\t\t!labelKey && typeof label === \"string\"\n\t\t\t\t? config[label as keyof typeof config]?.label || label\n\t\t\t\t: itemConfig?.label;\n\n\t\tif (labelFormatter) {\n\t\t\treturn (\n\t\t\t\t<div className={cn(\"font-medium\", labelClassName)}>\n\t\t\t\t\t{labelFormatter(value, payload)}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n\t}, [\n\t\tlabel,\n\t\tlabelFormatter,\n\t\tpayload,\n\t\thideLabel,\n\t\tlabelClassName,\n\t\tconfig,\n\t\tlabelKey,\n\t]);\n\n\tif (!active || !payload?.length) {\n\t\treturn null;\n\t}\n\n\tconst nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{!nestLabel ? tooltipLabel : null}\n\t\t\t<div className=\"grid gap-1.5\">\n\t\t\t\t{payload.map((item, index) => {\n\t\t\t\t\tconst key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\t\t\t\tconst indicatorColor = color || item.payload.fill || item.color;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={item.dataKey}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n\t\t\t\t\t\t\t\tindicator === \"dot\" && \"items-center\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formatter && item?.value !== undefined && item.name ? (\n\t\t\t\t\t\t\t\tformatter(item.value, item.name, item, index, item.payload)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{itemConfig?.icon ? (\n\t\t\t\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t!hideIndicator && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"h-2.5 w-2.5\": indicator === \"dot\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"w-1\": indicator === \"line\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"w-0 border-[1.5px] border-dashed bg-transparent\":\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindicator === \"dashed\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"my-0.5\": nestLabel && indicator === \"dashed\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"--color-bg\": indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"--color-border\": indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"flex flex-1 justify-between leading-none\",\n\t\t\t\t\t\t\t\t\t\t\tnestLabel ? \"items-end\" : \"items-center\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"grid gap-1.5\">\n\t\t\t\t\t\t\t\t\t\t\t{nestLabel ? tooltipLabel : null}\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t\t{itemConfig?.label || item.name}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{item.value && (\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-foreground font-mono font-medium tabular-nums\">\n\t\t\t\t\t\t\t\t\t\t\t\t{item.value.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n\tclassName,\n\thideIcon = false,\n\tpayload,\n\tverticalAlign = \"bottom\",\n\tnameKey,\n}: React.ComponentProps<\"div\"> &\n\tPick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n\t\thideIcon?: boolean;\n\t\tnameKey?: string;\n\t}) {\n\tconst { config } = useChart();\n\n\tif (!payload?.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"flex items-center justify-center gap-4\",\n\t\t\t\tverticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{payload.map((item) => {\n\t\t\t\tconst key = `${nameKey || item.dataKey || \"value\"}`;\n\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{itemConfig?.icon && !hideIcon ? (\n\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"h-2 w-2 shrink-0 rounded-[2px]\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: item.color,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{itemConfig?.label}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n\tconfig: ChartConfig,\n\tpayload: unknown,\n\tkey: string,\n) {\n\tif (typeof payload !== \"object\" || payload === null) {\n\t\treturn undefined;\n\t}\n\n\tconst payloadPayload =\n\t\t\"payload\" in payload &&\n\t\ttypeof payload.payload === \"object\" &&\n\t\tpayload.payload !== null\n\t\t\t? payload.payload\n\t\t\t: undefined;\n\n\tlet configLabelKey: string = key;\n\n\tif (\n\t\tkey in payload &&\n\t\ttypeof payload[key as keyof typeof payload] === \"string\"\n\t) {\n\t\tconfigLabelKey = payload[key as keyof typeof payload] as string;\n\t} else if (\n\t\tpayloadPayload &&\n\t\tkey in payloadPayload &&\n\t\ttypeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n\t) {\n\t\tconfigLabelKey = payloadPayload[\n\t\t\tkey as keyof typeof payloadPayload\n\t\t] as string;\n\t}\n\n\treturn configLabelKey in config\n\t\t? config[configLabelKey]\n\t\t: config[key as keyof typeof config];\n}\n\nexport {\n\tChartContainer,\n\tChartTooltip,\n\tChartTooltipContent,\n\tChartLegend,\n\tChartLegendContent,\n\tChartStyle,\n};\n"],"names":["React","RechartsPrimitive","cn","THEMES","light","dark","ChartContext","createContext","useChart","context","useContext","Error","ChartContainer","id","className","children","config","props","uniqueId","useId","chartId","replace","Provider","value","div","data-slot","data-chart","ChartStyle","ResponsiveContainer","colorConfig","Object","entries","filter","theme","color","length","style","dangerouslySetInnerHTML","__html","map","prefix","key","itemConfig","join","ChartTooltip","Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","useMemo","item","dataKey","name","getPayloadConfigFromPayload","nestLabel","index","indicatorColor","fill","undefined","icon","span","toLocaleString","ChartLegend","Legend","ChartLegendContent","hideIcon","verticalAlign","backgroundColor","payloadPayload","configLabelKey"],"mappings":"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"}