@aivenio/aquarium 1.50.0 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/_variables.scss +1 -1
  2. package/dist/atoms.cjs +72 -30
  3. package/dist/atoms.mjs +72 -30
  4. package/dist/charts.cjs +182 -138
  5. package/dist/charts.mjs +164 -121
  6. package/dist/src/atoms/DataList/DataList.js +3 -3
  7. package/dist/src/atoms/Modal/Modal.d.ts +6 -3
  8. package/dist/src/atoms/Modal/Modal.js +25 -14
  9. package/dist/src/atoms/Table/Table.js +3 -3
  10. package/dist/src/charts/AreaChart/AreaChart.js +5 -3
  11. package/dist/src/charts/BarChart/BarChart.js +47 -29
  12. package/dist/src/charts/Legend/Legend.d.ts +4 -0
  13. package/dist/src/charts/Legend/Legend.js +15 -0
  14. package/dist/src/charts/LineChart/LineChart.js +5 -3
  15. package/dist/src/charts/PieChart/ChartValue.js +3 -3
  16. package/dist/src/charts/PieChart/DoughnutChart.js +45 -7
  17. package/dist/src/charts/PieChart/renderPieChildren.d.ts +1 -1
  18. package/dist/src/charts/PieChart/renderPieChildren.js +4 -5
  19. package/dist/src/charts/index.d.ts +1 -0
  20. package/dist/src/charts/index.js +2 -1
  21. package/dist/src/charts/lib/utils.d.ts +1 -5
  22. package/dist/src/charts/lib/utils.js +7 -4
  23. package/dist/src/icons/index.d.ts +1 -0
  24. package/dist/src/icons/index.js +2 -1
  25. package/dist/src/icons/performance.d.ts +9 -0
  26. package/dist/src/icons/performance.js +11 -0
  27. package/dist/src/molecules/Badge/Badge.js +7 -6
  28. package/dist/src/molecules/DataList/DataList.d.ts +9 -2
  29. package/dist/src/molecules/DataList/DataList.js +3 -3
  30. package/dist/src/molecules/DataTable/DataTable.d.ts +9 -2
  31. package/dist/src/molecules/DataTable/DataTable.js +3 -3
  32. package/dist/src/molecules/Drawer/Drawer.d.ts +10 -0
  33. package/dist/src/molecules/Drawer/Drawer.js +116 -0
  34. package/dist/src/molecules/Modal/Modal.d.ts +8 -9
  35. package/dist/src/molecules/Modal/Modal.js +1 -1
  36. package/dist/src/molecules/Tabs/Tabs.js +3 -3
  37. package/dist/src/molecules/index.d.ts +1 -0
  38. package/dist/src/molecules/index.js +2 -1
  39. package/dist/src/utils/mocks/mockDynamicIds.d.ts +1 -0
  40. package/dist/src/utils/mocks/mockDynamicIds.js +15 -0
  41. package/dist/src/utils/mocks/mockIntersectionObserver.d.ts +1 -0
  42. package/dist/src/utils/mocks/mockIntersectionObserver.js +12 -0
  43. package/dist/src/utils/mocks/mockRecharts.d.ts +1 -0
  44. package/dist/src/utils/mocks/mockRecharts.js +8 -0
  45. package/dist/src/utils/mocks/mockResizeObservable.d.ts +1 -0
  46. package/dist/src/utils/mocks/mockResizeObservable.js +60 -0
  47. package/dist/src/utils/setupTests.js +9 -22
  48. package/dist/src/utils/table/types.d.ts +2 -0
  49. package/dist/src/utils/table/types.js +4 -1
  50. package/dist/src/utils/table/useTableSort.d.ts +10 -3
  51. package/dist/src/utils/table/useTableSort.js +24 -6
  52. package/dist/styles.css +54 -22
  53. package/dist/system.cjs +1247 -1026
  54. package/dist/system.mjs +1306 -1087
  55. package/dist/tsconfig.module.tsbuildinfo +1 -1
  56. package/dist/types/tailwindGenerated.d.ts +1 -1
  57. package/package.json +2 -2
  58. package/dist/src/charts/PieChart/renderScaledChartValue.d.ts +0 -8
  59. package/dist/src/charts/PieChart/renderScaledChartValue.js +0 -15
package/dist/charts.cjs CHANGED
@@ -64,14 +64,15 @@ __export(charts_exports, {
64
64
  Cell: () => import_recharts7.Cell,
65
65
  Doughnut: () => Doughnut,
66
66
  DoughnutChart: () => DoughnutChart,
67
+ Legend: () => Legend,
67
68
  Line: () => Line,
68
69
  LineChart: () => LineChart,
69
- Pie: () => Pie2,
70
+ Pie: () => Pie,
70
71
  PieChart: () => PieChart,
71
72
  Reference: () => Reference,
72
73
  ResponsiveContainer: () => ResponsiveContainer,
73
74
  Tooltip: () => Tooltip,
74
- extractChildByName: () => extractChildByName,
75
+ extractChildByDisplayName: () => extractChildByDisplayName,
75
76
  getDisplayName: () => getDisplayName,
76
77
  getXAxisTicks: () => getXAxisTicks,
77
78
  renderXAxis: () => renderXAxis,
@@ -149,7 +150,7 @@ module.exports = __toCommonJS(charts_exports);
149
150
 
150
151
  // src/charts/AreaChart/AreaChart.tsx
151
152
  var import_react4 = __toESM(require("react"));
152
- var import_recharts4 = require("recharts");
153
+ var import_recharts5 = require("recharts");
153
154
 
154
155
  // src/charts/Axis/Axis.tsx
155
156
  var import_react = __toESM(require("react"));
@@ -2001,11 +2002,14 @@ var getXAxisTicks = ({ dataKey, ticks: ticks2 }, chartProps) => {
2001
2002
  const [min = new Date(), max = new Date()] = extent(xValues);
2002
2003
  return time().domain([min, max]).ticks(ticks2).map((v) => v.valueOf());
2003
2004
  };
2004
- var extractChildByName = (children, name) => {
2005
+ var extractChildByDisplayName = (children, name) => {
2005
2006
  const childIndex = children.findIndex((child) => getDisplayName(child.type) === name);
2006
- const foundChild = children.slice(childIndex, childIndex + 1);
2007
+ if (childIndex === -1) {
2008
+ return [void 0, children];
2009
+ }
2010
+ const foundChild = children.at(childIndex);
2007
2011
  const remainingChildren = children.slice(0, childIndex).concat(children.slice(childIndex + 1));
2008
- return { foundChild, children: remainingChildren };
2012
+ return [foundChild, remainingChildren];
2009
2013
  };
2010
2014
 
2011
2015
  // src/charts/Axis/Axis.tsx
@@ -2066,6 +2070,28 @@ var CartesianGrid = Object.assign(
2066
2070
  import_recharts3.CartesianGrid
2067
2071
  );
2068
2072
 
2073
+ // src/charts/Tooltip/Tooltip.tsx
2074
+ var import_recharts4 = require("recharts");
2075
+ var contentStyle = {
2076
+ boxShadow: "var(--aquarium-box-shadow-8dp)",
2077
+ background: "#fff"
2078
+ };
2079
+ var itemStyle = {
2080
+ display: "flex",
2081
+ paddingTop: "2px",
2082
+ paddingBottom: "2px"
2083
+ };
2084
+ var Tooltip = Object.assign(import_recharts4.Tooltip, {
2085
+ DefaultContent: import_recharts4.DefaultTooltipContent
2086
+ });
2087
+ Tooltip.defaultProps = Object.assign({}, import_recharts4.Tooltip.defaultProps, {
2088
+ separator: "",
2089
+ isAnimationActive: false,
2090
+ contentStyle,
2091
+ itemStyle,
2092
+ cursor: { stroke: "var(--aquarium-colors-grey-70)", strokeDasharray: "5" }
2093
+ });
2094
+
2069
2095
  // src/charts/AreaChart/AreaChart.tsx
2070
2096
  var renderChildren = (props) => {
2071
2097
  return import_react4.default.Children.map(props.children, (child) => {
@@ -2086,10 +2112,12 @@ var renderChildren = (props) => {
2086
2112
  });
2087
2113
  };
2088
2114
  var AreaChart = (props) => {
2115
+ const [tooltip] = extractChildByDisplayName(props.children, Tooltip.displayName);
2089
2116
  return /* @__PURE__ */ import_react4.default.createElement(ResponsiveContainer, {
2090
2117
  width: props.width,
2091
2118
  height: props.height
2092
- }, /* @__PURE__ */ import_react4.default.createElement(import_recharts4.AreaChart, {
2119
+ }, /* @__PURE__ */ import_react4.default.createElement(import_recharts5.AreaChart, {
2120
+ accessibilityLayer: tooltip !== void 0,
2093
2121
  data: props.data,
2094
2122
  style: { stroke: "#fff", strokeWidth: 1 },
2095
2123
  margin: {
@@ -2103,7 +2131,7 @@ var AreaChart = (props) => {
2103
2131
  var Area = Object.assign(
2104
2132
  (props) => {
2105
2133
  var _a;
2106
- return /* @__PURE__ */ import_react4.default.createElement(import_recharts4.Area, __spreadProps(__spreadValues({
2134
+ return /* @__PURE__ */ import_react4.default.createElement(import_recharts5.Area, __spreadProps(__spreadValues({
2107
2135
  type: "monotone",
2108
2136
  strokeWidth: 2,
2109
2137
  dot: false
@@ -2113,9 +2141,9 @@ var Area = Object.assign(
2113
2141
  isAnimationActive: false
2114
2142
  }));
2115
2143
  },
2116
- import_recharts4.Area
2144
+ import_recharts5.Area
2117
2145
  );
2118
- Area.defaultProps = Object.assign({}, import_recharts4.Area.defaultProps, {
2146
+ Area.defaultProps = Object.assign({}, import_recharts5.Area.defaultProps, {
2119
2147
  fillOpacity: 0.1,
2120
2148
  fill: void 0
2121
2149
  });
@@ -2124,68 +2152,56 @@ AreaChart.Area = Area;
2124
2152
  // src/charts/BarChart/BarChart.tsx
2125
2153
  var import_react5 = __toESM(require("react"));
2126
2154
  var import_recharts6 = require("recharts");
2127
-
2128
- // src/charts/Tooltip/Tooltip.tsx
2129
- var import_recharts5 = require("recharts");
2130
- var contentStyle = {
2131
- boxShadow: "var(--aquarium-box-shadow-8dp)",
2132
- background: "#fff"
2133
- };
2134
- var itemStyle = {
2135
- display: "flex",
2136
- paddingTop: "2px",
2137
- paddingBottom: "2px"
2138
- };
2139
- var Tooltip = Object.assign(import_recharts5.Tooltip, {
2140
- DefaultContent: import_recharts5.DefaultTooltipContent
2141
- });
2142
- Tooltip.defaultProps = Object.assign({}, import_recharts5.Tooltip.defaultProps, {
2143
- separator: "",
2144
- isAnimationActive: false,
2145
- contentStyle,
2146
- itemStyle,
2147
- cursor: { stroke: "var(--aquarium-colors-grey-70)", strokeDasharray: "5" }
2148
- });
2149
-
2150
- // src/charts/BarChart/BarChart.tsx
2151
- var renderChildren2 = (props) => {
2152
- return import_react5.default.Children.map(props.children, (child) => {
2153
- switch (getDisplayName(child.type)) {
2154
- case Axis.XAxis.displayName: {
2155
- return renderXAxis(child, props);
2156
- }
2157
- case Axis.XAxis.Time.displayName: {
2158
- return renderXTimeAxis(child, props);
2159
- }
2160
- case Axis.YAxis.displayName: {
2161
- return renderYAxis(child, props);
2162
- }
2163
- case Tooltip.displayName: {
2164
- return /* @__PURE__ */ import_react5.default.createElement(Tooltip, __spreadProps(__spreadValues({}, child.props), {
2165
- cursor: false
2166
- }));
2167
- }
2168
- default: {
2169
- return child;
2170
- }
2171
- }
2172
- });
2155
+ var margin = {
2156
+ top: 20,
2157
+ right: 30,
2158
+ left: 20,
2159
+ bottom: 5
2173
2160
  };
2174
2161
  var BarChart = (props) => {
2162
+ const [activeIndex, setActiveIndex] = import_react5.default.useState(void 0);
2163
+ const [tooltip] = extractChildByDisplayName(props.children, Tooltip.displayName);
2164
+ const renderChildren3 = (props2) => {
2165
+ return import_react5.default.Children.map(props2.children, (child) => {
2166
+ switch (getDisplayName(child.type)) {
2167
+ case Axis.XAxis.displayName: {
2168
+ return renderXAxis(child, props2);
2169
+ }
2170
+ case Axis.XAxis.Time.displayName: {
2171
+ return renderXTimeAxis(child, props2);
2172
+ }
2173
+ case Axis.YAxis.displayName: {
2174
+ return renderYAxis(child, props2);
2175
+ }
2176
+ case import_recharts6.Bar.displayName: {
2177
+ return import_react5.default.cloneElement(child, {
2178
+ shape: (props3) => /* @__PURE__ */ import_react5.default.createElement(import_recharts6.Rectangle, __spreadProps(__spreadValues({}, props3), {
2179
+ className: activeIndex !== void 0 ? "inactive" : void 0
2180
+ }))
2181
+ });
2182
+ }
2183
+ case Tooltip.displayName: {
2184
+ return /* @__PURE__ */ import_react5.default.createElement(Tooltip, __spreadProps(__spreadValues({}, child.props), {
2185
+ cursor: false
2186
+ }));
2187
+ }
2188
+ default: {
2189
+ return child;
2190
+ }
2191
+ }
2192
+ });
2193
+ };
2175
2194
  return /* @__PURE__ */ import_react5.default.createElement(ResponsiveContainer, {
2176
2195
  width: props.width,
2177
2196
  height: props.height
2178
- }, /* @__PURE__ */ import_react5.default.createElement(import_recharts6.BarChart, {
2179
- data: props.data,
2197
+ }, /* @__PURE__ */ import_react5.default.createElement(import_recharts6.BarChart, __spreadProps(__spreadValues({}, props), {
2198
+ accessibilityLayer: tooltip !== void 0,
2180
2199
  barCategoryGap: "5%",
2181
2200
  style: { stroke: "#fff", strokeWidth: 1 },
2182
- margin: {
2183
- top: 20,
2184
- right: 30,
2185
- left: 20,
2186
- bottom: 5
2187
- }
2188
- }, /* @__PURE__ */ import_react5.default.createElement(CartesianGrid, null), renderChildren2(props)));
2201
+ onMouseMove: (state) => setActiveIndex(state.isTooltipActive ? state.activeTooltipIndex : void 0),
2202
+ onMouseLeave: () => setActiveIndex(void 0),
2203
+ margin
2204
+ }), /* @__PURE__ */ import_react5.default.createElement(CartesianGrid, null), renderChildren3(props)));
2189
2205
  };
2190
2206
  var Bar = Object.assign((props) => /* @__PURE__ */ import_react5.default.createElement(import_recharts6.Bar, __spreadProps(__spreadValues({}, props), {
2191
2207
  isAnimationActive: false
@@ -2197,11 +2213,29 @@ BarChart.Tooltip = Tooltip;
2197
2213
  var import_recharts7 = require("recharts");
2198
2214
  var import_recharts8 = require("recharts");
2199
2215
 
2200
- // src/charts/LineChart/LineChart.tsx
2216
+ // src/charts/Legend/Legend.tsx
2201
2217
  var import_react6 = __toESM(require("react"));
2202
2218
  var import_recharts9 = require("recharts");
2203
- var renderChildren3 = (props) => {
2204
- return import_react6.default.Children.map(props.children, (child) => {
2219
+ var Legend = import_react6.default.forwardRef((props, _ref) => {
2220
+ return /* @__PURE__ */ import_react6.default.createElement(import_recharts9.Legend, __spreadProps(__spreadValues({}, props), {
2221
+ margin: __spreadProps(__spreadValues({}, props.margin), { top: 0 })
2222
+ }));
2223
+ });
2224
+ Legend.displayName = "Legend";
2225
+ Legend.defaultProps = {
2226
+ iconType: "circle",
2227
+ iconSize: 8,
2228
+ align: "left",
2229
+ layout: "horizontal",
2230
+ verticalAlign: "top",
2231
+ margin: { top: 0 }
2232
+ };
2233
+
2234
+ // src/charts/LineChart/LineChart.tsx
2235
+ var import_react7 = __toESM(require("react"));
2236
+ var import_recharts10 = require("recharts");
2237
+ var renderChildren2 = (props) => {
2238
+ return import_react7.default.Children.map(props.children, (child) => {
2205
2239
  switch (getDisplayName(child.type)) {
2206
2240
  case Axis.XAxis.displayName: {
2207
2241
  return renderXAxis(child, props);
@@ -2219,10 +2253,11 @@ var renderChildren3 = (props) => {
2219
2253
  });
2220
2254
  };
2221
2255
  var LineChart = (props) => {
2222
- return /* @__PURE__ */ import_react6.default.createElement(ResponsiveContainer, {
2256
+ const [tooltip] = extractChildByDisplayName(props.children, Tooltip.displayName);
2257
+ return /* @__PURE__ */ import_react7.default.createElement(ResponsiveContainer, {
2223
2258
  width: props.width,
2224
2259
  height: props.height
2225
- }, /* @__PURE__ */ import_react6.default.createElement(import_recharts9.LineChart, {
2260
+ }, /* @__PURE__ */ import_react7.default.createElement(import_recharts10.LineChart, {
2226
2261
  data: props.data,
2227
2262
  style: { stroke: "#fff", strokeWidth: 1 },
2228
2263
  margin: {
@@ -2230,27 +2265,29 @@ var LineChart = (props) => {
2230
2265
  right: 30,
2231
2266
  left: 20,
2232
2267
  bottom: 5
2233
- }
2234
- }, /* @__PURE__ */ import_react6.default.createElement(CartesianGrid, null), renderChildren3(props)));
2268
+ },
2269
+ accessibilityLayer: tooltip !== void 0
2270
+ }, /* @__PURE__ */ import_react7.default.createElement(CartesianGrid, null), renderChildren2(props)));
2235
2271
  };
2236
2272
  var Line = Object.assign(
2237
- (props) => /* @__PURE__ */ import_react6.default.createElement(import_recharts9.Line, __spreadProps(__spreadValues({
2273
+ (props) => /* @__PURE__ */ import_react7.default.createElement(import_recharts10.Line, __spreadProps(__spreadValues({
2238
2274
  type: "monotone"
2239
2275
  }, props), {
2240
2276
  strokeWidth: 2,
2241
2277
  isAnimationActive: false,
2242
2278
  dot: false
2243
2279
  })),
2244
- import_recharts9.Line
2280
+ import_recharts10.Line
2245
2281
  );
2246
2282
  LineChart.Line = Line;
2247
2283
 
2248
2284
  // src/charts/PieChart/DoughnutChart.tsx
2249
2285
  var import_react11 = __toESM(require("react"));
2250
- var import_recharts11 = require("recharts");
2286
+ var import_isNil = __toESM(require("lodash/isNil"));
2287
+ var import_recharts12 = require("recharts");
2251
2288
 
2252
2289
  // src/charts/PieChart/ChartValue.tsx
2253
- var import_react7 = __toESM(require("react"));
2290
+ var import_react8 = __toESM(require("react"));
2254
2291
 
2255
2292
  // src/utils/tailwind.ts
2256
2293
  var import_classnames = __toESM(require("classnames"));
@@ -2277,29 +2314,21 @@ function tw(classesOrModifiers1, classesOrModifiers2, classesOrModifiers3, class
2277
2314
  // src/charts/PieChart/ChartValue.tsx
2278
2315
  var ChartValue = (props) => {
2279
2316
  const { value, unit: unit2, caption } = props;
2280
- return /* @__PURE__ */ import_react7.default.createElement("p", {
2317
+ return /* @__PURE__ */ import_react8.default.createElement("p", {
2281
2318
  className: tw(
2282
- "typography-large-heading",
2283
- "text-center",
2284
- "leading-tight",
2285
- "absolute",
2286
- "top-1/2",
2287
- "left-1/2",
2288
- "transform",
2289
- "-translate-x-1/2",
2290
- "-translate-y-1/2"
2319
+ "typography-large-heading text-grey-90 text-center leading-tight absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
2291
2320
  )
2292
- }, value, unit2, caption && /* @__PURE__ */ import_react7.default.createElement("span", {
2293
- className: tw("block", "typography-small")
2321
+ }, value, unit2, caption && /* @__PURE__ */ import_react8.default.createElement("span", {
2322
+ className: tw("block", "typography-small text-grey-60")
2294
2323
  }, caption));
2295
2324
  };
2296
2325
 
2297
2326
  // src/charts/PieChart/renderPieChildren.tsx
2298
- var import_react9 = __toESM(require("react"));
2299
- var import_recharts10 = require("recharts");
2327
+ var import_react10 = __toESM(require("react"));
2328
+ var import_recharts11 = require("recharts");
2300
2329
 
2301
2330
  // src/charts/PieChart/TooltipContentWrapper.tsx
2302
- var import_react8 = __toESM(require("react"));
2331
+ var import_react9 = __toESM(require("react"));
2303
2332
  var import_isFunction = __toESM(require("lodash/isFunction"));
2304
2333
  var TooltipContentWrapper = (_a) => {
2305
2334
  var _b = _a, {
@@ -2315,28 +2344,28 @@ var TooltipContentWrapper = (_a) => {
2315
2344
  });
2316
2345
  });
2317
2346
  const propsWithPayload = __spreadProps(__spreadValues({}, props), { payload });
2318
- if (import_react8.default.isValidElement(content)) {
2319
- return import_react8.default.cloneElement(content, propsWithPayload);
2347
+ if (import_react9.default.isValidElement(content)) {
2348
+ return import_react9.default.cloneElement(content, propsWithPayload);
2320
2349
  }
2321
2350
  if ((0, import_isFunction.default)(content)) {
2322
- return import_react8.default.createElement(content, propsWithPayload);
2351
+ return import_react9.default.createElement(content, propsWithPayload);
2323
2352
  }
2324
- return /* @__PURE__ */ import_react8.default.createElement(Tooltip.DefaultContent, __spreadProps(__spreadValues({}, props), {
2353
+ return /* @__PURE__ */ import_react9.default.createElement(Tooltip.DefaultContent, __spreadProps(__spreadValues({}, props), {
2325
2354
  payload
2326
2355
  }));
2327
2356
  };
2328
2357
 
2329
2358
  // src/charts/PieChart/renderPieChildren.tsx
2330
2359
  var renderPieChildren = (children) => {
2331
- return import_react9.default.Children.map(children, (child) => {
2360
+ return import_react10.default.Children.map(children, (child) => {
2332
2361
  switch (getDisplayName(child.type)) {
2333
2362
  case Tooltip.displayName: {
2334
- return import_react9.default.cloneElement(child, { content: /* @__PURE__ */ import_react9.default.createElement(TooltipContentWrapper, {
2363
+ return import_react10.default.cloneElement(child, { content: /* @__PURE__ */ import_react10.default.createElement(TooltipContentWrapper, {
2335
2364
  content: child.props.content
2336
2365
  }) });
2337
2366
  }
2338
- case DoughnutChart.Doughnut.displayName: {
2339
- return /* @__PURE__ */ import_react9.default.createElement(import_recharts10.Pie, __spreadValues({}, child.props));
2367
+ case import_recharts11.Legend.displayName: {
2368
+ return import_react10.default.cloneElement(child, { verticalAlign: "top", align: "center" });
2340
2369
  }
2341
2370
  default: {
2342
2371
  return child;
@@ -2345,90 +2374,104 @@ var renderPieChildren = (children) => {
2345
2374
  });
2346
2375
  };
2347
2376
 
2348
- // src/charts/PieChart/renderScaledChartValue.tsx
2349
- var import_react10 = __toESM(require("react"));
2350
- var renderScaledChartValue = (props) => {
2351
- const refSize = 300;
2352
- const { containerWidth, containerHeight, chartValue } = props;
2353
- if (!containerWidth || !containerHeight) {
2354
- return null;
2355
- }
2356
- const scaleBy = containerWidth >= containerHeight ? containerHeight : containerWidth;
2357
- const scale = scaleBy / refSize;
2358
- const x = (containerWidth - refSize * scale) / (2 * scale);
2359
- const y = (containerHeight - refSize * scale) / (2 * scale);
2360
- return /* @__PURE__ */ import_react10.default.createElement("foreignObject", {
2361
- width: refSize,
2362
- height: refSize,
2363
- x,
2364
- y,
2365
- transform: `scale(${scale})`
2366
- }, chartValue);
2367
- };
2368
-
2369
2377
  // src/charts/PieChart/DoughnutChart.tsx
2378
+ var refSize = 300;
2370
2379
  var DoughnutChart = (props) => {
2371
2380
  const [containerWidth, setContainerWidth] = import_react11.default.useState(0);
2372
2381
  const [containerHeight, setContainerHeight] = import_react11.default.useState(0);
2373
- const { foundChild: chartValue, children } = extractChildByName(props.children, ChartValue.displayName);
2382
+ const [activeIndex, setActiveIndex] = import_react11.default.useState(null);
2383
+ const [chartValue, _children] = extractChildByDisplayName(props.children, ChartValue.displayName);
2384
+ const [pie, children] = extractChildByDisplayName(_children, DoughnutChart.Doughnut.displayName);
2385
+ const [tooltip] = extractChildByDisplayName(props.children, Tooltip.displayName);
2374
2386
  const onResize = (w, h) => {
2375
2387
  setContainerWidth(w);
2376
2388
  setContainerHeight(h);
2377
2389
  };
2378
- const scaledChartValue = renderScaledChartValue({ chartValue, containerWidth, containerHeight });
2390
+ const renderChartValue = ({ formattedGraphicalItems }) => {
2391
+ var _a, _b, _c;
2392
+ const pie2 = formattedGraphicalItems == null ? void 0 : formattedGraphicalItems[0];
2393
+ const props2 = (_a = pie2 == null ? void 0 : pie2.props) != null ? _a : {};
2394
+ const cx = (_b = props2.cx) != null ? _b : containerWidth / 2;
2395
+ const cy = (_c = props2.cy) != null ? _c : containerHeight / 2;
2396
+ if (!containerWidth || !containerHeight || (0, import_isNil.default)(chartValue)) {
2397
+ return null;
2398
+ }
2399
+ const scaleBy = containerWidth >= containerHeight ? containerHeight : containerWidth;
2400
+ const scale = scaleBy / refSize;
2401
+ const yOffset = cy - containerHeight / 2;
2402
+ const yMargin = (containerHeight - refSize * scale) / 2;
2403
+ const x = cx - refSize / 2 * scale;
2404
+ const y = (yOffset + yMargin) / scale;
2405
+ return /* @__PURE__ */ import_react11.default.createElement("foreignObject", {
2406
+ width: refSize,
2407
+ height: refSize,
2408
+ x,
2409
+ y,
2410
+ transform: `scale(${scale})`
2411
+ }, chartValue);
2412
+ };
2413
+ const highlightActive = activeIndex !== null && tooltip;
2379
2414
  return /* @__PURE__ */ import_react11.default.createElement(ResponsiveContainer, {
2380
2415
  onResize,
2381
2416
  width: props.width,
2382
2417
  height: props.height
2383
- }, /* @__PURE__ */ import_react11.default.createElement(import_recharts11.PieChart, null, scaledChartValue, renderPieChildren(children)));
2418
+ }, /* @__PURE__ */ import_react11.default.createElement(import_recharts12.PieChart, null, chartValue && /* @__PURE__ */ import_react11.default.createElement(import_recharts12.Customized, {
2419
+ component: renderChartValue
2420
+ }), pie && /* @__PURE__ */ import_react11.default.createElement(import_recharts12.Pie, __spreadProps(__spreadValues({}, pie.props), {
2421
+ onMouseEnter: (_, index) => setActiveIndex(index),
2422
+ onMouseLeave: () => setActiveIndex(null),
2423
+ activeIndex,
2424
+ inactiveShape: { className: highlightActive ? "inactive" : void 0 },
2425
+ activeShape: { className: highlightActive ? "active" : void 0 }
2426
+ })), renderPieChildren(children)));
2384
2427
  };
2385
- var Doughnut = Object.assign((props) => /* @__PURE__ */ import_react11.default.createElement(import_recharts11.Pie, __spreadValues({}, props)), import_recharts11.Pie);
2386
- Doughnut.defaultProps = Object.assign({}, import_recharts11.Pie.defaultProps, {
2428
+ var Doughnut = Object.assign((props) => /* @__PURE__ */ import_react11.default.createElement(import_recharts12.Pie, __spreadValues({}, props)), import_recharts12.Pie);
2429
+ Doughnut.defaultProps = Object.assign({}, import_recharts12.Pie.defaultProps, {
2387
2430
  isAnimationActive: false,
2388
2431
  innerRadius: "60%",
2389
2432
  outerRadius: "80%"
2390
2433
  });
2391
2434
  DoughnutChart.Doughnut = Doughnut;
2392
2435
  DoughnutChart.ChartValue = ChartValue;
2393
- DoughnutChart.Cell = import_recharts11.Cell;
2436
+ DoughnutChart.Cell = import_recharts12.Cell;
2394
2437
 
2395
2438
  // src/charts/PieChart/PieChart.tsx
2396
2439
  var import_react12 = __toESM(require("react"));
2397
- var import_recharts12 = require("recharts");
2440
+ var import_recharts13 = require("recharts");
2398
2441
  var PieChart = (props) => {
2399
2442
  return /* @__PURE__ */ import_react12.default.createElement(ResponsiveContainer, {
2400
2443
  width: props.width,
2401
2444
  height: props.height
2402
- }, /* @__PURE__ */ import_react12.default.createElement(import_recharts12.PieChart, {
2445
+ }, /* @__PURE__ */ import_react12.default.createElement(import_recharts13.PieChart, {
2403
2446
  width: 500,
2404
2447
  height: 500
2405
2448
  }, renderPieChildren(props.children)));
2406
2449
  };
2407
- var Pie2 = Object.assign((props) => /* @__PURE__ */ import_react12.default.createElement(import_recharts12.Pie, __spreadValues({}, props)), import_recharts12.Pie);
2408
- Pie2.defaultProps = Object.assign({}, import_recharts12.Pie.defaultProps, {
2450
+ var Pie = Object.assign((props) => /* @__PURE__ */ import_react12.default.createElement(import_recharts13.Pie, __spreadValues({}, props)), import_recharts13.Pie);
2451
+ Pie.defaultProps = Object.assign({}, import_recharts13.Pie.defaultProps, {
2409
2452
  isAnimationActive: false,
2410
2453
  innerRadius: 0,
2411
2454
  outerRadius: "80%"
2412
2455
  });
2413
- PieChart.Pie = Pie2;
2414
- PieChart.Cell = import_recharts12.Cell;
2456
+ PieChart.Pie = Pie;
2457
+ PieChart.Cell = import_recharts13.Cell;
2415
2458
 
2416
2459
  // src/charts/Reference/Reference.tsx
2417
2460
  var import_react13 = __toESM(require("react"));
2418
- var import_recharts13 = require("recharts");
2461
+ var import_recharts14 = require("recharts");
2419
2462
  var ReferenceLine = Object.assign(
2420
- (props) => /* @__PURE__ */ import_react13.default.createElement(import_recharts13.ReferenceLine, __spreadProps(__spreadValues({}, props), {
2463
+ (props) => /* @__PURE__ */ import_react13.default.createElement(import_recharts14.ReferenceLine, __spreadProps(__spreadValues({}, props), {
2421
2464
  strokeDasharray: "9 3",
2422
2465
  strokeWidth: 2
2423
2466
  })),
2424
- import_recharts13.ReferenceLine
2467
+ import_recharts14.ReferenceLine
2425
2468
  );
2426
2469
  var ReferenceArea = Object.assign(
2427
- (props) => /* @__PURE__ */ import_react13.default.createElement(import_recharts13.ReferenceArea, __spreadProps(__spreadValues({}, props), {
2470
+ (props) => /* @__PURE__ */ import_react13.default.createElement(import_recharts14.ReferenceArea, __spreadProps(__spreadValues({}, props), {
2428
2471
  strokeWidth: 0,
2429
2472
  fillOpacity: 0.1
2430
2473
  })),
2431
- import_recharts13.ReferenceLine
2474
+ import_recharts14.ReferenceLine
2432
2475
  );
2433
2476
  var Reference = {
2434
2477
  Line: ReferenceLine,
@@ -2445,6 +2488,7 @@ var Reference = {
2445
2488
  Cell,
2446
2489
  Doughnut,
2447
2490
  DoughnutChart,
2491
+ Legend,
2448
2492
  Line,
2449
2493
  LineChart,
2450
2494
  Pie,
@@ -2452,7 +2496,7 @@ var Reference = {
2452
2496
  Reference,
2453
2497
  ResponsiveContainer,
2454
2498
  Tooltip,
2455
- extractChildByName,
2499
+ extractChildByDisplayName,
2456
2500
  getDisplayName,
2457
2501
  getXAxisTicks,
2458
2502
  renderXAxis,