@jielga/tmdatagrid 2.0.0-beta.9 → 2.0.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 (157) hide show
  1. package/README.md +5 -212
  2. package/dist/index.d.ts +1281 -768
  3. package/dist/index.js +4607 -3250
  4. package/dist/index.js.map +1 -1
  5. package/dist/styles.css +1 -1
  6. package/docs/adding-rows.md +132 -0
  7. package/docs/anatomy.md +119 -0
  8. package/docs/card-view.md +108 -0
  9. package/docs/cell-selection.md +194 -0
  10. package/docs/column-layout.md +182 -0
  11. package/docs/column-menu.md +66 -0
  12. package/docs/columns.md +269 -0
  13. package/docs/components.md +311 -0
  14. package/docs/draft-store.md +242 -0
  15. package/docs/editing.md +303 -0
  16. package/docs/editors.md +250 -0
  17. package/docs/export.md +319 -0
  18. package/docs/filtering.md +362 -0
  19. package/docs/getting-started.md +123 -0
  20. package/docs/grouping.md +165 -0
  21. package/docs/loading-and-empty.md +92 -0
  22. package/docs/localization.md +79 -0
  23. package/docs/menu.md +143 -0
  24. package/docs/migrating-to-2.md +163 -0
  25. package/docs/pagination.md +144 -0
  26. package/docs/persistence.md +114 -0
  27. package/docs/portfolio-rebalancer.md +94 -0
  28. package/docs/query-builder.md +179 -0
  29. package/docs/quick-search.md +84 -0
  30. package/docs/row-details.md +115 -0
  31. package/docs/row-interaction.md +149 -0
  32. package/docs/row-pinning.md +132 -0
  33. package/docs/row-selection.md +136 -0
  34. package/docs/row-styling.md +133 -0
  35. package/docs/scrolling.md +112 -0
  36. package/docs/server-query.md +246 -0
  37. package/docs/server-side.md +206 -0
  38. package/docs/sorting.md +101 -0
  39. package/docs/styling.md +126 -0
  40. package/docs/summary-row.md +76 -0
  41. package/docs/testing.md +744 -0
  42. package/docs/toolbar.md +161 -0
  43. package/docs/use-tm-data-grid.md +361 -0
  44. package/package.json +22 -46
  45. package/skills/appearance/SKILL.md +72 -19
  46. package/skills/cell-selection/SKILL.md +49 -48
  47. package/skills/columns/SKILL.md +125 -70
  48. package/skills/columns/references/columns-api.md +59 -0
  49. package/skills/data/SKILL.md +112 -18
  50. package/skills/editing/SKILL.md +76 -42
  51. package/skills/editing/references/common-mistakes.md +77 -69
  52. package/skills/editing/references/editing-api.md +25 -20
  53. package/skills/editing/references/editors-and-validation.md +80 -18
  54. package/skills/filtering/SKILL.md +155 -41
  55. package/skills/getting-started/SKILL.md +116 -16
  56. package/skills/grouping/SKILL.md +31 -16
  57. package/skills/migrating-to-2/SKILL.md +244 -0
  58. package/skills/options/SKILL.md +24 -12
  59. package/skills/rows/SKILL.md +22 -18
  60. package/skills/rows/references/rows-api.md +10 -6
  61. package/skills/server-side/SKILL.md +170 -17
  62. package/skills/testing/SKILL.md +150 -32
  63. package/skills/testing-components/SKILL.md +230 -0
  64. package/skills/testing-editing/SKILL.md +240 -0
  65. package/src/{tmdatagrid/components → components}/TMDataGrid.tsx +38 -21
  66. package/src/{tmdatagrid/components → components}/TMDataGridCellEditor.tsx +54 -8
  67. package/src/{tmdatagrid/components → components}/TMDataGridColumnsPanel.module.css +5 -1
  68. package/src/{tmdatagrid/components → components}/TMDataGridColumnsPanel.tsx +47 -55
  69. package/src/{tmdatagrid/components → components}/TMDataGridDetailsColumn.tsx +5 -51
  70. package/src/{tmdatagrid/components → components}/TMDataGridDraftActions.tsx +41 -24
  71. package/src/{tmdatagrid/components → components}/TMDataGridEditColumn.tsx +12 -59
  72. package/src/{tmdatagrid/components → components}/TMDataGridEntryRows.tsx +164 -92
  73. package/src/components/TMDataGridExportPicker.module.css +77 -0
  74. package/src/components/TMDataGridExportPicker.tsx +234 -0
  75. package/src/components/TMDataGridFilterPanel.module.css +54 -0
  76. package/src/components/TMDataGridFilterPanel.tsx +348 -0
  77. package/src/{tmdatagrid/components → components}/TMDataGridFilterPills.tsx +15 -8
  78. package/src/components/TMDataGridFilterSurface.module.css +54 -0
  79. package/src/components/TMDataGridFilterSurface.tsx +167 -0
  80. package/src/{tmdatagrid/components → components}/TMDataGridFooter.tsx +53 -90
  81. package/src/{tmdatagrid/components → components}/TMDataGridGroupColumn.tsx +5 -69
  82. package/src/{tmdatagrid/components → components}/TMDataGridHeaderCell.module.css +12 -2
  83. package/src/{tmdatagrid/components → components}/TMDataGridHeaderCell.tsx +58 -21
  84. package/src/components/TMDataGridHeaderFilterRow.module.css +51 -0
  85. package/src/components/TMDataGridHeaderFilterRow.tsx +301 -0
  86. package/src/components/TMDataGridMenu.tsx +357 -0
  87. package/src/{tmdatagrid/components → components}/TMDataGridSelectColumn.tsx +11 -48
  88. package/src/{tmdatagrid/components → components}/TMDataGridTable.module.css +69 -56
  89. package/src/{tmdatagrid/components → components}/TMDataGridTable.tsx +240 -138
  90. package/src/{tmdatagrid/components → components}/TMDataGridToolbar.module.css +5 -0
  91. package/src/components/TMDataGridToolbar.tsx +181 -0
  92. package/src/{tmdatagrid/components → components}/editors/TMDataGridBooleanEditor.tsx +3 -3
  93. package/src/{tmdatagrid/components → components}/editors/TMDataGridDateEditor.tsx +3 -3
  94. package/src/{tmdatagrid/components → components}/editors/TMDataGridMultiSelectEditor.tsx +3 -3
  95. package/src/{tmdatagrid/components → components}/editors/TMDataGridNumberEditor.tsx +3 -3
  96. package/src/{tmdatagrid/components → components}/editors/TMDataGridSelectEditor.tsx +3 -3
  97. package/src/{tmdatagrid/components → components}/editors/TMDataGridStringEditor.tsx +3 -3
  98. package/src/{tmdatagrid/components → components}/editors/editorShared.ts +16 -2
  99. package/src/{tmdatagrid/components → components}/filters/DgAutocompleteFilter.tsx +5 -4
  100. package/src/{tmdatagrid/components → components}/filters/DgDateRangeFilter.tsx +22 -5
  101. package/src/{tmdatagrid/components → components}/filters/DgRangeSliderFilter.tsx +5 -1
  102. package/src/{tmdatagrid/components → components}/filters/DgTriStateFilter.tsx +5 -1
  103. package/src/{tmdatagrid/components → components}/filters/TMDataGridFilterValueInput.tsx +44 -28
  104. package/src/components/filters/controlLayout.ts +32 -0
  105. package/src/components/filters/filterControlFor.ts +65 -0
  106. package/src/components/generatedColumns.tsx +187 -0
  107. package/src/{tmdatagrid/components → components}/icons.ts +1 -0
  108. package/src/{tmdatagrid/components → components}/sticky.module.css +44 -0
  109. package/src/components/useHideableColumns.ts +52 -0
  110. package/src/{tmdatagrid/core → core}/autosize.ts +5 -2
  111. package/src/{tmdatagrid/core → core}/columnOptions.ts +60 -8
  112. package/src/{tmdatagrid/core → core}/columnOrdering.ts +33 -14
  113. package/src/{tmdatagrid/core → core}/columnUtils.ts +44 -5
  114. package/src/core/controlledStateSync.ts +108 -0
  115. package/src/core/deletedRows.ts +34 -0
  116. package/src/core/dom.ts +74 -0
  117. package/src/{tmdatagrid/core → core}/editEngine.ts +1107 -460
  118. package/src/core/export.ts +704 -0
  119. package/src/{tmdatagrid/core → core}/filterControls.ts +38 -1
  120. package/src/{tmdatagrid/core → core}/filterOperators.ts +64 -1
  121. package/src/core/filterSurface.ts +99 -0
  122. package/src/{tmdatagrid/core → core}/grouping.ts +21 -0
  123. package/src/{tmdatagrid/core → core}/labels.ts +51 -6
  124. package/src/{tmdatagrid/core → core}/labelsSv.ts +27 -6
  125. package/src/core/pageReset.ts +120 -0
  126. package/src/core/pagination.ts +81 -0
  127. package/src/{tmdatagrid/core → core}/persistence.ts +22 -5
  128. package/src/{tmdatagrid/core → core}/summary.ts +20 -4
  129. package/src/{tmdatagrid/index.ts → index.ts} +69 -35
  130. package/src/{tmdatagrid/useTMDataGrid.tsx → useTMDataGrid.tsx} +428 -109
  131. package/src/useTMDataGridExport.ts +78 -0
  132. package/src/tmdatagrid/components/TMDataGridFilterPanel.module.css +0 -35
  133. package/src/tmdatagrid/components/TMDataGridFilterPanel.tsx +0 -354
  134. package/src/tmdatagrid/components/TMDataGridToolbar.tsx +0 -161
  135. package/src/tmdatagrid/core/cellExport.ts +0 -320
  136. /package/src/{tmdatagrid/TMDataGridContext.ts → TMDataGridContext.ts} +0 -0
  137. /package/src/{tmdatagrid/components → components}/TMDataGrid.module.css +0 -0
  138. /package/src/{tmdatagrid/components → components}/TMDataGridDetailsColumn.module.css +0 -0
  139. /package/src/{tmdatagrid/components → components}/TMDataGridFilterPills.module.css +0 -0
  140. /package/src/{tmdatagrid/components → components}/TMDataGridFooter.module.css +0 -0
  141. /package/src/{tmdatagrid/components → components}/TMDataGridGroupColumn.module.css +0 -0
  142. /package/src/{tmdatagrid/components → components}/TMDataGridRowNumberColumn.tsx +0 -0
  143. /package/src/{tmdatagrid/components → components}/TMDataGridSearch.tsx +0 -0
  144. /package/src/{tmdatagrid/core → core}/capabilities.ts +0 -0
  145. /package/src/{tmdatagrid/core → core}/cellNavigation.ts +0 -0
  146. /package/src/{tmdatagrid/core → core}/cellRange.ts +0 -0
  147. /package/src/{tmdatagrid/core → core}/controlledState.ts +0 -0
  148. /package/src/{tmdatagrid/core → core}/draftCellContext.ts +0 -0
  149. /package/src/{tmdatagrid/core → core}/editorFocus.ts +0 -0
  150. /package/src/{tmdatagrid/core → core}/expanding.ts +0 -0
  151. /package/src/{tmdatagrid/core → core}/matchHighlight.ts +0 -0
  152. /package/src/{tmdatagrid/core → core}/quickSearch.ts +0 -0
  153. /package/src/{tmdatagrid/core → core}/resizePreview.ts +0 -0
  154. /package/src/{tmdatagrid/core → core}/rowPinning.ts +0 -0
  155. /package/src/{tmdatagrid/core → core}/rowSelection.ts +0 -0
  156. /package/src/{tmdatagrid/core → core}/sizes.ts +0 -0
  157. /package/src/{tmdatagrid/core → core}/useSettledTableState.ts +0 -0
@@ -188,12 +188,26 @@ const SLICE_GUARDS: Record<
188
188
  isRecordOf(value, (entry) => typeof entry === "boolean"),
189
189
  columnSizing: (value) => isRecordOf(value, isFiniteNumber),
190
190
  columnOrder: (value) => isArrayOf(value, isString),
191
+ // Both the current logical shape and the physical one 1.x wrote.
191
192
  columnPinning: (value) =>
192
- isArrayOf(prop(value, "left"), isString) &&
193
- isArrayOf(prop(value, "right"), isString),
193
+ (isArrayOf(prop(value, "start"), isString) &&
194
+ isArrayOf(prop(value, "end"), isString)) ||
195
+ (isArrayOf(prop(value, "left"), isString) &&
196
+ isArrayOf(prop(value, "right"), isString)),
194
197
  grouping: (value) => isArrayOf(value, isString),
195
198
  };
196
199
 
200
+ /**
201
+ * Settings saved by 1.x used TanStack's old physical `columnPinning` keys.
202
+ * Rewrite them once on read, so nothing downstream sees `left` / `right`.
203
+ */
204
+ function normalizeColumnPinning(value: unknown): unknown {
205
+ const left = prop(value, "left");
206
+ const right = prop(value, "right");
207
+ if (left === undefined || right === undefined) return value;
208
+ return { start: left, end: right };
209
+ }
210
+
197
211
  function isValidSlice(slice: keyof GridState, value: unknown): boolean {
198
212
  const guard = SLICE_GUARDS[slice as keyof typeof SLICE_GUARDS];
199
213
  return guard === undefined || guard(value);
@@ -219,7 +233,10 @@ function readSlices(
219
233
  for (const slice of resolved.slices) {
220
234
  if (!(slice in record)) continue;
221
235
  if (!isValidSlice(slice, record[slice])) continue;
222
- restored[slice] = record[slice];
236
+ restored[slice] =
237
+ slice === "columnPinning"
238
+ ? normalizeColumnPinning(record[slice])
239
+ : record[slice];
223
240
  }
224
241
  return restored as Partial<GridState>;
225
242
  } catch {
@@ -323,8 +340,8 @@ function realignToColumns(
323
340
  }
324
341
  if (restored.columnPinning) {
325
342
  realigned.columnPinning = {
326
- left: keepIds(restored.columnPinning.left ?? []),
327
- right: keepIds(restored.columnPinning.right ?? []),
343
+ start: keepIds(restored.columnPinning.start ?? []),
344
+ end: keepIds(restored.columnPinning.end ?? []),
328
345
  };
329
346
  }
330
347
  if (restored.sorting) realigned.sorting = keepEntries(restored.sorting);
@@ -1,6 +1,10 @@
1
- import { aggregationFns, type RowData } from "@tanstack/react-table";
1
+ import {
2
+ type AggregationContext,
3
+ aggregationFns,
4
+ type RowData,
5
+ } from "@tanstack/react-table";
2
6
  import type { TMDataGridRowData } from "../TMDataGridContext";
3
- import type { TMDataGridTable } from "../useTMDataGrid";
7
+ import type { TMDataGridFeatures, TMDataGridTable } from "../useTMDataGrid";
4
8
 
5
9
  /** The registered aggregation names - the same set `aggregationFn` accepts. */
6
10
  export type TMDataGridAggregationName = keyof typeof aggregationFns;
@@ -33,11 +37,23 @@ export function aggregateColumn<TData extends RowData>({
33
37
  fn?: TMDataGridAggregationName;
34
38
  }): unknown {
35
39
  const erased = table as unknown as TMDataGridTable<TMDataGridRowData>;
40
+ const column = erased.getColumn(columnId);
41
+ // A summary for a column the table does not hold has no value.
42
+ if (!column) return undefined;
36
43
  // `flatRows`, not `rows`: the filtered model nests under `getSubRows`, and
37
44
  // the top-level array would total a tree's roots and drop every child.
38
45
  // Grouping does not nest it - the group rows are built from this model, not
39
46
  // held in it - so a grouped grid is unaffected either way.
40
47
  const rows = erased.getFilteredRowModel().flatRows;
41
- // Leaf and child rows are the same set here: this is already every row.
42
- return aggregationFns[fn](columnId, rows, rows);
48
+ // The rows are already every row, so there is nothing below them to select:
49
+ // `maxDepth: 0`, and no `subRows` or `groupingRow` - this is not a group.
50
+ const context: AggregationContext<TMDataGridFeatures, TMDataGridRowData> = {
51
+ column,
52
+ columnId,
53
+ maxDepth: 0,
54
+ getValue: (row) => row.getValue(columnId),
55
+ rows,
56
+ table: erased,
57
+ };
58
+ return aggregationFns[fn].aggregate(context);
43
59
  }
@@ -8,14 +8,12 @@ export { SELECT_COLUMN_ID } from "./components/TMDataGridSelectColumn";
8
8
  export { DETAILS_COLUMN_ID } from "./components/TMDataGridDetailsColumn";
9
9
  export { EDIT_COLUMN_ID } from "./components/TMDataGridEditColumn";
10
10
  export { ROW_NUMBER_COLUMN_ID } from "./components/TMDataGridRowNumberColumn";
11
- export {
12
- formatGroupValue,
13
- GROUP_COLUMN_ID,
14
- } from "./components/TMDataGridGroupColumn";
11
+ export { GROUP_COLUMN_ID } from "./components/TMDataGridGroupColumn";
12
+ export { formatGroupValue } from "./core/grouping";
15
13
  export {
16
14
  createTMDataGridColumnHelper,
15
+ type TMDataGridColumnHelper,
17
16
  openColumnFilter,
18
- tmDataGridFeatures,
19
17
  type TMDataGridApi,
20
18
  type TMDataGridColumnMeta,
21
19
  type TMDataGridDetailsArgs,
@@ -32,6 +30,10 @@ export {
32
30
  useTMDataGrid,
33
31
  type UseTMDataGridOptions,
34
32
  } from "./useTMDataGrid";
33
+ export {
34
+ useTMDataGridExport,
35
+ type TMDataGridExportApi,
36
+ } from "./useTMDataGridExport";
35
37
  export {
36
38
  TMDataGridFilterPills,
37
39
  type TMDataGridFilterPillsProps,
@@ -40,14 +42,22 @@ export {
40
42
  TMDataGridSearch,
41
43
  type TMDataGridSearchProps,
42
44
  } from "./components/TMDataGridSearch";
45
+ export type {
46
+ TMDataGridMenuColumnsProps,
47
+ TMDataGridMenuExportProps,
48
+ TMDataGridMenuProps,
49
+ } from "./components/TMDataGridMenu";
43
50
  export {
51
+ type TMDataGridColumnFilter,
44
52
  type TMDataGridColumnType,
45
53
  type TMDataGridFilterOperator,
46
54
  type TMDataGridFilterValue,
55
+ type TMDataGridFilterValueShape,
56
+ activeColumnFilters,
47
57
  emptyValueForOperator,
48
58
  FILTER_OPERATOR_LABELS,
59
+ filterValueShape,
49
60
  formatFilterLabel,
50
- getDefaultOperator,
51
61
  getOperatorsForType,
52
62
  isFilterActive,
53
63
  operatorNeedsValue,
@@ -76,17 +86,19 @@ export {
76
86
  export {
77
87
  clearedValueForType,
78
88
  getEditFieldName,
89
+ hasPendingEdits,
79
90
  normalizeFieldValidate,
80
91
  type TMDataGridColumnEditOptions,
81
92
  type TMDataGridEditApi,
82
93
  type TMDataGridEditChange,
83
94
  type TMDataGridEditCommitArgs,
84
95
  type TMDataGridSaveDraftsArgs,
85
- type TMDataGridSaveDraftsResult,
96
+ type TMDataGridSaveDraftsResponse,
86
97
  type TMDataGridSaveOutcomes,
87
- type TMDataGridEditCommitDraftsArgs,
88
98
  type TMDataGridAddRowsOptions,
89
99
  type TMDataGridAddRowsResult,
100
+ type TMDataGridCommitAllResult,
101
+ type TMDataGridSaveDraftsResult,
90
102
  type TMDataGridEditField,
91
103
  type TMDataGridEditMode,
92
104
  type TMDataGridEditorArgs,
@@ -108,7 +120,18 @@ export type {
108
120
  TMDataGridColumnFilterOptions,
109
121
  TMDataGridFilterControlArgs,
110
122
  TMDataGridFilterControlComponent,
123
+ TMDataGridFilterControlLayout,
124
+ TMDataGridFilterPanelLayout,
111
125
  } from "./core/filterControls";
126
+ export type {
127
+ TMDataGridFiltersOptions,
128
+ TMDataGridFiltersSettings,
129
+ TMDataGridFilterSidebarSide,
130
+ TMDataGridFilterSurface,
131
+ } from "./core/filterSurface";
132
+ export type { TMDataGridFilterPanelProps } from "./components/TMDataGridFilterPanel";
133
+ export type { TMDataGridColumnsPanelProps } from "./components/TMDataGridColumnsPanel";
134
+ export type { TMDataGridToolbarProps } from "./components/TMDataGridToolbar";
112
135
  export { TMDataGridFilterValueInput } from "./components/filters/TMDataGridFilterValueInput";
113
136
  export { DgRangeSliderFilter } from "./components/filters/DgRangeSliderFilter";
114
137
  export { DgDateRangeFilter } from "./components/filters/DgDateRangeFilter";
@@ -129,50 +152,61 @@ export {
129
152
  export { TMDATAGRID_LABELS_SV } from "./core/labelsSv";
130
153
  export {
131
154
  getColumnDefaultOperator,
132
- getColumnFilterControl,
155
+ getColumnOperators,
133
156
  getColumnLabel,
134
157
  getColumnType,
135
- isColumnEditableForRow,
136
- isColumnReorderable,
137
158
  isControlColumn,
138
159
  isGeneratedColumn,
160
+ type TMDataGridColumnSearchable,
139
161
  } from "./core/columnUtils";
140
162
  export { getGroupDataRows } from "./core/grouping";
141
163
  export {
142
164
  aggregateColumn,
143
165
  type TMDataGridAggregationName,
144
166
  } from "./core/summary";
145
- export { autosizeColumn, measureColumnContentWidth } from "./core/autosize";
167
+ export { autosizeColumn } from "./core/autosize";
146
168
  export {
147
- isSameCell,
148
- resolveCellMove,
149
- type ResolveCellMoveArgs,
150
- type TMDataGridCellCoords,
151
169
  type TMDataGridCellPosition,
152
170
  } from "./core/cellNavigation";
153
171
  export {
154
- boundsCellCount,
155
- boundsEdges,
156
- isWithinBounds,
157
172
  resolveRangeBounds,
158
173
  type ResolveRangeBoundsArgs,
159
174
  type TMDataGridCellRange,
160
175
  type TMDataGridRangeBounds,
161
176
  } from "./core/cellRange";
162
177
  export {
163
- buildCellMatrix,
164
- buildGridCellMatrix,
165
- DEFAULT_CELL_EXPORT_OPTIONS,
166
- downloadTextFile,
167
- exportGridToCsv,
178
+ buildExportData,
179
+ countSelectedExportRows,
180
+ csvExcelFormat,
181
+ csvFormat,
182
+ DEFAULT_EXPORT_OPTIONS,
183
+ downloadFile,
184
+ exportGrid,
168
185
  formatExportValue,
186
+ getExportableColumns,
187
+ guardFormula,
188
+ jsonFormat,
189
+ resolveExportOptions,
169
190
  toClipboardText,
170
- toExcelCsv,
191
+ tsvFormat,
171
192
  writeClipboardText,
172
- type BuildCellMatrixArgs,
173
- type TMDataGridCellExportOptions,
174
- type TMDataGridCellMatrix,
175
- } from "./core/cellExport";
193
+ writeExportFile,
194
+ type BuildExportDataArgs,
195
+ type ExportGridArgs,
196
+ type TMDataGridClipboardTextOptions,
197
+ type TMDataGridCsvFormatOptions,
198
+ type TMDataGridExportColumns,
199
+ type TMDataGridExportData,
200
+ type TMDataGridExportFormat,
201
+ type TMDataGridExportOptions,
202
+ type TMDataGridExportPickerRequest,
203
+ type TMDataGridExportRows,
204
+ type TMDataGridExportSettings,
205
+ type TMDataGridExportValueGetter,
206
+ type TMDataGridExportWriteOptions,
207
+ type TMDataGridJsonFormatOptions,
208
+ type TMDataGridTsvFormatOptions,
209
+ } from "./core/export";
176
210
  export {
177
211
  areAllRowsExpanded,
178
212
  resolveExpandAll,
@@ -227,8 +261,6 @@ export {
227
261
  } from "./core/persistence";
228
262
  export type {
229
263
  TMDataGridCellEventArgs,
230
- TMDataGridCellNav,
231
- TMDataGridColumnLayout,
232
264
  TMDataGridRowContextMenuArgs,
233
265
  TMDataGridRowContextMenuRenderer,
234
266
  TMDataGridRowStyle,
@@ -238,12 +270,14 @@ export type {
238
270
  TMDataGridColumnMenuItemsArgs,
239
271
  TMDataGridColumnMenuItemsRenderer,
240
272
  } from "./components/TMDataGridHeaderCell";
273
+ export type {
274
+ TMDataGridFooterProps,
275
+ TMDataGridPaginationControls,
276
+ TMDataGridPaginationSlotArgs,
277
+ } from "./components/TMDataGridFooter";
241
278
  export {
242
279
  getTMDataGridPaginationApi,
243
- type TMDataGridFooterProps,
244
280
  type TMDataGridPaginationActions,
245
281
  type TMDataGridPaginationApi,
246
- type TMDataGridPaginationControls,
247
- type TMDataGridPaginationSlotArgs,
248
282
  type TMDataGridPaginationState,
249
- } from "./components/TMDataGridFooter";
283
+ } from "./core/pagination";