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