@mui/x-data-grid 8.0.0-beta.1 → 8.0.0-beta.3

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 (393) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/DataGrid/DataGrid.js +10 -2
  3. package/DataGrid/useDataGridProps.js +1 -1
  4. package/components/GridRow.js +3 -8
  5. package/components/GridScrollArea.js +4 -4
  6. package/components/GridShadowScrollArea.js +43 -35
  7. package/components/GridSkeletonLoadingOverlay.js +1 -1
  8. package/components/cell/GridActionsCellItem.d.ts +24 -13
  9. package/components/cell/GridActionsCellItem.js +5 -2
  10. package/components/cell/GridBooleanCell.d.ts +1 -2
  11. package/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  12. package/components/cell/GridEditSingleSelectCell.js +1 -1
  13. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  14. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  15. package/components/columnsManagement/GridColumnsManagement.js +1 -24
  16. package/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  17. package/components/containers/GridToolbarContainer.js +5 -3
  18. package/components/export/ExportCsv.js +4 -129
  19. package/components/export/ExportPrint.js +4 -129
  20. package/components/filterPanel/FilterPanelTrigger.js +4 -129
  21. package/components/panel/GridPanel.d.ts +2 -2
  22. package/components/panel/GridPanel.js +1 -1
  23. package/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  24. package/components/quickFilter/QuickFilter.d.ts +26 -3
  25. package/components/quickFilter/QuickFilter.js +103 -19
  26. package/components/quickFilter/QuickFilterClear.js +13 -104
  27. package/components/quickFilter/QuickFilterContext.d.ts +4 -1
  28. package/components/quickFilter/QuickFilterControl.js +36 -12
  29. package/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  30. package/components/quickFilter/QuickFilterTrigger.js +86 -0
  31. package/components/quickFilter/index.d.ts +2 -1
  32. package/components/quickFilter/index.js +11 -0
  33. package/components/toolbar/GridToolbar.js +4 -1
  34. package/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  35. package/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  36. package/components/toolbar/GridToolbarDensitySelector.js +1 -1
  37. package/components/toolbar/GridToolbarExport.d.ts +3 -4
  38. package/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  39. package/components/toolbar/GridToolbarExportContainer.js +1 -1
  40. package/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  41. package/components/toolbar/GridToolbarFilterButton.js +1 -4
  42. package/components/toolbar/GridToolbarQuickFilter.js +100 -41
  43. package/components/toolbarV8/GridToolbar.d.ts +6 -1
  44. package/components/toolbarV8/GridToolbar.js +85 -27
  45. package/components/toolbarV8/Toolbar.d.ts +1 -1
  46. package/components/toolbarV8/Toolbar.js +78 -23
  47. package/components/toolbarV8/ToolbarButton.js +37 -114
  48. package/components/toolbarV8/ToolbarContext.d.ts +4 -2
  49. package/components/virtualization/GridVirtualScrollbar.js +1 -1
  50. package/components/virtualization/GridVirtualScroller.js +2 -2
  51. package/constants/cssVariables.d.ts +3 -0
  52. package/constants/cssVariables.js +2 -1
  53. package/constants/gridClasses.d.ts +20 -0
  54. package/constants/gridClasses.js +1 -1
  55. package/esm/DataGrid/DataGrid.js +10 -2
  56. package/esm/DataGrid/useDataGridProps.js +1 -1
  57. package/esm/components/GridRow.js +4 -9
  58. package/esm/components/GridScrollArea.js +4 -4
  59. package/esm/components/GridShadowScrollArea.js +43 -35
  60. package/esm/components/GridSkeletonLoadingOverlay.js +2 -2
  61. package/esm/components/cell/GridActionsCellItem.d.ts +24 -13
  62. package/esm/components/cell/GridActionsCellItem.js +4 -3
  63. package/esm/components/cell/GridBooleanCell.d.ts +1 -2
  64. package/esm/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  65. package/esm/components/cell/GridEditSingleSelectCell.js +1 -1
  66. package/esm/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  67. package/esm/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  68. package/esm/components/columnsManagement/GridColumnsManagement.js +1 -24
  69. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  70. package/esm/components/containers/GridToolbarContainer.js +5 -3
  71. package/esm/components/export/ExportCsv.js +4 -129
  72. package/esm/components/export/ExportPrint.js +4 -129
  73. package/esm/components/filterPanel/FilterPanelTrigger.js +4 -129
  74. package/esm/components/panel/GridPanel.d.ts +2 -2
  75. package/esm/components/panel/GridPanel.js +1 -1
  76. package/esm/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  77. package/esm/components/quickFilter/QuickFilter.d.ts +26 -3
  78. package/esm/components/quickFilter/QuickFilter.js +101 -17
  79. package/esm/components/quickFilter/QuickFilterClear.js +13 -104
  80. package/esm/components/quickFilter/QuickFilterContext.d.ts +4 -1
  81. package/esm/components/quickFilter/QuickFilterControl.js +36 -12
  82. package/esm/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  83. package/esm/components/quickFilter/QuickFilterTrigger.js +79 -0
  84. package/esm/components/quickFilter/index.d.ts +2 -1
  85. package/esm/components/quickFilter/index.js +2 -1
  86. package/esm/components/toolbar/GridToolbar.js +4 -1
  87. package/esm/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  88. package/esm/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  89. package/esm/components/toolbar/GridToolbarDensitySelector.js +1 -1
  90. package/esm/components/toolbar/GridToolbarExport.d.ts +3 -4
  91. package/esm/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  92. package/esm/components/toolbar/GridToolbarExportContainer.js +1 -1
  93. package/esm/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  94. package/esm/components/toolbar/GridToolbarFilterButton.js +1 -4
  95. package/esm/components/toolbar/GridToolbarQuickFilter.js +101 -44
  96. package/esm/components/toolbarV8/GridToolbar.d.ts +6 -1
  97. package/esm/components/toolbarV8/GridToolbar.js +83 -27
  98. package/esm/components/toolbarV8/Toolbar.d.ts +1 -1
  99. package/esm/components/toolbarV8/Toolbar.js +77 -22
  100. package/esm/components/toolbarV8/ToolbarButton.js +37 -114
  101. package/esm/components/toolbarV8/ToolbarContext.d.ts +4 -2
  102. package/esm/components/virtualization/GridVirtualScrollbar.js +1 -1
  103. package/esm/components/virtualization/GridVirtualScroller.js +2 -2
  104. package/esm/constants/cssVariables.d.ts +3 -0
  105. package/esm/constants/cssVariables.js +2 -1
  106. package/esm/constants/gridClasses.d.ts +20 -0
  107. package/esm/constants/gridClasses.js +1 -1
  108. package/esm/hooks/core/gridCoreSelector.d.ts +1 -1
  109. package/esm/hooks/core/gridPropsSelectors.d.ts +1 -1
  110. package/esm/hooks/features/clipboard/useGridClipboard.js +2 -2
  111. package/esm/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  112. package/esm/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  113. package/esm/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  114. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  115. package/esm/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  116. package/esm/hooks/features/columnMenu/useGridColumnMenu.js +4 -4
  117. package/esm/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  118. package/esm/hooks/features/columnResize/useGridColumnResize.js +7 -7
  119. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  120. package/esm/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  121. package/esm/hooks/features/columns/gridColumnsUtils.js +1 -1
  122. package/esm/hooks/features/columns/useGridColumnSpanning.js +2 -2
  123. package/esm/hooks/features/columns/useGridColumns.js +2 -3
  124. package/esm/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  125. package/esm/hooks/features/dataSource/useGridDataSource.js +1 -1
  126. package/esm/hooks/features/density/densitySelector.d.ts +2 -2
  127. package/esm/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  128. package/esm/hooks/features/dimensions/useGridDimensions.js +5 -5
  129. package/esm/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  130. package/esm/hooks/features/editing/useGridCellEditing.js +8 -8
  131. package/esm/hooks/features/editing/useGridRowEditing.js +9 -9
  132. package/esm/hooks/features/events/useGridEvents.js +18 -18
  133. package/esm/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  134. package/esm/hooks/features/filter/useGridFilter.js +7 -7
  135. package/esm/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  136. package/esm/hooks/features/focus/useGridFocus.js +10 -10
  137. package/esm/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  138. package/esm/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  139. package/esm/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  140. package/esm/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  141. package/esm/hooks/features/listView/useGridListView.d.ts +4 -4
  142. package/esm/hooks/features/listView/useGridListView.js +9 -9
  143. package/esm/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  144. package/esm/hooks/features/pagination/useGridPaginationModel.js +7 -7
  145. package/esm/hooks/features/pagination/useGridRowCount.js +2 -2
  146. package/esm/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  147. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  148. package/esm/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  149. package/esm/hooks/features/rowSelection/utils.d.ts +1 -1
  150. package/esm/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  151. package/esm/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  152. package/esm/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  153. package/esm/hooks/features/rows/gridRowsSelector.js +7 -0
  154. package/esm/hooks/features/rows/useGridParamsApi.js +2 -2
  155. package/esm/hooks/features/rows/useGridRowSpanning.js +6 -6
  156. package/esm/hooks/features/rows/useGridRows.js +5 -5
  157. package/esm/hooks/features/scroll/useGridScroll.d.ts +1 -1
  158. package/esm/hooks/features/scroll/useGridScroll.js +2 -2
  159. package/esm/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  160. package/esm/hooks/features/sorting/useGridSorting.js +6 -6
  161. package/esm/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  162. package/esm/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  163. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +19 -8
  164. package/esm/hooks/utils/index.d.ts +1 -1
  165. package/esm/hooks/utils/index.js +1 -1
  166. package/esm/hooks/utils/useGridAriaAttributes.js +6 -0
  167. package/esm/hooks/utils/{useGridApiEventHandler.d.ts → useGridEvent.d.ts} +2 -2
  168. package/{modern/hooks/utils/useGridApiEventHandler.js → esm/hooks/utils/useGridEvent.js} +3 -3
  169. package/esm/hooks/utils/useGridNativeEventListener.js +2 -2
  170. package/esm/hooks/utils/useGridVisibleRows.d.ts +4 -4
  171. package/esm/index.js +1 -1
  172. package/esm/locales/deDE.js +13 -13
  173. package/esm/material/augmentation.d.ts +74 -0
  174. package/esm/material/augmentation.js +1 -0
  175. package/esm/material/index.d.ts +1 -0
  176. package/esm/material/index.js +262 -141
  177. package/esm/material/variables.js +2 -0
  178. package/esm/models/colDef/gridColDef.d.ts +1 -1
  179. package/esm/models/colDef/index.d.ts +1 -1
  180. package/esm/models/gridBaseSlots.d.ts +25 -36
  181. package/esm/models/gridSlotsComponentsProps.d.ts +1 -19
  182. package/esm/models/props/DataGridProps.d.ts +20 -10
  183. package/esm/utils/utils.d.ts +0 -27
  184. package/esm/utils/utils.js +0 -122
  185. package/hooks/core/gridCoreSelector.d.ts +1 -1
  186. package/hooks/core/gridPropsSelectors.d.ts +1 -1
  187. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  188. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  189. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +2 -2
  190. package/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  191. package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  192. package/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  193. package/hooks/features/columnMenu/useGridColumnMenu.js +3 -3
  194. package/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  195. package/hooks/features/columnResize/useGridColumnResize.js +6 -6
  196. package/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  197. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  198. package/hooks/features/columns/gridColumnsUtils.js +1 -1
  199. package/hooks/features/columns/useGridColumnSpanning.js +2 -2
  200. package/hooks/features/columns/useGridColumns.js +2 -3
  201. package/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  202. package/hooks/features/dataSource/useGridDataSource.js +2 -2
  203. package/hooks/features/density/densitySelector.d.ts +2 -2
  204. package/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  205. package/hooks/features/dimensions/useGridDimensions.js +6 -6
  206. package/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  207. package/hooks/features/editing/useGridCellEditing.js +8 -8
  208. package/hooks/features/editing/useGridRowEditing.js +9 -9
  209. package/hooks/features/events/useGridEvents.js +18 -18
  210. package/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  211. package/hooks/features/filter/useGridFilter.js +9 -9
  212. package/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  213. package/hooks/features/focus/useGridFocus.js +10 -10
  214. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  215. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  216. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  217. package/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  218. package/hooks/features/listView/useGridListView.d.ts +4 -4
  219. package/hooks/features/listView/useGridListView.js +9 -9
  220. package/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  221. package/hooks/features/pagination/useGridPaginationModel.js +7 -7
  222. package/hooks/features/pagination/useGridRowCount.js +1 -1
  223. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  224. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  225. package/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  226. package/hooks/features/rowSelection/utils.d.ts +1 -1
  227. package/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  228. package/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  229. package/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  230. package/hooks/features/rows/gridRowsSelector.js +8 -1
  231. package/hooks/features/rows/useGridParamsApi.js +2 -2
  232. package/hooks/features/rows/useGridRowSpanning.js +6 -6
  233. package/hooks/features/rows/useGridRows.js +4 -4
  234. package/hooks/features/scroll/useGridScroll.d.ts +1 -1
  235. package/hooks/features/scroll/useGridScroll.js +2 -2
  236. package/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  237. package/hooks/features/sorting/useGridSorting.js +6 -6
  238. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  239. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  240. package/hooks/features/virtualization/useGridVirtualScroller.js +17 -6
  241. package/hooks/utils/index.d.ts +1 -1
  242. package/hooks/utils/index.js +8 -8
  243. package/hooks/utils/useGridAriaAttributes.js +6 -0
  244. package/{modern/hooks/utils/useGridApiEventHandler.d.ts → hooks/utils/useGridEvent.d.ts} +2 -2
  245. package/hooks/utils/{useGridApiEventHandler.js → useGridEvent.js} +5 -5
  246. package/hooks/utils/useGridNativeEventListener.js +2 -2
  247. package/hooks/utils/useGridVisibleRows.d.ts +4 -4
  248. package/index.js +1 -1
  249. package/locales/deDE.js +13 -13
  250. package/material/augmentation.d.ts +74 -0
  251. package/material/augmentation.js +5 -0
  252. package/material/index.d.ts +1 -0
  253. package/material/index.js +261 -141
  254. package/material/variables.js +2 -0
  255. package/models/colDef/gridColDef.d.ts +1 -1
  256. package/models/colDef/index.d.ts +1 -1
  257. package/models/gridBaseSlots.d.ts +25 -36
  258. package/models/gridSlotsComponentsProps.d.ts +1 -19
  259. package/models/props/DataGridProps.d.ts +20 -10
  260. package/modern/DataGrid/DataGrid.js +10 -2
  261. package/modern/DataGrid/useDataGridProps.js +1 -1
  262. package/modern/components/GridRow.js +4 -9
  263. package/modern/components/GridScrollArea.js +4 -4
  264. package/modern/components/GridShadowScrollArea.js +43 -35
  265. package/modern/components/GridSkeletonLoadingOverlay.js +2 -2
  266. package/modern/components/cell/GridActionsCellItem.d.ts +24 -13
  267. package/modern/components/cell/GridActionsCellItem.js +4 -3
  268. package/modern/components/cell/GridBooleanCell.d.ts +1 -2
  269. package/modern/components/cell/GridEditSingleSelectCell.d.ts +4 -4
  270. package/modern/components/cell/GridEditSingleSelectCell.js +1 -1
  271. package/modern/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  272. package/modern/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  273. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -24
  274. package/modern/components/columnsPanel/ColumnsPanelTrigger.js +4 -129
  275. package/modern/components/containers/GridToolbarContainer.js +5 -3
  276. package/modern/components/export/ExportCsv.js +4 -129
  277. package/modern/components/export/ExportPrint.js +4 -129
  278. package/modern/components/filterPanel/FilterPanelTrigger.js +4 -129
  279. package/modern/components/panel/GridPanel.d.ts +2 -2
  280. package/modern/components/panel/GridPanel.js +1 -1
  281. package/modern/components/panel/filterPanel/filterPanelUtils.d.ts +1 -1
  282. package/modern/components/quickFilter/QuickFilter.d.ts +26 -3
  283. package/modern/components/quickFilter/QuickFilter.js +101 -17
  284. package/modern/components/quickFilter/QuickFilterClear.js +13 -104
  285. package/modern/components/quickFilter/QuickFilterContext.d.ts +4 -1
  286. package/modern/components/quickFilter/QuickFilterControl.js +36 -12
  287. package/modern/components/quickFilter/QuickFilterTrigger.d.ts +28 -0
  288. package/modern/components/quickFilter/QuickFilterTrigger.js +79 -0
  289. package/modern/components/quickFilter/index.d.ts +2 -1
  290. package/modern/components/quickFilter/index.js +2 -1
  291. package/modern/components/toolbar/GridToolbar.js +4 -1
  292. package/modern/components/toolbar/GridToolbarColumnsButton.d.ts +3 -4
  293. package/modern/components/toolbar/GridToolbarDensitySelector.d.ts +3 -4
  294. package/modern/components/toolbar/GridToolbarDensitySelector.js +1 -1
  295. package/modern/components/toolbar/GridToolbarExport.d.ts +3 -4
  296. package/modern/components/toolbar/GridToolbarExportContainer.d.ts +3 -4
  297. package/modern/components/toolbar/GridToolbarExportContainer.js +1 -1
  298. package/modern/components/toolbar/GridToolbarFilterButton.d.ts +4 -6
  299. package/modern/components/toolbar/GridToolbarFilterButton.js +1 -4
  300. package/modern/components/toolbar/GridToolbarQuickFilter.js +101 -44
  301. package/modern/components/toolbarV8/GridToolbar.d.ts +6 -1
  302. package/modern/components/toolbarV8/GridToolbar.js +83 -27
  303. package/modern/components/toolbarV8/Toolbar.d.ts +1 -1
  304. package/modern/components/toolbarV8/Toolbar.js +77 -22
  305. package/modern/components/toolbarV8/ToolbarButton.js +37 -114
  306. package/modern/components/toolbarV8/ToolbarContext.d.ts +4 -2
  307. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -1
  308. package/modern/components/virtualization/GridVirtualScroller.js +2 -2
  309. package/modern/constants/cssVariables.d.ts +3 -0
  310. package/modern/constants/cssVariables.js +2 -1
  311. package/modern/constants/gridClasses.d.ts +20 -0
  312. package/modern/constants/gridClasses.js +1 -1
  313. package/modern/hooks/core/gridCoreSelector.d.ts +1 -1
  314. package/modern/hooks/core/gridPropsSelectors.d.ts +1 -1
  315. package/modern/hooks/features/clipboard/useGridClipboard.js +2 -2
  316. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +5 -5
  317. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +1 -1
  318. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +4 -4
  319. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  320. package/modern/hooks/features/columnMenu/columnMenuSelector.d.ts +1 -1
  321. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +4 -4
  322. package/modern/hooks/features/columnResize/columnResizeSelector.d.ts +2 -2
  323. package/modern/hooks/features/columnResize/useGridColumnResize.js +7 -7
  324. package/modern/hooks/features/columns/gridColumnsSelector.d.ts +14 -14
  325. package/modern/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  326. package/modern/hooks/features/columns/gridColumnsUtils.js +1 -1
  327. package/modern/hooks/features/columns/useGridColumnSpanning.js +2 -2
  328. package/modern/hooks/features/columns/useGridColumns.js +2 -3
  329. package/modern/hooks/features/dataSource/gridDataSourceSelector.d.ts +4 -4
  330. package/modern/hooks/features/dataSource/useGridDataSource.js +1 -1
  331. package/modern/hooks/features/density/densitySelector.d.ts +2 -2
  332. package/modern/hooks/features/dimensions/gridDimensionsSelectors.d.ts +13 -13
  333. package/modern/hooks/features/dimensions/useGridDimensions.js +5 -5
  334. package/modern/hooks/features/editing/gridEditingSelectors.d.ts +4 -4
  335. package/modern/hooks/features/editing/useGridCellEditing.js +8 -8
  336. package/modern/hooks/features/editing/useGridRowEditing.js +9 -9
  337. package/modern/hooks/features/events/useGridEvents.js +18 -18
  338. package/modern/hooks/features/filter/gridFilterSelector.d.ts +18 -18
  339. package/modern/hooks/features/filter/useGridFilter.js +7 -7
  340. package/modern/hooks/features/focus/gridFocusStateSelector.d.ts +10 -10
  341. package/modern/hooks/features/focus/useGridFocus.js +10 -10
  342. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -4
  343. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  344. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +6 -6
  345. package/modern/hooks/features/listView/gridListViewSelectors.d.ts +1 -1
  346. package/modern/hooks/features/listView/useGridListView.d.ts +4 -4
  347. package/modern/hooks/features/listView/useGridListView.js +9 -9
  348. package/modern/hooks/features/pagination/gridPaginationSelector.d.ts +14 -14
  349. package/modern/hooks/features/pagination/useGridPaginationModel.js +7 -7
  350. package/modern/hooks/features/pagination/useGridRowCount.js +2 -2
  351. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +2 -2
  352. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +4 -4
  353. package/modern/hooks/features/rowSelection/useGridRowSelection.js +8 -8
  354. package/modern/hooks/features/rowSelection/utils.d.ts +1 -1
  355. package/modern/hooks/features/rows/gridRowSpanningSelectors.d.ts +3 -3
  356. package/modern/hooks/features/rows/gridRowsMetaSelector.d.ts +1 -1
  357. package/modern/hooks/features/rows/gridRowsSelector.d.ts +21 -20
  358. package/modern/hooks/features/rows/gridRowsSelector.js +7 -0
  359. package/modern/hooks/features/rows/useGridParamsApi.js +2 -2
  360. package/modern/hooks/features/rows/useGridRowSpanning.js +6 -6
  361. package/modern/hooks/features/rows/useGridRows.js +5 -5
  362. package/modern/hooks/features/scroll/useGridScroll.d.ts +1 -1
  363. package/modern/hooks/features/scroll/useGridScroll.js +2 -2
  364. package/modern/hooks/features/sorting/gridSortingSelector.d.ts +5 -5
  365. package/modern/hooks/features/sorting/useGridSorting.js +6 -6
  366. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +2 -2
  367. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +6 -6
  368. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +19 -8
  369. package/modern/hooks/utils/index.d.ts +1 -1
  370. package/modern/hooks/utils/index.js +1 -1
  371. package/modern/hooks/utils/useGridAriaAttributes.js +6 -0
  372. package/{hooks/utils/useGridApiEventHandler.d.ts → modern/hooks/utils/useGridEvent.d.ts} +2 -2
  373. package/{esm/hooks/utils/useGridApiEventHandler.js → modern/hooks/utils/useGridEvent.js} +3 -3
  374. package/modern/hooks/utils/useGridNativeEventListener.js +2 -2
  375. package/modern/hooks/utils/useGridVisibleRows.d.ts +4 -4
  376. package/modern/index.js +1 -1
  377. package/modern/locales/deDE.js +13 -13
  378. package/modern/material/augmentation.d.ts +74 -0
  379. package/modern/material/augmentation.js +1 -0
  380. package/modern/material/index.d.ts +1 -0
  381. package/modern/material/index.js +262 -141
  382. package/modern/material/variables.js +2 -0
  383. package/modern/models/colDef/gridColDef.d.ts +1 -1
  384. package/modern/models/colDef/index.d.ts +1 -1
  385. package/modern/models/gridBaseSlots.d.ts +25 -36
  386. package/modern/models/gridSlotsComponentsProps.d.ts +1 -19
  387. package/modern/models/props/DataGridProps.d.ts +20 -10
  388. package/modern/utils/utils.d.ts +0 -27
  389. package/modern/utils/utils.js +0 -122
  390. package/package.json +6 -6
  391. package/tsconfig.build.tsbuildinfo +1 -1
  392. package/utils/utils.d.ts +0 -27
  393. package/utils/utils.js +0 -123
@@ -83,147 +83,22 @@ process.env.NODE_ENV !== "production" ? FilterPanelTrigger.propTypes = {
83
83
  // | These PropTypes are generated from the TypeScript type definitions |
84
84
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
85
85
  // ----------------------------------------------------------------------
86
- /**
87
- * A ref for imperative actions.
88
- * It currently only supports `focusVisible()` action.
89
- */
90
- action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
91
- current: PropTypes.shape({
92
- focusVisible: PropTypes.func.isRequired
93
- })
94
- })]),
95
- /**
96
- * If `true`, the ripples are centered.
97
- * They won't start at the cursor interaction position.
98
- * @default false
99
- */
100
- centerRipple: PropTypes.bool,
101
86
  /**
102
87
  * A function to customize rendering of the component.
103
88
  */
104
89
  className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
105
- /**
106
- * The color of the component.
107
- * It supports both default and custom theme colors, which can be added as shown in the
108
- * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
109
- * @default 'primary'
110
- */
111
- color: PropTypes.oneOf(['error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
112
- component: PropTypes.elementType,
113
- /**
114
- * If `true`, the component is disabled.
115
- */
116
90
  disabled: PropTypes.bool,
117
- /**
118
- * If `true`, no elevation is used.
119
- * @default false
120
- */
121
- disableElevation: PropTypes.bool,
122
- /**
123
- * If `true`, the keyboard focus ripple is disabled.
124
- * @default false
125
- */
126
- disableFocusRipple: PropTypes.bool,
127
- /**
128
- * If `true`, the ripple effect is disabled.
129
- *
130
- * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
131
- * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
132
- * @default false
133
- */
134
- disableRipple: PropTypes.bool,
135
- /**
136
- * If `true`, the touch ripple effect is disabled.
137
- * @default false
138
- */
139
- disableTouchRipple: PropTypes.bool,
140
- /**
141
- * Element placed after the children.
142
- */
143
- endIcon: PropTypes.node,
144
- /**
145
- * If `true`, the base button will have a keyboard focus ripple.
146
- * @default false
147
- */
148
- focusRipple: PropTypes.bool,
149
- /**
150
- * This prop can help identify which element has keyboard focus.
151
- * The class name will be applied when the element gains the focus through keyboard interaction.
152
- * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
153
- * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
154
- * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
155
- * if needed.
156
- */
157
- focusVisibleClassName: PropTypes.string,
158
- /**
159
- * If `true`, the button will take up the full width of its container.
160
- * @default false
161
- */
162
- fullWidth: PropTypes.bool,
163
- /**
164
- * The URL to link to when the button is clicked.
165
- * If defined, an `a` element will be used as the root node.
166
- */
167
- href: PropTypes.string,
168
- /**
169
- * The component used to render a link when the `href` prop is provided.
170
- * @default 'a'
171
- */
172
- LinkComponent: PropTypes.elementType,
173
- /**
174
- * If `true`, the loading indicator is visible and the button is disabled.
175
- * If `true | false`, the loading wrapper is always rendered before the children to prevent [Google Translation Crash](https://github.com/mui/material-ui/issues/27853).
176
- * @default null
177
- */
178
- loading: PropTypes.bool,
179
- /**
180
- * Element placed before the children if the button is in loading state.
181
- * The node should contain an element with `role="progressbar"` with an accessible name.
182
- * By default, it renders a `CircularProgress` that is labeled by the button itself.
183
- * @default <CircularProgress color="inherit" size={16} />
184
- */
185
- loadingIndicator: PropTypes.node,
186
- /**
187
- * The loading indicator can be positioned on the start, end, or the center of the button.
188
- * @default 'center'
189
- */
190
- loadingPosition: PropTypes.oneOf(['center', 'end', 'start']),
191
- /**
192
- * Callback fired when the component is focused with a keyboard.
193
- * We trigger a `onFocus` callback too.
194
- */
195
- onFocusVisible: PropTypes.func,
91
+ id: PropTypes.string,
196
92
  /**
197
93
  * A function to customize rendering of the component.
198
94
  */
199
95
  render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
200
- /**
201
- * The size of the component.
202
- * `small` is equivalent to the dense button styling.
203
- */
96
+ role: PropTypes.string,
204
97
  size: PropTypes.oneOf(['large', 'medium', 'small']),
205
- /**
206
- * Element placed before the children.
207
- */
208
98
  startIcon: PropTypes.node,
209
99
  style: PropTypes.object,
210
- /**
211
- * The system prop that allows defining system overrides as well as additional CSS styles.
212
- */
213
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
214
100
  tabIndex: PropTypes.number,
215
- /**
216
- * Props applied to the `TouchRipple` element.
217
- */
218
- TouchRippleProps: PropTypes.object,
219
- /**
220
- * A ref that points to the `TouchRipple` element.
221
- */
222
- touchRippleRef: PropTypes.any,
223
- /**
224
- * The variant to use.
225
- * @default 'text'
226
- */
227
- variant: PropTypes.oneOf(['contained', 'outlined', 'text'])
101
+ title: PropTypes.string,
102
+ touchRippleRef: PropTypes.any
228
103
  } : void 0;
229
104
  export { FilterPanelTrigger };
@@ -7,7 +7,7 @@ export interface GridPanelClasses {
7
7
  paper: string;
8
8
  }
9
9
  export interface GridPanelProps extends Pick<GridSlotProps['basePopper'], 'id' | 'className' | 'target' | 'flip'> {
10
- ref?: React.Ref<HTMLElement>;
10
+ ref?: React.Ref<HTMLDivElement>;
11
11
  children?: React.ReactNode;
12
12
  /**
13
13
  * Override or extend the styles applied to the component.
@@ -16,5 +16,5 @@ export interface GridPanelProps extends Pick<GridSlotProps['basePopper'], 'id' |
16
16
  open: boolean;
17
17
  }
18
18
  export declare const gridPanelClasses: Record<keyof GridPanelClasses, string>;
19
- declare const GridPanel: React.ForwardRefExoticComponent<GridPanelProps> | React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLElement>>;
19
+ declare const GridPanel: React.ForwardRefExoticComponent<GridPanelProps> | React.ForwardRefExoticComponent<Omit<GridPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
20
  export { GridPanel };
@@ -68,7 +68,7 @@ const GridPanel = forwardRef((props, ref) => {
68
68
  return /*#__PURE__*/_jsx(GridPanelRoot, _extends({
69
69
  as: rootProps.slots.basePopper,
70
70
  ownerState: rootProps,
71
- placement: "bottom-start",
71
+ placement: "bottom-end",
72
72
  className: clsx(classes.panel, className, variablesClass),
73
73
  flip: true,
74
74
  onDidShow: onDidShow,
@@ -1,5 +1,5 @@
1
1
  import type { GridColDef, GridSingleSelectColDef } from '../../../models/colDef/gridColDef';
2
2
  import type { GridValueOptionsParams } from '../../../models/params/gridValueOptionsParams';
3
3
  export declare function isSingleSelectColDef(colDef: GridColDef | null): colDef is GridSingleSelectColDef;
4
- export declare function getValueOptions(column: GridSingleSelectColDef, additionalParams?: Omit<GridValueOptionsParams, 'field'>): import("../../..").ValueOptions[] | undefined;
4
+ export declare function getValueOptions(column: GridSingleSelectColDef, additionalParams?: Omit<GridValueOptionsParams, 'field'>): import("@mui/x-data-grid").ValueOptions[] | undefined;
5
5
  export declare function getValueFromValueOptions(value: string, valueOptions: any[] | undefined, getOptionValue: NonNullable<GridSingleSelectColDef['getOptionValue']>): any;
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { QuickFilterState } from "./QuickFilterContext.js";
3
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
2
4
  import type { GridFilterModel } from '../../models';
3
- export type QuickFilterProps = {
4
- children: React.ReactNode;
5
+ export type QuickFilterProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'className'> & {
5
6
  /**
6
7
  * Function responsible for parsing text input in an array of independent values for quick filtering.
7
8
  * @param {string} input The value entered by the user
@@ -21,10 +22,32 @@ export type QuickFilterProps = {
21
22
  * @default 150
22
23
  */
23
24
  debounceMs?: number;
25
+ /**
26
+ * The default expanded state of the quick filter control.
27
+ * @default false
28
+ */
29
+ defaultExpanded?: boolean;
30
+ /**
31
+ * The expanded state of the quick filter control.
32
+ */
33
+ expanded?: boolean;
34
+ /**
35
+ * A function to customize rendering of the component.
36
+ */
37
+ render?: RenderProp<React.ComponentProps<'div'>, QuickFilterState>;
38
+ /**
39
+ * Override or extend the styles applied to the component.
40
+ */
41
+ className?: string | ((state: QuickFilterState) => string);
42
+ /**
43
+ * Callback function that is called when the quick filter input is expanded or collapsed.
44
+ * @param {boolean} expanded The new expanded state of the quick filter control
45
+ */
46
+ onExpandedChange?: (expanded: boolean) => void;
24
47
  };
25
48
  /**
26
49
  * The top level Quick Filter component that provides context to child components.
27
- * It does not render any DOM elements.
50
+ * It renders a `<div />` element.
28
51
  *
29
52
  * Demos:
30
53
  *
@@ -1,19 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["render", "className", "parser", "formatter", "debounceMs", "defaultExpanded", "expanded", "onExpandedChange"];
1
4
  import * as React from 'react';
2
5
  import PropTypes from 'prop-types';
3
6
  import { unstable_debounce as debounce } from '@mui/utils';
7
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
8
+ import useId from '@mui/utils/useId';
9
+ import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
4
10
  import { QuickFilterContext } from "./QuickFilterContext.js";
11
+ import { useGridComponentRenderer } from "../../hooks/utils/useGridComponentRenderer.js";
5
12
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
6
13
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
7
14
  import { gridQuickFilterValuesSelector } from "../../hooks/features/filter/index.js";
8
15
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
- import { isDeepEqual } from "../../utils/utils.js";
10
16
  import { jsx as _jsx } from "react/jsx-runtime";
11
17
  const DEFAULT_PARSER = searchText => searchText.split(' ').filter(word => word !== '');
12
18
  const DEFAULT_FORMATTER = values => values.join(' ');
13
19
 
14
20
  /**
15
21
  * The top level Quick Filter component that provides context to child components.
16
- * It does not render any DOM elements.
22
+ * It renders a `<div />` element.
17
23
  *
18
24
  * Demos:
19
25
  *
@@ -26,16 +32,38 @@ const DEFAULT_FORMATTER = values => values.join(' ');
26
32
  function QuickFilter(props) {
27
33
  const rootProps = useGridRootProps();
28
34
  const {
29
- parser = DEFAULT_PARSER,
30
- formatter = DEFAULT_FORMATTER,
31
- debounceMs = rootProps.filterDebounceMs,
32
- children
33
- } = props;
35
+ render,
36
+ className,
37
+ parser = DEFAULT_PARSER,
38
+ formatter = DEFAULT_FORMATTER,
39
+ debounceMs = rootProps.filterDebounceMs,
40
+ defaultExpanded,
41
+ expanded,
42
+ onExpandedChange
43
+ } = props,
44
+ other = _objectWithoutPropertiesLoose(props, _excluded);
34
45
  const apiRef = useGridApiContext();
35
46
  const controlRef = React.useRef(null);
36
47
  const triggerRef = React.useRef(null);
37
48
  const quickFilterValues = useGridSelector(apiRef, gridQuickFilterValuesSelector);
38
49
  const [value, setValue] = React.useState(formatter(quickFilterValues ?? []));
50
+ const [internalExpanded, setInternalExpanded] = React.useState(defaultExpanded ?? value.length > 0);
51
+ const expandedValue = expanded ?? internalExpanded;
52
+ const state = React.useMemo(() => ({
53
+ value,
54
+ expanded: expandedValue
55
+ }), [value, expandedValue]);
56
+ const resolvedClassName = typeof className === 'function' ? className(state) : className;
57
+ const ref = React.useRef(null);
58
+ const controlId = useId();
59
+ const handleExpandedChange = React.useCallback(newExpanded => {
60
+ if (onExpandedChange) {
61
+ onExpandedChange(newExpanded);
62
+ }
63
+ if (expanded === undefined) {
64
+ setInternalExpanded(newExpanded);
65
+ }
66
+ }, [onExpandedChange, expanded]);
39
67
  const prevQuickFilterValuesRef = React.useRef(quickFilterValues);
40
68
  React.useEffect(() => {
41
69
  if (!isDeepEqual(prevQuickFilterValuesRef.current, quickFilterValues)) {
@@ -46,6 +74,31 @@ function QuickFilter(props) {
46
74
  setValue(prevSearchValue => isDeepEqual(parser(prevSearchValue), quickFilterValues) ? prevSearchValue : formatter(quickFilterValues ?? []));
47
75
  }
48
76
  }, [quickFilterValues, formatter, parser]);
77
+ const isFirstRender = React.useRef(true);
78
+ const previousExpandedValue = React.useRef(expandedValue);
79
+ React.useEffect(() => {
80
+ if (isFirstRender.current) {
81
+ isFirstRender.current = false;
82
+ return;
83
+ }
84
+
85
+ // Ensure the expanded state has actually changed before focusing
86
+ if (previousExpandedValue.current !== expandedValue) {
87
+ if (expandedValue) {
88
+ // Ensures the focus does not interupt CSS transitions and animations on the control
89
+ requestAnimationFrame(() => {
90
+ controlRef.current?.focus({
91
+ preventScroll: true
92
+ });
93
+ });
94
+ } else {
95
+ triggerRef.current?.focus({
96
+ preventScroll: true
97
+ });
98
+ }
99
+ previousExpandedValue.current = expandedValue;
100
+ }
101
+ }, [expandedValue]);
49
102
  const setQuickFilterValueDebounced = React.useMemo(() => debounce(newValue => {
50
103
  const newQuickFilterValues = parser(newValue);
51
104
  prevQuickFilterValuesRef.current = newQuickFilterValues;
@@ -57,7 +110,7 @@ function QuickFilter(props) {
57
110
  setValue(newValue);
58
111
  setQuickFilterValueDebounced(newValue);
59
112
  }, [setQuickFilterValueDebounced]);
60
- const handleClear = React.useCallback(() => {
113
+ const handleClearValue = React.useCallback(() => {
61
114
  setValue('');
62
115
  apiRef.current.setQuickFilterValues([]);
63
116
  controlRef.current?.focus();
@@ -65,15 +118,25 @@ function QuickFilter(props) {
65
118
  const contextValue = React.useMemo(() => ({
66
119
  controlRef,
67
120
  triggerRef,
68
- state: {
69
- value
70
- },
71
- clearValue: handleClear,
72
- onValueChange: handleValueChange
73
- }), [value, handleValueChange, handleClear]);
121
+ state,
122
+ controlId,
123
+ clearValue: handleClearValue,
124
+ onValueChange: handleValueChange,
125
+ onExpandedChange: handleExpandedChange
126
+ }), [controlId, state, handleValueChange, handleClearValue, handleExpandedChange]);
127
+ useEnhancedEffect(() => {
128
+ if (ref.current && triggerRef.current) {
129
+ ref.current.style.setProperty('--trigger-width', `${triggerRef.current?.offsetWidth}px`);
130
+ }
131
+ }, []);
132
+ const element = useGridComponentRenderer('div', render, _extends({
133
+ className: resolvedClassName
134
+ }, other, {
135
+ ref
136
+ }), state);
74
137
  return /*#__PURE__*/_jsx(QuickFilterContext.Provider, {
75
138
  value: contextValue,
76
- children: children
139
+ children: element
77
140
  });
78
141
  }
79
142
  process.env.NODE_ENV !== "production" ? QuickFilter.propTypes = {
@@ -81,12 +144,24 @@ process.env.NODE_ENV !== "production" ? QuickFilter.propTypes = {
81
144
  // | These PropTypes are generated from the TypeScript type definitions |
82
145
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
83
146
  // ----------------------------------------------------------------------
84
- children: PropTypes.node,
147
+ /**
148
+ * Override or extend the styles applied to the component.
149
+ */
150
+ className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
85
151
  /**
86
152
  * The debounce time in milliseconds.
87
153
  * @default 150
88
154
  */
89
155
  debounceMs: PropTypes.number,
156
+ /**
157
+ * The default expanded state of the quick filter control.
158
+ * @default false
159
+ */
160
+ defaultExpanded: PropTypes.bool,
161
+ /**
162
+ * The expanded state of the quick filter control.
163
+ */
164
+ expanded: PropTypes.bool,
90
165
  /**
91
166
  * Function responsible for formatting values of quick filter in a string when the model is modified
92
167
  * @param {any[]} values The new values passed to the quick filter model
@@ -94,12 +169,21 @@ process.env.NODE_ENV !== "production" ? QuickFilter.propTypes = {
94
169
  * @default (values: string[]) => values.join(' ')
95
170
  */
96
171
  formatter: PropTypes.func,
172
+ /**
173
+ * Callback function that is called when the quick filter input is expanded or collapsed.
174
+ * @param {boolean} expanded The new expanded state of the quick filter control
175
+ */
176
+ onExpandedChange: PropTypes.func,
97
177
  /**
98
178
  * Function responsible for parsing text input in an array of independent values for quick filtering.
99
179
  * @param {string} input The value entered by the user
100
180
  * @returns {any[]} The array of value on which quick filter is applied
101
181
  * @default (searchText: string) => searchText.split(' ').filter((word) => word !== '')
102
182
  */
103
- parser: PropTypes.func
183
+ parser: PropTypes.func,
184
+ /**
185
+ * A function to customize rendering of the component.
186
+ */
187
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
104
188
  } : void 0;
105
189
  export { QuickFilter };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["render", "className"];
3
+ const _excluded = ["render", "className", "onClick"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { forwardRef } from '@mui/x-internals/forwardRef';
@@ -23,7 +23,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
23
23
  const QuickFilterClear = forwardRef(function QuickFilterClear(props, ref) {
24
24
  const {
25
25
  render,
26
- className
26
+ className,
27
+ onClick
27
28
  } = props,
28
29
  other = _objectWithoutPropertiesLoose(props, _excluded);
29
30
  const rootProps = useGridRootProps();
@@ -32,10 +33,15 @@ const QuickFilterClear = forwardRef(function QuickFilterClear(props, ref) {
32
33
  clearValue
33
34
  } = useQuickFilterContext();
34
35
  const resolvedClassName = typeof className === 'function' ? className(state) : className;
36
+ const handleClick = event => {
37
+ clearValue();
38
+ onClick?.(event);
39
+ };
35
40
  const element = useGridComponentRenderer(rootProps.slots.baseIconButton, render, _extends({}, rootProps.slotProps?.baseIconButton, {
36
- onClick: clearValue,
37
- className: resolvedClassName
41
+ className: resolvedClassName,
42
+ tabIndex: -1
38
43
  }, other, {
44
+ onClick: handleClick,
39
45
  ref
40
46
  }), state);
41
47
  return /*#__PURE__*/_jsx(React.Fragment, {
@@ -47,121 +53,24 @@ process.env.NODE_ENV !== "production" ? QuickFilterClear.propTypes = {
47
53
  // | These PropTypes are generated from the TypeScript type definitions |
48
54
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
49
55
  // ----------------------------------------------------------------------
50
- /**
51
- * A ref for imperative actions.
52
- * It currently only supports `focusVisible()` action.
53
- */
54
- action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
55
- current: PropTypes.shape({
56
- focusVisible: PropTypes.func.isRequired
57
- })
58
- })]),
59
- /**
60
- * If `true`, the ripples are centered.
61
- * They won't start at the cursor interaction position.
62
- * @default false
63
- */
64
- centerRipple: PropTypes.bool,
65
56
  /**
66
57
  * Override or extend the styles applied to the component.
67
58
  */
68
59
  className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
69
- /**
70
- * The color of the component.
71
- * It supports both default and custom theme colors, which can be added as shown in the
72
- * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
73
- */
74
60
  color: PropTypes.oneOf(['default', 'inherit', 'primary']),
75
- component: PropTypes.elementType,
76
- /**
77
- * If `true`, the component is disabled.
78
- */
79
61
  disabled: PropTypes.bool,
80
- /**
81
- * If `true`, the keyboard focus ripple is disabled.
82
- * @default false
83
- */
84
- disableFocusRipple: PropTypes.bool,
85
- /**
86
- * If `true`, the ripple effect is disabled.
87
- *
88
- * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
89
- * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
90
- * @default false
91
- */
92
- disableRipple: PropTypes.bool,
93
- /**
94
- * If `true`, the touch ripple effect is disabled.
95
- * @default false
96
- */
97
- disableTouchRipple: PropTypes.bool,
98
- /**
99
- * If given, uses a negative margin to counteract the padding on one
100
- * side (this is often helpful for aligning the left or right
101
- * side of the icon with content above or below, without ruining the border
102
- * size and shape).
103
- */
104
62
  edge: PropTypes.oneOf(['end', 'start', false]),
105
- /**
106
- * If `true`, the base button will have a keyboard focus ripple.
107
- * @default false
108
- */
109
- focusRipple: PropTypes.bool,
110
- /**
111
- * This prop can help identify which element has keyboard focus.
112
- * The class name will be applied when the element gains the focus through keyboard interaction.
113
- * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
114
- * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
115
- * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
116
- * if needed.
117
- */
118
- focusVisibleClassName: PropTypes.string,
63
+ id: PropTypes.string,
119
64
  label: PropTypes.string,
120
- /**
121
- * The component used to render a link when the `href` prop is provided.
122
- * @default 'a'
123
- */
124
- LinkComponent: PropTypes.elementType,
125
- /**
126
- * If `true`, the loading indicator is visible and the button is disabled.
127
- * If `true | false`, the loading wrapper is always rendered before the children to prevent [Google Translation Crash](https://github.com/mui/material-ui/issues/27853).
128
- * @default null
129
- */
130
- loading: PropTypes.bool,
131
- /**
132
- * Element placed before the children if the button is in loading state.
133
- * The node should contain an element with `role="progressbar"` with an accessible name.
134
- * By default, it renders a `CircularProgress` that is labeled by the button itself.
135
- * @default <CircularProgress color="inherit" size={16} />
136
- */
137
- loadingIndicator: PropTypes.node,
138
- /**
139
- * Callback fired when the component is focused with a keyboard.
140
- * We trigger a `onFocus` callback too.
141
- */
142
- onFocusVisible: PropTypes.func,
143
65
  /**
144
66
  * A function to customize rendering of the component.
145
67
  */
146
68
  render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
147
- /**
148
- * The size of the component.
149
- * `small` is equivalent to the dense button styling.
150
- */
69
+ role: PropTypes.string,
151
70
  size: PropTypes.oneOf(['large', 'medium', 'small']),
152
71
  style: PropTypes.object,
153
- /**
154
- * The system prop that allows defining system overrides as well as additional CSS styles.
155
- */
156
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
157
72
  tabIndex: PropTypes.number,
158
- /**
159
- * Props applied to the `TouchRipple` element.
160
- */
161
- TouchRippleProps: PropTypes.object,
162
- /**
163
- * A ref that points to the `TouchRipple` element.
164
- */
73
+ title: PropTypes.string,
165
74
  touchRippleRef: PropTypes.any
166
75
  } : void 0;
167
76
  export { QuickFilterClear };
@@ -1,13 +1,16 @@
1
1
  import * as React from 'react';
2
2
  export interface QuickFilterState {
3
3
  value: string;
4
+ expanded: boolean;
4
5
  }
5
6
  export interface QuickFilterContextValue {
6
7
  state: QuickFilterState;
8
+ controlId: string | undefined;
7
9
  controlRef: React.RefObject<HTMLInputElement | null>;
8
10
  triggerRef: React.RefObject<HTMLButtonElement | null>;
9
- onValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
10
11
  clearValue: () => void;
12
+ onValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
13
+ onExpandedChange: (expanded: boolean) => void;
11
14
  }
12
15
  export declare const QuickFilterContext: React.Context<QuickFilterContextValue | undefined>;
13
16
  export declare function useQuickFilterContext(): QuickFilterContextValue;