@mui/x-data-grid 8.0.0-alpha.2 → 8.0.0-alpha.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 (138) hide show
  1. package/CHANGELOG.md +376 -0
  2. package/DataGrid/DataGrid.js +5 -13
  3. package/README.md +1 -1
  4. package/components/GridRow.js +1 -1
  5. package/components/cell/GridActionsCell.js +8 -1
  6. package/components/cell/GridCell.js +1 -1
  7. package/components/columnSelection/GridHeaderCheckbox.js +4 -1
  8. package/components/panel/GridColumnsPanel.js +1 -2
  9. package/components/panel/GridPanelContent.js +7 -3
  10. package/components/panel/GridPanelFooter.d.ts +1 -1
  11. package/components/panel/GridPanelFooter.js +4 -3
  12. package/components/panel/filterPanel/GridFilterForm.js +15 -15
  13. package/constants/dataGridPropsDefaultValues.js +1 -2
  14. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +25 -9
  15. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  16. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +3 -6
  17. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  18. package/hooks/core/useGridStateInitialization.js +3 -3
  19. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  20. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  21. package/hooks/features/columnResize/useGridColumnResize.js +2 -1
  22. package/hooks/features/columns/gridColumnsSelector.d.ts +12 -12
  23. package/hooks/features/density/densitySelector.d.ts +1 -1
  24. package/hooks/features/editing/useGridCellEditing.js +3 -3
  25. package/hooks/features/editing/useGridRowEditing.js +3 -3
  26. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  27. package/hooks/features/filter/useGridFilter.js +1 -1
  28. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  29. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  30. package/hooks/features/overlays/useGridOverlays.js +3 -1
  31. package/hooks/features/pagination/gridPaginationSelector.d.ts +15 -9
  32. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  33. package/hooks/features/rowSelection/useGridRowSelection.js +5 -4
  34. package/hooks/features/rowSelection/utils.d.ts +1 -1
  35. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  36. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -8
  37. package/hooks/features/rows/gridRowsSelector.d.ts +23 -13
  38. package/hooks/features/rows/gridRowsSelector.js +0 -1
  39. package/hooks/features/rows/gridRowsUtils.js +0 -9
  40. package/hooks/features/rows/index.d.ts +1 -1
  41. package/hooks/features/rows/index.js +1 -1
  42. package/hooks/features/rows/useGridRowSpanning.d.ts +1 -1
  43. package/hooks/features/rows/useGridRowSpanning.js +16 -8
  44. package/hooks/features/rows/useGridRows.js +16 -18
  45. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  46. package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
  47. package/hooks/features/sorting/gridSortingSelector.js +11 -0
  48. package/hooks/features/sorting/index.d.ts +2 -1
  49. package/hooks/features/sorting/index.js +1 -1
  50. package/hooks/features/sorting/useGridSorting.js +1 -1
  51. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  52. package/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  53. package/hooks/utils/useGridSelector.d.ts +4 -6
  54. package/hooks/utils/useGridSelector.js +6 -44
  55. package/index.js +1 -1
  56. package/internals/index.d.ts +3 -3
  57. package/internals/index.js +3 -3
  58. package/locales/heIL.js +14 -16
  59. package/locales/roRO.js +18 -20
  60. package/locales/trTR.js +12 -14
  61. package/models/api/gridStateApi.d.ts +1 -1
  62. package/models/controlStateItem.d.ts +2 -2
  63. package/models/events/gridEventLookup.d.ts +1 -0
  64. package/models/gridDataSource.d.ts +1 -1
  65. package/models/props/DataGridProps.d.ts +1 -9
  66. package/modern/DataGrid/DataGrid.js +5 -13
  67. package/modern/components/GridRow.js +1 -1
  68. package/modern/components/cell/GridActionsCell.js +8 -1
  69. package/modern/components/cell/GridCell.js +1 -1
  70. package/modern/components/columnSelection/GridHeaderCheckbox.js +4 -1
  71. package/modern/components/panel/GridColumnsPanel.js +1 -2
  72. package/modern/components/panel/GridPanelContent.js +7 -3
  73. package/modern/components/panel/GridPanelFooter.js +4 -3
  74. package/modern/components/panel/filterPanel/GridFilterForm.js +15 -15
  75. package/modern/constants/dataGridPropsDefaultValues.js +1 -2
  76. package/modern/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  77. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  78. package/modern/hooks/core/useGridStateInitialization.js +3 -3
  79. package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
  80. package/modern/hooks/features/editing/useGridCellEditing.js +3 -3
  81. package/modern/hooks/features/editing/useGridRowEditing.js +3 -3
  82. package/modern/hooks/features/filter/useGridFilter.js +1 -1
  83. package/modern/hooks/features/overlays/useGridOverlays.js +3 -1
  84. package/modern/hooks/features/rowSelection/useGridRowSelection.js +5 -4
  85. package/modern/hooks/features/rows/gridRowsSelector.js +0 -1
  86. package/modern/hooks/features/rows/gridRowsUtils.js +0 -9
  87. package/modern/hooks/features/rows/index.js +1 -1
  88. package/modern/hooks/features/rows/useGridRowSpanning.js +16 -8
  89. package/modern/hooks/features/rows/useGridRows.js +16 -18
  90. package/modern/hooks/features/sorting/gridSortingSelector.js +11 -0
  91. package/modern/hooks/features/sorting/index.js +1 -1
  92. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  93. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  94. package/modern/hooks/utils/useGridSelector.js +6 -44
  95. package/modern/index.js +1 -1
  96. package/modern/internals/index.js +3 -3
  97. package/modern/locales/heIL.js +14 -16
  98. package/modern/locales/roRO.js +18 -20
  99. package/modern/locales/trTR.js +12 -14
  100. package/modern/utils/createSelector.js +1 -120
  101. package/node/DataGrid/DataGrid.js +5 -13
  102. package/node/components/GridRow.js +1 -1
  103. package/node/components/cell/GridActionsCell.js +8 -1
  104. package/node/components/cell/GridCell.js +1 -1
  105. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -1
  106. package/node/components/panel/GridColumnsPanel.js +1 -2
  107. package/node/components/panel/GridPanelContent.js +7 -3
  108. package/node/components/panel/GridPanelFooter.js +5 -4
  109. package/node/components/panel/filterPanel/GridFilterForm.js +15 -15
  110. package/node/constants/dataGridPropsDefaultValues.js +1 -2
  111. package/node/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +7 -1
  112. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  113. package/node/hooks/core/useGridStateInitialization.js +3 -3
  114. package/node/hooks/features/columnResize/useGridColumnResize.js +2 -1
  115. package/node/hooks/features/editing/useGridCellEditing.js +2 -2
  116. package/node/hooks/features/editing/useGridRowEditing.js +2 -2
  117. package/node/hooks/features/filter/useGridFilter.js +1 -1
  118. package/node/hooks/features/overlays/useGridOverlays.js +3 -1
  119. package/node/hooks/features/rowSelection/useGridRowSelection.js +5 -4
  120. package/node/hooks/features/rows/gridRowsSelector.js +1 -2
  121. package/node/hooks/features/rows/gridRowsUtils.js +0 -9
  122. package/node/hooks/features/rows/index.js +0 -7
  123. package/node/hooks/features/rows/useGridRowSpanning.js +16 -8
  124. package/node/hooks/features/rows/useGridRows.js +15 -17
  125. package/node/hooks/features/sorting/gridSortingSelector.js +12 -1
  126. package/node/hooks/features/sorting/index.js +24 -16
  127. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  128. package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  129. package/node/hooks/utils/useGridSelector.js +8 -47
  130. package/node/index.js +1 -1
  131. package/node/internals/index.js +15 -22
  132. package/node/locales/heIL.js +14 -16
  133. package/node/locales/roRO.js +18 -20
  134. package/node/locales/trTR.js +12 -14
  135. package/node/utils/createSelector.js +4 -125
  136. package/package.json +1 -1
  137. package/utils/createSelector.d.ts +4 -16
  138. package/utils/createSelector.js +1 -120
package/CHANGELOG.md CHANGED
@@ -5,6 +5,235 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.0.0-alpha.4
9
+
10
+ _Dec 13, 2024_
11
+
12
+ We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🌍 Improve Romanian locale on the Data Grid and Pickers
15
+ - 📚 Documentation improvements
16
+ - 🐞 Bugfixes
17
+
18
+ Special thanks go out to the community contributors who have helped make this release possible:
19
+ @k-rajat19, @nusr, @rares985, @zivl.
20
+ Following are all team members who have contributed to this release:
21
+ @alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi.
22
+
23
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
24
+
25
+ ### Data Grid
26
+
27
+ #### Breaking changes
28
+
29
+ - 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.
30
+
31
+ ```diff
32
+ -mySelector(state, instanceId)
33
+ +mySelector(state, arguments, instanceId)
34
+ ```
35
+
36
+ - 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.
37
+
38
+ ```diff
39
+ -const output = useGridSelector(apiRef, selector, equals)
40
+ +const output = useGridSelector(apiRef, selector, arguments, equals)
41
+ ```
42
+ - The default variant for text fields and selects in the filter panel has been changed to `outlined`.
43
+ - The "row spanning" feature is now stable.
44
+ ```diff
45
+ <DataGrid
46
+ - unstable_rowSpanning
47
+ + rowSpanning
48
+ />
49
+ ```
50
+ - Selected row is now deselected when clicked again.
51
+
52
+ #### `@mui/x-data-grid@8.0.0-alpha.4`
53
+
54
+ - [DataGrid] Deselect selected row on click (#15509) @k-rajat19
55
+ - [DataGrid] Fix "No rows" displaying when all rows are pinned (#15335) @nusr
56
+ - [DataGrid] Make row spanning feature stable (#15742) @MBilalShafi
57
+ - [DataGrid] Round dimensions to avoid subpixel rendering error (#15850) @KenanYusuf
58
+ - [DataGrid] Toggle menu on click in `<GridActionsCell />` (#15867) @k-rajat19
59
+ - [DataGrid] Trigger row spanning computation on rows update (#15858) @MBilalShafi
60
+ - [DataGrid] Update filter panel input variant (#15807) @KenanYusuf
61
+ - [DataGrid] Use `columnsManagement` slot (#15817) @k-rajat19
62
+ - [DataGrid] Use new selector signature (#15200) @MBilalShafi
63
+ - [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
64
+
65
+ #### `@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')
66
+
67
+ Same changes as in `@mui/x-data-grid@8.0.0-alpha.4`, plus:
68
+
69
+ - [DataGridPro] Make row reordering work with pagination (#15355) @k-rajat19
70
+
71
+ #### `@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')
72
+
73
+ Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.4`, plus:
74
+
75
+ - [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15739) @arminmeh
76
+
77
+ ### Date and Time Pickers
78
+
79
+ #### `@mui/x-date-pickers@8.0.0-alpha.4`
80
+
81
+ - [l10n] Improve Romanian (ro-RO) locale (#15745) @rares985
82
+ - [pickers] Clean `usePicker` logic (#15763) @flaviendelangle
83
+ - [pickers] Rename layout `ownerState` property from `isRtl` to `layoutDirection` (#15803) @flaviendelangle
84
+ - [pickers] Use the new `ownerState` in `useClearableField` (#15776) @flaviendelangle
85
+ - [pickers] Use the new `ownerState` in the toolbar components (#15777) @flaviendelangle
86
+ - [pickers] Use the new `ownerState` object for the clock components and the desktop / mobile wrappers (#15669) @flaviendelangle
87
+
88
+ #### `@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')
89
+
90
+ Same changes as in `@mui/x-date-pickers@8.0.0-alpha.4`.
91
+
92
+ ### Charts
93
+
94
+ #### Breaking changes
95
+
96
+ - The default styling of the charts tooltip has been updated.
97
+
98
+ #### `@mui/x-charts@8.0.0-alpha.4`
99
+
100
+ - [charts] Fix hydration missmatch (#15647) @alexfauquette
101
+ - [charts] Fix internal spelling typo (#15805) @zivl
102
+ - [charts] Fix scatter dataset with missing data (#15802) @alexfauquette
103
+ - [charts] HTML Labels (#15813) @JCQuintas
104
+ - [charts] Only access store values by using hooks (#15764) @alexfauquette
105
+ - [charts] Update Tooltip style (#15630) @alexfauquette
106
+
107
+ #### `@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')
108
+
109
+ Same changes as in `@mui/x-charts@8.0.0-alpha.4`.
110
+
111
+ ### Tree View
112
+
113
+ #### `@mui/x-tree-view@8.0.0-alpha.4`
114
+
115
+ No changes, releasing to keep the versions in sync.
116
+
117
+ #### `@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')
118
+
119
+ Releasing to benefit from license package fix (#15814).
120
+
121
+ ### Docs
122
+
123
+ - [docs] Clean Joy and Browser custom field demos (#15707) @flaviendelangle
124
+ - [docs] Fix outdated link to handbook (#15855) @oliviertassinari
125
+ - [docs] Improve Pickers accessible DOM migration section description (#15596) @LukasTy
126
+ - [docs] Use `updateRows` method for list view demos (#15732) @KenanYusuf
127
+ - [docs] Use date library version from package dev dependencies for sandboxes (#15762) @LukasTy
128
+
129
+ ### Core
130
+
131
+ - [code-infra] Add Charts sandbox generation (#15830) @JCQuintas
132
+ - [code-infra] Remove redundant `@type/react-test-renderer` dep (#15766) @LukasTy
133
+ - [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15814) @arminmeh
134
+
135
+ ## 8.0.0-alpha.3
136
+
137
+ _Dec 5, 2024_
138
+
139
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
140
+
141
+ - 💫 Support [Server-side lazy loading](https://mui.com/x/react-data-grid/server-side-data/lazy-loading/) on the Data Grid. Use [data source](https://mui.com/x/react-data-grid/server-side-data/#data-source) to fetch a range of rows on demand and update the rows in the same way as described in [Infinite loading](https://mui.com/x/react-data-grid/row-updates/#infinite-loading) and [Lazy loading](https://mui.com/x/react-data-grid/row-updates/#lazy-loading) without the need to use any additional event listeners and callbacks.
142
+ - 🎯 Improved [data caching](https://mui.com/x/react-data-grid/server-side-data/#data-caching). Check out our [recommendations](https://mui.com/x/react-data-grid/server-side-data/#improving-the-cache-hit-rate) for improving the cache hit rate.
143
+
144
+ Special thanks go out to the community contributors who have helped make this release possible:
145
+ @ihsanberkozcan, @k-rajat19, @perezShaked.
146
+ Following are all team members who have contributed to this release:
147
+ @arminmeh, @cherniavskii, @flaviendelangle, @JCQuintas, @MBilalShafi, @noraleonte.
148
+
149
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
150
+
151
+ ### Data Grid
152
+
153
+ #### Breaking changes
154
+
155
+ - The "Select all" checkbox is now checked when all the selectable rows are selected, ignoring rows that are not selectable because of the `isRowSelectable` prop.
156
+ - The `rowPositionsDebounceMs` prop was removed.
157
+ - The `gridRowsDataRowIdToIdLookupSelector` selector was removed. Use the `gridRowsLookupSelector` selector in combination with the `getRowId()` API method instead.
158
+ ```diff
159
+ -const idToIdLookup = gridRowsDataRowIdToIdLookupSelector(apiRef);
160
+ -const rowId = idToIdLookup[id]
161
+ +const rowsLookup = gridRowsLookupSelector(apiRef);
162
+ +const rowId = apiRef.current.getRowId(rowsLookup[id])
163
+ ```
164
+ - The Grid is now more aligned with the WAI-ARIA authoring practices and sets the `role` attribute to `treegrid` if the Data Grid is used with row grouping feature.
165
+
166
+ #### `@mui/x-data-grid@8.0.0-alpha.3`
167
+
168
+ - [DataGrid] Fix deselection not working with `isRowSelectable` (#15692) @MBilalShafi
169
+ - [DataGrid] Make column autosizing work with flex columns (#15465) @cherniavskii
170
+ - [DataGrid] Remove `gridRowsDataRowIdToIdLookupSelector` selector (#15698) @arminmeh
171
+ - [DataGrid] Remove `rowPositionsDebounceMs` prop (#15482) @k-rajat19
172
+ - [l10n] Improve Hebrew (he-IL) locale (#15699) @perezShaked
173
+ - [l10n] Improve Turkish (tr-TR) locale (#15734) @ihsanberkozcan
174
+
175
+ #### `@mui/x-data-grid-pro@8.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
176
+
177
+ Same changes as in `@mui/x-data-grid@8.0.0-alpha.3`, plus:
178
+
179
+ - [DataGridPro] Cleanup pinned rows on removal (#15697) @cherniavskii
180
+ - [DataGridPro] Server-side lazy loading (#13878) @arminmeh
181
+
182
+ #### `@mui/x-data-grid-premium@8.0.0-alpha.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
183
+
184
+ Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.3`, plus:
185
+
186
+ - [DataGridPremium] Remove the `ariaV8` experimental flag (#15694) @arminmeh
187
+
188
+ ### Date and Time Pickers
189
+
190
+ #### Breaking changes
191
+
192
+ - The `onOpen()` and `onClose()` methods of the `usePickerContext()` hook have been replaced with a single `setOpen` method — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#usepickercontext).
193
+
194
+ #### `@mui/x-date-pickers@8.0.0-alpha.3`
195
+
196
+ - [pickers] Replace the `onOpen()` and `onClose()` methods of `usePickerContext()` with a single `setOpen()` method. (#15701) @flaviendelangle
197
+
198
+ #### `@mui/x-date-pickers-pro@8.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
199
+
200
+ Same changes as in `@mui/x-date-pickers@8.0.0-alpha.3`.
201
+
202
+ ### Charts
203
+
204
+ #### `@mui/x-charts@8.0.0-alpha.3`
205
+
206
+ - [charts] Improve SVG `pattern` and `gradient` support (#15720) @JCQuintas
207
+
208
+ #### `@mui/x-charts-pro@8.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
209
+
210
+ Same changes as in `@mui/x-charts@8.0.0-alpha.3`.
211
+
212
+ ### Tree View
213
+
214
+ #### `@mui/x-tree-view@8.0.0-alpha.3`
215
+
216
+ No changes since `@mui/x-tree-view-pro@v8.0.0-alpha.2`.
217
+
218
+ #### `@mui/x-tree-view-pro@8.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
219
+
220
+ Same changes as in `@mui/x-tree-view@8.0.0-alpha.3`.
221
+
222
+ ### Docs
223
+
224
+ - [docs] Add a customization demo for the Date and Time Pickers overview page (#15118) @noraleonte
225
+ - [docs] Fix typo in charts axis documentation (#15743) @JCQuintas
226
+ - [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
227
+
228
+ ### Core
229
+
230
+ - [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15316) @flaviendelangle
231
+ - [code-infra] Lock file maintenance (#11894)
232
+ - [code-infra] Check if `preset-safe` folder exists in codemod test (#15703) @JCQuintas
233
+ - [code-infra] Import Pickers `preset-safe` into global codemod config (#15659) @JCQuintas
234
+ - [code-infra] Playwright 1.49 (#15493) @JCQuintas
235
+ - [test] Force hover in headless Chrome (#15710) @cherniavskii
236
+
8
237
  ## v8.0.0-alpha.2
9
238
 
10
239
  _Nov 29, 2024_
@@ -465,6 +694,153 @@ Same changes as in `@mui/x-charts@8.0.0-alpha.0`.
465
694
  - [release] v8 preparation (#15054) @michelengelen
466
695
  - [test] Fix advanced list view regression test snapshot (#15260) @KenanYusuf
467
696
 
697
+ ## 7.23.2
698
+
699
+ _Dec 12, 2024_
700
+
701
+ We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
702
+
703
+ - 🌍 Improve Romanian and Turkish locales on the Data Grid
704
+ - 🌍 Improve Romanian locale on the Pickers
705
+ - 📚 Documentation improvements
706
+ - 🐞 Bugfixes
707
+
708
+ Special thanks go out to the community contributors who have helped make this release possible:
709
+ @ihsanberkozcan, @k-rajat19, @lhilgert9, @nusr, @rares985.
710
+
711
+ Following are all team members who have contributed to this release:
712
+ @alexfauquette, @arminmeh, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy.
713
+
714
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
715
+
716
+ ### Data Grid
717
+
718
+ #### `@mui/x-data-grid@7.23.2`
719
+
720
+ - [DataGrid] Fix "No rows" displaying when all rows are pinned (#15851) @nusr
721
+ - [DataGrid] Use `columnsManagement` slot (#15821) @k-rajat19
722
+ - [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
723
+ - [l10n] Improve Turkish (tr-TR) locale (#15748) @ihsanberkozcan
724
+
725
+ #### `@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')
726
+
727
+ Same changes as in `@mui/x-data-grid@7.23.2`, plus:
728
+
729
+ - [DataGridPro] Make Row reordering work with pagination (#15782) @k-rajat19
730
+
731
+ #### `@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')
732
+
733
+ Same changes as in `@mui/x-data-grid-pro@7.23.2`, plus:
734
+
735
+ - [DataGridPremium] Fix group column ignoring `valueOptions` for `singleSelect` column type (#15754) @arminmeh
736
+
737
+ ### Date and Time Pickers
738
+
739
+ #### `@mui/x-date-pickers@7.23.2`
740
+
741
+ - [l10n] Improve Romanian (ro-RO) locale (#15751) @rares985
742
+
743
+ #### `@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')
744
+
745
+ Same changes as in `@mui/x-date-pickers@7.23.2`.
746
+
747
+ ### Charts
748
+
749
+ #### `@mui/x-charts@7.23.2`
750
+
751
+ - [charts] Fix key generation for the ChartsGrid (#15864) @alexfauquette
752
+ - [charts] Fix scatter dataset with missing data (#15804) @alexfauquette
753
+
754
+ #### `@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')
755
+
756
+ Same changes as in `@mui/x-charts@7.23.2`.
757
+
758
+ #### `@mui/x-tree-view@v7.23.2`
759
+
760
+ No changes, releasing to keep the versions in sync.
761
+
762
+ #### `@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')
763
+
764
+ Releasing to benefit from license package fix (#15818).
765
+
766
+ ### Docs
767
+
768
+ - [docs] Fix typo in charts axis documentation (#15746) @JCQuintas
769
+ - [docs] Improve Pickers accessible DOM structure description (#15752) @LukasTy
770
+ - [docs] Use `updateRows` method for list view demos (#15824) @KenanYusuf
771
+ - [docs] Use date library version from package dev dependencies for sandboxes (#15767) @LukasTy
772
+
773
+ ### Core
774
+
775
+ - [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
776
+ - [license] Use `console.log` for the error message on Codesandbox to avoid rendering error (#15818) @arminmeh
777
+
778
+ ## 7.23.1
779
+
780
+ _Dec 5, 2024_
781
+
782
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
783
+
784
+ - 🌍 Improve German locale on the Data Grid component
785
+ - 🐞 Bugfixes
786
+
787
+ Special thanks go out to the community contributors who have helped make this release possible:
788
+ @lhilgert9.
789
+
790
+ Following are all team members who have contributed to this release:
791
+ @arthurbalduini, @cherniavskii, @flaviendelangle, @JCQuintas, @LukasTy and @MBilalShafi.
792
+
793
+ <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
794
+
795
+ ### Data Grid
796
+
797
+ #### `@mui/x-data-grid@7.23.1`
798
+
799
+ - [DataGrid] Make column autosizing work with flex columns (#15712) @cherniavskii
800
+ - [l10n] Improve German (de-DE) locale (#15641) @lhilgert9
801
+
802
+ #### `@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')
803
+
804
+ Same changes as in `@mui/x-data-grid@7.23.1`, plus:
805
+
806
+ - [DataGridPro] Cleanup pinned rows on removal (#15702) @cherniavskii
807
+
808
+ #### `@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')
809
+
810
+ Same changes as in `@mui/x-data-grid-pro@7.23.1`.
811
+
812
+ ### Date and Time Pickers
813
+
814
+ #### `@mui/x-date-pickers@7.23.1`
815
+
816
+ - [TimePicker] Prevent mouse events after `touchend` event (#15430) @arthurbalduini
817
+
818
+ #### `@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')
819
+
820
+ Same changes as in `@mui/x-date-pickers@7.23.1`.
821
+
822
+ ### Charts
823
+
824
+ #### `@mui/x-charts@7.23.1`
825
+
826
+ - [charts] Improve SVG `pattern` and `gradient` support (#15724) @JCQuintas
827
+
828
+ #### `@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')
829
+
830
+ Same changes as in `@mui/x-charts@7.23.1`.
831
+
832
+ ### Docs
833
+
834
+ - [docs] Fix Pickers theme augmentation example (#15675) @LukasTy
835
+ - [docs] Remove duplicated warning (#15715) @cherniavskii
836
+ - [test] Force hover in headless Chrome (#15711) @cherniavskii
837
+ - [docs-infra] Bump `@mui/internal-markdown` to support nested demo imports (#15738) @alexfauquette
838
+ - [docs] Improve SEO titles for the Data Grid (#15695) @MBilalShafi
839
+
840
+ ### Core
841
+
842
+ - [core] Add `@mui/x-tree-view-pro` to `releaseChangelog` (#15747) @flaviendelangle
843
+
468
844
  ## 7.23.0
469
845
 
470
846
  _Nov 29, 2024_
@@ -682,14 +682,6 @@ DataGridRaw.propTypes = {
682
682
  * Controls the modes of the rows.
683
683
  */
684
684
  rowModesModel: PropTypes.object,
685
- /**
686
- * The milliseconds delay to wait after measuring the row height before recalculating row positions.
687
- * Setting it to a lower value could be useful when using dynamic row height,
688
- * but might reduce performance when displaying a large number of rows.
689
- * @default 166
690
- * @deprecated
691
- */
692
- rowPositionsDebounceMs: PropTypes.number,
693
685
  /**
694
686
  * Set of rows of type [[GridRowsProp]].
695
687
  * @default []
@@ -709,6 +701,11 @@ DataGridRaw.propTypes = {
709
701
  * @default "margin"
710
702
  */
711
703
  rowSpacingType: PropTypes.oneOf(['border', 'margin']),
704
+ /**
705
+ * If `true`, the Data Grid will auto span the cells over the rows having the same value.
706
+ * @default false
707
+ */
708
+ rowSpanning: PropTypes.bool,
712
709
  /**
713
710
  * Override the height/width of the Data Grid inner scrollbar.
714
711
  */
@@ -754,11 +751,6 @@ DataGridRaw.propTypes = {
754
751
  * The system prop that allows defining system overrides as well as additional CSS styles.
755
752
  */
756
753
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
757
- /**
758
- * If `true`, the Data Grid will auto span the cells over the rows having the same value.
759
- * @default false
760
- */
761
- unstable_rowSpanning: PropTypes.bool,
762
754
  /**
763
755
  * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
764
756
  * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # MUI X Data Grid
2
2
 
3
3
  This package is the Community plan edition of the Data Grid components.
4
- It's part of [MUI X](https://mui.com/x/), an open-core extension of MUI Core, with advanced components.
4
+ It's part of [MUI X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
5
5
 
6
6
  ## Installation
7
7
 
@@ -144,7 +144,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
144
144
  disableColumnReorder
145
145
  } = rootProps;
146
146
  const rowReordering = rootProps.rowReordering;
147
- const heightEntry = useGridSelector(apiRef, () => _extends({}, apiRef.current.getRowHeightEntry(rowId)), objectShallowCompare);
147
+ const heightEntry = useGridSelector(apiRef, () => _extends({}, apiRef.current.getRowHeightEntry(rowId)), undefined, objectShallowCompare);
148
148
  const style = React.useMemo(() => {
149
149
  if (isNotVisible) {
150
150
  return {
@@ -89,6 +89,13 @@ function GridActionsCell(props) {
89
89
  const hideMenu = () => {
90
90
  setOpen(false);
91
91
  };
92
+ const toggleMenu = () => {
93
+ if (open) {
94
+ hideMenu();
95
+ } else {
96
+ showMenu();
97
+ }
98
+ };
92
99
  const handleTouchRippleRef = index => instance => {
93
100
  touchRippleRefs.current[index] = instance;
94
101
  };
@@ -159,7 +166,7 @@ function GridActionsCell(props) {
159
166
  "aria-controls": open ? menuId : undefined,
160
167
  role: "menuitem",
161
168
  size: "small",
162
- onClick: showMenu,
169
+ onClick: toggleMenu,
163
170
  touchRippleRef: handleTouchRippleRef(buttonId),
164
171
  tabIndex: focusedButtonIndex === iconButtons.length ? tabIndex : -1
165
172
  }, rootProps.slotProps?.baseIconButton, {
@@ -120,7 +120,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
120
120
  const result = apiRef.current.getCellParams(rowId, field);
121
121
  result.api = apiRef.current;
122
122
  return result;
123
- }, objectShallowCompare);
123
+ }, undefined, objectShallowCompare);
124
124
  const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
125
125
  id: rowId,
126
126
  field
@@ -56,10 +56,13 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
56
56
  // Convert to an object to make O(1) checking if a row exists or not
57
57
  // TODO create selector that returns visibleRowIds/paginatedVisibleRowIds as an object
58
58
  return rowIds.reduce((acc, id) => {
59
+ if (!apiRef.current.isRowSelectable(id)) {
60
+ return acc;
61
+ }
59
62
  acc[id] = true;
60
63
  return acc;
61
64
  }, {});
62
- }, [rootProps.pagination, rootProps.checkboxSelectionVisibleOnly, paginatedVisibleRowIds, visibleRowIds]);
65
+ }, [apiRef, rootProps.pagination, rootProps.checkboxSelectionVisibleOnly, paginatedVisibleRowIds, visibleRowIds]);
63
66
 
64
67
  // Amount of rows selected and that are visible in the current page
65
68
  const currentSelectionSize = React.useMemo(() => filteredSelection.filter(id => selectionCandidates[id]).length, [filteredSelection, selectionCandidates]);
@@ -2,13 +2,12 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { GridPanelWrapper } from "./GridPanelWrapper.js";
5
- import { GridColumnsManagement } from "../columnsManagement/index.js";
6
5
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
7
6
  import { jsx as _jsx } from "react/jsx-runtime";
8
7
  function GridColumnsPanel(props) {
9
8
  const rootProps = useGridRootProps();
10
9
  return /*#__PURE__*/_jsx(GridPanelWrapper, _extends({}, props, {
11
- children: /*#__PURE__*/_jsx(GridColumnsManagement, _extends({}, rootProps.slotProps?.columnsManagement))
10
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnsManagement, _extends({}, rootProps.slotProps?.columnsManagement))
12
11
  }));
13
12
  }
14
13
  process.env.NODE_ENV !== "production" ? GridColumnsPanel.propTypes = {
@@ -22,13 +22,17 @@ const GridPanelContentRoot = styled('div', {
22
22
  name: 'MuiDataGrid',
23
23
  slot: 'PanelContent',
24
24
  overridesResolver: (props, styles) => styles.panelContent
25
- })({
25
+ })(({
26
+ theme
27
+ }) => ({
26
28
  display: 'flex',
27
29
  flexDirection: 'column',
28
30
  overflow: 'auto',
29
31
  flex: '1 1',
30
- maxHeight: 400
31
- });
32
+ maxHeight: 400,
33
+ padding: theme.spacing(2.5, 1.5, 2, 1),
34
+ gap: theme.spacing(2.5)
35
+ }));
32
36
  function GridPanelContent(props) {
33
37
  const {
34
38
  className
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { SxProps, Theme } from '@mui/system';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
3
  declare function GridPanelFooter(props: React.HTMLAttributes<HTMLDivElement> & {
4
4
  sx?: SxProps<Theme>;
5
5
  }): React.JSX.Element;
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { styled } from '@mui/system';
7
+ import { styled } from '@mui/material/styles';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
@@ -25,9 +25,10 @@ const GridPanelFooterRoot = styled('div', {
25
25
  })(({
26
26
  theme
27
27
  }) => ({
28
- padding: theme.spacing(0.5),
28
+ padding: theme.spacing(1),
29
29
  display: 'flex',
30
- justifyContent: 'space-between'
30
+ justifyContent: 'space-between',
31
+ borderTop: `1px solid ${theme.palette.divider}`
31
32
  }));
32
33
  function GridPanelFooter(props) {
33
34
  const {
@@ -39,27 +39,22 @@ const GridFilterFormRoot = styled('div', {
39
39
  theme
40
40
  }) => ({
41
41
  display: 'flex',
42
- padding: theme.spacing(1)
42
+ gap: theme.spacing(1.5)
43
43
  }));
44
44
  const FilterFormDeleteIcon = styled('div', {
45
45
  name: 'MuiDataGrid',
46
46
  slot: 'FilterFormDeleteIcon',
47
47
  overridesResolver: (_, styles) => styles.filterFormDeleteIcon
48
- })(({
49
- theme
50
- }) => ({
48
+ })({
51
49
  flexShrink: 0,
52
- justifyContent: 'flex-end',
53
- marginRight: theme.spacing(0.5),
54
- marginBottom: theme.spacing(0.2)
55
- }));
50
+ justifyContent: 'center'
51
+ });
56
52
  const FilterFormLogicOperatorInput = styled('div', {
57
53
  name: 'MuiDataGrid',
58
54
  slot: 'FilterFormLogicOperatorInput',
59
55
  overridesResolver: (_, styles) => styles.filterFormLogicOperatorInput
60
56
  })({
61
- minWidth: 55,
62
- marginRight: 5,
57
+ minWidth: 75,
63
58
  justifyContent: 'end'
64
59
  });
65
60
  const FilterFormColumnInput = styled('div', {
@@ -261,7 +256,6 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
261
256
  ownerState: rootProps
262
257
  }, other, {
263
258
  children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({
264
- variant: "standard",
265
259
  as: rootProps.slots.baseFormControl
266
260
  }, baseFormControlProps, deleteIconProps, {
267
261
  className: clsx(classes.deleteIcon, baseFormControlProps.className, deleteIconProps.className),
@@ -278,7 +272,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
278
272
  })
279
273
  }))
280
274
  })), /*#__PURE__*/_jsx(FilterFormLogicOperatorInput, _extends({
281
- variant: "standard",
275
+ variant: "outlined",
276
+ size: "small",
282
277
  as: rootProps.slots.baseFormControl
283
278
  }, baseFormControlProps, logicOperatorInputProps, {
284
279
  sx: [hasLogicOperatorColumn ? {
@@ -308,7 +303,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
308
303
  }), apiRef.current.getLocaleText(getLogicOperatorLocaleKey(logicOperator))))
309
304
  }))
310
305
  })), /*#__PURE__*/_jsxs(FilterFormColumnInput, _extends({
311
- variant: "standard",
306
+ variant: "outlined",
307
+ size: "small",
312
308
  as: rootProps.slots.baseFormControl
313
309
  }, baseFormControlProps, columnInputProps, {
314
310
  className: clsx(classes.columnInput, baseFormControlProps.className, columnInputProps.className),
@@ -333,7 +329,8 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
333
329
  }), getColumnLabel(col)))
334
330
  }))]
335
331
  })), /*#__PURE__*/_jsxs(FilterFormOperatorInput, _extends({
336
- variant: "standard",
332
+ variant: "outlined",
333
+ size: "small",
337
334
  as: rootProps.slots.baseFormControl
338
335
  }, baseFormControlProps, operatorInputProps, {
339
336
  className: clsx(classes.operatorInput, baseFormControlProps.className, operatorInputProps.className),
@@ -359,12 +356,15 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
359
356
  }), operator.label || apiRef.current.getLocaleText(`filterOperator${capitalize(operator.value)}`)))
360
357
  }))]
361
358
  })), /*#__PURE__*/_jsx(FilterFormValueInput, _extends({
362
- variant: "standard",
359
+ variant: "outlined",
360
+ size: "small",
363
361
  as: rootProps.slots.baseFormControl
364
362
  }, baseFormControlProps, valueInputPropsOther, {
365
363
  className: clsx(classes.valueInput, baseFormControlProps.className, valueInputPropsOther.className),
366
364
  ownerState: rootProps,
367
365
  children: currentOperator?.InputComponent ? /*#__PURE__*/_jsx(currentOperator.InputComponent, _extends({
366
+ variant: "outlined",
367
+ size: "small",
368
368
  apiRef: apiRef,
369
369
  item: item,
370
370
  applyValue: applyFilterChanges,
@@ -45,15 +45,14 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
45
45
  resizeThrottleMs: 60,
46
46
  rowBufferPx: 150,
47
47
  rowHeight: 52,
48
- rowPositionsDebounceMs: 166,
49
48
  rows: [],
50
49
  rowSelection: true,
51
50
  rowSpacingType: 'margin',
51
+ rowSpanning: false,
52
52
  showCellVerticalBorder: false,
53
53
  showColumnVerticalBorder: false,
54
54
  sortingMode: 'client',
55
55
  sortingOrder: ['asc', 'desc', null],
56
56
  throttleRowsMs: 0,
57
- unstable_rowSpanning: false,
58
57
  virtualizeColumnsWithAutoRowHeight: false
59
58
  };