material-react-table 1.14.0 → 2.0.0-alpha.0

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 (467) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/index.js +1629 -1323
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +7 -11
  5. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -5
  6. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
  7. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  8. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -6
  9. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  10. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +6 -6
  11. package/dist/cjs/types/body/index.d.ts +6 -0
  12. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  13. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +2 -2
  14. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  15. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  16. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -2
  17. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  18. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  19. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  20. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  21. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  22. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  23. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  24. package/dist/cjs/types/buttons/index.d.ts +12 -0
  25. package/dist/cjs/types/column.utils.d.ts +39 -51
  26. package/dist/cjs/types/filterFns.d.ts +14 -14
  27. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  28. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +4 -4
  29. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -4
  30. package/dist/cjs/types/footer/index.d.ts +3 -0
  31. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  32. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +4 -4
  33. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  34. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  35. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  36. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  37. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  38. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  39. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -4
  40. package/dist/cjs/types/head/index.d.ts +9 -0
  41. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  42. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -0
  43. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -0
  44. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -0
  45. package/dist/cjs/types/index.d.ts +14 -25
  46. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  47. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  48. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  49. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  50. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +4 -4
  51. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  52. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  53. package/dist/cjs/types/inputs/index.d.ts +7 -0
  54. package/dist/cjs/types/locales/ar.d.ts +2 -0
  55. package/dist/cjs/types/locales/bg.d.ts +2 -0
  56. package/dist/cjs/types/locales/et.d.ts +2 -0
  57. package/dist/cjs/types/locales/ko.d.ts +2 -0
  58. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  59. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  60. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +4 -4
  61. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  62. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  63. package/dist/cjs/types/menus/index.d.ts +5 -0
  64. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +7 -0
  65. package/dist/cjs/types/modals/index.d.ts +1 -0
  66. package/dist/cjs/types/sortingFns.d.ts +2 -418
  67. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  68. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  69. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  70. package/dist/cjs/types/table/index.d.ts +4 -0
  71. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  72. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  73. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  74. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  75. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  76. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  77. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  78. package/dist/cjs/types/toolbar/index.d.ts +7 -0
  79. package/dist/cjs/types/types.d.ts +116 -85
  80. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -0
  81. package/dist/esm/material-react-table.esm.js +1559 -1317
  82. package/dist/esm/material-react-table.esm.js.map +1 -1
  83. package/dist/esm/types/MaterialReactTable.d.ts +7 -11
  84. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -5
  85. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
  86. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  87. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -6
  88. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  89. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +6 -6
  90. package/dist/esm/types/body/index.d.ts +6 -0
  91. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  92. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +2 -2
  93. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  94. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  95. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
  96. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  97. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  98. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  99. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  100. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  101. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  102. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  103. package/dist/esm/types/buttons/index.d.ts +12 -0
  104. package/dist/esm/types/column.utils.d.ts +39 -51
  105. package/dist/esm/types/filterFns.d.ts +14 -14
  106. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  107. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +4 -4
  108. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -4
  109. package/dist/esm/types/footer/index.d.ts +3 -0
  110. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  111. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +4 -4
  112. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  113. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  114. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  115. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  116. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  117. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  118. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -4
  119. package/dist/esm/types/head/index.d.ts +9 -0
  120. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  121. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -0
  122. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -0
  123. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -0
  124. package/dist/esm/types/index.d.ts +14 -25
  125. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  126. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  127. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  128. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  129. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +4 -4
  130. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  131. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  132. package/dist/esm/types/inputs/index.d.ts +7 -0
  133. package/dist/esm/types/locales/ar.d.ts +2 -0
  134. package/dist/esm/types/locales/bg.d.ts +2 -0
  135. package/dist/esm/types/locales/et.d.ts +2 -0
  136. package/dist/esm/types/locales/ko.d.ts +2 -0
  137. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  138. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  139. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +4 -4
  140. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  141. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  142. package/dist/esm/types/menus/index.d.ts +5 -0
  143. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +7 -0
  144. package/dist/esm/types/modals/index.d.ts +1 -0
  145. package/dist/esm/types/sortingFns.d.ts +2 -418
  146. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  147. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  148. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  149. package/dist/esm/types/table/index.d.ts +4 -0
  150. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  151. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  152. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  153. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  154. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  155. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  156. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  157. package/dist/esm/types/toolbar/index.d.ts +7 -0
  158. package/dist/esm/types/types.d.ts +116 -85
  159. package/dist/esm/types/useMaterialReactTable.d.ts +2 -0
  160. package/dist/index.d.ts +606 -156
  161. package/locales/ar.d.ts +2 -0
  162. package/locales/ar.esm.d.ts +2 -0
  163. package/locales/ar.esm.js +93 -0
  164. package/locales/ar.esm.js.map +1 -0
  165. package/locales/ar.js +97 -0
  166. package/locales/ar.js.map +1 -0
  167. package/locales/bg.d.ts +2 -0
  168. package/locales/bg.esm.d.ts +2 -0
  169. package/locales/bg.esm.js +93 -0
  170. package/locales/bg.esm.js.map +1 -0
  171. package/locales/bg.js +97 -0
  172. package/locales/bg.js.map +1 -0
  173. package/locales/cs.esm.js +1 -2
  174. package/locales/cs.esm.js.map +1 -1
  175. package/locales/cs.js +1 -2
  176. package/locales/cs.js.map +1 -1
  177. package/locales/da.esm.js +0 -1
  178. package/locales/da.esm.js.map +1 -1
  179. package/locales/da.js +0 -1
  180. package/locales/da.js.map +1 -1
  181. package/locales/de.esm.js +0 -1
  182. package/locales/de.esm.js.map +1 -1
  183. package/locales/de.js +0 -1
  184. package/locales/de.js.map +1 -1
  185. package/locales/en.esm.js +0 -1
  186. package/locales/en.esm.js.map +1 -1
  187. package/locales/en.js +0 -1
  188. package/locales/en.js.map +1 -1
  189. package/locales/es.esm.js +0 -1
  190. package/locales/es.esm.js.map +1 -1
  191. package/locales/es.js +0 -1
  192. package/locales/es.js.map +1 -1
  193. package/locales/et.d.ts +2 -0
  194. package/locales/et.esm.d.ts +2 -0
  195. package/locales/et.esm.js +93 -0
  196. package/locales/et.esm.js.map +1 -0
  197. package/locales/et.js +97 -0
  198. package/locales/et.js.map +1 -0
  199. package/locales/fa.esm.js +0 -1
  200. package/locales/fa.esm.js.map +1 -1
  201. package/locales/fa.js +0 -1
  202. package/locales/fa.js.map +1 -1
  203. package/locales/fi.esm.js +0 -1
  204. package/locales/fi.esm.js.map +1 -1
  205. package/locales/fi.js +0 -1
  206. package/locales/fi.js.map +1 -1
  207. package/locales/fr.esm.js +0 -1
  208. package/locales/fr.esm.js.map +1 -1
  209. package/locales/fr.js +0 -1
  210. package/locales/fr.js.map +1 -1
  211. package/locales/hu.esm.js +0 -1
  212. package/locales/hu.esm.js.map +1 -1
  213. package/locales/hu.js +0 -1
  214. package/locales/hu.js.map +1 -1
  215. package/locales/id.esm.js +0 -1
  216. package/locales/id.esm.js.map +1 -1
  217. package/locales/id.js +0 -1
  218. package/locales/id.js.map +1 -1
  219. package/locales/it.esm.js +0 -1
  220. package/locales/it.esm.js.map +1 -1
  221. package/locales/it.js +0 -1
  222. package/locales/it.js.map +1 -1
  223. package/locales/ja.esm.js +0 -1
  224. package/locales/ja.esm.js.map +1 -1
  225. package/locales/ja.js +0 -1
  226. package/locales/ja.js.map +1 -1
  227. package/locales/ko.d.ts +2 -0
  228. package/locales/ko.esm.d.ts +2 -0
  229. package/locales/ko.esm.js +93 -0
  230. package/locales/ko.esm.js.map +1 -0
  231. package/locales/ko.js +97 -0
  232. package/locales/ko.js.map +1 -0
  233. package/locales/nl.esm.js +0 -1
  234. package/locales/nl.esm.js.map +1 -1
  235. package/locales/nl.js +0 -1
  236. package/locales/nl.js.map +1 -1
  237. package/locales/no.esm.js +0 -1
  238. package/locales/no.esm.js.map +1 -1
  239. package/locales/no.js +0 -1
  240. package/locales/no.js.map +1 -1
  241. package/locales/pl.esm.js +0 -1
  242. package/locales/pl.esm.js.map +1 -1
  243. package/locales/pl.js +0 -1
  244. package/locales/pl.js.map +1 -1
  245. package/locales/pt-BR.esm.js +0 -1
  246. package/locales/pt-BR.esm.js.map +1 -1
  247. package/locales/pt-BR.js +0 -1
  248. package/locales/pt-BR.js.map +1 -1
  249. package/locales/pt.esm.js +0 -1
  250. package/locales/pt.esm.js.map +1 -1
  251. package/locales/pt.js +0 -1
  252. package/locales/pt.js.map +1 -1
  253. package/locales/ro.esm.js +0 -1
  254. package/locales/ro.esm.js.map +1 -1
  255. package/locales/ro.js +0 -1
  256. package/locales/ro.js.map +1 -1
  257. package/locales/ru.esm.js +0 -1
  258. package/locales/ru.esm.js.map +1 -1
  259. package/locales/ru.js +0 -1
  260. package/locales/ru.js.map +1 -1
  261. package/locales/sk.esm.js +0 -1
  262. package/locales/sk.esm.js.map +1 -1
  263. package/locales/sk.js +0 -1
  264. package/locales/sk.js.map +1 -1
  265. package/locales/sr-Cyrl-RS.esm.js +0 -1
  266. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  267. package/locales/sr-Cyrl-RS.js +0 -1
  268. package/locales/sr-Cyrl-RS.js.map +1 -1
  269. package/locales/sr-Latn-RS.esm.js +0 -1
  270. package/locales/sr-Latn-RS.esm.js.map +1 -1
  271. package/locales/sr-Latn-RS.js +0 -1
  272. package/locales/sr-Latn-RS.js.map +1 -1
  273. package/locales/sv.esm.js +0 -1
  274. package/locales/sv.esm.js.map +1 -1
  275. package/locales/sv.js +0 -1
  276. package/locales/sv.js.map +1 -1
  277. package/locales/tr.esm.js +0 -1
  278. package/locales/tr.esm.js.map +1 -1
  279. package/locales/tr.js +0 -1
  280. package/locales/tr.js.map +1 -1
  281. package/locales/uk.esm.js +0 -1
  282. package/locales/uk.esm.js.map +1 -1
  283. package/locales/uk.js +0 -1
  284. package/locales/uk.js.map +1 -1
  285. package/locales/vi.esm.js +0 -1
  286. package/locales/vi.esm.js.map +1 -1
  287. package/locales/vi.js +0 -1
  288. package/locales/vi.js.map +1 -1
  289. package/locales/zh-Hans.esm.js +7 -8
  290. package/locales/zh-Hans.esm.js.map +1 -1
  291. package/locales/zh-Hans.js +7 -8
  292. package/locales/zh-Hans.js.map +1 -1
  293. package/locales/zh-Hant.esm.js +1 -2
  294. package/locales/zh-Hant.esm.js.map +1 -1
  295. package/locales/zh-Hant.js +1 -2
  296. package/locales/zh-Hant.js.map +1 -1
  297. package/package.json +44 -42
  298. package/src/MaterialReactTable.tsx +31 -168
  299. package/src/body/MRT_TableBody.tsx +10 -23
  300. package/src/body/MRT_TableBodyCell.tsx +36 -39
  301. package/src/body/MRT_TableBodyCellValue.tsx +7 -4
  302. package/src/body/MRT_TableBodyRow.tsx +7 -7
  303. package/src/body/MRT_TableBodyRowGrabHandle.tsx +13 -10
  304. package/src/body/MRT_TableDetailPanel.tsx +11 -11
  305. package/src/body/index.ts +6 -0
  306. package/src/buttons/MRT_ColumnPinningButtons.tsx +2 -4
  307. package/src/buttons/MRT_CopyButton.tsx +9 -9
  308. package/src/buttons/MRT_EditActionButtons.tsx +56 -25
  309. package/src/buttons/MRT_ExpandAllButton.tsx +5 -3
  310. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  311. package/src/buttons/MRT_GrabHandleButton.tsx +2 -2
  312. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -5
  313. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -3
  314. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -5
  315. package/src/buttons/{MRT_FullScreenToggleButton.tsx → MRT_ToggleFullScreenButton.tsx} +13 -6
  316. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  317. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +16 -8
  318. package/src/buttons/index.ts +12 -0
  319. package/src/column.utils.ts +96 -45
  320. package/src/filterFns.ts +14 -14
  321. package/src/footer/MRT_TableFooter.tsx +4 -4
  322. package/src/footer/MRT_TableFooterCell.tsx +7 -4
  323. package/src/footer/MRT_TableFooterRow.tsx +6 -6
  324. package/src/footer/index.ts +3 -0
  325. package/src/head/MRT_TableHead.tsx +4 -4
  326. package/src/head/MRT_TableHeadCell.tsx +7 -4
  327. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +14 -12
  328. package/src/head/MRT_TableHeadCellFilterContainer.tsx +9 -4
  329. package/src/head/MRT_TableHeadCellFilterLabel.tsx +9 -4
  330. package/src/head/MRT_TableHeadCellGrabHandle.tsx +13 -13
  331. package/src/head/MRT_TableHeadCellResizeHandle.tsx +9 -4
  332. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -6
  333. package/src/head/MRT_TableHeadRow.tsx +6 -6
  334. package/src/head/index.ts +9 -0
  335. package/src/hooks/useMRT_DisplayColumns.tsx +142 -0
  336. package/src/hooks/useMRT_Effects.ts +77 -0
  337. package/src/hooks/useMRT_TableInstance.ts +291 -0
  338. package/src/hooks/useMRT_TableOptions.ts +169 -0
  339. package/src/index.ts +16 -0
  340. package/src/inputs/MRT_EditCellTextField.tsx +39 -25
  341. package/src/inputs/MRT_FilterCheckbox.tsx +14 -11
  342. package/src/inputs/MRT_FilterRangeFields.tsx +7 -4
  343. package/src/inputs/MRT_FilterRangeSlider.tsx +18 -19
  344. package/src/inputs/MRT_FilterTextField.tsx +15 -15
  345. package/src/inputs/MRT_GlobalFilterTextField.tsx +2 -4
  346. package/src/inputs/MRT_SelectCheckbox.tsx +8 -4
  347. package/src/inputs/index.ts +7 -0
  348. package/src/locales/ar.ts +94 -0
  349. package/src/locales/bg.ts +93 -0
  350. package/src/{_locales → locales}/cs.ts +1 -2
  351. package/src/{_locales → locales}/da.ts +0 -1
  352. package/src/{_locales → locales}/de.ts +0 -1
  353. package/src/{_locales → locales}/en.ts +1 -1
  354. package/src/{_locales → locales}/es.ts +0 -1
  355. package/src/locales/et.ts +94 -0
  356. package/src/{_locales → locales}/fa.ts +0 -1
  357. package/src/{_locales → locales}/fi.ts +0 -1
  358. package/src/{_locales → locales}/fr.ts +0 -1
  359. package/src/{_locales → locales}/hu.ts +0 -1
  360. package/src/{_locales → locales}/id.ts +0 -1
  361. package/src/{_locales → locales}/it.ts +0 -1
  362. package/src/{_locales → locales}/ja.ts +0 -1
  363. package/src/locales/ko.ts +93 -0
  364. package/src/{_locales → locales}/nl.ts +0 -1
  365. package/src/{_locales → locales}/no.ts +1 -1
  366. package/src/{_locales → locales}/pl.ts +0 -1
  367. package/src/{_locales → locales}/pt-BR.ts +0 -1
  368. package/src/{_locales → locales}/pt.ts +0 -1
  369. package/src/{_locales → locales}/ro.ts +0 -1
  370. package/src/{_locales → locales}/ru.ts +0 -1
  371. package/src/{_locales → locales}/sk.ts +0 -1
  372. package/src/{_locales → locales}/sr-Cyrl-RS.ts +0 -1
  373. package/src/{_locales → locales}/sr-Latn-RS.ts +0 -1
  374. package/src/{_locales → locales}/sv.ts +0 -1
  375. package/src/{_locales → locales}/tr.ts +0 -1
  376. package/src/{_locales → locales}/uk.ts +0 -1
  377. package/src/{_locales → locales}/vi.ts +0 -1
  378. package/src/{_locales → locales}/zh-Hans.ts +7 -8
  379. package/src/{_locales → locales}/zh-Hant.ts +1 -2
  380. package/src/menus/MRT_ColumnActionMenu.tsx +8 -8
  381. package/src/menus/MRT_FilterOptionMenu.tsx +4 -3
  382. package/src/menus/MRT_RowActionMenu.tsx +5 -5
  383. package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
  384. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +4 -4
  385. package/src/menus/index.ts +5 -0
  386. package/src/modals/MRT_EditRowModal.tsx +115 -0
  387. package/src/modals/index.ts +1 -0
  388. package/src/sortingFns.ts +2 -2
  389. package/src/table/MRT_Table.tsx +40 -33
  390. package/src/table/MRT_TableContainer.tsx +23 -5
  391. package/src/table/MRT_TablePaper.tsx +13 -4
  392. package/src/table/index.ts +4 -0
  393. package/src/toolbar/MRT_BottomToolbar.tsx +2 -2
  394. package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
  395. package/src/toolbar/MRT_TablePagination.tsx +2 -2
  396. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +2 -2
  397. package/src/toolbar/MRT_ToolbarDropZone.tsx +2 -2
  398. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
  399. package/src/toolbar/MRT_TopToolbar.tsx +2 -2
  400. package/src/toolbar/index.ts +7 -0
  401. package/src/types.ts +765 -751
  402. package/src/useMaterialReactTable.ts +11 -0
  403. package/dist/cjs/types/body/MRT_EditRowModal.d.ts +0 -8
  404. package/dist/cjs/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  405. package/dist/cjs/types/table/MRT_TableRoot.d.ts +0 -1
  406. package/dist/esm/types/body/MRT_EditRowModal.d.ts +0 -8
  407. package/dist/esm/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  408. package/dist/esm/types/table/MRT_TableRoot.d.ts +0 -1
  409. package/src/body/MRT_EditRowModal.tsx +0 -57
  410. package/src/index.tsx +0 -50
  411. package/src/table/MRT_TableRoot.tsx +0 -421
  412. /package/dist/cjs/types/{_locales → locales}/cs.d.ts +0 -0
  413. /package/dist/cjs/types/{_locales → locales}/da.d.ts +0 -0
  414. /package/dist/cjs/types/{_locales → locales}/de.d.ts +0 -0
  415. /package/dist/cjs/types/{_locales → locales}/en.d.ts +0 -0
  416. /package/dist/cjs/types/{_locales → locales}/es.d.ts +0 -0
  417. /package/dist/cjs/types/{_locales → locales}/fa.d.ts +0 -0
  418. /package/dist/cjs/types/{_locales → locales}/fi.d.ts +0 -0
  419. /package/dist/cjs/types/{_locales → locales}/fr.d.ts +0 -0
  420. /package/dist/cjs/types/{_locales → locales}/hu.d.ts +0 -0
  421. /package/dist/cjs/types/{_locales → locales}/id.d.ts +0 -0
  422. /package/dist/cjs/types/{_locales → locales}/it.d.ts +0 -0
  423. /package/dist/cjs/types/{_locales → locales}/ja.d.ts +0 -0
  424. /package/dist/cjs/types/{_locales → locales}/nl.d.ts +0 -0
  425. /package/dist/cjs/types/{_locales → locales}/no.d.ts +0 -0
  426. /package/dist/cjs/types/{_locales → locales}/pl.d.ts +0 -0
  427. /package/dist/cjs/types/{_locales → locales}/pt-BR.d.ts +0 -0
  428. /package/dist/cjs/types/{_locales → locales}/pt.d.ts +0 -0
  429. /package/dist/cjs/types/{_locales → locales}/ro.d.ts +0 -0
  430. /package/dist/cjs/types/{_locales → locales}/ru.d.ts +0 -0
  431. /package/dist/cjs/types/{_locales → locales}/sk.d.ts +0 -0
  432. /package/dist/cjs/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  433. /package/dist/cjs/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  434. /package/dist/cjs/types/{_locales → locales}/sv.d.ts +0 -0
  435. /package/dist/cjs/types/{_locales → locales}/tr.d.ts +0 -0
  436. /package/dist/cjs/types/{_locales → locales}/uk.d.ts +0 -0
  437. /package/dist/cjs/types/{_locales → locales}/vi.d.ts +0 -0
  438. /package/dist/cjs/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  439. /package/dist/cjs/types/{_locales → locales}/zh-Hant.d.ts +0 -0
  440. /package/dist/esm/types/{_locales → locales}/cs.d.ts +0 -0
  441. /package/dist/esm/types/{_locales → locales}/da.d.ts +0 -0
  442. /package/dist/esm/types/{_locales → locales}/de.d.ts +0 -0
  443. /package/dist/esm/types/{_locales → locales}/en.d.ts +0 -0
  444. /package/dist/esm/types/{_locales → locales}/es.d.ts +0 -0
  445. /package/dist/esm/types/{_locales → locales}/fa.d.ts +0 -0
  446. /package/dist/esm/types/{_locales → locales}/fi.d.ts +0 -0
  447. /package/dist/esm/types/{_locales → locales}/fr.d.ts +0 -0
  448. /package/dist/esm/types/{_locales → locales}/hu.d.ts +0 -0
  449. /package/dist/esm/types/{_locales → locales}/id.d.ts +0 -0
  450. /package/dist/esm/types/{_locales → locales}/it.d.ts +0 -0
  451. /package/dist/esm/types/{_locales → locales}/ja.d.ts +0 -0
  452. /package/dist/esm/types/{_locales → locales}/nl.d.ts +0 -0
  453. /package/dist/esm/types/{_locales → locales}/no.d.ts +0 -0
  454. /package/dist/esm/types/{_locales → locales}/pl.d.ts +0 -0
  455. /package/dist/esm/types/{_locales → locales}/pt-BR.d.ts +0 -0
  456. /package/dist/esm/types/{_locales → locales}/pt.d.ts +0 -0
  457. /package/dist/esm/types/{_locales → locales}/ro.d.ts +0 -0
  458. /package/dist/esm/types/{_locales → locales}/ru.d.ts +0 -0
  459. /package/dist/esm/types/{_locales → locales}/sk.d.ts +0 -0
  460. /package/dist/esm/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  461. /package/dist/esm/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  462. /package/dist/esm/types/{_locales → locales}/sv.d.ts +0 -0
  463. /package/dist/esm/types/{_locales → locales}/tr.d.ts +0 -0
  464. /package/dist/esm/types/{_locales → locales}/uk.d.ts +0 -0
  465. /package/dist/esm/types/{_locales → locales}/vi.d.ts +0 -0
  466. /package/dist/esm/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  467. /package/dist/esm/types/{_locales → locales}/zh-Hant.d.ts +0 -0
@@ -1,23 +1,26 @@
1
1
  import { type DragEvent, type RefObject } from 'react';
2
- import { type MRT_Cell, type MRT_TableInstance } from '../types';
3
2
  import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
3
+ import { type MRT_Row, type MRT_TableInstance } from '../types';
4
4
 
5
- interface Props {
6
- cell: MRT_Cell;
5
+ interface Props<TData extends Record<string, any>> {
6
+ row: MRT_Row<TData>;
7
7
  rowRef: RefObject<HTMLTableRowElement>;
8
- table: MRT_TableInstance;
8
+ table: MRT_TableInstance<TData>;
9
9
  }
10
10
 
11
- export const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table }: Props) => {
11
+ export const MRT_TableBodyRowGrabHandle = <TData extends Record<string, any>>({
12
+ row,
13
+ rowRef,
14
+ table,
15
+ }: Props<TData>) => {
12
16
  const {
13
- options: { muiTableBodyRowDragHandleProps },
17
+ options: { muiRowDragHandleProps },
14
18
  } = table;
15
- const { row } = cell;
16
19
 
17
20
  const iconButtonProps =
18
- muiTableBodyRowDragHandleProps instanceof Function
19
- ? muiTableBodyRowDragHandleProps({ row, table })
20
- : muiTableBodyRowDragHandleProps;
21
+ muiRowDragHandleProps instanceof Function
22
+ ? muiRowDragHandleProps({ row, table })
23
+ : muiRowDragHandleProps;
21
24
 
22
25
  const handleDragStart = (event: DragEvent<HTMLButtonElement>) => {
23
26
  iconButtonProps?.onDragStart?.(event);
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import { type RefObject } from 'react';
2
2
  import Collapse from '@mui/material/Collapse';
3
3
  import TableCell from '@mui/material/TableCell';
4
4
  import TableRow from '@mui/material/TableRow';
@@ -6,28 +6,28 @@ import { lighten } from '@mui/material/styles';
6
6
  import { type VirtualItem } from '@tanstack/react-virtual';
7
7
  import { type MRT_Row, type MRT_TableInstance } from '../types';
8
8
 
9
- interface Props {
10
- parentRowRef: React.RefObject<HTMLTableRowElement>;
11
- row: MRT_Row;
9
+ interface Props<TData extends Record<string, any>> {
10
+ parentRowRef: RefObject<HTMLTableRowElement>;
11
+ row: MRT_Row<TData>;
12
12
  rowIndex: number;
13
- table: MRT_TableInstance;
13
+ table: MRT_TableInstance<TData>;
14
14
  virtualRow?: VirtualItem;
15
15
  }
16
16
 
17
- export const MRT_TableDetailPanel = ({
17
+ export const MRT_TableDetailPanel = <TData extends Record<string, any>>({
18
18
  parentRowRef,
19
19
  row,
20
20
  rowIndex,
21
21
  table,
22
22
  virtualRow,
23
- }: Props) => {
23
+ }: Props<TData>) => {
24
24
  const {
25
25
  getVisibleLeafColumns,
26
26
  getState,
27
27
  options: {
28
28
  layoutMode,
29
29
  muiTableBodyRowProps,
30
- muiTableDetailPanelProps,
30
+ muiDetailPanelProps,
31
31
  renderDetailPanel,
32
32
  },
33
33
  } = table;
@@ -44,9 +44,9 @@ export const MRT_TableDetailPanel = ({
44
44
  : muiTableBodyRowProps;
45
45
 
46
46
  const tableCellProps =
47
- muiTableDetailPanelProps instanceof Function
48
- ? muiTableDetailPanelProps({ row, table })
49
- : muiTableDetailPanelProps;
47
+ muiDetailPanelProps instanceof Function
48
+ ? muiDetailPanelProps({ row, table })
49
+ : muiDetailPanelProps;
50
50
 
51
51
  return (
52
52
  <TableRow
@@ -0,0 +1,6 @@
1
+ export * from './MRT_TableBody';
2
+ export * from './MRT_TableBodyCell';
3
+ export * from './MRT_TableBodyCellValue';
4
+ export * from './MRT_TableBodyRow';
5
+ export * from './MRT_TableBodyRowGrabHandle';
6
+ export * from './MRT_TableDetailPanel';
@@ -3,14 +3,12 @@ import IconButton from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_Column, type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any> = {}> {
6
+ interface Props<TData extends Record<string, any>> {
7
7
  column: MRT_Column<TData>;
8
8
  table: MRT_TableInstance<TData>;
9
9
  }
10
10
 
11
- export const MRT_ColumnPinningButtons = <
12
- TData extends Record<string, any> = {},
13
- >({
11
+ export const MRT_ColumnPinningButtons = <TData extends Record<string, any>>({
14
12
  column,
15
13
  table,
16
14
  }: Props<TData>) => {
@@ -3,19 +3,19 @@ import Button from '@mui/material/Button';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_Cell, type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any> = {}> {
6
+ interface Props<TData extends Record<string, any>> {
7
7
  cell: MRT_Cell<TData>;
8
8
  children: ReactNode;
9
9
  table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_CopyButton = <TData extends Record<string, any> = {}>({
12
+ export const MRT_CopyButton = <TData extends Record<string, any>>({
13
13
  cell,
14
14
  children,
15
15
  table,
16
16
  }: Props<TData>) => {
17
17
  const {
18
- options: { localization, muiTableBodyCellCopyButtonProps },
18
+ options: { localization, muiCopyButtonProps },
19
19
  } = table;
20
20
  const { column, row } = cell;
21
21
  const { columnDef } = column;
@@ -30,19 +30,19 @@ export const MRT_CopyButton = <TData extends Record<string, any> = {}>({
30
30
  };
31
31
 
32
32
  const mTableBodyCellCopyButtonProps =
33
- muiTableBodyCellCopyButtonProps instanceof Function
34
- ? muiTableBodyCellCopyButtonProps({ cell, column, row, table })
35
- : muiTableBodyCellCopyButtonProps;
33
+ muiCopyButtonProps instanceof Function
34
+ ? muiCopyButtonProps({ cell, column, row, table })
35
+ : muiCopyButtonProps;
36
36
 
37
37
  const mcTableBodyCellCopyButtonProps =
38
- columnDef.muiTableBodyCellCopyButtonProps instanceof Function
39
- ? columnDef.muiTableBodyCellCopyButtonProps({
38
+ columnDef.muiCopyButtonProps instanceof Function
39
+ ? columnDef.muiCopyButtonProps({
40
40
  cell,
41
41
  column,
42
42
  row,
43
43
  table,
44
44
  })
45
- : columnDef.muiTableBodyCellCopyButtonProps;
45
+ : columnDef.muiCopyButtonProps;
46
46
 
47
47
  const buttonProps = {
48
48
  ...mTableBodyCellCopyButtonProps,
@@ -2,15 +2,16 @@ import Box from '@mui/material/Box';
2
2
  import Button from '@mui/material/Button';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import Tooltip from '@mui/material/Tooltip';
5
+ import CircularProgress from '@mui/material/CircularProgress';
5
6
  import { type MRT_Row, type MRT_TableInstance } from '../types';
6
7
 
7
- interface Props<TData extends Record<string, any> = {}> {
8
+ interface Props<TData extends Record<string, any>> {
8
9
  row: MRT_Row<TData>;
9
10
  table: MRT_TableInstance<TData>;
10
11
  variant?: 'icon' | 'text';
11
12
  }
12
13
 
13
- export const MRT_EditActionButtons = <TData extends Record<string, any> = {}>({
14
+ export const MRT_EditActionButtons = <TData extends Record<string, any>>({
14
15
  row,
15
16
  table,
16
17
  variant = 'icon',
@@ -20,36 +21,59 @@ export const MRT_EditActionButtons = <TData extends Record<string, any> = {}>({
20
21
  options: {
21
22
  icons: { CancelIcon, SaveIcon },
22
23
  localization,
24
+ onCreatingRowCancel,
25
+ onCreatingRowSave,
23
26
  onEditingRowSave,
24
27
  onEditingRowCancel,
25
28
  },
26
29
  refs: { editInputRefs },
30
+ setCreatingRow,
27
31
  setEditingRow,
28
32
  } = table;
29
- const { editingRow } = getState();
33
+ const { creatingRow, editingRow, isSaving } = getState();
34
+
35
+ const isCreating = creatingRow?.id === row.id;
36
+ const isEditing = editingRow?.id === row.id;
30
37
 
31
38
  const handleCancel = () => {
32
- onEditingRowCancel?.({ row, table });
33
- setEditingRow(null);
39
+ if (isCreating) {
40
+ onCreatingRowCancel?.({ row, table });
41
+ setCreatingRow(null);
42
+ } else if (isEditing) {
43
+ onEditingRowCancel?.({ row, table });
44
+ setEditingRow(null);
45
+ }
46
+ row._valuesCache = {} as any; //reset values cache
34
47
  };
35
48
 
36
- const handleSave = () => {
49
+ const handleSubmitRow = () => {
37
50
  //look for auto-filled input values
38
- Object.values(editInputRefs?.current)?.forEach((input) => {
39
- if (
40
- input.value !== undefined &&
41
- Object.hasOwn(editingRow?._valuesCache as object, input.name)
42
- ) {
43
- // @ts-ignore
44
- editingRow._valuesCache[input.name] = input.value;
45
- }
46
- });
47
- onEditingRowSave?.({
48
- exitEditingMode: () => setEditingRow(null),
49
- row: editingRow ?? row,
50
- table,
51
- values: editingRow?._valuesCache ?? { ...row.original },
52
- });
51
+ Object.values(editInputRefs?.current)
52
+ .filter((inputRef) => row.id === inputRef?.name?.split('_')?.[0])
53
+ ?.forEach((input) => {
54
+ if (
55
+ input.value !== undefined &&
56
+ Object.hasOwn(row?._valuesCache as object, input.name)
57
+ ) {
58
+ // @ts-ignore
59
+ row._valuesCache[input.name] = input.value;
60
+ }
61
+ });
62
+ if (isCreating)
63
+ onCreatingRowSave?.({
64
+ exitCreatingMode: () => setCreatingRow(null),
65
+ row,
66
+ table,
67
+ values: row._valuesCache,
68
+ });
69
+ else if (isEditing) {
70
+ onEditingRowSave?.({
71
+ exitEditingMode: () => setEditingRow(null),
72
+ row,
73
+ table,
74
+ values: row?._valuesCache,
75
+ });
76
+ }
53
77
  };
54
78
 
55
79
  return (
@@ -68,16 +92,23 @@ export const MRT_EditActionButtons = <TData extends Record<string, any> = {}>({
68
92
  <IconButton
69
93
  aria-label={localization.save}
70
94
  color="info"
71
- onClick={handleSave}
95
+ onClick={handleSubmitRow}
72
96
  >
73
- <SaveIcon />
97
+ {isSaving ? <CircularProgress size={18} /> : <SaveIcon />}
74
98
  </IconButton>
75
99
  </Tooltip>
76
100
  </>
77
101
  ) : (
78
102
  <>
79
- <Button onClick={handleCancel}>{localization.cancel}</Button>
80
- <Button onClick={handleSave} variant="contained">
103
+ <Button sx={{ minWidth: '100px' }} onClick={handleCancel}>
104
+ {localization.cancel}
105
+ </Button>
106
+ <Button
107
+ sx={{ minWidth: '100px' }}
108
+ onClick={handleSubmitRow}
109
+ variant="contained"
110
+ >
111
+ {isSaving && <CircularProgress color="inherit" size={18} />}
81
112
  {localization.save}
82
113
  </Button>
83
114
  </>
@@ -2,11 +2,13 @@ import IconButton from '@mui/material/IconButton';
2
2
  import Tooltip from '@mui/material/Tooltip';
3
3
  import { type MRT_TableInstance } from '../types';
4
4
 
5
- interface Props {
6
- table: MRT_TableInstance;
5
+ interface Props<TData extends Record<string, any>> {
6
+ table: MRT_TableInstance<TData>;
7
7
  }
8
8
 
9
- export const MRT_ExpandAllButton = ({ table }: Props) => {
9
+ export const MRT_ExpandAllButton = <TData extends Record<string, any>>({
10
+ table,
11
+ }: Props<TData>) => {
10
12
  const {
11
13
  getIsAllRowsExpanded,
12
14
  getIsSomeRowsExpanded,
@@ -3,12 +3,12 @@ import IconButton from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_Row, type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any> = {}> {
6
+ interface Props<TData extends Record<string, any>> {
7
7
  row: MRT_Row<TData>;
8
8
  table: MRT_TableInstance<TData>;
9
9
  }
10
10
 
11
- export const MRT_ExpandButton = <TData extends Record<string, any> = {}>({
11
+ export const MRT_ExpandButton = <TData extends Record<string, any>>({
12
12
  row,
13
13
  table,
14
14
  }: Props<TData>) => {
@@ -4,14 +4,14 @@ import Tooltip from '@mui/material/Tooltip';
4
4
  import { type IconButtonProps } from '@mui/material/IconButton';
5
5
  import { type MRT_TableInstance } from '../types';
6
6
 
7
- interface Props<TData extends Record<string, any> = {}> {
7
+ interface Props<TData extends Record<string, any>> {
8
8
  iconButtonProps?: IconButtonProps;
9
9
  onDragStart: DragEventHandler<HTMLButtonElement>;
10
10
  onDragEnd: DragEventHandler<HTMLButtonElement>;
11
11
  table: MRT_TableInstance<TData>;
12
12
  }
13
13
 
14
- export const MRT_GrabHandleButton = <TData extends Record<string, any> = {}>({
14
+ export const MRT_GrabHandleButton = <TData extends Record<string, any>>({
15
15
  iconButtonProps,
16
16
  onDragEnd,
17
17
  onDragStart,
@@ -5,14 +5,11 @@ import Tooltip from '@mui/material/Tooltip';
5
5
  import { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';
6
6
  import { type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props<TData extends Record<string, any> = {}>
9
- extends IconButtonProps {
8
+ interface Props<TData extends Record<string, any>> extends IconButtonProps {
10
9
  table: MRT_TableInstance<TData>;
11
10
  }
12
11
 
13
- export const MRT_ShowHideColumnsButton = <
14
- TData extends Record<string, any> = {},
15
- >({
12
+ export const MRT_ShowHideColumnsButton = <TData extends Record<string, any>>({
16
13
  table,
17
14
  ...rest
18
15
  }: Props<TData>) => {
@@ -3,13 +3,12 @@ import { type IconButtonProps } from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any> = {}>
7
- extends IconButtonProps {
6
+ interface Props<TData extends Record<string, any>> extends IconButtonProps {
8
7
  table: MRT_TableInstance<TData>;
9
8
  }
10
9
 
11
10
  export const MRT_ToggleDensePaddingButton = <
12
- TData extends Record<string, any> = {},
11
+ TData extends Record<string, any>,
13
12
  >({
14
13
  table,
15
14
  ...rest
@@ -3,14 +3,11 @@ import { type IconButtonProps } from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any> = {}>
7
- extends IconButtonProps {
6
+ interface Props<TData extends Record<string, any>> extends IconButtonProps {
8
7
  table: MRT_TableInstance<TData>;
9
8
  }
10
9
 
11
- export const MRT_ToggleFiltersButton = <
12
- TData extends Record<string, any> = {},
13
- >({
10
+ export const MRT_ToggleFiltersButton = <TData extends Record<string, any>>({
14
11
  table,
15
12
  ...rest
16
13
  }: Props<TData>) => {
@@ -2,15 +2,13 @@ import IconButton from '@mui/material/IconButton';
2
2
  import { type IconButtonProps } from '@mui/material/IconButton';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { type MRT_TableInstance } from '../types';
5
+ import { useState } from 'react';
5
6
 
6
- interface Props<TData extends Record<string, any> = {}>
7
- extends IconButtonProps {
7
+ interface Props<TData extends Record<string, any>> extends IconButtonProps {
8
8
  table: MRT_TableInstance<TData>;
9
9
  }
10
10
 
11
- export const MRT_FullScreenToggleButton = <
12
- TData extends Record<string, any> = {},
13
- >({
11
+ export const MRT_ToggleFullScreenButton = <TData extends Record<string, any>>({
14
12
  table,
15
13
  ...rest
16
14
  }: Props<TData>) => {
@@ -24,15 +22,24 @@ export const MRT_FullScreenToggleButton = <
24
22
  } = table;
25
23
  const { isFullScreen } = getState();
26
24
 
25
+ const [tooltipOpened, setTooltipOpened] = useState(false);
26
+
27
27
  const handleToggleFullScreen = () => {
28
+ setTooltipOpened(false);
28
29
  setIsFullScreen(!isFullScreen);
29
30
  };
30
31
 
31
32
  return (
32
- <Tooltip arrow title={rest?.title ?? localization.toggleFullScreen}>
33
+ <Tooltip
34
+ open={tooltipOpened}
35
+ arrow
36
+ title={rest?.title ?? localization.toggleFullScreen}
37
+ >
33
38
  <IconButton
34
39
  aria-label={localization.showHideFilters}
35
40
  onClick={handleToggleFullScreen}
41
+ onMouseEnter={() => setTooltipOpened(true)}
42
+ onMouseLeave={() => setTooltipOpened(false)}
36
43
  {...rest}
37
44
  title={undefined}
38
45
  >
@@ -1,15 +1,13 @@
1
- import IconButton from '@mui/material/IconButton';
2
- import { type IconButtonProps } from '@mui/material/IconButton';
1
+ import IconButton, { type IconButtonProps } from '@mui/material/IconButton';
3
2
  import Tooltip from '@mui/material/Tooltip';
4
3
  import { type MRT_TableInstance } from '../types';
5
4
 
6
- interface Props<TData extends Record<string, any> = {}>
7
- extends IconButtonProps {
5
+ interface Props<TData extends Record<string, any>> extends IconButtonProps {
8
6
  table: MRT_TableInstance<TData>;
9
7
  }
10
8
 
11
9
  export const MRT_ToggleGlobalFilterButton = <
12
- TData extends Record<string, any> = {},
10
+ TData extends Record<string, any>,
13
11
  >({
14
12
  table,
15
13
  ...rest
@@ -16,14 +16,14 @@ const commonIconButtonStyles = {
16
16
  },
17
17
  };
18
18
 
19
- interface Props<TData extends Record<string, any> = {}> {
19
+ interface Props<TData extends Record<string, any>> {
20
20
  cell: MRT_Cell<TData>;
21
21
  row: MRT_Row<TData>;
22
22
  table: MRT_TableInstance<TData>;
23
23
  }
24
24
 
25
25
  export const MRT_ToggleRowActionMenuButton = <
26
- TData extends Record<string, any> = {},
26
+ TData extends Record<string, any>,
27
27
  >({
28
28
  cell,
29
29
  row,
@@ -32,7 +32,8 @@ export const MRT_ToggleRowActionMenuButton = <
32
32
  const {
33
33
  getState,
34
34
  options: {
35
- editingMode,
35
+ createDisplayMode,
36
+ editDisplayMode,
36
37
  enableEditing,
37
38
  icons: { EditIcon, MoreHorizIcon },
38
39
  localization,
@@ -42,7 +43,14 @@ export const MRT_ToggleRowActionMenuButton = <
42
43
  setEditingRow,
43
44
  } = table;
44
45
 
45
- const { editingRow } = getState();
46
+ const { creatingRow, editingRow } = getState();
47
+
48
+ const isCreating = creatingRow?.id === row.id;
49
+ const isEditing = editingRow?.id === row.id;
50
+
51
+ const showEditActionButtons =
52
+ (isCreating && createDisplayMode === 'row') ||
53
+ (isEditing && editDisplayMode === 'row');
46
54
 
47
55
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
48
56
 
@@ -60,9 +68,9 @@ export const MRT_ToggleRowActionMenuButton = <
60
68
 
61
69
  return (
62
70
  <>
63
- {renderRowActions ? (
71
+ {renderRowActions && !showEditActionButtons ? (
64
72
  renderRowActions({ cell, row, table })
65
- ) : row.id === editingRow?.id && editingMode === 'row' ? (
73
+ ) : showEditActionButtons ? (
66
74
  <MRT_EditActionButtons row={row} table={table} />
67
75
  ) : !renderRowActionMenuItems &&
68
76
  (enableEditing instanceof Function
@@ -97,9 +105,9 @@ export const MRT_ToggleRowActionMenuButton = <
97
105
  <MRT_RowActionMenu
98
106
  anchorEl={anchorEl}
99
107
  handleEdit={handleStartEditMode}
100
- row={row as any}
108
+ row={row}
101
109
  setAnchorEl={setAnchorEl}
102
- table={table as any}
110
+ table={table}
103
111
  />
104
112
  </>
105
113
  ) : null}
@@ -0,0 +1,12 @@
1
+ export * from './MRT_ColumnPinningButtons';
2
+ export * from './MRT_CopyButton';
3
+ export * from './MRT_EditActionButtons';
4
+ export * from './MRT_ExpandAllButton';
5
+ export * from './MRT_ExpandButton';
6
+ export * from './MRT_ToggleFullScreenButton';
7
+ export * from './MRT_GrabHandleButton';
8
+ export * from './MRT_ShowHideColumnsButton';
9
+ export * from './MRT_ToggleDensePaddingButton';
10
+ export * from './MRT_ToggleFiltersButton';
11
+ export * from './MRT_ToggleGlobalFilterButton';
12
+ export * from './MRT_ToggleRowActionMenuButton';