@mui/x-charts-pro 8.27.5 → 8.28.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 (86) hide show
  1. package/BarChartPro/BarChartPro.js +2 -2
  2. package/CHANGELOG.md +78 -0
  3. package/ChartsDataProviderPro/ChartsDataProviderPro.js +1 -1
  4. package/FunnelChart/FunnelPlot.js +8 -3
  5. package/FunnelChart/FunnelSection.js +7 -3
  6. package/FunnelChart/FunnelSectionLabel.d.ts +6 -0
  7. package/FunnelChart/FunnelSectionLabel.js +18 -5
  8. package/FunnelChart/funnelClasses.d.ts +29 -0
  9. package/FunnelChart/funnelClasses.js +29 -0
  10. package/FunnelChart/funnelSectionClasses.d.ts +13 -0
  11. package/FunnelChart/funnelSectionClasses.js +19 -0
  12. package/FunnelChart/index.d.ts +2 -0
  13. package/FunnelChart/index.js +8 -0
  14. package/Heatmap/Heatmap.js +2 -2
  15. package/Heatmap/HeatmapCell.d.ts +34 -0
  16. package/Heatmap/HeatmapCell.js +64 -0
  17. package/Heatmap/HeatmapItem.d.ts +1 -8
  18. package/Heatmap/HeatmapItem.js +4 -19
  19. package/Heatmap/heatmapClasses.d.ts +6 -1
  20. package/Heatmap/heatmapClasses.js +18 -3
  21. package/Heatmap/index.d.ts +4 -2
  22. package/Heatmap/index.js +17 -13
  23. package/Heatmap/shouldRegisterPointerInteractionsGlobally.js +1 -1
  24. package/LineChartPro/LineChartPro.js +2 -2
  25. package/SankeyChart/SankeyLinkElement.js +4 -2
  26. package/SankeyChart/SankeyLinkLabel.js +3 -0
  27. package/SankeyChart/SankeyNodeElement.d.ts +1 -1
  28. package/SankeyChart/SankeyNodeElement.js +5 -3
  29. package/SankeyChart/SankeyNodeLabel.js +3 -0
  30. package/SankeyChart/SankeyPlot.js +2 -2
  31. package/SankeyChart/index.d.ts +2 -1
  32. package/SankeyChart/index.js +7 -0
  33. package/SankeyChart/sankeyClasses.d.ts +27 -6
  34. package/SankeyChart/sankeyClasses.js +27 -8
  35. package/ScatterChartPro/ScatterChartPro.js +2 -2
  36. package/esm/BarChartPro/BarChartPro.js +2 -2
  37. package/esm/ChartsDataProviderPro/ChartsDataProviderPro.js +1 -1
  38. package/esm/FunnelChart/FunnelPlot.js +8 -3
  39. package/esm/FunnelChart/FunnelSection.js +9 -5
  40. package/esm/FunnelChart/FunnelSectionLabel.d.ts +6 -0
  41. package/esm/FunnelChart/FunnelSectionLabel.js +20 -7
  42. package/esm/FunnelChart/funnelClasses.d.ts +29 -0
  43. package/esm/FunnelChart/funnelClasses.js +19 -0
  44. package/esm/FunnelChart/funnelSectionClasses.d.ts +13 -0
  45. package/esm/FunnelChart/funnelSectionClasses.js +20 -0
  46. package/esm/FunnelChart/index.d.ts +2 -0
  47. package/esm/FunnelChart/index.js +1 -0
  48. package/esm/Heatmap/Heatmap.js +2 -2
  49. package/esm/Heatmap/HeatmapCell.d.ts +34 -0
  50. package/esm/Heatmap/HeatmapCell.js +58 -0
  51. package/esm/Heatmap/HeatmapItem.d.ts +1 -8
  52. package/esm/Heatmap/HeatmapItem.js +4 -19
  53. package/esm/Heatmap/heatmapClasses.d.ts +6 -1
  54. package/esm/Heatmap/heatmapClasses.js +16 -2
  55. package/esm/Heatmap/index.d.ts +4 -2
  56. package/esm/Heatmap/index.js +2 -1
  57. package/esm/Heatmap/shouldRegisterPointerInteractionsGlobally.js +1 -1
  58. package/esm/LineChartPro/LineChartPro.js +2 -2
  59. package/esm/SankeyChart/SankeyLinkElement.js +4 -2
  60. package/esm/SankeyChart/SankeyLinkLabel.js +3 -0
  61. package/esm/SankeyChart/SankeyNodeElement.d.ts +1 -1
  62. package/esm/SankeyChart/SankeyNodeElement.js +5 -3
  63. package/esm/SankeyChart/SankeyNodeLabel.js +3 -0
  64. package/esm/SankeyChart/SankeyPlot.js +2 -2
  65. package/esm/SankeyChart/index.d.ts +2 -1
  66. package/esm/SankeyChart/index.js +1 -1
  67. package/esm/SankeyChart/sankeyClasses.d.ts +27 -6
  68. package/esm/SankeyChart/sankeyClasses.js +25 -6
  69. package/esm/ScatterChartPro/ScatterChartPro.js +2 -2
  70. package/esm/index.js +1 -1
  71. package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +1 -1
  72. package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.js +13 -0
  73. package/esm/themeAugmentation/components.d.ts +19 -1
  74. package/esm/themeAugmentation/overrides.d.ts +5 -2
  75. package/esm/themeAugmentation/props.d.ts +8 -0
  76. package/index.js +1 -1
  77. package/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +1 -1
  78. package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.js +13 -0
  79. package/package.json +3 -3
  80. package/themeAugmentation/components.d.ts +19 -1
  81. package/themeAugmentation/overrides.d.ts +5 -2
  82. package/themeAugmentation/props.d.ts +8 -0
  83. package/Heatmap/internals/HeatmapCell.d.ts +0 -21
  84. package/Heatmap/internals/HeatmapCell.js +0 -18
  85. package/esm/Heatmap/internals/HeatmapCell.d.ts +0 -21
  86. package/esm/Heatmap/internals/HeatmapCell.js +0 -12
@@ -1595,8 +1595,8 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
1595
1595
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
1596
1596
  type: _propTypes.default.oneOf(['doubleTapReset']).isRequired
1597
1597
  }), _propTypes.default.shape({
1598
- pointerMode: _propTypes.default.any,
1599
- requiredKeys: _propTypes.default.array,
1598
+ pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
1599
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
1600
1600
  type: _propTypes.default.oneOf(['brush']).isRequired
1601
1601
  })]).isRequired)
1602
1602
  })
package/CHANGELOG.md CHANGED
@@ -5,6 +5,84 @@
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.28.0
9
+
10
+ _Mar 19, 2026_
11
+
12
+ We'd like to extend a big thank you to the 5 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ TODO INSERT HIGHLIGHTS
15
+
16
+ The following team members contributed to this release:
17
+ @alexfauquette, @brijeshb42, @Janpot, @JCQuintas, @sai6855
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@8.28.0`
22
+
23
+ - [DataGrid] Move `elementOverrides` to constants and remove duplicates (@sai6855) (#21752) @github-actions[bot]
24
+
25
+ #### `@mui/x-data-grid-pro@8.28.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
26
+
27
+ Same changes as in `@mui/x-data-grid@8.28.0`.
28
+
29
+ #### `@mui/x-data-grid-premium@8.28.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
30
+
31
+ Same changes as in `@mui/x-data-grid-pro@8.28.0`.
32
+
33
+ ### Date and Time Pickers
34
+
35
+ #### `@mui/x-date-pickers@8.27.2`
36
+
37
+ Internal changes.
38
+
39
+ #### `@mui/x-date-pickers-pro@8.27.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
40
+
41
+ Same changes as in `@mui/x-date-pickers@8.27.2`.
42
+
43
+ ### Charts
44
+
45
+ #### `@mui/x-charts@8.28.0`
46
+
47
+ - [charts] Improve deprecation warnings (#21760) (#21767) @alexfauquette
48
+ - [charts] Refactor `FunnelChart` classes structure (@JCQuintas) (#21763) @github-actions[bot]
49
+ - [charts] Refactor `Heatmap` classes structure (#21653) (#21745) @JCQuintas
50
+ - [charts] Refactor `PieChart` classes structure (@JCQuintas) (#21715) @github-actions[bot]
51
+ - [charts] Refactor `RadarChart` classes structure (@JCQuintas) (#21730) @github-actions[bot]
52
+ - [charts] Refactor `SankeyChart` classes structure (#21654) (#21726) @JCQuintas
53
+ - [charts] Rename `data-series-id` by `data-series` (#21761) (#21772) @alexfauquette
54
+
55
+ #### `@mui/x-charts-pro@8.28.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
56
+
57
+ Same changes as in `@mui/x-charts@8.28.0`, plus:
58
+
59
+ - [charts-pro] Allow `brush` interaction to accept `requiredKeys/pointerMode` (#21723) @JCQuintas
60
+
61
+ #### `@mui/x-charts-premium@8.28.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
62
+
63
+ Same changes as in `@mui/x-charts-pro@8.28.0`.
64
+
65
+ ### Tree View
66
+
67
+ #### `@mui/x-tree-view@8.27.2`
68
+
69
+ Internal changes.
70
+
71
+ #### `@mui/x-tree-view-pro@8.27.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
72
+
73
+ Same changes as in `@mui/x-tree-view@8.27.2`.
74
+
75
+ ### Codemod
76
+
77
+ #### `@mui/x-codemod@8.27.0`
78
+
79
+ Internal changes.
80
+
81
+ ### Core
82
+
83
+ - [code-infra] Fix contributor generation in changelog (#21712) @brijeshb42
84
+ - [code-infra] Install pkg-pr-new (#21778) @Janpot
85
+
8
86
  ## 8.27.5
9
87
 
10
88
  _Mar 11, 2026_
@@ -17,7 +17,7 @@ var _material = require("../internals/material");
17
17
  var _allPlugins = require("../internals/plugins/allPlugins");
18
18
  var _useChartsDataProviderProProps = require("./useChartsDataProviderProProps");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
- const releaseInfo = "MTc3MzE4NzIwMDAwMA==";
20
+ const releaseInfo = "MTc3Mzk2NDgwMDAwMA==";
21
21
  const packageIdentifier = 'x-charts-pro';
22
22
  const defaultSeriesConfigPro = exports.defaultSeriesConfigPro = _internals.defaultSeriesConfig;
23
23
 
@@ -15,6 +15,7 @@ var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
15
15
  var _internals = require("@mui/x-charts/internals");
16
16
  var _FunnelSection = require("./FunnelSection");
17
17
  var _labelUtils = require("./labelUtils");
18
+ var _funnelClasses = require("./funnelClasses");
18
19
  var _useFunnelSeries = require("../hooks/useFunnelSeries");
19
20
  var _curves = require("./curves");
20
21
  var _FunnelSectionLabel = require("./FunnelSectionLabel");
@@ -110,7 +111,9 @@ function FunnelPlot(props) {
110
111
  } = props,
111
112
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
112
113
  const data = useAggregatedData();
113
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
114
+ const classes = (0, _funnelClasses.useUtilityClasses)();
115
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
116
+ className: classes.root,
114
117
  children: [data.map(series => {
115
118
  if (series.length === 0) {
116
119
  return null;
@@ -150,7 +153,8 @@ function FunnelPlot(props) {
150
153
  id,
151
154
  label,
152
155
  seriesId,
153
- dataIndex
156
+ dataIndex,
157
+ variant
154
158
  }) => {
155
159
  if (!label || !label.value) {
156
160
  return null;
@@ -158,7 +162,8 @@ function FunnelPlot(props) {
158
162
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FunnelSectionLabel.FunnelSectionLabel, (0, _extends2.default)({
159
163
  label: label,
160
164
  dataIndex: dataIndex,
161
- seriesId: seriesId
165
+ seriesId: seriesId,
166
+ variant: variant
162
167
  }, other), id);
163
168
  })
164
169
  }, series[0].seriesId);
@@ -15,11 +15,12 @@ var _internals = require("@mui/x-charts/internals");
15
15
  var _hooks = require("@mui/x-charts/hooks");
16
16
  var _clsx = _interopRequireDefault(require("clsx"));
17
17
  var _funnelSectionClasses = require("./funnelSectionClasses");
18
+ var _funnelClasses = require("./funnelClasses");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["seriesId", "dataIndex", "classes", "color", "onClick", "className", "variant"];
20
21
  const FunnelSectionPath = exports.FunnelSectionPath = (0, _styles.styled)('path', {
21
- slot: 'internal',
22
- shouldForwardProp: undefined
22
+ name: 'MuiFunnelChart',
23
+ slot: 'Section'
23
24
  })(() => ({
24
25
  transition: 'opacity 0.2s ease-in, fill 0.2s ease-in, fill-opacity 0.2s ease-in, filter 0.2s ease-in'
25
26
  }));
@@ -52,6 +53,9 @@ const FunnelSection = exports.FunnelSection = (0, _internals.consumeSlots)('MuiF
52
53
  seriesId,
53
54
  dataIndex
54
55
  });
56
+ const newClasses = (0, _funnelClasses.useUtilityClasses)({
57
+ variant
58
+ });
55
59
  const isOutlined = variant === 'outlined';
56
60
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(FunnelSectionPath, (0, _extends2.default)({}, interactionProps, {
57
61
  filter: isHighlighted && !isOutlined ? 'brightness(120%)' : undefined,
@@ -65,7 +69,7 @@ const FunnelSection = exports.FunnelSection = (0, _internals.consumeSlots)('MuiF
65
69
  onClick: onClick,
66
70
  "data-highlighted": isHighlighted || undefined,
67
71
  "data-faded": isFaded || undefined,
68
- className: (0, _clsx.default)(classes?.root, className, isOutlined ? classes?.outlined : classes?.filled, isHighlighted && classes?.highlighted, isFaded && classes?.faded)
72
+ className: (0, _clsx.default)(newClasses.section, classes?.root, className, isOutlined ? classes?.outlined : classes?.filled, isHighlighted && classes?.highlighted, isFaded && classes?.faded)
69
73
  }, other, {
70
74
  ref: ref
71
75
  }));
@@ -11,9 +11,15 @@ export interface FunnelSectionLabelConfig {
11
11
  export interface FunnelSectionLabelProps extends Omit<React.SVGProps<SVGTextElement>, 'ref' | 'id'> {
12
12
  classes?: Partial<FunnelSectionClasses>;
13
13
  label: FunnelSectionLabelConfig;
14
+ /**
15
+ * Indicate if the section is filled or outlined.
16
+ * Can be used to apply different styles to the label.
17
+ */
18
+ variant?: 'filled' | 'outlined';
14
19
  seriesId: SeriesId;
15
20
  dataIndex: number;
16
21
  }
22
+ export declare const FunnelSectionLabelText: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<React.SVGTextElementAttributes<SVGTextElement>, keyof React.SVGTextElementAttributes<SVGTextElement>>, {}>;
17
23
  /**
18
24
  * @ignore - internal component.
19
25
  */
@@ -6,15 +6,24 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.FunnelSectionLabel = void 0;
9
+ exports.FunnelSectionLabelText = exports.FunnelSectionLabel = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _styles = require("@mui/material/styles");
14
14
  var _internals = require("@mui/x-charts/internals");
15
+ var _clsx = _interopRequireDefault(require("clsx"));
15
16
  var _funnelSectionClasses = require("./funnelSectionClasses");
17
+ var _funnelClasses = require("./funnelClasses");
16
18
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["classes", "color", "onClick", "className", "label", "seriesId", "dataIndex"];
19
+ const _excluded = ["classes", "color", "onClick", "className", "label", "variant", "seriesId", "dataIndex"];
20
+ const FunnelSectionLabelText = exports.FunnelSectionLabelText = (0, _styles.styled)('text', {
21
+ name: 'MuiFunnelChart',
22
+ slot: 'SectionLabel'
23
+ })(() => ({
24
+ transition: 'opacity 0.2s ease-in, fill 0.2s ease-in, fill-opacity 0.2s ease-in, filter 0.2s ease-in'
25
+ }));
26
+
18
27
  /**
19
28
  * @ignore - internal component.
20
29
  */
@@ -23,11 +32,15 @@ const FunnelSectionLabel = exports.FunnelSectionLabel = (0, _internals.consumeSl
23
32
  }, /*#__PURE__*/React.forwardRef(function FunnelSectionLabel(props, ref) {
24
33
  const {
25
34
  classes,
26
- label
35
+ label,
36
+ variant = 'filled'
27
37
  } = props,
28
38
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
39
  const theme = (0, _styles.useTheme)();
30
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("text", (0, _extends2.default)({
40
+ const newClasses = (0, _funnelClasses.useUtilityClasses)({
41
+ variant
42
+ });
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(FunnelSectionLabelText, (0, _extends2.default)({
31
44
  stroke: "none",
32
45
  pointerEvents: "none",
33
46
  fontFamily: theme.typography.body2.fontFamily,
@@ -39,7 +52,7 @@ const FunnelSectionLabel = exports.FunnelSectionLabel = (0, _internals.consumeSl
39
52
  fontStyle: theme.typography.body2.fontStyle,
40
53
  fontVariant: theme.typography.body2.fontVariant,
41
54
  fill: (theme.vars || theme)?.palette?.text?.primary,
42
- className: classes?.label,
55
+ className: (0, _clsx.default)(newClasses.sectionLabel, classes?.label),
43
56
  x: label.x,
44
57
  y: label.y,
45
58
  textAnchor: label.textAnchor ?? 'middle',
@@ -0,0 +1,29 @@
1
+ import { type SeriesId } from '@mui/x-charts/internals';
2
+ export interface FunnelClasses {
3
+ /** Styles applied to the funnel plot element. */
4
+ root: string;
5
+ /** Styles applied to an individual funnel section element. */
6
+ section: string;
7
+ /** Styles applied to a funnel section element if `variant="filled"`. */
8
+ sectionFilled: string;
9
+ /** Styles applied to a funnel section element if `variant="outlined"`. */
10
+ sectionOutlined: string;
11
+ /** Styles applied to a funnel section label element. */
12
+ sectionLabel: string;
13
+ }
14
+ export type FunnelClassKey = keyof FunnelClasses;
15
+ export interface FunnelSectionOwnerState {
16
+ seriesId: SeriesId;
17
+ dataIndex: number;
18
+ color: string;
19
+ isFaded: boolean;
20
+ isHighlighted: boolean;
21
+ classes?: Partial<FunnelClasses>;
22
+ }
23
+ export declare function getFunnelUtilityClass(slot: string): string;
24
+ export declare const funnelClasses: FunnelClasses;
25
+ export interface UseUtilityClassesOptions {
26
+ variant?: 'filled' | 'outlined';
27
+ classes?: Partial<FunnelClasses>;
28
+ }
29
+ export declare const useUtilityClasses: (options?: UseUtilityClassesOptions) => Record<"section" | "sectionLabel" | "root", string>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.funnelClasses = void 0;
8
+ exports.getFunnelUtilityClass = getFunnelUtilityClass;
9
+ exports.useUtilityClasses = void 0;
10
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
13
+ function getFunnelUtilityClass(slot) {
14
+ return (0, _generateUtilityClass.default)('MuiFunnelChart', slot);
15
+ }
16
+ const funnelClasses = exports.funnelClasses = (0, _generateUtilityClasses.default)('MuiFunnelChart', ['root', 'section', 'sectionFilled', 'sectionOutlined', 'sectionLabel', 'sectionLabelFilled', 'sectionLabelOutlined']);
17
+ const useUtilityClasses = options => {
18
+ const {
19
+ variant,
20
+ classes
21
+ } = options ?? {};
22
+ const slots = {
23
+ root: ['root'],
24
+ section: ['section', variant === 'filled' && 'sectionFilled', variant === 'outlined' && 'sectionOutlined'],
25
+ sectionLabel: ['sectionLabel', variant === 'filled' && 'sectionLabelFilled', variant === 'outlined' && 'sectionLabelOutlined']
26
+ };
27
+ return (0, _composeClasses.default)(slots, getFunnelUtilityClass, classes);
28
+ };
29
+ exports.useUtilityClasses = useUtilityClasses;
@@ -1,5 +1,8 @@
1
1
  import type { FunnelSectionProps } from "./FunnelSection.js";
2
2
  import type { FunnelSectionLabelProps } from "./FunnelSectionLabel.js";
3
+ /**
4
+ * @deprecated Use `FunnelClasses` from `funnelClasses` instead.
5
+ */
3
6
  export interface FunnelSectionClasses {
4
7
  /** Styles applied to the root element. */
5
8
  root: string;
@@ -16,9 +19,19 @@ export interface FunnelSectionClasses {
16
19
  /**
17
20
  * Styles applied to the root element for a specified series.
18
21
  * Needs to be suffixed with the series ID: `.${funnelSectionClasses.series}-${seriesId}`.
22
+ * @deprecated Use `[data-series]` selector instead.
19
23
  */
20
24
  series: string;
21
25
  }
26
+ /**
27
+ * @deprecated Use `useUtilityClasses` from `funnelClasses` instead.
28
+ */
22
29
  export declare const useUtilityClasses: (props: FunnelSectionProps) => Record<"label" | "filled" | "outlined" | "highlighted" | "faded" | "root", string>;
30
+ /**
31
+ * @deprecated Use `useUtilityClasses` from `funnelClasses` instead.
32
+ */
23
33
  export declare const useLabelUtilityClasses: (props: FunnelSectionLabelProps) => Record<"label", string>;
34
+ /**
35
+ * @deprecated Use `funnelClasses` from `funnelClasses` instead.
36
+ */
24
37
  export declare const funnelSectionClasses: FunnelSectionClasses;
@@ -8,9 +8,20 @@ exports.useUtilityClasses = exports.useLabelUtilityClasses = exports.funnelSecti
8
8
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
9
9
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
10
10
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
+ /**
12
+ * @deprecated Use `FunnelClasses` from `funnelClasses` instead.
13
+ */
14
+
15
+ /**
16
+ * @deprecated Use `getFunnelUtilityClass` from `funnelClasses` instead.
17
+ */
11
18
  function getFunnelSectionUtilityClass(slot) {
12
19
  return (0, _generateUtilityClass.default)('MuiFunnelSection', slot);
13
20
  }
21
+
22
+ /**
23
+ * @deprecated Use `useUtilityClasses` from `funnelClasses` instead.
24
+ */
14
25
  const useUtilityClasses = props => {
15
26
  const {
16
27
  classes,
@@ -28,6 +39,10 @@ const useUtilityClasses = props => {
28
39
  };
29
40
  return (0, _composeClasses.default)(slots, getFunnelSectionUtilityClass, classes);
30
41
  };
42
+
43
+ /**
44
+ * @deprecated Use `useUtilityClasses` from `funnelClasses` instead.
45
+ */
31
46
  exports.useUtilityClasses = useUtilityClasses;
32
47
  const useLabelUtilityClasses = props => {
33
48
  const {
@@ -40,5 +55,9 @@ const useLabelUtilityClasses = props => {
40
55
  };
41
56
  return (0, _composeClasses.default)(slots, getFunnelSectionUtilityClass, classes);
42
57
  };
58
+
59
+ /**
60
+ * @deprecated Use `funnelClasses` from `funnelClasses` instead.
61
+ */
43
62
  exports.useLabelUtilityClasses = useLabelUtilityClasses;
44
63
  const funnelSectionClasses = exports.funnelSectionClasses = (0, _generateUtilityClasses.default)('MuiFunnelSection', ['root', 'highlighted', 'faded', 'filled', 'outlined', 'label', 'series', 'data-index']);
@@ -13,5 +13,7 @@ export * from "./FunnelChart.plugins.js";
13
13
  export type { FunnelCurveType } from "./curves/index.js";
14
14
  export { funnelSectionClasses } from "./funnelSectionClasses.js";
15
15
  export type { FunnelSectionClasses } from "./funnelSectionClasses.js";
16
+ export { funnelClasses } from "./funnelClasses.js";
17
+ export type { FunnelClassKey, FunnelClasses } from "./funnelClasses.js";
16
18
  export { FunnelSection } from "./FunnelSection.js";
17
19
  export { FunnelSectionLabel } from "./FunnelSectionLabel.js";
@@ -7,6 +7,7 @@ var _exportNames = {
7
7
  Unstable_FunnelChart: true,
8
8
  FunnelChart: true,
9
9
  funnelSectionClasses: true,
10
+ funnelClasses: true,
10
11
  FunnelSection: true,
11
12
  FunnelSectionLabel: true
12
13
  };
@@ -29,6 +30,12 @@ Object.defineProperty(exports, "FunnelSectionLabel", {
29
30
  }
30
31
  });
31
32
  exports.Unstable_FunnelChart = void 0;
33
+ Object.defineProperty(exports, "funnelClasses", {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _funnelClasses.funnelClasses;
37
+ }
38
+ });
32
39
  Object.defineProperty(exports, "funnelSectionClasses", {
33
40
  enumerable: true,
34
41
  get: function () {
@@ -109,6 +116,7 @@ Object.keys(_FunnelChart2).forEach(function (key) {
109
116
  });
110
117
  });
111
118
  var _funnelSectionClasses = require("./funnelSectionClasses");
119
+ var _funnelClasses = require("./funnelClasses");
112
120
  var _FunnelSection = require("./FunnelSection");
113
121
  var _FunnelSectionLabel = require("./FunnelSectionLabel");
114
122
  /**
@@ -569,8 +569,8 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
569
569
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
570
570
  type: _propTypes.default.oneOf(['doubleTapReset']).isRequired
571
571
  }), _propTypes.default.shape({
572
- pointerMode: _propTypes.default.any,
573
- requiredKeys: _propTypes.default.array,
572
+ pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
573
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
574
574
  type: _propTypes.default.oneOf(['brush']).isRequired
575
575
  })]).isRequired)
576
576
  })
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ import type { SeriesId } from "../models/index.js";
3
+ import type { HeatmapClasses } from "./heatmapClasses.js";
4
+ export interface HeatmapCellOwnerState {
5
+ seriesId: SeriesId;
6
+ dataIndex: number;
7
+ color: string;
8
+ value: number;
9
+ isFaded: boolean;
10
+ isHighlighted: boolean;
11
+ classes?: Partial<HeatmapClasses>;
12
+ }
13
+ /**
14
+ * @deprecated Use `HeatmapCellOwnerState` instead.
15
+ */
16
+ export type HeatmapItemOwnerState = HeatmapCellOwnerState;
17
+ export interface HeatmapCellProps extends React.ComponentPropsWithRef<'rect'> {
18
+ x: number;
19
+ y: number;
20
+ width: number;
21
+ height: number;
22
+ ownerState: HeatmapCellOwnerState;
23
+ }
24
+ /**
25
+ * Demos:
26
+ *
27
+ * - [Heatmap](https://mui.com/x/react-charts/heatmap/)
28
+ *
29
+ * API:
30
+ *
31
+ * - [HeatmapCell API](https://mui.com/x/api/charts/heatmap-cell/)
32
+ */
33
+ declare const HeatmapCell: React.ForwardRefExoticComponent<Omit<HeatmapCellProps, "ref"> & React.RefAttributes<SVGRectElement>>;
34
+ export { HeatmapCell };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.HeatmapCell = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _styles = require("@mui/material/styles");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /**
16
+ * @deprecated Use `HeatmapCellOwnerState` instead.
17
+ */
18
+
19
+ const HeatmapCellRoot = (0, _styles.styled)('rect', {
20
+ name: 'MuiHeatmap',
21
+ slot: 'Cell',
22
+ overridesResolver: (_, styles) => styles.cell
23
+ })(({
24
+ ownerState
25
+ }) => ({
26
+ filter: ownerState.isHighlighted && 'saturate(120%)' || ownerState.isFaded && 'saturate(80%)' || undefined,
27
+ fill: ownerState.color,
28
+ shapeRendering: 'crispEdges'
29
+ }));
30
+
31
+ /**
32
+ * Demos:
33
+ *
34
+ * - [Heatmap](https://mui.com/x/react-charts/heatmap/)
35
+ *
36
+ * API:
37
+ *
38
+ * - [HeatmapCell API](https://mui.com/x/api/charts/heatmap-cell/)
39
+ */
40
+ const HeatmapCell = exports.HeatmapCell = /*#__PURE__*/React.forwardRef(function HeatmapCell(props, ref) {
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(HeatmapCellRoot, (0, _extends2.default)({
42
+ ref: ref
43
+ }, props));
44
+ });
45
+ if (process.env.NODE_ENV !== "production") HeatmapCell.displayName = "HeatmapCell";
46
+ process.env.NODE_ENV !== "production" ? HeatmapCell.propTypes = {
47
+ // ----------------------------- Warning --------------------------------
48
+ // | These PropTypes are generated from the TypeScript type definitions |
49
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
50
+ // ----------------------------------------------------------------------
51
+ height: _propTypes.default.number.isRequired,
52
+ ownerState: _propTypes.default.shape({
53
+ classes: _propTypes.default.object,
54
+ color: _propTypes.default.string.isRequired,
55
+ dataIndex: _propTypes.default.number.isRequired,
56
+ isFaded: _propTypes.default.bool.isRequired,
57
+ isHighlighted: _propTypes.default.bool.isRequired,
58
+ seriesId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
59
+ value: _propTypes.default.number.isRequired
60
+ }).isRequired,
61
+ width: _propTypes.default.number.isRequired,
62
+ x: _propTypes.default.number.isRequired,
63
+ y: _propTypes.default.number.isRequired
64
+ } : void 0;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type SeriesId } from '@mui/x-charts/internals';
3
- import { type HeatmapItemOwnerState } from "./internals/HeatmapCell.js";
3
+ import { type HeatmapCellProps } from "./HeatmapCell.js";
4
4
  export interface HeatmapItemSlots {
5
5
  /**
6
6
  * The component that renders the heatmap cell.
@@ -33,13 +33,6 @@ export interface HeatmapItemProps {
33
33
  */
34
34
  slots?: HeatmapItemSlots;
35
35
  }
36
- export interface HeatmapCellProps extends React.ComponentPropsWithRef<'rect'> {
37
- x: number;
38
- y: number;
39
- width: number;
40
- height: number;
41
- ownerState: HeatmapItemOwnerState;
42
- }
43
36
  /**
44
37
  * @ignore - internal component.
45
38
  */
@@ -11,26 +11,12 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
14
- var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
14
  var _internals = require("@mui/x-charts/internals");
16
15
  var _heatmapClasses = require("./heatmapClasses");
17
- var _HeatmapCell = require("./internals/HeatmapCell");
16
+ var _HeatmapCell = require("./HeatmapCell");
18
17
  var _shouldRegisterPointerInteractionsGlobally = require("./shouldRegisterPointerInteractionsGlobally");
19
18
  var _jsxRuntime = require("react/jsx-runtime");
20
19
  const _excluded = ["seriesId", "dataIndex", "color", "value", "isHighlighted", "isFaded", "slotProps", "slots"];
21
- const useUtilityClasses = ownerState => {
22
- const {
23
- classes,
24
- seriesId,
25
- isFaded,
26
- isHighlighted
27
- } = ownerState;
28
- const slots = {
29
- cell: ['cell', `series-${seriesId}`, isFaded && 'faded', isHighlighted && 'highlighted']
30
- };
31
- return (0, _composeClasses.default)(slots, _heatmapClasses.getHeatmapUtilityClass, classes);
32
- };
33
-
34
20
  /**
35
21
  * @ignore - internal component.
36
22
  */
@@ -59,11 +45,11 @@ function HeatmapItem(props) {
59
45
  seriesId,
60
46
  dataIndex,
61
47
  color,
62
- value,
63
48
  isFaded,
64
- isHighlighted
49
+ isHighlighted,
50
+ value
65
51
  };
66
- const classes = useUtilityClasses(ownerState);
52
+ const classes = (0, _heatmapClasses.useUtilityClasses)(ownerState);
67
53
  const Cell = slots?.cell ?? _HeatmapCell.HeatmapCell;
68
54
  const cellProps = (0, _useSlotProps.default)({
69
55
  elementType: Cell,
@@ -81,7 +67,6 @@ process.env.NODE_ENV !== "production" ? HeatmapItem.propTypes = {
81
67
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
82
68
  // ----------------------------------------------------------------------
83
69
  color: _propTypes.default.string.isRequired,
84
- dataIndex: _propTypes.default.number.isRequired,
85
70
  height: _propTypes.default.number.isRequired,
86
71
  seriesId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
87
72
  /**
@@ -1,4 +1,7 @@
1
+ import type { HeatmapCellOwnerState } from "./HeatmapCell.js";
1
2
  export interface HeatmapClasses {
3
+ /** Styles applied to the heatmap plot root element. */
4
+ root: string;
2
5
  /** Styles applied to the heatmap cells. */
3
6
  cell: string;
4
7
  /** Styles applied to the cell element if highlighted. */
@@ -8,9 +11,11 @@ export interface HeatmapClasses {
8
11
  /**
9
12
  * Styles applied to the root element for a specified series.
10
13
  * Needs to be suffixed with the series ID: `.${heatmapClasses.series}-${seriesId}`.
14
+ * @deprecated Use `[data-series="${seriesId}"]` selector instead.
11
15
  */
12
16
  series: string;
13
17
  }
14
18
  export type HeatmapClassKey = keyof HeatmapClasses;
15
19
  export declare function getHeatmapUtilityClass(slot: string): string;
16
- export declare const heatmapClasses: HeatmapClasses;
20
+ export declare const heatmapClasses: HeatmapClasses;
21
+ export declare const useUtilityClasses: (ownerState: HeatmapCellOwnerState) => Record<"cell" | "root", string>;
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getHeatmapUtilityClass = getHeatmapUtilityClass;
8
- exports.heatmapClasses = void 0;
8
+ exports.useUtilityClasses = exports.heatmapClasses = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
11
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
12
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
13
  function getHeatmapUtilityClass(slot) {
13
14
  // Those should be common to all charts
@@ -16,7 +17,21 @@ function getHeatmapUtilityClass(slot) {
16
17
  }
17
18
  return (0, _generateUtilityClass.default)('MuiHeatmap', slot);
18
19
  }
19
- const heatmapClasses = exports.heatmapClasses = (0, _extends2.default)({}, (0, _generateUtilityClasses.default)('MuiHeatmap', ['cell', 'series']), {
20
+ const heatmapClasses = exports.heatmapClasses = (0, _extends2.default)({}, (0, _generateUtilityClasses.default)('MuiHeatmap', ['root', 'cell', 'series']), {
20
21
  highlighted: 'Charts-highlighted',
21
22
  faded: 'Charts-faded'
22
- });
23
+ });
24
+ const useUtilityClasses = ownerState => {
25
+ const {
26
+ classes,
27
+ seriesId,
28
+ isFaded,
29
+ isHighlighted
30
+ } = ownerState;
31
+ const slots = {
32
+ root: ['root'],
33
+ cell: ['cell', `series-${seriesId}`, isFaded && 'faded', isHighlighted && 'highlighted']
34
+ };
35
+ return (0, _composeClasses.default)(slots, getHeatmapUtilityClass, classes);
36
+ };
37
+ exports.useUtilityClasses = useUtilityClasses;