@mui/x-data-grid 7.0.0-alpha.7 → 7.0.0-alpha.9

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 (501) hide show
  1. package/CHANGELOG.md +554 -51
  2. package/DataGrid/DataGrid.js +15 -27
  3. package/DataGrid/useDataGridComponent.js +2 -1
  4. package/DataGrid/useDataGridProps.js +1 -0
  5. package/README.md +1 -1
  6. package/colDef/gridDateColDef.js +1 -1
  7. package/components/GridColumnHeaders.d.ts +3 -2
  8. package/components/GridColumnHeaders.js +3 -11
  9. package/components/GridDetailPanels.d.ts +5 -0
  10. package/components/GridDetailPanels.js +4 -0
  11. package/components/GridHeaders.d.ts +4 -0
  12. package/components/GridHeaders.js +53 -0
  13. package/components/GridPagination.d.ts +4 -4
  14. package/components/GridPagination.js +1 -1
  15. package/components/GridPinnedRows.d.ts +7 -0
  16. package/components/GridPinnedRows.js +4 -0
  17. package/components/GridRow.d.ts +7 -4
  18. package/components/GridRow.js +260 -97
  19. package/components/GridScrollbarFillerCell.d.ts +7 -0
  20. package/components/GridScrollbarFillerCell.js +39 -0
  21. package/components/base/GridBody.d.ts +2 -13
  22. package/components/base/GridBody.js +2 -116
  23. package/components/base/GridOverlays.js +10 -21
  24. package/components/cell/GridActionsCell.js +1 -1
  25. package/components/cell/GridActionsCellItem.d.ts +6 -6
  26. package/components/cell/GridCell.d.ts +15 -21
  27. package/components/cell/GridCell.js +68 -373
  28. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  29. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -1
  30. package/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  31. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -0
  32. package/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  33. package/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  34. package/components/containers/GridRoot.js +18 -15
  35. package/components/containers/GridRootStyles.js +307 -204
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  37. package/components/panel/GridPanel.d.ts +3 -3
  38. package/components/panel/GridPanel.js +3 -4
  39. package/components/panel/filterPanel/GridFilterForm.d.ts +6 -4
  40. package/components/panel/filterPanel/GridFilterForm.js +32 -15
  41. package/components/panel/filterPanel/GridFilterPanel.js +46 -20
  42. package/components/toolbar/GridToolbarColumnsButton.d.ts +13 -1
  43. package/components/toolbar/GridToolbarColumnsButton.js +40 -22
  44. package/components/toolbar/GridToolbarDensitySelector.d.ts +13 -1
  45. package/components/toolbar/GridToolbarDensitySelector.js +40 -22
  46. package/components/toolbar/GridToolbarExport.d.ts +10 -1
  47. package/components/toolbar/GridToolbarExport.js +6 -1
  48. package/components/toolbar/GridToolbarExportContainer.d.ts +15 -1
  49. package/components/toolbar/GridToolbarExportContainer.js +41 -23
  50. package/components/toolbar/GridToolbarFilterButton.d.ts +5 -4
  51. package/components/toolbar/GridToolbarFilterButton.js +6 -10
  52. package/components/toolbar/GridToolbarQuickFilter.d.ts +4 -0
  53. package/components/toolbar/GridToolbarQuickFilter.js +4 -0
  54. package/components/virtualization/GridBottomContainer.d.ts +2 -0
  55. package/components/virtualization/GridBottomContainer.js +25 -0
  56. package/components/{containers → virtualization}/GridMainContainer.d.ts +2 -0
  57. package/components/virtualization/GridMainContainer.js +20 -0
  58. package/components/virtualization/GridTopContainer.d.ts +2 -0
  59. package/components/virtualization/GridTopContainer.js +35 -0
  60. package/components/virtualization/GridVirtualScrollbar.d.ts +7 -0
  61. package/components/virtualization/GridVirtualScrollbar.js +131 -0
  62. package/components/virtualization/GridVirtualScroller.d.ts +4 -4
  63. package/components/virtualization/GridVirtualScroller.js +69 -16
  64. package/components/virtualization/GridVirtualScrollerFiller.d.ts +4 -0
  65. package/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  66. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  67. package/constants/defaultGridSlotsComponents.js +6 -2
  68. package/constants/gridClasses.d.ts +60 -8
  69. package/constants/gridClasses.js +1 -1
  70. package/hooks/core/gridCoreSelector.d.ts +6 -0
  71. package/hooks/core/gridCoreSelector.js +5 -0
  72. package/hooks/core/useGridInitialization.js +4 -0
  73. package/hooks/core/useGridLoggerFactory.js +2 -2
  74. package/hooks/core/useGridRefs.d.ts +3 -0
  75. package/hooks/core/useGridRefs.js +13 -0
  76. package/hooks/core/useGridTheme.d.ts +3 -0
  77. package/hooks/core/useGridTheme.js +19 -0
  78. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  79. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -1
  80. package/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  81. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +13 -18
  82. package/hooks/features/columnHeaders/useGridColumnHeaders.js +68 -162
  83. package/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  84. package/hooks/features/columns/gridColumnsInterfaces.d.ts +17 -0
  85. package/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  86. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -1
  87. package/hooks/features/columns/gridColumnsSelector.js +52 -0
  88. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -5
  89. package/hooks/features/columns/gridColumnsUtils.js +10 -12
  90. package/hooks/features/columns/index.d.ts +2 -2
  91. package/hooks/features/columns/index.js +2 -1
  92. package/hooks/features/columns/useGridColumnSpanning.js +62 -61
  93. package/hooks/features/columns/useGridColumns.js +20 -23
  94. package/hooks/features/dimensions/gridDimensionsApi.d.ts +60 -11
  95. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +2 -0
  96. package/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  97. package/hooks/features/dimensions/index.d.ts +2 -0
  98. package/hooks/features/dimensions/index.js +1 -0
  99. package/hooks/features/dimensions/useGridDimensions.d.ts +7 -1
  100. package/hooks/features/dimensions/useGridDimensions.js +216 -148
  101. package/hooks/features/editing/useGridCellEditing.js +4 -4
  102. package/hooks/features/editing/useGridRowEditing.js +4 -4
  103. package/hooks/features/export/serializers/csvSerializer.js +3 -3
  104. package/hooks/features/export/useGridPrintExport.js +1 -1
  105. package/hooks/features/filter/gridFilterUtils.js +5 -5
  106. package/hooks/features/filter/useGridFilter.js +3 -3
  107. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -2
  108. package/hooks/features/focus/gridFocusStateSelector.js +2 -6
  109. package/hooks/features/focus/useGridFocus.js +3 -3
  110. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  111. package/hooks/features/pagination/gridPaginationUtils.js +2 -2
  112. package/hooks/features/pagination/useGridPagination.js +3 -5
  113. package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  114. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -0
  115. package/hooks/features/rows/gridRowsSelector.d.ts +2 -2
  116. package/hooks/features/rows/gridRowsSelector.js +5 -5
  117. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  118. package/hooks/features/rows/gridRowsUtils.js +6 -6
  119. package/hooks/features/rows/useGridRows.js +7 -7
  120. package/hooks/features/rows/useGridRowsMeta.js +9 -6
  121. package/hooks/features/scroll/useGridScroll.js +8 -10
  122. package/hooks/features/sorting/gridSortingUtils.js +5 -3
  123. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  124. package/hooks/features/sorting/useGridSorting.js +15 -10
  125. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +14 -0
  126. package/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  127. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +27 -42
  128. package/hooks/features/virtualization/useGridVirtualScroller.js +441 -438
  129. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  130. package/hooks/features/virtualization/useGridVirtualization.js +8 -1
  131. package/hooks/utils/index.d.ts +3 -0
  132. package/hooks/utils/index.js +4 -1
  133. package/hooks/utils/useGridApiContext.js +1 -1
  134. package/hooks/utils/useGridAriaAttributes.js +1 -2
  135. package/hooks/utils/useGridNativeEventListener.js +4 -9
  136. package/hooks/utils/useGridPrivateApiContext.js +1 -1
  137. package/hooks/utils/useGridRootProps.js +1 -1
  138. package/hooks/utils/useGridSelector.js +1 -1
  139. package/hooks/utils/useResizeObserver.d.ts +2 -0
  140. package/hooks/utils/useResizeObserver.js +36 -0
  141. package/hooks/utils/useRunOnce.d.ts +5 -0
  142. package/hooks/utils/useRunOnce.js +18 -0
  143. package/index.d.ts +0 -1
  144. package/index.js +1 -2
  145. package/internals/index.d.ts +13 -9
  146. package/internals/index.js +9 -7
  147. package/internals/utils/index.d.ts +1 -0
  148. package/internals/utils/index.js +2 -1
  149. package/internals/utils/propValidation.d.ts +4 -0
  150. package/internals/utils/propValidation.js +19 -0
  151. package/legacy/DataGrid/DataGrid.js +20 -29
  152. package/legacy/DataGrid/useDataGridComponent.js +2 -1
  153. package/legacy/DataGrid/useDataGridProps.js +1 -0
  154. package/legacy/colDef/gridDateColDef.js +1 -1
  155. package/legacy/components/GridColumnHeaders.js +3 -11
  156. package/legacy/components/GridDetailPanels.js +4 -0
  157. package/legacy/components/GridHeaders.js +53 -0
  158. package/legacy/components/GridPagination.js +1 -1
  159. package/legacy/components/GridPinnedRows.js +4 -0
  160. package/legacy/components/GridRow.js +258 -98
  161. package/legacy/components/GridScrollbarFillerCell.js +36 -0
  162. package/legacy/components/base/GridBody.js +2 -114
  163. package/legacy/components/base/GridOverlays.js +10 -25
  164. package/legacy/components/cell/GridActionsCell.js +1 -1
  165. package/legacy/components/cell/GridCell.js +70 -378
  166. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  167. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  168. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  169. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -2
  170. package/legacy/components/containers/GridRoot.js +18 -15
  171. package/legacy/components/containers/GridRootStyles.js +215 -137
  172. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  173. package/legacy/components/panel/GridPanel.js +3 -4
  174. package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -14
  175. package/legacy/components/panel/filterPanel/GridFilterPanel.js +49 -20
  176. package/legacy/components/toolbar/GridToolbarColumnsButton.js +40 -21
  177. package/legacy/components/toolbar/GridToolbarDensitySelector.js +40 -21
  178. package/legacy/components/toolbar/GridToolbarExport.js +6 -1
  179. package/legacy/components/toolbar/GridToolbarExportContainer.js +40 -21
  180. package/legacy/components/toolbar/GridToolbarFilterButton.js +6 -10
  181. package/legacy/components/toolbar/GridToolbarQuickFilter.js +4 -0
  182. package/legacy/components/virtualization/GridBottomContainer.js +25 -0
  183. package/legacy/components/virtualization/GridMainContainer.js +20 -0
  184. package/legacy/components/virtualization/GridTopContainer.js +35 -0
  185. package/legacy/components/virtualization/GridVirtualScrollbar.js +129 -0
  186. package/legacy/components/virtualization/GridVirtualScroller.js +67 -16
  187. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +70 -0
  188. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  189. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  190. package/legacy/constants/gridClasses.js +1 -1
  191. package/legacy/hooks/core/gridCoreSelector.js +7 -0
  192. package/legacy/hooks/core/useGridInitialization.js +4 -0
  193. package/legacy/hooks/core/useGridLoggerFactory.js +2 -2
  194. package/legacy/hooks/core/useGridRefs.js +13 -0
  195. package/legacy/hooks/core/useGridTheme.js +21 -0
  196. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  197. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +13 -18
  198. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +69 -181
  199. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  200. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  201. package/legacy/hooks/features/columns/gridColumnsSelector.js +62 -0
  202. package/legacy/hooks/features/columns/gridColumnsUtils.js +10 -16
  203. package/legacy/hooks/features/columns/index.js +2 -1
  204. package/legacy/hooks/features/columns/useGridColumnSpanning.js +60 -59
  205. package/legacy/hooks/features/columns/useGridColumns.js +22 -23
  206. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +3 -0
  207. package/legacy/hooks/features/dimensions/index.js +1 -0
  208. package/legacy/hooks/features/dimensions/useGridDimensions.js +226 -151
  209. package/legacy/hooks/features/editing/useGridCellEditing.js +4 -4
  210. package/legacy/hooks/features/editing/useGridRowEditing.js +4 -4
  211. package/legacy/hooks/features/export/serializers/csvSerializer.js +3 -3
  212. package/legacy/hooks/features/export/useGridPrintExport.js +1 -1
  213. package/legacy/hooks/features/filter/gridFilterUtils.js +5 -5
  214. package/legacy/hooks/features/filter/useGridFilter.js +3 -3
  215. package/legacy/hooks/features/focus/gridFocusStateSelector.js +2 -6
  216. package/legacy/hooks/features/focus/useGridFocus.js +3 -3
  217. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  218. package/legacy/hooks/features/pagination/gridPaginationUtils.js +2 -2
  219. package/legacy/hooks/features/pagination/useGridPagination.js +3 -5
  220. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  221. package/legacy/hooks/features/rows/gridRowsSelector.js +5 -5
  222. package/legacy/hooks/features/rows/gridRowsUtils.js +6 -6
  223. package/legacy/hooks/features/rows/useGridParamsApi.js +4 -5
  224. package/legacy/hooks/features/rows/useGridRows.js +7 -7
  225. package/legacy/hooks/features/rows/useGridRowsMeta.js +9 -6
  226. package/legacy/hooks/features/scroll/useGridScroll.js +8 -10
  227. package/legacy/hooks/features/sorting/gridSortingUtils.js +5 -3
  228. package/legacy/hooks/features/sorting/useGridSorting.js +15 -10
  229. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +29 -1
  230. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +490 -483
  231. package/legacy/hooks/features/virtualization/useGridVirtualization.js +8 -1
  232. package/legacy/hooks/utils/index.js +4 -1
  233. package/legacy/hooks/utils/useGridApiContext.js +1 -1
  234. package/legacy/hooks/utils/useGridAriaAttributes.js +1 -2
  235. package/legacy/hooks/utils/useGridNativeEventListener.js +4 -9
  236. package/legacy/hooks/utils/useGridPrivateApiContext.js +1 -1
  237. package/legacy/hooks/utils/useGridRootProps.js +1 -1
  238. package/legacy/hooks/utils/useGridSelector.js +1 -1
  239. package/legacy/hooks/utils/useResizeObserver.js +36 -0
  240. package/legacy/hooks/utils/useRunOnce.js +18 -0
  241. package/legacy/index.js +1 -2
  242. package/legacy/internals/index.js +9 -7
  243. package/legacy/internals/utils/index.js +2 -1
  244. package/legacy/internals/utils/propValidation.js +21 -0
  245. package/legacy/locales/hrHR.js +161 -0
  246. package/legacy/locales/index.js +4 -1
  247. package/legacy/locales/ptPT.js +161 -0
  248. package/legacy/locales/zhHK.js +161 -0
  249. package/legacy/models/index.js +0 -1
  250. package/legacy/models/params/index.js +1 -2
  251. package/legacy/utils/createSelector.js +1 -1
  252. package/legacy/utils/exportAs.js +1 -1
  253. package/legacy/utils/utils.js +10 -1
  254. package/locales/hrHR.d.ts +1 -0
  255. package/locales/hrHR.js +149 -0
  256. package/locales/index.d.ts +3 -0
  257. package/locales/index.js +4 -1
  258. package/locales/ptPT.d.ts +1 -0
  259. package/locales/ptPT.js +149 -0
  260. package/locales/zhHK.d.ts +1 -0
  261. package/locales/zhHK.js +149 -0
  262. package/models/api/gridColumnGroupingApi.d.ts +2 -2
  263. package/models/api/gridCoreApi.d.ts +16 -16
  264. package/models/api/gridRowsMetaApi.d.ts +1 -1
  265. package/models/api/gridVirtualizationApi.d.ts +2 -3
  266. package/models/events/gridEventLookup.d.ts +3 -3
  267. package/models/gridFilterModel.d.ts +1 -1
  268. package/models/gridSlotsComponent.d.ts +16 -2
  269. package/models/gridStateCommunity.d.ts +5 -1
  270. package/models/index.d.ts +0 -1
  271. package/models/index.js +0 -1
  272. package/models/params/index.d.ts +0 -1
  273. package/models/params/index.js +1 -2
  274. package/models/props/DataGridProps.d.ts +7 -12
  275. package/modern/DataGrid/DataGrid.js +15 -27
  276. package/modern/DataGrid/useDataGridComponent.js +2 -1
  277. package/modern/DataGrid/useDataGridProps.js +1 -0
  278. package/modern/colDef/gridDateColDef.js +1 -1
  279. package/modern/components/GridColumnHeaders.js +3 -11
  280. package/modern/components/GridDetailPanels.js +4 -0
  281. package/modern/components/GridHeaders.js +53 -0
  282. package/modern/components/GridPagination.js +1 -1
  283. package/modern/components/GridPinnedRows.js +4 -0
  284. package/modern/components/GridRow.js +258 -96
  285. package/modern/components/GridScrollbarFillerCell.js +39 -0
  286. package/modern/components/base/GridBody.js +2 -116
  287. package/modern/components/base/GridOverlays.js +10 -16
  288. package/modern/components/cell/GridActionsCell.js +1 -1
  289. package/modern/components/cell/GridCell.js +66 -370
  290. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  291. package/modern/components/columnHeaders/GridColumnHeaderItem.js +7 -3
  292. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  293. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  294. package/modern/components/containers/GridRoot.js +18 -14
  295. package/modern/components/containers/GridRootStyles.js +307 -204
  296. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  297. package/modern/components/panel/GridPanel.js +3 -4
  298. package/modern/components/panel/filterPanel/GridFilterForm.js +31 -14
  299. package/modern/components/panel/filterPanel/GridFilterPanel.js +46 -20
  300. package/modern/components/toolbar/GridToolbarColumnsButton.js +38 -21
  301. package/modern/components/toolbar/GridToolbarDensitySelector.js +38 -21
  302. package/modern/components/toolbar/GridToolbarExport.js +6 -1
  303. package/modern/components/toolbar/GridToolbarExportContainer.js +39 -22
  304. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -10
  305. package/modern/components/toolbar/GridToolbarQuickFilter.js +4 -0
  306. package/modern/components/virtualization/GridBottomContainer.js +25 -0
  307. package/modern/components/virtualization/GridMainContainer.js +20 -0
  308. package/modern/components/virtualization/GridTopContainer.js +35 -0
  309. package/modern/components/virtualization/GridVirtualScrollbar.js +131 -0
  310. package/modern/components/virtualization/GridVirtualScroller.js +69 -16
  311. package/modern/components/virtualization/GridVirtualScrollerFiller.js +71 -0
  312. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  313. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  314. package/modern/constants/gridClasses.js +1 -1
  315. package/modern/hooks/core/gridCoreSelector.js +5 -0
  316. package/modern/hooks/core/useGridInitialization.js +4 -0
  317. package/modern/hooks/core/useGridLoggerFactory.js +2 -2
  318. package/modern/hooks/core/useGridRefs.js +13 -0
  319. package/modern/hooks/core/useGridTheme.js +19 -0
  320. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  321. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  322. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +67 -160
  323. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  324. package/modern/hooks/features/columns/gridColumnsInterfaces.js +9 -1
  325. package/modern/hooks/features/columns/gridColumnsSelector.js +51 -0
  326. package/modern/hooks/features/columns/gridColumnsUtils.js +10 -12
  327. package/modern/hooks/features/columns/index.js +2 -1
  328. package/modern/hooks/features/columns/useGridColumnSpanning.js +62 -61
  329. package/modern/hooks/features/columns/useGridColumns.js +19 -21
  330. package/modern/hooks/features/dimensions/gridDimensionsSelectors.js +1 -0
  331. package/modern/hooks/features/dimensions/index.js +1 -0
  332. package/modern/hooks/features/dimensions/useGridDimensions.js +214 -146
  333. package/modern/hooks/features/editing/useGridCellEditing.js +4 -4
  334. package/modern/hooks/features/editing/useGridRowEditing.js +4 -4
  335. package/modern/hooks/features/export/serializers/csvSerializer.js +3 -3
  336. package/modern/hooks/features/export/useGridPrintExport.js +1 -1
  337. package/modern/hooks/features/filter/gridFilterUtils.js +5 -5
  338. package/modern/hooks/features/filter/useGridFilter.js +3 -3
  339. package/modern/hooks/features/focus/gridFocusStateSelector.js +2 -6
  340. package/modern/hooks/features/focus/useGridFocus.js +3 -3
  341. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -16
  342. package/modern/hooks/features/pagination/gridPaginationUtils.js +2 -2
  343. package/modern/hooks/features/pagination/useGridPagination.js +3 -5
  344. package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  345. package/modern/hooks/features/rows/gridRowsSelector.js +2 -2
  346. package/modern/hooks/features/rows/gridRowsUtils.js +6 -6
  347. package/modern/hooks/features/rows/useGridRows.js +7 -7
  348. package/modern/hooks/features/rows/useGridRowsMeta.js +9 -6
  349. package/modern/hooks/features/scroll/useGridScroll.js +8 -9
  350. package/modern/hooks/features/sorting/gridSortingUtils.js +5 -3
  351. package/modern/hooks/features/sorting/useGridSorting.js +15 -10
  352. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  353. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +435 -432
  354. package/modern/hooks/features/virtualization/useGridVirtualization.js +8 -1
  355. package/modern/hooks/utils/index.js +4 -1
  356. package/modern/hooks/utils/useGridApiContext.js +1 -1
  357. package/modern/hooks/utils/useGridAriaAttributes.js +1 -1
  358. package/modern/hooks/utils/useGridNativeEventListener.js +3 -9
  359. package/modern/hooks/utils/useGridPrivateApiContext.js +1 -1
  360. package/modern/hooks/utils/useGridRootProps.js +1 -1
  361. package/modern/hooks/utils/useGridSelector.js +1 -1
  362. package/modern/hooks/utils/useResizeObserver.js +36 -0
  363. package/modern/hooks/utils/useRunOnce.js +18 -0
  364. package/modern/index.js +1 -2
  365. package/modern/internals/index.js +9 -7
  366. package/modern/internals/utils/index.js +2 -1
  367. package/modern/internals/utils/propValidation.js +19 -0
  368. package/modern/locales/hrHR.js +149 -0
  369. package/modern/locales/index.js +4 -1
  370. package/modern/locales/ptPT.js +149 -0
  371. package/modern/locales/zhHK.js +149 -0
  372. package/modern/models/index.js +0 -1
  373. package/modern/models/params/index.js +1 -2
  374. package/modern/utils/createSelector.js +1 -1
  375. package/modern/utils/exportAs.js +1 -1
  376. package/modern/utils/utils.js +10 -1
  377. package/node/DataGrid/DataGrid.js +15 -27
  378. package/node/DataGrid/useDataGridComponent.js +1 -0
  379. package/node/DataGrid/useDataGridProps.js +1 -0
  380. package/node/colDef/gridDateColDef.js +1 -1
  381. package/node/components/GridColumnHeaders.js +3 -11
  382. package/node/components/GridDetailPanels.js +10 -0
  383. package/node/components/GridHeaders.js +60 -0
  384. package/node/components/GridPagination.js +1 -1
  385. package/node/components/GridPinnedRows.js +10 -0
  386. package/node/components/GridRow.js +256 -94
  387. package/node/components/GridScrollbarFillerCell.js +47 -0
  388. package/node/components/base/GridBody.js +7 -118
  389. package/node/components/base/GridOverlays.js +9 -15
  390. package/node/components/cell/GridActionsCell.js +1 -1
  391. package/node/components/cell/GridCell.js +67 -370
  392. package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -6
  393. package/node/components/columnHeaders/GridColumnHeaderItem.js +8 -4
  394. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +5 -2
  395. package/node/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  396. package/node/components/containers/GridRoot.js +17 -14
  397. package/node/components/containers/GridRootStyles.js +175 -72
  398. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +1 -1
  399. package/node/components/panel/GridPanel.js +3 -4
  400. package/node/components/panel/filterPanel/GridFilterForm.js +30 -13
  401. package/node/components/panel/filterPanel/GridFilterPanel.js +45 -19
  402. package/node/components/toolbar/GridToolbarColumnsButton.js +36 -20
  403. package/node/components/toolbar/GridToolbarDensitySelector.js +36 -20
  404. package/node/components/toolbar/GridToolbarExport.js +6 -1
  405. package/node/components/toolbar/GridToolbarExportContainer.js +37 -21
  406. package/node/components/toolbar/GridToolbarFilterButton.js +6 -10
  407. package/node/components/toolbar/GridToolbarQuickFilter.js +4 -0
  408. package/node/components/virtualization/GridBottomContainer.js +34 -0
  409. package/node/components/{containers → virtualization}/GridMainContainer.js +7 -29
  410. package/node/components/virtualization/GridTopContainer.js +44 -0
  411. package/node/components/virtualization/GridVirtualScrollbar.js +138 -0
  412. package/node/components/virtualization/GridVirtualScroller.js +69 -17
  413. package/node/components/virtualization/GridVirtualScrollerFiller.js +77 -0
  414. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  415. package/node/constants/defaultGridSlotsComponents.js +5 -1
  416. package/node/constants/gridClasses.js +1 -1
  417. package/node/hooks/core/gridCoreSelector.js +12 -0
  418. package/node/hooks/core/useGridInitialization.js +4 -0
  419. package/node/hooks/core/useGridLoggerFactory.js +2 -2
  420. package/node/hooks/core/useGridRefs.js +22 -0
  421. package/node/hooks/core/useGridTheme.js +29 -0
  422. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  423. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +11 -16
  424. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +65 -159
  425. package/node/hooks/features/columnMenu/useGridColumnMenu.js +28 -23
  426. package/node/hooks/features/columns/gridColumnsInterfaces.js +11 -1
  427. package/node/hooks/features/columns/gridColumnsSelector.js +52 -1
  428. package/node/hooks/features/columns/gridColumnsUtils.js +10 -13
  429. package/node/hooks/features/columns/index.js +22 -61
  430. package/node/hooks/features/columns/useGridColumnSpanning.js +62 -61
  431. package/node/hooks/features/columns/useGridColumns.js +20 -22
  432. package/node/hooks/features/dimensions/gridDimensionsSelectors.js +8 -0
  433. package/node/hooks/features/dimensions/index.js +11 -0
  434. package/node/hooks/features/dimensions/useGridDimensions.js +215 -144
  435. package/node/hooks/features/editing/useGridCellEditing.js +4 -4
  436. package/node/hooks/features/editing/useGridRowEditing.js +4 -4
  437. package/node/hooks/features/export/serializers/csvSerializer.js +3 -3
  438. package/node/hooks/features/export/useGridPrintExport.js +1 -1
  439. package/node/hooks/features/filter/gridFilterUtils.js +5 -5
  440. package/node/hooks/features/filter/useGridFilter.js +2 -2
  441. package/node/hooks/features/focus/gridFocusStateSelector.js +3 -7
  442. package/node/hooks/features/focus/useGridFocus.js +2 -2
  443. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -15
  444. package/node/hooks/features/pagination/gridPaginationUtils.js +2 -2
  445. package/node/hooks/features/pagination/useGridPagination.js +3 -5
  446. package/node/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  447. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  448. package/node/hooks/features/rows/gridRowsUtils.js +6 -6
  449. package/node/hooks/features/rows/useGridRows.js +7 -7
  450. package/node/hooks/features/rows/useGridRowsMeta.js +7 -5
  451. package/node/hooks/features/scroll/useGridScroll.js +8 -9
  452. package/node/hooks/features/sorting/gridSortingUtils.js +5 -3
  453. package/node/hooks/features/sorting/useGridSorting.js +15 -10
  454. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +22 -2
  455. package/node/hooks/features/virtualization/useGridVirtualScroller.js +434 -431
  456. package/node/hooks/features/virtualization/useGridVirtualization.js +9 -1
  457. package/node/hooks/utils/index.js +36 -0
  458. package/node/hooks/utils/useGridApiContext.js +1 -1
  459. package/node/hooks/utils/useGridAriaAttributes.js +1 -1
  460. package/node/hooks/utils/useGridNativeEventListener.js +3 -9
  461. package/node/hooks/utils/useGridPrivateApiContext.js +1 -1
  462. package/node/hooks/utils/useGridRootProps.js +1 -1
  463. package/node/hooks/utils/useGridSelector.js +1 -1
  464. package/node/hooks/utils/useResizeObserver.js +44 -0
  465. package/node/hooks/utils/useRunOnce.js +27 -0
  466. package/node/index.js +1 -13
  467. package/node/internals/index.js +86 -71
  468. package/node/internals/utils/index.js +11 -0
  469. package/node/internals/utils/propValidation.js +26 -0
  470. package/node/locales/hrHR.js +155 -0
  471. package/node/locales/index.js +33 -0
  472. package/node/locales/ptPT.js +155 -0
  473. package/node/locales/zhHK.js +155 -0
  474. package/node/models/index.js +0 -11
  475. package/node/models/params/index.js +0 -11
  476. package/node/utils/createSelector.js +1 -1
  477. package/node/utils/exportAs.js +1 -1
  478. package/node/utils/utils.js +11 -1
  479. package/package.json +6 -6
  480. package/utils/createSelector.js +1 -1
  481. package/utils/exportAs.js +1 -1
  482. package/utils/utils.d.ts +6 -0
  483. package/utils/utils.js +10 -1
  484. package/components/DataGridVirtualScroller.d.ts +0 -3
  485. package/components/DataGridVirtualScroller.js +0 -35
  486. package/components/containers/GridMainContainer.js +0 -43
  487. package/legacy/components/DataGridVirtualScroller.js +0 -32
  488. package/legacy/components/containers/GridMainContainer.js +0 -45
  489. package/legacy/models/gridRootContainerRef.js +0 -1
  490. package/legacy/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  491. package/models/gridRootContainerRef.d.ts +0 -5
  492. package/models/gridRootContainerRef.js +0 -1
  493. package/models/params/gridRenderedRowsIntervalChangeParams.d.ts +0 -10
  494. package/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  495. package/modern/components/DataGridVirtualScroller.js +0 -35
  496. package/modern/components/containers/GridMainContainer.js +0 -42
  497. package/modern/models/gridRootContainerRef.js +0 -1
  498. package/modern/models/params/gridRenderedRowsIntervalChangeParams.js +0 -1
  499. package/node/components/DataGridVirtualScroller.js +0 -42
  500. package/node/models/gridRootContainerRef.js +0 -5
  501. package/node/models/params/gridRenderedRowsIntervalChangeParams.js +0 -5
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { alpha, styled, darken, lighten } from '@mui/material/styles';
3
- import { gridClasses } from '../../constants/gridClasses';
2
+ import { alpha, styled, darken, lighten, decomposeColor, recomposeColor } from '@mui/material/styles';
3
+ import { gridClasses as c } from '../../constants/gridClasses';
4
4
  function getBorderColor(theme) {
5
5
  if (theme.vars) {
6
6
  return theme.vars.palette.TableCell.border;
@@ -11,17 +11,17 @@ function getBorderColor(theme) {
11
11
  return darken(alpha(theme.palette.divider, 1), 0.68);
12
12
  }
13
13
  const columnHeadersStyles = {
14
- [`.${gridClasses.columnSeparator}, .${gridClasses['columnSeparator--resizing']}`]: {
14
+ [`.${c.columnSeparator}, .${c['columnSeparator--resizing']}`]: {
15
15
  visibility: 'visible',
16
16
  width: 'auto'
17
17
  }
18
18
  };
19
19
  const columnHeaderStyles = {
20
- [`& .${gridClasses.iconButtonContainer}`]: {
20
+ [`& .${c.iconButtonContainer}`]: {
21
21
  visibility: 'visible',
22
22
  width: 'auto'
23
23
  },
24
- [`& .${gridClasses.menuIcon}`]: {
24
+ [`& .${c.menuIcon}`]: {
25
25
  width: 'auto',
26
26
  visibility: 'visible'
27
27
  }
@@ -30,138 +30,179 @@ export const GridRootStyles = styled('div', {
30
30
  name: 'MuiDataGrid',
31
31
  slot: 'Root',
32
32
  overridesResolver: (props, styles) => [{
33
- [`&.${gridClasses.autoHeight}`]: styles.autoHeight
33
+ [`&.${c.autoHeight}`]: styles.autoHeight
34
34
  }, {
35
- [`&.${gridClasses.aggregationColumnHeader}`]: styles.aggregationColumnHeader
35
+ [`&.${c.aggregationColumnHeader}`]: styles.aggregationColumnHeader
36
36
  }, {
37
- [`&.${gridClasses['aggregationColumnHeader--alignLeft']}`]: styles['aggregationColumnHeader--alignLeft']
37
+ [`&.${c['aggregationColumnHeader--alignLeft']}`]: styles['aggregationColumnHeader--alignLeft']
38
38
  }, {
39
- [`&.${gridClasses['aggregationColumnHeader--alignCenter']}`]: styles['aggregationColumnHeader--alignCenter']
39
+ [`&.${c['aggregationColumnHeader--alignCenter']}`]: styles['aggregationColumnHeader--alignCenter']
40
40
  }, {
41
- [`&.${gridClasses['aggregationColumnHeader--alignRight']}`]: styles['aggregationColumnHeader--alignRight']
41
+ [`&.${c['aggregationColumnHeader--alignRight']}`]: styles['aggregationColumnHeader--alignRight']
42
42
  }, {
43
- [`&.${gridClasses.aggregationColumnHeaderLabel}`]: styles.aggregationColumnHeaderLabel
43
+ [`&.${c.aggregationColumnHeaderLabel}`]: styles.aggregationColumnHeaderLabel
44
44
  }, {
45
- [`&.${gridClasses['root--disableUserSelection']} .${gridClasses.cell}`]: styles['root--disableUserSelection']
45
+ [`&.${c['root--disableUserSelection']} .${c.cell}`]: styles['root--disableUserSelection']
46
46
  }, {
47
- [`&.${gridClasses.autosizing}`]: styles.autosizing
47
+ [`&.${c.autosizing}`]: styles.autosizing
48
48
  }, {
49
- [`& .${gridClasses.editBooleanCell}`]: styles.editBooleanCell
49
+ [`& .${c.editBooleanCell}`]: styles.editBooleanCell
50
50
  }, {
51
- [`& .${gridClasses['cell--editing']}`]: styles['cell--editing']
51
+ [`& .${c['cell--editing']}`]: styles['cell--editing']
52
52
  }, {
53
- [`& .${gridClasses['cell--textCenter']}`]: styles['cell--textCenter']
53
+ [`& .${c['cell--textCenter']}`]: styles['cell--textCenter']
54
54
  }, {
55
- [`& .${gridClasses['cell--textLeft']}`]: styles['cell--textLeft']
55
+ [`& .${c['cell--textLeft']}`]: styles['cell--textLeft']
56
56
  }, {
57
- [`& .${gridClasses['cell--textRight']}`]: styles['cell--textRight']
57
+ [`& .${c['cell--textRight']}`]: styles['cell--textRight']
58
58
  },
59
59
  // TODO v6: Remove
60
60
  {
61
- [`& .${gridClasses['cell--withRenderer']}`]: styles['cell--withRenderer']
61
+ [`& .${c['cell--withRenderer']}`]: styles['cell--withRenderer']
62
62
  }, {
63
- [`& .${gridClasses.cell}`]: styles.cell
63
+ [`& .${c.cell}`]: styles.cell
64
64
  }, {
65
- [`& .${gridClasses['cell--rangeTop']}`]: styles['cell--rangeTop']
65
+ [`& .${c['cell--rangeTop']}`]: styles['cell--rangeTop']
66
66
  }, {
67
- [`& .${gridClasses['cell--rangeBottom']}`]: styles['cell--rangeBottom']
67
+ [`& .${c['cell--rangeBottom']}`]: styles['cell--rangeBottom']
68
68
  }, {
69
- [`& .${gridClasses['cell--rangeLeft']}`]: styles['cell--rangeLeft']
69
+ [`& .${c['cell--rangeLeft']}`]: styles['cell--rangeLeft']
70
70
  }, {
71
- [`& .${gridClasses['cell--rangeRight']}`]: styles['cell--rangeRight']
71
+ [`& .${c['cell--rangeRight']}`]: styles['cell--rangeRight']
72
72
  }, {
73
- [`& .${gridClasses['cell--withRightBorder']}`]: styles['cell--withRightBorder']
73
+ [`& .${c['cell--withRightBorder']}`]: styles['cell--withRightBorder']
74
74
  }, {
75
- [`& .${gridClasses.cellContent}`]: styles.cellContent
75
+ [`& .${c.cellContent}`]: styles.cellContent
76
76
  }, {
77
- [`& .${gridClasses.cellCheckbox}`]: styles.cellCheckbox
77
+ [`& .${c.cellCheckbox}`]: styles.cellCheckbox
78
78
  }, {
79
- [`& .${gridClasses.cellSkeleton}`]: styles.cellSkeleton
79
+ [`& .${c.cellSkeleton}`]: styles.cellSkeleton
80
80
  }, {
81
- [`& .${gridClasses.checkboxInput}`]: styles.checkboxInput
81
+ [`& .${c.checkboxInput}`]: styles.checkboxInput
82
82
  }, {
83
- [`& .${gridClasses['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']
83
+ [`& .${c['columnHeader--alignCenter']}`]: styles['columnHeader--alignCenter']
84
84
  }, {
85
- [`& .${gridClasses['columnHeader--alignLeft']}`]: styles['columnHeader--alignLeft']
85
+ [`& .${c['columnHeader--alignLeft']}`]: styles['columnHeader--alignLeft']
86
86
  }, {
87
- [`& .${gridClasses['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']
87
+ [`& .${c['columnHeader--alignRight']}`]: styles['columnHeader--alignRight']
88
88
  }, {
89
- [`& .${gridClasses['columnHeader--dragging']}`]: styles['columnHeader--dragging']
89
+ [`& .${c['columnHeader--dragging']}`]: styles['columnHeader--dragging']
90
90
  }, {
91
- [`& .${gridClasses['columnHeader--moving']}`]: styles['columnHeader--moving']
91
+ [`& .${c['columnHeader--moving']}`]: styles['columnHeader--moving']
92
92
  }, {
93
- [`& .${gridClasses['columnHeader--numeric']}`]: styles['columnHeader--numeric']
93
+ [`& .${c['columnHeader--numeric']}`]: styles['columnHeader--numeric']
94
94
  }, {
95
- [`& .${gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']
95
+ [`& .${c['columnHeader--sortable']}`]: styles['columnHeader--sortable']
96
96
  }, {
97
- [`& .${gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
97
+ [`& .${c['columnHeader--sorted']}`]: styles['columnHeader--sorted']
98
98
  }, {
99
- [`& .${gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
99
+ [`& .${c['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
100
100
  }, {
101
- [`& .${gridClasses.columnHeader}`]: styles.columnHeader
101
+ [`& .${c.columnHeader}`]: styles.columnHeader
102
102
  }, {
103
- [`& .${gridClasses.headerFilterRow}`]: styles.headerFilterRow
103
+ [`& .${c.headerFilterRow}`]: styles.headerFilterRow
104
104
  }, {
105
- [`& .${gridClasses.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
105
+ [`& .${c.columnHeaderCheckbox}`]: styles.columnHeaderCheckbox
106
106
  }, {
107
- [`& .${gridClasses.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer
107
+ [`& .${c.columnHeaderDraggableContainer}`]: styles.columnHeaderDraggableContainer
108
108
  }, {
109
- [`& .${gridClasses.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer
109
+ [`& .${c.columnHeaderTitleContainer}`]: styles.columnHeaderTitleContainer
110
110
  }, {
111
- [`& .${gridClasses['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']
111
+ [`& .${c['columnSeparator--resizable']}`]: styles['columnSeparator--resizable']
112
112
  }, {
113
- [`& .${gridClasses['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']
113
+ [`& .${c['columnSeparator--resizing']}`]: styles['columnSeparator--resizing']
114
114
  }, {
115
- [`& .${gridClasses.columnSeparator}`]: styles.columnSeparator
115
+ [`& .${c.columnSeparator}`]: styles.columnSeparator
116
116
  }, {
117
- [`& .${gridClasses.filterIcon}`]: styles.filterIcon
117
+ [`& .${c.filterIcon}`]: styles.filterIcon
118
118
  }, {
119
- [`& .${gridClasses.iconSeparator}`]: styles.iconSeparator
119
+ [`& .${c.iconSeparator}`]: styles.iconSeparator
120
120
  }, {
121
- [`& .${gridClasses.menuIcon}`]: styles.menuIcon
121
+ [`& .${c.menuIcon}`]: styles.menuIcon
122
122
  }, {
123
- [`& .${gridClasses.menuIconButton}`]: styles.menuIconButton
123
+ [`& .${c.menuIconButton}`]: styles.menuIconButton
124
124
  }, {
125
- [`& .${gridClasses.menuOpen}`]: styles.menuOpen
125
+ [`& .${c.menuOpen}`]: styles.menuOpen
126
126
  }, {
127
- [`& .${gridClasses.menuList}`]: styles.menuList
127
+ [`& .${c.menuList}`]: styles.menuList
128
128
  }, {
129
- [`& .${gridClasses['row--editable']}`]: styles['row--editable']
129
+ [`& .${c['row--editable']}`]: styles['row--editable']
130
130
  }, {
131
- [`& .${gridClasses['row--editing']}`]: styles['row--editing']
131
+ [`& .${c['row--editing']}`]: styles['row--editing']
132
132
  }, {
133
- [`& .${gridClasses['row--dragging']}`]: styles['row--dragging']
133
+ [`& .${c['row--dragging']}`]: styles['row--dragging']
134
134
  }, {
135
- [`& .${gridClasses.row}`]: styles.row
135
+ [`& .${c.row}`]: styles.row
136
136
  }, {
137
- [`& .${gridClasses.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
137
+ [`& .${c.rowReorderCellPlaceholder}`]: styles.rowReorderCellPlaceholder
138
138
  }, {
139
- [`& .${gridClasses.rowReorderCell}`]: styles.rowReorderCell
139
+ [`& .${c.rowReorderCell}`]: styles.rowReorderCell
140
140
  }, {
141
- [`& .${gridClasses['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']
141
+ [`& .${c['rowReorderCell--draggable']}`]: styles['rowReorderCell--draggable']
142
142
  }, {
143
- [`& .${gridClasses.sortIcon}`]: styles.sortIcon
143
+ [`& .${c.sortIcon}`]: styles.sortIcon
144
144
  }, {
145
- [`& .${gridClasses.withBorderColor}`]: styles.withBorderColor
145
+ [`& .${c.withBorderColor}`]: styles.withBorderColor
146
146
  }, {
147
- [`& .${gridClasses.treeDataGroupingCell}`]: styles.treeDataGroupingCell
147
+ [`& .${c.treeDataGroupingCell}`]: styles.treeDataGroupingCell
148
148
  }, {
149
- [`& .${gridClasses.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
149
+ [`& .${c.treeDataGroupingCellToggle}`]: styles.treeDataGroupingCellToggle
150
150
  }, {
151
- [`& .${gridClasses.detailPanelToggleCell}`]: styles.detailPanelToggleCell
151
+ [`& .${c.detailPanelToggleCell}`]: styles.detailPanelToggleCell
152
152
  }, {
153
- [`& .${gridClasses['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
153
+ [`& .${c['detailPanelToggleCell--expanded']}`]: styles['detailPanelToggleCell--expanded']
154
154
  }, styles.root]
155
155
  })(({
156
- theme
156
+ theme: t
157
157
  }) => {
158
- const borderColor = getBorderColor(theme);
159
- const radius = theme.shape.borderRadius;
158
+ const borderColor = getBorderColor(t);
159
+ const radius = t.shape.borderRadius;
160
+ const containerBackground = t.vars ? t.vars.palette.background.default : t.palette.background.default;
161
+ const pinnedBackground = containerBackground;
162
+ const overlayBackground = t.vars ? `rgba(${t.vars.palette.background.defaultChannel} / ${t.vars.palette.action.disabledOpacity})` : alpha(t.palette.background.default, t.palette.action.disabledOpacity);
163
+ const hoverOpacity = (t.vars || t).palette.action.hoverOpacity;
164
+ const hoverColor = (t.vars || t).palette.action.hover;
165
+ const selectedOpacity = (t.vars || t).palette.action.selectedOpacity;
166
+ const selectedBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / ${selectedOpacity})` : alpha(t.palette.primary.main, selectedOpacity);
167
+ const selectedHoverBackground = t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / calc(
168
+ ${t.vars.palette.action.selectedOpacity} +
169
+ ${t.vars.palette.action.hoverOpacity}
170
+ ))` : alpha(t.palette.primary.main, t.palette.action.selectedOpacity + t.palette.action.hoverOpacity);
171
+ const pinnedHoverBackground = t.vars ? hoverColor : blend(pinnedBackground, hoverColor, hoverOpacity);
172
+ const pinnedSelectedBackground = t.vars ? selectedBackground : blend(pinnedBackground, selectedBackground, selectedOpacity);
173
+ const pinnedSelectedHoverBackground = t.vars ? hoverColor : blend(pinnedSelectedBackground, hoverColor, hoverOpacity);
174
+ const selectedStyles = {
175
+ backgroundColor: selectedBackground,
176
+ '&:hover': {
177
+ backgroundColor: selectedHoverBackground,
178
+ // Reset on touch devices, it doesn't add specificity
179
+ '@media (hover: none)': {
180
+ backgroundColor: selectedBackground
181
+ }
182
+ }
183
+ };
160
184
  const gridStyle = _extends({
161
185
  '--unstable_DataGrid-radius': typeof radius === 'number' ? `${radius}px` : radius,
162
- '--unstable_DataGrid-headWeight': theme.typography.fontWeightMedium,
163
- '--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),
186
+ '--unstable_DataGrid-headWeight': t.typography.fontWeightMedium,
187
+ '--unstable_DataGrid-overlayBackground': overlayBackground,
188
+ '--DataGrid-containerBackground': containerBackground,
189
+ '--DataGrid-pinnedBackground': pinnedBackground,
190
+ '--DataGrid-rowBorderColor': borderColor,
164
191
  '--DataGrid-cellOffsetMultiplier': 2,
192
+ '--DataGrid-width': '0px',
193
+ '--DataGrid-hasScrollX': '0',
194
+ '--DataGrid-hasScrollY': '0',
195
+ '--DataGrid-offsetTop': '0px',
196
+ '--DataGrid-offsetLeft': '0px',
197
+ '--DataGrid-scrollbarSize': '10px',
198
+ '--DataGrid-rowWidth': '0px',
199
+ '--DataGrid-columnsTotalWidth': '0px',
200
+ '--DataGrid-leftPinnedWidth': '0px',
201
+ '--DataGrid-rightPinnedWidth': '0px',
202
+ '--DataGrid-headerHeight': '0px',
203
+ '--DataGrid-headersTotalHeight': '0px',
204
+ '--DataGrid-topContainerHeight': '0px',
205
+ '--DataGrid-bottomContainerHeight': '0px',
165
206
  flex: 1,
166
207
  boxSizing: 'border-box',
167
208
  position: 'relative',
@@ -169,8 +210,8 @@ export const GridRootStyles = styled('div', {
169
210
  borderStyle: 'solid',
170
211
  borderColor,
171
212
  borderRadius: 'var(--unstable_DataGrid-radius)',
172
- color: (theme.vars || theme).palette.text.primary
173
- }, theme.typography.body2, {
213
+ color: (t.vars || t).palette.text.primary
214
+ }, t.typography.body2, {
174
215
  outline: 'none',
175
216
  height: '100%',
176
217
  display: 'flex',
@@ -180,59 +221,63 @@ export const GridRootStyles = styled('div', {
180
221
  flexDirection: 'column',
181
222
  overflowAnchor: 'none',
182
223
  // Keep the same scrolling position
183
- [`&.${gridClasses.autoHeight}`]: {
184
- height: 'auto',
185
- [`& .${gridClasses['row--lastVisible']} .${gridClasses.cell}`]: {
186
- borderBottomColor: 'transparent'
187
- }
188
- },
189
- [`&.${gridClasses.autosizing}`]: {
190
- [`& .${gridClasses.columnHeaderTitleContainerContent} > *`]: {
224
+ // The selector we really want here is `:first-child`, but emotion thinks it knows better than use what we
225
+ // want and prints a warning to the console if we use it, about :first-child being "unsafe" in an SSR context.
226
+ // https://github.com/emotion-js/emotion/issues/1105
227
+ // Using `:first-of-type instead` is ironically less "safe" because if all our elements aren't `div`, this style
228
+ // will fail to apply.
229
+ [`.${c.main} > *:first-of-type`]: {
230
+ borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
231
+ borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
232
+ },
233
+ [`&.${c.autoHeight}`]: {
234
+ height: 'auto'
235
+ },
236
+ [`&.${c.autosizing}`]: {
237
+ [`& .${c.columnHeaderTitleContainerContent} > *`]: {
191
238
  overflow: 'visible !important'
192
239
  },
193
- [`& .${gridClasses.cell} > *`]: {
240
+ [`& .${c.cell} > *`]: {
194
241
  overflow: 'visible !important',
195
242
  whiteSpace: 'nowrap'
196
243
  }
197
244
  },
198
- [`& .${gridClasses['virtualScrollerContent--overflowed']} .${gridClasses['row--lastVisible']} .${gridClasses.cell}`]: {
199
- borderBottomColor: 'transparent'
200
- },
201
- [`& .${gridClasses.columnHeader}, & .${gridClasses.cell}`]: {
245
+ [`& .${c.columnHeader}, & .${c.cell}`]: {
202
246
  WebkitTapHighlightColor: 'transparent',
203
247
  lineHeight: null,
204
248
  padding: '0 10px',
205
249
  boxSizing: 'border-box'
206
250
  },
207
- [`& .${gridClasses.columnHeader}:focus-within, & .${gridClasses.cell}:focus-within`]: {
208
- outline: `solid ${theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / 0.5)` : alpha(theme.palette.primary.main, 0.5)} 1px`,
251
+ [`& .${c.columnHeader}:focus-within, & .${c.cell}:focus-within`]: {
252
+ outline: `solid ${t.vars ? `rgba(${t.vars.palette.primary.mainChannel} / 0.5)` : alpha(t.palette.primary.main, 0.5)} 1px`,
209
253
  outlineWidth: 1,
210
254
  outlineOffset: -1
211
255
  },
212
- [`& .${gridClasses.columnHeader}:focus, & .${gridClasses.cell}:focus`]: {
213
- outline: `solid ${theme.palette.primary.main} 1px`
256
+ [`& .${c.columnHeader}:focus, & .${c.cell}:focus`]: {
257
+ outline: `solid ${t.palette.primary.main} 1px`
214
258
  },
215
- [`& .${gridClasses.columnHeaderCheckbox}, & .${gridClasses.cellCheckbox}`]: {
259
+ [`& .${c.columnHeaderCheckbox}, & .${c.cellCheckbox}`]: {
216
260
  padding: 0,
217
261
  justifyContent: 'center',
218
262
  alignItems: 'center'
219
263
  },
220
- [`& .${gridClasses.columnHeader}`]: {
264
+ [`& .${c.columnHeader}`]: {
221
265
  position: 'relative',
222
266
  display: 'flex',
223
- alignItems: 'center'
267
+ alignItems: 'center',
268
+ overflow: 'hidden'
224
269
  },
225
- [`& .${gridClasses['columnHeader--sorted']} .${gridClasses.iconButtonContainer}, & .${gridClasses['columnHeader--filtered']} .${gridClasses.iconButtonContainer}`]: {
270
+ [`& .${c['columnHeader--sorted']} .${c.iconButtonContainer}, & .${c['columnHeader--filtered']} .${c.iconButtonContainer}`]: {
226
271
  visibility: 'visible',
227
272
  width: 'auto'
228
273
  },
229
- [`& .${gridClasses.columnHeader}:not(.${gridClasses['columnHeader--sorted']}) .${gridClasses.sortIcon}`]: {
274
+ [`& .${c.columnHeader}:not(.${c['columnHeader--sorted']}) .${c.sortIcon}`]: {
230
275
  opacity: 0,
231
- transition: theme.transitions.create(['opacity'], {
232
- duration: theme.transitions.duration.shorter
276
+ transition: t.transitions.create(['opacity'], {
277
+ duration: t.transitions.duration.shorter
233
278
  })
234
279
  },
235
- [`& .${gridClasses.columnHeaderTitleContainer}`]: {
280
+ [`& .${c.columnHeaderTitleContainer}`]: {
236
281
  display: 'flex',
237
282
  alignItems: 'center',
238
283
  minWidth: 0,
@@ -242,51 +287,48 @@ export const GridRootStyles = styled('div', {
242
287
  // to anchor the aggregation label
243
288
  position: 'relative'
244
289
  },
245
- [`& .${gridClasses.columnHeaderTitleContainerContent}`]: {
290
+ [`& .${c.columnHeaderTitleContainerContent}`]: {
246
291
  overflow: 'hidden',
247
292
  display: 'flex',
248
293
  alignItems: 'center'
249
294
  },
250
- [`& .${gridClasses['columnHeader--filledGroup']} .${gridClasses.columnHeaderTitleContainer}`]: {
295
+ [`& .${c['columnHeader--filledGroup']} .${c.columnHeaderTitleContainer}`]: {
251
296
  borderBottomWidth: '1px',
252
297
  borderBottomStyle: 'solid',
253
298
  boxSizing: 'border-box'
254
299
  },
255
- [`& .${gridClasses['columnHeader--filledGroup']}.${gridClasses['columnHeader--showColumnBorder']} .${gridClasses.columnHeaderTitleContainer}`]: {
300
+ [`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']} .${c.columnHeaderTitleContainer}`]: {
256
301
  borderBottom: `none`
257
302
  },
258
- [`& .${gridClasses['columnHeader--filledGroup']}.${gridClasses['columnHeader--showColumnBorder']}`]: {
303
+ [`& .${c['columnHeader--filledGroup']}.${c['columnHeader--showColumnBorder']}`]: {
259
304
  borderBottomWidth: '1px',
260
305
  borderBottomStyle: 'solid',
261
306
  boxSizing: 'border-box'
262
307
  },
263
- [`& .${gridClasses.headerFilterRow}`]: {
264
- borderTop: `1px solid ${borderColor}`
265
- },
266
- [`& .${gridClasses.sortIcon}, & .${gridClasses.filterIcon}`]: {
308
+ [`& .${c.sortIcon}, & .${c.filterIcon}`]: {
267
309
  fontSize: 'inherit'
268
310
  },
269
- [`& .${gridClasses['columnHeader--sortable']}`]: {
311
+ [`& .${c['columnHeader--sortable']}`]: {
270
312
  cursor: 'pointer'
271
313
  },
272
- [`& .${gridClasses['columnHeader--alignCenter']} .${gridClasses.columnHeaderTitleContainer}`]: {
314
+ [`& .${c['columnHeader--alignCenter']} .${c.columnHeaderTitleContainer}`]: {
273
315
  justifyContent: 'center'
274
316
  },
275
- [`& .${gridClasses['columnHeader--alignRight']} .${gridClasses.columnHeaderDraggableContainer}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.columnHeaderTitleContainer}`]: {
317
+ [`& .${c['columnHeader--alignRight']} .${c.columnHeaderDraggableContainer}, & .${c['columnHeader--alignRight']} .${c.columnHeaderTitleContainer}`]: {
276
318
  flexDirection: 'row-reverse'
277
319
  },
278
- [`& .${gridClasses['columnHeader--alignCenter']} .${gridClasses.menuIcon}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}`]: {
320
+ [`& .${c['columnHeader--alignCenter']} .${c.menuIcon}, & .${c['columnHeader--alignRight']} .${c.menuIcon}`]: {
279
321
  marginRight: 'auto',
280
322
  marginLeft: -6
281
323
  },
282
- [`& .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}, & .${gridClasses['columnHeader--alignRight']} .${gridClasses.menuIcon}`]: {
324
+ [`& .${c['columnHeader--alignRight']} .${c.menuIcon}, & .${c['columnHeader--alignRight']} .${c.menuIcon}`]: {
283
325
  marginRight: 'auto',
284
326
  marginLeft: -10
285
327
  },
286
- [`& .${gridClasses['columnHeader--moving']}`]: {
287
- backgroundColor: (theme.vars || theme).palette.action.hover
328
+ [`& .${c['columnHeader--moving']}`]: {
329
+ backgroundColor: (t.vars || t).palette.action.hover
288
330
  },
289
- [`& .${gridClasses.columnSeparator}`]: {
331
+ [`& .${c.columnSeparator}`]: {
290
332
  visibility: 'hidden',
291
333
  position: 'absolute',
292
334
  zIndex: 100,
@@ -295,44 +337,47 @@ export const GridRootStyles = styled('div', {
295
337
  justifyContent: 'center',
296
338
  color: borderColor
297
339
  },
340
+ [`& .${c.columnHeaders}`]: {
341
+ width: 'var(--DataGrid-rowWidth)'
342
+ },
298
343
  '@media (hover: hover)': {
299
- [`& .${gridClasses.columnHeaders}:hover`]: columnHeadersStyles,
300
- [`& .${gridClasses.columnHeader}:hover`]: columnHeaderStyles,
301
- [`& .${gridClasses.columnHeader}:not(.${gridClasses['columnHeader--sorted']}):hover .${gridClasses.sortIcon}`]: {
344
+ [`& .${c.columnHeaders}:hover`]: columnHeadersStyles,
345
+ [`& .${c.columnHeader}:hover`]: columnHeaderStyles,
346
+ [`& .${c.columnHeader}:not(.${c['columnHeader--sorted']}):hover .${c.sortIcon}`]: {
302
347
  opacity: 0.5
303
348
  }
304
349
  },
305
350
  '@media (hover: none)': {
306
- [`& .${gridClasses.columnHeaders}`]: columnHeadersStyles,
307
- [`& .${gridClasses.columnHeader}`]: columnHeaderStyles
351
+ [`& .${c.columnHeaders}`]: columnHeadersStyles,
352
+ [`& .${c.columnHeader}`]: columnHeaderStyles
308
353
  },
309
- [`& .${gridClasses['columnSeparator--sideLeft']}`]: {
354
+ [`& .${c['columnSeparator--sideLeft']}`]: {
310
355
  left: -12
311
356
  },
312
- [`& .${gridClasses['columnSeparator--sideRight']}`]: {
357
+ [`& .${c['columnSeparator--sideRight']}`]: {
313
358
  right: -12
314
359
  },
315
- [`& .${gridClasses['columnSeparator--resizable']}`]: {
360
+ [`& .${c['columnSeparator--resizable']}`]: {
316
361
  cursor: 'col-resize',
317
362
  touchAction: 'none',
318
363
  '&:hover': {
319
- color: (theme.vars || theme).palette.text.primary,
364
+ color: (t.vars || t).palette.text.primary,
320
365
  // Reset on touch devices, it doesn't add specificity
321
366
  '@media (hover: none)': {
322
367
  color: borderColor
323
368
  }
324
369
  },
325
- [`&.${gridClasses['columnSeparator--resizing']}`]: {
326
- color: (theme.vars || theme).palette.text.primary
370
+ [`&.${c['columnSeparator--resizing']}`]: {
371
+ color: (t.vars || t).palette.text.primary
327
372
  },
328
373
  '& svg': {
329
374
  pointerEvents: 'none'
330
375
  }
331
376
  },
332
- [`& .${gridClasses.iconSeparator}`]: {
377
+ [`& .${c.iconSeparator}`]: {
333
378
  color: 'inherit'
334
379
  },
335
- [`& .${gridClasses.menuIcon}`]: {
380
+ [`& .${c.menuIcon}`]: {
336
381
  width: 0,
337
382
  visibility: 'hidden',
338
383
  fontSize: 20,
@@ -340,178 +385,236 @@ export const GridRootStyles = styled('div', {
340
385
  display: 'flex',
341
386
  alignItems: 'center'
342
387
  },
343
- [`.${gridClasses.menuOpen}`]: {
388
+ [`.${c.menuOpen}`]: {
344
389
  visibility: 'visible',
345
390
  width: 'auto'
346
391
  },
347
- [`& .${gridClasses.row}`]: {
392
+ [`& .${c.headerFilterRow}`]: {
393
+ [`& .${c.columnHeader}`]: {
394
+ boxSizing: 'border-box',
395
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
396
+ }
397
+ },
398
+ /* Row styles */
399
+ [`.${c.row}`]: {
348
400
  display: 'flex',
349
- width: 'fit-content',
401
+ width: 'var(--DataGrid-rowWidth)',
350
402
  breakInside: 'avoid',
351
403
  // Avoid the row to be broken in two different print pages.
352
- '&:hover, &.Mui-hovered': {
353
- backgroundColor: (theme.vars || theme).palette.action.hover,
404
+
405
+ '--rowBorderColor': 'var(--DataGrid-rowBorderColor)',
406
+ [`&.${c['row--firstVisible']}`]: {
407
+ '--rowBorderColor': 'transparent'
408
+ },
409
+ '&:hover': {
410
+ backgroundColor: (t.vars || t).palette.action.hover,
354
411
  // Reset on touch devices, it doesn't add specificity
355
412
  '@media (hover: none)': {
356
413
  backgroundColor: 'transparent'
357
414
  }
358
415
  },
359
- '&.Mui-selected': {
360
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
361
- '&:hover, &.Mui-hovered': {
362
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(
363
- ${theme.vars.palette.action.selectedOpacity} +
364
- ${theme.vars.palette.action.hoverOpacity}
365
- ))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
366
- // Reset on touch devices, it doesn't add specificity
367
- '@media (hover: none)': {
368
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)
369
- }
370
- }
416
+ '&.Mui-selected': selectedStyles
417
+ },
418
+ [`& .${c['container--top']}, & .${c['container--bottom']}`]: {
419
+ '[role=row]': {
420
+ background: 'var(--DataGrid-containerBackground)'
421
+ },
422
+ [`.${c.pinnedColumnHeaders} [role=row]`]: {
423
+ background: 'var(--DataGrid-pinnedBackground)'
371
424
  }
372
425
  },
373
- [`& .${gridClasses.cell}`]: {
426
+ /* Cell styles */
427
+ [`& .${c.cell}`]: {
374
428
  display: 'flex',
375
429
  alignItems: 'center',
376
- borderBottom: '1px solid',
377
- '&.Mui-selected': {
378
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
379
- '&:hover, &.Mui-hovered': {
380
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity + theme.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
381
- // Reset on touch devices, it doesn't add specificity
382
- '@media (hover: none)': {
383
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)
384
- }
385
- }
386
- }
387
- },
388
- [`&.${gridClasses['root--disableUserSelection']} .${gridClasses.cell}`]: {
430
+ height: 'var(--height)',
431
+ minWidth: 'var(--width)',
432
+ maxWidth: 'var(--width)',
433
+ '--width': '0px',
434
+ '--height': '0px',
435
+ boxSizing: 'border-box',
436
+ borderTop: `1px solid var(--rowBorderColor)`,
437
+ '&.Mui-selected': selectedStyles
438
+ },
439
+ [`& .${c['virtualScrollerContent--overflowed']} .${c['row--lastVisible']} .${c.cell}`]: {
440
+ borderTopColor: 'transparent'
441
+ },
442
+ [`&.${c['root--disableUserSelection']} .${c.cell}`]: {
389
443
  userSelect: 'none'
390
444
  },
391
- [`& .${gridClasses.row}:not(.${gridClasses['row--dynamicHeight']}) > .${gridClasses.cell}`]: {
445
+ [`& .${c.row}:not(.${c['row--dynamicHeight']}) > .${c.cell}`]: {
392
446
  overflow: 'hidden',
393
447
  whiteSpace: 'nowrap'
394
448
  },
395
- [`& .${gridClasses.cellContent}`]: {
396
- overflow: 'hidden',
397
- textOverflow: 'ellipsis'
449
+ [`& .${c.cellEmpty}`]: {
450
+ padding: 0
398
451
  },
399
- [`& .${gridClasses.cell}.${gridClasses['cell--selectionMode']}`]: {
452
+ [`& .${c.cell}.${c['cell--selectionMode']}`]: {
400
453
  cursor: 'default'
401
454
  },
402
- [`& .${gridClasses.cell}.${gridClasses['cell--editing']}`]: {
455
+ [`& .${c.cell}.${c['cell--editing']}`]: {
403
456
  padding: 1,
404
457
  display: 'flex',
405
- boxShadow: theme.shadows[2],
406
- backgroundColor: (theme.vars || theme).palette.background.paper,
458
+ boxShadow: t.shadows[2],
459
+ backgroundColor: (t.vars || t).palette.background.paper,
407
460
  '&:focus-within': {
408
- outline: `solid ${(theme.vars || theme).palette.primary.main} 1px`,
461
+ outline: `solid ${(t.vars || t).palette.primary.main} 1px`,
409
462
  outlineOffset: '-1px'
410
463
  }
411
464
  },
412
- [`& .${gridClasses['row--editing']}`]: {
413
- boxShadow: theme.shadows[2]
465
+ [`& .${c.cellContent}`]: {
466
+ overflow: 'hidden',
467
+ textOverflow: 'ellipsis'
468
+ },
469
+ [`& .${c['row--editing']}`]: {
470
+ boxShadow: t.shadows[2]
414
471
  },
415
- [`& .${gridClasses['row--editing']} .${gridClasses.cell}`]: {
416
- boxShadow: theme.shadows[0],
417
- backgroundColor: (theme.vars || theme).palette.background.paper
472
+ [`& .${c['row--editing']} .${c.cell}`]: {
473
+ boxShadow: t.shadows[0],
474
+ backgroundColor: (t.vars || t).palette.background.paper
418
475
  },
419
- [`& .${gridClasses.editBooleanCell}`]: {
476
+ [`& .${c.editBooleanCell}`]: {
420
477
  display: 'flex',
421
478
  height: '100%',
422
479
  width: '100%',
423
480
  alignItems: 'center',
424
481
  justifyContent: 'center'
425
482
  },
426
- [`& .${gridClasses.booleanCell}[data-value="true"]`]: {
427
- color: (theme.vars || theme).palette.text.secondary
483
+ [`& .${c.booleanCell}[data-value="true"]`]: {
484
+ color: (t.vars || t).palette.text.secondary
428
485
  },
429
- [`& .${gridClasses.booleanCell}[data-value="false"]`]: {
430
- color: (theme.vars || theme).palette.text.disabled
486
+ [`& .${c.booleanCell}[data-value="false"]`]: {
487
+ color: (t.vars || t).palette.text.disabled
431
488
  },
432
- [`& .${gridClasses.actionsCell}`]: {
489
+ [`& .${c.actionsCell}`]: {
433
490
  display: 'inline-flex',
434
491
  alignItems: 'center',
435
- gridGap: theme.spacing(1)
492
+ gridGap: t.spacing(1)
436
493
  },
437
- [`& .${gridClasses.rowReorderCell}`]: {
494
+ [`& .${c.rowReorderCell}`]: {
438
495
  display: 'inline-flex',
439
496
  flex: 1,
440
497
  alignItems: 'center',
441
498
  justifyContent: 'center',
442
- opacity: (theme.vars || theme).palette.action.disabledOpacity
499
+ opacity: (t.vars || t).palette.action.disabledOpacity
443
500
  },
444
- [`& .${gridClasses['rowReorderCell--draggable']}`]: {
501
+ [`& .${c['rowReorderCell--draggable']}`]: {
445
502
  cursor: 'move',
446
503
  opacity: 1
447
504
  },
448
- [`& .${gridClasses.rowReorderCellContainer}`]: {
505
+ [`& .${c.rowReorderCellContainer}`]: {
449
506
  padding: 0,
450
507
  alignItems: 'stretch'
451
508
  },
452
- [`.${gridClasses.withBorderColor}`]: {
509
+ [`.${c.withBorderColor}`]: {
453
510
  borderColor
454
511
  },
455
- [`& .${gridClasses['cell--withRightBorder']}`]: {
512
+ [`& .${c['cell--withLeftBorder']}`]: {
513
+ borderLeftColor: 'var(--DataGrid-rowBorderColor)',
514
+ borderLeftWidth: '1px',
515
+ borderLeftStyle: 'solid'
516
+ },
517
+ [`& .${c['cell--withRightBorder']}`]: {
518
+ borderRightColor: 'var(--DataGrid-rowBorderColor)',
456
519
  borderRightWidth: '1px',
457
520
  borderRightStyle: 'solid'
458
521
  },
459
- [`& .${gridClasses['columnHeader--withRightBorder']}`]: {
522
+ [`& .${c['columnHeader--withRightBorder']}`]: {
460
523
  borderRightWidth: '1px',
461
524
  borderRightStyle: 'solid'
462
525
  },
463
- [`& .${gridClasses['cell--textLeft']}`]: {
526
+ [`& .${c['cell--textLeft']}`]: {
464
527
  justifyContent: 'flex-start'
465
528
  },
466
- [`& .${gridClasses['cell--textRight']}`]: {
529
+ [`& .${c['cell--textRight']}`]: {
467
530
  justifyContent: 'flex-end'
468
531
  },
469
- [`& .${gridClasses['cell--textCenter']}`]: {
532
+ [`& .${c['cell--textCenter']}`]: {
470
533
  justifyContent: 'center'
471
534
  },
472
- [`& .${gridClasses.columnHeaderDraggableContainer}`]: {
535
+ [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {
536
+ position: 'sticky',
537
+ zIndex: 3,
538
+ background: 'var(--DataGrid-pinnedBackground)'
539
+ },
540
+ [`& .${c.virtualScrollerContent} .${c.row}`]: {
541
+ '&:hover': {
542
+ [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {
543
+ backgroundColor: pinnedHoverBackground
544
+ }
545
+ },
546
+ [`&.Mui-selected`]: {
547
+ [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {
548
+ backgroundColor: pinnedSelectedBackground
549
+ },
550
+ '&:hover': {
551
+ [`& .${c['cell--pinnedLeft']}, & .${c['cell--pinnedRight']}`]: {
552
+ backgroundColor: pinnedSelectedHoverBackground
553
+ }
554
+ }
555
+ }
556
+ },
557
+ [`& .${c.cell}:not(.${c['cell--pinnedLeft']}):not(.${c['cell--pinnedRight']})`]: {
558
+ transform: 'translate3d(var(--DataGrid-offsetLeft), 0, 0)'
559
+ },
560
+ [`& .${c.columnHeaderDraggableContainer}`]: {
473
561
  display: 'flex',
474
562
  width: '100%',
475
563
  height: '100%'
476
564
  },
477
- [`& .${gridClasses.rowReorderCellPlaceholder}`]: {
565
+ [`& .${c.rowReorderCellPlaceholder}`]: {
478
566
  display: 'none'
479
567
  },
480
- [`& .${gridClasses['columnHeader--dragging']}, & .${gridClasses['row--dragging']}`]: {
481
- background: (theme.vars || theme).palette.background.paper,
568
+ [`& .${c['columnHeader--dragging']}, & .${c['row--dragging']}`]: {
569
+ background: (t.vars || t).palette.background.paper,
482
570
  padding: '0 12px',
483
571
  borderRadius: 'var(--unstable_DataGrid-radius)',
484
- opacity: (theme.vars || theme).palette.action.disabledOpacity
572
+ opacity: (t.vars || t).palette.action.disabledOpacity
485
573
  },
486
- [`& .${gridClasses['row--dragging']}`]: {
487
- background: (theme.vars || theme).palette.background.paper,
574
+ [`& .${c['row--dragging']}`]: {
575
+ background: (t.vars || t).palette.background.paper,
488
576
  padding: '0 12px',
489
577
  borderRadius: 'var(--unstable_DataGrid-radius)',
490
- opacity: (theme.vars || theme).palette.action.disabledOpacity,
491
- [`& .${gridClasses.rowReorderCellPlaceholder}`]: {
578
+ opacity: (t.vars || t).palette.action.disabledOpacity,
579
+ [`& .${c.rowReorderCellPlaceholder}`]: {
492
580
  display: 'flex'
493
581
  }
494
582
  },
495
- [`& .${gridClasses.treeDataGroupingCell}`]: {
583
+ [`& .${c.treeDataGroupingCell}`]: {
496
584
  display: 'flex',
497
585
  alignItems: 'center',
498
586
  width: '100%'
499
587
  },
500
- [`& .${gridClasses.treeDataGroupingCellToggle}`]: {
588
+ [`& .${c.treeDataGroupingCellToggle}`]: {
501
589
  flex: '0 0 28px',
502
590
  alignSelf: 'stretch',
503
- marginRight: theme.spacing(2)
591
+ marginRight: t.spacing(2)
504
592
  },
505
- [`& .${gridClasses.groupingCriteriaCell}`]: {
593
+ [`& .${c.groupingCriteriaCell}`]: {
506
594
  display: 'flex',
507
595
  alignItems: 'center',
508
596
  width: '100%'
509
597
  },
510
- [`& .${gridClasses.groupingCriteriaCellToggle}`]: {
598
+ [`& .${c.groupingCriteriaCellToggle}`]: {
511
599
  flex: '0 0 28px',
512
600
  alignSelf: 'stretch',
513
- marginRight: theme.spacing(2)
601
+ marginRight: t.spacing(2)
514
602
  }
515
603
  });
516
604
  return gridStyle;
517
- });
605
+ });
606
+
607
+ /**
608
+ * Blend a transparent overlay color with a background color, resulting in a single
609
+ * RGB color.
610
+ */
611
+ function blend(background, overlay, opacity, gamma = 1) {
612
+ const f = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);
613
+ const backgroundColor = decomposeColor(background);
614
+ const overlayColor = decomposeColor(overlay);
615
+ const rgb = [f(backgroundColor.values[0], overlayColor.values[0]), f(backgroundColor.values[1], overlayColor.values[1]), f(backgroundColor.values[2], overlayColor.values[2])];
616
+ return recomposeColor({
617
+ type: 'rgb',
618
+ values: rgb
619
+ });
620
+ }