material-react-table 2.0.0-alpha.0 → 2.0.0-alpha.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 (119) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/index.js +2480 -2392
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +1 -1
  5. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +3 -2
  6. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  7. package/dist/cjs/types/body/index.d.ts +1 -0
  8. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
  9. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +9 -0
  10. package/dist/cjs/types/buttons/index.d.ts +2 -1
  11. package/dist/cjs/types/column.utils.d.ts +7 -6
  12. package/dist/cjs/types/filterFns.d.ts +14 -14
  13. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  14. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  15. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  16. package/dist/cjs/types/icons.d.ts +1 -1
  17. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
  18. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  19. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  20. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  21. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +1 -1
  22. package/dist/cjs/types/types.d.ts +203 -197
  23. package/dist/esm/material-react-table.esm.js +2442 -2358
  24. package/dist/esm/material-react-table.esm.js.map +1 -1
  25. package/dist/esm/types/MaterialReactTable.d.ts +1 -1
  26. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +3 -2
  27. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  28. package/dist/esm/types/body/index.d.ts +1 -0
  29. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +1 -1
  30. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +9 -0
  31. package/dist/esm/types/buttons/index.d.ts +2 -1
  32. package/dist/esm/types/column.utils.d.ts +7 -6
  33. package/dist/esm/types/filterFns.d.ts +14 -14
  34. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  35. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  36. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  37. package/dist/esm/types/icons.d.ts +1 -1
  38. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +1 -1
  39. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  40. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  41. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  42. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +1 -1
  43. package/dist/esm/types/types.d.ts +203 -197
  44. package/dist/index.d.ts +293 -272
  45. package/locales/en.esm.js +1 -0
  46. package/locales/en.esm.js.map +1 -1
  47. package/locales/en.js +1 -0
  48. package/locales/en.js.map +1 -1
  49. package/locales/fr.esm.js +1 -1
  50. package/locales/fr.esm.js.map +1 -1
  51. package/locales/fr.js +1 -1
  52. package/locales/fr.js.map +1 -1
  53. package/package.json +10 -9
  54. package/src/MaterialReactTable.tsx +2 -2
  55. package/src/body/MRT_TableBody.tsx +180 -76
  56. package/src/body/MRT_TableBodyCell.tsx +45 -43
  57. package/src/body/MRT_TableBodyCellValue.tsx +5 -5
  58. package/src/body/MRT_TableBodyRow.tsx +117 -29
  59. package/src/body/MRT_TableBodyRowGrabHandle.tsx +6 -5
  60. package/src/body/MRT_TableBodyRowPinButton.tsx +46 -0
  61. package/src/body/MRT_TableDetailPanel.tsx +16 -22
  62. package/src/body/index.ts +2 -1
  63. package/src/buttons/MRT_CopyButton.tsx +14 -20
  64. package/src/buttons/MRT_EditActionButtons.tsx +4 -4
  65. package/src/buttons/MRT_ExpandAllButton.tsx +7 -9
  66. package/src/buttons/MRT_ExpandButton.tsx +6 -7
  67. package/src/buttons/MRT_GrabHandleButton.tsx +12 -13
  68. package/src/buttons/MRT_RowPinButton.tsx +74 -0
  69. package/src/buttons/MRT_ShowHideColumnsButton.tsx +1 -1
  70. package/src/buttons/MRT_ToggleFullScreenButton.tsx +2 -2
  71. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +9 -10
  72. package/src/buttons/index.ts +2 -1
  73. package/src/column.utils.ts +33 -21
  74. package/src/filterFns.ts +29 -29
  75. package/src/footer/MRT_TableFooter.tsx +14 -8
  76. package/src/footer/MRT_TableFooterCell.tsx +8 -21
  77. package/src/footer/MRT_TableFooterRow.tsx +7 -8
  78. package/src/head/MRT_TableHead.tsx +12 -8
  79. package/src/head/MRT_TableHeadCell.tsx +18 -25
  80. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +18 -23
  81. package/src/head/MRT_TableHeadCellFilterContainer.tsx +11 -4
  82. package/src/head/MRT_TableHeadCellFilterLabel.tsx +106 -61
  83. package/src/head/MRT_TableHeadCellGrabHandle.tsx +8 -15
  84. package/src/head/MRT_TableHeadCellResizeHandle.tsx +11 -11
  85. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -8
  86. package/src/head/MRT_TableHeadRow.tsx +7 -8
  87. package/src/hooks/useMRT_DisplayColumns.tsx +17 -4
  88. package/src/hooks/useMRT_Effects.ts +3 -3
  89. package/src/hooks/useMRT_TableInstance.ts +17 -10
  90. package/src/hooks/useMRT_TableOptions.ts +9 -5
  91. package/src/icons.ts +2 -2
  92. package/src/inputs/MRT_EditCellTextField.tsx +23 -31
  93. package/src/inputs/MRT_FilterCheckbox.tsx +17 -29
  94. package/src/inputs/MRT_FilterRangeFields.tsx +1 -1
  95. package/src/inputs/MRT_FilterRangeSlider.tsx +12 -29
  96. package/src/inputs/MRT_FilterTextField.tsx +83 -99
  97. package/src/inputs/MRT_GlobalFilterTextField.tsx +29 -29
  98. package/src/inputs/MRT_SelectCheckbox.tsx +35 -21
  99. package/src/locales/en.ts +1 -1
  100. package/src/locales/fr.ts +1 -1
  101. package/src/menus/MRT_ColumnActionMenu.tsx +14 -14
  102. package/src/menus/MRT_FilterOptionMenu.tsx +35 -35
  103. package/src/menus/MRT_RowActionMenu.tsx +17 -18
  104. package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
  105. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +5 -5
  106. package/src/modals/MRT_EditRowModal.tsx +12 -20
  107. package/src/sortingFns.ts +1 -1
  108. package/src/table/MRT_Table.tsx +14 -19
  109. package/src/table/MRT_TableContainer.tsx +14 -20
  110. package/src/table/MRT_TablePaper.tsx +16 -20
  111. package/src/toolbar/MRT_BottomToolbar.tsx +18 -24
  112. package/src/toolbar/MRT_LinearProgressBar.tsx +8 -7
  113. package/src/toolbar/MRT_TablePagination.tsx +23 -25
  114. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +11 -14
  115. package/src/toolbar/MRT_ToolbarDropZone.tsx +6 -6
  116. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +8 -5
  117. package/src/toolbar/MRT_TopToolbar.tsx +14 -20
  118. package/src/types.ts +269 -252
  119. package/src/useMaterialReactTable.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  import Collapse from '@mui/material/Collapse';
2
2
  import LinearProgress from '@mui/material/LinearProgress';
3
+ import { parseFromValuesOrFunc } from '../column.utils';
3
4
  import { type MRT_TableInstance } from '../types';
4
5
 
5
6
  interface Props<TData extends Record<string, any>> {
@@ -12,31 +13,31 @@ export const MRT_LinearProgressBar = <TData extends Record<string, any>>({
12
13
  table,
13
14
  }: Props<TData>) => {
14
15
  const {
15
- options: { muiLinearProgressProps },
16
16
  getState,
17
+ options: { muiLinearProgressProps },
17
18
  } = table;
18
19
  const { isLoading, showProgressBars } = getState();
19
20
 
20
- const linearProgressProps =
21
- muiLinearProgressProps instanceof Function
22
- ? muiLinearProgressProps({ isTopToolbar, table })
23
- : muiLinearProgressProps;
21
+ const linearProgressProps = parseFromValuesOrFunc(muiLinearProgressProps, {
22
+ isTopToolbar,
23
+ table,
24
+ });
24
25
 
25
26
  return (
26
27
  <Collapse
27
28
  in={isLoading || showProgressBars}
28
29
  mountOnEnter
29
- unmountOnExit
30
30
  sx={{
31
31
  bottom: isTopToolbar ? 0 : undefined,
32
32
  position: 'absolute',
33
33
  top: !isTopToolbar ? 0 : undefined,
34
34
  width: '100%',
35
35
  }}
36
+ unmountOnExit
36
37
  >
37
38
  <LinearProgress
38
- aria-label="Loading"
39
39
  aria-busy="true"
40
+ aria-label="Loading"
40
41
  sx={{ position: 'relative' }}
41
42
  {...linearProgressProps}
42
43
  />
@@ -1,40 +1,40 @@
1
1
  import { type ChangeEvent } from 'react';
2
2
  import TablePagination from '@mui/material/TablePagination';
3
+ import { parseFromValuesOrFunc } from '../column.utils';
3
4
  import { type MRT_TableInstance } from '../types';
4
5
 
5
6
  interface Props<TData extends Record<string, any>> {
6
- position?: 'top' | 'bottom';
7
+ position?: 'bottom' | 'top';
7
8
  table: MRT_TableInstance<TData>;
8
9
  }
9
10
 
10
11
  export const MRT_TablePagination = <TData extends Record<string, any>>({
11
- table,
12
12
  position = 'bottom',
13
+ table,
13
14
  }: Props<TData>) => {
14
15
  const {
15
16
  getPrePaginationRowModel,
16
17
  getState,
17
- setPageIndex,
18
- setPageSize,
19
18
  options: {
20
- muiTablePaginationProps,
21
19
  enableToolbarInternalActions,
22
20
  localization,
21
+ muiTablePaginationProps,
23
22
  rowCount,
24
23
  },
24
+ setPageIndex,
25
+ setPageSize,
25
26
  } = table;
26
27
  const {
27
- pagination: { pageSize = 10, pageIndex = 0 },
28
+ pagination: { pageIndex = 0, pageSize = 10 },
28
29
  showGlobalFilter,
29
30
  } = getState();
30
31
 
31
32
  const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;
32
33
  const showFirstLastPageButtons = totalRowCount / pageSize > 2;
33
34
 
34
- const tablePaginationProps =
35
- muiTablePaginationProps instanceof Function
36
- ? muiTablePaginationProps({ table })
37
- : muiTablePaginationProps;
35
+ const tablePaginationProps = parseFromValuesOrFunc(muiTablePaginationProps, {
36
+ table,
37
+ });
38
38
 
39
39
  const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {
40
40
  setPageSize(+event.target.value);
@@ -53,7 +53,7 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
53
53
  ? localization.goToNextPage
54
54
  : localization.goToPreviousPage
55
55
  }
56
- labelDisplayedRows={({ from, to, count }) =>
56
+ labelDisplayedRows={({ count, from, to }) =>
57
57
  `${from}-${to} ${localization.of} ${count}`
58
58
  }
59
59
  labelRowsPerPage={localization.rowsPerPage}
@@ -69,28 +69,28 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
69
69
  showLastButton={showFirstLastPageButtons}
70
70
  {...tablePaginationProps}
71
71
  SelectProps={{
72
- sx: { m: '0 1rem 0 1ch' },
73
72
  MenuProps: { MenuListProps: { disablePadding: true }, sx: { m: 0 } },
73
+ sx: { m: '0 1rem 0 1ch' },
74
74
  ...tablePaginationProps?.SelectProps,
75
75
  }}
76
76
  sx={(theme) => ({
77
- '& .MuiTablePagination-toolbar': {
78
- display: 'flex',
79
- alignItems: 'center',
80
- },
81
- '& .MuiTablePagination-selectLabel': {
82
- m: '0 -1px',
83
- },
84
- '&. MuiInputBase-root': {
77
+ '& . MuiTablePagination-select': {
85
78
  m: '0 1px',
86
79
  },
87
- '& . MuiTablePagination-select': {
80
+ '& .MuiTablePagination-actions': {
88
81
  m: '0 1px',
89
82
  },
90
83
  '& .MuiTablePagination-displayedRows': {
91
84
  m: '0 1px',
92
85
  },
93
- '& .MuiTablePagination-actions': {
86
+ '& .MuiTablePagination-selectLabel': {
87
+ m: '0 -1px',
88
+ },
89
+ '& .MuiTablePagination-toolbar': {
90
+ alignItems: 'center',
91
+ display: 'flex',
92
+ },
93
+ '&. MuiInputBase-root': {
94
94
  m: '0 1px',
95
95
  },
96
96
  mt:
@@ -101,9 +101,7 @@ export const MRT_TablePagination = <TData extends Record<string, any>>({
101
101
  : undefined,
102
102
  position: 'relative',
103
103
  zIndex: 2,
104
- ...(tablePaginationProps?.sx instanceof Function
105
- ? tablePaginationProps.sx(theme)
106
- : (tablePaginationProps?.sx as any)),
104
+ ...(parseFromValuesOrFunc(tablePaginationProps?.sx, theme) as any),
107
105
  })}
108
106
  />
109
107
  );
@@ -4,6 +4,7 @@ import AlertTitle from '@mui/material/AlertTitle';
4
4
  import Box from '@mui/material/Box';
5
5
  import Chip from '@mui/material/Chip';
6
6
  import Collapse from '@mui/material/Collapse';
7
+ import { parseFromValuesOrFunc } from '../column.utils';
7
8
  import { type MRT_TableInstance } from '../types';
8
9
 
9
10
  interface Props<TData extends Record<string, any>> {
@@ -21,23 +22,21 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
21
22
  getState,
22
23
  options: {
23
24
  localization,
24
- muiToolbarAlertBannerProps,
25
25
  muiToolbarAlertBannerChipProps,
26
+ muiToolbarAlertBannerProps,
26
27
  positionToolbarAlertBanner,
27
28
  rowCount,
28
29
  },
29
30
  } = table;
30
31
  const { grouping, showAlertBanner } = getState();
31
32
 
32
- const alertProps =
33
- muiToolbarAlertBannerProps instanceof Function
34
- ? muiToolbarAlertBannerProps({ table })
35
- : muiToolbarAlertBannerProps;
33
+ const alertProps = parseFromValuesOrFunc(muiToolbarAlertBannerProps, {
34
+ table,
35
+ });
36
36
 
37
- const chipProps =
38
- muiToolbarAlertBannerChipProps instanceof Function
39
- ? muiToolbarAlertBannerChipProps({ table })
40
- : muiToolbarAlertBannerChipProps;
37
+ const chipProps = parseFromValuesOrFunc(muiToolbarAlertBannerChipProps, {
38
+ table,
39
+ });
41
40
 
42
41
  const selectMessage =
43
42
  getSelectedRowModel().rows.length > 0
@@ -82,20 +81,18 @@ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any>>({
82
81
  borderRadius: 0,
83
82
  fontSize: '1rem',
84
83
  left: 0,
85
- p: 0,
86
- position: 'relative',
87
84
  mb: stackAlertBanner
88
85
  ? 0
89
86
  : positionToolbarAlertBanner === 'bottom'
90
87
  ? '-1rem'
91
88
  : undefined,
89
+ p: 0,
90
+ position: 'relative',
92
91
  right: 0,
93
92
  top: 0,
94
93
  width: '100%',
95
94
  zIndex: 2,
96
- ...(alertProps?.sx instanceof Function
97
- ? alertProps.sx(theme)
98
- : (alertProps?.sx as any)),
95
+ ...(parseFromValuesOrFunc(alertProps?.sx, theme) as any),
99
96
  })}
100
97
  >
101
98
  {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}
@@ -1,8 +1,8 @@
1
1
  import { type DragEvent, useEffect } from 'react';
2
- import { alpha } from '@mui/material/styles';
3
2
  import Box from '@mui/material/Box';
4
3
  import Fade from '@mui/material/Fade';
5
4
  import Typography from '@mui/material/Typography';
5
+ import { alpha } from '@mui/material/styles';
6
6
  import { type MRT_TableInstance } from '../types';
7
7
 
8
8
  interface Props<TData extends Record<string, any>> {
@@ -19,7 +19,7 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any>>({
19
19
  setShowToolbarDropZone,
20
20
  } = table;
21
21
 
22
- const { draggingColumn, hoveredColumn, grouping, showToolbarDropZone } =
22
+ const { draggingColumn, grouping, hoveredColumn, showToolbarDropZone } =
23
23
  getState();
24
24
 
25
25
  const handleDragEnter = (_event: DragEvent<HTMLDivElement>) => {
@@ -41,23 +41,23 @@ export const MRT_ToolbarDropZone = <TData extends Record<string, any>>({
41
41
  <Fade in={showToolbarDropZone}>
42
42
  <Box
43
43
  className="Mui-ToolbarDropZone"
44
+ onDragEnter={handleDragEnter}
44
45
  sx={(theme) => ({
45
46
  alignItems: 'center',
47
+ backdropFilter: 'blur(4px)',
46
48
  backgroundColor: alpha(
47
49
  theme.palette.info.main,
48
50
  hoveredColumn?.id === 'drop-zone' ? 0.2 : 0.1,
49
51
  ),
50
- backdropFilter: 'blur(4px)',
51
- boxSizing: 'border-box',
52
52
  border: `dashed ${theme.palette.info.main} 2px`,
53
+ boxSizing: 'border-box',
53
54
  display: 'flex',
54
- justifyContent: 'center',
55
55
  height: '100%',
56
+ justifyContent: 'center',
56
57
  position: 'absolute',
57
58
  width: '100%',
58
59
  zIndex: 4,
59
60
  })}
60
- onDragEnter={handleDragEnter}
61
61
  >
62
62
  <Typography fontStyle="italic">
63
63
  {localization.dropToGroupBy.replace(
@@ -1,8 +1,8 @@
1
1
  import Box from '@mui/material/Box';
2
- import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
3
2
  import { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';
4
3
  import { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';
5
4
  import { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';
5
+ import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton';
6
6
  import { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';
7
7
  import { type MRT_TableInstance } from '../types';
8
8
 
@@ -15,14 +15,15 @@ export const MRT_ToolbarInternalButtons = <TData extends Record<string, any>>({
15
15
  }: Props<TData>) => {
16
16
  const {
17
17
  options: {
18
+ columnFilterDisplayMode,
18
19
  enableColumnFilters,
19
20
  enableColumnOrdering,
21
+ enableColumnPinning,
20
22
  enableDensityToggle,
21
23
  enableFilters,
22
24
  enableFullScreenToggle,
23
25
  enableGlobalFilter,
24
26
  enableHiding,
25
- enableColumnPinning,
26
27
  initialState,
27
28
  renderToolbarInternalActions,
28
29
  },
@@ -45,9 +46,11 @@ export const MRT_ToolbarInternalButtons = <TData extends Record<string, any>>({
45
46
  !initialState?.showGlobalFilter && (
46
47
  <MRT_ToggleGlobalFilterButton table={table} />
47
48
  )}
48
- {enableFilters && enableColumnFilters && (
49
- <MRT_ToggleFiltersButton table={table} />
50
- )}
49
+ {enableFilters &&
50
+ enableColumnFilters &&
51
+ columnFilterDisplayMode !== 'popover' && (
52
+ <MRT_ToggleFiltersButton table={table} />
53
+ )}
51
54
  {(enableHiding || enableColumnOrdering || enableColumnPinning) && (
52
55
  <MRT_ShowHideColumnsButton table={table} />
53
56
  )}
@@ -1,15 +1,16 @@
1
1
  import Box from '@mui/material/Box';
2
2
  import Toolbar from '@mui/material/Toolbar';
3
- import useMediaQuery from '@mui/material/useMediaQuery';
4
3
  import { lighten } from '@mui/material/styles';
5
- import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
4
+ import { type Theme } from '@mui/material/styles';
5
+ import useMediaQuery from '@mui/material/useMediaQuery';
6
6
  import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
7
7
  import { MRT_TablePagination } from './MRT_TablePagination';
8
8
  import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
9
- import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
10
9
  import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone';
10
+ import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
11
+ import { parseFromValuesOrFunc } from '../column.utils';
12
+ import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
11
13
  import { type MRT_TableInstance } from '../types';
12
- import { type Theme } from '@mui/material/styles';
13
14
 
14
15
  export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
15
16
  alignItems: 'flex-start',
@@ -51,10 +52,7 @@ export const MRT_TopToolbar = <TData extends Record<string, any>>({
51
52
 
52
53
  const isMobile = useMediaQuery('(max-width:720px)');
53
54
 
54
- const toolbarProps =
55
- muiTopToolbarProps instanceof Function
56
- ? muiTopToolbarProps({ table })
57
- : muiTopToolbarProps;
55
+ const toolbarProps = parseFromValuesOrFunc(muiTopToolbarProps, { table });
58
56
 
59
57
  const stackAlertBanner =
60
58
  isMobile || !!renderTopToolbarCustomActions || showGlobalFilter;
@@ -70,16 +68,12 @@ export const MRT_TopToolbar = <TData extends Record<string, any>>({
70
68
  toolbarProps.ref.current = ref;
71
69
  }
72
70
  }}
73
- sx={(theme) =>
74
- ({
75
- position: isFullScreen ? 'sticky' : undefined,
76
- top: isFullScreen ? '0' : undefined,
77
- ...commonToolbarStyles({ theme }),
78
- ...(toolbarProps?.sx instanceof Function
79
- ? toolbarProps.sx(theme)
80
- : (toolbarProps?.sx as any)),
81
- } as any)
82
- }
71
+ sx={(theme) => ({
72
+ position: isFullScreen ? 'sticky' : undefined,
73
+ top: isFullScreen ? '0' : undefined,
74
+ ...commonToolbarStyles({ theme }),
75
+ ...(parseFromValuesOrFunc(toolbarProps?.sx, theme) as any),
76
+ })}
83
77
  >
84
78
  {positionToolbarAlertBanner === 'top' && (
85
79
  <MRT_ToolbarAlertBanner
@@ -128,8 +122,8 @@ export const MRT_TopToolbar = <TData extends Record<string, any>>({
128
122
  )}
129
123
  </Box>
130
124
  {enablePagination &&
131
- ['top', 'both'].includes(positionPagination ?? '') && (
132
- <MRT_TablePagination table={table} position="top" />
125
+ ['both', 'top'].includes(positionPagination ?? '') && (
126
+ <MRT_TablePagination position="top" table={table} />
133
127
  )}
134
128
  <MRT_LinearProgressBar isTopToolbar table={table} />
135
129
  </Toolbar>