@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
@@ -1,15 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange", "initialOpen", "getOptionLabel"];
3
+ const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange", "initialOpen", "getOptionLabel", "getOptionValue"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
7
- import MenuItem from '@mui/material/MenuItem';
8
7
  import { isEscapeKey } from '../../utils/keyboardUtils';
9
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
10
9
  import { GridEditModes } from '../../models/gridEditRowModel';
11
- import { getLabelFromValueOption, getValueFromValueOptions, isSingleSelectColDef } from '../panel/filterPanel/filterPanelUtils';
10
+ import { getValueFromValueOptions, isSingleSelectColDef } from '../panel/filterPanel/filterPanelUtils';
12
11
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
12
+ import { createElement as _createElement } from "react";
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  function isKeyboardEvent(event) {
15
15
  return !!event.key;
@@ -26,14 +26,15 @@ function GridEditSingleSelectCell(props) {
26
26
  error,
27
27
  onValueChange,
28
28
  initialOpen = rootProps.editMode === GridEditModes.Cell,
29
- getOptionLabel = getLabelFromValueOption
29
+ getOptionLabel: getOptionLabelProp,
30
+ getOptionValue: getOptionValueProp
30
31
  } = props,
31
32
  other = _objectWithoutPropertiesLoose(props, _excluded);
32
33
  const apiRef = useGridApiContext();
33
34
  const ref = React.useRef();
34
35
  const inputRef = React.useRef();
35
36
  const [open, setOpen] = React.useState(initialOpen);
36
- const baseSelectProps = rootProps.componentsProps?.baseSelect || {};
37
+ const baseSelectProps = rootProps.slotProps?.baseSelect || {};
37
38
  const isSelectNative = baseSelectProps.native ?? false;
38
39
  useEnhancedEffect(() => {
39
40
  if (hasFocus) {
@@ -56,11 +57,16 @@ function GridEditSingleSelectCell(props) {
56
57
  if (!valueOptions) {
57
58
  return null;
58
59
  }
60
+ const getOptionValue = getOptionValueProp || colDef.getOptionValue;
61
+ const getOptionLabel = getOptionLabelProp || colDef.getOptionLabel;
59
62
  const handleChange = async event => {
63
+ if (!isSingleSelectColDef(colDef) || !valueOptions) {
64
+ return;
65
+ }
60
66
  setOpen(false);
61
67
  const target = event.target;
62
68
  // NativeSelect casts the value to a string.
63
- const formattedTargetValue = getValueFromValueOptions(target.value, valueOptions);
69
+ const formattedTargetValue = getValueFromValueOptions(target.value, valueOptions, getOptionValue);
64
70
  if (onValueChange) {
65
71
  await onValueChange(event, formattedTargetValue);
66
72
  }
@@ -89,8 +95,10 @@ function GridEditSingleSelectCell(props) {
89
95
  }
90
96
  setOpen(true);
91
97
  };
92
- const OptionComponent = isSelectNative ? 'option' : MenuItem;
93
- return /*#__PURE__*/_jsx(rootProps.components.BaseSelect, _extends({
98
+ if (!valueOptions || !colDef) {
99
+ return null;
100
+ }
101
+ return /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
94
102
  ref: ref,
95
103
  inputRef: inputRef,
96
104
  value: valueProp,
@@ -103,13 +111,14 @@ function GridEditSingleSelectCell(props) {
103
111
  error: error,
104
112
  native: isSelectNative,
105
113
  fullWidth: true
106
- }, other, rootProps.componentsProps?.baseSelect, {
114
+ }, other, rootProps.slotProps?.baseSelect, {
107
115
  children: valueOptions.map(valueOption => {
108
- const value = typeof valueOption === 'object' ? valueOption.value : valueOption;
109
- return /*#__PURE__*/_jsx(OptionComponent, {
110
- value: value,
111
- children: getOptionLabel(valueOption)
112
- }, value);
116
+ const value = getOptionValue(valueOption);
117
+ return /*#__PURE__*/_createElement(rootProps.slots.baseSelectOption, _extends({}, rootProps.slotProps?.baseSelectOption || {}, {
118
+ native: isSelectNative,
119
+ key: value,
120
+ value: value
121
+ }), getOptionLabel(valueOption));
113
122
  })
114
123
  }));
115
124
  }
@@ -140,11 +149,17 @@ process.env.NODE_ENV !== "production" ? GridEditSingleSelectCell.propTypes = {
140
149
  */
141
150
  formattedValue: PropTypes.any,
142
151
  /**
143
- * Used to determine the text displayed for a given value option.
152
+ * Used to determine the label displayed for a given value option.
144
153
  * @param {ValueOptions} value The current value option.
145
154
  * @returns {string} The text to be displayed.
146
155
  */
147
156
  getOptionLabel: PropTypes.func,
157
+ /**
158
+ * Used to determine the value used for a value option.
159
+ * @param {ValueOptions} value The current value option.
160
+ * @returns {string} The value to be used.
161
+ */
162
+ getOptionValue: PropTypes.func,
148
163
  /**
149
164
  * If true, the cell is the active element.
150
165
  */
@@ -37,7 +37,7 @@ export const ColumnHeaderMenuIcon = /*#__PURE__*/React.memo(props => {
37
37
  }, [apiRef, colDef.field]);
38
38
  return /*#__PURE__*/_jsx("div", {
39
39
  className: classes.root,
40
- children: /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
40
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
41
41
  ref: iconButtonRef,
42
42
  tabIndex: -1,
43
43
  className: classes.button,
@@ -49,8 +49,8 @@ export const ColumnHeaderMenuIcon = /*#__PURE__*/React.memo(props => {
49
49
  "aria-haspopup": "true",
50
50
  "aria-controls": columnMenuId,
51
51
  id: columnMenuButtonId
52
- }, rootProps.componentsProps?.baseIconButton, {
53
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnMenuIcon, {
52
+ }, rootProps.slotProps?.baseIconButton, {
53
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnMenuIcon, {
54
54
  fontSize: "small"
55
55
  })
56
56
  }))
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -21,32 +21,26 @@ const GridColumnHeadersRoot = styled('div', {
21
21
  name: 'MuiDataGrid',
22
22
  slot: 'ColumnHeaders',
23
23
  overridesResolver: (props, styles) => styles.columnHeaders
24
- })(({
25
- theme
26
- }) => {
27
- return {
28
- position: 'relative',
29
- overflow: 'hidden',
30
- display: 'flex',
31
- alignItems: 'center',
32
- boxSizing: 'border-box',
33
- borderBottom: '1px solid',
34
- borderTopLeftRadius: theme.shape.borderRadius,
35
- borderTopRightRadius: theme.shape.borderRadius
36
- };
24
+ })({
25
+ position: 'relative',
26
+ overflow: 'hidden',
27
+ display: 'flex',
28
+ alignItems: 'center',
29
+ boxSizing: 'border-box',
30
+ borderBottom: '1px solid',
31
+ borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
32
+ borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
37
33
  });
38
- export const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
34
+ export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
39
35
  const {
40
36
  className
41
37
  } = props,
42
38
  other = _objectWithoutPropertiesLoose(props, _excluded);
43
39
  const rootProps = useGridRootProps();
44
- const ownerState = {
45
- classes: rootProps.classes
46
- };
47
- const classes = useUtilityClasses(ownerState);
40
+ const classes = useUtilityClasses(rootProps);
48
41
  return /*#__PURE__*/_jsx(GridColumnHeadersRoot, _extends({
49
42
  ref: ref,
50
- className: clsx(className, classes.root)
43
+ className: clsx(className, classes.root),
44
+ ownerState: rootProps
51
45
  }, other));
52
46
  });
@@ -51,22 +51,22 @@ function GridColumnHeaderFilterIconButton(props) {
51
51
  if (!counter) {
52
52
  return null;
53
53
  }
54
- const iconButton = /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
54
+ const iconButton = /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
55
55
  onClick: toggleFilter,
56
56
  color: "default",
57
57
  "aria-label": apiRef.current.getLocaleText('columnHeaderFiltersLabel'),
58
58
  size: "small",
59
59
  tabIndex: -1
60
- }, rootProps.componentsProps?.baseIconButton, {
61
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnFilteredIcon, {
60
+ }, rootProps.slotProps?.baseIconButton, {
61
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnFilteredIcon, {
62
62
  className: classes.icon,
63
63
  fontSize: "small"
64
64
  })
65
65
  }));
66
- return /*#__PURE__*/_jsx(rootProps.components.BaseTooltip, _extends({
66
+ return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
67
67
  title: apiRef.current.getLocaleText('columnHeaderFiltersTooltipActive')(counter),
68
68
  enterDelay: 1000
69
- }, rootProps.componentsProps?.baseTooltip, {
69
+ }, rootProps.slotProps?.baseTooltip, {
70
70
  children: /*#__PURE__*/_jsxs(GridIconButtonContainer, {
71
71
  children: [counter > 1 && /*#__PURE__*/_jsx(Badge, {
72
72
  badgeContent: counter,
@@ -117,16 +117,16 @@ function GridColumnHeaderItem(props) {
117
117
  field: colDef.field,
118
118
  open: columnMenuOpen,
119
119
  target: iconButtonRef.current,
120
- ContentComponent: rootProps.components.ColumnMenu,
121
- contentComponentProps: rootProps.componentsProps?.columnMenu,
120
+ ContentComponent: rootProps.slots.columnMenu,
121
+ contentComponentProps: rootProps.slotProps?.columnMenu,
122
122
  onExited: handleExited
123
123
  });
124
124
  const sortingOrder = colDef.sortingOrder ?? rootProps.sortingOrder;
125
125
  const columnTitleIconButtons = /*#__PURE__*/_jsxs(React.Fragment, {
126
- children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.components.ColumnHeaderFilterIconButton, _extends({
126
+ children: [!rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.slots.columnHeaderFilterIconButton, _extends({
127
127
  field: colDef.field,
128
128
  counter: filterItemsCounter
129
- }, rootProps.componentsProps?.columnHeaderFilterIconButton)), colDef.sortable && !colDef.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
129
+ }, rootProps.slotProps?.columnHeaderFilterIconButton)), colDef.sortable && !colDef.hideSortIcons && /*#__PURE__*/_jsx(GridColumnHeaderSortIcon, {
130
130
  direction: sortDirection,
131
131
  index: sortIndex,
132
132
  sortingOrder: sortingOrder
@@ -52,7 +52,7 @@ function GridColumnHeaderSeparatorRaw(props) {
52
52
  }
53
53
  }, other, {
54
54
  onClick: stopClick,
55
- children: /*#__PURE__*/_jsx(rootProps.components.ColumnResizeIcon, {
55
+ children: /*#__PURE__*/_jsx(rootProps.slots.columnResizeIcon, {
56
56
  className: classes.icon
57
57
  })
58
58
  }))
@@ -22,11 +22,11 @@ function getIcon(icons, direction, className, sortingOrder) {
22
22
  let Icon;
23
23
  const iconProps = {};
24
24
  if (direction === 'asc') {
25
- Icon = icons.ColumnSortedAscendingIcon;
25
+ Icon = icons.columnSortedAscendingIcon;
26
26
  } else if (direction === 'desc') {
27
- Icon = icons.ColumnSortedDescendingIcon;
27
+ Icon = icons.columnSortedDescendingIcon;
28
28
  } else {
29
- Icon = icons.ColumnUnsortedIcon;
29
+ Icon = icons.columnUnsortedIcon;
30
30
  iconProps.sortingOrder = sortingOrder;
31
31
  }
32
32
  return Icon ? /*#__PURE__*/_jsx(Icon, _extends({
@@ -46,16 +46,16 @@ function GridColumnHeaderSortIconRaw(props) {
46
46
  classes: rootProps.classes
47
47
  });
48
48
  const classes = useUtilityClasses(ownerState);
49
- const iconElement = getIcon(rootProps.components, direction, classes.icon, sortingOrder);
49
+ const iconElement = getIcon(rootProps.slots, direction, classes.icon, sortingOrder);
50
50
  if (!iconElement) {
51
51
  return null;
52
52
  }
53
- const iconButton = /*#__PURE__*/_jsx(rootProps.components.BaseIconButton, _extends({
53
+ const iconButton = /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
54
54
  tabIndex: -1,
55
55
  "aria-label": apiRef.current.getLocaleText('columnHeaderSortIconLabel'),
56
56
  title: apiRef.current.getLocaleText('columnHeaderSortIconLabel'),
57
57
  size: "small"
58
- }, rootProps.componentsProps?.baseIconButton, {
58
+ }, rootProps.slotProps?.baseIconButton, {
59
59
  children: iconElement
60
60
  }));
61
61
  return /*#__PURE__*/_jsxs(GridIconButtonContainer, {
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
- import { styled } from '@mui/material/styles';
8
+ import { styled } from '@mui/system';
9
9
  import { isOverflown } from '../../utils/domUtils';
10
10
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
11
11
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -23,27 +23,23 @@ const GridColumnHeaderTitleRoot = styled('div', {
23
23
  name: 'MuiDataGrid',
24
24
  slot: 'ColumnHeaderTitle',
25
25
  overridesResolver: (props, styles) => styles.columnHeaderTitle
26
- })(({
27
- theme
28
- }) => ({
26
+ })({
29
27
  textOverflow: 'ellipsis',
30
28
  overflow: 'hidden',
31
29
  whiteSpace: 'nowrap',
32
- fontWeight: theme.typography.fontWeightMedium
33
- }));
30
+ fontWeight: 'var(--unstable_DataGrid-headWeight)'
31
+ });
34
32
  const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHeaderInnerTitle(props, ref) {
35
33
  const {
36
34
  className
37
35
  } = props,
38
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
39
37
  const rootProps = useGridRootProps();
40
- const ownerState = {
41
- classes: rootProps.classes
42
- };
43
- const classes = useUtilityClasses(ownerState);
38
+ const classes = useUtilityClasses(rootProps);
44
39
  return /*#__PURE__*/_jsx(GridColumnHeaderTitleRoot, _extends({
45
40
  ref: ref,
46
- className: clsx(classes.root, className)
41
+ className: clsx(classes.root, className),
42
+ ownerState: rootProps
47
43
  }, other));
48
44
  });
49
45
  // No React.memo here as if we display the sort icon, we need to recalculate the isOver
@@ -66,9 +62,9 @@ function GridColumnHeaderTitle(props) {
66
62
  }
67
63
  }
68
64
  }, [titleRef, columnWidth, description, label]);
69
- return /*#__PURE__*/_jsx(rootProps.components.BaseTooltip, _extends({
65
+ return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
70
66
  title: description || tooltip
71
- }, rootProps.componentsProps?.baseTooltip, {
67
+ }, rootProps.slotProps?.baseTooltip, {
72
68
  children: /*#__PURE__*/_jsx(ColumnHeaderInnerTitle, {
73
69
  ref: titleRef,
74
70
  children: label
@@ -4,7 +4,7 @@ const _excluded = ["isDragging", "className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
9
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
10
10
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
@@ -45,14 +45,14 @@ export const GridColumnHeadersInner = /*#__PURE__*/React.forwardRef(function Gri
45
45
  other = _objectWithoutPropertiesLoose(props, _excluded);
46
46
  const apiRef = useGridApiContext();
47
47
  const rootProps = useGridRootProps();
48
- const ownerState = {
48
+ const ownerState = _extends({}, rootProps, {
49
49
  isDragging,
50
- hasScrollX: apiRef.current.getRootDimensions()?.hasScrollX ?? false,
51
- classes: rootProps.classes
52
- };
50
+ hasScrollX: apiRef.current.getRootDimensions()?.hasScrollX ?? false
51
+ });
53
52
  const classes = useUtilityClasses(ownerState);
54
53
  return /*#__PURE__*/_jsx(GridColumnHeadersInnerRoot, _extends({
55
54
  ref: ref,
56
- className: clsx(className, classes.root)
55
+ className: clsx(className, classes.root),
56
+ ownerState: ownerState
57
57
  }, other));
58
58
  });
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
- import { styled } from '@mui/material/styles';
7
+ import { styled } from '@mui/system';
8
8
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
9
9
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -32,12 +32,10 @@ export const GridIconButtonContainer = /*#__PURE__*/React.forwardRef(function Gr
32
32
  } = props,
33
33
  other = _objectWithoutPropertiesLoose(props, _excluded);
34
34
  const rootProps = useGridRootProps();
35
- const ownerState = {
36
- classes: rootProps.classes
37
- };
38
- const classes = useUtilityClasses(ownerState);
35
+ const classes = useUtilityClasses(rootProps);
39
36
  return /*#__PURE__*/_jsx(GridIconButtonContainerRoot, _extends({
40
37
  ref: ref,
41
- className: clsx(classes.root, className)
38
+ className: clsx(classes.root, className),
39
+ ownerState: rootProps
42
40
  }, other));
43
41
  });
@@ -73,7 +73,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
73
73
  }
74
74
  const isSelectable = apiRef.current.isRowSelectable(id);
75
75
  const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
76
- return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({
76
+ return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
77
77
  ref: handleRef,
78
78
  tabIndex: tabIndex,
79
79
  checked: isChecked,
@@ -85,7 +85,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
85
85
  onKeyDown: handleKeyDown,
86
86
  disabled: !isSelectable,
87
87
  touchRippleRef: rippleRef
88
- }, rootProps.componentsProps?.baseCheckbox, other));
88
+ }, rootProps.slotProps?.baseCheckbox, other));
89
89
  });
90
90
  process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
91
91
  // ----------------------------- Warning --------------------------------
@@ -92,7 +92,7 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
92
92
  return apiRef.current.subscribeEvent('rowSelectionChange', handleSelectionChange);
93
93
  }, [apiRef, handleSelectionChange]);
94
94
  const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
95
- return /*#__PURE__*/_jsx(rootProps.components.BaseCheckbox, _extends({
95
+ return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
96
96
  ref: ref,
97
97
  indeterminate: isIndeterminate,
98
98
  checked: isChecked,
@@ -103,7 +103,7 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
103
103
  },
104
104
  tabIndex: tabIndex,
105
105
  onKeyDown: handleKeyDown
106
- }, rootProps.componentsProps?.baseCheckbox, other));
106
+ }, rootProps.slotProps?.baseCheckbox, other));
107
107
  });
108
108
  process.env.NODE_ENV !== "production" ? GridHeaderCheckbox.propTypes = {
109
109
  // ----------------------------- Warning --------------------------------
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
- import { styled } from '@mui/material/styles';
8
+ import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -22,15 +22,12 @@ const GridFooterContainerRoot = styled('div', {
22
22
  name: 'MuiDataGrid',
23
23
  slot: 'FooterContainer',
24
24
  overridesResolver: (props, styles) => styles.footerContainer
25
- })(() => {
26
- return {
27
- display: 'flex',
28
- justifyContent: 'space-between',
29
- alignItems: 'center',
30
- minHeight: 52,
31
- // Match TablePagination min height
32
- borderTop: '1px solid'
33
- };
25
+ })({
26
+ display: 'flex',
27
+ justifyContent: 'space-between',
28
+ alignItems: 'center',
29
+ minHeight: 52,
30
+ borderTop: '1px solid'
34
31
  });
35
32
  const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {
36
33
  const {
@@ -38,13 +35,11 @@ const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterCon
38
35
  } = props,
39
36
  other = _objectWithoutPropertiesLoose(props, _excluded);
40
37
  const rootProps = useGridRootProps();
41
- const ownerState = {
42
- classes: rootProps.classes
43
- };
44
- const classes = useUtilityClasses(ownerState);
38
+ const classes = useUtilityClasses(rootProps);
45
39
  return /*#__PURE__*/_jsx(GridFooterContainerRoot, _extends({
46
40
  ref: ref,
47
- className: clsx(classes.root, className)
41
+ className: clsx(classes.root, className),
42
+ ownerState: rootProps
48
43
  }, other));
49
44
  });
50
45
  process.env.NODE_ENV !== "production" ? GridFooterContainer.propTypes = {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
3
- import { styled } from '@mui/material/styles';
3
+ import { styled } from '@mui/system';
4
4
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
5
5
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -26,12 +26,10 @@ const GridMainContainerRoot = styled('div', {
26
26
  }));
27
27
  export function GridMainContainer(props) {
28
28
  const rootProps = useGridRootProps();
29
- const ownerState = {
30
- classes: rootProps.classes
31
- };
32
- const classes = useUtilityClasses(ownerState);
29
+ const classes = useUtilityClasses(rootProps);
33
30
  return /*#__PURE__*/_jsx(GridMainContainerRoot, {
34
31
  className: classes.root,
32
+ ownerState: rootProps,
35
33
  children: props.children
36
34
  });
37
35
  }
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
- import { alpha, styled } from '@mui/material/styles';
8
+ import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -22,30 +22,26 @@ const GridOverlayRoot = styled('div', {
22
22
  name: 'MuiDataGrid',
23
23
  slot: 'Overlay',
24
24
  overridesResolver: (_, styles) => styles.overlay
25
- })(({
26
- theme
27
- }) => ({
25
+ })({
28
26
  width: '100%',
29
27
  height: '100%',
30
28
  display: 'flex',
31
29
  alignSelf: 'center',
32
30
  alignItems: 'center',
33
31
  justifyContent: 'center',
34
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.background.defaultChannel} / ${theme.vars.palette.action.disabledOpacity})` : alpha(theme.palette.background.default, theme.palette.action.disabledOpacity)
35
- }));
32
+ backgroundColor: 'var(--unstable_DataGrid-overlayBackground)'
33
+ });
36
34
  const GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, ref) {
37
35
  const {
38
36
  className
39
37
  } = props,
40
38
  other = _objectWithoutPropertiesLoose(props, _excluded);
41
39
  const rootProps = useGridRootProps();
42
- const ownerState = {
43
- classes: rootProps.classes
44
- };
45
- const classes = useUtilityClasses(ownerState);
40
+ const classes = useUtilityClasses(rootProps);
46
41
  return /*#__PURE__*/_jsx(GridOverlayRoot, _extends({
47
42
  ref: ref,
48
- className: clsx(classes.root, className)
43
+ className: clsx(classes.root, className),
44
+ ownerState: rootProps
49
45
  }, other));
50
46
  });
51
47
  process.env.NODE_ENV !== "production" ? GridOverlay.propTypes = {
@@ -41,11 +41,9 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
41
41
  const rootContainerRef = React.useRef(null);
42
42
  const handleRef = useForkRef(rootContainerRef, ref);
43
43
  const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector);
44
- const ownerState = {
45
- density: densityValue,
46
- classes: rootProps.classes,
47
- autoHeight: rootProps.autoHeight
48
- };
44
+ const ownerState = _extends({}, rootProps, {
45
+ density: densityValue
46
+ });
49
47
  const classes = useUtilityClasses(ownerState);
50
48
  apiRef.current.register('public', {
51
49
  rootElementRef: rootContainerRef
@@ -67,6 +65,7 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
67
65
  return /*#__PURE__*/_jsx(GridRootStyles, _extends({
68
66
  ref: handleRef,
69
67
  className: clsx(className, classes.root),
68
+ ownerState: ownerState,
70
69
  role: "grid",
71
70
  "aria-colcount": visibleColumns.length,
72
71
  "aria-rowcount": headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount,
@@ -132,14 +132,18 @@ export const GridRootStyles = styled('div', {
132
132
  theme
133
133
  }) => {
134
134
  const borderColor = getBorderColor(theme);
135
+ const radius = theme.shape.borderRadius;
135
136
  const gridStyle = _extends({
137
+ '--unstable_DataGrid-radius': typeof radius === 'number' ? `${radius}px` : radius,
138
+ '--unstable_DataGrid-headWeight': theme.typography.fontWeightMedium,
139
+ '--unstable_DataGrid-overlayBackground': theme.vars ? `rgba(${theme.vars.palette.background.defaultChannel} / ${theme.vars.palette.action.disabledOpacity})` : alpha(theme.palette.background.default, theme.palette.action.disabledOpacity),
136
140
  flex: 1,
137
141
  boxSizing: 'border-box',
138
142
  position: 'relative',
139
143
  borderWidth: '1px',
140
144
  borderStyle: 'solid',
141
145
  borderColor,
142
- borderRadius: theme.shape.borderRadius,
146
+ borderRadius: 'var(--unstable_DataGrid-radius)',
143
147
  color: (theme.vars || theme).palette.text.primary
144
148
  }, theme.typography.body2, {
145
149
  outline: 'none',
@@ -434,13 +438,13 @@ export const GridRootStyles = styled('div', {
434
438
  [`& .${gridClasses['columnHeader--dragging']}, & .${gridClasses['row--dragging']}`]: {
435
439
  background: (theme.vars || theme).palette.background.paper,
436
440
  padding: '0 12px',
437
- borderRadius: theme.shape.borderRadius,
441
+ borderRadius: 'var(--unstable_DataGrid-radius)',
438
442
  opacity: (theme.vars || theme).palette.action.disabledOpacity
439
443
  },
440
444
  [`& .${gridClasses['row--dragging']}`]: {
441
445
  background: (theme.vars || theme).palette.background.paper,
442
446
  padding: '0 12px',
443
- borderRadius: theme.shape.borderRadius,
447
+ borderRadius: 'var(--unstable_DataGrid-radius)',
444
448
  opacity: (theme.vars || theme).palette.action.disabledOpacity,
445
449
  [`& .${gridClasses.rowReorderCellPlaceholder}`]: {
446
450
  display: 'flex'
@@ -4,7 +4,7 @@ const _excluded = ["className", "children"];
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';
@@ -38,16 +38,14 @@ const GridToolbarContainer = /*#__PURE__*/React.forwardRef(function GridToolbarC
38
38
  } = props,
39
39
  other = _objectWithoutPropertiesLoose(props, _excluded);
40
40
  const rootProps = useGridRootProps();
41
- const ownerState = {
42
- classes: rootProps.classes
43
- };
44
- const classes = useUtilityClasses(ownerState);
41
+ const classes = useUtilityClasses(rootProps);
45
42
  if (!children) {
46
43
  return null;
47
44
  }
48
45
  return /*#__PURE__*/_jsx(GridToolbarContainerRoot, _extends({
49
46
  ref: ref,
50
- className: clsx(className, classes.root)
47
+ className: clsx(className, classes.root),
48
+ ownerState: rootProps
51
49
  }, other, {
52
50
  children: children
53
51
  }));
@@ -3,7 +3,7 @@ export * from './cell';
3
3
  export * from './containers';
4
4
  export * from './columnHeaders';
5
5
  export * from './columnSelection';
6
- export * from './icons';
6
+ export * from '../material/icons';
7
7
  export * from './menu';
8
8
  export * from './panel';
9
9
  export * from './toolbar';