@mui/x-charts-pro 9.2.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 (78) hide show
  1. package/BarChartPro/BarChartPro.js +62 -32
  2. package/BarChartPro/BarChartPro.mjs +62 -32
  3. package/CHANGELOG.md +314 -0
  4. package/ChartsDataProviderPro/ChartsDataProviderPro.js +2 -2
  5. package/ChartsDataProviderPro/ChartsDataProviderPro.mjs +2 -2
  6. package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.js +1 -0
  7. package/ChartsToolbarPro/ChartsToolbarImageExportTrigger.mjs +1 -0
  8. package/ChartsToolbarPro/ChartsToolbarPro.d.mts +1 -1
  9. package/ChartsToolbarPro/ChartsToolbarPro.d.ts +1 -1
  10. package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.d.mts +1 -1
  11. package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.d.ts +1 -1
  12. package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.js +35 -38
  13. package/ChartsToolbarPro/ChartsToolbarRangeButtonTrigger.mjs +37 -40
  14. package/ChartsToolbarPro/Toolbar.types.d.mts +3 -2
  15. package/ChartsToolbarPro/Toolbar.types.d.ts +3 -2
  16. package/ChartsToolbarPro/rangeButtonValueToZoom.d.mts +18 -2
  17. package/ChartsToolbarPro/rangeButtonValueToZoom.d.ts +18 -2
  18. package/ChartsToolbarPro/rangeButtonValueToZoom.js +73 -10
  19. package/ChartsToolbarPro/rangeButtonValueToZoom.mjs +72 -10
  20. package/ChartsZoomSlider/internals/chartsAxisZoomSliderThumbClasses.js +9 -2
  21. package/ChartsZoomSlider/internals/chartsAxisZoomSliderThumbClasses.mjs +9 -2
  22. package/ChartsZoomSlider/internals/previews/ScatterPreviewPlot.js +2 -1
  23. package/ChartsZoomSlider/internals/previews/ScatterPreviewPlot.mjs +2 -1
  24. package/FunnelChart/FunnelChart.js +15 -15
  25. package/FunnelChart/FunnelChart.mjs +15 -15
  26. package/FunnelChart/funnelPlotSlots.types.d.mts +5 -4
  27. package/FunnelChart/funnelPlotSlots.types.d.ts +5 -4
  28. package/Heatmap/Heatmap.d.mts +3 -2
  29. package/Heatmap/Heatmap.d.ts +3 -2
  30. package/Heatmap/Heatmap.js +52 -22
  31. package/Heatmap/Heatmap.mjs +52 -22
  32. package/Heatmap/HeatmapItem.d.mts +3 -2
  33. package/Heatmap/HeatmapItem.d.ts +3 -2
  34. package/Heatmap/HeatmapItem.js +2 -0
  35. package/Heatmap/HeatmapItem.mjs +2 -0
  36. package/Heatmap/HeatmapTooltip/HeatmapTooltip.types.d.mts +3 -2
  37. package/Heatmap/HeatmapTooltip/HeatmapTooltip.types.d.ts +3 -2
  38. package/LineChartPro/LineChartPro.js +58 -28
  39. package/LineChartPro/LineChartPro.mjs +58 -28
  40. package/PieChartPro/PieChartPro.js +6 -6
  41. package/PieChartPro/PieChartPro.mjs +6 -6
  42. package/RadarChartPro/RadarChartPro.js +8 -8
  43. package/RadarChartPro/RadarChartPro.mjs +8 -8
  44. package/SankeyChart/SankeyChart.js +16 -16
  45. package/SankeyChart/SankeyChart.mjs +16 -16
  46. package/ScatterChartPro/ScatterChartPro.d.mts +2 -1
  47. package/ScatterChartPro/ScatterChartPro.d.ts +2 -1
  48. package/ScatterChartPro/ScatterChartPro.js +58 -28
  49. package/ScatterChartPro/ScatterChartPro.mjs +58 -28
  50. package/index.js +1 -1
  51. package/index.mjs +1 -1
  52. package/internals/plugins/useChartProExport/exportImage.js +8 -2
  53. package/internals/plugins/useChartProExport/exportImage.mjs +8 -2
  54. package/internals/plugins/useChartProExport/print.js +1 -0
  55. package/internals/plugins/useChartProExport/print.mjs +1 -0
  56. package/internals/plugins/useChartProExport/useChartProExport.types.d.mts +6 -0
  57. package/internals/plugins/useChartProExport/useChartProExport.types.d.ts +6 -0
  58. package/internals/plugins/useChartProZoom/useChartProZoom.js +77 -14
  59. package/internals/plugins/useChartProZoom/useChartProZoom.mjs +79 -15
  60. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.mts +0 -3
  61. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +0 -3
  62. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +1 -2
  63. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.mjs +0 -1
  64. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.mts +28 -11
  65. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +28 -11
  66. package/internals/slots/chartsBaseSlots.d.mts +6 -5
  67. package/internals/slots/chartsBaseSlots.d.ts +6 -5
  68. package/internals/slots/chartsIconSlots.d.mts +4 -3
  69. package/internals/slots/chartsIconSlots.d.ts +4 -3
  70. package/models/chartsSlotsComponentsPropsPro.d.mts +11 -0
  71. package/models/chartsSlotsComponentsPropsPro.d.ts +11 -0
  72. package/models/chartsSlotsComponentsPropsPro.js +5 -0
  73. package/models/chartsSlotsComponentsPropsPro.mjs +1 -0
  74. package/models/index.d.mts +1 -0
  75. package/models/index.d.ts +1 -0
  76. package/models/index.js +12 -0
  77. package/models/index.mjs +1 -0
  78. package/package.json +6 -6
@@ -99,7 +99,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
99
99
  disableTicks: PropTypes.bool,
100
100
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
101
101
  position: PropTypes.oneOf(['bottom', 'left', 'none', 'right', 'top']),
102
- scaleType: PropTypes.oneOf(['log']),
102
+ scaleType: PropTypes.oneOf(['linear']),
103
103
  size: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
104
104
  tickLabelStyle: PropTypes.object,
105
105
  tickSize: PropTypes.number
@@ -109,7 +109,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
109
109
  disableTicks: PropTypes.bool,
110
110
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
111
111
  position: PropTypes.oneOf(['bottom', 'left', 'none', 'right', 'top']),
112
- scaleType: PropTypes.oneOf(['symlog']),
112
+ scaleType: PropTypes.oneOf(['log']),
113
113
  size: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
114
114
  tickLabelStyle: PropTypes.object,
115
115
  tickSize: PropTypes.number
@@ -139,7 +139,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
139
139
  disableTicks: PropTypes.bool,
140
140
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
141
141
  position: PropTypes.oneOf(['bottom', 'left', 'none', 'right', 'top']),
142
- scaleType: PropTypes.oneOf(['time']),
142
+ scaleType: PropTypes.oneOf(['symlog']),
143
143
  size: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
144
144
  tickLabelStyle: PropTypes.object,
145
145
  tickSize: PropTypes.number
@@ -149,7 +149,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
149
149
  disableTicks: PropTypes.bool,
150
150
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
151
151
  position: PropTypes.oneOf(['bottom', 'left', 'none', 'right', 'top']),
152
- scaleType: PropTypes.oneOf(['utc']),
152
+ scaleType: PropTypes.oneOf(['time']),
153
153
  size: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
154
154
  tickLabelStyle: PropTypes.object,
155
155
  tickSize: PropTypes.number
@@ -159,7 +159,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
159
159
  disableTicks: PropTypes.bool,
160
160
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
161
161
  position: PropTypes.oneOf(['bottom', 'left', 'none', 'right', 'top']),
162
- scaleType: PropTypes.oneOf(['linear']),
162
+ scaleType: PropTypes.oneOf(['utc']),
163
163
  size: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
164
164
  tickLabelStyle: PropTypes.object,
165
165
  tickSize: PropTypes.number
@@ -221,11 +221,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
221
221
  hiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
222
222
  dataIndex: PropTypes.number,
223
223
  seriesId: PropTypes.string.isRequired,
224
- type: PropTypes.oneOf(['funnel'])
224
+ type: PropTypes.oneOf(['funnel']).isRequired
225
225
  }), PropTypes.shape({
226
226
  dataIndex: PropTypes.number,
227
227
  seriesId: PropTypes.string.isRequired,
228
- type: PropTypes.oneOf(['funnel']).isRequired
228
+ type: PropTypes.oneOf(['funnel'])
229
229
  })]).isRequired),
230
230
  /**
231
231
  * If `true`, the legend is not rendered.
@@ -238,11 +238,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
238
238
  */
239
239
  highlightedItem: PropTypes.oneOfType([PropTypes.shape({
240
240
  dataIndex: PropTypes.number,
241
- seriesId: PropTypes.string.isRequired,
242
- type: PropTypes.oneOf(['funnel']).isRequired
241
+ seriesId: PropTypes.string.isRequired
243
242
  }), PropTypes.shape({
244
243
  dataIndex: PropTypes.number,
245
- seriesId: PropTypes.string.isRequired
244
+ seriesId: PropTypes.string.isRequired,
245
+ type: PropTypes.oneOf(['funnel']).isRequired
246
246
  })]),
247
247
  /**
248
248
  * This prop is used to help implement the accessibility logic.
@@ -273,11 +273,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
273
273
  initialHiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
274
274
  dataIndex: PropTypes.number,
275
275
  seriesId: PropTypes.string.isRequired,
276
- type: PropTypes.oneOf(['funnel'])
276
+ type: PropTypes.oneOf(['funnel']).isRequired
277
277
  }), PropTypes.shape({
278
278
  dataIndex: PropTypes.number,
279
279
  seriesId: PropTypes.string.isRequired,
280
- type: PropTypes.oneOf(['funnel']).isRequired
280
+ type: PropTypes.oneOf(['funnel'])
281
281
  })]).isRequired),
282
282
  /**
283
283
  * If `true`, a loading overlay is displayed.
@@ -363,11 +363,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
363
363
  */
364
364
  tooltipItem: PropTypes.oneOfType([PropTypes.shape({
365
365
  dataIndex: PropTypes.number.isRequired,
366
- seriesId: PropTypes.string.isRequired,
367
- type: PropTypes.oneOf(['funnel']).isRequired
366
+ seriesId: PropTypes.string.isRequired
368
367
  }), PropTypes.shape({
369
368
  dataIndex: PropTypes.number.isRequired,
370
- seriesId: PropTypes.string.isRequired
369
+ seriesId: PropTypes.string.isRequired,
370
+ type: PropTypes.oneOf(['funnel']).isRequired
371
371
  })]),
372
372
  /**
373
373
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -1,21 +1,22 @@
1
1
  import type * as React from 'react';
2
2
  import type { FunnelSectionProps } from "./FunnelSection.mjs";
3
3
  import { type FunnelSectionLabelProps } from "./FunnelSectionLabel.mjs";
4
+ import type { FunnelSectionPropsOverrides, FunnelSectionLabelPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.mjs";
4
5
  export interface FunnelPlotSlots {
5
6
  /**
6
7
  * Custom component for funnel section.
7
8
  * @default FunnelSection
8
9
  */
9
- funnelSection?: React.ElementType<FunnelSectionProps>;
10
+ funnelSection?: React.ElementType<FunnelSectionProps & FunnelSectionPropsOverrides>;
10
11
  /**
11
12
  * Custom component for funnel section label.
12
13
  * @default FunnelSectionLabel
13
14
  */
14
- funnelSectionLabel?: React.ElementType<FunnelSectionLabelProps>;
15
+ funnelSectionLabel?: React.ElementType<FunnelSectionLabelProps & FunnelSectionLabelPropsOverrides>;
15
16
  }
16
17
  export interface FunnelPlotSlotProps {
17
- funnelSection?: FunnelSectionProps;
18
- funnelSectionLabel?: FunnelSectionLabelProps;
18
+ funnelSection?: Partial<FunnelSectionProps> & FunnelSectionPropsOverrides;
19
+ funnelSectionLabel?: Partial<FunnelSectionLabelProps> & FunnelSectionLabelPropsOverrides;
19
20
  }
20
21
  export interface FunnelPlotSlotExtension {
21
22
  /**
@@ -1,21 +1,22 @@
1
1
  import type * as React from 'react';
2
2
  import type { FunnelSectionProps } from "./FunnelSection.js";
3
3
  import { type FunnelSectionLabelProps } from "./FunnelSectionLabel.js";
4
+ import type { FunnelSectionPropsOverrides, FunnelSectionLabelPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.js";
4
5
  export interface FunnelPlotSlots {
5
6
  /**
6
7
  * Custom component for funnel section.
7
8
  * @default FunnelSection
8
9
  */
9
- funnelSection?: React.ElementType<FunnelSectionProps>;
10
+ funnelSection?: React.ElementType<FunnelSectionProps & FunnelSectionPropsOverrides>;
10
11
  /**
11
12
  * Custom component for funnel section label.
12
13
  * @default FunnelSectionLabel
13
14
  */
14
- funnelSectionLabel?: React.ElementType<FunnelSectionLabelProps>;
15
+ funnelSectionLabel?: React.ElementType<FunnelSectionLabelProps & FunnelSectionLabelPropsOverrides>;
15
16
  }
16
17
  export interface FunnelPlotSlotProps {
17
- funnelSection?: FunnelSectionProps;
18
- funnelSectionLabel?: FunnelSectionLabelProps;
18
+ funnelSection?: Partial<FunnelSectionProps> & FunnelSectionPropsOverrides;
19
+ funnelSectionLabel?: Partial<FunnelSectionLabelProps> & FunnelSectionLabelPropsOverrides;
19
20
  }
20
21
  export interface FunnelPlotSlotExtension {
21
22
  /**
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { type MakeOptional } from '@mui/x-internals/types';
3
3
  import { type ChartsTooltipProps } from '@mui/x-charts/ChartsTooltip';
4
4
  import { type ChartsAxisSlots, type ChartsAxisSlotProps, type XAxis, type YAxis } from '@mui/x-charts/internals';
5
+ import type { TooltipPropsOverrides } from '@mui/x-charts/models';
5
6
  import { type ChartsOverlayProps, type ChartsOverlaySlotProps, type ChartsOverlaySlots } from '@mui/x-charts/ChartsOverlay';
6
7
  import { type ChartsLegendSlotProps, type ChartsLegendSlots } from '@mui/x-charts/ChartsLegend';
7
8
  import { type ChartsSlotPropsPro, type ChartsSlotsPro } from "../internals/material/index.mjs";
@@ -16,7 +17,7 @@ export interface HeatmapSlots extends ChartsAxisSlots, ChartsOverlaySlots, Heatm
16
17
  * Custom component for the tooltip.
17
18
  * @default ChartsTooltipRoot
18
19
  */
19
- tooltip?: React.ElementType<HeatmapTooltipProps>;
20
+ tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
20
21
  /**
21
22
  * Custom component for the legend.
22
23
  * @default ContinuousColorLegendProps
@@ -24,7 +25,7 @@ export interface HeatmapSlots extends ChartsAxisSlots, ChartsOverlaySlots, Heatm
24
25
  legend?: ChartsLegendSlots['legend'];
25
26
  }
26
27
  export interface HeatmapSlotProps extends ChartsAxisSlotProps, ChartsOverlaySlotProps, HeatmapItemSlotProps, ChartsLegendSlotProps, ChartsToolbarProSlotProps, Partial<ChartsSlotPropsPro> {
27
- tooltip?: Partial<HeatmapTooltipProps>;
28
+ tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
28
29
  }
29
30
  export type HeatmapSeries = MakeOptional<HeatmapSeriesType, 'type'>;
30
31
  export interface HeatmapProps extends Omit<ChartsContainerProProps<'heatmap', HeatmapPluginSignatures>, 'series' | 'plugins' | 'xAxis' | 'yAxis' | 'axesGap' | 'skipAnimation' | 'slots' | 'slotProps' | 'highlightedAxis' | 'onHighlightedAxisChange' | 'seriesConfig' | 'onAxisClick'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { type MakeOptional } from '@mui/x-internals/types';
3
3
  import { type ChartsTooltipProps } from '@mui/x-charts/ChartsTooltip';
4
4
  import { type ChartsAxisSlots, type ChartsAxisSlotProps, type XAxis, type YAxis } from '@mui/x-charts/internals';
5
+ import type { TooltipPropsOverrides } from '@mui/x-charts/models';
5
6
  import { type ChartsOverlayProps, type ChartsOverlaySlotProps, type ChartsOverlaySlots } from '@mui/x-charts/ChartsOverlay';
6
7
  import { type ChartsLegendSlotProps, type ChartsLegendSlots } from '@mui/x-charts/ChartsLegend';
7
8
  import { type ChartsSlotPropsPro, type ChartsSlotsPro } from "../internals/material/index.js";
@@ -16,7 +17,7 @@ export interface HeatmapSlots extends ChartsAxisSlots, ChartsOverlaySlots, Heatm
16
17
  * Custom component for the tooltip.
17
18
  * @default ChartsTooltipRoot
18
19
  */
19
- tooltip?: React.ElementType<HeatmapTooltipProps>;
20
+ tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
20
21
  /**
21
22
  * Custom component for the legend.
22
23
  * @default ContinuousColorLegendProps
@@ -24,7 +25,7 @@ export interface HeatmapSlots extends ChartsAxisSlots, ChartsOverlaySlots, Heatm
24
25
  legend?: ChartsLegendSlots['legend'];
25
26
  }
26
27
  export interface HeatmapSlotProps extends ChartsAxisSlotProps, ChartsOverlaySlotProps, HeatmapItemSlotProps, ChartsLegendSlotProps, ChartsToolbarProSlotProps, Partial<ChartsSlotPropsPro> {
27
- tooltip?: Partial<HeatmapTooltipProps>;
28
+ tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
28
29
  }
29
30
  export type HeatmapSeries = MakeOptional<HeatmapSeriesType, 'type'>;
30
31
  export interface HeatmapProps extends Omit<ChartsContainerProProps<'heatmap', HeatmapPluginSignatures>, 'series' | 'plugins' | 'xAxis' | 'yAxis' | 'axesGap' | 'skipAnimation' | 'slots' | 'slotProps' | 'highlightedAxis' | 'onHighlightedAxisChange' | 'seriesConfig' | 'onAxisClick'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
@@ -151,12 +151,21 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
151
151
  /**
152
152
  * The list of zoom data related to each axis.
153
153
  * Used to initialize the zoom in a specific configuration without controlling it.
154
+ *
155
+ * Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
156
+ * range value (`{ axisId, value }`) resolved against the axis domain.
154
157
  */
155
- initialZoom: _propTypes.default.arrayOf(_propTypes.default.shape({
158
+ initialZoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
156
159
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
157
160
  end: _propTypes.default.number.isRequired,
158
161
  start: _propTypes.default.number.isRequired
159
- })),
162
+ }), _propTypes.default.shape({
163
+ axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
164
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.instanceOf(Date).isRequired), _propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func, _propTypes.default.shape({
165
+ step: _propTypes.default.number,
166
+ unit: _propTypes.default.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
167
+ })])
168
+ })]).isRequired),
160
169
  /**
161
170
  * If `true`, a loading overlay is displayed.
162
171
  * @default false
@@ -286,11 +295,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
286
295
  */
287
296
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
288
297
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
289
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
290
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
291
- unknownColor: _propTypes.default.string,
292
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
293
- }), _propTypes.default.shape({
294
298
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
295
299
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
296
300
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -299,12 +303,38 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
299
303
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
300
304
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
301
305
  type: _propTypes.default.oneOf(['piecewise']).isRequired
306
+ }), _propTypes.default.shape({
307
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
308
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
309
+ unknownColor: _propTypes.default.string,
310
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
302
311
  })]),
303
312
  data: _propTypes.default.array,
304
313
  dataKey: _propTypes.default.string,
305
314
  id: _propTypes.default.string,
306
315
  max: _propTypes.default.number,
307
316
  min: _propTypes.default.number,
317
+ sizeMap: _propTypes.default.oneOfType([_propTypes.default.shape({
318
+ interpolator: _propTypes.default.oneOf(['linear', 'log', 'sqrt']),
319
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
320
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
321
+ size: _propTypes.default.arrayOf(_propTypes.default.number.isRequired).isRequired,
322
+ type: _propTypes.default.oneOf(['continuous']).isRequired
323
+ }), _propTypes.default.shape({
324
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
325
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
326
+ size: _propTypes.default.func.isRequired,
327
+ type: _propTypes.default.oneOf(['continuous']).isRequired
328
+ }), _propTypes.default.shape({
329
+ sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
330
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
331
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
332
+ }), _propTypes.default.shape({
333
+ sizes: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
334
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
335
+ unknownSize: _propTypes.default.number,
336
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
337
+ })]),
308
338
  valueGetter: _propTypes.default.func
309
339
  })),
310
340
  /**
@@ -320,6 +350,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
320
350
  */
321
351
  zoomInteractionConfig: _propTypes.default.shape({
322
352
  pan: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['drag', 'pressAndDrag', 'wheel']), _propTypes.default.shape({
353
+ allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
354
+ pointerMode: _propTypes.default.any,
355
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
356
+ type: _propTypes.default.oneOf(['wheel']).isRequired
357
+ }), _propTypes.default.shape({
323
358
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
324
359
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
325
360
  type: _propTypes.default.oneOf(['drag']).isRequired
@@ -327,24 +362,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
327
362
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
328
363
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
329
364
  type: _propTypes.default.oneOf(['pressAndDrag']).isRequired
330
- }), _propTypes.default.shape({
331
- allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
332
- pointerMode: _propTypes.default.any,
333
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
334
- type: _propTypes.default.oneOf(['wheel']).isRequired
335
365
  })]).isRequired),
336
366
  zoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), _propTypes.default.shape({
337
- pointerMode: _propTypes.default.any,
338
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
339
- type: _propTypes.default.oneOf(['wheel']).isRequired
340
- }), _propTypes.default.shape({
341
- pointerMode: _propTypes.default.any,
342
- requiredKeys: _propTypes.default.array,
343
- type: _propTypes.default.oneOf(['pinch']).isRequired
344
- }), _propTypes.default.shape({
345
367
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
346
368
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
347
- type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
369
+ type: _propTypes.default.oneOf(['brush']).isRequired
348
370
  }), _propTypes.default.shape({
349
371
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
350
372
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -352,7 +374,15 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
352
374
  }), _propTypes.default.shape({
353
375
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
354
376
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
355
- type: _propTypes.default.oneOf(['brush']).isRequired
377
+ type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
378
+ }), _propTypes.default.shape({
379
+ pointerMode: _propTypes.default.any,
380
+ requiredKeys: _propTypes.default.array,
381
+ type: _propTypes.default.oneOf(['pinch']).isRequired
382
+ }), _propTypes.default.shape({
383
+ pointerMode: _propTypes.default.any,
384
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
385
+ type: _propTypes.default.oneOf(['wheel']).isRequired
356
386
  })]).isRequired)
357
387
  })
358
388
  } : void 0;
@@ -144,12 +144,21 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
144
144
  /**
145
145
  * The list of zoom data related to each axis.
146
146
  * Used to initialize the zoom in a specific configuration without controlling it.
147
+ *
148
+ * Each entry is either explicit zoom percentages (`{ axisId, start, end }`) or a
149
+ * range value (`{ axisId, value }`) resolved against the axis domain.
147
150
  */
148
- initialZoom: PropTypes.arrayOf(PropTypes.shape({
151
+ initialZoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
149
152
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
150
153
  end: PropTypes.number.isRequired,
151
154
  start: PropTypes.number.isRequired
152
- })),
155
+ }), PropTypes.shape({
156
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
157
+ value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.instanceOf(Date).isRequired), PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func, PropTypes.shape({
158
+ step: PropTypes.number,
159
+ unit: PropTypes.oneOf(['day', 'hour', 'microsecond', 'millisecond', 'minute', 'month', 'second', 'week', 'year']).isRequired
160
+ })])
161
+ })]).isRequired),
153
162
  /**
154
163
  * If `true`, a loading overlay is displayed.
155
164
  * @default false
@@ -279,11 +288,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
279
288
  */
280
289
  zAxis: PropTypes.arrayOf(PropTypes.shape({
281
290
  colorMap: PropTypes.oneOfType([PropTypes.shape({
282
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
283
- type: PropTypes.oneOf(['ordinal']).isRequired,
284
- unknownColor: PropTypes.string,
285
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
286
- }), PropTypes.shape({
287
291
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
288
292
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
289
293
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -292,12 +296,38 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
292
296
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
293
297
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
294
298
  type: PropTypes.oneOf(['piecewise']).isRequired
299
+ }), PropTypes.shape({
300
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
301
+ type: PropTypes.oneOf(['ordinal']).isRequired,
302
+ unknownColor: PropTypes.string,
303
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
295
304
  })]),
296
305
  data: PropTypes.array,
297
306
  dataKey: PropTypes.string,
298
307
  id: PropTypes.string,
299
308
  max: PropTypes.number,
300
309
  min: PropTypes.number,
310
+ sizeMap: PropTypes.oneOfType([PropTypes.shape({
311
+ interpolator: PropTypes.oneOf(['linear', 'log', 'sqrt']),
312
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
313
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
314
+ size: PropTypes.arrayOf(PropTypes.number.isRequired).isRequired,
315
+ type: PropTypes.oneOf(['continuous']).isRequired
316
+ }), PropTypes.shape({
317
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
318
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
319
+ size: PropTypes.func.isRequired,
320
+ type: PropTypes.oneOf(['continuous']).isRequired
321
+ }), PropTypes.shape({
322
+ sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
323
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
324
+ type: PropTypes.oneOf(['piecewise']).isRequired
325
+ }), PropTypes.shape({
326
+ sizes: PropTypes.arrayOf(PropTypes.number).isRequired,
327
+ type: PropTypes.oneOf(['ordinal']).isRequired,
328
+ unknownSize: PropTypes.number,
329
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
330
+ })]),
301
331
  valueGetter: PropTypes.func
302
332
  })),
303
333
  /**
@@ -313,6 +343,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
313
343
  */
314
344
  zoomInteractionConfig: PropTypes.shape({
315
345
  pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag', 'wheel']), PropTypes.shape({
346
+ allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
347
+ pointerMode: PropTypes.any,
348
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
349
+ type: PropTypes.oneOf(['wheel']).isRequired
350
+ }), PropTypes.shape({
316
351
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
317
352
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
318
353
  type: PropTypes.oneOf(['drag']).isRequired
@@ -320,24 +355,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
320
355
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
321
356
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
322
357
  type: PropTypes.oneOf(['pressAndDrag']).isRequired
323
- }), PropTypes.shape({
324
- allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
325
- pointerMode: PropTypes.any,
326
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
327
- type: PropTypes.oneOf(['wheel']).isRequired
328
358
  })]).isRequired),
329
359
  zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
330
- pointerMode: PropTypes.any,
331
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
332
- type: PropTypes.oneOf(['wheel']).isRequired
333
- }), PropTypes.shape({
334
- pointerMode: PropTypes.any,
335
- requiredKeys: PropTypes.array,
336
- type: PropTypes.oneOf(['pinch']).isRequired
337
- }), PropTypes.shape({
338
360
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
339
361
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
340
- type: PropTypes.oneOf(['tapAndDrag']).isRequired
362
+ type: PropTypes.oneOf(['brush']).isRequired
341
363
  }), PropTypes.shape({
342
364
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
343
365
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
@@ -345,7 +367,15 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
345
367
  }), PropTypes.shape({
346
368
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
347
369
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
348
- type: PropTypes.oneOf(['brush']).isRequired
370
+ type: PropTypes.oneOf(['tapAndDrag']).isRequired
371
+ }), PropTypes.shape({
372
+ pointerMode: PropTypes.any,
373
+ requiredKeys: PropTypes.array,
374
+ type: PropTypes.oneOf(['pinch']).isRequired
375
+ }), PropTypes.shape({
376
+ pointerMode: PropTypes.any,
377
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
378
+ type: PropTypes.oneOf(['wheel']).isRequired
349
379
  })]).isRequired)
350
380
  })
351
381
  } : void 0;
@@ -1,15 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { type SeriesId } from '@mui/x-charts/internals';
3
3
  import { type HeatmapCellProps } from "./HeatmapCell.mjs";
4
+ import type { CellPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.mjs";
4
5
  export interface HeatmapItemSlots {
5
6
  /**
6
7
  * The component that renders the heatmap cell.
7
8
  * @default HeatmapCell
8
9
  */
9
- cell?: React.ElementType;
10
+ cell?: React.ElementType<HeatmapCellProps & CellPropsOverrides>;
10
11
  }
11
12
  export interface HeatmapItemSlotProps {
12
- cell?: Partial<HeatmapCellProps>;
13
+ cell?: Partial<HeatmapCellProps> & CellPropsOverrides;
13
14
  }
14
15
  export interface HeatmapItemProps {
15
16
  seriesId: SeriesId;
@@ -1,15 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { type SeriesId } from '@mui/x-charts/internals';
3
3
  import { type HeatmapCellProps } from "./HeatmapCell.js";
4
+ import type { CellPropsOverrides } from "../models/chartsSlotsComponentsPropsPro.js";
4
5
  export interface HeatmapItemSlots {
5
6
  /**
6
7
  * The component that renders the heatmap cell.
7
8
  * @default HeatmapCell
8
9
  */
9
- cell?: React.ElementType;
10
+ cell?: React.ElementType<HeatmapCellProps & CellPropsOverrides>;
10
11
  }
11
12
  export interface HeatmapItemSlotProps {
12
- cell?: Partial<HeatmapCellProps>;
13
+ cell?: Partial<HeatmapCellProps> & CellPropsOverrides;
13
14
  }
14
15
  export interface HeatmapItemProps {
15
16
  seriesId: SeriesId;
@@ -52,6 +52,8 @@ function HeatmapItem(props) {
52
52
  ownerState,
53
53
  className: classes.cell
54
54
  });
55
+
56
+ // `useSlotProps` returns a loosely-typed object; the required `x/y/width/height` flow in via `...other`.
55
57
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Cell, (0, _extends2.default)({}, cellProps));
56
58
  }
57
59
  process.env.NODE_ENV !== "production" ? HeatmapItem.propTypes = {
@@ -44,6 +44,8 @@ function HeatmapItem(props) {
44
44
  ownerState,
45
45
  className: classes.cell
46
46
  });
47
+
48
+ // `useSlotProps` returns a loosely-typed object; the required `x/y/width/height` flow in via `...other`.
47
49
  return /*#__PURE__*/_jsx(Cell, _extends({}, cellProps));
48
50
  }
49
51
  process.env.NODE_ENV !== "production" ? HeatmapItem.propTypes = {
@@ -1,17 +1,18 @@
1
1
  import { type ChartsTooltipContainerProps, type ChartsTooltipClasses } from '@mui/x-charts/ChartsTooltip';
2
+ import type { TooltipPropsOverrides } from '@mui/x-charts/models';
2
3
  export interface HeatmapTooltipSlots {
3
4
  /**
4
5
  * Custom component for the tooltip popper.
5
6
  * @default ChartsTooltipRoot
6
7
  */
7
- tooltip?: React.ElementType<HeatmapTooltipProps>;
8
+ tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
8
9
  }
9
10
  export interface HeatmapTooltipSlotProps {
10
11
  /**
11
12
  * Custom component for the tooltip popper.
12
13
  * @default ChartsTooltipRoot
13
14
  */
14
- tooltip?: Partial<HeatmapTooltipProps>;
15
+ tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
15
16
  }
16
17
  export interface HeatmapTooltipClasses extends ChartsTooltipClasses {}
17
18
  export interface HeatmapTooltipContentClasses extends ChartsTooltipClasses {}
@@ -1,17 +1,18 @@
1
1
  import { type ChartsTooltipContainerProps, type ChartsTooltipClasses } from '@mui/x-charts/ChartsTooltip';
2
+ import type { TooltipPropsOverrides } from '@mui/x-charts/models';
2
3
  export interface HeatmapTooltipSlots {
3
4
  /**
4
5
  * Custom component for the tooltip popper.
5
6
  * @default ChartsTooltipRoot
6
7
  */
7
- tooltip?: React.ElementType<HeatmapTooltipProps>;
8
+ tooltip?: React.ElementType<HeatmapTooltipProps & TooltipPropsOverrides>;
8
9
  }
9
10
  export interface HeatmapTooltipSlotProps {
10
11
  /**
11
12
  * Custom component for the tooltip popper.
12
13
  * @default ChartsTooltipRoot
13
14
  */
14
- tooltip?: Partial<HeatmapTooltipProps>;
15
+ tooltip?: Partial<HeatmapTooltipProps> & TooltipPropsOverrides;
15
16
  }
16
17
  export interface HeatmapTooltipClasses extends ChartsTooltipClasses {}
17
18
  export interface HeatmapTooltipContentClasses extends ChartsTooltipClasses {}