@mui/x-data-grid 8.0.0-beta.1 → 8.0.0-beta.3

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 (393) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/DataGrid/DataGrid.js +10 -2
  3. package/DataGrid/useDataGridProps.js +1 -1
  4. package/components/GridRow.js +3 -8
  5. package/components/GridScrollArea.js +4 -4
  6. package/components/GridShadowScrollArea.js +43 -35
  7. package/components/GridSkeletonLoadingOverlay.js +1 -1
  8. package/components/cell/GridActionsCellItem.d.ts +24 -13
  9. package/components/cell/GridActionsCellItem.js +5 -2
  10. package/components/cell/GridBooleanCell.d.ts +1 -2
  11. package/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  12. package/components/cell/GridEditSingleSelectCell.js +1 -1
  13. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  14. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  15. package/components/columnsManagement/GridColumnsManagement.js +1 -24
  16. package/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  17. package/components/containers/GridToolbarContainer.js +5 -3
  18. package/components/export/ExportCsv.js +4 -129
  19. package/components/export/ExportPrint.js +4 -129
  20. package/components/filterPanel/FilterPanelTrigger.js +4 -129
  21. package/components/panel/GridPanel.d.ts +2 -2
  22. package/components/panel/GridPanel.js +1 -1
  23. package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  24. package/components/quickFilter/QuickFilter.d.ts +26 -3
  25. package/components/quickFilter/QuickFilter.js +103 -19
  26. package/components/quickFilter/QuickFilterClear.js +13 -104
  27. package/components/quickFilter/QuickFilterContext.d.ts +4 -1
  28. package/components/quickFilter/QuickFilterControl.js +36 -12
  29. package/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  30. package/components/quickFilter/QuickFilterTrigger.js +86 -0
  31. package/components/quickFilter/index.d.ts +2 -1
  32. package/components/quickFilter/index.js +11 -0
  33. package/components/toolbar/GridToolbar.js +4 -1
  34. package/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  35. package/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  36. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  37. package/components/toolbar/GridToolbarExport.d.ts +3 -4
  38. package/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  39. package/components/toolbar/GridToolbarExportContainer.js +1 -1
  40. package/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  41. package/components/toolbar/GridToolbarFilterButton.js +1 -4
  42. package/components/toolbar/GridToolbarQuickFilter.js +100 -41
  43. package/components/toolbarV8/GridToolbar.d.ts +6 -1
  44. package/components/toolbarV8/GridToolbar.js +85 -27
  45. package/components/toolbarV8/Toolbar.d.ts +1 -1
  46. package/components/toolbarV8/Toolbar.js +78 -23
  47. package/components/toolbarV8/ToolbarButton.js +37 -114
  48. package/components/toolbarV8/ToolbarContext.d.ts +4 -2
  49. package/components/virtualization/GridVirtualScrollbar.js +1 -1
  50. package/components/virtualization/GridVirtualScroller.js +2 -2
  51. package/constants/cssVariables.d.ts +3 -0
  52. package/constants/cssVariables.js +2 -1
  53. package/constants/gridClasses.d.ts +20 -0
  54. package/constants/gridClasses.js +1 -1
  55. package/esm/DataGrid/DataGrid.js +10 -2
  56. package/esm/DataGrid/useDataGridProps.js +1 -1
  57. package/esm/components/GridRow.js +4 -9
  58. package/esm/components/GridScrollArea.js +4 -4
  59. package/esm/components/GridShadowScrollArea.js +43 -35
  60. package/esm/components/GridSkeletonLoadingOverlay.js +2 -2
  61. package/esm/components/cell/GridActionsCellItem.d.ts +24 -13
  62. package/esm/components/cell/GridActionsCellItem.js +4 -3
  63. package/esm/components/cell/GridBooleanCell.d.ts +1 -2
  64. package/esm/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  65. package/esm/components/cell/GridEditSingleSelectCell.js +1 -1
  66. package/esm/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  67. package/esm/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  68. package/esm/components/columnsManagement/GridColumnsManagement.js +1 -24
  69. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  70. package/esm/components/containers/GridToolbarContainer.js +5 -3
  71. package/esm/components/export/ExportCsv.js +4 -129
  72. package/esm/components/export/ExportPrint.js +4 -129
  73. package/esm/components/filterPanel/FilterPanelTrigger.js +4 -129
  74. package/esm/components/panel/GridPanel.d.ts +2 -2
  75. package/esm/components/panel/GridPanel.js +1 -1
  76. package/esm/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  77. package/esm/components/quickFilter/QuickFilter.d.ts +26 -3
  78. package/esm/components/quickFilter/QuickFilter.js +101 -17
  79. package/esm/components/quickFilter/QuickFilterClear.js +13 -104
  80. package/esm/components/quickFilter/QuickFilterContext.d.ts +4 -1
  81. package/esm/components/quickFilter/QuickFilterControl.js +36 -12
  82. package/esm/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  83. package/esm/components/quickFilter/QuickFilterTrigger.js +79 -0
  84. package/esm/components/quickFilter/index.d.ts +2 -1
  85. package/esm/components/quickFilter/index.js +2 -1
  86. package/esm/components/toolbar/GridToolbar.js +4 -1
  87. package/esm/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  88. package/esm/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  89. package/esm/components/toolbar/GridToolbarDensitySelector.js +1 -1
  90. package/esm/components/toolbar/GridToolbarExport.d.ts +3 -4
  91. package/esm/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  92. package/esm/components/toolbar/GridToolbarExportContainer.js +1 -1
  93. package/esm/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  94. package/esm/components/toolbar/GridToolbarFilterButton.js +1 -4
  95. package/esm/components/toolbar/GridToolbarQuickFilter.js +101 -44
  96. package/esm/components/toolbarV8/GridToolbar.d.ts +6 -1
  97. package/esm/components/toolbarV8/GridToolbar.js +83 -27
  98. package/esm/components/toolbarV8/Toolbar.d.ts +1 -1
  99. package/esm/components/toolbarV8/Toolbar.js +77 -22
  100. package/esm/components/toolbarV8/ToolbarButton.js +37 -114
  101. package/esm/components/toolbarV8/ToolbarContext.d.ts +4 -2
  102. package/esm/components/virtualization/GridVirtualScrollbar.js +1 -1
  103. package/esm/components/virtualization/GridVirtualScroller.js +2 -2
  104. package/esm/constants/cssVariables.d.ts +3 -0
  105. package/esm/constants/cssVariables.js +2 -1
  106. package/esm/constants/gridClasses.d.ts +20 -0
  107. package/esm/constants/gridClasses.js +1 -1
  108. package/esm/hooks/core/gridCoreSelector.d.ts +1 -1
  109. package/esm/hooks/core/gridPropsSelectors.d.ts +1 -1
  110. package/esm/hooks/features/clipboard/useGridClipboard.js +2 -2
  111. package/esm/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  112. package/esm/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  113. package/esm/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  114. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  115. package/esm/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  116. package/esm/hooks/features/columnMenu/useGridColumnMenu.js +4 -4
  117. package/esm/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  118. package/esm/hooks/features/columnResize/useGridColumnResize.js +7 -7
  119. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  120. package/esm/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  121. package/esm/hooks/features/columns/gridColumnsUtils.js +1 -1
  122. package/esm/hooks/features/columns/useGridColumnSpanning.js +2 -2
  123. package/esm/hooks/features/columns/useGridColumns.js +2 -3
  124. package/esm/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  125. package/esm/hooks/features/dataSource/useGridDataSource.js +1 -1
  126. package/esm/hooks/features/density/densitySelector.d.ts +2 -2
  127. package/esm/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  128. package/esm/hooks/features/dimensions/useGridDimensions.js +5 -5
  129. package/esm/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  130. package/esm/hooks/features/editing/useGridCellEditing.js +8 -8
  131. package/esm/hooks/features/editing/useGridRowEditing.js +9 -9
  132. package/esm/hooks/features/events/useGridEvents.js +18 -18
  133. package/esm/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  134. package/esm/hooks/features/filter/useGridFilter.js +7 -7
  135. package/esm/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  136. package/esm/hooks/features/focus/useGridFocus.js +10 -10
  137. package/esm/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  138. package/esm/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  139. package/esm/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  140. package/esm/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  141. package/esm/hooks/features/listView/useGridListView.d.ts +4 -4
  142. package/esm/hooks/features/listView/useGridListView.js +9 -9
  143. package/esm/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  144. package/esm/hooks/features/pagination/useGridPaginationModel.js +7 -7
  145. package/esm/hooks/features/pagination/useGridRowCount.js +2 -2
  146. package/esm/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  147. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  148. package/esm/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  149. package/esm/hooks/features/rowSelection/utils.d.ts +1 -1
  150. package/esm/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  151. package/esm/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  152. package/esm/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  153. package/esm/hooks/features/rows/gridRowsSelector.js +7 -0
  154. package/esm/hooks/features/rows/useGridParamsApi.js +2 -2
  155. package/esm/hooks/features/rows/useGridRowSpanning.js +6 -6
  156. package/esm/hooks/features/rows/useGridRows.js +5 -5
  157. package/esm/hooks/features/scroll/useGridScroll.d.ts +1 -1
  158. package/esm/hooks/features/scroll/useGridScroll.js +2 -2
  159. package/esm/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  160. package/esm/hooks/features/sorting/useGridSorting.js +6 -6
  161. package/esm/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  162. package/esm/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  163. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +19 -8
  164. package/esm/hooks/utils/index.d.ts +1 -1
  165. package/esm/hooks/utils/index.js +1 -1
  166. package/esm/hooks/utils/useGridAriaAttributes.js +6 -0
  167. package/esm/hooks/utils/{useGridApiEventHandler.d.ts → useGridEvent.d.ts} +2 -2
  168. package/{modern/hooks/utils/useGridApiEventHandler.js → esm/hooks/utils/useGridEvent.js} +3 -3
  169. package/esm/hooks/utils/useGridNativeEventListener.js +2 -2
  170. package/esm/hooks/utils/useGridVisibleRows.d.ts +4 -4
  171. package/esm/index.js +1 -1
  172. package/esm/locales/deDE.js +13 -13
  173. package/esm/material/augmentation.d.ts +74 -0
  174. package/esm/material/augmentation.js +1 -0
  175. package/esm/material/index.d.ts +1 -0
  176. package/esm/material/index.js +262 -141
  177. package/esm/material/variables.js +2 -0
  178. package/esm/models/colDef/gridColDef.d.ts +1 -1
  179. package/esm/models/colDef/index.d.ts +1 -1
  180. package/esm/models/gridBaseSlots.d.ts +25 -36
  181. package/esm/models/gridSlotsComponentsProps.d.ts +1 -19
  182. package/esm/models/props/DataGridProps.d.ts +20 -10
  183. package/esm/utils/utils.d.ts +0 -27
  184. package/esm/utils/utils.js +0 -122
  185. package/hooks/core/gridCoreSelector.d.ts +1 -1
  186. package/hooks/core/gridPropsSelectors.d.ts +1 -1
  187. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  188. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  189. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +2 -2
  190. package/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  191. package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  192. package/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  193. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  194. package/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  195. package/hooks/features/columnResize/useGridColumnResize.js +6 -6
  196. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  197. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  198. package/hooks/features/columns/gridColumnsUtils.js +1 -1
  199. package/hooks/features/columns/useGridColumnSpanning.js +2 -2
  200. package/hooks/features/columns/useGridColumns.js +2 -3
  201. package/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  202. package/hooks/features/dataSource/useGridDataSource.js +2 -2
  203. package/hooks/features/density/densitySelector.d.ts +2 -2
  204. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  205. package/hooks/features/dimensions/useGridDimensions.js +6 -6
  206. package/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  207. package/hooks/features/editing/useGridCellEditing.js +8 -8
  208. package/hooks/features/editing/useGridRowEditing.js +9 -9
  209. package/hooks/features/events/useGridEvents.js +18 -18
  210. package/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  211. package/hooks/features/filter/useGridFilter.js +9 -9
  212. package/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  213. package/hooks/features/focus/useGridFocus.js +10 -10
  214. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  215. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  216. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  217. package/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  218. package/hooks/features/listView/useGridListView.d.ts +4 -4
  219. package/hooks/features/listView/useGridListView.js +9 -9
  220. package/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  221. package/hooks/features/pagination/useGridPaginationModel.js +7 -7
  222. package/hooks/features/pagination/useGridRowCount.js +1 -1
  223. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  224. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  225. package/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  226. package/hooks/features/rowSelection/utils.d.ts +1 -1
  227. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  228. package/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  229. package/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  230. package/hooks/features/rows/gridRowsSelector.js +8 -1
  231. package/hooks/features/rows/useGridParamsApi.js +2 -2
  232. package/hooks/features/rows/useGridRowSpanning.js +6 -6
  233. package/hooks/features/rows/useGridRows.js +4 -4
  234. package/hooks/features/scroll/useGridScroll.d.ts +1 -1
  235. package/hooks/features/scroll/useGridScroll.js +2 -2
  236. package/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  237. package/hooks/features/sorting/useGridSorting.js +6 -6
  238. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  239. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  240. package/hooks/features/virtualization/useGridVirtualScroller.js +17 -6
  241. package/hooks/utils/index.d.ts +1 -1
  242. package/hooks/utils/index.js +8 -8
  243. package/hooks/utils/useGridAriaAttributes.js +6 -0
  244. package/{modern/hooks/utils/useGridApiEventHandler.d.ts → hooks/utils/useGridEvent.d.ts} +2 -2
  245. package/hooks/utils/{useGridApiEventHandler.js → useGridEvent.js} +5 -5
  246. package/hooks/utils/useGridNativeEventListener.js +2 -2
  247. package/hooks/utils/useGridVisibleRows.d.ts +4 -4
  248. package/index.js +1 -1
  249. package/locales/deDE.js +13 -13
  250. package/material/augmentation.d.ts +74 -0
  251. package/material/augmentation.js +5 -0
  252. package/material/index.d.ts +1 -0
  253. package/material/index.js +261 -141
  254. package/material/variables.js +2 -0
  255. package/models/colDef/gridColDef.d.ts +1 -1
  256. package/models/colDef/index.d.ts +1 -1
  257. package/models/gridBaseSlots.d.ts +25 -36
  258. package/models/gridSlotsComponentsProps.d.ts +1 -19
  259. package/models/props/DataGridProps.d.ts +20 -10
  260. package/modern/DataGrid/DataGrid.js +10 -2
  261. package/modern/DataGrid/useDataGridProps.js +1 -1
  262. package/modern/components/GridRow.js +4 -9
  263. package/modern/components/GridScrollArea.js +4 -4
  264. package/modern/components/GridShadowScrollArea.js +43 -35
  265. package/modern/components/GridSkeletonLoadingOverlay.js +2 -2
  266. package/modern/components/cell/GridActionsCellItem.d.ts +24 -13
  267. package/modern/components/cell/GridActionsCellItem.js +4 -3
  268. package/modern/components/cell/GridBooleanCell.d.ts +1 -2
  269. package/modern/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  270. package/modern/components/cell/GridEditSingleSelectCell.js +1 -1
  271. package/modern/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  272. package/modern/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  273. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -24
  274. package/modern/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  275. package/modern/components/containers/GridToolbarContainer.js +5 -3
  276. package/modern/components/export/ExportCsv.js +4 -129
  277. package/modern/components/export/ExportPrint.js +4 -129
  278. package/modern/components/filterPanel/FilterPanelTrigger.js +4 -129
  279. package/modern/components/panel/GridPanel.d.ts +2 -2
  280. package/modern/components/panel/GridPanel.js +1 -1
  281. package/modern/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  282. package/modern/components/quickFilter/QuickFilter.d.ts +26 -3
  283. package/modern/components/quickFilter/QuickFilter.js +101 -17
  284. package/modern/components/quickFilter/QuickFilterClear.js +13 -104
  285. package/modern/components/quickFilter/QuickFilterContext.d.ts +4 -1
  286. package/modern/components/quickFilter/QuickFilterControl.js +36 -12
  287. package/modern/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  288. package/modern/components/quickFilter/QuickFilterTrigger.js +79 -0
  289. package/modern/components/quickFilter/index.d.ts +2 -1
  290. package/modern/components/quickFilter/index.js +2 -1
  291. package/modern/components/toolbar/GridToolbar.js +4 -1
  292. package/modern/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  293. package/modern/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  294. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  295. package/modern/components/toolbar/GridToolbarExport.d.ts +3 -4
  296. package/modern/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  297. package/modern/components/toolbar/GridToolbarExportContainer.js +1 -1
  298. package/modern/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  299. package/modern/components/toolbar/GridToolbarFilterButton.js +1 -4
  300. package/modern/components/toolbar/GridToolbarQuickFilter.js +101 -44
  301. package/modern/components/toolbarV8/GridToolbar.d.ts +6 -1
  302. package/modern/components/toolbarV8/GridToolbar.js +83 -27
  303. package/modern/components/toolbarV8/Toolbar.d.ts +1 -1
  304. package/modern/components/toolbarV8/Toolbar.js +77 -22
  305. package/modern/components/toolbarV8/ToolbarButton.js +37 -114
  306. package/modern/components/toolbarV8/ToolbarContext.d.ts +4 -2
  307. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -1
  308. package/modern/components/virtualization/GridVirtualScroller.js +2 -2
  309. package/modern/constants/cssVariables.d.ts +3 -0
  310. package/modern/constants/cssVariables.js +2 -1
  311. package/modern/constants/gridClasses.d.ts +20 -0
  312. package/modern/constants/gridClasses.js +1 -1
  313. package/modern/hooks/core/gridCoreSelector.d.ts +1 -1
  314. package/modern/hooks/core/gridPropsSelectors.d.ts +1 -1
  315. package/modern/hooks/features/clipboard/useGridClipboard.js +2 -2
  316. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  317. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  318. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  319. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  320. package/modern/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  321. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +4 -4
  322. package/modern/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  323. package/modern/hooks/features/columnResize/useGridColumnResize.js +7 -7
  324. package/modern/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  325. package/modern/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  326. package/modern/hooks/features/columns/gridColumnsUtils.js +1 -1
  327. package/modern/hooks/features/columns/useGridColumnSpanning.js +2 -2
  328. package/modern/hooks/features/columns/useGridColumns.js +2 -3
  329. package/modern/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  330. package/modern/hooks/features/dataSource/useGridDataSource.js +1 -1
  331. package/modern/hooks/features/density/densitySelector.d.ts +2 -2
  332. package/modern/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  333. package/modern/hooks/features/dimensions/useGridDimensions.js +5 -5
  334. package/modern/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  335. package/modern/hooks/features/editing/useGridCellEditing.js +8 -8
  336. package/modern/hooks/features/editing/useGridRowEditing.js +9 -9
  337. package/modern/hooks/features/events/useGridEvents.js +18 -18
  338. package/modern/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  339. package/modern/hooks/features/filter/useGridFilter.js +7 -7
  340. package/modern/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  341. package/modern/hooks/features/focus/useGridFocus.js +10 -10
  342. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  343. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  344. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  345. package/modern/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  346. package/modern/hooks/features/listView/useGridListView.d.ts +4 -4
  347. package/modern/hooks/features/listView/useGridListView.js +9 -9
  348. package/modern/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  349. package/modern/hooks/features/pagination/useGridPaginationModel.js +7 -7
  350. package/modern/hooks/features/pagination/useGridRowCount.js +2 -2
  351. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  352. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  353. package/modern/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  354. package/modern/hooks/features/rowSelection/utils.d.ts +1 -1
  355. package/modern/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  356. package/modern/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  357. package/modern/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  358. package/modern/hooks/features/rows/gridRowsSelector.js +7 -0
  359. package/modern/hooks/features/rows/useGridParamsApi.js +2 -2
  360. package/modern/hooks/features/rows/useGridRowSpanning.js +6 -6
  361. package/modern/hooks/features/rows/useGridRows.js +5 -5
  362. package/modern/hooks/features/scroll/useGridScroll.d.ts +1 -1
  363. package/modern/hooks/features/scroll/useGridScroll.js +2 -2
  364. package/modern/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  365. package/modern/hooks/features/sorting/useGridSorting.js +6 -6
  366. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  367. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  368. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +19 -8
  369. package/modern/hooks/utils/index.d.ts +1 -1
  370. package/modern/hooks/utils/index.js +1 -1
  371. package/modern/hooks/utils/useGridAriaAttributes.js +6 -0
  372. package/{hooks/utils/useGridApiEventHandler.d.ts → modern/hooks/utils/useGridEvent.d.ts} +2 -2
  373. package/{esm/hooks/utils/useGridApiEventHandler.js → modern/hooks/utils/useGridEvent.js} +3 -3
  374. package/modern/hooks/utils/useGridNativeEventListener.js +2 -2
  375. package/modern/hooks/utils/useGridVisibleRows.d.ts +4 -4
  376. package/modern/index.js +1 -1
  377. package/modern/locales/deDE.js +13 -13
  378. package/modern/material/augmentation.d.ts +74 -0
  379. package/modern/material/augmentation.js +1 -0
  380. package/modern/material/index.d.ts +1 -0
  381. package/modern/material/index.js +262 -141
  382. package/modern/material/variables.js +2 -0
  383. package/modern/models/colDef/gridColDef.d.ts +1 -1
  384. package/modern/models/colDef/index.d.ts +1 -1
  385. package/modern/models/gridBaseSlots.d.ts +25 -36
  386. package/modern/models/gridSlotsComponentsProps.d.ts +1 -19
  387. package/modern/models/props/DataGridProps.d.ts +20 -10
  388. package/modern/utils/utils.d.ts +0 -27
  389. package/modern/utils/utils.js +0 -122
  390. package/package.json +6 -6
  391. package/tsconfig.build.tsbuildinfo +1 -1
  392. package/utils/utils.d.ts +0 -27
  393. package/utils/utils.js +0 -123
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _styles = require("@mui/material/styles");
13
+ var _system = require("@mui/system");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _clsx = _interopRequireDefault(require("clsx"));
16
16
  var _forwardRef = require("@mui/x-internals/forwardRef");
@@ -30,15 +30,18 @@ const useUtilityClasses = ownerState => {
30
30
  };
31
31
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
32
32
  };
33
- const ToolbarRoot = (0, _styles.styled)('div', {
33
+ const ToolbarRoot = (0, _system.styled)('div', {
34
34
  name: 'MuiDataGrid',
35
35
  slot: 'Toolbar'
36
36
  })({
37
37
  flex: 0,
38
38
  display: 'flex',
39
39
  alignItems: 'center',
40
+ justifyContent: 'end',
40
41
  gap: _cssVariables.vars.spacing(0.25),
41
42
  padding: _cssVariables.vars.spacing(0.75),
43
+ minHeight: 52,
44
+ boxSizing: 'border-box',
42
45
  borderBottom: `1px solid ${_cssVariables.vars.colors.border.base}`
43
46
  });
44
47
 
@@ -64,47 +67,99 @@ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(p
64
67
  const classes = useUtilityClasses(rootProps);
65
68
  const [focusableItemId, setFocusableItemId] = React.useState(null);
66
69
  const [items, setItems] = React.useState([]);
67
- const registerItem = React.useCallback(item => {
68
- setItems(prevItems => [...prevItems, item]);
70
+ const registerItem = React.useCallback((id, itemRef) => {
71
+ setItems(prevItems => [...prevItems, {
72
+ id,
73
+ ref: itemRef
74
+ }]);
69
75
  }, []);
70
- const unregisterItem = React.useCallback(item => {
71
- setItems(prevItems => prevItems.filter(i => i !== item));
72
- if (focusableItemId === item) {
76
+ const unregisterItem = React.useCallback(id => {
77
+ setItems(prevItems => prevItems.filter(i => i.id !== id));
78
+ if (focusableItemId === id) {
73
79
  setFocusableItemId(null);
74
80
  }
75
81
  }, [focusableItemId]);
82
+ const findEnabledItem = React.useCallback((startIndex, step, wrap = true) => {
83
+ let index = startIndex;
84
+ const itemCount = items.length;
85
+
86
+ // Look for enabled items in the specified direction
87
+ for (let i = 0; i < itemCount; i += 1) {
88
+ index += step;
89
+
90
+ // Handle wrapping around the ends
91
+ if (index >= itemCount) {
92
+ if (!wrap) {
93
+ return -1;
94
+ }
95
+ index = 0;
96
+ } else if (index < 0) {
97
+ if (!wrap) {
98
+ return -1;
99
+ }
100
+ index = itemCount - 1;
101
+ }
102
+
103
+ // Return if we found an enabled item
104
+ if (!items[index].ref.current?.disabled && items[index].ref.current?.ariaDisabled !== 'true') {
105
+ return index;
106
+ }
107
+ }
108
+
109
+ // If we've checked all items and found none enabled
110
+ return -1;
111
+ }, [items]);
76
112
  const onItemKeyDown = React.useCallback(event => {
77
113
  if (!focusableItemId) {
78
114
  return;
79
115
  }
116
+ const currentIndex = items.findIndex(item => item.id === focusableItemId);
117
+ let newIndex = -1;
80
118
  if (event.key === 'ArrowRight') {
81
119
  event.preventDefault();
82
- const nextIndex = items.indexOf(focusableItemId) + 1;
83
- setFocusableItemId(items[nextIndex < items.length ? nextIndex : 0]);
84
- }
85
- if (event.key === 'ArrowLeft') {
120
+ newIndex = findEnabledItem(currentIndex, 1);
121
+ } else if (event.key === 'ArrowLeft') {
86
122
  event.preventDefault();
87
- const prevIndex = items.indexOf(focusableItemId) - 1;
88
- setFocusableItemId(items[prevIndex < 0 ? items.length - 1 : prevIndex]);
89
- }
90
- if (event.key === 'Home') {
123
+ newIndex = findEnabledItem(currentIndex, -1);
124
+ } else if (event.key === 'Home') {
91
125
  event.preventDefault();
92
- setFocusableItemId(items[0]);
93
- }
94
- if (event.key === 'End') {
126
+ newIndex = findEnabledItem(-1, 1, false);
127
+ } else if (event.key === 'End') {
95
128
  event.preventDefault();
96
- setFocusableItemId(items[items.length - 1]);
129
+ newIndex = findEnabledItem(items.length, -1, false);
130
+ }
131
+ if (newIndex >= 0 && newIndex < items.length) {
132
+ const item = items[newIndex];
133
+ setFocusableItemId(item.id);
134
+ item.ref.current?.focus();
135
+ }
136
+ }, [items, focusableItemId, findEnabledItem]);
137
+ const onItemFocus = React.useCallback(id => {
138
+ if (focusableItemId !== id) {
139
+ setFocusableItemId(id);
140
+ }
141
+ }, [focusableItemId]);
142
+ const onItemDisabled = React.useCallback(id => {
143
+ const currentIndex = items.findIndex(item => item.id === id);
144
+ const newIndex = findEnabledItem(currentIndex, 1);
145
+ if (newIndex >= 0 && newIndex < items.length) {
146
+ const item = items[newIndex];
147
+ setFocusableItemId(item.id);
148
+ item.ref.current?.focus();
97
149
  }
98
- }, [items, focusableItemId]);
150
+ }, [items, findEnabledItem]);
99
151
  const contextValue = React.useMemo(() => ({
100
152
  focusableItemId,
101
153
  registerItem,
102
154
  unregisterItem,
103
- onItemKeyDown
104
- }), [registerItem, unregisterItem, focusableItemId, onItemKeyDown]);
155
+ onItemKeyDown,
156
+ onItemFocus,
157
+ onItemDisabled
158
+ }), [focusableItemId, registerItem, unregisterItem, onItemKeyDown, onItemFocus, onItemDisabled]);
105
159
  const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(ToolbarRoot, render, (0, _extends2.default)({
106
160
  role: 'toolbar',
107
161
  'aria-orientation': 'horizontal',
162
+ 'aria-label': rootProps.label || undefined,
108
163
  className: (0, _clsx.default)(classes.root, className),
109
164
  ownerState: rootProps
110
165
  }, other, {
@@ -112,7 +167,7 @@ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(p
112
167
  }));
113
168
  React.useEffect(() => {
114
169
  if (items.length > 0) {
115
- setFocusableItemId(items[0]);
170
+ setFocusableItemId(items[0].id);
116
171
  }
117
172
  }, [items]);
118
173
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarContext.ToolbarContext.Provider, {
@@ -17,7 +17,7 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
17
  var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
18
18
  var _ToolbarContext = require("./ToolbarContext");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["render"];
20
+ const _excluded = ["render", "onKeyDown", "onFocus", "disabled", "aria-disabled"];
21
21
  /**
22
22
  * A button for performing actions from the toolbar.
23
23
  * It renders the `baseIconButton` slot.
@@ -32,7 +32,11 @@ const _excluded = ["render"];
32
32
  */
33
33
  const ToolbarButton = exports.ToolbarButton = (0, _forwardRef.forwardRef)(function ToolbarButton(props, ref) {
34
34
  const {
35
- render
35
+ render,
36
+ onKeyDown,
37
+ onFocus,
38
+ disabled,
39
+ 'aria-disabled': ariaDisabled
36
40
  } = props,
37
41
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
38
42
  const id = (0, _useId.default)();
@@ -43,28 +47,44 @@ const ToolbarButton = exports.ToolbarButton = (0, _forwardRef.forwardRef)(functi
43
47
  focusableItemId,
44
48
  registerItem,
45
49
  unregisterItem,
46
- onItemKeyDown
50
+ onItemKeyDown,
51
+ onItemFocus,
52
+ onItemDisabled
47
53
  } = (0, _ToolbarContext.useToolbarContext)();
54
+ const handleKeyDown = event => {
55
+ onItemKeyDown(event);
56
+ onKeyDown?.(event);
57
+ };
58
+ const handleFocus = event => {
59
+ onItemFocus(id);
60
+ onFocus?.(event);
61
+ };
48
62
  React.useEffect(() => {
49
- registerItem(id);
63
+ registerItem(id, buttonRef);
50
64
  return () => unregisterItem(id);
51
65
  // eslint-disable-next-line react-hooks/exhaustive-deps
52
66
  }, []);
53
- const isInitialFocus = React.useRef(true);
67
+ const previousDisabled = React.useRef(disabled);
54
68
  React.useEffect(() => {
55
- // Do not focus the item on initial render
56
- if (focusableItemId && isInitialFocus.current) {
57
- isInitialFocus.current = false;
58
- return;
69
+ if (previousDisabled.current !== disabled && disabled === true) {
70
+ onItemDisabled(id, disabled);
59
71
  }
60
- if (focusableItemId === id) {
61
- buttonRef.current?.focus();
72
+ previousDisabled.current = disabled;
73
+ }, [disabled, id, onItemDisabled]);
74
+ const previousAriaDisabled = React.useRef(ariaDisabled);
75
+ React.useEffect(() => {
76
+ if (previousAriaDisabled.current !== ariaDisabled && ariaDisabled === true) {
77
+ onItemDisabled(id, true);
62
78
  }
63
- }, [focusableItemId, id]);
79
+ previousAriaDisabled.current = ariaDisabled;
80
+ }, [ariaDisabled, id, onItemDisabled]);
64
81
  const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(rootProps.slots.baseIconButton, render, (0, _extends2.default)({}, rootProps.slotProps?.baseIconButton, {
65
- tabIndex: focusableItemId === id ? 0 : -1,
66
- onKeyDown: onItemKeyDown
82
+ tabIndex: focusableItemId === id ? 0 : -1
67
83
  }, other, {
84
+ disabled,
85
+ 'aria-disabled': ariaDisabled,
86
+ onKeyDown: handleKeyDown,
87
+ onFocus: handleFocus,
68
88
  ref: handleRef
69
89
  }));
70
90
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
@@ -76,117 +96,20 @@ process.env.NODE_ENV !== "production" ? ToolbarButton.propTypes = {
76
96
  // | These PropTypes are generated from the TypeScript type definitions |
77
97
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
78
98
  // ----------------------------------------------------------------------
79
- /**
80
- * A ref for imperative actions.
81
- * It currently only supports `focusVisible()` action.
82
- */
83
- action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
84
- current: _propTypes.default.shape({
85
- focusVisible: _propTypes.default.func.isRequired
86
- })
87
- })]),
88
- /**
89
- * If `true`, the ripples are centered.
90
- * They won't start at the cursor interaction position.
91
- * @default false
92
- */
93
- centerRipple: _propTypes.default.bool,
94
99
  className: _propTypes.default.string,
95
- /**
96
- * The color of the component.
97
- * It supports both default and custom theme colors, which can be added as shown in the
98
- * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
99
- */
100
100
  color: _propTypes.default.oneOf(['default', 'inherit', 'primary']),
101
- component: _propTypes.default.elementType,
102
- /**
103
- * If `true`, the component is disabled.
104
- */
105
101
  disabled: _propTypes.default.bool,
106
- /**
107
- * If `true`, the keyboard focus ripple is disabled.
108
- * @default false
109
- */
110
- disableFocusRipple: _propTypes.default.bool,
111
- /**
112
- * If `true`, the ripple effect is disabled.
113
- *
114
- * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
115
- * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
116
- * @default false
117
- */
118
- disableRipple: _propTypes.default.bool,
119
- /**
120
- * If `true`, the touch ripple effect is disabled.
121
- * @default false
122
- */
123
- disableTouchRipple: _propTypes.default.bool,
124
- /**
125
- * If given, uses a negative margin to counteract the padding on one
126
- * side (this is often helpful for aligning the left or right
127
- * side of the icon with content above or below, without ruining the border
128
- * size and shape).
129
- */
130
102
  edge: _propTypes.default.oneOf(['end', 'start', false]),
131
- /**
132
- * If `true`, the base button will have a keyboard focus ripple.
133
- * @default false
134
- */
135
- focusRipple: _propTypes.default.bool,
136
- /**
137
- * This prop can help identify which element has keyboard focus.
138
- * The class name will be applied when the element gains the focus through keyboard interaction.
139
- * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
140
- * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
141
- * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
142
- * if needed.
143
- */
144
- focusVisibleClassName: _propTypes.default.string,
103
+ id: _propTypes.default.string,
145
104
  label: _propTypes.default.string,
146
- /**
147
- * The component used to render a link when the `href` prop is provided.
148
- * @default 'a'
149
- */
150
- LinkComponent: _propTypes.default.elementType,
151
- /**
152
- * If `true`, the loading indicator is visible and the button is disabled.
153
- * If `true | false`, the loading wrapper is always rendered before the children to prevent [Google Translation Crash](https://github.com/mui/material-ui/issues/27853).
154
- * @default null
155
- */
156
- loading: _propTypes.default.bool,
157
- /**
158
- * Element placed before the children if the button is in loading state.
159
- * The node should contain an element with `role="progressbar"` with an accessible name.
160
- * By default, it renders a `CircularProgress` that is labeled by the button itself.
161
- * @default <CircularProgress color="inherit" size={16} />
162
- */
163
- loadingIndicator: _propTypes.default.node,
164
- /**
165
- * Callback fired when the component is focused with a keyboard.
166
- * We trigger a `onFocus` callback too.
167
- */
168
- onFocusVisible: _propTypes.default.func,
169
105
  /**
170
106
  * A function to customize rendering of the component.
171
107
  */
172
108
  render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
173
- /**
174
- * The size of the component.
175
- * `small` is equivalent to the dense button styling.
176
- */
109
+ role: _propTypes.default.string,
177
110
  size: _propTypes.default.oneOf(['large', 'medium', 'small']),
178
111
  style: _propTypes.default.object,
179
- /**
180
- * The system prop that allows defining system overrides as well as additional CSS styles.
181
- */
182
- sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
183
112
  tabIndex: _propTypes.default.number,
184
- /**
185
- * Props applied to the `TouchRipple` element.
186
- */
187
- TouchRippleProps: _propTypes.default.object,
188
- /**
189
- * A ref that points to the `TouchRipple` element.
190
- */
113
+ title: _propTypes.default.string,
191
114
  touchRippleRef: _propTypes.default.any
192
115
  } : void 0;
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
2
  export interface ToolbarContextValue {
3
3
  focusableItemId: string | null;
4
- registerItem: (itemId: string) => void;
5
- unregisterItem: (itemId: string) => void;
4
+ registerItem: (id: string, ref: React.RefObject<HTMLButtonElement | null>) => void;
5
+ unregisterItem: (id: string) => void;
6
6
  onItemKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
7
+ onItemFocus: (id: string) => void;
8
+ onItemDisabled: (id: string, disabled: boolean) => void;
7
9
  }
8
10
  export declare const ToolbarContext: React.Context<ToolbarContextValue | undefined>;
9
11
  export declare function useToolbarContext(): ToolbarContextValue;
@@ -135,7 +135,7 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
135
135
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
136
136
  ref: (0, _useForkRef.default)(ref, scrollbarRef),
137
137
  className: classes.root,
138
- style: props.position === 'vertical' && rootProps.unstable_listView ? {
138
+ style: props.position === 'vertical' && rootProps.listView ? {
139
139
  height: '100%',
140
140
  top: 0
141
141
  } : undefined,
@@ -110,7 +110,7 @@ function GridVirtualScroller(props) {
110
110
  }, getScrollerProps(), {
111
111
  ownerState: ownerState,
112
112
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, {
113
- children: [!rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
113
+ children: [!rootProps.listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
114
114
  position: "top",
115
115
  virtualScroller: virtualScroller
116
116
  })]
@@ -128,7 +128,7 @@ function GridVirtualScroller(props) {
128
128
  virtualScroller: virtualScroller
129
129
  })
130
130
  })]
131
- })), hasScrollX && !rootProps.unstable_listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
131
+ })), hasScrollX && !rootProps.listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
132
132
  position: "horizontal"
133
133
  }, getScrollbarHorizontalProps())), hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
134
134
  position: "vertical"
@@ -43,6 +43,7 @@ declare const keys: {
43
43
  readonly font: {
44
44
  readonly body: "--DataGrid-t-typography-font-body";
45
45
  readonly small: "--DataGrid-t-typography-font-small";
46
+ readonly large: "--DataGrid-t-typography-font-large";
46
47
  };
47
48
  readonly fontFamily: {
48
49
  readonly base: "--DataGrid-t-typography-font-family-base";
@@ -134,6 +135,7 @@ export declare const vars: {
134
135
  readonly font: {
135
136
  readonly body: "--DataGrid-t-typography-font-body";
136
137
  readonly small: "--DataGrid-t-typography-font-small";
138
+ readonly large: "--DataGrid-t-typography-font-large";
137
139
  };
138
140
  readonly fontFamily: {
139
141
  readonly base: "--DataGrid-t-typography-font-family-base";
@@ -222,6 +224,7 @@ export declare const vars: {
222
224
  readonly font: {
223
225
  readonly body: "--DataGrid-t-typography-font-body";
224
226
  readonly small: "--DataGrid-t-typography-font-small";
227
+ readonly large: "--DataGrid-t-typography-font-large";
225
228
  };
226
229
  readonly fontFamily: {
227
230
  readonly base: "--DataGrid-t-typography-font-family-base";
@@ -73,7 +73,8 @@ const keys = {
73
73
  typography: {
74
74
  font: {
75
75
  body: '--DataGrid-t-typography-font-body',
76
- small: '--DataGrid-t-typography-font-small'
76
+ small: '--DataGrid-t-typography-font-small',
77
+ large: '--DataGrid-t-typography-font-large'
77
78
  },
78
79
  fontFamily: {
79
80
  base: '--DataGrid-t-typography-font-family-base'
@@ -598,6 +598,14 @@ export interface GridClasses {
598
598
  * Styles applied to the toolbar root element.
599
599
  */
600
600
  toolbar: string;
601
+ /**
602
+ * Styles applied to the toolbar label element.
603
+ */
604
+ toolbarLabel: string;
605
+ /**
606
+ * Styles applied to the toolbar divider element.
607
+ */
608
+ toolbarDivider: string;
601
609
  /**
602
610
  * Styles applied to the shadow scroll area element.
603
611
  * @ignore - do not document.
@@ -631,6 +639,18 @@ export interface GridClasses {
631
639
  * Styles applied to the toolbar prompt control send button element.
632
640
  */
633
641
  toolbarPromptControlSendButton: string;
642
+ /**
643
+ * Styles applied to the toolbar quick filter root element.
644
+ */
645
+ toolbarQuickFilter: string;
646
+ /**
647
+ * Styles applied to the toolbar quick filter trigger element.
648
+ */
649
+ toolbarQuickFilterTrigger: string;
650
+ /**
651
+ * Styles applied to the toolbar quick filter control element.
652
+ */
653
+ toolbarQuickFilterControl: string;
634
654
  /**
635
655
  * Styles applied the grid if `showColumnVerticalBorder={true}`.
636
656
  */
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getDataGridUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
11
11
  }
12
- const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'shadowScrollArea', 'toolbarContainer', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom']);
12
+ const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'shadowScrollArea', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom']);
@@ -59,11 +59,11 @@ DataGridRaw.propTypes = {
59
59
  current: PropTypes.object
60
60
  }),
61
61
  /**
62
- * The label of the Data Grid.
62
+ * The `aria-label` of the Data Grid.
63
63
  */
64
64
  'aria-label': PropTypes.string,
65
65
  /**
66
- * The id of the element containing a label for the Data Grid.
66
+ * The `id` of the element containing a label for the Data Grid.
67
67
  */
68
68
  'aria-labelledby': PropTypes.string,
69
69
  /**
@@ -110,6 +110,7 @@ DataGridRaw.propTypes = {
110
110
  * Override or extend the styles applied to the component.
111
111
  */
112
112
  classes: PropTypes.object,
113
+ className: PropTypes.string,
113
114
  /**
114
115
  * The character used to separate cell values when copying to the clipboard.
115
116
  * @default '\t'
@@ -359,6 +360,12 @@ DataGridRaw.propTypes = {
359
360
  * @default false
360
361
  */
361
362
  keepNonExistentRowsSelected: PropTypes.bool,
363
+ /**
364
+ * The label of the Data Grid.
365
+ * If the `showToolbar` prop is `true`, the label will be displayed in the toolbar and applied to the `aria-label` attribute of the grid.
366
+ * If the `showToolbar` prop is `false`, the label will not be visible but will be applied to the `aria-label` attribute of the grid.
367
+ */
368
+ label: PropTypes.string,
362
369
  /**
363
370
  * If `true`, a loading overlay is displayed.
364
371
  * @default false
@@ -769,6 +776,7 @@ DataGridRaw.propTypes = {
769
776
  field: PropTypes.string.isRequired,
770
777
  sort: PropTypes.oneOf(['asc', 'desc'])
771
778
  })),
779
+ style: PropTypes.object,
772
780
  /**
773
781
  * The system prop that allows defining system overrides as well as additional CSS styles.
774
782
  */
@@ -15,7 +15,7 @@ const DATA_GRID_FORCED_PROPS = {
15
15
  disableColumnReorder: true,
16
16
  keepColumnPositionIfDraggedOutside: false,
17
17
  signature: 'DataGrid',
18
- unstable_listView: false
18
+ listView: false
19
19
  };
20
20
  const getDataGridForcedProps = themedProps => _extends({}, DATA_GRID_FORCED_PROPS, themedProps.dataSource ? {
21
21
  filterMode: 'server',
@@ -23,7 +23,7 @@ import { GRID_CHECKBOX_SELECTION_COL_DEF } from "../colDef/gridCheckboxSelection
23
23
  import { GRID_ACTIONS_COLUMN_TYPE } from "../colDef/gridActionsColDef.js";
24
24
  import { GRID_DETAIL_PANEL_TOGGLE_FIELD, PinnedColumnPosition } from "../internals/constants.js";
25
25
  import { gridSortModelSelector } from "../hooks/features/sorting/gridSortingSelector.js";
26
- import { gridRowMaximumTreeDepthSelector } from "../hooks/features/rows/gridRowsSelector.js";
26
+ import { gridRowMaximumTreeDepthSelector, gridRowNodeSelector } from "../hooks/features/rows/gridRowsSelector.js";
27
27
  import { gridEditRowsStateSelector, gridRowIsEditingSelector } from "../hooks/features/editing/gridEditingSelectors.js";
28
28
  import { GridScrollbarFillerCell as ScrollbarFiller } from "./GridScrollbarFillerCell.js";
29
29
  import { getPinnedCellOffset } from "../internals/utils/getPinnedCellOffset.js";
@@ -79,7 +79,7 @@ const GridRow = forwardRef(function GridRow(props, refProp) {
79
79
  const rowReordering = rootProps.rowReordering;
80
80
  const isRowReorderingEnabled = useGridSelector(apiRef, isRowReorderingEnabledSelector, rowReordering);
81
81
  const handleRef = useForkRef(ref, refProp);
82
- const rowNode = apiRef.current.getRowNode(rowId);
82
+ const rowNode = gridRowNodeSelector(apiRef, rowId);
83
83
  const editing = useGridSelector(apiRef, gridRowIsEditingSelector, {
84
84
  rowId,
85
85
  editMode: rootProps.editMode
@@ -192,7 +192,7 @@ const GridRow = forwardRef(function GridRow(props, refProp) {
192
192
  return rowStyle;
193
193
  }, [isNotVisible, rowHeight, styleProp, heightEntry, rootProps.rowSpacingType]);
194
194
  const rowClassNames = apiRef.current.unstable_applyPipeProcessors('rowClassName', [], rowId);
195
- const ariaAttributes = rowNode ? getRowAriaAttributes(rowNode, index) : undefined;
195
+ const ariaAttributes = getRowAriaAttributes(rowNode, index);
196
196
  if (typeof rootProps.getRowClassName === 'function') {
197
197
  const indexRelativeToCurrentPage = index - (currentPage.range?.firstRowIndex || 0);
198
198
  const rowParams = _extends({}, apiRef.current.getRowParams(rowId), {
@@ -202,11 +202,6 @@ const GridRow = forwardRef(function GridRow(props, refProp) {
202
202
  });
203
203
  rowClassNames.push(rootProps.getRowClassName(rowParams));
204
204
  }
205
-
206
- /* Start of rendering */
207
- if (!rowNode) {
208
- return null;
209
- }
210
205
  const getCell = (column, indexInSection, indexRelativeToAllColumns, sectionLength, pinnedPosition = PinnedColumnPosition.NONE) => {
211
206
  const cellColSpanInfo = apiRef.current.unstable_getCellColSpanInfo(rowId, indexRelativeToAllColumns);
212
207
  if (cellColSpanInfo?.spannedByColSpan) {
@@ -215,7 +210,7 @@ const GridRow = forwardRef(function GridRow(props, refProp) {
215
210
  const width = cellColSpanInfo?.cellProps.width ?? column.computedWidth;
216
211
  const colSpan = cellColSpanInfo?.cellProps.colSpan ?? 1;
217
212
  const pinnedOffset = getPinnedCellOffset(pinnedPosition, column.computedWidth, indexRelativeToAllColumns, columnPositions, columnsTotalWidth, scrollbarWidth);
218
- if (rowNode?.type === 'skeletonRow') {
213
+ if (rowNode.type === 'skeletonRow') {
219
214
  return /*#__PURE__*/_jsx(slots.skeletonCell, {
220
215
  type: column.type,
221
216
  width: width,
@@ -10,7 +10,7 @@ import { fastMemo } from '@mui/x-internals/fastMemo';
10
10
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
11
11
  import { getDataGridUtilityClass, gridClasses } from "../constants/index.js";
12
12
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
13
- import { useGridApiEventHandler } from "../hooks/utils/useGridApiEventHandler.js";
13
+ import { useGridEvent } from "../hooks/utils/useGridEvent.js";
14
14
  import { useGridSelector } from "../hooks/utils/useGridSelector.js";
15
15
  import { gridDimensionsSelector, gridColumnsTotalWidthSelector } from "../hooks/features/dimensions/gridDimensionsSelectors.js";
16
16
  import { gridDensityFactorSelector } from "../hooks/features/density/densitySelector.js";
@@ -63,8 +63,8 @@ const offsetSelector = createSelector(gridDimensionsSelector, (dimensions, direc
63
63
  function GridScrollAreaWrapper(props) {
64
64
  const apiRef = useGridApiContext();
65
65
  const [dragging, setDragging] = React.useState(false);
66
- useGridApiEventHandler(apiRef, 'columnHeaderDragStart', () => setDragging(true));
67
- useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', () => setDragging(false));
66
+ useGridEvent(apiRef, 'columnHeaderDragStart', () => setDragging(true));
67
+ useGridEvent(apiRef, 'columnHeaderDragEnd', () => setDragging(false));
68
68
  if (!dragging) {
69
69
  return null;
70
70
  }
@@ -136,7 +136,7 @@ function GridScrollAreaContent(props) {
136
136
  });
137
137
  });
138
138
  });
139
- useGridApiEventHandler(apiRef, 'scrollPositionChange', handleScrolling);
139
+ useGridEvent(apiRef, 'scrollPositionChange', handleScrolling);
140
140
  if (!canScrollMore) {
141
141
  return null;
142
142
  }