material-react-table 2.0.0-alpha.0 → 2.0.0-alpha.1

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 (98) hide show
  1. package/dist/cjs/index.js +437 -384
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +3 -2
  4. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  5. package/dist/cjs/types/body/index.d.ts +1 -0
  6. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +9 -0
  7. package/dist/cjs/types/buttons/index.d.ts +2 -1
  8. package/dist/cjs/types/column.utils.d.ts +1 -0
  9. package/dist/cjs/types/types.d.ts +15 -9
  10. package/dist/esm/material-react-table.esm.js +433 -383
  11. package/dist/esm/material-react-table.esm.js.map +1 -1
  12. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +3 -2
  13. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +7 -0
  14. package/dist/esm/types/body/index.d.ts +1 -0
  15. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +9 -0
  16. package/dist/esm/types/buttons/index.d.ts +2 -1
  17. package/dist/esm/types/column.utils.d.ts +1 -0
  18. package/dist/esm/types/types.d.ts +15 -9
  19. package/dist/index.d.ts +68 -47
  20. package/locales/en.esm.js +1 -0
  21. package/locales/en.esm.js.map +1 -1
  22. package/locales/en.js +1 -0
  23. package/locales/en.js.map +1 -1
  24. package/package.json +9 -9
  25. package/src/body/MRT_TableBody.tsx +178 -74
  26. package/src/body/MRT_TableBodyCell.tsx +23 -21
  27. package/src/body/MRT_TableBodyRow.tsx +104 -16
  28. package/src/body/MRT_TableBodyRowGrabHandle.tsx +5 -4
  29. package/src/body/MRT_TableBodyRowPinButton.tsx +46 -0
  30. package/src/body/MRT_TableDetailPanel.tsx +13 -19
  31. package/src/body/index.ts +2 -1
  32. package/src/buttons/MRT_CopyButton.tsx +14 -20
  33. package/src/buttons/MRT_ExpandAllButton.tsx +5 -7
  34. package/src/buttons/MRT_ExpandButton.tsx +6 -7
  35. package/src/buttons/MRT_GrabHandleButton.tsx +2 -3
  36. package/src/buttons/MRT_RowPinButton.tsx +74 -0
  37. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +2 -3
  38. package/src/buttons/index.ts +2 -1
  39. package/src/column.utils.ts +11 -5
  40. package/src/footer/MRT_TableFooter.tsx +13 -7
  41. package/src/footer/MRT_TableFooterCell.tsx +7 -20
  42. package/src/footer/MRT_TableFooterRow.tsx +6 -7
  43. package/src/head/MRT_TableHead.tsx +11 -7
  44. package/src/head/MRT_TableHeadCell.tsx +9 -20
  45. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +10 -18
  46. package/src/head/MRT_TableHeadCellGrabHandle.tsx +6 -13
  47. package/src/head/MRT_TableHeadRow.tsx +6 -7
  48. package/src/hooks/useMRT_DisplayColumns.tsx +13 -0
  49. package/src/hooks/useMRT_TableInstance.ts +6 -0
  50. package/src/hooks/useMRT_TableOptions.ts +6 -2
  51. package/src/inputs/MRT_EditCellTextField.tsx +14 -22
  52. package/src/inputs/MRT_FilterCheckbox.tsx +11 -23
  53. package/src/inputs/MRT_FilterRangeSlider.tsx +6 -23
  54. package/src/inputs/MRT_FilterTextField.tsx +9 -25
  55. package/src/inputs/MRT_GlobalFilterTextField.tsx +4 -4
  56. package/src/inputs/MRT_SelectCheckbox.tsx +31 -17
  57. package/src/locales/en.ts +1 -1
  58. package/src/menus/MRT_RowActionMenu.tsx +11 -12
  59. package/src/modals/MRT_EditRowModal.tsx +5 -13
  60. package/src/table/MRT_Table.tsx +8 -13
  61. package/src/table/MRT_TableContainer.tsx +6 -12
  62. package/src/table/MRT_TablePaper.tsx +9 -13
  63. package/src/toolbar/MRT_BottomToolbar.tsx +14 -20
  64. package/src/toolbar/MRT_LinearProgressBar.tsx +5 -4
  65. package/src/toolbar/MRT_TablePagination.tsx +5 -7
  66. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +8 -11
  67. package/src/toolbar/MRT_TopToolbar.tsx +8 -14
  68. package/src/types.ts +25 -8
  69. package/locales/tr.d.ts +0 -2
  70. package/locales/tr.esm.d.ts +0 -2
  71. package/locales/tr.esm.js +0 -93
  72. package/locales/tr.esm.js.map +0 -1
  73. package/locales/tr.js +0 -97
  74. package/locales/tr.js.map +0 -1
  75. package/locales/uk.d.ts +0 -2
  76. package/locales/uk.esm.d.ts +0 -2
  77. package/locales/uk.esm.js +0 -93
  78. package/locales/uk.esm.js.map +0 -1
  79. package/locales/uk.js +0 -97
  80. package/locales/uk.js.map +0 -1
  81. package/locales/vi.d.ts +0 -2
  82. package/locales/vi.esm.d.ts +0 -2
  83. package/locales/vi.esm.js +0 -93
  84. package/locales/vi.esm.js.map +0 -1
  85. package/locales/vi.js +0 -97
  86. package/locales/vi.js.map +0 -1
  87. package/locales/zh-Hans.d.ts +0 -2
  88. package/locales/zh-Hans.esm.d.ts +0 -2
  89. package/locales/zh-Hans.esm.js +0 -93
  90. package/locales/zh-Hans.esm.js.map +0 -1
  91. package/locales/zh-Hans.js +0 -97
  92. package/locales/zh-Hans.js.map +0 -1
  93. package/locales/zh-Hant.d.ts +0 -2
  94. package/locales/zh-Hant.esm.d.ts +0 -2
  95. package/locales/zh-Hant.esm.js +0 -93
  96. package/locales/zh-Hant.esm.js.map +0 -1
  97. package/locales/zh-Hant.js +0 -97
  98. package/locales/zh-Hant.js.map +0 -1
@@ -4,6 +4,7 @@ interface Props<TData extends Record<string, any>> {
4
4
  columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
5
5
  measureElement?: (element: HTMLTableRowElement) => void;
6
6
  numRows: number;
7
+ pinnedRowIds?: string[];
7
8
  row: MRT_Row<TData>;
8
9
  rowIndex: number;
9
10
  table: MRT_TableInstance<TData>;
@@ -12,6 +13,6 @@ interface Props<TData extends Record<string, any>> {
12
13
  virtualPaddingRight?: number;
13
14
  virtualRow?: VirtualItem;
14
15
  }
15
- export declare const MRT_TableBodyRow: <TData extends Record<string, any>>({ columnVirtualizer, measureElement, numRows, row, rowIndex, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, virtualRow, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
16
- export declare const Memo_MRT_TableBodyRow: <TData extends Record<string, any>>({ columnVirtualizer, measureElement, numRows, row, rowIndex, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, virtualRow, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const MRT_TableBodyRow: <TData extends Record<string, any>>({ columnVirtualizer, measureElement, numRows, pinnedRowIds, row, rowIndex, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, virtualRow, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const Memo_MRT_TableBodyRow: <TData extends Record<string, any>>({ columnVirtualizer, measureElement, numRows, pinnedRowIds, row, rowIndex, table, virtualColumns, virtualPaddingLeft, virtualPaddingRight, virtualRow, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
17
18
  export {};
@@ -0,0 +1,7 @@
1
+ import { type MRT_Row, type MRT_TableInstance } from '../types';
2
+ interface Props<TData extends Record<string, any>> {
3
+ row: MRT_Row<TData>;
4
+ table: MRT_TableInstance<TData>;
5
+ }
6
+ export declare const MRT_TableBodyRowPinButton: <TData extends Record<string, any>>({ row, table, }: Props<TData>) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
@@ -3,4 +3,5 @@ export * from './MRT_TableBodyCell';
3
3
  export * from './MRT_TableBodyCellValue';
4
4
  export * from './MRT_TableBodyRow';
5
5
  export * from './MRT_TableBodyRowGrabHandle';
6
+ export * from './MRT_TableBodyRowPinButton';
6
7
  export * from './MRT_TableDetailPanel';
@@ -0,0 +1,9 @@
1
+ import { type RowPinningPosition } from '@tanstack/react-table';
2
+ import { type MRT_Row, type MRT_TableInstance } from '../types';
3
+ interface Props<TData extends Record<string, any>> {
4
+ row: MRT_Row<TData>;
5
+ table: MRT_TableInstance<TData>;
6
+ pinningPosition: RowPinningPosition;
7
+ }
8
+ export declare const MRT_RowPinButton: <TData extends Record<string, any>>({ row, table, pinningPosition, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -3,10 +3,11 @@ export * from './MRT_CopyButton';
3
3
  export * from './MRT_EditActionButtons';
4
4
  export * from './MRT_ExpandAllButton';
5
5
  export * from './MRT_ExpandButton';
6
- export * from './MRT_ToggleFullScreenButton';
7
6
  export * from './MRT_GrabHandleButton';
7
+ export * from './MRT_RowPinButton';
8
8
  export * from './MRT_ShowHideColumnsButton';
9
9
  export * from './MRT_ToggleDensePaddingButton';
10
10
  export * from './MRT_ToggleFiltersButton';
11
+ export * from './MRT_ToggleFullScreenButton';
11
12
  export * from './MRT_ToggleGlobalFilterButton';
12
13
  export * from './MRT_ToggleRowActionMenuButton';
@@ -140,6 +140,7 @@ export declare const MRT_DefaultDisplayColumn: {
140
140
  readonly enableResizing: false;
141
141
  readonly enableSorting: false;
142
142
  };
143
+ export declare const parseFromValuesOrFunc: <T, U>(fn: T | ((arg: U) => T) | undefined, arg: U) => T | undefined;
143
144
  export declare const parseCSSVarId: (id: string) => string;
144
145
  export declare const flexRender: (Comp: Renderable<any>, props: any) => ReactNode | JSX.Element;
145
146
  export declare const createRow: <TData extends Record<string, any>>(table: MRT_TableInstance<TData>, originalRow?: TData | undefined) => MRT_Row<TData>;
@@ -49,7 +49,6 @@ export interface MRT_Localization {
49
49
  clearSearch: string;
50
50
  clearSort: string;
51
51
  clickToCopy: string;
52
- create?: string;
53
52
  collapse: string;
54
53
  collapseAll: string;
55
54
  columnActions: string;
@@ -72,9 +71,10 @@ export interface MRT_Localization {
72
71
  filterFuzzy: string;
73
72
  filterGreaterThan: string;
74
73
  filterGreaterThanOrEqualTo: string;
75
- filterInNumberRange: string;
76
74
  filterIncludesString: string;
77
75
  filterIncludesStringSensitive: string;
76
+ filteringByColumn: string;
77
+ filterInNumberRange: string;
78
78
  filterLessThan: string;
79
79
  filterLessThanOrEqualTo: string;
80
80
  filterMode: string;
@@ -82,7 +82,6 @@ export interface MRT_Localization {
82
82
  filterNotEquals: string;
83
83
  filterStartsWith: string;
84
84
  filterWeakEquals: string;
85
- filteringByColumn: string;
86
85
  goToFirstPage: string;
87
86
  goToLastPage: string;
88
87
  goToNextPage: string;
@@ -99,6 +98,7 @@ export interface MRT_Localization {
99
98
  noResultsFound: string;
100
99
  of: string;
101
100
  or: string;
101
+ pin?: string;
102
102
  pinToLeft: string;
103
103
  pinToRight: string;
104
104
  resetColumnSize: string;
@@ -137,11 +137,13 @@ export interface MRT_RowModel<TData extends Record<string, any>> {
137
137
  [key: string]: MRT_Row<TData>;
138
138
  };
139
139
  }
140
- export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getCenterLeafColumns' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getHeaderGroups' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'options'> & {
140
+ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getBottomRows' | 'getCenterLeafColumns' | 'getCenterRows' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getHeaderGroups' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'getTopRows' | 'options'> & {
141
141
  getAllColumns: () => MRT_Column<TData>[];
142
142
  getAllFlatColumns: () => MRT_Column<TData>[];
143
143
  getAllLeafColumns: () => MRT_Column<TData>[];
144
+ getBottomRows: () => MRT_Row<TData>[];
144
145
  getCenterLeafColumns: () => MRT_Column<TData>[];
146
+ getCenterRows: () => MRT_Row<TData>[];
145
147
  getColumn: (columnId: string) => MRT_Column<TData>;
146
148
  getExpandedRowModel: () => MRT_RowModel<TData>;
147
149
  getFlatHeaders: () => MRT_Header<TData>[];
@@ -154,6 +156,7 @@ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TD
154
156
  getRowModel: () => MRT_RowModel<TData>;
155
157
  getSelectedRowModel: () => MRT_RowModel<TData>;
156
158
  getState: () => MRT_TableState<TData>;
159
+ getTopRows: () => MRT_Row<TData>[];
157
160
  options: MRT_DefinedTableOptions<TData>;
158
161
  refs: {
159
162
  bottomToolbarRef: MutableRefObject<HTMLDivElement>;
@@ -164,6 +167,8 @@ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TD
164
167
  tableHeadCellRefs: MutableRefObject<Record<string, HTMLTableCellElement>>;
165
168
  tablePaperRef: MutableRefObject<HTMLDivElement>;
166
169
  topToolbarRef: MutableRefObject<HTMLDivElement>;
170
+ tableHeadRef: MutableRefObject<HTMLTableSectionElement>;
171
+ tableFooterRef: MutableRefObject<HTMLTableSectionElement>;
167
172
  };
168
173
  setCreatingRow: Dispatch<SetStateAction<MRT_Row<TData> | null | true>>;
169
174
  setColumnFilterFns: Dispatch<SetStateAction<MRT_ColumnFilterFnsState>>;
@@ -369,7 +374,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
369
374
  muiFilterSliderProps?: SliderProps | ((props: {
370
375
  table: MRT_TableInstance<TData>;
371
376
  column: MRT_Column<TData>;
372
- }) => TextFieldProps);
377
+ }) => SliderProps);
373
378
  muiTableHeadCellProps?: TableCellProps | ((props: {
374
379
  table: MRT_TableInstance<TData>;
375
380
  column: MRT_Column<TData>;
@@ -423,12 +428,12 @@ export type MRT_SortingFn<TData extends Record<string, any>> = SortingFn<TData>
423
428
  export type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>;
424
429
  export type MRT_FilterFn<TData extends Record<string, any>> = FilterFn<TData> | MRT_FilterOption;
425
430
  export type MRT_InternalFilterOption = {
431
+ divider: boolean;
432
+ label: string;
426
433
  option: string;
427
434
  symbol: string;
428
- label: string;
429
- divider: boolean;
430
435
  };
431
- export type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select';
436
+ export type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select' | 'mrt-row-pin';
432
437
  /**
433
438
  * `columns` and `data` props are the only required props, but there are over 170 other optional props.
434
439
  *
@@ -478,6 +483,7 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<Partial<T
478
483
  columnFilterDisplayMode?: 'subheader' | 'popover' | 'custom';
479
484
  paginationDisplayMode?: 'default' | 'pages' | 'custom';
480
485
  selectDisplayMode?: 'checkbox' | 'radio' | 'switch';
486
+ rowPinningDisplayMode?: 'sticky' | 'top' | 'bottom' | 'top-and-bottom' | 'select-sticky' | 'select-top' | 'select-bottom';
481
487
  enableBottomToolbar?: boolean;
482
488
  enableClickToCopy?: boolean;
483
489
  enableColumnActions?: boolean;
@@ -630,7 +636,7 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<Partial<T
630
636
  muiFilterSliderProps?: SliderProps | ((props: {
631
637
  table: MRT_TableInstance<TData>;
632
638
  column: MRT_Column<TData>;
633
- }) => TextFieldProps);
639
+ }) => SliderProps);
634
640
  muiCreateRowModalProps?: DialogProps | ((props: {
635
641
  row: MRT_Row<TData>;
636
642
  table: MRT_TableInstance<TData>;