@mui/x-charts-pro 8.4.0 → 8.5.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 (138) hide show
  1. package/BarChartPro/BarChartPro.d.ts +13 -5
  2. package/BarChartPro/BarChartPro.js +19 -1
  3. package/CHANGELOG.md +103 -0
  4. package/ChartContainerPro/ChartContainerPro.d.ts +0 -1
  5. package/ChartContainerPro/ChartProApi.d.ts +26 -0
  6. package/ChartContainerPro/ChartProApi.js +5 -0
  7. package/ChartContainerPro/index.d.ts +2 -1
  8. package/ChartContainerPro/index.js +11 -0
  9. package/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
  10. package/ChartDataProviderPro/ChartDataProviderPro.js +19 -3
  11. package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
  12. package/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
  13. package/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
  14. package/ChartZoomSlider/internals/ChartAxisZoomSlider.js +25 -315
  15. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +24 -0
  16. package/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +251 -0
  17. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
  18. package/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +160 -0
  19. package/ChartZoomSlider/internals/constants.d.ts +5 -0
  20. package/ChartZoomSlider/internals/constants.js +11 -0
  21. package/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
  22. package/ChartZoomSlider/internals/zoom-utils.js +48 -0
  23. package/ChartsToolbarPro/ChartsToolbarPro.d.ts +8 -1
  24. package/ChartsToolbarPro/ChartsToolbarPro.js +42 -8
  25. package/ChartsToolbarPro/ChartsToolbarZoomInButton.d.ts +16 -0
  26. package/ChartsToolbarPro/ChartsToolbarZoomInButton.js +56 -0
  27. package/ChartsToolbarPro/ChartsToolbarZoomOutButton.d.ts +16 -0
  28. package/ChartsToolbarPro/ChartsToolbarZoomOutButton.js +56 -0
  29. package/ChartsToolbarPro/index.d.ts +3 -1
  30. package/ChartsToolbarPro/index.js +22 -0
  31. package/FunnelChart/FunnelChart.d.ts +2 -1
  32. package/FunnelChart/FunnelChart.js +2 -20
  33. package/FunnelChart/FunnelChart.plugins.d.ts +4 -0
  34. package/FunnelChart/FunnelChart.plugins.js +9 -0
  35. package/FunnelChart/funnelSlots.types.d.ts +4 -3
  36. package/FunnelChart/useFunnelChartProps.d.ts +2 -1
  37. package/FunnelChart/useFunnelChartProps.js +3 -1
  38. package/Heatmap/Heatmap.d.ts +17 -4
  39. package/Heatmap/Heatmap.js +56 -22
  40. package/Heatmap/Heatmap.plugins.d.ts +2 -1
  41. package/Heatmap/Heatmap.plugins.js +2 -1
  42. package/LineChartPro/LineChartPro.d.ts +13 -5
  43. package/LineChartPro/LineChartPro.js +19 -1
  44. package/RadarChartPro/RadarChartPro.d.ts +15 -0
  45. package/RadarChartPro/RadarChartPro.js +202 -0
  46. package/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
  47. package/RadarChartPro/RadarChartPro.plugins.js +9 -0
  48. package/RadarChartPro/index.d.ts +1 -0
  49. package/RadarChartPro/index.js +16 -0
  50. package/ScatterChartPro/ScatterChartPro.d.ts +13 -5
  51. package/ScatterChartPro/ScatterChartPro.js +19 -1
  52. package/context/index.d.ts +1 -0
  53. package/context/index.js +16 -0
  54. package/context/useChartApiContext.d.ts +9 -0
  55. package/context/useChartApiContext.js +17 -0
  56. package/esm/BarChartPro/BarChartPro.d.ts +13 -5
  57. package/esm/BarChartPro/BarChartPro.js +19 -1
  58. package/esm/ChartContainerPro/ChartContainerPro.d.ts +0 -1
  59. package/esm/ChartContainerPro/ChartProApi.d.ts +26 -0
  60. package/esm/ChartContainerPro/ChartProApi.js +1 -0
  61. package/esm/ChartContainerPro/index.d.ts +2 -1
  62. package/esm/ChartContainerPro/index.js +2 -1
  63. package/esm/ChartDataProviderPro/ChartDataProviderPro.d.ts +11 -1
  64. package/esm/ChartDataProviderPro/ChartDataProviderPro.js +20 -4
  65. package/esm/ChartDataProviderPro/useChartDataProviderProProps.d.ts +2 -0
  66. package/esm/ChartDataProviderPro/useChartDataProviderProProps.js +5 -1
  67. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.d.ts +1 -3
  68. package/esm/ChartZoomSlider/internals/ChartAxisZoomSlider.js +19 -306
  69. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.d.ts +24 -0
  70. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.js +243 -0
  71. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.d.ts +18 -0
  72. package/esm/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.js +152 -0
  73. package/esm/ChartZoomSlider/internals/constants.d.ts +5 -0
  74. package/esm/ChartZoomSlider/internals/constants.js +5 -0
  75. package/esm/ChartZoomSlider/internals/zoom-utils.d.ts +4 -0
  76. package/esm/ChartZoomSlider/internals/zoom-utils.js +40 -0
  77. package/esm/ChartsToolbarPro/ChartsToolbarPro.d.ts +8 -1
  78. package/esm/ChartsToolbarPro/ChartsToolbarPro.js +42 -9
  79. package/esm/ChartsToolbarPro/ChartsToolbarZoomInButton.d.ts +16 -0
  80. package/esm/ChartsToolbarPro/ChartsToolbarZoomInButton.js +50 -0
  81. package/esm/ChartsToolbarPro/ChartsToolbarZoomOutButton.d.ts +16 -0
  82. package/esm/ChartsToolbarPro/ChartsToolbarZoomOutButton.js +50 -0
  83. package/esm/ChartsToolbarPro/index.d.ts +3 -1
  84. package/esm/ChartsToolbarPro/index.js +3 -1
  85. package/esm/FunnelChart/FunnelChart.d.ts +2 -1
  86. package/esm/FunnelChart/FunnelChart.js +2 -20
  87. package/esm/FunnelChart/FunnelChart.plugins.d.ts +4 -0
  88. package/esm/FunnelChart/FunnelChart.plugins.js +3 -0
  89. package/esm/FunnelChart/funnelSlots.types.d.ts +4 -3
  90. package/esm/FunnelChart/useFunnelChartProps.d.ts +2 -1
  91. package/esm/FunnelChart/useFunnelChartProps.js +3 -1
  92. package/esm/Heatmap/Heatmap.d.ts +17 -4
  93. package/esm/Heatmap/Heatmap.js +56 -22
  94. package/esm/Heatmap/Heatmap.plugins.d.ts +2 -1
  95. package/esm/Heatmap/Heatmap.plugins.js +2 -1
  96. package/esm/LineChartPro/LineChartPro.d.ts +13 -5
  97. package/esm/LineChartPro/LineChartPro.js +19 -1
  98. package/esm/RadarChartPro/RadarChartPro.d.ts +15 -0
  99. package/esm/RadarChartPro/RadarChartPro.js +195 -0
  100. package/esm/RadarChartPro/RadarChartPro.plugins.d.ts +4 -0
  101. package/esm/RadarChartPro/RadarChartPro.plugins.js +3 -0
  102. package/esm/RadarChartPro/index.d.ts +1 -0
  103. package/esm/RadarChartPro/index.js +1 -0
  104. package/esm/ScatterChartPro/ScatterChartPro.d.ts +13 -5
  105. package/esm/ScatterChartPro/ScatterChartPro.js +19 -1
  106. package/esm/context/index.d.ts +1 -0
  107. package/esm/context/index.js +1 -0
  108. package/esm/context/useChartApiContext.d.ts +9 -0
  109. package/esm/context/useChartApiContext.js +11 -0
  110. package/esm/hooks/index.d.ts +2 -1
  111. package/esm/hooks/index.js +2 -1
  112. package/esm/index.d.ts +2 -1
  113. package/esm/index.js +2 -1
  114. package/esm/internals/material/index.d.ts +1 -0
  115. package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
  116. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
  117. package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +15 -1
  118. package/esm/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
  119. package/esm/models/index.d.ts +1 -1
  120. package/hooks/index.d.ts +2 -1
  121. package/hooks/index.js +21 -10
  122. package/index.d.ts +2 -1
  123. package/index.js +12 -1
  124. package/internals/material/index.d.ts +1 -0
  125. package/internals/plugins/useChartProZoom/useChartProZoom.js +10 -0
  126. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +358 -0
  127. package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +16 -2
  128. package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +7 -0
  129. package/models/index.d.ts +1 -1
  130. package/package.json +5 -5
  131. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
  132. package/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -36
  133. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
  134. package/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -36
  135. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.d.ts +0 -13
  136. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomInButton.js +0 -29
  137. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.d.ts +0 -13
  138. package/esm/ChartsToolbarPro/internal/ChartsToolbarZoomOutButton.js +0 -29
@@ -8,9 +8,11 @@ import useId from '@mui/utils/useId';
8
8
  import { interpolateRgbBasis } from '@mui/x-charts-vendor/d3-interpolate';
9
9
  import { ChartsAxis } from '@mui/x-charts/ChartsAxis';
10
10
  import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
11
+ import { ChartsWrapper } from '@mui/x-charts/internals';
11
12
  import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
12
13
  import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
13
14
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '@mui/x-charts/constants';
15
+ import { ChartsLegend, ContinuousColorLegend } from '@mui/x-charts/ChartsLegend';
14
16
  import { HeatmapPlot } from "./HeatmapPlot.js";
15
17
  import { seriesConfig as heatmapSeriesConfig } from "./seriesConfig/index.js";
16
18
  import { HeatmapTooltip } from "./HeatmapTooltip/index.js";
@@ -38,6 +40,7 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
38
40
  name: 'MuiHeatmap'
39
41
  });
40
42
  const {
43
+ apiRef,
41
44
  xAxis,
42
45
  yAxis,
43
46
  zAxis,
@@ -54,7 +57,8 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
54
57
  slotProps,
55
58
  loading,
56
59
  highlightedItem,
57
- onHighlightChange
60
+ onHighlightChange,
61
+ hideLegend = true
58
62
  } = props;
59
63
  const id = useId();
60
64
  const clipPathId = `${id}-clip-path`;
@@ -82,8 +86,14 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
82
86
  color: defaultColorMap
83
87
  }
84
88
  }], [zAxis]);
85
- const Tooltip = props.slots?.tooltip ?? HeatmapTooltip;
86
- return /*#__PURE__*/_jsxs(ChartDataProviderPro, {
89
+ const chartsWrapperProps = {
90
+ sx,
91
+ legendPosition: props.slotProps?.legend?.position,
92
+ legendDirection: props.slotProps?.legend?.direction
93
+ };
94
+ const Tooltip = slots?.tooltip ?? HeatmapTooltip;
95
+ return /*#__PURE__*/_jsx(ChartDataProviderPro, {
96
+ apiRef: apiRef,
87
97
  seriesConfig: seriesConfig,
88
98
  series: series.map(s => _extends({
89
99
  type: 'heatmap'
@@ -101,26 +111,42 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
101
111
  onHighlightChange: onHighlightChange,
102
112
  onAxisClick: onAxisClick,
103
113
  plugins: HEATMAP_PLUGINS,
104
- children: [/*#__PURE__*/_jsxs(ChartsSurface, {
105
- ref: ref,
106
- sx: sx,
107
- children: [/*#__PURE__*/_jsxs("g", {
108
- clipPath: `url(#${clipPathId})`,
109
- children: [/*#__PURE__*/_jsx(HeatmapPlot, {
110
- slots: slots,
111
- slotProps: slotProps
112
- }), /*#__PURE__*/_jsx(ChartsOverlay, {
113
- loading: loading,
114
+ children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
115
+ children: [!hideLegend && /*#__PURE__*/_jsx(ChartsLegend, {
116
+ slots: _extends({}, slots, {
117
+ legend: slots?.legend ?? ContinuousColorLegend
118
+ }),
119
+ slotProps: {
120
+ legend: _extends({
121
+ labelPosition: 'extremes'
122
+ }, slotProps?.legend)
123
+ },
124
+ sx: slotProps?.legend?.direction === 'vertical' ? {
125
+ height: 150
126
+ } : {
127
+ width: '50%'
128
+ }
129
+ }), /*#__PURE__*/_jsxs(ChartsSurface, {
130
+ ref: ref,
131
+ sx: sx,
132
+ children: [/*#__PURE__*/_jsxs("g", {
133
+ clipPath: `url(#${clipPathId})`,
134
+ children: [/*#__PURE__*/_jsx(HeatmapPlot, {
135
+ slots: slots,
136
+ slotProps: slotProps
137
+ }), /*#__PURE__*/_jsx(ChartsOverlay, {
138
+ loading: loading,
139
+ slots: slots,
140
+ slotProps: slotProps
141
+ })]
142
+ }), /*#__PURE__*/_jsx(ChartsAxis, {
114
143
  slots: slots,
115
144
  slotProps: slotProps
116
- })]
117
- }), /*#__PURE__*/_jsx(ChartsAxis, {
118
- slots: slots,
119
- slotProps: slotProps
120
- }), /*#__PURE__*/_jsx(ChartsClipPath, {
121
- id: clipPathId
122
- }), children]
123
- }), !loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps?.tooltip))]
145
+ }), /*#__PURE__*/_jsx(ChartsClipPath, {
146
+ id: clipPathId
147
+ }), children]
148
+ }), !loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps?.tooltip))]
149
+ }))
124
150
  });
125
151
  });
126
152
  if (process.env.NODE_ENV !== "production") Heatmap.displayName = "Heatmap";
@@ -130,7 +156,10 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
130
156
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
131
157
  // ----------------------------------------------------------------------
132
158
  apiRef: PropTypes.shape({
133
- current: PropTypes.object
159
+ current: PropTypes.shape({
160
+ exportAsImage: PropTypes.func.isRequired,
161
+ exportAsPrint: PropTypes.func.isRequired
162
+ })
134
163
  }),
135
164
  className: PropTypes.string,
136
165
  /**
@@ -153,6 +182,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
153
182
  * The height of the chart in px. If not defined, it takes the height of the parent element.
154
183
  */
155
184
  height: PropTypes.number,
185
+ /**
186
+ * If `true`, the legend is not rendered.
187
+ * @default true
188
+ */
189
+ hideLegend: PropTypes.bool,
156
190
  /**
157
191
  * The highlighted item.
158
192
  * Used when the highlight is controlled.
@@ -1,3 +1,4 @@
1
1
  import { UseChartZAxisSignature, UseChartCartesianAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
2
- export type HeatmapPluginsSignatures = [UseChartZAxisSignature, UseChartCartesianAxisSignature<'heatmap'>, UseChartInteractionSignature, UseChartHighlightSignature];
2
+ import { UseChartProExportSignature } from "../internals/plugins/useChartProExport/index.js";
3
+ export type HeatmapPluginsSignatures = [UseChartZAxisSignature, UseChartCartesianAxisSignature<'heatmap'>, UseChartInteractionSignature, UseChartHighlightSignature, UseChartProExportSignature];
3
4
  export declare const HEATMAP_PLUGINS: ConvertSignaturesIntoPlugins<HeatmapPluginsSignatures>;
@@ -1,2 +1,3 @@
1
1
  import { useChartZAxis, useChartCartesianAxis, useChartInteraction, useChartHighlight } from '@mui/x-charts/internals';
2
- export const HEATMAP_PLUGINS = [useChartZAxis, useChartCartesianAxis, useChartInteraction, useChartHighlight];
2
+ import { useChartProExport } from "../internals/plugins/useChartProExport/index.js";
3
+ export const HEATMAP_PLUGINS = [useChartZAxis, useChartCartesianAxis, useChartInteraction, useChartHighlight, useChartProExport];
@@ -1,13 +1,21 @@
1
1
  import * as React from 'react';
2
- import { LineChartProps } from '@mui/x-charts/LineChart';
2
+ import { LineChartProps, LineChartSlots, LineChartSlotProps } from '@mui/x-charts/LineChart';
3
+ import { ChartsSlotPropsPro, ChartsSlotsPro } from "../internals/material/index.js";
3
4
  import { ChartContainerProProps } from "../ChartContainerPro/index.js";
4
5
  import { LineChartProPluginsSignatures } from "./LineChartPro.plugins.js";
5
- export interface LineChartProProps extends Omit<LineChartProps, 'apiRef'>, Omit<ChartContainerProProps<'line', LineChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig'> {
6
+ export interface LineChartProSlots extends LineChartSlots, Partial<ChartsSlotsPro> {}
7
+ export interface LineChartProSlotProps extends LineChartSlotProps, Partial<ChartsSlotPropsPro> {}
8
+ export interface LineChartProProps extends Omit<LineChartProps, 'apiRef' | 'slots' | 'slotProps'>, Omit<ChartContainerProProps<'line', LineChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig' | 'slots' | 'slotProps'> {
6
9
  /**
7
- * If true, shows the default chart toolbar.
8
- * @default false
10
+ * Overridable component slots.
11
+ * @default {}
9
12
  */
10
- showToolbar?: boolean;
13
+ slots?: LineChartProSlots;
14
+ /**
15
+ * The props used for each component slot.
16
+ * @default {}
17
+ */
18
+ slotProps?: LineChartProSlotProps;
11
19
  }
12
20
  /**
13
21
  * Demos:
@@ -72,9 +72,10 @@ const LineChartPro = /*#__PURE__*/React.forwardRef(function LineChartPro(inProps
72
72
  plugins: LINE_CHART_PRO_PLUGINS
73
73
  }), ref);
74
74
  const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
75
+ const Toolbar = props.slots?.toolbar ?? ChartsToolbarPro;
75
76
  return /*#__PURE__*/_jsx(ChartDataProviderPro, _extends({}, chartDataProviderProProps, {
76
77
  children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
77
- children: [showToolbar ? /*#__PURE__*/_jsx(ChartsToolbarPro, {}) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
78
+ children: [showToolbar ? /*#__PURE__*/_jsx(Toolbar, {}) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
78
79
  children: [/*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
79
80
  children: [/*#__PURE__*/_jsx(AreaPlot, _extends({}, areaPlotProps)), /*#__PURE__*/_jsx(LinePlot, _extends({}, linePlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
80
81
  })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartZoomSlider, {}), /*#__PURE__*/_jsx("g", {
@@ -95,6 +96,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
95
96
  current: PropTypes.shape({
96
97
  exportAsImage: PropTypes.func.isRequired,
97
98
  exportAsPrint: PropTypes.func.isRequired,
99
+ setAxisZoomData: PropTypes.func.isRequired,
98
100
  setZoomData: PropTypes.func.isRequired
99
101
  })
100
102
  }),
@@ -317,6 +319,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
317
319
  panning: PropTypes.bool,
318
320
  slider: PropTypes.shape({
319
321
  enabled: PropTypes.bool,
322
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
320
323
  size: PropTypes.number
321
324
  }),
322
325
  step: PropTypes.number
@@ -381,6 +384,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
381
384
  panning: PropTypes.bool,
382
385
  slider: PropTypes.shape({
383
386
  enabled: PropTypes.bool,
387
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
384
388
  size: PropTypes.number
385
389
  }),
386
390
  step: PropTypes.number
@@ -440,6 +444,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
440
444
  panning: PropTypes.bool,
441
445
  slider: PropTypes.shape({
442
446
  enabled: PropTypes.bool,
447
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
443
448
  size: PropTypes.number
444
449
  }),
445
450
  step: PropTypes.number
@@ -499,6 +504,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
499
504
  panning: PropTypes.bool,
500
505
  slider: PropTypes.shape({
501
506
  enabled: PropTypes.bool,
507
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
502
508
  size: PropTypes.number
503
509
  }),
504
510
  step: PropTypes.number
@@ -558,6 +564,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
558
564
  panning: PropTypes.bool,
559
565
  slider: PropTypes.shape({
560
566
  enabled: PropTypes.bool,
567
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
561
568
  size: PropTypes.number
562
569
  }),
563
570
  step: PropTypes.number
@@ -617,6 +624,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
617
624
  panning: PropTypes.bool,
618
625
  slider: PropTypes.shape({
619
626
  enabled: PropTypes.bool,
627
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
620
628
  size: PropTypes.number
621
629
  }),
622
630
  step: PropTypes.number
@@ -676,6 +684,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
676
684
  panning: PropTypes.bool,
677
685
  slider: PropTypes.shape({
678
686
  enabled: PropTypes.bool,
687
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
679
688
  size: PropTypes.number
680
689
  }),
681
690
  step: PropTypes.number
@@ -735,6 +744,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
735
744
  panning: PropTypes.bool,
736
745
  slider: PropTypes.shape({
737
746
  enabled: PropTypes.bool,
747
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
738
748
  size: PropTypes.number
739
749
  }),
740
750
  step: PropTypes.number
@@ -806,6 +816,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
806
816
  panning: PropTypes.bool,
807
817
  slider: PropTypes.shape({
808
818
  enabled: PropTypes.bool,
819
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
809
820
  size: PropTypes.number
810
821
  }),
811
822
  step: PropTypes.number
@@ -869,6 +880,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
869
880
  panning: PropTypes.bool,
870
881
  slider: PropTypes.shape({
871
882
  enabled: PropTypes.bool,
883
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
872
884
  size: PropTypes.number
873
885
  }),
874
886
  step: PropTypes.number
@@ -927,6 +939,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
927
939
  panning: PropTypes.bool,
928
940
  slider: PropTypes.shape({
929
941
  enabled: PropTypes.bool,
942
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
930
943
  size: PropTypes.number
931
944
  }),
932
945
  step: PropTypes.number
@@ -985,6 +998,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
985
998
  panning: PropTypes.bool,
986
999
  slider: PropTypes.shape({
987
1000
  enabled: PropTypes.bool,
1001
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
988
1002
  size: PropTypes.number
989
1003
  }),
990
1004
  step: PropTypes.number
@@ -1043,6 +1057,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1043
1057
  panning: PropTypes.bool,
1044
1058
  slider: PropTypes.shape({
1045
1059
  enabled: PropTypes.bool,
1060
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1046
1061
  size: PropTypes.number
1047
1062
  }),
1048
1063
  step: PropTypes.number
@@ -1101,6 +1116,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1101
1116
  panning: PropTypes.bool,
1102
1117
  slider: PropTypes.shape({
1103
1118
  enabled: PropTypes.bool,
1119
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1104
1120
  size: PropTypes.number
1105
1121
  }),
1106
1122
  step: PropTypes.number
@@ -1159,6 +1175,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1159
1175
  panning: PropTypes.bool,
1160
1176
  slider: PropTypes.shape({
1161
1177
  enabled: PropTypes.bool,
1178
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1162
1179
  size: PropTypes.number
1163
1180
  }),
1164
1181
  step: PropTypes.number
@@ -1217,6 +1234,7 @@ process.env.NODE_ENV !== "production" ? LineChartPro.propTypes = {
1217
1234
  panning: PropTypes.bool,
1218
1235
  slider: PropTypes.shape({
1219
1236
  enabled: PropTypes.bool,
1237
+ showTooltip: PropTypes.oneOf(['always', 'hover', 'never']),
1220
1238
  size: PropTypes.number
1221
1239
  }),
1222
1240
  step: PropTypes.number
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { RadarChartProps, RadarDataProviderProps } from '@mui/x-charts/RadarChart';
3
+ import { RadarChartProPluginsSignatures } from "./RadarChartPro.plugins.js";
4
+ export interface RadarChartProProps extends Omit<RadarChartProps, 'apiRef'>, Omit<RadarDataProviderProps<RadarChartProPluginsSignatures>, 'plugins' | 'seriesConfig' | 'slots' | 'slotProps'> {}
5
+ /**
6
+ * Demos:
7
+ *
8
+ * - [Radar Chart](https://mui.com/x/react-charts/radar/)
9
+ *
10
+ * API:
11
+ *
12
+ * - [RadarChart API](https://mui.com/x/api/charts/radar-chart/)
13
+ */
14
+ declare const RadarChartPro: React.ForwardRefExoticComponent<RadarChartProProps & React.RefAttributes<SVGSVGElement>>;
15
+ export { RadarChartPro };
@@ -0,0 +1,195 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { RadarAxisHighlight, RadarDataProvider, RadarGrid, RadarMetricLabels, RadarSeriesArea, RadarSeriesMarks } from '@mui/x-charts/RadarChart';
5
+ import { useThemeProps } from '@mui/material/styles';
6
+ import { useRadarChartProps, ChartsWrapper } from '@mui/x-charts/internals';
7
+ import { ChartsLegend } from '@mui/x-charts/ChartsLegend';
8
+ import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
9
+ import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
10
+ import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
11
+ import { RADAR_CHART_PRO_PLUGINS } from "./RadarChartPro.plugins.js";
12
+ import { ChartsToolbarPro } from "../ChartsToolbarPro/index.js";
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ /**
15
+ * Demos:
16
+ *
17
+ * - [Radar Chart](https://mui.com/x/react-charts/radar/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [RadarChart API](https://mui.com/x/api/charts/radar-chart/)
22
+ */
23
+ const RadarChartPro = /*#__PURE__*/React.forwardRef(function RadarChartPro(inProps, ref) {
24
+ const props = useThemeProps({
25
+ props: inProps,
26
+ name: 'MuiRadarChartPro'
27
+ });
28
+ const {
29
+ chartsWrapperProps,
30
+ chartsSurfaceProps,
31
+ radarDataProviderProps,
32
+ radarGrid,
33
+ overlayProps,
34
+ legendProps,
35
+ highlight,
36
+ children
37
+ } = useRadarChartProps(props);
38
+ const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
39
+ const Toolbar = props.slots?.toolbar ?? ChartsToolbarPro;
40
+ const radarDataProviderProProps = _extends({}, radarDataProviderProps, {
41
+ apiRef: radarDataProviderProps.apiRef,
42
+ plugins: RADAR_CHART_PRO_PLUGINS
43
+ });
44
+ return /*#__PURE__*/_jsx(RadarDataProvider, _extends({}, radarDataProviderProProps, {
45
+ children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
46
+ children: [props.showToolbar ? /*#__PURE__*/_jsx(Toolbar, {}) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
47
+ ref: ref,
48
+ children: [/*#__PURE__*/_jsx(RadarGrid, _extends({}, radarGrid)), /*#__PURE__*/_jsx(RadarMetricLabels, {}), /*#__PURE__*/_jsx(RadarSeriesArea, {}), highlight === 'axis' && /*#__PURE__*/_jsx(RadarAxisHighlight, {}), /*#__PURE__*/_jsx(RadarSeriesMarks, {}), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), children]
49
+ })), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip))]
50
+ }))
51
+ }));
52
+ });
53
+ if (process.env.NODE_ENV !== "production") RadarChartPro.displayName = "RadarChartPro";
54
+ process.env.NODE_ENV !== "production" ? RadarChartPro.propTypes = {
55
+ // ----------------------------- Warning --------------------------------
56
+ // | These PropTypes are generated from the TypeScript type definitions |
57
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
58
+ // ----------------------------------------------------------------------
59
+ apiRef: PropTypes.shape({
60
+ current: PropTypes.shape({
61
+ exportAsImage: PropTypes.func.isRequired,
62
+ exportAsPrint: PropTypes.func.isRequired
63
+ })
64
+ }),
65
+ className: PropTypes.string,
66
+ /**
67
+ * Color palette used to colorize multiple series.
68
+ * @default rainbowSurgePalette
69
+ */
70
+ colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
71
+ desc: PropTypes.string,
72
+ /**
73
+ * If `true`, the charts will not listen to the mouse move event.
74
+ * It might break interactive features, but will improve performance.
75
+ * @default false
76
+ */
77
+ disableAxisListener: PropTypes.bool,
78
+ /**
79
+ * The number of divisions in the radar grid.
80
+ * @default 5
81
+ */
82
+ divisions: PropTypes.number,
83
+ /**
84
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
85
+ */
86
+ height: PropTypes.number,
87
+ /**
88
+ * If `true`, the legend is not rendered.
89
+ */
90
+ hideLegend: PropTypes.bool,
91
+ /**
92
+ * Indicates if the chart should highlight items per axis or per series.
93
+ * @default 'axis'
94
+ */
95
+ highlight: PropTypes.oneOf(['axis', 'none', 'series']),
96
+ /**
97
+ * The highlighted item.
98
+ * Used when the highlight is controlled.
99
+ */
100
+ highlightedItem: PropTypes.shape({
101
+ dataIndex: PropTypes.number,
102
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
103
+ }),
104
+ /**
105
+ * This prop is used to help implement the accessibility logic.
106
+ * If you don't provide this prop. It falls back to a randomly generated id.
107
+ */
108
+ id: PropTypes.string,
109
+ /**
110
+ * If `true`, a loading overlay is displayed.
111
+ * @default false
112
+ */
113
+ loading: PropTypes.bool,
114
+ /**
115
+ * Localized text for chart components.
116
+ */
117
+ localeText: PropTypes.object,
118
+ /**
119
+ * The margin between the SVG and the drawing area.
120
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
121
+ *
122
+ * Accepts a `number` to be used on all sides or an object with the optional properties: `top`, `bottom`, `left`, and `right`.
123
+ */
124
+ margin: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
125
+ bottom: PropTypes.number,
126
+ left: PropTypes.number,
127
+ right: PropTypes.number,
128
+ top: PropTypes.number
129
+ })]),
130
+ /**
131
+ * The callback fired when the highlighted item changes.
132
+ *
133
+ * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
134
+ */
135
+ onHighlightChange: PropTypes.func,
136
+ /**
137
+ * The configuration of the radar scales.
138
+ */
139
+ radar: PropTypes.shape({
140
+ labelFormatter: PropTypes.func,
141
+ labelGap: PropTypes.number,
142
+ max: PropTypes.number,
143
+ metrics: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.arrayOf(PropTypes.shape({
144
+ max: PropTypes.number,
145
+ min: PropTypes.number,
146
+ name: PropTypes.string.isRequired
147
+ }))]).isRequired,
148
+ startAngle: PropTypes.number
149
+ }).isRequired,
150
+ /**
151
+ * The series to display in the bar chart.
152
+ * An array of [[RadarSeriesType]] objects.
153
+ */
154
+ series: PropTypes.arrayOf(PropTypes.object).isRequired,
155
+ /**
156
+ * The grid shape.
157
+ * @default 'sharp'
158
+ */
159
+ shape: PropTypes.oneOf(['circular', 'sharp']),
160
+ /**
161
+ * If true, shows the default chart toolbar.
162
+ * @default false
163
+ */
164
+ showToolbar: PropTypes.bool,
165
+ /**
166
+ * If `true`, animations are skipped.
167
+ * If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
168
+ */
169
+ skipAnimation: PropTypes.bool,
170
+ /**
171
+ * The props used for each component slot.
172
+ * @default {}
173
+ */
174
+ slotProps: PropTypes.object,
175
+ /**
176
+ * Overridable component slots.
177
+ * @default {}
178
+ */
179
+ slots: PropTypes.object,
180
+ /**
181
+ * Get stripe fill color. Set it to `null` to remove stripes
182
+ * @param {number} index The index of the stripe band.
183
+ * @returns {string} The color to fill the stripe.
184
+ * @default (index) => index % 2 === 1 ? (theme.vars || theme).palette.text.secondary : 'none'
185
+ */
186
+ stripeColor: PropTypes.func,
187
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
188
+ theme: PropTypes.oneOf(['dark', 'light']),
189
+ title: PropTypes.string,
190
+ /**
191
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
192
+ */
193
+ width: PropTypes.number
194
+ } : void 0;
195
+ export { RadarChartPro };
@@ -0,0 +1,4 @@
1
+ import { ConvertSignaturesIntoPlugins, UseChartHighlightSignature, UseChartInteractionSignature, UseChartPolarAxisSignature } from '@mui/x-charts/internals';
2
+ import { UseChartProExportSignature } from "../internals/plugins/useChartProExport/index.js";
3
+ export type RadarChartProPluginsSignatures = [UseChartPolarAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, UseChartProExportSignature];
4
+ export declare const RADAR_CHART_PRO_PLUGINS: ConvertSignaturesIntoPlugins<RadarChartProPluginsSignatures>;
@@ -0,0 +1,3 @@
1
+ import { useChartHighlight, useChartInteraction, useChartPolarAxis } from '@mui/x-charts/internals';
2
+ import { useChartProExport } from "../internals/plugins/useChartProExport/index.js";
3
+ export const RADAR_CHART_PRO_PLUGINS = [useChartPolarAxis, useChartInteraction, useChartHighlight, useChartProExport];
@@ -0,0 +1 @@
1
+ export * from "./RadarChartPro.js";
@@ -0,0 +1 @@
1
+ export * from "./RadarChartPro.js";
@@ -1,13 +1,21 @@
1
1
  import * as React from 'react';
2
- import { ScatterChartProps } from '@mui/x-charts/ScatterChart';
2
+ import { ScatterChartProps, ScatterChartSlotProps, ScatterChartSlots } from '@mui/x-charts/ScatterChart';
3
+ import { ChartsSlotPropsPro, ChartsSlotsPro } from "../internals/material/index.js";
3
4
  import { ChartContainerProProps } from "../ChartContainerPro/ChartContainerPro.js";
4
5
  import { ScatterChartProPluginsSignatures } from "./ScatterChartPro.plugins.js";
5
- export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef'>, Omit<ChartContainerProProps<'scatter', ScatterChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig' | 'onItemClick'> {
6
+ export interface ScatterChartProSlots extends ScatterChartSlots, Partial<ChartsSlotsPro> {}
7
+ export interface ScatterChartProSlotProps extends ScatterChartSlotProps, Partial<ChartsSlotPropsPro> {}
8
+ export interface ScatterChartProProps extends Omit<ScatterChartProps, 'apiRef' | 'slots' | 'slotProps'>, Omit<ChartContainerProProps<'scatter', ScatterChartProPluginsSignatures>, 'series' | 'plugins' | 'seriesConfig' | 'onItemClick' | 'slots' | 'slotProps'> {
6
9
  /**
7
- * If true, shows the default chart toolbar.
8
- * @default false
10
+ * Overridable component slots.
11
+ * @default {}
9
12
  */
10
- showToolbar?: boolean;
13
+ slots?: ScatterChartProSlots;
14
+ /**
15
+ * The props used for each component slot.
16
+ * @default {}
17
+ */
18
+ slotProps?: ScatterChartProSlotProps;
11
19
  }
12
20
  /**
13
21
  * Demos: