@mui/x-data-grid 6.0.0-beta.4 → 6.0.0

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 (521) hide show
  1. package/CHANGELOG.md +204 -29
  2. package/DataGrid/DataGrid.js +10 -2
  3. package/DataGrid/useDataGridProps.js +25 -18
  4. package/colDef/gridSingleSelectColDef.js +13 -4
  5. package/components/GridColumnHeaders.d.ts +7 -0
  6. package/components/GridColumnHeaders.js +108 -0
  7. package/components/GridFooter.d.ts +1 -1
  8. package/components/GridFooter.js +2 -2
  9. package/components/GridHeader.js +2 -2
  10. package/components/GridLoadingOverlay.d.ts +1 -1
  11. package/components/GridNoResultsOverlay.d.ts +1 -1
  12. package/components/GridNoRowsOverlay.d.ts +1 -1
  13. package/components/GridRow.d.ts +13 -7
  14. package/components/GridRow.js +49 -31
  15. package/components/GridRowCount.d.ts +1 -1
  16. package/components/GridRowCount.js +4 -6
  17. package/components/GridScrollArea.js +4 -3
  18. package/components/GridSelectedRowCount.d.ts +1 -1
  19. package/components/GridSelectedRowCount.js +4 -6
  20. package/components/base/GridBody.d.ts +1 -4
  21. package/components/base/GridBody.js +43 -5
  22. package/components/base/GridFooterPlaceholder.js +2 -2
  23. package/components/base/GridOverlays.js +7 -7
  24. package/components/cell/GridActionsCell.js +4 -4
  25. package/components/cell/GridActionsCellItem.js +3 -3
  26. package/components/cell/GridBooleanCell.js +1 -1
  27. package/components/cell/GridCell.d.ts +2 -5
  28. package/components/cell/GridCell.js +14 -12
  29. package/components/cell/GridEditBooleanCell.js +3 -3
  30. package/components/cell/GridEditInputCell.js +3 -6
  31. package/components/cell/GridEditSingleSelectCell.d.ts +2 -8
  32. package/components/cell/GridEditSingleSelectCell.js +32 -16
  33. package/components/columnHeaders/ColumnHeaderMenuIcon.js +4 -4
  34. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +7 -0
  35. package/{modern/components/columnHeaders/GridColumnHeaders.js → components/columnHeaders/GridBaseColumnHeaders.js} +14 -20
  36. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +6 -6
  37. package/components/columnHeaders/GridColumnHeaderItem.js +5 -5
  38. package/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  39. package/components/columnHeaders/GridColumnHeaderSortIcon.js +7 -7
  40. package/components/columnHeaders/GridColumnHeaderTitle.js +10 -14
  41. package/components/columnHeaders/GridColumnHeadersInner.d.ts +1 -1
  42. package/components/columnHeaders/GridColumnHeadersInner.js +6 -6
  43. package/components/columnHeaders/GridIconButtonContainer.js +4 -6
  44. package/components/columnSelection/GridCellCheckboxRenderer.js +3 -3
  45. package/components/columnSelection/GridHeaderCheckbox.js +3 -3
  46. package/components/containers/GridFooterContainer.d.ts +1 -1
  47. package/components/containers/GridFooterContainer.js +10 -15
  48. package/components/containers/GridMainContainer.js +3 -5
  49. package/components/containers/GridOverlay.d.ts +1 -2
  50. package/components/containers/GridOverlay.js +7 -11
  51. package/components/containers/GridRoot.js +4 -5
  52. package/components/containers/GridRootStyles.d.ts +5 -1
  53. package/components/containers/GridRootStyles.js +7 -3
  54. package/components/containers/GridToolbarContainer.d.ts +1 -1
  55. package/components/containers/GridToolbarContainer.js +4 -6
  56. package/components/index.d.ts +1 -1
  57. package/components/index.js +1 -1
  58. package/components/menu/GridMenu.js +5 -7
  59. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -1
  60. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -1
  61. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -1
  62. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -2
  63. package/components/panel/GridColumnsPanel.js +16 -18
  64. package/components/panel/GridPanel.d.ts +6 -2
  65. package/components/panel/GridPanel.js +4 -0
  66. package/components/panel/GridPanelContent.d.ts +1 -1
  67. package/components/panel/GridPanelContent.js +4 -6
  68. package/components/panel/GridPanelFooter.d.ts +1 -1
  69. package/components/panel/GridPanelFooter.js +4 -6
  70. package/components/panel/GridPanelHeader.d.ts +1 -1
  71. package/components/panel/GridPanelHeader.js +4 -6
  72. package/components/panel/GridPanelWrapper.js +3 -5
  73. package/components/panel/GridPreferencesPanel.js +4 -4
  74. package/components/panel/filterPanel/GridFilterForm.js +50 -45
  75. package/components/panel/filterPanel/GridFilterInputBoolean.js +14 -11
  76. package/components/panel/filterPanel/GridFilterInputDate.js +4 -5
  77. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -8
  78. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +28 -20
  79. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +3 -3
  80. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +2 -8
  81. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +53 -25
  82. package/components/panel/filterPanel/GridFilterInputValue.js +4 -5
  83. package/components/panel/filterPanel/GridFilterPanel.d.ts +5 -3
  84. package/components/panel/filterPanel/GridFilterPanel.js +35 -11
  85. package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -2
  86. package/components/panel/filterPanel/filterPanelUtils.js +3 -9
  87. package/components/toolbar/GridToolbarColumnsButton.js +4 -4
  88. package/components/toolbar/GridToolbarDensitySelector.js +9 -9
  89. package/components/toolbar/GridToolbarExportContainer.js +4 -4
  90. package/components/toolbar/GridToolbarFilterButton.js +9 -11
  91. package/components/toolbar/GridToolbarQuickFilter.js +8 -7
  92. package/components/virtualization/GridVirtualScroller.d.ts +1 -1
  93. package/components/virtualization/GridVirtualScroller.js +4 -6
  94. package/components/virtualization/GridVirtualScrollerContent.d.ts +1 -1
  95. package/components/virtualization/GridVirtualScrollerContent.js +4 -4
  96. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +1 -1
  97. package/components/virtualization/GridVirtualScrollerRenderZone.js +4 -6
  98. package/constants/defaultGridSlotsComponents.js +5 -54
  99. package/constants/localeTextConstants.js +1 -0
  100. package/hooks/core/useGridLocaleText.js +2 -4
  101. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +22 -1
  102. package/hooks/features/columnHeaders/useGridColumnHeaders.js +19 -26
  103. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  104. package/hooks/features/columns/useGridColumns.js +5 -5
  105. package/hooks/features/filter/useGridFilter.d.ts +1 -1
  106. package/hooks/features/filter/useGridFilter.js +5 -5
  107. package/hooks/features/statePersistence/gridStatePersistenceInterface.d.ts +2 -0
  108. package/hooks/features/virtualization/useGridVirtualScroller.js +36 -19
  109. package/index.d.ts +3 -0
  110. package/index.js +5 -1
  111. package/internals/index.d.ts +4 -1
  112. package/internals/index.js +3 -2
  113. package/internals/utils/computeSlots.d.ts +6 -0
  114. package/internals/utils/computeSlots.js +17 -0
  115. package/internals/utils/index.d.ts +2 -0
  116. package/internals/utils/index.js +2 -0
  117. package/internals/utils/slotsMigration.d.ts +4 -0
  118. package/internals/utils/slotsMigration.js +13 -0
  119. package/legacy/DataGrid/DataGrid.js +10 -2
  120. package/legacy/DataGrid/useDataGridProps.js +21 -20
  121. package/legacy/colDef/gridSingleSelectColDef.js +13 -4
  122. package/legacy/components/GridColumnHeaders.js +106 -0
  123. package/legacy/components/GridFooter.js +2 -2
  124. package/legacy/components/GridHeader.js +2 -2
  125. package/legacy/components/GridRow.js +47 -31
  126. package/legacy/components/GridRowCount.js +4 -6
  127. package/legacy/components/GridScrollArea.js +4 -3
  128. package/legacy/components/GridSelectedRowCount.js +4 -6
  129. package/legacy/components/base/GridBody.js +43 -5
  130. package/legacy/components/base/GridFooterPlaceholder.js +2 -2
  131. package/legacy/components/base/GridOverlays.js +7 -7
  132. package/legacy/components/cell/GridActionsCell.js +4 -4
  133. package/legacy/components/cell/GridActionsCellItem.js +3 -3
  134. package/legacy/components/cell/GridBooleanCell.js +2 -2
  135. package/legacy/components/cell/GridCell.js +14 -12
  136. package/legacy/components/cell/GridEditBooleanCell.js +3 -3
  137. package/legacy/components/cell/GridEditInputCell.js +3 -6
  138. package/legacy/components/cell/GridEditSingleSelectCell.js +40 -23
  139. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +4 -4
  140. package/legacy/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +14 -19
  141. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +6 -6
  142. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +5 -5
  143. package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  144. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +7 -7
  145. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +12 -17
  146. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +6 -6
  147. package/legacy/components/columnHeaders/GridIconButtonContainer.js +4 -6
  148. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +3 -3
  149. package/legacy/components/columnSelection/GridHeaderCheckbox.js +3 -3
  150. package/legacy/components/containers/GridFooterContainer.js +10 -15
  151. package/legacy/components/containers/GridMainContainer.js +3 -5
  152. package/legacy/components/containers/GridOverlay.js +12 -17
  153. package/legacy/components/containers/GridRoot.js +5 -6
  154. package/legacy/components/containers/GridRootStyles.js +7 -3
  155. package/legacy/components/containers/GridToolbarContainer.js +4 -6
  156. package/legacy/components/index.js +1 -1
  157. package/legacy/components/menu/GridMenu.js +5 -7
  158. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -1
  159. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -1
  160. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -1
  161. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -2
  162. package/legacy/components/panel/GridColumnsPanel.js +16 -20
  163. package/legacy/components/panel/GridPanel.js +4 -0
  164. package/legacy/components/panel/GridPanelContent.js +4 -6
  165. package/legacy/components/panel/GridPanelFooter.js +4 -6
  166. package/legacy/components/panel/GridPanelHeader.js +4 -6
  167. package/legacy/components/panel/GridPanelWrapper.js +3 -5
  168. package/legacy/components/panel/GridPreferencesPanel.js +4 -4
  169. package/legacy/components/panel/filterPanel/GridFilterForm.js +50 -45
  170. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +14 -11
  171. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +4 -5
  172. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +32 -26
  173. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +3 -3
  174. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +52 -27
  175. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +4 -5
  176. package/legacy/components/panel/filterPanel/GridFilterPanel.js +36 -10
  177. package/legacy/components/panel/filterPanel/filterPanelUtils.js +3 -9
  178. package/legacy/components/toolbar/GridToolbarColumnsButton.js +4 -4
  179. package/legacy/components/toolbar/GridToolbarDensitySelector.js +9 -9
  180. package/legacy/components/toolbar/GridToolbarExportContainer.js +4 -4
  181. package/legacy/components/toolbar/GridToolbarFilterButton.js +9 -11
  182. package/legacy/components/toolbar/GridToolbarQuickFilter.js +8 -7
  183. package/legacy/components/virtualization/GridVirtualScroller.js +4 -6
  184. package/legacy/components/virtualization/GridVirtualScrollerContent.js +4 -4
  185. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +4 -6
  186. package/legacy/constants/defaultGridSlotsComponents.js +5 -54
  187. package/legacy/constants/localeTextConstants.js +1 -0
  188. package/legacy/hooks/core/useGridLocaleText.js +2 -4
  189. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +19 -26
  190. package/legacy/hooks/features/columns/useGridColumns.js +5 -5
  191. package/legacy/hooks/features/filter/useGridFilter.js +5 -5
  192. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +34 -17
  193. package/legacy/index.js +5 -1
  194. package/legacy/internals/index.js +3 -2
  195. package/legacy/internals/utils/computeSlots.js +16 -0
  196. package/legacy/internals/utils/index.js +2 -0
  197. package/legacy/internals/utils/slotsMigration.js +14 -0
  198. package/legacy/locales/arSD.js +15 -19
  199. package/legacy/locales/beBY.js +1 -0
  200. package/legacy/locales/bgBG.js +1 -0
  201. package/legacy/locales/csCZ.js +25 -32
  202. package/legacy/locales/daDK.js +1 -0
  203. package/legacy/locales/deDE.js +1 -0
  204. package/legacy/locales/elGR.js +1 -0
  205. package/legacy/locales/esES.js +2 -1
  206. package/legacy/locales/faIR.js +1 -0
  207. package/legacy/locales/fiFI.js +1 -0
  208. package/legacy/locales/frFR.js +1 -0
  209. package/legacy/locales/heIL.js +1 -0
  210. package/legacy/locales/huHU.js +1 -0
  211. package/legacy/locales/itIT.js +1 -0
  212. package/legacy/locales/jaJP.js +1 -0
  213. package/legacy/locales/koKR.js +1 -0
  214. package/legacy/locales/nbNO.js +1 -0
  215. package/legacy/locales/nlNL.js +1 -0
  216. package/legacy/locales/plPL.js +1 -0
  217. package/legacy/locales/ptBR.js +1 -0
  218. package/legacy/locales/roRO.js +1 -0
  219. package/legacy/locales/ruRU.js +1 -0
  220. package/legacy/locales/skSK.js +1 -0
  221. package/legacy/locales/svSE.js +1 -0
  222. package/legacy/locales/trTR.js +1 -0
  223. package/legacy/locales/ukUA.js +1 -0
  224. package/legacy/locales/urPK.js +1 -0
  225. package/legacy/locales/viVN.js +1 -0
  226. package/legacy/locales/zhCN.js +1 -0
  227. package/legacy/locales/zhTW.js +1 -0
  228. package/legacy/material/components/MUISelectOption.js +14 -0
  229. package/legacy/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +1 -1
  230. package/legacy/{components → material}/icons/index.js +7 -1
  231. package/legacy/material/index.js +65 -0
  232. package/legacy/models/gridFilterItem.js +2 -0
  233. package/legacy/models/params/gridRowParams.js +4 -0
  234. package/locales/arSD.js +15 -19
  235. package/locales/beBY.js +1 -0
  236. package/locales/bgBG.js +1 -0
  237. package/locales/csCZ.js +24 -31
  238. package/locales/daDK.js +1 -0
  239. package/locales/deDE.js +1 -0
  240. package/locales/elGR.js +1 -0
  241. package/locales/esES.js +2 -1
  242. package/locales/faIR.js +1 -0
  243. package/locales/fiFI.js +1 -0
  244. package/locales/frFR.js +1 -0
  245. package/locales/heIL.js +1 -0
  246. package/locales/huHU.js +1 -0
  247. package/locales/itIT.js +1 -0
  248. package/locales/jaJP.js +1 -0
  249. package/locales/koKR.js +1 -0
  250. package/locales/nbNO.js +1 -0
  251. package/locales/nlNL.js +1 -0
  252. package/locales/plPL.js +1 -0
  253. package/locales/ptBR.js +1 -0
  254. package/locales/roRO.js +1 -0
  255. package/locales/ruRU.js +1 -0
  256. package/locales/skSK.js +1 -0
  257. package/locales/svSE.js +1 -0
  258. package/locales/trTR.js +1 -0
  259. package/locales/ukUA.js +1 -0
  260. package/locales/urPK.js +1 -0
  261. package/locales/viVN.js +1 -0
  262. package/locales/zhCN.js +1 -0
  263. package/locales/zhTW.js +1 -0
  264. package/material/components/MUISelectOption.d.ts +3 -0
  265. package/material/components/MUISelectOption.js +16 -0
  266. package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +1 -1
  267. package/{components → material}/icons/index.d.ts +6 -0
  268. package/{components → material}/icons/index.js +7 -1
  269. package/material/index.d.ts +57 -0
  270. package/material/index.js +65 -0
  271. package/material/package.json +6 -0
  272. package/models/api/gridLocaleTextApi.d.ts +1 -0
  273. package/models/colDef/gridColDef.d.ts +19 -1
  274. package/models/gridExport.d.ts +4 -0
  275. package/models/gridFilterItem.d.ts +2 -0
  276. package/models/gridFilterItem.js +2 -0
  277. package/models/gridFilterModel.d.ts +2 -0
  278. package/models/gridFilterOperator.d.ts +2 -0
  279. package/models/gridIconSlotsComponent.d.ts +22 -2
  280. package/models/gridSlotsComponent.d.ts +18 -1
  281. package/models/gridSlotsComponentsProps.d.ts +103 -23
  282. package/models/params/gridRowParams.d.ts +6 -0
  283. package/models/params/gridRowParams.js +4 -0
  284. package/models/props/DataGridProps.d.ts +13 -2
  285. package/modern/DataGrid/DataGrid.js +10 -2
  286. package/modern/DataGrid/useDataGridProps.js +21 -17
  287. package/modern/colDef/gridSingleSelectColDef.js +13 -4
  288. package/modern/components/GridColumnHeaders.js +108 -0
  289. package/modern/components/GridFooter.js +1 -1
  290. package/modern/components/GridHeader.js +1 -1
  291. package/modern/components/GridRow.js +49 -28
  292. package/modern/components/GridRowCount.js +4 -6
  293. package/modern/components/GridScrollArea.js +4 -3
  294. package/modern/components/GridSelectedRowCount.js +4 -6
  295. package/modern/components/base/GridBody.js +43 -5
  296. package/modern/components/base/GridFooterPlaceholder.js +1 -1
  297. package/modern/components/base/GridOverlays.js +4 -4
  298. package/modern/components/cell/GridActionsCell.js +3 -3
  299. package/modern/components/cell/GridActionsCellItem.js +2 -2
  300. package/modern/components/cell/GridBooleanCell.js +1 -1
  301. package/modern/components/cell/GridCell.js +14 -12
  302. package/modern/components/cell/GridEditBooleanCell.js +2 -2
  303. package/modern/components/cell/GridEditInputCell.js +3 -6
  304. package/modern/components/cell/GridEditSingleSelectCell.js +30 -15
  305. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  306. package/{components/columnHeaders/GridColumnHeaders.js → modern/components/columnHeaders/GridBaseColumnHeaders.js} +14 -20
  307. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +5 -5
  308. package/modern/components/columnHeaders/GridColumnHeaderItem.js +4 -4
  309. package/modern/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  310. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +6 -6
  311. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +9 -13
  312. package/modern/components/columnHeaders/GridColumnHeadersInner.js +6 -6
  313. package/modern/components/columnHeaders/GridIconButtonContainer.js +4 -6
  314. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  315. package/modern/components/columnSelection/GridHeaderCheckbox.js +2 -2
  316. package/modern/components/containers/GridFooterContainer.js +10 -15
  317. package/modern/components/containers/GridMainContainer.js +3 -5
  318. package/modern/components/containers/GridOverlay.js +7 -11
  319. package/modern/components/containers/GridRoot.js +4 -5
  320. package/modern/components/containers/GridRootStyles.js +7 -3
  321. package/modern/components/containers/GridToolbarContainer.js +4 -6
  322. package/modern/components/index.js +1 -1
  323. package/modern/components/menu/GridMenu.js +4 -6
  324. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -1
  325. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -1
  326. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -1
  327. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -2
  328. package/modern/components/panel/GridColumnsPanel.js +14 -16
  329. package/modern/components/panel/GridPanel.js +4 -0
  330. package/modern/components/panel/GridPanelContent.js +4 -6
  331. package/modern/components/panel/GridPanelFooter.js +4 -6
  332. package/modern/components/panel/GridPanelHeader.js +4 -6
  333. package/modern/components/panel/GridPanelWrapper.js +3 -5
  334. package/modern/components/panel/GridPreferencesPanel.js +3 -3
  335. package/modern/components/panel/filterPanel/GridFilterForm.js +49 -44
  336. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +13 -10
  337. package/modern/components/panel/filterPanel/GridFilterInputDate.js +3 -4
  338. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +24 -17
  339. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  340. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +52 -24
  341. package/modern/components/panel/filterPanel/GridFilterInputValue.js +3 -4
  342. package/modern/components/panel/filterPanel/GridFilterPanel.js +34 -10
  343. package/modern/components/panel/filterPanel/filterPanelUtils.js +3 -9
  344. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -3
  345. package/modern/components/toolbar/GridToolbarDensitySelector.js +8 -8
  346. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -3
  347. package/modern/components/toolbar/GridToolbarFilterButton.js +8 -10
  348. package/modern/components/toolbar/GridToolbarQuickFilter.js +7 -6
  349. package/modern/components/virtualization/GridVirtualScroller.js +4 -6
  350. package/modern/components/virtualization/GridVirtualScrollerContent.js +4 -4
  351. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +4 -6
  352. package/modern/constants/defaultGridSlotsComponents.js +5 -54
  353. package/modern/constants/localeTextConstants.js +1 -0
  354. package/modern/hooks/core/useGridLocaleText.js +2 -4
  355. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +19 -26
  356. package/modern/hooks/features/columns/useGridColumns.js +3 -3
  357. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  358. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +34 -18
  359. package/modern/index.js +5 -1
  360. package/modern/internals/index.js +3 -2
  361. package/modern/internals/utils/computeSlots.js +17 -0
  362. package/modern/internals/utils/index.js +2 -0
  363. package/modern/internals/utils/slotsMigration.js +13 -0
  364. package/modern/locales/arSD.js +15 -19
  365. package/modern/locales/beBY.js +1 -0
  366. package/modern/locales/bgBG.js +1 -0
  367. package/modern/locales/csCZ.js +24 -31
  368. package/modern/locales/daDK.js +1 -0
  369. package/modern/locales/deDE.js +1 -0
  370. package/modern/locales/elGR.js +1 -0
  371. package/modern/locales/esES.js +2 -1
  372. package/modern/locales/faIR.js +1 -0
  373. package/modern/locales/fiFI.js +1 -0
  374. package/modern/locales/frFR.js +1 -0
  375. package/modern/locales/heIL.js +1 -0
  376. package/modern/locales/huHU.js +1 -0
  377. package/modern/locales/itIT.js +1 -0
  378. package/modern/locales/jaJP.js +1 -0
  379. package/modern/locales/koKR.js +1 -0
  380. package/modern/locales/nbNO.js +1 -0
  381. package/modern/locales/nlNL.js +1 -0
  382. package/modern/locales/plPL.js +1 -0
  383. package/modern/locales/ptBR.js +1 -0
  384. package/modern/locales/roRO.js +1 -0
  385. package/modern/locales/ruRU.js +1 -0
  386. package/modern/locales/skSK.js +1 -0
  387. package/modern/locales/svSE.js +1 -0
  388. package/modern/locales/trTR.js +1 -0
  389. package/modern/locales/ukUA.js +1 -0
  390. package/modern/locales/urPK.js +1 -0
  391. package/modern/locales/viVN.js +1 -0
  392. package/modern/locales/zhCN.js +1 -0
  393. package/modern/locales/zhTW.js +1 -0
  394. package/modern/material/components/MUISelectOption.js +16 -0
  395. package/modern/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +1 -1
  396. package/modern/{components → material}/icons/index.js +7 -1
  397. package/modern/material/index.js +65 -0
  398. package/modern/models/gridFilterItem.js +2 -0
  399. package/modern/models/params/gridRowParams.js +4 -0
  400. package/node/DataGrid/DataGrid.js +10 -2
  401. package/node/DataGrid/useDataGridProps.js +21 -17
  402. package/node/colDef/gridSingleSelectColDef.js +12 -3
  403. package/node/components/GridColumnHeaders.js +116 -0
  404. package/node/components/GridFooter.js +1 -1
  405. package/node/components/GridHeader.js +1 -1
  406. package/node/components/GridRow.js +49 -28
  407. package/node/components/GridRowCount.js +5 -7
  408. package/node/components/GridScrollArea.js +5 -4
  409. package/node/components/GridSelectedRowCount.js +5 -7
  410. package/node/components/base/GridBody.js +43 -5
  411. package/node/components/base/GridFooterPlaceholder.js +1 -1
  412. package/node/components/base/GridOverlays.js +6 -6
  413. package/node/components/cell/GridActionsCell.js +3 -3
  414. package/node/components/cell/GridActionsCellItem.js +2 -2
  415. package/node/components/cell/GridBooleanCell.js +1 -1
  416. package/node/components/cell/GridCell.js +14 -11
  417. package/node/components/cell/GridEditBooleanCell.js +2 -2
  418. package/node/components/cell/GridEditInputCell.js +3 -6
  419. package/node/components/cell/GridEditSingleSelectCell.js +28 -14
  420. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  421. package/node/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +17 -23
  422. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +5 -5
  423. package/node/components/columnHeaders/GridColumnHeaderItem.js +4 -4
  424. package/node/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  425. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +6 -6
  426. package/node/components/columnHeaders/GridColumnHeaderTitle.js +10 -14
  427. package/node/components/columnHeaders/GridColumnHeadersInner.js +7 -7
  428. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -7
  429. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  430. package/node/components/columnSelection/GridHeaderCheckbox.js +2 -2
  431. package/node/components/containers/GridFooterContainer.js +11 -16
  432. package/node/components/containers/GridMainContainer.js +4 -6
  433. package/node/components/containers/GridOverlay.js +8 -12
  434. package/node/components/containers/GridRoot.js +4 -5
  435. package/node/components/containers/GridRootStyles.js +7 -3
  436. package/node/components/containers/GridToolbarContainer.js +5 -7
  437. package/node/components/index.js +1 -1
  438. package/node/components/menu/GridMenu.js +4 -6
  439. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -1
  440. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -1
  441. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -1
  442. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -2
  443. package/node/components/panel/GridColumnsPanel.js +14 -16
  444. package/node/components/panel/GridPanel.js +4 -0
  445. package/node/components/panel/GridPanelContent.js +5 -7
  446. package/node/components/panel/GridPanelFooter.js +5 -7
  447. package/node/components/panel/GridPanelHeader.js +5 -7
  448. package/node/components/panel/GridPanelWrapper.js +3 -5
  449. package/node/components/panel/GridPreferencesPanel.js +3 -3
  450. package/node/components/panel/filterPanel/GridFilterForm.js +48 -44
  451. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +13 -10
  452. package/node/components/panel/filterPanel/GridFilterInputDate.js +3 -4
  453. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +23 -16
  454. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  455. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +50 -23
  456. package/node/components/panel/filterPanel/GridFilterInputValue.js +3 -4
  457. package/node/components/panel/filterPanel/GridFilterPanel.js +34 -10
  458. package/node/components/panel/filterPanel/filterPanelUtils.js +3 -10
  459. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -3
  460. package/node/components/toolbar/GridToolbarDensitySelector.js +8 -8
  461. package/node/components/toolbar/GridToolbarExportContainer.js +3 -3
  462. package/node/components/toolbar/GridToolbarFilterButton.js +8 -10
  463. package/node/components/toolbar/GridToolbarQuickFilter.js +7 -6
  464. package/node/components/virtualization/GridVirtualScroller.js +5 -7
  465. package/node/components/virtualization/GridVirtualScrollerContent.js +5 -5
  466. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -7
  467. package/node/constants/defaultGridSlotsComponents.js +4 -53
  468. package/node/constants/localeTextConstants.js +1 -0
  469. package/node/hooks/core/useGridLocaleText.js +2 -4
  470. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +21 -28
  471. package/node/hooks/features/columns/useGridColumns.js +3 -3
  472. package/node/hooks/features/filter/useGridFilter.js +3 -3
  473. package/node/hooks/features/virtualization/useGridVirtualScroller.js +33 -16
  474. package/node/index.js +9 -1
  475. package/node/internals/index.js +94 -4
  476. package/node/internals/utils/computeSlots.js +23 -0
  477. package/node/internals/utils/index.js +27 -0
  478. package/node/internals/utils/slotsMigration.js +21 -0
  479. package/node/locales/arSD.js +15 -19
  480. package/node/locales/beBY.js +1 -0
  481. package/node/locales/bgBG.js +1 -0
  482. package/node/locales/csCZ.js +24 -31
  483. package/node/locales/daDK.js +1 -0
  484. package/node/locales/deDE.js +1 -0
  485. package/node/locales/elGR.js +1 -0
  486. package/node/locales/esES.js +2 -1
  487. package/node/locales/faIR.js +1 -0
  488. package/node/locales/fiFI.js +1 -0
  489. package/node/locales/frFR.js +1 -0
  490. package/node/locales/heIL.js +1 -0
  491. package/node/locales/huHU.js +1 -0
  492. package/node/locales/itIT.js +1 -0
  493. package/node/locales/jaJP.js +1 -0
  494. package/node/locales/koKR.js +1 -0
  495. package/node/locales/nbNO.js +1 -0
  496. package/node/locales/nlNL.js +1 -0
  497. package/node/locales/plPL.js +1 -0
  498. package/node/locales/ptBR.js +1 -0
  499. package/node/locales/roRO.js +1 -0
  500. package/node/locales/ruRU.js +1 -0
  501. package/node/locales/skSK.js +1 -0
  502. package/node/locales/svSE.js +1 -0
  503. package/node/locales/trTR.js +1 -0
  504. package/node/locales/ukUA.js +1 -0
  505. package/node/locales/urPK.js +1 -0
  506. package/node/locales/viVN.js +1 -0
  507. package/node/locales/zhCN.js +1 -0
  508. package/node/locales/zhTW.js +1 -0
  509. package/node/{components/DataGridColumnHeaders.js → material/components/MUISelectOption.js} +13 -35
  510. package/node/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +1 -1
  511. package/node/{components → material}/icons/index.js +10 -2
  512. package/node/material/index.js +73 -0
  513. package/node/models/gridFilterItem.js +2 -0
  514. package/node/models/params/gridRowParams.js +4 -0
  515. package/package.json +1 -1
  516. package/components/DataGridColumnHeaders.d.ts +0 -6
  517. package/components/DataGridColumnHeaders.js +0 -38
  518. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -7
  519. package/legacy/components/DataGridColumnHeaders.js +0 -36
  520. package/modern/components/DataGridColumnHeaders.js +0 -38
  521. /package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.d.ts +0 -0
@@ -52,10 +52,7 @@ function GridMenu(props) {
52
52
  other = _objectWithoutPropertiesLoose(props, _excluded);
53
53
  const apiRef = useGridApiContext();
54
54
  const rootProps = useGridRootProps();
55
- const ownerState = {
56
- classes: rootProps.classes
57
- };
58
- const classes = useUtilityClasses(ownerState);
55
+ const classes = useUtilityClasses(rootProps);
59
56
  React.useEffect(() => {
60
57
  // Emit menuOpen or menuClose events
61
58
  const eventName = open ? 'menuOpen' : 'menuClose';
@@ -72,13 +69,14 @@ function GridMenu(props) {
72
69
  }
73
70
  };
74
71
  return /*#__PURE__*/_jsx(GridMenuRoot, _extends({
75
- as: rootProps.components.BasePopper,
72
+ as: rootProps.slots.basePopper,
76
73
  className: clsx(className, classes.root),
74
+ ownerState: rootProps,
77
75
  open: open,
78
76
  anchorEl: target,
79
77
  transition: true,
80
78
  placement: position
81
- }, other, rootProps.componentsProps?.basePopper, {
79
+ }, other, rootProps.slotProps?.basePopper, {
82
80
  children: ({
83
81
  TransitionProps,
84
82
  placement
@@ -24,7 +24,7 @@ function GridColumnMenuFilterItem(props) {
24
24
  return /*#__PURE__*/_jsxs(MenuItem, {
25
25
  onClick: showFilter,
26
26
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
27
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuFilterIcon, {
27
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuFilterIcon, {
28
28
  fontSize: "small"
29
29
  })
30
30
  }), /*#__PURE__*/_jsx(ListItemText, {
@@ -41,7 +41,7 @@ function GridColumnMenuHideItem(props) {
41
41
  onClick: toggleColumn,
42
42
  disabled: disabled,
43
43
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
44
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuHideIcon, {
44
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuHideIcon, {
45
45
  fontSize: "small"
46
46
  })
47
47
  }), /*#__PURE__*/_jsx(ListItemText, {
@@ -24,7 +24,7 @@ function GridColumnMenuManageItem(props) {
24
24
  return /*#__PURE__*/_jsxs(MenuItem, {
25
25
  onClick: showColumns,
26
26
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
27
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuManageColumnsIcon, {
27
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuManageColumnsIcon, {
28
28
  fontSize: "small"
29
29
  })
30
30
  }), /*#__PURE__*/_jsx(ListItemText, {
@@ -38,7 +38,7 @@ function GridColumnMenuSortItem(props) {
38
38
  onClick: onSortMenuItemClick,
39
39
  "data-value": "asc",
40
40
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
41
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuSortAscendingIcon, {
41
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortAscendingIcon, {
42
42
  fontSize: "small"
43
43
  })
44
44
  }), /*#__PURE__*/_jsx(ListItemText, {
@@ -48,7 +48,7 @@ function GridColumnMenuSortItem(props) {
48
48
  onClick: onSortMenuItemClick,
49
49
  "data-value": "desc",
50
50
  children: [/*#__PURE__*/_jsx(ListItemIcon, {
51
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuSortDescendingIcon, {
51
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuSortDescendingIcon, {
52
52
  fontSize: "small"
53
53
  })
54
54
  }), /*#__PURE__*/_jsx(ListItemText, {
@@ -11,7 +11,6 @@ import { styled } from '@mui/material/styles';
11
11
  import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../../hooks/features/columns/gridColumnsSelector';
12
12
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
13
13
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
14
- import { GridDragIcon } from '../icons';
15
14
  import { GridPanelContent } from './GridPanelContent';
16
15
  import { GridPanelFooter } from './GridPanelFooter';
17
16
  import { GridPanelHeader } from './GridPanelHeader';
@@ -35,9 +34,9 @@ const GridColumnsPanelRoot = styled('div', {
35
34
  name: 'MuiDataGrid',
36
35
  slot: 'ColumnsPanel',
37
36
  overridesResolver: (props, styles) => styles.columnsPanel
38
- })(() => ({
37
+ })({
39
38
  padding: '8px 0px 8px 8px'
40
- }));
39
+ });
41
40
  const GridColumnsPanelRowRoot = styled('div', {
42
41
  name: 'MuiDataGrid',
43
42
  slot: 'ColumnsPanelRow',
@@ -66,10 +65,7 @@ function GridColumnsPanel(props) {
66
65
  const columnVisibilityModel = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
67
66
  const rootProps = useGridRootProps();
68
67
  const [searchValue, setSearchValue] = React.useState('');
69
- const ownerState = {
70
- classes: rootProps.classes
71
- };
72
- const classes = useUtilityClasses(ownerState);
68
+ const classes = useUtilityClasses(rootProps);
73
69
  const {
74
70
  sort,
75
71
  searchPredicate = defaultSearchPredicate,
@@ -137,7 +133,7 @@ function GridColumnsPanel(props) {
137
133
  };
138
134
  return /*#__PURE__*/_jsxs(GridPanelWrapper, _extends({}, other, {
139
135
  children: [/*#__PURE__*/_jsx(GridPanelHeader, {
140
- children: /*#__PURE__*/_jsx(rootProps.components.BaseTextField, _extends({
136
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
141
137
  label: apiRef.current.getLocaleText('columnsPanelTextFieldLabel'),
142
138
  placeholder: apiRef.current.getLocaleText('columnsPanelTextFieldPlaceholder'),
143
139
  inputRef: searchInputRef,
@@ -145,21 +141,23 @@ function GridColumnsPanel(props) {
145
141
  onChange: handleSearchValueChange,
146
142
  variant: "standard",
147
143
  fullWidth: true
148
- }, rootProps.componentsProps?.baseTextField))
144
+ }, rootProps.slotProps?.baseTextField))
149
145
  }), /*#__PURE__*/_jsx(GridPanelContent, {
150
146
  children: /*#__PURE__*/_jsx(GridColumnsPanelRoot, {
151
147
  className: classes.root,
148
+ ownerState: rootProps,
152
149
  children: currentColumns.map(column => /*#__PURE__*/_jsxs(GridColumnsPanelRowRoot, {
153
150
  className: classes.columnsPanelRow,
151
+ ownerState: rootProps,
154
152
  children: [/*#__PURE__*/_jsx(FormControlLabel, {
155
- control: /*#__PURE__*/_jsx(rootProps.components.BaseSwitch, _extends({
153
+ control: /*#__PURE__*/_jsx(rootProps.slots.baseSwitch, _extends({
156
154
  disabled: column.hideable === false,
157
155
  checked: columnVisibilityModel[column.field] !== false,
158
156
  onClick: toggleColumn,
159
157
  name: column.field,
160
158
  size: "small",
161
159
  inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined
162
- }, rootProps.componentsProps?.baseSwitch)),
160
+ }, rootProps.slotProps?.baseSwitch)),
163
161
  label: column.headerName || column.field
164
162
  }), !rootProps.disableColumnReorder && GRID_EXPERIMENTAL_ENABLED && /*#__PURE__*/_jsx(GridIconButtonRoot, {
165
163
  draggable: true,
@@ -167,19 +165,19 @@ function GridColumnsPanel(props) {
167
165
  title: apiRef.current.getLocaleText('columnsPanelDragIconLabel'),
168
166
  size: "small",
169
167
  disabled: true,
170
- children: /*#__PURE__*/_jsx(GridDragIcon, {})
168
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnReorderIcon, {})
171
169
  })]
172
170
  }, column.field))
173
171
  })
174
172
  }), disableShowAllButton && disableHideAllButton ? null : /*#__PURE__*/_jsxs(GridPanelFooter, {
175
- children: [!disableHideAllButton ? /*#__PURE__*/_jsx(rootProps.components.BaseButton, _extends({
173
+ children: [!disableHideAllButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
176
174
  onClick: () => toggleAllColumns(false)
177
- }, rootProps.componentsProps?.baseButton, {
175
+ }, rootProps.slotProps?.baseButton, {
178
176
  disabled: disableHideAllButton,
179
177
  children: apiRef.current.getLocaleText('columnsPanelHideAllButton')
180
- })) : /*#__PURE__*/_jsx("span", {}), !disableShowAllButton ? /*#__PURE__*/_jsx(rootProps.components.BaseButton, _extends({
178
+ })) : /*#__PURE__*/_jsx("span", {}), !disableShowAllButton ? /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
181
179
  onClick: () => toggleAllColumns(true)
182
- }, rootProps.componentsProps?.baseButton, {
180
+ }, rootProps.slotProps?.baseButton, {
183
181
  disabled: disableShowAllButton,
184
182
  children: apiRef.current.getLocaleText('columnsPanelShowAllButton')
185
183
  })) : null]
@@ -12,6 +12,7 @@ import Popper from '@mui/material/Popper';
12
12
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
13
13
  import { isEscapeKey } from '../../utils/keyboardUtils';
14
14
  import { gridClasses } from '../../constants/gridClasses';
15
+ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
15
16
  import { jsx as _jsx } from "react/jsx-runtime";
16
17
  export const gridPanelClasses = generateUtilityClasses('MuiDataGrid', ['panel', 'paper']);
17
18
  const GridPanelRoot = styled(Popper, {
@@ -42,6 +43,7 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
42
43
  } = props,
43
44
  other = _objectWithoutPropertiesLoose(props, _excluded);
44
45
  const apiRef = useGridApiContext();
46
+ const rootProps = useGridRootProps();
45
47
  const classes = gridPanelClasses;
46
48
  const [isPlaced, setIsPlaced] = React.useState(false);
47
49
  const handleClickAway = React.useCallback(() => {
@@ -80,6 +82,7 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
80
82
  ref: ref,
81
83
  placement: "bottom-start",
82
84
  className: clsx(className, classes.panel),
85
+ ownerState: rootProps,
83
86
  anchorEl: anchorEl,
84
87
  modifiers: modifiers
85
88
  }, other, {
@@ -88,6 +91,7 @@ const GridPanel = /*#__PURE__*/React.forwardRef((props, ref) => {
88
91
  onClickAway: handleClickAway,
89
92
  children: /*#__PURE__*/_jsx(GridPaperRoot, {
90
93
  className: classes.paper,
94
+ ownerState: rootProps,
91
95
  elevation: 8,
92
96
  onKeyDown: handleKeyDown,
93
97
  children: isPlaced && children
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -35,12 +35,10 @@ function GridPanelContent(props) {
35
35
  } = props,
36
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
37
37
  const rootProps = useGridRootProps();
38
- const ownerState = {
39
- classes: rootProps.classes
40
- };
41
- const classes = useUtilityClasses(ownerState);
38
+ const classes = useUtilityClasses(rootProps);
42
39
  return /*#__PURE__*/_jsx(GridPanelContentRoot, _extends({
43
- className: clsx(className, classes.root)
40
+ className: clsx(className, classes.root),
41
+ ownerState: rootProps
44
42
  }, other));
45
43
  }
46
44
  process.env.NODE_ENV !== "production" ? GridPanelContent.propTypes = {
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -35,12 +35,10 @@ function GridPanelFooter(props) {
35
35
  } = props,
36
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
37
37
  const rootProps = useGridRootProps();
38
- const ownerState = {
39
- classes: rootProps.classes
40
- };
41
- const classes = useUtilityClasses(ownerState);
38
+ const classes = useUtilityClasses(rootProps);
42
39
  return /*#__PURE__*/_jsx(GridPanelFooterRoot, _extends({
43
- className: clsx(className, classes.root)
40
+ className: clsx(className, classes.root),
41
+ ownerState: rootProps
44
42
  }, other));
45
43
  }
46
44
  process.env.NODE_ENV !== "production" ? GridPanelFooter.propTypes = {
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -33,12 +33,10 @@ function GridPanelHeader(props) {
33
33
  } = props,
34
34
  other = _objectWithoutPropertiesLoose(props, _excluded);
35
35
  const rootProps = useGridRootProps();
36
- const ownerState = {
37
- classes: rootProps.classes
38
- };
39
- const classes = useUtilityClasses(ownerState);
36
+ const classes = useUtilityClasses(rootProps);
40
37
  return /*#__PURE__*/_jsx(GridPanelHeaderRoot, _extends({
41
- className: clsx(className, classes.root)
38
+ className: clsx(className, classes.root),
39
+ ownerState: rootProps
42
40
  }, other));
43
41
  }
44
42
  process.env.NODE_ENV !== "production" ? GridPanelHeader.propTypes = {
@@ -39,10 +39,7 @@ const GridPanelWrapper = /*#__PURE__*/React.forwardRef(function GridPanelWrapper
39
39
  } = props,
40
40
  other = _objectWithoutPropertiesLoose(props, _excluded);
41
41
  const rootProps = useGridRootProps();
42
- const ownerState = {
43
- classes: rootProps.classes
44
- };
45
- const classes = useUtilityClasses(ownerState);
42
+ const classes = useUtilityClasses(rootProps);
46
43
  return /*#__PURE__*/_jsx(TrapFocus, _extends({
47
44
  open: true,
48
45
  disableEnforceFocus: true,
@@ -51,7 +48,8 @@ const GridPanelWrapper = /*#__PURE__*/React.forwardRef(function GridPanelWrapper
51
48
  children: /*#__PURE__*/_jsx(GridPanelWrapperRoot, _extends({
52
49
  ref: ref,
53
50
  tabIndex: -1,
54
- className: clsx(className, classes.root)
51
+ className: clsx(className, classes.root),
52
+ ownerState: rootProps
55
53
  }, other))
56
54
  }));
57
55
  });
@@ -13,11 +13,11 @@ export const GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridP
13
13
  const rootProps = useGridRootProps();
14
14
  const preferencePanelState = useGridSelector(apiRef, gridPreferencePanelStateSelector);
15
15
  const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, preferencePanelState.openedPanelValue ?? GridPreferencePanelsValue.filters);
16
- return /*#__PURE__*/_jsx(rootProps.components.Panel, _extends({
16
+ return /*#__PURE__*/_jsx(rootProps.slots.panel, _extends({
17
17
  ref: ref,
18
- as: rootProps.components.BasePopper,
18
+ as: rootProps.slots.basePopper,
19
19
  open: columns.length > 0 && preferencePanelState.open
20
- }, rootProps.componentsProps?.panel, props, rootProps.componentsProps?.basePopper, {
20
+ }, rootProps.slotProps?.panel, props, rootProps.slotProps?.basePopper, {
21
21
  children: panelContent
22
22
  }));
23
23
  });
@@ -5,9 +5,6 @@ const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterCha
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_capitalize as capitalize } from '@mui/utils';
8
- import MenuItem from '@mui/material/MenuItem';
9
- import InputLabel from '@mui/material/InputLabel';
10
- import FormControl from '@mui/material/FormControl';
11
8
  import { styled } from '@mui/material/styles';
12
9
  import clsx from 'clsx';
13
10
  import { gridFilterableColumnDefinitionsSelector } from '../../../hooks/features/columns/gridColumnsSelector';
@@ -18,6 +15,7 @@ import { useGridApiContext } from '../../../hooks/utils/useGridApiContext';
18
15
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
19
16
  import { getDataGridUtilityClass } from '../../../constants/gridClasses';
20
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
+ import { createElement as _createElement } from "react";
21
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
22
20
  const useUtilityClasses = ownerState => {
23
21
  const {
@@ -43,7 +41,7 @@ const GridFilterFormRoot = styled('div', {
43
41
  display: 'flex',
44
42
  padding: theme.spacing(1)
45
43
  }));
46
- const FilterFormDeleteIcon = styled(FormControl, {
44
+ const FilterFormDeleteIcon = styled('div', {
47
45
  name: 'MuiDataGrid',
48
46
  slot: 'FilterFormDeleteIcon',
49
47
  overridesResolver: (_, styles) => styles.filterFormDeleteIcon
@@ -55,7 +53,7 @@ const FilterFormDeleteIcon = styled(FormControl, {
55
53
  marginRight: theme.spacing(0.5),
56
54
  marginBottom: theme.spacing(0.2)
57
55
  }));
58
- const FilterFormLogicOperatorInput = styled(FormControl, {
56
+ const FilterFormLogicOperatorInput = styled('div', {
59
57
  name: 'MuiDataGrid',
60
58
  slot: 'FilterFormLogicOperatorInput',
61
59
  overridesResolver: (_, styles) => styles.filterFormLogicOperatorInput
@@ -64,21 +62,21 @@ const FilterFormLogicOperatorInput = styled(FormControl, {
64
62
  marginRight: 5,
65
63
  justifyContent: 'end'
66
64
  });
67
- const FilterFormColumnInput = styled(FormControl, {
65
+ const FilterFormColumnInput = styled('div', {
68
66
  name: 'MuiDataGrid',
69
67
  slot: 'FilterFormColumnInput',
70
68
  overridesResolver: (_, styles) => styles.filterFormColumnInput
71
69
  })({
72
70
  width: 150
73
71
  });
74
- const FilterFormOperatorInput = styled(FormControl, {
72
+ const FilterFormOperatorInput = styled('div', {
75
73
  name: 'MuiDataGrid',
76
74
  slot: 'FilterFormOperatorInput',
77
75
  overridesResolver: (_, styles) => styles.filterFormOperatorInput
78
76
  })({
79
77
  width: 120
80
78
  });
81
- const FilterFormValueInput = styled(FormControl, {
79
+ const FilterFormValueInput = styled('div', {
82
80
  name: 'MuiDataGrid',
83
81
  slot: 'FilterFormValueInput',
84
82
  overridesResolver: (_, styles) => styles.filterFormValueInput
@@ -126,17 +124,15 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
126
124
  const operatorSelectId = useId();
127
125
  const operatorSelectLabelId = useId();
128
126
  const rootProps = useGridRootProps();
129
- const ownerState = {
130
- classes: rootProps.classes
131
- };
132
- const classes = useUtilityClasses(ownerState);
127
+ const classes = useUtilityClasses(rootProps);
133
128
  const valueRef = React.useRef(null);
134
129
  const filterSelectorRef = React.useRef(null);
135
130
  const hasLogicOperatorColumn = hasMultipleFilters && logicOperators.length > 0;
136
- const baseFormControlProps = rootProps.componentsProps?.baseFormControl || {};
137
- const baseSelectProps = rootProps.componentsProps?.baseSelect || {};
131
+ const baseFormControlProps = rootProps.slotProps?.baseFormControl || {};
132
+ const baseSelectProps = rootProps.slotProps?.baseSelect || {};
138
133
  const isBaseSelectNative = baseSelectProps.native ?? true;
139
- const OptionComponent = isBaseSelectNative ? 'option' : MenuItem;
134
+ const baseInputLabelProps = rootProps.slotProps?.baseInputLabel || {};
135
+ const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
140
136
  const {
141
137
  InputComponentProps
142
138
  } = valueInputProps,
@@ -227,33 +223,36 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
227
223
  return /*#__PURE__*/_jsxs(GridFilterFormRoot, _extends({
228
224
  ref: ref,
229
225
  className: classes.root,
230
- "data-id": item.id
226
+ "data-id": item.id,
227
+ ownerState: rootProps
231
228
  }, other, {
232
229
  children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({
233
230
  variant: "standard",
234
- as: rootProps.components.BaseFormControl
231
+ as: rootProps.slots.baseFormControl
235
232
  }, baseFormControlProps, deleteIconProps, {
236
233
  className: clsx(classes.deleteIcon, baseFormControlProps.className, deleteIconProps.className),
237
- children: /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
234
+ ownerState: rootProps,
235
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
238
236
  "aria-label": apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
239
237
  title: apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
240
238
  onClick: handleDeleteFilter,
241
239
  size: "small"
242
- }, rootProps.componentsProps?.baseIconButton, {
243
- children: /*#__PURE__*/_jsx(rootProps.components.FilterPanelDeleteIcon, {
240
+ }, rootProps.slotProps?.baseIconButton, {
241
+ children: /*#__PURE__*/_jsx(rootProps.slots.filterPanelDeleteIcon, {
244
242
  fontSize: "small"
245
243
  })
246
244
  }))
247
245
  })), /*#__PURE__*/_jsx(FilterFormLogicOperatorInput, _extends({
248
246
  variant: "standard",
249
- as: rootProps.components.BaseFormControl
247
+ as: rootProps.slots.baseFormControl
250
248
  }, baseFormControlProps, logicOperatorInputProps, {
251
249
  sx: _extends({
252
250
  display: hasLogicOperatorColumn ? 'flex' : 'none',
253
251
  visibility: showMultiFilterOperators ? 'visible' : 'hidden'
254
252
  }, baseFormControlProps.sx || {}, logicOperatorInputProps.sx || {}),
255
253
  className: clsx(classes.logicOperatorInput, baseFormControlProps.className, logicOperatorInputProps.className),
256
- children: /*#__PURE__*/_jsx(rootProps.components.BaseSelect, _extends({
254
+ ownerState: rootProps,
255
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
257
256
  inputProps: {
258
257
  'aria-label': apiRef.current.getLocaleText('filterPanelLogicOperator')
259
258
  },
@@ -261,44 +260,48 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
261
260
  onChange: changeLogicOperator,
262
261
  disabled: !!disableMultiFilterOperator || logicOperators.length === 1,
263
262
  native: isBaseSelectNative
264
- }, rootProps.componentsProps?.baseSelect, {
265
- children: logicOperators.map(logicOperator => /*#__PURE__*/_jsx(OptionComponent, {
266
- value: logicOperator.toString(),
267
- children: apiRef.current.getLocaleText(getLogicOperatorLocaleKey(logicOperator))
268
- }, logicOperator.toString()))
263
+ }, rootProps.slotProps?.baseSelect, {
264
+ children: logicOperators.map(logicOperator => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
265
+ native: isBaseSelectNative,
266
+ key: logicOperator.toString(),
267
+ value: logicOperator.toString()
268
+ }), apiRef.current.getLocaleText(getLogicOperatorLocaleKey(logicOperator))))
269
269
  }))
270
270
  })), /*#__PURE__*/_jsxs(FilterFormColumnInput, _extends({
271
271
  variant: "standard",
272
- as: rootProps.components.BaseFormControl
272
+ as: rootProps.slots.baseFormControl
273
273
  }, baseFormControlProps, columnInputProps, {
274
274
  className: clsx(classes.columnInput, baseFormControlProps.className, columnInputProps.className),
275
- children: [/*#__PURE__*/_jsx(InputLabel, {
275
+ ownerState: rootProps,
276
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, baseInputLabelProps, {
276
277
  htmlFor: columnSelectId,
277
278
  id: columnSelectLabelId,
278
279
  children: apiRef.current.getLocaleText('filterPanelColumns')
279
- }), /*#__PURE__*/_jsx(rootProps.components.BaseSelect, _extends({
280
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
280
281
  labelId: columnSelectLabelId,
281
282
  id: columnSelectId,
282
283
  label: apiRef.current.getLocaleText('filterPanelColumns'),
283
284
  value: item.field || '',
284
285
  onChange: changeColumn,
285
286
  native: isBaseSelectNative
286
- }, rootProps.componentsProps?.baseSelect, {
287
- children: sortedFilteredColumns.map(col => /*#__PURE__*/_jsx(OptionComponent, {
288
- value: col.field,
289
- children: getColumnLabel(col)
290
- }, col.field))
287
+ }, rootProps.slotProps?.baseSelect, {
288
+ children: sortedFilteredColumns.map(col => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
289
+ native: isBaseSelectNative,
290
+ key: col.field,
291
+ value: col.field
292
+ }), getColumnLabel(col)))
291
293
  }))]
292
294
  })), /*#__PURE__*/_jsxs(FilterFormOperatorInput, _extends({
293
295
  variant: "standard",
294
- as: rootProps.components.BaseFormControl
296
+ as: rootProps.slots.baseFormControl
295
297
  }, baseFormControlProps, operatorInputProps, {
296
298
  className: clsx(classes.operatorInput, baseFormControlProps.className, operatorInputProps.className),
297
- children: [/*#__PURE__*/_jsx(InputLabel, {
299
+ ownerState: rootProps,
300
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, baseInputLabelProps, {
298
301
  htmlFor: operatorSelectId,
299
302
  id: operatorSelectLabelId,
300
303
  children: apiRef.current.getLocaleText('filterPanelOperator')
301
- }), /*#__PURE__*/_jsx(rootProps.components.BaseSelect, _extends({
304
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
302
305
  labelId: operatorSelectLabelId,
303
306
  label: apiRef.current.getLocaleText('filterPanelOperator'),
304
307
  id: operatorSelectId,
@@ -306,17 +309,19 @@ const GridFilterForm = /*#__PURE__*/React.forwardRef(function GridFilterForm(pro
306
309
  onChange: changeOperator,
307
310
  native: isBaseSelectNative,
308
311
  inputRef: filterSelectorRef
309
- }, rootProps.componentsProps?.baseSelect, {
310
- children: currentColumn?.filterOperators?.map(operator => /*#__PURE__*/_jsx(OptionComponent, {
311
- value: operator.value,
312
- children: operator.label || apiRef.current.getLocaleText(`filterOperator${capitalize(operator.value)}`)
313
- }, operator.value))
312
+ }, rootProps.slotProps?.baseSelect, {
313
+ children: currentColumn?.filterOperators?.map(operator => /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
314
+ native: isBaseSelectNative,
315
+ key: operator.value,
316
+ value: operator.value
317
+ }), operator.label || apiRef.current.getLocaleText(`filterOperator${capitalize(operator.value)}`)))
314
318
  }))]
315
319
  })), /*#__PURE__*/_jsx(FilterFormValueInput, _extends({
316
320
  variant: "standard",
317
- as: rootProps.components.BaseFormControl
321
+ as: rootProps.slots.baseFormControl
318
322
  }, baseFormControlProps, valueInputPropsOther, {
319
323
  className: clsx(classes.valueInput, baseFormControlProps.className, valueInputPropsOther.className),
324
+ ownerState: rootProps,
320
325
  children: currentOperator?.InputComponent ? /*#__PURE__*/_jsx(currentOperator.InputComponent, _extends({
321
326
  apiRef: apiRef,
322
327
  item: item,
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["item", "applyValue", "apiRef", "focusElementRef"];
4
4
  import * as React from 'react';
5
- import MenuItem from '@mui/material/MenuItem';
6
5
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
7
6
  import { jsx as _jsx } from "react/jsx-runtime";
8
7
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -16,9 +15,9 @@ export function GridFilterInputBoolean(props) {
16
15
  others = _objectWithoutPropertiesLoose(props, _excluded);
17
16
  const [filterValueState, setFilterValueState] = React.useState(item.value || '');
18
17
  const rootProps = useGridRootProps();
19
- const baseSelectProps = rootProps.componentsProps?.baseSelect || {};
18
+ const baseSelectProps = rootProps.slotProps?.baseSelect || {};
20
19
  const isSelectNative = baseSelectProps.native ?? true;
21
- const OptionComponent = isSelectNative ? 'option' : MenuItem;
20
+ const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
22
21
  const onFilterChange = React.useCallback(event => {
23
22
  const value = event.target.value;
24
23
  setFilterValueState(value);
@@ -29,7 +28,8 @@ export function GridFilterInputBoolean(props) {
29
28
  React.useEffect(() => {
30
29
  setFilterValueState(item.value || '');
31
30
  }, [item.value]);
32
- return /*#__PURE__*/_jsxs(rootProps.components.BaseTextField, _extends({
31
+ return /*#__PURE__*/_jsxs(rootProps.slots.baseTextField, _extends({
32
+ // TODO: use baseSelect slot
33
33
  label: apiRef.current.getLocaleText('filterPanelInputLabel'),
34
34
  value: filterValueState,
35
35
  onChange: onFilterChange,
@@ -38,21 +38,24 @@ export function GridFilterInputBoolean(props) {
38
38
  SelectProps: _extends({
39
39
  native: isSelectNative,
40
40
  displayEmpty: true
41
- }, rootProps.componentsProps?.baseSelect),
41
+ }, rootProps.slotProps?.baseSelect),
42
42
  InputLabelProps: {
43
43
  shrink: true
44
44
  },
45
45
  inputRef: focusElementRef
46
- }, others, rootProps.componentsProps?.baseTextField, {
47
- children: [/*#__PURE__*/_jsx(OptionComponent, {
46
+ }, others, rootProps.slotProps?.baseTextField, {
47
+ children: [/*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
48
+ native: isSelectNative,
48
49
  value: "",
49
50
  children: apiRef.current.getLocaleText('filterValueAny')
50
- }), /*#__PURE__*/_jsx(OptionComponent, {
51
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
52
+ native: isSelectNative,
51
53
  value: "true",
52
54
  children: apiRef.current.getLocaleText('filterValueTrue')
53
- }), /*#__PURE__*/_jsx(OptionComponent, {
55
+ })), /*#__PURE__*/_jsx(rootProps.slots.baseSelectOption, _extends({}, baseSelectOptionProps, {
56
+ native: isSelectNative,
54
57
  value: "false",
55
58
  children: apiRef.current.getLocaleText('filterValueFalse')
56
- })]
59
+ }))]
57
60
  }));
58
61
  }
@@ -4,7 +4,6 @@ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "I
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useId as useId } from '@mui/utils';
7
- import { GridLoadIcon } from '../../icons';
8
7
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
10
9
  export const SUBMIT_FILTER_DATE_STROKE_TIME = 500;
@@ -44,7 +43,7 @@ function GridFilterInputDate(props) {
44
43
  const itemValue = item.value ?? '';
45
44
  setFilterValueState(String(itemValue));
46
45
  }, [item.value]);
47
- return /*#__PURE__*/_jsx(rootProps.components.BaseTextField, _extends({
46
+ return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
48
47
  id: id,
49
48
  label: apiRef.current.getLocaleText('filterPanelInputLabel'),
50
49
  placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
@@ -57,13 +56,13 @@ function GridFilterInputDate(props) {
57
56
  },
58
57
  inputRef: focusElementRef,
59
58
  InputProps: _extends({}, applying ? {
60
- endAdornment: /*#__PURE__*/_jsx(GridLoadIcon, {})
59
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {})
61
60
  } : {}, InputProps, {
62
61
  inputProps: _extends({
63
62
  max: type === 'datetime-local' ? '9999-12-31T23:59' : '9999-12-31'
64
63
  }, InputProps?.inputProps)
65
64
  })
66
- }, other, rootProps.componentsProps?.baseTextField));
65
+ }, other, rootProps.slotProps?.baseTextField));
67
66
  }
68
67
  process.env.NODE_ENV !== "production" ? GridFilterInputDate.propTypes = {
69
68
  // ----------------------------- Warning --------------------------------