material-react-table 2.0.0-beta.1 → 2.0.0-beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. package/dist/cjs/index.js +33 -21
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +4 -4
  4. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -4
  5. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +4 -4
  6. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +3 -3
  7. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +4 -4
  8. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
  9. package/dist/cjs/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
  10. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +3 -3
  11. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
  12. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +3 -3
  13. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +3 -3
  14. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  15. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +3 -3
  16. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
  17. package/dist/cjs/types/buttons/MRT_RowPinButton.d.ts +3 -3
  18. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
  19. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
  20. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
  21. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
  22. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
  23. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
  24. package/dist/cjs/types/column.utils.d.ts +34 -33
  25. package/dist/cjs/types/filterFns.d.ts +15 -14
  26. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  27. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +3 -3
  28. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +3 -3
  29. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  30. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +3 -3
  31. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
  32. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
  33. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
  34. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
  35. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
  36. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
  37. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +3 -3
  38. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  39. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -2
  40. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -2
  41. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -2
  42. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +3 -3
  43. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
  44. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
  45. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
  46. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +3 -3
  47. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
  48. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
  49. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
  50. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
  51. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +3 -3
  52. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
  53. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
  54. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +3 -3
  55. package/dist/cjs/types/sortingFns.d.ts +3 -3
  56. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  57. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  58. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  59. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
  60. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
  61. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +3 -3
  62. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
  63. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
  64. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
  65. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +3 -3
  66. package/dist/cjs/types/types.d.ts +50 -40
  67. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -2
  68. package/dist/esm/material-react-table.esm.js +33 -22
  69. package/dist/esm/material-react-table.esm.js.map +1 -1
  70. package/dist/esm/types/MaterialReactTable.d.ts +4 -4
  71. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -4
  72. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +4 -4
  73. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +3 -3
  74. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +4 -4
  75. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +3 -3
  76. package/dist/esm/types/body/MRT_TableBodyRowPinButton.d.ts +3 -3
  77. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +3 -3
  78. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +3 -3
  79. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +3 -3
  80. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +3 -3
  81. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  82. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +3 -3
  83. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +3 -3
  84. package/dist/esm/types/buttons/MRT_RowPinButton.d.ts +3 -3
  85. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +3 -3
  86. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +3 -3
  87. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +3 -3
  88. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +3 -3
  89. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +3 -3
  90. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +3 -3
  91. package/dist/esm/types/column.utils.d.ts +34 -33
  92. package/dist/esm/types/filterFns.d.ts +15 -14
  93. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  94. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +3 -3
  95. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +3 -3
  96. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  97. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +3 -3
  98. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +3 -3
  99. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +3 -3
  100. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +3 -3
  101. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +3 -3
  102. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +3 -3
  103. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +3 -3
  104. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +3 -3
  105. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +3 -3
  106. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -2
  107. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -2
  108. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -2
  109. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +3 -3
  110. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +3 -3
  111. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +3 -3
  112. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +3 -3
  113. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +3 -3
  114. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +3 -3
  115. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +3 -3
  116. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +3 -3
  117. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +3 -3
  118. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +3 -3
  119. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +3 -3
  120. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +3 -3
  121. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +3 -3
  122. package/dist/esm/types/sortingFns.d.ts +3 -3
  123. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  124. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  125. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  126. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +3 -3
  127. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +3 -3
  128. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +3 -3
  129. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +3 -3
  130. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +3 -3
  131. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +3 -3
  132. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +3 -3
  133. package/dist/esm/types/types.d.ts +50 -40
  134. package/dist/esm/types/useMaterialReactTable.d.ts +2 -2
  135. package/dist/index.d.ts +217 -206
  136. package/package.json +1 -1
  137. package/src/MaterialReactTable.tsx +5 -4
  138. package/src/body/MRT_TableBody.tsx +7 -3
  139. package/src/body/MRT_TableBodyCell.tsx +10 -4
  140. package/src/body/MRT_TableBodyCellValue.tsx +7 -3
  141. package/src/body/MRT_TableBodyRow.tsx +8 -3
  142. package/src/body/MRT_TableBodyRowGrabHandle.tsx +7 -3
  143. package/src/body/MRT_TableBodyRowPinButton.tsx +7 -3
  144. package/src/body/MRT_TableDetailPanel.tsx +7 -3
  145. package/src/buttons/MRT_ColumnPinningButtons.tsx +7 -3
  146. package/src/buttons/MRT_CopyButton.tsx +7 -3
  147. package/src/buttons/MRT_EditActionButtons.tsx +7 -3
  148. package/src/buttons/MRT_ExpandAllButton.tsx +5 -6
  149. package/src/buttons/MRT_ExpandButton.tsx +9 -6
  150. package/src/buttons/MRT_GrabHandleButton.tsx +3 -3
  151. package/src/buttons/MRT_RowPinButton.tsx +7 -3
  152. package/src/buttons/MRT_ShowHideColumnsButton.tsx +3 -3
  153. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -5
  154. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -3
  155. package/src/buttons/MRT_ToggleFullScreenButton.tsx +3 -3
  156. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  157. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +8 -5
  158. package/src/column.utils.ts +41 -17
  159. package/src/filterFns.ts +15 -14
  160. package/src/footer/MRT_TableFooter.tsx +3 -3
  161. package/src/footer/MRT_TableFooterCell.tsx +7 -3
  162. package/src/footer/MRT_TableFooterRow.tsx +3 -2
  163. package/src/head/MRT_TableHead.tsx +3 -3
  164. package/src/head/MRT_TableHeadCell.tsx +8 -4
  165. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +7 -3
  166. package/src/head/MRT_TableHeadCellFilterContainer.tsx +7 -5
  167. package/src/head/MRT_TableHeadCellFilterLabel.tsx +7 -5
  168. package/src/head/MRT_TableHeadCellGrabHandle.tsx +7 -3
  169. package/src/head/MRT_TableHeadCellResizeHandle.tsx +7 -5
  170. package/src/head/MRT_TableHeadCellSortLabel.tsx +7 -3
  171. package/src/head/MRT_TableHeadRow.tsx +3 -2
  172. package/src/hooks/useMRT_DisplayColumns.tsx +4 -3
  173. package/src/hooks/useMRT_Effects.ts +6 -2
  174. package/src/hooks/useMRT_TableInstance.ts +3 -2
  175. package/src/hooks/useMRT_TableOptions.ts +7 -3
  176. package/src/inputs/MRT_EditCellTextField.tsx +8 -4
  177. package/src/inputs/MRT_FilterCheckbox.tsx +7 -3
  178. package/src/inputs/MRT_FilterRangeFields.tsx +7 -3
  179. package/src/inputs/MRT_FilterRangeSlider.tsx +7 -3
  180. package/src/inputs/MRT_FilterTextField.tsx +9 -3
  181. package/src/inputs/MRT_GlobalFilterTextField.tsx +3 -3
  182. package/src/inputs/MRT_SelectCheckbox.tsx +7 -3
  183. package/src/menus/MRT_ColumnActionMenu.tsx +7 -3
  184. package/src/menus/MRT_FilterOptionMenu.tsx +3 -2
  185. package/src/menus/MRT_RowActionMenu.tsx +7 -3
  186. package/src/menus/MRT_ShowHideColumnsMenu.tsx +7 -3
  187. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
  188. package/src/modals/MRT_EditRowModal.tsx +7 -3
  189. package/src/sortingFns.ts +3 -3
  190. package/src/table/MRT_Table.tsx +3 -3
  191. package/src/table/MRT_TableContainer.tsx +3 -3
  192. package/src/table/MRT_TablePaper.tsx +3 -3
  193. package/src/toolbar/MRT_BottomToolbar.tsx +3 -3
  194. package/src/toolbar/MRT_LinearProgressBar.tsx +3 -3
  195. package/src/toolbar/MRT_TablePagination.tsx +3 -3
  196. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -3
  197. package/src/toolbar/MRT_ToolbarDropZone.tsx +3 -3
  198. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +3 -3
  199. package/src/toolbar/MRT_TopToolbar.tsx +3 -3
  200. package/src/types.ts +75 -45
  201. package/src/useMaterialReactTable.ts +6 -2
@@ -1,5 +1,5 @@
1
1
  import { type Dispatch, type MutableRefObject, type ReactNode, type RefObject, type SetStateAction } from 'react';
2
- import { type AggregationFn, type Cell, type Column, type ColumnDef, type ColumnFiltersState, type ColumnOrderState, type ColumnPinningState, type ColumnSizingInfoState, type ColumnSizingState, type DeepKeys, type ExpandedState, type FilterFn, type GroupingState, type Header, type HeaderGroup, type OnChangeFn, type PaginationState, type Row, type RowSelectionState, type SortingFn, type SortingState, type Table, type TableOptions, type TableState, type Updater, type VisibilityState } from '@tanstack/react-table';
2
+ import { type AccessorFn, type AggregationFn, type Cell, type Column, type ColumnDef, type ColumnFiltersState, type ColumnOrderState, type ColumnPinningState, type ColumnSizingInfoState, type ColumnSizingState, type DeepKeys, type DeepValue, type ExpandedState, type FilterFn, type GroupingState, type Header, type HeaderGroup, type OnChangeFn, type PaginationState, type Row, type RowSelectionState, type SortingFn, type SortingState, type Table, type TableOptions, type TableState, type Updater, type VisibilityState } from '@tanstack/react-table';
3
3
  import { type VirtualItem, type Virtualizer, type VirtualizerOptions } from '@tanstack/react-virtual';
4
4
  import { type AlertProps } from '@mui/material/Alert';
5
5
  import { type AutocompleteProps } from '@mui/material/Autocomplete';
@@ -41,7 +41,13 @@ export type Xor<A, B> = Prettify<A & {
41
41
  }>;
42
42
  export type MRT_DensityState = 'comfortable' | 'compact' | 'spacious';
43
43
  export type MRT_ColumnFilterFnsState = Record<string, MRT_FilterOption>;
44
+ export type MRT_RowData = Record<string, any>;
44
45
  export type { ColumnFiltersState as MRT_ColumnFiltersState, ColumnOrderState as MRT_ColumnOrderState, ColumnPinningState as MRT_ColumnPinningState, ColumnSizingInfoState as MRT_ColumnSizingInfoState, ColumnSizingState as MRT_ColumnSizingState, ExpandedState as MRT_ExpandedState, GroupingState as MRT_GroupingState, PaginationState as MRT_PaginationState, RowSelectionState as MRT_RowSelectionState, SortingState as MRT_SortingState, Updater as MRT_Updater, VirtualItem as MRT_VirtualItem, Virtualizer as MRT_Virtualizer, VirtualizerOptions as MRT_VirtualizerOptions, VisibilityState as MRT_VisibilityState, };
46
+ export type MRT_ColumnHelper<TData extends MRT_RowData> = {
47
+ accessor: <TAccessor extends AccessorFn<TData> | DeepKeys<TData>, TValue extends TAccessor extends AccessorFn<TData, infer TReturn> ? TReturn : TAccessor extends DeepKeys<TData> ? DeepValue<TData, TAccessor> : never>(accessor: TAccessor, column: MRT_DisplayColumnDef<TData, TValue>) => MRT_ColumnDef<TData, TValue>;
48
+ display: (column: MRT_DisplayColumnDef<TData>) => MRT_ColumnDef<TData>;
49
+ group: (column: MRT_GroupColumnDef<TData>) => MRT_ColumnDef<TData>;
50
+ };
45
51
  export interface MRT_Localization {
46
52
  actions: string;
47
53
  and: string;
@@ -133,14 +139,14 @@ export interface MRT_Localization {
133
139
  unpin: string;
134
140
  unpinAll: string;
135
141
  }
136
- export interface MRT_RowModel<TData extends Record<string, any>> {
142
+ export interface MRT_RowModel<TData extends MRT_RowData> {
137
143
  flatRows: MRT_Row<TData>[];
138
144
  rows: MRT_Row<TData>[];
139
145
  rowsById: {
140
146
  [key: string]: MRT_Row<TData>;
141
147
  };
142
148
  }
143
- 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'> & {
149
+ export type MRT_TableInstance<TData extends MRT_RowData> = Omit<Table<TData>, 'getAllColumns' | 'getAllFlatColumns' | 'getAllLeafColumns' | 'getBottomRows' | 'getCenterLeafColumns' | 'getCenterRows' | 'getColumn' | 'getExpandedRowModel' | 'getFlatHeaders' | 'getHeaderGroups' | 'getLeftLeafColumns' | 'getPaginationRowModel' | 'getPreFilteredRowModel' | 'getPrePaginationRowModel' | 'getRightLeafColumns' | 'getRowModel' | 'getSelectedRowModel' | 'getState' | 'getTopRows' | 'options'> & {
144
150
  getAllColumns: () => MRT_Column<TData>[];
145
151
  getAllFlatColumns: () => MRT_Column<TData>[];
146
152
  getAllLeafColumns: () => MRT_Column<TData>[];
@@ -189,11 +195,11 @@ export type MRT_TableInstance<TData extends Record<string, any>> = Omit<Table<TD
189
195
  setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;
190
196
  setShowToolbarDropZone: Dispatch<SetStateAction<boolean>>;
191
197
  };
192
- export type MRT_DefinedTableOptions<TData extends Record<string, any>> = MRT_TableOptions<TData> & {
198
+ export type MRT_DefinedTableOptions<TData extends MRT_RowData> = MRT_TableOptions<TData> & {
193
199
  icons: MRT_Icons;
194
200
  localization: MRT_Localization;
195
201
  };
196
- export type MRT_TableState<TData extends Record<string, any>> = TableState & {
202
+ export type MRT_TableState<TData extends MRT_RowData> = TableState & {
197
203
  columnFilterFns: MRT_ColumnFilterFnsState;
198
204
  creatingRow: MRT_Row<TData> | null;
199
205
  density: MRT_DensityState;
@@ -215,52 +221,52 @@ export type MRT_TableState<TData extends Record<string, any>> = TableState & {
215
221
  showSkeletons: boolean;
216
222
  showToolbarDropZone: boolean;
217
223
  };
218
- export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TData, unknown>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
224
+ export type MRT_ColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<ColumnDef<TData, TValue>, 'accessorKey' | 'aggregatedCell' | 'aggregationFn' | 'cell' | 'columns' | 'filterFn' | 'footer' | 'header' | 'id' | 'sortingFn'> & {
219
225
  AggregatedCell?: (props: {
220
- cell: MRT_Cell<TData>;
221
- column: MRT_Column<TData>;
226
+ cell: MRT_Cell<TData, TValue>;
227
+ column: MRT_Column<TData, TValue>;
222
228
  row: MRT_Row<TData>;
223
229
  table: MRT_TableInstance<TData>;
224
230
  }) => ReactNode;
225
231
  Cell?: (props: {
226
- cell: MRT_Cell<TData>;
227
- column: MRT_Column<TData>;
228
- renderedCellValue: ReactNode | number | string;
232
+ cell: MRT_Cell<TData, TValue>;
233
+ column: MRT_Column<TData, TValue>;
234
+ renderedCellValue: ReactNode;
229
235
  row: MRT_Row<TData>;
230
236
  rowRef?: RefObject<HTMLTableRowElement>;
231
237
  table: MRT_TableInstance<TData>;
232
238
  }) => ReactNode;
233
239
  Edit?: (props: {
234
- cell: MRT_Cell<TData>;
235
- column: MRT_Column<TData>;
240
+ cell: MRT_Cell<TData, TValue>;
241
+ column: MRT_Column<TData, TValue>;
236
242
  row: MRT_Row<TData>;
237
243
  table: MRT_TableInstance<TData>;
238
244
  }) => ReactNode;
239
245
  Filter?: (props: {
240
- column: MRT_Column<TData>;
246
+ column: MRT_Column<TData, TValue>;
241
247
  header: MRT_Header<TData>;
242
248
  rangeFilterIndex?: number;
243
249
  table: MRT_TableInstance<TData>;
244
250
  }) => ReactNode;
245
251
  Footer?: ((props: {
246
- column: MRT_Column<TData>;
252
+ column: MRT_Column<TData, TValue>;
247
253
  footer: MRT_Header<TData>;
248
254
  table: MRT_TableInstance<TData>;
249
255
  }) => ReactNode) | ReactNode;
250
256
  GroupedCell?: (props: {
251
- cell: MRT_Cell<TData>;
252
- column: MRT_Column<TData>;
257
+ cell: MRT_Cell<TData, TValue>;
258
+ column: MRT_Column<TData, TValue>;
253
259
  row: MRT_Row<TData>;
254
260
  table: MRT_TableInstance<TData>;
255
261
  }) => ReactNode;
256
262
  Header?: ((props: {
257
- column: MRT_Column<TData>;
263
+ column: MRT_Column<TData, TValue>;
258
264
  header: MRT_Header<TData>;
259
265
  table: MRT_TableInstance<TData>;
260
266
  }) => ReactNode) | ReactNode;
261
267
  PlaceholderCell?: (props: {
262
- cell: MRT_Cell<TData>;
263
- column: MRT_Column<TData>;
268
+ cell: MRT_Cell<TData, TValue>;
269
+ column: MRT_Column<TData, TValue>;
264
270
  row: MRT_Row<TData>;
265
271
  table: MRT_TableInstance<TData>;
266
272
  }) => ReactNode;
@@ -270,7 +276,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
270
276
  *
271
277
  * @example accessorFn: (row) => row.username
272
278
  */
273
- accessorFn?: (originalRow: TData) => any;
279
+ accessorFn?: (originalRow: TData) => TValue;
274
280
  /**
275
281
  * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.
276
282
  * Specify which key in the row this column should use to access the correct data.
@@ -291,7 +297,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
291
297
  */
292
298
  columnDefType?: 'data' | 'display' | 'group';
293
299
  columnFilterModeOptions?: Array<LiteralUnion<string & MRT_FilterOption>> | null;
294
- columns?: MRT_ColumnDef<TData>[];
300
+ columns?: MRT_ColumnDef<TData, TValue>[];
295
301
  editSelectOptions?: ({
296
302
  text: string;
297
303
  value: any;
@@ -337,13 +343,13 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
337
343
  table: MRT_TableInstance<TData>;
338
344
  }) => IconButtonProps) | IconButtonProps;
339
345
  muiCopyButtonProps?: ((props: {
340
- cell: MRT_Cell<TData>;
346
+ cell: MRT_Cell<TData, TValue>;
341
347
  column: MRT_Column<TData>;
342
348
  row: MRT_Row<TData>;
343
349
  table: MRT_TableInstance<TData>;
344
350
  }) => ButtonProps) | ButtonProps;
345
351
  muiEditTextFieldProps?: ((props: {
346
- cell: MRT_Cell<TData>;
352
+ cell: MRT_Cell<TData, TValue>;
347
353
  column: MRT_Column<TData>;
348
354
  row: MRT_Row<TData>;
349
355
  table: MRT_TableInstance<TData>;
@@ -371,7 +377,7 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
371
377
  table: MRT_TableInstance<TData>;
372
378
  }) => TextFieldProps) | TextFieldProps;
373
379
  muiTableBodyCellProps?: ((props: {
374
- cell: MRT_Cell<TData>;
380
+ cell: MRT_Cell<TData, TValue>;
375
381
  column: MRT_Column<TData>;
376
382
  row: MRT_Row<TData>;
377
383
  table: MRT_TableInstance<TData>;
@@ -398,40 +404,44 @@ export type MRT_ColumnDef<TData extends Record<string, any>> = Omit<ColumnDef<TD
398
404
  }) => ReactNode[];
399
405
  sortingFn?: MRT_SortingFn<TData>;
400
406
  };
401
- export type MRT_DefinedColumnDef<TData extends Record<string, any>> = Omit<MRT_ColumnDef<TData>, 'defaultDisplayColumn' | 'id'> & {
407
+ export type MRT_DisplayColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<MRT_ColumnDef<TData, TValue>, 'accessorFn' | 'accessorKey'>;
408
+ export type MRT_GroupColumnDef<TData extends MRT_RowData> = MRT_DisplayColumnDef<TData, any> & {
409
+ columns: MRT_ColumnDef<TData>[];
410
+ };
411
+ export type MRT_DefinedColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<MRT_ColumnDef<TData, TValue>, 'defaultDisplayColumn' | 'id'> & {
402
412
  _filterFn: MRT_FilterOption;
403
- defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
413
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData, TValue>>;
404
414
  id: string;
405
415
  };
406
- export type MRT_Column<TData extends Record<string, any>> = Omit<Column<TData, unknown>, 'columnDef' | 'columns' | 'filterFn' | 'footer' | 'header'> & {
407
- columnDef: MRT_DefinedColumnDef<TData>;
408
- columns?: MRT_Column<TData>[];
416
+ export type MRT_Column<TData extends MRT_RowData, TValue = unknown> = Omit<Column<TData, TValue>, 'columnDef' | 'columns' | 'filterFn' | 'footer' | 'header'> & {
417
+ columnDef: MRT_DefinedColumnDef<TData, TValue>;
418
+ columns?: MRT_Column<TData, TValue>[];
409
419
  filterFn?: MRT_FilterFn<TData>;
410
420
  footer: string;
411
421
  header: string;
412
422
  };
413
- export type MRT_Header<TData extends Record<string, any>> = Omit<Header<TData, unknown>, 'column'> & {
423
+ export type MRT_Header<TData extends MRT_RowData> = Omit<Header<TData, unknown>, 'column'> & {
414
424
  column: MRT_Column<TData>;
415
425
  };
416
- export type MRT_HeaderGroup<TData extends Record<string, any>> = Omit<HeaderGroup<TData>, 'headers'> & {
426
+ export type MRT_HeaderGroup<TData extends MRT_RowData> = Omit<HeaderGroup<TData>, 'headers'> & {
417
427
  headers: MRT_Header<TData>[];
418
428
  };
419
- export type MRT_Row<TData extends Record<string, any>> = Omit<Row<TData>, '_valuesCache' | 'getAllCells' | 'getVisibleCells' | 'subRows'> & {
429
+ export type MRT_Row<TData extends MRT_RowData> = Omit<Row<TData>, '_valuesCache' | 'getAllCells' | 'getVisibleCells' | 'subRows'> & {
420
430
  _valuesCache: Record<LiteralUnion<string & DeepKeys<TData>>, any>;
421
431
  getAllCells: () => MRT_Cell<TData>[];
422
432
  getVisibleCells: () => MRT_Cell<TData>[];
423
433
  subRows?: MRT_Row<TData>[];
424
434
  };
425
- export type MRT_Cell<TData extends Record<string, any>> = Omit<Cell<TData, unknown>, 'column' | 'row'> & {
426
- column: MRT_Column<TData>;
435
+ export type MRT_Cell<TData extends MRT_RowData, TValue = unknown> = Omit<Cell<TData, TValue>, 'column' | 'row'> & {
436
+ column: MRT_Column<TData, TValue>;
427
437
  row: MRT_Row<TData>;
428
438
  };
429
439
  export type MRT_AggregationOption = string & keyof typeof MRT_AggregationFns;
430
- export type MRT_AggregationFn<TData extends Record<string, any>> = AggregationFn<TData> | MRT_AggregationOption;
440
+ export type MRT_AggregationFn<TData extends MRT_RowData> = AggregationFn<TData> | MRT_AggregationOption;
431
441
  export type MRT_SortingOption = LiteralUnion<string & keyof typeof MRT_SortingFns>;
432
- export type MRT_SortingFn<TData extends Record<string, any>> = MRT_SortingOption | SortingFn<TData>;
442
+ export type MRT_SortingFn<TData extends MRT_RowData> = MRT_SortingOption | SortingFn<TData>;
433
443
  export type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>;
434
- export type MRT_FilterFn<TData extends Record<string, any>> = FilterFn<TData> | MRT_FilterOption;
444
+ export type MRT_FilterFn<TData extends MRT_RowData> = FilterFn<TData> | MRT_FilterOption;
435
445
  export type MRT_InternalFilterOption = {
436
446
  divider: boolean;
437
447
  label: string;
@@ -448,7 +458,7 @@ export type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row
448
458
  * See the full props list on the official docs site:
449
459
  * @link https://www.material-react-table.com/docs/api/props
450
460
  */
451
- export type MRT_TableOptions<TData extends Record<string, any>> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'defaultColumn' | 'enableRowSelection' | 'expandRowsFn' | 'getRowId' | 'globalFilterFn' | 'initialState' | 'onStateChange' | 'state'> & {
461
+ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<Partial<TableOptions<TData>>, 'columns' | 'data' | 'defaultColumn' | 'enableRowSelection' | 'expandRowsFn' | 'getRowId' | 'globalFilterFn' | 'initialState' | 'onStateChange' | 'state'> & {
452
462
  columnFilterDisplayMode?: 'custom' | 'popover' | 'subheader';
453
463
  columnFilterModeOptions?: Array<LiteralUnion<string & MRT_FilterOption>> | null;
454
464
  columnVirtualizerInstanceRef?: MutableRefObject<Virtualizer<HTMLDivElement, HTMLTableCellElement> | null>;
@@ -465,7 +475,7 @@ export type MRT_TableOptions<TData extends Record<string, any>> = Omit<Partial<T
465
475
  * See all Columns Options on the official docs site:
466
476
  * @link https://www.material-react-table.com/docs/api/column-options
467
477
  */
468
- columns: MRT_ColumnDef<TData>[];
478
+ columns: MRT_ColumnDef<TData, any>[];
469
479
  createDisplayMode?: 'custom' | 'modal' | 'row';
470
480
  /**
471
481
  * Pass your data as an array of objects. Objects can theoretically be any shape, but it's best to keep them consistent.
@@ -1,2 +1,2 @@
1
- import { type MRT_TableInstance, type MRT_TableOptions } from './types';
2
- export declare const useMaterialReactTable: <TData extends Record<string, any>>(tableOptions: MRT_TableOptions<TData>) => MRT_TableInstance<TData>;
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>;