@mui/x-charts 8.5.2 → 8.5.3

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 (90) hide show
  1. package/CHANGELOG.md +96 -11
  2. package/ChartsLegend/ChartsLegend.d.ts +1 -0
  3. package/ChartsLegend/ChartsLegend.js +1 -0
  4. package/ChartsLegend/ContinuousColorLegend.d.ts +1 -0
  5. package/ChartsLegend/PiecewiseColorLegend.d.ts +1 -0
  6. package/ChartsLegend/chartsLegendClasses.d.ts +3 -1
  7. package/ChartsLegend/chartsLegendClasses.js +2 -1
  8. package/ChartsSurface/ChartsSurface.d.ts +1 -1
  9. package/ScatterChart/Scatter.d.ts +2 -0
  10. package/ScatterChart/Scatter.js +9 -1
  11. package/ScatterChart/index.d.ts +3 -1
  12. package/ScatterChart/index.js +16 -1
  13. package/ScatterChart/scatterClasses.d.ts +8 -0
  14. package/ScatterChart/scatterClasses.js +22 -0
  15. package/esm/ChartsLegend/ChartsLegend.d.ts +1 -0
  16. package/esm/ChartsLegend/ChartsLegend.js +1 -0
  17. package/esm/ChartsLegend/ContinuousColorLegend.d.ts +1 -0
  18. package/esm/ChartsLegend/PiecewiseColorLegend.d.ts +1 -0
  19. package/esm/ChartsLegend/chartsLegendClasses.d.ts +3 -1
  20. package/esm/ChartsLegend/chartsLegendClasses.js +2 -1
  21. package/esm/ChartsSurface/ChartsSurface.d.ts +1 -1
  22. package/esm/ScatterChart/Scatter.d.ts +2 -0
  23. package/esm/ScatterChart/Scatter.js +9 -1
  24. package/esm/ScatterChart/index.d.ts +3 -1
  25. package/esm/ScatterChart/index.js +2 -1
  26. package/esm/ScatterChart/scatterClasses.d.ts +8 -0
  27. package/esm/ScatterChart/scatterClasses.js +13 -0
  28. package/esm/hooks/useItemHighlighted.js +2 -2
  29. package/esm/index.js +1 -1
  30. package/esm/internals/createSeriesSelectorOfType.js +2 -2
  31. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +3 -29
  32. package/esm/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.js +1 -1
  33. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +14 -724
  34. package/esm/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +10 -10
  35. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +3 -29
  36. package/esm/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +1 -1
  37. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +6 -54
  38. package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +2 -2
  39. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +12 -208
  40. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.d.ts +7 -66
  41. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.js +2 -3
  42. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +21 -6222
  43. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +4 -6
  44. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +50 -5
  45. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +18 -622
  46. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +3 -3
  47. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +18 -230
  48. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +6 -6
  49. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +17 -2012
  50. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.js +2 -2
  51. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +39 -4
  52. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +3 -27
  53. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.js +1 -1
  54. package/esm/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +5 -40
  55. package/esm/internals/plugins/utils/selectors.d.ts +18 -6
  56. package/esm/internals/plugins/utils/selectors.js +3 -3
  57. package/esm/internals/store/useSelector.d.ts +2 -2
  58. package/esm/internals/store/useSelector.js +2 -2
  59. package/hooks/useItemHighlighted.js +2 -2
  60. package/index.js +1 -1
  61. package/internals/createSeriesSelectorOfType.js +2 -2
  62. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.d.ts +3 -29
  63. package/internals/plugins/corePlugins/useChartAnimation/useChartAnimation.selectors.js +1 -1
  64. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +14 -724
  65. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +11 -10
  66. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +3 -29
  67. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +1 -1
  68. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +6 -54
  69. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +2 -2
  70. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartAxisSize.selectors.d.ts +12 -208
  71. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.d.ts +7 -66
  72. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisLayout.selectors.js +4 -3
  73. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +21 -6222
  74. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js +4 -6
  75. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +50 -5
  76. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.d.ts +18 -622
  77. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +3 -3
  78. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +18 -230
  79. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +6 -6
  80. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.d.ts +17 -2012
  81. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.selectors.js +2 -2
  82. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.d.ts +39 -4
  83. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.d.ts +3 -27
  84. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.selectors.js +1 -1
  85. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +5 -40
  86. package/internals/plugins/utils/selectors.d.ts +18 -6
  87. package/internals/plugins/utils/selectors.js +3 -3
  88. package/internals/store/useSelector.d.ts +2 -2
  89. package/internals/store/useSelector.js +2 -2
  90. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -5,6 +5,101 @@
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.5.3
9
+
10
+ _Jun 19, 2025_
11
+
12
+ We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 📚 Documentation improvements
15
+ - 🐞 Bugfixes
16
+
17
+ Special thanks go out to the community members for their valuable contributions:
18
+ @alisasanib, @arminmeh, @sai6855
19
+
20
+ The following are all team members who have contributed to this release:
21
+ @alexfauquette, @bernardobelchior, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @oliviertassinari
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.5.3`
26
+
27
+ - [DataGrid] Fix export menu button tooltip being interactive when menu is open (#18327) @bernardobelchior
28
+ - [DataGrid] Fix column menu scroll close (#18065) @alisasanib
29
+ - [DataGrid] Fix page size issue with data source (#18419) @MBilalShafi
30
+
31
+ #### `@mui/x-data-grid-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
32
+
33
+ Same changes as in `@mui/x-data-grid@8.5.3`, plus:
34
+
35
+ - [DataGridPro] Ignore missing `rowCount` response when new children are fetched with the data source (#17711) @arminmeh
36
+
37
+ #### `@mui/x-data-grid-premium@8.5.3` [![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.5.3`.
40
+
41
+ ### Date and Time Pickers
42
+
43
+ #### `@mui/x-date-pickers@8.5.3`
44
+
45
+ - [pickers] Add `inputSizeSmall` to classes interface (#18242) @sai6855
46
+
47
+ #### `@mui/x-date-pickers-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
48
+
49
+ Same changes as in `@mui/x-date-pickers@8.5.3`.
50
+
51
+ ### Charts
52
+
53
+ #### `@mui/x-charts@8.5.3`
54
+
55
+ - [charts] Add item class to list item around each series in legend (#18411) @bernardobelchior
56
+ - [charts] Allow `tabIndex` in surface and legend (#18344) @JCQuintas
57
+ - [charts] Explore selector typing (#18362) @alexfauquette
58
+ - [charts] Fix highlight with number ids (#18423) @alexfauquette
59
+ - [charts] Make scatter chart use data attributes (#18048) @alexfauquette
60
+
61
+ #### `@mui/x-charts-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-charts@8.5.3`, plus:
64
+
65
+ - [charts-pro] Add data-series to elements of funnel chart (#18067) @JCQuintas
66
+ - [charts-pro] Hide values outside minStart and maxEnd in zoom slider (#18336) @bernardobelchior
67
+ - [charts-pro] Fix `FunnelChart` label positioning with different curves (#18354) @JCQuintas
68
+
69
+ ### Tree View
70
+
71
+ #### `@mui/x-tree-view@8.5.3`
72
+
73
+ Internal changes.
74
+
75
+ #### `@mui/x-tree-view-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
76
+
77
+ Same changes as in `@mui/x-tree-view@8.5.3`.
78
+
79
+ ### Codemod
80
+
81
+ #### `@mui/x-codemod@8.5.3`
82
+
83
+ Internal changes.
84
+
85
+ ### Docs
86
+
87
+ - [docs] Fix 404 in charts docs (#18440) @alexfauquette
88
+ - [docs][pickers] Fix adapter version resolving when opening demo to edit (#18363) @LukasTy
89
+
90
+ ### Core
91
+
92
+ - [core] Fix pnpm valelint error (#18420) @oliviertassinari
93
+
94
+ ### Miscellaneous
95
+
96
+ - [code-infra] Add back a `Playwright` renovate group (#18397) @LukasTy
97
+ - [code-infra] Setup `CODEOWNERS` for charts repositories (#18418) @JCQuintas
98
+ - [code-infra] Strengthen `URL` usage for test config (#18444) @LukasTy
99
+ - [code-infra] Use `vitest` bundled types (#17758) @JCQuintas
100
+ - [infra] Stabilise tests by removing babel and plugins from vitest (#18341) @JCQuintas
101
+ - [infra] Add automated release PR creation script (#18345) @michelengelen
102
+
8
103
  ## 8.5.2
9
104
 
10
105
  _Jun 12, 2025_
@@ -94,7 +189,7 @@ Same changes as in `@mui/x-tree-view@8.5.2`.
94
189
  - [code-infra] Revert `React` to `19.0.0` (#18265) @LukasTy
95
190
  - [code-infra] Use `catalog` for reused dependencies (#18302) @LukasTy
96
191
  - [infra] Remove unused karma/mocha deps and files (#18340) @JCQuintas
97
- - [infra] Update github label references to use 'scope' instead of 'component' (#18260) @michelengelen
192
+ - [infra] Update GitHub label references to use 'scope' instead of 'component' (#18260) @michelengelen
98
193
  - [infra] Use a single browser server in CI (#18230) @JCQuintas
99
194
 
100
195
  ## 8.5.1
@@ -189,15 +284,6 @@ Same changes as in `@mui/x-tree-view@8.5.1`.
189
284
 
190
285
  ### Core
191
286
 
192
- - chore(deps): bump @next/eslint-plugin-next to 15.3.3 (#18155) @renovate[bot]
193
- - chore(deps): bump @types/lodash to ^4.17.17 (#17990) @renovate[bot]
194
- - chore(deps): bump babel (#18157) @renovate[bot]
195
- - chore(deps): bump eslint to ^9.28.0 (#17352) @renovate[bot]
196
- - chore(deps): bump material ui (#17802) @renovate[bot]
197
- - chore(deps): bump next to ^15.3.3 (#18159) @renovate[bot]
198
- - chore(deps): bump ossf/scorecard-action action to v2.4.2 (#18160) @renovate[bot]
199
- - chore(deps): bump react-router to ^7.6.1 (#18162) @renovate[bot]
200
- - chore(deps): bump yargs to ^18.0.0 (#18169) @renovate[bot]
201
287
  - [code-infra] Different approach to console testing for `processRowUpdate` (#18213) @JCQuintas
202
288
  - [code-infra] Fix act warnings in DataGrid/toolbar (#18207) @JCQuintas
203
289
  - [code-infra] Remove `istanbul` references (#18194) @JCQuintas
@@ -4641,7 +4727,6 @@ No changes since `@mui/x-charts@7.22.2`.
4641
4727
  - [docs] Add `next` version links (#15423) @LukasTy
4642
4728
  - [docs] Use the `loading` state in the demos (#15538) @cherniavskii
4643
4729
  - [docs] Add data caching to lazy loaded detail panel demo (#15506) @cherniavskii
4644
-
4645
4730
  - [code-infra] Tentative fix for Argos flaky screenshot tests (#15399) @JCQuintas
4646
4731
  - [docs-infra] Transpile `.ts` demo files (#15421) @KenanYusuf
4647
4732
  - [core] Clarify release version bump strategy (#15536) @cherniavskii
@@ -22,6 +22,7 @@ export interface ChartsLegendProps {
22
22
  classes?: Partial<ChartsLegendClasses>;
23
23
  className?: string;
24
24
  sx?: SxProps<Theme>;
25
+ tabIndex?: number;
25
26
  }
26
27
  declare const ChartsLegend: React.ForwardRefExoticComponent<ChartsLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
27
28
  export { ChartsLegend };
@@ -87,6 +87,7 @@ const ChartsLegend = exports.ChartsLegend = (0, _consumeSlots.consumeSlots)('Mui
87
87
  ownerState: props,
88
88
  children: data.items.map((item, i) => {
89
89
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
90
+ className: classes?.item,
90
91
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Element, {
91
92
  className: classes?.series,
92
93
  role: onItemClick ? 'button' : undefined,
@@ -51,6 +51,7 @@ export interface ContinuousColorLegendProps extends ColorLegendSelector, AppendK
51
51
  classes?: Partial<ContinuousColorLegendClasses>;
52
52
  className?: string;
53
53
  sx?: SxProps<Theme>;
54
+ tabIndex?: number;
54
55
  }
55
56
  declare const ContinuousColorLegend: React.ForwardRefExoticComponent<ContinuousColorLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
56
57
  export { ContinuousColorLegend };
@@ -37,6 +37,7 @@ export interface PiecewiseColorLegendProps extends ColorLegendSelector, PrependK
37
37
  classes?: Partial<PiecewiseColorLegendClasses>;
38
38
  className?: string;
39
39
  sx?: SxProps<Theme>;
40
+ tabIndex?: number;
40
41
  }
41
42
  declare const PiecewiseColorLegend: React.ForwardRefExoticComponent<PiecewiseColorLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
42
43
  export { PiecewiseColorLegend };
@@ -3,6 +3,8 @@ import type { ChartsLegendSlotExtension } from "./chartsLegend.types.js";
3
3
  export interface ChartsLegendClasses {
4
4
  /** Styles applied to the root element. */
5
5
  root: string;
6
+ /** Styles applied to the list item around each series in the legend. */
7
+ item: string;
6
8
  /** Styles applied to a series element. */
7
9
  series: string;
8
10
  /** Styles applied to series mark element. */
@@ -14,5 +16,5 @@ export interface ChartsLegendClasses {
14
16
  /** Styles applied to the legend in row layout. */
15
17
  horizontal: string;
16
18
  }
17
- export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "series", string>;
19
+ export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "item" | "series", string>;
18
20
  export declare const legendClasses: ChartsLegendClasses;
@@ -18,6 +18,7 @@ const useUtilityClasses = props => {
18
18
  } = props;
19
19
  const slots = {
20
20
  root: ['root', direction],
21
+ item: ['item'],
21
22
  mark: ['mark'],
22
23
  label: ['label'],
23
24
  series: ['series']
@@ -25,4 +26,4 @@ const useUtilityClasses = props => {
25
26
  return (0, _composeClasses.default)(slots, getLegendUtilityClass, classes);
26
27
  };
27
28
  exports.useUtilityClasses = useUtilityClasses;
28
- const legendClasses = exports.legendClasses = (0, _generateUtilityClasses.default)('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'vertical', 'horizontal']);
29
+ const legendClasses = exports.legendClasses = (0, _generateUtilityClasses.default)('MuiChartsLegend', ['root', 'item', 'series', 'mark', 'label', 'vertical', 'horizontal']);
@@ -1,6 +1,6 @@
1
1
  import { SxProps, Theme } from '@mui/material/styles';
2
2
  import * as React from 'react';
3
- export interface ChartsSurfaceProps {
3
+ export interface ChartsSurfaceProps extends Omit<React.SVGProps<SVGSVGElement>, 'id' | 'children' | 'className' | 'height' | 'width' | 'cx' | 'cy' | 'viewBox' | 'color' | 'ref'> {
4
4
  className?: string;
5
5
  title?: string;
6
6
  desc?: string;
@@ -3,6 +3,7 @@ import { ScatterMarkerSlotProps, ScatterMarkerSlots } from "./ScatterMarker.type
3
3
  import { DefaultizedScatterSeriesType, ScatterItemIdentifier } from "../models/seriesType/scatter.js";
4
4
  import { D3Scale } from "../models/axis.js";
5
5
  import { ColorGetter } from "../internals/plugins/models/seriesConfig/index.js";
6
+ import { ScatterClasses } from "./scatterClasses.js";
6
7
  export interface ScatterProps {
7
8
  series: DefaultizedScatterSeriesType;
8
9
  xScale: D3Scale;
@@ -15,6 +16,7 @@ export interface ScatterProps {
15
16
  * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
16
17
  */
17
18
  onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, scatterItemIdentifier: ScatterItemIdentifier) => void;
19
+ classes?: Partial<ScatterClasses>;
18
20
  slots?: ScatterSlots;
19
21
  slotProps?: ScatterSlotProps;
20
22
  }
@@ -20,6 +20,7 @@ var _useItemHighlightedGetter = require("../hooks/useItemHighlightedGetter");
20
20
  var _useChartVoronoi = require("../internals/plugins/featurePlugins/useChartVoronoi");
21
21
  var _ChartProvider = require("../context/ChartProvider");
22
22
  var _ScatterMarker = require("./ScatterMarker");
23
+ var _scatterClasses = require("./scatterClasses");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  const _excluded = ["ownerState"];
25
26
  /**
@@ -40,6 +41,7 @@ function Scatter(props) {
40
41
  color,
41
42
  colorGetter,
42
43
  onItemClick,
44
+ classes: inClasses,
43
45
  slots,
44
46
  slotProps
45
47
  } = props;
@@ -95,7 +97,10 @@ function Scatter(props) {
95
97
  ownerState: {}
96
98
  }),
97
99
  markerProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded);
100
+ const classes = (0, _scatterClasses.useUtilityClasses)(inClasses);
98
101
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
102
+ "data-series": series.id,
103
+ className: classes.root,
99
104
  children: cleanData.map((dataPoint, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Marker, (0, _extends2.default)({
100
105
  dataIndex: dataPoint.dataIndex,
101
106
  color: dataPoint.color,
@@ -107,7 +112,9 @@ function Scatter(props) {
107
112
  type: 'scatter',
108
113
  seriesId: series.id,
109
114
  dataIndex: dataPoint.dataIndex
110
- }))
115
+ })),
116
+ "data-highlighted": dataPoint.isHighlighted || undefined,
117
+ "data-faded": dataPoint.isFaded || undefined
111
118
  }, interactionItemProps[i], markerProps), dataPoint.id ?? dataPoint.dataIndex))
112
119
  });
113
120
  }
@@ -116,6 +123,7 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
116
123
  // | These PropTypes are generated from the TypeScript type definitions |
117
124
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
118
125
  // ----------------------------------------------------------------------
126
+ classes: _propTypes.default.object,
119
127
  color: _propTypes.default.string.isRequired,
120
128
  colorGetter: _propTypes.default.func,
121
129
  /**
@@ -2,4 +2,6 @@ export * from "./ScatterChart.js";
2
2
  export * from "./ScatterPlot.js";
3
3
  export * from "./Scatter.js";
4
4
  export * from "./ScatterMarker.types.js";
5
- export * from "./ScatterMarker.js";
5
+ export * from "./ScatterMarker.js";
6
+ export type { ScatterClasses } from "./scatterClasses.js";
7
+ export { scatterClasses } from "./scatterClasses.js";
@@ -3,9 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ scatterClasses: true
8
+ };
9
+ Object.defineProperty(exports, "scatterClasses", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _scatterClasses.scatterClasses;
13
+ }
14
+ });
6
15
  var _ScatterChart = require("./ScatterChart");
7
16
  Object.keys(_ScatterChart).forEach(function (key) {
8
17
  if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
19
  if (key in exports && exports[key] === _ScatterChart[key]) return;
10
20
  Object.defineProperty(exports, key, {
11
21
  enumerable: true,
@@ -17,6 +27,7 @@ Object.keys(_ScatterChart).forEach(function (key) {
17
27
  var _ScatterPlot = require("./ScatterPlot");
18
28
  Object.keys(_ScatterPlot).forEach(function (key) {
19
29
  if (key === "default" || key === "__esModule") return;
30
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
31
  if (key in exports && exports[key] === _ScatterPlot[key]) return;
21
32
  Object.defineProperty(exports, key, {
22
33
  enumerable: true,
@@ -28,6 +39,7 @@ Object.keys(_ScatterPlot).forEach(function (key) {
28
39
  var _Scatter = require("./Scatter");
29
40
  Object.keys(_Scatter).forEach(function (key) {
30
41
  if (key === "default" || key === "__esModule") return;
42
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
43
  if (key in exports && exports[key] === _Scatter[key]) return;
32
44
  Object.defineProperty(exports, key, {
33
45
  enumerable: true,
@@ -39,6 +51,7 @@ Object.keys(_Scatter).forEach(function (key) {
39
51
  var _ScatterMarker = require("./ScatterMarker.types");
40
52
  Object.keys(_ScatterMarker).forEach(function (key) {
41
53
  if (key === "default" || key === "__esModule") return;
54
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
42
55
  if (key in exports && exports[key] === _ScatterMarker[key]) return;
43
56
  Object.defineProperty(exports, key, {
44
57
  enumerable: true,
@@ -50,6 +63,7 @@ Object.keys(_ScatterMarker).forEach(function (key) {
50
63
  var _ScatterMarker2 = require("./ScatterMarker");
51
64
  Object.keys(_ScatterMarker2).forEach(function (key) {
52
65
  if (key === "default" || key === "__esModule") return;
66
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
53
67
  if (key in exports && exports[key] === _ScatterMarker2[key]) return;
54
68
  Object.defineProperty(exports, key, {
55
69
  enumerable: true,
@@ -57,4 +71,5 @@ Object.keys(_ScatterMarker2).forEach(function (key) {
57
71
  return _ScatterMarker2[key];
58
72
  }
59
73
  });
60
- });
74
+ });
75
+ var _scatterClasses = require("./scatterClasses");
@@ -0,0 +1,8 @@
1
+ export interface ScatterClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ }
5
+ export type ScatterClassKey = keyof ScatterClasses;
6
+ export declare function getScatterUtilityClass(slot: string): string;
7
+ export declare const scatterClasses: ScatterClasses;
8
+ export declare const useUtilityClasses: (classes?: Partial<ScatterClasses>) => Record<"root", string>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getScatterUtilityClass = getScatterUtilityClass;
8
+ exports.useUtilityClasses = exports.scatterClasses = void 0;
9
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
12
+ function getScatterUtilityClass(slot) {
13
+ return (0, _generateUtilityClass.default)('MuiScatter', slot);
14
+ }
15
+ const scatterClasses = exports.scatterClasses = (0, _generateUtilityClasses.default)('MuiScatter', ['root']);
16
+ const useUtilityClasses = classes => {
17
+ const slots = {
18
+ root: ['root']
19
+ };
20
+ return (0, _composeClasses.default)(slots, getScatterUtilityClass, classes);
21
+ };
22
+ exports.useUtilityClasses = useUtilityClasses;
@@ -22,6 +22,7 @@ export interface ChartsLegendProps {
22
22
  classes?: Partial<ChartsLegendClasses>;
23
23
  className?: string;
24
24
  sx?: SxProps<Theme>;
25
+ tabIndex?: number;
25
26
  }
26
27
  declare const ChartsLegend: React.ForwardRefExoticComponent<ChartsLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
27
28
  export { ChartsLegend };
@@ -80,6 +80,7 @@ const ChartsLegend = consumeSlots('MuiChartsLegend', 'legend', {
80
80
  ownerState: props,
81
81
  children: data.items.map((item, i) => {
82
82
  return /*#__PURE__*/_jsx("li", {
83
+ className: classes?.item,
83
84
  children: /*#__PURE__*/_jsxs(Element, {
84
85
  className: classes?.series,
85
86
  role: onItemClick ? 'button' : undefined,
@@ -51,6 +51,7 @@ export interface ContinuousColorLegendProps extends ColorLegendSelector, AppendK
51
51
  classes?: Partial<ContinuousColorLegendClasses>;
52
52
  className?: string;
53
53
  sx?: SxProps<Theme>;
54
+ tabIndex?: number;
54
55
  }
55
56
  declare const ContinuousColorLegend: React.ForwardRefExoticComponent<ContinuousColorLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
56
57
  export { ContinuousColorLegend };
@@ -37,6 +37,7 @@ export interface PiecewiseColorLegendProps extends ColorLegendSelector, PrependK
37
37
  classes?: Partial<PiecewiseColorLegendClasses>;
38
38
  className?: string;
39
39
  sx?: SxProps<Theme>;
40
+ tabIndex?: number;
40
41
  }
41
42
  declare const PiecewiseColorLegend: React.ForwardRefExoticComponent<PiecewiseColorLegendProps & import("./chartsLegend.types.js").ChartsLegendSlotExtension & React.RefAttributes<{}>>;
42
43
  export { PiecewiseColorLegend };
@@ -3,6 +3,8 @@ import type { ChartsLegendSlotExtension } from "./chartsLegend.types.js";
3
3
  export interface ChartsLegendClasses {
4
4
  /** Styles applied to the root element. */
5
5
  root: string;
6
+ /** Styles applied to the list item around each series in the legend. */
7
+ item: string;
6
8
  /** Styles applied to a series element. */
7
9
  series: string;
8
10
  /** Styles applied to series mark element. */
@@ -14,5 +16,5 @@ export interface ChartsLegendClasses {
14
16
  /** Styles applied to the legend in row layout. */
15
17
  horizontal: string;
16
18
  }
17
- export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "series", string>;
19
+ export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "item" | "series", string>;
18
20
  export declare const legendClasses: ChartsLegendClasses;
@@ -11,10 +11,11 @@ export const useUtilityClasses = props => {
11
11
  } = props;
12
12
  const slots = {
13
13
  root: ['root', direction],
14
+ item: ['item'],
14
15
  mark: ['mark'],
15
16
  label: ['label'],
16
17
  series: ['series']
17
18
  };
18
19
  return composeClasses(slots, getLegendUtilityClass, classes);
19
20
  };
20
- export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'vertical', 'horizontal']);
21
+ export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'item', 'series', 'mark', 'label', 'vertical', 'horizontal']);
@@ -1,6 +1,6 @@
1
1
  import { SxProps, Theme } from '@mui/material/styles';
2
2
  import * as React from 'react';
3
- export interface ChartsSurfaceProps {
3
+ export interface ChartsSurfaceProps extends Omit<React.SVGProps<SVGSVGElement>, 'id' | 'children' | 'className' | 'height' | 'width' | 'cx' | 'cy' | 'viewBox' | 'color' | 'ref'> {
4
4
  className?: string;
5
5
  title?: string;
6
6
  desc?: string;
@@ -3,6 +3,7 @@ import { ScatterMarkerSlotProps, ScatterMarkerSlots } from "./ScatterMarker.type
3
3
  import { DefaultizedScatterSeriesType, ScatterItemIdentifier } from "../models/seriesType/scatter.js";
4
4
  import { D3Scale } from "../models/axis.js";
5
5
  import { ColorGetter } from "../internals/plugins/models/seriesConfig/index.js";
6
+ import { ScatterClasses } from "./scatterClasses.js";
6
7
  export interface ScatterProps {
7
8
  series: DefaultizedScatterSeriesType;
8
9
  xScale: D3Scale;
@@ -15,6 +16,7 @@ export interface ScatterProps {
15
16
  * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
16
17
  */
17
18
  onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, scatterItemIdentifier: ScatterItemIdentifier) => void;
19
+ classes?: Partial<ScatterClasses>;
18
20
  slots?: ScatterSlots;
19
21
  slotProps?: ScatterSlotProps;
20
22
  }
@@ -14,6 +14,7 @@ import { useItemHighlightedGetter } from "../hooks/useItemHighlightedGetter.js";
14
14
  import { selectorChartsVoronoiIsVoronoiEnabled } from "../internals/plugins/featurePlugins/useChartVoronoi/index.js";
15
15
  import { useChartContext } from "../context/ChartProvider/index.js";
16
16
  import { ScatterMarker } from "./ScatterMarker.js";
17
+ import { useUtilityClasses } from "./scatterClasses.js";
17
18
  import { jsx as _jsx } from "react/jsx-runtime";
18
19
  /**
19
20
  * Demos:
@@ -33,6 +34,7 @@ function Scatter(props) {
33
34
  color,
34
35
  colorGetter,
35
36
  onItemClick,
37
+ classes: inClasses,
36
38
  slots,
37
39
  slotProps
38
40
  } = props;
@@ -88,7 +90,10 @@ function Scatter(props) {
88
90
  ownerState: {}
89
91
  }),
90
92
  markerProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded);
93
+ const classes = useUtilityClasses(inClasses);
91
94
  return /*#__PURE__*/_jsx("g", {
95
+ "data-series": series.id,
96
+ className: classes.root,
92
97
  children: cleanData.map((dataPoint, i) => /*#__PURE__*/_jsx(Marker, _extends({
93
98
  dataIndex: dataPoint.dataIndex,
94
99
  color: dataPoint.color,
@@ -100,7 +105,9 @@ function Scatter(props) {
100
105
  type: 'scatter',
101
106
  seriesId: series.id,
102
107
  dataIndex: dataPoint.dataIndex
103
- }))
108
+ })),
109
+ "data-highlighted": dataPoint.isHighlighted || undefined,
110
+ "data-faded": dataPoint.isFaded || undefined
104
111
  }, interactionItemProps[i], markerProps), dataPoint.id ?? dataPoint.dataIndex))
105
112
  });
106
113
  }
@@ -109,6 +116,7 @@ process.env.NODE_ENV !== "production" ? Scatter.propTypes = {
109
116
  // | These PropTypes are generated from the TypeScript type definitions |
110
117
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
111
118
  // ----------------------------------------------------------------------
119
+ classes: PropTypes.object,
112
120
  color: PropTypes.string.isRequired,
113
121
  colorGetter: PropTypes.func,
114
122
  /**
@@ -2,4 +2,6 @@ export * from "./ScatterChart.js";
2
2
  export * from "./ScatterPlot.js";
3
3
  export * from "./Scatter.js";
4
4
  export * from "./ScatterMarker.types.js";
5
- export * from "./ScatterMarker.js";
5
+ export * from "./ScatterMarker.js";
6
+ export type { ScatterClasses } from "./scatterClasses.js";
7
+ export { scatterClasses } from "./scatterClasses.js";
@@ -2,4 +2,5 @@ export * from "./ScatterChart.js";
2
2
  export * from "./ScatterPlot.js";
3
3
  export * from "./Scatter.js";
4
4
  export * from "./ScatterMarker.types.js";
5
- export * from "./ScatterMarker.js";
5
+ export * from "./ScatterMarker.js";
6
+ export { scatterClasses } from "./scatterClasses.js";
@@ -0,0 +1,8 @@
1
+ export interface ScatterClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ }
5
+ export type ScatterClassKey = keyof ScatterClasses;
6
+ export declare function getScatterUtilityClass(slot: string): string;
7
+ export declare const scatterClasses: ScatterClasses;
8
+ export declare const useUtilityClasses: (classes?: Partial<ScatterClasses>) => Record<"root", string>;
@@ -0,0 +1,13 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import composeClasses from '@mui/utils/composeClasses';
3
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
4
+ export function getScatterUtilityClass(slot) {
5
+ return generateUtilityClass('MuiScatter', slot);
6
+ }
7
+ export const scatterClasses = generateUtilityClasses('MuiScatter', ['root']);
8
+ export const useUtilityClasses = classes => {
9
+ const slots = {
10
+ root: ['root']
11
+ };
12
+ return composeClasses(slots, getScatterUtilityClass, classes);
13
+ };
@@ -14,8 +14,8 @@ import { selectorChartsIsFaded, selectorChartsIsHighlighted } from "../internals
14
14
  */
15
15
  export function useItemHighlighted(item) {
16
16
  const store = useStore();
17
- const isHighlighted = useSelector(store, selectorChartsIsHighlighted, item);
18
- const isFaded = useSelector(store, selectorChartsIsFaded, item);
17
+ const isHighlighted = useSelector(store, selectorChartsIsHighlighted, [item]);
18
+ const isFaded = useSelector(store, selectorChartsIsFaded, [item]);
19
19
  return {
20
20
  isHighlighted,
21
21
  isFaded: !isHighlighted && isFaded
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v8.5.2
2
+ * @mui/x-charts v8.5.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -31,11 +31,11 @@ export function createSeriesSelectorsOfType(seriesType) {
31
31
  });
32
32
  return ids => {
33
33
  const store = useStore();
34
- return useSelector(store, selectorSeriesWithIds, ids, fastArrayCompare);
34
+ return useSelector(store, selectorSeriesWithIds, [ids], fastArrayCompare);
35
35
  };
36
36
  }
37
37
  export function createAllSeriesSelectorOfType(seriesType) {
38
- const selectorSeries = createSelector(selectorChartSeriesProcessed, processedSeries => processedSeries[seriesType]);
38
+ const selectorSeries = createSelector([selectorChartSeriesProcessed], processedSeries => processedSeries[seriesType]);
39
39
  return () => {
40
40
  const store = useStore();
41
41
  return useSelector(store, selectorSeries);
@@ -1,31 +1,5 @@
1
- import { ChartRootSelector } from "../../utils/selectors.js";
2
- import type { UseChartAnimationSignature } from "./useChartAnimation.types.js";
3
- export declare const selectorChartSkipAnimation: ((state: import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
1
+ export declare const selectorChartSkipAnimation: import("reselect").Selector<import("../useChartId/useChartId.types.js").UseChartIdState & import("../useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("./useChartAnimation.types.js").UseChartAnimationState & Partial<{}> & {
4
2
  cacheKey: import("../../models/index.js").ChartStateCacheKey;
5
- }) => boolean) & {
6
- clearCache: () => void;
7
- resultsCount: () => number;
8
- resetResultsCount: () => void;
9
3
  } & {
10
- resultFunc: (resultFuncArgs_0: {
11
- skip: boolean;
12
- skipAnimationRequests: number;
13
- }) => boolean;
14
- memoizedResultFunc: ((resultFuncArgs_0: {
15
- skip: boolean;
16
- skipAnimationRequests: number;
17
- }) => boolean) & {
18
- clearCache: () => void;
19
- resultsCount: () => number;
20
- resetResultsCount: () => void;
21
- };
22
- lastResult: () => boolean;
23
- dependencies: [ChartRootSelector<UseChartAnimationSignature>];
24
- recomputations: () => number;
25
- resetRecomputations: () => void;
26
- dependencyRecomputations: () => number;
27
- resetDependencyRecomputations: () => void;
28
- } & {
29
- memoize: typeof import("reselect").weakMapMemoize;
30
- argsMemoize: typeof import("reselect").weakMapMemoize;
31
- };
4
+ cacheKey: import("../../models/index.js").ChartStateCacheKey;
5
+ }, boolean, any[]>;
@@ -1,3 +1,3 @@
1
1
  import { createSelector } from "../../utils/selectors.js";
2
2
  const selectorChartAnimationState = state => state.animation;
3
- export const selectorChartSkipAnimation = createSelector(selectorChartAnimationState, state => state.skip || state.skipAnimationRequests > 0);
3
+ export const selectorChartSkipAnimation = createSelector([selectorChartAnimationState], state => state.skip || state.skipAnimationRequests > 0);