@mui/x-charts 8.22.1 → 8.23.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 (124) hide show
  1. package/BarChart/BarElement.js +1 -1
  2. package/BarChart/FocusedBar.js +1 -1
  3. package/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
  4. package/BarChart/seriesConfig/bar/keyboardFocusHandler.js +23 -0
  5. package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -2
  6. package/BarChart/seriesConfig/index.js +3 -1
  7. package/CHANGELOG.md +101 -0
  8. package/LineChart/FocusedLineMark.js +1 -1
  9. package/LineChart/seriesConfig/index.js +3 -1
  10. package/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  11. package/LineChart/seriesConfig/keyboardFocusHandler.js +23 -0
  12. package/LineChart/seriesConfig/seriesProcessor.js +2 -2
  13. package/PieChart/FocusedPieArc.js +1 -1
  14. package/PieChart/dataTransform/useTransformData.js +1 -1
  15. package/PieChart/seriesConfig/index.js +3 -1
  16. package/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  17. package/PieChart/seriesConfig/keyboardFocusHandler.js +23 -0
  18. package/ScatterChart/FocusedScatterMark.js +1 -1
  19. package/ScatterChart/seriesConfig/index.js +3 -1
  20. package/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  21. package/ScatterChart/seriesConfig/keyboardFocusHandler.js +23 -0
  22. package/esm/BarChart/BarElement.js +1 -1
  23. package/esm/BarChart/FocusedBar.js +1 -1
  24. package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
  25. package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.js +17 -0
  26. package/esm/BarChart/seriesConfig/bar/seriesProcessor.js +1 -1
  27. package/esm/BarChart/seriesConfig/index.js +3 -1
  28. package/esm/LineChart/FocusedLineMark.js +1 -1
  29. package/esm/LineChart/seriesConfig/index.js +3 -1
  30. package/esm/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  31. package/esm/LineChart/seriesConfig/keyboardFocusHandler.js +17 -0
  32. package/esm/LineChart/seriesConfig/seriesProcessor.js +1 -1
  33. package/esm/PieChart/FocusedPieArc.js +1 -1
  34. package/esm/PieChart/dataTransform/useTransformData.js +1 -1
  35. package/esm/PieChart/seriesConfig/index.js +3 -1
  36. package/esm/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  37. package/esm/PieChart/seriesConfig/keyboardFocusHandler.js +17 -0
  38. package/esm/ScatterChart/FocusedScatterMark.js +1 -1
  39. package/esm/ScatterChart/seriesConfig/index.js +3 -1
  40. package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
  41. package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.js +17 -0
  42. package/esm/hooks/useFocusedItem.d.ts +1 -12
  43. package/esm/hooks/useFocusedItem.js +3 -10
  44. package/esm/hooks/useIsItemFocused.d.ts +4 -3
  45. package/esm/hooks/useIsItemFocused.js +1 -1
  46. package/esm/hooks/useIsItemFocusedGetter.d.ts +3 -2
  47. package/esm/hooks/useIsItemFocusedGetter.js +2 -1
  48. package/esm/index.js +1 -1
  49. package/esm/internals/commonNextFocusItem.d.ts +14 -0
  50. package/esm/internals/commonNextFocusItem.js +84 -0
  51. package/esm/internals/index.d.ts +1 -1
  52. package/esm/internals/index.js +1 -1
  53. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
  54. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +1 -0
  55. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
  56. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +12 -105
  57. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
  58. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +9 -15
  59. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
  60. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
  61. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +45 -0
  62. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
  63. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +40 -0
  64. package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +1 -9
  65. package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +2 -2
  66. package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
  67. package/esm/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  68. package/esm/internals/seriesHasData.d.ts +4 -0
  69. package/esm/internals/seriesHasData.js +8 -0
  70. package/esm/internals/stacking/index.d.ts +1 -0
  71. package/esm/internals/stacking/index.js +1 -0
  72. package/esm/internals/stacking/offset/index.d.ts +1 -0
  73. package/esm/internals/stacking/offset/index.js +1 -0
  74. package/esm/internals/stacking/offset/offsetDiverging.d.ts +8 -0
  75. package/esm/internals/stacking/offset/offsetDiverging.js +47 -0
  76. package/esm/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
  77. package/esm/internals/{stackSeries.js → stacking/stackSeries.js} +8 -6
  78. package/esm/models/seriesType/index.d.ts +3 -1
  79. package/hooks/useFocusedItem.d.ts +1 -12
  80. package/hooks/useFocusedItem.js +1 -10
  81. package/hooks/useIsItemFocused.d.ts +4 -3
  82. package/hooks/useIsItemFocused.js +1 -1
  83. package/hooks/useIsItemFocusedGetter.d.ts +3 -2
  84. package/hooks/useIsItemFocusedGetter.js +2 -1
  85. package/index.js +1 -1
  86. package/internals/commonNextFocusItem.d.ts +14 -0
  87. package/internals/commonNextFocusItem.js +93 -0
  88. package/internals/index.d.ts +1 -1
  89. package/internals/index.js +4 -4
  90. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
  91. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +5 -0
  92. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
  93. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +11 -104
  94. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
  95. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +10 -16
  96. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
  97. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
  98. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +51 -0
  99. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
  100. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +46 -0
  101. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +1 -9
  102. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +1 -1
  103. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +2 -0
  104. package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
  105. package/internals/seriesHasData.d.ts +4 -0
  106. package/internals/seriesHasData.js +14 -0
  107. package/internals/stacking/index.d.ts +1 -0
  108. package/internals/stacking/index.js +16 -0
  109. package/internals/stacking/offset/index.d.ts +1 -0
  110. package/internals/stacking/offset/index.js +16 -0
  111. package/internals/stacking/offset/offsetDiverging.d.ts +8 -0
  112. package/internals/stacking/offset/offsetDiverging.js +53 -0
  113. package/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
  114. package/internals/{stackSeries.js → stacking/stackSeries.js} +3 -1
  115. package/models/seriesType/index.d.ts +3 -1
  116. package/package.json +4 -4
  117. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
  118. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -4
  119. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
  120. package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -92
  121. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
  122. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -10
  123. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
  124. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -99
@@ -50,7 +50,7 @@ function BarElement(props) {
50
50
  isHighlighted
51
51
  } = (0, _useItemHighlighted.useItemHighlighted)(itemIdentifier);
52
52
  const isFocused = (0, _useIsItemFocused.useIsItemFocused)(React.useMemo(() => ({
53
- seriesType: 'bar',
53
+ type: 'bar',
54
54
  seriesId: id,
55
55
  dataIndex
56
56
  }), [id, dataIndex]));
@@ -26,7 +26,7 @@ function FocusedBar(props) {
26
26
  yAxis,
27
27
  yAxisIds
28
28
  } = (0, _hooks.useYAxes)();
29
- if (focusedItem === null || focusedItem.seriesType !== 'bar' || !barSeries) {
29
+ if (focusedItem === null || focusedItem.type !== 'bar' || !barSeries) {
30
30
  return null;
31
31
  }
32
32
  const series = barSeries?.series[focusedItem.seriesId];
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'bar', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commonNextFocusItem = require("../../../internals/commonNextFocusItem");
8
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
9
+ const keyboardFocusHandler = event => {
10
+ switch (event.key) {
11
+ case 'ArrowRight':
12
+ return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
13
+ case 'ArrowLeft':
14
+ return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
15
+ case 'ArrowDown':
16
+ return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
17
+ case 'ArrowUp':
18
+ return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
19
+ default:
20
+ return null;
21
+ }
22
+ };
23
+ var _default = exports.default = keyboardFocusHandler;
@@ -8,14 +8,14 @@ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
10
10
  var _warning = require("@mui/x-internals/warning");
11
- var _stackSeries = require("../../../internals/stackSeries");
11
+ var _stacking = require("../../../internals/stacking");
12
12
  const barValueFormatter = v => v == null ? '' : v.toLocaleString();
13
13
  const seriesProcessor = (params, dataset) => {
14
14
  const {
15
15
  seriesOrder,
16
16
  series
17
17
  } = params;
18
- const stackingGroups = (0, _stackSeries.getStackingGroups)(params);
18
+ const stackingGroups = (0, _stacking.getStackingGroups)(params);
19
19
 
20
20
  // Create a data set with format adapted to d3
21
21
  const d3Dataset = dataset ?? [];
@@ -10,6 +10,7 @@ var _extremums = require("./bar/extremums");
10
10
  var _seriesProcessor = _interopRequireDefault(require("./bar/seriesProcessor"));
11
11
  var _legend = _interopRequireDefault(require("./bar/legend"));
12
12
  var _getColor = _interopRequireDefault(require("./bar/getColor"));
13
+ var _keyboardFocusHandler = _interopRequireDefault(require("./bar/keyboardFocusHandler"));
13
14
  var _tooltip = _interopRequireWildcard(require("./bar/tooltip"));
14
15
  var _tooltipPosition = _interopRequireDefault(require("./bar/tooltipPosition"));
15
16
  var _getSeriesWithDefaultValues = require("./bar/getSeriesWithDefaultValues");
@@ -22,5 +23,6 @@ const barSeriesConfig = exports.barSeriesConfig = {
22
23
  axisTooltipGetter: _tooltip.axisTooltipGetter,
23
24
  xExtremumGetter: _extremums.getExtremumX,
24
25
  yExtremumGetter: _extremums.getExtremumY,
25
- getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues
26
+ getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues,
27
+ keyboardFocusHandler: _keyboardFocusHandler.default
26
28
  };
package/CHANGELOG.md CHANGED
@@ -5,6 +5,107 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.23.0
9
+
10
+ _Dec 23, 2025_
11
+
12
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🧮 Support Data Grid `size`, `size(true)`, and `size(false)` [aggregations for `'boolean'` column type](https://mui.com/x/react-data-grid/aggregation/#usage-with-row-grouping)
15
+ - 🔎 Allow zooming a heatmap
16
+
17
+ Special thanks go out to these community members for their valuable contributions:
18
+ @henkerik, @sai6855
19
+
20
+ The following team members contributed to this release:
21
+ @alelthomas, @alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @flaviendelangle, @JCQuintas, @mapache-salvaje, @MBilalShafi, @siriwatknp
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.23.0`
26
+
27
+ - [DataGrid] Fix columns state and columns prop sync issue (#20703) @arminmeh
28
+ - [DataGrid] Fix filter datetime with seconds (#20557) @siriwatknp
29
+ - [DataGrid] Add new `includeHeaderFilters` flag to include header filters when autosizing columns (#20510) @siriwatknp
30
+ - [DataGrid] Prevent default on `Enter` key down when starting editing (#20751) @siriwatknp
31
+ - [l10n] Improve Portuguese from Portugal (pt-PT) locale (#20722) @Copilot
32
+
33
+ #### `@mui/x-data-grid-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
34
+
35
+ Same changes as in `@mui/x-data-grid@8.23.0`, plus:
36
+
37
+ - [DataGridPro] Fix crash on rows change in tree data with pagination (#20215) @Copilot
38
+
39
+ #### `@mui/x-data-grid-premium@8.23.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
40
+
41
+ Same changes as in `@mui/x-data-grid-pro@8.23.0`, plus:
42
+
43
+ - [DataGridPremium] Add aggregation for `'boolean'` column type (#20683) @arminmeh
44
+ - [DataGridPremium] Fix strategy value computation with row grouping (#20725) @MBilalShafi
45
+ - [DataGridPremium] Handle `isRowSelectable()` checks for the rows missing due to `keepNonExistentRowsSelected` (#20668) @arminmeh
46
+
47
+ ### Date and Time Pickers
48
+
49
+ #### `@mui/x-date-pickers@8.23.0`
50
+
51
+ Internal changes.
52
+
53
+ #### `@mui/x-date-pickers-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
54
+
55
+ Same changes as in `@mui/x-date-pickers@8.23.0`.
56
+
57
+ ### Charts
58
+
59
+ #### `@mui/x-charts@8.23.0`
60
+
61
+ - [charts] Custom stack functions implementation (#20679) @JCQuintas
62
+ - [charts] Extract keyboard focus navigation to the series config (#20693) @alexfauquette
63
+ - [charts] Fix demo not wrapping in mobile (#20713) @JCQuintas
64
+ - [charts] Fix missing dependencies in `x-charts-vendor` (#20685) @henkerik
65
+ - [charts] Remove webkit test differences (#20707) @JCQuintas
66
+
67
+ #### `@mui/x-charts-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
68
+
69
+ Same changes as in `@mui/x-charts@8.23.0`, plus:
70
+
71
+ - [charts-pro] Allow registering preview plots from higher tier packages (#20716) @bernardobelchior
72
+ - [charts-pro] Fix erroneous behavior when adding/removing pointers from zoom&pan gestures (#20698) @JCQuintas
73
+ - [charts-pro] Move heatmap highlight handling to plot component (#20701) @bernardobelchior
74
+ - [charts-pro] Add zoom to heatmap (#20708) @bernardobelchior
75
+
76
+ #### `@mui/x-charts-premium@8.23.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
77
+
78
+ Same changes as in `@mui/x-charts-pro@8.23.0`.
79
+
80
+ ### Tree View
81
+
82
+ #### `@mui/x-tree-view@8.23.0`
83
+
84
+ - [tree view] Add new APIs to disable selection feature for tree view item (#20666) @siriwatknp
85
+
86
+ #### `@mui/x-tree-view-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
87
+
88
+ Same changes as in `@mui/x-tree-view@8.23.0`.
89
+
90
+ ### Codemod
91
+
92
+ #### `@mui/x-codemod@8.23.0`
93
+
94
+ Internal changes.
95
+
96
+ ### Docs
97
+
98
+ - [docs] Clarify feature availability and relationship between Community and Pro/Premium docs (#20714) @mapache-salvaje
99
+ - [docs] Copyedit Tree View docs and apply new component style rules (DX-19) (#20652) @mapache-salvaje
100
+ - [docs] Fix `ColumnPinningDynamicRowHeight` demo (#20750) @sai6855
101
+ - [docs] Clean up Charts docs sidebar (DX-97) (#20700) @alelthomas
102
+ - [docs] Fix tick labels not being shown on a demo (#20718) @sai6855
103
+
104
+ ### Core
105
+
106
+ - [code-infra] Bump prettier to 3.7.4 (#20709) @JCQuintas
107
+ - [code-infra] Fix contributor generation logic in changelog script (#20705) @brijeshb42
108
+
8
109
  ## 8.22.1
9
110
 
10
111
  _Dec 17, 2025_
@@ -22,7 +22,7 @@ function FocusedLineMark() {
22
22
  yAxis,
23
23
  yAxisIds
24
24
  } = (0, _hooks.useYAxes)();
25
- if (focusedItem === null || focusedItem.seriesType !== 'line' || !lineSeries) {
25
+ if (focusedItem === null || focusedItem.type !== 'line' || !lineSeries) {
26
26
  return null;
27
27
  }
28
28
  const series = lineSeries?.series[focusedItem.seriesId];
@@ -13,6 +13,7 @@ var _legend = _interopRequireDefault(require("./legend"));
13
13
  var _tooltip = _interopRequireWildcard(require("./tooltip"));
14
14
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
15
15
  var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
16
+ var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
16
17
  const lineSeriesConfig = exports.lineSeriesConfig = {
17
18
  colorProcessor: _getColor.default,
18
19
  seriesProcessor: _seriesProcessor.default,
@@ -22,5 +23,6 @@ const lineSeriesConfig = exports.lineSeriesConfig = {
22
23
  axisTooltipGetter: _tooltip.axisTooltipGetter,
23
24
  xExtremumGetter: _extremums.getExtremumX,
24
25
  yExtremumGetter: _extremums.getExtremumY,
25
- getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
26
+ getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
27
+ keyboardFocusHandler: _keyboardFocusHandler.default
26
28
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'line', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
8
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
9
+ const keyboardFocusHandler = event => {
10
+ switch (event.key) {
11
+ case 'ArrowRight':
12
+ return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
13
+ case 'ArrowLeft':
14
+ return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
15
+ case 'ArrowDown':
16
+ return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
17
+ case 'ArrowUp':
18
+ return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
19
+ default:
20
+ return null;
21
+ }
22
+ };
23
+ var _default = exports.default = keyboardFocusHandler;
@@ -8,13 +8,13 @@ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
10
10
  var _warning = require("@mui/x-internals/warning");
11
- var _stackSeries = require("../../internals/stackSeries");
11
+ var _stacking = require("../../internals/stacking");
12
12
  const seriesProcessor = (params, dataset) => {
13
13
  const {
14
14
  seriesOrder,
15
15
  series
16
16
  } = params;
17
- const stackingGroups = (0, _stackSeries.getStackingGroups)((0, _extends2.default)({}, params, {
17
+ const stackingGroups = (0, _stacking.getStackingGroups)((0, _extends2.default)({}, params, {
18
18
  defaultStrategy: {
19
19
  stackOffset: 'none'
20
20
  }
@@ -25,7 +25,7 @@ function FocusedPieArc(props) {
25
25
  isFaded
26
26
  } = (0, _useItemHighlighted.useItemHighlighted)(focusedItem);
27
27
  const pieSeries = (0, _usePieSeries.usePieSeriesContext)();
28
- if (focusedItem === null || focusedItem.seriesType !== 'pie' || !pieSeries) {
28
+ if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
29
29
  return null;
30
30
  }
31
31
  const series = pieSeries?.series[focusedItem.seriesId];
@@ -32,7 +32,7 @@ function useTransformData(series) {
32
32
  const isHighlighted = isItemHighlighted(currentItem);
33
33
  const isFaded = !isHighlighted && isItemFaded(currentItem);
34
34
  const isFocused = isItemFocused({
35
- seriesType: 'pie',
35
+ type: 'pie',
36
36
  seriesId,
37
37
  dataIndex: itemIndex
38
38
  });
@@ -12,6 +12,7 @@ var _tooltip = _interopRequireDefault(require("./tooltip"));
12
12
  var _seriesLayout = _interopRequireDefault(require("./seriesLayout"));
13
13
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
14
14
  var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
15
+ var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
15
16
  const pieSeriesConfig = exports.pieSeriesConfig = {
16
17
  colorProcessor: _getColor.default,
17
18
  seriesProcessor: _seriesProcessor.default,
@@ -19,5 +20,6 @@ const pieSeriesConfig = exports.pieSeriesConfig = {
19
20
  legendGetter: _legend.default,
20
21
  tooltipGetter: _tooltip.default,
21
22
  tooltipItemPositionGetter: _tooltipPosition.default,
22
- getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
23
+ getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
24
+ keyboardFocusHandler: _keyboardFocusHandler.default
23
25
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'pie', 'pie'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
8
+ const outSeriesTypes = new Set(['pie']);
9
+ const keyboardFocusHandler = event => {
10
+ switch (event.key) {
11
+ case 'ArrowRight':
12
+ return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
13
+ case 'ArrowLeft':
14
+ return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
15
+ case 'ArrowDown':
16
+ return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
17
+ case 'ArrowUp':
18
+ return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
19
+ default:
20
+ return null;
21
+ }
22
+ };
23
+ var _default = exports.default = keyboardFocusHandler;
@@ -25,7 +25,7 @@ function FocusedScatterMark(props) {
25
25
  yAxis,
26
26
  yAxisIds
27
27
  } = (0, _hooks.useYAxes)();
28
- if (focusedItem === null || focusedItem.seriesType !== 'scatter' || !scatterSeries) {
28
+ if (focusedItem === null || focusedItem.type !== 'scatter' || !scatterSeries) {
29
29
  return null;
30
30
  }
31
31
  const series = scatterSeries?.series[focusedItem.seriesId];
@@ -12,6 +12,7 @@ var _legend = _interopRequireDefault(require("./legend"));
12
12
  var _tooltip = _interopRequireDefault(require("./tooltip"));
13
13
  var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
14
14
  var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
15
+ var _keyboardFocusHandler = _interopRequireDefault(require("./keyboardFocusHandler"));
15
16
  const scatterSeriesConfig = exports.scatterSeriesConfig = {
16
17
  seriesProcessor: _seriesProcessor.default,
17
18
  colorProcessor: _getColor.default,
@@ -20,5 +21,6 @@ const scatterSeriesConfig = exports.scatterSeriesConfig = {
20
21
  tooltipItemPositionGetter: _tooltipPosition.default,
21
22
  xExtremumGetter: _extremums.getExtremumX,
22
23
  yExtremumGetter: _extremums.getExtremumY,
23
- getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
24
+ getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default,
25
+ keyboardFocusHandler: _keyboardFocusHandler.default
24
26
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'scatter', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commonNextFocusItem = require("../../internals/commonNextFocusItem");
8
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
9
+ const keyboardFocusHandler = event => {
10
+ switch (event.key) {
11
+ case 'ArrowRight':
12
+ return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
13
+ case 'ArrowLeft':
14
+ return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
15
+ case 'ArrowDown':
16
+ return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
17
+ case 'ArrowUp':
18
+ return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
19
+ default:
20
+ return null;
21
+ }
22
+ };
23
+ var _default = exports.default = keyboardFocusHandler;
@@ -43,7 +43,7 @@ function BarElement(props) {
43
43
  isHighlighted
44
44
  } = useItemHighlighted(itemIdentifier);
45
45
  const isFocused = useIsItemFocused(React.useMemo(() => ({
46
- seriesType: 'bar',
46
+ type: 'bar',
47
47
  seriesId: id,
48
48
  dataIndex
49
49
  }), [id, dataIndex]));
@@ -19,7 +19,7 @@ export function FocusedBar(props) {
19
19
  yAxis,
20
20
  yAxisIds
21
21
  } = useYAxes();
22
- if (focusedItem === null || focusedItem.seriesType !== 'bar' || !barSeries) {
22
+ if (focusedItem === null || focusedItem.type !== 'bar' || !barSeries) {
23
23
  return null;
24
24
  }
25
25
  const series = barSeries?.series[focusedItem.seriesId];
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'bar', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,17 @@
1
+ import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../../internals/commonNextFocusItem.js";
2
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
3
+ const keyboardFocusHandler = event => {
4
+ switch (event.key) {
5
+ case 'ArrowRight':
6
+ return createGetNextIndexFocusedItem(outSeriesTypes);
7
+ case 'ArrowLeft':
8
+ return createGetPreviousIndexFocusedItem(outSeriesTypes);
9
+ case 'ArrowDown':
10
+ return createGetPreviousSeriesFocusedItem(outSeriesTypes);
11
+ case 'ArrowUp':
12
+ return createGetNextSeriesFocusedItem(outSeriesTypes);
13
+ default:
14
+ return null;
15
+ }
16
+ };
17
+ export default keyboardFocusHandler;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { stack as d3Stack } from '@mui/x-charts-vendor/d3-shape';
3
3
  import { warnOnce } from '@mui/x-internals/warning';
4
- import { getStackingGroups } from "../../../internals/stackSeries.js";
4
+ import { getStackingGroups } from "../../../internals/stacking/index.js";
5
5
  const barValueFormatter = v => v == null ? '' : v.toLocaleString();
6
6
  const seriesProcessor = (params, dataset) => {
7
7
  const {
@@ -2,6 +2,7 @@ import { getExtremumX, getExtremumY } from "./bar/extremums.js";
2
2
  import seriesProcessor from "./bar/seriesProcessor.js";
3
3
  import legendGetter from "./bar/legend.js";
4
4
  import getColor from "./bar/getColor.js";
5
+ import keyboardFocusHandler from "./bar/keyboardFocusHandler.js";
5
6
  import tooltipGetter, { axisTooltipGetter } from "./bar/tooltip.js";
6
7
  import tooltipItemPositionGetter from "./bar/tooltipPosition.js";
7
8
  import { getSeriesWithDefaultValues } from "./bar/getSeriesWithDefaultValues.js";
@@ -14,5 +15,6 @@ export const barSeriesConfig = {
14
15
  axisTooltipGetter,
15
16
  xExtremumGetter: getExtremumX,
16
17
  yExtremumGetter: getExtremumY,
17
- getSeriesWithDefaultValues
18
+ getSeriesWithDefaultValues,
19
+ keyboardFocusHandler
18
20
  };
@@ -17,7 +17,7 @@ export function FocusedLineMark() {
17
17
  yAxis,
18
18
  yAxisIds
19
19
  } = useYAxes();
20
- if (focusedItem === null || focusedItem.seriesType !== 'line' || !lineSeries) {
20
+ if (focusedItem === null || focusedItem.type !== 'line' || !lineSeries) {
21
21
  return null;
22
22
  }
23
23
  const series = lineSeries?.series[focusedItem.seriesId];
@@ -5,6 +5,7 @@ import legendGetter from "./legend.js";
5
5
  import tooltipGetter, { axisTooltipGetter } from "./tooltip.js";
6
6
  import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
7
7
  import tooltipItemPositionGetter from "./tooltipPosition.js";
8
+ import keyboardFocusHandler from "./keyboardFocusHandler.js";
8
9
  export const lineSeriesConfig = {
9
10
  colorProcessor: getColor,
10
11
  seriesProcessor,
@@ -14,5 +15,6 @@ export const lineSeriesConfig = {
14
15
  axisTooltipGetter,
15
16
  xExtremumGetter: getExtremumX,
16
17
  yExtremumGetter: getExtremumY,
17
- getSeriesWithDefaultValues
18
+ getSeriesWithDefaultValues,
19
+ keyboardFocusHandler
18
20
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'line', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,17 @@
1
+ import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
2
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
3
+ const keyboardFocusHandler = event => {
4
+ switch (event.key) {
5
+ case 'ArrowRight':
6
+ return createGetNextIndexFocusedItem(outSeriesTypes);
7
+ case 'ArrowLeft':
8
+ return createGetPreviousIndexFocusedItem(outSeriesTypes);
9
+ case 'ArrowDown':
10
+ return createGetPreviousSeriesFocusedItem(outSeriesTypes);
11
+ case 'ArrowUp':
12
+ return createGetNextSeriesFocusedItem(outSeriesTypes);
13
+ default:
14
+ return null;
15
+ }
16
+ };
17
+ export default keyboardFocusHandler;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { stack as d3Stack } from '@mui/x-charts-vendor/d3-shape';
3
3
  import { warnOnce } from '@mui/x-internals/warning';
4
- import { getStackingGroups } from "../../internals/stackSeries.js";
4
+ import { getStackingGroups } from "../../internals/stacking/index.js";
5
5
  const seriesProcessor = (params, dataset) => {
6
6
  const {
7
7
  seriesOrder,
@@ -18,7 +18,7 @@ export function FocusedPieArc(props) {
18
18
  isFaded
19
19
  } = useItemHighlighted(focusedItem);
20
20
  const pieSeries = usePieSeriesContext();
21
- if (focusedItem === null || focusedItem.seriesType !== 'pie' || !pieSeries) {
21
+ if (focusedItem === null || focusedItem.type !== 'pie' || !pieSeries) {
22
22
  return null;
23
23
  }
24
24
  const series = pieSeries?.series[focusedItem.seriesId];
@@ -25,7 +25,7 @@ export function useTransformData(series) {
25
25
  const isHighlighted = isItemHighlighted(currentItem);
26
26
  const isFaded = !isHighlighted && isItemFaded(currentItem);
27
27
  const isFocused = isItemFocused({
28
- seriesType: 'pie',
28
+ type: 'pie',
29
29
  seriesId,
30
30
  dataIndex: itemIndex
31
31
  });
@@ -5,6 +5,7 @@ import tooltipGetter from "./tooltip.js";
5
5
  import seriesLayout from "./seriesLayout.js";
6
6
  import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
7
7
  import tooltipItemPositionGetter from "./tooltipPosition.js";
8
+ import keyboardFocusHandler from "./keyboardFocusHandler.js";
8
9
  export const pieSeriesConfig = {
9
10
  colorProcessor: getColor,
10
11
  seriesProcessor,
@@ -12,5 +13,6 @@ export const pieSeriesConfig = {
12
13
  legendGetter,
13
14
  tooltipGetter,
14
15
  tooltipItemPositionGetter,
15
- getSeriesWithDefaultValues
16
+ getSeriesWithDefaultValues,
17
+ keyboardFocusHandler
16
18
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'pie', 'pie'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,17 @@
1
+ import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
2
+ const outSeriesTypes = new Set(['pie']);
3
+ const keyboardFocusHandler = event => {
4
+ switch (event.key) {
5
+ case 'ArrowRight':
6
+ return createGetNextIndexFocusedItem(outSeriesTypes);
7
+ case 'ArrowLeft':
8
+ return createGetPreviousIndexFocusedItem(outSeriesTypes);
9
+ case 'ArrowDown':
10
+ return createGetPreviousSeriesFocusedItem(outSeriesTypes);
11
+ case 'ArrowUp':
12
+ return createGetNextSeriesFocusedItem(outSeriesTypes);
13
+ default:
14
+ return null;
15
+ }
16
+ };
17
+ export default keyboardFocusHandler;
@@ -18,7 +18,7 @@ export function FocusedScatterMark(props) {
18
18
  yAxis,
19
19
  yAxisIds
20
20
  } = useYAxes();
21
- if (focusedItem === null || focusedItem.seriesType !== 'scatter' || !scatterSeries) {
21
+ if (focusedItem === null || focusedItem.type !== 'scatter' || !scatterSeries) {
22
22
  return null;
23
23
  }
24
24
  const series = scatterSeries?.series[focusedItem.seriesId];
@@ -5,6 +5,7 @@ import legendGetter from "./legend.js";
5
5
  import tooltipGetter from "./tooltip.js";
6
6
  import getSeriesWithDefaultValues from "./getSeriesWithDefaultValues.js";
7
7
  import tooltipItemPositionGetter from "./tooltipPosition.js";
8
+ import keyboardFocusHandler from "./keyboardFocusHandler.js";
8
9
  export const scatterSeriesConfig = {
9
10
  seriesProcessor,
10
11
  colorProcessor: getColor,
@@ -13,5 +14,6 @@ export const scatterSeriesConfig = {
13
14
  tooltipItemPositionGetter,
14
15
  xExtremumGetter: getExtremumX,
15
16
  yExtremumGetter: getExtremumY,
16
- getSeriesWithDefaultValues
17
+ getSeriesWithDefaultValues,
18
+ keyboardFocusHandler
17
19
  };
@@ -0,0 +1,3 @@
1
+ import type { KeyboardFocusHandler } from "../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
2
+ declare const keyboardFocusHandler: KeyboardFocusHandler<'scatter', 'bar' | 'line' | 'scatter'>;
3
+ export default keyboardFocusHandler;
@@ -0,0 +1,17 @@
1
+ import { createGetNextIndexFocusedItem, createGetPreviousIndexFocusedItem, createGetNextSeriesFocusedItem, createGetPreviousSeriesFocusedItem } from "../../internals/commonNextFocusItem.js";
2
+ const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
3
+ const keyboardFocusHandler = event => {
4
+ switch (event.key) {
5
+ case 'ArrowRight':
6
+ return createGetNextIndexFocusedItem(outSeriesTypes);
7
+ case 'ArrowLeft':
8
+ return createGetPreviousIndexFocusedItem(outSeriesTypes);
9
+ case 'ArrowDown':
10
+ return createGetPreviousSeriesFocusedItem(outSeriesTypes);
11
+ case 'ArrowUp':
12
+ return createGetNextSeriesFocusedItem(outSeriesTypes);
13
+ default:
14
+ return null;
15
+ }
16
+ };
17
+ export default keyboardFocusHandler;