material-react-table 1.4.0 → 1.4.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.
@@ -541,9 +541,10 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Om
541
541
  table: MRT_TableInstance<TData>;
542
542
  row: MRT_Row<TData>;
543
543
  }) => IconButtonProps);
544
- muiTableBodyRowProps?: TableRowProps | (({ table, row, }: {
545
- table: MRT_TableInstance<TData>;
544
+ muiTableBodyRowProps?: TableRowProps | (({ isDetailPanel, row, table, }: {
545
+ isDetailPanel?: boolean;
546
546
  row: MRT_Row<TData>;
547
+ table: MRT_TableInstance<TData>;
547
548
  }) => TableRowProps);
548
549
  muiTableContainerProps?: TableContainerProps | (({ table, }: {
549
550
  table: MRT_TableInstance<TData>;
@@ -1,8 +1,11 @@
1
- import { FC } from 'react';
1
+ import React, { FC } from 'react';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
2
3
  import type { MRT_Row, MRT_TableInstance } from '..';
3
4
  interface Props {
5
+ parentRowRef: React.RefObject<HTMLTableRowElement>;
4
6
  row: MRT_Row;
5
7
  table: MRT_TableInstance;
8
+ virtualRow?: VirtualItem;
6
9
  }
7
10
  export declare const MRT_TableDetailPanel: FC<Props>;
8
11
  export {};
@@ -12,5 +12,7 @@ import { MRT_TablePagination } from './toolbar/MRT_TablePagination';
12
12
  import { MRT_ToggleDensePaddingButton } from './buttons/MRT_ToggleDensePaddingButton';
13
13
  import { MRT_ToggleFiltersButton } from './buttons/MRT_ToggleFiltersButton';
14
14
  import { MRT_ToggleGlobalFilterButton } from './buttons/MRT_ToggleGlobalFilterButton';
15
+ import { MRT_ToolbarAlertBanner } from './toolbar/MRT_ToolbarAlertBanner';
16
+ import { MRT_ToolbarDropZone } from './toolbar/MRT_ToolbarDropZone';
15
17
  import { MRT_ToolbarInternalButtons } from './toolbar/MRT_ToolbarInternalButtons';
16
- export { MRT_CopyButton, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarInternalButtons, };
18
+ export { MRT_CopyButton, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_ShowHideColumnsButton, MRT_TablePagination, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, };
@@ -104,9 +104,10 @@ export declare const MRT_TableRoot: <TData extends Record<string, any> = {}>(pro
104
104
  table: MRT_TableInstance<TData>;
105
105
  row: MRT_Row<TData>;
106
106
  }) => import("@mui/material").IconButtonProps<"button", {}>) | undefined;
107
- muiTableBodyRowProps?: import("@mui/material").TableRowProps<"tr", {}> | (({ table, row, }: {
108
- table: MRT_TableInstance<TData>;
107
+ muiTableBodyRowProps?: import("@mui/material").TableRowProps<"tr", {}> | (({ isDetailPanel, row, table, }: {
108
+ isDetailPanel?: boolean | undefined;
109
109
  row: MRT_Row<TData>;
110
+ table: MRT_TableInstance<TData>;
110
111
  }) => import("@mui/material").TableRowProps<"tr", {}>) | undefined;
111
112
  muiTableContainerProps?: import("@mui/material").TableContainerProps<"div", {}> | (({ table, }: {
112
113
  table: MRT_TableInstance<TData>;
@@ -1,8 +1,8 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
2
  import { MRT_TableInstance } from '..';
3
- interface Props {
3
+ interface Props<TData extends Record<string, any> = {}> {
4
4
  stackAlertBanner: boolean;
5
- table: MRT_TableInstance;
5
+ table: MRT_TableInstance<TData>;
6
6
  }
7
- export declare const MRT_ToolbarAlertBanner: FC<Props>;
7
+ export declare const MRT_ToolbarAlertBanner: <TData extends Record<string, any> = {}>({ stackAlertBanner, table, }: Props<TData>) => JSX.Element;
8
8
  export {};
@@ -1,7 +1,7 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
2
  import { MRT_TableInstance } from '..';
3
- interface Props {
4
- table: MRT_TableInstance;
3
+ interface Props<TData extends Record<string, any> = {}> {
4
+ table: MRT_TableInstance<TData>;
5
5
  }
6
- export declare const MRT_ToolbarDropZone: FC<Props>;
6
+ export declare const MRT_ToolbarDropZone: <TData extends Record<string, any> = {}>({ table, }: Props<TData>) => JSX.Element;
7
7
  export {};
package/dist/index.d.ts CHANGED
@@ -664,9 +664,10 @@ type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Part
664
664
  table: MRT_TableInstance<TData>;
665
665
  row: MRT_Row<TData>;
666
666
  }) => IconButtonProps);
667
- muiTableBodyRowProps?: TableRowProps | (({ table, row, }: {
668
- table: MRT_TableInstance<TData>;
667
+ muiTableBodyRowProps?: TableRowProps | (({ isDetailPanel, row, table, }: {
668
+ isDetailPanel?: boolean;
669
669
  row: MRT_Row<TData>;
670
+ table: MRT_TableInstance<TData>;
670
671
  }) => TableRowProps);
671
672
  muiTableContainerProps?: TableContainerProps | (({ table, }: {
672
673
  table: MRT_TableInstance<TData>;
@@ -820,14 +821,14 @@ type MaterialReactTableProps<TData extends Record<string, any> = {}> = Omit<Part
820
821
  };
821
822
  declare const MaterialReactTable: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, layoutMode, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
822
823
 
823
- interface Props$9<TData extends Record<string, any> = {}> {
824
+ interface Props$b<TData extends Record<string, any> = {}> {
824
825
  cell: MRT_Cell<TData>;
825
826
  children: ReactNode;
826
827
  table: MRT_TableInstance<TData>;
827
828
  }
828
- declare const MRT_CopyButton: <TData extends Record<string, any> = {}>({ cell, children, table, }: Props$9<TData>) => JSX.Element;
829
+ declare const MRT_CopyButton: <TData extends Record<string, any> = {}>({ cell, children, table, }: Props$b<TData>) => JSX.Element;
829
830
 
830
- interface Props$8<TData extends Record<string, any> = {}> {
831
+ interface Props$a<TData extends Record<string, any> = {}> {
831
832
  anchorEl: HTMLElement | null;
832
833
  header?: MRT_Header<TData>;
833
834
  onSelect?: () => void;
@@ -835,47 +836,58 @@ interface Props$8<TData extends Record<string, any> = {}> {
835
836
  setFilterValue?: (filterValue: any) => void;
836
837
  table: MRT_TableInstance<TData>;
837
838
  }
838
- declare const MRT_FilterOptionMenu: <TData extends Record<string, any> = {}>({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }: Props$8<TData>) => JSX.Element;
839
+ declare const MRT_FilterOptionMenu: <TData extends Record<string, any> = {}>({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }: Props$a<TData>) => JSX.Element;
840
+
841
+ interface Props$9<TData extends Record<string, any> = {}> extends IconButtonProps {
842
+ table: MRT_TableInstance<TData>;
843
+ }
844
+ declare const MRT_FullScreenToggleButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$9<TData>) => JSX.Element;
845
+
846
+ interface Props$8<TData extends Record<string, any> = {}> {
847
+ table: MRT_TableInstance<TData>;
848
+ }
849
+ declare const MRT_GlobalFilterTextField: <TData extends Record<string, any> = {}>({ table, }: Props$8<TData>) => JSX.Element;
839
850
 
840
851
  interface Props$7<TData extends Record<string, any> = {}> extends IconButtonProps {
841
852
  table: MRT_TableInstance<TData>;
842
853
  }
843
- declare const MRT_FullScreenToggleButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$7<TData>) => JSX.Element;
854
+ declare const MRT_ShowHideColumnsButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$7<TData>) => JSX.Element;
844
855
 
845
856
  interface Props$6<TData extends Record<string, any> = {}> {
857
+ position: 'top' | 'bottom';
846
858
  table: MRT_TableInstance<TData>;
847
859
  }
848
- declare const MRT_GlobalFilterTextField: <TData extends Record<string, any> = {}>({ table, }: Props$6<TData>) => JSX.Element;
860
+ declare const MRT_TablePagination: <TData extends Record<string, any> = {}>({ table, position, }: Props$6<TData>) => JSX.Element;
849
861
 
850
862
  interface Props$5<TData extends Record<string, any> = {}> extends IconButtonProps {
851
863
  table: MRT_TableInstance<TData>;
852
864
  }
853
- declare const MRT_ShowHideColumnsButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$5<TData>) => JSX.Element;
865
+ declare const MRT_ToggleDensePaddingButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$5<TData>) => JSX.Element;
854
866
 
855
- interface Props$4<TData extends Record<string, any> = {}> {
856
- position: 'top' | 'bottom';
867
+ interface Props$4<TData extends Record<string, any> = {}> extends IconButtonProps {
857
868
  table: MRT_TableInstance<TData>;
858
869
  }
859
- declare const MRT_TablePagination: <TData extends Record<string, any> = {}>({ table, position, }: Props$4<TData>) => JSX.Element;
870
+ declare const MRT_ToggleFiltersButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$4<TData>) => JSX.Element;
860
871
 
861
872
  interface Props$3<TData extends Record<string, any> = {}> extends IconButtonProps {
862
873
  table: MRT_TableInstance<TData>;
863
874
  }
864
- declare const MRT_ToggleDensePaddingButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$3<TData>) => JSX.Element;
875
+ declare const MRT_ToggleGlobalFilterButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$3<TData>) => JSX.Element;
865
876
 
866
- interface Props$2<TData extends Record<string, any> = {}> extends IconButtonProps {
877
+ interface Props$2<TData extends Record<string, any> = {}> {
878
+ stackAlertBanner: boolean;
867
879
  table: MRT_TableInstance<TData>;
868
880
  }
869
- declare const MRT_ToggleFiltersButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$2<TData>) => JSX.Element;
881
+ declare const MRT_ToolbarAlertBanner: <TData extends Record<string, any> = {}>({ stackAlertBanner, table, }: Props$2<TData>) => JSX.Element;
870
882
 
871
- interface Props$1<TData extends Record<string, any> = {}> extends IconButtonProps {
883
+ interface Props$1<TData extends Record<string, any> = {}> {
872
884
  table: MRT_TableInstance<TData>;
873
885
  }
874
- declare const MRT_ToggleGlobalFilterButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props$1<TData>) => JSX.Element;
886
+ declare const MRT_ToolbarDropZone: <TData extends Record<string, any> = {}>({ table, }: Props$1<TData>) => JSX.Element;
875
887
 
876
888
  interface Props<TData extends Record<string, any> = {}> {
877
889
  table: MRT_TableInstance<TData>;
878
890
  }
879
891
  declare const MRT_ToolbarInternalButtons: <TData extends Record<string, any> = {}>({ table, }: Props<TData>) => JSX.Element;
880
892
 
881
- export { DensityState, MRT_AggregationFn, MRT_AggregationOption, MRT_Cell, MRT_Column, MRT_ColumnDef, MRT_CopyButton, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterFn, MRT_FilterOption, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_Header, MRT_HeaderGroup, MRT_Icons, MRT_InternalFilterOption, MRT_Localization, MRT_Row, MRT_RowModel, MRT_ShowHideColumnsButton, MRT_SortingFn, MRT_SortingOption, MRT_TableInstance, MRT_TablePagination, MRT_TableState, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarInternalButtons, MaterialReactTableProps, MaterialReactTable as default };
893
+ export { DensityState, MRT_AggregationFn, MRT_AggregationOption, MRT_Cell, MRT_Column, MRT_ColumnDef, MRT_CopyButton, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterFn, MRT_FilterOption, MRT_FilterOptionMenu, MRT_FullScreenToggleButton, MRT_GlobalFilterTextField, MRT_Header, MRT_HeaderGroup, MRT_Icons, MRT_InternalFilterOption, MRT_Localization, MRT_Row, MRT_RowModel, MRT_ShowHideColumnsButton, MRT_SortingFn, MRT_SortingOption, MRT_TableInstance, MRT_TablePagination, MRT_TableState, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleGlobalFilterButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MaterialReactTableProps, MaterialReactTable as default };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.4.0",
2
+ "version": "1.4.2",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material UI V5 implementation of TanStack React Table V8, written from the ground up in TypeScript.",
@@ -813,11 +813,13 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
813
813
  muiTableBodyRowProps?:
814
814
  | TableRowProps
815
815
  | (({
816
- table,
816
+ isDetailPanel = false,
817
817
  row,
818
+ table,
818
819
  }: {
819
- table: MRT_TableInstance<TData>;
820
+ isDetailPanel?: boolean;
820
821
  row: MRT_Row<TData>;
822
+ table: MRT_TableInstance<TData>;
821
823
  }) => TableRowProps);
822
824
  muiTableContainerProps?:
823
825
  | TableContainerProps
@@ -87,7 +87,7 @@ export const MRT_TableBody: FC<Props> = ({ table }) => {
87
87
  density === 'compact' ? 37 : density === 'comfortable' ? 58 : 73,
88
88
  getScrollElement: () => tableContainerRef.current,
89
89
  measureElement: (element) => element?.getBoundingClientRect().height,
90
- overscan: 10,
90
+ overscan: 4,
91
91
  ...vProps,
92
92
  })
93
93
  : undefined;
@@ -104,63 +104,65 @@ export const MRT_TableBody: FC<Props> = ({ table }) => {
104
104
  sx={(theme) => ({
105
105
  display: layoutMode === 'grid' ? 'grid' : 'table-row-group',
106
106
  height: virtualizer ? `${virtualizer.getTotalSize()}px` : 'inherit',
107
+ minHeight: !rows.length ? '100px' : undefined,
107
108
  position: 'relative',
108
109
  ...(tableBodyProps?.sx instanceof Function
109
110
  ? tableBodyProps?.sx(theme)
110
111
  : (tableBodyProps?.sx as any)),
111
112
  })}
112
113
  >
113
- {tableBodyProps?.children ?? !rows.length ? (
114
- <tr style={{ display: layoutMode === 'grid' ? 'grid' : 'table-row' }}>
115
- <td
116
- colSpan={table.getVisibleLeafColumns().length}
117
- style={{ display: layoutMode === 'grid' ? 'grid' : 'table-cell' }}
118
- >
119
- <Typography
120
- sx={{
121
- color: 'text.secondary',
122
- fontStyle: 'italic',
123
- maxWidth: `min(100vw, ${
124
- tablePaperRef.current?.clientWidth ?? 360
125
- }px)`,
126
- py: '2rem',
127
- textAlign: 'center',
128
- width: '100%',
129
- }}
114
+ {tableBodyProps?.children ??
115
+ (!rows.length ? (
116
+ <tr style={{ display: layoutMode === 'grid' ? 'grid' : 'table-row' }}>
117
+ <td
118
+ colSpan={table.getVisibleLeafColumns().length}
119
+ style={{ display: layoutMode === 'grid' ? 'grid' : 'table-cell' }}
130
120
  >
131
- {globalFilter || columnFilters.length
132
- ? localization.noResultsFound
133
- : localization.noRecordsToDisplay}
134
- </Typography>
135
- </td>
136
- </tr>
137
- ) : (
138
- <>
139
- {(virtualRows ?? rows).map((rowOrVirtualRow, rowIndex) => {
140
- const row = virtualizer
141
- ? rows[rowOrVirtualRow.index]
142
- : (rowOrVirtualRow as MRT_Row);
143
- const props = {
144
- key: row.id,
145
- measureElement: virtualizer
146
- ? virtualizer.measureElement
147
- : undefined,
148
- numRows: rows.length,
149
- row,
150
- rowIndex: virtualizer ? rowOrVirtualRow.index : rowIndex,
151
- table,
152
- virtualRow: virtualizer
153
- ? (rowOrVirtualRow as VirtualItem)
154
- : undefined,
155
- };
156
- return memoMode === 'rows' ? (
157
- <Memo_MRT_TableBodyRow {...props} />
158
- ) : (
159
- <MRT_TableBodyRow {...props} />
160
- );
161
- })}
162
- </>
163
- )}
121
+ <Typography
122
+ sx={{
123
+ color: 'text.secondary',
124
+ fontStyle: 'italic',
125
+ maxWidth: `min(100vw, ${
126
+ tablePaperRef.current?.clientWidth ?? 360
127
+ }px)`,
128
+ py: '2rem',
129
+ textAlign: 'center',
130
+ width: '100%',
131
+ }}
132
+ >
133
+ {globalFilter || columnFilters.length
134
+ ? localization.noResultsFound
135
+ : localization.noRecordsToDisplay}
136
+ </Typography>
137
+ </td>
138
+ </tr>
139
+ ) : (
140
+ <>
141
+ {(virtualRows ?? rows).map((rowOrVirtualRow, rowIndex) => {
142
+ const row = virtualizer
143
+ ? rows[rowOrVirtualRow.index]
144
+ : (rowOrVirtualRow as MRT_Row);
145
+ const props = {
146
+ key: row.id,
147
+ measureElement: virtualizer
148
+ ? virtualizer.measureElement
149
+ : undefined,
150
+ numRows: rows.length,
151
+ row,
152
+ rowIndex: virtualizer ? rowOrVirtualRow.index : rowIndex,
153
+ table,
154
+ virtualRow: virtualizer
155
+ ? (rowOrVirtualRow as VirtualItem)
156
+ : undefined,
157
+ };
158
+ return memoMode === 'rows' ? (
159
+ <Memo_MRT_TableBodyRow {...props} />
160
+ ) : (
161
+ <MRT_TableBodyRow {...props} />
162
+ );
163
+ })}
164
+ </>
165
+ ))}
164
166
  </TableBody>
165
167
  );
166
168
  };
@@ -131,7 +131,12 @@ export const MRT_TableBodyRow: FC<Props> = ({
131
131
  })}
132
132
  </TableRow>
133
133
  {renderDetailPanel && !row.getIsGrouped() && (
134
- <MRT_TableDetailPanel row={row} table={table} />
134
+ <MRT_TableDetailPanel
135
+ parentRowRef={rowRef}
136
+ row={row}
137
+ table={table}
138
+ virtualRow={virtualRow}
139
+ />
135
140
  )}
136
141
  </>
137
142
  );
@@ -2,14 +2,23 @@ import React, { FC } from 'react';
2
2
  import Collapse from '@mui/material/Collapse';
3
3
  import TableCell from '@mui/material/TableCell';
4
4
  import TableRow from '@mui/material/TableRow';
5
+ import { lighten } from '@mui/material/styles';
6
+ import type { VirtualItem } from '@tanstack/react-virtual';
5
7
  import type { MRT_Row, MRT_TableInstance } from '..';
6
8
 
7
9
  interface Props {
10
+ parentRowRef: React.RefObject<HTMLTableRowElement>;
8
11
  row: MRT_Row;
9
12
  table: MRT_TableInstance;
13
+ virtualRow?: VirtualItem;
10
14
  }
11
15
 
12
- export const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {
16
+ export const MRT_TableDetailPanel: FC<Props> = ({
17
+ parentRowRef,
18
+ row,
19
+ table,
20
+ virtualRow,
21
+ }) => {
13
22
  const {
14
23
  getVisibleLeafColumns,
15
24
  getState,
@@ -24,7 +33,7 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {
24
33
 
25
34
  const tableRowProps =
26
35
  muiTableBodyRowProps instanceof Function
27
- ? muiTableBodyRowProps({ row, table })
36
+ ? muiTableBodyRowProps({ isDetailPanel: true, row, table })
28
37
  : muiTableBodyRowProps;
29
38
 
30
39
  const tableCellProps =
@@ -34,16 +43,34 @@ export const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {
34
43
 
35
44
  return (
36
45
  <TableRow
37
- sx={{
38
- display: layoutMode === 'grid' ? 'flex' : 'table-row',
39
- }}
46
+ className="Mui-TableBodyCell-DetailPanel"
40
47
  {...tableRowProps}
48
+ sx={(theme) => ({
49
+ display: layoutMode === 'grid' ? 'flex' : 'table-row',
50
+ position: virtualRow ? 'absolute' : undefined,
51
+ top: virtualRow
52
+ ? `${parentRowRef.current?.getBoundingClientRect()?.height}px`
53
+ : undefined,
54
+ transform: virtualRow
55
+ ? `translateY(${virtualRow?.start}px)`
56
+ : undefined,
57
+ width: '100%',
58
+ zIndex: virtualRow ? 2 : undefined,
59
+ ...(tableRowProps?.sx instanceof Function
60
+ ? tableRowProps.sx(theme)
61
+ : (tableRowProps?.sx as any)),
62
+ })}
41
63
  >
42
64
  <TableCell
65
+ className="Mui-TableBodyCell-DetailPanel"
43
66
  colSpan={getVisibleLeafColumns().length}
44
67
  {...tableCellProps}
45
68
  sx={(theme) => ({
69
+ backgroundColor: virtualRow
70
+ ? lighten(theme.palette.background.default, 0.06)
71
+ : undefined,
46
72
  borderBottom: !row.getIsExpanded() ? 'none' : undefined,
73
+ display: layoutMode === 'grid' ? 'flex' : 'table-cell',
47
74
  pb: row.getIsExpanded() ? '1rem' : 0,
48
75
  pt: row.getIsExpanded() ? '1rem' : 0,
49
76
  transition: 'all 150ms ease-in-out',
package/src/index.tsx CHANGED
@@ -14,6 +14,8 @@ import { MRT_TablePagination } from './toolbar/MRT_TablePagination';
14
14
  import { MRT_ToggleDensePaddingButton } from './buttons/MRT_ToggleDensePaddingButton';
15
15
  import { MRT_ToggleFiltersButton } from './buttons/MRT_ToggleFiltersButton';
16
16
  import { MRT_ToggleGlobalFilterButton } from './buttons/MRT_ToggleGlobalFilterButton';
17
+ import { MRT_ToolbarAlertBanner } from './toolbar/MRT_ToolbarAlertBanner';
18
+ import { MRT_ToolbarDropZone } from './toolbar/MRT_ToolbarDropZone';
17
19
  import { MRT_ToolbarInternalButtons } from './toolbar/MRT_ToolbarInternalButtons';
18
20
 
19
21
  export {
@@ -26,5 +28,7 @@ export {
26
28
  MRT_ToggleDensePaddingButton,
27
29
  MRT_ToggleFiltersButton,
28
30
  MRT_ToggleGlobalFilterButton,
31
+ MRT_ToolbarAlertBanner,
32
+ MRT_ToolbarDropZone,
29
33
  MRT_ToolbarInternalButtons,
30
34
  };
@@ -1,4 +1,4 @@
1
- import React, { FC, Fragment } from 'react';
1
+ import React, { Fragment } from 'react';
2
2
  import Alert from '@mui/material/Alert';
3
3
  import AlertTitle from '@mui/material/AlertTitle';
4
4
  import Box from '@mui/material/Box';
@@ -6,15 +6,15 @@ import Chip from '@mui/material/Chip';
6
6
  import Collapse from '@mui/material/Collapse';
7
7
  import { MRT_TableInstance } from '..';
8
8
 
9
- interface Props {
9
+ interface Props<TData extends Record<string, any> = {}> {
10
10
  stackAlertBanner: boolean;
11
- table: MRT_TableInstance;
11
+ table: MRT_TableInstance<TData>;
12
12
  }
13
13
 
14
- export const MRT_ToolbarAlertBanner: FC<Props> = ({
14
+ export const MRT_ToolbarAlertBanner = <TData extends Record<string, any> = {}>({
15
15
  stackAlertBanner,
16
16
  table,
17
- }) => {
17
+ }: Props<TData>) => {
18
18
  const {
19
19
  getPrePaginationRowModel,
20
20
  getSelectedRowModel,
@@ -1,15 +1,17 @@
1
- import React, { DragEvent, FC } from 'react';
1
+ import React, { DragEvent } from 'react';
2
2
  import { alpha } from '@mui/material/styles';
3
3
  import Box from '@mui/material/Box';
4
4
  import Fade from '@mui/material/Fade';
5
5
  import Typography from '@mui/material/Typography';
6
6
  import { MRT_TableInstance } from '..';
7
7
 
8
- interface Props {
9
- table: MRT_TableInstance;
8
+ interface Props<TData extends Record<string, any> = {}> {
9
+ table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_ToolbarDropZone: FC<Props> = ({ table }) => {
12
+ export const MRT_ToolbarDropZone = <TData extends Record<string, any> = {}>({
13
+ table,
14
+ }: Props<TData>) => {
13
15
  const {
14
16
  getState,
15
17
  options: { enableGrouping, localization },