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
@@ -7,40 +7,44 @@ import {
7
7
  useMemo,
8
8
  useState,
9
9
  } from 'react';
10
- import { type VirtualItem } from '@tanstack/react-virtual';
11
10
  import Skeleton from '@mui/material/Skeleton';
12
- import TableCell from '@mui/material/TableCell';
11
+ import TableCell, { type TableCellProps } from '@mui/material/TableCell';
13
12
  import { useTheme } from '@mui/material/styles';
14
13
  import { MRT_TableBodyCellValue } from './MRT_TableBodyCellValue';
15
14
  import { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';
16
15
  import { MRT_CopyButton } from '../buttons/MRT_CopyButton';
17
16
  import {
18
- getCommonCellStyles,
19
17
  getIsFirstColumn,
20
18
  getIsLastColumn,
21
19
  parseFromValuesOrFunc,
22
20
  } from '../column.utils';
23
21
  import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
24
- import { type MRT_Cell, type MRT_TableInstance } from '../types';
22
+ import { getCommonMRTCellStyles, getMRTTheme } from '../style.utils';
23
+ import {
24
+ type MRT_Cell,
25
+ type MRT_RowData,
26
+ type MRT_TableInstance,
27
+ } from '../types';
25
28
 
26
- interface Props<TData extends Record<string, any>> {
29
+ interface Props<TData extends MRT_RowData> extends TableCellProps {
27
30
  cell: MRT_Cell<TData>;
28
31
  measureElement?: (element: HTMLTableCellElement) => void;
29
- numRows: number;
32
+ numRows?: number;
30
33
  rowIndex: number;
31
34
  rowRef: RefObject<HTMLTableRowElement>;
32
35
  table: MRT_TableInstance<TData>;
33
- virtualCell?: VirtualItem;
36
+ virtualIndex?: number;
34
37
  }
35
38
 
36
- export const MRT_TableBodyCell = <TData extends Record<string, any>>({
39
+ export const MRT_TableBodyCell = <TData extends MRT_RowData>({
37
40
  cell,
38
41
  measureElement,
39
42
  numRows,
40
43
  rowIndex,
41
44
  rowRef,
42
45
  table,
43
- virtualCell,
46
+ virtualIndex,
47
+ ...rest
44
48
  }: Props<TData>) => {
45
49
  const theme = useTheme();
46
50
  const {
@@ -63,6 +67,7 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
63
67
  setHoveredColumn,
64
68
  } = table;
65
69
  const {
70
+ columnSizingInfo,
66
71
  creatingRow,
67
72
  density,
68
73
  draggingColumn,
@@ -78,19 +83,11 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
78
83
  const { columnDef } = column;
79
84
  const { columnDefType } = columnDef;
80
85
 
86
+ const args = { cell, column, row, table };
81
87
  const tableCellProps = {
82
- ...parseFromValuesOrFunc(muiTableBodyCellProps, {
83
- cell,
84
- column,
85
- row,
86
- table,
87
- }),
88
- ...parseFromValuesOrFunc(columnDef.muiTableBodyCellProps, {
89
- cell,
90
- column,
91
- row,
92
- table,
93
- }),
88
+ ...parseFromValuesOrFunc(muiTableBodyCellProps, args),
89
+ ...parseFromValuesOrFunc(columnDef.muiTableBodyCellProps, args),
90
+ ...rest,
94
91
  };
95
92
 
96
93
  const skeletonProps = parseFromValuesOrFunc(muiSkeletonProps, {
@@ -100,6 +97,8 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
100
97
  table,
101
98
  });
102
99
 
100
+ const { draggingBorderColor } = getMRTTheme(table, theme);
101
+
103
102
  const [skeletonWidth, setSkeletonWidth] = useState(100);
104
103
  useEffect(() => {
105
104
  if ((!isLoading && !showSkeletons) || skeletonWidth !== 100) return;
@@ -118,15 +117,23 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
118
117
  const isHoveredRow = hoveredRow?.id === row.id;
119
118
  const isFirstColumn = getIsFirstColumn(column, table);
120
119
  const isLastColumn = getIsLastColumn(column, table);
121
- const isLastRow = rowIndex === numRows - 1;
120
+ const isLastRow = numRows && rowIndex === numRows - 1;
122
121
 
123
122
  const borderStyle =
124
- isDraggingColumn || isDraggingRow
125
- ? `1px dashed ${theme.palette.text.secondary} !important`
126
- : isHoveredColumn || isHoveredRow
127
- ? `2px dashed ${theme.palette.primary.main} !important`
123
+ columnSizingInfo.isResizingColumn === column.id
124
+ ? `2px solid ${draggingBorderColor} !important`
125
+ : isDraggingColumn || isDraggingRow
126
+ ? `1px dashed ${theme.palette.grey[500]} !important`
127
+ : isHoveredColumn ||
128
+ isHoveredRow ||
129
+ columnSizingInfo.isResizingColumn === column.id
130
+ ? `2px dashed ${draggingBorderColor} !important`
128
131
  : undefined;
129
132
 
133
+ if (columnSizingInfo.isResizingColumn === column.id) {
134
+ return { borderRight: borderStyle };
135
+ }
136
+
130
137
  return borderStyle
131
138
  ? {
132
139
  borderBottom:
@@ -148,7 +155,14 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
148
155
  borderTop: isDraggingRow || isHoveredRow ? borderStyle : undefined,
149
156
  }
150
157
  : undefined;
151
- }, [draggingColumn, draggingRow, hoveredColumn, hoveredRow, rowIndex]);
158
+ }, [
159
+ columnSizingInfo.isResizingColumn,
160
+ draggingColumn,
161
+ draggingRow,
162
+ hoveredColumn,
163
+ hoveredRow,
164
+ rowIndex,
165
+ ]);
152
166
 
153
167
  const isEditable =
154
168
  parseFromValuesOrFunc(enableEditing, row) &&
@@ -193,7 +207,7 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
193
207
 
194
208
  return (
195
209
  <TableCell
196
- data-index={virtualCell?.index}
210
+ data-index={virtualIndex}
197
211
  ref={(node: HTMLTableCellElement) => {
198
212
  if (node) {
199
213
  measureElement?.(node);
@@ -204,9 +218,10 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
204
218
  onDragEnter={handleDragEnter}
205
219
  sx={(theme) => ({
206
220
  '&:hover': {
207
- outline: ['cell', 'table'].includes(editDisplayMode ?? '')
208
- ? `1px solid ${theme.palette.text.secondary}`
209
- : undefined,
221
+ outline:
222
+ ['cell', 'table'].includes(editDisplayMode ?? '') && isEditable
223
+ ? `1px solid ${theme.palette.grey[500]}`
224
+ : undefined,
210
225
  outlineOffset: '-1px',
211
226
  textOverflow: 'clip',
212
227
  },
@@ -229,7 +244,8 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
229
244
  : columnDefType === 'display'
230
245
  ? '1rem 1.25rem'
231
246
  : '1.5rem',
232
- pl:
247
+ textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,
248
+ [theme.direction === 'rtl' ? 'pr' : 'pl']:
233
249
  column.id === 'mrt-row-expand'
234
250
  ? `${
235
251
  row.depth +
@@ -240,12 +256,11 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
240
256
  : 1.25)
241
257
  }rem`
242
258
  : undefined,
243
- textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,
244
259
  whiteSpace:
245
260
  row.getIsPinned() || density === 'compact' ? 'nowrap' : 'normal',
246
261
  zIndex:
247
262
  draggingColumn?.id === column.id ? 2 : column.getIsPinned() ? 1 : 0,
248
- ...getCommonCellStyles({
263
+ ...getCommonMRTCellStyles({
249
264
  column,
250
265
  table,
251
266
  tableCellProps,
@@ -254,47 +269,53 @@ export const MRT_TableBodyCell = <TData extends Record<string, any>>({
254
269
  ...draggingBorders,
255
270
  })}
256
271
  >
257
- <>
258
- {cell.getIsPlaceholder() ? (
259
- columnDef.PlaceholderCell?.({ cell, column, row, table }) ?? null
260
- ) : isLoading || showSkeletons ? (
261
- <Skeleton
262
- animation="wave"
263
- height={20}
264
- width={skeletonWidth}
265
- {...skeletonProps}
266
- />
267
- ) : enableRowNumbers &&
268
- rowNumberMode === 'static' &&
269
- column.id === 'mrt-row-numbers' ? (
270
- rowIndex + 1
271
- ) : column.id === 'mrt-row-drag' ? (
272
- <MRT_TableBodyRowGrabHandle row={row} rowRef={rowRef} table={table} />
273
- ) : columnDefType === 'display' &&
274
- (column.id === 'mrt-row-select' ||
275
- column.id === 'mrt-row-expand' ||
276
- !row.getIsGrouped()) ? (
277
- columnDef.Cell?.({
278
- cell,
279
- column,
280
- renderedCellValue: cell.renderValue() as any,
281
- row,
282
- table,
283
- })
284
- ) : isCreating || isEditing ? (
285
- <MRT_EditCellTextField cell={cell} table={table} />
286
- ) : (enableClickToCopy || columnDef.enableClickToCopy) &&
287
- columnDef.enableClickToCopy !== false ? (
288
- <MRT_CopyButton cell={cell} table={table}>
272
+ {tableCellProps.children ?? (
273
+ <>
274
+ {cell.getIsPlaceholder() ? (
275
+ columnDef.PlaceholderCell?.({ cell, column, row, table }) ?? null
276
+ ) : showSkeletons !== false && (isLoading || showSkeletons) ? (
277
+ <Skeleton
278
+ animation="wave"
279
+ height={20}
280
+ width={skeletonWidth}
281
+ {...skeletonProps}
282
+ />
283
+ ) : enableRowNumbers &&
284
+ rowNumberMode === 'static' &&
285
+ column.id === 'mrt-row-numbers' ? (
286
+ rowIndex + 1
287
+ ) : column.id === 'mrt-row-drag' ? (
288
+ <MRT_TableBodyRowGrabHandle
289
+ row={row}
290
+ rowRef={rowRef}
291
+ table={table}
292
+ />
293
+ ) : columnDefType === 'display' &&
294
+ (column.id === 'mrt-row-select' ||
295
+ column.id === 'mrt-row-expand' ||
296
+ !row.getIsGrouped()) ? (
297
+ columnDef.Cell?.({
298
+ cell,
299
+ column,
300
+ renderedCellValue: cell.renderValue() as any,
301
+ row,
302
+ table,
303
+ })
304
+ ) : isCreating || isEditing ? (
305
+ <MRT_EditCellTextField cell={cell} table={table} />
306
+ ) : (enableClickToCopy || columnDef.enableClickToCopy) &&
307
+ columnDef.enableClickToCopy !== false ? (
308
+ <MRT_CopyButton cell={cell} table={table}>
309
+ <MRT_TableBodyCellValue cell={cell} table={table} />
310
+ </MRT_CopyButton>
311
+ ) : (
289
312
  <MRT_TableBodyCellValue cell={cell} table={table} />
290
- </MRT_CopyButton>
291
- ) : (
292
- <MRT_TableBodyCellValue cell={cell} table={table} />
293
- )}
294
- {cell.getIsGrouped() && !columnDef.GroupedCell && (
295
- <> ({row.subRows?.length})</>
296
- )}
297
- </>
313
+ )}
314
+ {cell.getIsGrouped() && !columnDef.GroupedCell && (
315
+ <> ({row.subRows?.length})</>
316
+ )}
317
+ </>
318
+ )}
298
319
  </TableCell>
299
320
  );
300
321
  };
@@ -1,17 +1,21 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import Box from '@mui/material/Box';
3
- import { darken, lighten } from '@mui/material/styles';
4
- import { type MRT_Cell, type MRT_TableInstance } from '../types';
3
+ import { getMRTTheme } from '../style.utils';
4
+ import {
5
+ type MRT_Cell,
6
+ type MRT_RowData,
7
+ type MRT_TableInstance,
8
+ } from '../types';
5
9
  import highlightWords from 'highlight-words';
6
10
 
7
11
  const allowedTypes = ['string', 'number'];
8
12
 
9
- interface Props<TData extends Record<string, any>> {
13
+ interface Props<TData extends MRT_RowData> {
10
14
  cell: MRT_Cell<TData>;
11
15
  table: MRT_TableInstance<TData>;
12
16
  }
13
17
 
14
- export const MRT_TableBodyCellValue = <TData extends Record<string, any>>({
18
+ export const MRT_TableBodyCellValue = <TData extends MRT_RowData>({
15
19
  cell,
16
20
  table,
17
21
  }: Props<TData>) => {
@@ -79,12 +83,12 @@ export const MRT_TableBodyCellValue = <TData extends Record<string, any>>({
79
83
  match
80
84
  ? {
81
85
  backgroundColor: (theme) =>
82
- theme.palette.mode === 'dark'
83
- ? darken(theme.palette.warning.dark, 0.25)
84
- : lighten(theme.palette.warning.light, 0.5),
86
+ getMRTTheme(table, theme).matchHighlightColor,
85
87
  borderRadius: '2px',
86
88
  color: (theme) =>
87
- theme.palette.mode === 'dark' ? 'white' : 'black',
89
+ theme.palette.mode === 'dark'
90
+ ? theme.palette.common.white
91
+ : theme.palette.common.black,
88
92
  padding: '2px 1px',
89
93
  }
90
94
  : undefined
@@ -108,5 +112,5 @@ export const MRT_TableBodyCellValue = <TData extends Record<string, any>>({
108
112
  });
109
113
  }
110
114
 
111
- return <>{renderedCellValue}</>;
115
+ return renderedCellValue;
112
116
  };
@@ -11,12 +11,18 @@ import {
11
11
  import { MRT_TableBodyCell, Memo_MRT_TableBodyCell } from './MRT_TableBodyCell';
12
12
  import { MRT_TableDetailPanel } from './MRT_TableDetailPanel';
13
13
  import { parseFromValuesOrFunc } from '../column.utils';
14
- import { type MRT_Cell, type MRT_Row, type MRT_TableInstance } from '../types';
14
+ import { getMRTTheme } from '../style.utils';
15
+ import {
16
+ type MRT_Cell,
17
+ type MRT_Row,
18
+ type MRT_RowData,
19
+ type MRT_TableInstance,
20
+ } from '../types';
15
21
 
16
- interface Props<TData extends Record<string, any>> {
22
+ interface Props<TData extends MRT_RowData> {
17
23
  columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
18
24
  measureElement?: (element: HTMLTableRowElement) => void;
19
- numRows: number;
25
+ numRows?: number;
20
26
  pinnedRowIds?: string[];
21
27
  row: MRT_Row<TData>;
22
28
  rowIndex: number;
@@ -27,7 +33,7 @@ interface Props<TData extends Record<string, any>> {
27
33
  virtualRow?: VirtualItem;
28
34
  }
29
35
 
30
- export const MRT_TableBodyRow = <TData extends Record<string, any>>({
36
+ export const MRT_TableBodyRow = <TData extends MRT_RowData>({
31
37
  columnVirtualizer,
32
38
  measureElement,
33
39
  numRows,
@@ -113,10 +119,18 @@ export const MRT_TableBodyRow = <TData extends Record<string, any>>({
113
119
 
114
120
  const rowRef = useRef<HTMLTableRowElement | null>(null);
115
121
 
122
+ const {
123
+ baseBackgroundColor,
124
+ pinnedRowBackgroundColor,
125
+ selectedRowBackgroundColor,
126
+ } = getMRTTheme(table, theme);
127
+
116
128
  return (
117
129
  <>
118
130
  <TableRow
119
131
  data-index={virtualRow?.index}
132
+ data-pinned={!!isPinned || undefined}
133
+ data-selected={row.getIsSelected() || undefined}
120
134
  onDragEnter={handleDragEnter}
121
135
  ref={(node: HTMLTableRowElement) => {
122
136
  if (node) {
@@ -137,16 +151,13 @@ export const MRT_TableBodyRow = <TData extends Record<string, any>>({
137
151
  backgroundColor:
138
152
  tableRowProps?.hover !== false
139
153
  ? row.getIsSelected()
140
- ? `${alpha(theme.palette.primary.main, 0.2)}`
154
+ ? `${alpha(selectedRowBackgroundColor, 0.3)}`
141
155
  : theme.palette.mode === 'dark'
142
- ? `${lighten(theme.palette.background.default, 0.12)}`
143
- : `${darken(theme.palette.background.default, 0.05)}`
156
+ ? `${lighten(baseBackgroundColor, 0.05)}`
157
+ : `${darken(baseBackgroundColor, 0.05)}`
144
158
  : undefined,
145
159
  },
146
- backgroundColor: `${lighten(
147
- theme.palette.background.default,
148
- 0.05,
149
- )} !important`,
160
+ backgroundColor: `${baseBackgroundColor} !important`,
150
161
  bottom:
151
162
  !virtualRow && bottomPinnedIndex !== undefined && isPinned
152
163
  ? `${
@@ -157,7 +168,7 @@ export const MRT_TableBodyRow = <TData extends Record<string, any>>({
157
168
  boxSizing: 'border-box',
158
169
  display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
159
170
  opacity: isPinned
160
- ? 0.98
171
+ ? 0.97
161
172
  : draggingRow?.id === row.id || hoveredRow?.id === row.id
162
173
  ? 0.5
163
174
  : 1,
@@ -168,9 +179,9 @@ export const MRT_TableBodyRow = <TData extends Record<string, any>>({
168
179
  : undefined,
169
180
  td: {
170
181
  backgroundColor: row.getIsSelected()
171
- ? alpha(theme.palette.primary.main, 0.2)
182
+ ? selectedRowBackgroundColor
172
183
  : isPinned
173
- ? alpha(theme.palette.primary.main, 0.1)
184
+ ? pinnedRowBackgroundColor
174
185
  : undefined,
175
186
  },
176
187
  top: virtualRow
@@ -204,8 +215,8 @@ export const MRT_TableBodyRow = <TData extends Record<string, any>>({
204
215
  rowIndex,
205
216
  rowRef,
206
217
  table,
207
- virtualCell: columnVirtualizer
208
- ? (cellOrVirtualCell as VirtualItem)
218
+ virtualIndex: columnVirtualizer
219
+ ? (cellOrVirtualCell as VirtualItem).index
209
220
  : undefined,
210
221
  };
211
222
  return cell ? (
@@ -1,27 +1,36 @@
1
1
  import { type DragEvent, type RefObject } from 'react';
2
+ import { type IconButtonProps } from '@mui/material/IconButton';
2
3
  import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
3
4
  import { parseFromValuesOrFunc } from '../column.utils';
4
- import { type MRT_Row, type MRT_TableInstance } from '../types';
5
+ import {
6
+ type MRT_Row,
7
+ type MRT_RowData,
8
+ type MRT_TableInstance,
9
+ } from '../types';
5
10
 
6
- interface Props<TData extends Record<string, any>> {
11
+ interface Props<TData extends MRT_RowData> extends IconButtonProps {
7
12
  row: MRT_Row<TData>;
8
13
  rowRef: RefObject<HTMLTableRowElement>;
9
14
  table: MRT_TableInstance<TData>;
10
15
  }
11
16
 
12
- export const MRT_TableBodyRowGrabHandle = <TData extends Record<string, any>>({
17
+ export const MRT_TableBodyRowGrabHandle = <TData extends MRT_RowData>({
13
18
  row,
14
19
  rowRef,
15
20
  table,
21
+ ...rest
16
22
  }: Props<TData>) => {
17
23
  const {
18
24
  options: { muiRowDragHandleProps },
19
25
  } = table;
20
26
 
21
- const iconButtonProps = parseFromValuesOrFunc(muiRowDragHandleProps, {
22
- row,
23
- table,
24
- });
27
+ const iconButtonProps = {
28
+ ...parseFromValuesOrFunc(muiRowDragHandleProps, {
29
+ row,
30
+ table,
31
+ }),
32
+ ...rest,
33
+ };
25
34
 
26
35
  const handleDragStart = (event: DragEvent<HTMLButtonElement>) => {
27
36
  iconButtonProps?.onDragStart?.(event);
@@ -1,16 +1,22 @@
1
1
  import Box from '@mui/material/Box';
2
+ import { type IconButtonProps } from '@mui/material/IconButton';
2
3
  import { MRT_RowPinButton } from '../buttons/MRT_RowPinButton';
3
4
  import { parseFromValuesOrFunc } from '../column.utils';
4
- import { type MRT_Row, type MRT_TableInstance } from '../types';
5
+ import {
6
+ type MRT_Row,
7
+ type MRT_RowData,
8
+ type MRT_TableInstance,
9
+ } from '../types';
5
10
 
6
- interface Props<TData extends Record<string, any>> {
11
+ interface Props<TData extends MRT_RowData> extends IconButtonProps {
7
12
  row: MRT_Row<TData>;
8
13
  table: MRT_TableInstance<TData>;
9
14
  }
10
15
 
11
- export const MRT_TableBodyRowPinButton = <TData extends Record<string, any>>({
16
+ export const MRT_TableBodyRowPinButton = <TData extends MRT_RowData>({
12
17
  row,
13
18
  table,
19
+ ...rest
14
20
  }: Props<TData>) => {
15
21
  const {
16
22
  getState,
@@ -22,6 +28,12 @@ export const MRT_TableBodyRowPinButton = <TData extends Record<string, any>>({
22
28
 
23
29
  if (!canPin) return null;
24
30
 
31
+ const rowPinButtonProps = {
32
+ row,
33
+ table,
34
+ ...rest,
35
+ };
36
+
25
37
  if (rowPinningDisplayMode === 'top-and-bottom' && !row.getIsPinned()) {
26
38
  return (
27
39
  <Box
@@ -30,8 +42,8 @@ export const MRT_TableBodyRowPinButton = <TData extends Record<string, any>>({
30
42
  flexDirection: density === 'compact' ? 'row' : 'column',
31
43
  }}
32
44
  >
33
- <MRT_RowPinButton pinningPosition="top" row={row} table={table} />
34
- <MRT_RowPinButton pinningPosition="bottom" row={row} table={table} />
45
+ <MRT_RowPinButton pinningPosition="top" {...rowPinButtonProps} />
46
+ <MRT_RowPinButton pinningPosition="bottom" {...rowPinButtonProps} />
35
47
  </Box>
36
48
  );
37
49
  }
@@ -39,8 +51,7 @@ export const MRT_TableBodyRowPinButton = <TData extends Record<string, any>>({
39
51
  return (
40
52
  <MRT_RowPinButton
41
53
  pinningPosition={rowPinningDisplayMode === 'bottom' ? 'bottom' : 'top'}
42
- row={row}
43
- table={table}
54
+ {...rowPinButtonProps}
44
55
  />
45
56
  );
46
57
  };
@@ -1,13 +1,17 @@
1
1
  import { type RefObject } from 'react';
2
2
  import { type VirtualItem } from '@tanstack/react-virtual';
3
3
  import Collapse from '@mui/material/Collapse';
4
- import TableCell from '@mui/material/TableCell';
4
+ import TableCell, { type TableCellProps } from '@mui/material/TableCell';
5
5
  import TableRow from '@mui/material/TableRow';
6
- import { lighten } from '@mui/material/styles';
7
6
  import { parseFromValuesOrFunc } from '../column.utils';
8
- import { type MRT_Row, type MRT_TableInstance } from '../types';
7
+ import { getMRTTheme } from '../style.utils';
8
+ import {
9
+ type MRT_Row,
10
+ type MRT_RowData,
11
+ type MRT_TableInstance,
12
+ } from '../types';
9
13
 
10
- interface Props<TData extends Record<string, any>> {
14
+ interface Props<TData extends MRT_RowData> extends TableCellProps {
11
15
  parentRowRef: RefObject<HTMLTableRowElement>;
12
16
  row: MRT_Row<TData>;
13
17
  rowIndex: number;
@@ -15,12 +19,13 @@ interface Props<TData extends Record<string, any>> {
15
19
  virtualRow?: VirtualItem;
16
20
  }
17
21
 
18
- export const MRT_TableDetailPanel = <TData extends Record<string, any>>({
22
+ export const MRT_TableDetailPanel = <TData extends MRT_RowData>({
19
23
  parentRowRef,
20
24
  row,
21
25
  rowIndex,
22
26
  table,
23
27
  virtualRow,
28
+ ...rest
24
29
  }: Props<TData>) => {
25
30
  const {
26
31
  getState,
@@ -41,10 +46,13 @@ export const MRT_TableDetailPanel = <TData extends Record<string, any>>({
41
46
  table,
42
47
  });
43
48
 
44
- const tableCellProps = parseFromValuesOrFunc(muiDetailPanelProps, {
45
- row,
46
- table,
47
- });
49
+ const tableCellProps = {
50
+ ...parseFromValuesOrFunc(muiDetailPanelProps, {
51
+ row,
52
+ table,
53
+ }),
54
+ ...rest,
55
+ };
48
56
 
49
57
  return (
50
58
  <TableRow
@@ -70,12 +78,11 @@ export const MRT_TableDetailPanel = <TData extends Record<string, any>>({
70
78
  {...tableCellProps}
71
79
  sx={(theme) => ({
72
80
  backgroundColor: virtualRow
73
- ? lighten(theme.palette.background.default, 0.05)
81
+ ? getMRTTheme(table, theme).baseBackgroundColor
74
82
  : undefined,
75
83
  borderBottom: !row.getIsExpanded() ? 'none' : undefined,
76
- display: layoutMode?.startsWith('grid') ? 'flex' : 'table-cell',
77
- pb: row.getIsExpanded() ? '1rem' : 0,
78
- pt: row.getIsExpanded() ? '1rem' : 0,
84
+ display: layoutMode?.startsWith('grid') ? 'flex' : undefined,
85
+ py: row.getIsExpanded() ? '1rem' : 0,
79
86
  transition: 'all 150ms ease-in-out',
80
87
  width: `${table.getTotalSize()}px`,
81
88
  ...(parseFromValuesOrFunc(tableCellProps?.sx, theme) as any),
@@ -1,16 +1,22 @@
1
- import Box from '@mui/material/Box';
1
+ import Box, { type BoxProps } from '@mui/material/Box';
2
2
  import IconButton from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
- import { type MRT_Column, type MRT_TableInstance } from '../types';
4
+ import { parseFromValuesOrFunc } from '../column.utils';
5
+ import {
6
+ type MRT_Column,
7
+ type MRT_RowData,
8
+ type MRT_TableInstance,
9
+ } from '../types';
5
10
 
6
- interface Props<TData extends Record<string, any>> {
11
+ interface Props<TData extends MRT_RowData> extends BoxProps {
7
12
  column: MRT_Column<TData>;
8
13
  table: MRT_TableInstance<TData>;
9
14
  }
10
15
 
11
- export const MRT_ColumnPinningButtons = <TData extends Record<string, any>>({
16
+ export const MRT_ColumnPinningButtons = <TData extends MRT_RowData>({
12
17
  column,
13
18
  table,
19
+ ...rest
14
20
  }: Props<TData>) => {
15
21
  const {
16
22
  options: {
@@ -24,16 +30,23 @@ export const MRT_ColumnPinningButtons = <TData extends Record<string, any>>({
24
30
  };
25
31
 
26
32
  return (
27
- <Box sx={{ minWidth: '70px', textAlign: 'center' }}>
33
+ <Box
34
+ {...rest}
35
+ sx={(theme) => ({
36
+ minWidth: '70px',
37
+ textAlign: 'center',
38
+ ...(parseFromValuesOrFunc(rest?.sx, theme) as any),
39
+ })}
40
+ >
28
41
  {column.getIsPinned() ? (
29
- <Tooltip arrow title={localization.unpin}>
42
+ <Tooltip title={localization.unpin}>
30
43
  <IconButton onClick={() => handlePinColumn(false)} size="small">
31
44
  <PushPinIcon />
32
45
  </IconButton>
33
46
  </Tooltip>
34
47
  ) : (
35
48
  <>
36
- <Tooltip arrow title={localization.pinToLeft}>
49
+ <Tooltip title={localization.pinToLeft}>
37
50
  <IconButton onClick={() => handlePinColumn('left')} size="small">
38
51
  <PushPinIcon
39
52
  style={{
@@ -42,7 +55,7 @@ export const MRT_ColumnPinningButtons = <TData extends Record<string, any>>({
42
55
  />
43
56
  </IconButton>
44
57
  </Tooltip>
45
- <Tooltip arrow title={localization.pinToRight}>
58
+ <Tooltip title={localization.pinToRight}>
46
59
  <IconButton onClick={() => handlePinColumn('right')} size="small">
47
60
  <PushPinIcon
48
61
  style={{