@mui/x-data-grid 9.0.0-beta.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/CHANGELOG.md +267 -1
  2. package/DataGrid/DataGrid.js +1 -0
  3. package/DataGrid/DataGrid.mjs +1 -0
  4. package/components/GridColumnUnsortedIcon.d.mts +5 -2
  5. package/components/GridColumnUnsortedIcon.d.ts +5 -2
  6. package/components/GridColumnUnsortedIcon.js +20 -6
  7. package/components/GridColumnUnsortedIcon.mjs +20 -5
  8. package/components/GridDetailPanels.d.mts +1 -4
  9. package/components/GridDetailPanels.d.ts +1 -4
  10. package/components/GridPinnedRows.d.mts +0 -2
  11. package/components/GridPinnedRows.d.ts +0 -2
  12. package/components/GridRowDragAndDropOverlay.js +1 -1
  13. package/components/GridRowDragAndDropOverlay.mjs +2 -2
  14. package/components/GridScrollbarFillerCell.js +9 -1
  15. package/components/GridScrollbarFillerCell.mjs +9 -1
  16. package/components/cell/GridCell.js +4 -2
  17. package/components/cell/GridCell.mjs +4 -2
  18. package/components/columnHeaders/GridColumnGroupHeader.js +5 -3
  19. package/components/columnHeaders/GridColumnGroupHeader.mjs +5 -3
  20. package/components/columnHeaders/GridColumnHeaderItem.js +3 -1
  21. package/components/columnHeaders/GridColumnHeaderItem.mjs +3 -1
  22. package/components/containers/GridRootStyles.js +86 -5
  23. package/components/containers/GridRootStyles.mjs +86 -5
  24. package/components/index.d.mts +3 -1
  25. package/components/index.d.ts +3 -1
  26. package/components/index.js +10 -2
  27. package/components/index.mjs +2 -1
  28. package/components/panel/filterPanel/GridFilterForm.js +1 -1
  29. package/components/panel/filterPanel/GridFilterForm.mjs +1 -1
  30. package/components/virtualization/GridBottomContainer.js +4 -1
  31. package/components/virtualization/GridBottomContainer.mjs +4 -1
  32. package/components/virtualization/GridVirtualScroller.js +55 -30
  33. package/components/virtualization/GridVirtualScroller.mjs +56 -31
  34. package/components/virtualization/GridVirtualScrollerContent.js +5 -1
  35. package/components/virtualization/GridVirtualScrollerContent.mjs +5 -1
  36. package/constants/gridClasses.d.mts +40 -1
  37. package/constants/gridClasses.d.ts +40 -1
  38. package/constants/gridClasses.js +2 -2
  39. package/constants/gridClasses.mjs +2 -2
  40. package/constants/localeTextConstants.js +1 -1
  41. package/constants/localeTextConstants.mjs +1 -1
  42. package/hooks/core/useGridVirtualizer.js +1 -0
  43. package/hooks/core/useGridVirtualizer.mjs +1 -0
  44. package/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -4
  45. package/hooks/features/columnHeaders/useGridColumnHeaders.mjs +8 -4
  46. package/hooks/features/dimensions/useGridDimensions.js +1 -0
  47. package/hooks/features/dimensions/useGridDimensions.mjs +1 -0
  48. package/hooks/features/export/useGridPrintExport.js +5 -1
  49. package/hooks/features/export/useGridPrintExport.mjs +5 -1
  50. package/hooks/features/focus/useGridFocus.js +4 -0
  51. package/hooks/features/focus/useGridFocus.mjs +4 -0
  52. package/hooks/features/rowSelection/useGridRowSelection.js +17 -1
  53. package/hooks/features/rowSelection/useGridRowSelection.mjs +17 -1
  54. package/hooks/features/virtualization/gridVirtualizationSelectors.d.mts +8 -0
  55. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +8 -0
  56. package/hooks/features/virtualization/gridVirtualizationSelectors.js +8 -1
  57. package/hooks/features/virtualization/gridVirtualizationSelectors.mjs +7 -0
  58. package/hooks/features/virtualization/index.d.mts +1 -1
  59. package/hooks/features/virtualization/index.d.ts +1 -1
  60. package/hooks/features/virtualization/index.js +44 -13
  61. package/hooks/features/virtualization/index.mjs +1 -1
  62. package/hooks/utils/usePinnedScrollOffset.d.mts +3 -0
  63. package/hooks/utils/usePinnedScrollOffset.d.ts +3 -0
  64. package/hooks/utils/usePinnedScrollOffset.js +27 -0
  65. package/hooks/utils/usePinnedScrollOffset.mjs +21 -0
  66. package/index.js +1 -1
  67. package/index.mjs +1 -1
  68. package/internals/index.d.mts +3 -2
  69. package/internals/index.d.ts +3 -2
  70. package/internals/index.js +29 -0
  71. package/internals/index.mjs +3 -2
  72. package/locales/arSD.js +1 -1
  73. package/locales/arSD.mjs +1 -1
  74. package/locales/beBY.js +1 -1
  75. package/locales/beBY.mjs +1 -1
  76. package/locales/bgBG.js +1 -1
  77. package/locales/bgBG.mjs +1 -1
  78. package/locales/bnBD.js +1 -1
  79. package/locales/bnBD.mjs +1 -1
  80. package/locales/caES.js +1 -1
  81. package/locales/caES.mjs +1 -1
  82. package/locales/csCZ.js +1 -1
  83. package/locales/csCZ.mjs +1 -1
  84. package/locales/daDK.js +1 -1
  85. package/locales/daDK.mjs +1 -1
  86. package/locales/deDE.js +1 -1
  87. package/locales/deDE.mjs +1 -1
  88. package/locales/elGR.js +1 -1
  89. package/locales/elGR.mjs +1 -1
  90. package/locales/esES.js +1 -1
  91. package/locales/esES.mjs +1 -1
  92. package/locales/faIR.js +1 -1
  93. package/locales/faIR.mjs +1 -1
  94. package/locales/fiFI.js +1 -1
  95. package/locales/fiFI.mjs +1 -1
  96. package/locales/frFR.js +1 -1
  97. package/locales/frFR.mjs +1 -1
  98. package/locales/heIL.js +1 -1
  99. package/locales/heIL.mjs +1 -1
  100. package/locales/hrHR.js +1 -1
  101. package/locales/hrHR.mjs +1 -1
  102. package/locales/huHU.js +1 -1
  103. package/locales/huHU.mjs +1 -1
  104. package/locales/hyAM.js +1 -1
  105. package/locales/hyAM.mjs +1 -1
  106. package/locales/idID.js +1 -1
  107. package/locales/idID.mjs +1 -1
  108. package/locales/isIS.js +1 -1
  109. package/locales/isIS.mjs +1 -1
  110. package/locales/itIT.js +1 -1
  111. package/locales/itIT.mjs +1 -1
  112. package/locales/jaJP.js +1 -1
  113. package/locales/jaJP.mjs +1 -1
  114. package/locales/koKR.js +1 -1
  115. package/locales/koKR.mjs +1 -1
  116. package/locales/nbNO.js +1 -1
  117. package/locales/nbNO.mjs +1 -1
  118. package/locales/nlNL.js +1 -1
  119. package/locales/nlNL.mjs +1 -1
  120. package/locales/nnNO.js +1 -1
  121. package/locales/nnNO.mjs +1 -1
  122. package/locales/plPL.js +1 -1
  123. package/locales/plPL.mjs +1 -1
  124. package/locales/ptBR.js +1 -1
  125. package/locales/ptBR.mjs +1 -1
  126. package/locales/ptPT.js +1 -1
  127. package/locales/ptPT.mjs +1 -1
  128. package/locales/roRO.js +1 -1
  129. package/locales/roRO.mjs +1 -1
  130. package/locales/ruRU.js +1 -1
  131. package/locales/ruRU.mjs +1 -1
  132. package/locales/skSK.js +1 -1
  133. package/locales/skSK.mjs +1 -1
  134. package/locales/svSE.js +1 -1
  135. package/locales/svSE.mjs +1 -1
  136. package/locales/thTH.js +1 -1
  137. package/locales/thTH.mjs +1 -1
  138. package/locales/trTR.js +1 -1
  139. package/locales/trTR.mjs +1 -1
  140. package/locales/ukUA.js +1 -1
  141. package/locales/ukUA.mjs +1 -1
  142. package/locales/urPK.js +1 -1
  143. package/locales/urPK.mjs +1 -1
  144. package/locales/viVN.js +1 -1
  145. package/locales/viVN.mjs +1 -1
  146. package/locales/zhCN.js +1 -1
  147. package/locales/zhCN.mjs +1 -1
  148. package/locales/zhHK.js +1 -1
  149. package/locales/zhHK.mjs +1 -1
  150. package/locales/zhTW.js +1 -1
  151. package/locales/zhTW.mjs +1 -1
  152. package/material/index.js +26 -21
  153. package/material/index.mjs +26 -21
  154. package/material/variables.js +4 -4
  155. package/material/variables.mjs +4 -5
  156. package/models/api/gridLocaleTextApi.d.mts +1 -1
  157. package/models/api/gridLocaleTextApi.d.ts +1 -1
  158. package/models/gridBaseSlots.d.mts +4 -2
  159. package/models/gridBaseSlots.d.ts +4 -2
  160. package/models/props/DataGridProps.d.mts +9 -0
  161. package/models/props/DataGridProps.d.ts +9 -0
  162. package/package.json +6 -6
  163. package/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.mjs +2 -2
  164. package/utils/cleanupTracking/TimerBasedCleanupTracking.mjs +2 -2
  165. package/utils/domUtils.js +3 -2
  166. package/utils/domUtils.mjs +3 -2
  167. package/utils/keyboardUtils.d.mts +2 -0
  168. package/utils/keyboardUtils.d.ts +2 -0
  169. package/utils/keyboardUtils.js +8 -0
  170. package/utils/keyboardUtils.mjs +6 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,271 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0
4
+
5
+ <!-- generated comparing v9.0.0-rc.0..master -->
6
+
7
+ _Apr 8, 2026_
8
+
9
+ 🥳 We're excited to announce the stable release of MUI X v9!
10
+ This major release includes many new features and improvements. Here are some highlights ✨:
11
+
12
+ - Data Grid – [Charts integration](https://mui.com/x/react-data-grid/charts-integration/) [Premium]
13
+ - Data Grid – [AI Assistant](https://mui.com/x/react-data-grid/ai-assistant/) [Premium]
14
+ - Data Grid – [Undo and redo](https://mui.com/x/react-data-grid/undo-redo/) [Premium]
15
+ - Data Grid – [Drag fill](https://mui.com/x/react-data-grid/clipboard/#drag-to-fill) [Premium]
16
+ - Data Grid – [longText column type](https://mui.com/x/react-data-grid/column-definition/#column-types)
17
+ - Charts – [Interaction and accessibility](https://mui.com/x/react-charts/accessibility/)
18
+ - Charts – [Candlestick](https://mui.com/x/react-charts/candlestick/) [Premium]
19
+ - Charts – [Range bar charts](https://mui.com/x/react-charts/range-bar/) [Premium]
20
+ - Charts – [WebGL Heatmap renderer](https://mui.com/x/react-charts/heatmap/#webgl-renderer) [Premium]
21
+ - Tree View – [Virtualization](https://mui.com/x/react-tree-view/rich-tree-view/virtualization/) [Pro]
22
+ - New [Scheduler](https://mui.com/x/react-scheduler/) packages [Alpha]
23
+
24
+ We'd like to extend a big thank you to the 5 contributors who made this release possible.
25
+ The following team members contributed to this release:
26
+ @DanailH, @LukasTy, @MBilalShafi, @oliviertassinari, @siriwatknp
27
+
28
+ ### Data Grid
29
+
30
+ #### `@mui/x-data-grid@9.0.0`
31
+
32
+ Internal changes.
33
+
34
+ #### `@mui/x-data-grid-pro@9.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
35
+
36
+ Same changes as in `@mui/x-data-grid@9.0.0`, plus:
37
+
38
+ - [DataGridPro] Preserve parent selection for non-selectable children (#21132) @MBilalShafi
39
+
40
+ #### `@mui/x-data-grid-premium@9.0.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
41
+
42
+ Same changes as in `@mui/x-data-grid-pro@9.0.0`, plus:
43
+
44
+ - [DataGridPremium] Drag fill (#21717) @MBilalShafi
45
+
46
+ ### Date and Time Pickers
47
+
48
+ #### Breaking changes
49
+
50
+ - Removed the legacy Pickers and Field TextField props (for example: `InputProps`) in favor of the nested `slotProps`. [Read more](https://mui.com/x/migration/migration-pickers-v8/#drop-deprecated-pickerstextfield-props)
51
+ - The `utils` field in `PickersAdapterContextValue` has been removed in favor of the `adapter` field.
52
+ This should no longer affect you, as the context export has also been removed.
53
+ - `MuiPickersAdapterContext` export has been removed.
54
+ Prefer using the `usePickerAdapter` hook. [Read more](https://mui.com/x/migration/migration-pickers-v8/#localizationprovider-breaking-changes).
55
+
56
+ #### `@mui/x-date-pickers@9.0.0`
57
+
58
+ - [pickers] Refactor `PickersTextField` to use `slotProps` approach (#22002) @LukasTy
59
+ - [pickers] Remove deprecated LocalizationProvider legacy API (#22010) @LukasTy
60
+
61
+ #### `@mui/x-date-pickers-pro@9.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-date-pickers@9.0.0`.
64
+
65
+ ### Charts
66
+
67
+ #### `@mui/x-charts@9.0.0`
68
+
69
+ Internal changes.
70
+
71
+ #### `@mui/x-charts-pro@9.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
72
+
73
+ Same changes as in `@mui/x-charts@9.0.0`.
74
+
75
+ #### `@mui/x-charts-premium@9.0.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
76
+
77
+ Same changes as in `@mui/x-charts-pro@9.0.0`.
78
+
79
+ ### Tree View
80
+
81
+ #### `@mui/x-tree-view@9.0.0`
82
+
83
+ Internal changes.
84
+
85
+ #### `@mui/x-tree-view-pro@9.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
86
+
87
+ Same changes as in `@mui/x-tree-view@9.0.0`.
88
+
89
+ ### Scheduler
90
+
91
+ #### `@mui/x-scheduler@9.0.0-alpha.0`
92
+
93
+ Internal changes.
94
+
95
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
96
+
97
+ Same changes as in `@mui/x-scheduler-pro@9.0.0-alpha.0`.
98
+
99
+ ### Codemod
100
+
101
+ #### `@mui/x-codemod@9.0.0`
102
+
103
+ Internal changes.
104
+
105
+ ### Docs
106
+
107
+ - [docs] Add explanation for v8 -> v9 license migration (#22004) @DanailH
108
+
109
+ ### Core
110
+
111
+ - [code-infra] Optimize dependency definition (#22006) @LukasTy
112
+ - [internal] Prepare v9 stable (#22018) @siriwatknp
113
+ - [internal] Remove 'conf' from codebase (#21989) @oliviertassinari
114
+
115
+ ## 9.0.0-rc.0
116
+
117
+ <!-- generated comparing v9.0.0-beta.0..master -->
118
+
119
+ _Apr 7, 2026_
120
+
121
+ We'd like to extend a big thank you to the 18 contributors who made this release possible.
122
+
123
+ Special thanks go out to these community members for their valuable contributions:
124
+ @mixelburg, @sibananda485, @youjin-hong
125
+
126
+ The following team members contributed to this release:
127
+ @aemartos, @alexfauquette, @arminmeh, @brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @mapache-salvaje, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @romgrk, @siriwatknp, @ZeeshanTamboli
128
+
129
+ ### Data Grid
130
+
131
+ #### `@mui/x-data-grid@9.0.0-rc.0`
132
+
133
+ - [DataGrid] Rename filter panel `Columns` label to singular `Column` (#21935) @youjin-hong
134
+ - [DataGrid] Export `GridColumnUnsortedIconProps` for custom column icon slots (#21658) @mixelburg
135
+ - [DataGrid] Remove `x-virtualizer`'s `virtualScroller` from public API (#21936) @romgrk
136
+ - [DataGrid][virtualizer] Scrolling without render gaps (#21616) @romgrk
137
+
138
+ #### `@mui/x-data-grid-pro@9.0.0-rc.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
139
+
140
+ Same changes as in `@mui/x-data-grid@9.0.0-rc.0`, plus:
141
+
142
+ - [DataGridPro] Improve trigger for nested row reordering (#21642) @MBilalShafi
143
+ - [DataGridPro] Undeprecate `onRowsScrollEnd` prop (#21912) @MBilalShafi
144
+
145
+ #### `@mui/x-data-grid-premium@9.0.0-rc.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
146
+
147
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-rc.0`, plus:
148
+
149
+ - [DataGridPremium] Fix clipboard paste issue in portal (#21931) @sibananda485
150
+
151
+ ### Date and Time Pickers
152
+
153
+ #### Breaking changes
154
+
155
+ - Accessible DOM structure is now the only default. [Read more](https://mui.com/x/migration/migration-pickers-v8/#accessible-dom-structure-is-now-the-default)
156
+ - The `PickerDay2` and `DateRangePickerDay2` components were propagated to stable while removing the previous defaults. [Read more](https://mui.com/x/migration/migration-pickers-v8/#day-slot)
157
+
158
+ #### `@mui/x-date-pickers@9.0.0-rc.0`
159
+
160
+ - [pickers] Remove `PickersDay` and `DateRangePickerDay` and promote their `2` versions as replacements (#21739) @michelengelen
161
+
162
+ #### `@mui/x-date-pickers-pro@9.0.0-rc.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
163
+
164
+ Same changes as in `@mui/x-date-pickers@9.0.0-rc.0`.
165
+
166
+ ### Charts
167
+
168
+ #### `@mui/x-charts@9.0.0-rc.0.0`
169
+
170
+ - [charts] Make line visibility toggle start from the baseline (#21893) @alexfauquette
171
+ - [charts] Remove the container overflow (#21955) @alexfauquette
172
+ - [charts] Revert `theme.alpha` for non-channel token (#21965) @siriwatknp
173
+
174
+ #### `@mui/x-charts-pro@9.0.0-rc.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
175
+
176
+ Same changes as in `@mui/x-charts@9.0.0-rc.0.0`, plus:
177
+
178
+ - [charts-pro] Zoom slider touch improvements (#21832) @JCQuintas
179
+ - [charts-pro] Add `seriesIds` filter to zoom slider preview (#21933) @JCQuintas
180
+ - [charts-pro] Fix zoom slider preview with discard filter mode (#21883) @JCQuintas
181
+
182
+ #### `@mui/x-charts-premium@9.0.0-rc.0.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
183
+
184
+ Same changes as in `@mui/x-charts-pro@9.0.0-rc.0.0`, plus:
185
+
186
+ - [charts-premium] Add series `valueFormatter` to candlestick chart (#21905) @JCQuintas
187
+ - [charts-premium] Add zoom slider preview support for candlestick charts (#21914) @JCQuintas
188
+ - [charts-premium] Allow color customization in `Candlestick` chart (#21838) @JCQuintas
189
+ - [charts-premium] Support hide/show for OHLC (candlestick) series (#21807) @Copilot
190
+ - [charts-premium] Add `dataset` support to `Candlestick` chart (#21872) @JCQuintas
191
+ - [charts-premium] Add candlestick page to sidebar navigation (#21834) @JCQuintas
192
+
193
+ ### Tree View
194
+
195
+ #### `@mui/x-tree-view@9.0.0-rc.0`
196
+
197
+ Internal changes.
198
+
199
+ #### `@mui/x-tree-view-pro@9.0.0-rc.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
200
+
201
+ Same changes as in `@mui/x-tree-view@9.0.0-rc.0`, plus:
202
+
203
+ - [RichTreeViewPro] Allow to auto-expand lazy loaded items (#21759) @flaviendelangle
204
+
205
+ ### Scheduler
206
+
207
+ #### `@mui/x-scheduler@9.0.0-alpha.0`
208
+
209
+ - [scheduler] Add locale files, adapt l10n scripts, and add localization table to docs (#21870) @rita-codes
210
+ - [scheduler] Add planned features to the docs (#21705) @rita-codes
211
+ - [scheduler] Add scheduler to docs introduction (#21845) @rita-codes
212
+ - [scheduler] Add wide docs to scheduler (#21860) @noraleonte
213
+ - [scheduler] All day event bugfixes (#21884) @noraleonte
214
+ - [scheduler] Autofocus title field (#21947) @noraleonte
215
+ - [scheduler] Change default event creation trigger to single click (#21979) @rita-codes
216
+ - [scheduler] Change order of the views on the view selector (#21904) @rita-codes
217
+ - [scheduler] Disabled border color for the repeat day picker in dark mode (#21987) @rita-codes
218
+ - [scheduler] Drop unused dependency (#21956) @flaviendelangle
219
+ - [scheduler] Fix all-day event shifting to previous day in negative UTC offsets (#21994) @rita-codes
220
+ - [scheduler] Fix dark theme localization demos (#21992) @noraleonte
221
+ - [scheduler] Fix licensing confusion in docs (#21939) @rita-codes
222
+ - [scheduler] Fix preferences menu width shift when toggling options + Improve preferences menu accessibility (#21902) @rita-codes
223
+ - [scheduler] Prepare for the alpha launch (#21859) @rita-codes
224
+ - [scheduler] Sync Base UI internals and apply good practices (#21946) @flaviendelangle
225
+ - [scheduler] Update close modal aria label translation (#21940) @rita-codes
226
+ - [scheduler] Add Spanish (es-ES) locale (#21900) @rita-codes
227
+ - [scheduler] Improve French (fr-FR) locale (#21941) @rita-codes
228
+ - [scheduler] Improve Romanian (ro-RO) locale (#21942) @rita-codes
229
+
230
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
231
+
232
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.0`.
233
+
234
+ ### Codemod
235
+
236
+ #### `@mui/x-codemod@9.0.0-rc.0`
237
+
238
+ Internal changes.
239
+
240
+ ### Docs
241
+
242
+ - [docs] Fix JSDOM → jsdom casing (#21907) @JCQuintas
243
+ - [docs] Remove Joy UI references and dependency (#21937) @siriwatknp
244
+ - [docs] Remove none generated files (#21886) @alexfauquette
245
+ - [docs] Remove unused interactive demo code (#21945) @LukasTy
246
+ - [docs] Revise the Funnel doc (#21677) @mapache-salvaje
247
+ - [docs] Revise the Line chart docs (#21554) @mapache-salvaje
248
+ - [docs] Revise the Radar doc (#21674) @mapache-salvaje
249
+ - [docs] Revise the Sankey doc (#21678) @mapache-salvaje
250
+ - [docs] Revise the Scatter chart docs (#21564) @mapache-salvaje
251
+
252
+ ### Core
253
+
254
+ - [docs-infra] Update to the latest monorepo (#21971) @brijeshb42
255
+ - [internal] Remove checks for `materialVersion >= 6` (#21975) @LukasTy
256
+
257
+ ### Miscellaneous
258
+
259
+ - [core] Bump @mui/material to v9.0.0-beta.1 (#21858) @siriwatknp
260
+ - [core] Update browserslistrc (#21974) @siriwatknp
261
+ - [deps] Bump minimum core packages to 7.3.0 to adopt theme color manipulator (#21892) @siriwatknp
262
+ - [telemetry] Prefer upstream remote over origin for `projectId` (#21882) @aemartos
263
+ - [telemetry] Send `repoHash`, `[x]packageNameHash`, and `rootPathHash` alongside `projectId` (#21896) @aemartos
264
+ - [test] Exclude flaky `DataGrid` argos test (#21977) @MBilalShafi
265
+ - [test] Fix flaky `DataGrid` test (#22000) @arminmeh
266
+ - [test] Remove `componentsProp` test from `describeConformance` (#21897) @ZeeshanTamboli
267
+ - [x-license] Change `orderId` type from `number` to `string` (#21885) @aemartos
268
+
3
269
  ## 9.0.0-beta.0
4
270
 
5
271
  <!-- generated comparing v9.0.0-alpha.4..master -->
@@ -313,7 +579,7 @@ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.3`, plus:
313
579
  - Remove deprecated CSS state classes from `treeItemClasses`: `expanded`, `selected`, `focused`, `disabled`, `editable`, `editing` (use `[data-expanded]`, `[data-selected]`, etc.)
314
580
  - The `<RichTreeViewPro />` component has now virtualization enabled by default.
315
581
  - The items used inside the `<RichTreeViewPro />` now have a default height of `32px`.
316
- - The events of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
582
+ - The items of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
317
583
 
318
584
  #### `@mui/x-tree-view@9.0.0-alpha.3`
319
585
 
@@ -273,6 +273,7 @@ DataGridRaw.propTypes = {
273
273
  * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
274
274
  */
275
275
  experimentalFeatures: _propTypes.default.shape({
276
+ virtualizerLayoutMode: _propTypes.default.oneOf(['controlled', 'uncontrolled']),
276
277
  warnIfFocusStateIsNotSynced: _propTypes.default.bool
277
278
  }),
278
279
  /**
@@ -266,6 +266,7 @@ DataGridRaw.propTypes = {
266
266
  * For each feature, if the flag is not explicitly set to `true`, the feature will be fully disabled and any property / method call will not have any effect.
267
267
  */
268
268
  experimentalFeatures: PropTypes.shape({
269
+ virtualizerLayoutMode: PropTypes.oneOf(['controlled', 'uncontrolled']),
269
270
  warnIfFocusStateIsNotSynced: PropTypes.bool
270
271
  }),
271
272
  /**
@@ -1,7 +1,10 @@
1
- import * as React from 'react';
2
1
  import type { GridBaseIconProps } from "../models/gridSlotsComponentsProps.mjs";
3
2
  import type { GridSortDirection } from "../models/gridSortModel.mjs";
4
3
  export interface GridColumnUnsortedIconProps extends GridBaseIconProps {
5
4
  sortingOrder: GridSortDirection[];
6
5
  }
7
- export declare const GridColumnUnsortedIcon: React.NamedExoticComponent<GridColumnUnsortedIconProps>;
6
+ declare function GridColumnUnsortedIcon(props: GridColumnUnsortedIconProps): import("react/jsx-runtime").JSX.Element | null;
7
+ declare namespace GridColumnUnsortedIcon {
8
+ var propTypes: any;
9
+ }
10
+ export { GridColumnUnsortedIcon };
@@ -1,7 +1,10 @@
1
- import * as React from 'react';
2
1
  import type { GridBaseIconProps } from "../models/gridSlotsComponentsProps.js";
3
2
  import type { GridSortDirection } from "../models/gridSortModel.js";
4
3
  export interface GridColumnUnsortedIconProps extends GridBaseIconProps {
5
4
  sortingOrder: GridSortDirection[];
6
5
  }
7
- export declare const GridColumnUnsortedIcon: React.NamedExoticComponent<GridColumnUnsortedIconProps>;
6
+ declare function GridColumnUnsortedIcon(props: GridColumnUnsortedIconProps): import("react/jsx-runtime").JSX.Element | null;
7
+ declare namespace GridColumnUnsortedIcon {
8
+ var propTypes: any;
9
+ }
10
+ export { GridColumnUnsortedIcon };
@@ -5,21 +5,35 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.GridColumnUnsortedIcon = void 0;
8
+ exports.GridColumnUnsortedIcon = GridColumnUnsortedIcon;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
13
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  const _excluded = ["sortingOrder"];
15
- const GridColumnUnsortedIcon = exports.GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
16
+ function GridColumnUnsortedIcon(props) {
16
17
  const {
17
18
  sortingOrder
18
19
  } = props,
19
20
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
20
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
21
+ const {
22
+ slots
23
+ } = (0, _useGridRootProps.useGridRootProps)();
21
24
  const [nextSortDirection] = sortingOrder;
22
- const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
25
+ const Icon = nextSortDirection === 'asc' ? slots.columnSortedAscendingIcon : slots.columnSortedDescendingIcon;
23
26
  return Icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, other)) : null;
24
- });
25
- if (process.env.NODE_ENV !== "production") GridColumnUnsortedIcon.displayName = "GridColumnUnsortedIcon";
27
+ }
28
+ process.env.NODE_ENV !== "production" ? GridColumnUnsortedIcon.propTypes = {
29
+ // ----------------------------- Warning --------------------------------
30
+ // | These PropTypes are generated from the TypeScript type definitions |
31
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
32
+ // ----------------------------------------------------------------------
33
+ className: _propTypes.default.string,
34
+ color: _propTypes.default.string,
35
+ fontSize: _propTypes.default.oneOf(['inherit', 'large', 'medium', 'small']),
36
+ sortingOrder: _propTypes.default.arrayOf(_propTypes.default.oneOf(['asc', 'desc'])).isRequired,
37
+ style: _propTypes.default.object,
38
+ titleAccess: _propTypes.default.string
39
+ } : void 0;
@@ -2,16 +2,31 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["sortingOrder"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.mjs";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export const GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
8
+ function GridColumnUnsortedIcon(props) {
8
9
  const {
9
10
  sortingOrder
10
11
  } = props,
11
12
  other = _objectWithoutPropertiesLoose(props, _excluded);
12
- const rootProps = useGridRootProps();
13
+ const {
14
+ slots
15
+ } = useGridRootProps();
13
16
  const [nextSortDirection] = sortingOrder;
14
- const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
17
+ const Icon = nextSortDirection === 'asc' ? slots.columnSortedAscendingIcon : slots.columnSortedDescendingIcon;
15
18
  return Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, other)) : null;
16
- });
17
- if (process.env.NODE_ENV !== "production") GridColumnUnsortedIcon.displayName = "GridColumnUnsortedIcon";
19
+ }
20
+ process.env.NODE_ENV !== "production" ? GridColumnUnsortedIcon.propTypes = {
21
+ // ----------------------------- Warning --------------------------------
22
+ // | These PropTypes are generated from the TypeScript type definitions |
23
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
24
+ // ----------------------------------------------------------------------
25
+ className: PropTypes.string,
26
+ color: PropTypes.string,
27
+ fontSize: PropTypes.oneOf(['inherit', 'large', 'medium', 'small']),
28
+ sortingOrder: PropTypes.arrayOf(PropTypes.oneOf(['asc', 'desc'])).isRequired,
29
+ style: PropTypes.object,
30
+ titleAccess: PropTypes.string
31
+ } : void 0;
32
+ export { GridColumnUnsortedIcon };
@@ -1,5 +1,2 @@
1
- import type { VirtualScrollerCompat } from '@mui/x-virtualizer';
2
- export interface GridDetailPanelsProps {
3
- virtualScroller: VirtualScrollerCompat;
4
- }
1
+ export interface GridDetailPanelsProps {}
5
2
  export declare function GridDetailPanels(_: GridDetailPanelsProps): null;
@@ -1,5 +1,2 @@
1
- import type { VirtualScrollerCompat } from '@mui/x-virtualizer';
2
- export interface GridDetailPanelsProps {
3
- virtualScroller: VirtualScrollerCompat;
4
- }
1
+ export interface GridDetailPanelsProps {}
5
2
  export declare function GridDetailPanels(_: GridDetailPanelsProps): null;
@@ -1,6 +1,4 @@
1
- import type { VirtualScrollerCompat } from '@mui/x-virtualizer';
2
1
  export interface GridPinnedRowsProps {
3
2
  position: 'top' | 'bottom';
4
- virtualScroller: VirtualScrollerCompat;
5
3
  }
6
4
  export declare function GridPinnedRows(_: GridPinnedRowsProps): null;
@@ -1,6 +1,4 @@
1
- import type { VirtualScrollerCompat } from '@mui/x-virtualizer';
2
1
  export interface GridPinnedRowsProps {
3
2
  position: 'top' | 'bottom';
4
- virtualScroller: VirtualScrollerCompat;
5
3
  }
6
4
  export declare function GridPinnedRows(_: GridPinnedRowsProps): null;
@@ -53,7 +53,7 @@ const GridRowDragAndDropOverlayRoot = (0, _styles.styled)('div', {
53
53
  backgroundColor: (theme.vars || theme).palette.primary.main
54
54
  }
55
55
  }, action === 'inside' && {
56
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / 0.1)` : (0, _styles.alpha)(theme.palette.primary.main, 0.1)
56
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, 0.1)
57
57
  }));
58
58
  const GridRowDragAndDropOverlay = exports.GridRowDragAndDropOverlay = /*#__PURE__*/React.memo(function GridRowDragAndDropOverlay(props) {
59
59
  const {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
- import { styled, alpha } from '@mui/material/styles';
5
+ import { styled } from '@mui/material/styles';
6
6
  import { shouldForwardProp } from '@mui/system/createStyled';
7
7
  import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.mjs";
8
8
  import { useGridSelector } from "../hooks/utils/useGridSelector.mjs";
@@ -46,7 +46,7 @@ const GridRowDragAndDropOverlayRoot = styled('div', {
46
46
  backgroundColor: (theme.vars || theme).palette.primary.main
47
47
  }
48
48
  }, action === 'inside' && {
49
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / 0.1)` : alpha(theme.palette.primary.main, 0.1)
49
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, 0.1)
50
50
  }));
51
51
  export const GridRowDragAndDropOverlay = /*#__PURE__*/React.memo(function GridRowDragAndDropOverlay(props) {
52
52
  const {
@@ -7,6 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.GridScrollbarFillerCell = GridScrollbarFillerCell;
8
8
  var _clsx = _interopRequireDefault(require("clsx"));
9
9
  var _constants = require("../constants");
10
+ var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
11
+ var _usePinnedScrollOffset = require("../hooks/utils/usePinnedScrollOffset");
12
+ var _constants2 = require("../internals/constants");
10
13
  var _jsxRuntime = require("react/jsx-runtime");
11
14
  const classes = {
12
15
  root: _constants.gridClasses.scrollbarFiller,
@@ -15,8 +18,13 @@ const classes = {
15
18
  function GridScrollbarFillerCell({
16
19
  pinnedRight
17
20
  }) {
21
+ const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
22
+ const pinnedScrollOffset = (0, _usePinnedScrollOffset.usePinnedScrollOffset)(apiRef, pinnedRight ? _constants2.PinnedColumnPosition.RIGHT : undefined);
18
23
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
19
24
  role: "presentation",
20
- className: (0, _clsx.default)(classes.root, pinnedRight && classes.pinnedRight)
25
+ className: (0, _clsx.default)(classes.root, pinnedRight && classes.pinnedRight),
26
+ style: {
27
+ right: pinnedScrollOffset
28
+ }
21
29
  });
22
30
  }
@@ -1,5 +1,8 @@
1
1
  import clsx from 'clsx';
2
2
  import { gridClasses } from "../constants/index.mjs";
3
+ import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.mjs";
4
+ import { usePinnedScrollOffset } from "../hooks/utils/usePinnedScrollOffset.mjs";
5
+ import { PinnedColumnPosition } from "../internals/constants.mjs";
3
6
  import { jsx as _jsx } from "react/jsx-runtime";
4
7
  const classes = {
5
8
  root: gridClasses.scrollbarFiller,
@@ -8,9 +11,14 @@ const classes = {
8
11
  function GridScrollbarFillerCell({
9
12
  pinnedRight
10
13
  }) {
14
+ const apiRef = useGridPrivateApiContext();
15
+ const pinnedScrollOffset = usePinnedScrollOffset(apiRef, pinnedRight ? PinnedColumnPosition.RIGHT : undefined);
11
16
  return /*#__PURE__*/_jsx("div", {
12
17
  role: "presentation",
13
- className: clsx(classes.root, pinnedRight && classes.pinnedRight)
18
+ className: clsx(classes.root, pinnedRight && classes.pinnedRight),
19
+ style: {
20
+ right: pinnedScrollOffset
21
+ }
14
22
  });
15
23
  }
16
24
  export { GridScrollbarFillerCell };
@@ -31,6 +31,7 @@ var _gridFocusStateSelector = require("../../hooks/features/focus/gridFocusState
31
31
  var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
32
32
  var _constants = require("../../internals/constants");
33
33
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
34
+ var _usePinnedScrollOffset = require("../../hooks/utils/usePinnedScrollOffset");
34
35
  var _gridEditingSelectors = require("../../hooks/features/editing/gridEditingSelectors");
35
36
  var _utils = require("../../internals/utils");
36
37
  var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
@@ -206,6 +207,7 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
206
207
  }, [apiRef, field, rowId]);
207
208
  const isCellRowSpanned = hiddenCells[rowId]?.[colIndex] ?? false;
208
209
  const rowSpan = spannedCells[rowId]?.[colIndex] ?? 1;
210
+ const pinnedScrollOffset = (0, _usePinnedScrollOffset.usePinnedScrollOffset)(apiRef, pinnedPosition);
209
211
  const style = React.useMemo(() => {
210
212
  if (isNotVisible) {
211
213
  return {
@@ -218,7 +220,7 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
218
220
  }
219
221
  const cellStyle = (0, _utils.attachPinnedStyle)((0, _extends2.default)({
220
222
  '--width': `${width}px`
221
- }, styleProp), isRtl, pinnedPosition, pinnedOffset);
223
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset !== undefined ? pinnedOffset + pinnedScrollOffset : undefined);
222
224
  const isLeftPinned = pinnedPosition === _constants.PinnedColumnPosition.LEFT;
223
225
  const isRightPinned = pinnedPosition === _constants.PinnedColumnPosition.RIGHT;
224
226
  if (rowSpan > 1) {
@@ -229,7 +231,7 @@ const GridCell = (0, _forwardRef.forwardRef)(function GridCell(props, ref) {
229
231
  }
230
232
  }
231
233
  return cellStyle;
232
- }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, isRtl, rowSpan]);
234
+ }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, pinnedScrollOffset, isRtl, rowSpan]);
233
235
  (0, _useEnhancedEffect.default)(() => {
234
236
  if (!hasFocus || cellMode === _models.GridCellModes.Edit) {
235
237
  return;
@@ -26,6 +26,7 @@ import { gridFocusCellSelector, gridTabIndexCellSelector } from "../../hooks/fea
26
26
  import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.mjs";
27
27
  import { PinnedColumnPosition } from "../../internals/constants.mjs";
28
28
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.mjs";
29
+ import { usePinnedScrollOffset } from "../../hooks/utils/usePinnedScrollOffset.mjs";
29
30
  import { gridEditCellStateSelector } from "../../hooks/features/editing/gridEditingSelectors.mjs";
30
31
  import { attachPinnedStyle } from "../../internals/utils/index.mjs";
31
32
  import { useGridConfiguration } from "../../hooks/utils/useGridConfiguration.mjs";
@@ -199,6 +200,7 @@ const GridCell = forwardRef(function GridCell(props, ref) {
199
200
  }, [apiRef, field, rowId]);
200
201
  const isCellRowSpanned = hiddenCells[rowId]?.[colIndex] ?? false;
201
202
  const rowSpan = spannedCells[rowId]?.[colIndex] ?? 1;
203
+ const pinnedScrollOffset = usePinnedScrollOffset(apiRef, pinnedPosition);
202
204
  const style = React.useMemo(() => {
203
205
  if (isNotVisible) {
204
206
  return {
@@ -211,7 +213,7 @@ const GridCell = forwardRef(function GridCell(props, ref) {
211
213
  }
212
214
  const cellStyle = attachPinnedStyle(_extends({
213
215
  '--width': `${width}px`
214
- }, styleProp), isRtl, pinnedPosition, pinnedOffset);
216
+ }, styleProp), isRtl, pinnedPosition, pinnedOffset !== undefined ? pinnedOffset + pinnedScrollOffset : undefined);
215
217
  const isLeftPinned = pinnedPosition === PinnedColumnPosition.LEFT;
216
218
  const isRightPinned = pinnedPosition === PinnedColumnPosition.RIGHT;
217
219
  if (rowSpan > 1) {
@@ -222,7 +224,7 @@ const GridCell = forwardRef(function GridCell(props, ref) {
222
224
  }
223
225
  }
224
226
  return cellStyle;
225
- }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, isRtl, rowSpan]);
227
+ }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, pinnedScrollOffset, isRtl, rowSpan]);
226
228
  useEnhancedEffect(() => {
227
229
  if (!hasFocus || cellMode === GridCellModes.Edit) {
228
230
  return;
@@ -13,16 +13,17 @@ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
14
  var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
15
15
  var _RtlProvider = require("@mui/system/RtlProvider");
16
+ var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
16
17
  var _doesSupportPreventScroll = require("../../utils/doesSupportPreventScroll");
17
18
  var _gridClasses = require("../../constants/gridClasses");
18
19
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
19
20
  var _gridColumnGroupsSelector = require("../../hooks/features/columnGrouping/gridColumnGroupsSelector");
20
- var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
21
21
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
22
22
  var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
23
23
  var _domUtils = require("../../utils/domUtils");
24
24
  var _constants = require("../../internals/constants");
25
25
  var _utils = require("../../internals/utils");
26
+ var _usePinnedScrollOffset = require("../../hooks/utils/usePinnedScrollOffset");
26
27
  var _jsxRuntime = require("react/jsx-runtime");
27
28
  const useUtilityClasses = ownerState => {
28
29
  const {
@@ -58,10 +59,10 @@ function GridColumnGroupHeader(props) {
58
59
  pinnedPosition,
59
60
  pinnedOffset
60
61
  } = props;
62
+ const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
61
63
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
62
64
  const isRtl = (0, _RtlProvider.useRtl)();
63
65
  const headerCellRef = React.useRef(null);
64
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
65
66
  const columnGroupsLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsLookupSelector);
66
67
  const group = groupId ? columnGroupsLookup[groupId] : {};
67
68
  const {
@@ -129,7 +130,8 @@ function GridColumnGroupHeader(props) {
129
130
  onBlur: publish('columnGroupHeaderBlur')
130
131
  }), [publish]);
131
132
  const headerClassName = typeof group.headerClassName === 'function' ? group.headerClassName(renderParams) : group.headerClassName;
132
- const style = React.useMemo(() => (0, _utils.attachPinnedStyle)((0, _extends2.default)({}, props.style), isRtl, pinnedPosition, pinnedOffset), [pinnedPosition, pinnedOffset, props.style, isRtl]);
133
+ const pinnedScrollOffset = (0, _usePinnedScrollOffset.usePinnedScrollOffset)(apiRef, pinnedPosition);
134
+ const style = React.useMemo(() => (0, _utils.attachPinnedStyle)((0, _extends2.default)({}, props.style), isRtl, pinnedPosition, pinnedOffset !== undefined ? pinnedOffset + pinnedScrollOffset : undefined), [pinnedPosition, pinnedOffset, pinnedScrollOffset, props.style, isRtl]);
133
135
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridGenericColumnHeaderItem.GridGenericColumnHeaderItem, (0, _extends2.default)({
134
136
  ref: headerCellRef,
135
137
  classes: classes,