material-react-table 2.0.0-beta.0 → 2.0.0-beta.10

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 (510) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +281 -263
  3. package/dist/{esm/material-react-table.esm.js → index.esm.js} +1018 -968
  4. package/dist/index.esm.js.map +1 -0
  5. package/dist/{cjs/index.js → index.js} +1098 -1135
  6. package/dist/index.js.map +1 -0
  7. package/locales/ar.d.ts +1 -0
  8. package/locales/ar.js +0 -3
  9. package/locales/{ar.esm.js → ar.mjs} +0 -1
  10. package/locales/az.d.ts +3 -0
  11. package/locales/az.js +95 -0
  12. package/locales/az.mjs +93 -0
  13. package/locales/bg.d.ts +1 -0
  14. package/locales/bg.js +0 -3
  15. package/locales/{bg.esm.js → bg.mjs} +0 -1
  16. package/locales/cs.d.ts +1 -0
  17. package/locales/cs.js +0 -3
  18. package/locales/{cs.esm.js → cs.mjs} +0 -1
  19. package/locales/da.d.ts +1 -0
  20. package/locales/da.js +0 -3
  21. package/locales/{da.esm.js → da.mjs} +0 -1
  22. package/locales/de.d.ts +1 -0
  23. package/locales/de.js +0 -3
  24. package/locales/{de.esm.js → de.mjs} +0 -1
  25. package/locales/en.d.ts +1 -0
  26. package/locales/en.js +0 -3
  27. package/locales/{en.esm.js → en.mjs} +0 -1
  28. package/locales/es.d.ts +1 -0
  29. package/locales/es.js +0 -3
  30. package/locales/{es.esm.js → es.mjs} +0 -1
  31. package/locales/et.d.ts +1 -0
  32. package/locales/et.js +0 -3
  33. package/locales/{et.esm.js → et.mjs} +0 -1
  34. package/locales/fa.d.ts +1 -0
  35. package/locales/fa.js +0 -3
  36. package/locales/{fa.esm.js → fa.mjs} +0 -1
  37. package/locales/fi.d.ts +1 -0
  38. package/locales/fi.js +0 -3
  39. package/locales/{fi.esm.js → fi.mjs} +0 -1
  40. package/locales/fr.d.ts +1 -0
  41. package/locales/fr.js +0 -3
  42. package/locales/{fr.esm.js → fr.mjs} +0 -1
  43. package/locales/hu.d.ts +1 -0
  44. package/locales/hu.js +0 -3
  45. package/locales/{hu.esm.js → hu.mjs} +0 -1
  46. package/locales/hy.d.ts +1 -0
  47. package/locales/hy.js +0 -3
  48. package/locales/{hy.esm.js → hy.mjs} +0 -1
  49. package/locales/id.d.ts +1 -0
  50. package/locales/id.js +0 -3
  51. package/locales/{id.esm.js → id.mjs} +0 -1
  52. package/locales/it.d.ts +1 -0
  53. package/locales/it.js +0 -3
  54. package/locales/{it.esm.js → it.mjs} +0 -1
  55. package/locales/ja.d.ts +1 -0
  56. package/locales/ja.js +0 -3
  57. package/locales/{ja.esm.js → ja.mjs} +0 -1
  58. package/locales/ko.d.ts +1 -0
  59. package/locales/ko.js +0 -3
  60. package/locales/{ko.esm.js → ko.mjs} +0 -1
  61. package/locales/nl.d.ts +1 -0
  62. package/locales/nl.js +0 -3
  63. package/locales/{nl.esm.js → nl.mjs} +0 -1
  64. package/locales/no.d.ts +2 -1
  65. package/locales/no.js +0 -3
  66. package/locales/{no.esm.js → no.mjs} +0 -1
  67. package/locales/np.d.ts +1 -0
  68. package/locales/np.js +0 -3
  69. package/locales/{np.esm.js → np.mjs} +0 -1
  70. package/locales/pl.d.ts +1 -0
  71. package/locales/pl.js +0 -3
  72. package/locales/{pl.esm.js → pl.mjs} +0 -1
  73. package/locales/pt-BR.d.ts +1 -0
  74. package/locales/pt-BR.js +0 -3
  75. package/locales/{pt-BR.esm.js → pt-BR.mjs} +0 -1
  76. package/locales/pt.d.ts +1 -0
  77. package/locales/pt.js +0 -3
  78. package/locales/{pt.esm.js → pt.mjs} +0 -1
  79. package/locales/ro.d.ts +1 -0
  80. package/locales/ro.js +0 -3
  81. package/locales/{ro.esm.js → ro.mjs} +0 -1
  82. package/locales/ru.d.ts +1 -0
  83. package/locales/ru.js +0 -3
  84. package/locales/{ru.esm.js → ru.mjs} +0 -1
  85. package/locales/sk.d.ts +1 -0
  86. package/locales/sk.js +0 -3
  87. package/locales/{sk.esm.js → sk.mjs} +0 -1
  88. package/locales/sr-Cyrl-RS.d.ts +1 -0
  89. package/locales/sr-Cyrl-RS.js +0 -3
  90. package/locales/{sr-Cyrl-RS.esm.js → sr-Cyrl-RS.mjs} +0 -1
  91. package/locales/sr-Latn-RS.d.ts +1 -0
  92. package/locales/sr-Latn-RS.js +0 -3
  93. package/locales/{sr-Latn-RS.esm.js → sr-Latn-RS.mjs} +0 -1
  94. package/locales/sv.d.ts +1 -0
  95. package/locales/sv.js +0 -3
  96. package/locales/{sv.esm.js → sv.mjs} +0 -1
  97. package/locales/tr.d.ts +1 -0
  98. package/locales/tr.js +0 -3
  99. package/locales/{tr.esm.js → tr.mjs} +0 -1
  100. package/locales/uk.d.ts +1 -0
  101. package/locales/uk.js +0 -3
  102. package/locales/{uk.esm.js → uk.mjs} +0 -1
  103. package/locales/vi.d.ts +1 -0
  104. package/locales/vi.js +0 -3
  105. package/locales/{vi.esm.js → vi.mjs} +0 -1
  106. package/locales/zh-Hans.d.ts +1 -0
  107. package/locales/zh-Hans.js +17 -20
  108. package/locales/{zh-Hans.esm.js → zh-Hans.mjs} +17 -18
  109. package/locales/zh-Hant.d.ts +1 -0
  110. package/locales/zh-Hant.js +0 -3
  111. package/locales/{zh-Hant.esm.js → zh-Hant.mjs} +0 -1
  112. package/package.json +215 -32
  113. package/src/MaterialReactTable.tsx +5 -4
  114. package/src/body/MRT_TableBody.tsx +19 -8
  115. package/src/body/MRT_TableBodyCell.tsx +95 -74
  116. package/src/body/MRT_TableBodyCellValue.tsx +13 -9
  117. package/src/body/MRT_TableBodyRow.tsx +27 -16
  118. package/src/body/MRT_TableBodyRowGrabHandle.tsx +16 -7
  119. package/src/body/MRT_TableBodyRowPinButton.tsx +18 -7
  120. package/src/body/MRT_TableDetailPanel.tsx +20 -13
  121. package/src/buttons/MRT_ColumnPinningButtons.tsx +21 -8
  122. package/src/buttons/MRT_CopyButton.tsx +12 -11
  123. package/src/buttons/MRT_EditActionButtons.tsx +17 -7
  124. package/src/buttons/MRT_ExpandAllButton.tsx +13 -11
  125. package/src/buttons/MRT_ExpandButton.tsx +10 -8
  126. package/src/buttons/MRT_GrabHandleButton.tsx +10 -8
  127. package/src/buttons/MRT_RowPinButton.tsx +14 -7
  128. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  129. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +4 -6
  130. package/src/buttons/MRT_ToggleFiltersButton.tsx +4 -4
  131. package/src/buttons/MRT_ToggleFullScreenButton.tsx +3 -4
  132. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -6
  133. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +15 -9
  134. package/src/column.utils.ts +46 -141
  135. package/src/filterFns.ts +15 -14
  136. package/src/footer/MRT_TableFooter.tsx +11 -7
  137. package/src/footer/MRT_TableFooterCell.tsx +21 -16
  138. package/src/footer/MRT_TableFooterRow.tsx +14 -9
  139. package/src/head/MRT_TableHead.tsx +10 -6
  140. package/src/head/MRT_TableHeadCell.tsx +122 -103
  141. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +13 -12
  142. package/src/head/MRT_TableHeadCellFilterContainer.tsx +10 -6
  143. package/src/head/MRT_TableHeadCellFilterLabel.tsx +15 -9
  144. package/src/head/MRT_TableHeadCellGrabHandle.tsx +10 -3
  145. package/src/head/MRT_TableHeadCellResizeHandle.tsx +21 -11
  146. package/src/head/MRT_TableHeadCellSortLabel.tsx +38 -18
  147. package/src/head/MRT_TableHeadRow.tsx +15 -9
  148. package/src/hooks/useMRT_DisplayColumns.tsx +14 -10
  149. package/src/hooks/useMRT_Effects.ts +6 -2
  150. package/src/hooks/useMRT_TableInstance.ts +3 -2
  151. package/src/hooks/useMRT_TableOptions.ts +29 -4
  152. package/src/index.ts +1 -0
  153. package/src/inputs/MRT_EditCellTextField.tsx +26 -4
  154. package/src/inputs/MRT_FilterCheckbox.tsx +10 -5
  155. package/src/inputs/MRT_FilterRangeFields.tsx +19 -5
  156. package/src/inputs/MRT_FilterRangeSlider.tsx +10 -4
  157. package/src/inputs/MRT_FilterTextField.tsx +13 -5
  158. package/src/inputs/MRT_GlobalFilterTextField.tsx +27 -10
  159. package/src/inputs/MRT_SelectCheckbox.tsx +14 -7
  160. package/src/locales/az.ts +94 -0
  161. package/src/locales/no.ts +1 -1
  162. package/src/locales/zh-Hans.ts +17 -17
  163. package/src/menus/MRT_ColumnActionMenu.tsx +10 -4
  164. package/src/menus/MRT_FilterOptionMenu.tsx +6 -3
  165. package/src/menus/MRT_RowActionMenu.tsx +10 -4
  166. package/src/menus/MRT_ShowHideColumnsMenu.tsx +10 -4
  167. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +17 -10
  168. package/src/modals/MRT_EditRowModal.tsx +17 -11
  169. package/src/sortingFns.ts +3 -3
  170. package/src/style.utils.ts +149 -0
  171. package/src/table/MRT_Table.tsx +28 -34
  172. package/src/table/MRT_TableContainer.tsx +17 -46
  173. package/src/table/MRT_TableLoadingOverlay.tsx +54 -0
  174. package/src/table/MRT_TablePaper.tsx +13 -6
  175. package/src/table/index.ts +1 -0
  176. package/src/toolbar/MRT_BottomToolbar.tsx +16 -14
  177. package/src/toolbar/MRT_LinearProgressBar.tsx +16 -10
  178. package/src/toolbar/MRT_TablePagination.tsx +25 -12
  179. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +11 -7
  180. package/src/toolbar/MRT_ToolbarDropZone.tsx +8 -4
  181. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -6
  182. package/src/toolbar/MRT_TopToolbar.tsx +11 -24
  183. package/src/types.ts +98 -56
  184. package/src/useMaterialReactTable.ts +8 -7
  185. package/dist/cjs/index.js.map +0 -1
  186. package/dist/cjs/types/MaterialReactTable.d.ts +0 -7
  187. package/dist/cjs/types/aggregationFns.d.ts +0 -11
  188. package/dist/cjs/types/body/MRT_TableBody.d.ts +0 -12
  189. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +0 -15
  190. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +0 -7
  191. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +0 -18
  192. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -9
  193. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +0 -7
  194. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +0 -12
  195. package/dist/cjs/types/body/index.d.ts +0 -7
  196. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -7
  197. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +0 -9
  198. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +0 -8
  199. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +0 -6
  200. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +0 -7
  201. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  202. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +0 -9
  203. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  204. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  205. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  206. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  207. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  208. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -8
  209. package/dist/cjs/types/buttons/index.d.ts +0 -13
  210. package/dist/cjs/types/column.utils.d.ts +0 -148
  211. package/dist/cjs/types/filterFns.d.ts +0 -68
  212. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +0 -10
  213. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +0 -7
  214. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +0 -11
  215. package/dist/cjs/types/footer/index.d.ts +0 -3
  216. package/dist/cjs/types/head/MRT_TableHead.d.ts +0 -10
  217. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +0 -7
  218. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -7
  219. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -7
  220. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -7
  221. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -9
  222. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -7
  223. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -9
  224. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +0 -11
  225. package/dist/cjs/types/head/index.d.ts +0 -9
  226. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  227. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +0 -2
  228. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +0 -2
  229. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +0 -2
  230. package/dist/cjs/types/icons.d.ts +0 -36
  231. package/dist/cjs/types/index.d.ts +0 -16
  232. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +0 -7
  233. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +0 -7
  234. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +0 -7
  235. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +0 -7
  236. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +0 -8
  237. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -6
  238. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +0 -8
  239. package/dist/cjs/types/inputs/index.d.ts +0 -7
  240. package/dist/cjs/types/locales/ar.d.ts +0 -2
  241. package/dist/cjs/types/locales/bg.d.ts +0 -2
  242. package/dist/cjs/types/locales/cs.d.ts +0 -2
  243. package/dist/cjs/types/locales/da.d.ts +0 -2
  244. package/dist/cjs/types/locales/de.d.ts +0 -2
  245. package/dist/cjs/types/locales/en.d.ts +0 -2
  246. package/dist/cjs/types/locales/es.d.ts +0 -2
  247. package/dist/cjs/types/locales/et.d.ts +0 -2
  248. package/dist/cjs/types/locales/fa.d.ts +0 -2
  249. package/dist/cjs/types/locales/fi.d.ts +0 -2
  250. package/dist/cjs/types/locales/fr.d.ts +0 -2
  251. package/dist/cjs/types/locales/hu.d.ts +0 -2
  252. package/dist/cjs/types/locales/hy.d.ts +0 -2
  253. package/dist/cjs/types/locales/id.d.ts +0 -2
  254. package/dist/cjs/types/locales/it.d.ts +0 -2
  255. package/dist/cjs/types/locales/ja.d.ts +0 -2
  256. package/dist/cjs/types/locales/ko.d.ts +0 -2
  257. package/dist/cjs/types/locales/nl.d.ts +0 -2
  258. package/dist/cjs/types/locales/no.d.ts +0 -2
  259. package/dist/cjs/types/locales/np.d.ts +0 -2
  260. package/dist/cjs/types/locales/pl.d.ts +0 -2
  261. package/dist/cjs/types/locales/pt-BR.d.ts +0 -2
  262. package/dist/cjs/types/locales/pt.d.ts +0 -2
  263. package/dist/cjs/types/locales/ro.d.ts +0 -2
  264. package/dist/cjs/types/locales/ru.d.ts +0 -2
  265. package/dist/cjs/types/locales/sk.d.ts +0 -2
  266. package/dist/cjs/types/locales/sr-Cyrl-RS.d.ts +0 -2
  267. package/dist/cjs/types/locales/sr-Latn-RS.d.ts +0 -2
  268. package/dist/cjs/types/locales/sv.d.ts +0 -2
  269. package/dist/cjs/types/locales/tr.d.ts +0 -2
  270. package/dist/cjs/types/locales/uk.d.ts +0 -2
  271. package/dist/cjs/types/locales/vi.d.ts +0 -2
  272. package/dist/cjs/types/locales/zh-Hans.d.ts +0 -2
  273. package/dist/cjs/types/locales/zh-Hant.d.ts +0 -2
  274. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +0 -19
  275. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +0 -12
  276. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +0 -11
  277. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -9
  278. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -11
  279. package/dist/cjs/types/menus/index.d.ts +0 -5
  280. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +0 -7
  281. package/dist/cjs/types/modals/index.d.ts +0 -1
  282. package/dist/cjs/types/sortingFns.d.ts +0 -12
  283. package/dist/cjs/types/table/MRT_Table.d.ts +0 -6
  284. package/dist/cjs/types/table/MRT_TableContainer.d.ts +0 -6
  285. package/dist/cjs/types/table/MRT_TablePaper.d.ts +0 -6
  286. package/dist/cjs/types/table/index.d.ts +0 -4
  287. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +0 -6
  288. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +0 -7
  289. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +0 -7
  290. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -7
  291. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -6
  292. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -6
  293. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +0 -21
  294. package/dist/cjs/types/toolbar/index.d.ts +0 -7
  295. package/dist/cjs/types/types.d.ts +0 -818
  296. package/dist/cjs/types/useMaterialReactTable.d.ts +0 -2
  297. package/dist/esm/material-react-table.esm.js.map +0 -1
  298. package/dist/esm/types/MaterialReactTable.d.ts +0 -7
  299. package/dist/esm/types/aggregationFns.d.ts +0 -11
  300. package/dist/esm/types/body/MRT_TableBody.d.ts +0 -12
  301. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +0 -15
  302. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +0 -7
  303. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +0 -18
  304. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -9
  305. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +0 -7
  306. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +0 -12
  307. package/dist/esm/types/body/index.d.ts +0 -7
  308. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -7
  309. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +0 -9
  310. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +0 -8
  311. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +0 -6
  312. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +0 -7
  313. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  314. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +0 -9
  315. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  316. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  317. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  318. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  319. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  320. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -8
  321. package/dist/esm/types/buttons/index.d.ts +0 -13
  322. package/dist/esm/types/column.utils.d.ts +0 -148
  323. package/dist/esm/types/filterFns.d.ts +0 -68
  324. package/dist/esm/types/footer/MRT_TableFooter.d.ts +0 -10
  325. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +0 -7
  326. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +0 -11
  327. package/dist/esm/types/footer/index.d.ts +0 -3
  328. package/dist/esm/types/head/MRT_TableHead.d.ts +0 -10
  329. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +0 -7
  330. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -7
  331. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -7
  332. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -7
  333. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -9
  334. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -7
  335. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -9
  336. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +0 -11
  337. package/dist/esm/types/head/index.d.ts +0 -9
  338. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  339. package/dist/esm/types/hooks/useMRT_Effects.d.ts +0 -2
  340. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +0 -2
  341. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +0 -2
  342. package/dist/esm/types/icons.d.ts +0 -36
  343. package/dist/esm/types/index.d.ts +0 -16
  344. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +0 -7
  345. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +0 -7
  346. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +0 -7
  347. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +0 -7
  348. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +0 -8
  349. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -6
  350. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +0 -8
  351. package/dist/esm/types/inputs/index.d.ts +0 -7
  352. package/dist/esm/types/locales/ar.d.ts +0 -2
  353. package/dist/esm/types/locales/bg.d.ts +0 -2
  354. package/dist/esm/types/locales/cs.d.ts +0 -2
  355. package/dist/esm/types/locales/da.d.ts +0 -2
  356. package/dist/esm/types/locales/de.d.ts +0 -2
  357. package/dist/esm/types/locales/en.d.ts +0 -2
  358. package/dist/esm/types/locales/es.d.ts +0 -2
  359. package/dist/esm/types/locales/et.d.ts +0 -2
  360. package/dist/esm/types/locales/fa.d.ts +0 -2
  361. package/dist/esm/types/locales/fi.d.ts +0 -2
  362. package/dist/esm/types/locales/fr.d.ts +0 -2
  363. package/dist/esm/types/locales/hu.d.ts +0 -2
  364. package/dist/esm/types/locales/hy.d.ts +0 -2
  365. package/dist/esm/types/locales/id.d.ts +0 -2
  366. package/dist/esm/types/locales/it.d.ts +0 -2
  367. package/dist/esm/types/locales/ja.d.ts +0 -2
  368. package/dist/esm/types/locales/ko.d.ts +0 -2
  369. package/dist/esm/types/locales/nl.d.ts +0 -2
  370. package/dist/esm/types/locales/no.d.ts +0 -2
  371. package/dist/esm/types/locales/np.d.ts +0 -2
  372. package/dist/esm/types/locales/pl.d.ts +0 -2
  373. package/dist/esm/types/locales/pt-BR.d.ts +0 -2
  374. package/dist/esm/types/locales/pt.d.ts +0 -2
  375. package/dist/esm/types/locales/ro.d.ts +0 -2
  376. package/dist/esm/types/locales/ru.d.ts +0 -2
  377. package/dist/esm/types/locales/sk.d.ts +0 -2
  378. package/dist/esm/types/locales/sr-Cyrl-RS.d.ts +0 -2
  379. package/dist/esm/types/locales/sr-Latn-RS.d.ts +0 -2
  380. package/dist/esm/types/locales/sv.d.ts +0 -2
  381. package/dist/esm/types/locales/tr.d.ts +0 -2
  382. package/dist/esm/types/locales/uk.d.ts +0 -2
  383. package/dist/esm/types/locales/vi.d.ts +0 -2
  384. package/dist/esm/types/locales/zh-Hans.d.ts +0 -2
  385. package/dist/esm/types/locales/zh-Hant.d.ts +0 -2
  386. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +0 -19
  387. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +0 -12
  388. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +0 -11
  389. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -9
  390. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -11
  391. package/dist/esm/types/menus/index.d.ts +0 -5
  392. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +0 -7
  393. package/dist/esm/types/modals/index.d.ts +0 -1
  394. package/dist/esm/types/sortingFns.d.ts +0 -12
  395. package/dist/esm/types/table/MRT_Table.d.ts +0 -6
  396. package/dist/esm/types/table/MRT_TableContainer.d.ts +0 -6
  397. package/dist/esm/types/table/MRT_TablePaper.d.ts +0 -6
  398. package/dist/esm/types/table/index.d.ts +0 -4
  399. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +0 -6
  400. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +0 -7
  401. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +0 -7
  402. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -7
  403. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -6
  404. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -6
  405. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +0 -21
  406. package/dist/esm/types/toolbar/index.d.ts +0 -7
  407. package/dist/esm/types/types.d.ts +0 -818
  408. package/dist/esm/types/useMaterialReactTable.d.ts +0 -2
  409. package/locales/ar.esm.d.ts +0 -2
  410. package/locales/ar.esm.js.map +0 -1
  411. package/locales/ar.js.map +0 -1
  412. package/locales/bg.esm.d.ts +0 -2
  413. package/locales/bg.esm.js.map +0 -1
  414. package/locales/bg.js.map +0 -1
  415. package/locales/cs.esm.d.ts +0 -2
  416. package/locales/cs.esm.js.map +0 -1
  417. package/locales/cs.js.map +0 -1
  418. package/locales/da.esm.d.ts +0 -2
  419. package/locales/da.esm.js.map +0 -1
  420. package/locales/da.js.map +0 -1
  421. package/locales/de.esm.d.ts +0 -2
  422. package/locales/de.esm.js.map +0 -1
  423. package/locales/de.js.map +0 -1
  424. package/locales/en.esm.d.ts +0 -2
  425. package/locales/en.esm.js.map +0 -1
  426. package/locales/en.js.map +0 -1
  427. package/locales/es.esm.d.ts +0 -2
  428. package/locales/es.esm.js.map +0 -1
  429. package/locales/es.js.map +0 -1
  430. package/locales/et.esm.d.ts +0 -2
  431. package/locales/et.esm.js.map +0 -1
  432. package/locales/et.js.map +0 -1
  433. package/locales/fa.esm.d.ts +0 -2
  434. package/locales/fa.esm.js.map +0 -1
  435. package/locales/fa.js.map +0 -1
  436. package/locales/fi.esm.d.ts +0 -2
  437. package/locales/fi.esm.js.map +0 -1
  438. package/locales/fi.js.map +0 -1
  439. package/locales/fr.esm.d.ts +0 -2
  440. package/locales/fr.esm.js.map +0 -1
  441. package/locales/fr.js.map +0 -1
  442. package/locales/hu.esm.d.ts +0 -2
  443. package/locales/hu.esm.js.map +0 -1
  444. package/locales/hu.js.map +0 -1
  445. package/locales/hy.esm.d.ts +0 -2
  446. package/locales/hy.esm.js.map +0 -1
  447. package/locales/hy.js.map +0 -1
  448. package/locales/id.esm.d.ts +0 -2
  449. package/locales/id.esm.js.map +0 -1
  450. package/locales/id.js.map +0 -1
  451. package/locales/it.esm.d.ts +0 -2
  452. package/locales/it.esm.js.map +0 -1
  453. package/locales/it.js.map +0 -1
  454. package/locales/ja.esm.d.ts +0 -2
  455. package/locales/ja.esm.js.map +0 -1
  456. package/locales/ja.js.map +0 -1
  457. package/locales/ko.esm.d.ts +0 -2
  458. package/locales/ko.esm.js.map +0 -1
  459. package/locales/ko.js.map +0 -1
  460. package/locales/nl.esm.d.ts +0 -2
  461. package/locales/nl.esm.js.map +0 -1
  462. package/locales/nl.js.map +0 -1
  463. package/locales/no.esm.d.ts +0 -2
  464. package/locales/no.esm.js.map +0 -1
  465. package/locales/no.js.map +0 -1
  466. package/locales/np.esm.d.ts +0 -2
  467. package/locales/np.esm.js.map +0 -1
  468. package/locales/np.js.map +0 -1
  469. package/locales/pl.esm.d.ts +0 -2
  470. package/locales/pl.esm.js.map +0 -1
  471. package/locales/pl.js.map +0 -1
  472. package/locales/pt-BR.esm.d.ts +0 -2
  473. package/locales/pt-BR.esm.js.map +0 -1
  474. package/locales/pt-BR.js.map +0 -1
  475. package/locales/pt.esm.d.ts +0 -2
  476. package/locales/pt.esm.js.map +0 -1
  477. package/locales/pt.js.map +0 -1
  478. package/locales/ro.esm.d.ts +0 -2
  479. package/locales/ro.esm.js.map +0 -1
  480. package/locales/ro.js.map +0 -1
  481. package/locales/ru.esm.d.ts +0 -2
  482. package/locales/ru.esm.js.map +0 -1
  483. package/locales/ru.js.map +0 -1
  484. package/locales/sk.esm.d.ts +0 -2
  485. package/locales/sk.esm.js.map +0 -1
  486. package/locales/sk.js.map +0 -1
  487. package/locales/sr-Cyrl-RS.esm.d.ts +0 -2
  488. package/locales/sr-Cyrl-RS.esm.js.map +0 -1
  489. package/locales/sr-Cyrl-RS.js.map +0 -1
  490. package/locales/sr-Latn-RS.esm.d.ts +0 -2
  491. package/locales/sr-Latn-RS.esm.js.map +0 -1
  492. package/locales/sr-Latn-RS.js.map +0 -1
  493. package/locales/sv.esm.d.ts +0 -2
  494. package/locales/sv.esm.js.map +0 -1
  495. package/locales/sv.js.map +0 -1
  496. package/locales/tr.esm.d.ts +0 -2
  497. package/locales/tr.esm.js.map +0 -1
  498. package/locales/tr.js.map +0 -1
  499. package/locales/uk.esm.d.ts +0 -2
  500. package/locales/uk.esm.js.map +0 -1
  501. package/locales/uk.js.map +0 -1
  502. package/locales/vi.esm.d.ts +0 -2
  503. package/locales/vi.esm.js.map +0 -1
  504. package/locales/vi.js.map +0 -1
  505. package/locales/zh-Hans.esm.d.ts +0 -2
  506. package/locales/zh-Hans.esm.js.map +0 -1
  507. package/locales/zh-Hans.js.map +0 -1
  508. package/locales/zh-Hant.esm.d.ts +0 -2
  509. package/locales/zh-Hant.esm.js.map +0 -1
  510. package/locales/zh-Hant.js.map +0 -1
package/src/sortingFns.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { type RankingInfo, compareItems } from '@tanstack/match-sorter-utils';
2
2
  import { type Row, sortingFns } from '@tanstack/react-table';
3
- import { type MRT_Row } from './types';
3
+ import { type MRT_Row, type MRT_RowData } from './types';
4
4
 
5
- const fuzzy = <TData extends Record<string, any>>(
5
+ const fuzzy = <TData extends MRT_RowData>(
6
6
  rowA: Row<TData>,
7
7
  rowB: Row<TData>,
8
8
  columnId: string,
@@ -25,7 +25,7 @@ export const MRT_SortingFns = {
25
25
  fuzzy,
26
26
  };
27
27
 
28
- export const rankGlobalFuzzy = <TData extends Record<string, any>>(
28
+ export const rankGlobalFuzzy = <TData extends MRT_RowData>(
29
29
  rowA: MRT_Row<TData>,
30
30
  rowB: MRT_Row<TData>,
31
31
  ) =>
@@ -0,0 +1,149 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type TableCellProps } from '@mui/material/TableCell';
3
+ import { alpha, darken, lighten } from '@mui/material/styles';
4
+ import { type Theme } from '@mui/material/styles';
5
+ import {
6
+ getIsFirstRightPinnedColumn,
7
+ getIsLastLeftPinnedColumn,
8
+ getTotalRight,
9
+ parseFromValuesOrFunc,
10
+ } from './column.utils';
11
+ import {
12
+ type MRT_Column,
13
+ type MRT_Header,
14
+ type MRT_RowData,
15
+ type MRT_TableInstance,
16
+ } from './types';
17
+
18
+ export const parseCSSVarId = (id: string) => id.replace(/[^a-zA-Z0-9]/g, '_');
19
+
20
+ export const getMRTTheme = <TData extends MRT_RowData>(
21
+ table: MRT_TableInstance<TData>,
22
+ theme: Theme,
23
+ ) => ({
24
+ baseBackgroundColor:
25
+ theme.palette.mode === 'dark'
26
+ ? lighten(theme.palette.background.default, 0.05)
27
+ : theme.palette.background.default,
28
+ draggingBorderColor: theme.palette.primary.main,
29
+ matchHighlightColor:
30
+ theme.palette.mode === 'dark'
31
+ ? darken(theme.palette.warning.dark, 0.25)
32
+ : lighten(theme.palette.warning.light, 0.5),
33
+ pinnedRowBackgroundColor: alpha(theme.palette.primary.main, 0.1),
34
+ selectedRowBackgroundColor: alpha(theme.palette.primary.main, 0.2),
35
+ ...parseFromValuesOrFunc(table.options.mrtTheme, theme),
36
+ });
37
+
38
+ export const getCommonMRTCellStyles = <TData extends MRT_RowData>({
39
+ column,
40
+ header,
41
+ table,
42
+ tableCellProps,
43
+ theme,
44
+ }: {
45
+ column: MRT_Column<TData>;
46
+ header?: MRT_Header<TData>;
47
+ table: MRT_TableInstance<TData>;
48
+ tableCellProps: TableCellProps;
49
+ theme: Theme;
50
+ }) => {
51
+ const {
52
+ options: { layoutMode },
53
+ } = table;
54
+ const widthStyles: CSSProperties = {
55
+ minWidth: `max(calc(var(--${header ? 'header' : 'col'}-${parseCSSVarId(
56
+ header?.id ?? column.id,
57
+ )}-size) * 1px), ${column.columnDef.minSize ?? 30}px)`,
58
+ width: `calc(var(--${header ? 'header' : 'col'}-${parseCSSVarId(
59
+ header?.id ?? column.id,
60
+ )}-size) * 1px)`,
61
+ };
62
+
63
+ if (layoutMode === 'grid') {
64
+ widthStyles.flex = `var(--${header ? 'header' : 'col'}-${parseCSSVarId(
65
+ header?.id ?? column.id,
66
+ )}-size) 0 auto`;
67
+ } else if (layoutMode === 'grid-no-grow') {
68
+ widthStyles.flex = '0 0 auto';
69
+ }
70
+
71
+ return {
72
+ backgroundColor:
73
+ column.getIsPinned() && column.columnDef.columnDefType !== 'group'
74
+ ? alpha(
75
+ darken(
76
+ getMRTTheme(table, theme).baseBackgroundColor,
77
+ theme.palette.mode === 'dark' ? 0.05 : 0.01,
78
+ ),
79
+ 0.97,
80
+ )
81
+ : 'inherit',
82
+ backgroundImage: 'inherit',
83
+ boxShadow: getIsLastLeftPinnedColumn(table, column)
84
+ ? `-4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
85
+ : getIsFirstRightPinnedColumn(column)
86
+ ? `4px 0 8px -6px ${alpha(theme.palette.grey[700], 0.5)} inset`
87
+ : undefined,
88
+ display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
89
+ left:
90
+ column.getIsPinned() === 'left'
91
+ ? `${column.getStart('left')}px`
92
+ : undefined,
93
+ ml:
94
+ table.options.enableColumnVirtualization &&
95
+ column.getIsPinned() === 'left' &&
96
+ column.getPinnedIndex() === 0
97
+ ? `-${
98
+ column.getSize() *
99
+ (table.getState().columnPinning.left?.length ?? 1)
100
+ }px`
101
+ : undefined,
102
+ mr:
103
+ table.options.enableColumnVirtualization &&
104
+ column.getIsPinned() === 'right' &&
105
+ column.getPinnedIndex() === table.getVisibleLeafColumns().length - 1
106
+ ? `-${
107
+ column.getSize() *
108
+ (table.getState().columnPinning.right?.length ?? 1) *
109
+ 1.2
110
+ }px`
111
+ : undefined,
112
+ opacity:
113
+ table.getState().draggingColumn?.id === column.id ||
114
+ table.getState().hoveredColumn?.id === column.id
115
+ ? 0.5
116
+ : 1,
117
+ position:
118
+ column.getIsPinned() && column.columnDef.columnDefType !== 'group'
119
+ ? 'sticky'
120
+ : undefined,
121
+ right:
122
+ column.getIsPinned() === 'right'
123
+ ? `${getTotalRight(table, column)}px`
124
+ : undefined,
125
+ transition: table.options.enableColumnVirtualization
126
+ ? 'none'
127
+ : `padding 150ms ease-in-out`,
128
+ ...widthStyles,
129
+ ...(parseFromValuesOrFunc(tableCellProps?.sx, theme) as any),
130
+ };
131
+ };
132
+
133
+ export const getCommonToolbarStyles = <TData extends MRT_RowData>({
134
+ table,
135
+ theme,
136
+ }: {
137
+ table: MRT_TableInstance<TData>;
138
+ theme: Theme;
139
+ }) => ({
140
+ alignItems: 'flex-start',
141
+ backgroundColor: getMRTTheme(table, theme).baseBackgroundColor,
142
+ display: 'grid',
143
+ flexWrap: 'wrap-reverse',
144
+ minHeight: '3.5rem',
145
+ overflow: 'hidden',
146
+ position: 'relative',
147
+ transition: 'all 150ms ease-in-out',
148
+ zIndex: 1,
149
+ });
@@ -4,23 +4,24 @@ import {
4
4
  type Virtualizer,
5
5
  useVirtualizer,
6
6
  } from '@tanstack/react-virtual';
7
- import Table from '@mui/material/Table';
7
+ import Table, { type TableProps } from '@mui/material/Table';
8
8
  import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody';
9
9
  import {
10
10
  extraIndexRangeExtractor,
11
- parseCSSVarId,
12
11
  parseFromValuesOrFunc,
13
12
  } from '../column.utils';
14
13
  import { MRT_TableFooter } from '../footer/MRT_TableFooter';
15
14
  import { MRT_TableHead } from '../head/MRT_TableHead';
16
- import { type MRT_TableInstance } from '../types';
15
+ import { parseCSSVarId } from '../style.utils';
16
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
17
17
 
18
- interface Props<TData extends Record<string, any>> {
18
+ interface Props<TData extends MRT_RowData> extends TableProps {
19
19
  table: MRT_TableInstance<TData>;
20
20
  }
21
21
 
22
- export const MRT_Table = <TData extends Record<string, any>>({
22
+ export const MRT_Table = <TData extends MRT_RowData>({
23
23
  table,
24
+ ...rest
24
25
  }: Props<TData>) => {
25
26
  const {
26
27
  getFlatHeaders,
@@ -30,7 +31,6 @@ export const MRT_Table = <TData extends Record<string, any>>({
30
31
  columnVirtualizerOptions,
31
32
  columns,
32
33
  enableColumnPinning,
33
- enableColumnResizing,
34
34
  enableColumnVirtualization,
35
35
  enableStickyHeader,
36
36
  enableTableFooter,
@@ -50,7 +50,10 @@ export const MRT_Table = <TData extends Record<string, any>>({
50
50
  isFullScreen,
51
51
  } = getState();
52
52
 
53
- const tableProps = parseFromValuesOrFunc(muiTableProps, { table });
53
+ const tableProps = {
54
+ ...parseFromValuesOrFunc(muiTableProps, { table }),
55
+ ...rest,
56
+ };
54
57
 
55
58
  const columnVirtualizerProps = parseFromValuesOrFunc(
56
59
  columnVirtualizerOptions,
@@ -157,32 +160,23 @@ export const MRT_Table = <TData extends Record<string, any>>({
157
160
  };
158
161
 
159
162
  return (
160
- <>
161
- <Table
162
- stickyHeader={enableStickyHeader || isFullScreen}
163
- {...tableProps}
164
- style={{ ...columnSizeVars, ...tableProps?.style }}
165
- sx={(theme) => ({
166
- borderCollapse: 'separate',
167
- display: layoutMode?.startsWith('grid') ? 'grid' : undefined,
168
- tableLayout:
169
- layoutMode === 'semantic' && enableColumnResizing
170
- ? 'fixed'
171
- : undefined,
172
- ...(parseFromValuesOrFunc(tableProps?.sx, theme) as any),
173
- })}
174
- >
175
- {enableTableHead && <MRT_TableHead {...props} />}
176
- {memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (
177
- <Memo_MRT_TableBody
178
- columnVirtualizer={columnVirtualizer}
179
- {...props}
180
- />
181
- ) : (
182
- <MRT_TableBody columnVirtualizer={columnVirtualizer} {...props} />
183
- )}
184
- {enableTableFooter && <MRT_TableFooter {...props} />}
185
- </Table>
186
- </>
163
+ <Table
164
+ stickyHeader={enableStickyHeader || isFullScreen}
165
+ {...tableProps}
166
+ style={{ ...columnSizeVars, ...tableProps?.style }}
167
+ sx={(theme) => ({
168
+ borderCollapse: 'separate',
169
+ display: layoutMode?.startsWith('grid') ? 'grid' : undefined,
170
+ ...(parseFromValuesOrFunc(tableProps?.sx, theme) as any),
171
+ })}
172
+ >
173
+ {enableTableHead && <MRT_TableHead {...props} />}
174
+ {memoMode === 'table-body' || columnSizingInfo.isResizingColumn ? (
175
+ <Memo_MRT_TableBody columnVirtualizer={columnVirtualizer} {...props} />
176
+ ) : (
177
+ <MRT_TableBody columnVirtualizer={columnVirtualizer} {...props} />
178
+ )}
179
+ {enableTableFooter && <MRT_TableFooter {...props} />}
180
+ </Table>
187
181
  );
188
182
  };
@@ -1,22 +1,23 @@
1
1
  import { useEffect, useLayoutEffect, useState } from 'react';
2
- import Box from '@mui/material/Box';
3
- import CircularProgress from '@mui/material/CircularProgress';
4
- import TableContainer from '@mui/material/TableContainer';
5
- import { alpha, lighten } from '@mui/material/styles';
2
+ import TableContainer, {
3
+ type TableContainerProps,
4
+ } from '@mui/material/TableContainer';
6
5
  import { MRT_Table } from './MRT_Table';
6
+ import { MRT_TableLoadingOverlay } from './MRT_TableLoadingOverlay';
7
7
  import { parseFromValuesOrFunc } from '../column.utils';
8
8
  import { MRT_EditRowModal } from '../modals';
9
- import { type MRT_TableInstance } from '../types';
9
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
10
10
 
11
11
  const useIsomorphicLayoutEffect =
12
12
  typeof window !== 'undefined' ? useLayoutEffect : useEffect;
13
13
 
14
- interface Props<TData extends Record<string, any>> {
14
+ interface Props<TData extends MRT_RowData> extends TableContainerProps {
15
15
  table: MRT_TableInstance<TData>;
16
16
  }
17
17
 
18
- export const MRT_TableContainer = <TData extends Record<string, any>>({
18
+ export const MRT_TableContainer = <TData extends MRT_RowData>({
19
19
  table,
20
+ ...rest
20
21
  }: Props<TData>) => {
21
22
  const {
22
23
  getState,
@@ -24,8 +25,6 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
24
25
  createDisplayMode,
25
26
  editDisplayMode,
26
27
  enableStickyHeader,
27
- localization,
28
- muiCircularProgressProps,
29
28
  muiTableContainerProps,
30
29
  },
31
30
  refs: { bottomToolbarRef, tableContainerRef, topToolbarRef },
@@ -39,18 +38,16 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
39
38
  } = getState();
40
39
 
41
40
  const loading =
42
- (isLoading || showLoadingOverlay) && showLoadingOverlay !== false;
41
+ showLoadingOverlay !== false && (isLoading || showLoadingOverlay);
43
42
 
44
43
  const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);
45
44
 
46
- const tableContainerProps = parseFromValuesOrFunc(muiTableContainerProps, {
47
- table,
48
- });
49
-
50
- const circularProgressProps = parseFromValuesOrFunc(
51
- muiCircularProgressProps,
52
- { table },
53
- );
45
+ const tableContainerProps = {
46
+ ...parseFromValuesOrFunc(muiTableContainerProps, {
47
+ table,
48
+ }),
49
+ ...rest,
50
+ };
54
51
 
55
52
  useIsomorphicLayoutEffect(() => {
56
53
  const topToolbarHeight =
@@ -72,7 +69,7 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
72
69
  return (
73
70
  <TableContainer
74
71
  aria-busy={loading}
75
- aria-describedby="mrt-progress"
72
+ aria-describedby={loading ? 'mrt-progress' : undefined}
76
73
  {...tableContainerProps}
77
74
  ref={(node: HTMLDivElement) => {
78
75
  if (node) {
@@ -99,33 +96,7 @@ export const MRT_TableContainer = <TData extends Record<string, any>>({
99
96
  ...(parseFromValuesOrFunc(tableContainerProps?.sx, theme) as any),
100
97
  })}
101
98
  >
102
- {loading ? (
103
- <Box
104
- sx={(theme) => ({
105
- alignItems: 'center',
106
- backgroundColor: alpha(
107
- lighten(theme.palette.background.paper, 0.05),
108
- 0.5,
109
- ),
110
- bottom: 0,
111
- display: 'flex',
112
- justifyContent: 'center',
113
- left: 0,
114
- maxHeight: '100vh',
115
- position: 'absolute',
116
- right: 0,
117
- top: 0,
118
- width: '100%',
119
- zIndex: 2,
120
- })}
121
- >
122
- <CircularProgress
123
- aria-label={localization.noRecordsToDisplay}
124
- id="mrt-progress"
125
- {...circularProgressProps}
126
- />
127
- </Box>
128
- ) : null}
99
+ {loading ? <MRT_TableLoadingOverlay table={table} /> : null}
129
100
  <MRT_Table table={table} />
130
101
  {(createModalOpen || editModalOpen) && (
131
102
  <MRT_EditRowModal open table={table} />
@@ -0,0 +1,54 @@
1
+ import Box from '@mui/material/Box';
2
+ import CircularProgress, {
3
+ type CircularProgressProps,
4
+ } from '@mui/material/CircularProgress';
5
+ import { alpha } from '@mui/material/styles';
6
+ import { parseFromValuesOrFunc } from '../column.utils';
7
+ import { getMRTTheme } from '../style.utils';
8
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
9
+
10
+ interface Props<TData extends MRT_RowData> extends CircularProgressProps {
11
+ table: MRT_TableInstance<TData>;
12
+ }
13
+
14
+ export const MRT_TableLoadingOverlay = <TData extends MRT_RowData>({
15
+ table,
16
+ ...rest
17
+ }: Props<TData>) => {
18
+ const {
19
+ options: { localization, muiCircularProgressProps },
20
+ } = table;
21
+
22
+ const circularProgressProps = {
23
+ ...parseFromValuesOrFunc(muiCircularProgressProps, { table }),
24
+ ...rest,
25
+ };
26
+
27
+ return (
28
+ <Box
29
+ sx={(theme) => ({
30
+ alignItems: 'center',
31
+ backgroundColor: alpha(
32
+ getMRTTheme(table, theme).baseBackgroundColor,
33
+ 0.5,
34
+ ),
35
+ bottom: 0,
36
+ display: 'flex',
37
+ justifyContent: 'center',
38
+ left: 0,
39
+ maxHeight: '100vh',
40
+ position: 'absolute',
41
+ right: 0,
42
+ top: 0,
43
+ width: '100%',
44
+ zIndex: 2,
45
+ })}
46
+ >
47
+ <CircularProgress
48
+ aria-label={localization.noRecordsToDisplay}
49
+ id="mrt-progress"
50
+ {...circularProgressProps}
51
+ />
52
+ </Box>
53
+ );
54
+ };
@@ -1,16 +1,18 @@
1
- import Paper from '@mui/material/Paper';
1
+ import Paper, { type PaperProps } from '@mui/material/Paper';
2
2
  import { MRT_TableContainer } from './MRT_TableContainer';
3
3
  import { parseFromValuesOrFunc } from '../column.utils';
4
+ import { getMRTTheme } from '../style.utils';
4
5
  import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
5
6
  import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
6
- import { type MRT_TableInstance } from '../types';
7
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
7
8
 
8
- interface Props<TData extends Record<string, any>> {
9
+ interface Props<TData extends MRT_RowData> extends PaperProps {
9
10
  table: MRT_TableInstance<TData>;
10
11
  }
11
12
 
12
- export const MRT_TablePaper = <TData extends Record<string, any>>({
13
+ export const MRT_TablePaper = <TData extends MRT_RowData>({
13
14
  table,
15
+ ...rest
14
16
  }: Props<TData>) => {
15
17
  const {
16
18
  getState,
@@ -25,7 +27,10 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
25
27
  } = table;
26
28
  const { isFullScreen } = getState();
27
29
 
28
- const tablePaperProps = parseFromValuesOrFunc(muiTablePaperProps, { table });
30
+ const tablePaperProps = {
31
+ ...parseFromValuesOrFunc(muiTablePaperProps, { table }),
32
+ ...rest,
33
+ };
29
34
 
30
35
  return (
31
36
  <Paper
@@ -52,12 +57,14 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
52
57
  right: 0,
53
58
  top: 0,
54
59
  width: '100vw',
55
- zIndex: 10,
60
+ zIndex: 999,
56
61
  }
57
62
  : {}),
58
63
  ...tablePaperProps?.style,
59
64
  }}
60
65
  sx={(theme) => ({
66
+ backgroundColor: getMRTTheme(table, theme).baseBackgroundColor,
67
+ backgroundImage: 'unset',
61
68
  overflow: 'hidden',
62
69
  transition: 'all 100ms ease-in-out',
63
70
  ...(parseFromValuesOrFunc(tablePaperProps?.sx, theme) as any),
@@ -1,4 +1,5 @@
1
1
  export * from '../modals/MRT_EditRowModal';
2
2
  export * from './MRT_Table';
3
3
  export * from './MRT_TableContainer';
4
+ export * from './MRT_TableLoadingOverlay';
4
5
  export * from './MRT_TablePaper';
@@ -1,21 +1,21 @@
1
- import Box from '@mui/material/Box';
2
- import Toolbar from '@mui/material/Toolbar';
3
- import { alpha } from '@mui/material/styles';
1
+ import { alpha } from '@mui/material';
2
+ import Box, { type BoxProps } from '@mui/material/Box';
4
3
  import useMediaQuery from '@mui/material/useMediaQuery';
5
4
  import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
6
5
  import { MRT_TablePagination } from './MRT_TablePagination';
7
6
  import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
8
7
  import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
9
- import { commonToolbarStyles } from './MRT_TopToolbar';
10
8
  import { parseFromValuesOrFunc } from '../column.utils';
11
- import { type MRT_TableInstance } from '../types';
9
+ import { getCommonToolbarStyles } from '../style.utils';
10
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
12
11
 
13
- interface Props<TData extends Record<string, any>> {
12
+ interface Props<TData extends MRT_RowData> extends BoxProps {
14
13
  table: MRT_TableInstance<TData>;
15
14
  }
16
15
 
17
- export const MRT_BottomToolbar = <TData extends Record<string, any>>({
16
+ export const MRT_BottomToolbar = <TData extends MRT_RowData>({
18
17
  table,
18
+ ...rest
19
19
  }: Props<TData>) => {
20
20
  const {
21
21
  getState,
@@ -33,13 +33,15 @@ export const MRT_BottomToolbar = <TData extends Record<string, any>>({
33
33
 
34
34
  const isMobile = useMediaQuery('(max-width:720px)');
35
35
 
36
- const toolbarProps = parseFromValuesOrFunc(muiBottomToolbarProps, { table });
36
+ const toolbarProps = {
37
+ ...parseFromValuesOrFunc(muiBottomToolbarProps, { table }),
38
+ ...rest,
39
+ };
37
40
 
38
41
  const stackAlertBanner = isMobile || !!renderBottomToolbarCustomActions;
39
42
 
40
43
  return (
41
- <Toolbar
42
- variant="dense"
44
+ <Box
43
45
  {...toolbarProps}
44
46
  ref={(node: HTMLDivElement) => {
45
47
  if (node) {
@@ -51,11 +53,11 @@ export const MRT_BottomToolbar = <TData extends Record<string, any>>({
51
53
  }
52
54
  }}
53
55
  sx={(theme) => ({
54
- ...commonToolbarStyles({ theme }),
56
+ ...getCommonToolbarStyles({ table, theme }),
55
57
  bottom: isFullScreen ? '0' : undefined,
56
58
  boxShadow: `0 1px 2px -1px ${alpha(
57
- theme.palette.common.black,
58
- 0.1,
59
+ theme.palette.grey[700],
60
+ 0.5,
59
61
  )} inset`,
60
62
  left: 0,
61
63
  position: isFullScreen ? 'fixed' : 'relative',
@@ -103,6 +105,6 @@ export const MRT_BottomToolbar = <TData extends Record<string, any>>({
103
105
  )}
104
106
  </Box>
105
107
  </Box>
106
- </Toolbar>
108
+ </Box>
107
109
  );
108
110
  };
@@ -1,31 +1,37 @@
1
1
  import Collapse from '@mui/material/Collapse';
2
- import LinearProgress from '@mui/material/LinearProgress';
2
+ import LinearProgress, {
3
+ type LinearProgressProps,
4
+ } from '@mui/material/LinearProgress';
3
5
  import { parseFromValuesOrFunc } from '../column.utils';
4
- import { type MRT_TableInstance } from '../types';
6
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
5
7
 
6
- interface Props<TData extends Record<string, any>> {
8
+ interface Props<TData extends MRT_RowData> extends LinearProgressProps {
7
9
  isTopToolbar: boolean;
8
10
  table: MRT_TableInstance<TData>;
9
11
  }
10
12
 
11
- export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
13
+ export const MRT_LinearProgressBar = <TData extends MRT_RowData>({
12
14
  isTopToolbar,
13
15
  table,
16
+ ...rest
14
17
  }: Props<TData>) => {
15
18
  const {
16
19
  getState,
17
20
  options: { muiLinearProgressProps },
18
21
  } = table;
19
- const { showProgressBars } = getState();
22
+ const { isSaving, showProgressBars } = getState();
20
23
 
21
- const linearProgressProps = parseFromValuesOrFunc(muiLinearProgressProps, {
22
- isTopToolbar,
23
- table,
24
- });
24
+ const linearProgressProps = {
25
+ ...parseFromValuesOrFunc(muiLinearProgressProps, {
26
+ isTopToolbar,
27
+ table,
28
+ }),
29
+ ...rest,
30
+ };
25
31
 
26
32
  return (
27
33
  <Collapse
28
- in={showProgressBars}
34
+ in={showProgressBars !== false && (showProgressBars || isSaving)}
29
35
  mountOnEnter
30
36
  sx={{
31
37
  bottom: isTopToolbar ? 0 : undefined,