@mui/x-charts 9.3.0 → 9.4.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 (168) hide show
  1. package/BarChart/BarElement.d.mts +3 -2
  2. package/BarChart/BarElement.d.ts +3 -2
  3. package/BarChart/BarLabel/BarLabelItem.d.mts +3 -2
  4. package/BarChart/BarLabel/BarLabelItem.d.ts +3 -2
  5. package/BarChart/seriesConfig/bar/extremums.js +7 -2
  6. package/BarChart/seriesConfig/bar/extremums.mjs +7 -2
  7. package/CHANGELOG.md +196 -0
  8. package/ChartsContainer/ChartsContainer.js +21 -0
  9. package/ChartsContainer/ChartsContainer.mjs +21 -0
  10. package/ChartsLabel/ChartsLabelMark.js +1 -21
  11. package/ChartsLabel/ChartsLabelMark.mjs +0 -20
  12. package/ChartsLegend/chartsLegend.types.d.mts +3 -2
  13. package/ChartsLegend/chartsLegend.types.d.ts +3 -2
  14. package/ChartsLegend/piecewiseColorLegendClasses.js +8 -2
  15. package/ChartsLegend/piecewiseColorLegendClasses.mjs +8 -2
  16. package/ChartsOverlay/ChartsOverlay.d.mts +5 -4
  17. package/ChartsOverlay/ChartsOverlay.d.ts +5 -4
  18. package/ChartsReferenceLine/ChartsXReferenceLine.js +6 -1
  19. package/ChartsReferenceLine/ChartsXReferenceLine.mjs +6 -1
  20. package/ChartsReferenceLine/ChartsYReferenceLine.js +5 -0
  21. package/ChartsReferenceLine/ChartsYReferenceLine.mjs +5 -0
  22. package/ChartsTooltip/ChartTooltip.types.d.mts +3 -2
  23. package/ChartsTooltip/ChartTooltip.types.d.ts +3 -2
  24. package/ChartsTooltip/useAxesTooltip.js +2 -2
  25. package/ChartsTooltip/useAxesTooltip.mjs +2 -2
  26. package/ChartsTooltip/useItemTooltip.js +2 -2
  27. package/ChartsTooltip/useItemTooltip.mjs +2 -2
  28. package/ChartsXAxis/useAxisTicksProps.d.mts +84 -3
  29. package/ChartsXAxis/useAxisTicksProps.d.ts +84 -3
  30. package/ChartsYAxis/useAxisTicksProps.d.mts +84 -3
  31. package/ChartsYAxis/useAxisTicksProps.d.ts +84 -3
  32. package/LineChart/AreaElement.d.mts +3 -2
  33. package/LineChart/AreaElement.d.ts +3 -2
  34. package/LineChart/LineElement.d.mts +3 -2
  35. package/LineChart/LineElement.d.ts +3 -2
  36. package/LineChart/LineHighlightPlot.d.mts +3 -2
  37. package/LineChart/LineHighlightPlot.d.ts +3 -2
  38. package/LineChart/LineHighlightPlot.js +65 -45
  39. package/LineChart/LineHighlightPlot.mjs +65 -45
  40. package/LineChart/MarkPlot.d.mts +3 -2
  41. package/LineChart/MarkPlot.d.ts +3 -2
  42. package/LineChart/seriesConfig/curveEvaluation.js +28 -14
  43. package/LineChart/seriesConfig/curveEvaluation.mjs +27 -14
  44. package/LineChart/seriesConfig/extremums.js +5 -1
  45. package/LineChart/seriesConfig/extremums.mjs +5 -1
  46. package/LineChart/useMarkPlotData.js +3 -1
  47. package/LineChart/useMarkPlotData.mjs +3 -1
  48. package/PieChart/PieArcLabelPlot.d.mts +3 -2
  49. package/PieChart/PieArcLabelPlot.d.ts +3 -2
  50. package/PieChart/PieArcPlot.d.mts +3 -2
  51. package/PieChart/PieArcPlot.d.ts +3 -2
  52. package/RadarChart/RadarAxis/RadarAxis.utils.d.mts +2 -2
  53. package/RadarChart/RadarAxis/RadarAxis.utils.d.ts +2 -2
  54. package/ScatterChart/BatchScatter.d.mts +2 -8
  55. package/ScatterChart/BatchScatter.d.ts +2 -8
  56. package/ScatterChart/BatchScatter.js +17 -12
  57. package/ScatterChart/BatchScatter.mjs +17 -12
  58. package/ScatterChart/FocusedScatterMark.js +2 -2
  59. package/ScatterChart/FocusedScatterMark.mjs +2 -2
  60. package/ScatterChart/HighlightedScatterMark.js +3 -3
  61. package/ScatterChart/HighlightedScatterMark.mjs +3 -3
  62. package/ScatterChart/Scatter.d.mts +5 -0
  63. package/ScatterChart/Scatter.d.ts +5 -0
  64. package/ScatterChart/Scatter.js +7 -2
  65. package/ScatterChart/Scatter.mjs +7 -2
  66. package/ScatterChart/ScatterChart.d.mts +2 -1
  67. package/ScatterChart/ScatterChart.d.ts +2 -1
  68. package/ScatterChart/ScatterChart.js +21 -0
  69. package/ScatterChart/ScatterChart.mjs +21 -0
  70. package/ScatterChart/ScatterMarker.types.d.mts +3 -2
  71. package/ScatterChart/ScatterMarker.types.d.ts +3 -2
  72. package/ScatterChart/ScatterPlot.d.mts +3 -2
  73. package/ScatterChart/ScatterPlot.d.ts +3 -2
  74. package/ScatterChart/ScatterPlot.js +6 -1
  75. package/ScatterChart/ScatterPlot.mjs +6 -1
  76. package/ScatterChart/seriesConfig/extremums.js +6 -0
  77. package/ScatterChart/seriesConfig/extremums.mjs +6 -0
  78. package/ScatterChart/seriesConfig/getColor.js +1 -1
  79. package/ScatterChart/seriesConfig/getColor.mjs +1 -1
  80. package/ScatterChart/seriesConfig/getMarkerSize.d.mts +18 -0
  81. package/ScatterChart/seriesConfig/getMarkerSize.d.ts +18 -0
  82. package/ScatterChart/seriesConfig/getMarkerSize.js +43 -0
  83. package/ScatterChart/seriesConfig/getMarkerSize.mjs +37 -0
  84. package/ScatterChart/seriesConfig/seriesProcessor.js +23 -8
  85. package/ScatterChart/seriesConfig/seriesProcessor.mjs +23 -8
  86. package/ScatterChart/useScatterItemPosition.d.mts +4 -0
  87. package/ScatterChart/useScatterItemPosition.d.ts +4 -0
  88. package/ScatterChart/useScatterItemPosition.js +9 -0
  89. package/ScatterChart/useScatterItemPosition.mjs +8 -0
  90. package/Toolbar/Toolbar.types.d.mts +3 -2
  91. package/Toolbar/Toolbar.types.d.ts +3 -2
  92. package/index.js +1 -1
  93. package/index.mjs +1 -1
  94. package/internals/animation/animation.d.mts +1 -2
  95. package/internals/animation/animation.d.ts +1 -2
  96. package/internals/commonNextFocusItem.d.mts +10 -2
  97. package/internals/commonNextFocusItem.d.ts +10 -2
  98. package/internals/commonNextFocusItem.js +12 -4
  99. package/internals/commonNextFocusItem.mjs +12 -4
  100. package/internals/createCommonKeyboardFocusHandler.d.mts +1 -1
  101. package/internals/createCommonKeyboardFocusHandler.d.ts +1 -1
  102. package/internals/createCommonKeyboardFocusHandler.js +3 -3
  103. package/internals/createCommonKeyboardFocusHandler.mjs +3 -3
  104. package/internals/incompleteDatasetKeysError.d.mts +1 -0
  105. package/internals/incompleteDatasetKeysError.d.ts +1 -0
  106. package/internals/incompleteDatasetKeysError.js +11 -0
  107. package/internals/incompleteDatasetKeysError.mjs +4 -0
  108. package/internals/index.d.mts +2 -0
  109. package/internals/index.d.ts +2 -0
  110. package/internals/index.js +24 -0
  111. package/internals/index.mjs +2 -0
  112. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.js +3 -2
  113. package/internals/plugins/featurePlugins/useChartCartesianAxis/createZoomLookup.mjs +4 -3
  114. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js +2 -2
  115. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.mjs +3 -3
  116. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.mts +10 -1
  117. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.d.ts +10 -1
  118. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.js +18 -1
  119. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeZoom.mjs +16 -0
  120. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.mts +11 -3
  121. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +11 -3
  122. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +24 -5
  123. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.mjs +24 -5
  124. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.mts +1 -1
  125. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.d.ts +1 -1
  126. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.js +46 -2
  127. package/internals/plugins/featurePlugins/useChartClosestPoint/findClosestPoints.mjs +47 -2
  128. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.js +46 -11
  129. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.mjs +46 -11
  130. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.types.d.mts +2 -1
  131. package/internals/plugins/featurePlugins/useChartClosestPoint/useChartClosestPoint.types.d.ts +2 -1
  132. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.js +3 -2
  133. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.mjs +3 -2
  134. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.mts +4 -0
  135. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.d.ts +4 -0
  136. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.js +3 -1
  137. package/internals/plugins/featurePlugins/useChartPolarAxis/coordinateTransformation.mjs +1 -0
  138. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +5 -3
  139. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.mjs +7 -5
  140. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +17 -3
  141. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.mjs +17 -3
  142. package/internals/sizeScale.d.mts +6 -0
  143. package/internals/sizeScale.d.ts +6 -0
  144. package/internals/sizeScale.js +46 -0
  145. package/internals/sizeScale.mjs +38 -0
  146. package/models/axis.d.mts +18 -12
  147. package/models/axis.d.ts +18 -12
  148. package/models/chartsSlotsComponentsProps.d.mts +25 -0
  149. package/models/chartsSlotsComponentsProps.d.ts +25 -0
  150. package/models/chartsSlotsComponentsProps.js +5 -0
  151. package/models/chartsSlotsComponentsProps.mjs +1 -0
  152. package/models/index.d.mts +1 -0
  153. package/models/index.d.ts +1 -0
  154. package/models/index.js +11 -0
  155. package/models/index.mjs +1 -0
  156. package/models/seriesType/line.d.mts +5 -2
  157. package/models/seriesType/line.d.ts +5 -2
  158. package/models/seriesType/scatter.d.mts +34 -2
  159. package/models/seriesType/scatter.d.ts +34 -2
  160. package/models/sizeMapping.d.mts +64 -0
  161. package/models/sizeMapping.d.ts +64 -0
  162. package/models/sizeMapping.js +5 -0
  163. package/models/sizeMapping.mjs +1 -0
  164. package/models/slots/chartsBaseSlots.d.mts +6 -5
  165. package/models/slots/chartsBaseSlots.d.ts +6 -5
  166. package/models/z-axis.d.mts +10 -1
  167. package/models/z-axis.d.ts +10 -1
  168. package/package.json +6 -6
@@ -75,6 +75,8 @@ function ChartsYReferenceLine(props) {
75
75
  axisId
76
76
  } = props;
77
77
  const {
78
+ top,
79
+ height,
78
80
  left,
79
81
  width
80
82
  } = (0, _hooks.useDrawingArea)();
@@ -86,6 +88,9 @@ function ChartsYReferenceLine(props) {
86
88
  }
87
89
  return null;
88
90
  }
91
+ if (yPosition < top || yPosition > top + height) {
92
+ return null;
93
+ }
89
94
  const d = `M ${left} ${yPosition} l ${width} 0`;
90
95
  const classes = getYReferenceLineClasses(inClasses);
91
96
  const textParams = (0, _extends2.default)({
@@ -68,6 +68,8 @@ function ChartsYReferenceLine(props) {
68
68
  axisId
69
69
  } = props;
70
70
  const {
71
+ top,
72
+ height,
71
73
  left,
72
74
  width
73
75
  } = useDrawingArea();
@@ -79,6 +81,9 @@ function ChartsYReferenceLine(props) {
79
81
  }
80
82
  return null;
81
83
  }
84
+ if (yPosition < top || yPosition > top + height) {
85
+ return null;
86
+ }
82
87
  const d = `M ${left} ${yPosition} l ${width} 0`;
83
88
  const classes = getYReferenceLineClasses(inClasses);
84
89
  const textParams = _extends({
@@ -1,16 +1,17 @@
1
1
  import { type ChartsTooltipProps } from "./ChartsTooltip.mjs";
2
2
  import { type TriggerOptions } from "./utils.mjs";
3
+ import type { TooltipPropsOverrides } from "../models/chartsSlotsComponentsProps.mjs";
3
4
  export interface ChartsTooltipSlots<T extends TriggerOptions = TriggerOptions> {
4
5
  /**
5
6
  * Custom component for the tooltip popper.
6
7
  * @default ChartsTooltipRoot
7
8
  */
8
- tooltip?: React.ElementType<ChartsTooltipProps<T>>;
9
+ tooltip?: React.ElementType<ChartsTooltipProps<T> & TooltipPropsOverrides>;
9
10
  }
10
11
  export interface ChartsTooltipSlotProps<T extends TriggerOptions = TriggerOptions> {
11
12
  /**
12
13
  * Custom component for the tooltip popper.
13
14
  * @default ChartsTooltipRoot
14
15
  */
15
- tooltip?: Partial<ChartsTooltipProps<T>>;
16
+ tooltip?: Partial<ChartsTooltipProps<T>> & TooltipPropsOverrides;
16
17
  }
@@ -1,16 +1,17 @@
1
1
  import { type ChartsTooltipProps } from "./ChartsTooltip.js";
2
2
  import { type TriggerOptions } from "./utils.js";
3
+ import type { TooltipPropsOverrides } from "../models/chartsSlotsComponentsProps.js";
3
4
  export interface ChartsTooltipSlots<T extends TriggerOptions = TriggerOptions> {
4
5
  /**
5
6
  * Custom component for the tooltip popper.
6
7
  * @default ChartsTooltipRoot
7
8
  */
8
- tooltip?: React.ElementType<ChartsTooltipProps<T>>;
9
+ tooltip?: React.ElementType<ChartsTooltipProps<T> & TooltipPropsOverrides>;
9
10
  }
10
11
  export interface ChartsTooltipSlotProps<T extends TriggerOptions = TriggerOptions> {
11
12
  /**
12
13
  * Custom component for the tooltip popper.
13
14
  * @default ChartsTooltipRoot
14
15
  */
15
- tooltip?: Partial<ChartsTooltipProps<T>>;
16
+ tooltip?: Partial<ChartsTooltipProps<T>> & TooltipPropsOverrides;
16
17
  }
@@ -137,11 +137,11 @@ function useAxesTooltip(params) {
137
137
  }) => axisDirection === 'x' && axisId === providedXAxisId || axisDirection === 'y' && axisId === providedYAxisId);
138
138
  // Test if the series uses the default axis
139
139
  if (tooltipItemIndex >= 0) {
140
- const zAxisId = 'zAxisId' in seriesToAdd ? seriesToAdd.zAxisId : zAxisIds[0];
140
+ const colorAxisId = 'colorAxisId' in seriesToAdd && seriesToAdd.colorAxisId || 'zAxisId' in seriesToAdd && seriesToAdd.zAxisId || zAxisIds[0];
141
141
  const {
142
142
  dataIndex
143
143
  } = tooltipAxes[tooltipItemIndex];
144
- const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
144
+ const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], colorAxisId ? zAxis[colorAxisId] : undefined)(dataIndex) ?? '';
145
145
  const rawValue = seriesToAdd.data[dataIndex] ?? null;
146
146
  const formattedLabel = (0, _getLabel.getLabel)(seriesToAdd.label, 'tooltip') ?? null;
147
147
  let value;
@@ -132,11 +132,11 @@ export function useAxesTooltip(params) {
132
132
  }) => axisDirection === 'x' && axisId === providedXAxisId || axisDirection === 'y' && axisId === providedYAxisId);
133
133
  // Test if the series uses the default axis
134
134
  if (tooltipItemIndex >= 0) {
135
- const zAxisId = 'zAxisId' in seriesToAdd ? seriesToAdd.zAxisId : zAxisIds[0];
135
+ const colorAxisId = 'colorAxisId' in seriesToAdd && seriesToAdd.colorAxisId || 'zAxisId' in seriesToAdd && seriesToAdd.zAxisId || zAxisIds[0];
136
136
  const {
137
137
  dataIndex
138
138
  } = tooltipAxes[tooltipItemIndex];
139
- const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
139
+ const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], colorAxisId ? zAxis[colorAxisId] : undefined)(dataIndex) ?? '';
140
140
  const rawValue = seriesToAdd.data[dataIndex] ?? null;
141
141
  const formattedLabel = getLabel(seriesToAdd.label, 'tooltip') ?? null;
142
142
  let value;
@@ -50,14 +50,14 @@ function useInternalItemTooltip() {
50
50
  const yAxisId = (0, _isCartesian.isCartesianSeries)(itemSeries) ? itemSeries.yAxisId ?? yAxisIds[0] : undefined;
51
51
  const radiusAxisId = (0, _isPolar.isPolarSeries)(itemSeries) ? ('radiusAxisId' in itemSeries ? itemSeries.radiusAxisId : undefined) ?? radiusAxisIds[0] : undefined;
52
52
  const rotationAxisId = (0, _isPolar.isPolarSeries)(itemSeries) ? ('rotationAxisId' in itemSeries ? itemSeries.rotationAxisId : undefined) ?? rotationAxisIds[0] : undefined;
53
- const zAxisId = 'zAxisId' in itemSeries ? itemSeries.zAxisId ?? zAxisIds[0] : zAxisIds[0];
53
+ const colorAxisId = ('colorAxisId' in itemSeries ? itemSeries.colorAxisId : undefined) ?? ('zAxisId' in itemSeries ? itemSeries.zAxisId : undefined) ?? zAxisIds[0];
54
54
  const mainAxis =
55
55
  // eslint-disable-next-line no-nested-ternary
56
56
  rotationAxisId !== undefined ? rotationAxis[rotationAxisId] : xAxisId !== undefined ? xAxis[xAxisId] : undefined;
57
57
  const secondAxis =
58
58
  // eslint-disable-next-line no-nested-ternary
59
59
  radiusAxisId !== undefined ? radiusAxis[radiusAxisId] : yAxisId !== undefined ? yAxis[yAxisId] : undefined;
60
- const getColor = seriesConfig[itemSeries.type].colorProcessor(itemSeries, mainAxis, secondAxis, zAxisId !== undefined ? zAxis[zAxisId] : undefined);
60
+ const getColor = seriesConfig[itemSeries.type].colorProcessor(itemSeries, mainAxis, secondAxis, colorAxisId !== undefined ? zAxis[colorAxisId] : undefined);
61
61
  const axesConfig = {};
62
62
  if (xAxisId !== undefined) {
63
63
  axesConfig.x = xAxis[xAxisId];
@@ -44,14 +44,14 @@ export function useInternalItemTooltip() {
44
44
  const yAxisId = isCartesianSeries(itemSeries) ? itemSeries.yAxisId ?? yAxisIds[0] : undefined;
45
45
  const radiusAxisId = isPolarSeries(itemSeries) ? ('radiusAxisId' in itemSeries ? itemSeries.radiusAxisId : undefined) ?? radiusAxisIds[0] : undefined;
46
46
  const rotationAxisId = isPolarSeries(itemSeries) ? ('rotationAxisId' in itemSeries ? itemSeries.rotationAxisId : undefined) ?? rotationAxisIds[0] : undefined;
47
- const zAxisId = 'zAxisId' in itemSeries ? itemSeries.zAxisId ?? zAxisIds[0] : zAxisIds[0];
47
+ const colorAxisId = ('colorAxisId' in itemSeries ? itemSeries.colorAxisId : undefined) ?? ('zAxisId' in itemSeries ? itemSeries.zAxisId : undefined) ?? zAxisIds[0];
48
48
  const mainAxis =
49
49
  // eslint-disable-next-line no-nested-ternary
50
50
  rotationAxisId !== undefined ? rotationAxis[rotationAxisId] : xAxisId !== undefined ? xAxis[xAxisId] : undefined;
51
51
  const secondAxis =
52
52
  // eslint-disable-next-line no-nested-ternary
53
53
  radiusAxisId !== undefined ? radiusAxis[radiusAxisId] : yAxisId !== undefined ? yAxis[yAxisId] : undefined;
54
- const getColor = seriesConfig[itemSeries.type].colorProcessor(itemSeries, mainAxis, secondAxis, zAxisId !== undefined ? zAxis[zAxisId] : undefined);
54
+ const getColor = seriesConfig[itemSeries.type].colorProcessor(itemSeries, mainAxis, secondAxis, colorAxisId !== undefined ? zAxis[colorAxisId] : undefined);
55
55
  const axesConfig = {};
56
56
  if (xAxisId !== undefined) {
57
57
  axesConfig.x = xAxis[xAxisId];