diff --git a/CHANGELOG.md b/CHANGELOG.md
index eeee378b0778..94b199a3aedb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,133 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## 8.0.0-alpha.4
+
+_Dec 13, 2024_
+
+We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights āØ:
+
+- š Improve Romanian locale on the Data Grid and Pickers
+- š Documentation improvements
+- š Bugfixes
+
+Special thanks go out to the community contributors who have helped make this release possible:
+@k-rajat19, @nusr, @rares985, @zivl.
+Following are all team members who have contributed to this release:
+@alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi.
+
+
+
+### Data Grid
+
+#### Breaking changes
+
+- The selectors signature has been updated due to the support of arguments in the selectors. Pass `undefined` as `arguments` if the selector doesn't use any arguments.
+
+ ```diff
+ -mySelector(state, instanceId)
+ +mySelector(state, arguments, instanceId)
+ ```
+
+- The `useGridSelector` signature has been updated due to the introduction of arguments parameter in the selectors. Pass `undefined` as `arguments` if the selector doesn't use any arguments.
+
+ ```diff
+ -const output = useGridSelector(apiRef, selector, equals)
+ +const output = useGridSelector(apiRef, selector, arguments, equals)
+ ```
+- The default variant for text fields and selects in the filter panel has been changed to `outlined`.
+- The "row spanning" feature is now stable.
+ ```diff
+
+ ```
+- Selected row is now deselected when clicked again.
+
+#### `@mui/x-data-grid@8.0.0-alpha.4`
+
+- [DataGrid] Deselect selected row on click (#15509) @k-rajat19
+- [DataGrid] Fix "No rows" displaying when all rows are pinned (#15335) @nusr
+- [DataGrid] Make row spanning feature stable (#15742) @MBilalShafi
+- [DataGrid] Round dimensions to avoid subpixel rendering error (#15850) @KenanYusuf
+- [DataGrid] Toggle menu on click in `` (#15867) @k-rajat19
+- [DataGrid] Trigger row spanning computation on rows update (#15858) @MBilalShafi
+- [DataGrid] Update filter panel input variant (#15807) @KenanYusuf
+- [DataGrid] Use `columnsManagement` slot (#15817) @k-rajat19
+- [DataGrid] Use new selector signature (#15200) @MBilalShafi
+- [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
+
+#### `@mui/x-data-grid-pro@8.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-data-grid@8.0.0-alpha.4`, plus:
+
+- [DataGridPro] Make row reordering work with pagination (#15355) @k-rajat19
+
+#### `@mui/x-data-grid-premium@8.0.0-alpha.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
+
+Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.4`, plus:
+
+- [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15739) @arminmeh
+
+### Date and Time Pickers
+
+#### `@mui/x-date-pickers@8.0.0-alpha.4`
+
+- [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
+- [pickers] Clean `usePicker` logic (#15763) @flaviendelangle
+- [pickers] Rename layout `ownerState` property from `isRtl` to `layoutDirection` (#15803) @flaviendelangle
+- [pickers] Use the new `ownerState` in `useClearableField` (#15776) @flaviendelangle
+- [pickers] Use the new `ownerState` in the toolbar components (#15777) @flaviendelangle
+- [pickers] Use the new `ownerState` object for the clock components and the desktop / mobile wrappers (#15669) @flaviendelangle
+
+#### `@mui/x-date-pickers-pro@8.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-date-pickers@8.0.0-alpha.4`.
+
+### Charts
+
+#### Breaking changes
+
+- The default styling of the charts tooltip has been updated.
+
+#### `@mui/x-charts@8.0.0-alpha.4`
+
+- [charts] Fix hydration missmatch (#15647) @alexfauquette
+- [charts] Fix internal spelling typo (#15805) @zivl
+- [charts] Fix scatter dataset with missing data (#15802) @alexfauquette
+- [charts] HTML Labels (#15813) @JCQuintas
+- [charts] Only access store values by using hooks (#15764) @alexfauquette
+- [charts] Update Tooltip style (#15630) @alexfauquette
+
+#### `@mui/x-charts-pro@8.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-charts@8.0.0-alpha.4`.
+
+### Tree View
+
+#### `@mui/x-tree-view@8.0.0-alpha.4`
+
+No changes, releasing to keep the versions in sync.
+
+#### `@mui/x-tree-view-pro@8.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Releasing to benefit from license package fix (#15814).
+
+### Docs
+
+- [docs] Clean Joy and Browser custom field demos (#15707) @flaviendelangle
+- [docs] Fix outdated link to handbook (#15855) @oliviertassinari
+- [docs] Improve Pickers accessible DOM migration section description (#15596) @LukasTy
+- [docs] Use `updateRows` method for list view demos (#15732) @KenanYusuf
+- [docs] Use date library version from package dev dependencies for sandboxes (#15762) @LukasTy
+
+### Core
+
+- [code-infra] Add Charts sandbox generation (#15830) @JCQuintas
+- [code-infra] Remove redundant `@type/react-test-renderer` dep (#15766) @LukasTy
+- [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15814) @arminmeh
+
## 8.0.0-alpha.3
_Dec 5, 2024_
@@ -567,6 +694,153 @@ Same changes as in `@mui/x-charts@8.0.0-alpha.0`.
- [release] v8 preparation (#15054) @michelengelen
- [test] Fix advanced list view regression test snapshot (#15260) @KenanYusuf
+## 7.23.2
+
+_Dec 12, 2024_
+
+We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights āØ:
+
+- š Improve Romanian and Turkish locales on the Data Grid
+- š Improve Romanian locale on the Pickers
+- š Documentation improvements
+- š Bugfixes
+
+Special thanks go out to the community contributors who have helped make this release possible:
+@ihsanberkozcan, @k-rajat19, @lhilgert9, @nusr, @rares985.
+
+Following are all team members who have contributed to this release:
+@alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy.
+
+
+
+### Data Grid
+
+#### `@mui/x-data-grid@7.23.2`
+
+- [DataGrid] Fix "No rows" displaying when all rows are pinned (#15851) @nusr
+- [DataGrid] Use `columnsManagement` slot (#15821) @k-rajat19
+- [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
+- [l10n] Improve Turkish (tr-TR) locale (#15748) @ihsanberkozcan
+
+#### `@mui/x-data-grid-pro@7.23.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-data-grid@7.23.2`, plus:
+
+- [DataGridPro] Make Row reordering work with pagination (#15782) @k-rajat19
+
+#### `@mui/x-data-grid-premium@7.23.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
+
+Same changes as in `@mui/x-data-grid-pro@7.23.2`, plus:
+
+- [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15754) @arminmeh
+
+### Date and Time Pickers
+
+#### `@mui/x-date-pickers@7.23.2`
+
+- [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
+
+#### `@mui/x-date-pickers-pro@7.23.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-date-pickers@7.23.2`.
+
+### Charts
+
+#### `@mui/x-charts@7.23.2`
+
+- [charts] Fix key generation for the ChartsGrid (#15864) @alexfauquette
+- [charts] Fix scatter dataset with missing data (#15804) @alexfauquette
+
+#### `@mui/x-charts-pro@7.23.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-charts@7.23.2`.
+
+#### `@mui/x-tree-view@v7.23.2`
+
+No changes, releasing to keep the versions in sync.
+
+#### `@mui/x-tree-view-pro@7.23.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Releasing to benefit from license package fix (#15818).
+
+### Docs
+
+- [docs] Fix typo in charts axis documentation (#15746) @JCQuintas
+- [docs] Improve Pickers accessible DOM structure description (#15752) @LukasTy
+- [docs] Use `updateRows` method for list view demos (#15824) @KenanYusuf
+- [docs] Use date library version from package dev dependencies for sandboxes (#15767) @LukasTy
+
+### Core
+
+- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
+- [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15818) @arminmeh
+
+## 7.23.1
+
+_Dec 5, 2024_
+
+We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights āØ:
+
+- š Improve German locale on the Data Grid component
+- š Bugfixes
+
+Special thanks go out to the community contributors who have helped make this release possible:
+@lhilgert9.
+
+Following are all team members who have contributed to this release:
+@arthurbalduini, @cherniavskii, @flaviendelangle, @JCQuintas, @LukasTy and @MBilalShafi.
+
+
+
+### Data Grid
+
+#### `@mui/x-data-grid@7.23.1`
+
+- [DataGrid] Make column autosizing work with flex columns (#15712) @cherniavskii
+- [l10n] Improve German (de-DE) locale (#15641) @lhilgert9
+
+#### `@mui/x-data-grid-pro@7.23.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-data-grid@7.23.1`, plus:
+
+- [DataGridPro] Cleanup pinned rows on removal (#15702) @cherniavskii
+
+#### `@mui/x-data-grid-premium@7.23.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
+
+Same changes as in `@mui/x-data-grid-pro@7.23.1`.
+
+### Date and Time Pickers
+
+#### `@mui/x-date-pickers@7.23.1`
+
+- [TimePicker] Prevent mouse events after `touchend` event (#15430) @arthurbalduini
+
+#### `@mui/x-date-pickers-pro@7.23.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-date-pickers@7.23.1`.
+
+### Charts
+
+#### `@mui/x-charts@7.23.1`
+
+- [charts] Improve SVG `pattern` and `gradient` support (#15724) @JCQuintas
+
+#### `@mui/x-charts-pro@7.23.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
+
+Same changes as in `@mui/x-charts@7.23.1`.
+
+### Docs
+
+- [docs] Fix Pickers theme augmentation example (#15675) @LukasTy
+- [docs] Remove duplicated warning (#15715) @cherniavskii
+- [test] Force hover in headless Chrome (#15711) @cherniavskii
+- [docs-infra] Bump `@mui/internal-markdown` to support nested demo imports (#15738) @alexfauquette
+- [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
+
+### Core
+
+- [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
+
## 7.23.0
_Nov 29, 2024_
diff --git a/docs/data/data-grid/export/export.md b/docs/data/data-grid/export/export.md
index e1aec3b19ba0..b2b6b3445391 100644
--- a/docs/data/data-grid/export/export.md
+++ b/docs/data/data-grid/export/export.md
@@ -326,7 +326,7 @@ In the following demo, both methods are used to set a custom header and a custom
:::warning
This feature only works with `@mui/styled-engine` v5.11.8 or newer.
-Make sure that the MUIĀ Core version you are using is also installing the correct version for this dependency.
+Make sure that the MaterialĀ UI version you are using is also installing the correct version for this dependency.
:::
Instead of generating the Excel file in the main thread, you can delegate the task to a web worker.
diff --git a/docs/data/data-grid/getting-started/getting-started.md b/docs/data/data-grid/getting-started/getting-started.md
index a7e2494e3083..7ff5d7d84a8f 100644
--- a/docs/data/data-grid/getting-started/getting-started.md
+++ b/docs/data/data-grid/getting-started/getting-started.md
@@ -158,7 +158,7 @@ const theme = createTheme({
## Licenses
-While MUIĀ Core is entirely licensed under MIT, MUIĀ X serves a part of its components under a commercial license.
+While our Core libraries are entirely licensed under MIT, MUIĀ X serves a part of its components under a commercial license.
Please pay attention to the license.
### Plans
diff --git a/docs/data/introduction/overview/overview.md b/docs/data/introduction/overview/overview.md
index 6bfe81762750..fd90712ee849 100644
--- a/docs/data/introduction/overview/overview.md
+++ b/docs/data/introduction/overview/overview.md
@@ -15,7 +15,7 @@ MUIĀ X is a collection of advanced UI components, including:
- [Charts](/x/react-charts/)
- [Tree View](/x/react-tree-view/)
-These components are significantly more complex than the ones found in the MUIĀ Core libraries.
+These components are significantly more complex than the ones found in our Core libraries.
They feature advanced functionality for data-rich applications and a wide range of other use cases.
:::info
@@ -28,23 +28,23 @@ Throughout the documentation, Pro- and Premium-only features are denoted with th
## Advantages of MUIĀ X
- **Ship faster:** Our team has invested thousands of hours into these components so you don't have to. Get up and running in a fraction of the time it would take to build from scratch.
-- **Expand on the power of MUIĀ Core**: MUIĀ X components work seamlessly with MUIĀ Core libraries like MaterialĀ UI, delivering more advanced functionality, but can also be used standalone.
+- **Expand on the power ofĀ Core**: MUIĀ X components work seamlessly with Core libraries like MaterialĀ UI, delivering more advanced functionality, but can also be used standalone.
- **Grow with us:** You can start for free with the MIT-licensed packages, and upgrade to Pro or Premium when you need more advanced features or technical support.
- **Dedicated maintenance:** MUIĀ X is maintained by a full-time staff of engineers, so you can rest assured that any issues will be addressed in a timely manner.
- **Technical support:** Pro and Premium users get access to technical support from our team as well as priority for bug fixes and feature requests.
-## MUIĀ X vs. MUIĀ Core
+## MUIĀ X vs. Core
MUIĀ X is a collection of advanced UI components for complex use cases.
Most of MUIĀ X's components are available for free, but more advanced features require a Pro or Premium commercial license.
-MUIĀ Core focuses on empowering the creation of great design systems with React.
+Core focuses on empowering the creation of great design systems with React.
It comes with two themes (Material Design and an in-house one).
It's about solving design problems.
It contains foundational UI component libraries like MaterialĀ UI and BaseĀ UI.
These libraries are open source, MIT-licensed, and free forever.
-MUIĀ X components are fully compatible with MUIĀ Core.
+MUIĀ X components are fully compatible with Core.
MUIĀ X can extend the functionality of UIs built with MaterialĀ UI or BaseĀ UI, but its components can also stand on their own, they can be used with third-parties React component libraries that implement different designs.
-You can find [more details](https://mui-org.notion.site/MUI-s-products-a-brief-overview-9c5e8e11eb1247c3a124b446be7451cb) about the difference in our handbook.
+You can find [more details](https://mui-org.notion.site/X-FAQ-c33e9a7eabba4da1ad7f8c04f99044cc#11751b16538c489ba23c5133db1e67b8) about the difference in our handbook.
diff --git a/package.json b/package.json
index fd6e12da98d1..9c3bec49ecd0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"private": true,
"scripts": {
"preinstall": "npx only-allow pnpm",
diff --git a/packages/x-charts-pro/README.md b/packages/x-charts-pro/README.md
index 05616ba80e2b..f949a0b30773 100644
--- a/packages/x-charts-pro/README.md
+++ b/packages/x-charts-pro/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Pro
This package is the Pro plan edition of the chart components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-charts-pro/package.json b/packages/x-charts-pro/package.json
index b582a8d12027..d34246f3abc9 100644
--- a/packages/x-charts-pro/package.json
+++ b/packages/x-charts-pro/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-charts-pro",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The Pro plan edition of the Charts components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-charts-vendor/package.json b/packages/x-charts-vendor/package.json
index 5a8298bb7110..4d53bbe89b9f 100644
--- a/packages/x-charts-vendor/package.json
+++ b/packages/x-charts-vendor/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-charts-vendor",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "Vendored dependencies for MUI X Charts",
"author": "MUI Team",
"keywords": [
diff --git a/packages/x-charts/README.md b/packages/x-charts/README.md
index 7eafec7d9e44..a70eb9e8527e 100644
--- a/packages/x-charts/README.md
+++ b/packages/x-charts/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Charts
This package is the community edition of the chart components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-charts/package.json b/packages/x-charts/package.json
index f73f30953811..9c037234636c 100644
--- a/packages/x-charts/package.json
+++ b/packages/x-charts/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-charts",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The community edition of the Charts components (MUI X).",
"author": "MUI Team",
"main": "src/index.js",
diff --git a/packages/x-codemod/package.json b/packages/x-codemod/package.json
index 1f5bbd2668bd..af7effbdab20 100644
--- a/packages/x-codemod/package.json
+++ b/packages/x-codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-codemod",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"bin": "./codemod.js",
"private": false,
"author": "MUI Team",
diff --git a/packages/x-data-grid-generator/package.json b/packages/x-data-grid-generator/package.json
index fb84ce2dc4e2..4b4b1c169c8e 100644
--- a/packages/x-data-grid-generator/package.json
+++ b/packages/x-data-grid-generator/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-data-grid-generator",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "Generate fake data for demo purposes only.",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-data-grid-premium/README.md b/packages/x-data-grid-premium/README.md
index 21ba5482e3c4..38af71588e56 100644
--- a/packages/x-data-grid-premium/README.md
+++ b/packages/x-data-grid-premium/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Data Grid Premium
This package is the Premium plan edition of the Data Grid components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-data-grid-premium/package.json b/packages/x-data-grid-premium/package.json
index 6bf146e7ce0e..3d12b001e21f 100644
--- a/packages/x-data-grid-premium/package.json
+++ b/packages/x-data-grid-premium/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-data-grid-premium",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The Premium plan edition of the Data Grid Components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-data-grid-pro/README.md b/packages/x-data-grid-pro/README.md
index 4a63af61c3ae..bc68d073cfbf 100644
--- a/packages/x-data-grid-pro/README.md
+++ b/packages/x-data-grid-pro/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Data Grid Pro
This package is the Pro plan edition of the Data Grid component.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-data-grid-pro/package.json b/packages/x-data-grid-pro/package.json
index afb5f31f1c65..64f95fc7c168 100644
--- a/packages/x-data-grid-pro/package.json
+++ b/packages/x-data-grid-pro/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-data-grid-pro",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The Pro plan edition of the Data Grid components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-data-grid/README.md b/packages/x-data-grid/README.md
index fab185d4804f..fd7de5c9439e 100644
--- a/packages/x-data-grid/README.md
+++ b/packages/x-data-grid/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Data Grid
This package is the Community plan edition of the Data Grid components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-data-grid/package.json b/packages/x-data-grid/package.json
index 8e1de4c44dcb..dc7327e1b6ea 100644
--- a/packages/x-data-grid/package.json
+++ b/packages/x-data-grid/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-data-grid",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The Community plan edition of the Data Grid components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-data-grid/src/components/cell/GridActionsCell.tsx b/packages/x-data-grid/src/components/cell/GridActionsCell.tsx
index 5707b3939a5c..1f3d2cdca42d 100644
--- a/packages/x-data-grid/src/components/cell/GridActionsCell.tsx
+++ b/packages/x-data-grid/src/components/cell/GridActionsCell.tsx
@@ -120,6 +120,13 @@ function GridActionsCell(props: GridActionsCellProps) {
const hideMenu = () => {
setOpen(false);
};
+ const toggleMenu = () => {
+ if (open) {
+ hideMenu();
+ } else {
+ showMenu();
+ }
+ };
const handleTouchRippleRef =
(index: string | number) => (instance: TouchRippleActions | null) => {
@@ -212,7 +219,7 @@ function GridActionsCell(props: GridActionsCellProps) {
aria-controls={open ? menuId : undefined}
role="menuitem"
size="small"
- onClick={showMenu}
+ onClick={toggleMenu}
touchRippleRef={handleTouchRippleRef(buttonId)}
tabIndex={focusedButtonIndex === iconButtons.length ? tabIndex : -1}
{...rootProps.slotProps?.baseIconButton}
diff --git a/packages/x-data-grid/src/hooks/features/rows/useGridRowSpanning.ts b/packages/x-data-grid/src/hooks/features/rows/useGridRowSpanning.ts
index 1c29902b6e79..8ee70db58ad2 100644
--- a/packages/x-data-grid/src/hooks/features/rows/useGridRowSpanning.ts
+++ b/packages/x-data-grid/src/hooks/features/rows/useGridRowSpanning.ts
@@ -5,6 +5,7 @@ import { gridVisibleColumnDefinitionsSelector } from '../columns/gridColumnsSele
import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
import { gridRenderContextSelector } from '../virtualization/gridVirtualizationSelectors';
import { useGridSelector } from '../../utils/useGridSelector';
+import { gridRowTreeSelector } from './gridRowsSelector';
import type { GridColDef } from '../../../models/colDef';
import type { GridRowId, GridValidRowModel, GridRowEntry } from '../../../models/gridRows';
import type { DataGridProcessedProps } from '../../../models/props/DataGridProps';
@@ -71,7 +72,7 @@ const computeRowSpanningState = (
for (
let index = rangeToProcess.firstRowIndex;
- index <= rangeToProcess.lastRowIndex;
+ index < rangeToProcess.lastRowIndex;
index += 1
) {
const row = visibleRows[index];
@@ -187,7 +188,7 @@ export const rowSpanningStateInitializer: GridStateInitializer = (state, props,
}
const rangeToProcess = {
firstRowIndex: 0,
- lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS - 1, Math.max(rowIds.length - 1, 0)),
+ lastRowIndex: Math.min(DEFAULT_ROWS_TO_PROCESS, Math.max(rowIds.length, 0)),
};
const rows = rowIds.map((id) => ({
id,
@@ -226,13 +227,14 @@ export const useGridRowSpanning = (
const { range, rows: visibleRows } = useGridVisibleRows(apiRef, props);
const renderContext = useGridSelector(apiRef, gridRenderContextSelector);
const colDefs = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
+ const tree = useGridSelector(apiRef, gridRowTreeSelector);
const processedRange = useLazyRef(() => {
return Object.keys(apiRef.current.state.rowSpanning.spannedCells).length > 0
? {
firstRowIndex: 0,
lastRowIndex: Math.min(
- DEFAULT_ROWS_TO_PROCESS - 1,
- Math.max(apiRef.current.state.rows.dataRowIds.length - 1, 0),
+ DEFAULT_ROWS_TO_PROCESS,
+ Math.max(apiRef.current.state.rows.dataRowIds.length, 0),
),
}
: EMPTY_RANGE;
@@ -265,7 +267,7 @@ export const useGridRowSpanning = (
const rangeToProcess = getUnprocessedRange(
{
firstRowIndex: renderContext.firstRowIndex,
- lastRowIndex: Math.min(renderContext.lastRowIndex - 1, range.lastRowIndex),
+ lastRowIndex: Math.min(renderContext.lastRowIndex, range.lastRowIndex + 1),
},
processedRange.current,
);
@@ -326,11 +328,17 @@ export const useGridRowSpanning = (
const prevRenderContext = React.useRef(renderContext);
const isFirstRender = React.useRef(true);
const shouldResetState = React.useRef(false);
+ const previousTree = React.useRef(tree);
React.useEffect(() => {
const firstRender = isFirstRender.current;
if (isFirstRender.current) {
isFirstRender.current = false;
}
+ if (tree !== previousTree.current) {
+ previousTree.current = tree;
+ updateRowSpanningState(true);
+ return;
+ }
if (range && lastRange.current && isRowRangeUpdated(range, lastRange.current)) {
lastRange.current = range;
shouldResetState.current = true;
@@ -344,5 +352,5 @@ export const useGridRowSpanning = (
return;
}
updateRowSpanningState();
- }, [updateRowSpanningState, renderContext, range, lastRange]);
+ }, [updateRowSpanningState, renderContext, range, lastRange, tree]);
};
diff --git a/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx b/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx
index 1502dfbf4ec6..948450691a82 100644
--- a/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx
+++ b/packages/x-data-grid/src/hooks/features/virtualization/useGridVirtualScroller.tsx
@@ -145,10 +145,8 @@ export const useGridVirtualScroller = () => {
}
const initialRect = node.getBoundingClientRect();
- let lastSize = {
- width: initialRect.width,
- height: initialRect.height,
- };
+
+ let lastSize = roundDimensions(initialRect);
apiRef.current.publishEvent('resize', lastSize);
@@ -162,10 +160,7 @@ export const useGridVirtualScroller = () => {
return;
}
- const newSize = {
- width: entry.contentRect.width,
- height: entry.contentRect.height,
- };
+ const newSize = roundDimensions(entry.contentRect);
if (newSize.width === lastSize.width && newSize.height === lastSize.height) {
return;
@@ -1109,3 +1104,12 @@ function bufferForDirection(
throw new Error('unreachable');
}
}
+
+// Round to avoid issues with subpixel rendering
+// https://github.com/mui/mui-x/issues/15721
+function roundDimensions(dimensions: { width: number; height: number }) {
+ return {
+ width: Math.round(dimensions.width * 10) / 10,
+ height: Math.round(dimensions.height * 10) / 10,
+ };
+}
diff --git a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx
index cd4d6d324bb5..c07c07fd3791 100644
--- a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx
+++ b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx
@@ -1318,4 +1318,24 @@ describe(' - Layout & warnings', () => {
,
);
});
+
+ // See https://github.com/mui/mui-x/issues/15721
+ it('should not exceed maximum call stack size caused by subpixel rendering', function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // Need layouting
+ this.skip();
+ }
+
+ render(
+
+
+
,
+ );
+ });
});
diff --git a/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx b/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx
index ef0b006133d1..f89153e6c0b4 100644
--- a/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx
+++ b/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx
@@ -1,6 +1,7 @@
import * as React from 'react';
import { createRenderer, fireEvent, act } from '@mui/internal-test-utils';
import { expect } from 'chai';
+import { spy } from 'sinon';
import { DataGrid, useGridApiRef, DataGridProps, GridApi } from '@mui/x-data-grid';
import { getCell, getActiveCell } from 'test/utils/helperFn';
@@ -247,5 +248,36 @@ describe(' - Row spanning', () => {
});
});
+ describe('rows update', () => {
+ it('should update the row spanning state when the rows are updated', () => {
+ const rowSpanValueGetter = spy();
+ let rowSpanningStateUpdates = 0;
+ let spannedCells = {};
+ render(
+ {
+ const newSpannedCells = newState.rowSpanning.spannedCells;
+ if (newSpannedCells !== spannedCells) {
+ rowSpanningStateUpdates += 1;
+ spannedCells = newSpannedCells;
+ }
+ }}
+ />,
+ );
+
+ // First update by initializer
+ expect(rowSpanningStateUpdates).to.equal(1);
+
+ act(() => {
+ apiRef.current.setRows([{ id: 1, code: 'A101' }]);
+ });
+
+ // Second update on row update
+ expect(rowSpanningStateUpdates).to.equal(2);
+ });
+ });
+
// TODO: Add tests for row reordering
});
diff --git a/packages/x-date-pickers-pro/README.md b/packages/x-date-pickers-pro/README.md
index 7530c5793036..dbbb054eb5b1 100644
--- a/packages/x-date-pickers-pro/README.md
+++ b/packages/x-date-pickers-pro/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Date Pickers Pro
This package is the Pro plan edition of the Date and Time Picker Components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-date-pickers-pro/package.json b/packages/x-date-pickers-pro/package.json
index 28a2b17b1eea..d08f7cf7d406 100644
--- a/packages/x-date-pickers-pro/package.json
+++ b/packages/x-date-pickers-pro/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-date-pickers-pro",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-date-pickers/README.md b/packages/x-date-pickers/README.md
index db8b1180d889..74bb859f1a67 100644
--- a/packages/x-date-pickers/README.md
+++ b/packages/x-date-pickers/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Date Pickers
This package is the Community plan edition of the Date and Time Picker components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-date-pickers/package.json b/packages/x-date-pickers/package.json
index 781289be2a72..066916bbea24 100644
--- a/packages/x-date-pickers/package.json
+++ b/packages/x-date-pickers/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-date-pickers",
- "version": "8.0.0-alpha.3",
+ "version": "8.0.0-alpha.4",
"description": "The community edition of the Date and Time Picker components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-license/package.json b/packages/x-license/package.json
index 548e705bccc8..1d8a8fda7b37 100644
--- a/packages/x-license/package.json
+++ b/packages/x-license/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-license",
- "version": "8.0.0-alpha.2",
+ "version": "8.0.0-alpha.4",
"description": "MUI X License verification",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-tree-view-pro/README.md b/packages/x-tree-view-pro/README.md
index 3a7069bf7545..774ab669624d 100644
--- a/packages/x-tree-view-pro/README.md
+++ b/packages/x-tree-view-pro/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Tree View
This package is the Pro plan edition of the Tree View components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-tree-view-pro/package.json b/packages/x-tree-view-pro/package.json
index 8efd242872f9..1b0317ee46de 100644
--- a/packages/x-tree-view-pro/package.json
+++ b/packages/x-tree-view-pro/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-tree-view-pro",
- "version": "8.0.0-alpha.2",
+ "version": "8.0.0-alpha.4",
"description": "The Pro plan edition of the Tree View components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/packages/x-tree-view/README.md b/packages/x-tree-view/README.md
index 54023a0abf6e..f2cb62f256f2 100644
--- a/packages/x-tree-view/README.md
+++ b/packages/x-tree-view/README.md
@@ -1,7 +1,7 @@
# MUIĀ X Tree View
This package is the Community plan edition of the Tree View components.
-It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of MUIĀ Core, with advanced components.
+It's part of [MUIĀ X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
## Installation
diff --git a/packages/x-tree-view/package.json b/packages/x-tree-view/package.json
index 11a0ca2d1e99..2d71cc3200b2 100644
--- a/packages/x-tree-view/package.json
+++ b/packages/x-tree-view/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/x-tree-view",
- "version": "8.0.0-alpha.2",
+ "version": "8.0.0-alpha.4",
"description": "The community edition of the Tree View components (MUI X).",
"author": "MUI Team",
"main": "src/index.ts",
diff --git a/renovate.json b/renovate.json
index 6e01cb4e0933..eb56e266d6d0 100644
--- a/renovate.json
+++ b/renovate.json
@@ -82,7 +82,7 @@
"enabled": false
},
{
- "groupName": "MUI Core",
+ "groupName": "MaterialĀ UI",
"matchPackageNames": [
"@mui/icons-material",
"@mui/joy",
diff --git a/scripts/l10n.ts b/scripts/l10n.ts
index 9c584b69229a..319c0fa1c436 100644
--- a/scripts/l10n.ts
+++ b/scripts/l10n.ts
@@ -144,7 +144,7 @@ function extractTranslations(translationsPath: string): [TranslationsByGroup, Tr
(property.key as babelTypes.Identifier).name ||
`'${(property.key as babelTypes.StringLiteral).value}'`;
- // Ignore translations for MUI Core components, for example MuiTablePagination
+ // Ignore translations for Core components, for example MuiTablePagination
if (key.startsWith('Mui')) {
return;
}
diff --git a/scripts/releaseChangelog.mjs b/scripts/releaseChangelog.mjs
index 35cbcbb70e05..9e078cf19cad 100644
--- a/scripts/releaseChangelog.mjs
+++ b/scripts/releaseChangelog.mjs
@@ -53,6 +53,12 @@ function resolvePackagesByLabels(labels) {
case 'component: pickers':
resolvedPackages.push('pickers');
break;
+ case 'component: charts':
+ resolvedPackages.push('charts');
+ break;
+ case 'component: tree view':
+ resolvedPackages.push('TreeView');
+ break;
default:
break;
}
@@ -106,7 +112,7 @@ async function main(argv) {
// Fetch all the pull Request and check if there is a section named changelog
- const changeLogMessages = [];
+ const changeLogMessages = {};
const prsLabelsMap = {};
const community = {
firstTimers: new Set(),
@@ -124,6 +130,7 @@ async function main(argv) {
data: {
body: bodyMessage,
labels,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
author_association,
user: { login },
},
@@ -152,14 +159,23 @@ async function main(argv) {
return;
}
- const changelogMotif = '# changelog';
- const changelogIndex = bodyMessage.toLowerCase().indexOf(changelogMotif);
- if (changelogIndex >= 0) {
- changeLogMessages.push(
- `From https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/pull/${
- searchPullRequestId[1]
- }\n${bodyMessage.slice(changelogIndex + changelogMotif.length)}`,
- );
+ const changelogMotif = '## changelog';
+ const lowercaseBody = bodyMessage.toLowerCase();
+ // Check if the body contains a line starting with '## changelog'
+ const matchedChangelog = lowercaseBody.matchAll(new RegExp(`^${changelogMotif}`, 'gim'));
+ const changelogMatches = Array.from(matchedChangelog);
+ if (changelogMatches.length > 0) {
+ const prLabels = prsLabelsMap[commitsItem.sha];
+ const resolvedPackage = resolvePackagesByLabels(prLabels)[0];
+ const changelogIndex = changelogMatches[0].index;
+ const message = `From https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/pull/${
+ searchPullRequestId[1]
+ }\n${bodyMessage.slice(changelogIndex + changelogMotif.length)}`;
+ if (changeLogMessages[resolvedPackage || 'general']) {
+ changeLogMessages[resolvedPackage || 'general'].push(message);
+ } else {
+ changeLogMessages[resolvedPackage || 'general'] = [message];
+ }
}
}),
);
@@ -288,6 +304,13 @@ async function main(argv) {
.join('\n')}`;
};
+ const logChangelogMessages = (product) => {
+ if (!changeLogMessages[product]?.length) {
+ return '';
+ }
+ return `${changeLogMessages[product].length > 0 ? '\n' : ''}${changeLogMessages[product].join('\n\n')}`;
+ };
+
const nowFormatted = new Date().toLocaleDateString('en-US', {
month: 'short',
day: 'numeric',
@@ -325,14 +348,14 @@ We'd like to offer a big thanks to the ${
} contributors who made this release possible. Here are some highlights āØ:
TODO INSERT HIGHLIGHTS
-${changeLogMessages.length > 0 ? '\n\n' : ''}${changeLogMessages.join('\n')}
+${logChangelogMessages('general')}
${logCommunitySection()}
${logTeamSection()}
### Data Grid
-
+${logChangelogMessages('DataGrid')}
#### \`@mui/x-data-grid@__VERSION__\`
${logChangelogSection(dataGridCommits) || `No changes since \`@mui/x-data-grid@${lastRelease}\`.`}
@@ -350,7 +373,7 @@ Same changes as in \`@mui/x-data-grid-pro@__VERSION__\`${
}
${logChangelogSection(dataGridPremiumCommits)}${dataGridPremiumCommits.length > 0 ? '\n' : ''}
### Date and Time Pickers
-
+${logChangelogMessages('pickers')}
#### \`@mui/x-date-pickers@__VERSION__\`
${logChangelogSection(pickersCommits) || `No changes since \`@mui/x-date-pickers@${lastRelease}\`.`}
@@ -362,7 +385,7 @@ Same changes as in \`@mui/x-date-pickers@__VERSION__\`${
}
${logChangelogSection(pickersProCommits)}${pickersProCommits.length > 0 ? '\n' : ''}
### Charts
-
+${logChangelogMessages('charts')}
#### \`@mui/x-charts@__VERSION__\`
${logChangelogSection(chartsCommits) || `No changes since \`@mui/x-charts@${lastRelease}\`.`}
@@ -372,7 +395,7 @@ ${logChangelogSection(chartsCommits) || `No changes since \`@mui/x-charts@${last
Same changes as in \`@mui/x-charts@__VERSION__\`${chartsProCommits.length > 0 ? ', plus:\n' : '.'}
${logChangelogSection(chartsProCommits)}${chartsProCommits.length > 0 ? '\n' : ''}
### Tree View
-
+${logChangelogMessages('TreeView')}
#### \`@mui/x-tree-view@__VERSION__\`
${logChangelogSection(treeViewProCommits) || `No changes since \`@mui/x-tree-view-pro@${lastRelease}\`.`}