material-react-table 0.6.2 → 0.6.5

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 (33) hide show
  1. package/dist/MaterialReactTable.d.ts +11 -11
  2. package/dist/filtersFNs.d.ts +10 -10
  3. package/dist/material-react-table.cjs.development.js +179 -143
  4. package/dist/material-react-table.cjs.development.js.map +1 -1
  5. package/dist/material-react-table.cjs.production.min.js +1 -1
  6. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  7. package/dist/material-react-table.esm.js +181 -145
  8. package/dist/material-react-table.esm.js.map +1 -1
  9. package/dist/menus/MRT_ColumnActionMenu.d.ts +0 -1
  10. package/dist/toolbar/MRT_LinearProgressBar.d.ts +5 -0
  11. package/dist/toolbar/MRT_ToolbarTop.d.ts +11 -0
  12. package/dist/useMRT.d.ts +1 -1
  13. package/dist/utils.d.ts +2 -0
  14. package/package.json +1 -1
  15. package/src/MaterialReactTable.tsx +14 -12
  16. package/src/body/MRT_TableBody.tsx +3 -1
  17. package/src/body/MRT_TableBodyCell.tsx +2 -1
  18. package/src/body/MRT_TableBodyRow.tsx +2 -9
  19. package/src/buttons/MRT_ExpandButton.tsx +9 -1
  20. package/src/filtersFNs.ts +30 -30
  21. package/src/inputs/MRT_EditCellTextField.tsx +1 -1
  22. package/src/inputs/MRT_FilterTextField.tsx +24 -12
  23. package/src/menus/MRT_ColumnActionMenu.tsx +30 -15
  24. package/src/menus/MRT_FilterTypeMenu.tsx +20 -20
  25. package/src/menus/MRT_RowActionMenu.tsx +11 -4
  26. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +3 -0
  27. package/src/table/MRT_TableContainer.tsx +4 -28
  28. package/src/toolbar/MRT_LinearProgressBar.tsx +25 -0
  29. package/src/toolbar/MRT_TablePagination.tsx +1 -1
  30. package/src/toolbar/MRT_ToolbarBottom.tsx +18 -21
  31. package/src/toolbar/MRT_ToolbarTop.tsx +21 -10
  32. package/src/useMRT.tsx +21 -20
  33. package/src/utils.ts +17 -0
@@ -8,7 +8,6 @@ export declare const commonMenuItemStyles: {
8
8
  };
9
9
  export declare const commonListItemStyles: {
10
10
  display: string;
11
- gap: string;
12
11
  alignItems: string;
13
12
  };
14
13
  interface Props {
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ }
4
+ export declare const MRT_LinearProgressBar: FC<Props>;
5
+ export {};
@@ -1,4 +1,15 @@
1
1
  import { FC } from 'react';
2
+ import { Theme } from '@mui/material';
3
+ import { MRT_TableInstance } from '..';
4
+ export declare const commonToolbarStyles: (theme: Theme, tableInstance: MRT_TableInstance) => {
5
+ backgroundColor: string;
6
+ backgroundImage: string;
7
+ display: string;
8
+ opacity: number;
9
+ p: string;
10
+ width: string;
11
+ zIndex: number;
12
+ };
2
13
  interface Props {
3
14
  }
4
15
  export declare const MRT_ToolbarTop: FC<Props>;
package/dist/useMRT.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, { PropsWithChildren, Dispatch, SetStateAction } from 'react';
1
+ import React, { Dispatch, PropsWithChildren, SetStateAction } from 'react';
2
2
  import type { MRT_FilterType, MRT_Row, MRT_TableInstance } from '.';
3
3
  import { MRT_FILTER_TYPE } from './enums';
4
4
  import { MRT_Icons } from './icons';
@@ -0,0 +1,2 @@
1
+ import { MRT_ColumnInterface } from '.';
2
+ export declare const findLowestLevelCols: (columns: MRT_ColumnInterface[]) => MRT_ColumnInterface<{}>[];
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.6.2",
2
+ "version": "0.6.5",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material-UI implementation of react-table, inspired by material-table and the mui DataGrid, written from the ground up in TypeScript.",
@@ -90,7 +90,7 @@ export type MRT_TableOptions<D extends {} = {}> = TableOptions<D> &
90
90
  UseRowSelectOptions<D> &
91
91
  UseRowStateOptions<D> &
92
92
  UseSortByOptions<D> & {
93
- columns: (Column<D> & MRT_ColumnInterface)[];
93
+ columns: MRT_ColumnInterface[];
94
94
  data: D[];
95
95
  initialState?: Partial<MRT_TableState>;
96
96
  };
@@ -107,13 +107,13 @@ export type MRT_TableInstance<D extends {} = {}> = TableInstance<D> &
107
107
  UseRowStateInstanceProps<D> &
108
108
  UseSortByInstanceProps<D> & {
109
109
  columns: (Column<D> & MRT_ColumnInstance<D>)[];
110
- headerGroups: MRT_HeaderGroup<D>[];
111
110
  footerGroups: MRT_HeaderGroup<D>[];
112
- state: MRT_TableState<D>;
113
- rows: MRT_Row<D>[];
111
+ getToggleAllRowsExpandedProps: () => void;
112
+ headerGroups: MRT_HeaderGroup<D>[];
114
113
  page: MRT_Row<D>[];
115
114
  resetResizing: () => void;
116
- getToggleAllRowsExpandedProps: () => void;
115
+ rows: MRT_Row<D>[];
116
+ state: MRT_TableState<D>;
117
117
  };
118
118
 
119
119
  export type MRT_ColumnInterface<D extends {} = {}> = ColumnInterface<D> &
@@ -132,13 +132,13 @@ export type MRT_ColumnInterface<D extends {} = {}> = ColumnInterface<D> &
132
132
  Filter?: ({ column }: { column: MRT_HeaderGroup<D> }) => ReactNode;
133
133
  Footer?: string;
134
134
  Header?: string;
135
- accessor: string;
136
- columns?: (Column<D> & MRT_ColumnInterface<D>)[];
135
+ accessor?: string;
136
+ columns?: MRT_ColumnInterface<D>[];
137
+ disableEditing?: boolean;
137
138
  disableFilters?: boolean;
138
- editable?: boolean;
139
139
  filter?: MRT_FilterType | string | FilterType<D>;
140
140
  filterSelectOptions?: (string | { text: string; value: string })[];
141
- filterTypes: MRT_FILTER_TYPE[];
141
+ filterTypes?: (MRT_FILTER_TYPE | string)[];
142
142
  muiTableBodyCellEditTextFieldProps?:
143
143
  | TextFieldProps
144
144
  | ((cell: MRT_Cell<D>) => TextFieldProps);
@@ -314,7 +314,7 @@ export type MaterialReactTableProps<D extends {} = {}> = UseTableOptions<D> &
314
314
  event: MouseEvent<HTMLTableCellElement>,
315
315
  cell: MRT_Cell<D>,
316
316
  ) => void;
317
- onColumnHide?: (column: Column<D>, visibleColumns: Column<D>[]) => void;
317
+ onColumnHide?: (column: Column<D>, hiddenColumns?: string[]) => void;
318
318
  onDetailPanelClick?: (
319
319
  event: MouseEvent<HTMLTableCellElement>,
320
320
  row: Row<D>,
@@ -367,7 +367,7 @@ export type MaterialReactTableProps<D extends {} = {}> = UseTableOptions<D> &
367
367
  ) => ReactNode;
368
368
  };
369
369
 
370
- export default <D extends {}>({
370
+ export default <D extends {} = {}>({
371
371
  defaultColumn = { minWidth: 50, maxWidth: 1000 },
372
372
  filterTypes,
373
373
  globalFilter = 'fuzzy',
@@ -380,9 +380,11 @@ export default <D extends {}>({
380
380
  ...rest
381
381
  }: MaterialReactTableProps<D>) => (
382
382
  <MaterialReactTableProvider
383
+ //@ts-ignore
383
384
  defaultColumn={defaultColumn}
384
- // @ts-ignore
385
+ //@ts-ignore
385
386
  filterTypes={{ ...defaultFilterFNs, ...filterTypes }}
387
+ //@ts-ignore
386
388
  globalFilter={globalFilter}
387
389
  icons={{ ...MRT_Default_Icons, ...icons }}
388
390
  localization={{ ...MRT_DefaultLocalization_EN, ...localization }}
@@ -28,7 +28,9 @@ export const MRT_TableBody: FC<Props> = () => {
28
28
  return (
29
29
  <TableBody
30
30
  {...tableBodyProps}
31
- sx={{ overflowY: 'hidden', ...tableBodyProps?.sx }}
31
+ sx={{
32
+ ...tableBodyProps?.sx,
33
+ }}
32
34
  >
33
35
  {rows.map((row: MRT_Row) => {
34
36
  tableInstance.prepareRow(row);
@@ -72,7 +72,8 @@ export const MRT_TableBodyCell: FC<Props> = ({ cell }) => {
72
72
  width={Math.random() * (120 - 60) + 60}
73
73
  {...muiTableBodyCellSkeletonProps}
74
74
  />
75
- ) : currentEditingRow?.id === cell.row.id ? (
75
+ ) : !cell.column.disableEditing &&
76
+ currentEditingRow?.id === cell.row.id ? (
76
77
  <MRT_EditCellTextField cell={cell} />
77
78
  ) : cell.isPlaceholder ? null : cell.isAggregated ? (
78
79
  cell.render('Aggregated')
@@ -1,5 +1,5 @@
1
1
  import React, { FC, MouseEvent } from 'react';
2
- import { alpha, TableCell, TableRow } from '@mui/material';
2
+ import { TableCell, TableRow } from '@mui/material';
3
3
  import {
4
4
  commonTableBodyCellStyles,
5
5
  MRT_TableBodyCell,
@@ -52,15 +52,8 @@ export const MRT_TableBodyRow: FC<Props> = ({ row }) => {
52
52
  onClick={(event: MouseEvent<HTMLTableRowElement>) =>
53
53
  onRowClick?.(event, row)
54
54
  }
55
+ selected={row.isSelected}
55
56
  {...tableRowProps}
56
- sx={(theme) =>
57
- ({
58
- backgroundColor: row.isSelected
59
- ? alpha(theme.palette.primary.light, 0.1)
60
- : 'transparent',
61
- ...tableRowProps?.sx,
62
- } as any)
63
- }
64
57
  >
65
58
  {enableRowNumbers && (
66
59
  <TableCell sx={{ ...commonTableBodyCellStyles(densePadding) }}>
@@ -1,4 +1,4 @@
1
- import React, { FC } from 'react';
1
+ import React, { FC, MouseEvent } from 'react';
2
2
  import { IconButton, TableCell } from '@mui/material';
3
3
  import { useMRT } from '../useMRT';
4
4
  import type { MRT_Row } from '..';
@@ -12,12 +12,19 @@ export const MRT_ExpandButton: FC<Props> = ({ row }) => {
12
12
  const {
13
13
  icons: { ExpandMoreIcon },
14
14
  localization,
15
+ onRowExpandChange,
15
16
  renderDetailPanel,
16
17
  tableInstance: {
17
18
  state: { densePadding },
18
19
  },
19
20
  } = useMRT();
20
21
 
22
+ const handleToggleExpand = (event: MouseEvent<HTMLButtonElement>) => {
23
+ // @ts-ignore
24
+ row.getToggleRowExpandedProps()?.onClick(event);
25
+ onRowExpandChange?.(event, row);
26
+ };
27
+
21
28
  return (
22
29
  <TableCell
23
30
  size="small"
@@ -32,6 +39,7 @@ export const MRT_ExpandButton: FC<Props> = ({ row }) => {
32
39
  disabled={!row.canExpand && !renderDetailPanel}
33
40
  title={localization.expand}
34
41
  {...row.getToggleRowExpandedProps()}
42
+ onClick={handleToggleExpand}
35
43
  >
36
44
  <ExpandMoreIcon
37
45
  style={{
package/src/filtersFNs.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { matchSorter } from 'match-sorter';
2
2
  import { MRT_Row } from '.';
3
3
 
4
- export const fuzzyFilterFN = (
4
+ export const fuzzy = (
5
5
  rows: MRT_Row[],
6
6
  columnIds: string[] | string,
7
7
  filterValue: string | number,
@@ -13,9 +13,9 @@ export const fuzzyFilterFN = (
13
13
  sorter: (rankedItems) => rankedItems,
14
14
  });
15
15
 
16
- fuzzyFilterFN.autoRemove = (val: any) => !val;
16
+ fuzzy.autoRemove = (val: any) => !val;
17
17
 
18
- export const containsFilterFN = (
18
+ export const contains = (
19
19
  rows: MRT_Row[],
20
20
  id: string,
21
21
  filterValue: string | number,
@@ -28,9 +28,9 @@ export const containsFilterFN = (
28
28
  .includes(filterValue.toString().toLowerCase().trim()),
29
29
  );
30
30
 
31
- containsFilterFN.autoRemove = (val: any) => !val;
31
+ contains.autoRemove = (val: any) => !val;
32
32
 
33
- export const startsWithFilterFN = (
33
+ export const startsWith = (
34
34
  rows: MRT_Row[],
35
35
  id: string,
36
36
  filterValue: string | number,
@@ -43,9 +43,9 @@ export const startsWithFilterFN = (
43
43
  .startsWith(filterValue.toString().toLowerCase().trim()),
44
44
  );
45
45
 
46
- startsWithFilterFN.autoRemove = (val: any) => !val;
46
+ startsWith.autoRemove = (val: any) => !val;
47
47
 
48
- export const endsWithFilterFN = (
48
+ export const endsWith = (
49
49
  rows: MRT_Row[],
50
50
  id: string,
51
51
  filterValue: string | number,
@@ -58,9 +58,9 @@ export const endsWithFilterFN = (
58
58
  .endsWith(filterValue.toString().toLowerCase().trim()),
59
59
  );
60
60
 
61
- endsWithFilterFN.autoRemove = (val: any) => !val;
61
+ endsWith.autoRemove = (val: any) => !val;
62
62
 
63
- export const equalsFilterFN = (
63
+ export const equals = (
64
64
  rows: MRT_Row[],
65
65
  id: string,
66
66
  filterValue: string | number,
@@ -71,9 +71,9 @@ export const equalsFilterFN = (
71
71
  filterValue.toString().toLowerCase().trim(),
72
72
  );
73
73
 
74
- equalsFilterFN.autoRemove = (val: any) => !val;
74
+ equals.autoRemove = (val: any) => !val;
75
75
 
76
- export const notEqualsFilterFN = (
76
+ export const notEquals = (
77
77
  rows: MRT_Row[],
78
78
  id: string,
79
79
  filterValue: string | number,
@@ -84,9 +84,9 @@ export const notEqualsFilterFN = (
84
84
  filterValue.toString().toLowerCase().trim(),
85
85
  );
86
86
 
87
- notEqualsFilterFN.autoRemove = (val: any) => !val;
87
+ notEquals.autoRemove = (val: any) => !val;
88
88
 
89
- export const greaterThanFilterFN = (
89
+ export const greaterThan = (
90
90
  rows: MRT_Row[],
91
91
  id: string,
92
92
  filterValue: string | number,
@@ -98,9 +98,9 @@ export const greaterThanFilterFN = (
98
98
  filterValue.toString().toLowerCase().trim(),
99
99
  );
100
100
 
101
- greaterThanFilterFN.autoRemove = (val: any) => !val;
101
+ greaterThan.autoRemove = (val: any) => !val;
102
102
 
103
- export const lessThanFilterFN = (
103
+ export const lessThan = (
104
104
  rows: MRT_Row[],
105
105
  id: string,
106
106
  filterValue: string | number,
@@ -112,33 +112,33 @@ export const lessThanFilterFN = (
112
112
  filterValue.toString().toLowerCase().trim(),
113
113
  );
114
114
 
115
- lessThanFilterFN.autoRemove = (val: any) => !val;
115
+ lessThan.autoRemove = (val: any) => !val;
116
116
 
117
- export const emptyFilterFN = (
117
+ export const empty = (
118
118
  rows: MRT_Row[],
119
119
  id: string,
120
120
  _filterValue: string | number,
121
121
  ) => rows.filter((row) => !row.values[id].toString().toLowerCase().trim());
122
122
 
123
- emptyFilterFN.autoRemove = (val: any) => !val;
123
+ empty.autoRemove = (val: any) => !val;
124
124
 
125
- export const notEmptyFilterFN = (
125
+ export const notEmpty = (
126
126
  rows: MRT_Row[],
127
127
  id: string,
128
128
  _filterValue: string | number,
129
129
  ) => rows.filter((row) => !!row.values[id].toString().toLowerCase().trim());
130
130
 
131
- notEmptyFilterFN.autoRemove = (val: any) => !val;
131
+ notEmpty.autoRemove = (val: any) => !val;
132
132
 
133
133
  export const defaultFilterFNs = {
134
- contains: containsFilterFN,
135
- empty: emptyFilterFN,
136
- endsWith: endsWithFilterFN,
137
- equals: equalsFilterFN,
138
- fuzzy: fuzzyFilterFN,
139
- greaterThan: greaterThanFilterFN,
140
- lessThan: lessThanFilterFN,
141
- notEmpty: notEmptyFilterFN,
142
- notEquals: notEqualsFilterFN,
143
- startsWith: startsWithFilterFN,
134
+ contains,
135
+ empty,
136
+ endsWith,
137
+ equals,
138
+ fuzzy,
139
+ greaterThan,
140
+ lessThan,
141
+ notEmpty,
142
+ notEquals,
143
+ startsWith,
144
144
  };
@@ -47,7 +47,7 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell }) => {
47
47
  },
48
48
  };
49
49
 
50
- if (cell.column.editable && cell.column.Edit) {
50
+ if (!cell.column.disableEditing && cell.column.Edit) {
51
51
  return <>{cell.column.Edit({ ...textFieldProps, cell })}</>;
52
52
  }
53
53
 
@@ -77,6 +77,7 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
77
77
  return <>{column.Filter?.({ column })}</>;
78
78
  }
79
79
 
80
+ const filterId = `mrt-${idPrefix}-${column.id}-filter-text-field`;
80
81
  const filterType = tableInstance.state.currentFilterTypes[column.id];
81
82
  const isSelectFilter = !!column.filterSelectOptions;
82
83
  const filterChipLabel =
@@ -98,7 +99,7 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
98
99
  <>
99
100
  <TextField
100
101
  fullWidth
101
- id={`mrt-${idPrefix}-${column.id}-filter-text-field`}
102
+ id={filterId}
102
103
  inputProps={{
103
104
  disabled: !!filterChipLabel,
104
105
  sx: {
@@ -108,17 +109,28 @@ export const MRT_FilterTextField: FC<Props> = ({ column }) => {
108
109
  title: filterPlaceholder,
109
110
  }}
110
111
  helperText={
111
- filterType instanceof Function
112
- ? ''
113
- : localization.filterMode.replace(
114
- '{filterType}',
115
- // @ts-ignore
116
- localization[
117
- `filter${
118
- filterType.charAt(0).toUpperCase() + filterType.slice(1)
119
- }`
120
- ],
121
- )
112
+ <label htmlFor={filterId}>
113
+ {filterType instanceof Function
114
+ ? localization.filterMode.replace(
115
+ '{filterType}',
116
+ // @ts-ignore
117
+ localization[
118
+ `filter${
119
+ filterType.name.charAt(0).toUpperCase() +
120
+ filterType.name.slice(1)
121
+ }`
122
+ ] ?? '',
123
+ ) ?? ''
124
+ : localization.filterMode.replace(
125
+ '{filterType}',
126
+ // @ts-ignore
127
+ localization[
128
+ `filter${
129
+ filterType.charAt(0).toUpperCase() + filterType.slice(1)
130
+ }`
131
+ ],
132
+ )}
133
+ </label>
122
134
  }
123
135
  FormHelperTextProps={{
124
136
  sx: { fontSize: '0.6rem', lineHeight: '0.8rem' },
@@ -1,5 +1,5 @@
1
1
  import React, { FC, useState } from 'react';
2
- import { Box, IconButton, Menu, MenuItem } from '@mui/material';
2
+ import { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';
3
3
  import { useMRT } from '../useMRT';
4
4
  import type { MRT_HeaderGroup } from '..';
5
5
  import { MRT_FilterTypeMenu } from './MRT_FilterTypeMenu';
@@ -14,7 +14,6 @@ export const commonMenuItemStyles = {
14
14
 
15
15
  export const commonListItemStyles = {
16
16
  display: 'flex',
17
- gap: '0.75rem',
18
17
  alignItems: 'center',
19
18
  };
20
19
 
@@ -102,15 +101,16 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
102
101
  setAnchorEl(null);
103
102
  };
104
103
 
104
+ const handleShowAllColumns = () => {
105
+ tableInstance.toggleHideAllColumns(false);
106
+ setAnchorEl(null);
107
+ };
108
+
105
109
  const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {
106
110
  event.stopPropagation();
107
111
  setFilterMenuAnchorEl(event.currentTarget);
108
112
  };
109
113
 
110
- const handleShowAllColumns = () => {
111
- tableInstance.toggleHideAllColumns(false);
112
- };
113
-
114
114
  const handleOpenShowHideColumnsMenu = (
115
115
  event: React.MouseEvent<HTMLElement>,
116
116
  ) => {
@@ -136,7 +136,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
136
136
  sx={commonMenuItemStyles}
137
137
  >
138
138
  <Box sx={commonListItemStyles}>
139
- <ClearAllIcon />
139
+ <ListItemIcon>
140
+ <ClearAllIcon />
141
+ </ListItemIcon>
140
142
  {localization.clearSort}
141
143
  </Box>
142
144
  </MenuItem>,
@@ -147,7 +149,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
147
149
  sx={commonMenuItemStyles}
148
150
  >
149
151
  <Box sx={commonListItemStyles}>
150
- <SortIcon />
152
+ <ListItemIcon>
153
+ <SortIcon />
154
+ </ListItemIcon>
151
155
  {localization.sortByColumnAsc?.replace(
152
156
  '{column}',
153
157
  String(column.Header),
@@ -164,7 +168,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
164
168
  sx={commonMenuItemStyles}
165
169
  >
166
170
  <Box sx={commonListItemStyles}>
167
- <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />
171
+ <ListItemIcon>
172
+ <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />
173
+ </ListItemIcon>
168
174
  {localization.sortByColumnDesc?.replace(
169
175
  '{column}',
170
176
  String(column.Header),
@@ -181,7 +187,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
181
187
  sx={commonMenuItemStyles}
182
188
  >
183
189
  <Box sx={commonListItemStyles}>
184
- <FilterListOffIcon />
190
+ <ListItemIcon>
191
+ <FilterListOffIcon />
192
+ </ListItemIcon>
185
193
  {localization.clearFilter}
186
194
  </Box>
187
195
  </MenuItem>,
@@ -192,7 +200,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
192
200
  sx={commonMenuItemStyles}
193
201
  >
194
202
  <Box sx={commonListItemStyles}>
195
- <FilterListIcon />
203
+ <ListItemIcon>
204
+ <FilterListIcon />
205
+ </ListItemIcon>
196
206
  {localization.filterByColumn?.replace(
197
207
  '{column}',
198
208
  String(column.Header),
@@ -226,7 +236,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
226
236
  sx={commonMenuItemStyles}
227
237
  >
228
238
  <Box sx={commonListItemStyles}>
229
- <DynamicFeedIcon />
239
+ <ListItemIcon>
240
+ <DynamicFeedIcon />
241
+ </ListItemIcon>
230
242
  {localization[
231
243
  column.isGrouped ? 'ungroupByColumn' : 'groupByColumn'
232
244
  ]?.replace('{column}', String(column.Header))}
@@ -236,7 +248,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
236
248
  {!disableColumnHiding && [
237
249
  <MenuItem key={0} onClick={handleHideColumn} sx={commonMenuItemStyles}>
238
250
  <Box sx={commonListItemStyles}>
239
- <VisibilityOffIcon />
251
+ <ListItemIcon>
252
+ <VisibilityOffIcon />
253
+ </ListItemIcon>
240
254
  {localization.hideColumn?.replace(
241
255
  '{column}',
242
256
  String(column.Header),
@@ -250,8 +264,9 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
250
264
  sx={commonMenuItemStyles}
251
265
  >
252
266
  <Box sx={commonListItemStyles}>
253
- <ViewColumnIcon />
254
-
267
+ <ListItemIcon>
268
+ <ViewColumnIcon />
269
+ </ListItemIcon>
255
270
  {localization.showAllColumns?.replace(
256
271
  '{column}',
257
272
  String(column.Header),
@@ -4,16 +4,16 @@ import { useMRT } from '../useMRT';
4
4
  import type { MRT_FilterType, MRT_HeaderGroup } from '..';
5
5
  import { MRT_FILTER_TYPE } from '../enums';
6
6
  import {
7
- containsFilterFN,
8
- emptyFilterFN,
9
- endsWithFilterFN,
10
- equalsFilterFN,
11
- fuzzyFilterFN,
12
- greaterThanFilterFN,
13
- lessThanFilterFN,
14
- notEmptyFilterFN,
15
- notEqualsFilterFN,
16
- startsWithFilterFN,
7
+ contains,
8
+ empty,
9
+ endsWith,
10
+ equals,
11
+ fuzzy,
12
+ greaterThan,
13
+ lessThan,
14
+ notEmpty,
15
+ notEquals,
16
+ startsWith,
17
17
  } from '../filtersFNs';
18
18
 
19
19
  const commonMenuItemStyles = {
@@ -48,61 +48,61 @@ export const MRT_FilterTypeMenu: FC<Props> = ({
48
48
  type: MRT_FILTER_TYPE.FUZZY,
49
49
  label: localization.filterFuzzy,
50
50
  divider: false,
51
- fn: fuzzyFilterFN,
51
+ fn: fuzzy,
52
52
  },
53
53
  {
54
54
  type: MRT_FILTER_TYPE.CONTAINS,
55
55
  label: localization.filterContains,
56
56
  divider: true,
57
- fn: containsFilterFN,
57
+ fn: contains,
58
58
  },
59
59
  {
60
60
  type: MRT_FILTER_TYPE.STARTS_WITH,
61
61
  label: localization.filterStartsWith,
62
62
  divider: false,
63
- fn: startsWithFilterFN,
63
+ fn: startsWith,
64
64
  },
65
65
  {
66
66
  type: MRT_FILTER_TYPE.ENDS_WITH,
67
67
  label: localization.filterEndsWith,
68
68
  divider: true,
69
- fn: endsWithFilterFN,
69
+ fn: endsWith,
70
70
  },
71
71
  {
72
72
  type: MRT_FILTER_TYPE.EQUALS,
73
73
  label: localization.filterEquals,
74
74
  divider: false,
75
- fn: equalsFilterFN,
75
+ fn: equals,
76
76
  },
77
77
  {
78
78
  type: MRT_FILTER_TYPE.NOT_EQUALS,
79
79
  label: localization.filterNotEquals,
80
80
  divider: true,
81
- fn: notEqualsFilterFN,
81
+ fn: notEquals,
82
82
  },
83
83
  {
84
84
  type: MRT_FILTER_TYPE.GREATER_THAN,
85
85
  label: localization.filterGreaterThan,
86
86
  divider: false,
87
- fn: greaterThanFilterFN,
87
+ fn: greaterThan,
88
88
  },
89
89
  {
90
90
  type: MRT_FILTER_TYPE.LESS_THAN,
91
91
  label: localization.filterLessThan,
92
92
  divider: true,
93
- fn: lessThanFilterFN,
93
+ fn: lessThan,
94
94
  },
95
95
  {
96
96
  type: MRT_FILTER_TYPE.EMPTY,
97
97
  label: localization.filterEmpty,
98
98
  divider: false,
99
- fn: emptyFilterFN,
99
+ fn: empty,
100
100
  },
101
101
  {
102
102
  type: MRT_FILTER_TYPE.NOT_EMPTY,
103
103
  label: localization.filterNotEmpty,
104
104
  divider: false,
105
- fn: notEmptyFilterFN,
105
+ fn: notEmpty,
106
106
  },
107
107
  ],
108
108
  [],
@@ -1,8 +1,11 @@
1
1
  import React, { FC } from 'react';
2
- import { Menu, MenuItem } from '@mui/material';
2
+ import { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';
3
3
  import { useMRT } from '../useMRT';
4
4
  import type { MRT_Row } from '..';
5
- import { commonMenuItemStyles } from './MRT_ColumnActionMenu';
5
+ import {
6
+ commonListItemStyles,
7
+ commonMenuItemStyles,
8
+ } from './MRT_ColumnActionMenu';
6
9
 
7
10
  interface Props {
8
11
  anchorEl: HTMLElement | null;
@@ -36,8 +39,12 @@ export const MRT_RowActionMenu: FC<Props> = ({
36
39
  >
37
40
  {enableRowEditing && (
38
41
  <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>
39
- <EditIcon />
40
- {localization.edit}
42
+ <Box sx={commonListItemStyles}>
43
+ <ListItemIcon>
44
+ <EditIcon />
45
+ </ListItemIcon>
46
+ {localization.edit}
47
+ </Box>
41
48
  </MenuItem>
42
49
  )}
43
50
  {renderRowActionMenuItems?.(row, tableInstance, () =>