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

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 (202) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/index.js +119 -81
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +4 -4
  5. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -4
  6. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
  7. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +3 -3
  8. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -5
  9. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
  10. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
  11. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -3
  12. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
  13. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +3 -3
  14. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +3 -3
  15. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  16. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +3 -3
  17. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
  18. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +3 -3
  19. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
  20. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
  21. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
  22. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
  23. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
  24. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
  25. package/dist/cjs/types/column.utils.d.ts +34 -33
  26. package/dist/cjs/types/filterFns.d.ts +15 -14
  27. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  28. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +3 -3
  29. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -3
  30. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  31. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +3 -3
  32. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
  33. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
  34. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
  35. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
  36. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
  37. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
  38. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -3
  39. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  40. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -2
  41. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -2
  42. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -2
  43. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +3 -3
  44. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
  45. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
  46. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
  47. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +3 -3
  48. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
  49. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
  50. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
  51. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
  52. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +3 -3
  53. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
  54. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
  55. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +3 -3
  56. package/dist/cjs/types/sortingFns.d.ts +3 -3
  57. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  58. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  59. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  60. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
  61. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
  62. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +3 -3
  63. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
  64. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
  65. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
  66. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +3 -3
  67. package/dist/cjs/types/types.d.ts +50 -40
  68. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -2
  69. package/dist/esm/material-react-table.esm.js +119 -82
  70. package/dist/esm/material-react-table.esm.js.map +1 -1
  71. package/dist/esm/types/MaterialReactTable.d.ts +4 -4
  72. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -4
  73. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
  74. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +3 -3
  75. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -5
  76. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
  77. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
  78. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -3
  79. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
  80. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +3 -3
  81. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +3 -3
  82. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  83. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +3 -3
  84. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
  85. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +3 -3
  86. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
  87. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
  88. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
  89. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
  90. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
  91. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
  92. package/dist/esm/types/column.utils.d.ts +34 -33
  93. package/dist/esm/types/filterFns.d.ts +15 -14
  94. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  95. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +3 -3
  96. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -3
  97. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  98. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +3 -3
  99. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
  100. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
  101. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
  102. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
  103. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
  104. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
  105. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -3
  106. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  107. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -2
  108. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -2
  109. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -2
  110. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +3 -3
  111. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
  112. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
  113. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
  114. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +3 -3
  115. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
  116. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
  117. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
  118. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
  119. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +3 -3
  120. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
  121. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
  122. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +3 -3
  123. package/dist/esm/types/sortingFns.d.ts +3 -3
  124. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  125. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  126. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  127. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
  128. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
  129. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +3 -3
  130. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
  131. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
  132. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
  133. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +3 -3
  134. package/dist/esm/types/types.d.ts +50 -40
  135. package/dist/esm/types/useMaterialReactTable.d.ts +2 -2
  136. package/dist/index.d.ts +219 -208
  137. package/package.json +1 -1
  138. package/src/MaterialReactTable.tsx +5 -4
  139. package/src/body/MRT_TableBody.tsx +12 -3
  140. package/src/body/MRT_TableBodyCell.tsx +28 -8
  141. package/src/body/MRT_TableBodyCellValue.tsx +7 -3
  142. package/src/body/MRT_TableBodyRow.tsx +9 -4
  143. package/src/body/MRT_TableBodyRowGrabHandle.tsx +7 -3
  144. package/src/body/MRT_TableBodyRowPinButton.tsx +7 -3
  145. package/src/body/MRT_TableDetailPanel.tsx +8 -5
  146. package/src/buttons/MRT_ColumnPinningButtons.tsx +7 -3
  147. package/src/buttons/MRT_CopyButton.tsx +7 -3
  148. package/src/buttons/MRT_EditActionButtons.tsx +7 -3
  149. package/src/buttons/MRT_ExpandAllButton.tsx +5 -6
  150. package/src/buttons/MRT_ExpandButton.tsx +9 -6
  151. package/src/buttons/MRT_GrabHandleButton.tsx +3 -3
  152. package/src/buttons/MRT_RowPinButton.tsx +7 -3
  153. package/src/buttons/MRT_ShowHideColumnsButton.tsx +3 -3
  154. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -5
  155. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -3
  156. package/src/buttons/MRT_ToggleFullScreenButton.tsx +3 -3
  157. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  158. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -5
  159. package/src/column.utils.ts +41 -17
  160. package/src/filterFns.ts +15 -14
  161. package/src/footer/MRT_TableFooter.tsx +3 -3
  162. package/src/footer/MRT_TableFooterCell.tsx +7 -3
  163. package/src/footer/MRT_TableFooterRow.tsx +3 -2
  164. package/src/head/MRT_TableHead.tsx +3 -3
  165. package/src/head/MRT_TableHeadCell.tsx +28 -16
  166. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +7 -3
  167. package/src/head/MRT_TableHeadCellFilterContainer.tsx +7 -5
  168. package/src/head/MRT_TableHeadCellFilterLabel.tsx +7 -5
  169. package/src/head/MRT_TableHeadCellGrabHandle.tsx +7 -3
  170. package/src/head/MRT_TableHeadCellResizeHandle.tsx +15 -8
  171. package/src/head/MRT_TableHeadCellSortLabel.tsx +7 -3
  172. package/src/head/MRT_TableHeadRow.tsx +3 -2
  173. package/src/hooks/useMRT_DisplayColumns.tsx +3 -2
  174. package/src/hooks/useMRT_Effects.ts +6 -2
  175. package/src/hooks/useMRT_TableInstance.ts +3 -2
  176. package/src/hooks/useMRT_TableOptions.ts +7 -3
  177. package/src/inputs/MRT_EditCellTextField.tsx +17 -5
  178. package/src/inputs/MRT_FilterCheckbox.tsx +7 -3
  179. package/src/inputs/MRT_FilterRangeFields.tsx +7 -3
  180. package/src/inputs/MRT_FilterRangeSlider.tsx +7 -3
  181. package/src/inputs/MRT_FilterTextField.tsx +9 -3
  182. package/src/inputs/MRT_GlobalFilterTextField.tsx +3 -3
  183. package/src/inputs/MRT_SelectCheckbox.tsx +7 -3
  184. package/src/menus/MRT_ColumnActionMenu.tsx +7 -3
  185. package/src/menus/MRT_FilterOptionMenu.tsx +3 -2
  186. package/src/menus/MRT_RowActionMenu.tsx +7 -3
  187. package/src/menus/MRT_ShowHideColumnsMenu.tsx +7 -3
  188. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
  189. package/src/modals/MRT_EditRowModal.tsx +7 -3
  190. package/src/sortingFns.ts +3 -3
  191. package/src/table/MRT_Table.tsx +3 -3
  192. package/src/table/MRT_TableContainer.tsx +3 -3
  193. package/src/table/MRT_TablePaper.tsx +4 -4
  194. package/src/toolbar/MRT_BottomToolbar.tsx +3 -3
  195. package/src/toolbar/MRT_LinearProgressBar.tsx +3 -3
  196. package/src/toolbar/MRT_TablePagination.tsx +8 -5
  197. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -3
  198. package/src/toolbar/MRT_ToolbarDropZone.tsx +3 -3
  199. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +3 -3
  200. package/src/toolbar/MRT_TopToolbar.tsx +3 -3
  201. package/src/types.ts +75 -45
  202. package/src/useMaterialReactTable.ts +6 -2
@@ -12,6 +12,7 @@ import {
12
12
  type MRT_DefinedTableOptions,
13
13
  type MRT_GroupingState,
14
14
  type MRT_Row,
15
+ type MRT_RowData,
15
16
  } from '../types';
16
17
 
17
18
  const blankColProps = {
@@ -23,14 +24,14 @@ const blankColProps = {
23
24
  },
24
25
  };
25
26
 
26
- interface Params<TData extends Record<string, any>> {
27
+ interface Params<TData extends MRT_RowData> {
27
28
  columnOrder: MRT_ColumnOrderState;
28
29
  creatingRow: MRT_Row<TData> | null;
29
30
  grouping: MRT_GroupingState;
30
31
  tableOptions: MRT_DefinedTableOptions<TData>;
31
32
  }
32
33
 
33
- export const useMRT_DisplayColumns = <TData extends Record<string, any>>({
34
+ export const useMRT_DisplayColumns = <TData extends MRT_RowData>({
34
35
  columnOrder,
35
36
  creatingRow,
36
37
  grouping,
@@ -1,8 +1,12 @@
1
1
  import { useEffect, useReducer, useRef } from 'react';
2
2
  import { getCanRankRows } from '../column.utils';
3
- import { type MRT_SortingState, type MRT_TableInstance } from '../types';
3
+ import {
4
+ type MRT_RowData,
5
+ type MRT_SortingState,
6
+ type MRT_TableInstance,
7
+ } from '../types';
4
8
 
5
- export const useMRT_Effects = <TData extends Record<string, any> = {}>(
9
+ export const useMRT_Effects = <TData extends MRT_RowData>(
6
10
  table: MRT_TableInstance<TData>,
7
11
  ) => {
8
12
  const {
@@ -30,6 +30,7 @@ import {
30
30
  type MRT_FilterOption,
31
31
  type MRT_GroupingState,
32
32
  type MRT_Row,
33
+ type MRT_RowData,
33
34
  type MRT_TableInstance,
34
35
  type MRT_TableState,
35
36
  type MRT_Updater,
@@ -37,9 +38,9 @@ import {
37
38
  import { useMRT_DisplayColumns } from './useMRT_DisplayColumns';
38
39
  import { useMRT_Effects } from './useMRT_Effects';
39
40
 
40
- export const useMRT_TableInstance: <TData extends Record<string, any>>(
41
+ export const useMRT_TableInstance: <TData extends MRT_RowData>(
41
42
  tableOptions: MRT_DefinedTableOptions<TData>,
42
- ) => MRT_TableInstance<TData> = <TData extends Record<string, any>>(
43
+ ) => MRT_TableInstance<TData> = <TData extends MRT_RowData>(
43
44
  tableOptions: MRT_DefinedTableOptions<TData>,
44
45
  ) => {
45
46
  const bottomToolbarRef = useRef<HTMLDivElement>(null);
@@ -5,11 +5,15 @@ import { MRT_FilterFns } from '../filterFns';
5
5
  import { MRT_Default_Icons } from '../icons';
6
6
  import { MRT_Localization_EN } from '../locales/en';
7
7
  import { MRT_SortingFns } from '../sortingFns';
8
- import { type MRT_DefinedTableOptions, type MRT_TableOptions } from '../types';
8
+ import {
9
+ type MRT_DefinedTableOptions,
10
+ type MRT_RowData,
11
+ type MRT_TableOptions,
12
+ } from '../types';
9
13
 
10
- export const useMRT_TableOptions: <TData extends Record<string, any>>(
14
+ export const useMRT_TableOptions: <TData extends MRT_RowData>(
11
15
  tableOptions: MRT_TableOptions<TData>,
12
- ) => MRT_DefinedTableOptions<TData> = <TData extends Record<string, any>>({
16
+ ) => MRT_DefinedTableOptions<TData> = <TData extends MRT_RowData>({
13
17
  aggregationFns,
14
18
  autoResetExpanded = false,
15
19
  columnFilterDisplayMode = 'subheader',
@@ -8,14 +8,18 @@ import MenuItem from '@mui/material/MenuItem';
8
8
  import TextField from '@mui/material/TextField';
9
9
  import { type TextFieldProps } from '@mui/material/TextField';
10
10
  import { parseFromValuesOrFunc } from '../column.utils';
11
- import { type MRT_Cell, type MRT_TableInstance } from '../types';
11
+ import {
12
+ type MRT_Cell,
13
+ type MRT_RowData,
14
+ type MRT_TableInstance,
15
+ } from '../types';
12
16
 
13
- interface Props<TData extends Record<string, any>> {
17
+ interface Props<TData extends MRT_RowData> {
14
18
  cell: MRT_Cell<TData>;
15
19
  table: MRT_TableInstance<TData>;
16
20
  }
17
21
 
18
- export const MRT_EditCellTextField = <TData extends Record<string, any>>({
22
+ export const MRT_EditCellTextField = <TData extends MRT_RowData>({
19
23
  cell,
20
24
  table,
21
25
  }: Props<TData>) => {
@@ -100,10 +104,10 @@ export const MRT_EditCellTextField = <TData extends Record<string, any>>({
100
104
  }
101
105
  }}
102
106
  label={
103
- ['custom', 'modal'].includes(
107
+ !['custom', 'modal'].includes(
104
108
  (isCreating ? createDisplayMode : editDisplayMode) as string,
105
109
  )
106
- ? column.columnDef.header
110
+ ? columnDef.header
107
111
  : undefined
108
112
  }
109
113
  margin="none"
@@ -119,6 +123,14 @@ export const MRT_EditCellTextField = <TData extends Record<string, any>>({
119
123
  value={value}
120
124
  variant="standard"
121
125
  {...textFieldProps}
126
+ InputProps={{
127
+ disableUnderline: editDisplayMode === 'table',
128
+ ...textFieldProps.InputProps,
129
+ }}
130
+ inputProps={{
131
+ autoComplete: 'new-password', // disable autocomplete and autofill
132
+ ...textFieldProps.inputProps,
133
+ }}
122
134
  onBlur={handleBlur}
123
135
  onChange={handleChange}
124
136
  onClick={(e) => {
@@ -2,14 +2,18 @@ import Checkbox from '@mui/material/Checkbox';
2
2
  import FormControlLabel from '@mui/material/FormControlLabel';
3
3
  import Tooltip from '@mui/material/Tooltip';
4
4
  import { parseFromValuesOrFunc } from '../column.utils';
5
- import { type MRT_Column, type MRT_TableInstance } from '../types';
5
+ import {
6
+ type MRT_Column,
7
+ type MRT_RowData,
8
+ type MRT_TableInstance,
9
+ } from '../types';
6
10
 
7
- interface Props<TData extends Record<string, any>> {
11
+ interface Props<TData extends MRT_RowData> {
8
12
  column: MRT_Column<TData>;
9
13
  table: MRT_TableInstance<TData>;
10
14
  }
11
15
 
12
- export const MRT_FilterCheckbox = <TData extends Record<string, any>>({
16
+ export const MRT_FilterCheckbox = <TData extends MRT_RowData>({
13
17
  column,
14
18
  table,
15
19
  }: Props<TData>) => {
@@ -1,13 +1,17 @@
1
1
  import Box from '@mui/material/Box';
2
2
  import { MRT_FilterTextField } from './MRT_FilterTextField';
3
- import { type MRT_Header, type MRT_TableInstance } from '../types';
3
+ import {
4
+ type MRT_Header,
5
+ type MRT_RowData,
6
+ type MRT_TableInstance,
7
+ } from '../types';
4
8
 
5
- interface Props<TData extends Record<string, any>> {
9
+ interface Props<TData extends MRT_RowData> {
6
10
  header: MRT_Header<TData>;
7
11
  table: MRT_TableInstance<TData>;
8
12
  }
9
13
 
10
- export const MRT_FilterRangeFields = <TData extends Record<string, any>>({
14
+ export const MRT_FilterRangeFields = <TData extends MRT_RowData>({
11
15
  header,
12
16
  table,
13
17
  }: Props<TData>) => {
@@ -3,14 +3,18 @@ import FormHelperText from '@mui/material/FormHelperText';
3
3
  import Slider from '@mui/material/Slider';
4
4
  import Stack from '@mui/material/Stack';
5
5
  import { parseFromValuesOrFunc } from '../column.utils';
6
- import { type MRT_Header, type MRT_TableInstance } from '../types';
6
+ import {
7
+ type MRT_Header,
8
+ type MRT_RowData,
9
+ type MRT_TableInstance,
10
+ } from '../types';
7
11
 
8
- interface Props<TData extends Record<string, any>> {
12
+ interface Props<TData extends MRT_RowData> {
9
13
  header: MRT_Header<TData>;
10
14
  table: MRT_TableInstance<TData>;
11
15
  }
12
16
 
13
- export const MRT_FilterRangeSlider = <TData extends Record<string, any>>({
17
+ export const MRT_FilterRangeSlider = <TData extends MRT_RowData>({
14
18
  header,
15
19
  table,
16
20
  }: Props<TData>) => {
@@ -23,15 +23,19 @@ import {
23
23
  } from '@mui/x-date-pickers/DatePicker';
24
24
  import { parseFromValuesOrFunc } from '../column.utils';
25
25
  import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
26
- import { type MRT_Header, type MRT_TableInstance } from '../types';
26
+ import {
27
+ type MRT_Header,
28
+ type MRT_RowData,
29
+ type MRT_TableInstance,
30
+ } from '../types';
27
31
 
28
- interface Props<TData extends Record<string, any>> {
32
+ interface Props<TData extends MRT_RowData> {
29
33
  header: MRT_Header<TData>;
30
34
  rangeFilterIndex?: number;
31
35
  table: MRT_TableInstance<TData>;
32
36
  }
33
37
 
34
- export const MRT_FilterTextField = <TData extends Record<string, any>>({
38
+ export const MRT_FilterTextField = <TData extends MRT_RowData>({
35
39
  header,
36
40
  rangeFilterIndex,
37
41
  table,
@@ -329,6 +333,8 @@ export const MRT_FilterTextField = <TData extends Record<string, any>>({
329
333
  sx: (theme) => ({
330
334
  minWidth: isDateFilter
331
335
  ? '160px'
336
+ : enableColumnFilterModes && rangeFilterIndex === 0
337
+ ? '110px'
332
338
  : isRangeFilter
333
339
  ? '100px'
334
340
  : !filterChipLabel
@@ -14,13 +14,13 @@ import Tooltip from '@mui/material/Tooltip';
14
14
  import { debounce } from '@mui/material/utils';
15
15
  import { parseFromValuesOrFunc } from '../column.utils';
16
16
  import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
17
- import { type MRT_TableInstance } from '../types';
17
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
18
18
 
19
- interface Props<TData extends Record<string, any>> {
19
+ interface Props<TData extends MRT_RowData> {
20
20
  table: MRT_TableInstance<TData>;
21
21
  }
22
22
 
23
- export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
23
+ export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
24
24
  table,
25
25
  }: Props<TData>) => {
26
26
  const {
@@ -4,15 +4,19 @@ import Radio, { type RadioProps } from '@mui/material/Radio';
4
4
  import Tooltip from '@mui/material/Tooltip';
5
5
  import { type Theme } from '@mui/material/styles';
6
6
  import { parseFromValuesOrFunc } from '../column.utils';
7
- import { type MRT_Row, type MRT_TableInstance } from '../types';
7
+ import {
8
+ type MRT_Row,
9
+ type MRT_RowData,
10
+ type MRT_TableInstance,
11
+ } from '../types';
8
12
 
9
- interface Props<TData extends Record<string, any>> {
13
+ interface Props<TData extends MRT_RowData> {
10
14
  row?: MRT_Row<TData>;
11
15
  selectAll?: boolean;
12
16
  table: MRT_TableInstance<TData>;
13
17
  }
14
18
 
15
- export const MRT_SelectCheckbox = <TData extends Record<string, any>>({
19
+ export const MRT_SelectCheckbox = <TData extends MRT_RowData>({
16
20
  row,
17
21
  selectAll,
18
22
  table,
@@ -6,7 +6,11 @@ import ListItemIcon from '@mui/material/ListItemIcon';
6
6
  import Menu from '@mui/material/Menu';
7
7
  import MenuItem from '@mui/material/MenuItem';
8
8
  import { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';
9
- import { type MRT_Header, type MRT_TableInstance } from '../types';
9
+ import {
10
+ type MRT_Header,
11
+ type MRT_RowData,
12
+ type MRT_TableInstance,
13
+ } from '../types';
10
14
 
11
15
  export const commonMenuItemStyles = {
12
16
  alignItems: 'center',
@@ -20,14 +24,14 @@ export const commonListItemStyles = {
20
24
  display: 'flex',
21
25
  };
22
26
 
23
- interface Props<TData extends Record<string, any>> {
27
+ interface Props<TData extends MRT_RowData> {
24
28
  anchorEl: HTMLElement | null;
25
29
  header: MRT_Header<TData>;
26
30
  setAnchorEl: (anchorEl: HTMLElement | null) => void;
27
31
  table: MRT_TableInstance<TData>;
28
32
  }
29
33
 
30
- export const MRT_ColumnActionMenu = <TData extends Record<string, any>>({
34
+ export const MRT_ColumnActionMenu = <TData extends MRT_RowData>({
31
35
  anchorEl,
32
36
  header,
33
37
  setAnchorEl,
@@ -7,6 +7,7 @@ import {
7
7
  type MRT_Header,
8
8
  type MRT_InternalFilterOption,
9
9
  type MRT_Localization,
10
+ type MRT_RowData,
10
11
  type MRT_TableInstance,
11
12
  } from '../types';
12
13
 
@@ -104,7 +105,7 @@ const emptyModes = ['empty', 'notEmpty'];
104
105
  const arrModes = ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'];
105
106
  const rangeVariants = ['range-slider', 'date-range', 'range'];
106
107
 
107
- interface Props<TData extends Record<string, any>> {
108
+ interface Props<TData extends MRT_RowData> {
108
109
  anchorEl: HTMLElement | null;
109
110
  header?: MRT_Header<TData>;
110
111
  onSelect?: () => void;
@@ -113,7 +114,7 @@ interface Props<TData extends Record<string, any>> {
113
114
  table: MRT_TableInstance<TData>;
114
115
  }
115
116
 
116
- export const MRT_FilterOptionMenu = <TData extends Record<string, any>>({
117
+ export const MRT_FilterOptionMenu = <TData extends MRT_RowData>({
117
118
  anchorEl,
118
119
  header,
119
120
  onSelect,
@@ -8,9 +8,13 @@ import {
8
8
  commonMenuItemStyles,
9
9
  } from './MRT_ColumnActionMenu';
10
10
  import { parseFromValuesOrFunc } from '../column.utils';
11
- import { type MRT_Row, type MRT_TableInstance } from '../types';
11
+ import {
12
+ type MRT_Row,
13
+ type MRT_RowData,
14
+ type MRT_TableInstance,
15
+ } from '../types';
12
16
 
13
- interface Props<TData extends Record<string, any>> {
17
+ interface Props<TData extends MRT_RowData> {
14
18
  anchorEl: HTMLElement | null;
15
19
  handleEdit: (event: MouseEvent) => void;
16
20
  row: MRT_Row<TData>;
@@ -18,7 +22,7 @@ interface Props<TData extends Record<string, any>> {
18
22
  table: MRT_TableInstance<TData>;
19
23
  }
20
24
 
21
- export const MRT_RowActionMenu = <TData extends Record<string, any>>({
25
+ export const MRT_RowActionMenu = <TData extends MRT_RowData>({
22
26
  anchorEl,
23
27
  handleEdit,
24
28
  row,
@@ -5,16 +5,20 @@ import Divider from '@mui/material/Divider';
5
5
  import Menu from '@mui/material/Menu';
6
6
  import { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';
7
7
  import { getDefaultColumnOrderIds } from '../column.utils';
8
- import { type MRT_Column, type MRT_TableInstance } from '../types';
8
+ import {
9
+ type MRT_Column,
10
+ type MRT_RowData,
11
+ type MRT_TableInstance,
12
+ } from '../types';
9
13
 
10
- interface Props<TData extends Record<string, any>> {
14
+ interface Props<TData extends MRT_RowData> {
11
15
  anchorEl: HTMLElement | null;
12
16
  isSubMenu?: boolean;
13
17
  setAnchorEl: (anchorEl: HTMLElement | null) => void;
14
18
  table: MRT_TableInstance<TData>;
15
19
  }
16
20
 
17
- export const MRT_ShowHideColumnsMenu = <TData extends Record<string, any>>({
21
+ export const MRT_ShowHideColumnsMenu = <TData extends MRT_RowData>({
18
22
  anchorEl,
19
23
  setAnchorEl,
20
24
  table,
@@ -14,9 +14,13 @@ import Typography from '@mui/material/Typography';
14
14
  import { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';
15
15
  import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';
16
16
  import { reorderColumn } from '../column.utils';
17
- import { type MRT_Column, type MRT_TableInstance } from '../types';
17
+ import {
18
+ type MRT_Column,
19
+ type MRT_RowData,
20
+ type MRT_TableInstance,
21
+ } from '../types';
18
22
 
19
- interface Props<TData extends Record<string, any>> {
23
+ interface Props<TData extends MRT_RowData> {
20
24
  allColumns: MRT_Column<TData>[];
21
25
  column: MRT_Column<TData>;
22
26
  hoveredColumn: MRT_Column<TData> | null;
@@ -24,9 +28,7 @@ interface Props<TData extends Record<string, any>> {
24
28
  table: MRT_TableInstance<TData>;
25
29
  }
26
30
 
27
- export const MRT_ShowHideColumnsMenuItems = <
28
- TData extends Record<string, any>,
29
- >({
31
+ export const MRT_ShowHideColumnsMenuItems = <TData extends MRT_RowData>({
30
32
  allColumns,
31
33
  column,
32
34
  hoveredColumn,
@@ -6,14 +6,18 @@ import Stack from '@mui/material/Stack';
6
6
  import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons';
7
7
  import { parseFromValuesOrFunc } from '../column.utils';
8
8
  import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
9
- import { type MRT_Row, type MRT_TableInstance } from '../types';
9
+ import {
10
+ type MRT_Row,
11
+ type MRT_RowData,
12
+ type MRT_TableInstance,
13
+ } from '../types';
10
14
 
11
- interface Props<TData extends Record<string, any>> {
15
+ interface Props<TData extends MRT_RowData> {
12
16
  open: boolean;
13
17
  table: MRT_TableInstance<TData>;
14
18
  }
15
19
 
16
- export const MRT_EditRowModal = <TData extends Record<string, any>>({
20
+ export const MRT_EditRowModal = <TData extends MRT_RowData>({
17
21
  open,
18
22
  table,
19
23
  }: Props<TData>) => {
package/src/sortingFns.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { type RankingInfo, compareItems } from '@tanstack/match-sorter-utils';
2
2
  import { type Row, sortingFns } from '@tanstack/react-table';
3
- import { type MRT_Row } from './types';
3
+ import { type MRT_Row, type MRT_RowData } from './types';
4
4
 
5
- const fuzzy = <TData extends Record<string, any>>(
5
+ const fuzzy = <TData extends MRT_RowData>(
6
6
  rowA: Row<TData>,
7
7
  rowB: Row<TData>,
8
8
  columnId: string,
@@ -25,7 +25,7 @@ export const MRT_SortingFns = {
25
25
  fuzzy,
26
26
  };
27
27
 
28
- export const rankGlobalFuzzy = <TData extends Record<string, any>>(
28
+ export const rankGlobalFuzzy = <TData extends MRT_RowData>(
29
29
  rowA: MRT_Row<TData>,
30
30
  rowB: MRT_Row<TData>,
31
31
  ) =>
@@ -13,13 +13,13 @@ import {
13
13
  } from '../column.utils';
14
14
  import { MRT_TableFooter } from '../footer/MRT_TableFooter';
15
15
  import { MRT_TableHead } from '../head/MRT_TableHead';
16
- import { type MRT_TableInstance } from '../types';
16
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
17
17
 
18
- interface Props<TData extends Record<string, any>> {
18
+ interface Props<TData extends MRT_RowData> {
19
19
  table: MRT_TableInstance<TData>;
20
20
  }
21
21
 
22
- export const MRT_Table = <TData extends Record<string, any>>({
22
+ export const MRT_Table = <TData extends MRT_RowData>({
23
23
  table,
24
24
  }: Props<TData>) => {
25
25
  const {
@@ -6,16 +6,16 @@ import { alpha, lighten } from '@mui/material/styles';
6
6
  import { MRT_Table } from './MRT_Table';
7
7
  import { parseFromValuesOrFunc } from '../column.utils';
8
8
  import { MRT_EditRowModal } from '../modals';
9
- import { type MRT_TableInstance } from '../types';
9
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
10
10
 
11
11
  const useIsomorphicLayoutEffect =
12
12
  typeof window !== 'undefined' ? useLayoutEffect : useEffect;
13
13
 
14
- interface Props<TData extends Record<string, any>> {
14
+ interface Props<TData extends MRT_RowData> {
15
15
  table: MRT_TableInstance<TData>;
16
16
  }
17
17
 
18
- export const MRT_TableContainer = <TData extends Record<string, any>>({
18
+ export const MRT_TableContainer = <TData extends MRT_RowData>({
19
19
  table,
20
20
  }: Props<TData>) => {
21
21
  const {
@@ -3,13 +3,13 @@ import { MRT_TableContainer } from './MRT_TableContainer';
3
3
  import { parseFromValuesOrFunc } from '../column.utils';
4
4
  import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar';
5
5
  import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar';
6
- import { type MRT_TableInstance } from '../types';
6
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props<TData extends Record<string, any>> {
8
+ interface Props<TData extends MRT_RowData> {
9
9
  table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_TablePaper = <TData extends Record<string, any>>({
12
+ export const MRT_TablePaper = <TData extends MRT_RowData>({
13
13
  table,
14
14
  }: Props<TData>) => {
15
15
  const {
@@ -52,7 +52,7 @@ export const MRT_TablePaper = <TData extends Record<string, any>>({
52
52
  right: 0,
53
53
  top: 0,
54
54
  width: '100vw',
55
- zIndex: 10,
55
+ zIndex: 9999,
56
56
  }
57
57
  : {}),
58
58
  ...tablePaperProps?.style,
@@ -8,13 +8,13 @@ import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
8
8
  import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
9
9
  import { commonToolbarStyles } from './MRT_TopToolbar';
10
10
  import { parseFromValuesOrFunc } from '../column.utils';
11
- import { type MRT_TableInstance } from '../types';
11
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
12
12
 
13
- interface Props<TData extends Record<string, any>> {
13
+ interface Props<TData extends MRT_RowData> {
14
14
  table: MRT_TableInstance<TData>;
15
15
  }
16
16
 
17
- export const MRT_BottomToolbar = <TData extends Record<string, any>>({
17
+ export const MRT_BottomToolbar = <TData extends MRT_RowData>({
18
18
  table,
19
19
  }: Props<TData>) => {
20
20
  const {
@@ -1,14 +1,14 @@
1
1
  import Collapse from '@mui/material/Collapse';
2
2
  import LinearProgress from '@mui/material/LinearProgress';
3
3
  import { parseFromValuesOrFunc } from '../column.utils';
4
- import { type MRT_TableInstance } from '../types';
4
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props<TData extends Record<string, any>> {
6
+ interface Props<TData extends MRT_RowData> {
7
7
  isTopToolbar: boolean;
8
8
  table: MRT_TableInstance<TData>;
9
9
  }
10
10
 
11
- export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
11
+ export const MRT_LinearProgressBar = <TData extends MRT_RowData>({
12
12
  isTopToolbar,
13
13
  table,
14
14
  }: Props<TData>) => {
@@ -7,16 +7,16 @@ import PaginationItem from '@mui/material/PaginationItem';
7
7
  import Select from '@mui/material/Select';
8
8
  import Typography from '@mui/material/Typography';
9
9
  import { parseFromValuesOrFunc } from '../column.utils';
10
- import { type MRT_TableInstance } from '../types';
10
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
11
11
 
12
12
  const defaultRowsPerPage = [5, 10, 15, 20, 25, 30, 50, 100];
13
13
 
14
- interface Props<TData extends Record<string, any> = {}> {
14
+ interface Props<TData extends MRT_RowData> {
15
15
  position?: 'bottom' | 'top';
16
16
  table: MRT_TableInstance<TData>;
17
17
  }
18
18
 
19
- export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
19
+ export const MRT_TablePagination = <TData extends MRT_RowData>({
20
20
  position = 'bottom',
21
21
  table,
22
22
  }: Props<TData>) => {
@@ -62,8 +62,9 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
62
62
  sx={{
63
63
  alignItems: 'center',
64
64
  display: 'flex',
65
+ flexWrap: 'wrap',
65
66
  gap: '8px',
66
- justifyContent: 'space-between',
67
+ justifyContent: { md: 'space-between', sm: 'center' },
67
68
  justifySelf: 'flex-end',
68
69
  mt:
69
70
  position === 'top' &&
@@ -83,11 +84,12 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
83
84
  {localization.rowsPerPage}
84
85
  </InputLabel>
85
86
  <Select
87
+ disableUnderline
86
88
  id="mrt-rows-per-page"
87
89
  inputProps={{ 'aria-label': localization.rowsPerPage }}
88
90
  label={localization.rowsPerPage}
89
91
  onChange={(event) => setPageSize(+event.target.value)}
90
- sx={{ '&::before': { border: 'none' }, mb: 0 }}
92
+ sx={{ mb: 0 }}
91
93
  value={pageSize}
92
94
  variant="standard"
93
95
  >
@@ -122,6 +124,7 @@ export const MRT_TablePagination = <TData extends Record<string, any> = {}>({
122
124
  ) : paginationDisplayMode === 'default' ? (
123
125
  <>
124
126
  <Typography
127
+ align="center"
125
128
  sx={{ mb: 0, minWidth: '10ch', mx: '4px' }}
126
129
  variant="body2"
127
130
  >{`${
@@ -7,14 +7,14 @@ import Collapse from '@mui/material/Collapse';
7
7
  import Stack from '@mui/material/Stack';
8
8
  import { parseFromValuesOrFunc } from '../column.utils';
9
9
  import { MRT_SelectCheckbox } from '../inputs';
10
- import { type MRT_TableInstance } from '../types';
10
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
11
11
 
12
- interface Props<TData extends Record<string, any>> {
12
+ interface Props<TData extends MRT_RowData> {
13
13
  stackAlertBanner?: boolean;
14
14
  table: MRT_TableInstance<TData>;
15
15
  }
16
16
 
17
- export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
17
+ export const MRT_ToolbarAlertBanner = <TData extends MRT_RowData>({
18
18
  stackAlertBanner,
19
19
  table,
20
20
  }: Props<TData>) => {
@@ -3,13 +3,13 @@ import Box from '@mui/material/Box';
3
3
  import Fade from '@mui/material/Fade';
4
4
  import Typography from '@mui/material/Typography';
5
5
  import { alpha } from '@mui/material/styles';
6
- import { type MRT_TableInstance } from '../types';
6
+ import { type MRT_RowData, type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props<TData extends Record<string, any>> {
8
+ interface Props<TData extends MRT_RowData> {
9
9
  table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_ToolbarDropZone = <TData extends Record<string, any>>({
12
+ export const MRT_ToolbarDropZone = <TData extends MRT_RowData>({
13
13
  table,
14
14
  }: Props<TData>) => {
15
15
  const {