@mui/x-charts 8.0.0-alpha.5 → 8.0.0-alpha.7

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 (251) hide show
  1. package/BarChart/AnimatedBarElement.js +1 -0
  2. package/BarChart/BarChart.js +17 -7
  3. package/BarChart/BarLabel/BarLabel.d.ts +1 -479
  4. package/BarChart/BarLabel/barLabelClasses.d.ts +1 -1
  5. package/BarChart/legend.js +1 -0
  6. package/BarChart/useBarChartProps.d.ts +4 -2
  7. package/BarChart/useBarChartProps.js +16 -3
  8. package/CHANGELOG.md +206 -1
  9. package/ChartsLabel/ChartsLabel.d.ts +2 -3
  10. package/ChartsLabel/ChartsLabel.js +3 -18
  11. package/ChartsLabel/ChartsLabelGradient.d.ts +9 -8
  12. package/ChartsLabel/ChartsLabelGradient.js +21 -18
  13. package/ChartsLabel/ChartsLabelMark.d.ts +2 -3
  14. package/ChartsLabel/ChartsLabelMark.js +5 -2
  15. package/ChartsLabel/index.d.ts +7 -0
  16. package/ChartsLabel/index.js +6 -0
  17. package/ChartsLabel/labelClasses.d.ts +0 -1
  18. package/ChartsLabel/labelGradientClasses.d.ts +5 -4
  19. package/ChartsLabel/labelGradientClasses.js +3 -2
  20. package/ChartsLabel/labelMarkClasses.d.ts +3 -2
  21. package/ChartsLabel/labelMarkClasses.js +3 -2
  22. package/ChartsLabel/package.json +6 -0
  23. package/ChartsLegend/ChartsLegend.d.ts +18 -22
  24. package/ChartsLegend/ChartsLegend.js +100 -109
  25. package/ChartsLegend/ContinuousColorLegend.d.ts +29 -38
  26. package/ChartsLegend/ContinuousColorLegend.js +198 -321
  27. package/ChartsLegend/PiecewiseColorLegend.d.ts +27 -19
  28. package/ChartsLegend/PiecewiseColorLegend.js +201 -111
  29. package/ChartsLegend/chartsLegend.types.d.ts +17 -60
  30. package/ChartsLegend/chartsLegendClasses.d.ts +7 -8
  31. package/ChartsLegend/chartsLegendClasses.js +16 -2
  32. package/ChartsLegend/colorLegend.types.d.ts +13 -0
  33. package/ChartsLegend/colorLegend.types.js +1 -0
  34. package/ChartsLegend/continuousColorLegendClasses.d.ts +26 -0
  35. package/ChartsLegend/continuousColorLegendClasses.js +23 -0
  36. package/ChartsLegend/direction.d.ts +1 -0
  37. package/ChartsLegend/direction.js +1 -0
  38. package/ChartsLegend/index.d.ts +13 -3
  39. package/ChartsLegend/index.js +9 -3
  40. package/ChartsLegend/legend.types.d.ts +10 -54
  41. package/ChartsLegend/legendContext.types.d.ts +55 -0
  42. package/ChartsLegend/legendContext.types.js +1 -0
  43. package/ChartsLegend/onClickContextBuilder.d.ts +2 -0
  44. package/ChartsLegend/onClickContextBuilder.js +7 -0
  45. package/ChartsLegend/piecewiseColorDefaultLabelFormatter.d.ts +2 -0
  46. package/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +9 -0
  47. package/ChartsLegend/piecewiseColorLegend.types.d.ts +26 -0
  48. package/ChartsLegend/piecewiseColorLegend.types.js +1 -0
  49. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +28 -0
  50. package/ChartsLegend/piecewiseColorLegendClasses.js +23 -0
  51. package/ChartsLegend/useAxis.d.ts +1 -1
  52. package/ChartsLegend/useAxis.js +0 -1
  53. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +1 -1
  54. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +1 -1
  55. package/ChartsSurface/ChartsSurface.js +0 -1
  56. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  57. package/LineChart/AnimatedArea.js +1 -0
  58. package/LineChart/AnimatedLine.js +1 -0
  59. package/LineChart/AppearingMask.js +1 -0
  60. package/LineChart/CircleMarkElement.js +1 -0
  61. package/LineChart/LineChart.js +20 -10
  62. package/LineChart/MarkElement.js +3 -1
  63. package/LineChart/legend.js +1 -0
  64. package/LineChart/useLineChartProps.d.ts +4 -2
  65. package/LineChart/useLineChartProps.js +15 -2
  66. package/PieChart/PieArc.js +3 -1
  67. package/PieChart/PieArcLabel.js +13 -9
  68. package/PieChart/PieArcLabelPlot.js +1 -0
  69. package/PieChart/PieArcPlot.js +1 -0
  70. package/PieChart/PieChart.js +42 -41
  71. package/PieChart/legend.js +1 -0
  72. package/ScatterChart/ScatterChart.js +21 -11
  73. package/ScatterChart/legend.js +1 -0
  74. package/ScatterChart/useScatterChartProps.d.ts +4 -2
  75. package/ScatterChart/useScatterChartProps.js +15 -2
  76. package/SparkLineChart/SparkLineChart.js +1 -4
  77. package/constants/index.d.ts +1 -0
  78. package/constants/index.js +2 -1
  79. package/context/CartesianProvider/defaultizeAxis.d.ts +9 -9
  80. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +18 -18
  81. package/context/ChartDataProvider/useDefaultizeAxis.d.ts +9 -9
  82. package/context/ChartProvider/ChartProvider.types.d.ts +1 -1
  83. package/context/InteractionSelectors.d.ts +11 -11
  84. package/context/PluginProvider/SeriesFormatter.types.d.ts +1 -1
  85. package/context/PluginProvider/mergePlugins.d.ts +8 -8
  86. package/context/SizeProvider/Size.types.d.ts +1 -1
  87. package/context/SizeProvider/useChartContainerDimensions.d.ts +1 -1
  88. package/hooks/index.d.ts +1 -0
  89. package/hooks/index.js +2 -1
  90. package/hooks/useLegend.d.ts +13 -0
  91. package/{modern/ChartsLegend/utils.js → hooks/useLegend.js} +20 -1
  92. package/hooks/useSvgRef.d.ts +1 -1
  93. package/index.d.ts +1 -0
  94. package/index.js +2 -1
  95. package/internals/calculateMargins.d.ts +7 -0
  96. package/internals/calculateMargins.js +25 -0
  97. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +2 -1
  98. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +60 -16
  99. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  100. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.d.ts +13 -0
  101. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +61 -0
  102. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  103. package/internals/components/ChartsWrapper/ChartsWrapper.d.ts +17 -0
  104. package/internals/components/ChartsWrapper/ChartsWrapper.js +66 -0
  105. package/internals/components/ChartsWrapper/index.d.ts +1 -0
  106. package/internals/components/ChartsWrapper/index.js +1 -0
  107. package/internals/consumeSlots.d.ts +48 -0
  108. package/internals/consumeSlots.js +101 -0
  109. package/internals/consumeThemeProps.d.ts +3 -7
  110. package/internals/consumeThemeProps.js +18 -27
  111. package/internals/defaultizeColor.d.ts +6 -1
  112. package/internals/index.d.ts +1 -0
  113. package/internals/index.js +1 -0
  114. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  115. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +11 -11
  116. package/internals/plugins/models/plugin.d.ts +1 -1
  117. package/internals/store/useCharts.d.ts +2 -2
  118. package/internals/store/useCharts.types.d.ts +1 -1
  119. package/models/seriesType/common.d.ts +9 -0
  120. package/models/seriesType/pie.d.ts +9 -0
  121. package/modern/BarChart/AnimatedBarElement.js +1 -0
  122. package/modern/BarChart/BarChart.js +17 -7
  123. package/modern/BarChart/legend.js +1 -0
  124. package/modern/BarChart/useBarChartProps.js +16 -3
  125. package/modern/ChartsLabel/ChartsLabel.js +3 -18
  126. package/modern/ChartsLabel/ChartsLabelGradient.js +21 -18
  127. package/modern/ChartsLabel/ChartsLabelMark.js +5 -2
  128. package/modern/ChartsLabel/index.js +6 -0
  129. package/modern/ChartsLabel/labelGradientClasses.js +3 -2
  130. package/modern/ChartsLabel/labelMarkClasses.js +3 -2
  131. package/modern/ChartsLegend/ChartsLegend.js +100 -109
  132. package/modern/ChartsLegend/ContinuousColorLegend.js +198 -321
  133. package/modern/ChartsLegend/PiecewiseColorLegend.js +201 -111
  134. package/modern/ChartsLegend/chartsLegendClasses.js +16 -2
  135. package/modern/ChartsLegend/colorLegend.types.js +1 -0
  136. package/modern/ChartsLegend/continuousColorLegendClasses.js +23 -0
  137. package/modern/ChartsLegend/direction.js +1 -0
  138. package/modern/ChartsLegend/index.js +9 -3
  139. package/modern/ChartsLegend/legendContext.types.js +1 -0
  140. package/modern/ChartsLegend/onClickContextBuilder.js +7 -0
  141. package/modern/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +9 -0
  142. package/modern/ChartsLegend/piecewiseColorLegend.types.js +1 -0
  143. package/modern/ChartsLegend/piecewiseColorLegendClasses.js +23 -0
  144. package/modern/ChartsLegend/useAxis.js +0 -1
  145. package/modern/ChartsSurface/ChartsSurface.js +0 -1
  146. package/modern/LineChart/AnimatedArea.js +1 -0
  147. package/modern/LineChart/AnimatedLine.js +1 -0
  148. package/modern/LineChart/AppearingMask.js +1 -0
  149. package/modern/LineChart/CircleMarkElement.js +1 -0
  150. package/modern/LineChart/LineChart.js +20 -10
  151. package/modern/LineChart/MarkElement.js +3 -1
  152. package/modern/LineChart/legend.js +1 -0
  153. package/modern/LineChart/useLineChartProps.js +15 -2
  154. package/modern/PieChart/PieArc.js +3 -1
  155. package/modern/PieChart/PieArcLabel.js +13 -9
  156. package/modern/PieChart/PieArcLabelPlot.js +1 -0
  157. package/modern/PieChart/PieArcPlot.js +1 -0
  158. package/modern/PieChart/PieChart.js +42 -41
  159. package/modern/PieChart/legend.js +1 -0
  160. package/modern/ScatterChart/ScatterChart.js +21 -11
  161. package/modern/ScatterChart/legend.js +1 -0
  162. package/modern/ScatterChart/useScatterChartProps.js +15 -2
  163. package/modern/SparkLineChart/SparkLineChart.js +1 -4
  164. package/modern/constants/index.js +2 -1
  165. package/modern/hooks/index.js +2 -1
  166. package/{ChartsLegend/utils.js → modern/hooks/useLegend.js} +20 -1
  167. package/modern/index.js +2 -1
  168. package/modern/internals/calculateMargins.js +25 -0
  169. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +60 -16
  170. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  171. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +61 -0
  172. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  173. package/modern/internals/components/ChartsWrapper/ChartsWrapper.js +66 -0
  174. package/modern/internals/components/ChartsWrapper/index.js +1 -0
  175. package/modern/internals/consumeSlots.js +101 -0
  176. package/modern/internals/consumeThemeProps.js +18 -27
  177. package/modern/internals/index.js +1 -0
  178. package/node/BarChart/AnimatedBarElement.js +1 -0
  179. package/node/BarChart/BarChart.js +17 -7
  180. package/node/BarChart/legend.js +1 -0
  181. package/node/BarChart/useBarChartProps.js +15 -3
  182. package/node/ChartsLabel/ChartsLabel.js +3 -18
  183. package/node/ChartsLabel/ChartsLabelGradient.js +21 -18
  184. package/node/ChartsLabel/ChartsLabelMark.js +5 -2
  185. package/node/ChartsLabel/index.js +26 -0
  186. package/node/ChartsLabel/labelGradientClasses.js +3 -2
  187. package/node/ChartsLabel/labelMarkClasses.js +3 -2
  188. package/node/ChartsLegend/ChartsLegend.js +99 -108
  189. package/node/ChartsLegend/ContinuousColorLegend.js +199 -322
  190. package/node/ChartsLegend/PiecewiseColorLegend.js +201 -111
  191. package/node/ChartsLegend/chartsLegendClasses.js +17 -3
  192. package/node/ChartsLegend/colorLegend.types.js +5 -0
  193. package/node/ChartsLegend/continuousColorLegendClasses.js +31 -0
  194. package/node/ChartsLegend/direction.js +5 -0
  195. package/node/ChartsLegend/index.js +80 -16
  196. package/node/ChartsLegend/legendContext.types.js +5 -0
  197. package/node/ChartsLegend/onClickContextBuilder.js +14 -0
  198. package/node/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +15 -0
  199. package/node/ChartsLegend/piecewiseColorLegend.types.js +5 -0
  200. package/node/ChartsLegend/piecewiseColorLegendClasses.js +31 -0
  201. package/node/ChartsSurface/ChartsSurface.js +0 -1
  202. package/node/LineChart/AnimatedArea.js +1 -0
  203. package/node/LineChart/AnimatedLine.js +1 -0
  204. package/node/LineChart/AppearingMask.js +1 -0
  205. package/node/LineChart/CircleMarkElement.js +1 -0
  206. package/node/LineChart/LineChart.js +20 -10
  207. package/node/LineChart/MarkElement.js +3 -1
  208. package/node/LineChart/legend.js +1 -0
  209. package/node/LineChart/useLineChartProps.js +14 -2
  210. package/node/PieChart/PieArc.js +3 -1
  211. package/node/PieChart/PieArcLabel.js +13 -9
  212. package/node/PieChart/PieArcLabelPlot.js +1 -0
  213. package/node/PieChart/PieArcPlot.js +1 -0
  214. package/node/PieChart/PieChart.js +42 -41
  215. package/node/PieChart/legend.js +1 -0
  216. package/node/ScatterChart/ScatterChart.js +21 -11
  217. package/node/ScatterChart/legend.js +1 -0
  218. package/node/ScatterChart/useScatterChartProps.js +14 -2
  219. package/node/SparkLineChart/SparkLineChart.js +1 -4
  220. package/node/constants/index.js +3 -2
  221. package/node/hooks/index.js +13 -1
  222. package/node/{ChartsLegend/utils.js → hooks/useLegend.js} +19 -1
  223. package/node/index.js +12 -1
  224. package/node/internals/calculateMargins.js +33 -0
  225. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +61 -16
  226. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  227. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +69 -0
  228. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  229. package/node/internals/components/ChartsWrapper/ChartsWrapper.js +72 -0
  230. package/node/internals/components/ChartsWrapper/index.js +16 -0
  231. package/node/internals/consumeSlots.js +109 -0
  232. package/node/internals/consumeThemeProps.js +18 -27
  233. package/node/internals/index.js +12 -0
  234. package/package.json +4 -4
  235. package/ChartsLegend/ChartsLegendItem.d.ts +0 -26
  236. package/ChartsLegend/ChartsLegendItem.js +0 -65
  237. package/ChartsLegend/DefaultChartsLegend.d.ts +0 -25
  238. package/ChartsLegend/DefaultChartsLegend.js +0 -112
  239. package/ChartsLegend/LegendPerItem.d.ts +0 -65
  240. package/ChartsLegend/LegendPerItem.js +0 -129
  241. package/ChartsLegend/legendItemsPlacement.d.ts +0 -3
  242. package/ChartsLegend/legendItemsPlacement.js +0 -72
  243. package/ChartsLegend/utils.d.ts +0 -2
  244. package/modern/ChartsLegend/ChartsLegendItem.js +0 -65
  245. package/modern/ChartsLegend/DefaultChartsLegend.js +0 -112
  246. package/modern/ChartsLegend/LegendPerItem.js +0 -129
  247. package/modern/ChartsLegend/legendItemsPlacement.js +0 -72
  248. package/node/ChartsLegend/ChartsLegendItem.js +0 -72
  249. package/node/ChartsLegend/DefaultChartsLegend.js +0 -118
  250. package/node/ChartsLegend/LegendPerItem.js +0 -137
  251. package/node/ChartsLegend/legendItemsPlacement.js +0 -79
@@ -12,14 +12,15 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
12
12
  function getLabelMarkUtilityClass(slot) {
13
13
  return (0, _generateUtilityClass.default)('MuiChartsLabelMark', slot);
14
14
  }
15
- const labelMarkClasses = exports.labelMarkClasses = (0, _generateUtilityClasses.default)('MuiChartsLabelMark', ['root', 'line', 'square', 'circle', 'mask']);
15
+ const labelMarkClasses = exports.labelMarkClasses = (0, _generateUtilityClasses.default)('MuiChartsLabelMark', ['root', 'line', 'square', 'circle', 'mask', 'fill']);
16
16
  const useUtilityClasses = props => {
17
17
  const {
18
18
  type
19
19
  } = props;
20
20
  const slots = {
21
21
  root: ['root', type],
22
- mask: ['mask']
22
+ mask: ['mask'],
23
+ fill: ['fill']
23
24
  };
24
25
  return (0, _composeClasses.default)(slots, getLabelMarkUtilityClass, props.classes);
25
26
  };
@@ -6,71 +6,108 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.ChartsLegend = ChartsLegend;
9
+ exports.ChartsLegend = void 0;
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
15
- var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
13
  var _styles = require("@mui/material/styles");
17
- var _utils = require("./utils");
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+ var _clsx = _interopRequireDefault(require("clsx"));
16
+ var _useLegend = require("../hooks/useLegend");
17
+ var _ChartsLabelMark = require("../ChartsLabel/ChartsLabelMark");
18
+ var _onClickContextBuilder = require("./onClickContextBuilder");
18
19
  var _chartsLegendClasses = require("./chartsLegendClasses");
19
- var _DefaultChartsLegend = require("./DefaultChartsLegend");
20
- var _useSeries = require("../hooks/useSeries");
20
+ var _consumeSlots = require("../internals/consumeSlots");
21
+ var _ChartsLabel = require("../ChartsLabel/ChartsLabel");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["slots", "slotProps"];
23
- const useUtilityClasses = ownerState => {
24
- const {
25
- classes,
26
- direction
27
- } = ownerState;
28
- const slots = {
29
- root: ['root', direction],
30
- mark: ['mark'],
31
- label: ['label'],
32
- series: ['series'],
33
- itemBackground: ['itemBackground']
34
- };
35
- return (0, _composeClasses.default)(slots, _chartsLegendClasses.getLegendUtilityClass, classes);
36
- };
37
- function ChartsLegend(inProps) {
38
- const props = (0, _styles.useThemeProps)({
39
- props: inProps,
40
- name: 'MuiChartsLegend'
41
- });
42
- const defaultizedProps = (0, _extends2.default)({
43
- direction: 'row'
44
- }, props, {
45
- position: (0, _extends2.default)({
46
- horizontal: 'middle',
47
- vertical: 'top'
48
- }, props.position)
49
- });
23
+ const _excluded = ["direction", "onItemClick", "className", "classes"];
24
+ const RootElement = (0, _styles.styled)('ul', {
25
+ name: 'MuiChartsLegend',
26
+ slot: 'Root',
27
+ overridesResolver: (props, styles) => styles.root
28
+ })(({
29
+ ownerState,
30
+ theme
31
+ }) => (0, _extends2.default)({}, theme.typography.caption, {
32
+ color: (theme.vars || theme).palette.text.primary,
33
+ lineHeight: '100%',
34
+ display: 'flex',
35
+ flexDirection: ownerState.direction === 'vertical' ? 'column' : 'row',
36
+ alignItems: ownerState.direction === 'vertical' ? undefined : 'center',
37
+ flexShrink: 0,
38
+ gap: theme.spacing(2),
39
+ listStyleType: 'none',
40
+ paddingInlineStart: 0,
41
+ marginBlock: theme.spacing(1),
42
+ marginInline: theme.spacing(1),
43
+ flexWrap: 'wrap',
44
+ li: {
45
+ display: ownerState.direction === 'horizontal' ? 'inline-flex' : undefined
46
+ },
47
+ [`button.${_chartsLegendClasses.legendClasses.series}`]: {
48
+ // Reset button styles
49
+ background: 'none',
50
+ border: 'none',
51
+ padding: 0,
52
+ fontFamily: 'inherit',
53
+ fontWeight: 'inherit',
54
+ fontSize: 'inherit',
55
+ letterSpacing: 'inherit',
56
+ color: 'inherit'
57
+ },
58
+ [`& .${_chartsLegendClasses.legendClasses.series}`]: {
59
+ display: ownerState.direction === 'vertical' ? 'flex' : 'inline-flex',
60
+ alignItems: 'center',
61
+ gap: theme.spacing(1)
62
+ }
63
+ }));
64
+ const ChartsLegend = exports.ChartsLegend = (0, _consumeSlots.consumeSlots)('MuiChartsLegend', 'legend', {
65
+ defaultProps: {
66
+ direction: 'horizontal'
67
+ },
68
+ // @ts-expect-error position is used only in the slots, but it is passed to the SVG wrapper.
69
+ // We omit it here to avoid passing to slots.
70
+ omitProps: ['position'],
71
+ classesResolver: _chartsLegendClasses.useUtilityClasses
72
+ }, function ChartsLegend(props, ref) {
73
+ const data = (0, _useLegend.useLegend)();
50
74
  const {
51
- slots,
52
- slotProps
53
- } = defaultizedProps,
54
- other = (0, _objectWithoutPropertiesLoose2.default)(defaultizedProps, _excluded);
55
- const theme = (0, _styles.useTheme)();
56
- const classes = useUtilityClasses((0, _extends2.default)({}, defaultizedProps, {
57
- theme
75
+ onItemClick,
76
+ className,
77
+ classes
78
+ } = props,
79
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
80
+ if (data.items.length === 0) {
81
+ return null;
82
+ }
83
+ const Element = onItemClick ? 'button' : 'div';
84
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(RootElement, (0, _extends2.default)({
85
+ className: (0, _clsx.default)(classes?.root, className),
86
+ ref: ref
87
+ }, other, {
88
+ ownerState: props,
89
+ children: data.items.map((item, i) => {
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
91
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Element, {
92
+ className: classes?.series,
93
+ role: onItemClick ? 'button' : undefined,
94
+ type: onItemClick ? 'button' : undefined,
95
+ onClick: onItemClick ?
96
+ // @ts-ignore onClick is only attached to a button
97
+ event => onItemClick(event, (0, _onClickContextBuilder.seriesContextBuilder)(item), i) : undefined,
98
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLabelMark.ChartsLabelMark, {
99
+ className: classes?.mark,
100
+ color: item.color,
101
+ type: item.markType
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLabel.ChartsLabel, {
103
+ className: classes?.label,
104
+ children: item.label
105
+ })]
106
+ })
107
+ }, item.id);
108
+ })
58
109
  }));
59
- const series = (0, _useSeries.useSeries)();
60
- const seriesToDisplay = (0, _utils.getSeriesToDisplay)(series);
61
- const ChartLegendRender = slots?.legend ?? _DefaultChartsLegend.DefaultChartsLegend;
62
- const chartLegendRenderProps = (0, _useSlotProps.default)({
63
- elementType: ChartLegendRender,
64
- externalSlotProps: slotProps?.legend,
65
- additionalProps: (0, _extends2.default)({}, other, {
66
- classes,
67
- series,
68
- seriesToDisplay
69
- }),
70
- ownerState: {}
71
- });
72
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ChartLegendRender, (0, _extends2.default)({}, chartLegendRenderProps));
73
- }
110
+ });
74
111
  process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
75
112
  // ----------------------------- Warning --------------------------------
76
113
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -80,66 +117,19 @@ process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
80
117
  * Override or extend the styles applied to the component.
81
118
  */
82
119
  classes: _propTypes.default.object,
120
+ className: _propTypes.default.string,
83
121
  /**
84
122
  * The direction of the legend layout.
85
123
  * The default depends on the chart.
86
124
  */
87
- direction: _propTypes.default.oneOf(['column', 'row']),
88
- /**
89
- * Set to true to hide the legend.
90
- * @default false
91
- */
92
- hidden: _propTypes.default.bool,
93
- /**
94
- * Space between two legend items (in px).
95
- * @default 10
96
- */
97
- itemGap: _propTypes.default.number,
98
- /**
99
- * Height of the item mark (in px).
100
- * @default 20
101
- */
102
- itemMarkHeight: _propTypes.default.number,
103
- /**
104
- * Width of the item mark (in px).
105
- * @default 20
106
- */
107
- itemMarkWidth: _propTypes.default.number,
108
- /**
109
- * Style applied to legend labels.
110
- * @default theme.typography.subtitle1
111
- */
112
- labelStyle: _propTypes.default.object,
113
- /**
114
- * Space between the mark and the label (in px).
115
- * @default 5
116
- */
117
- markGap: _propTypes.default.number,
125
+ direction: _propTypes.default.oneOf(['horizontal', 'vertical']),
118
126
  /**
119
127
  * Callback fired when a legend item is clicked.
120
- * @param {React.MouseEvent<SVGRectElement, MouseEvent>} event The click event.
128
+ * @param {React.MouseEvent<HTMLButtonElement, MouseEvent>} event The click event.
121
129
  * @param {SeriesLegendItemContext} legendItem The legend item data.
122
130
  * @param {number} index The index of the clicked legend item.
123
131
  */
124
132
  onItemClick: _propTypes.default.func,
125
- /**
126
- * Legend padding (in px).
127
- * Can either be a single number, or an object with top, left, bottom, right properties.
128
- * @default 10
129
- */
130
- padding: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
131
- bottom: _propTypes.default.number,
132
- left: _propTypes.default.number,
133
- right: _propTypes.default.number,
134
- top: _propTypes.default.number
135
- })]),
136
- /**
137
- * The position of the legend.
138
- */
139
- position: _propTypes.default.shape({
140
- horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
141
- vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
142
- }),
143
133
  /**
144
134
  * The props used for each component slot.
145
135
  * @default {}
@@ -149,5 +139,6 @@ process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
149
139
  * Overridable component slots.
150
140
  * @default {}
151
141
  */
152
- slots: _propTypes.default.object
142
+ slots: _propTypes.default.object,
143
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
153
144
  } : void 0;