@mui/x-data-grid 8.0.0-alpha.1 → 8.0.0-alpha.11

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 (801) hide show
  1. package/CHANGELOG.md +2007 -230
  2. package/DataGrid/DataGrid.js +20 -38
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +3 -3
  5. package/DataGrid/useDataGridProps.js +3 -3
  6. package/README.md +1 -1
  7. package/colDef/gridDateOperators.d.ts +2 -1
  8. package/colDef/gridNumericOperators.d.ts +4 -1
  9. package/components/GridApiContext.js +2 -0
  10. package/components/GridColumnHeaders.d.ts +1 -1
  11. package/components/GridColumnHeaders.js +4 -4
  12. package/components/GridConfigurationContext.js +2 -0
  13. package/components/GridFooter.d.ts +2 -1
  14. package/components/GridFooter.js +4 -4
  15. package/components/GridHeaders.js +2 -2
  16. package/components/GridLoadingOverlay.d.ts +1 -1
  17. package/components/GridLoadingOverlay.js +10 -8
  18. package/components/GridNoResultsOverlay.d.ts +2 -1
  19. package/components/GridNoResultsOverlay.js +4 -4
  20. package/components/GridNoRowsOverlay.d.ts +2 -1
  21. package/components/GridNoRowsOverlay.js +4 -4
  22. package/components/GridPagination.d.ts +1 -1
  23. package/components/GridPagination.js +7 -4
  24. package/components/GridRow.d.ts +6 -11
  25. package/components/GridRow.js +60 -88
  26. package/components/GridRowCount.d.ts +1 -1
  27. package/components/GridRowCount.js +3 -2
  28. package/components/GridScrollArea.d.ts +5 -2
  29. package/components/GridScrollArea.js +33 -24
  30. package/components/GridSelectedRowCount.d.ts +4 -1
  31. package/components/GridSelectedRowCount.js +3 -2
  32. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  33. package/components/GridSkeletonLoadingOverlay.js +23 -21
  34. package/components/base/GridOverlays.d.ts +4 -3
  35. package/components/base/GridOverlays.js +2 -24
  36. package/components/base/index.d.ts +0 -1
  37. package/components/base/index.js +1 -2
  38. package/components/cell/GridActionsCell.js +8 -1
  39. package/components/cell/GridActionsCellItem.d.ts +17 -10
  40. package/components/cell/GridActionsCellItem.js +9 -8
  41. package/components/cell/GridCell.d.ts +19 -23
  42. package/components/cell/GridCell.js +49 -92
  43. package/components/cell/GridEditDateCell.js +1 -1
  44. package/components/cell/GridEditInputCell.d.ts +1 -1
  45. package/components/cell/GridEditInputCell.js +73 -4
  46. package/components/cell/GridEditSingleSelectCell.js +2 -2
  47. package/components/cell/GridSkeletonCell.js +1 -2
  48. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  49. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  50. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  51. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  52. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  53. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  54. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  55. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  56. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  57. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  58. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  59. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  60. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  61. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  62. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  63. package/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  64. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  65. package/components/columnSelection/GridHeaderCheckbox.js +17 -9
  66. package/components/columnsManagement/GridColumnsManagement.d.ts +1 -1
  67. package/components/columnsManagement/GridColumnsManagement.js +50 -27
  68. package/components/containers/GridFooterContainer.d.ts +1 -1
  69. package/components/containers/GridFooterContainer.js +5 -3
  70. package/components/containers/GridOverlay.d.ts +1 -1
  71. package/components/containers/GridOverlay.js +5 -3
  72. package/components/containers/GridRoot.d.ts +2 -2
  73. package/components/containers/GridRoot.js +29 -17
  74. package/components/containers/GridRootStyles.js +163 -53
  75. package/components/containers/GridToolbarContainer.d.ts +1 -1
  76. package/components/containers/GridToolbarContainer.js +3 -2
  77. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  78. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  79. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  80. package/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  81. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  82. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  83. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  84. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  85. package/components/panel/GridColumnsPanel.js +1 -2
  86. package/components/panel/GridPanel.d.ts +2 -2
  87. package/components/panel/GridPanel.js +5 -3
  88. package/components/panel/GridPanelContent.js +7 -3
  89. package/components/panel/GridPanelFooter.d.ts +1 -1
  90. package/components/panel/GridPanelFooter.js +4 -3
  91. package/components/panel/GridPanelWrapper.d.ts +1 -1
  92. package/components/panel/GridPanelWrapper.js +5 -3
  93. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  94. package/components/panel/filterPanel/GridFilterForm.js +22 -18
  95. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +4 -11
  96. package/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  97. package/components/panel/filterPanel/GridFilterInputDate.d.ts +3 -9
  98. package/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  99. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +3 -3
  100. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  101. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +3 -3
  102. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  103. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +3 -9
  104. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  105. package/components/panel/filterPanel/GridFilterInputValue.d.ts +3 -9
  106. package/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  107. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  108. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  109. package/components/panel/filterPanel/index.d.ts +2 -2
  110. package/components/panel/filterPanel/index.js +1 -2
  111. package/components/toolbar/GridToolbar.d.ts +1 -1
  112. package/components/toolbar/GridToolbar.js +11 -5
  113. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  114. package/components/toolbar/GridToolbarColumnsButton.js +12 -6
  115. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  116. package/components/toolbar/GridToolbarDensitySelector.js +9 -11
  117. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  118. package/components/toolbar/GridToolbarExport.js +2 -1
  119. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  120. package/components/toolbar/GridToolbarExportContainer.js +6 -6
  121. package/components/toolbar/GridToolbarFilterButton.d.ts +3 -1
  122. package/components/toolbar/GridToolbarFilterButton.js +20 -9
  123. package/components/toolbar/GridToolbarQuickFilter.d.ts +6 -2
  124. package/components/toolbar/GridToolbarQuickFilter.js +39 -31
  125. package/components/virtualization/GridMainContainer.d.ts +13 -1
  126. package/components/virtualization/GridMainContainer.js +14 -5
  127. package/components/virtualization/GridVirtualScrollbar.d.ts +5 -1
  128. package/components/virtualization/GridVirtualScrollbar.js +17 -17
  129. package/components/virtualization/GridVirtualScroller.js +43 -21
  130. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  131. package/components/virtualization/GridVirtualScrollerContent.js +15 -6
  132. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  133. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  134. package/constants/dataGridPropsDefaultValues.js +2 -4
  135. package/constants/gridClasses.d.ts +12 -12
  136. package/constants/gridClasses.js +1 -1
  137. package/constants/index.d.ts +1 -0
  138. package/constants/index.js +2 -1
  139. package/constants/localeTextConstants.js +1 -1
  140. package/constants/signature.d.ts +9 -0
  141. package/constants/signature.js +10 -0
  142. package/context/GridContextProvider.d.ts +2 -1
  143. package/context/GridRootPropsContext.js +2 -0
  144. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +9 -2
  145. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  146. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  147. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  148. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  149. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  150. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +25 -9
  151. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  152. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  153. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +5 -8
  154. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  155. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  156. package/hooks/core/useGridApiInitialization.js +3 -3
  157. package/hooks/core/useGridInitialization.d.ts +2 -2
  158. package/hooks/core/useGridIsRtl.d.ts +2 -2
  159. package/hooks/core/useGridLocaleText.d.ts +2 -2
  160. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  161. package/hooks/core/useGridRefs.d.ts +2 -2
  162. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  163. package/hooks/core/useGridStateInitialization.js +6 -5
  164. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  165. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +4 -4
  166. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  167. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  168. package/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -78
  169. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  170. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  171. package/hooks/features/columnResize/columnResizeSelector.d.ts +1 -1
  172. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  173. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  174. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  175. package/hooks/features/columnResize/useGridColumnResize.js +17 -10
  176. package/hooks/features/columns/gridColumnsSelector.d.ts +11 -16
  177. package/hooks/features/columns/gridColumnsSelector.js +0 -12
  178. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  179. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  180. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  181. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  182. package/hooks/features/columns/useGridColumns.js +9 -4
  183. package/hooks/features/density/densitySelector.d.ts +1 -1
  184. package/hooks/features/density/useGridDensity.d.ts +2 -2
  185. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  186. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +16 -0
  187. package/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  188. package/hooks/features/dimensions/index.d.ts +1 -1
  189. package/hooks/features/dimensions/index.js +1 -2
  190. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  191. package/hooks/features/dimensions/useGridDimensions.js +104 -98
  192. package/hooks/features/editing/gridEditingSelectors.d.ts +10 -0
  193. package/hooks/features/editing/gridEditingSelectors.js +12 -1
  194. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  195. package/hooks/features/editing/useGridCellEditing.js +4 -4
  196. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  197. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  198. package/hooks/features/editing/useGridRowEditing.js +10 -11
  199. package/hooks/features/events/useGridEvents.d.ts +2 -2
  200. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  201. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  202. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  203. package/hooks/features/export/useGridPrintExport.js +1 -1
  204. package/hooks/features/export/utils.d.ts +2 -2
  205. package/hooks/features/filter/gridFilterSelector.d.ts +17 -17
  206. package/hooks/features/filter/gridFilterSelector.js +8 -2
  207. package/hooks/features/filter/gridFilterState.d.ts +8 -3
  208. package/hooks/features/filter/gridFilterState.js +5 -0
  209. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  210. package/hooks/features/filter/gridFilterUtils.js +3 -3
  211. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  212. package/hooks/features/filter/useGridFilter.js +10 -15
  213. package/hooks/features/focus/gridFocusStateSelector.d.ts +8 -8
  214. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  215. package/hooks/features/focus/useGridFocus.js +3 -2
  216. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +3 -3
  217. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  218. package/hooks/features/index.d.ts +1 -0
  219. package/hooks/features/index.js +1 -0
  220. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  221. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  222. package/hooks/features/keyboardNavigation/utils.d.ts +3 -4
  223. package/hooks/features/keyboardNavigation/utils.js +0 -5
  224. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  225. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  226. package/hooks/features/listView/index.d.ts +1 -0
  227. package/hooks/features/listView/index.js +1 -0
  228. package/hooks/features/listView/useGridListView.d.ts +2 -2
  229. package/hooks/features/listView/useGridListView.js +2 -1
  230. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  231. package/hooks/features/overlays/useGridOverlays.js +23 -3
  232. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  233. package/hooks/features/pagination/gridPaginationSelector.d.ts +34 -9
  234. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  235. package/hooks/features/pagination/gridPaginationUtils.js +1 -1
  236. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  237. package/hooks/features/pagination/useGridPagination.js +6 -4
  238. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  239. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  240. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  241. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  242. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  243. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  244. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  245. package/hooks/features/preferencesPanel/index.js +1 -1
  246. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  247. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  248. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  249. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  250. package/hooks/features/rowSelection/useGridRowSelection.js +11 -18
  251. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  252. package/hooks/features/rowSelection/utils.d.ts +4 -3
  253. package/hooks/features/rowSelection/utils.js +4 -4
  254. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  255. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  256. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -8
  257. package/hooks/features/rows/gridRowsMetaState.d.ts +8 -0
  258. package/hooks/features/rows/gridRowsSelector.d.ts +23 -13
  259. package/hooks/features/rows/gridRowsSelector.js +1 -2
  260. package/hooks/features/rows/gridRowsUtils.d.ts +3 -7
  261. package/hooks/features/rows/gridRowsUtils.js +0 -25
  262. package/hooks/features/rows/index.d.ts +1 -1
  263. package/hooks/features/rows/index.js +1 -1
  264. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  265. package/hooks/features/rows/useGridParamsApi.js +33 -14
  266. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  267. package/hooks/features/rows/useGridRowSpanning.js +97 -86
  268. package/hooks/features/rows/useGridRows.d.ts +2 -2
  269. package/hooks/features/rows/useGridRows.js +27 -29
  270. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  271. package/hooks/features/rows/useGridRowsMeta.js +36 -19
  272. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  273. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  274. package/hooks/features/sorting/gridSortingSelector.d.ts +10 -5
  275. package/hooks/features/sorting/gridSortingSelector.js +21 -9
  276. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  277. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  278. package/hooks/features/sorting/index.d.ts +2 -1
  279. package/hooks/features/sorting/index.js +1 -1
  280. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  281. package/hooks/features/sorting/useGridSorting.js +1 -1
  282. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  283. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  284. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  285. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +5 -5
  286. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +21 -6
  287. package/hooks/features/virtualization/useGridVirtualScroller.js +209 -118
  288. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  289. package/hooks/utils/index.d.ts +1 -1
  290. package/hooks/utils/index.js +1 -1
  291. package/hooks/utils/useGridApiContext.d.ts +2 -2
  292. package/hooks/utils/useGridApiEventHandler.d.ts +9 -19
  293. package/hooks/utils/useGridApiEventHandler.js +68 -75
  294. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  295. package/hooks/utils/useGridApiRef.d.ts +2 -2
  296. package/hooks/utils/useGridApiRef.js +1 -1
  297. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  298. package/hooks/utils/useGridLogger.d.ts +2 -2
  299. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  300. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  301. package/hooks/utils/useGridSelector.d.ts +5 -7
  302. package/hooks/utils/useGridSelector.js +29 -49
  303. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  304. package/hooks/utils/useGridVisibleRows.js +5 -28
  305. package/hooks/utils/useIsSSR.d.ts +1 -0
  306. package/hooks/utils/useIsSSR.js +5 -0
  307. package/index.js +1 -1
  308. package/internals/constants.d.ts +6 -0
  309. package/internals/constants.js +8 -1
  310. package/internals/index.d.ts +9 -5
  311. package/internals/index.js +7 -4
  312. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  313. package/internals/utils/attachPinnedStyle.js +9 -0
  314. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  315. package/internals/utils/getPinnedCellOffset.js +6 -7
  316. package/internals/utils/index.d.ts +1 -1
  317. package/internals/utils/index.js +2 -2
  318. package/internals/utils/propValidation.js +1 -1
  319. package/locales/arSD.js +2 -1
  320. package/locales/beBY.js +1 -1
  321. package/locales/bgBG.js +2 -1
  322. package/locales/csCZ.js +2 -1
  323. package/locales/daDK.js +2 -1
  324. package/locales/deDE.js +12 -13
  325. package/locales/elGR.js +2 -1
  326. package/locales/esES.js +12 -13
  327. package/locales/faIR.js +7 -7
  328. package/locales/fiFI.js +2 -1
  329. package/locales/frFR.js +2 -1
  330. package/locales/heIL.js +16 -17
  331. package/locales/hrHR.js +2 -1
  332. package/locales/huHU.js +2 -1
  333. package/locales/isIS.js +2 -1
  334. package/locales/itIT.js +2 -1
  335. package/locales/jaJP.js +2 -1
  336. package/locales/koKR.js +46 -49
  337. package/locales/nbNO.js +2 -1
  338. package/locales/nlNL.js +7 -7
  339. package/locales/nnNO.js +2 -1
  340. package/locales/plPL.js +2 -1
  341. package/locales/ptBR.js +12 -13
  342. package/locales/ptPT.js +12 -13
  343. package/locales/roRO.js +20 -21
  344. package/locales/ruRU.js +2 -1
  345. package/locales/skSK.js +2 -1
  346. package/locales/svSE.js +2 -1
  347. package/locales/trTR.js +14 -15
  348. package/locales/ukUA.js +2 -1
  349. package/locales/urPK.js +11 -11
  350. package/locales/viVN.js +2 -1
  351. package/locales/zhCN.js +12 -13
  352. package/locales/zhHK.js +2 -1
  353. package/locales/zhTW.js +2 -1
  354. package/material/index.js +58 -7
  355. package/models/api/gridApiCommon.d.ts +2 -2
  356. package/models/api/gridCoreApi.d.ts +7 -7
  357. package/models/api/gridDensityApi.d.ts +1 -1
  358. package/models/api/gridLocaleTextApi.d.ts +1 -1
  359. package/models/api/gridParamsApi.d.ts +29 -2
  360. package/models/api/gridStateApi.d.ts +2 -1
  361. package/models/api/index.d.ts +1 -1
  362. package/models/api/index.js +0 -1
  363. package/models/colDef/gridColDef.d.ts +34 -33
  364. package/models/controlStateItem.d.ts +2 -2
  365. package/models/events/gridEventLookup.d.ts +13 -1
  366. package/models/gridBaseSlots.d.ts +95 -0
  367. package/models/gridDataSource.d.ts +1 -1
  368. package/models/gridExport.d.ts +2 -2
  369. package/models/gridFilterInputComponent.d.ts +32 -0
  370. package/models/gridFilterOperator.d.ts +6 -4
  371. package/models/gridIconSlotsComponent.d.ts +5 -0
  372. package/models/gridSlotsComponent.d.ts +16 -1
  373. package/models/gridSlotsComponentsProps.d.ts +45 -9
  374. package/models/gridStateCommunity.d.ts +4 -0
  375. package/models/index.d.ts +1 -0
  376. package/models/props/DataGridProps.d.ts +12 -24
  377. package/modern/DataGrid/DataGrid.js +20 -38
  378. package/modern/DataGrid/useDataGridComponent.js +3 -3
  379. package/modern/DataGrid/useDataGridProps.js +3 -3
  380. package/modern/components/GridApiContext.js +2 -0
  381. package/modern/components/GridColumnHeaders.js +4 -4
  382. package/modern/components/GridConfigurationContext.js +2 -0
  383. package/modern/components/GridFooter.js +4 -4
  384. package/modern/components/GridHeaders.js +2 -2
  385. package/modern/components/GridLoadingOverlay.js +10 -8
  386. package/modern/components/GridNoResultsOverlay.js +4 -4
  387. package/modern/components/GridNoRowsOverlay.js +4 -4
  388. package/modern/components/GridPagination.js +7 -4
  389. package/modern/components/GridRow.js +60 -88
  390. package/modern/components/GridRowCount.js +3 -2
  391. package/modern/components/GridScrollArea.js +33 -24
  392. package/modern/components/GridSelectedRowCount.js +3 -2
  393. package/modern/components/GridSkeletonLoadingOverlay.js +23 -21
  394. package/modern/components/base/GridOverlays.js +2 -24
  395. package/modern/components/base/index.js +1 -2
  396. package/modern/components/cell/GridActionsCell.js +8 -1
  397. package/modern/components/cell/GridActionsCellItem.js +9 -8
  398. package/modern/components/cell/GridCell.js +49 -92
  399. package/modern/components/cell/GridEditDateCell.js +1 -1
  400. package/modern/components/cell/GridEditInputCell.js +73 -4
  401. package/modern/components/cell/GridEditSingleSelectCell.js +2 -2
  402. package/modern/components/cell/GridSkeletonCell.js +1 -2
  403. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  404. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  405. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -7
  406. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  407. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  408. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  409. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  410. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +11 -9
  411. package/modern/components/columnSelection/GridHeaderCheckbox.js +17 -9
  412. package/modern/components/columnsManagement/GridColumnsManagement.js +50 -27
  413. package/modern/components/containers/GridFooterContainer.js +5 -3
  414. package/modern/components/containers/GridOverlay.js +5 -3
  415. package/modern/components/containers/GridRoot.js +29 -17
  416. package/modern/components/containers/GridRootStyles.js +163 -53
  417. package/modern/components/containers/GridToolbarContainer.js +3 -2
  418. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  419. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  420. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  421. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  422. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  423. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  424. package/modern/components/panel/GridColumnsPanel.js +1 -2
  425. package/modern/components/panel/GridPanel.js +5 -3
  426. package/modern/components/panel/GridPanelContent.js +7 -3
  427. package/modern/components/panel/GridPanelFooter.js +4 -3
  428. package/modern/components/panel/GridPanelWrapper.js +5 -3
  429. package/modern/components/panel/filterPanel/GridFilterForm.js +22 -18
  430. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +41 -31
  431. package/modern/components/panel/filterPanel/GridFilterInputDate.js +50 -31
  432. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  433. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  434. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  435. package/modern/components/panel/filterPanel/GridFilterInputValue.js +63 -38
  436. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  437. package/modern/components/panel/filterPanel/index.js +1 -2
  438. package/modern/components/toolbar/GridToolbar.js +11 -5
  439. package/modern/components/toolbar/GridToolbarColumnsButton.js +12 -6
  440. package/modern/components/toolbar/GridToolbarDensitySelector.js +9 -11
  441. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  442. package/modern/components/toolbar/GridToolbarExportContainer.js +6 -6
  443. package/modern/components/toolbar/GridToolbarFilterButton.js +20 -9
  444. package/modern/components/toolbar/GridToolbarQuickFilter.js +39 -31
  445. package/modern/components/virtualization/GridMainContainer.js +14 -5
  446. package/modern/components/virtualization/GridVirtualScrollbar.js +17 -17
  447. package/modern/components/virtualization/GridVirtualScroller.js +43 -21
  448. package/modern/components/virtualization/GridVirtualScrollerContent.js +15 -6
  449. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  450. package/modern/constants/dataGridPropsDefaultValues.js +2 -4
  451. package/modern/constants/gridClasses.js +1 -1
  452. package/modern/constants/index.js +2 -1
  453. package/modern/constants/localeTextConstants.js +1 -1
  454. package/modern/constants/signature.js +10 -0
  455. package/modern/context/GridRootPropsContext.js +2 -0
  456. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  457. package/modern/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  458. package/modern/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +5 -1
  459. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  460. package/modern/hooks/core/useGridApiInitialization.js +3 -3
  461. package/modern/hooks/core/useGridStateInitialization.js +6 -5
  462. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -78
  463. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  464. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  465. package/modern/hooks/features/columnResize/useGridColumnResize.js +17 -10
  466. package/modern/hooks/features/columns/gridColumnsSelector.js +0 -12
  467. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  468. package/modern/hooks/features/columns/useGridColumns.js +9 -4
  469. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +26 -1
  470. package/modern/hooks/features/dimensions/index.js +1 -2
  471. package/modern/hooks/features/dimensions/useGridDimensions.js +104 -98
  472. package/modern/hooks/features/editing/gridEditingSelectors.js +12 -1
  473. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  474. package/modern/hooks/features/editing/useGridRowEditing.js +10 -11
  475. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  476. package/modern/hooks/features/filter/gridFilterSelector.js +8 -2
  477. package/modern/hooks/features/filter/gridFilterState.js +5 -0
  478. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  479. package/modern/hooks/features/filter/useGridFilter.js +10 -15
  480. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  481. package/modern/hooks/features/index.js +1 -0
  482. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -16
  483. package/modern/hooks/features/keyboardNavigation/utils.js +0 -5
  484. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  485. package/modern/hooks/features/listView/index.js +1 -0
  486. package/modern/hooks/features/listView/useGridListView.js +2 -1
  487. package/modern/hooks/features/overlays/useGridOverlays.js +23 -3
  488. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  489. package/modern/hooks/features/pagination/gridPaginationUtils.js +1 -1
  490. package/modern/hooks/features/pagination/useGridPagination.js +6 -4
  491. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  492. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  493. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  494. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  495. package/modern/hooks/features/rowSelection/useGridRowSelection.js +11 -18
  496. package/modern/hooks/features/rowSelection/utils.js +4 -4
  497. package/modern/hooks/features/rows/gridRowsSelector.js +1 -2
  498. package/modern/hooks/features/rows/gridRowsUtils.js +0 -25
  499. package/modern/hooks/features/rows/index.js +1 -1
  500. package/modern/hooks/features/rows/useGridParamsApi.js +33 -14
  501. package/modern/hooks/features/rows/useGridRowSpanning.js +97 -86
  502. package/modern/hooks/features/rows/useGridRows.js +27 -29
  503. package/modern/hooks/features/rows/useGridRowsMeta.js +36 -19
  504. package/modern/hooks/features/sorting/gridSortingSelector.js +21 -9
  505. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  506. package/modern/hooks/features/sorting/index.js +1 -1
  507. package/modern/hooks/features/sorting/useGridSorting.js +1 -1
  508. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +33 -0
  509. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +209 -118
  510. package/modern/hooks/utils/index.js +1 -1
  511. package/modern/hooks/utils/useGridApiEventHandler.js +68 -75
  512. package/modern/hooks/utils/useGridApiRef.js +1 -1
  513. package/modern/hooks/utils/useGridSelector.js +29 -49
  514. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  515. package/modern/hooks/utils/useIsSSR.js +5 -0
  516. package/modern/index.js +1 -1
  517. package/modern/internals/constants.js +8 -1
  518. package/modern/internals/index.js +7 -4
  519. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  520. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  521. package/modern/internals/utils/index.js +2 -2
  522. package/modern/internals/utils/propValidation.js +1 -1
  523. package/modern/locales/arSD.js +2 -1
  524. package/modern/locales/beBY.js +1 -1
  525. package/modern/locales/bgBG.js +2 -1
  526. package/modern/locales/csCZ.js +2 -1
  527. package/modern/locales/daDK.js +2 -1
  528. package/modern/locales/deDE.js +12 -13
  529. package/modern/locales/elGR.js +2 -1
  530. package/modern/locales/esES.js +12 -13
  531. package/modern/locales/faIR.js +7 -7
  532. package/modern/locales/fiFI.js +2 -1
  533. package/modern/locales/frFR.js +2 -1
  534. package/modern/locales/heIL.js +16 -17
  535. package/modern/locales/hrHR.js +2 -1
  536. package/modern/locales/huHU.js +2 -1
  537. package/modern/locales/isIS.js +2 -1
  538. package/modern/locales/itIT.js +2 -1
  539. package/modern/locales/jaJP.js +2 -1
  540. package/modern/locales/koKR.js +46 -49
  541. package/modern/locales/nbNO.js +2 -1
  542. package/modern/locales/nlNL.js +7 -7
  543. package/modern/locales/nnNO.js +2 -1
  544. package/modern/locales/plPL.js +2 -1
  545. package/modern/locales/ptBR.js +12 -13
  546. package/modern/locales/ptPT.js +12 -13
  547. package/modern/locales/roRO.js +20 -21
  548. package/modern/locales/ruRU.js +2 -1
  549. package/modern/locales/skSK.js +2 -1
  550. package/modern/locales/svSE.js +2 -1
  551. package/modern/locales/trTR.js +14 -15
  552. package/modern/locales/ukUA.js +2 -1
  553. package/modern/locales/urPK.js +11 -11
  554. package/modern/locales/viVN.js +2 -1
  555. package/modern/locales/zhCN.js +12 -13
  556. package/modern/locales/zhHK.js +2 -1
  557. package/modern/locales/zhTW.js +2 -1
  558. package/modern/material/index.js +58 -7
  559. package/modern/models/api/index.js +0 -1
  560. package/modern/models/gridBaseSlots.js +1 -0
  561. package/modern/models/gridFilterInputComponent.js +1 -0
  562. package/modern/utils/assert.js +3 -0
  563. package/modern/utils/cellBorderUtils.js +5 -5
  564. package/modern/utils/createSelector.js +1 -120
  565. package/modern/utils/domUtils.js +7 -2
  566. package/modern/utils/isJSDOM.js +1 -0
  567. package/modern/utils/roundToDecimalPlaces.js +3 -0
  568. package/modern/utils/rtlFlipSide.js +22 -0
  569. package/modern/utils/utils.js +6 -1
  570. package/node/DataGrid/DataGrid.js +18 -36
  571. package/node/DataGrid/useDataGridComponent.js +3 -3
  572. package/node/DataGrid/useDataGridProps.js +2 -2
  573. package/node/components/GridApiContext.js +1 -0
  574. package/node/components/GridColumnHeaders.js +4 -4
  575. package/node/components/GridConfigurationContext.js +1 -0
  576. package/node/components/GridFooter.js +4 -4
  577. package/node/components/GridHeaders.js +2 -2
  578. package/node/components/GridLoadingOverlay.js +10 -8
  579. package/node/components/GridNoResultsOverlay.js +4 -4
  580. package/node/components/GridNoRowsOverlay.js +4 -4
  581. package/node/components/GridPagination.js +7 -4
  582. package/node/components/GridRow.js +56 -85
  583. package/node/components/GridRowCount.js +3 -2
  584. package/node/components/GridScrollArea.js +32 -24
  585. package/node/components/GridSelectedRowCount.js +3 -2
  586. package/node/components/GridSkeletonLoadingOverlay.js +23 -21
  587. package/node/components/base/GridOverlays.js +2 -24
  588. package/node/components/base/index.js +0 -11
  589. package/node/components/cell/GridActionsCell.js +8 -1
  590. package/node/components/cell/GridActionsCellItem.js +7 -8
  591. package/node/components/cell/GridCell.js +48 -91
  592. package/node/components/cell/GridEditDateCell.js +1 -1
  593. package/node/components/cell/GridEditInputCell.js +73 -4
  594. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  595. package/node/components/cell/GridSkeletonCell.js +1 -2
  596. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  597. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  598. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +19 -6
  599. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  600. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  601. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  602. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  603. package/node/components/columnSelection/GridCellCheckboxRenderer.js +10 -8
  604. package/node/components/columnSelection/GridHeaderCheckbox.js +17 -9
  605. package/node/components/columnsManagement/GridColumnsManagement.js +50 -27
  606. package/node/components/containers/GridFooterContainer.js +5 -3
  607. package/node/components/containers/GridOverlay.js +5 -3
  608. package/node/components/containers/GridRoot.js +27 -15
  609. package/node/components/containers/GridRootStyles.js +163 -53
  610. package/node/components/containers/GridToolbarContainer.js +3 -2
  611. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  612. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +8 -4
  613. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  614. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  615. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  616. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  617. package/node/components/panel/GridColumnsPanel.js +1 -2
  618. package/node/components/panel/GridPanel.js +5 -3
  619. package/node/components/panel/GridPanelContent.js +7 -3
  620. package/node/components/panel/GridPanelFooter.js +5 -4
  621. package/node/components/panel/GridPanelWrapper.js +5 -3
  622. package/node/components/panel/filterPanel/GridFilterForm.js +22 -18
  623. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +42 -33
  624. package/node/components/panel/filterPanel/GridFilterInputDate.js +49 -30
  625. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +49 -24
  626. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +55 -33
  627. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +34 -25
  628. package/node/components/panel/filterPanel/GridFilterInputValue.js +62 -37
  629. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  630. package/node/components/panel/filterPanel/index.js +7 -23
  631. package/node/components/toolbar/GridToolbar.js +11 -5
  632. package/node/components/toolbar/GridToolbarColumnsButton.js +12 -6
  633. package/node/components/toolbar/GridToolbarDensitySelector.js +9 -11
  634. package/node/components/toolbar/GridToolbarExport.js +2 -1
  635. package/node/components/toolbar/GridToolbarExportContainer.js +6 -6
  636. package/node/components/toolbar/GridToolbarFilterButton.js +20 -9
  637. package/node/components/toolbar/GridToolbarQuickFilter.js +39 -31
  638. package/node/components/virtualization/GridMainContainer.js +14 -5
  639. package/node/components/virtualization/GridVirtualScrollbar.js +17 -17
  640. package/node/components/virtualization/GridVirtualScroller.js +43 -21
  641. package/node/components/virtualization/GridVirtualScrollerContent.js +15 -6
  642. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  643. package/node/constants/dataGridPropsDefaultValues.js +2 -4
  644. package/node/constants/gridClasses.js +1 -1
  645. package/node/constants/index.js +11 -0
  646. package/node/constants/localeTextConstants.js +1 -1
  647. package/node/constants/signature.js +16 -0
  648. package/node/context/GridRootPropsContext.js +1 -0
  649. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -1
  650. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +7 -5
  651. package/node/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +7 -1
  652. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +7 -8
  653. package/node/hooks/core/useGridApiInitialization.js +4 -4
  654. package/node/hooks/core/useGridStateInitialization.js +6 -5
  655. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +37 -76
  656. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  657. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  658. package/node/hooks/features/columnResize/useGridColumnResize.js +17 -10
  659. package/node/hooks/features/columns/gridColumnsSelector.js +1 -13
  660. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  661. package/node/hooks/features/columns/useGridColumns.js +9 -4
  662. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +38 -2
  663. package/node/hooks/features/dimensions/index.js +13 -11
  664. package/node/hooks/features/dimensions/useGridDimensions.js +102 -96
  665. package/node/hooks/features/editing/gridEditingSelectors.js +12 -2
  666. package/node/hooks/features/editing/useGridCellEditing.js +3 -3
  667. package/node/hooks/features/editing/useGridRowEditing.js +8 -9
  668. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  669. package/node/hooks/features/filter/gridFilterSelector.js +8 -2
  670. package/node/hooks/features/filter/gridFilterState.js +6 -1
  671. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  672. package/node/hooks/features/filter/useGridFilter.js +9 -14
  673. package/node/hooks/features/focus/useGridFocus.js +3 -2
  674. package/node/hooks/features/index.js +11 -0
  675. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +24 -15
  676. package/node/hooks/features/keyboardNavigation/utils.js +0 -6
  677. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  678. package/node/hooks/features/listView/index.js +16 -0
  679. package/node/hooks/features/listView/useGridListView.js +2 -1
  680. package/node/hooks/features/overlays/useGridOverlays.js +25 -3
  681. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  682. package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
  683. package/node/hooks/features/pagination/useGridPagination.js +6 -4
  684. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  685. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  686. package/node/hooks/features/preferencesPanel/index.js +11 -10
  687. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  688. package/node/hooks/features/rowSelection/useGridRowSelection.js +12 -19
  689. package/node/hooks/features/rowSelection/utils.js +5 -5
  690. package/node/hooks/features/rows/gridRowsSelector.js +2 -3
  691. package/node/hooks/features/rows/gridRowsUtils.js +0 -26
  692. package/node/hooks/features/rows/index.js +0 -7
  693. package/node/hooks/features/rows/useGridParamsApi.js +33 -14
  694. package/node/hooks/features/rows/useGridRowSpanning.js +95 -84
  695. package/node/hooks/features/rows/useGridRows.js +27 -29
  696. package/node/hooks/features/rows/useGridRowsMeta.js +36 -19
  697. package/node/hooks/features/sorting/gridSortingSelector.js +22 -10
  698. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  699. package/node/hooks/features/sorting/index.js +24 -16
  700. package/node/hooks/features/sorting/useGridSorting.js +1 -1
  701. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +40 -0
  702. package/node/hooks/features/virtualization/useGridVirtualScroller.js +210 -119
  703. package/node/hooks/utils/index.js +21 -11
  704. package/node/hooks/utils/useGridApiEventHandler.js +71 -78
  705. package/node/hooks/utils/useGridApiRef.js +1 -1
  706. package/node/hooks/utils/useGridSelector.js +31 -52
  707. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  708. package/node/hooks/utils/useIsSSR.js +12 -0
  709. package/node/index.js +1 -1
  710. package/node/internals/constants.js +9 -2
  711. package/node/internals/index.js +57 -27
  712. package/node/internals/utils/attachPinnedStyle.js +15 -0
  713. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  714. package/node/internals/utils/index.js +11 -11
  715. package/node/internals/utils/propValidation.js +2 -2
  716. package/node/locales/arSD.js +2 -1
  717. package/node/locales/beBY.js +1 -1
  718. package/node/locales/bgBG.js +2 -1
  719. package/node/locales/csCZ.js +2 -1
  720. package/node/locales/daDK.js +2 -1
  721. package/node/locales/deDE.js +12 -13
  722. package/node/locales/elGR.js +2 -1
  723. package/node/locales/esES.js +12 -13
  724. package/node/locales/faIR.js +7 -7
  725. package/node/locales/fiFI.js +2 -1
  726. package/node/locales/frFR.js +2 -1
  727. package/node/locales/heIL.js +16 -17
  728. package/node/locales/hrHR.js +2 -1
  729. package/node/locales/huHU.js +2 -1
  730. package/node/locales/isIS.js +2 -1
  731. package/node/locales/itIT.js +2 -1
  732. package/node/locales/jaJP.js +2 -1
  733. package/node/locales/koKR.js +46 -49
  734. package/node/locales/nbNO.js +2 -1
  735. package/node/locales/nlNL.js +7 -7
  736. package/node/locales/nnNO.js +2 -1
  737. package/node/locales/plPL.js +2 -1
  738. package/node/locales/ptBR.js +12 -13
  739. package/node/locales/ptPT.js +12 -13
  740. package/node/locales/roRO.js +20 -21
  741. package/node/locales/ruRU.js +2 -1
  742. package/node/locales/skSK.js +2 -1
  743. package/node/locales/svSE.js +2 -1
  744. package/node/locales/trTR.js +14 -15
  745. package/node/locales/ukUA.js +2 -1
  746. package/node/locales/urPK.js +11 -11
  747. package/node/locales/viVN.js +2 -1
  748. package/node/locales/zhCN.js +12 -13
  749. package/node/locales/zhHK.js +2 -1
  750. package/node/locales/zhTW.js +2 -1
  751. package/node/material/index.js +59 -7
  752. package/node/models/api/index.js +0 -11
  753. package/node/models/gridFilterInputComponent.js +5 -0
  754. package/node/utils/assert.js +9 -0
  755. package/node/utils/cellBorderUtils.js +5 -5
  756. package/node/utils/createSelector.js +4 -125
  757. package/node/utils/domUtils.js +7 -2
  758. package/node/utils/isJSDOM.js +7 -0
  759. package/node/utils/roundToDecimalPlaces.js +9 -0
  760. package/node/utils/rtlFlipSide.js +29 -0
  761. package/node/utils/utils.js +8 -1
  762. package/package.json +4 -3
  763. package/themeAugmentation/overrides.d.ts +10 -5
  764. package/utils/assert.d.ts +2 -0
  765. package/utils/assert.js +3 -0
  766. package/utils/cellBorderUtils.d.ts +3 -3
  767. package/utils/cellBorderUtils.js +5 -5
  768. package/utils/createSelector.d.ts +7 -19
  769. package/utils/createSelector.js +1 -120
  770. package/utils/domUtils.js +7 -2
  771. package/utils/getPublicApiRef.d.ts +2 -1
  772. package/utils/isJSDOM.d.ts +1 -0
  773. package/utils/isJSDOM.js +1 -0
  774. package/utils/keyboardUtils.d.ts +1 -1
  775. package/utils/roundToDecimalPlaces.d.ts +1 -0
  776. package/utils/roundToDecimalPlaces.js +3 -0
  777. package/utils/rtlFlipSide.d.ts +2 -0
  778. package/utils/rtlFlipSide.js +22 -0
  779. package/utils/utils.d.ts +1 -0
  780. package/utils/utils.js +6 -1
  781. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +0 -11
  782. package/internals/utils/useProps.d.ts +0 -1
  783. package/internals/utils/useProps.js +0 -24
  784. package/joy/icons.d.ts +0 -32
  785. package/joy/icons.js +0 -431
  786. package/joy/index.d.ts +0 -2
  787. package/joy/index.js +0 -2
  788. package/joy/joySlots.d.ts +0 -3
  789. package/joy/joySlots.js +0 -389
  790. package/joy/package.json +0 -6
  791. package/modern/internals/utils/useProps.js +0 -24
  792. package/modern/joy/icons.js +0 -431
  793. package/modern/joy/index.js +0 -2
  794. package/modern/joy/joySlots.js +0 -389
  795. package/node/internals/utils/useProps.js +0 -30
  796. package/node/joy/icons.js +0 -439
  797. package/node/joy/index.js +0 -13
  798. package/node/joy/joySlots.js +0 -397
  799. /package/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
  800. /package/{modern/components/panel/filterPanel/GridFilterInputValueProps.js → models/gridFilterInputComponent.js} +0 -0
  801. /package/node/{components/panel/filterPanel/GridFilterInputValueProps.js → models/gridBaseSlots.js} +0 -0
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { RefObject } from '@mui/x-internals/types';
3
+ import { GridFilterItem } from './gridFilterItem';
4
+ import type { GridApiCommon } from './api/gridApiCommon';
5
+ import type { GridApiCommunity } from './api/gridApiCommunity';
6
+ export type GridFilterInputSlotProps = {
7
+ size?: 'small' | 'medium';
8
+ label?: React.ReactNode;
9
+ placeholder?: string;
10
+ };
11
+ export type GridFilterInputValueProps<T extends GridFilterInputSlotProps = GridFilterInputSlotProps, Api extends GridApiCommon = GridApiCommunity> = {
12
+ item: GridFilterItem;
13
+ applyValue: (value: GridFilterItem) => void;
14
+ apiRef: RefObject<Api>;
15
+ inputRef?: React.Ref<HTMLElement | null>;
16
+ focusElementRef?: React.Ref<any>;
17
+ headerFilterMenu?: React.ReactNode;
18
+ clearButton?: React.ReactNode | null;
19
+ /**
20
+ * It is `true` if the filter either has a value or an operator with no value
21
+ * required is selected (for example `isEmpty`)
22
+ */
23
+ isFilterActive?: boolean;
24
+ onFocus?: React.FocusEventHandler;
25
+ onBlur?: React.FocusEventHandler;
26
+ tabIndex?: number;
27
+ disabled?: boolean;
28
+ className?: string;
29
+ slotProps?: {
30
+ root: T;
31
+ };
32
+ };
@@ -1,16 +1,18 @@
1
1
  import * as React from 'react';
2
+ import { RefObject } from '@mui/x-internals/types';
2
3
  import { GridFilterItem } from './gridFilterItem';
3
4
  import type { GridColDef } from './colDef/gridColDef';
4
5
  import type { GridValidRowModel } from './gridRows';
5
6
  import type { GridApiCommunity } from './api/gridApiCommunity';
6
- type ApplyFilterFn<R extends GridValidRowModel = any, V = any, F = V> = (value: V, row: R, column: GridColDef<R, V, F>, apiRef: React.MutableRefObject<GridApiCommunity>) => boolean;
7
+ import type { GridFilterInputValueProps } from './gridFilterInputComponent';
8
+ type ApplyFilterFn<R extends GridValidRowModel = any, V = any, F = V> = (value: V, row: R, column: GridColDef<R, V, F>, apiRef: RefObject<GridApiCommunity>) => boolean;
7
9
  export type GetApplyFilterFn<R extends GridValidRowModel = any, V = any, F = V> = (filterItem: GridFilterItem, column: GridColDef<R, V, F>) => null | ApplyFilterFn<R, V, F>;
8
10
  /**
9
11
  * Filter operator definition interface.
10
12
  * @demos
11
13
  * - [Custom filter operator](/x/react-data-grid/filtering/customization/#create-a-custom-operator)
12
14
  */
13
- export interface GridFilterOperator<R extends GridValidRowModel = any, V = any, F = V> {
15
+ export interface GridFilterOperator<R extends GridValidRowModel = any, V = any, F = V, I extends GridFilterInputValueProps<any> = GridFilterInputValueProps> {
14
16
  /**
15
17
  * The label of the filter operator.
16
18
  */
@@ -35,11 +37,11 @@ export interface GridFilterOperator<R extends GridValidRowModel = any, V = any,
35
37
  /**
36
38
  * The input component to render in the filter panel for this filter operator.
37
39
  */
38
- InputComponent?: React.JSXElementConstructor<any>;
40
+ InputComponent?: React.JSXElementConstructor<I>;
39
41
  /**
40
42
  * The props to pass to the input component in the filter panel for this filter operator.
41
43
  */
42
- InputComponentProps?: Record<string, any>;
44
+ InputComponentProps?: Partial<I>;
43
45
  /**
44
46
  * Converts the value of a filter item to a human-readable form.
45
47
  * @param {GridFilterItem['value']} value The filter item value.
@@ -178,4 +178,9 @@ export interface GridIconSlotsComponent {
178
178
  * @default GridDragIcon
179
179
  */
180
180
  columnReorderIcon: React.JSXElementConstructor<any>;
181
+ /**
182
+ * Icon displayed to indicate that a menu item is selected.
183
+ * @default GridCheckIcon
184
+ */
185
+ menuItemCheckIcon: React.JSXElementConstructor<any>;
181
186
  }
@@ -13,6 +13,11 @@ export interface GridBaseSlots {
13
13
  * @default Checkbox
14
14
  */
15
15
  baseCheckbox: React.JSXElementConstructor<GridSlotProps['baseCheckbox']>;
16
+ /**
17
+ * The custom CircularProgress component used in the grid.
18
+ * @default CircularProgress
19
+ */
20
+ baseCircularProgress: React.JSXElementConstructor<GridSlotProps['baseCircularProgress']>;
16
21
  /**
17
22
  * The custom Chip component used in the grid.
18
23
  * @default Chip
@@ -23,6 +28,11 @@ export interface GridBaseSlots {
23
28
  * @default Divider
24
29
  */
25
30
  baseDivider: React.JSXElementConstructor<GridSlotProps['baseDivider']>;
31
+ /**
32
+ * The custom LinearProgress component used in the grid.
33
+ * @default LinearProgress
34
+ */
35
+ baseLinearProgress: React.JSXElementConstructor<GridSlotProps['baseLinearProgress']>;
26
36
  /**
27
37
  * The custom MenuList component used in the grid.
28
38
  * @default MenuList
@@ -80,9 +90,14 @@ export interface GridBaseSlots {
80
90
  baseInputLabel: React.JSXElementConstructor<GridSlotProps['baseInputLabel']>;
81
91
  /**
82
92
  * The custom SelectOption component used in the grid.
83
- * @default MenuItem
93
+ * @default SelectOption
84
94
  */
85
95
  baseSelectOption: React.JSXElementConstructor<GridSlotProps['baseSelectOption']>;
96
+ /**
97
+ * The custom Skeleton component used in the grid.
98
+ * @default Skeleton
99
+ */
100
+ baseSkeleton: React.JSXElementConstructor<GridSlotProps['baseSkeleton']>;
86
101
  }
87
102
  /**
88
103
  * Grid components React prop interface containing all the overridable components.
@@ -1,16 +1,17 @@
1
1
  import * as React from 'react';
2
- import type { BadgeProps } from '@mui/material/Badge';
2
+ import type { BadgeProps as MUIBadgeProps } from '@mui/material/Badge';
3
+ import type { ButtonProps as MUIButtonProps } from '@mui/material/Button';
3
4
  import type { CheckboxProps } from '@mui/material/Checkbox';
5
+ import type { CircularProgressProps as MUICircularProgressProps } from '@mui/material/CircularProgress';
6
+ import type { LinearProgressProps as MUILinearProgressProps } from '@mui/material/LinearProgress';
4
7
  import type { MenuListProps } from '@mui/material/MenuList';
5
- import type { MenuItemProps } from '@mui/material/MenuItem';
6
- import type { TextFieldProps } from '@mui/material/TextField';
8
+ import type { MenuItemProps as MUIMenuItemProps } from '@mui/material/MenuItem';
7
9
  import type { FormControlProps } from '@mui/material/FormControl';
8
10
  import type { SelectProps } from '@mui/material/Select';
9
11
  import type { SwitchProps } from '@mui/material/Switch';
10
- import type { ButtonProps } from '@mui/material/Button';
11
- import type { IconButtonProps } from '@mui/material/IconButton';
12
+ import type { IconButtonProps as MUIIconButtonProps } from '@mui/material/IconButton';
12
13
  import type { InputAdornmentProps } from '@mui/material/InputAdornment';
13
- import type { TooltipProps } from '@mui/material/Tooltip';
14
+ import type { TooltipProps as MUITooltipProps } from '@mui/material/Tooltip';
14
15
  import type { InputLabelProps } from '@mui/material/InputLabel';
15
16
  import type { PopperProps } from '@mui/material/Popper';
16
17
  import type { TablePaginationProps } from '@mui/material/TablePagination';
@@ -33,13 +34,19 @@ import type { GridColumnsManagementProps } from '../components/columnsManagement
33
34
  import type { GridLoadingOverlayProps } from '../components/GridLoadingOverlay';
34
35
  import type { GridRowCountProps } from '../components/GridRowCount';
35
36
  import type { GridColumnHeaderSortIconProps } from '../components/columnHeaders/GridColumnHeaderSortIcon';
36
- type DividerProps = {};
37
+ import type { BadgeProps, ButtonProps, CircularProgressProps, DividerProps, IconButtonProps, LinearProgressProps, MenuItemProps, SkeletonProps, TooltipProps, TextFieldProps } from './gridBaseSlots';
38
+ type RootProps = React.HTMLAttributes<HTMLDivElement> & Record<`data-${string}`, string>;
39
+ type MainProps = React.HTMLAttributes<HTMLDivElement> & Record<`data-${string}`, string>;
37
40
  export interface BaseBadgePropsOverrides {
38
41
  }
39
42
  export interface BaseCheckboxPropsOverrides {
40
43
  }
44
+ export interface BaseCircularProgressPropsOverrides {
45
+ }
41
46
  export interface BaseDividerPropsOverrides {
42
47
  }
48
+ export interface BaseLinearProgressPropsOverrides {
49
+ }
43
50
  export interface BaseMenuListPropsOverrides {
44
51
  }
45
52
  export interface BaseMenuItemPropsOverrides {
@@ -66,6 +73,8 @@ export interface BaseInputLabelPropsOverrides {
66
73
  }
67
74
  export interface BaseSelectOptionPropsOverrides {
68
75
  }
76
+ export interface BaseSkeletonPropsOverrides {
77
+ }
69
78
  export interface BaseChipPropsOverrides {
70
79
  }
71
80
  export interface CellPropsOverrides {
@@ -106,10 +115,12 @@ export interface SkeletonCellPropsOverrides {
106
115
  }
107
116
  export interface RowPropsOverrides {
108
117
  }
109
- export interface GridSlotProps {
118
+ interface BaseSlotProps {
110
119
  baseBadge: BadgeProps & BaseBadgePropsOverrides;
111
120
  baseCheckbox: CheckboxProps & BaseCheckboxPropsOverrides;
121
+ baseCircularProgress: CircularProgressProps & BaseCircularProgressPropsOverrides;
112
122
  baseDivider: DividerProps & BaseDividerPropsOverrides;
123
+ baseLinearProgress: LinearProgressProps & BaseLinearProgressPropsOverrides;
113
124
  baseMenuList: MenuListProps & BaseMenuListPropsOverrides;
114
125
  baseMenuItem: MenuItemProps & BaseMenuItemPropsOverrides;
115
126
  baseTextField: TextFieldProps & BaseTextFieldPropsOverrides;
@@ -127,7 +138,19 @@ export interface GridSlotProps {
127
138
  value: any;
128
139
  children?: React.ReactNode;
129
140
  } & BaseSelectOptionPropsOverrides;
141
+ baseSkeleton: SkeletonProps & BaseSkeletonPropsOverrides;
130
142
  baseChip: ChipProps & BaseChipPropsOverrides;
143
+ }
144
+ interface MaterialSlotProps {
145
+ baseBadge: MUIBadgeProps;
146
+ baseButton: MUIButtonProps;
147
+ baseIconButton: MUIIconButtonProps;
148
+ baseLinearProgress: MUILinearProgressProps;
149
+ baseCircularProgress: MUICircularProgressProps;
150
+ baseMenuItem: MUIMenuItemProps;
151
+ baseTooltip: MUITooltipProps;
152
+ }
153
+ interface ElementSlotProps {
131
154
  cell: GridCellProps & CellPropsOverrides;
132
155
  columnHeaders: GridColumnHeadersProps;
133
156
  columnHeaderFilterIconButton: ColumnHeaderFilterIconButtonProps & ColumnHeaderFilterIconButtonPropsOverrides;
@@ -148,7 +171,20 @@ export interface GridSlotProps {
148
171
  row: GridRowProps & RowPropsOverrides;
149
172
  skeletonCell: GridSkeletonCellProps & SkeletonCellPropsOverrides;
150
173
  toolbar: GridToolbarProps & ToolbarPropsOverrides;
151
- }
174
+ /**
175
+ * Props passed to the `.main` (role="grid") element.
176
+ */
177
+ main: MainProps;
178
+ /**
179
+ * Props passed to the `.root` element.
180
+ */
181
+ root: RootProps;
182
+ }
183
+ type Select<A, B, K> = K extends keyof A ? A[K] : K extends keyof B ? B[K] : never;
184
+ type Merge<A, B> = {
185
+ [K in keyof A | keyof B]: K extends 'ref' ? Select<A, B, 'ref'> : K extends keyof A & keyof B ? A[K] & B[K] : K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
186
+ };
187
+ export type GridSlotProps = Merge<BaseSlotProps, MaterialSlotProps> & ElementSlotProps;
152
188
  /**
153
189
  * Overridable components props dynamically passed to the component at rendering.
154
190
  */
@@ -45,4 +45,8 @@ export interface GridInitialStateCommunity {
45
45
  columns?: GridColumnsInitialState;
46
46
  preferencePanel?: GridPreferencePanelInitialState;
47
47
  density?: GridDensityState;
48
+ scroll?: {
49
+ top: number;
50
+ left: number;
51
+ };
48
52
  }
package/models/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './gridEditRowModel';
5
5
  export * from './gridFeatureMode';
6
6
  export * from './gridFilterItem';
7
7
  export * from './gridFilterModel';
8
+ export type { GridFilterInputValueProps } from './gridFilterInputComponent';
8
9
  export * from './gridPaginationProps';
9
10
  export * from './gridRenderContextProps';
10
11
  export * from './gridRows';
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { RefObject } from '@mui/x-internals/types';
2
3
  import { SxProps } from '@mui/system';
3
4
  import { Theme } from '@mui/material/styles';
4
5
  import { CommonProps } from '@mui/material/OverridableComponent';
@@ -223,14 +224,6 @@ export interface DataGridPropsWithDefaultValues<R extends GridValidRowModel = an
223
224
  * @default false
224
225
  */
225
226
  ignoreDiacritics: boolean;
226
- /**
227
- * If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
228
- * will select all the rows under it.
229
- * If `deselect`, it will deselect all the rows under it.
230
- * Works only if `checkboxSelection` is enabled.
231
- * @default "deselect"
232
- */
233
- indeterminateCheckboxAction: 'select' | 'deselect';
234
227
  /**
235
228
  * If `true`, the selection model will retain selected rows that do not exist.
236
229
  * Useful when using server side pagination and row selections need to be retained
@@ -346,14 +339,6 @@ export interface DataGridPropsWithDefaultValues<R extends GridValidRowModel = an
346
339
  * @default '\t'
347
340
  */
348
341
  clipboardCopyCellDelimiter: string;
349
- /**
350
- * The milliseconds delay to wait after measuring the row height before recalculating row positions.
351
- * Setting it to a lower value could be useful when using dynamic row height,
352
- * but might reduce performance when displaying a large number of rows.
353
- * @default 166
354
- * @deprecated
355
- */
356
- rowPositionsDebounceMs: number;
357
342
  /**
358
343
  * If `true`, columns are autosized after the datagrid is mounted.
359
344
  * @default false
@@ -368,7 +353,15 @@ export interface DataGridPropsWithDefaultValues<R extends GridValidRowModel = an
368
353
  * If `true`, the Data Grid will auto span the cells over the rows having the same value.
369
354
  * @default false
370
355
  */
371
- unstable_rowSpanning: boolean;
356
+ rowSpanning: boolean;
357
+ /**
358
+ * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
359
+ * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
360
+ * For datasets with a large number of columns, this can cause performance issues.
361
+ * The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
362
+ * @default false
363
+ */
364
+ virtualizeColumnsWithAutoRowHeight: boolean;
372
365
  }
373
366
  /**
374
367
  * The Data Grid props with no default value.
@@ -377,12 +370,7 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
377
370
  /**
378
371
  * The ref object that allows Data Grid manipulation. Can be instantiated with `useGridApiRef()`.
379
372
  */
380
- apiRef?: React.MutableRefObject<GridApiCommunity>;
381
- /**
382
- * Forwarded props for the Data Grid root element.
383
- * @ignore - do not document.
384
- */
385
- forwardedProps?: Record<string, unknown>;
373
+ apiRef?: RefObject<GridApiCommunity | null>;
386
374
  /**
387
375
  * Signal to the underlying logic what version of the public component API
388
376
  * of the Data Grid is exposed [[GridSignature]].
@@ -814,7 +802,7 @@ export interface DataGridProSharedPropsWithDefaultValue {
814
802
  * - Deselecting a descendant of a selected parent deselects the parent automatically.
815
803
  *
816
804
  * Works with tree data and row grouping on the client-side only.
817
- * @default { parents: false, descendants: false }
805
+ * @default { parents: true, descendants: true }
818
806
  */
819
807
  rowSelectionPropagation: GridRowSelectionPropagation;
820
808
  /**
@@ -3,43 +3,37 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { GridBody, GridFooterPlaceholder, GridHeader, GridRoot } from "../components/index.js";
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
+ import { GridRoot } from "../components/index.js";
7
8
  import { useGridAriaAttributes } from "../hooks/utils/useGridAriaAttributes.js";
8
9
  import { useGridRowAriaAttributes } from "../hooks/features/rows/useGridRowAriaAttributes.js";
9
10
  import { GridContextProvider } from "../context/GridContextProvider.js";
10
11
  import { useDataGridComponent } from "./useDataGridComponent.js";
11
12
  import { useDataGridProps } from "./useDataGridProps.js";
12
13
  import { propValidatorsDataGrid, validateProps } from "../internals/utils/propValidation.js";
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
14
15
  const configuration = {
15
16
  hooks: {
16
17
  useGridAriaAttributes,
17
18
  useGridRowAriaAttributes
18
19
  }
19
20
  };
20
- let propValidators;
21
- if (process.env.NODE_ENV !== 'production') {
22
- propValidators = [...propValidatorsDataGrid,
23
- // Only validate in MIT version
24
- props => props.columns && props.columns.some(column => column.resizable) && [`MUI X: \`column.resizable = true\` is not a valid prop.`, 'Column resizing is not available in the MIT version.', '', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock this feature.'].join('\n') || undefined];
25
- }
26
- const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
21
+ const DataGridRaw = forwardRef(function DataGrid(inProps, ref) {
27
22
  const props = useDataGridProps(inProps);
28
23
  const privateApiRef = useDataGridComponent(props.apiRef, props);
29
24
  if (process.env.NODE_ENV !== 'production') {
30
- validateProps(props, propValidators);
25
+ validateProps(props, propValidatorsDataGrid);
31
26
  }
32
27
  return /*#__PURE__*/_jsx(GridContextProvider, {
33
28
  privateApiRef: privateApiRef,
34
29
  configuration: configuration,
35
30
  props: props,
36
- children: /*#__PURE__*/_jsxs(GridRoot, _extends({
31
+ children: /*#__PURE__*/_jsx(GridRoot, _extends({
37
32
  className: props.className,
38
33
  style: props.style,
39
- sx: props.sx,
34
+ sx: props.sx
35
+ }, props.slotProps?.root, {
40
36
  ref: ref
41
- }, props.forwardedProps, {
42
- children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
43
37
  }))
44
38
  });
45
39
  });
@@ -60,7 +54,7 @@ DataGridRaw.propTypes = {
60
54
  * The ref object that allows Data Grid manipulation. Can be instantiated with `useGridApiRef()`.
61
55
  */
62
56
  apiRef: PropTypes.shape({
63
- current: PropTypes.object.isRequired
57
+ current: PropTypes.object
64
58
  }),
65
59
  /**
66
60
  * The label of the Data Grid.
@@ -95,6 +89,7 @@ DataGridRaw.propTypes = {
95
89
  */
96
90
  autosizeOptions: PropTypes.shape({
97
91
  columns: PropTypes.arrayOf(PropTypes.string),
92
+ disableColumnVirtualization: PropTypes.bool,
98
93
  expand: PropTypes.bool,
99
94
  includeHeaders: PropTypes.bool,
100
95
  includeOutliers: PropTypes.bool,
@@ -248,11 +243,6 @@ DataGridRaw.propTypes = {
248
243
  quickFilterLogicOperator: PropTypes.oneOf(['and', 'or']),
249
244
  quickFilterValues: PropTypes.array
250
245
  }),
251
- /**
252
- * Forwarded props for the Data Grid root element.
253
- * @ignore - do not document.
254
- */
255
- forwardedProps: PropTypes.object,
256
246
  /**
257
247
  * Function that applies CSS classes dynamically on cells.
258
248
  * @param {GridCellParams} params With all properties from [[GridCellParams]].
@@ -325,14 +315,6 @@ DataGridRaw.propTypes = {
325
315
  clipboardExport: PropTypes.bool,
326
316
  csvExport: PropTypes.bool
327
317
  }), PropTypes.bool]),
328
- /**
329
- * If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
330
- * will select all the rows under it.
331
- * If `deselect`, it will deselect all the rows under it.
332
- * Works only if `checkboxSelection` is enabled.
333
- * @default "deselect"
334
- */
335
- indeterminateCheckboxAction: PropTypes.oneOf(['deselect', 'select']),
336
318
  /**
337
319
  * The initial state of the DataGrid.
338
320
  * The data in it will be set in the state on initialization but will not be controlled.
@@ -690,14 +672,6 @@ DataGridRaw.propTypes = {
690
672
  * Controls the modes of the rows.
691
673
  */
692
674
  rowModesModel: PropTypes.object,
693
- /**
694
- * The milliseconds delay to wait after measuring the row height before recalculating row positions.
695
- * Setting it to a lower value could be useful when using dynamic row height,
696
- * but might reduce performance when displaying a large number of rows.
697
- * @default 166
698
- * @deprecated
699
- */
700
- rowPositionsDebounceMs: PropTypes.number,
701
675
  /**
702
676
  * Set of rows of type [[GridRowsProp]].
703
677
  * @default []
@@ -717,6 +691,11 @@ DataGridRaw.propTypes = {
717
691
  * @default "margin"
718
692
  */
719
693
  rowSpacingType: PropTypes.oneOf(['border', 'margin']),
694
+ /**
695
+ * If `true`, the Data Grid will auto span the cells over the rows having the same value.
696
+ * @default false
697
+ */
698
+ rowSpanning: PropTypes.bool,
720
699
  /**
721
700
  * Override the height/width of the Data Grid inner scrollbar.
722
701
  */
@@ -763,8 +742,11 @@ DataGridRaw.propTypes = {
763
742
  */
764
743
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
765
744
  /**
766
- * If `true`, the Data Grid will auto span the cells over the rows having the same value.
745
+ * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
746
+ * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
747
+ * For datasets with a large number of columns, this can cause performance issues.
748
+ * The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
767
749
  * @default false
768
750
  */
769
- unstable_rowSpanning: PropTypes.bool
751
+ virtualizeColumnsWithAutoRowHeight: PropTypes.bool
770
752
  };
@@ -41,9 +41,9 @@ export const useDataGridComponent = (inputApiRef, props) => {
41
41
  /**
42
42
  * Register all state initializers here.
43
43
  */
44
- useGridInitializeState(dimensionsStateInitializer, apiRef, props);
45
44
  useGridInitializeState(rowSelectionStateInitializer, apiRef, props);
46
45
  useGridInitializeState(columnsStateInitializer, apiRef, props);
46
+ useGridInitializeState(paginationStateInitializer, apiRef, props);
47
47
  useGridInitializeState(rowsStateInitializer, apiRef, props);
48
48
  useGridInitializeState(editingStateInitializer, apiRef, props);
49
49
  useGridInitializeState(focusStateInitializer, apiRef, props);
@@ -53,11 +53,11 @@ export const useDataGridComponent = (inputApiRef, props) => {
53
53
  useGridInitializeState(rowSpanningStateInitializer, apiRef, props);
54
54
  useGridInitializeState(densityStateInitializer, apiRef, props);
55
55
  useGridInitializeState(columnResizeStateInitializer, apiRef, props);
56
- useGridInitializeState(paginationStateInitializer, apiRef, props);
57
- useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
58
56
  useGridInitializeState(columnMenuStateInitializer, apiRef, props);
59
57
  useGridInitializeState(columnGroupsStateInitializer, apiRef, props);
60
58
  useGridInitializeState(virtualizationStateInitializer, apiRef, props);
59
+ useGridInitializeState(dimensionsStateInitializer, apiRef, props);
60
+ useGridInitializeState(rowsMetaStateInitializer, apiRef, props);
61
61
  useGridInitializeState(listViewStateInitializer, apiRef, props);
62
62
  useGridKeyboardNavigation(apiRef, props);
63
63
  useGridRowSelection(apiRef, props);
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { useThemeProps } from '@mui/material/styles';
4
4
  import { GRID_DEFAULT_LOCALE_TEXT } from "../constants/index.js";
5
5
  import { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from "../constants/defaultGridSlotsComponents.js";
6
- import { computeSlots, useProps } from "../internals/utils/index.js";
6
+ import { computeSlots } from "../internals/utils/index.js";
7
7
  import { DATA_GRID_PROPS_DEFAULT_VALUES } from "../constants/dataGridPropsDefaultValues.js";
8
8
  const DATA_GRID_FORCED_PROPS = {
9
9
  disableMultipleColumnsFiltering: true,
@@ -19,12 +19,12 @@ const DATA_GRID_FORCED_PROPS = {
19
19
  };
20
20
  const defaultSlots = DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
21
21
  export const useDataGridProps = inProps => {
22
- const themedProps = useProps(
22
+ const themedProps =
23
23
  // eslint-disable-next-line material-ui/mui-name-matches-component-name
24
24
  useThemeProps({
25
25
  props: inProps,
26
26
  name: 'MuiDataGrid'
27
- }));
27
+ });
28
28
  const localeText = React.useMemo(() => _extends({}, GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
29
29
  const slots = React.useMemo(() => computeSlots({
30
30
  defaultSlots,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridApiContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -4,10 +4,11 @@ const _excluded = ["className", "visibleColumns", "sortColumnLookup", "filterCol
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { fastMemo } from '@mui/x-internals/fastMemo';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridColumnHeaders } from "../hooks/features/columnHeaders/useGridColumnHeaders.js";
8
9
  import { GridBaseColumnHeaders } from "./columnHeaders/GridBaseColumnHeaders.js";
9
10
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
- const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
11
+ const GridColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {
11
12
  const {
12
13
  visibleColumns,
13
14
  sortColumnLookup,
@@ -41,9 +42,8 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeade
41
42
  columnGroupsHeaderStructure,
42
43
  hasOtherElementInTabSequence
43
44
  });
44
- return /*#__PURE__*/_jsxs(GridBaseColumnHeaders, _extends({
45
- ref: ref
46
- }, other, getInnerProps(), {
45
+ return /*#__PURE__*/_jsxs(GridBaseColumnHeaders, _extends({}, other, getInnerProps(), {
46
+ ref: ref,
47
47
  children: [getColumnGroupHeadersRows(), getColumnHeadersRow()]
48
48
  }));
49
49
  });
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const GridConfigurationContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import { forwardRef } from '@mui/x-internals/forwardRef';
4
5
  import { useGridSelector } from "../hooks/utils/useGridSelector.js";
5
6
  import { gridTopLevelRowCountSelector } from "../hooks/features/rows/gridRowsSelector.js";
6
7
  import { selectedGridRowsCountSelector } from "../hooks/features/rowSelection/gridRowSelectionSelector.js";
@@ -10,7 +11,7 @@ import { GridSelectedRowCount } from "./GridSelectedRowCount.js";
10
11
  import { GridFooterContainer } from "./containers/GridFooterContainer.js";
11
12
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
12
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- const GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(props, ref) {
14
+ const GridFooter = forwardRef(function GridFooter(props, ref) {
14
15
  const apiRef = useGridApiContext();
15
16
  const rootProps = useGridRootProps();
16
17
  const totalTopLevelRowCount = useGridSelector(apiRef, gridTopLevelRowCountSelector);
@@ -24,9 +25,8 @@ const GridFooter = /*#__PURE__*/React.forwardRef(function GridFooter(props, ref)
24
25
  visibleRowCount: visibleTopLevelRowCount
25
26
  })) : null;
26
27
  const paginationElement = rootProps.pagination && !rootProps.hideFooterPagination && rootProps.slots.pagination && /*#__PURE__*/_jsx(rootProps.slots.pagination, _extends({}, rootProps.slotProps?.pagination));
27
- return /*#__PURE__*/_jsxs(GridFooterContainer, _extends({
28
- ref: ref
29
- }, props, {
28
+ return /*#__PURE__*/_jsxs(GridFooterContainer, _extends({}, props, {
29
+ ref: ref,
30
30
  children: [selectedRowCountElement, rowCountElement, paginationElement]
31
31
  }));
32
32
  });
@@ -18,7 +18,7 @@ function GridHeaders() {
18
18
  const filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
19
19
  const sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
20
20
  const columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
21
- const cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
21
+ const hasNoCellTabIndexState = useGridSelector(apiRef, () => gridTabIndexCellSelector(apiRef) === null);
22
22
  const columnGroupHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnGroupHeaderSelector);
23
23
  const columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
24
24
  const columnGroupHeaderFocus = useGridSelector(apiRef, gridFocusColumnGroupHeaderSelector);
@@ -26,7 +26,7 @@ function GridHeaders() {
26
26
  const columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
27
27
  const columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
28
28
  const columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
29
- const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
29
+ const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && hasNoCellTabIndexState);
30
30
  const columnsContainerRef = apiRef.current.columnHeadersContainerRef;
31
31
  return /*#__PURE__*/_jsx(rootProps.slots.columnHeaders, _extends({
32
32
  ref: columnsContainerRef,
@@ -3,8 +3,8 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["variant", "noRowsVariant", "style"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import LinearProgress from '@mui/material/LinearProgress';
7
- import CircularProgress from '@mui/material/CircularProgress';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
+ import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
8
8
  import { GridOverlay } from "./containers/GridOverlay.js";
9
9
  import { GridSkeletonLoadingOverlay } from "./GridSkeletonLoadingOverlay.js";
10
10
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
@@ -12,23 +12,23 @@ import { gridRowCountSelector, useGridSelector } from "../hooks/index.js";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  const LOADING_VARIANTS = {
14
14
  'circular-progress': {
15
- component: CircularProgress,
15
+ component: rootProps => rootProps.slots.baseCircularProgress,
16
16
  style: {}
17
17
  },
18
18
  'linear-progress': {
19
- component: LinearProgress,
19
+ component: rootProps => rootProps.slots.baseLinearProgress,
20
20
  style: {
21
21
  display: 'block'
22
22
  }
23
23
  },
24
24
  skeleton: {
25
- component: GridSkeletonLoadingOverlay,
25
+ component: () => GridSkeletonLoadingOverlay,
26
26
  style: {
27
27
  display: 'block'
28
28
  }
29
29
  }
30
30
  };
31
- const GridLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridLoadingOverlay(props, ref) {
31
+ const GridLoadingOverlay = forwardRef(function GridLoadingOverlay(props, ref) {
32
32
  const {
33
33
  variant = 'linear-progress',
34
34
  noRowsVariant = 'skeleton',
@@ -36,13 +36,15 @@ const GridLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridLoadingOve
36
36
  } = props,
37
37
  other = _objectWithoutPropertiesLoose(props, _excluded);
38
38
  const apiRef = useGridApiContext();
39
+ const rootProps = useGridRootProps();
39
40
  const rowsCount = useGridSelector(apiRef, gridRowCountSelector);
40
41
  const activeVariant = LOADING_VARIANTS[rowsCount === 0 ? noRowsVariant : variant];
42
+ const Component = activeVariant.component(rootProps);
41
43
  return /*#__PURE__*/_jsx(GridOverlay, _extends({
42
- ref: ref,
43
44
  style: _extends({}, activeVariant.style, style)
44
45
  }, other, {
45
- children: /*#__PURE__*/_jsx(activeVariant.component, {})
46
+ ref: ref,
47
+ children: /*#__PURE__*/_jsx(Component, {})
46
48
  }));
47
49
  });
48
50
  process.env.NODE_ENV !== "production" ? GridLoadingOverlay.propTypes = {