We'd like to extend a big thank you to the 21 contributors who made this release possible. Here are some highlights ✨:
- 🎉 Scheduler is now in Beta shipping with Timeline vitualization and lazy loading
- 📆 Implement Event Timeline virtualization (#22339)
- 🫧 Introduce bubble charts (#22537)
- 🐞 Bugfixes
- 📚 Documentation improvements
Special thanks go out to these community members for their valuable contributions:
@imxv, @mixelburg, @mustafajw07
The following team members contributed to this release:
@aemartos, @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @MBilalShafi, @michelengelen, @mj12albert, @noraleonte, @oliviertassinari, @rita-codes, @romgrk, @sai6855
Data Grid
@mui/x-data-grid@9.4.0
- [DataGrid] Fix
avgaggregation when the average is zero (#22652) @mj12albert - [DataGrid] Inherit icon
fontSizefrombaseIconButtonsize (#22187) @imxv - [DataGrid] Fix
noRowsOverlayflicker betweendataSourcere-fetches (#22465) @LukasTy
@mui/x-data-grid-pro@9.4.0 
Same changes as in @mui/x-data-grid@9.4.0.
@mui/x-data-grid-premium@9.4.0 
This release includes a version bump of the
@mui/x-internal-exceljs-forkpackage to address the vulnerable dependencies.
The following CVEs are fixed:To make this security update possible, we bumped the
nodeversion requirement from>=14.0.0to>=14.17.0.
Node.js 14.17.0 was released in May 2021, so we consider it safe to bump the requirement without causing issues for our users.
Same changes as in @mui/x-data-grid-pro@9.4.0, plus:
- [DataGridPremium] Nested Lazy Loading (#21043) @MBilalShafi
- [DataGridPremium] Update exceljs fork (#22658) @cherniavskii
Date and Time Pickers
@mui/x-date-pickers@9.4.0
Internal changes.
@mui/x-date-pickers-pro@9.4.0 
Same changes as in @mui/x-date-pickers@9.4.0.
Charts
@mui/x-charts@9.4.0
- [charts] Add functionality to hide elements during chart export (#22525) @sai6855
- [charts] Add option to show marks only on the first/last values (#22645) @alexfauquette
- [charts] Add text customization section and demo for axis labels (#22597) @sai6855
- [charts] Allow axes to scale according to the visible series only (#22566) @alexfauquette
- [charts] Correctly handle different identifiers for each series (#22556) @sai6855
- [charts] Fix inverted Y axis zoom/pan on ordinal scales (#22654) @JCQuintas
- [charts] Introduce bubble charts (#22537) @alexfauquette
- [charts] Let scatter chart tooltip ignore hidden series (#22614) @alexfauquette
- [charts] Make
'sqrt'size mapping the default (#22683) @alexfauquette - [charts] Remove unused proptypes (#22618) @alexfauquette
- [charts] Support module augmentation for slots (#22519) @sai6855
- [charts] Support multiple marker size in
findClosestPoint(#22622) @alexfauquette - [charts] Upgrade bezier-easing to v3 and use it for line chart hit-detection (#22608) @sai6855
- [charts] Use
useLayoutEffectwithResizeObserver(#22646) @JCQuintas
@mui/x-charts-pro@9.4.0 
Same changes as in @mui/x-charts@9.4.0, plus:
- [charts-pro] Auto-select range button matching current zoom (#22137) @JCQuintas
- [charts-pro] Support range values in
initialZoom(#22563) @JCQuintas
@mui/x-charts-premium@9.4.0 
Same changes as in @mui/x-charts-pro@9.4.0, plus:
- [charts-premium] Support range-bar series in WebGL bar renderer (#22607) @JCQuintas
- [charts-premium] Fix
onAxisClickfor radial bar and lines (#22522) @alexfauquette
Tree View
@mui/x-tree-view@9.4.0
Internal changes.
@mui/x-tree-view-pro@9.4.0 
Same changes as in @mui/x-tree-view@9.4.0.
Scheduler
Breaking changes
The theme styleOverrides slots for the skeleton and the error container were
renamed and unified. The CSS utility class names (for example
.MuiEventCalendar-eventSkeleton) are not affected — only
theme.components.* overrides need updating.
Event skeleton
| Before | After |
|---|---|
MuiEventCalendar slot EventSkeleton
| MuiEventSkeleton slot Root
|
MuiEventTimeline slot EventSkeleton
| MuiEventSkeleton slot Root
|
Error container
| Before | After |
|---|---|
MuiEventCalendar / MuiEventTimeline slot ErrorContainer
| MuiEventErrorContainer slot Root
|
MuiEventCalendar / MuiEventTimeline slot ErrorAlert
| MuiEventErrorContainer slot Alert
|
MuiEventCalendar / MuiEventTimeline slot ErrorMessage
| MuiEventErrorContainer slot Message
|
If you customized these through the theme, update the component name and slot
names accordingly:
components: {
- MuiEventCalendar: {
+ MuiEventSkeleton: {
styleOverrides: {
- EventSkeleton: { /* ... */ },
+ Root: { /* ... */ },
},
},
},
}@mui/x-scheduler@9.0.0-beta.0
- [scheduler] Add a prop to control whether the resource of an event can be cleared (#22464) @rita-codes
- [scheduler] Add week number labels to agenda, day and week views (#22594) @mustafajw07
- [scheduler] Add
weekStartsOnpreference and update date functions to support custom week start (#22426) @mustafajw07 - [scheduler] Export premium version of the standalone views (#22621) @flaviendelangle
- [scheduler] Implement timeline virtualization (#22339) @romgrk
- [scheduler] Split scheduler overview (#22453) @joserodolfofreitas
- [scheduler] Unify
EventSkeletonandErrorContainerbetweenEventCalendarandEventTimeline(#22676) @noraleonte
@mui/x-scheduler-premium@9.0.0-beta.0 
Same changes as in @mui/x-scheduler@9.0.0-beta.0.
Docs
- [docs] Add a performance docs page for charts (#22656) @alexfauquette
- [docs] Add real dataset for maps documentation (#22599) @alexfauquette
- [docs] Add spacing between selects on charts overview demo (#22589) @bernardobelchior
- [docs] Reorganize existing chat docs navigation (#22478) @hasdfa
- [docs] Switch to visionscarto's world atlas dataset (#22669) @cherniavskii
- [docs] Update TreeView
domstructuredocs and add demo (#22420) @mj12albert - [docs] Fix indexation of Scheduler (#22567) @oliviertassinari
- [docs] Fix wide layout on event timeline lazy loading and Import title (#22604) @rita-codes
- [docs] Derive class name owners for shared charts classes (#22674) @JCQuintas
Core
- [code-infra] Drop unused and now-transitive deps from docs/package.json (#22549) @LukasTy
- [code-infra] Refresh CI Node pins to 22.22.3 (#22598) @LukasTy
- [code-infra] Skip empty product sections in changelog (#22541) @rita-codes
- [code-infra] Stabilize DataGridScrollRestoration visual regression test (#22553) @Janpot
- [internal] Add license to the
x-data-grid-generator(#22240) @arminmeh - [internal] Express default value for resource_class (#22569) @oliviertassinari
- [internal] Fix use of ellipsis (#21852) @oliviertassinari
- [internal]
useLayoutEffectwithResizeObserver(#22428) @romgrk
Miscellaneous
- [chat-headless] Add built-in chat adapters (#22479) @hasdfa
- [chat-headless] Harden runtime model and message errors (#22480) @hasdfa
- [core] Prepare for TypeScript 6 bump (#22551) @LukasTy
- [core] Use CircleCI Gen2 resource classes (#22610) @LukasTy
- [infra] Fix broken tag retrieval on
masterduring release (#22174) @michelengelen - [infra] Group Base UI renovate updates (#22590) @LukasTy
- [pnpm] Add security settings to pnpm-workspace.yaml (#22611) @Janpot
- [release] Fix release PR scripts (#22680) @JCQuintas
- [test] Add a Tree View regression test for lazy loading with getChildrenCount returning -1 (#22605) @mixelburg
- [test] Disable LCD subpixel antialiasing in regression screenshots (#22602) @Janpot
- [test] Fix flaky Data Grid Pro data source tree data tests (#22659) @LukasTy
- [test] Remove stale form-submit TODO from e2e suite (#22564) @LukasTy
- [x-license] Exclude test keys from the published npm package (#22647) @aemartos
- [test] Fix flaky WebGL benchmark by polling for canvas content (#22535) @JCQuintas