@mui/x-charts 9.0.2 → 9.0.4

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 (150) hide show
  1. package/BarChart/BarChart.js +2 -1
  2. package/BarChart/BarChart.mjs +2 -1
  3. package/BarChart/BarPlot.js +2 -1
  4. package/BarChart/BarPlot.mjs +2 -1
  5. package/BarChart/FocusedBar.js +3 -0
  6. package/BarChart/FocusedBar.mjs +3 -0
  7. package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.mts +8 -8
  8. package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +8 -8
  9. package/CHANGELOG.md +223 -0
  10. package/ChartsRadialGrid/ChartsRadialGrid.js +2 -0
  11. package/ChartsRadialGrid/ChartsRadialGrid.mjs +2 -0
  12. package/ChartsRadialGrid/ChartsRadiusGrid.d.mts +1 -0
  13. package/ChartsRadialGrid/ChartsRadiusGrid.d.ts +1 -0
  14. package/ChartsRadialGrid/ChartsRadiusGrid.js +1 -2
  15. package/ChartsRadialGrid/ChartsRadiusGrid.mjs +1 -2
  16. package/ChartsRadiusAxis/ChartsRadiusAxis.d.mts +48 -0
  17. package/ChartsRadiusAxis/ChartsRadiusAxis.d.ts +48 -0
  18. package/ChartsRadiusAxis/ChartsRadiusAxis.js +147 -0
  19. package/ChartsRadiusAxis/ChartsRadiusAxis.mjs +141 -0
  20. package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.mts +6 -0
  21. package/ChartsRadiusAxis/chartsRadiusAxisClasses.d.ts +6 -0
  22. package/ChartsRadiusAxis/chartsRadiusAxisClasses.js +30 -0
  23. package/ChartsRadiusAxis/chartsRadiusAxisClasses.mjs +17 -0
  24. package/ChartsRadiusAxis/createGetLabelTextAnchors.d.mts +10 -0
  25. package/ChartsRadiusAxis/createGetLabelTextAnchors.d.ts +10 -0
  26. package/ChartsRadiusAxis/createGetLabelTextAnchors.js +46 -0
  27. package/ChartsRadiusAxis/createGetLabelTextAnchors.mjs +39 -0
  28. package/ChartsRadiusAxis/getLabelTransform.d.mts +11 -0
  29. package/ChartsRadiusAxis/getLabelTransform.d.ts +11 -0
  30. package/ChartsRadiusAxis/getLabelTransform.js +37 -0
  31. package/ChartsRadiusAxis/getLabelTransform.mjs +31 -0
  32. package/ChartsRadiusAxis/index.d.mts +3 -0
  33. package/ChartsRadiusAxis/index.d.ts +3 -0
  34. package/ChartsRadiusAxis/index.js +19 -0
  35. package/ChartsRadiusAxis/index.mjs +2 -0
  36. package/ChartsRadiusAxis/sharedRadialAxisClasses.d.mts +21 -0
  37. package/ChartsRadiusAxis/sharedRadialAxisClasses.d.ts +21 -0
  38. package/ChartsRadiusAxis/sharedRadialAxisClasses.js +14 -0
  39. package/ChartsRadiusAxis/sharedRadialAxisClasses.mjs +6 -0
  40. package/ChartsRotationAxis/ChartsRotationAxis.d.mts +48 -0
  41. package/ChartsRotationAxis/ChartsRotationAxis.d.ts +48 -0
  42. package/ChartsRotationAxis/ChartsRotationAxis.js +141 -0
  43. package/ChartsRotationAxis/ChartsRotationAxis.mjs +135 -0
  44. package/ChartsRotationAxis/chartsRotationAxisClasses.d.mts +5 -0
  45. package/ChartsRotationAxis/chartsRotationAxisClasses.d.ts +5 -0
  46. package/ChartsRotationAxis/chartsRotationAxisClasses.js +29 -0
  47. package/ChartsRotationAxis/chartsRotationAxisClasses.mjs +16 -0
  48. package/ChartsRotationAxis/getLabelTransform.d.mts +11 -0
  49. package/ChartsRotationAxis/getLabelTransform.d.ts +11 -0
  50. package/ChartsRotationAxis/getLabelTransform.js +37 -0
  51. package/ChartsRotationAxis/getLabelTransform.mjs +31 -0
  52. package/ChartsRotationAxis/index.d.mts +2 -0
  53. package/ChartsRotationAxis/index.d.ts +2 -0
  54. package/ChartsRotationAxis/index.js +19 -0
  55. package/ChartsRotationAxis/index.mjs +2 -0
  56. package/ChartsTooltip/useAxesTooltip.js +18 -7
  57. package/ChartsTooltip/useAxesTooltip.mjs +19 -8
  58. package/ChartsTooltip/useItemTooltip.d.mts +1 -1
  59. package/ChartsTooltip/useItemTooltip.d.ts +1 -1
  60. package/ChartsTooltip/useItemTooltip.js +17 -2
  61. package/ChartsTooltip/useItemTooltip.mjs +18 -3
  62. package/ChartsXAxis/useAxisTicksProps.d.mts +245 -164
  63. package/ChartsXAxis/useAxisTicksProps.d.ts +245 -164
  64. package/ChartsYAxis/useAxisTicksProps.d.mts +245 -164
  65. package/ChartsYAxis/useAxisTicksProps.d.ts +245 -164
  66. package/LineChart/FocusedLineMark.js +3 -0
  67. package/LineChart/FocusedLineMark.mjs +3 -0
  68. package/LineChart/seriesConfig/curveEvaluation.js +24 -19
  69. package/LineChart/seriesConfig/curveEvaluation.mjs +24 -19
  70. package/LineChart/seriesConfig/getItemAtPosition.js +25 -37
  71. package/LineChart/seriesConfig/getItemAtPosition.mjs +24 -36
  72. package/LineChart/seriesConfig/getSeriesWithDefaultValues.js +4 -6
  73. package/LineChart/seriesConfig/getSeriesWithDefaultValues.mjs +4 -6
  74. package/LineChart/seriesConfig/seriesProcessor.d.mts +4 -2
  75. package/LineChart/seriesConfig/seriesProcessor.d.ts +4 -2
  76. package/LineChart/seriesConfig/seriesProcessor.js +2 -2
  77. package/LineChart/seriesConfig/seriesProcessor.mjs +2 -2
  78. package/PieChart/FocusedPieArc.js +3 -0
  79. package/PieChart/FocusedPieArc.mjs +3 -0
  80. package/RadarChart/FocusedRadarMark.js +3 -0
  81. package/RadarChart/FocusedRadarMark.mjs +3 -0
  82. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.mts +2 -2
  83. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
  84. package/ScatterChart/FocusedScatterMark.js +3 -0
  85. package/ScatterChart/FocusedScatterMark.mjs +3 -0
  86. package/hooks/useAxis.d.mts +2 -2
  87. package/hooks/useAxis.d.ts +2 -2
  88. package/index.d.mts +2 -0
  89. package/index.d.ts +2 -0
  90. package/index.js +22 -2
  91. package/index.mjs +3 -1
  92. package/internals/commonNextFocusItem.js +62 -8
  93. package/internals/commonNextFocusItem.mjs +62 -8
  94. package/internals/cubiqSolver.d.mts +5 -0
  95. package/internals/cubiqSolver.d.ts +5 -0
  96. package/internals/cubiqSolver.js +62 -0
  97. package/internals/cubiqSolver.mjs +56 -0
  98. package/internals/findClosestIndex.d.mts +5 -0
  99. package/internals/findClosestIndex.d.ts +5 -0
  100. package/internals/findClosestIndex.js +27 -0
  101. package/internals/findClosestIndex.mjs +22 -0
  102. package/internals/getAsNumber.d.mts +1 -0
  103. package/internals/getAsNumber.d.ts +1 -0
  104. package/internals/getAsNumber.js +9 -0
  105. package/internals/getAsNumber.mjs +3 -0
  106. package/internals/index.d.mts +6 -1
  107. package/internals/index.d.ts +6 -1
  108. package/internals/index.js +59 -2
  109. package/internals/index.mjs +6 -1
  110. package/internals/isPolar.d.mts +3 -2
  111. package/internals/isPolar.d.ts +3 -2
  112. package/internals/isPolar.js +4 -0
  113. package/internals/isPolar.mjs +3 -0
  114. package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.mts +8 -9
  115. package/internals/plugins/corePlugins/useChartSeriesConfig/types/colorProcessor.types.d.ts +8 -9
  116. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.js +4 -21
  117. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisValue.mjs +4 -21
  118. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.d.mts +30 -0
  119. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.d.ts +30 -0
  120. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.js +57 -0
  121. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/findVisibleDataIndex.mjs +51 -0
  122. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +7 -1
  123. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.mjs +7 -1
  124. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +7 -1
  125. package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.mjs +7 -1
  126. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.mts +3 -2
  127. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.d.ts +3 -2
  128. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.js +25 -14
  129. package/internals/plugins/featurePlugins/useChartPolarAxis/computeAxisValue.mjs +25 -14
  130. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.js +9 -4
  131. package/internals/plugins/featurePlugins/useChartPolarAxis/getAxisIndex.mjs +9 -3
  132. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.mts +2 -2
  133. package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -2
  134. package/models/axis.d.mts +2 -0
  135. package/models/axis.d.ts +2 -0
  136. package/models/seriesType/bar.d.mts +12 -7
  137. package/models/seriesType/bar.d.ts +12 -7
  138. package/models/seriesType/common.d.mts +10 -0
  139. package/models/seriesType/common.d.ts +10 -0
  140. package/models/seriesType/composition.d.mts +3 -1
  141. package/models/seriesType/composition.d.ts +3 -1
  142. package/models/seriesType/composition.js +6 -2
  143. package/models/seriesType/composition.mjs +5 -1
  144. package/models/seriesType/index.d.mts +3 -3
  145. package/models/seriesType/index.d.ts +3 -3
  146. package/models/seriesType/index.js +0 -22
  147. package/models/seriesType/index.mjs +0 -2
  148. package/models/seriesType/line.d.mts +13 -8
  149. package/models/seriesType/line.d.ts +13 -8
  150. package/package.json +32 -4
@@ -291,7 +291,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
291
291
  onHighlightedAxisChange: _propTypes.default.func,
292
292
  /**
293
293
  * Callback fired when a bar item is clicked.
294
- * @param {MouseEvent} event The event source of the callback.
294
+ * @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
295
+ * It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
295
296
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
296
297
  */
297
298
  onItemClick: _propTypes.default.func,
@@ -284,7 +284,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
284
284
  onHighlightedAxisChange: PropTypes.func,
285
285
  /**
286
286
  * Callback fired when a bar item is clicked.
287
- * @param {MouseEvent} event The event source of the callback.
287
+ * @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
288
+ * It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
288
289
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
289
290
  */
290
291
  onItemClick: PropTypes.func,
@@ -102,7 +102,8 @@ process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
102
102
  className: _propTypes.default.string,
103
103
  /**
104
104
  * Callback fired when a bar item is clicked.
105
- * @param {MouseEvent} event The event source of the callback.
105
+ * @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
106
+ * It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
106
107
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
107
108
  */
108
109
  onItemClick: _propTypes.default.func,
@@ -95,7 +95,8 @@ process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
95
95
  className: PropTypes.string,
96
96
  /**
97
97
  * Callback fired when a bar item is clicked.
98
- * @param {MouseEvent} event The event source of the callback.
98
+ * @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
99
+ * It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
99
100
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
100
101
  */
101
102
  onItemClick: PropTypes.func,
@@ -30,6 +30,9 @@ function FocusedBar(props) {
30
30
  return null;
31
31
  }
32
32
  const series = barSeries.series[focusedItem.seriesId];
33
+ if (!series || series.hidden) {
34
+ return null;
35
+ }
33
36
  if (series.data[focusedItem.dataIndex] == null) {
34
37
  // Handle missing data
35
38
  return null;
@@ -23,6 +23,9 @@ export function FocusedBar(props) {
23
23
  return null;
24
24
  }
25
25
  const series = barSeries.series[focusedItem.seriesId];
26
+ if (!series || series.hidden) {
27
+ return null;
28
+ }
26
29
  if (series.data[focusedItem.dataIndex] == null) {
27
30
  // Handle missing data
28
31
  return null;
@@ -3,15 +3,8 @@ export declare function getSeriesWithDefaultValues(seriesData: AllSeriesType<'ba
3
3
  id: string;
4
4
  color: string;
5
5
  type: "bar";
6
- data?: ReadonlyArray<import("../../../index.mjs").BarValueType | null>;
7
- dataKey?: string;
8
- valueGetter?: (item: import("../../../internals/index.mjs").DatasetElementType<unknown>) => import("../../../index.mjs").BarValueType | null;
9
- label?: string | ((location: "tooltip" | "legend") => string);
10
- layout?: "horizontal" | "vertical";
11
- stackOffset?: import("../../../index.mjs").StackOffsetType;
12
- minBarSize?: number;
13
- barLabel?: "value" | ((item: import("@mui/x-charts/BarChart").BarItem, context: import("@mui/x-charts/BarChart").BarLabelContext) => string | null | undefined);
14
6
  barLabelPlacement?: "center" | "outside";
7
+ stackOffset?: import("../../../index.mjs").StackOffsetType;
15
8
  valueFormatter?: import("../../../internals/index.mjs").SeriesValueFormatter<number | null> | undefined;
16
9
  highlightScope?: import("../../../internals/index.mjs").CommonHighlightScope | undefined;
17
10
  labelMarkType?: import("../../../internals/index.mjs").ChartsLabelMarkType;
@@ -20,4 +13,11 @@ export declare function getSeriesWithDefaultValues(seriesData: AllSeriesType<'ba
20
13
  yAxisId?: import("../../../internals/index.mjs").AxisId;
21
14
  stack?: string;
22
15
  stackOrder?: import("../../../index.mjs").StackOrderType;
16
+ data?: ReadonlyArray<import("../../../index.mjs").BarValueType | null>;
17
+ dataKey?: string;
18
+ valueGetter?: (item: import("../../../internals/index.mjs").DatasetElementType<unknown>) => import("../../../index.mjs").BarValueType | null;
19
+ label?: string | ((location: "tooltip" | "legend") => string);
20
+ layout?: "horizontal" | "vertical";
21
+ minBarSize?: number;
22
+ barLabel?: "value" | ((item: import("@mui/x-charts/BarChart").BarItem, context: import("@mui/x-charts/BarChart").BarLabelContext) => string | null | undefined);
23
23
  };
@@ -3,15 +3,8 @@ export declare function getSeriesWithDefaultValues(seriesData: AllSeriesType<'ba
3
3
  id: string;
4
4
  color: string;
5
5
  type: "bar";
6
- data?: ReadonlyArray<import("../../../index.js").BarValueType | null>;
7
- dataKey?: string;
8
- valueGetter?: (item: import("../../../internals/index.js").DatasetElementType<unknown>) => import("../../../index.js").BarValueType | null;
9
- label?: string | ((location: "tooltip" | "legend") => string);
10
- layout?: "horizontal" | "vertical";
11
- stackOffset?: import("../../../index.js").StackOffsetType;
12
- minBarSize?: number;
13
- barLabel?: "value" | ((item: import("@mui/x-charts/BarChart").BarItem, context: import("@mui/x-charts/BarChart").BarLabelContext) => string | null | undefined);
14
6
  barLabelPlacement?: "center" | "outside";
7
+ stackOffset?: import("../../../index.js").StackOffsetType;
15
8
  valueFormatter?: import("../../../internals/index.js").SeriesValueFormatter<number | null> | undefined;
16
9
  highlightScope?: import("../../../internals/index.js").CommonHighlightScope | undefined;
17
10
  labelMarkType?: import("../../../internals/index.js").ChartsLabelMarkType;
@@ -20,4 +13,11 @@ export declare function getSeriesWithDefaultValues(seriesData: AllSeriesType<'ba
20
13
  yAxisId?: import("../../../internals/index.js").AxisId;
21
14
  stack?: string;
22
15
  stackOrder?: import("../../../index.js").StackOrderType;
16
+ data?: ReadonlyArray<import("../../../index.js").BarValueType | null>;
17
+ dataKey?: string;
18
+ valueGetter?: (item: import("../../../internals/index.js").DatasetElementType<unknown>) => import("../../../index.js").BarValueType | null;
19
+ label?: string | ((location: "tooltip" | "legend") => string);
20
+ layout?: "horizontal" | "vertical";
21
+ minBarSize?: number;
22
+ barLabel?: "value" | ((item: import("@mui/x-charts/BarChart").BarItem, context: import("@mui/x-charts/BarChart").BarLabelContext) => string | null | undefined);
23
23
  };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,228 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.4
4
+
5
+ _Apr 28, 2026_
6
+
7
+ We'd like to extend a big thank you to the 4 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - Fix Pickers previous (v9.0.3) release ensuring the latest `@mui/x-internals` version usage
10
+
11
+ The following team members contributed to this release:
12
+ @alexfauquette, @JCQuintas, @LukasTy, @mj12albert
13
+
14
+ ### Data Grid
15
+
16
+ #### `@mui/x-data-grid@9.0.4`
17
+
18
+ Internal changes.
19
+
20
+ #### `@mui/x-data-grid-pro@9.0.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
21
+
22
+ Same changes as in `@mui/x-data-grid@9.0.4`.
23
+
24
+ #### `@mui/x-data-grid-premium@9.0.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
25
+
26
+ Same changes as in `@mui/x-data-grid-pro@9.0.4`.
27
+
28
+ ### Date and Time Pickers
29
+
30
+ #### `@mui/x-date-pickers@9.0.4`
31
+
32
+ Internal changes.
33
+
34
+ #### `@mui/x-date-pickers-pro@9.0.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
35
+
36
+ Same changes as in `@mui/x-date-pickers@9.0.4`.
37
+
38
+ ### Charts
39
+
40
+ #### `@mui/x-charts@9.0.4`
41
+
42
+ - [charts] Exclude hidden series and items from keyboard navigation (alt approach) (#22221) @JCQuintas
43
+ - [charts] Fix line interaction with `area` and `conectNulls` (#22227) @alexfauquette
44
+ - [charts] Implement the continuous case of `getAxisIndex` for rotation axis (#22230) @alexfauquette
45
+
46
+ #### `@mui/x-charts-pro@9.0.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
47
+
48
+ Same changes as in `@mui/x-charts@9.0.4`.
49
+
50
+ #### `@mui/x-charts-premium@9.0.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
51
+
52
+ Same changes as in `@mui/x-charts-pro@9.0.4` plus:
53
+
54
+ - [charts-premium] Add `showMark` and `shape` properties to radial line (#22226) @alexfauquette
55
+
56
+ ### Tree View
57
+
58
+ #### `@mui/x-tree-view@9.0.4`
59
+
60
+ Internal changes.
61
+
62
+ #### `@mui/x-tree-view-pro@9.0.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
63
+
64
+ Same changes as in `@mui/x-tree-view@9.0.4`.
65
+
66
+ ### Scheduler
67
+
68
+ #### `@mui/x-scheduler@9.0.4`
69
+
70
+ Internal changes.
71
+
72
+ #### `@mui/x-scheduler-premium@9.0.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
73
+
74
+ Same changes as in `@mui/x-scheduler@9.0.4`.
75
+
76
+ ### Codemod
77
+
78
+ #### `@mui/x-codemod@9.0.4`
79
+
80
+ Internal changes.
81
+
82
+ ### Docs
83
+
84
+ - [docs] Update WCAG links (#22234) @mj12albert
85
+
86
+ ### Core
87
+
88
+ - [code-infra] Avoid overriding `renovate` `ignoredPaths` (#22228) @LukasTy
89
+
90
+ ## 9.0.3
91
+
92
+ _Apr 27, 2026_
93
+
94
+ We'd like to extend a big thank you to the 16 contributors who made this release possible. Here are some highlights ✨:
95
+
96
+ - ⌨️ Keyboard support for creating events in the Scheduler
97
+
98
+ Special thanks go out to these community members for their valuable contributions:
99
+ @supunsathsara, @ZAKIURREHMAN
100
+
101
+ The following team members contributed to this release:
102
+ @aemartos, @alexfauquette, @arminmeh, @brijeshb42, @Janpot, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes, @romgrk, @sai6855, @siriwatknp
103
+
104
+ ### Data Grid
105
+
106
+ #### `@mui/x-data-grid@9.0.3`
107
+
108
+ - [DataGrid] Fix `:first-child` SSR warning when `MuiDataGrid.styleOverrides` is set (#22081) @siriwatknp
109
+ - [DataGrid] Fix row reordering when filter hides rows (#22096) @siriwatknp
110
+ - [DataGrid] Remove unused `LayoutDataGridLegacy` class (#22009) @romgrk
111
+ - [DataGrid] Remove unused code, clean up grid-related utilities and deprecate `GridPanelHeader` (#22112) @sai6855
112
+ - [DataGrid] Fix columns cutting off after resizing (#22088) @ZAKIURREHMAN
113
+
114
+ #### `@mui/x-data-grid-pro@9.0.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
115
+
116
+ Same changes as in `@mui/x-data-grid@9.0.3`.
117
+
118
+ #### `@mui/x-data-grid-premium@9.0.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
119
+
120
+ Same changes as in `@mui/x-data-grid-pro@9.0.3`, plus:
121
+
122
+ - [DataGridPremium] Fix row grouping model updates not being reflected (#22122) @MBilalShafi
123
+
124
+ ### Date and Time Pickers
125
+
126
+ #### `@mui/x-date-pickers@9.0.3`
127
+
128
+ - [pickers] Fix `DateRangeCalendar` drag with `AdapterDayjs` plain-constructor values (#22165) @LukasTy
129
+ - [pickers] Fix disabled state not overriding error border color (#21169) @supunsathsara
130
+ - [pickers] Forward `data-*` and `aria-*` attributes to the root (#22147) @LukasTy
131
+ - [pickers] Support `K` and `k` hour format tokens (#22108) @michelengelen
132
+
133
+ #### `@mui/x-date-pickers-pro@9.0.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
134
+
135
+ Same changes as in `@mui/x-date-pickers@9.0.3`, plus:
136
+
137
+ - [DateRangeCalendar] Ensure date dragging triggers regardless of trigger element (#21868) @michelengelen
138
+
139
+ ### Charts
140
+
141
+ #### `@mui/x-charts@9.0.3`
142
+
143
+ - [charts] Centralize WebGL clear/render cycle (context-based) (#22127) @JCQuintas
144
+ - [charts] Fix closest series detection for line charts (#22168) @alexfauquette
145
+ - [charts] Fix radius grid lines when axis uses point scale (#22134) @alexfauquette
146
+ - [charts] Use cubic solver for berzier intersection (#22152) @alexfauquette
147
+
148
+ #### `@mui/x-charts-pro@9.0.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
149
+
150
+ Same changes as in `@mui/x-charts@9.0.3`, plus:
151
+
152
+ - [charts-pro] Fix wheel zoom clamping with custom `minStart`/`maxEnd` (#22159) @JCQuintas
153
+
154
+ #### `@mui/x-charts-premium@9.0.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
155
+
156
+ Same changes as in `@mui/x-charts-pro@9.0.3`, plus:
157
+
158
+ - [charts] Create a `'radialLine'` series type (#22066) @alexfauquette
159
+ - [charts] Plot radial line (#22133) @alexfauquette
160
+ - [charts] Remove `HeatmapWebGLRenderer` indirection (#22169) @JCQuintas
161
+
162
+ ### Tree View
163
+
164
+ #### `@mui/x-tree-view@9.0.2`
165
+
166
+ Internal changes.
167
+
168
+ #### `@mui/x-tree-view-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
169
+
170
+ Same changes as in `@mui/x-tree-view@9.0.2`.
171
+
172
+ ### Scheduler
173
+
174
+ #### Breaking changes
175
+
176
+ - The `views` of `EventTimelinePremium` have been renamed to `presets`, with names that describe the header layout. The props `view`/`defaultView`/`views`/`onViewChange` are now `preset`/`defaultPreset`/`presets`/`onPresetChange`, and the type `EventTimelinePremiumView` is now `EventTimelinePremiumPreset`.
177
+
178
+ | Old | New |
179
+ | :------- | :------------- |
180
+ | `time` | `dayAndHour` |
181
+ | `days` | `day` |
182
+ | `weeks` | `dayAndWeek` |
183
+ | `months` | `monthAndYear` |
184
+ | `years` | `year` |
185
+
186
+ CSS variables (`--time-cell-width`, etc.) and headless store state (`state.view`, `setView`) follow the same rename. The `presets` array is now sorted internally against a canonical zoom order.
187
+
188
+ #### `@mui/x-scheduler@9.0.0-alpha.3`
189
+
190
+ - [scheduler] Allow creating events via keyboard - EventCalendar (#21967) @rita-codes
191
+ - [scheduler] Prefix element IDs with a unique Scheduler instance ID (#22109) @rita-codes
192
+
193
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
194
+
195
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.3`.
196
+
197
+ - [scheduler] Allow creating events via keyboard - `EventTimeline` (#22119) @rita-codes
198
+ - [scheduler] Rename `EventTimeline` `views` to ordered presets (#22130) @rita-codes
199
+
200
+ ### Docs
201
+
202
+ - [docs] Cleanup generated llm md files for chat (#22163) @brijeshb42
203
+ - [docs] Fix `highlightScope` description (#22154) @alexfauquette
204
+ - [docs] Remove obsolete v7 deprecation warning for `dayOfWeekFormatter` (#22111) @LukasTy
205
+ - [docs] Use mui.com for broken links checker known targets (#22129) @JCQuintas
206
+ - [docs] Document picker behavior inside MUI `Dialog` and provide recommended solutions (#22144) @michelengelen
207
+ - [docs] Improve v9 license key version mismatch error guidance (#22180) @aemartos
208
+
209
+ ### Core
210
+
211
+ - [code-infra] Reduce concurrency for package build to 5 (#22115) @Janpot
212
+ - [code-infra] Rename `docsx` alias to `docs` (#22155) @brijeshb42
213
+ - [docs-infra] Remove monorepo dependency (#22025) @brijeshb42
214
+ - [docs-infra] Use latest published packages (#22086) @brijeshb42
215
+ - [test] Refactor Pickers tests to async user-event (#22043) @LukasTy
216
+ - [test] Remove redundant explicit `unmount()` calls from Pickers tests (#22118) @LukasTy
217
+
218
+ ### Miscellaneous
219
+
220
+ - [infra] Update `.gitignore` to exclude `.claude/worktrees` (#22145) @michelengelen
221
+ - [infra] Enable branch tracking when creating release branch (#22177) @michelengelen
222
+ - [license] Add MIT license to `x-virtualizer` package (#22164) @michelengelen
223
+ - [website] Fix outdated MUI logos (#22117) @oliviertassinari
224
+ - [internal] Try avoiding store update when virtualization is disabled (#22093) @arminmeh
225
+
3
226
  ## 9.0.2
4
227
 
5
228
  <!-- generated comparing v9.0.1..master -->
@@ -64,6 +64,7 @@ function ChartsRadialGrid(inProps) {
64
64
  const outerRadius = radiusAxisConfig?.scale.range()[1] ?? 0;
65
65
  const startAngle = rotationAxisConfig?.scale.range()[0] ?? 0;
66
66
  const endAngle = rotationAxisConfig?.scale.range()[1] ?? 0;
67
+ const isFullCircle = rotationAxisConfig?.isFullCircle ?? false;
67
68
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styledComponents.GridRoot, (0, _extends2.default)({}, other, {
68
69
  className: (0, _clsx.default)(classes.root, className),
69
70
  children: [rotation && rotationAxisConfig && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsRotationGrid.ChartsRotationGrid, {
@@ -75,6 +76,7 @@ function ChartsRadialGrid(inProps) {
75
76
  axis: radiusAxisConfig,
76
77
  startAngle: startAngle,
77
78
  endAngle: endAngle,
79
+ isFullCircle: isFullCircle,
78
80
  classes: classes
79
81
  })]
80
82
  }));
@@ -58,6 +58,7 @@ function ChartsRadialGrid(inProps) {
58
58
  const outerRadius = radiusAxisConfig?.scale.range()[1] ?? 0;
59
59
  const startAngle = rotationAxisConfig?.scale.range()[0] ?? 0;
60
60
  const endAngle = rotationAxisConfig?.scale.range()[1] ?? 0;
61
+ const isFullCircle = rotationAxisConfig?.isFullCircle ?? false;
61
62
  return /*#__PURE__*/_jsxs(GridRoot, _extends({}, other, {
62
63
  className: clsx(classes.root, className),
63
64
  children: [rotation && rotationAxisConfig && /*#__PURE__*/_jsx(ChartsRotationGrid, {
@@ -69,6 +70,7 @@ function ChartsRadialGrid(inProps) {
69
70
  axis: radiusAxisConfig,
70
71
  startAngle: startAngle,
71
72
  endAngle: endAngle,
73
+ isFullCircle: isFullCircle,
72
74
  classes: classes
73
75
  })]
74
76
  }));
@@ -4,6 +4,7 @@ interface ChartsRadiusGridProps {
4
4
  axis: PolarAxisDefaultized<any, any, any>;
5
5
  startAngle: number;
6
6
  endAngle: number;
7
+ isFullCircle: boolean;
7
8
  classes: Partial<ChartsRadialGridClasses>;
8
9
  }
9
10
  /**
@@ -4,6 +4,7 @@ interface ChartsRadiusGridProps {
4
4
  axis: PolarAxisDefaultized<any, any, any>;
5
5
  startAngle: number;
6
6
  endAngle: number;
7
+ isFullCircle: boolean;
7
8
  classes: Partial<ChartsRadialGridClasses>;
8
9
  }
9
10
  /**
@@ -10,7 +10,6 @@ var _useTicks = require("../hooks/useTicks");
10
10
  var _styledComponents = require("./styledComponents");
11
11
  var _ChartsProvider = require("../context/ChartsProvider");
12
12
  var _useChartPolarAxis = require("../internals/plugins/featurePlugins/useChartPolarAxis");
13
- var _epsilon = require("../utils/epsilon");
14
13
  var _jsxRuntime = require("react/jsx-runtime");
15
14
  /**
16
15
  * @ignore - internal component.
@@ -23,6 +22,7 @@ function ChartsRadiusGrid(props) {
23
22
  axis,
24
23
  startAngle,
25
24
  endAngle,
25
+ isFullCircle,
26
26
  classes
27
27
  } = props;
28
28
  const {
@@ -42,7 +42,6 @@ function ChartsRadiusGrid(props) {
42
42
  tickSpacing,
43
43
  direction: 'radius'
44
44
  });
45
- const isFullCircle = Math.abs(endAngle - startAngle) >= 2 * Math.PI - _epsilon.EPSILON;
46
45
  if (isFullCircle) {
47
46
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
48
47
  children: ticks.map(({
@@ -3,7 +3,6 @@ import { useTicks } from "../hooks/useTicks.mjs";
3
3
  import { GridCircle, GridPath } from "./styledComponents.mjs";
4
4
  import { useChartsContext } from "../context/ChartsProvider/index.mjs";
5
5
  import { selectorChartPolarCenter } from "../internals/plugins/featurePlugins/useChartPolarAxis/index.mjs";
6
- import { EPSILON } from "../utils/epsilon.mjs";
7
6
  import { jsx as _jsx } from "react/jsx-runtime";
8
7
  /**
9
8
  * @ignore - internal component.
@@ -16,6 +15,7 @@ export function ChartsRadiusGrid(props) {
16
15
  axis,
17
16
  startAngle,
18
17
  endAngle,
18
+ isFullCircle,
19
19
  classes
20
20
  } = props;
21
21
  const {
@@ -35,7 +35,6 @@ export function ChartsRadiusGrid(props) {
35
35
  tickSpacing,
36
36
  direction: 'radius'
37
37
  });
38
- const isFullCircle = Math.abs(endAngle - startAngle) >= 2 * Math.PI - EPSILON;
39
38
  if (isFullCircle) {
40
39
  return /*#__PURE__*/_jsx(React.Fragment, {
41
40
  children: ticks.map(({
@@ -0,0 +1,48 @@
1
+ import type { AxisId } from "../models/axis.mjs";
2
+ import { type ChartsRadialAxisClasses } from "./chartsRadiusAxisClasses.mjs";
3
+ export interface ChartsRadiusAxisProps {
4
+ /**
5
+ * Id of the radius axis to render.
6
+ * If not provided, it will use the first defined radius axis.
7
+ */
8
+ axisId?: AxisId;
9
+ /**
10
+ * The position of the axis in polar coordinates.
11
+ * It can be 'start', 'end', or a specific angle in degrees.
12
+ * @default 'start'
13
+ */
14
+ position?: 'start' | 'end' | number;
15
+ /**
16
+ * If `true`, the axis line is not rendered.
17
+ * @default false
18
+ */
19
+ disableLine?: boolean;
20
+ /**
21
+ * If `true`, the ticks are not rendered.
22
+ * @default false
23
+ */
24
+ disableTicks?: boolean;
25
+ /**
26
+ * The size (in pixels) of the tick marks.
27
+ * @default 6
28
+ */
29
+ tickSize?: number;
30
+ /**
31
+ * Set the position of the tick labels relative to the axis line.
32
+ * The before/after is defined based on clockwise direction.
33
+ * @default 'after'
34
+ */
35
+ tickLabelPosition?: 'center' | 'after' | 'before';
36
+ /**
37
+ * Set the position of the tick relative to the axis line.
38
+ * The before/after is defined based on clockwise direction.
39
+ * @default 'after'
40
+ */
41
+ tickPosition?: 'after' | 'before';
42
+ /**
43
+ * A CSS class name applied to the root element.
44
+ */
45
+ className?: string;
46
+ classes?: Partial<ChartsRadialAxisClasses>;
47
+ }
48
+ export declare function ChartsRadiusAxis(props: ChartsRadiusAxisProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,48 @@
1
+ import type { AxisId } from "../models/axis.js";
2
+ import { type ChartsRadialAxisClasses } from "./chartsRadiusAxisClasses.js";
3
+ export interface ChartsRadiusAxisProps {
4
+ /**
5
+ * Id of the radius axis to render.
6
+ * If not provided, it will use the first defined radius axis.
7
+ */
8
+ axisId?: AxisId;
9
+ /**
10
+ * The position of the axis in polar coordinates.
11
+ * It can be 'start', 'end', or a specific angle in degrees.
12
+ * @default 'start'
13
+ */
14
+ position?: 'start' | 'end' | number;
15
+ /**
16
+ * If `true`, the axis line is not rendered.
17
+ * @default false
18
+ */
19
+ disableLine?: boolean;
20
+ /**
21
+ * If `true`, the ticks are not rendered.
22
+ * @default false
23
+ */
24
+ disableTicks?: boolean;
25
+ /**
26
+ * The size (in pixels) of the tick marks.
27
+ * @default 6
28
+ */
29
+ tickSize?: number;
30
+ /**
31
+ * Set the position of the tick labels relative to the axis line.
32
+ * The before/after is defined based on clockwise direction.
33
+ * @default 'after'
34
+ */
35
+ tickLabelPosition?: 'center' | 'after' | 'before';
36
+ /**
37
+ * Set the position of the tick relative to the axis line.
38
+ * The before/after is defined based on clockwise direction.
39
+ * @default 'after'
40
+ */
41
+ tickPosition?: 'after' | 'before';
42
+ /**
43
+ * A CSS class name applied to the root element.
44
+ */
45
+ className?: string;
46
+ classes?: Partial<ChartsRadialAxisClasses>;
47
+ }
48
+ export declare function ChartsRadiusAxis(props: ChartsRadiusAxisProps): import("react/jsx-runtime").JSX.Element | null;