@mui/x-charts 7.3.0 → 7.3.1

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 (176) hide show
  1. package/BarChart/BarChart.d.ts +1 -0
  2. package/BarChart/BarChart.js +8 -97
  3. package/BarChart/BarElement.d.ts +63 -62
  4. package/BarChart/BarElement.js +1 -2
  5. package/BarChart/BarPlot.js +3 -3
  6. package/CHANGELOG.md +79 -2
  7. package/ChartContainer/ChartContainer.js +3 -1
  8. package/ChartsAxis/ChartsAxis.js +7 -99
  9. package/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -1
  10. package/ChartsClipPath/ChartsClipPath.js +1 -1
  11. package/ChartsGrid/ChartsGrid.js +1 -1
  12. package/ChartsLegend/ChartsLegend.js +1 -1
  13. package/ChartsLegend/DefaultChartsLegend.js +1 -1
  14. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
  15. package/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  16. package/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  17. package/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  18. package/ChartsSurface.js +1 -1
  19. package/ChartsText/ChartsText.js +1 -1
  20. package/ChartsTooltip/ChartsAxisTooltipContent.js +17 -4
  21. package/ChartsTooltip/ChartsItemTooltipContent.js +20 -4
  22. package/ChartsTooltip/ChartsTooltip.js +1 -1
  23. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -7
  24. package/ChartsTooltip/ChartsTooltipTable.js +8 -9
  25. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -5
  26. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -4
  27. package/ChartsTooltip/utils.js +1 -1
  28. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -1
  29. package/ChartsXAxis/ChartsXAxis.js +1 -1
  30. package/ChartsYAxis/ChartsYAxis.js +1 -1
  31. package/Gauge/Gauge.js +1 -1
  32. package/Gauge/GaugeContainer.js +1 -1
  33. package/Gauge/GaugeProvider.js +1 -1
  34. package/Gauge/GaugeReferenceArc.js +1 -1
  35. package/Gauge/GaugeValueArc.js +1 -1
  36. package/Gauge/GaugeValueText.js +1 -1
  37. package/LineChart/AnimatedArea.d.ts +63 -62
  38. package/LineChart/AnimatedArea.js +1 -1
  39. package/LineChart/AnimatedLine.d.ts +63 -62
  40. package/LineChart/AnimatedLine.js +1 -1
  41. package/LineChart/AreaElement.js +1 -1
  42. package/LineChart/AreaPlot.js +1 -1
  43. package/LineChart/LineChart.d.ts +1 -0
  44. package/LineChart/LineChart.js +8 -97
  45. package/LineChart/LineElement.js +1 -1
  46. package/LineChart/LineHighlightElement.js +1 -1
  47. package/LineChart/LineHighlightPlot.js +1 -1
  48. package/LineChart/LinePlot.js +1 -1
  49. package/LineChart/MarkElement.js +1 -1
  50. package/LineChart/MarkPlot.js +1 -1
  51. package/PieChart/PieArc.d.ts +1 -0
  52. package/PieChart/PieArc.js +1 -1
  53. package/PieChart/PieArcLabel.d.ts +1 -0
  54. package/PieChart/PieArcLabel.js +1 -1
  55. package/PieChart/PieArcLabelPlot.js +1 -1
  56. package/PieChart/PieArcPlot.js +1 -1
  57. package/PieChart/PieChart.d.ts +1 -0
  58. package/PieChart/PieChart.js +8 -97
  59. package/PieChart/PiePlot.js +1 -1
  60. package/PieChart/dataTransform/transition.d.ts +1 -0
  61. package/PieChart/dataTransform/useTransformData.js +1 -1
  62. package/ResponsiveChartContainer/ResponsiveChartContainer.js +3 -1
  63. package/ResponsiveChartContainer/useChartContainerDimensions.js +1 -1
  64. package/ScatterChart/Scatter.js +1 -1
  65. package/ScatterChart/ScatterChart.d.ts +3 -1
  66. package/ScatterChart/ScatterChart.js +63 -124
  67. package/ScatterChart/ScatterPlot.js +9 -2
  68. package/ScatterChart/getColor.d.ts +2 -1
  69. package/ScatterChart/getColor.js +18 -1
  70. package/SparkLineChart/SparkLineChart.js +1 -1
  71. package/context/CartesianContextProvider.d.ts +2 -1
  72. package/context/CartesianContextProvider.js +1 -1
  73. package/context/DrawingProvider.js +1 -1
  74. package/context/HighlightProvider.js +1 -1
  75. package/context/InteractionProvider.js +1 -1
  76. package/context/SeriesContextProvider.js +1 -1
  77. package/context/ZAxisContextProvider.d.ts +33 -0
  78. package/context/ZAxisContextProvider.js +98 -0
  79. package/context/index.d.ts +2 -0
  80. package/context/index.js +8 -1
  81. package/esm/BarChart/BarChart.js +8 -98
  82. package/esm/BarChart/BarElement.js +0 -1
  83. package/esm/BarChart/BarPlot.js +2 -2
  84. package/esm/ChartContainer/ChartContainer.js +3 -2
  85. package/esm/ChartsAxis/ChartsAxis.js +7 -100
  86. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -2
  87. package/esm/ChartsGrid/ChartsGrid.js +1 -2
  88. package/esm/ChartsLegend/DefaultChartsLegend.js +1 -2
  89. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +1 -2
  90. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +1 -2
  91. package/esm/ChartsSurface.js +1 -2
  92. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +16 -3
  93. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +19 -3
  94. package/esm/ChartsTooltip/ChartsTooltipTable.js +8 -8
  95. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -6
  96. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -5
  97. package/esm/ChartsXAxis/ChartsXAxis.js +1 -2
  98. package/esm/ChartsYAxis/ChartsYAxis.js +1 -2
  99. package/esm/Gauge/Gauge.js +1 -2
  100. package/esm/LineChart/AnimatedArea.js +1 -2
  101. package/esm/LineChart/AnimatedLine.js +1 -2
  102. package/esm/LineChart/LineChart.js +8 -98
  103. package/esm/PieChart/PieChart.js +8 -98
  104. package/esm/PieChart/PiePlot.js +1 -2
  105. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  106. package/esm/ScatterChart/ScatterChart.js +63 -125
  107. package/esm/ScatterChart/ScatterPlot.js +8 -1
  108. package/esm/ScatterChart/getColor.js +18 -1
  109. package/esm/SparkLineChart/SparkLineChart.js +1 -2
  110. package/esm/context/ZAxisContextProvider.js +89 -0
  111. package/esm/context/index.js +1 -1
  112. package/esm/internals/colorGetter.js +2 -2
  113. package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +1 -2
  114. package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +1 -2
  115. package/esm/models/z-axis.js +1 -0
  116. package/hooks/useAxisEvents.js +1 -1
  117. package/hooks/useChartDimensions.js +1 -1
  118. package/hooks/useChartId.js +1 -1
  119. package/hooks/useDrawingArea.js +1 -1
  120. package/hooks/useInteractionItemProps.js +1 -1
  121. package/hooks/useMounted.js +1 -1
  122. package/hooks/useScale.js +1 -1
  123. package/hooks/useSeries.js +1 -1
  124. package/hooks/useSvgRef.js +1 -1
  125. package/hooks/useTicks.js +1 -1
  126. package/index.js +1 -1
  127. package/internals/colorGetter.d.ts +3 -1
  128. package/internals/colorGetter.js +2 -2
  129. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +1 -1
  130. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +1 -1
  131. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +1 -1
  132. package/internals/defaultizeColor.d.ts +1 -0
  133. package/internals/useAnimatedPath.d.ts +1 -0
  134. package/internals/useAnimatedPath.js +1 -1
  135. package/models/colorMapping.d.ts +3 -2
  136. package/models/seriesType/pie.d.ts +5 -0
  137. package/models/seriesType/scatter.d.ts +5 -0
  138. package/models/z-axis.d.ts +14 -0
  139. package/models/z-axis.js +5 -0
  140. package/modern/BarChart/BarChart.js +8 -98
  141. package/modern/BarChart/BarElement.js +0 -1
  142. package/modern/BarChart/BarPlot.js +2 -2
  143. package/modern/ChartContainer/ChartContainer.js +3 -2
  144. package/modern/ChartsAxis/ChartsAxis.js +7 -100
  145. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -2
  146. package/modern/ChartsGrid/ChartsGrid.js +1 -2
  147. package/modern/ChartsLegend/DefaultChartsLegend.js +1 -2
  148. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +1 -2
  149. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +1 -2
  150. package/modern/ChartsSurface.js +1 -2
  151. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +16 -3
  152. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +19 -3
  153. package/modern/ChartsTooltip/ChartsTooltipTable.js +8 -8
  154. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -6
  155. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -5
  156. package/modern/ChartsXAxis/ChartsXAxis.js +1 -2
  157. package/modern/ChartsYAxis/ChartsYAxis.js +1 -2
  158. package/modern/Gauge/Gauge.js +1 -2
  159. package/modern/LineChart/AnimatedArea.js +1 -2
  160. package/modern/LineChart/AnimatedLine.js +1 -2
  161. package/modern/LineChart/LineChart.js +8 -98
  162. package/modern/PieChart/PieChart.js +8 -98
  163. package/modern/PieChart/PiePlot.js +1 -2
  164. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -0
  165. package/modern/ScatterChart/ScatterChart.js +63 -125
  166. package/modern/ScatterChart/ScatterPlot.js +8 -1
  167. package/modern/ScatterChart/getColor.js +18 -1
  168. package/modern/SparkLineChart/SparkLineChart.js +1 -2
  169. package/modern/context/ZAxisContextProvider.js +89 -0
  170. package/modern/context/index.js +1 -1
  171. package/modern/index.js +1 -1
  172. package/modern/internals/colorGetter.js +2 -2
  173. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +1 -2
  174. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +1 -2
  175. package/modern/models/z-axis.js +1 -0
  176. package/package.json +3 -5
@@ -9,8 +9,7 @@ import { ChartsSurface } from '../ChartsSurface';
9
9
  import { CartesianContextProvider } from '../context/CartesianContextProvider';
10
10
  import { HighlightProvider } from '../context/HighlightProvider';
11
11
  import { ChartsAxesGradients } from '../internals/components/ChartsAxesGradients';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
13
  const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
15
14
  const {
16
15
  width,
@@ -122,6 +121,7 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
122
121
  /**
123
122
  * The configuration of the x-axes.
124
123
  * If not provided, a default axis config is used.
124
+ * An array of [[AxisConfig]] objects.
125
125
  */
126
126
  xAxis: PropTypes.arrayOf(PropTypes.shape({
127
127
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -174,6 +174,7 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
174
174
  /**
175
175
  * The configuration of the y-axes.
176
176
  * If not provided, a default axis config is used.
177
+ * An array of [[AxisConfig]] objects.
177
178
  */
178
179
  yAxis: PropTypes.arrayOf(PropTypes.shape({
179
180
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -4,8 +4,7 @@ import PropTypes from 'prop-types';
4
4
  import { CartesianContext } from '../context/CartesianContextProvider';
5
5
  import { ChartsXAxis } from '../ChartsXAxis';
6
6
  import { ChartsYAxis } from '../ChartsYAxis';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
8
  const getAxisId = (propsValue, defaultAxisId) => {
10
9
  if (propsValue == null) {
11
10
  return null;
@@ -53,8 +52,8 @@ function ChartsAxis(props) {
53
52
  // TODO: use for plotting line without ticks or any thing
54
53
  // const drawingArea = React.useContext(DrawingContext);
55
54
 
56
- const leftId = getAxisId(leftAxis === undefined ? yAxisIds[0] : leftAxis);
57
- const bottomId = getAxisId(bottomAxis === undefined ? xAxisIds[0] : bottomAxis);
55
+ const leftId = getAxisId(leftAxis === undefined ? yAxisIds[0] : leftAxis, yAxisIds[0]);
56
+ const bottomId = getAxisId(bottomAxis === undefined ? xAxisIds[0] : bottomAxis, xAxisIds[0]);
58
57
  const topId = getAxisId(topAxis, xAxisIds[0]);
59
58
  const rightId = getAxisId(rightAxis, yAxisIds[0]);
60
59
  if (topId !== null && !xAxis[topId]) {
@@ -99,88 +98,19 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
99
98
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
100
99
  * @default xAxisIds[0] The id of the first provided axis
101
100
  */
102
- bottomAxis: PropTypes.oneOfType([PropTypes.shape({
103
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
104
- classes: PropTypes.object,
105
- disableLine: PropTypes.bool,
106
- disableTicks: PropTypes.bool,
107
- fill: PropTypes.string,
108
- label: PropTypes.string,
109
- labelFontSize: PropTypes.number,
110
- labelStyle: PropTypes.object,
111
- position: PropTypes.oneOf(['bottom', 'top']),
112
- slotProps: PropTypes.object,
113
- slots: PropTypes.object,
114
- stroke: PropTypes.string,
115
- tickFontSize: PropTypes.number,
116
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
117
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
118
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
119
- tickLabelStyle: PropTypes.object,
120
- tickMaxStep: PropTypes.number,
121
- tickMinStep: PropTypes.number,
122
- tickNumber: PropTypes.number,
123
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
124
- tickSize: PropTypes.number
125
- }), PropTypes.string]),
101
+ bottomAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
126
102
  /**
127
103
  * Indicate which axis to display the left of the charts.
128
104
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
129
105
  * @default yAxisIds[0] The id of the first provided axis
130
106
  */
131
- leftAxis: PropTypes.oneOfType([PropTypes.shape({
132
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
133
- classes: PropTypes.object,
134
- disableLine: PropTypes.bool,
135
- disableTicks: PropTypes.bool,
136
- fill: PropTypes.string,
137
- label: PropTypes.string,
138
- labelFontSize: PropTypes.number,
139
- labelStyle: PropTypes.object,
140
- position: PropTypes.oneOf(['left', 'right']),
141
- slotProps: PropTypes.object,
142
- slots: PropTypes.object,
143
- stroke: PropTypes.string,
144
- tickFontSize: PropTypes.number,
145
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
146
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
147
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
148
- tickLabelStyle: PropTypes.object,
149
- tickMaxStep: PropTypes.number,
150
- tickMinStep: PropTypes.number,
151
- tickNumber: PropTypes.number,
152
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
153
- tickSize: PropTypes.number
154
- }), PropTypes.string]),
107
+ leftAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
155
108
  /**
156
109
  * Indicate which axis to display the right of the charts.
157
110
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
158
111
  * @default null
159
112
  */
160
- rightAxis: PropTypes.oneOfType([PropTypes.shape({
161
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
162
- classes: PropTypes.object,
163
- disableLine: PropTypes.bool,
164
- disableTicks: PropTypes.bool,
165
- fill: PropTypes.string,
166
- label: PropTypes.string,
167
- labelFontSize: PropTypes.number,
168
- labelStyle: PropTypes.object,
169
- position: PropTypes.oneOf(['left', 'right']),
170
- slotProps: PropTypes.object,
171
- slots: PropTypes.object,
172
- stroke: PropTypes.string,
173
- tickFontSize: PropTypes.number,
174
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
175
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
176
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
177
- tickLabelStyle: PropTypes.object,
178
- tickMaxStep: PropTypes.number,
179
- tickMinStep: PropTypes.number,
180
- tickNumber: PropTypes.number,
181
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
182
- tickSize: PropTypes.number
183
- }), PropTypes.string]),
113
+ rightAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
184
114
  /**
185
115
  * The props used for each component slot.
186
116
  * @default {}
@@ -196,29 +126,6 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
196
126
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
197
127
  * @default null
198
128
  */
199
- topAxis: PropTypes.oneOfType([PropTypes.shape({
200
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
201
- classes: PropTypes.object,
202
- disableLine: PropTypes.bool,
203
- disableTicks: PropTypes.bool,
204
- fill: PropTypes.string,
205
- label: PropTypes.string,
206
- labelFontSize: PropTypes.number,
207
- labelStyle: PropTypes.object,
208
- position: PropTypes.oneOf(['bottom', 'top']),
209
- slotProps: PropTypes.object,
210
- slots: PropTypes.object,
211
- stroke: PropTypes.string,
212
- tickFontSize: PropTypes.number,
213
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
214
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
215
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
216
- tickLabelStyle: PropTypes.object,
217
- tickMaxStep: PropTypes.number,
218
- tickMinStep: PropTypes.number,
219
- tickNumber: PropTypes.number,
220
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
221
- tickSize: PropTypes.number
222
- }), PropTypes.string])
129
+ topAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string])
223
130
  } : void 0;
224
131
  export { ChartsAxis };
@@ -9,8 +9,7 @@ import { InteractionContext } from '../context/InteractionProvider';
9
9
  import { CartesianContext } from '../context/CartesianContextProvider';
10
10
  import { getValueToPositionMapper } from '../hooks/useScale';
11
11
  import { isBandScale } from '../internals/isBandScale';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
13
  export function getAxisHighlightUtilityClass(slot) {
15
14
  return generateUtilityClass('MuiChartsAxisHighlight', slot);
16
15
  }
@@ -8,8 +8,7 @@ import { styled } from '@mui/material/styles';
8
8
  import { CartesianContext } from '../context/CartesianContextProvider';
9
9
  import { useTicks } from '../hooks/useTicks';
10
10
  import { getChartsGridUtilityClass, chartsGridClasses } from './chartsGridClasses';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
12
  const GridRoot = styled('g', {
14
13
  name: 'MuiChartsGrid',
15
14
  slot: 'Root',
@@ -8,8 +8,7 @@ import { NoSsr } from '@mui/base/NoSsr';
8
8
  import { useTheme, styled } from '@mui/material/styles';
9
9
  import { ChartsText } from '../ChartsText';
10
10
  import { getWordsByLines } from '../internals/getWordsByLines';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
12
  export const ChartsLegendRoot = styled('g', {
14
13
  name: 'MuiChartsLegend',
15
14
  slot: 'Root',
@@ -5,8 +5,7 @@ import { useDrawingArea, useXScale } from '../hooks';
5
5
  import { ReferenceLineRoot } from './common';
6
6
  import { ChartsText } from '../ChartsText';
7
7
  import { getReferenceLineUtilityClass } from './chartsReferenceLineClasses';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  const getTextParams = ({
11
10
  top,
12
11
  height,
@@ -5,8 +5,7 @@ import { useDrawingArea, useYScale } from '../hooks';
5
5
  import { ReferenceLineRoot } from './common';
6
6
  import { ChartsText } from '../ChartsText';
7
7
  import { getReferenceLineUtilityClass } from './chartsReferenceLineClasses';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  const getTextParams = ({
11
10
  left,
12
11
  width,
@@ -5,8 +5,7 @@ import { styled } from '@mui/material/styles';
5
5
  import PropTypes from 'prop-types';
6
6
  import * as React from 'react';
7
7
  import { useAxisEvents } from './hooks/useAxisEvents';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { jsxs as _jsxs } from "react/jsx-runtime";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  const ChartChartsSurfaceStyles = styled('svg', {
11
10
  name: 'MuiChartsSurface',
12
11
  slot: 'Root'
@@ -7,6 +7,7 @@ import { CartesianContext } from '../context/CartesianContextProvider';
7
7
  import { DefaultChartsAxisTooltipContent } from './DefaultChartsAxisTooltipContent';
8
8
  import { isCartesianSeriesType } from './utils';
9
9
  import colorGetter from '../internals/colorGetter';
10
+ import { ZAxisContext } from '../context/ZAxisContextProvider';
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  function ChartsAxisTooltipContent(props) {
12
13
  const {
@@ -25,6 +26,10 @@ function ChartsAxisTooltipContent(props) {
25
26
  yAxisIds,
26
27
  yAxis
27
28
  } = React.useContext(CartesianContext);
29
+ const {
30
+ zAxisIds,
31
+ zAxis
32
+ } = React.useContext(ZAxisContext);
28
33
  const series = React.useContext(SeriesContext);
29
34
  const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
30
35
  const relevantSeries = React.useMemo(() => {
@@ -35,15 +40,23 @@ function ChartsAxisTooltipContent(props) {
35
40
  const axisKey = isXaxis ? item.xAxisKey : item.yAxisKey;
36
41
  if (axisKey === undefined || axisKey === USED_AXIS_ID) {
37
42
  const seriesToAdd = series[seriesType].series[seriesId];
38
- const color = colorGetter(seriesToAdd, xAxis[seriesToAdd.xAxisKey ?? xAxisIds[0]], yAxis[seriesToAdd.yAxisKey ?? yAxisIds[0]]);
43
+ let getColor;
44
+ switch (seriesToAdd.type) {
45
+ case 'scatter':
46
+ getColor = colorGetter(seriesToAdd, xAxis[seriesToAdd.xAxisKey ?? xAxisIds[0]], yAxis[seriesToAdd.yAxisKey ?? yAxisIds[0]], zAxis[seriesToAdd.zAxisKey ?? zAxisIds[0]]);
47
+ break;
48
+ default:
49
+ getColor = colorGetter(seriesToAdd, xAxis[seriesToAdd.xAxisKey ?? xAxisIds[0]], yAxis[seriesToAdd.yAxisKey ?? yAxisIds[0]]);
50
+ break;
51
+ }
39
52
  rep.push(_extends({}, seriesToAdd, {
40
- getColor: color
53
+ getColor
41
54
  }));
42
55
  }
43
56
  });
44
57
  });
45
58
  return rep;
46
- }, [USED_AXIS_ID, isXaxis, series, xAxis, xAxisIds, yAxis, yAxisIds]);
59
+ }, [USED_AXIS_ID, isXaxis, series, xAxis, xAxisIds, yAxis, yAxisIds, zAxis, zAxisIds]);
47
60
  const relevantAxis = React.useMemo(() => {
48
61
  return isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
49
62
  }, [USED_AXIS_ID, isXaxis, xAxis, yAxis]);
@@ -6,6 +6,7 @@ import { SeriesContext } from '../context/SeriesContextProvider';
6
6
  import { DefaultChartsItemTooltipContent } from './DefaultChartsItemTooltipContent';
7
7
  import { CartesianContext } from '../context/CartesianContextProvider';
8
8
  import colorGetter from '../internals/colorGetter';
9
+ import { ZAxisContext } from '../context/ZAxisContextProvider';
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
11
  function ChartsItemTooltipContent(props) {
11
12
  const {
@@ -16,16 +17,31 @@ function ChartsItemTooltipContent(props) {
16
17
  contentProps
17
18
  } = props;
18
19
  const series = React.useContext(SeriesContext)[itemData.type].series[itemData.seriesId];
19
- const axisData = React.useContext(CartesianContext);
20
20
  const {
21
21
  xAxis,
22
22
  yAxis,
23
23
  xAxisIds,
24
24
  yAxisIds
25
- } = axisData;
25
+ } = React.useContext(CartesianContext);
26
+ const {
27
+ zAxis,
28
+ zAxisIds
29
+ } = React.useContext(ZAxisContext);
26
30
  const defaultXAxisId = xAxisIds[0];
27
31
  const defaultYAxisId = yAxisIds[0];
28
- const getColor = series.type === 'pie' ? colorGetter(series) : colorGetter(series, xAxis[series.xAxisKey ?? defaultXAxisId], yAxis[series.yAxisKey ?? defaultYAxisId]);
32
+ const defaultZAxisId = zAxisIds[0];
33
+ let getColor;
34
+ switch (series.type) {
35
+ case 'pie':
36
+ getColor = colorGetter(series);
37
+ break;
38
+ case 'scatter':
39
+ getColor = colorGetter(series, xAxis[series.xAxisKey ?? defaultXAxisId], yAxis[series.yAxisKey ?? defaultYAxisId], zAxis[series.zAxisKey ?? defaultZAxisId]);
40
+ break;
41
+ default:
42
+ getColor = colorGetter(series, xAxis[series.xAxisKey ?? defaultXAxisId], yAxis[series.yAxisKey ?? defaultYAxisId]);
43
+ break;
44
+ }
29
45
  const Content = content ?? DefaultChartsItemTooltipContent;
30
46
  const chartTooltipContentProps = useSlotProps({
31
47
  elementType: Content,
@@ -1,5 +1,5 @@
1
- import Box from '@mui/system/Box';
2
1
  import { styled } from '@mui/material/styles';
2
+ import { shouldForwardProp } from '@mui/system';
3
3
  import { chartsTooltipClasses } from './chartsTooltipClasses';
4
4
  export const ChartsTooltipPaper = styled('div', {
5
5
  name: 'MuiChartsTooltip',
@@ -7,10 +7,10 @@ export const ChartsTooltipPaper = styled('div', {
7
7
  })(({
8
8
  theme
9
9
  }) => ({
10
+ boxShadow: theme.shadows[1],
10
11
  backgroundColor: (theme.vars || theme).palette.background.paper,
11
12
  color: (theme.vars || theme).palette.text.primary,
12
13
  transition: theme.transitions.create('box-shadow'),
13
- border: `1px solid ${(theme.vars || theme).palette.divider}`,
14
14
  borderRadius: theme.shape.borderRadius
15
15
  }));
16
16
  export const ChartsTooltipTable = styled('table', {
@@ -59,19 +59,19 @@ export const ChartsTooltipCell = styled('td', {
59
59
  paddingRight: theme.spacing(2)
60
60
  }
61
61
  }));
62
-
63
- // eslint-disable-next-line material-ui/no-styled-box
64
- export const ChartsTooltipMark = styled(Box, {
62
+ export const ChartsTooltipMark = styled('div', {
65
63
  name: 'MuiChartsTooltip',
66
- slot: 'Mark'
64
+ slot: 'Mark',
65
+ shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'color'
67
66
  })(({
68
67
  theme,
69
- ownerState
68
+ color
70
69
  }) => ({
71
70
  width: theme.spacing(1),
72
71
  height: theme.spacing(1),
73
72
  borderRadius: '50%',
74
- backgroundColor: ownerState.color,
73
+ boxShadow: theme.shadows[1],
74
+ backgroundColor: color,
75
75
  borderColor: (theme.vars || theme).palette.background.paper,
76
76
  border: `solid ${(theme.vars || theme).palette.background.paper} ${theme.spacing(0.25)}`,
77
77
  boxSizing: 'content-box'
@@ -4,8 +4,7 @@ import clsx from 'clsx';
4
4
  import Typography from '@mui/material/Typography';
5
5
  import { ChartsTooltipCell, ChartsTooltipPaper, ChartsTooltipTable, ChartsTooltipMark, ChartsTooltipRow } from './ChartsTooltipTable';
6
6
  import { isCartesianSeries, utcFormatter } from './utils';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
8
  function DefaultChartsAxisTooltipContent(props) {
10
9
  const {
11
10
  series,
@@ -56,10 +55,7 @@ function DefaultChartsAxisTooltipContent(props) {
56
55
  children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
57
56
  className: clsx(classes.markCell, classes.cell),
58
57
  children: /*#__PURE__*/_jsx(ChartsTooltipMark, {
59
- ownerState: {
60
- color: getColor(dataIndex) ?? color
61
- },
62
- boxShadow: 1,
58
+ color: getColor(dataIndex) ?? color,
63
59
  className: classes.mark
64
60
  })
65
61
  }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
@@ -2,8 +2,7 @@ import * as React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import clsx from 'clsx';
4
4
  import { ChartsTooltipTable, ChartsTooltipCell, ChartsTooltipMark, ChartsTooltipPaper, ChartsTooltipRow } from './ChartsTooltipTable';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- import { jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
6
  function DefaultChartsItemTooltipContent(props) {
8
7
  const {
9
8
  series,
@@ -40,9 +39,7 @@ function DefaultChartsItemTooltipContent(props) {
40
39
  children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
41
40
  className: clsx(classes.markCell, classes.cell),
42
41
  children: /*#__PURE__*/_jsx(ChartsTooltipMark, {
43
- ownerState: {
44
- color
45
- },
42
+ color: color,
46
43
  className: classes.mark
47
44
  })
48
45
  }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
@@ -15,8 +15,7 @@ import { getMinXTranslation } from '../internals/geometry';
15
15
  import { useMounted } from '../hooks/useMounted';
16
16
  import { useDrawingArea } from '../hooks/useDrawingArea';
17
17
  import { getWordsByLines } from '../internals/getWordsByLines';
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
19
  const useUtilityClasses = ownerState => {
21
20
  const {
22
21
  classes,
@@ -12,8 +12,7 @@ import { useDrawingArea } from '../hooks/useDrawingArea';
12
12
  import { AxisRoot } from '../internals/components/AxisSharedComponents';
13
13
  import { ChartsText } from '../ChartsText';
14
14
  import { getAxisUtilityClass } from '../ChartsAxis/axisClasses';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
16
  const useUtilityClasses = ownerState => {
18
17
  const {
19
18
  classes,
@@ -9,8 +9,7 @@ import { GaugeValueArc } from './GaugeValueArc';
9
9
  import { GaugeReferenceArc } from './GaugeReferenceArc';
10
10
  import { getGaugeUtilityClass } from './gaugeClasses';
11
11
  import { GaugeValueText } from './GaugeValueText';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
13
  const useUtilityClasses = props => {
15
14
  const {
16
15
  classes
@@ -9,8 +9,7 @@ import { animated, useSpring } from '@react-spring/web';
9
9
  import { useAnimatedPath } from '../internals/useAnimatedPath';
10
10
  import { cleanId } from '../internals/utils';
11
11
  import { useChartId, useDrawingArea } from '../hooks';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
13
  export const AreaElementPath = styled(animated.path, {
15
14
  name: 'MuiAreaElement',
16
15
  slot: 'Root',
@@ -10,8 +10,7 @@ import { useAnimatedPath } from '../internals/useAnimatedPath';
10
10
  import { cleanId } from '../internals/utils';
11
11
  import { useChartId } from '../hooks/useChartId';
12
12
  import { useDrawingArea } from '../hooks/useDrawingArea';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
14
  export const LineElementPath = styled(animated.path, {
16
15
  name: 'MuiLineElement',
17
16
  slot: 'Root',
@@ -15,8 +15,7 @@ import { ChartsClipPath } from '../ChartsClipPath';
15
15
  import { LineHighlightPlot } from './LineHighlightPlot';
16
16
  import { ChartsGrid } from '../ChartsGrid';
17
17
  import { ChartsOnAxisClickHandler } from '../ChartsOnAxisClickHandler';
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
19
  /**
21
20
  * Demos:
22
21
  *
@@ -144,30 +143,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
144
143
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
145
144
  * @default xAxisIds[0] The id of the first provided axis
146
145
  */
147
- bottomAxis: PropTypes.oneOfType([PropTypes.shape({
148
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
149
- classes: PropTypes.object,
150
- disableLine: PropTypes.bool,
151
- disableTicks: PropTypes.bool,
152
- fill: PropTypes.string,
153
- label: PropTypes.string,
154
- labelFontSize: PropTypes.number,
155
- labelStyle: PropTypes.object,
156
- position: PropTypes.oneOf(['bottom', 'top']),
157
- slotProps: PropTypes.object,
158
- slots: PropTypes.object,
159
- stroke: PropTypes.string,
160
- tickFontSize: PropTypes.number,
161
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
162
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
163
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
164
- tickLabelStyle: PropTypes.object,
165
- tickMaxStep: PropTypes.number,
166
- tickMinStep: PropTypes.number,
167
- tickNumber: PropTypes.number,
168
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
169
- tickSize: PropTypes.number
170
- }), PropTypes.string]),
146
+ bottomAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
171
147
  children: PropTypes.node,
172
148
  className: PropTypes.string,
173
149
  /**
@@ -206,30 +182,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
206
182
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
207
183
  * @default yAxisIds[0] The id of the first provided axis
208
184
  */
209
- leftAxis: PropTypes.oneOfType([PropTypes.shape({
210
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
211
- classes: PropTypes.object,
212
- disableLine: PropTypes.bool,
213
- disableTicks: PropTypes.bool,
214
- fill: PropTypes.string,
215
- label: PropTypes.string,
216
- labelFontSize: PropTypes.number,
217
- labelStyle: PropTypes.object,
218
- position: PropTypes.oneOf(['left', 'right']),
219
- slotProps: PropTypes.object,
220
- slots: PropTypes.object,
221
- stroke: PropTypes.string,
222
- tickFontSize: PropTypes.number,
223
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
224
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
225
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
226
- tickLabelStyle: PropTypes.object,
227
- tickMaxStep: PropTypes.number,
228
- tickMinStep: PropTypes.number,
229
- tickNumber: PropTypes.number,
230
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
231
- tickSize: PropTypes.number
232
- }), PropTypes.string]),
185
+ leftAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
233
186
  /**
234
187
  * @deprecated Consider using `slotProps.legend` instead.
235
188
  */
@@ -280,32 +233,10 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
280
233
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
281
234
  * @default null
282
235
  */
283
- rightAxis: PropTypes.oneOfType([PropTypes.shape({
284
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
285
- classes: PropTypes.object,
286
- disableLine: PropTypes.bool,
287
- disableTicks: PropTypes.bool,
288
- fill: PropTypes.string,
289
- label: PropTypes.string,
290
- labelFontSize: PropTypes.number,
291
- labelStyle: PropTypes.object,
292
- position: PropTypes.oneOf(['left', 'right']),
293
- slotProps: PropTypes.object,
294
- slots: PropTypes.object,
295
- stroke: PropTypes.string,
296
- tickFontSize: PropTypes.number,
297
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
298
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
299
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
300
- tickLabelStyle: PropTypes.object,
301
- tickMaxStep: PropTypes.number,
302
- tickMinStep: PropTypes.number,
303
- tickNumber: PropTypes.number,
304
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
305
- tickSize: PropTypes.number
306
- }), PropTypes.string]),
236
+ rightAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
307
237
  /**
308
238
  * The series to display in the line chart.
239
+ * An array of [[LineSeriesType]] objects.
309
240
  */
310
241
  series: PropTypes.arrayOf(PropTypes.object).isRequired,
311
242
  /**
@@ -343,30 +274,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
343
274
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
344
275
  * @default null
345
276
  */
346
- topAxis: PropTypes.oneOfType([PropTypes.shape({
347
- axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
348
- classes: PropTypes.object,
349
- disableLine: PropTypes.bool,
350
- disableTicks: PropTypes.bool,
351
- fill: PropTypes.string,
352
- label: PropTypes.string,
353
- labelFontSize: PropTypes.number,
354
- labelStyle: PropTypes.object,
355
- position: PropTypes.oneOf(['bottom', 'top']),
356
- slotProps: PropTypes.object,
357
- slots: PropTypes.object,
358
- stroke: PropTypes.string,
359
- tickFontSize: PropTypes.number,
360
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
361
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
362
- tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
363
- tickLabelStyle: PropTypes.object,
364
- tickMaxStep: PropTypes.number,
365
- tickMinStep: PropTypes.number,
366
- tickNumber: PropTypes.number,
367
- tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
368
- tickSize: PropTypes.number
369
- }), PropTypes.string]),
277
+ topAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
370
278
  viewBox: PropTypes.shape({
371
279
  height: PropTypes.number,
372
280
  width: PropTypes.number,
@@ -380,6 +288,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
380
288
  /**
381
289
  * The configuration of the x-axes.
382
290
  * If not provided, a default axis config is used.
291
+ * An array of [[AxisConfig]] objects.
383
292
  */
384
293
  xAxis: PropTypes.arrayOf(PropTypes.shape({
385
294
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -432,6 +341,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
432
341
  /**
433
342
  * The configuration of the y-axes.
434
343
  * If not provided, a default axis config is used.
344
+ * An array of [[AxisConfig]] objects.
435
345
  */
436
346
  yAxis: PropTypes.arrayOf(PropTypes.shape({
437
347
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),