@mui/x-date-pickers
Advanced tools
Changelog
8.0.0-beta.0
<img width="100%" alt="MUI X v8 Beta is live" src="https://github.com/user-attachments/assets/61ec4dd8-c946-456b-8b45-d51de8772f5d">Mar 18, 2025
We'd like to offer a big thanks to the 21 contributors who made this release possible. Here are some highlights ✨:
@mui/material
version 7 in all X packagesChangelog
7.27.3
Mar 7, 2025
We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨:
Team members who have contributed to this release: @arminmeh, @cherniavskii, @LukasTy, @michelengelen.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->@mui/x-data-grid@7.27.3
aria-hidden
console error when scrollbar is dragged (#16834) @arminmeh@mui/x-data-grid-pro@7.27.3
Same changes as in @mui/x-data-grid@7.27.3
.
@mui/x-data-grid-premium@7.27.3
Same changes as in @mui/x-data-grid-pro@7.27.3
.
@mui/x-date-pickers@7.27.3
helperText
(#16828) @LukasTy@mui/x-date-pickers-pro@7.27.3
Same changes as in @mui/x-date-pickers@7.27.3
.
Changelog
8.0.0-alpha.14
Mar 7, 2025
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community member for their valuable contributions: @vadimka123.
Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen, @noraleonte, @oliviertassinari.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->density
prop. A density selector can be added to a custom toolbar passed to slots.toolbar
. See Toolbar component—Settings menu for an example.slotProps={{ toolbar: { showQuickFilter: false } }}
to hide it.<GridSaveAltIcon />
icon is not exported anymore. Import SaveAlt
from @mui/icons-material
instead.@mui/x-data-grid@8.0.0-alpha.14
aria-hidden
console error when scrollbar is dragged (#16829) @arminmeh<Toolbar />
component (#14611) @KenanYusuf@mui/x-data-grid-pro@8.0.0-alpha.14
Same changes as in @mui/x-data-grid@8.0.0-alpha.14
.
@mui/x-data-grid-premium@8.0.0-alpha.14
Same changes as in @mui/x-data-grid-pro@8.0.0-alpha.14
.
onChange
when the date is partially filled — Learn more.@mui/x-date-pickers@8.0.0-alpha.14
props.value
as the source of truth when defined (#15875) @flaviendelanglehelperText
(#16821) @LukasTyTValidationProps
generic to the PickerManager
interface (#16832) @flaviendelangleedge
property setting in different button position cases (#16838) @LukasTyusePicker
folder (#16680) @flaviendelangle@mui/x-date-pickers-pro@8.0.0-alpha.14
Same changes as in @mui/x-date-pickers@8.0.0-alpha.14
.
@mui/x-charts@8.0.0-alpha.14
undefined
behaving differently from missing value for axis size (#16844) @bernardobelchiordefaultizeAxis
function into two (#16745) @bernardobelchiortextAnchor
and dominantBaseline
based on angle
(#16817) @bernardobelchior@mui/x-charts-pro@8.0.0-alpha.14
Same changes as in @mui/x-charts@8.0.0-alpha.14
, plus:
The selectItem
method has been renamed setItemSelection
:
const { publicAPI } = useTreeItemUtils();
const handleSelectItem() {
- publicAPI.selectItem({ event, itemId: props.itemId, shouldBeSelected: true })
+ publicAPI.setItemSelection({ event, itemId: props.itemId, shouldBeSelected: true })
}
The setItemExpansion
method now receives a single object instead of a list of parameters:
const { publicAPI } = useTreeItemUtils();
const handleExpandItem() {
- publicAPI.setItemExpansion(event, props.itemId, true)
+ publicAPI.setItemExpansion({ event, itemId: props.itemId, shouldBeExpanded: true })
}
@mui/x-tree-view@8.0.0-alpha.14
@mui/x-tree-view-pro@8.0.0-alpha.14
Same changes as in @mui/x-tree-view@8.0.0-alpha.14
.
Changelog
8.0.0-alpha.13
Feb 28, 2025
We'd like to offer a big thanks to the 19 contributors who made this release possible. Here are some highlights ✨:
margin
and axis-size
. A new API to support multiple axes (#16418) @JCQuintasSpecial thanks go out to the community members for their contributions: @denpiligrim, @lhilgert9, @noherczeg, @officialkidmax, @pcorpet. Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen, @MBilalShafi, @oliviertassinari, @romgrk.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->The slots.baseFormControl
component was removed.
The "Reset" button in the column visibility panel now resets to the initial column visibility model. Previously it was reset to the model that was active at the time the panel was opened. The reset behavior follows these rules:
columnVisibilityModel
is provided, it resets to that model.columnVisibilityModel
is provided, it resets to the first model value.columns
prop or updateColumns()
API method), the reset reference point updates to the current columnVisibilityModel
.To revert to the previous behavior, provide a custom component to the slots.columnsManagement
.
The deprecated LicenseInfo
export has been removed from the @mui/x-data-grid-pro
and @mui/x-data-grid-premium
packages.
You have to import it from @mui/x-license
instead:
- import { LicenseInfo } from '@mui/x-data-grid-pro';
- import { LicenseInfo } from '@mui/x-data-grid-premium';
+ import { LicenseInfo } from '@mui/x-license';
LicenseInfo.setLicenseKey('YOUR_LICENSE_KEY');
The row selection model has been changed from GridRowId[]
to { type: 'include' | 'exclude'; ids: Set<GridRowId> }
.
Using Set
allows for a more efficient row selection management.
The exclude
selection type allows to select all rows except the ones in the ids
set.
This change impacts the following props:
rowSelectionModel
onRowSelectionModelChange
initialState.rowSelectionModel
- const [rowSelectionModel, setRowSelectionModel] = React.useState<GridRowSelectionModel>([]);
+ const [rowSelectionModel, setRowSelectionModel] = React.useState<GridRowSelectionModel>({ type: 'include', ids: new Set() });
This change also impacts the gridRowSelectionStateSelector
selector.
For convenience, use the gridRowSelectionManagerSelector
selector to handle both selection types:
- const rowSelection = gridRowSelectionStateSelector(apiRef);
- const isRowSelected = rowSelection.includes(rowId);
+ const rowSelectionManager = gridRowSelectionManagerSelector(apiRef);
+ const isRowSelected = rowSelectionManager.has(rowId);
There is also a createRowSelectionManager
utility function that can be used to manage the row selection:
const rowSelectionManager = createRowSelectionManager({
type: 'include',
ids: new Set(),
});
rowSelectionManager.select(rowId);
rowSelectionManager.unselect(rowId);
rowSelectionManager.has(rowId);
The selectedIdsLookupSelector
selector has been removed. Use the gridRowSelectionManagerSelector
or gridRowSelectionStateSelector
selectors instead.
The selectedGridRowsSelector
has been renamed to gridRowSelectionIdsSelector
.
The selectedGridRowsCountSelector
has been renamed to gridRowSelectionCountSelector
.
The data source feature and its related props are now stable.
<DataGridPro
- unstable_dataSource={dataSource}
- unstable_dataSourceCache={cache}
- unstable_lazyLoading
- unstable_lazyLoadingRequestThrottleMs={100}
+ dataSource={dataSource}
+ dataSourceCache={cache}
+ lazyLoading
+ lazyLoadingRequestThrottleMs={100}
/>
The data source API is now stable.
- apiRef.current.unstable_dataSource.getRows()
+ apiRef.current.dataSource.getRows()
The signature of unstable_onDataSourceError()
has been updated to support future use-cases.
<DataGrid
- unstable_onDataSourceError={(error: Error, params: GridGetRowsParams) => {
- if (params.filterModel) {
- // do something
- }
- }}
+ unstable_onDataSourceError={(error: GridGetRowsError | GridUpdateRowError) => {
+ if (error instanceof GridGetRowsError && error.params.filterModel) {
+ // do something
+ }
+ }}
/>
Fix the type of the GridSortModel
to allow readonly arrays.
GridSortItem
interface is not exported anymore.
The showToolbar
prop is now required to display the toolbar.
It is no longer necessary to pass GridToolbar
as a slot to display the default toolbar.
<DataGrid
+ showToolbar
- slots={{
- toolbar: GridToolbar,
- }}
/>
Changelog
7.27.1
Feb 25, 2025
We'd like to offer a big thanks to the 5 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @nusr, @officialkidmax. Following are all team members who have contributed to this release: @bernardobelchior, @MBilalShafi, @KenanYusuf.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->@mui/x-data-grid@7.27.1
getRowId()
API method as a selector (#16574) @MBilalShafi@mui/x-data-grid-pro@7.27.1
Same changes as in @mui/x-data-grid@7.27.1
.
@mui/x-data-grid-premium@7.27.1
Same changes as in @mui/x-data-grid-pro@7.27.1
.
@mui/x-date-pickers@7.27.1
@mui/x-date-pickers-pro@7.27.1
Same changes as in @mui/x-date-pickers@7.27.1
.
@mui/x-charts@7.27.1
@mui/x-charts-pro@7.27.1
Same changes as in @mui/x-charts@7.27.1
.
Changelog
8.0.0-alpha.12
Feb 17, 2025
We'd like to offer a big thanks to the 16 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @Neonin, @nusr, and @pawelkula. Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @bernardobelchior, @cherniavskii, @Janpot, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @oliviertassinari, @romgrk, and @mapache-salvaje.
The main--hasSkeletonLoadingOverlay
class has been renamed to main--hiddenContent
and is now also applied when the "No columns" overlay is displayed.
The apiRef.current.forceUpdate()
method was removed. Use selectors combined with useGridSelector()
hook to react to changes in the state.
The selectors signature has been updated. They are only accepting apiRef
as a first argument and instanceId
is no longer the third argument.
-mySelector(state, arguments, instanceId)
+mySelector(apiRef, arguments)
Changelog
7.27.0
Feb 17, 2025
We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @pawelkula, @Neonin. Following are all team members who have contributed to this release: @cherniavskii, @JCQuintas, @oliviertassinari, @arminmeh and @LukasTy
@mui/x-data-grid@7.27.0
resetPageOnSortFilter
prop that resets the page after sorting and filtering (#16580) @arminmehundefined
value for pagination rowCount
(#16558) @cherniavskii@mui/x-data-grid-pro@7.27.0
Same changes as in @mui/x-data-grid@7.27.0
.
@mui/x-data-grid-premium@7.27.0
Same changes as in @mui/x-data-grid-pro@7.27.0
, plus:
@mui/x-date-pickers@7.27.0
Internal changes.
@mui/x-date-pickers-pro@7.27.0
Same changes as in @mui/x-date-pickers@7.27.0
, plus:
@mui/x-charts@7.27.0
Internal changes.
@mui/x-charts-pro@7.27.0
Changelog
8.0.0-alpha.11
Feb 7, 2025
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @lauri865. Following are all team members who have contributed to this release: @alexfauquette, @arminmeh, @bernardobelchior, @flaviendelangle, @Janpot, @KenanYusuf, @LukasTy, @MBilalShafi, @noraleonte, @romgrk.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->createUseGridApiEventHandler()
is not exported anymore.
The filteredRowsLookup
object of the filter state does not contain true
values anymore. If the row is filtered out, the value is false
. Otherwise, the row id is not present in the object.
This change only impacts you if you relied on filteredRowsLookup
to get ids of filtered rows. In this case,use gridDataRowIdsSelector
selector to get row ids and check filteredRowsLookup
for false
values:
const filteredRowsLookup = gridFilteredRowsLookupSelector(apiRef);
-const filteredRowIds = Object.keys(filteredRowsLookup).filter((rowId) => filteredRowsLookup[rowId] === true);
+const rowIds = gridDataRowIdsSelector(apiRef);
+const filteredRowIds = rowIds.filter((rowId) => filteredRowsLookup[rowId] !== false);
The visibleRowsLookup
state does not contain true
values anymore. If the row is not visible, the value is false
. Otherwise, the row id is not present in the object:
const visibleRowsLookup = gridVisibleRowsLookupSelector(apiRef);
-const isRowVisible = visibleRowsLookup[rowId] === true;
+const isRowVisible = visibleRowsLookup[rowId] !== false;
Changelog
7.26.0
Feb 7, 2025
We'd like to offer a big thanks to the 6 contributors who made this release possible. Here are some highlights ✨:
Special thanks go out to the community contributors who have helped make this release possible: @lauri865. Following are all team members who have contributed to this release: @arminmeh, @noraleonte, @LukasTy, @KenanYusuf, @flaviendelangle.
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->@mui/x-data-grid@7.26.0
<GridRoot />
double-render pass on mount in SPA mode (#16480) @lauri865@mui/x-data-grid-pro@7.26.0
Same changes as in @mui/x-data-grid@7.26.0
, plus:
useGridApiContext()
for Pro and Premium packages on React < 19 (#16446) @arminmeh@mui/x-data-grid-premium@7.26.0
Same changes as in @mui/x-data-grid-pro@7.26.0
, plus:
@mui/x-date-pickers@7.26.0
Internal changes.
@mui/x-date-pickers-pro@7.26.0
Same changes as in @mui/x-date-pickers@7.26.0
, plus:
currentMonthCalendarPosition
prop behavior on mobile (#16457) @LukasTy@mui/x-charts@7.26.0
Internal changes.
@mui/x-charts-pro@7.26.0
Same changes as in @mui/x-charts@7.26.0
.
@mui/x-tree-view@7.26.0
Internal changes.
@mui/x-tree-view-pro@7.26.0
Same changes as in @mui/x-tree-view@7.26.0
.