@mui/x-data-grid 8.0.0-alpha.12 → 8.0.0-alpha.14

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 (504) hide show
  1. package/CHANGELOG.md +430 -0
  2. package/DataGrid/DataGrid.js +31 -22
  3. package/DataGrid/useDataGridProps.js +1 -1
  4. package/colDef/gridActionsColDef.js +1 -1
  5. package/colDef/gridBooleanColDef.js +1 -1
  6. package/colDef/gridCheckboxSelectionColDef.js +2 -4
  7. package/components/GridFooter.js +1 -1
  8. package/components/GridHeader.js +1 -1
  9. package/components/GridPagination.js +5 -6
  10. package/components/GridRowCount.js +4 -5
  11. package/components/GridScrollArea.js +4 -3
  12. package/components/GridSelectedRowCount.js +5 -6
  13. package/components/GridShadowScrollArea.d.ts +8 -0
  14. package/components/GridShadowScrollArea.js +82 -0
  15. package/components/cell/GridEditInputCell.js +2 -3
  16. package/components/columnSelection/GridHeaderCheckbox.js +51 -17
  17. package/components/columnsManagement/GridColumnsManagement.js +60 -61
  18. package/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  19. package/components/columnsPanel/ColumnsPanelTrigger.js +209 -0
  20. package/components/columnsPanel/index.d.ts +1 -0
  21. package/components/columnsPanel/index.js +16 -0
  22. package/components/containers/GridOverlay.js +6 -8
  23. package/components/containers/GridRoot.js +4 -2
  24. package/components/containers/GridRootStyles.d.ts +1 -2
  25. package/components/containers/GridRootStyles.js +77 -100
  26. package/components/containers/GridToolbarContainer.js +5 -6
  27. package/components/export/ExportCsv.d.ts +30 -0
  28. package/components/export/ExportCsv.js +196 -0
  29. package/components/export/ExportPrint.d.ts +30 -0
  30. package/components/export/ExportPrint.js +196 -0
  31. package/components/export/index.d.ts +2 -0
  32. package/components/export/index.js +27 -0
  33. package/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  34. package/components/filterPanel/FilterPanelTrigger.js +212 -0
  35. package/components/filterPanel/index.d.ts +1 -0
  36. package/components/filterPanel/index.js +16 -0
  37. package/components/index.d.ts +6 -1
  38. package/components/index.js +60 -0
  39. package/components/menu/GridMenu.js +7 -6
  40. package/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -3
  41. package/components/panel/GridPanel.js +18 -20
  42. package/components/panel/GridPanelContent.js +6 -8
  43. package/components/panel/GridPanelFooter.js +5 -6
  44. package/components/panel/GridPanelHeader.js +4 -5
  45. package/components/panel/filterPanel/GridFilterForm.js +13 -20
  46. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  47. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  48. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  49. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +20 -45
  50. package/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  51. package/components/quickFilter/QuickFilter.d.ts +41 -0
  52. package/components/quickFilter/QuickFilter.js +110 -0
  53. package/components/quickFilter/QuickFilterClear.d.ts +28 -0
  54. package/components/quickFilter/QuickFilterClear.js +161 -0
  55. package/components/quickFilter/QuickFilterContext.d.ts +13 -0
  56. package/components/quickFilter/QuickFilterContext.js +17 -0
  57. package/components/quickFilter/QuickFilterControl.d.ts +28 -0
  58. package/components/quickFilter/QuickFilterControl.js +104 -0
  59. package/components/quickFilter/index.d.ts +3 -0
  60. package/components/quickFilter/index.js +38 -0
  61. package/components/toolbar/GridToolbar.d.ts +1 -1
  62. package/components/toolbar/GridToolbar.js +2 -2
  63. package/components/toolbar/GridToolbarFilterButton.js +5 -6
  64. package/components/toolbar/GridToolbarQuickFilter.js +57 -97
  65. package/components/toolbarV8/GridToolbar.d.ts +11 -0
  66. package/components/toolbarV8/GridToolbar.js +142 -0
  67. package/components/toolbarV8/Toolbar.d.ts +32 -0
  68. package/components/toolbarV8/Toolbar.js +132 -0
  69. package/components/toolbarV8/ToolbarButton.d.ts +23 -0
  70. package/components/toolbarV8/ToolbarButton.js +179 -0
  71. package/components/toolbarV8/ToolbarContext.d.ts +9 -0
  72. package/components/toolbarV8/ToolbarContext.js +17 -0
  73. package/components/toolbarV8/index.d.ts +2 -0
  74. package/components/toolbarV8/index.js +27 -0
  75. package/components/virtualization/GridVirtualScrollbar.js +15 -6
  76. package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  77. package/constants/cssVariables.d.ts +294 -0
  78. package/constants/cssVariables.js +168 -0
  79. package/constants/dataGridPropsDefaultValues.js +1 -0
  80. package/constants/defaultGridSlotsComponents.js +2 -1
  81. package/constants/gridClasses.d.ts +17 -0
  82. package/constants/gridClasses.js +1 -1
  83. package/context/GridContextProvider.js +4 -1
  84. package/esm/DataGrid/DataGrid.js +31 -22
  85. package/esm/DataGrid/useDataGridProps.js +1 -1
  86. package/esm/colDef/gridActionsColDef.js +1 -1
  87. package/esm/colDef/gridBooleanColDef.js +1 -1
  88. package/esm/colDef/gridCheckboxSelectionColDef.js +2 -4
  89. package/esm/components/GridFooter.js +2 -2
  90. package/esm/components/GridHeader.js +1 -1
  91. package/esm/components/GridPagination.js +5 -6
  92. package/esm/components/GridRowCount.js +4 -5
  93. package/esm/components/GridScrollArea.js +2 -1
  94. package/esm/components/GridSelectedRowCount.js +5 -6
  95. package/esm/components/GridShadowScrollArea.d.ts +8 -0
  96. package/esm/components/GridShadowScrollArea.js +74 -0
  97. package/esm/components/cell/GridEditInputCell.js +2 -3
  98. package/esm/components/columnSelection/GridHeaderCheckbox.js +51 -17
  99. package/esm/components/columnsManagement/GridColumnsManagement.js +61 -62
  100. package/esm/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  101. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  102. package/esm/components/columnsPanel/index.d.ts +1 -0
  103. package/esm/components/columnsPanel/index.js +1 -0
  104. package/esm/components/containers/GridOverlay.js +6 -8
  105. package/esm/components/containers/GridRoot.js +4 -2
  106. package/esm/components/containers/GridRootStyles.d.ts +1 -2
  107. package/esm/components/containers/GridRootStyles.js +78 -101
  108. package/esm/components/containers/GridToolbarContainer.js +5 -6
  109. package/esm/components/export/ExportCsv.d.ts +30 -0
  110. package/esm/components/export/ExportCsv.js +189 -0
  111. package/esm/components/export/ExportPrint.d.ts +30 -0
  112. package/esm/components/export/ExportPrint.js +189 -0
  113. package/esm/components/export/index.d.ts +2 -0
  114. package/esm/components/export/index.js +2 -0
  115. package/esm/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  116. package/esm/components/filterPanel/FilterPanelTrigger.js +205 -0
  117. package/esm/components/filterPanel/index.d.ts +1 -0
  118. package/esm/components/filterPanel/index.js +1 -0
  119. package/esm/components/index.d.ts +6 -1
  120. package/esm/components/index.js +6 -1
  121. package/esm/components/menu/GridMenu.js +7 -6
  122. package/esm/components/menu/columnMenu/GridColumnHeaderMenu.js +2 -1
  123. package/esm/components/panel/GridPanel.js +18 -20
  124. package/esm/components/panel/GridPanelContent.js +6 -8
  125. package/esm/components/panel/GridPanelFooter.js +5 -6
  126. package/esm/components/panel/GridPanelHeader.js +4 -5
  127. package/esm/components/panel/filterPanel/GridFilterForm.js +13 -20
  128. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  129. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  130. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  131. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.js +19 -44
  132. package/esm/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  133. package/esm/components/quickFilter/QuickFilter.d.ts +41 -0
  134. package/esm/components/quickFilter/QuickFilter.js +103 -0
  135. package/esm/components/quickFilter/QuickFilterClear.d.ts +28 -0
  136. package/esm/components/quickFilter/QuickFilterClear.js +154 -0
  137. package/esm/components/quickFilter/QuickFilterContext.d.ts +13 -0
  138. package/esm/components/quickFilter/QuickFilterContext.js +9 -0
  139. package/esm/components/quickFilter/QuickFilterControl.d.ts +28 -0
  140. package/esm/components/quickFilter/QuickFilterControl.js +97 -0
  141. package/esm/components/quickFilter/index.d.ts +3 -0
  142. package/esm/components/quickFilter/index.js +3 -0
  143. package/esm/components/toolbar/GridToolbar.d.ts +1 -1
  144. package/esm/components/toolbar/GridToolbar.js +2 -2
  145. package/esm/components/toolbar/GridToolbarFilterButton.js +5 -6
  146. package/esm/components/toolbar/GridToolbarQuickFilter.js +59 -97
  147. package/esm/components/toolbarV8/GridToolbar.d.ts +11 -0
  148. package/esm/components/toolbarV8/GridToolbar.js +135 -0
  149. package/esm/components/toolbarV8/Toolbar.d.ts +32 -0
  150. package/esm/components/toolbarV8/Toolbar.js +125 -0
  151. package/esm/components/toolbarV8/ToolbarButton.d.ts +23 -0
  152. package/esm/components/toolbarV8/ToolbarButton.js +172 -0
  153. package/esm/components/toolbarV8/ToolbarContext.d.ts +9 -0
  154. package/esm/components/toolbarV8/ToolbarContext.js +9 -0
  155. package/esm/components/toolbarV8/index.d.ts +2 -0
  156. package/esm/components/toolbarV8/index.js +2 -0
  157. package/esm/components/virtualization/GridVirtualScrollbar.js +10 -2
  158. package/esm/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  159. package/esm/constants/cssVariables.d.ts +294 -0
  160. package/esm/constants/cssVariables.js +161 -0
  161. package/esm/constants/dataGridPropsDefaultValues.js +1 -0
  162. package/esm/constants/defaultGridSlotsComponents.js +2 -1
  163. package/esm/constants/gridClasses.d.ts +17 -0
  164. package/esm/constants/gridClasses.js +1 -1
  165. package/esm/context/GridContextProvider.js +4 -1
  166. package/esm/hooks/features/clipboard/useGridClipboard.js +3 -2
  167. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  168. package/esm/hooks/features/columnResize/useGridColumnResize.js +2 -1
  169. package/esm/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  170. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  171. package/esm/hooks/features/columns/gridColumnsSelector.js +8 -0
  172. package/esm/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  173. package/esm/hooks/features/columns/gridColumnsUtils.js +6 -3
  174. package/esm/hooks/features/columns/index.d.ts +1 -1
  175. package/esm/hooks/features/columns/index.js +1 -1
  176. package/esm/hooks/features/columns/useGridColumns.js +4 -2
  177. package/esm/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  178. package/esm/hooks/features/dataSource/gridDataSourceError.js +32 -0
  179. package/esm/hooks/features/dataSource/index.d.ts +2 -0
  180. package/esm/hooks/features/dataSource/index.js +2 -0
  181. package/esm/hooks/features/dataSource/models.d.ts +1 -1
  182. package/esm/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  183. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  184. package/esm/hooks/features/dimensions/useGridDimensions.js +11 -10
  185. package/esm/hooks/features/editing/useGridCellEditing.js +2 -1
  186. package/esm/hooks/features/editing/useGridRowEditing.js +2 -1
  187. package/esm/hooks/features/export/utils.js +4 -2
  188. package/esm/hooks/features/focus/useGridFocus.js +3 -2
  189. package/esm/hooks/features/index.d.ts +1 -1
  190. package/esm/hooks/features/index.js +1 -1
  191. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  192. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  193. package/esm/hooks/features/rowSelection/useGridRowSelection.js +148 -81
  194. package/esm/hooks/features/rowSelection/utils.d.ts +2 -2
  195. package/esm/hooks/features/rowSelection/utils.js +11 -11
  196. package/esm/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  197. package/esm/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  198. package/esm/hooks/features/rows/gridRowsUtils.js +8 -0
  199. package/esm/hooks/features/rows/useGridParamsApi.js +2 -8
  200. package/esm/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  201. package/esm/hooks/features/rows/useGridRows.d.ts +2 -2
  202. package/esm/hooks/features/rows/useGridRows.js +7 -7
  203. package/esm/hooks/features/rows/useGridRowsMeta.js +8 -0
  204. package/esm/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  205. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +5 -11
  206. package/esm/hooks/utils/index.d.ts +2 -1
  207. package/esm/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  208. package/esm/hooks/utils/useGridComponentRenderer.js +36 -0
  209. package/esm/hooks/utils/useGridSelector.js +4 -1
  210. package/esm/hooks/utils/useIsSSR.js +4 -1
  211. package/esm/index.js +1 -1
  212. package/esm/internals/demo/TailwindDemoContainer.d.ts +11 -0
  213. package/esm/internals/demo/TailwindDemoContainer.js +55 -0
  214. package/esm/internals/demo/index.d.ts +1 -0
  215. package/esm/internals/demo/index.js +1 -0
  216. package/esm/internals/index.d.ts +6 -1
  217. package/esm/internals/index.js +5 -1
  218. package/esm/internals/utils/propValidation.js +1 -1
  219. package/esm/locales/bnBD.d.ts +2 -0
  220. package/esm/locales/bnBD.js +167 -0
  221. package/esm/locales/deDE.js +3 -5
  222. package/esm/locales/huHU.js +10 -13
  223. package/esm/locales/index.d.ts +1 -0
  224. package/esm/locales/index.js +1 -0
  225. package/esm/locales/ruRU.js +17 -21
  226. package/esm/material/icons/index.d.ts +3 -3
  227. package/esm/material/icons/index.js +6 -6
  228. package/esm/material/index.d.ts +1 -0
  229. package/esm/material/index.js +167 -52
  230. package/esm/material/variables.d.ts +5 -0
  231. package/esm/material/variables.js +89 -0
  232. package/esm/models/api/gridRowSelectionApi.d.ts +4 -2
  233. package/esm/models/api/gridSortApi.d.ts +1 -1
  234. package/esm/models/configuration/gridConfiguration.d.ts +7 -1
  235. package/esm/models/gridBaseSlots.d.ts +61 -7
  236. package/esm/models/gridDataSource.d.ts +9 -4
  237. package/esm/models/gridIconSlotsComponent.d.ts +1 -1
  238. package/esm/models/gridRowSelectionManager.d.ts +9 -0
  239. package/esm/models/gridRowSelectionManager.js +36 -0
  240. package/esm/models/gridRowSelectionModel.d.ts +4 -2
  241. package/esm/models/gridSlotsComponent.d.ts +7 -28
  242. package/esm/models/gridSlotsComponentsProps.d.ts +3 -11
  243. package/esm/models/gridSortModel.d.ts +1 -1
  244. package/esm/models/index.d.ts +2 -1
  245. package/esm/models/index.js +2 -3
  246. package/esm/models/props/DataGridProps.d.ts +22 -17
  247. package/esm/utils/css/context.d.ts +14 -0
  248. package/esm/utils/css/context.js +54 -0
  249. package/esm/utils/index.d.ts +2 -1
  250. package/esm/utils/index.js +1 -1
  251. package/hooks/features/clipboard/useGridClipboard.js +3 -2
  252. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  253. package/hooks/features/columnResize/useGridColumnResize.js +28 -27
  254. package/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  255. package/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  256. package/hooks/features/columns/gridColumnsSelector.js +9 -1
  257. package/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  258. package/hooks/features/columns/gridColumnsUtils.js +6 -3
  259. package/hooks/features/columns/index.d.ts +1 -1
  260. package/hooks/features/columns/index.js +94 -10
  261. package/hooks/features/columns/useGridColumns.js +4 -2
  262. package/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  263. package/hooks/features/dataSource/gridDataSourceError.js +40 -0
  264. package/hooks/features/dataSource/index.d.ts +2 -0
  265. package/hooks/features/dataSource/index.js +25 -0
  266. package/hooks/features/dataSource/models.d.ts +1 -1
  267. package/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  268. package/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  269. package/hooks/features/dimensions/useGridDimensions.js +19 -18
  270. package/hooks/features/editing/useGridCellEditing.js +10 -9
  271. package/hooks/features/editing/useGridRowEditing.js +11 -10
  272. package/hooks/features/export/utils.js +4 -2
  273. package/hooks/features/focus/useGridFocus.js +8 -7
  274. package/hooks/features/index.d.ts +1 -1
  275. package/hooks/features/index.js +11 -28
  276. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  277. package/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  278. package/hooks/features/rowSelection/useGridRowSelection.js +146 -79
  279. package/hooks/features/rowSelection/utils.d.ts +2 -2
  280. package/hooks/features/rowSelection/utils.js +10 -10
  281. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  282. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  283. package/hooks/features/rows/gridRowsUtils.js +10 -1
  284. package/hooks/features/rows/useGridParamsApi.js +2 -8
  285. package/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  286. package/hooks/features/rows/useGridRows.d.ts +2 -2
  287. package/hooks/features/rows/useGridRows.js +7 -7
  288. package/hooks/features/rows/useGridRowsMeta.js +8 -0
  289. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  290. package/hooks/features/virtualization/useGridVirtualScroller.js +21 -27
  291. package/hooks/utils/index.d.ts +2 -1
  292. package/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  293. package/hooks/utils/useGridComponentRenderer.js +44 -0
  294. package/hooks/utils/useGridSelector.js +6 -2
  295. package/hooks/utils/useIsSSR.js +6 -2
  296. package/index.js +1 -1
  297. package/internals/demo/TailwindDemoContainer.d.ts +11 -0
  298. package/internals/demo/TailwindDemoContainer.js +63 -0
  299. package/internals/demo/index.d.ts +1 -0
  300. package/internals/demo/index.js +12 -0
  301. package/internals/index.d.ts +6 -1
  302. package/internals/index.js +43 -0
  303. package/internals/utils/propValidation.js +1 -1
  304. package/locales/bnBD.d.ts +2 -0
  305. package/locales/bnBD.js +173 -0
  306. package/locales/deDE.js +3 -5
  307. package/locales/huHU.js +10 -13
  308. package/locales/index.d.ts +1 -0
  309. package/locales/index.js +11 -0
  310. package/locales/ruRU.js +17 -21
  311. package/material/icons/index.d.ts +3 -3
  312. package/material/icons/index.js +7 -7
  313. package/material/index.d.ts +1 -0
  314. package/material/index.js +172 -51
  315. package/material/variables.d.ts +5 -0
  316. package/material/variables.js +95 -0
  317. package/models/api/gridRowSelectionApi.d.ts +4 -2
  318. package/models/api/gridSortApi.d.ts +1 -1
  319. package/models/configuration/gridConfiguration.d.ts +7 -1
  320. package/models/gridBaseSlots.d.ts +61 -7
  321. package/models/gridDataSource.d.ts +9 -4
  322. package/models/gridIconSlotsComponent.d.ts +1 -1
  323. package/models/gridRowSelectionManager.d.ts +9 -0
  324. package/models/gridRowSelectionManager.js +43 -0
  325. package/models/gridRowSelectionModel.d.ts +4 -2
  326. package/models/gridSlotsComponent.d.ts +7 -28
  327. package/models/gridSlotsComponentsProps.d.ts +3 -11
  328. package/models/gridSortModel.d.ts +1 -1
  329. package/models/index.d.ts +2 -1
  330. package/models/index.js +34 -11
  331. package/models/props/DataGridProps.d.ts +22 -17
  332. package/modern/DataGrid/DataGrid.js +31 -22
  333. package/modern/DataGrid/useDataGridProps.js +1 -1
  334. package/modern/colDef/gridActionsColDef.js +1 -1
  335. package/modern/colDef/gridBooleanColDef.js +1 -1
  336. package/modern/colDef/gridCheckboxSelectionColDef.js +2 -4
  337. package/modern/components/GridFooter.js +2 -2
  338. package/modern/components/GridHeader.js +1 -1
  339. package/modern/components/GridPagination.js +5 -6
  340. package/modern/components/GridRowCount.js +4 -5
  341. package/modern/components/GridScrollArea.js +2 -1
  342. package/modern/components/GridSelectedRowCount.js +5 -6
  343. package/modern/components/GridShadowScrollArea.d.ts +8 -0
  344. package/modern/components/GridShadowScrollArea.js +74 -0
  345. package/modern/components/cell/GridEditInputCell.js +2 -3
  346. package/modern/components/columnSelection/GridHeaderCheckbox.js +51 -17
  347. package/modern/components/columnsManagement/GridColumnsManagement.js +61 -62
  348. package/modern/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  349. package/modern/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  350. package/modern/components/columnsPanel/index.d.ts +1 -0
  351. package/modern/components/columnsPanel/index.js +1 -0
  352. package/modern/components/containers/GridOverlay.js +6 -8
  353. package/modern/components/containers/GridRoot.js +4 -2
  354. package/modern/components/containers/GridRootStyles.d.ts +1 -2
  355. package/modern/components/containers/GridRootStyles.js +78 -101
  356. package/modern/components/containers/GridToolbarContainer.js +5 -6
  357. package/modern/components/export/ExportCsv.d.ts +30 -0
  358. package/modern/components/export/ExportCsv.js +189 -0
  359. package/modern/components/export/ExportPrint.d.ts +30 -0
  360. package/modern/components/export/ExportPrint.js +189 -0
  361. package/modern/components/export/index.d.ts +2 -0
  362. package/modern/components/export/index.js +2 -0
  363. package/modern/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  364. package/modern/components/filterPanel/FilterPanelTrigger.js +205 -0
  365. package/modern/components/filterPanel/index.d.ts +1 -0
  366. package/modern/components/filterPanel/index.js +1 -0
  367. package/modern/components/index.d.ts +6 -1
  368. package/modern/components/index.js +6 -1
  369. package/modern/components/menu/GridMenu.js +7 -6
  370. package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +2 -1
  371. package/modern/components/panel/GridPanel.js +18 -20
  372. package/modern/components/panel/GridPanelContent.js +6 -8
  373. package/modern/components/panel/GridPanelFooter.js +5 -6
  374. package/modern/components/panel/GridPanelHeader.js +4 -5
  375. package/modern/components/panel/filterPanel/GridFilterForm.js +13 -20
  376. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  377. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  378. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  379. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +19 -44
  380. package/modern/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  381. package/modern/components/quickFilter/QuickFilter.d.ts +41 -0
  382. package/modern/components/quickFilter/QuickFilter.js +103 -0
  383. package/modern/components/quickFilter/QuickFilterClear.d.ts +28 -0
  384. package/modern/components/quickFilter/QuickFilterClear.js +154 -0
  385. package/modern/components/quickFilter/QuickFilterContext.d.ts +13 -0
  386. package/modern/components/quickFilter/QuickFilterContext.js +9 -0
  387. package/modern/components/quickFilter/QuickFilterControl.d.ts +28 -0
  388. package/modern/components/quickFilter/QuickFilterControl.js +97 -0
  389. package/modern/components/quickFilter/index.d.ts +3 -0
  390. package/modern/components/quickFilter/index.js +3 -0
  391. package/modern/components/toolbar/GridToolbar.d.ts +1 -1
  392. package/modern/components/toolbar/GridToolbar.js +2 -2
  393. package/modern/components/toolbar/GridToolbarFilterButton.js +5 -6
  394. package/modern/components/toolbar/GridToolbarQuickFilter.js +59 -97
  395. package/modern/components/toolbarV8/GridToolbar.d.ts +11 -0
  396. package/modern/components/toolbarV8/GridToolbar.js +135 -0
  397. package/modern/components/toolbarV8/Toolbar.d.ts +32 -0
  398. package/modern/components/toolbarV8/Toolbar.js +125 -0
  399. package/modern/components/toolbarV8/ToolbarButton.d.ts +23 -0
  400. package/modern/components/toolbarV8/ToolbarButton.js +172 -0
  401. package/modern/components/toolbarV8/ToolbarContext.d.ts +9 -0
  402. package/modern/components/toolbarV8/ToolbarContext.js +9 -0
  403. package/modern/components/toolbarV8/index.d.ts +2 -0
  404. package/modern/components/toolbarV8/index.js +2 -0
  405. package/modern/components/virtualization/GridVirtualScrollbar.js +10 -2
  406. package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  407. package/modern/constants/cssVariables.d.ts +294 -0
  408. package/modern/constants/cssVariables.js +161 -0
  409. package/modern/constants/dataGridPropsDefaultValues.js +1 -0
  410. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  411. package/modern/constants/gridClasses.d.ts +17 -0
  412. package/modern/constants/gridClasses.js +1 -1
  413. package/modern/context/GridContextProvider.js +4 -1
  414. package/modern/hooks/features/clipboard/useGridClipboard.js +3 -2
  415. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  416. package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
  417. package/modern/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  418. package/modern/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  419. package/modern/hooks/features/columns/gridColumnsSelector.js +8 -0
  420. package/modern/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  421. package/modern/hooks/features/columns/gridColumnsUtils.js +6 -3
  422. package/modern/hooks/features/columns/index.d.ts +1 -1
  423. package/modern/hooks/features/columns/index.js +1 -1
  424. package/modern/hooks/features/columns/useGridColumns.js +4 -2
  425. package/modern/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  426. package/modern/hooks/features/dataSource/gridDataSourceError.js +32 -0
  427. package/modern/hooks/features/dataSource/index.d.ts +2 -0
  428. package/modern/hooks/features/dataSource/index.js +2 -0
  429. package/modern/hooks/features/dataSource/models.d.ts +1 -1
  430. package/modern/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  431. package/modern/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  432. package/modern/hooks/features/dimensions/useGridDimensions.js +11 -10
  433. package/modern/hooks/features/editing/useGridCellEditing.js +2 -1
  434. package/modern/hooks/features/editing/useGridRowEditing.js +2 -1
  435. package/modern/hooks/features/export/utils.js +4 -2
  436. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  437. package/modern/hooks/features/index.d.ts +1 -1
  438. package/modern/hooks/features/index.js +1 -1
  439. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  440. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  441. package/modern/hooks/features/rowSelection/useGridRowSelection.js +148 -81
  442. package/modern/hooks/features/rowSelection/utils.d.ts +2 -2
  443. package/modern/hooks/features/rowSelection/utils.js +11 -11
  444. package/modern/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  445. package/modern/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  446. package/modern/hooks/features/rows/gridRowsUtils.js +8 -0
  447. package/modern/hooks/features/rows/useGridParamsApi.js +2 -8
  448. package/modern/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  449. package/modern/hooks/features/rows/useGridRows.d.ts +2 -2
  450. package/modern/hooks/features/rows/useGridRows.js +7 -7
  451. package/modern/hooks/features/rows/useGridRowsMeta.js +8 -0
  452. package/modern/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  453. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +5 -11
  454. package/modern/hooks/utils/index.d.ts +2 -1
  455. package/modern/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  456. package/modern/hooks/utils/useGridComponentRenderer.js +36 -0
  457. package/modern/hooks/utils/useGridSelector.js +4 -1
  458. package/modern/hooks/utils/useIsSSR.js +4 -1
  459. package/modern/index.js +1 -1
  460. package/modern/internals/demo/TailwindDemoContainer.d.ts +11 -0
  461. package/modern/internals/demo/TailwindDemoContainer.js +55 -0
  462. package/modern/internals/demo/index.d.ts +1 -0
  463. package/modern/internals/demo/index.js +1 -0
  464. package/modern/internals/index.d.ts +6 -1
  465. package/modern/internals/index.js +5 -1
  466. package/modern/internals/utils/propValidation.js +1 -1
  467. package/modern/locales/bnBD.d.ts +2 -0
  468. package/modern/locales/bnBD.js +167 -0
  469. package/modern/locales/deDE.js +3 -5
  470. package/modern/locales/huHU.js +10 -13
  471. package/modern/locales/index.d.ts +1 -0
  472. package/modern/locales/index.js +1 -0
  473. package/modern/locales/ruRU.js +17 -21
  474. package/modern/material/icons/index.d.ts +3 -3
  475. package/modern/material/icons/index.js +6 -6
  476. package/modern/material/index.d.ts +1 -0
  477. package/modern/material/index.js +167 -52
  478. package/modern/material/variables.d.ts +5 -0
  479. package/modern/material/variables.js +89 -0
  480. package/modern/models/api/gridRowSelectionApi.d.ts +4 -2
  481. package/modern/models/api/gridSortApi.d.ts +1 -1
  482. package/modern/models/configuration/gridConfiguration.d.ts +7 -1
  483. package/modern/models/gridBaseSlots.d.ts +61 -7
  484. package/modern/models/gridDataSource.d.ts +9 -4
  485. package/modern/models/gridIconSlotsComponent.d.ts +1 -1
  486. package/modern/models/gridRowSelectionManager.d.ts +9 -0
  487. package/modern/models/gridRowSelectionManager.js +36 -0
  488. package/modern/models/gridRowSelectionModel.d.ts +4 -2
  489. package/modern/models/gridSlotsComponent.d.ts +7 -28
  490. package/modern/models/gridSlotsComponentsProps.d.ts +3 -11
  491. package/modern/models/gridSortModel.d.ts +1 -1
  492. package/modern/models/index.d.ts +2 -1
  493. package/modern/models/index.js +2 -3
  494. package/modern/models/props/DataGridProps.d.ts +22 -17
  495. package/modern/utils/css/context.d.ts +14 -0
  496. package/modern/utils/css/context.js +54 -0
  497. package/modern/utils/index.d.ts +2 -1
  498. package/modern/utils/index.js +1 -1
  499. package/package.json +2 -2
  500. package/tsconfig.build.tsbuildinfo +1 -1
  501. package/utils/css/context.d.ts +14 -0
  502. package/utils/css/context.js +64 -0
  503. package/utils/index.d.ts +2 -1
  504. package/utils/index.js +8 -1
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.GridToolbar = GridToolbar;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _Menu = _interopRequireDefault(require("@mui/material/Menu"));
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
+ var _system = require("@mui/system");
15
+ var _Toolbar = require("./Toolbar");
16
+ var _ToolbarButton = require("./ToolbarButton");
17
+ var _filterPanel = require("../filterPanel");
18
+ var _columnsPanel = require("../columnsPanel");
19
+ var _export = require("../export");
20
+ var _GridToolbarQuickFilter = require("../toolbar/GridToolbarQuickFilter");
21
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
+ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
23
+ var _assert = require("../../utils/assert");
24
+ var _cssVariables = require("../../constants/cssVariables");
25
+ var _jsxRuntime = require("react/jsx-runtime");
26
+ const Divider = (0, _system.styled)(_assert.NotRendered, {
27
+ name: 'MuiDataGrid',
28
+ slot: 'ToolbarDivider'
29
+ })({
30
+ height: '50%',
31
+ margin: _cssVariables.vars.spacing(0, 0.5)
32
+ });
33
+ function GridToolbar(props) {
34
+ const {
35
+ showQuickFilter = true,
36
+ quickFilterProps,
37
+ csvOptions,
38
+ printOptions,
39
+ additionalExportMenuItems
40
+ } = props;
41
+ const apiRef = (0, _useGridApiContext.useGridApiContext)();
42
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
43
+ const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
44
+ const exportMenuTriggerRef = React.useRef(null);
45
+ const exportMenuId = (0, _useId.default)();
46
+ const exportMenuTriggerId = (0, _useId.default)();
47
+ const showExportMenu = !csvOptions?.disableToolbarButton || !printOptions?.disableToolbarButton || additionalExportMenuItems;
48
+ const closeExportMenu = () => setExportMenuOpen(false);
49
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Toolbar.Toolbar, {
50
+ children: [!rootProps.disableColumnSelector && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
51
+ title: apiRef.current.getLocaleText('toolbarColumns'),
52
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_columnsPanel.ColumnsPanelTrigger, {
53
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {}),
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnSelectorIcon, {
55
+ fontSize: "small"
56
+ })
57
+ })
58
+ }), !rootProps.disableColumnFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
59
+ title: apiRef.current.getLocaleText('toolbarFilters'),
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filterPanel.FilterPanelTrigger, {
61
+ render: (triggerProps, state) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, (0, _extends2.default)({}, triggerProps, {
62
+ color: "default",
63
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseBadge, {
64
+ badgeContent: state.filterCount,
65
+ color: "primary",
66
+ variant: "dot",
67
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.openFilterButtonIcon, {
68
+ fontSize: "small"
69
+ })
70
+ })
71
+ }))
72
+ })
73
+ }), showExportMenu && (!rootProps.disableColumnFilter || !rootProps.disableColumnSelector) && /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {
74
+ as: rootProps.slots.baseDivider,
75
+ orientation: "vertical"
76
+ }), showExportMenu && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
77
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
78
+ title: apiRef.current.getLocaleText('toolbarExport'),
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {
80
+ ref: exportMenuTriggerRef,
81
+ id: exportMenuTriggerId,
82
+ "aria-controls": exportMenuId,
83
+ "aria-haspopup": "true",
84
+ "aria-expanded": exportMenuOpen ? 'true' : undefined,
85
+ onClick: () => setExportMenuOpen(true),
86
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.exportIcon, {
87
+ fontSize: "small"
88
+ })
89
+ })
90
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Menu.default, {
91
+ id: exportMenuId,
92
+ anchorEl: exportMenuTriggerRef.current,
93
+ open: exportMenuOpen,
94
+ onClose: closeExportMenu,
95
+ MenuListProps: {
96
+ 'aria-labelledby': exportMenuTriggerId
97
+ },
98
+ children: [!printOptions?.disableToolbarButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_export.ExportPrint, {
99
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({}, rootProps.slotProps?.baseMenuItem)),
100
+ options: printOptions,
101
+ onClick: closeExportMenu,
102
+ children: apiRef.current.getLocaleText('toolbarExportPrint')
103
+ }), !csvOptions?.disableToolbarButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_export.ExportCsv, {
104
+ render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({}, rootProps.slotProps?.baseMenuItem)),
105
+ options: csvOptions,
106
+ onClick: closeExportMenu,
107
+ children: apiRef.current.getLocaleText('toolbarExportCSV')
108
+ }), additionalExportMenuItems?.(closeExportMenu)]
109
+ })]
110
+ }), showQuickFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarQuickFilter.GridToolbarQuickFilter, (0, _extends2.default)({}, quickFilterProps))]
111
+ });
112
+ }
113
+ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
114
+ // ----------------------------- Warning --------------------------------
115
+ // | These PropTypes are generated from the TypeScript type definitions |
116
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
117
+ // ----------------------------------------------------------------------
118
+ additionalExportMenuItems: _propTypes.default.func,
119
+ csvOptions: _propTypes.default.object,
120
+ printOptions: _propTypes.default.object,
121
+ /**
122
+ * Props passed to the quick filter component.
123
+ */
124
+ quickFilterProps: _propTypes.default.shape({
125
+ className: _propTypes.default.string,
126
+ debounceMs: _propTypes.default.number,
127
+ quickFilterFormatter: _propTypes.default.func,
128
+ quickFilterParser: _propTypes.default.func,
129
+ slotProps: _propTypes.default.object
130
+ }),
131
+ /**
132
+ * Show the quick filter component.
133
+ * @default true
134
+ */
135
+ showQuickFilter: _propTypes.default.bool,
136
+ /**
137
+ * The props used for each slot inside.
138
+ * @default {}
139
+ */
140
+ slotProps: _propTypes.default.object,
141
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
142
+ } : void 0;
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { DataGridProcessedProps } from '../../models/props/DataGridProps';
4
+ export type ToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
5
+ /**
6
+ * A function to customize rendering of the component.
7
+ */
8
+ render?: RenderProp<React.ComponentProps<typeof ToolbarRoot>>;
9
+ };
10
+ type OwnerState = DataGridProcessedProps;
11
+ declare const ToolbarRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
12
+ ownerState: OwnerState;
13
+ }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
14
+ /**
15
+ * The top level Toolbar component that provides context to child components.
16
+ * It renders a styled `<div />` element.
17
+ *
18
+ * Demos:
19
+ *
20
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
21
+ *
22
+ * API:
23
+ *
24
+ * - [Toolbar API](https://mui.com/x/api/data-grid/toolbar/)
25
+ */
26
+ declare const Toolbar: React.ForwardRefExoticComponent<ToolbarProps> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
27
+ /**
28
+ * A function to customize rendering of the component.
29
+ */
30
+ render?: RenderProp<React.ComponentProps<typeof ToolbarRoot>>;
31
+ } & React.RefAttributes<HTMLDivElement>>;
32
+ export { Toolbar };
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Toolbar = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _styles = require("@mui/material/styles");
14
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _clsx = _interopRequireDefault(require("clsx"));
16
+ var _forwardRef = require("@mui/x-internals/forwardRef");
17
+ var _cssVariables = require("../../constants/cssVariables");
18
+ var _gridClasses = require("../../constants/gridClasses");
19
+ var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
20
+ var _ToolbarContext = require("./ToolbarContext");
21
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ const _excluded = ["render", "className"];
24
+ const useUtilityClasses = ownerState => {
25
+ const {
26
+ classes
27
+ } = ownerState;
28
+ const slots = {
29
+ root: ['toolbar']
30
+ };
31
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
32
+ };
33
+ const ToolbarRoot = (0, _styles.styled)('div', {
34
+ name: 'MuiDataGrid',
35
+ slot: 'Toolbar'
36
+ })({
37
+ flex: 0,
38
+ display: 'flex',
39
+ alignItems: 'center',
40
+ gap: _cssVariables.vars.spacing(0.25),
41
+ padding: _cssVariables.vars.spacing(0.75),
42
+ borderBottom: `1px solid ${_cssVariables.vars.colors.border.base}`
43
+ });
44
+
45
+ /**
46
+ * The top level Toolbar component that provides context to child components.
47
+ * It renders a styled `<div />` element.
48
+ *
49
+ * Demos:
50
+ *
51
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
52
+ *
53
+ * API:
54
+ *
55
+ * - [Toolbar API](https://mui.com/x/api/data-grid/toolbar/)
56
+ */
57
+ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(props, ref) {
58
+ const {
59
+ render,
60
+ className
61
+ } = props,
62
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
63
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
64
+ const classes = useUtilityClasses(rootProps);
65
+ const [focusableItemId, setFocusableItemId] = React.useState(null);
66
+ const [items, setItems] = React.useState([]);
67
+ const registerItem = React.useCallback(item => {
68
+ setItems(prevItems => [...prevItems, item]);
69
+ }, []);
70
+ const unregisterItem = React.useCallback(item => {
71
+ setItems(prevItems => prevItems.filter(i => i !== item));
72
+ if (focusableItemId === item) {
73
+ setFocusableItemId(null);
74
+ }
75
+ }, [focusableItemId]);
76
+ const onItemKeyDown = React.useCallback(event => {
77
+ if (!focusableItemId) {
78
+ return;
79
+ }
80
+ if (event.key === 'ArrowRight') {
81
+ event.preventDefault();
82
+ const nextIndex = items.indexOf(focusableItemId) + 1;
83
+ setFocusableItemId(items[nextIndex < items.length ? nextIndex : 0]);
84
+ }
85
+ if (event.key === 'ArrowLeft') {
86
+ event.preventDefault();
87
+ const prevIndex = items.indexOf(focusableItemId) - 1;
88
+ setFocusableItemId(items[prevIndex < 0 ? items.length - 1 : prevIndex]);
89
+ }
90
+ if (event.key === 'Home') {
91
+ event.preventDefault();
92
+ setFocusableItemId(items[0]);
93
+ }
94
+ if (event.key === 'End') {
95
+ event.preventDefault();
96
+ setFocusableItemId(items[items.length - 1]);
97
+ }
98
+ }, [items, focusableItemId]);
99
+ const contextValue = React.useMemo(() => ({
100
+ focusableItemId,
101
+ registerItem,
102
+ unregisterItem,
103
+ onItemKeyDown
104
+ }), [registerItem, unregisterItem, focusableItemId, onItemKeyDown]);
105
+ const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(ToolbarRoot, render, (0, _extends2.default)({
106
+ role: 'toolbar',
107
+ 'aria-orientation': 'horizontal',
108
+ className: (0, _clsx.default)(classes.root, className),
109
+ ownerState: rootProps
110
+ }, other, {
111
+ ref
112
+ }));
113
+ React.useEffect(() => {
114
+ if (items.length > 0) {
115
+ setFocusableItemId(items[0]);
116
+ }
117
+ }, [items]);
118
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarContext.ToolbarContext.Provider, {
119
+ value: contextValue,
120
+ children: element
121
+ });
122
+ });
123
+ process.env.NODE_ENV !== "production" ? Toolbar.propTypes = {
124
+ // ----------------------------- Warning --------------------------------
125
+ // | These PropTypes are generated from the TypeScript type definitions |
126
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
127
+ // ----------------------------------------------------------------------
128
+ /**
129
+ * A function to customize rendering of the component.
130
+ */
131
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func])
132
+ } : void 0;
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { GridSlotProps } from '../../models';
4
+ export type ToolbarButtonProps = GridSlotProps['baseIconButton'] & {
5
+ /**
6
+ * A function to customize rendering of the component.
7
+ */
8
+ render?: RenderProp<GridSlotProps['baseIconButton']>;
9
+ };
10
+ /**
11
+ * A button for performing actions from the toolbar.
12
+ * It renders the `baseIconButton` slot.
13
+ *
14
+ * Demos:
15
+ *
16
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
17
+ *
18
+ * API:
19
+ *
20
+ * - [ToolbarButton API](https://mui.com/x/api/data-grid/toolbar-button/)
21
+ */
22
+ declare const ToolbarButton: React.ForwardRefExoticComponent<ToolbarButtonProps> | React.ForwardRefExoticComponent<Omit<ToolbarButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
23
+ export { ToolbarButton };
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ToolbarButton = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _utils = require("@mui/utils");
14
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
+ var _forwardRef = require("@mui/x-internals/forwardRef");
16
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
+ var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
18
+ var _ToolbarContext = require("./ToolbarContext");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ const _excluded = ["render"];
21
+ /**
22
+ * A button for performing actions from the toolbar.
23
+ * It renders the `baseIconButton` slot.
24
+ *
25
+ * Demos:
26
+ *
27
+ * - [Toolbar](https://mui.com/x/react-data-grid/components/toolbar/)
28
+ *
29
+ * API:
30
+ *
31
+ * - [ToolbarButton API](https://mui.com/x/api/data-grid/toolbar-button/)
32
+ */
33
+ const ToolbarButton = exports.ToolbarButton = (0, _forwardRef.forwardRef)(function ToolbarButton(props, ref) {
34
+ const {
35
+ render
36
+ } = props,
37
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
38
+ const id = (0, _useId.default)();
39
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
40
+ const buttonRef = React.useRef(null);
41
+ const handleRef = (0, _utils.unstable_useForkRef)(buttonRef, ref);
42
+ const {
43
+ focusableItemId,
44
+ registerItem,
45
+ unregisterItem,
46
+ onItemKeyDown
47
+ } = (0, _ToolbarContext.useToolbarContext)();
48
+ React.useEffect(() => {
49
+ registerItem(id);
50
+ return () => unregisterItem(id);
51
+ // eslint-disable-next-line react-hooks/exhaustive-deps
52
+ }, []);
53
+ const isInitialFocus = React.useRef(true);
54
+ React.useEffect(() => {
55
+ // Do not focus the item on initial render
56
+ if (focusableItemId && isInitialFocus.current) {
57
+ isInitialFocus.current = false;
58
+ return;
59
+ }
60
+ if (focusableItemId === id) {
61
+ buttonRef.current?.focus();
62
+ }
63
+ }, [focusableItemId, id]);
64
+ const element = (0, _useGridComponentRenderer.useGridComponentRenderer)(rootProps.slots.baseIconButton, render, (0, _extends2.default)({}, rootProps.slotProps?.baseIconButton, {
65
+ tabIndex: focusableItemId === id ? 0 : -1,
66
+ onKeyDown: onItemKeyDown
67
+ }, other, {
68
+ ref: handleRef
69
+ }));
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
71
+ children: element
72
+ });
73
+ });
74
+ process.env.NODE_ENV !== "production" ? ToolbarButton.propTypes = {
75
+ // ----------------------------- Warning --------------------------------
76
+ // | These PropTypes are generated from the TypeScript type definitions |
77
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
78
+ // ----------------------------------------------------------------------
79
+ /**
80
+ * A ref for imperative actions.
81
+ * It currently only supports `focusVisible()` action.
82
+ */
83
+ action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
84
+ current: _propTypes.default.shape({
85
+ focusVisible: _propTypes.default.func.isRequired
86
+ })
87
+ })]),
88
+ /**
89
+ * If `true`, the ripples are centered.
90
+ * They won't start at the cursor interaction position.
91
+ * @default false
92
+ */
93
+ centerRipple: _propTypes.default.bool,
94
+ className: _propTypes.default.string,
95
+ /**
96
+ * The color of the component.
97
+ * It supports both default and custom theme colors, which can be added as shown in the
98
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
99
+ */
100
+ color: _propTypes.default.oneOf(['default', 'inherit', 'primary']),
101
+ component: _propTypes.default.elementType,
102
+ /**
103
+ * If `true`, the component is disabled.
104
+ */
105
+ disabled: _propTypes.default.bool,
106
+ /**
107
+ * If `true`, the keyboard focus ripple is disabled.
108
+ * @default false
109
+ */
110
+ disableFocusRipple: _propTypes.default.bool,
111
+ /**
112
+ * If `true`, the ripple effect is disabled.
113
+ *
114
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
115
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
116
+ * @default false
117
+ */
118
+ disableRipple: _propTypes.default.bool,
119
+ /**
120
+ * If `true`, the touch ripple effect is disabled.
121
+ * @default false
122
+ */
123
+ disableTouchRipple: _propTypes.default.bool,
124
+ /**
125
+ * If given, uses a negative margin to counteract the padding on one
126
+ * side (this is often helpful for aligning the left or right
127
+ * side of the icon with content above or below, without ruining the border
128
+ * size and shape).
129
+ */
130
+ edge: _propTypes.default.oneOf(['end', 'start', false]),
131
+ /**
132
+ * If `true`, the base button will have a keyboard focus ripple.
133
+ * @default false
134
+ */
135
+ focusRipple: _propTypes.default.bool,
136
+ /**
137
+ * This prop can help identify which element has keyboard focus.
138
+ * The class name will be applied when the element gains the focus through keyboard interaction.
139
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
140
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
141
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
142
+ * if needed.
143
+ */
144
+ focusVisibleClassName: _propTypes.default.string,
145
+ label: _propTypes.default.string,
146
+ /**
147
+ * The component used to render a link when the `href` prop is provided.
148
+ * @default 'a'
149
+ */
150
+ LinkComponent: _propTypes.default.elementType,
151
+ /**
152
+ * Callback fired when the component is focused with a keyboard.
153
+ * We trigger a `onFocus` callback too.
154
+ */
155
+ onFocusVisible: _propTypes.default.func,
156
+ /**
157
+ * A function to customize rendering of the component.
158
+ */
159
+ render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
160
+ /**
161
+ * The size of the component.
162
+ * `small` is equivalent to the dense button styling.
163
+ */
164
+ size: _propTypes.default.oneOf(['large', 'medium', 'small']),
165
+ style: _propTypes.default.object,
166
+ /**
167
+ * The system prop that allows defining system overrides as well as additional CSS styles.
168
+ */
169
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
170
+ tabIndex: _propTypes.default.number,
171
+ /**
172
+ * Props applied to the `TouchRipple` element.
173
+ */
174
+ TouchRippleProps: _propTypes.default.object,
175
+ /**
176
+ * A ref that points to the `TouchRipple` element.
177
+ */
178
+ touchRippleRef: _propTypes.default.any
179
+ } : void 0;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export interface ToolbarContextValue {
3
+ focusableItemId: string | null;
4
+ registerItem: (itemId: string) => void;
5
+ unregisterItem: (itemId: string) => void;
6
+ onItemKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;
7
+ }
8
+ export declare const ToolbarContext: React.Context<ToolbarContextValue | undefined>;
9
+ export declare function useToolbarContext(): ToolbarContextValue;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ToolbarContext = void 0;
8
+ exports.useToolbarContext = useToolbarContext;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ const ToolbarContext = exports.ToolbarContext = /*#__PURE__*/React.createContext(undefined);
11
+ function useToolbarContext() {
12
+ const context = React.useContext(ToolbarContext);
13
+ if (context === undefined) {
14
+ throw new Error('MUI X: Missing context. Toolbar subcomponents must be placed within a <Toolbar /> component.');
15
+ }
16
+ return context;
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./Toolbar.js";
2
+ export * from "./ToolbarButton.js";
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _Toolbar = require("./Toolbar");
7
+ Object.keys(_Toolbar).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Toolbar[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _Toolbar[key];
14
+ }
15
+ });
16
+ });
17
+ var _ToolbarButton = require("./ToolbarButton");
18
+ Object.keys(_ToolbarButton).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _ToolbarButton[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _ToolbarButton[key];
25
+ }
26
+ });
27
+ });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -7,7 +8,9 @@ Object.defineProperty(exports, "__esModule", {
7
8
  exports.GridVirtualScrollbar = void 0;
8
9
  var React = _interopRequireWildcard(require("react"));
9
10
  var _system = require("@mui/system");
10
- var _utils = require("@mui/utils");
11
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
12
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
13
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11
14
  var _forwardRef = require("@mui/x-internals/forwardRef");
12
15
  var _useOnMount = require("../../hooks/utils/useOnMount");
13
16
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
@@ -23,7 +26,7 @@ const useUtilityClasses = (ownerState, position) => {
23
26
  root: ['scrollbar', `scrollbar--${position}`],
24
27
  content: ['scrollbarContent']
25
28
  };
26
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
29
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
27
30
  };
28
31
  const Scrollbar = (0, _system.styled)('div')({
29
32
  position: 'absolute',
@@ -79,7 +82,7 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
79
82
  const contentSize = dimensions.minimumSize[propertyDimension] + (hasScroll ? dimensions.scrollbarSize : 0);
80
83
  const scrollbarSize = props.position === 'vertical' ? dimensions.viewportInnerSize.height : dimensions.viewportOuterSize.width;
81
84
  const scrollbarInnerSize = scrollbarSize * (contentSize / dimensions.viewportOuterSize[propertyDimension]);
82
- const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
85
+ const onScrollerScroll = (0, _useEventCallback.default)(() => {
83
86
  const scrollbar = scrollbarRef.current;
84
87
  const scrollPosition = props.scrollPosition.current;
85
88
  if (!scrollbar) {
@@ -97,7 +100,7 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
97
100
  const value = scrollPosition[propertyScrollPosition] / contentSize;
98
101
  scrollbar[propertyScroll] = value * scrollbarInnerSize;
99
102
  });
100
- const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
103
+ const onScrollbarScroll = (0, _useEventCallback.default)(() => {
101
104
  const scroller = apiRef.current.virtualScrollerRef.current;
102
105
  const scrollbar = scrollbarRef.current;
103
106
  if (!scrollbar) {
@@ -130,14 +133,20 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = (0, _forwardRef.forw
130
133
  }, [scrollbarInnerSize, propertyDimension]);
131
134
  const Container = props.position === 'vertical' ? ScrollbarVertical : ScrollbarHorizontal;
132
135
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
133
- ref: (0, _utils.unstable_useForkRef)(ref, scrollbarRef),
136
+ ref: (0, _useForkRef.default)(ref, scrollbarRef),
134
137
  className: classes.root,
135
138
  style: props.position === 'vertical' && rootProps.unstable_listView ? {
136
139
  height: '100%',
137
140
  top: 0
138
141
  } : undefined,
139
142
  tabIndex: -1,
140
- "aria-hidden": "true",
143
+ "aria-hidden": "true"
144
+ // tabIndex does not prevent focus with a mouse click, throwing a console error
145
+ // https://github.com/mui/mui-x/issues/16706
146
+ ,
147
+ onFocus: event => {
148
+ event.target.blur();
149
+ },
141
150
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
142
151
  ref: contentRef,
143
152
  className: classes.content
@@ -8,6 +8,7 @@ exports.GridVirtualScrollerFiller = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _system = require("@mui/system");
10
10
  var _fastMemo = require("@mui/x-internals/fastMemo");
11
+ var _cssVariables = require("../../constants/cssVariables");
11
12
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
12
13
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
13
14
  var _dimensions = require("../../hooks/features/dimensions");
@@ -24,7 +25,7 @@ const Pinned = (0, _system.styled)('div')({
24
25
  height: '100%',
25
26
  boxSizing: 'border-box',
26
27
  borderTop: '1px solid var(--rowBorderColor)',
27
- backgroundColor: 'var(--DataGrid-pinnedBackground)'
28
+ backgroundColor: _cssVariables.vars.cell.background.pinned
28
29
  });
29
30
  const PinnedLeft = (0, _system.styled)(Pinned)({
30
31
  left: 0,