@mui/x-charts 8.27.4 → 8.28.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 (152) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +1 -1
  2. package/BarChart/BarElement.d.ts +2 -2
  3. package/BarChart/BarElement.js +4 -2
  4. package/BarChart/BarLabel/BarLabel.js +4 -0
  5. package/BarChart/BarLabel/BarLabel.types.d.ts +2 -2
  6. package/BarChart/BarLabel/BarLabelItem.js +6 -2
  7. package/BarChart/BarLabel/barLabelClasses.d.ts +22 -2
  8. package/BarChart/BarLabel/barLabelClasses.js +19 -0
  9. package/BarChart/BarPlot.js +1 -2
  10. package/BarChart/barClasses.d.ts +21 -1
  11. package/BarChart/barClasses.js +9 -3
  12. package/BarChart/barElementClasses.d.ts +22 -10
  13. package/BarChart/barElementClasses.js +19 -0
  14. package/BarChart/index.d.ts +1 -1
  15. package/BarChart/index.js +1 -8
  16. package/CHANGELOG.md +143 -0
  17. package/LineChart/AreaElement.d.ts +17 -1
  18. package/LineChart/AreaElement.js +27 -4
  19. package/LineChart/AreaPlot.js +10 -4
  20. package/LineChart/CircleMarkElement.js +10 -2
  21. package/LineChart/LineElement.d.ts +17 -1
  22. package/LineChart/LineElement.js +27 -4
  23. package/LineChart/LineHighlightElement.d.ts +12 -0
  24. package/LineChart/LineHighlightElement.js +22 -3
  25. package/LineChart/LinePlot.js +11 -5
  26. package/LineChart/MarkElement.js +10 -2
  27. package/LineChart/MarkPlot.js +15 -3
  28. package/LineChart/index.d.ts +3 -1
  29. package/LineChart/index.js +10 -2
  30. package/LineChart/lineClasses.d.ts +34 -0
  31. package/LineChart/lineClasses.js +32 -0
  32. package/LineChart/markElementClasses.d.ts +26 -10
  33. package/LineChart/markElementClasses.js +19 -0
  34. package/PieChart/FocusedPieArc.js +4 -1
  35. package/PieChart/PieArc.d.ts +15 -12
  36. package/PieChart/PieArc.js +25 -7
  37. package/PieChart/PieArcLabel.d.ts +16 -2
  38. package/PieChart/PieArcLabel.js +28 -5
  39. package/PieChart/PieArcLabelPlot.js +6 -1
  40. package/PieChart/PieArcPlot.js +6 -1
  41. package/PieChart/PiePlot.d.ts +1 -0
  42. package/PieChart/PiePlot.js +4 -1
  43. package/PieChart/pieClasses.d.ts +22 -1
  44. package/PieChart/pieClasses.js +10 -3
  45. package/RadarChart/RadarAxis/RadarAxis.js +6 -4
  46. package/RadarChart/RadarAxis/radarAxisClasses.d.ts +27 -3
  47. package/RadarChart/RadarAxis/radarAxisClasses.js +19 -0
  48. package/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +6 -13
  49. package/RadarChart/RadarAxisHighlight/radarAxisHighlightClasses.d.ts +29 -4
  50. package/RadarChart/RadarAxisHighlight/radarAxisHighlightClasses.js +31 -1
  51. package/RadarChart/RadarGrid/RadarGrid.js +8 -1
  52. package/RadarChart/RadarGrid/radarGridClasses.d.ts +27 -3
  53. package/RadarChart/RadarGrid/radarGridClasses.js +19 -0
  54. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +7 -1
  55. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +8 -2
  56. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +9 -3
  57. package/RadarChart/RadarSeriesPlot/radarSeriesPlotClasses.d.ts +26 -3
  58. package/RadarChart/RadarSeriesPlot/radarSeriesPlotClasses.js +19 -0
  59. package/RadarChart/index.d.ts +3 -1
  60. package/RadarChart/index.js +9 -1
  61. package/RadarChart/radarClasses.d.ts +32 -0
  62. package/RadarChart/radarClasses.js +36 -0
  63. package/ScatterChart/BatchScatter.d.ts +2 -1
  64. package/ScatterChart/BatchScatter.js +5 -3
  65. package/ScatterChart/FocusedScatterMark.d.ts +4 -1
  66. package/ScatterChart/FocusedScatterMark.js +12 -2
  67. package/ScatterChart/Scatter.d.ts +1 -1
  68. package/ScatterChart/Scatter.js +6 -2
  69. package/ScatterChart/ScatterPlot.d.ts +2 -1
  70. package/ScatterChart/ScatterPlot.js +16 -2
  71. package/ScatterChart/index.d.ts +2 -2
  72. package/ScatterChart/scatterClasses.d.ts +14 -2
  73. package/ScatterChart/scatterClasses.js +10 -4
  74. package/esm/BarChart/AnimatedBarElement.d.ts +1 -1
  75. package/esm/BarChart/BarElement.d.ts +2 -2
  76. package/esm/BarChart/BarElement.js +4 -2
  77. package/esm/BarChart/BarLabel/BarLabel.js +4 -0
  78. package/esm/BarChart/BarLabel/BarLabel.types.d.ts +2 -2
  79. package/esm/BarChart/BarLabel/BarLabelItem.js +6 -2
  80. package/esm/BarChart/BarLabel/barLabelClasses.d.ts +22 -2
  81. package/esm/BarChart/BarLabel/barLabelClasses.js +20 -0
  82. package/esm/BarChart/BarPlot.js +2 -3
  83. package/esm/BarChart/barClasses.d.ts +21 -1
  84. package/esm/BarChart/barClasses.js +9 -3
  85. package/esm/BarChart/barElementClasses.d.ts +22 -10
  86. package/esm/BarChart/barElementClasses.js +20 -0
  87. package/esm/BarChart/index.d.ts +1 -1
  88. package/esm/BarChart/index.js +1 -1
  89. package/esm/LineChart/AreaElement.d.ts +17 -1
  90. package/esm/LineChart/AreaElement.js +29 -4
  91. package/esm/LineChart/AreaPlot.js +11 -5
  92. package/esm/LineChart/CircleMarkElement.js +11 -3
  93. package/esm/LineChart/LineElement.d.ts +17 -1
  94. package/esm/LineChart/LineElement.js +29 -4
  95. package/esm/LineChart/LineHighlightElement.d.ts +12 -0
  96. package/esm/LineChart/LineHighlightElement.js +24 -3
  97. package/esm/LineChart/LinePlot.js +12 -6
  98. package/esm/LineChart/MarkElement.js +11 -3
  99. package/esm/LineChart/MarkPlot.js +15 -3
  100. package/esm/LineChart/index.d.ts +3 -1
  101. package/esm/LineChart/index.js +2 -1
  102. package/esm/LineChart/lineClasses.d.ts +34 -0
  103. package/esm/LineChart/lineClasses.js +23 -0
  104. package/esm/LineChart/markElementClasses.d.ts +26 -10
  105. package/esm/LineChart/markElementClasses.js +20 -0
  106. package/esm/PieChart/FocusedPieArc.js +4 -1
  107. package/esm/PieChart/PieArc.d.ts +15 -12
  108. package/esm/PieChart/PieArc.js +27 -7
  109. package/esm/PieChart/PieArcLabel.d.ts +16 -2
  110. package/esm/PieChart/PieArcLabel.js +30 -5
  111. package/esm/PieChart/PieArcLabelPlot.js +6 -1
  112. package/esm/PieChart/PieArcPlot.js +6 -1
  113. package/esm/PieChart/PiePlot.d.ts +1 -0
  114. package/esm/PieChart/PiePlot.js +4 -1
  115. package/esm/PieChart/pieClasses.d.ts +22 -1
  116. package/esm/PieChart/pieClasses.js +10 -3
  117. package/esm/RadarChart/RadarAxis/RadarAxis.js +7 -5
  118. package/esm/RadarChart/RadarAxis/radarAxisClasses.d.ts +27 -3
  119. package/esm/RadarChart/RadarAxis/radarAxisClasses.js +20 -0
  120. package/esm/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +7 -14
  121. package/esm/RadarChart/RadarAxisHighlight/radarAxisHighlightClasses.d.ts +29 -4
  122. package/esm/RadarChart/RadarAxisHighlight/radarAxisHighlightClasses.js +30 -1
  123. package/esm/RadarChart/RadarGrid/RadarGrid.js +9 -2
  124. package/esm/RadarChart/RadarGrid/radarGridClasses.d.ts +27 -3
  125. package/esm/RadarChart/RadarGrid/radarGridClasses.js +20 -0
  126. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +8 -2
  127. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +8 -2
  128. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +9 -3
  129. package/esm/RadarChart/RadarSeriesPlot/radarSeriesPlotClasses.d.ts +26 -3
  130. package/esm/RadarChart/RadarSeriesPlot/radarSeriesPlotClasses.js +20 -0
  131. package/esm/RadarChart/index.d.ts +3 -1
  132. package/esm/RadarChart/index.js +2 -1
  133. package/esm/RadarChart/radarClasses.d.ts +32 -0
  134. package/esm/RadarChart/radarClasses.js +27 -0
  135. package/esm/ScatterChart/BatchScatter.d.ts +2 -1
  136. package/esm/ScatterChart/BatchScatter.js +4 -3
  137. package/esm/ScatterChart/FocusedScatterMark.d.ts +4 -1
  138. package/esm/ScatterChart/FocusedScatterMark.js +11 -1
  139. package/esm/ScatterChart/Scatter.d.ts +1 -1
  140. package/esm/ScatterChart/Scatter.js +6 -2
  141. package/esm/ScatterChart/ScatterPlot.d.ts +2 -1
  142. package/esm/ScatterChart/ScatterPlot.js +16 -2
  143. package/esm/ScatterChart/index.d.ts +2 -2
  144. package/esm/ScatterChart/scatterClasses.d.ts +14 -2
  145. package/esm/ScatterChart/scatterClasses.js +10 -4
  146. package/esm/index.js +1 -1
  147. package/esm/themeAugmentation/components.d.ts +29 -1
  148. package/esm/themeAugmentation/overrides.d.ts +17 -1
  149. package/index.js +1 -1
  150. package/package.json +3 -3
  151. package/themeAugmentation/components.d.ts +29 -1
  152. package/themeAugmentation/overrides.d.ts +17 -1
@@ -15,6 +15,7 @@ var _styles = require("@mui/material/styles");
15
15
  var _animation = require("../internals/animation/animation");
16
16
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
17
17
  var _markElementClasses = require("./markElementClasses");
18
+ var _lineClasses = require("./lineClasses");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["x", "y", "id", "classes", "color", "dataIndex", "onClick", "skipAnimation", "isFaded", "isHighlighted", "shape", "hidden"];
20
21
  const Circle = (0, _styles.styled)('circle', {
@@ -71,7 +72,11 @@ function CircleMarkElement(props) {
71
72
  isFaded,
72
73
  skipAnimation
73
74
  };
74
- const classes = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
+ const classes = (0, _lineClasses.useUtilityClasses)({
76
+ skipAnimation,
77
+ classes: innerClasses
78
+ });
79
+ const deprecatedClasses = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
80
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Circle, (0, _extends2.default)({}, other, {
76
81
  cx: x,
77
82
  cy: y,
@@ -79,13 +84,16 @@ function CircleMarkElement(props) {
79
84
  fill: (theme.vars || theme).palette.background.paper,
80
85
  stroke: color,
81
86
  strokeWidth: 2,
82
- className: classes.root,
87
+ className: `${classes.mark} ${deprecatedClasses.root}`,
83
88
  onClick: onClick,
84
89
  cursor: onClick ? 'pointer' : 'unset',
85
90
  pointerEvents: hidden ? 'none' : undefined
86
91
  }, interactionProps, {
87
92
  "data-highlighted": isHighlighted || undefined,
88
93
  "data-faded": isFaded || undefined,
94
+ "data-series-id": id,
95
+ "data-series": id,
96
+ "data-index": dataIndex,
89
97
  opacity: hidden ? 0 : 1
90
98
  }));
91
99
  }
@@ -2,8 +2,14 @@ import * as React from 'react';
2
2
  import { type SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
3
  import { type AnimatedLineProps } from "./AnimatedLine.js";
4
4
  import { type SeriesId } from "../models/seriesType/common.js";
5
+ /**
6
+ * @deprecated Use `LineClasses` instead.
7
+ */
5
8
  export interface LineElementClasses {
6
- /** Styles applied to the root element. */
9
+ /**
10
+ * Styles applied to the root element.
11
+ * @deprecated Use `lineClasses.line` instead.
12
+ */
7
13
  root: string;
8
14
  /** Styles applied to the root element when highlighted. */
9
15
  highlighted: string;
@@ -12,9 +18,13 @@ export interface LineElementClasses {
12
18
  /**
13
19
  * Styles applied to the root element for a specified series.
14
20
  * Needs to be suffixed with the series ID: `.${lineElementClasses.series}-${seriesId}`.
21
+ * @deprecated Use `[data-series="${seriesId}"]` selector instead.
15
22
  */
16
23
  series: string;
17
24
  }
25
+ /**
26
+ * @deprecated Use `LineClassKey` instead.
27
+ */
18
28
  export type LineElementClassKey = keyof LineElementClasses;
19
29
  export interface LineElementOwnerState {
20
30
  id: SeriesId;
@@ -26,7 +36,13 @@ export interface LineElementOwnerState {
26
36
  /** If `true`, the line is hidden. */
27
37
  hidden?: boolean;
28
38
  }
39
+ /**
40
+ * @deprecated Use `getLineUtilityClass` instead.
41
+ */
29
42
  export declare function getLineElementUtilityClass(slot: string): string;
43
+ /**
44
+ * @deprecated Use `lineClasses` instead.
45
+ */
30
46
  export declare const lineElementClasses: LineElementClasses;
31
47
  export interface LineElementSlots {
32
48
  /**
@@ -20,13 +20,31 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
20
20
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
21
  var _AnimatedLine = require("./AnimatedLine");
22
22
  var _useItemHighlighted = require("../hooks/useItemHighlighted");
23
+ var _lineClasses = require("./lineClasses");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick", "hidden"];
26
+ /**
27
+ * @deprecated Use `LineClasses` instead.
28
+ */
29
+ /**
30
+ * @deprecated Use `LineClassKey` instead.
31
+ */
32
+ /**
33
+ * @deprecated Use `getLineUtilityClass` instead.
34
+ */
25
35
  function getLineElementUtilityClass(slot) {
26
36
  return (0, _generateUtilityClass.default)('MuiLineElement', slot);
27
37
  }
38
+
39
+ /**
40
+ * @deprecated Use `lineClasses` instead.
41
+ */
28
42
  const lineElementClasses = exports.lineElementClasses = (0, _generateUtilityClasses.default)('MuiLineElement', ['root', 'highlighted', 'faded', 'series']);
29
- const useUtilityClasses = ownerState => {
43
+
44
+ /**
45
+ * @deprecated Use `useUtilityClasses` instead.
46
+ */
47
+ const useDeprecatedUtilityClasses = ownerState => {
30
48
  const {
31
49
  classes,
32
50
  id,
@@ -79,16 +97,21 @@ function LineElement(props) {
79
97
  isHighlighted,
80
98
  hidden
81
99
  };
82
- const classes = useUtilityClasses(ownerState);
100
+ const classes = (0, _lineClasses.useUtilityClasses)();
101
+ const deprecatedClasses = useDeprecatedUtilityClasses(ownerState);
83
102
  const Line = slots?.line ?? _AnimatedLine.AnimatedLine;
84
103
  const lineProps = (0, _useSlotProps.default)({
85
104
  elementType: Line,
86
105
  externalSlotProps: slotProps?.line,
87
106
  additionalProps: (0, _extends2.default)({}, interactionProps, {
88
107
  onClick,
89
- cursor: onClick ? 'pointer' : 'unset'
108
+ cursor: onClick ? 'pointer' : 'unset',
109
+ 'data-highlighted': isHighlighted || undefined,
110
+ 'data-faded': isFaded || undefined,
111
+ 'data-series-id': id,
112
+ 'data-series': id
90
113
  }),
91
- className: classes.root,
114
+ className: `${classes.line} ${deprecatedClasses.root}`,
92
115
  ownerState
93
116
  });
94
117
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, (0, _extends2.default)({}, other, lineProps));
@@ -1,9 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { type SeriesId } from "../models/seriesType/common.js";
3
+ /**
4
+ * @deprecated Use `LineClasses` instead.
5
+ */
3
6
  export interface LineHighlightElementClasses {
4
7
  /** Styles applied to the root element. */
5
8
  root: string;
6
9
  }
10
+ /**
11
+ * @deprecated Use `LineClassKey` instead.
12
+ */
7
13
  export type HighlightElementClassKey = keyof LineHighlightElementClasses;
8
14
  interface LineHighlightElementCommonProps {
9
15
  id: SeriesId;
@@ -12,7 +18,13 @@ interface LineHighlightElementCommonProps {
12
18
  y: number;
13
19
  classes?: Partial<LineHighlightElementClasses>;
14
20
  }
21
+ /**
22
+ * @deprecated Use `getLineUtilityClass` instead.
23
+ */
15
24
  export declare function getHighlightElementUtilityClass(slot: string): string;
25
+ /**
26
+ * @deprecated Use `lineClasses` instead.
27
+ */
16
28
  export declare const lineHighlightElementClasses: LineHighlightElementClasses;
17
29
  export type LineHighlightElementProps = (LineHighlightElementCommonProps & ({
18
30
  shape: 'circle';
@@ -19,13 +19,31 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
19
19
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
20
20
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
21
21
  var _getSymbol = require("../internals/getSymbol");
22
+ var _lineClasses = require("./lineClasses");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const _excluded = ["x", "y", "id", "classes", "color", "shape"];
25
+ /**
26
+ * @deprecated Use `LineClasses` instead.
27
+ */
28
+ /**
29
+ * @deprecated Use `LineClassKey` instead.
30
+ */
31
+ /**
32
+ * @deprecated Use `getLineUtilityClass` instead.
33
+ */
24
34
  function getHighlightElementUtilityClass(slot) {
25
35
  return (0, _generateUtilityClass.default)('MuiHighlightElement', slot);
26
36
  }
37
+
38
+ /**
39
+ * @deprecated Use `lineClasses` instead.
40
+ */
27
41
  const lineHighlightElementClasses = exports.lineHighlightElementClasses = (0, _generateUtilityClasses.default)('MuiHighlightElement', ['root']);
28
- const useUtilityClasses = ownerState => {
42
+
43
+ /**
44
+ * @deprecated Use `useUtilityClasses` instead.
45
+ */
46
+ const useDeprecatedUtilityClasses = ownerState => {
29
47
  const {
30
48
  classes,
31
49
  id
@@ -53,7 +71,8 @@ function LineHighlightElement(props) {
53
71
  shape
54
72
  } = props,
55
73
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
56
- const classes = useUtilityClasses(props);
74
+ const classes = (0, _lineClasses.useUtilityClasses)();
75
+ const deprecatedClasses = useDeprecatedUtilityClasses(props);
57
76
  const Element = shape === 'circle' ? 'circle' : 'path';
58
77
  const additionalProps = shape === 'circle' ? {
59
78
  cx: 0,
@@ -71,7 +90,7 @@ function LineHighlightElement(props) {
71
90
  };
72
91
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
73
92
  pointerEvents: "none",
74
- className: classes.root,
93
+ className: `${classes.highlight} ${deprecatedClasses.root}`,
75
94
  transform: `translate(${x} ${y})`,
76
95
  fill: color
77
96
  }, transformOrigin, additionalProps, other));
@@ -12,19 +12,21 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _styles = require("@mui/material/styles");
15
+ var _clsx = _interopRequireDefault(require("clsx"));
15
16
  var _LineElement = require("./LineElement");
16
17
  var _useSkipAnimation = require("../hooks/useSkipAnimation");
17
18
  var _hooks = require("../hooks");
18
19
  var _useInternalIsZoomInteracting = require("../internals/plugins/featurePlugins/useChartCartesianAxis/useInternalIsZoomInteracting");
19
20
  var _useLinePlotData = require("./useLinePlotData");
20
21
  var _animation = require("../internals/animation/animation");
22
+ var _lineClasses = require("./lineClasses");
21
23
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
24
+ const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick", "className"];
23
25
  const LinePlotRoot = (0, _styles.styled)('g', {
24
- name: 'MuiAreaPlot',
26
+ name: 'MuiLinePlot',
25
27
  slot: 'Root'
26
28
  })({
27
- [`& .${_LineElement.lineElementClasses.root}`]: {
29
+ [`& .${_lineClasses.lineClasses.line}`]: {
28
30
  transitionProperty: 'opacity, fill',
29
31
  transitionDuration: `${_animation.ANIMATION_DURATION_MS}ms`,
30
32
  transitionTimingFunction: _animation.ANIMATION_TIMING_FUNCTION
@@ -55,13 +57,17 @@ function LinePlot(props) {
55
57
  slots,
56
58
  slotProps,
57
59
  skipAnimation: inSkipAnimation,
58
- onItemClick
60
+ onItemClick,
61
+ className
59
62
  } = props,
60
63
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
61
64
  const isZoomInteracting = (0, _useInternalIsZoomInteracting.useInternalIsZoomInteracting)();
62
65
  const skipAnimation = (0, _useSkipAnimation.useSkipAnimation)(isZoomInteracting || inSkipAnimation);
63
66
  const completedData = useAggregatedData();
64
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinePlotRoot, (0, _extends2.default)({}, other, {
67
+ const classes = (0, _lineClasses.useUtilityClasses)();
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(LinePlotRoot, (0, _extends2.default)({
69
+ className: (0, _clsx.default)(classes.linePlot, className)
70
+ }, other, {
65
71
  children: completedData.map(({
66
72
  d,
67
73
  seriesId,
@@ -17,6 +17,7 @@ var _animation = require("../internals/animation/animation");
17
17
  var _getSymbol = require("../internals/getSymbol");
18
18
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
19
19
  var _markElementClasses = require("./markElementClasses");
20
+ var _lineClasses = require("./lineClasses");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
22
  const _excluded = ["x", "y", "id", "classes", "color", "shape", "dataIndex", "onClick", "skipAnimation", "isFaded", "isHighlighted", "hidden", "style"];
22
23
  const MarkElementPath = (0, _styles.styled)('path', {
@@ -71,14 +72,18 @@ function MarkElement(props) {
71
72
  isFaded,
72
73
  skipAnimation
73
74
  };
74
- const classes = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
+ const classes = (0, _lineClasses.useUtilityClasses)({
76
+ skipAnimation,
77
+ classes: innerClasses
78
+ });
79
+ const deprecatedClasses = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
80
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(MarkElementPath, (0, _extends2.default)({}, other, {
76
81
  style: (0, _extends2.default)({}, style, {
77
82
  transform: `translate(${x}px, ${y}px)`,
78
83
  transformOrigin: `${x}px ${y}px`
79
84
  }),
80
85
  ownerState: ownerState,
81
- className: classes.root,
86
+ className: `${classes.mark} ${deprecatedClasses.root}`,
82
87
  d: (0, _d3Shape.symbol)(_d3Shape.symbolsFill[(0, _getSymbol.getSymbol)(shape)])(),
83
88
  onClick: onClick,
84
89
  cursor: onClick ? 'pointer' : 'unset',
@@ -86,6 +91,9 @@ function MarkElement(props) {
86
91
  }, interactionProps, {
87
92
  "data-highlighted": isHighlighted || undefined,
88
93
  "data-faded": isFaded || undefined,
94
+ "data-series-id": id,
95
+ "data-series": id,
96
+ "data-index": dataIndex,
89
97
  opacity: hidden ? 0 : 1,
90
98
  strokeWidth: 2,
91
99
  stroke: color
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var React = _interopRequireWildcard(require("react"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _clsx = _interopRequireDefault(require("clsx"));
14
16
  var _useSkipAnimation = require("../hooks/useSkipAnimation");
15
17
  var _CircleMarkElement = require("./CircleMarkElement");
16
18
  var _MarkElement = require("./MarkElement");
@@ -19,8 +21,14 @@ var _useInternalIsZoomInteracting = require("../internals/plugins/featurePlugins
19
21
  var _useChartCartesianAxis = require("../internals/plugins/featurePlugins/useChartCartesianAxis");
20
22
  var _ChartProvider = require("../context/ChartProvider");
21
23
  var _useMarkPlotData = require("./useMarkPlotData");
24
+ var _lineClasses = require("./lineClasses");
22
25
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
26
+ const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick", "className"];
27
+ const MarkPlotRoot = (0, _styles.styled)('g', {
28
+ name: 'MuiMarkPlot',
29
+ slot: 'Root'
30
+ })({});
31
+
24
32
  /**
25
33
  * Demos:
26
34
  *
@@ -36,7 +44,8 @@ function MarkPlot(props) {
36
44
  slots,
37
45
  slotProps,
38
46
  skipAnimation: inSkipAnimation,
39
- onItemClick
47
+ onItemClick,
48
+ className
40
49
  } = props,
41
50
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
42
51
  const isZoomInteracting = (0, _useInternalIsZoomInteracting.useInternalIsZoomInteracting)();
@@ -70,7 +79,10 @@ function MarkPlot(props) {
70
79
  return rep;
71
80
  }, [xAxisHighlightIndexes]);
72
81
  const completedData = (0, _useMarkPlotData.useMarkPlotData)(xAxis, yAxis);
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
82
+ const classes = (0, _lineClasses.useUtilityClasses)();
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(MarkPlotRoot, (0, _extends2.default)({
84
+ className: (0, _clsx.default)(classes.markPlot, className)
85
+ }, other, {
74
86
  children: completedData.map(({
75
87
  seriesId,
76
88
  clipId,
@@ -12,4 +12,6 @@ export * from "./FocusedLineMark.js";
12
12
  export * from "./LineHighlightElement.js";
13
13
  export * from "./LineChart.plugins.js";
14
14
  export type { MarkElementClasses, MarkElementClassKey } from "./markElementClasses.js";
15
- export { getMarkElementUtilityClass, markElementClasses } from "./markElementClasses.js";
15
+ export { getMarkElementUtilityClass, markElementClasses } from "./markElementClasses.js";
16
+ export { lineClasses } from "./lineClasses.js";
17
+ export type { LineClassKey, LineClasses } from "./lineClasses.js";
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  getMarkElementUtilityClass: true,
8
- markElementClasses: true
8
+ markElementClasses: true,
9
+ lineClasses: true
9
10
  };
10
11
  Object.defineProperty(exports, "getMarkElementUtilityClass", {
11
12
  enumerable: true,
@@ -13,6 +14,12 @@ Object.defineProperty(exports, "getMarkElementUtilityClass", {
13
14
  return _markElementClasses.getMarkElementUtilityClass;
14
15
  }
15
16
  });
17
+ Object.defineProperty(exports, "lineClasses", {
18
+ enumerable: true,
19
+ get: function () {
20
+ return _lineClasses.lineClasses;
21
+ }
22
+ });
16
23
  Object.defineProperty(exports, "markElementClasses", {
17
24
  enumerable: true,
18
25
  get: function () {
@@ -175,4 +182,5 @@ Object.keys(_LineChart2).forEach(function (key) {
175
182
  }
176
183
  });
177
184
  });
178
- var _markElementClasses = require("./markElementClasses");
185
+ var _markElementClasses = require("./markElementClasses");
186
+ var _lineClasses = require("./lineClasses");
@@ -0,0 +1,34 @@
1
+ import { type SeriesId } from "../models/seriesType/common.js";
2
+ export interface LineClasses {
3
+ /** Styles applied to the area element. */
4
+ area: string;
5
+ /** Styles applied to the line element. */
6
+ line: string;
7
+ /** Styles applied to the mark element. */
8
+ mark: string;
9
+ /** Styles applied to a mark element when it is animated. */
10
+ markAnimate: string;
11
+ /** Styles applied to the highlight element. */
12
+ highlight: string;
13
+ /** Styles applied to the AreaPlot root element. */
14
+ areaPlot: string;
15
+ /** Styles applied to the LinePlot root element. */
16
+ linePlot: string;
17
+ /** Styles applied to the MarkPlot root element. */
18
+ markPlot: string;
19
+ }
20
+ export type LineClassKey = keyof LineClasses;
21
+ export interface MarkElementOwnerState {
22
+ id: SeriesId;
23
+ isFaded: boolean;
24
+ isHighlighted: boolean;
25
+ classes?: Partial<LineClasses>;
26
+ skipAnimation?: boolean;
27
+ }
28
+ export declare function getLineUtilityClass(slot: string): string;
29
+ export declare const lineClasses: LineClasses;
30
+ export interface UseUtilityClassesOptions {
31
+ skipAnimation?: boolean;
32
+ classes?: Partial<LineClasses>;
33
+ }
34
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"line" | "area" | "mark" | "highlight" | "areaPlot" | "linePlot" | "markPlot", string>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getLineUtilityClass = getLineUtilityClass;
8
+ exports.useUtilityClasses = exports.lineClasses = void 0;
9
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
+ function getLineUtilityClass(slot) {
13
+ return (0, _generateUtilityClass.default)('MuiLineChart', slot);
14
+ }
15
+ const lineClasses = exports.lineClasses = (0, _generateUtilityClasses.default)('MuiLineChart', ['area', 'line', 'mark', 'markAnimate', 'highlight', 'areaPlot', 'linePlot', 'markPlot']);
16
+ const useUtilityClasses = options => {
17
+ const {
18
+ skipAnimation,
19
+ classes
20
+ } = options ?? {};
21
+ const slots = {
22
+ area: ['area'],
23
+ line: ['line'],
24
+ mark: ['mark', !skipAnimation && 'markAnimate'],
25
+ highlight: ['highlight'],
26
+ areaPlot: ['areaPlot'],
27
+ linePlot: ['linePlot'],
28
+ markPlot: ['markPlot']
29
+ };
30
+ return (0, _composeClasses.default)(slots, getLineUtilityClass, classes);
31
+ };
32
+ exports.useUtilityClasses = useUtilityClasses;
@@ -1,27 +1,43 @@
1
- import { type SeriesId } from "../models/seriesType/common.js";
1
+ import type { MarkElementOwnerState } from "./lineClasses.js";
2
+ export { type MarkElementOwnerState };
3
+ /**
4
+ * @deprecated Use `LineClasses` instead.
5
+ */
2
6
  export interface MarkElementClasses {
3
- /** Styles applied to the root element. */
7
+ /**
8
+ * Styles applied to the root element.
9
+ * @deprecated Use `lineClasses.mark` instead.
10
+ */
4
11
  root: string;
5
12
  /** Styles applied to the root element when highlighted. */
6
13
  highlighted: string;
7
14
  /** Styles applied to the root element when faded. */
8
15
  faded: string;
9
- /** Styles applied to the root element when animation is not skipped. */
16
+ /**
17
+ * Styles applied to the root element when animation is not skipped.
18
+ * @deprecated Use `lineClasses.markAnimate` instead.
19
+ */
10
20
  animate: string;
11
21
  /**
12
22
  * Styles applied to the root element for a specified series.
13
23
  * Needs to be suffixed with the series ID: `.${markElementClasses.series}-${seriesId}`.
24
+ * @deprecated Use `[data-series="${seriesId}"]` selector instead.
14
25
  */
15
26
  series: string;
16
27
  }
28
+ /**
29
+ * @deprecated Use `LineClassKey` instead.
30
+ */
17
31
  export type MarkElementClassKey = keyof MarkElementClasses;
18
- export interface MarkElementOwnerState {
19
- id: SeriesId;
20
- isFaded: boolean;
21
- isHighlighted: boolean;
22
- classes?: Partial<MarkElementClasses>;
23
- skipAnimation?: boolean;
24
- }
32
+ /**
33
+ * @deprecated Use `getLineUtilityClass` instead.
34
+ */
25
35
  export declare function getMarkElementUtilityClass(slot: string): string;
36
+ /**
37
+ * @deprecated Use `lineClasses` instead.
38
+ */
26
39
  export declare const markElementClasses: MarkElementClasses;
40
+ /**
41
+ * @deprecated Use `useUtilityClasses` instead.
42
+ */
27
43
  export declare const useUtilityClasses: (ownerState: MarkElementOwnerState) => Record<"root", string>;
@@ -9,10 +9,29 @@ exports.useUtilityClasses = exports.markElementClasses = void 0;
9
9
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
10
10
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
11
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
+ /**
13
+ * @deprecated Use `LineClasses` instead.
14
+ */
15
+
16
+ /**
17
+ * @deprecated Use `LineClassKey` instead.
18
+ */
19
+
20
+ /**
21
+ * @deprecated Use `getLineUtilityClass` instead.
22
+ */
12
23
  function getMarkElementUtilityClass(slot) {
13
24
  return (0, _generateUtilityClass.default)('MuiMarkElement', slot);
14
25
  }
26
+
27
+ /**
28
+ * @deprecated Use `lineClasses` instead.
29
+ */
15
30
  const markElementClasses = exports.markElementClasses = (0, _generateUtilityClasses.default)('MuiMarkElement', ['root', 'highlighted', 'faded', 'animate', 'series']);
31
+
32
+ /**
33
+ * @deprecated Use `useUtilityClasses` instead.
34
+ */
16
35
  const useUtilityClasses = ownerState => {
17
36
  const {
18
37
  classes,
@@ -10,10 +10,12 @@ exports.FocusedPieArc = FocusedPieArc;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
+ var _clsx = _interopRequireDefault(require("clsx"));
13
14
  var _styles = require("@mui/material/styles");
14
15
  var _useFocusedItem = require("../hooks/useFocusedItem");
15
16
  var _usePieSeries = require("../hooks/usePieSeries");
16
17
  var _PieArc = require("./PieArc");
18
+ var _pieClasses = require("./pieClasses");
17
19
  var _useItemHighlighted = require("../hooks/useItemHighlighted");
18
20
  var _getModifiedArcProperties = require("./dataTransform/getModifiedArcProperties");
19
21
  var _jsxRuntime = require("react/jsx-runtime");
@@ -27,6 +29,7 @@ function FocusedPieArc(props) {
27
29
  isFaded
28
30
  } = (0, _useItemHighlighted.useItemHighlighted)(focusedItem);
29
31
  const pieSeries = (0, _usePieSeries.usePieSeriesContext)();
32
+ const classes = (0, _pieClasses.useUtilityClasses)();
30
33
  if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
31
34
  return null;
32
35
  }
@@ -51,7 +54,7 @@ function FocusedPieArc(props) {
51
54
  skipAnimation: true,
52
55
  stroke: (theme.vars ?? theme).palette.text.primary,
53
56
  id: series.id,
54
- className: _PieArc.pieArcClasses.focusIndicator,
57
+ className: (0, _clsx.default)(classes.focusIndicator, _PieArc.pieArcClasses.focusIndicator),
55
58
  dataIndex: focusedItem.dataIndex,
56
59
  isFaded: false,
57
60
  isHighlighted: false,
@@ -1,5 +1,9 @@
1
1
  import * as React from 'react';
2
- import { type PieItemId } from "../models/index.js";
2
+ import { type PieArcOwnerState } from "./pieClasses.js";
3
+ export { type PieArcOwnerState };
4
+ /**
5
+ * @deprecated Use `PieClasses` instead.
6
+ */
3
7
  export interface PieArcClasses {
4
8
  /** Styles applied to the root element. */
5
9
  root: string;
@@ -15,20 +19,19 @@ export interface PieArcClasses {
15
19
  /** Styles applied to the focus indicator element. */
16
20
  focusIndicator: string;
17
21
  }
22
+ /**
23
+ * @deprecated Use `PieClassKey` instead.
24
+ */
18
25
  export type PieArcClassKey = keyof PieArcClasses;
19
- interface PieArcOwnerState {
20
- id: PieItemId;
21
- dataIndex: number;
22
- color: string;
23
- isFaded: boolean;
24
- isHighlighted: boolean;
25
- isFocused: boolean;
26
- stroke?: string;
27
- classes?: Partial<PieArcClasses>;
28
- }
26
+ /**
27
+ * @deprecated Use `getPieUtilityClass` instead.
28
+ */
29
29
  export declare function getPieArcUtilityClass(slot: string): string;
30
+ /**
31
+ * @deprecated Use `pieClasses` instead.
32
+ */
30
33
  export declare const pieArcClasses: PieArcClasses;
31
- export type PieArcProps = Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & PieArcOwnerState & {
34
+ export type PieArcProps = Omit<React.SVGProps<SVGPathElement>, 'id' | 'ref'> & PieArcOwnerState & {
32
35
  cornerRadius: number;
33
36
  endAngle: number;
34
37
  innerRadius: number;