npm / @mui/x-charts
@mui/x-charts
What changed in @mui/x-charts 9, from its official release notes, upgrade guides and advisories. Also covers @mui/x-data-grid, @mui/x-data-grid-premium, @mui/x-data-grid-pro, @mui/x-date-pickers, @mui/x-date-pickers-pro, @mui/x-tree-view. Sources checked 2026-10-20.
4 breaking1 security1 deprecations16 new APIs and options6 behavior and defaults55 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@mui/x-charts 983 changes
Breaking changes 4
Removes the
menurole from the actions cell.Clearing a singleSelect value now uses an empty string instead of null.
The Node.js version requirement increases from
>=14.0.0to>=14.17.0.Reverts support for pinned columns in GridVirtualScroller.
Security 1
Updates the ExcelJS fork to address vulnerable dependencies and the listed CVEs.
Deprecations 1
Deprecates
GridPanelHeader.
New APIs and options 16
Adds a prop to size the Data Grid without a wrapper.
Adds href support to GridActionsCellItem.
Allows the theme to disable the row checkbox ripple.
Rows can be replaced instead of having updates merged.
ToolbarRoot is now exported for use by developers.
GridCallbackDetails now exposes apiRef, allowing selectors to be accessed in callbacks.
Grid cells now support the rowheader attribute.
Opt-in support for passing data-* attributes through slotProps lets developers add custom data attributes to slots.
Adds a controlled filter panel for applying filters on demand.
Adds the dataSourceKeepPreviousData prop to DataGrid.
Adds nested lazy loading to DataGridPremium.
Data Grid adds an AI Assistant, available in Premium.
Data Grid adds charts integration, available in Premium.
Data Grid Premium adds drag fill.
A longText column type is available in Data Grid.
Data Grid adds undo and redo, available in Premium.
Behavior and default changes 6
Infinite loading can be triggered beyond the row buffer.
Row reorder pointer events were updated for improved touch interaction.
Allows clearing the aggregation from the column menu.
Warning messages in various components are now restricted to non-production environments.
The icon font size now inherits from the
baseIconButtonsize.GridVirtualScroller now supports pinned columns.
Fixes and other changes 55
Aggregation is re-applied when a column valueGetter changes.
The infinite loader is skipped when IntersectionObserver is unavailable.
Keyboard focus is kept after clicking empty row space.
Fixed the translated text for the “is any of” prompt filter.
PropsFromSlot no longer resolves to any for JSXElementConstructor slots.
Improved the Romanian locale.
Fixed a memory leak on row updates.
Improved the Turkish locale.
Fixed toggling treeData and getTreeDataPath together.
Fixes autosizeColumns when header text wraps.
Stops data source polling after the grid unmounts.
Fixes Data Grid Premium exports failing or hanging under a Content Security Policy.
Fixes flex column jumping when a detail panel expands.
Fixes the height prop overflowing a narrow flex row parent.
Fixes the inputRef prop type warning in select-based filter inputs.
Stops lazy loading polling when lazyLoading turns off.
Caps the pagination toolbar so the footer height is stable on mount.
Keeps pinned cells opaque when color-mix() is unsupported.
Keeps empty first and last cells when copying rows.
Prevents a crash on unmount when the document has no body.
Fixes an error on cell mousedown or mouseup after a row is removed.
Keeps overlays sticky in RTL mode.
Preserves a pending search when the parser identity changes.
Prevents scroll area state updates before mount.
Fixes the rowsPerPage selector appearing when autoPageSize is enabled and pageSize is one of pageSizeOptions.
Fixes the row tree resetting when a data source grid becomes visible.
onValueChange is called after setEditCellValue in edit cells.
rowHeader is always rendered in virtualized setups.
Unmounting during autosize no longer causes an unhandled rejection.
Incomplete filter items are no longer sent to the data source.
Header height now updates when headerFilters or columnGroupingModel change.
The blank singleSelect filter option now has a label.
Prevents data from being re-fetched when an Activity becomes visible.
Fixes a toolbar button stealing focus when a sibling's disabled state changes.
Fixes updateRows stripping class prototypes from rows in datasource mode.
The return type now reflects that getColumn can return undefined.
Cell editing no longer resurrects a deleted row.
Excel export now escapes singleSelect values when formula escaping is enabled.
The Japanese locale has been improved.
Waits for rows to be available before reacting to autosizeOnMount.
Avoids a crash when getRowValue is called with an undefined colDef.
The expand button no longer submits the surrounding form.
Fixes scrollbars not showing up when scrolling on iOS.
Defines the overflowAnchor style on the appropriate element.
Prevents React state updates before a component mounts.
Fixes aggregation when the average is zero.
Fixes flickering between
dataSourcere-fetches.Fixes the scrollbar disappearing after multiple resizes.
Improves the Swedish locale for the Data Grid.
Fixes columns being cut off after resizing.
Fixes the
:first-childSSR warning whenMuiDataGrid.styleOverridesis set.Fixes row grouping model updates not being reflected.
Fixes row reordering when filtering hides rows.
Fixes processRowUpdate being invoked when cancelling edit for non-existent rows.
DataGridPro preserves parent selection when children are non-selectable.