@mui/x-charts-pro 8.19.0 → 8.20.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,68 @@
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.20.0
9
+
10
+ _Nov 26, 2025_
11
+
12
+ We'd like to extend a big thank you to the 8 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🔃 Data Grid tree data now supports row reordering. See the [Drag-and-drop tree data reordering](https://mui.com/x/react-data-grid/tree-data/#drag-and-drop-tree-data-reordering) section for more details.
15
+ - 🐞 Bugfixes
16
+
17
+ The following team members contributed to this release:
18
+ @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @siriwatknp, @JCQuintas, @MBilalShafi, @prakhargupta1
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@8.20.0`
23
+
24
+ - [DataGrid] Fix RTL virtualization to display columns when viewport width is larger than the grid (#20409) @siriwatknp
25
+ - [DataGrid] Fix row range selection (#20442) @arminmeh
26
+ - [DataGrid] Initialize data grid core packages (#20276) @cherniavskii
27
+ - [DataGrid] Improve accessibility of the sort icon (#20430) @arminmeh
28
+ - [DataGrid] Use `viewport` as a boundary for the `BasePopper` flip (#20311) @arminmeh
29
+
30
+ #### `@mui/x-data-grid-pro@8.20.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
+
32
+ Same changes as in `@mui/x-data-grid@8.20.0`, plus:
33
+
34
+ - [DataGridPro] Avoid automatic scroll back to the focused header filter after it leaves the viewport (#20416) @arminmeh
35
+ - [DataGridPro] Tree data row reordering (#19401) @MBilalShafi
36
+
37
+ #### `@mui/x-data-grid-premium@8.20.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
38
+
39
+ Same changes as in `@mui/x-data-grid-pro@8.20.0`.
40
+
41
+ ### Charts
42
+
43
+ #### `@mui/x-charts@8.20.0`
44
+
45
+ - [charts] Fix item tooltip position with node anchor (#20421) @alexfauquette
46
+ - [charts] Fix radar item tooltip closing bug (#20429) @alexfauquette
47
+ - [charts] Move series processing to selector (#20388) @JCQuintas
48
+ - [charts] Prevent pointer out from removing controlled highlight (#20385) @alexfauquette
49
+
50
+ #### `@mui/x-charts-pro@8.20.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-charts@8.20.0`, plus:
53
+
54
+ - [charts-pro] Fix Content-Security-Policy nonce not being correctly set on export (#20395) @bernardobelchior
55
+ - [charts-pro] Improve vertical zoom slider thumb on mobile (#20439) @bernardobelchior
56
+ - [charts-pro] Provide arguments to the `AreaPlotRoot` styled component (#20414) @arminmeh
57
+ - [charts-pro] Remove grid outside the drawing area (#20412) @alexfauquette
58
+
59
+ #### `@mui/x-charts-premium@8.20.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
60
+
61
+ Same changes as in `@mui/x-charts-pro@8.20.0`, plus:
62
+
63
+ - [charts-premium] Add explicit return type to `ChartsRenderer` for better compatibility with React 18 (#20413) @arminmeh
64
+
65
+ ### Docs
66
+
67
+ - [docs] Add `llms.txt` link to the sidebar (#20312) @siriwatknp
68
+ - [docs] Add a line chart demo for the Overview section (#20239) @prakhargupta1
69
+
8
70
  ## 8.19.0
9
71
 
10
72
  _Nov 20, 2025_
@@ -16,7 +16,7 @@ var _material = require("../internals/material");
16
16
  var _allPlugins = require("../internals/plugins/allPlugins");
17
17
  var _useChartDataProviderProProps = require("./useChartDataProviderProProps");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- const releaseInfo = "MTc2MzU5NjgwMDAwMA==";
19
+ const releaseInfo = "MTc2NDExNTIwMDAwMA==";
20
20
  const packageIdentifier = 'x-charts-pro';
21
21
  /**
22
22
  * Orchestrates the data providers for the chart components and hooks.
@@ -35,6 +35,10 @@ const Rect = (0, _styles.styled)('rect')(({
35
35
  cursor: 'ns-resize'
36
36
  }
37
37
  }));
38
+ function preventDefault(event) {
39
+ event.preventDefault();
40
+ }
41
+
38
42
  /**
39
43
  * Renders the zoom slider thumb, which is responsible for resizing the zoom range.
40
44
  * @internal
@@ -60,28 +64,38 @@ const ChartAxisZoomSliderThumb = exports.ChartAxisZoomSliderThumb = /*#__PURE__*
60
64
  React.useEffect(() => {
61
65
  const thumb = thumbRef.current;
62
66
  if (!thumb) {
63
- return;
67
+ return () => {};
64
68
  }
69
+
70
+ // Prevent scrolling on touch devices when dragging the thumb
71
+ thumb.addEventListener('touchmove', preventDefault, {
72
+ passive: false
73
+ });
65
74
  const onPointerMove = (0, _rafThrottle.rafThrottle)(event => {
66
75
  onMoveEvent(event);
67
76
  });
68
- const onPointerUp = () => {
77
+ const onPointerEnd = event => {
69
78
  thumb.removeEventListener('pointermove', onPointerMove);
70
- thumb.removeEventListener('pointerup', onPointerUp);
79
+ thumb.removeEventListener('pointerup', onPointerEnd);
80
+ thumb.removeEventListener('pointercancel', onPointerEnd);
81
+ thumb.releasePointerCapture(event.pointerId);
71
82
  };
72
83
  const onPointerDown = event => {
73
84
  // Prevent text selection when dragging the thumb
74
85
  event.preventDefault();
75
86
  event.stopPropagation();
76
87
  thumb.setPointerCapture(event.pointerId);
77
- thumb.addEventListener('pointerup', onPointerUp);
78
88
  thumb.addEventListener('pointermove', onPointerMove);
89
+ thumb.addEventListener('pointercancel', onPointerEnd);
90
+ thumb.addEventListener('pointerup', onPointerEnd);
79
91
  };
80
92
  thumb.addEventListener('pointerdown', onPointerDown);
81
-
82
- // eslint-disable-next-line consistent-return
83
93
  return () => {
84
94
  thumb.removeEventListener('pointerdown', onPointerDown);
95
+ thumb.removeEventListener('pointermove', onPointerMove);
96
+ thumb.removeEventListener('pointercancel', onPointerEnd);
97
+ thumb.removeEventListener('pointerup', onPointerEnd);
98
+ thumb.removeEventListener('touchmove', preventDefault);
85
99
  onPointerMove.clear();
86
100
  };
87
101
  }, [onMoveEvent, orientation]);
@@ -16,7 +16,7 @@ const _excluded = ["id", "color", "gradientId", "onClick"];
16
16
  const AreaPlotRoot = (0, _styles.styled)('g', {
17
17
  name: 'MuiAreaPlot',
18
18
  slot: 'Root'
19
- })();
19
+ })({});
20
20
  function AreaPreviewPlot({
21
21
  axisId
22
22
  }) {
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.selectorSankeyHighlightedItem = exports.selectorNodeHighlightConfig = exports.selectorNodeFadeConfig = exports.selectorLinkHighlightConfig = exports.selectorLinkFadeConfig = exports.selectorIsSankeyItemFaded = exports.selectorIsNodeHighlighted = exports.selectorIsLinkHighlighted = void 0;
7
7
  var _store = require("@mui/x-internals/store");
8
+ var _internals = require("@mui/x-charts/internals");
8
9
  const selectorSankeyHighlight = state => state.highlight;
9
- const selectSeries = state => state.series;
10
- const selectorSankeySeries = (0, _store.createSelector)(selectSeries, series => series.processedSeries.sankey?.series[series.processedSeries.sankey?.seriesOrder[0]] || null);
10
+ const selectorSankeySeries = (0, _store.createSelector)(_internals.selectorChartSeriesProcessed, processedSeries => processedSeries.sankey?.series[processedSeries.sankey?.seriesOrder[0]] || null);
11
11
  const DEFAULT_NODE_HIGHLIGHT = 'links';
12
12
  const DEFAULT_LINK_HIGHLIGHT = 'links';
13
13
  const DEFAULT_FADE = 'none';
@@ -10,7 +10,7 @@ import { defaultSlotsMaterial } from "../internals/material/index.js";
10
10
  import { DEFAULT_PLUGINS } from "../internals/plugins/allPlugins.js";
11
11
  import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- const releaseInfo = "MTc2MzU5NjgwMDAwMA==";
13
+ const releaseInfo = "MTc2NDExNTIwMDAwMA==";
14
14
  const packageIdentifier = 'x-charts-pro';
15
15
  /**
16
16
  * Orchestrates the data providers for the chart components and hooks.
@@ -28,6 +28,10 @@ const Rect = styled('rect')(({
28
28
  cursor: 'ns-resize'
29
29
  }
30
30
  }));
31
+ function preventDefault(event) {
32
+ event.preventDefault();
33
+ }
34
+
31
35
  /**
32
36
  * Renders the zoom slider thumb, which is responsible for resizing the zoom range.
33
37
  * @internal
@@ -53,28 +57,38 @@ export const ChartAxisZoomSliderThumb = /*#__PURE__*/React.forwardRef(function C
53
57
  React.useEffect(() => {
54
58
  const thumb = thumbRef.current;
55
59
  if (!thumb) {
56
- return;
60
+ return () => {};
57
61
  }
62
+
63
+ // Prevent scrolling on touch devices when dragging the thumb
64
+ thumb.addEventListener('touchmove', preventDefault, {
65
+ passive: false
66
+ });
58
67
  const onPointerMove = rafThrottle(event => {
59
68
  onMoveEvent(event);
60
69
  });
61
- const onPointerUp = () => {
70
+ const onPointerEnd = event => {
62
71
  thumb.removeEventListener('pointermove', onPointerMove);
63
- thumb.removeEventListener('pointerup', onPointerUp);
72
+ thumb.removeEventListener('pointerup', onPointerEnd);
73
+ thumb.removeEventListener('pointercancel', onPointerEnd);
74
+ thumb.releasePointerCapture(event.pointerId);
64
75
  };
65
76
  const onPointerDown = event => {
66
77
  // Prevent text selection when dragging the thumb
67
78
  event.preventDefault();
68
79
  event.stopPropagation();
69
80
  thumb.setPointerCapture(event.pointerId);
70
- thumb.addEventListener('pointerup', onPointerUp);
71
81
  thumb.addEventListener('pointermove', onPointerMove);
82
+ thumb.addEventListener('pointercancel', onPointerEnd);
83
+ thumb.addEventListener('pointerup', onPointerEnd);
72
84
  };
73
85
  thumb.addEventListener('pointerdown', onPointerDown);
74
-
75
- // eslint-disable-next-line consistent-return
76
86
  return () => {
77
87
  thumb.removeEventListener('pointerdown', onPointerDown);
88
+ thumb.removeEventListener('pointermove', onPointerMove);
89
+ thumb.removeEventListener('pointercancel', onPointerEnd);
90
+ thumb.removeEventListener('pointerup', onPointerEnd);
91
+ thumb.removeEventListener('touchmove', preventDefault);
78
92
  onPointerMove.clear();
79
93
  };
80
94
  }, [onMoveEvent, orientation]);
@@ -8,7 +8,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const AreaPlotRoot = styled('g', {
9
9
  name: 'MuiAreaPlot',
10
10
  slot: 'Root'
11
- })();
11
+ })({});
12
12
  export function AreaPreviewPlot({
13
13
  axisId
14
14
  }) {
@@ -1,7 +1,7 @@
1
1
  import { createSelector } from '@mui/x-internals/store';
2
+ import { selectorChartSeriesProcessed } from '@mui/x-charts/internals';
2
3
  const selectorSankeyHighlight = state => state.highlight;
3
- const selectSeries = state => state.series;
4
- const selectorSankeySeries = createSelector(selectSeries, series => series.processedSeries.sankey?.series[series.processedSeries.sankey?.seriesOrder[0]] || null);
4
+ const selectorSankeySeries = createSelector(selectorChartSeriesProcessed, processedSeries => processedSeries.sankey?.series[processedSeries.sankey?.seriesOrder[0]] || null);
5
5
  const DEFAULT_NODE_HIGHLIGHT = 'links';
6
6
  const DEFAULT_LINK_HIGHLIGHT = 'links';
7
7
  const DEFAULT_FADE = 'none';
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts-pro v8.19.0
2
+ * @mui/x-charts-pro v8.20.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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts-pro v8.19.0
2
+ * @mui/x-charts-pro v8.20.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-charts-pro",
3
- "version": "8.19.0",
3
+ "version": "8.20.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The Pro plan edition of the MUI X Charts components.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -31,11 +31,11 @@
31
31
  "@mui/utils": "^7.3.5",
32
32
  "clsx": "^2.1.1",
33
33
  "prop-types": "^15.8.1",
34
- "@mui/x-charts": "8.19.0",
34
+ "@mui/x-charts": "8.20.0",
35
35
  "@mui/x-charts-vendor": "8.19.0",
36
+ "@mui/x-internals": "8.19.0",
36
37
  "@mui/x-internal-gestures": "0.3.6",
37
- "@mui/x-license": "8.19.0",
38
- "@mui/x-internals": "8.19.0"
38
+ "@mui/x-license": "8.19.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@emotion/react": "^11.9.0",