material-react-table 2.0.4 → 2.0.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 (128) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.esm.js +27 -45
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +27 -45
  5. package/dist/index.js.map +1 -1
  6. package/dist/types/MaterialReactTable.d.ts +7 -0
  7. package/dist/types/aggregationFns.d.ts +11 -0
  8. package/dist/types/body/MRT_TableBody.d.ts +13 -0
  9. package/dist/types/body/MRT_TableBodyCell.d.ts +15 -0
  10. package/dist/types/body/MRT_TableBodyCellValue.d.ts +8 -0
  11. package/dist/types/body/MRT_TableBodyRow.d.ts +18 -0
  12. package/dist/types/body/MRT_TableBodyRowGrabHandle.d.ts +10 -0
  13. package/dist/types/body/MRT_TableBodyRowPinButton.d.ts +8 -0
  14. package/dist/types/body/MRT_TableDetailPanel.d.ts +13 -0
  15. package/dist/types/body/index.d.ts +7 -0
  16. package/dist/types/buttons/MRT_ColumnPinningButtons.d.ts +8 -0
  17. package/dist/types/buttons/MRT_CopyButton.d.ts +8 -0
  18. package/dist/types/buttons/MRT_EditActionButtons.d.ts +9 -0
  19. package/dist/types/buttons/MRT_ExpandAllButton.d.ts +7 -0
  20. package/dist/types/buttons/MRT_ExpandButton.d.ts +8 -0
  21. package/dist/types/buttons/MRT_GrabHandleButton.d.ts +12 -0
  22. package/dist/types/buttons/MRT_RowPinButton.d.ts +10 -0
  23. package/dist/types/buttons/MRT_ShowHideColumnsButton.d.ts +7 -0
  24. package/dist/types/buttons/MRT_ToggleDensePaddingButton.d.ts +7 -0
  25. package/dist/types/buttons/MRT_ToggleFiltersButton.d.ts +7 -0
  26. package/dist/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  27. package/dist/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +7 -0
  28. package/dist/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +9 -0
  29. package/dist/types/buttons/index.d.ts +13 -0
  30. package/dist/types/column.utils.d.ts +127 -0
  31. package/dist/types/filterFns.d.ts +69 -0
  32. package/dist/types/footer/MRT_TableFooter.d.ts +11 -0
  33. package/dist/types/footer/MRT_TableFooterCell.d.ts +8 -0
  34. package/dist/types/footer/MRT_TableFooterRow.d.ts +12 -0
  35. package/dist/types/footer/index.d.ts +3 -0
  36. package/dist/types/head/MRT_TableHead.d.ts +11 -0
  37. package/dist/types/head/MRT_TableHeadCell.d.ts +8 -0
  38. package/dist/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +8 -0
  39. package/dist/types/head/MRT_TableHeadCellFilterContainer.d.ts +8 -0
  40. package/dist/types/head/MRT_TableHeadCellFilterLabel.d.ts +8 -0
  41. package/dist/types/head/MRT_TableHeadCellGrabHandle.d.ts +10 -0
  42. package/dist/types/head/MRT_TableHeadCellResizeHandle.d.ts +8 -0
  43. package/dist/types/head/MRT_TableHeadCellSortLabel.d.ts +8 -0
  44. package/dist/types/head/MRT_TableHeadRow.d.ts +12 -0
  45. package/dist/types/head/index.d.ts +9 -0
  46. package/dist/types/hooks/index.d.ts +4 -0
  47. package/dist/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  48. package/dist/types/hooks/useMRT_Effects.d.ts +2 -0
  49. package/dist/types/hooks/useMRT_TableInstance.d.ts +2 -0
  50. package/dist/types/hooks/useMRT_TableOptions.d.ts +22 -0
  51. package/dist/types/icons.d.ts +36 -0
  52. package/dist/types/index.d.ts +18 -0
  53. package/dist/types/inputs/MRT_EditCellTextField.d.ts +8 -0
  54. package/dist/types/inputs/MRT_FilterCheckbox.d.ts +8 -0
  55. package/dist/types/inputs/MRT_FilterRangeFields.d.ts +8 -0
  56. package/dist/types/inputs/MRT_FilterRangeSlider.d.ts +8 -0
  57. package/dist/types/inputs/MRT_FilterTextField.d.ts +9 -0
  58. package/dist/types/inputs/MRT_GlobalFilterTextField.d.ts +7 -0
  59. package/dist/types/inputs/MRT_SelectCheckbox.d.ts +9 -0
  60. package/dist/types/inputs/index.d.ts +7 -0
  61. package/dist/types/locales/am.d.ts +2 -0
  62. package/dist/types/locales/ar.d.ts +2 -0
  63. package/dist/types/locales/az.d.ts +2 -0
  64. package/dist/types/locales/bg.d.ts +2 -0
  65. package/dist/types/locales/cs.d.ts +2 -0
  66. package/dist/types/locales/da.d.ts +2 -0
  67. package/dist/types/locales/de.d.ts +2 -0
  68. package/dist/types/locales/en.d.ts +2 -0
  69. package/dist/types/locales/es.d.ts +2 -0
  70. package/dist/types/locales/et.d.ts +2 -0
  71. package/dist/types/locales/fa.d.ts +2 -0
  72. package/dist/types/locales/fi.d.ts +2 -0
  73. package/dist/types/locales/fr.d.ts +2 -0
  74. package/dist/types/locales/hu.d.ts +2 -0
  75. package/dist/types/locales/hy.d.ts +2 -0
  76. package/dist/types/locales/id.d.ts +2 -0
  77. package/dist/types/locales/it.d.ts +2 -0
  78. package/dist/types/locales/ja.d.ts +2 -0
  79. package/dist/types/locales/ko.d.ts +2 -0
  80. package/dist/types/locales/nl.d.ts +2 -0
  81. package/dist/types/locales/no.d.ts +2 -0
  82. package/dist/types/locales/np.d.ts +2 -0
  83. package/dist/types/locales/pl.d.ts +2 -0
  84. package/dist/types/locales/pt-BR.d.ts +2 -0
  85. package/dist/types/locales/pt.d.ts +2 -0
  86. package/dist/types/locales/ro.d.ts +2 -0
  87. package/dist/types/locales/ru.d.ts +2 -0
  88. package/dist/types/locales/sk.d.ts +2 -0
  89. package/dist/types/locales/sr-Cyrl-RS.d.ts +2 -0
  90. package/dist/types/locales/sr-Latn-RS.d.ts +2 -0
  91. package/dist/types/locales/sv.d.ts +2 -0
  92. package/dist/types/locales/tr.d.ts +2 -0
  93. package/dist/types/locales/uk.d.ts +2 -0
  94. package/dist/types/locales/vi.d.ts +2 -0
  95. package/dist/types/locales/zh-Hans.d.ts +2 -0
  96. package/dist/types/locales/zh-Hant.d.ts +2 -0
  97. package/dist/types/menus/MRT_ColumnActionMenu.d.ts +20 -0
  98. package/dist/types/menus/MRT_FilterOptionMenu.d.ts +13 -0
  99. package/dist/types/menus/MRT_RowActionMenu.d.ts +12 -0
  100. package/dist/types/menus/MRT_ShowHideColumnsMenu.d.ts +10 -0
  101. package/dist/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +12 -0
  102. package/dist/types/menus/index.d.ts +5 -0
  103. package/dist/types/modals/MRT_EditRowModal.d.ts +8 -0
  104. package/dist/types/modals/index.d.ts +1 -0
  105. package/dist/types/sortingFns.d.ts +12 -0
  106. package/dist/types/style.utils.d.ts +32 -0
  107. package/dist/types/table/MRT_Table.d.ts +7 -0
  108. package/dist/types/table/MRT_TableContainer.d.ts +7 -0
  109. package/dist/types/table/MRT_TableLoadingOverlay.d.ts +7 -0
  110. package/dist/types/table/MRT_TablePaper.d.ts +7 -0
  111. package/dist/types/table/index.d.ts +5 -0
  112. package/dist/types/toolbar/MRT_BottomToolbar.d.ts +7 -0
  113. package/dist/types/toolbar/MRT_LinearProgressBar.d.ts +8 -0
  114. package/dist/types/toolbar/MRT_TablePagination.d.ts +14 -0
  115. package/dist/types/toolbar/MRT_ToolbarAlertBanner.d.ts +8 -0
  116. package/dist/types/toolbar/MRT_ToolbarDropZone.d.ts +7 -0
  117. package/dist/types/toolbar/MRT_ToolbarInternalButtons.d.ts +7 -0
  118. package/dist/types/toolbar/MRT_TopToolbar.d.ts +6 -0
  119. package/dist/types/toolbar/index.d.ts +7 -0
  120. package/dist/types/types.d.ts +854 -0
  121. package/dist/types/useMaterialReactTable.d.ts +2 -0
  122. package/package.json +32 -32
  123. package/src/body/MRT_TableBody.tsx +18 -23
  124. package/src/body/MRT_TableBodyCellValue.tsx +1 -1
  125. package/src/head/MRT_TableHeadCellSortLabel.tsx +15 -9
  126. package/src/inputs/MRT_GlobalFilterTextField.tsx +10 -10
  127. package/src/toolbar/MRT_TablePagination.tsx +1 -0
  128. package/src/types.ts +2 -0
@@ -0,0 +1,2 @@
1
+ import { type MRT_RowData, type MRT_TableInstance, type MRT_TableOptions } from './types';
2
+ export declare const useMaterialReactTable: <TData extends MRT_RowData>(tableOptions: MRT_TableOptions<TData>) => MRT_TableInstance<TData>;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.4",
2
+ "version": "2.0.5",
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.",
@@ -35,11 +35,11 @@
35
35
  "size-limit": [
36
36
  {
37
37
  "path": "dist/index.js",
38
- "limit": "59 KB"
38
+ "limit": "53 KB"
39
39
  },
40
40
  {
41
41
  "path": "dist/index.esm.js",
42
- "limit": "55 KB"
42
+ "limit": "50 KB"
43
43
  }
44
44
  ],
45
45
  "engines": {
@@ -61,34 +61,34 @@
61
61
  "storybook:dev": "storybook dev -p 6006"
62
62
  },
63
63
  "devDependencies": {
64
- "@babel/core": "^7.23.2",
65
- "@babel/preset-react": "^7.22.15",
64
+ "@babel/core": "^7.23.5",
65
+ "@babel/preset-react": "^7.23.3",
66
66
  "@emotion/react": "^11.11.1",
67
67
  "@emotion/styled": "^11.11.0",
68
- "@faker-js/faker": "^8.2.0",
69
- "@mui/icons-material": "^5.14.16",
70
- "@mui/material": "^5.14.17",
71
- "@mui/x-date-pickers": "^6.18.0",
68
+ "@faker-js/faker": "^8.3.1",
69
+ "@mui/icons-material": "^5.14.19",
70
+ "@mui/material": "^5.14.19",
71
+ "@mui/x-date-pickers": "^6.18.3",
72
72
  "@rollup/plugin-typescript": "^11.1.5",
73
- "@size-limit/preset-small-lib": "^10.0.2",
74
- "@storybook/addon-a11y": "^7.5.3",
75
- "@storybook/addon-essentials": "^7.5.3",
76
- "@storybook/addon-interactions": "^7.5.3",
77
- "@storybook/addon-links": "^7.5.3",
78
- "@storybook/addon-storysource": "^7.5.3",
79
- "@storybook/blocks": "^7.5.3",
80
- "@storybook/react": "^7.5.3",
81
- "@storybook/react-vite": "^7.5.3",
73
+ "@size-limit/preset-small-lib": "^11.0.0",
74
+ "@storybook/addon-a11y": "^7.6.3",
75
+ "@storybook/addon-essentials": "^7.6.3",
76
+ "@storybook/addon-interactions": "^7.6.3",
77
+ "@storybook/addon-links": "^7.6.3",
78
+ "@storybook/addon-storysource": "^7.6.3",
79
+ "@storybook/blocks": "^7.6.3",
80
+ "@storybook/react": "^7.6.3",
81
+ "@storybook/react-vite": "^7.6.3",
82
82
  "@storybook/testing-library": "^0.2.2",
83
- "@types/node": "^20.8.10",
84
- "@types/react": "^18.2.36",
85
- "@types/react-dom": "^18.2.14",
86
- "@typescript-eslint/eslint-plugin": "^6.10.0",
87
- "@typescript-eslint/parser": "^6.10.0",
88
- "@vitejs/plugin-react": "^4.1.1",
89
- "eslint": "^8.53.0",
83
+ "@types/node": "^20.10.3",
84
+ "@types/react": "^18.2.42",
85
+ "@types/react-dom": "^18.2.17",
86
+ "@typescript-eslint/eslint-plugin": "^6.13.2",
87
+ "@typescript-eslint/parser": "^6.13.2",
88
+ "@vitejs/plugin-react": "^4.2.1",
89
+ "eslint": "^8.55.0",
90
90
  "eslint-plugin-mui-path-imports": "^0.0.15",
91
- "eslint-plugin-perfectionist": "^2.2.0",
91
+ "eslint-plugin-perfectionist": "^2.5.0",
92
92
  "prop-types": "^15.8.1",
93
93
  "react": "^18.2.0",
94
94
  "react-dom": "^18.2.0",
@@ -96,12 +96,12 @@
96
96
  "rollup": "^2.79.1",
97
97
  "rollup-plugin-dts": "^6.1.0",
98
98
  "rollup-plugin-peer-deps-external": "^2.2.4",
99
- "size-limit": "^10.0.2",
100
- "storybook": "^7.5.3",
101
- "storybook-dark-mode": "^3.0.1",
99
+ "size-limit": "^11.0.0",
100
+ "storybook": "^7.6.3",
101
+ "storybook-dark-mode": "^3.0.3",
102
102
  "tslib": "^2.6.2",
103
- "typescript": "^5.2.2",
104
- "vite": "^4.5.0"
103
+ "typescript": "^5.3.2",
104
+ "vite": "^5.0.5"
105
105
  },
106
106
  "peerDependencies": {
107
107
  "@emotion/react": ">=11.11",
@@ -115,7 +115,7 @@
115
115
  "dependencies": {
116
116
  "@tanstack/match-sorter-utils": "8.8.4",
117
117
  "@tanstack/react-table": "8.10.7",
118
- "@tanstack/react-virtual": "3.0.0-beta.68",
118
+ "@tanstack/react-virtual": "3.0.1",
119
119
  "highlight-words": "1.2.2"
120
120
  }
121
121
  }
@@ -186,6 +186,15 @@ export const MRT_TableBody = <TData extends MRT_RowData>({
186
186
  ? rowVirtualizer.getVirtualItems()
187
187
  : undefined;
188
188
 
189
+ const commonRowProps = {
190
+ columnVirtualizer,
191
+ numRows: rows.length,
192
+ table,
193
+ virtualColumns,
194
+ virtualPaddingLeft,
195
+ virtualPaddingRight,
196
+ };
197
+
189
198
  return (
190
199
  <>
191
200
  {!rowPinningDisplayMode?.includes('sticky') &&
@@ -202,15 +211,9 @@ export const MRT_TableBody = <TData extends MRT_RowData>({
202
211
  >
203
212
  {getTopRows().map((row, rowIndex) => {
204
213
  const props = {
205
- columnVirtualizer,
206
- measureElement: rowVirtualizer?.measureElement,
207
- numRows: rows.length,
214
+ ...commonRowProps,
208
215
  row,
209
216
  rowIndex,
210
- table,
211
- virtualColumns,
212
- virtualPaddingLeft,
213
- virtualPaddingRight,
214
217
  };
215
218
  return memoMode === 'rows' ? (
216
219
  <Memo_MRT_TableBodyRow key={row.id} {...props} />
@@ -275,24 +278,22 @@ export const MRT_TableBody = <TData extends MRT_RowData>({
275
278
  ? rows[rowOrVirtualRow.index]
276
279
  : (rowOrVirtualRow as MRT_Row<TData>);
277
280
  const props = {
278
- columnVirtualizer,
281
+ ...commonRowProps,
279
282
  measureElement: rowVirtualizer?.measureElement,
280
- numRows: rows.length,
281
283
  pinnedRowIds,
282
284
  row,
283
285
  rowIndex: rowVirtualizer ? rowOrVirtualRow.index : rowIndex,
284
- table,
285
- virtualColumns,
286
- virtualPaddingLeft,
287
- virtualPaddingRight,
288
286
  virtualRow: rowVirtualizer
289
287
  ? (rowOrVirtualRow as VirtualItem)
290
288
  : undefined,
291
289
  };
292
290
  return memoMode === 'rows' ? (
293
- <Memo_MRT_TableBodyRow key={row.id} {...props} />
291
+ <Memo_MRT_TableBodyRow
292
+ key={`${row.id}${row.index}`}
293
+ {...props}
294
+ />
294
295
  ) : (
295
- <MRT_TableBodyRow key={row.id} {...props} />
296
+ <MRT_TableBodyRow key={`${row.id}${row.index}`} {...props} />
296
297
  );
297
298
  })}
298
299
  </>
@@ -312,18 +313,12 @@ export const MRT_TableBody = <TData extends MRT_RowData>({
312
313
  >
313
314
  {getBottomRows().map((row, rowIndex) => {
314
315
  const props = {
315
- columnVirtualizer,
316
- measureElement: rowVirtualizer?.measureElement,
317
- numRows: rows.length,
316
+ ...commonRowProps,
318
317
  row,
319
318
  rowIndex,
320
- table,
321
- virtualColumns,
322
- virtualPaddingLeft,
323
- virtualPaddingRight,
324
319
  };
325
320
  return memoMode === 'rows' ? (
326
- <Memo_MRT_TableBodyRow key={row.id} {...props} />
321
+ <Memo_MRT_TableBodyRow key={`${row.id}`} {...props} />
327
322
  ) : (
328
323
  <MRT_TableBodyRow key={row.id} {...props} />
329
324
  );
@@ -60,7 +60,7 @@ export const MRT_TableBodyCellValue = <TData extends MRT_RowData>({
60
60
  allowedTypes.includes(typeof renderedCellValue) &&
61
61
  ((filterValue &&
62
62
  allowedTypes.includes(typeof filterValue) &&
63
- columnDef.filterVariant === 'text') ||
63
+ ['autocomplete', 'text'].includes(columnDef.filterVariant!)) ||
64
64
  (globalFilter &&
65
65
  allowedTypes.includes(typeof globalFilter) &&
66
66
  column.getCanGlobalFilter()))
@@ -37,12 +37,19 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
37
37
  isLoading || showSkeletons
38
38
  ? ''
39
39
  : column.getIsSorted()
40
- ? column.getIsSorted() === 'desc'
41
- ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)
42
- : localization.sortedByColumnAsc.replace('{column}', columnDef.header)
43
- : column.getNextSortingOrder() === 'desc'
44
- ? localization.sortByColumnDesc.replace('{column}', columnDef.header)
45
- : localization.sortByColumnAsc.replace('{column}', columnDef.header);
40
+ ? column.getIsSorted() === 'desc'
41
+ ? localization.sortedByColumnDesc.replace(
42
+ '{column}',
43
+ columnDef.header,
44
+ )
45
+ : localization.sortedByColumnAsc.replace('{column}', columnDef.header)
46
+ : column.getNextSortingOrder() === 'desc'
47
+ ? localization.sortByColumnDesc.replace('{column}', columnDef.header)
48
+ : localization.sortByColumnAsc.replace('{column}', columnDef.header);
49
+
50
+ const direction = isSorted
51
+ ? (column.getIsSorted() as 'asc' | 'desc')
52
+ : undefined;
46
53
 
47
54
  return (
48
55
  <Tooltip placement="top" title={sortTooltip}>
@@ -56,6 +63,7 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
56
63
  ? (props) => (
57
64
  <SyncAltIcon
58
65
  {...props}
66
+ direction={direction}
59
67
  style={{
60
68
  transform: 'rotate(-90deg) scaleX(0.9) translateX(-1px)',
61
69
  }}
@@ -65,9 +73,7 @@ export const MRT_TableHeadCellSortLabel = <TData extends MRT_RowData>({
65
73
  }
66
74
  active
67
75
  aria-label={sortTooltip}
68
- direction={
69
- isSorted ? (column.getIsSorted() as 'asc' | 'desc') : undefined
70
- }
76
+ direction={direction}
71
77
  onClick={(e) => {
72
78
  e.stopPropagation();
73
79
  header.column.getToggleSortingHandler()?.(e);
@@ -92,6 +92,16 @@ export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
92
92
  unmountOnExit
93
93
  >
94
94
  <TextField
95
+ inputProps={{
96
+ autoComplete: 'new-password', // disable autocomplete and autofill
97
+ ...textFieldProps.inputProps,
98
+ }}
99
+ onChange={handleChange}
100
+ placeholder={localization.search}
101
+ size="small"
102
+ value={searchValue ?? ''}
103
+ variant="outlined"
104
+ {...textFieldProps}
95
105
  InputProps={{
96
106
  endAdornment: (
97
107
  <InputAdornment position="end">
@@ -134,16 +144,6 @@ export const MRT_GlobalFilterTextField = <TData extends MRT_RowData>({
134
144
  ) as any),
135
145
  }),
136
146
  }}
137
- inputProps={{
138
- autoComplete: 'new-password', // disable autocomplete and autofill
139
- ...textFieldProps.inputProps,
140
- }}
141
- onChange={handleChange}
142
- placeholder={localization.search}
143
- size="small"
144
- value={searchValue ?? ''}
145
- variant="outlined"
146
- {...textFieldProps}
147
147
  inputRef={(inputRef) => {
148
148
  searchInputRef.current = inputRef;
149
149
  if (textFieldProps?.inputRef) {
@@ -70,6 +70,7 @@ export const MRT_TablePagination = <TData extends MRT_RowData>({
70
70
 
71
71
  return (
72
72
  <Box
73
+ className="MuiTablePagination-root"
73
74
  sx={{
74
75
  alignItems: 'center',
75
76
  display: 'flex',
package/src/types.ts CHANGED
@@ -241,6 +241,7 @@ export type MRT_TableInstance<TData extends MRT_RowData> = Omit<
241
241
  | 'getExpandedRowModel'
242
242
  | 'getFlatHeaders'
243
243
  | 'getHeaderGroups'
244
+ | 'getLeafHeaders'
244
245
  | 'getLeftLeafColumns'
245
246
  | 'getPaginationRowModel'
246
247
  | 'getPreFilteredRowModel'
@@ -262,6 +263,7 @@ export type MRT_TableInstance<TData extends MRT_RowData> = Omit<
262
263
  getExpandedRowModel: () => MRT_RowModel<TData>;
263
264
  getFlatHeaders: () => MRT_Header<TData>[];
264
265
  getHeaderGroups: () => MRT_HeaderGroup<TData>[];
266
+ getLeafHeaders: () => MRT_Header<TData>[];
265
267
  getLeftLeafColumns: () => MRT_Column<TData>[];
266
268
  getPaginationRowModel: () => MRT_RowModel<TData>;
267
269
  getPreFilteredRowModel: () => MRT_RowModel<TData>;