@mui/x-charts 8.27.4 → 8.27.5

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 (92) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +1 -1
  2. package/BarChart/BarElement.d.ts +2 -2
  3. package/BarChart/BarElement.js +4 -2
  4. package/BarChart/BarLabel/BarLabel.js +4 -0
  5. package/BarChart/BarLabel/BarLabel.types.d.ts +2 -2
  6. package/BarChart/BarLabel/BarLabelItem.js +6 -2
  7. package/BarChart/BarLabel/barLabelClasses.d.ts +15 -0
  8. package/BarChart/BarLabel/barLabelClasses.js +19 -0
  9. package/BarChart/BarPlot.js +1 -2
  10. package/BarChart/barClasses.d.ts +21 -1
  11. package/BarChart/barClasses.js +9 -3
  12. package/BarChart/barElementClasses.d.ts +17 -9
  13. package/BarChart/barElementClasses.js +19 -0
  14. package/CHANGELOG.md +65 -0
  15. package/LineChart/AreaElement.d.ts +12 -0
  16. package/LineChart/AreaElement.js +26 -4
  17. package/LineChart/AreaPlot.js +10 -4
  18. package/LineChart/CircleMarkElement.js +9 -2
  19. package/LineChart/LineElement.d.ts +12 -0
  20. package/LineChart/LineElement.js +26 -4
  21. package/LineChart/LineHighlightElement.d.ts +12 -0
  22. package/LineChart/LineHighlightElement.js +22 -3
  23. package/LineChart/LinePlot.js +11 -5
  24. package/LineChart/MarkElement.js +9 -2
  25. package/LineChart/MarkPlot.js +15 -3
  26. package/LineChart/index.d.ts +3 -1
  27. package/LineChart/index.js +17 -2
  28. package/LineChart/lineClasses.d.ts +34 -0
  29. package/LineChart/lineClasses.js +32 -0
  30. package/LineChart/markElementClasses.d.ts +17 -8
  31. package/LineChart/markElementClasses.js +19 -0
  32. package/ScatterChart/BatchScatter.d.ts +2 -1
  33. package/ScatterChart/BatchScatter.js +5 -3
  34. package/ScatterChart/FocusedScatterMark.d.ts +4 -1
  35. package/ScatterChart/FocusedScatterMark.js +12 -2
  36. package/ScatterChart/Scatter.d.ts +1 -1
  37. package/ScatterChart/Scatter.js +6 -2
  38. package/ScatterChart/ScatterPlot.d.ts +2 -1
  39. package/ScatterChart/ScatterPlot.js +16 -2
  40. package/ScatterChart/index.d.ts +2 -2
  41. package/ScatterChart/index.js +8 -1
  42. package/ScatterChart/scatterClasses.d.ts +14 -2
  43. package/ScatterChart/scatterClasses.js +10 -4
  44. package/esm/BarChart/AnimatedBarElement.d.ts +1 -1
  45. package/esm/BarChart/BarElement.d.ts +2 -2
  46. package/esm/BarChart/BarElement.js +4 -2
  47. package/esm/BarChart/BarLabel/BarLabel.js +4 -0
  48. package/esm/BarChart/BarLabel/BarLabel.types.d.ts +2 -2
  49. package/esm/BarChart/BarLabel/BarLabelItem.js +6 -2
  50. package/esm/BarChart/BarLabel/barLabelClasses.d.ts +15 -0
  51. package/esm/BarChart/BarLabel/barLabelClasses.js +20 -0
  52. package/esm/BarChart/BarPlot.js +2 -3
  53. package/esm/BarChart/barClasses.d.ts +21 -1
  54. package/esm/BarChart/barClasses.js +9 -3
  55. package/esm/BarChart/barElementClasses.d.ts +17 -9
  56. package/esm/BarChart/barElementClasses.js +20 -0
  57. package/esm/LineChart/AreaElement.d.ts +12 -0
  58. package/esm/LineChart/AreaElement.js +28 -4
  59. package/esm/LineChart/AreaPlot.js +11 -5
  60. package/esm/LineChart/CircleMarkElement.js +10 -3
  61. package/esm/LineChart/LineElement.d.ts +12 -0
  62. package/esm/LineChart/LineElement.js +28 -4
  63. package/esm/LineChart/LineHighlightElement.d.ts +12 -0
  64. package/esm/LineChart/LineHighlightElement.js +24 -3
  65. package/esm/LineChart/LinePlot.js +12 -6
  66. package/esm/LineChart/MarkElement.js +10 -3
  67. package/esm/LineChart/MarkPlot.js +15 -3
  68. package/esm/LineChart/index.d.ts +3 -1
  69. package/esm/LineChart/index.js +2 -1
  70. package/esm/LineChart/lineClasses.d.ts +34 -0
  71. package/esm/LineChart/lineClasses.js +23 -0
  72. package/esm/LineChart/markElementClasses.d.ts +17 -8
  73. package/esm/LineChart/markElementClasses.js +20 -0
  74. package/esm/ScatterChart/BatchScatter.d.ts +2 -1
  75. package/esm/ScatterChart/BatchScatter.js +4 -3
  76. package/esm/ScatterChart/FocusedScatterMark.d.ts +4 -1
  77. package/esm/ScatterChart/FocusedScatterMark.js +11 -1
  78. package/esm/ScatterChart/Scatter.d.ts +1 -1
  79. package/esm/ScatterChart/Scatter.js +6 -2
  80. package/esm/ScatterChart/ScatterPlot.d.ts +2 -1
  81. package/esm/ScatterChart/ScatterPlot.js +16 -2
  82. package/esm/ScatterChart/index.d.ts +2 -2
  83. package/esm/ScatterChart/index.js +1 -1
  84. package/esm/ScatterChart/scatterClasses.d.ts +14 -2
  85. package/esm/ScatterChart/scatterClasses.js +10 -4
  86. package/esm/index.js +1 -1
  87. package/esm/themeAugmentation/components.d.ts +20 -1
  88. package/esm/themeAugmentation/overrides.d.ts +13 -1
  89. package/index.js +1 -1
  90. package/package.json +3 -3
  91. package/themeAugmentation/components.d.ts +20 -1
  92. package/themeAugmentation/overrides.d.ts +13 -1
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type SeriesId } from "../models/seriesType/common.js";
3
- import { type BarElementOwnerState } from "./barElementClasses.js";
3
+ import { type BarElementOwnerState } from "./barClasses.js";
4
4
  export interface BarProps extends Omit<React.SVGProps<SVGRectElement>, 'id' | 'color' | 'ref' | 'x' | 'y' | 'height' | 'width'> {
5
5
  id: SeriesId;
6
6
  dataIndex: number;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
- import { type BarElementOwnerState } from "./barElementClasses.js";
3
+ import { type BarElementOwnerState } from "./barClasses.js";
4
4
  import { type BarProps } from "./AnimatedBarElement.js";
5
5
  export interface BarElementSlots {
6
6
  /**
@@ -12,7 +12,7 @@ export interface BarElementSlots {
12
12
  export interface BarElementSlotProps {
13
13
  bar?: SlotComponentPropsFromProps<BarProps, {}, BarElementOwnerState>;
14
14
  }
15
- export type BarElementProps = Omit<BarElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGRectElement>, 'ref' | 'id'> & {
15
+ export type BarElementProps = Omit<BarElementOwnerState, 'isFaded' | 'isHighlighted' | 'isFocused'> & Omit<React.SVGProps<SVGRectElement>, 'ref' | 'id'> & {
16
16
  /**
17
17
  * The props used for each component slot.
18
18
  * @default {}
@@ -12,6 +12,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
15
+ var _barClasses = require("./barClasses");
15
16
  var _barElementClasses = require("./barElementClasses");
16
17
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
17
18
  var _useItemHighlighted = require("../hooks/useItemHighlighted");
@@ -64,7 +65,8 @@ function BarElement(props) {
64
65
  isHighlighted,
65
66
  isFocused
66
67
  };
67
- const classes = (0, _barElementClasses.useUtilityClasses)(ownerState);
68
+ const classes = (0, _barClasses.useUtilityClasses)(ownerState);
69
+ const deprecatedClasses = (0, _barElementClasses.useUtilityClasses)(ownerState);
68
70
  const Bar = slots?.bar ?? _AnimatedBarElement.AnimatedBarElement;
69
71
  const barProps = (0, _useSlotProps.default)({
70
72
  elementType: Bar,
@@ -89,7 +91,7 @@ function BarElement(props) {
89
91
  layout,
90
92
  hidden
91
93
  }),
92
- className: classes.root,
94
+ className: `${classes.element} ${deprecatedClasses.root}`,
93
95
  ownerState
94
96
  });
95
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Bar, (0, _extends2.default)({}, barProps));
@@ -25,6 +25,10 @@ const BarLabelComponent = exports.BarLabelComponent = (0, _styles.styled)('text'
25
25
  [`&.${_barLabelClasses.barLabelClasses.faded}`]: styles.faded
26
26
  }, {
27
27
  [`&.${_barLabelClasses.barLabelClasses.highlighted}`]: styles.highlighted
28
+ }, {
29
+ [`&[data-faded]`]: styles.faded
30
+ }, {
31
+ [`&[data-highlighted]`]: styles.highlighted
28
32
  }, styles.root]
29
33
  })(({
30
34
  theme
@@ -1,5 +1,5 @@
1
1
  import { type SeriesId } from "../../models/seriesType/common.js";
2
- import type { BarLabelClasses } from "./barLabelClasses.js";
2
+ import type { BarClasses } from "../barClasses.js";
3
3
  import { type BarValueType } from "../../models/index.js";
4
4
  export interface BarLabelOwnerState {
5
5
  seriesId: SeriesId;
@@ -9,7 +9,7 @@ export interface BarLabelOwnerState {
9
9
  isHighlighted: boolean;
10
10
  skipAnimation: boolean;
11
11
  layout: 'vertical' | 'horizontal';
12
- classes?: Partial<BarLabelClasses>;
12
+ classes?: Partial<BarClasses>;
13
13
  }
14
14
  export type BarItem = {
15
15
  /**
@@ -11,6 +11,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _barClasses = require("../barClasses");
14
15
  var _barLabelClasses = require("./barLabelClasses");
15
16
  var _getBarLabel = require("./getBarLabel");
16
17
  var _BarLabel = require("./BarLabel");
@@ -60,7 +61,8 @@ function BarLabelItem(props) {
60
61
  skipAnimation,
61
62
  layout
62
63
  };
63
- const classes = (0, _barLabelClasses.useUtilityClasses)(ownerState);
64
+ const classes = (0, _barClasses.useUtilityClasses)(ownerState);
65
+ const deprecatedClasses = (0, _barLabelClasses.useUtilityClasses)(ownerState);
64
66
  const Component = slots?.barLabel ?? _BarLabel.BarLabel;
65
67
  const _useSlotProps = (0, _useSlotProps2.default)({
66
68
  elementType: Component,
@@ -73,7 +75,9 @@ function BarLabelItem(props) {
73
75
  width,
74
76
  height,
75
77
  placement: barLabelPlacement,
76
- className: classes.root
78
+ className: `${classes.label} ${deprecatedClasses.root}`,
79
+ 'data-highlighted': isHighlighted || undefined,
80
+ 'data-faded': isFaded || undefined
77
81
  }),
78
82
  ownerState
79
83
  }),
@@ -1,4 +1,7 @@
1
1
  import type { BarLabelOwnerState } from "./BarLabel.types.js";
2
+ /**
3
+ * @deprecated Use `BarClasses` from `../barClasses` instead.
4
+ */
2
5
  export interface BarLabelClasses {
3
6
  /** Styles applied to the root element. */
4
7
  root: string;
@@ -14,7 +17,19 @@ export interface BarLabelClasses {
14
17
  */
15
18
  series: string;
16
19
  }
20
+ /**
21
+ * @deprecated Use `BarClassKey` from `../barClasses` instead.
22
+ */
17
23
  export type BarLabelClassKey = keyof BarLabelClasses;
24
+ /**
25
+ * @deprecated Use `getBarUtilityClass` from `../barClasses` instead.
26
+ */
18
27
  export declare function getBarLabelUtilityClass(slot: string): string;
28
+ /**
29
+ * @deprecated Use `barClasses` from `../barClasses` instead.
30
+ */
19
31
  export declare const barLabelClasses: Record<"root" | "animate" | "highlighted" | "faded", string>;
32
+ /**
33
+ * @deprecated Use `useBarLabelUtilityClasses` from `../barClasses` instead.
34
+ */
20
35
  export declare const useUtilityClasses: (ownerState: BarLabelOwnerState) => Record<"root", string>;
@@ -10,10 +10,29 @@ exports.useUtilityClasses = void 0;
10
10
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
11
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
+ /**
14
+ * @deprecated Use `BarClasses` from `../barClasses` instead.
15
+ */
16
+
17
+ /**
18
+ * @deprecated Use `BarClassKey` from `../barClasses` instead.
19
+ */
20
+
21
+ /**
22
+ * @deprecated Use `getBarUtilityClass` from `../barClasses` instead.
23
+ */
13
24
  function getBarLabelUtilityClass(slot) {
14
25
  return (0, _generateUtilityClass.default)('MuiBarLabel', slot);
15
26
  }
27
+
28
+ /**
29
+ * @deprecated Use `barClasses` from `../barClasses` instead.
30
+ */
16
31
  const barLabelClasses = exports.barLabelClasses = (0, _generateUtilityClasses.default)('MuiBarLabel', ['root', 'highlighted', 'faded', 'animate']);
32
+
33
+ /**
34
+ * @deprecated Use `useBarLabelUtilityClasses` from `../barClasses` instead.
35
+ */
17
36
  const useUtilityClasses = ownerState => {
18
37
  const {
19
38
  classes,
@@ -12,7 +12,6 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _styles = require("@mui/material/styles");
15
- var _barElementClasses = require("./barElementClasses");
16
15
  var _hooks = require("../hooks");
17
16
  var _BarLabelPlot = require("./BarLabel/BarLabelPlot");
18
17
  var _useSkipAnimation = require("../hooks/useSkipAnimation");
@@ -28,7 +27,7 @@ const BarPlotRoot = (0, _styles.styled)('g', {
28
27
  name: 'MuiBarPlot',
29
28
  slot: 'Root'
30
29
  })({
31
- [`& .${_barElementClasses.barElementClasses.root}`]: {
30
+ [`& .${_barClasses.barClasses.element}`]: {
32
31
  transitionProperty: 'opacity, fill',
33
32
  transitionDuration: `${_animation.ANIMATION_DURATION_MS}ms`,
34
33
  transitionTimingFunction: _animation.ANIMATION_TIMING_FUNCTION
@@ -1,3 +1,4 @@
1
+ import { type SeriesId } from "../models/seriesType/common.js";
1
2
  export interface BarClasses {
2
3
  /** Styles applied to the bar plot element. */
3
4
  root: string;
@@ -5,8 +6,27 @@ export interface BarClasses {
5
6
  series: string;
6
7
  /** Styles applied to the group surrounding a series' labels. */
7
8
  seriesLabels: string;
9
+ /** Styles applied to an individual bar element. */
10
+ element: string;
11
+ /** Styles applied to an individual bar label. */
12
+ label: string;
13
+ /** Styles applied to a bar label when it is animated. */
14
+ labelAnimate: string;
8
15
  }
9
16
  export type BarClassKey = keyof BarClasses;
17
+ export interface BarElementOwnerState {
18
+ id: SeriesId;
19
+ dataIndex: number;
20
+ color: string;
21
+ isFaded: boolean;
22
+ isHighlighted: boolean;
23
+ isFocused: boolean;
24
+ classes?: Partial<BarClasses>;
25
+ }
10
26
  export declare function getBarUtilityClass(slot: string): string;
11
27
  export declare const barClasses: BarClasses;
12
- export declare const useUtilityClasses: (classes?: Partial<BarClasses>) => Record<"series" | "root" | "seriesLabels", string>;
28
+ export interface UseUtilityClassesOptions {
29
+ skipAnimation?: boolean;
30
+ classes?: Partial<BarClasses>;
31
+ }
32
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"series" | "root" | "label" | "seriesLabels" | "element", string>;
@@ -13,12 +13,18 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
13
13
  function getBarUtilityClass(slot) {
14
14
  return (0, _generateUtilityClass.default)('MuiBar', slot);
15
15
  }
16
- const barClasses = exports.barClasses = (0, _generateUtilityClasses.default)('MuiBar', ['root', 'series', 'seriesLabels']);
17
- const useUtilityClasses = classes => {
16
+ const barClasses = exports.barClasses = (0, _generateUtilityClasses.default)('MuiBar', ['root', 'series', 'seriesLabels', 'element', 'label', 'labelAnimate']);
17
+ const useUtilityClasses = options => {
18
+ const {
19
+ skipAnimation,
20
+ classes
21
+ } = options ?? {};
18
22
  const slots = {
19
23
  root: ['root'],
20
24
  series: ['series'],
21
- seriesLabels: ['seriesLabels']
25
+ seriesLabels: ['seriesLabels'],
26
+ element: ['element'],
27
+ label: ['label', !skipAnimation && 'labelAnimate']
22
28
  };
23
29
  return (0, _composeClasses.default)(slots, getBarUtilityClass, classes);
24
30
  };
@@ -1,4 +1,8 @@
1
- import { type SeriesId } from "../models/seriesType/common.js";
1
+ import type { BarElementOwnerState } from "./barClasses.js";
2
+ export { type BarElementOwnerState };
3
+ /**
4
+ * @deprecated Use `BarClasses` from `./barClasses` instead.
5
+ */
2
6
  export interface BarElementClasses {
3
7
  /** Styles applied to the root element. */
4
8
  root: string;
@@ -12,15 +16,19 @@ export interface BarElementClasses {
12
16
  */
13
17
  series: string;
14
18
  }
19
+ /**
20
+ * @deprecated Use `BarClassKey` from `./barClasses` instead.
21
+ */
15
22
  export type BarElementClassKey = keyof BarElementClasses;
16
- export interface BarElementOwnerState {
17
- id: SeriesId;
18
- dataIndex: number;
19
- color: string;
20
- isFaded: boolean;
21
- isHighlighted: boolean;
22
- classes?: Partial<BarElementClasses>;
23
- }
23
+ /**
24
+ * @deprecated Use `getBarUtilityClass` from `./barClasses` instead.
25
+ */
24
26
  export declare function getBarElementUtilityClass(slot: string): string;
27
+ /**
28
+ * @deprecated Use `barClasses` from `./barClasses` instead.
29
+ */
25
30
  export declare const barElementClasses: BarElementClasses;
31
+ /**
32
+ * @deprecated Use `useBarElementUtilityClasses` from `./barClasses` instead.
33
+ */
26
34
  export declare const useUtilityClasses: (ownerState: BarElementOwnerState) => Record<"root", string>;
@@ -10,10 +10,29 @@ exports.useUtilityClasses = void 0;
10
10
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
11
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
12
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
13
+ /**
14
+ * @deprecated Use `BarClasses` from `./barClasses` instead.
15
+ */
16
+
17
+ /**
18
+ * @deprecated Use `BarClassKey` from `./barClasses` instead.
19
+ */
20
+
21
+ /**
22
+ * @deprecated Use `getBarUtilityClass` from `./barClasses` instead.
23
+ */
13
24
  function getBarElementUtilityClass(slot) {
14
25
  return (0, _generateUtilityClass.default)('MuiBarElement', slot);
15
26
  }
27
+
28
+ /**
29
+ * @deprecated Use `barClasses` from `./barClasses` instead.
30
+ */
16
31
  const barElementClasses = exports.barElementClasses = (0, _generateUtilityClasses.default)('MuiBarElement', ['root', 'highlighted', 'faded', 'series']);
32
+
33
+ /**
34
+ * @deprecated Use `useBarElementUtilityClasses` from `./barClasses` instead.
35
+ */
17
36
  const useUtilityClasses = ownerState => {
18
37
  const {
19
38
  classes,
package/CHANGELOG.md CHANGED
@@ -5,6 +5,71 @@
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.27.5
9
+
10
+ _Mar 11, 2026_
11
+
12
+ We'd like to extend a big thank you to the 7 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🐞 Bugfixes
15
+
16
+ The following team members contributed to this release:
17
+ @bernardobelchior, @JCQuintas, @MBilalShafi, @michelengelen, @mj12albert, @sai6855, @siriwatknp
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@8.27.5`
22
+
23
+ - [DataGrid] Fix crash when `rows` and `rowModesModel` are updated simultaneously (#21684) @michelengelen
24
+ - [DataGrid] Forward rest props in `GridFilterInputMultipleValue` (#21444) @siriwatknp
25
+ - [DataGrid] Remove double rtl inversion logic for columns pinning (#21443) @siriwatknp
26
+ - [DataGrid] Add missing `resizablePanelHandle` classes to `gridClasses` object (#21632) @sai6855
27
+ - [DataGrid] Refactor `headerAlign` style calls (#21633) @sai6855
28
+ - [DataGrid] Fix keyboard navigation with single-row checkbox selection (#21529) @mj12albert
29
+
30
+ #### `@mui/x-data-grid-pro@8.27.5` [![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.27.5`, plus:
33
+
34
+ - [DataGridPro] Add `role="presentation"` to detail panel toggle header content (#21691) @michelengelen
35
+ - [DataGridPro] Fix sorting not reflected in nested server-side data (#21641) @MBilalShafi
36
+
37
+ #### `@mui/x-data-grid-premium@8.27.5` [![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.27.5`.
40
+
41
+ ### Charts
42
+
43
+ #### `@mui/x-charts@8.27.5`
44
+
45
+ - [charts] Refactor `BarChart` classes structure (#21601) (#21644) @JCQuintas
46
+ - [charts] Refactor `LineChart` classes structure (#21672) @JCQuintas
47
+ - [charts] Refactor `ScatterChart` classes structure (#21706) @JCQuintas
48
+
49
+ #### `@mui/x-charts-pro@8.27.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
50
+
51
+ Same changes as in `@mui/x-charts@8.27.5`, plus:
52
+
53
+ - [charts-pro] Fix image export truncated when page is zoomed out (#21696) @bernardobelchior
54
+
55
+ #### `@mui/x-charts-premium@8.27.5` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
56
+
57
+ Same changes as in `@mui/x-charts-pro@8.27.5`.
58
+
59
+ ### Docs
60
+
61
+ - [docs] Fix `AssistantWithDataSource` demo crashing (#21631) @sai6855
62
+ - [docs] Move Range Bar Chart to existing charts (#21122) @bernardobelchior
63
+
64
+ ### Core
65
+
66
+ - [code-infra] Fix datagrid test flakyness (#21657) @JCQuintas
67
+ - [code-infra] Removed `getTeamMembers` function and usage from the release script (#21608) @michelengelen
68
+
69
+ ### Miscellaneous
70
+
71
+ - [test] Add missing tests for forwarding props to filter operators in DataGrid (#21700) @siriwatknp
72
+
8
73
  ## 8.27.4
9
74
 
10
75
  _Mar 5, 2026_
@@ -2,6 +2,9 @@ import * as React from 'react';
2
2
  import { type SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
3
  import { type AnimatedAreaProps } from "./AnimatedArea.js";
4
4
  import { type SeriesId } from "../models/seriesType/common.js";
5
+ /**
6
+ * @deprecated Use `LineClasses` from `./lineClasses` instead.
7
+ */
5
8
  export interface AreaElementClasses {
6
9
  /** Styles applied to the root element. */
7
10
  root: string;
@@ -15,6 +18,9 @@ export interface AreaElementClasses {
15
18
  */
16
19
  series: string;
17
20
  }
21
+ /**
22
+ * @deprecated Use `LineClassKey` from `./lineClasses` instead.
23
+ */
18
24
  export type AreaElementClassKey = keyof AreaElementClasses;
19
25
  export interface AreaElementOwnerState {
20
26
  id: SeriesId;
@@ -24,7 +30,13 @@ export interface AreaElementOwnerState {
24
30
  isHighlighted: boolean;
25
31
  classes?: Partial<AreaElementClasses>;
26
32
  }
33
+ /**
34
+ * @deprecated Use `getLineUtilityClass` from `./lineClasses` instead.
35
+ */
27
36
  export declare function getAreaElementUtilityClass(slot: string): string;
37
+ /**
38
+ * @deprecated Use `lineClasses` from `./lineClasses` instead.
39
+ */
28
40
  export declare const areaElementClasses: AreaElementClasses;
29
41
  export interface AreaElementSlots {
30
42
  /**
@@ -20,13 +20,31 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
20
20
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
21
  var _useItemHighlighted = require("../hooks/useItemHighlighted");
22
22
  var _AnimatedArea = require("./AnimatedArea");
23
+ var _lineClasses = require("./lineClasses");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
26
+ /**
27
+ * @deprecated Use `LineClasses` from `./lineClasses` instead.
28
+ */
29
+ /**
30
+ * @deprecated Use `LineClassKey` from `./lineClasses` instead.
31
+ */
32
+ /**
33
+ * @deprecated Use `getLineUtilityClass` from `./lineClasses` instead.
34
+ */
25
35
  function getAreaElementUtilityClass(slot) {
26
36
  return (0, _generateUtilityClass.default)('MuiAreaElement', slot);
27
37
  }
38
+
39
+ /**
40
+ * @deprecated Use `lineClasses` from `./lineClasses` instead.
41
+ */
28
42
  const areaElementClasses = exports.areaElementClasses = (0, _generateUtilityClasses.default)('MuiAreaElement', ['root', 'highlighted', 'faded', 'series']);
29
- const useUtilityClasses = ownerState => {
43
+
44
+ /**
45
+ * @deprecated Use `useUtilityClasses` from `./lineClasses` instead.
46
+ */
47
+ const useDeprecatedUtilityClasses = ownerState => {
30
48
  const {
31
49
  classes,
32
50
  id,
@@ -77,16 +95,20 @@ function AreaElement(props) {
77
95
  isFaded,
78
96
  isHighlighted
79
97
  };
80
- const classes = useUtilityClasses(ownerState);
98
+ const classes = (0, _lineClasses.useUtilityClasses)();
99
+ const deprecatedClasses = useDeprecatedUtilityClasses(ownerState);
81
100
  const Area = slots?.area ?? _AnimatedArea.AnimatedArea;
82
101
  const areaProps = (0, _useSlotProps.default)({
83
102
  elementType: Area,
84
103
  externalSlotProps: slotProps?.area,
85
104
  additionalProps: (0, _extends2.default)({}, interactionProps, {
86
105
  onClick,
87
- cursor: onClick ? 'pointer' : 'unset'
106
+ cursor: onClick ? 'pointer' : 'unset',
107
+ 'data-highlighted': isHighlighted || undefined,
108
+ 'data-faded': isFaded || undefined,
109
+ 'data-series-id': id
88
110
  }),
89
- className: classes.root,
111
+ className: `${classes.area} ${deprecatedClasses.root}`,
90
112
  ownerState
91
113
  });
92
114
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Area, (0, _extends2.default)({}, other, areaProps));
@@ -12,19 +12,21 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _styles = require("@mui/material/styles");
15
+ var _clsx = _interopRequireDefault(require("clsx"));
15
16
  var _AreaElement = require("./AreaElement");
16
17
  var _useSkipAnimation = require("../hooks/useSkipAnimation");
17
18
  var _useAxis = require("../hooks/useAxis");
18
19
  var _useInternalIsZoomInteracting = require("../internals/plugins/featurePlugins/useChartCartesianAxis/useInternalIsZoomInteracting");
19
20
  var _useAreaPlotData = require("./useAreaPlotData");
20
21
  var _animation = require("../internals/animation/animation");
22
+ var _lineClasses = require("./lineClasses");
21
23
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation"];
24
+ const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation", "className"];
23
25
  const AreaPlotRoot = (0, _styles.styled)('g', {
24
26
  name: 'MuiAreaPlot',
25
27
  slot: 'Root'
26
28
  })({
27
- [`& .${_AreaElement.areaElementClasses.root}`]: {
29
+ [`& .${_lineClasses.lineClasses.area}`]: {
28
30
  transitionProperty: 'opacity, fill',
29
31
  transitionDuration: `${_animation.ANIMATION_DURATION_MS}ms`,
30
32
  transitionTimingFunction: _animation.ANIMATION_TIMING_FUNCTION
@@ -56,13 +58,17 @@ function AreaPlot(props) {
56
58
  slots,
57
59
  slotProps,
58
60
  onItemClick,
59
- skipAnimation: inSkipAnimation
61
+ skipAnimation: inSkipAnimation,
62
+ className
60
63
  } = props,
61
64
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
62
65
  const isZoomInteracting = (0, _useInternalIsZoomInteracting.useInternalIsZoomInteracting)();
63
66
  const skipAnimation = (0, _useSkipAnimation.useSkipAnimation)(isZoomInteracting || inSkipAnimation);
64
67
  const completedData = useAggregatedData();
65
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(AreaPlotRoot, (0, _extends2.default)({}, other, {
68
+ const classes = (0, _lineClasses.useUtilityClasses)();
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AreaPlotRoot, (0, _extends2.default)({
70
+ className: (0, _clsx.default)(classes.areaPlot, className)
71
+ }, other, {
66
72
  children: completedData.map(({
67
73
  d,
68
74
  seriesId,
@@ -15,6 +15,7 @@ var _styles = require("@mui/material/styles");
15
15
  var _animation = require("../internals/animation/animation");
16
16
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
17
17
  var _markElementClasses = require("./markElementClasses");
18
+ var _lineClasses = require("./lineClasses");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["x", "y", "id", "classes", "color", "dataIndex", "onClick", "skipAnimation", "isFaded", "isHighlighted", "shape", "hidden"];
20
21
  const Circle = (0, _styles.styled)('circle', {
@@ -71,7 +72,11 @@ function CircleMarkElement(props) {
71
72
  isFaded,
72
73
  skipAnimation
73
74
  };
74
- const classes = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
+ const classes = (0, _lineClasses.useUtilityClasses)({
76
+ skipAnimation,
77
+ classes: innerClasses
78
+ });
79
+ const deprecatedClasses = (0, _markElementClasses.useUtilityClasses)(ownerState);
75
80
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Circle, (0, _extends2.default)({}, other, {
76
81
  cx: x,
77
82
  cy: y,
@@ -79,13 +84,15 @@ function CircleMarkElement(props) {
79
84
  fill: (theme.vars || theme).palette.background.paper,
80
85
  stroke: color,
81
86
  strokeWidth: 2,
82
- className: classes.root,
87
+ className: `${classes.mark} ${deprecatedClasses.root}`,
83
88
  onClick: onClick,
84
89
  cursor: onClick ? 'pointer' : 'unset',
85
90
  pointerEvents: hidden ? 'none' : undefined
86
91
  }, interactionProps, {
87
92
  "data-highlighted": isHighlighted || undefined,
88
93
  "data-faded": isFaded || undefined,
94
+ "data-series-id": id,
95
+ "data-index": dataIndex,
89
96
  opacity: hidden ? 0 : 1
90
97
  }));
91
98
  }
@@ -2,6 +2,9 @@ import * as React from 'react';
2
2
  import { type SlotComponentPropsFromProps } from '@mui/x-internals/types';
3
3
  import { type AnimatedLineProps } from "./AnimatedLine.js";
4
4
  import { type SeriesId } from "../models/seriesType/common.js";
5
+ /**
6
+ * @deprecated Use `LineClasses` from `./lineClasses` instead.
7
+ */
5
8
  export interface LineElementClasses {
6
9
  /** Styles applied to the root element. */
7
10
  root: string;
@@ -15,6 +18,9 @@ export interface LineElementClasses {
15
18
  */
16
19
  series: string;
17
20
  }
21
+ /**
22
+ * @deprecated Use `LineClassKey` from `./lineClasses` instead.
23
+ */
18
24
  export type LineElementClassKey = keyof LineElementClasses;
19
25
  export interface LineElementOwnerState {
20
26
  id: SeriesId;
@@ -26,7 +32,13 @@ export interface LineElementOwnerState {
26
32
  /** If `true`, the line is hidden. */
27
33
  hidden?: boolean;
28
34
  }
35
+ /**
36
+ * @deprecated Use `getLineUtilityClass` from `./lineClasses` instead.
37
+ */
29
38
  export declare function getLineElementUtilityClass(slot: string): string;
39
+ /**
40
+ * @deprecated Use `lineClasses` from `./lineClasses` instead.
41
+ */
30
42
  export declare const lineElementClasses: LineElementClasses;
31
43
  export interface LineElementSlots {
32
44
  /**
@@ -20,13 +20,31 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
20
20
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
21
  var _AnimatedLine = require("./AnimatedLine");
22
22
  var _useItemHighlighted = require("../hooks/useItemHighlighted");
23
+ var _lineClasses = require("./lineClasses");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick", "hidden"];
26
+ /**
27
+ * @deprecated Use `LineClasses` from `./lineClasses` instead.
28
+ */
29
+ /**
30
+ * @deprecated Use `LineClassKey` from `./lineClasses` instead.
31
+ */
32
+ /**
33
+ * @deprecated Use `getLineUtilityClass` from `./lineClasses` instead.
34
+ */
25
35
  function getLineElementUtilityClass(slot) {
26
36
  return (0, _generateUtilityClass.default)('MuiLineElement', slot);
27
37
  }
38
+
39
+ /**
40
+ * @deprecated Use `lineClasses` from `./lineClasses` instead.
41
+ */
28
42
  const lineElementClasses = exports.lineElementClasses = (0, _generateUtilityClasses.default)('MuiLineElement', ['root', 'highlighted', 'faded', 'series']);
29
- const useUtilityClasses = ownerState => {
43
+
44
+ /**
45
+ * @deprecated Use `useUtilityClasses` from `./lineClasses` instead.
46
+ */
47
+ const useDeprecatedUtilityClasses = ownerState => {
30
48
  const {
31
49
  classes,
32
50
  id,
@@ -79,16 +97,20 @@ function LineElement(props) {
79
97
  isHighlighted,
80
98
  hidden
81
99
  };
82
- const classes = useUtilityClasses(ownerState);
100
+ const classes = (0, _lineClasses.useUtilityClasses)();
101
+ const deprecatedClasses = useDeprecatedUtilityClasses(ownerState);
83
102
  const Line = slots?.line ?? _AnimatedLine.AnimatedLine;
84
103
  const lineProps = (0, _useSlotProps.default)({
85
104
  elementType: Line,
86
105
  externalSlotProps: slotProps?.line,
87
106
  additionalProps: (0, _extends2.default)({}, interactionProps, {
88
107
  onClick,
89
- cursor: onClick ? 'pointer' : 'unset'
108
+ cursor: onClick ? 'pointer' : 'unset',
109
+ 'data-highlighted': isHighlighted || undefined,
110
+ 'data-faded': isFaded || undefined,
111
+ 'data-series-id': id
90
112
  }),
91
- className: classes.root,
113
+ className: `${classes.line} ${deprecatedClasses.root}`,
92
114
  ownerState
93
115
  });
94
116
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, (0, _extends2.default)({}, other, lineProps));