@mui/x-charts-premium 9.1.0 → 9.3.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 (110) hide show
  1. package/BarChartPremium/BarChartPremium.d.mts +4 -1
  2. package/BarChartPremium/BarChartPremium.d.ts +4 -1
  3. package/BarChartPremium/BarChartPremium.js +51 -38
  4. package/BarChartPremium/BarChartPremium.mjs +52 -39
  5. package/BarChartPremium/BarPlotPremium.d.mts +37 -0
  6. package/BarChartPremium/BarPlotPremium.d.ts +37 -0
  7. package/BarChartPremium/BarPlotPremium.js +78 -0
  8. package/BarChartPremium/BarPlotPremium.mjs +72 -0
  9. package/BarChartPremium/RangeBar/useUtilityClasses.d.mts +1 -1
  10. package/BarChartPremium/RangeBar/useUtilityClasses.d.ts +1 -1
  11. package/BarChartPremium/index.d.mts +1 -0
  12. package/BarChartPremium/index.d.ts +1 -0
  13. package/BarChartPremium/index.js +12 -0
  14. package/BarChartPremium/index.mjs +1 -0
  15. package/BarChartPremium/useBarChartPremiumProps.d.mts +2 -1
  16. package/BarChartPremium/useBarChartPremiumProps.d.ts +2 -1
  17. package/BarChartPremium/useBarChartPremiumProps.js +39 -5
  18. package/BarChartPremium/useBarChartPremiumProps.mjs +39 -5
  19. package/BarChartPremium/webgl/BarWebGLPlot.d.mts +10 -0
  20. package/BarChartPremium/webgl/BarWebGLPlot.d.ts +10 -0
  21. package/BarChartPremium/webgl/BarWebGLPlot.js +81 -0
  22. package/BarChartPremium/webgl/BarWebGLPlot.mjs +75 -0
  23. package/BarChartPremium/webgl/BarWebGLProgram.d.mts +19 -0
  24. package/BarChartPremium/webgl/BarWebGLProgram.d.ts +19 -0
  25. package/BarChartPremium/webgl/BarWebGLProgram.js +107 -0
  26. package/BarChartPremium/webgl/BarWebGLProgram.mjs +100 -0
  27. package/BarChartPremium/webgl/shaders.d.mts +2 -0
  28. package/BarChartPremium/webgl/shaders.d.ts +2 -0
  29. package/BarChartPremium/webgl/shaders.js +69 -0
  30. package/BarChartPremium/webgl/shaders.mjs +63 -0
  31. package/BarChartPremium/webgl/useBarWebGLPlotData.d.mts +10 -0
  32. package/BarChartPremium/webgl/useBarWebGLPlotData.d.ts +10 -0
  33. package/BarChartPremium/webgl/useBarWebGLPlotData.js +160 -0
  34. package/BarChartPremium/webgl/useBarWebGLPlotData.mjs +154 -0
  35. package/CHANGELOG.md +221 -0
  36. package/CandlestickChart/CandlestickChart.js +25 -25
  37. package/CandlestickChart/CandlestickChart.mjs +25 -25
  38. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  39. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  40. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +9 -3
  41. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +9 -3
  42. package/HeatmapPremium/HeatmapPremium.js +20 -20
  43. package/HeatmapPremium/HeatmapPremium.mjs +20 -20
  44. package/RadialBarChart/RadialBarChart.d.mts +7 -0
  45. package/RadialBarChart/RadialBarChart.d.ts +7 -0
  46. package/RadialBarChart/RadialBarChart.js +25 -12
  47. package/RadialBarChart/RadialBarChart.mjs +25 -12
  48. package/RadialBarChart/RadialBarElement.js +15 -1
  49. package/RadialBarChart/RadialBarElement.mjs +15 -1
  50. package/RadialBarChart/radialBarClasses.d.mts +1 -1
  51. package/RadialBarChart/radialBarClasses.d.ts +1 -1
  52. package/RadialBarChart/seriesConfig/axisTooltipGetter.js +5 -2
  53. package/RadialBarChart/seriesConfig/axisTooltipGetter.mjs +5 -2
  54. package/RadialBarChart/seriesConfig/getColor.js +7 -51
  55. package/RadialBarChart/seriesConfig/getColor.mjs +8 -52
  56. package/RadialBarChart/seriesConfig/getItemAtPosition.d.mts +6 -0
  57. package/RadialBarChart/seriesConfig/getItemAtPosition.d.ts +6 -0
  58. package/RadialBarChart/seriesConfig/getItemAtPosition.js +69 -0
  59. package/RadialBarChart/seriesConfig/getItemAtPosition.mjs +63 -0
  60. package/RadialBarChart/seriesConfig/index.js +2 -1
  61. package/RadialBarChart/seriesConfig/index.mjs +2 -1
  62. package/RadialBarChart/seriesConfig/tooltip.js +3 -26
  63. package/RadialBarChart/seriesConfig/tooltip.mjs +4 -27
  64. package/RadialBarChart/useRadialBarChartProps.d.mts +2 -0
  65. package/RadialBarChart/useRadialBarChartProps.d.ts +2 -0
  66. package/RadialBarChart/useRadialBarChartProps.js +10 -2
  67. package/RadialBarChart/useRadialBarChartProps.mjs +10 -2
  68. package/RadialLineChart/RadialArea.d.mts +2 -11
  69. package/RadialLineChart/RadialArea.d.ts +2 -11
  70. package/RadialLineChart/RadialArea.js +4 -3
  71. package/RadialLineChart/RadialArea.mjs +4 -3
  72. package/RadialLineChart/RadialAreaPlot.js +3 -1
  73. package/RadialLineChart/RadialAreaPlot.mjs +3 -1
  74. package/RadialLineChart/RadialLine.d.mts +4 -3
  75. package/RadialLineChart/RadialLine.d.ts +4 -3
  76. package/RadialLineChart/RadialLine.js +4 -3
  77. package/RadialLineChart/RadialLine.mjs +4 -3
  78. package/RadialLineChart/RadialLineChart.d.mts +7 -5
  79. package/RadialLineChart/RadialLineChart.d.ts +7 -5
  80. package/RadialLineChart/RadialLineChart.js +15 -13
  81. package/RadialLineChart/RadialLineChart.mjs +15 -13
  82. package/RadialLineChart/RadialLineChart.plugins.d.mts +1 -1
  83. package/RadialLineChart/RadialLineChart.plugins.d.ts +1 -1
  84. package/RadialLineChart/RadialLineChart.plugins.js +1 -1
  85. package/RadialLineChart/RadialLineChart.plugins.mjs +1 -1
  86. package/RadialLineChart/RadialLinePlot.js +3 -1
  87. package/RadialLineChart/RadialLinePlot.mjs +3 -1
  88. package/RadialLineChart/seriesConfig/getColor.js +6 -53
  89. package/RadialLineChart/seriesConfig/getColor.mjs +7 -54
  90. package/RadialLineChart/seriesConfig/getItemAtPosition.js +3 -3
  91. package/RadialLineChart/seriesConfig/getItemAtPosition.mjs +4 -4
  92. package/RadialLineChart/seriesConfig/seriesProcessor.d.mts +2 -2
  93. package/RadialLineChart/seriesConfig/seriesProcessor.d.ts +2 -2
  94. package/RadialLineChart/seriesConfig/seriesProcessor.js +1 -138
  95. package/RadialLineChart/seriesConfig/seriesProcessor.mjs +2 -138
  96. package/RadialLineChart/seriesConfig/tooltip.js +3 -24
  97. package/RadialLineChart/seriesConfig/tooltip.mjs +4 -25
  98. package/RadialLineChart/useRadialLinePlotData.d.mts +1 -0
  99. package/RadialLineChart/useRadialLinePlotData.d.ts +1 -0
  100. package/RadialLineChart/useRadialLinePlotData.js +3 -1
  101. package/RadialLineChart/useRadialLinePlotData.mjs +3 -1
  102. package/ScatterChartPremium/ScatterChartPremium.js +30 -30
  103. package/ScatterChartPremium/ScatterChartPremium.mjs +30 -30
  104. package/index.js +1 -1
  105. package/index.mjs +1 -1
  106. package/models/seriesType/radialBar.d.mts +1 -1
  107. package/models/seriesType/radialBar.d.ts +1 -1
  108. package/models/seriesType/radialLine.d.mts +4 -0
  109. package/models/seriesType/radialLine.d.ts +4 -0
  110. package/package.json +126 -126
@@ -289,11 +289,6 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
289
289
  */
290
290
  zAxis: PropTypes.arrayOf(PropTypes.shape({
291
291
  colorMap: PropTypes.oneOfType([PropTypes.shape({
292
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
293
- type: PropTypes.oneOf(['ordinal']).isRequired,
294
- unknownColor: PropTypes.string,
295
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
296
- }), PropTypes.shape({
297
292
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
298
293
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
299
294
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -302,6 +297,11 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
302
297
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
303
298
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
304
299
  type: PropTypes.oneOf(['piecewise']).isRequired
300
+ }), PropTypes.shape({
301
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
302
+ type: PropTypes.oneOf(['ordinal']).isRequired,
303
+ unknownColor: PropTypes.string,
304
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
305
305
  })]),
306
306
  data: PropTypes.array,
307
307
  dataKey: PropTypes.string,
@@ -323,6 +323,11 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
323
323
  */
324
324
  zoomInteractionConfig: PropTypes.shape({
325
325
  pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag', 'wheel']), PropTypes.shape({
326
+ allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
327
+ pointerMode: PropTypes.any,
328
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
329
+ type: PropTypes.oneOf(['wheel']).isRequired
330
+ }), PropTypes.shape({
326
331
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
327
332
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
328
333
  type: PropTypes.oneOf(['drag']).isRequired
@@ -330,24 +335,11 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
330
335
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
331
336
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
332
337
  type: PropTypes.oneOf(['pressAndDrag']).isRequired
333
- }), PropTypes.shape({
334
- allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
335
- pointerMode: PropTypes.any,
336
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
337
- type: PropTypes.oneOf(['wheel']).isRequired
338
338
  })]).isRequired),
339
339
  zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
340
- pointerMode: PropTypes.any,
341
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
342
- type: PropTypes.oneOf(['wheel']).isRequired
343
- }), PropTypes.shape({
344
- pointerMode: PropTypes.any,
345
- requiredKeys: PropTypes.array,
346
- type: PropTypes.oneOf(['pinch']).isRequired
347
- }), PropTypes.shape({
348
340
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
349
341
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
350
- type: PropTypes.oneOf(['tapAndDrag']).isRequired
342
+ type: PropTypes.oneOf(['brush']).isRequired
351
343
  }), PropTypes.shape({
352
344
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
353
345
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
@@ -355,7 +347,15 @@ process.env.NODE_ENV !== "production" ? HeatmapPremium.propTypes = {
355
347
  }), PropTypes.shape({
356
348
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
357
349
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
358
- type: PropTypes.oneOf(['brush']).isRequired
350
+ type: PropTypes.oneOf(['tapAndDrag']).isRequired
351
+ }), PropTypes.shape({
352
+ pointerMode: PropTypes.any,
353
+ requiredKeys: PropTypes.array,
354
+ type: PropTypes.oneOf(['pinch']).isRequired
355
+ }), PropTypes.shape({
356
+ pointerMode: PropTypes.any,
357
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
358
+ type: PropTypes.oneOf(['wheel']).isRequired
359
359
  })]).isRequired)
360
360
  })
361
361
  } : void 0;
@@ -9,6 +9,7 @@ import { type ChartsToolbarSlots, type ChartsToolbarSlotProps } from "../Toolbar
9
9
  import { type ChartsRadialDataProviderPremiumProps } from "../ChartsRadialDataProviderPremium/index.mjs";
10
10
  import type { RadialBarSeriesType } from "../models/seriesType/radialBar.mjs";
11
11
  import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.mjs";
12
+ import { type ChartsRadialAxisHighlightProps } from "../ChartsRadialAxisHighlight/index.mjs";
12
13
  export type RadialBarSeries = MakeOptional<RadialBarSeriesType, 'type'>;
13
14
  export interface RadialBarChartSlots extends ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
14
15
  export interface RadialBarChartSlotProps extends ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
@@ -18,6 +19,12 @@ export interface RadialBarChartProps extends Omit<ChartsRadialDataProviderPremiu
18
19
  * An array of [[RadialBarSeries]] objects.
19
20
  */
20
21
  series: Readonly<RadialBarSeries[]>;
22
+ /**
23
+ * The configuration of axes highlight.
24
+ * @see See {@link https://mui.com/x/react-charts/highlighting highlighting docs} for more details.
25
+ * @default { rotation: 'band' } or { radius: 'band' } according to the layout.
26
+ */
27
+ axisHighlight?: ChartsRadialAxisHighlightProps;
21
28
  /**
22
29
  * Option to display a radial grid in the background.
23
30
  */
@@ -9,6 +9,7 @@ import { type ChartsToolbarSlots, type ChartsToolbarSlotProps } from "../Toolbar
9
9
  import { type ChartsRadialDataProviderPremiumProps } from "../ChartsRadialDataProviderPremium/index.js";
10
10
  import type { RadialBarSeriesType } from "../models/seriesType/radialBar.js";
11
11
  import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.js";
12
+ import { type ChartsRadialAxisHighlightProps } from "../ChartsRadialAxisHighlight/index.js";
12
13
  export type RadialBarSeries = MakeOptional<RadialBarSeriesType, 'type'>;
13
14
  export interface RadialBarChartSlots extends ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
14
15
  export interface RadialBarChartSlotProps extends ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
@@ -18,6 +19,12 @@ export interface RadialBarChartProps extends Omit<ChartsRadialDataProviderPremiu
18
19
  * An array of [[RadialBarSeries]] objects.
19
20
  */
20
21
  series: Readonly<RadialBarSeries[]>;
22
+ /**
23
+ * The configuration of axes highlight.
24
+ * @see See {@link https://mui.com/x/react-charts/highlighting highlighting docs} for more details.
25
+ * @default { rotation: 'band' } or { radius: 'band' } according to the layout.
26
+ */
27
+ axisHighlight?: ChartsRadialAxisHighlightProps;
21
28
  /**
22
29
  * Option to display a radial grid in the background.
23
30
  */
@@ -13,6 +13,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _styles = require("@mui/material/styles");
14
14
  var _internals = require("@mui/x-charts/internals");
15
15
  var _ChartsRadialGrid = require("@mui/x-charts/ChartsRadialGrid");
16
+ var _ChartsRotationAxis = require("@mui/x-charts/ChartsRotationAxis");
17
+ var _ChartsRadiusAxis = require("@mui/x-charts/ChartsRadiusAxis");
16
18
  var _ChartsLegend = require("../ChartsLegend");
17
19
  var _ChartsSurface = require("../ChartsSurface");
18
20
  var _ChartsTooltip = require("../ChartsTooltip");
@@ -23,6 +25,7 @@ var _seriesConfig = require("./seriesConfig");
23
25
  var _ChartsRadialDataProviderPremium = require("../ChartsRadialDataProviderPremium");
24
26
  var _RadialBarPlot = require("./RadialBarPlot");
25
27
  var _useRadialBarChartProps = require("./useRadialBarChartProps");
28
+ var _ChartsRadialAxisHighlight = require("../ChartsRadialAxisHighlight");
26
29
  var _jsxRuntime = require("react/jsx-runtime");
27
30
  const seriesConfig = {
28
31
  radialBar: _seriesConfig.radialBarSeriesConfig
@@ -50,6 +53,7 @@ const RadialBarChart = exports.Unstable_RadialBarChart = /*#__PURE__*/React.forw
50
53
  clipPathGroupProps,
51
54
  overlayProps,
52
55
  legendProps,
56
+ axisHighlightProps,
53
57
  children
54
58
  } = (0, _useRadialBarChartProps.useRadialBarChartProps)(props);
55
59
  const {
@@ -63,9 +67,9 @@ const RadialBarChart = exports.Unstable_RadialBarChart = /*#__PURE__*/React.forw
63
67
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsWrapper.ChartsWrapper, (0, _extends2.default)({}, chartsWrapperProps, {
64
68
  ref: ref,
65
69
  children: [props.showToolbar && Toolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, (0, _extends2.default)({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSurface.ChartsSurface, (0, _extends2.default)({}, chartsSurfaceProps, {
66
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialGrid.Unstable_ChartsRadialGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
70
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialGrid.Unstable_ChartsRadialGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialAxisHighlight.Unstable_ChartsRadialAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
67
71
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialBarPlot.RadialBarPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps))]
68
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
72
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRotationAxis.Unstable_ChartsRotationAxis, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadiusAxis.Unstable_ChartsRadiusAxis, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
69
73
  })), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, props.slotProps?.tooltip))]
70
74
  }))
71
75
  }));
@@ -82,6 +86,15 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
82
86
  exportAsPrint: _propTypes.default.func.isRequired
83
87
  })
84
88
  }),
89
+ /**
90
+ * The configuration of axes highlight.
91
+ * @see See {@link https://mui.com/x/react-charts/highlighting highlighting docs} for more details.
92
+ * @default { rotation: 'band' } or { radius: 'band' } according to the layout.
93
+ */
94
+ axisHighlight: _propTypes.default.shape({
95
+ radius: _propTypes.default.oneOf(['band', 'line', 'none']),
96
+ rotation: _propTypes.default.oneOf(['band', 'line', 'none'])
97
+ }),
85
98
  /**
86
99
  * Color palette used to colorize multiple series.
87
100
  * @default rainbowSurgePalette
@@ -139,11 +152,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
139
152
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
140
153
  dataIndex: _propTypes.default.number,
141
154
  seriesId: _propTypes.default.string.isRequired,
142
- type: _propTypes.default.oneOf(['radialBar'])
155
+ type: _propTypes.default.oneOf(['radialBar']).isRequired
143
156
  }), _propTypes.default.shape({
144
157
  dataIndex: _propTypes.default.number,
145
158
  seriesId: _propTypes.default.string.isRequired,
146
- type: _propTypes.default.oneOf(['radialBar']).isRequired
159
+ type: _propTypes.default.oneOf(['radialBar'])
147
160
  })]).isRequired),
148
161
  /**
149
162
  * If `true`, the legend is not rendered.
@@ -155,11 +168,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
155
168
  */
156
169
  highlightedItem: _propTypes.default.oneOfType([_propTypes.default.shape({
157
170
  dataIndex: _propTypes.default.number.isRequired,
158
- seriesId: _propTypes.default.string.isRequired,
159
- type: _propTypes.default.oneOf(['radialBar']).isRequired
171
+ seriesId: _propTypes.default.string.isRequired
160
172
  }), _propTypes.default.shape({
161
173
  dataIndex: _propTypes.default.number.isRequired,
162
- seriesId: _propTypes.default.string.isRequired
174
+ seriesId: _propTypes.default.string.isRequired,
175
+ type: _propTypes.default.oneOf(['radialBar']).isRequired
163
176
  })]),
164
177
  /**
165
178
  * This prop is used to help implement the accessibility logic.
@@ -190,11 +203,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
190
203
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
191
204
  dataIndex: _propTypes.default.number,
192
205
  seriesId: _propTypes.default.string.isRequired,
193
- type: _propTypes.default.oneOf(['radialBar'])
206
+ type: _propTypes.default.oneOf(['radialBar']).isRequired
194
207
  }), _propTypes.default.shape({
195
208
  dataIndex: _propTypes.default.number,
196
209
  seriesId: _propTypes.default.string.isRequired,
197
- type: _propTypes.default.oneOf(['radialBar']).isRequired
210
+ type: _propTypes.default.oneOf(['radialBar'])
198
211
  })]).isRequired),
199
212
  /**
200
213
  * If `true`, a loading overlay is displayed.
@@ -285,11 +298,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
285
298
  */
286
299
  tooltipItem: _propTypes.default.oneOfType([_propTypes.default.shape({
287
300
  dataIndex: _propTypes.default.number.isRequired,
288
- seriesId: _propTypes.default.string.isRequired,
289
- type: _propTypes.default.oneOf(['radialBar']).isRequired
301
+ seriesId: _propTypes.default.string.isRequired
290
302
  }), _propTypes.default.shape({
291
303
  dataIndex: _propTypes.default.number.isRequired,
292
- seriesId: _propTypes.default.string.isRequired
304
+ seriesId: _propTypes.default.string.isRequired,
305
+ type: _propTypes.default.oneOf(['radialBar']).isRequired
293
306
  })]),
294
307
  /**
295
308
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -6,6 +6,8 @@ import PropTypes from 'prop-types';
6
6
  import { useThemeProps } from '@mui/material/styles';
7
7
  import { useChartsContainerProps } from '@mui/x-charts/internals';
8
8
  import { Unstable_ChartsRadialGrid as ChartsRadialGrid } from '@mui/x-charts/ChartsRadialGrid';
9
+ import { Unstable_ChartsRotationAxis as ChartsRotationAxis } from '@mui/x-charts/ChartsRotationAxis';
10
+ import { Unstable_ChartsRadiusAxis as ChartsRadiusAxis } from '@mui/x-charts/ChartsRadiusAxis';
9
11
  import { ChartsLegend } from "../ChartsLegend/index.mjs";
10
12
  import { ChartsSurface } from "../ChartsSurface/index.mjs";
11
13
  import { ChartsTooltip } from "../ChartsTooltip/index.mjs";
@@ -16,6 +18,7 @@ import { radialBarSeriesConfig } from "./seriesConfig/index.mjs";
16
18
  import { ChartsRadialDataProviderPremium } from "../ChartsRadialDataProviderPremium/index.mjs";
17
19
  import { RadialBarPlot } from "./RadialBarPlot.mjs";
18
20
  import { useRadialBarChartProps } from "./useRadialBarChartProps.mjs";
21
+ import { Unstable_ChartsRadialAxisHighlight as ChartsRadialAxisHighlight } from "../ChartsRadialAxisHighlight/index.mjs";
19
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
23
  const seriesConfig = {
21
24
  radialBar: radialBarSeriesConfig
@@ -43,6 +46,7 @@ const RadialBarChart = /*#__PURE__*/React.forwardRef(function RadialBarChart(inP
43
46
  clipPathGroupProps,
44
47
  overlayProps,
45
48
  legendProps,
49
+ axisHighlightProps,
46
50
  children
47
51
  } = useRadialBarChartProps(props);
48
52
  const {
@@ -56,9 +60,9 @@ const RadialBarChart = /*#__PURE__*/React.forwardRef(function RadialBarChart(inP
56
60
  children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
57
61
  ref: ref,
58
62
  children: [props.showToolbar && Toolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
59
- children: [/*#__PURE__*/_jsx(ChartsRadialGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
63
+ children: [/*#__PURE__*/_jsx(ChartsRadialGrid, _extends({}, gridProps)), /*#__PURE__*/_jsx(ChartsRadialAxisHighlight, _extends({}, axisHighlightProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
60
64
  children: [/*#__PURE__*/_jsx(RadialBarPlot, {}), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps))]
61
- })), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
65
+ })), /*#__PURE__*/_jsx(ChartsRotationAxis, {}), /*#__PURE__*/_jsx(ChartsRadiusAxis, {}), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
62
66
  })), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip))]
63
67
  }))
64
68
  }));
@@ -75,6 +79,15 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
75
79
  exportAsPrint: PropTypes.func.isRequired
76
80
  })
77
81
  }),
82
+ /**
83
+ * The configuration of axes highlight.
84
+ * @see See {@link https://mui.com/x/react-charts/highlighting highlighting docs} for more details.
85
+ * @default { rotation: 'band' } or { radius: 'band' } according to the layout.
86
+ */
87
+ axisHighlight: PropTypes.shape({
88
+ radius: PropTypes.oneOf(['band', 'line', 'none']),
89
+ rotation: PropTypes.oneOf(['band', 'line', 'none'])
90
+ }),
78
91
  /**
79
92
  * Color palette used to colorize multiple series.
80
93
  * @default rainbowSurgePalette
@@ -132,11 +145,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
132
145
  hiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
133
146
  dataIndex: PropTypes.number,
134
147
  seriesId: PropTypes.string.isRequired,
135
- type: PropTypes.oneOf(['radialBar'])
148
+ type: PropTypes.oneOf(['radialBar']).isRequired
136
149
  }), PropTypes.shape({
137
150
  dataIndex: PropTypes.number,
138
151
  seriesId: PropTypes.string.isRequired,
139
- type: PropTypes.oneOf(['radialBar']).isRequired
152
+ type: PropTypes.oneOf(['radialBar'])
140
153
  })]).isRequired),
141
154
  /**
142
155
  * If `true`, the legend is not rendered.
@@ -148,11 +161,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
148
161
  */
149
162
  highlightedItem: PropTypes.oneOfType([PropTypes.shape({
150
163
  dataIndex: PropTypes.number.isRequired,
151
- seriesId: PropTypes.string.isRequired,
152
- type: PropTypes.oneOf(['radialBar']).isRequired
164
+ seriesId: PropTypes.string.isRequired
153
165
  }), PropTypes.shape({
154
166
  dataIndex: PropTypes.number.isRequired,
155
- seriesId: PropTypes.string.isRequired
167
+ seriesId: PropTypes.string.isRequired,
168
+ type: PropTypes.oneOf(['radialBar']).isRequired
156
169
  })]),
157
170
  /**
158
171
  * This prop is used to help implement the accessibility logic.
@@ -183,11 +196,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
183
196
  initialHiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
184
197
  dataIndex: PropTypes.number,
185
198
  seriesId: PropTypes.string.isRequired,
186
- type: PropTypes.oneOf(['radialBar'])
199
+ type: PropTypes.oneOf(['radialBar']).isRequired
187
200
  }), PropTypes.shape({
188
201
  dataIndex: PropTypes.number,
189
202
  seriesId: PropTypes.string.isRequired,
190
- type: PropTypes.oneOf(['radialBar']).isRequired
203
+ type: PropTypes.oneOf(['radialBar'])
191
204
  })]).isRequired),
192
205
  /**
193
206
  * If `true`, a loading overlay is displayed.
@@ -278,11 +291,11 @@ process.env.NODE_ENV !== "production" ? RadialBarChart.propTypes = {
278
291
  */
279
292
  tooltipItem: PropTypes.oneOfType([PropTypes.shape({
280
293
  dataIndex: PropTypes.number.isRequired,
281
- seriesId: PropTypes.string.isRequired,
282
- type: PropTypes.oneOf(['radialBar']).isRequired
294
+ seriesId: PropTypes.string.isRequired
283
295
  }), PropTypes.shape({
284
296
  dataIndex: PropTypes.number.isRequired,
285
- seriesId: PropTypes.string.isRequired
297
+ seriesId: PropTypes.string.isRequired,
298
+ type: PropTypes.oneOf(['radialBar']).isRequired
286
299
  })]),
287
300
  /**
288
301
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -13,6 +13,7 @@ var React = _interopRequireWildcard(require("react"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
15
15
  var _styles = require("@mui/material/styles");
16
+ var _hooks = require("../hooks");
16
17
  var _radialBarClasses = require("./radialBarClasses");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  const _excluded = ["seriesId", "dataIndex", "color", "startAngle", "endAngle", "innerRadius", "outerRadius", "className", "classes", "onClick"];
@@ -22,6 +23,7 @@ const RadialBarElementRoot = (0, _styles.styled)('path', {
22
23
  })();
23
24
  function RadialBarElement(props) {
24
25
  const {
26
+ seriesId,
25
27
  dataIndex,
26
28
  color,
27
29
  startAngle,
@@ -36,6 +38,14 @@ function RadialBarElement(props) {
36
38
  const classes = (0, _radialBarClasses.useUtilityClasses)({
37
39
  classes: innerClasses
38
40
  });
41
+ const identifier = React.useMemo(() => ({
42
+ type: 'radialBar',
43
+ seriesId,
44
+ dataIndex
45
+ }), [seriesId, dataIndex]);
46
+ const highlightState = (0, _hooks.useItemHighlightState)(identifier);
47
+ const isHighlighted = highlightState === 'highlighted';
48
+ const isFaded = highlightState === 'faded';
39
49
  const d = (0, _d3Shape.arc)()({
40
50
  startAngle,
41
51
  endAngle,
@@ -49,6 +59,10 @@ function RadialBarElement(props) {
49
59
  stroke: "none",
50
60
  onClick: onClick,
51
61
  cursor: onClick ? 'pointer' : undefined,
52
- "data-index": dataIndex
62
+ "data-index": dataIndex,
63
+ "data-highlighted": isHighlighted || undefined,
64
+ "data-faded": isFaded || undefined,
65
+ filter: isHighlighted ? 'brightness(120%)' : undefined,
66
+ opacity: isFaded ? 0.3 : 1
53
67
  }, other));
54
68
  }
@@ -7,6 +7,7 @@ import * as React from 'react';
7
7
  import clsx from 'clsx';
8
8
  import { arc as d3Arc } from '@mui/x-charts-vendor/d3-shape';
9
9
  import { styled } from '@mui/material/styles';
10
+ import { useItemHighlightState } from "../hooks/index.mjs";
10
11
  import { useUtilityClasses } from "./radialBarClasses.mjs";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  const RadialBarElementRoot = styled('path', {
@@ -15,6 +16,7 @@ const RadialBarElementRoot = styled('path', {
15
16
  })();
16
17
  function RadialBarElement(props) {
17
18
  const {
19
+ seriesId,
18
20
  dataIndex,
19
21
  color,
20
22
  startAngle,
@@ -29,6 +31,14 @@ function RadialBarElement(props) {
29
31
  const classes = useUtilityClasses({
30
32
  classes: innerClasses
31
33
  });
34
+ const identifier = React.useMemo(() => ({
35
+ type: 'radialBar',
36
+ seriesId,
37
+ dataIndex
38
+ }), [seriesId, dataIndex]);
39
+ const highlightState = useItemHighlightState(identifier);
40
+ const isHighlighted = highlightState === 'highlighted';
41
+ const isFaded = highlightState === 'faded';
32
42
  const d = d3Arc()({
33
43
  startAngle,
34
44
  endAngle,
@@ -42,7 +52,11 @@ function RadialBarElement(props) {
42
52
  stroke: "none",
43
53
  onClick: onClick,
44
54
  cursor: onClick ? 'pointer' : undefined,
45
- "data-index": dataIndex
55
+ "data-index": dataIndex,
56
+ "data-highlighted": isHighlighted || undefined,
57
+ "data-faded": isFaded || undefined,
58
+ filter: isHighlighted ? 'brightness(120%)' : undefined,
59
+ opacity: isFaded ? 0.3 : 1
46
60
  }, other));
47
61
  }
48
62
  export { RadialBarElement };
@@ -11,5 +11,5 @@ export declare const radialBarClasses: RadialBarClasses;
11
11
  interface UseUtilityClassesOptions {
12
12
  classes?: Partial<RadialBarClasses>;
13
13
  }
14
- export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"series" | "root" | "element", string>;
14
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"root" | "series" | "element", string>;
15
15
  export {};
@@ -11,5 +11,5 @@ export declare const radialBarClasses: RadialBarClasses;
11
11
  interface UseUtilityClassesOptions {
12
12
  classes?: Partial<RadialBarClasses>;
13
13
  }
14
- export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"series" | "root" | "element", string>;
14
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"root" | "series" | "element", string>;
15
15
  export {};
@@ -5,9 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.axisTooltipGetter = void 0;
7
7
  const axisTooltipGetter = series => {
8
- return Object.values(series).map(s => ({
8
+ return Object.values(series).map(s => s.layout === 'horizontal' ? {
9
+ direction: 'radius',
10
+ axisId: 'radiusAxisId' in s ? s.radiusAxisId : undefined
11
+ } : {
9
12
  direction: 'rotation',
10
13
  axisId: 'rotationAxisId' in s ? s.rotationAxisId : undefined
11
- }));
14
+ });
12
15
  };
13
16
  exports.axisTooltipGetter = axisTooltipGetter;
@@ -1,6 +1,9 @@
1
1
  export const axisTooltipGetter = series => {
2
- return Object.values(series).map(s => ({
2
+ return Object.values(series).map(s => s.layout === 'horizontal' ? {
3
+ direction: 'radius',
4
+ axisId: 'radiusAxisId' in s ? s.radiusAxisId : undefined
5
+ } : {
3
6
  direction: 'rotation',
4
7
  axisId: 'rotationAxisId' in s ? s.rotationAxisId : undefined
5
- }));
8
+ });
6
9
  };
@@ -6,56 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _internals = require("@mui/x-charts/internals");
8
8
  const getColor = (series, rotationAxis, radiusAxis) => {
9
- const yColorScale = radiusAxis?.colorScale;
10
- const xColorScale = rotationAxis?.colorScale;
11
- const getSeriesColor = (0, _internals.getSeriesColorFn)(series);
12
- if (yColorScale) {
13
- return dataIndex => {
14
- if (dataIndex === undefined) {
15
- return series.color;
16
- }
17
- const value = series.data[dataIndex];
18
- const color = value === null ? getSeriesColor({
19
- value,
20
- dataIndex
21
- }) : yColorScale(value);
22
- if (color === null) {
23
- return getSeriesColor({
24
- value,
25
- dataIndex
26
- });
27
- }
28
- return color;
29
- };
30
- }
31
- if (xColorScale) {
32
- return dataIndex => {
33
- if (dataIndex === undefined) {
34
- return series.color;
35
- }
36
- const value = rotationAxis.data?.[dataIndex];
37
- const color = value === null ? getSeriesColor({
38
- value,
39
- dataIndex
40
- }) : xColorScale(value);
41
- if (color === null) {
42
- return getSeriesColor({
43
- value,
44
- dataIndex
45
- });
46
- }
47
- return color;
48
- };
49
- }
50
- return dataIndex => {
51
- if (dataIndex === undefined) {
52
- return series.color;
53
- }
54
- const value = series.data[dataIndex];
55
- return getSeriesColor({
56
- value,
57
- dataIndex
58
- });
59
- };
9
+ const verticalLayout = series.layout === 'vertical';
10
+ return (0, _internals.resolveColorProcessor)({
11
+ series,
12
+ valueColorScale: verticalLayout ? radiusAxis?.colorScale : rotationAxis?.colorScale,
13
+ categoryColorScale: verticalLayout ? rotationAxis?.colorScale : radiusAxis?.colorScale,
14
+ categoryValues: verticalLayout ? rotationAxis?.data : radiusAxis?.data
15
+ });
60
16
  };
61
17
  var _default = exports.default = getColor;
@@ -1,55 +1,11 @@
1
- import { getSeriesColorFn } from '@mui/x-charts/internals';
1
+ import { resolveColorProcessor } from '@mui/x-charts/internals';
2
2
  const getColor = (series, rotationAxis, radiusAxis) => {
3
- const yColorScale = radiusAxis?.colorScale;
4
- const xColorScale = rotationAxis?.colorScale;
5
- const getSeriesColor = getSeriesColorFn(series);
6
- if (yColorScale) {
7
- return dataIndex => {
8
- if (dataIndex === undefined) {
9
- return series.color;
10
- }
11
- const value = series.data[dataIndex];
12
- const color = value === null ? getSeriesColor({
13
- value,
14
- dataIndex
15
- }) : yColorScale(value);
16
- if (color === null) {
17
- return getSeriesColor({
18
- value,
19
- dataIndex
20
- });
21
- }
22
- return color;
23
- };
24
- }
25
- if (xColorScale) {
26
- return dataIndex => {
27
- if (dataIndex === undefined) {
28
- return series.color;
29
- }
30
- const value = rotationAxis.data?.[dataIndex];
31
- const color = value === null ? getSeriesColor({
32
- value,
33
- dataIndex
34
- }) : xColorScale(value);
35
- if (color === null) {
36
- return getSeriesColor({
37
- value,
38
- dataIndex
39
- });
40
- }
41
- return color;
42
- };
43
- }
44
- return dataIndex => {
45
- if (dataIndex === undefined) {
46
- return series.color;
47
- }
48
- const value = series.data[dataIndex];
49
- return getSeriesColor({
50
- value,
51
- dataIndex
52
- });
53
- };
3
+ const verticalLayout = series.layout === 'vertical';
4
+ return resolveColorProcessor({
5
+ series,
6
+ valueColorScale: verticalLayout ? radiusAxis?.colorScale : rotationAxis?.colorScale,
7
+ categoryColorScale: verticalLayout ? rotationAxis?.colorScale : radiusAxis?.colorScale,
8
+ categoryValues: verticalLayout ? rotationAxis?.data : radiusAxis?.data
9
+ });
54
10
  };
55
11
  export default getColor;
@@ -0,0 +1,6 @@
1
+ import { type ChartState, type UseChartPolarAxisSignature } from '@mui/x-charts/internals';
2
+ import type { SeriesItemIdentifierWithType } from '@mui/x-charts/models';
3
+ export default function getItemAtPosition(state: ChartState<[UseChartPolarAxisSignature]>, point: {
4
+ x: number;
5
+ y: number;
6
+ }): SeriesItemIdentifierWithType<'radialBar'> | undefined;
@@ -0,0 +1,6 @@
1
+ import { type ChartState, type UseChartPolarAxisSignature } from '@mui/x-charts/internals';
2
+ import type { SeriesItemIdentifierWithType } from '@mui/x-charts/models';
3
+ export default function getItemAtPosition(state: ChartState<[UseChartPolarAxisSignature]>, point: {
4
+ x: number;
5
+ y: number;
6
+ }): SeriesItemIdentifierWithType<'radialBar'> | undefined;