material-react-table 2.0.0-beta.1 → 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 (509) hide show
  1. package/dist/index.d.ts +279 -261
  2. package/dist/{esm/material-react-table.esm.js → index.esm.js} +945 -921
  3. package/dist/index.esm.js.map +1 -0
  4. package/dist/{cjs/index.js → index.js} +1027 -1090
  5. package/dist/index.js.map +1 -0
  6. package/locales/ar.d.ts +1 -0
  7. package/locales/ar.js +0 -3
  8. package/locales/{ar.esm.js → ar.mjs} +0 -1
  9. package/locales/az.d.ts +3 -0
  10. package/locales/az.js +95 -0
  11. package/locales/az.mjs +93 -0
  12. package/locales/bg.d.ts +1 -0
  13. package/locales/bg.js +0 -3
  14. package/locales/{bg.esm.js → bg.mjs} +0 -1
  15. package/locales/cs.d.ts +1 -0
  16. package/locales/cs.js +0 -3
  17. package/locales/{cs.esm.js → cs.mjs} +0 -1
  18. package/locales/da.d.ts +1 -0
  19. package/locales/da.js +0 -3
  20. package/locales/{da.esm.js → da.mjs} +0 -1
  21. package/locales/de.d.ts +1 -0
  22. package/locales/de.js +0 -3
  23. package/locales/{de.esm.js → de.mjs} +0 -1
  24. package/locales/en.d.ts +1 -0
  25. package/locales/en.js +0 -3
  26. package/locales/{en.esm.js → en.mjs} +0 -1
  27. package/locales/es.d.ts +1 -0
  28. package/locales/es.js +0 -3
  29. package/locales/{es.esm.js → es.mjs} +0 -1
  30. package/locales/et.d.ts +1 -0
  31. package/locales/et.js +0 -3
  32. package/locales/{et.esm.js → et.mjs} +0 -1
  33. package/locales/fa.d.ts +1 -0
  34. package/locales/fa.js +0 -3
  35. package/locales/{fa.esm.js → fa.mjs} +0 -1
  36. package/locales/fi.d.ts +1 -0
  37. package/locales/fi.js +0 -3
  38. package/locales/{fi.esm.js → fi.mjs} +0 -1
  39. package/locales/fr.d.ts +1 -0
  40. package/locales/fr.js +0 -3
  41. package/locales/{fr.esm.js → fr.mjs} +0 -1
  42. package/locales/hu.d.ts +1 -0
  43. package/locales/hu.js +0 -3
  44. package/locales/{hu.esm.js → hu.mjs} +0 -1
  45. package/locales/hy.d.ts +1 -0
  46. package/locales/hy.js +0 -3
  47. package/locales/{hy.esm.js → hy.mjs} +0 -1
  48. package/locales/id.d.ts +1 -0
  49. package/locales/id.js +0 -3
  50. package/locales/{id.esm.js → id.mjs} +0 -1
  51. package/locales/it.d.ts +1 -0
  52. package/locales/it.js +0 -3
  53. package/locales/{it.esm.js → it.mjs} +0 -1
  54. package/locales/ja.d.ts +1 -0
  55. package/locales/ja.js +0 -3
  56. package/locales/{ja.esm.js → ja.mjs} +0 -1
  57. package/locales/ko.d.ts +1 -0
  58. package/locales/ko.js +0 -3
  59. package/locales/{ko.esm.js → ko.mjs} +0 -1
  60. package/locales/nl.d.ts +1 -0
  61. package/locales/nl.js +0 -3
  62. package/locales/{nl.esm.js → nl.mjs} +0 -1
  63. package/locales/no.d.ts +2 -1
  64. package/locales/no.js +0 -3
  65. package/locales/{no.esm.js → no.mjs} +0 -1
  66. package/locales/np.d.ts +1 -0
  67. package/locales/np.js +0 -3
  68. package/locales/{np.esm.js → np.mjs} +0 -1
  69. package/locales/pl.d.ts +1 -0
  70. package/locales/pl.js +0 -3
  71. package/locales/{pl.esm.js → pl.mjs} +0 -1
  72. package/locales/pt-BR.d.ts +1 -0
  73. package/locales/pt-BR.js +0 -3
  74. package/locales/{pt-BR.esm.js → pt-BR.mjs} +0 -1
  75. package/locales/pt.d.ts +1 -0
  76. package/locales/pt.js +0 -3
  77. package/locales/{pt.esm.js → pt.mjs} +0 -1
  78. package/locales/ro.d.ts +1 -0
  79. package/locales/ro.js +0 -3
  80. package/locales/{ro.esm.js → ro.mjs} +0 -1
  81. package/locales/ru.d.ts +1 -0
  82. package/locales/ru.js +0 -3
  83. package/locales/{ru.esm.js → ru.mjs} +0 -1
  84. package/locales/sk.d.ts +1 -0
  85. package/locales/sk.js +0 -3
  86. package/locales/{sk.esm.js → sk.mjs} +0 -1
  87. package/locales/sr-Cyrl-RS.d.ts +1 -0
  88. package/locales/sr-Cyrl-RS.js +0 -3
  89. package/locales/{sr-Cyrl-RS.esm.js → sr-Cyrl-RS.mjs} +0 -1
  90. package/locales/sr-Latn-RS.d.ts +1 -0
  91. package/locales/sr-Latn-RS.js +0 -3
  92. package/locales/{sr-Latn-RS.esm.js → sr-Latn-RS.mjs} +0 -1
  93. package/locales/sv.d.ts +1 -0
  94. package/locales/sv.js +0 -3
  95. package/locales/{sv.esm.js → sv.mjs} +0 -1
  96. package/locales/tr.d.ts +1 -0
  97. package/locales/tr.js +0 -3
  98. package/locales/{tr.esm.js → tr.mjs} +0 -1
  99. package/locales/uk.d.ts +1 -0
  100. package/locales/uk.js +0 -3
  101. package/locales/{uk.esm.js → uk.mjs} +0 -1
  102. package/locales/vi.d.ts +1 -0
  103. package/locales/vi.js +0 -3
  104. package/locales/{vi.esm.js → vi.mjs} +0 -1
  105. package/locales/zh-Hans.d.ts +1 -0
  106. package/locales/zh-Hans.js +17 -20
  107. package/locales/{zh-Hans.esm.js → zh-Hans.mjs} +17 -18
  108. package/locales/zh-Hant.d.ts +1 -0
  109. package/locales/zh-Hant.js +0 -3
  110. package/locales/{zh-Hant.esm.js → zh-Hant.mjs} +0 -1
  111. package/package.json +215 -32
  112. package/src/MaterialReactTable.tsx +5 -4
  113. package/src/body/MRT_TableBody.tsx +14 -8
  114. package/src/body/MRT_TableBodyCell.tsx +77 -70
  115. package/src/body/MRT_TableBodyCellValue.tsx +13 -9
  116. package/src/body/MRT_TableBodyRow.tsx +26 -15
  117. package/src/body/MRT_TableBodyRowGrabHandle.tsx +16 -7
  118. package/src/body/MRT_TableBodyRowPinButton.tsx +18 -7
  119. package/src/body/MRT_TableDetailPanel.tsx +19 -11
  120. package/src/buttons/MRT_ColumnPinningButtons.tsx +21 -8
  121. package/src/buttons/MRT_CopyButton.tsx +12 -11
  122. package/src/buttons/MRT_EditActionButtons.tsx +17 -7
  123. package/src/buttons/MRT_ExpandAllButton.tsx +13 -11
  124. package/src/buttons/MRT_ExpandButton.tsx +10 -8
  125. package/src/buttons/MRT_GrabHandleButton.tsx +10 -8
  126. package/src/buttons/MRT_RowPinButton.tsx +14 -7
  127. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  128. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +4 -6
  129. package/src/buttons/MRT_ToggleFiltersButton.tsx +4 -4
  130. package/src/buttons/MRT_ToggleFullScreenButton.tsx +3 -4
  131. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -6
  132. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +15 -9
  133. package/src/column.utils.ts +46 -141
  134. package/src/filterFns.ts +15 -14
  135. package/src/footer/MRT_TableFooter.tsx +11 -7
  136. package/src/footer/MRT_TableFooterCell.tsx +21 -16
  137. package/src/footer/MRT_TableFooterRow.tsx +14 -9
  138. package/src/head/MRT_TableHead.tsx +10 -6
  139. package/src/head/MRT_TableHeadCell.tsx +102 -91
  140. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +13 -12
  141. package/src/head/MRT_TableHeadCellFilterContainer.tsx +10 -6
  142. package/src/head/MRT_TableHeadCellFilterLabel.tsx +15 -9
  143. package/src/head/MRT_TableHeadCellGrabHandle.tsx +10 -3
  144. package/src/head/MRT_TableHeadCellResizeHandle.tsx +14 -9
  145. package/src/head/MRT_TableHeadCellSortLabel.tsx +38 -18
  146. package/src/head/MRT_TableHeadRow.tsx +15 -9
  147. package/src/hooks/useMRT_DisplayColumns.tsx +14 -10
  148. package/src/hooks/useMRT_Effects.ts +6 -2
  149. package/src/hooks/useMRT_TableInstance.ts +3 -2
  150. package/src/hooks/useMRT_TableOptions.ts +29 -4
  151. package/src/index.ts +1 -0
  152. package/src/inputs/MRT_EditCellTextField.tsx +18 -4
  153. package/src/inputs/MRT_FilterCheckbox.tsx +10 -5
  154. package/src/inputs/MRT_FilterRangeFields.tsx +19 -5
  155. package/src/inputs/MRT_FilterRangeSlider.tsx +10 -4
  156. package/src/inputs/MRT_FilterTextField.tsx +13 -5
  157. package/src/inputs/MRT_GlobalFilterTextField.tsx +27 -10
  158. package/src/inputs/MRT_SelectCheckbox.tsx +14 -7
  159. package/src/locales/az.ts +94 -0
  160. package/src/locales/no.ts +1 -1
  161. package/src/locales/zh-Hans.ts +17 -17
  162. package/src/menus/MRT_ColumnActionMenu.tsx +10 -4
  163. package/src/menus/MRT_FilterOptionMenu.tsx +6 -3
  164. package/src/menus/MRT_RowActionMenu.tsx +10 -4
  165. package/src/menus/MRT_ShowHideColumnsMenu.tsx +10 -4
  166. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +17 -10
  167. package/src/modals/MRT_EditRowModal.tsx +17 -11
  168. package/src/sortingFns.ts +3 -3
  169. package/src/style.utils.ts +149 -0
  170. package/src/table/MRT_Table.tsx +28 -34
  171. package/src/table/MRT_TableContainer.tsx +17 -46
  172. package/src/table/MRT_TableLoadingOverlay.tsx +54 -0
  173. package/src/table/MRT_TablePaper.tsx +13 -6
  174. package/src/table/index.ts +1 -0
  175. package/src/toolbar/MRT_BottomToolbar.tsx +16 -14
  176. package/src/toolbar/MRT_LinearProgressBar.tsx +16 -10
  177. package/src/toolbar/MRT_TablePagination.tsx +20 -10
  178. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +11 -7
  179. package/src/toolbar/MRT_ToolbarDropZone.tsx +8 -4
  180. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -6
  181. package/src/toolbar/MRT_TopToolbar.tsx +11 -24
  182. package/src/types.ts +98 -56
  183. package/src/useMaterialReactTable.ts +8 -7
  184. package/dist/cjs/index.js.map +0 -1
  185. package/dist/cjs/types/MaterialReactTable.d.ts +0 -7
  186. package/dist/cjs/types/aggregationFns.d.ts +0 -11
  187. package/dist/cjs/types/body/MRT_TableBody.d.ts +0 -12
  188. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +0 -15
  189. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +0 -7
  190. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +0 -18
  191. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -9
  192. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +0 -7
  193. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +0 -12
  194. package/dist/cjs/types/body/index.d.ts +0 -7
  195. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -7
  196. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +0 -9
  197. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +0 -8
  198. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +0 -6
  199. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +0 -7
  200. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  201. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +0 -9
  202. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  203. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  204. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  205. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  206. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  207. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -8
  208. package/dist/cjs/types/buttons/index.d.ts +0 -13
  209. package/dist/cjs/types/column.utils.d.ts +0 -148
  210. package/dist/cjs/types/filterFns.d.ts +0 -68
  211. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +0 -10
  212. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +0 -7
  213. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +0 -11
  214. package/dist/cjs/types/footer/index.d.ts +0 -3
  215. package/dist/cjs/types/head/MRT_TableHead.d.ts +0 -10
  216. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +0 -7
  217. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -7
  218. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -7
  219. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -7
  220. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -9
  221. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -7
  222. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -9
  223. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +0 -11
  224. package/dist/cjs/types/head/index.d.ts +0 -9
  225. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  226. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +0 -2
  227. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +0 -2
  228. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +0 -2
  229. package/dist/cjs/types/icons.d.ts +0 -36
  230. package/dist/cjs/types/index.d.ts +0 -16
  231. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +0 -7
  232. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +0 -7
  233. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +0 -7
  234. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +0 -7
  235. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +0 -8
  236. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -6
  237. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +0 -8
  238. package/dist/cjs/types/inputs/index.d.ts +0 -7
  239. package/dist/cjs/types/locales/ar.d.ts +0 -2
  240. package/dist/cjs/types/locales/bg.d.ts +0 -2
  241. package/dist/cjs/types/locales/cs.d.ts +0 -2
  242. package/dist/cjs/types/locales/da.d.ts +0 -2
  243. package/dist/cjs/types/locales/de.d.ts +0 -2
  244. package/dist/cjs/types/locales/en.d.ts +0 -2
  245. package/dist/cjs/types/locales/es.d.ts +0 -2
  246. package/dist/cjs/types/locales/et.d.ts +0 -2
  247. package/dist/cjs/types/locales/fa.d.ts +0 -2
  248. package/dist/cjs/types/locales/fi.d.ts +0 -2
  249. package/dist/cjs/types/locales/fr.d.ts +0 -2
  250. package/dist/cjs/types/locales/hu.d.ts +0 -2
  251. package/dist/cjs/types/locales/hy.d.ts +0 -2
  252. package/dist/cjs/types/locales/id.d.ts +0 -2
  253. package/dist/cjs/types/locales/it.d.ts +0 -2
  254. package/dist/cjs/types/locales/ja.d.ts +0 -2
  255. package/dist/cjs/types/locales/ko.d.ts +0 -2
  256. package/dist/cjs/types/locales/nl.d.ts +0 -2
  257. package/dist/cjs/types/locales/no.d.ts +0 -2
  258. package/dist/cjs/types/locales/np.d.ts +0 -2
  259. package/dist/cjs/types/locales/pl.d.ts +0 -2
  260. package/dist/cjs/types/locales/pt-BR.d.ts +0 -2
  261. package/dist/cjs/types/locales/pt.d.ts +0 -2
  262. package/dist/cjs/types/locales/ro.d.ts +0 -2
  263. package/dist/cjs/types/locales/ru.d.ts +0 -2
  264. package/dist/cjs/types/locales/sk.d.ts +0 -2
  265. package/dist/cjs/types/locales/sr-Cyrl-RS.d.ts +0 -2
  266. package/dist/cjs/types/locales/sr-Latn-RS.d.ts +0 -2
  267. package/dist/cjs/types/locales/sv.d.ts +0 -2
  268. package/dist/cjs/types/locales/tr.d.ts +0 -2
  269. package/dist/cjs/types/locales/uk.d.ts +0 -2
  270. package/dist/cjs/types/locales/vi.d.ts +0 -2
  271. package/dist/cjs/types/locales/zh-Hans.d.ts +0 -2
  272. package/dist/cjs/types/locales/zh-Hant.d.ts +0 -2
  273. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +0 -19
  274. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +0 -12
  275. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +0 -11
  276. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -9
  277. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -11
  278. package/dist/cjs/types/menus/index.d.ts +0 -5
  279. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +0 -7
  280. package/dist/cjs/types/modals/index.d.ts +0 -1
  281. package/dist/cjs/types/sortingFns.d.ts +0 -12
  282. package/dist/cjs/types/table/MRT_Table.d.ts +0 -6
  283. package/dist/cjs/types/table/MRT_TableContainer.d.ts +0 -6
  284. package/dist/cjs/types/table/MRT_TablePaper.d.ts +0 -6
  285. package/dist/cjs/types/table/index.d.ts +0 -4
  286. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +0 -6
  287. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +0 -7
  288. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +0 -7
  289. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -7
  290. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -6
  291. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -6
  292. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +0 -21
  293. package/dist/cjs/types/toolbar/index.d.ts +0 -7
  294. package/dist/cjs/types/types.d.ts +0 -818
  295. package/dist/cjs/types/useMaterialReactTable.d.ts +0 -2
  296. package/dist/esm/material-react-table.esm.js.map +0 -1
  297. package/dist/esm/types/MaterialReactTable.d.ts +0 -7
  298. package/dist/esm/types/aggregationFns.d.ts +0 -11
  299. package/dist/esm/types/body/MRT_TableBody.d.ts +0 -12
  300. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +0 -15
  301. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +0 -7
  302. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +0 -18
  303. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +0 -9
  304. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +0 -7
  305. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +0 -12
  306. package/dist/esm/types/body/index.d.ts +0 -7
  307. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +0 -7
  308. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +0 -9
  309. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +0 -8
  310. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +0 -6
  311. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +0 -7
  312. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +0 -12
  313. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +0 -9
  314. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +0 -7
  315. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +0 -7
  316. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +0 -7
  317. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +0 -7
  318. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +0 -7
  319. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +0 -8
  320. package/dist/esm/types/buttons/index.d.ts +0 -13
  321. package/dist/esm/types/column.utils.d.ts +0 -148
  322. package/dist/esm/types/filterFns.d.ts +0 -68
  323. package/dist/esm/types/footer/MRT_TableFooter.d.ts +0 -10
  324. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +0 -7
  325. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +0 -11
  326. package/dist/esm/types/footer/index.d.ts +0 -3
  327. package/dist/esm/types/head/MRT_TableHead.d.ts +0 -10
  328. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +0 -7
  329. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +0 -7
  330. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +0 -7
  331. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +0 -7
  332. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +0 -9
  333. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +0 -7
  334. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +0 -9
  335. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +0 -11
  336. package/dist/esm/types/head/index.d.ts +0 -9
  337. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +0 -9
  338. package/dist/esm/types/hooks/useMRT_Effects.d.ts +0 -2
  339. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +0 -2
  340. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +0 -2
  341. package/dist/esm/types/icons.d.ts +0 -36
  342. package/dist/esm/types/index.d.ts +0 -16
  343. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +0 -7
  344. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +0 -7
  345. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +0 -7
  346. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +0 -7
  347. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +0 -8
  348. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +0 -6
  349. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +0 -8
  350. package/dist/esm/types/inputs/index.d.ts +0 -7
  351. package/dist/esm/types/locales/ar.d.ts +0 -2
  352. package/dist/esm/types/locales/bg.d.ts +0 -2
  353. package/dist/esm/types/locales/cs.d.ts +0 -2
  354. package/dist/esm/types/locales/da.d.ts +0 -2
  355. package/dist/esm/types/locales/de.d.ts +0 -2
  356. package/dist/esm/types/locales/en.d.ts +0 -2
  357. package/dist/esm/types/locales/es.d.ts +0 -2
  358. package/dist/esm/types/locales/et.d.ts +0 -2
  359. package/dist/esm/types/locales/fa.d.ts +0 -2
  360. package/dist/esm/types/locales/fi.d.ts +0 -2
  361. package/dist/esm/types/locales/fr.d.ts +0 -2
  362. package/dist/esm/types/locales/hu.d.ts +0 -2
  363. package/dist/esm/types/locales/hy.d.ts +0 -2
  364. package/dist/esm/types/locales/id.d.ts +0 -2
  365. package/dist/esm/types/locales/it.d.ts +0 -2
  366. package/dist/esm/types/locales/ja.d.ts +0 -2
  367. package/dist/esm/types/locales/ko.d.ts +0 -2
  368. package/dist/esm/types/locales/nl.d.ts +0 -2
  369. package/dist/esm/types/locales/no.d.ts +0 -2
  370. package/dist/esm/types/locales/np.d.ts +0 -2
  371. package/dist/esm/types/locales/pl.d.ts +0 -2
  372. package/dist/esm/types/locales/pt-BR.d.ts +0 -2
  373. package/dist/esm/types/locales/pt.d.ts +0 -2
  374. package/dist/esm/types/locales/ro.d.ts +0 -2
  375. package/dist/esm/types/locales/ru.d.ts +0 -2
  376. package/dist/esm/types/locales/sk.d.ts +0 -2
  377. package/dist/esm/types/locales/sr-Cyrl-RS.d.ts +0 -2
  378. package/dist/esm/types/locales/sr-Latn-RS.d.ts +0 -2
  379. package/dist/esm/types/locales/sv.d.ts +0 -2
  380. package/dist/esm/types/locales/tr.d.ts +0 -2
  381. package/dist/esm/types/locales/uk.d.ts +0 -2
  382. package/dist/esm/types/locales/vi.d.ts +0 -2
  383. package/dist/esm/types/locales/zh-Hans.d.ts +0 -2
  384. package/dist/esm/types/locales/zh-Hant.d.ts +0 -2
  385. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +0 -19
  386. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +0 -12
  387. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +0 -11
  388. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +0 -9
  389. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +0 -11
  390. package/dist/esm/types/menus/index.d.ts +0 -5
  391. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +0 -7
  392. package/dist/esm/types/modals/index.d.ts +0 -1
  393. package/dist/esm/types/sortingFns.d.ts +0 -12
  394. package/dist/esm/types/table/MRT_Table.d.ts +0 -6
  395. package/dist/esm/types/table/MRT_TableContainer.d.ts +0 -6
  396. package/dist/esm/types/table/MRT_TablePaper.d.ts +0 -6
  397. package/dist/esm/types/table/index.d.ts +0 -4
  398. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +0 -6
  399. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +0 -7
  400. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +0 -7
  401. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +0 -7
  402. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +0 -6
  403. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +0 -6
  404. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +0 -21
  405. package/dist/esm/types/toolbar/index.d.ts +0 -7
  406. package/dist/esm/types/types.d.ts +0 -818
  407. package/dist/esm/types/useMaterialReactTable.d.ts +0 -2
  408. package/locales/ar.esm.d.ts +0 -2
  409. package/locales/ar.esm.js.map +0 -1
  410. package/locales/ar.js.map +0 -1
  411. package/locales/bg.esm.d.ts +0 -2
  412. package/locales/bg.esm.js.map +0 -1
  413. package/locales/bg.js.map +0 -1
  414. package/locales/cs.esm.d.ts +0 -2
  415. package/locales/cs.esm.js.map +0 -1
  416. package/locales/cs.js.map +0 -1
  417. package/locales/da.esm.d.ts +0 -2
  418. package/locales/da.esm.js.map +0 -1
  419. package/locales/da.js.map +0 -1
  420. package/locales/de.esm.d.ts +0 -2
  421. package/locales/de.esm.js.map +0 -1
  422. package/locales/de.js.map +0 -1
  423. package/locales/en.esm.d.ts +0 -2
  424. package/locales/en.esm.js.map +0 -1
  425. package/locales/en.js.map +0 -1
  426. package/locales/es.esm.d.ts +0 -2
  427. package/locales/es.esm.js.map +0 -1
  428. package/locales/es.js.map +0 -1
  429. package/locales/et.esm.d.ts +0 -2
  430. package/locales/et.esm.js.map +0 -1
  431. package/locales/et.js.map +0 -1
  432. package/locales/fa.esm.d.ts +0 -2
  433. package/locales/fa.esm.js.map +0 -1
  434. package/locales/fa.js.map +0 -1
  435. package/locales/fi.esm.d.ts +0 -2
  436. package/locales/fi.esm.js.map +0 -1
  437. package/locales/fi.js.map +0 -1
  438. package/locales/fr.esm.d.ts +0 -2
  439. package/locales/fr.esm.js.map +0 -1
  440. package/locales/fr.js.map +0 -1
  441. package/locales/hu.esm.d.ts +0 -2
  442. package/locales/hu.esm.js.map +0 -1
  443. package/locales/hu.js.map +0 -1
  444. package/locales/hy.esm.d.ts +0 -2
  445. package/locales/hy.esm.js.map +0 -1
  446. package/locales/hy.js.map +0 -1
  447. package/locales/id.esm.d.ts +0 -2
  448. package/locales/id.esm.js.map +0 -1
  449. package/locales/id.js.map +0 -1
  450. package/locales/it.esm.d.ts +0 -2
  451. package/locales/it.esm.js.map +0 -1
  452. package/locales/it.js.map +0 -1
  453. package/locales/ja.esm.d.ts +0 -2
  454. package/locales/ja.esm.js.map +0 -1
  455. package/locales/ja.js.map +0 -1
  456. package/locales/ko.esm.d.ts +0 -2
  457. package/locales/ko.esm.js.map +0 -1
  458. package/locales/ko.js.map +0 -1
  459. package/locales/nl.esm.d.ts +0 -2
  460. package/locales/nl.esm.js.map +0 -1
  461. package/locales/nl.js.map +0 -1
  462. package/locales/no.esm.d.ts +0 -2
  463. package/locales/no.esm.js.map +0 -1
  464. package/locales/no.js.map +0 -1
  465. package/locales/np.esm.d.ts +0 -2
  466. package/locales/np.esm.js.map +0 -1
  467. package/locales/np.js.map +0 -1
  468. package/locales/pl.esm.d.ts +0 -2
  469. package/locales/pl.esm.js.map +0 -1
  470. package/locales/pl.js.map +0 -1
  471. package/locales/pt-BR.esm.d.ts +0 -2
  472. package/locales/pt-BR.esm.js.map +0 -1
  473. package/locales/pt-BR.js.map +0 -1
  474. package/locales/pt.esm.d.ts +0 -2
  475. package/locales/pt.esm.js.map +0 -1
  476. package/locales/pt.js.map +0 -1
  477. package/locales/ro.esm.d.ts +0 -2
  478. package/locales/ro.esm.js.map +0 -1
  479. package/locales/ro.js.map +0 -1
  480. package/locales/ru.esm.d.ts +0 -2
  481. package/locales/ru.esm.js.map +0 -1
  482. package/locales/ru.js.map +0 -1
  483. package/locales/sk.esm.d.ts +0 -2
  484. package/locales/sk.esm.js.map +0 -1
  485. package/locales/sk.js.map +0 -1
  486. package/locales/sr-Cyrl-RS.esm.d.ts +0 -2
  487. package/locales/sr-Cyrl-RS.esm.js.map +0 -1
  488. package/locales/sr-Cyrl-RS.js.map +0 -1
  489. package/locales/sr-Latn-RS.esm.d.ts +0 -2
  490. package/locales/sr-Latn-RS.esm.js.map +0 -1
  491. package/locales/sr-Latn-RS.js.map +0 -1
  492. package/locales/sv.esm.d.ts +0 -2
  493. package/locales/sv.esm.js.map +0 -1
  494. package/locales/sv.js.map +0 -1
  495. package/locales/tr.esm.d.ts +0 -2
  496. package/locales/tr.esm.js.map +0 -1
  497. package/locales/tr.js.map +0 -1
  498. package/locales/uk.esm.d.ts +0 -2
  499. package/locales/uk.esm.js.map +0 -1
  500. package/locales/uk.js.map +0 -1
  501. package/locales/vi.esm.d.ts +0 -2
  502. package/locales/vi.esm.js.map +0 -1
  503. package/locales/vi.js.map +0 -1
  504. package/locales/zh-Hans.esm.d.ts +0 -2
  505. package/locales/zh-Hans.esm.js.map +0 -1
  506. package/locales/zh-Hans.js.map +0 -1
  507. package/locales/zh-Hant.esm.d.ts +0 -2
  508. package/locales/zh-Hant.esm.js.map +0 -1
  509. package/locales/zh-Hant.js.map +0 -1
@@ -7,16 +7,21 @@ import {
7
7
  } from 'react';
8
8
  import Box from '@mui/material/Box';
9
9
  import FormControlLabel from '@mui/material/FormControlLabel';
10
- import MenuItem from '@mui/material/MenuItem';
10
+ import MenuItem, { type MenuItemProps } from '@mui/material/MenuItem';
11
11
  import Switch from '@mui/material/Switch';
12
12
  import Tooltip from '@mui/material/Tooltip';
13
13
  import Typography from '@mui/material/Typography';
14
14
  import { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';
15
15
  import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
16
- import { reorderColumn } from '../column.utils';
17
- import { type MRT_Column, type MRT_TableInstance } from '../types';
16
+ import { parseFromValuesOrFunc, reorderColumn } from '../column.utils';
17
+ import { getMRTTheme } from '../style.utils';
18
+ import {
19
+ type MRT_Column,
20
+ type MRT_RowData,
21
+ type MRT_TableInstance,
22
+ } from '../types';
18
23
 
19
- interface Props<TData extends Record<string, any>> {
24
+ interface Props<TData extends MRT_RowData> extends MenuItemProps {
20
25
  allColumns: MRT_Column<TData>[];
21
26
  column: MRT_Column<TData>;
22
27
  hoveredColumn: MRT_Column<TData> | null;
@@ -24,14 +29,13 @@ interface Props<TData extends Record<string, any>> {
24
29
  table: MRT_TableInstance<TData>;
25
30
  }
26
31
 
27
- export const MRT_ShowHideColumnsMenuItems = <
28
- TData extends Record<string, any>,
29
- >({
32
+ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
30
33
  allColumns,
31
34
  column,
32
35
  hoveredColumn,
33
36
  setHoveredColumn,
34
37
  table,
38
+ ...rest
35
39
  }: Props<TData>) => {
36
40
  const {
37
41
  getState,
@@ -85,25 +89,29 @@ export const MRT_ShowHideColumnsMenuItems = <
85
89
  }
86
90
  };
87
91
 
92
+ if (!columnDef.header) return null;
93
+
88
94
  return (
89
95
  <>
90
96
  <MenuItem
91
97
  disableRipple
92
98
  onDragEnter={handleDragEnter}
93
99
  ref={menuItemRef as any}
100
+ {...rest}
94
101
  sx={(theme) => ({
95
102
  alignItems: 'center',
96
103
  justifyContent: 'flex-start',
97
104
  my: 0,
98
105
  opacity: isDragging ? 0.5 : 1,
99
106
  outline: isDragging
100
- ? `2px dashed ${theme.palette.divider}`
107
+ ? `2px dashed ${theme.palette.grey[500]}`
101
108
  : hoveredColumn?.id === column.id
102
- ? `2px dashed ${theme.palette.primary.main}`
109
+ ? `2px dashed ${getMRTTheme(table, theme).draggingBorderColor}`
103
110
  : 'none',
104
111
  outlineOffset: '-2px',
105
112
  pl: `${(column.depth + 0.5) * 2}rem`,
106
113
  py: '6px',
114
+ ...(parseFromValuesOrFunc(rest?.sx, theme) as any),
107
115
  })}
108
116
  >
109
117
  <Box
@@ -146,7 +154,6 @@ export const MRT_ShowHideColumnsMenuItems = <
146
154
  }}
147
155
  control={
148
156
  <Tooltip
149
- arrow
150
157
  enterDelay={1000}
151
158
  enterNextDelay={1000}
152
159
  title={localization.toggleVisibility}
@@ -1,4 +1,4 @@
1
- import Dialog from '@mui/material/Dialog';
1
+ import Dialog, { type DialogProps } from '@mui/material/Dialog';
2
2
  import DialogActions from '@mui/material/DialogActions';
3
3
  import DialogContent from '@mui/material/DialogContent';
4
4
  import DialogTitle from '@mui/material/DialogTitle';
@@ -6,27 +6,32 @@ import Stack from '@mui/material/Stack';
6
6
  import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons';
7
7
  import { parseFromValuesOrFunc } from '../column.utils';
8
8
  import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
9
- import { type MRT_Row, type MRT_TableInstance } from '../types';
9
+ import {
10
+ type MRT_Row,
11
+ type MRT_RowData,
12
+ type MRT_TableInstance,
13
+ } from '../types';
10
14
 
11
- interface Props<TData extends Record<string, any>> {
15
+ interface Props<TData extends MRT_RowData> extends Partial<DialogProps> {
12
16
  open: boolean;
13
17
  table: MRT_TableInstance<TData>;
14
18
  }
15
19
 
16
- export const MRT_EditRowModal = <TData extends Record<string, any>>({
20
+ export const MRT_EditRowModal = <TData extends MRT_RowData>({
17
21
  open,
18
22
  table,
23
+ ...rest
19
24
  }: Props<TData>) => {
20
25
  const {
21
26
  getState,
22
27
  options: {
23
28
  localization,
24
29
  muiCreateRowModalProps,
25
- muiEditRowModalProps,
30
+ muiEditRowDialogProps,
26
31
  onCreatingRowCancel,
27
32
  onEditingRowCancel,
28
- renderCreateRowModalContent,
29
- renderEditRowModalContent,
33
+ renderCreateRowDialogContent,
34
+ renderEditRowDialogContent,
30
35
  },
31
36
  setCreatingRow,
32
37
  setEditingRow,
@@ -35,9 +40,10 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
35
40
  const row = (creatingRow ?? editingRow) as MRT_Row<TData>;
36
41
 
37
42
  const dialogProps = {
38
- ...parseFromValuesOrFunc(muiEditRowModalProps, { row, table }),
43
+ ...parseFromValuesOrFunc(muiEditRowDialogProps, { row, table }),
39
44
  ...(creatingRow &&
40
45
  parseFromValuesOrFunc(muiCreateRowModalProps, { row, table })),
46
+ ...rest,
41
47
  };
42
48
 
43
49
  const internalEditComponents = row
@@ -70,12 +76,12 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
70
76
  {...dialogProps}
71
77
  >
72
78
  {((creatingRow &&
73
- renderCreateRowModalContent?.({
79
+ renderCreateRowDialogContent?.({
74
80
  internalEditComponents,
75
81
  row,
76
82
  table,
77
83
  })) ||
78
- renderEditRowModalContent?.({
84
+ renderEditRowDialogContent?.({
79
85
  internalEditComponents,
80
86
  row,
81
87
  table,
@@ -88,7 +94,7 @@ export const MRT_EditRowModal = <TData extends Record<string, any>>({
88
94
  <form onSubmit={(e) => e.preventDefault()}>
89
95
  <Stack
90
96
  sx={{
91
- gap: '24px',
97
+ gap: '32px',
92
98
  paddingTop: '16px',
93
99
  width: '100%',
94
100
  }}
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: 9999,
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';