@yamada-ui/charts 1.1.2-dev-20240430063353 → 1.1.2-dev-20240501174240

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 (197) hide show
  1. package/package.json +5 -5
  2. package/dist/area-chart-gradient.d.mts +0 -11
  3. package/dist/area-chart-gradient.d.ts +0 -11
  4. package/dist/area-chart-gradient.js +0 -47
  5. package/dist/area-chart-gradient.js.map +0 -1
  6. package/dist/area-chart-gradient.mjs +0 -8
  7. package/dist/area-chart-gradient.mjs.map +0 -1
  8. package/dist/area-chart-split.d.mts +0 -10
  9. package/dist/area-chart-split.d.ts +0 -10
  10. package/dist/area-chart-split.js +0 -52
  11. package/dist/area-chart-split.js.map +0 -1
  12. package/dist/area-chart-split.mjs +0 -8
  13. package/dist/area-chart-split.mjs.map +0 -1
  14. package/dist/area-chart.d.mts +0 -41
  15. package/dist/area-chart.d.ts +0 -41
  16. package/dist/area-chart.js +0 -1223
  17. package/dist/area-chart.js.map +0 -1
  18. package/dist/area-chart.mjs +0 -21
  19. package/dist/area-chart.mjs.map +0 -1
  20. package/dist/bar-chart.d.mts +0 -38
  21. package/dist/bar-chart.d.ts +0 -38
  22. package/dist/bar-chart.js +0 -1027
  23. package/dist/bar-chart.js.map +0 -1
  24. package/dist/bar-chart.mjs +0 -19
  25. package/dist/bar-chart.mjs.map +0 -1
  26. package/dist/chart-legend.d.mts +0 -12
  27. package/dist/chart-legend.d.ts +0 -12
  28. package/dist/chart-legend.js +0 -90
  29. package/dist/chart-legend.js.map +0 -1
  30. package/dist/chart-legend.mjs +0 -11
  31. package/dist/chart-legend.mjs.map +0 -1
  32. package/dist/chart-tooltip.d.mts +0 -12
  33. package/dist/chart-tooltip.d.ts +0 -12
  34. package/dist/chart-tooltip.js +0 -121
  35. package/dist/chart-tooltip.js.map +0 -1
  36. package/dist/chart-tooltip.mjs +0 -11
  37. package/dist/chart-tooltip.mjs.map +0 -1
  38. package/dist/chart-utils.d.mts +0 -9
  39. package/dist/chart-utils.d.ts +0 -9
  40. package/dist/chart-utils.js +0 -45
  41. package/dist/chart-utils.js.map +0 -1
  42. package/dist/chart-utils.mjs +0 -10
  43. package/dist/chart-utils.mjs.map +0 -1
  44. package/dist/chart.types.d.mts +0 -78
  45. package/dist/chart.types.d.ts +0 -78
  46. package/dist/chart.types.js +0 -20
  47. package/dist/chart.types.js.map +0 -1
  48. package/dist/chart.types.mjs +0 -2
  49. package/dist/chart.types.mjs.map +0 -1
  50. package/dist/chunk-4WX5YS7M.mjs +0 -179
  51. package/dist/chunk-4WX5YS7M.mjs.map +0 -1
  52. package/dist/chunk-5TVYPA64.mjs +0 -256
  53. package/dist/chunk-5TVYPA64.mjs.map +0 -1
  54. package/dist/chunk-BPR7YL3O.mjs +0 -179
  55. package/dist/chunk-BPR7YL3O.mjs.map +0 -1
  56. package/dist/chunk-E2I2XAZ6.mjs +0 -232
  57. package/dist/chunk-E2I2XAZ6.mjs.map +0 -1
  58. package/dist/chunk-HDOYOHLA.mjs +0 -326
  59. package/dist/chunk-HDOYOHLA.mjs.map +0 -1
  60. package/dist/chunk-KNAADLWO.mjs +0 -225
  61. package/dist/chunk-KNAADLWO.mjs.map +0 -1
  62. package/dist/chunk-KT4YOMM4.mjs +0 -344
  63. package/dist/chunk-KT4YOMM4.mjs.map +0 -1
  64. package/dist/chunk-LBC2B6UX.mjs +0 -84
  65. package/dist/chunk-LBC2B6UX.mjs.map +0 -1
  66. package/dist/chunk-LGMALZCN.mjs +0 -42
  67. package/dist/chunk-LGMALZCN.mjs.map +0 -1
  68. package/dist/chunk-LHI57S6P.mjs +0 -215
  69. package/dist/chunk-LHI57S6P.mjs.map +0 -1
  70. package/dist/chunk-LM2DQK2P.mjs +0 -33
  71. package/dist/chunk-LM2DQK2P.mjs.map +0 -1
  72. package/dist/chunk-MSIOYYWR.mjs +0 -24
  73. package/dist/chunk-MSIOYYWR.mjs.map +0 -1
  74. package/dist/chunk-MWPICUEW.mjs +0 -56
  75. package/dist/chunk-MWPICUEW.mjs.map +0 -1
  76. package/dist/chunk-NEGDEVRX.mjs +0 -53
  77. package/dist/chunk-NEGDEVRX.mjs.map +0 -1
  78. package/dist/chunk-OSNFBRHL.mjs +0 -474
  79. package/dist/chunk-OSNFBRHL.mjs.map +0 -1
  80. package/dist/chunk-OW7SOTEF.mjs +0 -206
  81. package/dist/chunk-OW7SOTEF.mjs.map +0 -1
  82. package/dist/chunk-P7AFSM5W.mjs +0 -114
  83. package/dist/chunk-P7AFSM5W.mjs.map +0 -1
  84. package/dist/chunk-PNE3JG54.mjs +0 -29
  85. package/dist/chunk-PNE3JG54.mjs.map +0 -1
  86. package/dist/chunk-QL3DB7OJ.mjs +0 -21
  87. package/dist/chunk-QL3DB7OJ.mjs.map +0 -1
  88. package/dist/chunk-QZ5OXZ6Z.mjs +0 -251
  89. package/dist/chunk-QZ5OXZ6Z.mjs.map +0 -1
  90. package/dist/chunk-RN6PXJAD.mjs +0 -47
  91. package/dist/chunk-RN6PXJAD.mjs.map +0 -1
  92. package/dist/chunk-STBYRLC5.mjs +0 -208
  93. package/dist/chunk-STBYRLC5.mjs.map +0 -1
  94. package/dist/chunk-XIFDRM7J.mjs +0 -56
  95. package/dist/chunk-XIFDRM7J.mjs.map +0 -1
  96. package/dist/donut-chart.d.mts +0 -31
  97. package/dist/donut-chart.d.ts +0 -31
  98. package/dist/donut-chart.js +0 -702
  99. package/dist/donut-chart.js.map +0 -1
  100. package/dist/donut-chart.mjs +0 -16
  101. package/dist/donut-chart.mjs.map +0 -1
  102. package/dist/index.d.mts +0 -26
  103. package/dist/index.d.ts +0 -26
  104. package/dist/index.js +0 -3228
  105. package/dist/index.js.map +0 -1
  106. package/dist/index.mjs +0 -45
  107. package/dist/index.mjs.map +0 -1
  108. package/dist/line-chart.d.mts +0 -38
  109. package/dist/line-chart.d.ts +0 -38
  110. package/dist/line-chart.js +0 -1088
  111. package/dist/line-chart.js.map +0 -1
  112. package/dist/line-chart.mjs +0 -19
  113. package/dist/line-chart.mjs.map +0 -1
  114. package/dist/pie-chart.d.mts +0 -49
  115. package/dist/pie-chart.d.ts +0 -49
  116. package/dist/pie-chart.js +0 -702
  117. package/dist/pie-chart.js.map +0 -1
  118. package/dist/pie-chart.mjs +0 -16
  119. package/dist/pie-chart.mjs.map +0 -1
  120. package/dist/radar-chart.d.mts +0 -57
  121. package/dist/radar-chart.d.ts +0 -57
  122. package/dist/radar-chart.js +0 -918
  123. package/dist/radar-chart.js.map +0 -1
  124. package/dist/radar-chart.mjs +0 -16
  125. package/dist/radar-chart.mjs.map +0 -1
  126. package/dist/rechart-properties.d.mts +0 -26
  127. package/dist/rechart-properties.d.ts +0 -26
  128. package/dist/rechart-properties.js +0 -517
  129. package/dist/rechart-properties.js.map +0 -1
  130. package/dist/rechart-properties.mjs +0 -48
  131. package/dist/rechart-properties.mjs.map +0 -1
  132. package/dist/use-area-chart.d.mts +0 -123
  133. package/dist/use-area-chart.d.ts +0 -123
  134. package/dist/use-area-chart.js +0 -420
  135. package/dist/use-area-chart.js.map +0 -1
  136. package/dist/use-area-chart.mjs +0 -10
  137. package/dist/use-area-chart.mjs.map +0 -1
  138. package/dist/use-bar-chart.d.mts +0 -73
  139. package/dist/use-bar-chart.d.ts +0 -73
  140. package/dist/use-bar-chart.js +0 -290
  141. package/dist/use-bar-chart.js.map +0 -1
  142. package/dist/use-bar-chart.mjs +0 -10
  143. package/dist/use-bar-chart.mjs.map +0 -1
  144. package/dist/use-chart-axis.d.mts +0 -73
  145. package/dist/use-chart-axis.d.ts +0 -73
  146. package/dist/use-chart-axis.js +0 -227
  147. package/dist/use-chart-axis.js.map +0 -1
  148. package/dist/use-chart-axis.mjs +0 -10
  149. package/dist/use-chart-axis.mjs.map +0 -1
  150. package/dist/use-chart-grid.d.mts +0 -32
  151. package/dist/use-chart-grid.d.ts +0 -32
  152. package/dist/use-chart-grid.js +0 -92
  153. package/dist/use-chart-grid.js.map +0 -1
  154. package/dist/use-chart-grid.mjs +0 -10
  155. package/dist/use-chart-grid.mjs.map +0 -1
  156. package/dist/use-chart-legend.d.mts +0 -18
  157. package/dist/use-chart-legend.d.ts +0 -18
  158. package/dist/use-chart-legend.js +0 -81
  159. package/dist/use-chart-legend.js.map +0 -1
  160. package/dist/use-chart-legend.mjs +0 -9
  161. package/dist/use-chart-legend.mjs.map +0 -1
  162. package/dist/use-chart-reference-line.d.mts +0 -22
  163. package/dist/use-chart-reference-line.d.ts +0 -22
  164. package/dist/use-chart-reference-line.js +0 -105
  165. package/dist/use-chart-reference-line.js.map +0 -1
  166. package/dist/use-chart-reference-line.mjs +0 -10
  167. package/dist/use-chart-reference-line.mjs.map +0 -1
  168. package/dist/use-chart-tooltip.d.mts +0 -27
  169. package/dist/use-chart-tooltip.d.ts +0 -27
  170. package/dist/use-chart-tooltip.js +0 -100
  171. package/dist/use-chart-tooltip.js.map +0 -1
  172. package/dist/use-chart-tooltip.mjs +0 -10
  173. package/dist/use-chart-tooltip.mjs.map +0 -1
  174. package/dist/use-chart.d.mts +0 -33
  175. package/dist/use-chart.d.ts +0 -33
  176. package/dist/use-chart.js +0 -104
  177. package/dist/use-chart.js.map +0 -1
  178. package/dist/use-chart.mjs +0 -18
  179. package/dist/use-chart.mjs.map +0 -1
  180. package/dist/use-line-chart.d.mts +0 -97
  181. package/dist/use-line-chart.d.ts +0 -97
  182. package/dist/use-line-chart.js +0 -344
  183. package/dist/use-line-chart.js.map +0 -1
  184. package/dist/use-line-chart.mjs +0 -10
  185. package/dist/use-line-chart.mjs.map +0 -1
  186. package/dist/use-pie-chart.d.mts +0 -112
  187. package/dist/use-pie-chart.d.ts +0 -112
  188. package/dist/use-pie-chart.js +0 -282
  189. package/dist/use-pie-chart.js.map +0 -1
  190. package/dist/use-pie-chart.mjs +0 -10
  191. package/dist/use-pie-chart.mjs.map +0 -1
  192. package/dist/use-radar-chart.d.mts +0 -105
  193. package/dist/use-radar-chart.d.ts +0 -105
  194. package/dist/use-radar-chart.js +0 -473
  195. package/dist/use-radar-chart.js.map +0 -1
  196. package/dist/use-radar-chart.mjs +0 -10
  197. package/dist/use-radar-chart.mjs.map +0 -1
@@ -1,326 +0,0 @@
1
- "use client"
2
- import {
3
- areaChartProperties,
4
- areaProperties,
5
- dotProperties
6
- } from "./chunk-OSNFBRHL.mjs";
7
- import {
8
- getComponentProps
9
- } from "./chunk-QL3DB7OJ.mjs";
10
-
11
- // src/use-area-chart.ts
12
- import { useTheme } from "@yamada-ui/core";
13
- import { cx } from "@yamada-ui/utils";
14
- import { useCallback, useId, useMemo, useState } from "react";
15
- var useAreaChart = ({
16
- data,
17
- series,
18
- type,
19
- layoutType = "horizontal",
20
- withGradient: withGradientProp,
21
- withDots = true,
22
- withActiveDots = true,
23
- curveType = "monotone",
24
- strokeWidth = 2,
25
- connectNulls = true,
26
- fillOpacity = 0.4,
27
- splitColors = ["#ee6a5d", "#5fce7d"],
28
- splitOffset,
29
- referenceLineProps,
30
- syncId,
31
- styles,
32
- ...rest
33
- }) => {
34
- var _a;
35
- const uuid = useId();
36
- const { theme } = useTheme();
37
- const [highlightedArea, setHighlightedArea] = useState(null);
38
- const splitId = `${uuid}-split`;
39
- const stacked = type === "stacked" || type === "percent";
40
- const withGradient = typeof withGradientProp === "boolean" ? withGradientProp : type === "default";
41
- const shouldHighlight = highlightedArea !== null;
42
- const {
43
- dot = {},
44
- activeDot = {},
45
- dimDot,
46
- dimArea,
47
- ...computedAreaProps
48
- } = (_a = rest.areaProps) != null ? _a : {};
49
- const areaColors = useMemo(
50
- () => series.map(({ color }, index) => ({
51
- __prefix: "ui",
52
- name: `area-${index}`,
53
- token: "colors",
54
- value: color != null ? color : "transparent"
55
- })),
56
- [series]
57
- );
58
- const areaSplitColors = useMemo(
59
- () => splitColors.map((color, index) => ({
60
- __prefix: "ui",
61
- name: `area-split-${index}`,
62
- token: "colors",
63
- value: color != null ? color : "transparent"
64
- })),
65
- [splitColors]
66
- );
67
- const referenceLineColors = useMemo(
68
- () => referenceLineProps ? referenceLineProps.map(({ color }, index) => ({
69
- __prefix: "ui",
70
- name: `reference-line-${index}`,
71
- token: "colors",
72
- value: color != null ? color : "transparent"
73
- })) : [],
74
- [referenceLineProps]
75
- );
76
- const areaVars = useMemo(() => {
77
- return [
78
- ...areaColors,
79
- ...areaSplitColors,
80
- ...referenceLineColors,
81
- { __prefix: "ui", name: "fill-opacity", value: fillOpacity }
82
- ];
83
- }, [areaColors, areaSplitColors, referenceLineColors, fillOpacity]);
84
- const [chartProps, areaChartClassName] = useMemo(
85
- () => {
86
- var _a2;
87
- return getComponentProps(
88
- [(_a2 = rest.chartProps) != null ? _a2 : {}, areaChartProperties],
89
- styles.chart
90
- )(theme);
91
- },
92
- [rest.chartProps, styles.chart, theme]
93
- );
94
- const [areaProps, areaClassName] = useMemo(() => {
95
- const resolvedAreaProps = {
96
- fillOpacity: 1,
97
- strokeOpacity: 1,
98
- ...computedAreaProps
99
- };
100
- return getComponentProps(
101
- [resolvedAreaProps, areaProperties],
102
- styles.area
103
- )(theme);
104
- }, [computedAreaProps, styles.area, theme]);
105
- const [dimAreaProps, dimAreaClassName] = useMemo(() => {
106
- const resolvedDimArea = {
107
- fillOpacity: 0,
108
- strokeOpacity: 0.3,
109
- ...dimArea
110
- };
111
- return getComponentProps([resolvedDimArea, areaProperties])(
112
- theme
113
- );
114
- }, [dimArea, theme]);
115
- const [dotProps, dotClassName] = useMemo(() => {
116
- const resolvedDot = { fillOpacity: 1, strokeWidth: 2, ...dot };
117
- return getComponentProps(
118
- [resolvedDot, dotProperties],
119
- styles.dot
120
- )(theme);
121
- }, [dot, styles.dot, theme]);
122
- const [activeDotProps, activeDotClassName] = useMemo(
123
- () => getComponentProps(
124
- [activeDot, dotProperties],
125
- styles.activeDot
126
- )(theme),
127
- [activeDot, styles.activeDot, theme]
128
- );
129
- const [dimDotProps, dimDotClassName] = useMemo(() => {
130
- const resolvedDimDot = { fillOpacity: 0, strokeOpacity: 0, ...dimDot };
131
- return getComponentProps([resolvedDimDot, dotProperties])(
132
- theme
133
- );
134
- }, [dimDot, theme]);
135
- const defaultSplitOffset = useMemo(() => {
136
- if (series.length === 1) {
137
- const dataKey = series[0].dataKey;
138
- const dataMax = Math.max(...data.map((item) => item[dataKey]));
139
- const dataMin = Math.min(...data.map((item) => item[dataKey]));
140
- if (dataMax <= 0)
141
- return 0;
142
- if (dataMin >= 0)
143
- return 1;
144
- return dataMax / (dataMax - dataMin);
145
- }
146
- return 0.5;
147
- }, [data, series]);
148
- const areaPropsList = useMemo(
149
- () => series.map((props, index) => {
150
- const {
151
- dataKey,
152
- dot: dot2 = {},
153
- activeDot: activeDot2 = {},
154
- dimDot: dimDot2 = {},
155
- dimArea: dimArea2 = {},
156
- strokeDasharray,
157
- ...computedProps
158
- } = props;
159
- const id = `${uuid}-${dataKey}`;
160
- const color = `var(--ui-area-${index})`;
161
- const dimmed = shouldHighlight && highlightedArea !== dataKey;
162
- const computedDimArea = { ...dimAreaProps, ...dimArea2 };
163
- const resolvedProps = {
164
- ...areaProps,
165
- ...computedProps,
166
- ...dimmed ? computedDimArea : {}
167
- };
168
- const rest2 = getComponentProps(
169
- [resolvedProps, areaProperties],
170
- areaClassName,
171
- dimmed ? dimAreaClassName : void 0
172
- )(theme, true);
173
- let resolvedActiveDot;
174
- if (withActiveDots) {
175
- const computedActiveDot = { ...activeDotProps, ...activeDot2 };
176
- const [rest3, className] = getComponentProps(
177
- [computedActiveDot, dotProperties],
178
- activeDotClassName
179
- )(theme);
180
- resolvedActiveDot = {
181
- className: cx("ui-area-chart__active-dot", className),
182
- stroke: color,
183
- r: 4,
184
- ...rest3
185
- };
186
- } else {
187
- resolvedActiveDot = false;
188
- }
189
- let resolvedDot;
190
- if (withDots) {
191
- const computedDimDot = { ...dimDotProps, ...dimDot2 };
192
- const computedDot = {
193
- ...dotProps,
194
- ...dot2,
195
- ...dimmed ? computedDimDot : {}
196
- };
197
- const [rest3, className] = getComponentProps(
198
- [computedDot, dotProperties],
199
- dotClassName,
200
- dimmed ? dimDotClassName : void 0
201
- )(theme);
202
- resolvedDot = {
203
- className: cx("ui-area-chart__dot", className),
204
- fill: color,
205
- r: 4,
206
- ...rest3
207
- };
208
- } else {
209
- resolvedDot = false;
210
- }
211
- return {
212
- ...rest2,
213
- id,
214
- color,
215
- strokeDasharray,
216
- dataKey,
217
- activeDot: resolvedActiveDot,
218
- dot: resolvedDot
219
- };
220
- }),
221
- [
222
- series,
223
- uuid,
224
- shouldHighlight,
225
- highlightedArea,
226
- dimAreaProps,
227
- dimDotProps,
228
- areaProps,
229
- areaClassName,
230
- dimAreaClassName,
231
- theme,
232
- withActiveDots,
233
- withDots,
234
- activeDotProps,
235
- activeDotClassName,
236
- dotProps,
237
- dotClassName,
238
- dimDotClassName
239
- ]
240
- );
241
- const getAreaChartProps = useCallback(
242
- ({ className, ...props } = {}, ref = null) => ({
243
- ref,
244
- className: cx(className, areaChartClassName),
245
- data,
246
- stackOffset: type === "percent" ? "expand" : void 0,
247
- layout: layoutType,
248
- syncId,
249
- ...props,
250
- ...chartProps
251
- }),
252
- [areaChartClassName, data, type, layoutType, syncId, chartProps]
253
- );
254
- const getAreaSplitProps = useCallback(
255
- (props = {}) => ({
256
- id: splitId,
257
- offset: splitOffset != null ? splitOffset : defaultSplitOffset,
258
- fillOpacity: "var(--ui-fill-opacity)",
259
- ...props
260
- }),
261
- [defaultSplitOffset, splitId, splitOffset]
262
- );
263
- const getAreaProps = useCallback(
264
- ({ index, className: classNameProp, ...props }, ref = null) => {
265
- const {
266
- id,
267
- color,
268
- className,
269
- dataKey,
270
- strokeDasharray,
271
- activeDot: activeDot2,
272
- dot: dot2,
273
- ...rest2
274
- } = areaPropsList[index];
275
- return {
276
- ref,
277
- className: cx(classNameProp, className),
278
- id,
279
- activeDot: activeDot2,
280
- dot: dot2,
281
- name: dataKey,
282
- type: curveType,
283
- dataKey,
284
- fill: type === "split" ? `url(#${splitId})` : `url(#${id})`,
285
- strokeWidth,
286
- stroke: color,
287
- isAnimationActive: false,
288
- connectNulls,
289
- stackId: stacked ? "stack" : void 0,
290
- strokeDasharray,
291
- ...props,
292
- ...rest2
293
- };
294
- },
295
- [
296
- areaPropsList,
297
- connectNulls,
298
- curveType,
299
- splitId,
300
- stacked,
301
- strokeWidth,
302
- type
303
- ]
304
- );
305
- const getAreaGradientProps = useCallback(
306
- (props = {}) => ({
307
- withGradient,
308
- fillOpacity: "var(--ui-fill-opacity)",
309
- ...props
310
- }),
311
- [withGradient]
312
- );
313
- return {
314
- getAreaChartProps,
315
- getAreaSplitProps,
316
- getAreaProps,
317
- getAreaGradientProps,
318
- areaVars,
319
- setHighlightedArea
320
- };
321
- };
322
-
323
- export {
324
- useAreaChart
325
- };
326
- //# sourceMappingURL=chunk-HDOYOHLA.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/use-area-chart.ts"],"sourcesContent":["import type { CSSUIObject, CSSUIProps } from \"@yamada-ui/core\"\nimport { useTheme } from \"@yamada-ui/core\"\nimport type { Dict } from \"@yamada-ui/utils\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { ComponentPropsWithoutRef } from \"react\"\nimport { useCallback, useId, useMemo, useState } from \"react\"\nimport type * as Recharts from \"recharts\"\nimport type { AreaGradientProps } from \"./area-chart-gradient\"\nimport type { AreaSplitProps } from \"./area-chart-split\"\nimport { getComponentProps } from \"./chart-utils\"\nimport type {\n ChartCurveType,\n AreaProps,\n AreaChartType,\n AreaChartProps,\n ChartPropGetter,\n ChartLayoutType,\n ReferenceLineProps,\n RequiredChartPropGetter,\n} from \"./chart.types\"\nimport {\n areaChartProperties,\n dotProperties,\n areaProperties,\n} from \"./rechart-properties\"\n\nexport type UseAreaChartOptions = {\n /**\n * Chart data.\n */\n data: Dict[]\n /**\n * An array of objects with `dataKey` and `color` keys. Determines which data should be consumed from the `data` array.\n */\n series: AreaProps[]\n /**\n * Props for the areas.\n */\n areaProps?: Partial<AreaProps>\n /**\n * Controls how chart areas are positioned relative to each other.\n *\n * @default `default`\n */\n type?: AreaChartType\n /**\n * Props passed down to recharts `AreaChart` component.\n */\n chartProps?: AreaChartProps\n /**\n * If any two categorical charts have the same syncId,\n * these two charts can sync the position tooltip, and the startIndex, endIndex of Brush.\n */\n syncId?: number | string\n /**\n * Chart orientation.\n *\n * @default 'horizontal'\n */\n layoutType?: ChartLayoutType\n /**\n * Determines whether the chart area should be represented with a gradient instead of the solid color.\n */\n withGradient?: boolean\n /**\n * Determines whether dots should be displayed.\n *\n * @default true\n */\n withDots?: boolean\n /**\n * Determines whether activeDots should be displayed.\n *\n * @default true\n */\n withActiveDots?: boolean\n /**\n * Type of the curve.\n *\n * @default `monotone`\n */\n curveType?: ChartCurveType\n /**\n * Stroke width for the chart areas.\n *\n * @default 2\n */\n strokeWidth?: number\n /**\n * Determines whether points with `null` values should be connected.\n *\n * @default true\n */\n connectNulls?: boolean\n /**\n * A tuple of colors used when `type=\"split\"` is set, ignored in all other cases.\n *\n * @default '[\"red.400\", \"green.400\"]'\n */\n splitColors?: [string, string]\n /**\n * Offset for the split gradient. By default, value is inferred from `data` and `series` if possible.\n * Must be generated from the data array with `getSplitOffset` function.\n */\n splitOffset?: number\n /**\n * Reference lines that should be displayed on the chart.\n */\n referenceLineProps?: ReferenceLineProps[]\n /**\n * Controls fill opacity of all areas.\n *\n * @default 0.4\n */\n fillOpacity?: number | [number, number]\n}\n\nexport type UseAreaChartProps = UseAreaChartOptions & {\n styles: Dict<CSSUIObject>\n}\n\nexport const useAreaChart = ({\n data,\n series,\n type,\n layoutType = \"horizontal\",\n withGradient: withGradientProp,\n withDots = true,\n withActiveDots = true,\n curveType = \"monotone\",\n strokeWidth = 2,\n connectNulls = true,\n fillOpacity = 0.4,\n splitColors = [\"#ee6a5d\", \"#5fce7d\"],\n splitOffset,\n referenceLineProps,\n syncId,\n styles,\n ...rest\n}: UseAreaChartProps) => {\n const uuid = useId()\n const { theme } = useTheme()\n const [highlightedArea, setHighlightedArea] = useState<string | null>(null)\n const splitId = `${uuid}-split`\n const stacked = type === \"stacked\" || type === \"percent\"\n const withGradient =\n typeof withGradientProp === \"boolean\"\n ? withGradientProp\n : type === \"default\"\n const shouldHighlight = highlightedArea !== null\n const {\n dot = {},\n activeDot = {},\n dimDot,\n dimArea,\n ...computedAreaProps\n } = rest.areaProps ?? {}\n\n const areaColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n series.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `area-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [series],\n )\n\n const areaSplitColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n splitColors.map((color, index) => ({\n __prefix: \"ui\",\n name: `area-split-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n })),\n [splitColors],\n )\n\n const referenceLineColors: CSSUIProps[\"var\"] = useMemo(\n () =>\n referenceLineProps\n ? referenceLineProps.map(({ color }, index) => ({\n __prefix: \"ui\",\n name: `reference-line-${index}`,\n token: \"colors\",\n value: color ?? \"transparent\",\n }))\n : [],\n [referenceLineProps],\n )\n\n const areaVars: CSSUIProps[\"var\"] = useMemo(() => {\n return [\n ...areaColors,\n ...areaSplitColors,\n ...referenceLineColors,\n { __prefix: \"ui\", name: \"fill-opacity\", value: fillOpacity },\n ]\n }, [areaColors, areaSplitColors, referenceLineColors, fillOpacity])\n\n const [chartProps, areaChartClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [rest.chartProps ?? {}, areaChartProperties],\n styles.chart,\n )(theme),\n [rest.chartProps, styles.chart, theme],\n )\n\n const [areaProps, areaClassName] = useMemo(() => {\n const resolvedAreaProps = {\n fillOpacity: 1,\n strokeOpacity: 1,\n ...computedAreaProps,\n }\n\n return getComponentProps<Dict, string>(\n [resolvedAreaProps, areaProperties],\n styles.area,\n )(theme)\n }, [computedAreaProps, styles.area, theme])\n\n const [dimAreaProps, dimAreaClassName] = useMemo(() => {\n const resolvedDimArea = {\n fillOpacity: 0,\n strokeOpacity: 0.3,\n ...dimArea,\n }\n\n return getComponentProps<Dict, string>([resolvedDimArea, areaProperties])(\n theme,\n )\n }, [dimArea, theme])\n\n const [dotProps, dotClassName] = useMemo(() => {\n const resolvedDot = { fillOpacity: 1, strokeWidth: 2, ...dot }\n\n return getComponentProps<Dict, string>(\n [resolvedDot, dotProperties],\n styles.dot,\n )(theme)\n }, [dot, styles.dot, theme])\n\n const [activeDotProps, activeDotClassName] = useMemo(\n () =>\n getComponentProps<Dict, string>(\n [activeDot, dotProperties],\n styles.activeDot,\n )(theme),\n [activeDot, styles.activeDot, theme],\n )\n\n const [dimDotProps, dimDotClassName] = useMemo(() => {\n const resolvedDimDot = { fillOpacity: 0, strokeOpacity: 0, ...dimDot }\n return getComponentProps<Dict, string>([resolvedDimDot, dotProperties])(\n theme,\n )\n }, [dimDot, theme])\n\n const defaultSplitOffset = useMemo(() => {\n if (series.length === 1) {\n const dataKey = series[0].dataKey as string\n\n const dataMax = Math.max(...data.map((item) => item[dataKey]))\n const dataMin = Math.min(...data.map((item) => item[dataKey]))\n\n if (dataMax <= 0) return 0\n if (dataMin >= 0) return 1\n\n return dataMax / (dataMax - dataMin)\n }\n\n return 0.5\n }, [data, series])\n\n const areaPropsList = useMemo(\n () =>\n series.map((props, index) => {\n const {\n dataKey,\n dot = {},\n activeDot = {},\n dimDot = {},\n dimArea = {},\n strokeDasharray,\n ...computedProps\n } = props\n const id = `${uuid}-${dataKey}`\n const color = `var(--ui-area-${index})`\n const dimmed = shouldHighlight && highlightedArea !== dataKey\n const computedDimArea = { ...dimAreaProps, ...dimArea }\n\n const resolvedProps = {\n ...areaProps,\n ...computedProps,\n ...(dimmed ? computedDimArea : {}),\n }\n const rest = getComponentProps<Dict, string>(\n [resolvedProps, areaProperties],\n areaClassName,\n dimmed ? dimAreaClassName : undefined,\n )(theme, true)\n\n let resolvedActiveDot: Recharts.DotProps | boolean\n\n if (withActiveDots) {\n const computedActiveDot = { ...activeDotProps, ...activeDot }\n\n const [rest, className] = getComponentProps(\n [computedActiveDot, dotProperties],\n activeDotClassName,\n )(theme)\n\n resolvedActiveDot = {\n className: cx(\"ui-area-chart__active-dot\", className),\n stroke: color,\n r: 4,\n ...rest,\n } as Recharts.DotProps\n } else {\n resolvedActiveDot = false\n }\n\n let resolvedDot: Recharts.DotProps | boolean\n\n if (withDots) {\n const computedDimDot = { ...dimDotProps, ...dimDot }\n const computedDot = {\n ...dotProps,\n ...dot,\n ...(dimmed ? computedDimDot : {}),\n }\n\n const [rest, className] = getComponentProps(\n [computedDot, dotProperties],\n dotClassName,\n dimmed ? dimDotClassName : undefined,\n )(theme)\n\n resolvedDot = {\n className: cx(\"ui-area-chart__dot\", className),\n fill: color,\n r: 4,\n ...rest,\n } as Recharts.DotProps\n } else {\n resolvedDot = false\n }\n\n return {\n ...rest,\n id,\n color,\n strokeDasharray,\n dataKey,\n activeDot: resolvedActiveDot,\n dot: resolvedDot,\n }\n }),\n [\n series,\n uuid,\n shouldHighlight,\n highlightedArea,\n dimAreaProps,\n dimDotProps,\n areaProps,\n areaClassName,\n dimAreaClassName,\n theme,\n withActiveDots,\n withDots,\n activeDotProps,\n activeDotClassName,\n dotProps,\n dotClassName,\n dimDotClassName,\n ],\n )\n\n const getAreaChartProps: ChartPropGetter<\n \"div\",\n ComponentPropsWithoutRef<typeof Recharts.AreaChart>,\n ComponentPropsWithoutRef<typeof Recharts.AreaChart>\n > = useCallback(\n ({ className, ...props } = {}, ref = null) => ({\n ref,\n className: cx(className, areaChartClassName),\n data,\n stackOffset: type === \"percent\" ? \"expand\" : undefined,\n layout: layoutType,\n syncId,\n ...props,\n ...chartProps,\n }),\n [areaChartClassName, data, type, layoutType, syncId, chartProps],\n )\n\n const getAreaSplitProps: ChartPropGetter<\n \"div\",\n Partial<AreaSplitProps>,\n AreaSplitProps\n > = useCallback(\n (props = {}) => ({\n id: splitId,\n offset: splitOffset ?? defaultSplitOffset,\n fillOpacity: \"var(--ui-fill-opacity)\",\n ...props,\n }),\n [defaultSplitOffset, splitId, splitOffset],\n )\n\n const getAreaProps: RequiredChartPropGetter<\n \"div\",\n {\n index: number\n },\n Omit<Recharts.AreaProps, \"ref\">\n > = useCallback(\n ({ index, className: classNameProp, ...props }, ref = null) => {\n const {\n id,\n color,\n className,\n dataKey,\n strokeDasharray,\n activeDot,\n dot,\n ...rest\n } = areaPropsList[index]\n\n return {\n ref,\n className: cx(classNameProp, className),\n id,\n activeDot,\n dot,\n name: dataKey as string,\n type: curveType,\n dataKey,\n fill: type === \"split\" ? `url(#${splitId})` : `url(#${id})`,\n strokeWidth,\n stroke: color,\n isAnimationActive: false,\n connectNulls,\n stackId: stacked ? \"stack\" : undefined,\n strokeDasharray,\n ...(props as Omit<Recharts.AreaProps, \"dataKey\">),\n ...rest,\n }\n },\n [\n areaPropsList,\n connectNulls,\n curveType,\n splitId,\n stacked,\n strokeWidth,\n type,\n ],\n )\n\n const getAreaGradientProps: ChartPropGetter<\n \"div\",\n Partial<AreaGradientProps>,\n AreaGradientProps\n > = useCallback(\n (props = {}) => ({\n withGradient,\n fillOpacity: \"var(--ui-fill-opacity)\",\n ...props,\n }),\n [withGradient],\n )\n\n return {\n getAreaChartProps,\n getAreaSplitProps,\n getAreaProps,\n getAreaGradientProps,\n areaVars,\n setHighlightedArea,\n }\n}\n\nexport type UseAreaChartReturn = ReturnType<typeof useAreaChart>\n"],"mappings":"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","names":["_a","dot","activeDot","dimDot","dimArea","rest"]}
@@ -1,225 +0,0 @@
1
- "use client"
2
- import {
3
- useBarChart
4
- } from "./chunk-STBYRLC5.mjs";
5
- import {
6
- useChartAxis
7
- } from "./chunk-P7AFSM5W.mjs";
8
- import {
9
- useChartGrid
10
- } from "./chunk-LGMALZCN.mjs";
11
- import {
12
- useChartReferenceLine
13
- } from "./chunk-MWPICUEW.mjs";
14
- import {
15
- useChartLegend
16
- } from "./chunk-LM2DQK2P.mjs";
17
- import {
18
- useChartTooltip
19
- } from "./chunk-RN6PXJAD.mjs";
20
- import {
21
- ChartLegend
22
- } from "./chunk-NEGDEVRX.mjs";
23
- import {
24
- ChartTooltip
25
- } from "./chunk-LBC2B6UX.mjs";
26
- import {
27
- ChartProvider,
28
- useChart
29
- } from "./chunk-XIFDRM7J.mjs";
30
-
31
- // src/bar-chart.tsx
32
- import {
33
- ui,
34
- forwardRef,
35
- useMultiComponentStyle,
36
- omitThemeProps
37
- } from "@yamada-ui/core";
38
- import { cx } from "@yamada-ui/utils";
39
- import { useMemo } from "react";
40
- import {
41
- Legend,
42
- BarChart as ReChartsBarChart,
43
- Bar,
44
- CartesianGrid,
45
- Tooltip,
46
- XAxis,
47
- YAxis,
48
- ResponsiveContainer,
49
- ReferenceLine
50
- } from "recharts";
51
- import { jsx, jsxs } from "react/jsx-runtime";
52
- var BarChart = forwardRef((props, ref) => {
53
- const [styles, mergedProps] = useMultiComponentStyle("BarChart", props);
54
- const {
55
- className,
56
- series,
57
- dataKey,
58
- layoutType,
59
- tickLine,
60
- gridAxis,
61
- withXAxis,
62
- withYAxis,
63
- barProps,
64
- xAxisProps,
65
- yAxisProps,
66
- type = "default",
67
- withTooltip = true,
68
- withLegend = false,
69
- containerProps,
70
- unit,
71
- valueFormatter,
72
- tooltipProps,
73
- tooltipAnimationDuration,
74
- legendProps,
75
- data,
76
- referenceLineProps = [],
77
- gridProps,
78
- strokeDasharray,
79
- fillOpacity,
80
- chartProps,
81
- syncId,
82
- ...rest
83
- } = omitThemeProps(mergedProps);
84
- const { getBarChartProps, getBarProps, barVars, setHighlightedArea } = useBarChart({
85
- data,
86
- series,
87
- type,
88
- layoutType,
89
- chartProps,
90
- barProps,
91
- referenceLineProps,
92
- fillOpacity,
93
- syncId,
94
- styles
95
- });
96
- const { getContainerProps } = useChart({ containerProps });
97
- const { getXAxisProps, getYAxisProps } = useChartAxis({
98
- dataKey,
99
- type,
100
- layoutType,
101
- tickLine,
102
- gridAxis,
103
- withXAxis,
104
- withYAxis,
105
- xAxisProps,
106
- yAxisProps,
107
- unit,
108
- valueFormatter,
109
- styles
110
- });
111
- const { getReferenceLineProps } = useChartReferenceLine({
112
- referenceLineProps,
113
- styles
114
- });
115
- const { getGridProps } = useChartGrid({
116
- gridProps,
117
- gridAxis,
118
- strokeDasharray,
119
- styles
120
- });
121
- const { tooltipProps: computedTooltipProps, getTooltipProps } = useChartTooltip({
122
- tooltipProps,
123
- tooltipAnimationDuration,
124
- styles
125
- });
126
- const { legendProps: computedLegendProps, getLegendProps } = useChartLegend({
127
- legendProps
128
- });
129
- const bars = useMemo(
130
- () => series.map(({ dataKey: dataKey2 }, index) => {
131
- return /* @__PURE__ */ jsx(
132
- Bar,
133
- {
134
- ...getBarProps({ index, className: "ui-bar-chart__bar" })
135
- },
136
- `bar-${dataKey2}`
137
- );
138
- }),
139
- [getBarProps, series]
140
- );
141
- const referenceLinesItems = useMemo(
142
- () => referenceLineProps.map((_, index) => /* @__PURE__ */ jsx(
143
- ReferenceLine,
144
- {
145
- ...getReferenceLineProps({
146
- index,
147
- className: "ui-bar-chart__reference-line"
148
- })
149
- },
150
- `referenceLine-${index}`
151
- )),
152
- [getReferenceLineProps, referenceLineProps]
153
- );
154
- return /* @__PURE__ */ jsx(ChartProvider, { value: { styles }, children: /* @__PURE__ */ jsx(
155
- ui.div,
156
- {
157
- ref,
158
- className: cx("ui-bar-chart", className),
159
- var: barVars,
160
- __css: { maxW: "full", ...styles.container },
161
- ...rest,
162
- children: /* @__PURE__ */ jsx(
163
- ResponsiveContainer,
164
- {
165
- ...getContainerProps({ className: "ui-bar-chart__container" }),
166
- children: /* @__PURE__ */ jsxs(
167
- ReChartsBarChart,
168
- {
169
- ...getBarChartProps({ className: "ui-bar-chart__chart" }),
170
- children: [
171
- /* @__PURE__ */ jsx(
172
- CartesianGrid,
173
- {
174
- ...getGridProps({ className: "ui-bar-chart__grid" })
175
- }
176
- ),
177
- /* @__PURE__ */ jsx(XAxis, { ...getXAxisProps({ className: "ui-bar-chart__x-axis" }) }),
178
- /* @__PURE__ */ jsx(YAxis, { ...getYAxisProps({ className: "ui-bar-chart__y-axis" }) }),
179
- withLegend ? /* @__PURE__ */ jsx(
180
- Legend,
181
- {
182
- content: ({ payload }) => /* @__PURE__ */ jsx(
183
- ChartLegend,
184
- {
185
- className: "ui-bar-chart__legend",
186
- payload,
187
- onHighlight: setHighlightedArea,
188
- ...computedLegendProps
189
- }
190
- ),
191
- ...getLegendProps()
192
- }
193
- ) : null,
194
- withTooltip ? /* @__PURE__ */ jsx(
195
- Tooltip,
196
- {
197
- content: ({ label, payload }) => /* @__PURE__ */ jsx(
198
- ChartTooltip,
199
- {
200
- className: "ui-bar-chart__tooltip",
201
- label,
202
- payload,
203
- valueFormatter,
204
- unit,
205
- ...computedTooltipProps
206
- }
207
- ),
208
- ...getTooltipProps()
209
- }
210
- ) : null,
211
- bars,
212
- referenceLinesItems
213
- ]
214
- }
215
- )
216
- }
217
- )
218
- }
219
- ) });
220
- });
221
-
222
- export {
223
- BarChart
224
- };
225
- //# sourceMappingURL=chunk-KNAADLWO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/bar-chart.tsx"],"sourcesContent":["import type { HTMLUIProps, ThemeProps } from \"@yamada-ui/core\"\nimport {\n ui,\n forwardRef,\n useMultiComponentStyle,\n omitThemeProps,\n} from \"@yamada-ui/core\"\nimport { cx } from \"@yamada-ui/utils\"\nimport { useMemo } from \"react\"\nimport {\n Legend,\n BarChart as ReChartsBarChart,\n Bar,\n CartesianGrid,\n Tooltip,\n XAxis,\n YAxis,\n ResponsiveContainer,\n ReferenceLine,\n} from \"recharts\"\nimport { ChartLegend } from \"./chart-legend\"\nimport { ChartTooltip } from \"./chart-tooltip\"\nimport { useBarChart } from \"./use-bar-chart\"\nimport type { UseBarChartOptions } from \"./use-bar-chart\"\nimport type { UseChartProps } from \"./use-chart\"\nimport { ChartProvider, useChart } from \"./use-chart\"\nimport type { UseChartAxisOptions } from \"./use-chart-axis\"\nimport { useChartAxis } from \"./use-chart-axis\"\nimport { useChartGrid, type UseChartGridOptions } from \"./use-chart-grid\"\nimport type { UseChartLegendProps } from \"./use-chart-legend\"\nimport { useChartLegend } from \"./use-chart-legend\"\nimport {\n useChartReferenceLine,\n type UseChartReferenceLineOptions,\n} from \"./use-chart-reference-line\"\nimport type { UseChartTooltipOptions } from \"./use-chart-tooltip\"\nimport { useChartTooltip } from \"./use-chart-tooltip\"\n\ntype BarChartOptions = {\n /**\n * If `true`, tooltip is visible.\n *\n * @default true\n */\n withTooltip?: boolean\n /**\n * If `true`, legend is visible.\n *\n * @default false\n */\n withLegend?: boolean\n}\n\nexport type BarChartProps = HTMLUIProps<\"div\"> &\n ThemeProps<\"BarChart\"> &\n BarChartOptions &\n UseBarChartOptions &\n UseChartProps &\n UseChartAxisOptions &\n UseChartReferenceLineOptions &\n UseChartGridOptions &\n UseChartTooltipOptions &\n UseChartLegendProps\n\n/**\n * `BarChart` is a component for drawing bar charts to compare multiple sets of data.\n *\n * @see Docs https://yamada-ui.com/components/feedback/bar-chart\n */\nexport const BarChart = forwardRef<BarChartProps, \"div\">((props, ref) => {\n const [styles, mergedProps] = useMultiComponentStyle(\"BarChart\", props)\n const {\n className,\n series,\n dataKey,\n layoutType,\n tickLine,\n gridAxis,\n withXAxis,\n withYAxis,\n barProps,\n xAxisProps,\n yAxisProps,\n type = \"default\",\n withTooltip = true,\n withLegend = false,\n containerProps,\n unit,\n valueFormatter,\n tooltipProps,\n tooltipAnimationDuration,\n legendProps,\n data,\n referenceLineProps = [],\n gridProps,\n strokeDasharray,\n fillOpacity,\n chartProps,\n syncId,\n ...rest\n } = omitThemeProps(mergedProps)\n\n const { getBarChartProps, getBarProps, barVars, setHighlightedArea } =\n useBarChart({\n data,\n series,\n type,\n layoutType,\n chartProps,\n barProps,\n referenceLineProps,\n fillOpacity,\n syncId,\n styles,\n })\n const { getContainerProps } = useChart({ containerProps })\n const { getXAxisProps, getYAxisProps } = useChartAxis({\n dataKey,\n type,\n layoutType,\n tickLine,\n gridAxis,\n withXAxis,\n withYAxis,\n xAxisProps,\n yAxisProps,\n unit,\n valueFormatter,\n styles,\n })\n const { getReferenceLineProps } = useChartReferenceLine({\n referenceLineProps,\n styles,\n })\n const { getGridProps } = useChartGrid({\n gridProps,\n gridAxis,\n strokeDasharray,\n styles,\n })\n const { tooltipProps: computedTooltipProps, getTooltipProps } =\n useChartTooltip({\n tooltipProps,\n tooltipAnimationDuration,\n styles,\n })\n const { legendProps: computedLegendProps, getLegendProps } = useChartLegend({\n legendProps,\n })\n\n const bars = useMemo(\n () =>\n series.map(({ dataKey }, index) => {\n return (\n <Bar\n key={`bar-${dataKey}`}\n {...getBarProps({ index, className: \"ui-bar-chart__bar\" })}\n />\n )\n }),\n [getBarProps, series],\n )\n\n const referenceLinesItems = useMemo(\n () =>\n referenceLineProps.map((_, index) => (\n <ReferenceLine\n key={`referenceLine-${index}`}\n {...getReferenceLineProps({\n index,\n className: \"ui-bar-chart__reference-line\",\n })}\n />\n )),\n [getReferenceLineProps, referenceLineProps],\n )\n\n return (\n <ChartProvider value={{ styles }}>\n <ui.div\n ref={ref}\n className={cx(\"ui-bar-chart\", className)}\n var={barVars}\n __css={{ maxW: \"full\", ...styles.container }}\n {...rest}\n >\n <ResponsiveContainer\n {...getContainerProps({ className: \"ui-bar-chart__container\" })}\n >\n <ReChartsBarChart\n {...getBarChartProps({ className: \"ui-bar-chart__chart\" })}\n >\n <CartesianGrid\n {...getGridProps({ className: \"ui-bar-chart__grid\" })}\n />\n <XAxis {...getXAxisProps({ className: \"ui-bar-chart__x-axis\" })} />\n <YAxis {...getYAxisProps({ className: \"ui-bar-chart__y-axis\" })} />\n\n {withLegend ? (\n <Legend\n content={({ payload }) => (\n <ChartLegend\n className=\"ui-bar-chart__legend\"\n payload={payload}\n onHighlight={setHighlightedArea}\n {...computedLegendProps}\n />\n )}\n {...getLegendProps()}\n />\n ) : null}\n\n {withTooltip ? (\n <Tooltip\n content={({ label, payload }) => (\n <ChartTooltip\n className=\"ui-bar-chart__tooltip\"\n label={label}\n payload={payload}\n valueFormatter={valueFormatter}\n unit={unit}\n {...computedTooltipProps}\n />\n )}\n {...getTooltipProps()}\n />\n ) : null}\n\n {bars}\n {referenceLinesItems}\n </ReChartsBarChart>\n </ResponsiveContainer>\n </ui.div>\n </ChartProvider>\n )\n})\n"],"mappings":"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","names":["dataKey"]}