@mui/x-charts-premium 9.1.0 → 9.2.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 (70) hide show
  1. package/BarChartPremium/BarChartPremium.d.mts +4 -1
  2. package/BarChartPremium/BarChartPremium.d.ts +4 -1
  3. package/BarChartPremium/BarChartPremium.js +21 -8
  4. package/BarChartPremium/BarChartPremium.mjs +22 -9
  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 +103 -0
  36. package/ChartsDataProviderPremium/ChartsDataProviderPremium.js +2 -2
  37. package/ChartsDataProviderPremium/ChartsDataProviderPremium.mjs +2 -2
  38. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.js +9 -3
  39. package/ChartsRadialDataProviderPremium/ChartsRadialDataProviderPremium.mjs +9 -3
  40. package/RadialBarChart/RadialBarChart.d.mts +7 -0
  41. package/RadialBarChart/RadialBarChart.d.ts +7 -0
  42. package/RadialBarChart/RadialBarChart.js +15 -2
  43. package/RadialBarChart/RadialBarChart.mjs +15 -2
  44. package/RadialBarChart/RadialBarElement.js +15 -1
  45. package/RadialBarChart/RadialBarElement.mjs +15 -1
  46. package/RadialBarChart/radialBarClasses.d.mts +1 -1
  47. package/RadialBarChart/radialBarClasses.d.ts +1 -1
  48. package/RadialBarChart/seriesConfig/axisTooltipGetter.js +5 -2
  49. package/RadialBarChart/seriesConfig/axisTooltipGetter.mjs +5 -2
  50. package/RadialBarChart/seriesConfig/getItemAtPosition.d.mts +6 -0
  51. package/RadialBarChart/seriesConfig/getItemAtPosition.d.ts +6 -0
  52. package/RadialBarChart/seriesConfig/getItemAtPosition.js +69 -0
  53. package/RadialBarChart/seriesConfig/getItemAtPosition.mjs +63 -0
  54. package/RadialBarChart/seriesConfig/index.js +2 -1
  55. package/RadialBarChart/seriesConfig/index.mjs +2 -1
  56. package/RadialBarChart/useRadialBarChartProps.d.mts +2 -0
  57. package/RadialBarChart/useRadialBarChartProps.d.ts +2 -0
  58. package/RadialBarChart/useRadialBarChartProps.js +10 -2
  59. package/RadialBarChart/useRadialBarChartProps.mjs +10 -2
  60. package/RadialLineChart/RadialLineChart.js +4 -2
  61. package/RadialLineChart/RadialLineChart.mjs +4 -2
  62. package/RadialLineChart/RadialLineChart.plugins.d.mts +1 -1
  63. package/RadialLineChart/RadialLineChart.plugins.d.ts +1 -1
  64. package/RadialLineChart/RadialLineChart.plugins.js +1 -1
  65. package/RadialLineChart/RadialLineChart.plugins.mjs +1 -1
  66. package/RadialLineChart/seriesConfig/getItemAtPosition.js +3 -3
  67. package/RadialLineChart/seriesConfig/getItemAtPosition.mjs +4 -4
  68. package/index.js +1 -1
  69. package/index.mjs +1 -1
  70. package/package.json +125 -125
@@ -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
  };
@@ -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;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getItemAtPosition;
7
+ var _internals = require("@mui/x-charts/internals");
8
+ function getItemAtPosition(state, point) {
9
+ const {
10
+ axis: rotationAxes,
11
+ axisIds: rotationAxisIds
12
+ } = (0, _internals.selectorChartRotationAxis)(state);
13
+ const {
14
+ axis: radiusAxes,
15
+ axisIds: radiusAxisIds
16
+ } = (0, _internals.selectorChartRadiusAxis)(state);
17
+ const center = (0, _internals.selectorChartPolarCenter)(state);
18
+ const seriesState = (0, _internals.selectorAllSeriesOfType)(state, 'radialBar');
19
+ if (!seriesState || seriesState.seriesOrder.length === 0) {
20
+ return undefined;
21
+ }
22
+ const defaultRotationAxisId = rotationAxisIds[0];
23
+ const defaultRadiusAxisId = radiusAxisIds[0];
24
+ const polarCoordinate = {
25
+ rotation: (0, _internals.generateSvg2rotation)(center)(point.x, point.y),
26
+ radius: Math.sqrt((point.x - center.cx) ** 2 + (point.y - center.cy) ** 2)
27
+ };
28
+ for (let stackIndex = 0; stackIndex < seriesState.stackingGroups.length; stackIndex += 1) {
29
+ const group = seriesState.stackingGroups[stackIndex];
30
+ const seriesIds = group.ids;
31
+ for (const seriesId of seriesIds) {
32
+ const series = (seriesState.series ?? {})[seriesId];
33
+ const rotationAxisId = series.rotationAxisId ?? defaultRotationAxisId;
34
+ const radiusAxisId = series.radiusAxisId ?? defaultRadiusAxisId;
35
+ const rotationAxis = rotationAxes[rotationAxisId];
36
+ const radiusAxis = radiusAxes[radiusAxisId];
37
+ const bandAxis = series.layout === 'horizontal' ? radiusAxis : rotationAxis;
38
+ const continuousAxis = series.layout === 'horizontal' ? rotationAxis : radiusAxis;
39
+ const clampedAngle = rotationAxis.scale.range()[0] + (0, _internals.clampAngleRad)(polarCoordinate.rotation - rotationAxis.scale.range()[0]);
40
+ const bandCoordinate = series.layout === 'horizontal' ? polarCoordinate.radius : clampedAngle;
41
+ const valueCoordinate = series.layout === 'horizontal' ? clampedAngle : polarCoordinate.radius;
42
+ const dataIndex = (0, _internals.getBandIndex)(bandAxis, {
43
+ groupNumber: seriesState.stackingGroups.length,
44
+ groupIndex: stackIndex
45
+ }, bandCoordinate);
46
+ if (dataIndex === -1) {
47
+ continue;
48
+ }
49
+
50
+ // The point is inside the band for this series
51
+ const bar = series.visibleStackedData[dataIndex];
52
+ const start = continuousAxis.scale(bar[0]);
53
+ const end = continuousAxis.scale(bar[1]);
54
+ if (start == null || end == null) {
55
+ continue;
56
+ }
57
+ const continuousMin = Math.min(start, end);
58
+ const continuousMax = Math.max(start, end);
59
+ if (valueCoordinate >= continuousMin && valueCoordinate <= continuousMax) {
60
+ return {
61
+ type: 'radialBar',
62
+ seriesId,
63
+ dataIndex
64
+ };
65
+ }
66
+ }
67
+ }
68
+ return undefined;
69
+ }
@@ -0,0 +1,63 @@
1
+ import { selectorAllSeriesOfType, selectorChartPolarCenter, selectorChartRadiusAxis, selectorChartRotationAxis, getBandIndex, clampAngleRad, generateSvg2rotation } from '@mui/x-charts/internals';
2
+ export default function getItemAtPosition(state, point) {
3
+ const {
4
+ axis: rotationAxes,
5
+ axisIds: rotationAxisIds
6
+ } = selectorChartRotationAxis(state);
7
+ const {
8
+ axis: radiusAxes,
9
+ axisIds: radiusAxisIds
10
+ } = selectorChartRadiusAxis(state);
11
+ const center = selectorChartPolarCenter(state);
12
+ const seriesState = selectorAllSeriesOfType(state, 'radialBar');
13
+ if (!seriesState || seriesState.seriesOrder.length === 0) {
14
+ return undefined;
15
+ }
16
+ const defaultRotationAxisId = rotationAxisIds[0];
17
+ const defaultRadiusAxisId = radiusAxisIds[0];
18
+ const polarCoordinate = {
19
+ rotation: generateSvg2rotation(center)(point.x, point.y),
20
+ radius: Math.sqrt((point.x - center.cx) ** 2 + (point.y - center.cy) ** 2)
21
+ };
22
+ for (let stackIndex = 0; stackIndex < seriesState.stackingGroups.length; stackIndex += 1) {
23
+ const group = seriesState.stackingGroups[stackIndex];
24
+ const seriesIds = group.ids;
25
+ for (const seriesId of seriesIds) {
26
+ const series = (seriesState.series ?? {})[seriesId];
27
+ const rotationAxisId = series.rotationAxisId ?? defaultRotationAxisId;
28
+ const radiusAxisId = series.radiusAxisId ?? defaultRadiusAxisId;
29
+ const rotationAxis = rotationAxes[rotationAxisId];
30
+ const radiusAxis = radiusAxes[radiusAxisId];
31
+ const bandAxis = series.layout === 'horizontal' ? radiusAxis : rotationAxis;
32
+ const continuousAxis = series.layout === 'horizontal' ? rotationAxis : radiusAxis;
33
+ const clampedAngle = rotationAxis.scale.range()[0] + clampAngleRad(polarCoordinate.rotation - rotationAxis.scale.range()[0]);
34
+ const bandCoordinate = series.layout === 'horizontal' ? polarCoordinate.radius : clampedAngle;
35
+ const valueCoordinate = series.layout === 'horizontal' ? clampedAngle : polarCoordinate.radius;
36
+ const dataIndex = getBandIndex(bandAxis, {
37
+ groupNumber: seriesState.stackingGroups.length,
38
+ groupIndex: stackIndex
39
+ }, bandCoordinate);
40
+ if (dataIndex === -1) {
41
+ continue;
42
+ }
43
+
44
+ // The point is inside the band for this series
45
+ const bar = series.visibleStackedData[dataIndex];
46
+ const start = continuousAxis.scale(bar[0]);
47
+ const end = continuousAxis.scale(bar[1]);
48
+ if (start == null || end == null) {
49
+ continue;
50
+ }
51
+ const continuousMin = Math.min(start, end);
52
+ const continuousMax = Math.max(start, end);
53
+ if (valueCoordinate >= continuousMin && valueCoordinate <= continuousMax) {
54
+ return {
55
+ type: 'radialBar',
56
+ seriesId,
57
+ dataIndex
58
+ };
59
+ }
60
+ }
61
+ }
62
+ return undefined;
63
+ }
@@ -14,6 +14,7 @@ var _getColor = _interopRequireDefault(require("./getColor"));
14
14
  var _seriesProcessor = _interopRequireDefault(require("./seriesProcessor"));
15
15
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
16
16
  var _descriptionGetter = _interopRequireDefault(require("./descriptionGetter"));
17
+ var _getItemAtPosition = _interopRequireDefault(require("./getItemAtPosition"));
17
18
  var _extremums = require("./extremums");
18
19
  var _tooltip = _interopRequireDefault(require("./tooltip"));
19
20
  _internals.polarSeriesTypes.addType('radialBar');
@@ -27,7 +28,7 @@ const radialBarSeriesConfig = exports.radialBarSeriesConfig = {
27
28
  rotationExtremumGetter: _extremums.rotationExtremumGetter,
28
29
  radiusExtremumGetter: _extremums.radiusExtremumGetter,
29
30
  getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
30
- // getItemAtPosition,
31
+ getItemAtPosition: _getItemAtPosition.default,
31
32
  keyboardFocusHandler: _keyboardFocusHandler.default,
32
33
  identifierSerializer: _internals.identifierSerializerSeriesIdDataIndex,
33
34
  identifierCleaner: _internals.identifierCleanerSeriesIdDataIndex,
@@ -7,6 +7,7 @@ import colorProcessor from "./getColor.mjs";
7
7
  import seriesProcessor from "./seriesProcessor.mjs";
8
8
  import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.mjs";
9
9
  import descriptionGetter from "./descriptionGetter.mjs";
10
+ import getItemAtPosition from "./getItemAtPosition.mjs";
10
11
  import { radiusExtremumGetter, rotationExtremumGetter } from "./extremums.mjs";
11
12
  import tooltipGetter from "./tooltip.mjs";
12
13
  polarSeriesTypes.addType('radialBar');
@@ -20,7 +21,7 @@ export const radialBarSeriesConfig = {
20
21
  rotationExtremumGetter,
21
22
  radiusExtremumGetter,
22
23
  getSeriesWithDefaultValues,
23
- // getItemAtPosition,
24
+ getItemAtPosition,
24
25
  keyboardFocusHandler,
25
26
  identifierSerializer: identifierSerializerSeriesIdDataIndex,
26
27
  identifierCleaner: identifierCleanerSeriesIdDataIndex,
@@ -6,6 +6,7 @@ import { type ChartsOverlayProps } from "../ChartsOverlay/index.mjs";
6
6
  import { type ChartsRadialDataProviderProps } from "../ChartsRadialDataProvider/index.mjs";
7
7
  import type { RadialBarChartProps } from "./RadialBarChart.mjs";
8
8
  import type { ChartsWrapperProps } from "../ChartsWrapper/index.mjs";
9
+ import type { ChartsRadialAxisHighlightProps } from "../ChartsRadialAxisHighlight/index.mjs";
9
10
  import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.mjs";
10
11
  /**
11
12
  * A helper function that extracts RadialBarChartProps from the input props
@@ -24,5 +25,6 @@ export declare const useRadialBarChartProps: (props: RadialBarChartProps) => {
24
25
  };
25
26
  overlayProps: ChartsOverlayProps;
26
27
  legendProps: ChartsLegendSlotExtension;
28
+ axisHighlightProps: ChartsRadialAxisHighlightProps;
27
29
  children: React.ReactNode;
28
30
  };
@@ -6,6 +6,7 @@ import { type ChartsOverlayProps } from "../ChartsOverlay/index.js";
6
6
  import { type ChartsRadialDataProviderProps } from "../ChartsRadialDataProvider/index.js";
7
7
  import type { RadialBarChartProps } from "./RadialBarChart.js";
8
8
  import type { ChartsWrapperProps } from "../ChartsWrapper/index.js";
9
+ import type { ChartsRadialAxisHighlightProps } from "../ChartsRadialAxisHighlight/index.js";
9
10
  import { type RadialBarChartPluginSignatures } from "./RadialBarChart.plugins.js";
10
11
  /**
11
12
  * A helper function that extracts RadialBarChartProps from the input props
@@ -24,5 +25,6 @@ export declare const useRadialBarChartProps: (props: RadialBarChartProps) => {
24
25
  };
25
26
  overlayProps: ChartsOverlayProps;
26
27
  legendProps: ChartsLegendSlotExtension;
28
+ axisHighlightProps: ChartsRadialAxisHighlightProps;
27
29
  children: React.ReactNode;
28
30
  };
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
13
13
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
14
  var _RadialBarChart = require("./RadialBarChart.plugins");
15
15
  var _constants = require("../constants");
16
- const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar"];
16
+ const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar", "axisHighlight"];
17
17
  /**
18
18
  * A helper function that extracts RadialBarChartProps from the input props
19
19
  * and returns an object with props for the children components of RadialBarChart.
@@ -36,7 +36,8 @@ const useRadialBarChartProps = props => {
36
36
  slots,
37
37
  slotProps,
38
38
  skipAnimation,
39
- loading
39
+ loading,
40
+ axisHighlight
40
41
  } = props,
41
42
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
42
43
  const id = (0, _useId.default)();
@@ -65,6 +66,12 @@ const useRadialBarChartProps = props => {
65
66
  skipAnimation,
66
67
  plugins: _RadialBarChart.RADIAL_BAR_CHART_PLUGINS
67
68
  });
69
+ const isHorizontal = series.some(s => s.layout === 'horizontal');
70
+ const axisHighlightProps = (0, _extends2.default)({}, isHorizontal ? {
71
+ radius: 'band'
72
+ } : {
73
+ rotation: 'band'
74
+ }, axisHighlight);
68
75
  const gridProps = grid;
69
76
  const clipPathGroupProps = {
70
77
  clipPath: `url(#${clipPathId})`
@@ -94,6 +101,7 @@ const useRadialBarChartProps = props => {
94
101
  clipPathGroupProps,
95
102
  overlayProps,
96
103
  legendProps,
104
+ axisHighlightProps,
97
105
  children
98
106
  };
99
107
  };
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar"];
5
+ const _excluded = ["rotationAxis", "radiusAxis", "series", "width", "height", "margin", "colors", "dataset", "hideLegend", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "showToolbar", "axisHighlight"];
6
6
  import * as React from 'react';
7
7
  import useId from '@mui/utils/useId';
8
8
  import { RADIAL_BAR_CHART_PLUGINS } from "./RadialBarChart.plugins.mjs";
@@ -30,7 +30,8 @@ export const useRadialBarChartProps = props => {
30
30
  slots,
31
31
  slotProps,
32
32
  skipAnimation,
33
- loading
33
+ loading,
34
+ axisHighlight
34
35
  } = props,
35
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
36
37
  const id = useId();
@@ -59,6 +60,12 @@ export const useRadialBarChartProps = props => {
59
60
  skipAnimation,
60
61
  plugins: RADIAL_BAR_CHART_PLUGINS
61
62
  });
63
+ const isHorizontal = series.some(s => s.layout === 'horizontal');
64
+ const axisHighlightProps = _extends({}, isHorizontal ? {
65
+ radius: 'band'
66
+ } : {
67
+ rotation: 'band'
68
+ }, axisHighlight);
62
69
  const gridProps = grid;
63
70
  const clipPathGroupProps = {
64
71
  clipPath: `url(#${clipPathId})`
@@ -88,6 +95,7 @@ export const useRadialBarChartProps = props => {
88
95
  clipPathGroupProps,
89
96
  overlayProps,
90
97
  legendProps,
98
+ axisHighlightProps,
91
99
  children
92
100
  };
93
101
  };
@@ -13,6 +13,8 @@ var _styles = require("@mui/material/styles");
13
13
  var _internals = require("@mui/x-charts/internals");
14
14
  var _ChartsRadialGrid = require("@mui/x-charts/ChartsRadialGrid");
15
15
  var _ChartsRadialAxisHighlight = require("@mui/x-charts/ChartsRadialAxisHighlight");
16
+ var _ChartsRadiusAxis = require("@mui/x-charts/ChartsRadiusAxis");
17
+ var _ChartsRotationAxis = require("@mui/x-charts/ChartsRotationAxis");
16
18
  var _ChartsLegend = require("../ChartsLegend");
17
19
  var _ChartsSurface = require("../ChartsSurface");
18
20
  var _ChartsTooltip = require("../ChartsTooltip");
@@ -69,7 +71,7 @@ const RadialLineChart = exports.Unstable_RadialLineChart = /*#__PURE__*/React.fo
69
71
  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, {
70
72
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialGrid.Unstable_ChartsRadialGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
71
73
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialAreaPlot.RadialAreaPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialLinePlot.RadialLinePlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps))]
72
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialAxisHighlight.Unstable_ChartsRadialAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialMarkPlot.RadialMarkPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialLineHighlightPlot.RadialLineHighlightPlot, {
74
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadialAxisHighlight.Unstable_ChartsRadialAxisHighlight, (0, _extends2.default)({}, axisHighlightProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRotationAxis.Unstable_ChartsRotationAxis, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRadiusAxis.Unstable_ChartsRadiusAxis, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialMarkPlot.RadialMarkPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_RadialLineHighlightPlot.RadialLineHighlightPlot, {
73
75
  slots: props.slots,
74
76
  slotProps: props.slotProps
75
77
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
@@ -95,7 +97,7 @@ process.env.NODE_ENV !== "production" ? RadialLineChart.propTypes = {
95
97
  * @default { rotation: 'line' }
96
98
  */
97
99
  axisHighlight: _propTypes.default.shape({
98
- radius: _propTypes.default.oneOf(['line', 'none']),
100
+ radius: _propTypes.default.oneOf(['band', 'line', 'none']),
99
101
  rotation: _propTypes.default.oneOf(['band', 'line', 'none'])
100
102
  }),
101
103
  /**
@@ -5,6 +5,8 @@ import { useThemeProps } from '@mui/material/styles';
5
5
  import { useChartsContainerProps } from '@mui/x-charts/internals';
6
6
  import { Unstable_ChartsRadialGrid as ChartsRadialGrid } from '@mui/x-charts/ChartsRadialGrid';
7
7
  import { Unstable_ChartsRadialAxisHighlight as ChartsRadialAxisHighlight } from '@mui/x-charts/ChartsRadialAxisHighlight';
8
+ import { Unstable_ChartsRadiusAxis as ChartsRadiusAxis } from '@mui/x-charts/ChartsRadiusAxis';
9
+ import { Unstable_ChartsRotationAxis as ChartsRotationAxis } from '@mui/x-charts/ChartsRotationAxis';
8
10
  import { ChartsLegend } from "../ChartsLegend/index.mjs";
9
11
  import { ChartsSurface } from "../ChartsSurface/index.mjs";
10
12
  import { ChartsTooltip } from "../ChartsTooltip/index.mjs";
@@ -61,7 +63,7 @@ const RadialLineChart = /*#__PURE__*/React.forwardRef(function RadialLineChart(i
61
63
  children: [props.showToolbar && Toolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
62
64
  children: [/*#__PURE__*/_jsx(ChartsRadialGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
63
65
  children: [/*#__PURE__*/_jsx(RadialAreaPlot, {}), /*#__PURE__*/_jsx(RadialLinePlot, {}), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps))]
64
- })), /*#__PURE__*/_jsx(ChartsRadialAxisHighlight, _extends({}, axisHighlightProps)), /*#__PURE__*/_jsx(RadialMarkPlot, {}), /*#__PURE__*/_jsx(RadialLineHighlightPlot, {
66
+ })), /*#__PURE__*/_jsx(ChartsRadialAxisHighlight, _extends({}, axisHighlightProps)), /*#__PURE__*/_jsx(ChartsRotationAxis, {}), /*#__PURE__*/_jsx(ChartsRadiusAxis, {}), /*#__PURE__*/_jsx(RadialMarkPlot, {}), /*#__PURE__*/_jsx(RadialLineHighlightPlot, {
65
67
  slots: props.slots,
66
68
  slotProps: props.slotProps
67
69
  }), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
@@ -87,7 +89,7 @@ process.env.NODE_ENV !== "production" ? RadialLineChart.propTypes = {
87
89
  * @default { rotation: 'line' }
88
90
  */
89
91
  axisHighlight: PropTypes.shape({
90
- radius: PropTypes.oneOf(['line', 'none']),
92
+ radius: PropTypes.oneOf(['band', 'line', 'none']),
91
93
  rotation: PropTypes.oneOf(['band', 'line', 'none'])
92
94
  }),
93
95
  /**
@@ -1,4 +1,4 @@
1
1
  import { type UseChartZAxisSignature, type UseChartPolarAxisSignature, type UseChartTooltipSignature, type UseChartInteractionSignature, type UseChartHighlightSignature, type UseChartKeyboardNavigationSignature, type UseChartVisibilityManagerSignature, type ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
2
- import { type UseChartProExportSignature } from "../plugins/index.mjs";
2
+ import { type UseChartProExportSignature } from '@mui/x-charts-pro/plugins';
3
3
  export type RadialLineChartPluginSignatures = [UseChartZAxisSignature, UseChartTooltipSignature<'radialLine'>, UseChartInteractionSignature, UseChartPolarAxisSignature<'radialLine'>, UseChartHighlightSignature<'radialLine'>, UseChartVisibilityManagerSignature<'radialLine'>, UseChartKeyboardNavigationSignature, UseChartProExportSignature];
4
4
  export declare const RADIAL_LINE_CHART_PLUGINS: ConvertSignaturesIntoPlugins<RadialLineChartPluginSignatures>;
@@ -1,4 +1,4 @@
1
1
  import { type UseChartZAxisSignature, type UseChartPolarAxisSignature, type UseChartTooltipSignature, type UseChartInteractionSignature, type UseChartHighlightSignature, type UseChartKeyboardNavigationSignature, type UseChartVisibilityManagerSignature, type ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
2
- import { type UseChartProExportSignature } from "../plugins/index.js";
2
+ import { type UseChartProExportSignature } from '@mui/x-charts-pro/plugins';
3
3
  export type RadialLineChartPluginSignatures = [UseChartZAxisSignature, UseChartTooltipSignature<'radialLine'>, UseChartInteractionSignature, UseChartPolarAxisSignature<'radialLine'>, UseChartHighlightSignature<'radialLine'>, UseChartVisibilityManagerSignature<'radialLine'>, UseChartKeyboardNavigationSignature, UseChartProExportSignature];
4
4
  export declare const RADIAL_LINE_CHART_PLUGINS: ConvertSignaturesIntoPlugins<RadialLineChartPluginSignatures>;
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.RADIAL_LINE_CHART_PLUGINS = void 0;
7
7
  var _internals = require("@mui/x-charts/internals");
8
- var _plugins = require("../plugins");
8
+ var _plugins = require("@mui/x-charts-pro/plugins");
9
9
  const RADIAL_LINE_CHART_PLUGINS = exports.RADIAL_LINE_CHART_PLUGINS = [_internals.useChartZAxis, _internals.useChartTooltip, _internals.useChartInteraction, _internals.useChartPolarAxis, _internals.useChartHighlight, _internals.useChartVisibilityManager, _internals.useChartKeyboardNavigation, _plugins.useChartProExport];
@@ -1,3 +1,3 @@
1
1
  import { useChartZAxis, useChartPolarAxis, useChartTooltip, useChartInteraction, useChartHighlight, useChartKeyboardNavigation, useChartVisibilityManager } from '@mui/x-charts/internals';
2
- import { useChartProExport } from "../plugins/index.mjs";
2
+ import { useChartProExport } from '@mui/x-charts-pro/plugins';
3
3
  export const RADIAL_LINE_CHART_PLUGINS = [useChartZAxis, useChartTooltip, useChartInteraction, useChartPolarAxis, useChartHighlight, useChartVisibilityManager, useChartKeyboardNavigation, useChartProExport];
@@ -21,7 +21,7 @@ function getBracketIndices(rotationAxis, angle) {
21
21
  return null;
22
22
  }
23
23
  if ((0, _internals.isOrdinalScale)(scale)) {
24
- const index = (0, _internals.getPolarAxisIndex)(rotationAxis, angle);
24
+ const index = (0, _internals.getRotationAxisIndex)(rotationAxis, angle);
25
25
  if (index === -1) {
26
26
  return null;
27
27
  }
@@ -200,7 +200,7 @@ function getItemAtPosition(state, point) {
200
200
  connectNulls,
201
201
  curve
202
202
  } = seriesItem;
203
- const dataIndex = (0, _internals.getPolarAxisIndex)(rotationAxis, pointerAngle);
203
+ const dataIndex = (0, _internals.getRotationAxisIndex)(rotationAxis, pointerAngle);
204
204
  if (dataIndex === -1) {
205
205
  continue;
206
206
  }
@@ -338,7 +338,7 @@ function getItemAtPosition(state, point) {
338
338
  const radiusMin = Math.min(innerRadius, outerRadius);
339
339
  const radiusMax = Math.max(innerRadius, outerRadius);
340
340
  if (pointerRadius >= radiusMin && pointerRadius <= radiusMax) {
341
- const dataIndex = (0, _internals.getPolarAxisIndex)(rotationAxis, pointerAngle);
341
+ const dataIndex = (0, _internals.getRotationAxisIndex)(rotationAxis, pointerAngle);
342
342
  return {
343
343
  type: 'radialLine',
344
344
  seriesId,
@@ -1,5 +1,5 @@
1
1
  import { getValueToPositionMapper } from '@mui/x-charts/hooks';
2
- import { selectorAllSeriesOfType, selectorChartPolarCenter, selectorChartRadiusAxis, selectorChartRotationAxis, getPolarAxisIndex, isOrdinalScale } from '@mui/x-charts/internals';
2
+ import { selectorAllSeriesOfType, selectorChartPolarCenter, selectorChartRadiusAxis, selectorChartRotationAxis, getRotationAxisIndex, isOrdinalScale } from '@mui/x-charts/internals';
3
3
  import { evaluateCurveAtAngle, clampAngleRad, getAsNumber } from '@mui/x-charts/internals';
4
4
  /**
5
5
  * For a continuous rotation axis, find the two data indices that bracket the pointer's angle position.
@@ -16,7 +16,7 @@ function getBracketIndices(rotationAxis, angle) {
16
16
  return null;
17
17
  }
18
18
  if (isOrdinalScale(scale)) {
19
- const index = getPolarAxisIndex(rotationAxis, angle);
19
+ const index = getRotationAxisIndex(rotationAxis, angle);
20
20
  if (index === -1) {
21
21
  return null;
22
22
  }
@@ -195,7 +195,7 @@ export default function getItemAtPosition(state, point) {
195
195
  connectNulls,
196
196
  curve
197
197
  } = seriesItem;
198
- const dataIndex = getPolarAxisIndex(rotationAxis, pointerAngle);
198
+ const dataIndex = getRotationAxisIndex(rotationAxis, pointerAngle);
199
199
  if (dataIndex === -1) {
200
200
  continue;
201
201
  }
@@ -333,7 +333,7 @@ export default function getItemAtPosition(state, point) {
333
333
  const radiusMin = Math.min(innerRadius, outerRadius);
334
334
  const radiusMax = Math.max(innerRadius, outerRadius);
335
335
  if (pointerRadius >= radiusMin && pointerRadius <= radiusMax) {
336
- const dataIndex = getPolarAxisIndex(rotationAxis, pointerAngle);
336
+ const dataIndex = getRotationAxisIndex(rotationAxis, pointerAngle);
337
337
  return {
338
338
  type: 'radialLine',
339
339
  seriesId,
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts-premium v9.1.0
2
+ * @mui/x-charts-premium v9.2.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts-premium v9.1.0
2
+ * @mui/x-charts-premium v9.2.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the