material-react-table 1.15.0 → 2.0.0-alpha.1

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 (482) hide show
  1. package/dist/cjs/index.js +1624 -1269
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +7 -11
  4. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -5
  5. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
  6. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  7. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +6 -6
  8. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  9. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  10. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +6 -6
  11. package/dist/cjs/types/body/index.d.ts +7 -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_RowPinButton.d.ts +9 -0
  19. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  20. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  21. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  22. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  23. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  24. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  25. package/dist/cjs/types/buttons/index.d.ts +13 -0
  26. package/dist/cjs/types/column.utils.d.ts +40 -51
  27. package/dist/cjs/types/filterFns.d.ts +14 -14
  28. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  29. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +4 -4
  30. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -4
  31. package/dist/cjs/types/footer/index.d.ts +3 -0
  32. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  33. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +4 -4
  34. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  35. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  36. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  37. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  38. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  39. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  40. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -4
  41. package/dist/cjs/types/head/index.d.ts +9 -0
  42. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  43. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -0
  44. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -0
  45. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -0
  46. package/dist/cjs/types/index.d.ts +14 -25
  47. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  48. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  49. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  50. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  51. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +4 -4
  52. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  53. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  54. package/dist/cjs/types/inputs/index.d.ts +7 -0
  55. package/dist/cjs/types/locales/ar.d.ts +2 -0
  56. package/dist/cjs/types/locales/bg.d.ts +2 -0
  57. package/dist/cjs/types/locales/et.d.ts +2 -0
  58. package/dist/cjs/types/locales/ko.d.ts +2 -0
  59. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  60. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  61. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +4 -4
  62. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  63. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  64. package/dist/cjs/types/menus/index.d.ts +5 -0
  65. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +7 -0
  66. package/dist/cjs/types/modals/index.d.ts +1 -0
  67. package/dist/cjs/types/sortingFns.d.ts +3 -2
  68. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  69. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  70. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  71. package/dist/cjs/types/table/index.d.ts +4 -0
  72. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  73. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  74. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  75. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  76. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  77. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  78. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  79. package/dist/cjs/types/toolbar/index.d.ts +7 -0
  80. package/dist/cjs/types/types.d.ts +128 -91
  81. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -0
  82. package/dist/esm/material-react-table.esm.js +1567 -1279
  83. package/dist/esm/material-react-table.esm.js.map +1 -1
  84. package/dist/esm/types/MaterialReactTable.d.ts +7 -11
  85. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -5
  86. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
  87. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  88. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +6 -6
  89. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  90. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  91. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +6 -6
  92. package/dist/esm/types/body/index.d.ts +7 -0
  93. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  94. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +2 -2
  95. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  96. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  97. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
  98. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  99. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +9 -0
  100. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  101. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  102. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  103. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  104. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  105. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  106. package/dist/esm/types/buttons/index.d.ts +13 -0
  107. package/dist/esm/types/column.utils.d.ts +40 -51
  108. package/dist/esm/types/filterFns.d.ts +14 -14
  109. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  110. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +4 -4
  111. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -4
  112. package/dist/esm/types/footer/index.d.ts +3 -0
  113. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  114. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +4 -4
  115. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  116. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  117. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  118. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  119. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  120. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  121. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -4
  122. package/dist/esm/types/head/index.d.ts +9 -0
  123. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  124. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -0
  125. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -0
  126. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -0
  127. package/dist/esm/types/index.d.ts +14 -25
  128. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  129. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  130. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  131. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  132. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +4 -4
  133. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  134. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  135. package/dist/esm/types/inputs/index.d.ts +7 -0
  136. package/dist/esm/types/locales/ar.d.ts +2 -0
  137. package/dist/esm/types/locales/bg.d.ts +2 -0
  138. package/dist/esm/types/locales/et.d.ts +2 -0
  139. package/dist/esm/types/locales/ko.d.ts +2 -0
  140. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  141. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  142. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +4 -4
  143. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  144. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  145. package/dist/esm/types/menus/index.d.ts +5 -0
  146. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +7 -0
  147. package/dist/esm/types/modals/index.d.ts +1 -0
  148. package/dist/esm/types/sortingFns.d.ts +3 -2
  149. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  150. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  151. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  152. package/dist/esm/types/table/index.d.ts +4 -0
  153. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  154. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  155. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  156. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  157. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  158. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  159. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  160. package/dist/esm/types/toolbar/index.d.ts +7 -0
  161. package/dist/esm/types/types.d.ts +128 -91
  162. package/dist/esm/types/useMaterialReactTable.d.ts +2 -0
  163. package/dist/index.d.ts +626 -155
  164. package/locales/ar.d.ts +2 -0
  165. package/locales/ar.esm.d.ts +2 -0
  166. package/locales/ar.esm.js +93 -0
  167. package/locales/ar.esm.js.map +1 -0
  168. package/locales/ar.js +97 -0
  169. package/locales/ar.js.map +1 -0
  170. package/locales/bg.d.ts +2 -0
  171. package/locales/bg.esm.d.ts +2 -0
  172. package/locales/bg.esm.js +93 -0
  173. package/locales/bg.esm.js.map +1 -0
  174. package/locales/bg.js +97 -0
  175. package/locales/bg.js.map +1 -0
  176. package/locales/cs.esm.js +1 -2
  177. package/locales/cs.esm.js.map +1 -1
  178. package/locales/cs.js +1 -2
  179. package/locales/cs.js.map +1 -1
  180. package/locales/da.esm.js +0 -1
  181. package/locales/da.esm.js.map +1 -1
  182. package/locales/da.js +0 -1
  183. package/locales/da.js.map +1 -1
  184. package/locales/de.esm.js +0 -1
  185. package/locales/de.esm.js.map +1 -1
  186. package/locales/de.js +0 -1
  187. package/locales/de.js.map +1 -1
  188. package/locales/en.esm.js +1 -1
  189. package/locales/en.esm.js.map +1 -1
  190. package/locales/en.js +1 -1
  191. package/locales/en.js.map +1 -1
  192. package/locales/es.esm.js +0 -1
  193. package/locales/es.esm.js.map +1 -1
  194. package/locales/es.js +0 -1
  195. package/locales/es.js.map +1 -1
  196. package/locales/et.d.ts +2 -0
  197. package/locales/et.esm.d.ts +2 -0
  198. package/locales/et.esm.js +93 -0
  199. package/locales/et.esm.js.map +1 -0
  200. package/locales/et.js +97 -0
  201. package/locales/et.js.map +1 -0
  202. package/locales/fa.esm.js +0 -1
  203. package/locales/fa.esm.js.map +1 -1
  204. package/locales/fa.js +0 -1
  205. package/locales/fa.js.map +1 -1
  206. package/locales/fi.esm.js +0 -1
  207. package/locales/fi.esm.js.map +1 -1
  208. package/locales/fi.js +0 -1
  209. package/locales/fi.js.map +1 -1
  210. package/locales/fr.esm.js +0 -1
  211. package/locales/fr.esm.js.map +1 -1
  212. package/locales/fr.js +0 -1
  213. package/locales/fr.js.map +1 -1
  214. package/locales/hu.esm.js +0 -1
  215. package/locales/hu.esm.js.map +1 -1
  216. package/locales/hu.js +0 -1
  217. package/locales/hu.js.map +1 -1
  218. package/locales/id.esm.js +0 -1
  219. package/locales/id.esm.js.map +1 -1
  220. package/locales/id.js +0 -1
  221. package/locales/id.js.map +1 -1
  222. package/locales/it.esm.js +0 -1
  223. package/locales/it.esm.js.map +1 -1
  224. package/locales/it.js +0 -1
  225. package/locales/it.js.map +1 -1
  226. package/locales/ja.esm.js +0 -1
  227. package/locales/ja.esm.js.map +1 -1
  228. package/locales/ja.js +0 -1
  229. package/locales/ja.js.map +1 -1
  230. package/locales/ko.d.ts +2 -0
  231. package/locales/ko.esm.d.ts +2 -0
  232. package/locales/ko.esm.js +93 -0
  233. package/locales/ko.esm.js.map +1 -0
  234. package/locales/ko.js +97 -0
  235. package/locales/ko.js.map +1 -0
  236. package/locales/nl.esm.js +0 -1
  237. package/locales/nl.esm.js.map +1 -1
  238. package/locales/nl.js +0 -1
  239. package/locales/nl.js.map +1 -1
  240. package/locales/no.esm.js +0 -1
  241. package/locales/no.esm.js.map +1 -1
  242. package/locales/no.js +0 -1
  243. package/locales/no.js.map +1 -1
  244. package/locales/pl.esm.js +0 -1
  245. package/locales/pl.esm.js.map +1 -1
  246. package/locales/pl.js +0 -1
  247. package/locales/pl.js.map +1 -1
  248. package/locales/pt-BR.esm.js +0 -1
  249. package/locales/pt-BR.esm.js.map +1 -1
  250. package/locales/pt-BR.js +0 -1
  251. package/locales/pt-BR.js.map +1 -1
  252. package/locales/pt.esm.js +0 -1
  253. package/locales/pt.esm.js.map +1 -1
  254. package/locales/pt.js +0 -1
  255. package/locales/pt.js.map +1 -1
  256. package/locales/ro.esm.js +0 -1
  257. package/locales/ro.esm.js.map +1 -1
  258. package/locales/ro.js +0 -1
  259. package/locales/ro.js.map +1 -1
  260. package/locales/ru.esm.js +0 -1
  261. package/locales/ru.esm.js.map +1 -1
  262. package/locales/ru.js +0 -1
  263. package/locales/ru.js.map +1 -1
  264. package/locales/sk.esm.js +0 -1
  265. package/locales/sk.esm.js.map +1 -1
  266. package/locales/sk.js +0 -1
  267. package/locales/sk.js.map +1 -1
  268. package/locales/sr-Cyrl-RS.esm.js +0 -1
  269. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  270. package/locales/sr-Cyrl-RS.js +0 -1
  271. package/locales/sr-Cyrl-RS.js.map +1 -1
  272. package/locales/sr-Latn-RS.esm.js +0 -1
  273. package/locales/sr-Latn-RS.esm.js.map +1 -1
  274. package/locales/sr-Latn-RS.js +0 -1
  275. package/locales/sr-Latn-RS.js.map +1 -1
  276. package/locales/sv.esm.js +0 -1
  277. package/locales/sv.esm.js.map +1 -1
  278. package/locales/sv.js +0 -1
  279. package/locales/sv.js.map +1 -1
  280. package/package.json +18 -16
  281. package/src/MaterialReactTable.tsx +31 -168
  282. package/src/body/MRT_TableBody.tsx +184 -93
  283. package/src/body/MRT_TableBodyCell.tsx +55 -56
  284. package/src/body/MRT_TableBodyCellValue.tsx +7 -4
  285. package/src/body/MRT_TableBodyRow.tsx +111 -23
  286. package/src/body/MRT_TableBodyRowGrabHandle.tsx +15 -11
  287. package/src/body/MRT_TableBodyRowPinButton.tsx +46 -0
  288. package/src/body/MRT_TableDetailPanel.tsx +21 -27
  289. package/src/body/index.ts +7 -0
  290. package/src/buttons/MRT_ColumnPinningButtons.tsx +2 -4
  291. package/src/buttons/MRT_CopyButton.tsx +17 -23
  292. package/src/buttons/MRT_EditActionButtons.tsx +56 -25
  293. package/src/buttons/MRT_ExpandAllButton.tsx +10 -10
  294. package/src/buttons/MRT_ExpandButton.tsx +8 -9
  295. package/src/buttons/MRT_GrabHandleButton.tsx +4 -5
  296. package/src/buttons/MRT_RowPinButton.tsx +74 -0
  297. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -5
  298. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -3
  299. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -5
  300. package/src/buttons/{MRT_FullScreenToggleButton.tsx → MRT_ToggleFullScreenButton.tsx} +13 -6
  301. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  302. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +18 -11
  303. package/src/buttons/index.ts +13 -0
  304. package/src/column.utils.ts +107 -50
  305. package/src/filterFns.ts +14 -14
  306. package/src/footer/MRT_TableFooter.tsx +17 -11
  307. package/src/footer/MRT_TableFooterCell.tsx +14 -24
  308. package/src/footer/MRT_TableFooterRow.tsx +12 -13
  309. package/src/footer/index.ts +3 -0
  310. package/src/head/MRT_TableHead.tsx +15 -11
  311. package/src/head/MRT_TableHeadCell.tsx +16 -24
  312. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +18 -24
  313. package/src/head/MRT_TableHeadCellFilterContainer.tsx +9 -4
  314. package/src/head/MRT_TableHeadCellFilterLabel.tsx +9 -4
  315. package/src/head/MRT_TableHeadCellGrabHandle.tsx +13 -20
  316. package/src/head/MRT_TableHeadCellResizeHandle.tsx +9 -4
  317. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -6
  318. package/src/head/MRT_TableHeadRow.tsx +12 -13
  319. package/src/head/index.ts +9 -0
  320. package/src/hooks/useMRT_DisplayColumns.tsx +155 -0
  321. package/src/hooks/useMRT_Effects.ts +77 -0
  322. package/src/hooks/useMRT_TableInstance.ts +297 -0
  323. package/src/hooks/useMRT_TableOptions.ts +173 -0
  324. package/src/index.ts +16 -0
  325. package/src/inputs/MRT_EditCellTextField.tsx +47 -41
  326. package/src/inputs/MRT_FilterCheckbox.tsx +19 -28
  327. package/src/inputs/MRT_FilterRangeFields.tsx +7 -4
  328. package/src/inputs/MRT_FilterRangeSlider.tsx +14 -32
  329. package/src/inputs/MRT_FilterTextField.tsx +18 -34
  330. package/src/inputs/MRT_GlobalFilterTextField.tsx +6 -8
  331. package/src/inputs/MRT_SelectCheckbox.tsx +39 -21
  332. package/src/inputs/index.ts +7 -0
  333. package/src/locales/ar.ts +94 -0
  334. package/src/locales/bg.ts +93 -0
  335. package/src/{_locales → locales}/cs.ts +1 -2
  336. package/src/{_locales → locales}/da.ts +0 -1
  337. package/src/{_locales → locales}/de.ts +0 -1
  338. package/src/{_locales → locales}/en.ts +1 -1
  339. package/src/{_locales → locales}/es.ts +0 -1
  340. package/src/locales/et.ts +94 -0
  341. package/src/{_locales → locales}/fa.ts +0 -1
  342. package/src/{_locales → locales}/fi.ts +0 -1
  343. package/src/{_locales → locales}/fr.ts +0 -1
  344. package/src/{_locales → locales}/hu.ts +0 -1
  345. package/src/{_locales → locales}/id.ts +0 -1
  346. package/src/{_locales → locales}/it.ts +0 -1
  347. package/src/{_locales → locales}/ja.ts +0 -1
  348. package/src/locales/ko.ts +93 -0
  349. package/src/{_locales → locales}/nl.ts +0 -1
  350. package/src/{_locales → locales}/no.ts +1 -1
  351. package/src/{_locales → locales}/pl.ts +0 -1
  352. package/src/{_locales → locales}/pt-BR.ts +0 -1
  353. package/src/{_locales → locales}/pt.ts +0 -1
  354. package/src/{_locales → locales}/ro.ts +0 -1
  355. package/src/{_locales → locales}/ru.ts +0 -1
  356. package/src/{_locales → locales}/sk.ts +0 -1
  357. package/src/{_locales → locales}/sr-Cyrl-RS.ts +0 -1
  358. package/src/{_locales → locales}/sr-Latn-RS.ts +0 -1
  359. package/src/{_locales → locales}/sv.ts +0 -1
  360. package/src/{_locales → locales}/tr.ts +0 -1
  361. package/src/{_locales → locales}/uk.ts +0 -1
  362. package/src/{_locales → locales}/vi.ts +0 -1
  363. package/src/{_locales → locales}/zh-Hans.ts +7 -8
  364. package/src/{_locales → locales}/zh-Hant.ts +1 -2
  365. package/src/menus/MRT_ColumnActionMenu.tsx +8 -8
  366. package/src/menus/MRT_FilterOptionMenu.tsx +4 -3
  367. package/src/menus/MRT_RowActionMenu.tsx +16 -17
  368. package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
  369. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +4 -4
  370. package/src/menus/index.ts +5 -0
  371. package/src/modals/MRT_EditRowModal.tsx +107 -0
  372. package/src/modals/index.ts +1 -0
  373. package/src/sortingFns.ts +6 -2
  374. package/src/table/MRT_Table.tsx +42 -40
  375. package/src/table/MRT_TableContainer.tsx +24 -12
  376. package/src/table/MRT_TablePaper.tsx +22 -17
  377. package/src/table/index.ts +4 -0
  378. package/src/toolbar/MRT_BottomToolbar.tsx +16 -22
  379. package/src/toolbar/MRT_LinearProgressBar.tsx +7 -6
  380. package/src/toolbar/MRT_TablePagination.tsx +7 -9
  381. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +10 -13
  382. package/src/toolbar/MRT_ToolbarDropZone.tsx +2 -2
  383. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
  384. package/src/toolbar/MRT_TopToolbar.tsx +10 -16
  385. package/src/toolbar/index.ts +7 -0
  386. package/src/types.ts +803 -770
  387. package/src/useMaterialReactTable.ts +11 -0
  388. package/dist/cjs/types/body/MRT_EditRowModal.d.ts +0 -8
  389. package/dist/cjs/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  390. package/dist/cjs/types/table/MRT_TableRoot.d.ts +0 -1
  391. package/dist/esm/types/body/MRT_EditRowModal.d.ts +0 -8
  392. package/dist/esm/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  393. package/dist/esm/types/table/MRT_TableRoot.d.ts +0 -1
  394. package/locales/tr.d.ts +0 -2
  395. package/locales/tr.esm.d.ts +0 -2
  396. package/locales/tr.esm.js +0 -94
  397. package/locales/tr.esm.js.map +0 -1
  398. package/locales/tr.js +0 -98
  399. package/locales/tr.js.map +0 -1
  400. package/locales/uk.d.ts +0 -2
  401. package/locales/uk.esm.d.ts +0 -2
  402. package/locales/uk.esm.js +0 -94
  403. package/locales/uk.esm.js.map +0 -1
  404. package/locales/uk.js +0 -98
  405. package/locales/uk.js.map +0 -1
  406. package/locales/vi.d.ts +0 -2
  407. package/locales/vi.esm.d.ts +0 -2
  408. package/locales/vi.esm.js +0 -94
  409. package/locales/vi.esm.js.map +0 -1
  410. package/locales/vi.js +0 -98
  411. package/locales/vi.js.map +0 -1
  412. package/locales/zh-Hans.d.ts +0 -2
  413. package/locales/zh-Hans.esm.d.ts +0 -2
  414. package/locales/zh-Hans.esm.js +0 -94
  415. package/locales/zh-Hans.esm.js.map +0 -1
  416. package/locales/zh-Hans.js +0 -98
  417. package/locales/zh-Hans.js.map +0 -1
  418. package/locales/zh-Hant.d.ts +0 -2
  419. package/locales/zh-Hant.esm.d.ts +0 -2
  420. package/locales/zh-Hant.esm.js +0 -94
  421. package/locales/zh-Hant.esm.js.map +0 -1
  422. package/locales/zh-Hant.js +0 -98
  423. package/locales/zh-Hant.js.map +0 -1
  424. package/src/body/MRT_EditRowModal.tsx +0 -57
  425. package/src/index.tsx +0 -50
  426. package/src/table/MRT_TableRoot.tsx +0 -421
  427. /package/dist/cjs/types/{_locales → locales}/cs.d.ts +0 -0
  428. /package/dist/cjs/types/{_locales → locales}/da.d.ts +0 -0
  429. /package/dist/cjs/types/{_locales → locales}/de.d.ts +0 -0
  430. /package/dist/cjs/types/{_locales → locales}/en.d.ts +0 -0
  431. /package/dist/cjs/types/{_locales → locales}/es.d.ts +0 -0
  432. /package/dist/cjs/types/{_locales → locales}/fa.d.ts +0 -0
  433. /package/dist/cjs/types/{_locales → locales}/fi.d.ts +0 -0
  434. /package/dist/cjs/types/{_locales → locales}/fr.d.ts +0 -0
  435. /package/dist/cjs/types/{_locales → locales}/hu.d.ts +0 -0
  436. /package/dist/cjs/types/{_locales → locales}/id.d.ts +0 -0
  437. /package/dist/cjs/types/{_locales → locales}/it.d.ts +0 -0
  438. /package/dist/cjs/types/{_locales → locales}/ja.d.ts +0 -0
  439. /package/dist/cjs/types/{_locales → locales}/nl.d.ts +0 -0
  440. /package/dist/cjs/types/{_locales → locales}/no.d.ts +0 -0
  441. /package/dist/cjs/types/{_locales → locales}/pl.d.ts +0 -0
  442. /package/dist/cjs/types/{_locales → locales}/pt-BR.d.ts +0 -0
  443. /package/dist/cjs/types/{_locales → locales}/pt.d.ts +0 -0
  444. /package/dist/cjs/types/{_locales → locales}/ro.d.ts +0 -0
  445. /package/dist/cjs/types/{_locales → locales}/ru.d.ts +0 -0
  446. /package/dist/cjs/types/{_locales → locales}/sk.d.ts +0 -0
  447. /package/dist/cjs/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  448. /package/dist/cjs/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  449. /package/dist/cjs/types/{_locales → locales}/sv.d.ts +0 -0
  450. /package/dist/cjs/types/{_locales → locales}/tr.d.ts +0 -0
  451. /package/dist/cjs/types/{_locales → locales}/uk.d.ts +0 -0
  452. /package/dist/cjs/types/{_locales → locales}/vi.d.ts +0 -0
  453. /package/dist/cjs/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  454. /package/dist/cjs/types/{_locales → locales}/zh-Hant.d.ts +0 -0
  455. /package/dist/esm/types/{_locales → locales}/cs.d.ts +0 -0
  456. /package/dist/esm/types/{_locales → locales}/da.d.ts +0 -0
  457. /package/dist/esm/types/{_locales → locales}/de.d.ts +0 -0
  458. /package/dist/esm/types/{_locales → locales}/en.d.ts +0 -0
  459. /package/dist/esm/types/{_locales → locales}/es.d.ts +0 -0
  460. /package/dist/esm/types/{_locales → locales}/fa.d.ts +0 -0
  461. /package/dist/esm/types/{_locales → locales}/fi.d.ts +0 -0
  462. /package/dist/esm/types/{_locales → locales}/fr.d.ts +0 -0
  463. /package/dist/esm/types/{_locales → locales}/hu.d.ts +0 -0
  464. /package/dist/esm/types/{_locales → locales}/id.d.ts +0 -0
  465. /package/dist/esm/types/{_locales → locales}/it.d.ts +0 -0
  466. /package/dist/esm/types/{_locales → locales}/ja.d.ts +0 -0
  467. /package/dist/esm/types/{_locales → locales}/nl.d.ts +0 -0
  468. /package/dist/esm/types/{_locales → locales}/no.d.ts +0 -0
  469. /package/dist/esm/types/{_locales → locales}/pl.d.ts +0 -0
  470. /package/dist/esm/types/{_locales → locales}/pt-BR.d.ts +0 -0
  471. /package/dist/esm/types/{_locales → locales}/pt.d.ts +0 -0
  472. /package/dist/esm/types/{_locales → locales}/ro.d.ts +0 -0
  473. /package/dist/esm/types/{_locales → locales}/ru.d.ts +0 -0
  474. /package/dist/esm/types/{_locales → locales}/sk.d.ts +0 -0
  475. /package/dist/esm/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  476. /package/dist/esm/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  477. /package/dist/esm/types/{_locales → locales}/sv.d.ts +0 -0
  478. /package/dist/esm/types/{_locales → locales}/tr.d.ts +0 -0
  479. /package/dist/esm/types/{_locales → locales}/uk.d.ts +0 -0
  480. /package/dist/esm/types/{_locales → locales}/vi.d.ts +0 -0
  481. /package/dist/esm/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  482. /package/dist/esm/types/{_locales → locales}/zh-Hant.d.ts +0 -0
@@ -1,14 +1,15 @@
1
- import { type Dispatch, type MutableRefObject, type ReactNode, type SetStateAction } from 'react';
1
+ import { type Dispatch, type MutableRefObject, type ReactNode, type RefObject, type SetStateAction } from 'react';
2
2
  import { type AlertProps } from '@mui/material/Alert';
3
3
  import { type ButtonProps } from '@mui/material/Button';
4
4
  import { type CheckboxProps } from '@mui/material/Checkbox';
5
5
  import { type ChipProps } from '@mui/material/Chip';
6
+ import { type DialogProps } from '@mui/material/Dialog';
6
7
  import { type IconButtonProps } from '@mui/material/IconButton';
7
8
  import { type LinearProgressProps } from '@mui/material/LinearProgress';
8
9
  import { type PaperProps } from '@mui/material/Paper';
9
10
  import { type RadioProps } from '@mui/material/Radio';
10
11
  import { type SkeletonProps } from '@mui/material/Skeleton';
11
- import { type SliderProps } from '@mui/material';
12
+ import { type SliderProps } from '@mui/material/Slider';
12
13
  import { type TableBodyProps } from '@mui/material/TableBody';
13
14
  import { type TableCellProps } from '@mui/material/TableCell';
14
15
  import { type TableContainerProps } from '@mui/material/TableContainer';
@@ -26,12 +27,17 @@ import { type MRT_FilterFns } from './filterFns';
26
27
  import { type MRT_SortingFns } from './sortingFns';
27
28
  import { type MRT_Icons } from './icons';
28
29
  export type { MRT_Icons };
29
- type Prettify<T> = {
30
+ export type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);
31
+ export type Prettify<T> = {
30
32
  [K in keyof T]: T[K];
31
- } & {};
32
- type LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);
33
+ } & unknown;
34
+ export type Xor<A, B> = Prettify<A & {
35
+ [k in keyof B]?: never;
36
+ }> | Prettify<B & {
37
+ [k in keyof A]?: never;
38
+ }>;
33
39
  export type MRT_DensityState = 'comfortable' | 'compact' | 'spacious';
34
- export type MRT_FilterFnsState = Record<string, MRT_FilterOption>;
40
+ export type MRT_ColumnFilterFnsState = Record<string, MRT_FilterOption>;
35
41
  export type { ColumnFiltersState as MRT_ColumnFiltersState, ColumnOrderState as MRT_ColumnOrderState, ColumnPinningState as MRT_ColumnPinningState, ColumnSizingInfoState as MRT_ColumnSizingInfoState, ColumnSizingState as MRT_ColumnSizingState, ExpandedState as MRT_ExpandedState, GroupingState as MRT_GroupingState, PaginationState as MRT_PaginationState, RowSelectionState as MRT_RowSelectionState, SortingState as MRT_SortingState, Updater as MRT_Updater, VirtualItem as MRT_VirtualItem, Virtualizer as MRT_Virtualizer, VirtualizerOptions as MRT_VirtualizerOptions, VisibilityState as MRT_VisibilityState, };
36
42
  export interface MRT_Localization {
37
43
  actions: string;
@@ -65,9 +71,10 @@ export interface MRT_Localization {
65
71
  filterFuzzy: string;
66
72
  filterGreaterThan: string;
67
73
  filterGreaterThanOrEqualTo: string;
68
- filterInNumberRange: string;
69
74
  filterIncludesString: string;
70
75
  filterIncludesStringSensitive: string;
76
+ filteringByColumn: string;
77
+ filterInNumberRange: string;
71
78
  filterLessThan: string;
72
79
  filterLessThanOrEqualTo: string;
73
80
  filterMode: string;
@@ -75,7 +82,6 @@ export interface MRT_Localization {
75
82
  filterNotEquals: string;
76
83
  filterStartsWith: string;
77
84
  filterWeakEquals: string;
78
- filteringByColumn: string;
79
85
  goToFirstPage: string;
80
86
  goToLastPage: string;
81
87
  goToNextPage: string;
@@ -92,6 +98,7 @@ export interface MRT_Localization {
92
98
  noResultsFound: string;
93
99
  of: string;
94
100
  or: string;
101
+ pin?: string;
95
102
  pinToLeft: string;
96
103
  pinToRight: string;
97
104
  resetColumnSize: string;
@@ -122,23 +129,25 @@ export interface MRT_Localization {
122
129
  ungroupByColumn: string;
123
130
  unpin: string;
124
131
  unpinAll: string;
125
- unsorted: string;
126
132
  }
127
- export interface MRT_RowModel<TData extends Record<string, any> = {}> {
133
+ export interface MRT_RowModel<TData extends Record<string, any>> {
128
134
  flatRows: MRT_Row<TData>[];
129
135
  rows: MRT_Row<TData>[];
130
136
  rowsById: {
131
137
  [key: string]: MRT_Row<TData>;
132
138
  };
133
139
  }
134
- export type MRT_TableInstance<TData extends Record<string, any> = {}> = Prettify<Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
140
+ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getBottomRows' | 'getCenterLeafColumns' | 'getCenterRows' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getHeaderGroups' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'getTopRows' | 'options'> & {
135
141
  getAllColumns: () => MRT_Column<TData>[];
136
142
  getAllFlatColumns: () => MRT_Column<TData>[];
137
143
  getAllLeafColumns: () => MRT_Column<TData>[];
144
+ getBottomRows: () => MRT_Row<TData>[];
138
145
  getCenterLeafColumns: () => MRT_Column<TData>[];
146
+ getCenterRows: () => MRT_Row<TData>[];
139
147
  getColumn: (columnId: string) => MRT_Column<TData>;
140
148
  getExpandedRowModel: () => MRT_RowModel<TData>;
141
149
  getFlatHeaders: () => MRT_Header<TData>[];
150
+ getHeaderGroups: () => MRT_HeaderGroup<TData>[];
142
151
  getLeftLeafColumns: () => MRT_Column<TData>[];
143
152
  getPaginationRowModel: () => MRT_RowModel<TData>;
144
153
  getPreFilteredRowModel: () => MRT_RowModel<TData>;
@@ -147,10 +156,8 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Prettify
147
156
  getRowModel: () => MRT_RowModel<TData>;
148
157
  getSelectedRowModel: () => MRT_RowModel<TData>;
149
158
  getState: () => MRT_TableState<TData>;
150
- options: MaterialReactTableProps<TData> & {
151
- icons: MRT_Icons;
152
- localization: MRT_Localization;
153
- };
159
+ getTopRows: () => MRT_Row<TData>[];
160
+ options: MRT_DefinedTableOptions<TData>;
154
161
  refs: {
155
162
  bottomToolbarRef: MutableRefObject<HTMLDivElement>;
156
163
  editInputRefs: MutableRefObject<Record<string, HTMLInputElement>>;
@@ -160,8 +167,11 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Prettify
160
167
  tableHeadCellRefs: MutableRefObject<Record<string, HTMLTableCellElement>>;
161
168
  tablePaperRef: MutableRefObject<HTMLDivElement>;
162
169
  topToolbarRef: MutableRefObject<HTMLDivElement>;
170
+ tableHeadRef: MutableRefObject<HTMLTableSectionElement>;
171
+ tableFooterRef: MutableRefObject<HTMLTableSectionElement>;
163
172
  };
164
- setColumnFilterFns: Dispatch<SetStateAction<MRT_FilterFnsState>>;
173
+ setCreatingRow: Dispatch<SetStateAction<MRT_Row<TData> | null | true>>;
174
+ setColumnFilterFns: Dispatch<SetStateAction<MRT_ColumnFilterFnsState>>;
165
175
  setDensity: Dispatch<SetStateAction<MRT_DensityState>>;
166
176
  setDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;
167
177
  setDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;
@@ -179,9 +189,14 @@ export type MRT_TableInstance<TData extends Record<string, any> = {}> = Prettify
179
189
  setShowColumnFilters: Dispatch<SetStateAction<boolean>>;
180
190
  setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
181
191
  setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
182
- }>;
183
- export type MRT_TableState<TData extends Record<string, any> = {}> = Prettify<TableState & {
184
- columnFilterFns: MRT_FilterFnsState;
192
+ };
193
+ export type MRT_DefinedTableOptions<TData extends Record<string, any>> = MRT_TableOptions<TData> & {
194
+ localization: MRT_Localization;
195
+ icons: MRT_Icons;
196
+ };
197
+ export type MRT_TableState<TData extends Record<string, any>> = TableState & {
198
+ columnFilterFns: MRT_ColumnFilterFnsState;
199
+ creatingRow: MRT_Row<TData> | null;
185
200
  density: MRT_DensityState;
186
201
  draggingColumn: MRT_Column<TData> | null;
187
202
  draggingRow: MRT_Row<TData> | null;
@@ -196,14 +211,15 @@ export type MRT_TableState<TData extends Record<string, any> = {}> = Prettify<Ta
196
211
  } | null;
197
212
  isFullScreen: boolean;
198
213
  isLoading: boolean;
214
+ isSaving: boolean;
199
215
  showAlertBanner: boolean;
200
216
  showColumnFilters: boolean;
201
217
  showGlobalFilter: boolean;
202
218
  showProgressBars: boolean;
203
219
  showSkeletons: boolean;
204
220
  showToolbarDropZone: boolean;
205
- }>;
206
- export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
221
+ };
222
+ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
207
223
  AggregatedCell?: (props: {
208
224
  cell: MRT_Cell<TData>;
209
225
  column: MRT_Column<TData>;
@@ -215,6 +231,7 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnD
215
231
  renderedCellValue: number | string | ReactNode;
216
232
  column: MRT_Column<TData>;
217
233
  row: MRT_Row<TData>;
234
+ rowRef?: RefObject<HTMLTableRowElement>;
218
235
  table: MRT_TableInstance<TData>;
219
236
  }) => ReactNode;
220
237
  Edit?: (props: {
@@ -315,13 +332,13 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnD
315
332
  * @default gets set to the same value as `accessorKey` by default
316
333
  */
317
334
  id?: LiteralUnion<string & keyof TData>;
318
- muiTableBodyCellCopyButtonProps?: ButtonProps | ((props: {
335
+ muiCopyButtonProps?: ButtonProps | ((props: {
319
336
  cell: MRT_Cell<TData>;
320
337
  column: MRT_Column<TData>;
321
338
  row: MRT_Row<TData>;
322
339
  table: MRT_TableInstance<TData>;
323
340
  }) => ButtonProps);
324
- muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((props: {
341
+ muiEditTextFieldProps?: TextFieldProps | ((props: {
325
342
  cell: MRT_Cell<TData>;
326
343
  column: MRT_Column<TData>;
327
344
  row: MRT_Row<TData>;
@@ -337,27 +354,27 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnD
337
354
  table: MRT_TableInstance<TData>;
338
355
  column: MRT_Column<TData>;
339
356
  }) => TableCellProps);
340
- muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((props: {
357
+ muiColumnActionsButtonProps?: IconButtonProps | ((props: {
341
358
  table: MRT_TableInstance<TData>;
342
359
  column: MRT_Column<TData>;
343
360
  }) => IconButtonProps);
344
- muiTableHeadCellDragHandleProps?: IconButtonProps | ((props: {
361
+ muiColumnDragHandleProps?: IconButtonProps | ((props: {
345
362
  table: MRT_TableInstance<TData>;
346
363
  column: MRT_Column<TData>;
347
364
  }) => IconButtonProps);
348
- muiTableHeadCellFilterCheckboxProps?: CheckboxProps | ((props: {
365
+ muiFilterCheckboxProps?: CheckboxProps | ((props: {
349
366
  column: MRT_Column<TData>;
350
367
  table: MRT_TableInstance<TData>;
351
368
  }) => CheckboxProps);
352
- muiTableHeadCellFilterTextFieldProps?: TextFieldProps | ((props: {
369
+ muiFilterTextFieldProps?: TextFieldProps | ((props: {
353
370
  table: MRT_TableInstance<TData>;
354
371
  column: MRT_Column<TData>;
355
372
  rangeFilterIndex?: number;
356
373
  }) => TextFieldProps);
357
- muiTableHeadCellFilterSliderProps?: SliderProps | ((props: {
374
+ muiFilterSliderProps?: SliderProps | ((props: {
358
375
  table: MRT_TableInstance<TData>;
359
376
  column: MRT_Column<TData>;
360
- }) => TextFieldProps);
377
+ }) => SliderProps);
361
378
  muiTableHeadCellProps?: TableCellProps | ((props: {
362
379
  table: MRT_TableInstance<TData>;
363
380
  column: MRT_Column<TData>;
@@ -376,48 +393,47 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<ColumnD
376
393
  }) => ReactNode[];
377
394
  sortingFn?: MRT_SortingFn<TData>;
378
395
  };
379
- export type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & {
396
+ export type MRT_DefinedColumnDef<TData extends Record<string, any>> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & {
380
397
  defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
381
398
  id: string;
382
399
  _filterFn: MRT_FilterOption;
383
400
  };
384
- export type MRT_Column<TData extends Record<string, any> = {}> = Omit<Column<TData, unknown>, 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'> & {
401
+ export type MRT_Column<TData extends Record<string, any>> = Omit<Column<TData, unknown>, 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'> & {
385
402
  columnDef: MRT_DefinedColumnDef<TData>;
386
403
  columns?: MRT_Column<TData>[];
387
404
  filterFn?: MRT_FilterFn<TData>;
388
405
  footer: string;
389
406
  header: string;
390
407
  };
391
- export type MRT_Header<TData extends Record<string, any> = {}> = Prettify<Omit<Header<TData, unknown>, 'column'> & {
408
+ export type MRT_Header<TData extends Record<string, any>> = Omit<Header<TData, unknown>, 'column'> & {
392
409
  column: MRT_Column<TData>;
393
- }>;
394
- export type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Prettify<Omit<HeaderGroup<TData>, 'headers'> & {
410
+ };
411
+ export type MRT_HeaderGroup<TData extends Record<string, any>> = Omit<HeaderGroup<TData>, 'headers'> & {
395
412
  headers: MRT_Header<TData>[];
396
- }>;
397
- export type MRT_Row<TData extends Record<string, any> = {}> = Prettify<Omit<Row<TData>, 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'> & {
413
+ };
414
+ export type MRT_Row<TData extends Record<string, any>> = Omit<Row<TData>, 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'> & {
398
415
  getAllCells: () => MRT_Cell<TData>[];
399
416
  getVisibleCells: () => MRT_Cell<TData>[];
400
417
  subRows?: MRT_Row<TData>[];
401
418
  _valuesCache: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
402
- }>;
403
- export type MRT_Cell<TData extends Record<string, any> = {}> = Prettify<Omit<Cell<TData, unknown>, 'column' | 'row'> & {
419
+ };
420
+ export type MRT_Cell<TData extends Record<string, any>> = Omit<Cell<TData, unknown>, 'column' | 'row'> & {
404
421
  column: MRT_Column<TData>;
405
422
  row: MRT_Row<TData>;
406
- }>;
423
+ };
407
424
  export type MRT_AggregationOption = string & keyof typeof MRT_AggregationFns;
408
- export type MRT_AggregationFn<TData extends Record<string, any> = {}> = AggregationFn<TData> | MRT_AggregationOption;
425
+ export type MRT_AggregationFn<TData extends Record<string, any>> = AggregationFn<TData> | MRT_AggregationOption;
409
426
  export type MRT_SortingOption = LiteralUnion<string & keyof typeof MRT_SortingFns>;
410
- export type MRT_SortingFn<TData extends Record<string, any> = {}> = SortingFn<TData> | MRT_SortingOption;
427
+ export type MRT_SortingFn<TData extends Record<string, any>> = SortingFn<TData> | MRT_SortingOption;
411
428
  export type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>;
412
- export type MRT_FilterFn<TData extends Record<string, any> = {}> = FilterFn<TData> | MRT_FilterOption;
429
+ export type MRT_FilterFn<TData extends Record<string, any>> = FilterFn<TData> | MRT_FilterOption;
413
430
  export type MRT_InternalFilterOption = {
431
+ divider: boolean;
432
+ label: string;
414
433
  option: string;
415
434
  symbol: string;
416
- label: string;
417
- divider: boolean;
418
435
  };
419
- export type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select';
420
- export type MRT_CreateTableFeature<TData extends Record<string, any> = {}, TFeature = any> = (table: MRT_TableInstance<TData>) => TFeature;
436
+ export type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select' | 'mrt-row-pin';
421
437
  /**
422
438
  * `columns` and `data` props are the only required props, but there are over 170 other optional props.
423
439
  *
@@ -427,7 +443,7 @@ export type MRT_CreateTableFeature<TData extends Record<string, any> = {}, TFeat
427
443
  * See the full props list on the official docs site:
428
444
  * @link https://www.material-react-table.com/docs/api/props
429
445
  */
430
- export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'defaultColumn' | 'enableRowSelection' | 'expandRowsFn' | 'getRowId' | 'globalFilterFn' | 'initialState' | 'onStateChange' | 'state'> & {
446
+ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'defaultColumn' | 'enableRowSelection' | 'expandRowsFn' | 'getRowId' | 'globalFilterFn' | 'initialState' | 'onStateChange' | 'state'> & {
431
447
  columnFilterModeOptions?: Array<LiteralUnion<string & MRT_FilterOption>> | null;
432
448
  /**
433
449
  * The columns to display in the table. `accessorKey`s or `accessorFn`s must match keys in the `data` prop.
@@ -440,6 +456,10 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
440
456
  * @link https://www.material-react-table.com/docs/api/column-options
441
457
  */
442
458
  columns: MRT_ColumnDef<TData>[];
459
+ columnVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableCellElement> | null>;
460
+ columnVirtualizerOptions?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>> | ((props: {
461
+ table: MRT_TableInstance<TData>;
462
+ }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>);
443
463
  /**
444
464
  * Pass your data as an array of objects. Objects can theoretically be any shape, but it's best to keep them consistent.
445
465
  *
@@ -456,9 +476,14 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
456
476
  */
457
477
  defaultDisplayColumn?: Partial<MRT_ColumnDef<TData>>;
458
478
  displayColumnDefOptions?: Partial<{
459
- [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
479
+ [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef<TData>>;
460
480
  }>;
461
- editingMode?: 'table' | 'modal' | 'row' | 'cell';
481
+ createDisplayMode?: 'modal' | 'row' | 'custom';
482
+ editDisplayMode?: 'modal' | 'row' | 'cell' | 'table' | 'custom';
483
+ columnFilterDisplayMode?: 'subheader' | 'popover' | 'custom';
484
+ paginationDisplayMode?: 'default' | 'pages' | 'custom';
485
+ selectDisplayMode?: 'checkbox' | 'radio' | 'switch';
486
+ rowPinningDisplayMode?: 'sticky' | 'top' | 'bottom' | 'top-and-bottom' | 'select-sticky' | 'select-top' | 'select-bottom';
462
487
  enableBottomToolbar?: boolean;
463
488
  enableClickToCopy?: boolean;
464
489
  enableColumnActions?: boolean;
@@ -536,13 +561,13 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
536
561
  table: MRT_TableInstance<TData>;
537
562
  row: MRT_Row<TData>;
538
563
  }) => CheckboxProps | RadioProps);
539
- muiTableBodyCellCopyButtonProps?: ButtonProps | ((props: {
564
+ muiCopyButtonProps?: ButtonProps | ((props: {
540
565
  cell: MRT_Cell<TData>;
541
566
  column: MRT_Column<TData>;
542
567
  row: MRT_Row<TData>;
543
568
  table: MRT_TableInstance<TData>;
544
569
  }) => ButtonProps);
545
- muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((props: {
570
+ muiEditTextFieldProps?: TextFieldProps | ((props: {
546
571
  cell: MRT_Cell<TData>;
547
572
  column: MRT_Column<TData>;
548
573
  row: MRT_Row<TData>;
@@ -554,7 +579,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
554
579
  row: MRT_Row<TData>;
555
580
  table: MRT_TableInstance<TData>;
556
581
  }) => TableCellProps);
557
- muiTableBodyCellSkeletonProps?: SkeletonProps | ((props: {
582
+ muiSkeletonProps?: SkeletonProps | ((props: {
558
583
  cell: MRT_Cell<TData>;
559
584
  column: MRT_Column<TData>;
560
585
  row: MRT_Row<TData>;
@@ -563,7 +588,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
563
588
  muiTableBodyProps?: TableBodyProps | ((props: {
564
589
  table: MRT_TableInstance<TData>;
565
590
  }) => TableBodyProps);
566
- muiTableBodyRowDragHandleProps?: IconButtonProps | ((props: {
591
+ muiRowDragHandleProps?: IconButtonProps | ((props: {
567
592
  table: MRT_TableInstance<TData>;
568
593
  row: MRT_Row<TData>;
569
594
  }) => IconButtonProps);
@@ -576,7 +601,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
576
601
  muiTableContainerProps?: TableContainerProps | ((props: {
577
602
  table: MRT_TableInstance<TData>;
578
603
  }) => TableContainerProps);
579
- muiTableDetailPanelProps?: TableCellProps | ((props: {
604
+ muiDetailPanelProps?: TableCellProps | ((props: {
580
605
  table: MRT_TableInstance<TData>;
581
606
  row: MRT_Row<TData>;
582
607
  }) => TableCellProps);
@@ -591,27 +616,35 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
591
616
  table: MRT_TableInstance<TData>;
592
617
  footerGroup: MRT_HeaderGroup<TData>;
593
618
  }) => TableRowProps);
594
- muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((props: {
619
+ muiColumnActionsButtonProps?: IconButtonProps | ((props: {
595
620
  table: MRT_TableInstance<TData>;
596
621
  column: MRT_Column<TData>;
597
622
  }) => IconButtonProps);
598
- muiTableHeadCellDragHandleProps?: IconButtonProps | ((props: {
623
+ muiColumnDragHandleProps?: IconButtonProps | ((props: {
599
624
  table: MRT_TableInstance<TData>;
600
625
  column: MRT_Column<TData>;
601
626
  }) => IconButtonProps);
602
- muiTableHeadCellFilterCheckboxProps?: CheckboxProps | ((props: {
627
+ muiFilterCheckboxProps?: CheckboxProps | ((props: {
603
628
  column: MRT_Column<TData>;
604
629
  table: MRT_TableInstance<TData>;
605
630
  }) => CheckboxProps);
606
- muiTableHeadCellFilterTextFieldProps?: TextFieldProps | ((props: {
631
+ muiFilterTextFieldProps?: TextFieldProps | ((props: {
607
632
  table: MRT_TableInstance<TData>;
608
633
  column: MRT_Column<TData>;
609
634
  rangeFilterIndex?: number;
610
635
  }) => TextFieldProps);
611
- muiTableHeadCellFilterSliderProps?: SliderProps | ((props: {
636
+ muiFilterSliderProps?: SliderProps | ((props: {
612
637
  table: MRT_TableInstance<TData>;
613
638
  column: MRT_Column<TData>;
614
- }) => TextFieldProps);
639
+ }) => SliderProps);
640
+ muiCreateRowModalProps?: DialogProps | ((props: {
641
+ row: MRT_Row<TData>;
642
+ table: MRT_TableInstance<TData>;
643
+ }) => DialogProps);
644
+ muiEditRowModalProps?: DialogProps | ((props: {
645
+ row: MRT_Row<TData>;
646
+ table: MRT_TableInstance<TData>;
647
+ }) => DialogProps);
615
648
  muiTableHeadCellProps?: TableCellProps | ((props: {
616
649
  table: MRT_TableInstance<TData>;
617
650
  column: MRT_Column<TData>;
@@ -641,6 +674,20 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
641
674
  muiTopToolbarProps?: ToolbarProps | ((props: {
642
675
  table: MRT_TableInstance<TData>;
643
676
  }) => ToolbarProps);
677
+ onCreatingRowCancel?: (props: {
678
+ row: MRT_Row<TData>;
679
+ table: MRT_TableInstance<TData>;
680
+ }) => void;
681
+ onCreatingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
682
+ onCreatingRowSave?: (props: {
683
+ exitCreatingMode: () => void;
684
+ row: MRT_Row<TData>;
685
+ table: MRT_TableInstance<TData>;
686
+ values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
687
+ }) => void;
688
+ onColumnFilterFnsChange?: OnChangeFn<{
689
+ [key: string]: MRT_FilterOption;
690
+ }>;
644
691
  onDensityChange?: OnChangeFn<MRT_DensityState>;
645
692
  onDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
646
693
  onDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
@@ -649,19 +696,20 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
649
696
  row: MRT_Row<TData>;
650
697
  table: MRT_TableInstance<TData>;
651
698
  }) => void;
699
+ onEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
652
700
  onEditingRowSave?: (props: {
653
701
  exitEditingMode: () => void;
654
702
  row: MRT_Row<TData>;
655
703
  table: MRT_TableInstance<TData>;
656
704
  values: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
657
705
  }) => Promise<void> | void;
658
- onEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;
659
- onColumnFilterFnsChange?: OnChangeFn<{
660
- [key: string]: MRT_FilterOption;
661
- }>;
662
706
  onGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;
663
- onHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;
664
- onHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;
707
+ onHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | {
708
+ id: string;
709
+ } | null>;
710
+ onHoveredRowChange?: OnChangeFn<MRT_Row<TData> | {
711
+ id: string;
712
+ } | null>;
665
713
  onIsFullScreenChange?: OnChangeFn<boolean>;
666
714
  onShowAlertBannerChange?: OnChangeFn<boolean>;
667
715
  onShowColumnFiltersChange?: OnChangeFn<boolean>;
@@ -679,6 +727,16 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
679
727
  renderBottomToolbarCustomActions?: (props: {
680
728
  table: MRT_TableInstance<TData>;
681
729
  }) => ReactNode;
730
+ renderCreateRowModalContent?: (props: {
731
+ internalEditComponents: ReactNode[];
732
+ row: MRT_Row<TData>;
733
+ table: MRT_TableInstance<TData>;
734
+ }) => ReactNode;
735
+ renderEditRowModalContent?: (props: {
736
+ internalEditComponents: ReactNode[];
737
+ row: MRT_Row<TData>;
738
+ table: MRT_TableInstance<TData>;
739
+ }) => ReactNode;
682
740
  renderColumnActionsMenuItems?: (props: {
683
741
  column: MRT_Column<TData>;
684
742
  closeMenu: () => void;
@@ -724,34 +782,13 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
724
782
  }) => ReactNode;
725
783
  rowCount?: number;
726
784
  rowNumberMode?: 'original' | 'static';
785
+ rowVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableRowElement> | null>;
786
+ rowVirtualizerOptions?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | ((props: {
787
+ table: MRT_TableInstance<TData>;
788
+ }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>);
727
789
  selectAllMode?: 'all' | 'page';
728
790
  /**
729
791
  * Manage state externally any way you want, then pass it back into MRT.
730
792
  */
731
793
  state?: Partial<MRT_TableState<TData>>;
732
- /**
733
- * Sequence of features important any dependent feature must be defined first
734
- */
735
- tableFeatures?: Array<MRT_CreateTableFeature<TData>>;
736
- /**
737
- * Get access to the table instance via a ref to read state or call built-in methods
738
- */
739
- tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
740
- /**
741
- * @deprecated Use `rowVirtualizerInstanceRef` instead
742
- */
743
- virtualizerInstanceRef?: any;
744
- /**
745
- * @deprecated Use `rowVirtualizerProps` instead
746
- */
747
- virtualizerProps?: any;
748
- } & {
749
- columnVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableCellElement> | null>;
750
- columnVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>> | ((props: {
751
- table: MRT_TableInstance<TData>;
752
- }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableCellElement>>);
753
- rowVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableRowElement> | null>;
754
- rowVirtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>> | ((props: {
755
- table: MRT_TableInstance<TData>;
756
- }) => Partial<VirtualizerOptions<HTMLDivElement, HTMLTableRowElement>>);
757
794
  };
@@ -0,0 +1,2 @@
1
+ import { type MRT_TableInstance, type MRT_TableOptions } from './types';
2
+ export declare const useMaterialReactTable: <TData extends Record<string, any>>(tableOptions: MRT_TableOptions<TData>) => MRT_TableInstance<TData>;