react-glide-table 1.0.2 → 1.1.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.
package/dist/index.d.cts CHANGED
@@ -1,22 +1,41 @@
1
1
  import * as react from 'react';
2
- import { ReactNode, ReactElement } from 'react';
3
- import { ColumnDef, RowSelectionState, Updater, Row } from '@tanstack/react-table';
2
+ import { ReactNode, ComponentType, RefObject, ReactElement } from 'react';
3
+ import { ColumnDef, RowSelectionState, Updater, Row, Table as Table$1 } from '@tanstack/react-table';
4
4
  export { ColumnDef, RowSelectionState } from '@tanstack/react-table';
5
+ import { Virtualizer, VirtualItem } from '@tanstack/react-virtual';
6
+
7
+ type DataTableLabels = {
8
+ empty: string;
9
+ loading: string;
10
+ selection: (selectedCount: number) => ReactNode;
11
+ expandRow: string;
12
+ collapseRow: string;
13
+ };
14
+ /** Default copy. Override via the `labels` option. */
15
+ declare const DEFAULT_DATA_TABLE_LABELS: DataTableLabels;
16
+ declare function resolveDataTableLabels(partial?: Partial<DataTableLabels>): DataTableLabels;
17
+
18
+ /** Neutral default field names for tree conversion */
19
+ declare const DEFAULT_TREE_ID_FIELD = "id";
20
+ declare const DEFAULT_TREE_PARENT_ID_FIELD = "parentId";
21
+ declare const DEFAULT_TREE_CHILDREN_FIELD = "children";
22
+ declare const DEFAULT_TREE_QTY_FIELD = "qty";
5
23
 
6
24
  type RowSelectionMode = "none" | "single" | "multi";
7
25
  type CellEditType = "text" | "number";
26
+
8
27
  declare module "@tanstack/react-table" {
9
28
  interface ColumnMeta<TData, TValue> {
10
- /** 세로 병합 대상 컬럼 여부 */
29
+ /** Whether this column participates in vertical row spanning */
11
30
  rowSpan?: boolean;
12
- /** 병합 기준 필드. 미지정 컬럼 id 사용 */
31
+ /** Merge key field. Falls back to the column id when omitted */
13
32
  rowSpanKey?: string;
14
33
  align?: "left" | "center" | "right";
15
34
  className?: string;
16
35
  headerClassName?: string;
17
- /** true 더블클릭으로 인라인 편집 가능 */
36
+ /** When true, double-click starts inline editing */
18
37
  editable?: boolean;
19
- /** 편집 입력 타입. 기본 text */
38
+ /** Inline editor input type. Defaults to text */
20
39
  editType?: CellEditType;
21
40
  }
22
41
  }
@@ -26,56 +45,127 @@ type DataTableProps<T extends Record<string, unknown>> = {
26
45
  rowSelectionMode?: RowSelectionMode;
27
46
  rowSelection?: RowSelectionState;
28
47
  onRowSelectionChange?: (updater: Updater<RowSelectionState>) => void;
29
- /** 전체 건수 (검색 전) */
48
+ /** Total row count before filtering */
30
49
  totalCount?: number;
31
- /** 현재 표시 건수 (검색 후) */
50
+ /** Visible row count after filtering */
32
51
  filteredCount?: number;
33
- /** 좌측 요약 영역 (예: 총 생산수량) */
52
+ /** Left-side summary slot */
34
53
  summary?: ReactNode;
35
- /** 우측 액션 슬롯 (Excel, 삭제, 작업전송 등) */
54
+ /** Right-side action slot */
36
55
  toolbar?: ReactNode;
37
- /** 선택 문구 커스터마이즈. 미지정 시 기본 "N개 선택됨" */
56
+ /**
57
+ * UI copy overrides.
58
+ * Takes precedence over `emptyText` / `selectionLabel`.
59
+ */
60
+ labels?: Partial<DataTableLabels>;
61
+ /** @deprecated Prefer `labels.selection` */
38
62
  selectionLabel?: (selectedCount: number) => ReactNode;
39
63
  isPending?: boolean;
64
+ /** @deprecated Prefer `labels.empty` */
40
65
  emptyText?: string;
66
+ /** @deprecated Prefer `labels.loading` */
67
+ loadingText?: string;
41
68
  enableRowSpan?: boolean;
42
69
  getRowId?: (row: T, index: number) => string;
43
70
  onRowClick?: (row: T, index: number) => void;
44
71
  preserveRowSelection?: boolean;
45
72
  getRowClassName?: (row: T, index: number) => string | undefined;
46
- /** false 반환하면 해당 행은 선택할 없음 ( 클릭·체크박스 모두 적용) */
73
+ /** Return false to make the row unselectable (row click and checkbox) */
47
74
  getRowCanSelect?: (row: T, index: number) => boolean;
48
- /** false 클릭으로 선택 토글하지 않음 (체크박스 컬럼만 선택할 때) */
75
+ /** When false, row click does not toggle selection (checkbox-only) */
49
76
  selectOnRowClick?: boolean;
50
- /** 셀 편집·채우기 핸들 완료 시 데이터 갱신 콜백 */
77
+ /**
78
+ * Enable cell drag selection and fill handle. Defaults to true.
79
+ * When false, browser text selection is allowed and cell selection UI is off.
80
+ */
81
+ enableCellSelection?: boolean;
82
+ /**
83
+ * @deprecated Combining with paged/tree-transformed data can corrupt the source.
84
+ * Prefer onCellChange / onBatchChange.
85
+ */
51
86
  onDataChange?: (data: T[]) => void;
87
+ /** Single-cell change (edit commit). Takes precedence over onDataChange */
88
+ onCellChange?: (rowId: string, columnId: string, value: unknown) => void;
89
+ /** Multi-cell change (fill handle, etc.). Takes precedence over onDataChange */
90
+ onBatchChange?: (changes: Array<{
91
+ rowId: string;
92
+ columnId: string;
93
+ value: unknown;
94
+ }>) => void;
95
+ /**
96
+ * Root className hook (combined with `DataTableJSX`).
97
+ * The package ships no CSS — style these hooks yourself or leave unstyled.
98
+ */
52
99
  className?: string;
53
- /** 확장 필드. 지정 트리 변환·로우 확장 UI 활성화 (예: materialCode) */
100
+ /** Expand key field. Enables tree conversion / expand UI when set. Default `id` */
54
101
  toggleField?: string;
55
- /** 자식부모 참조 필드 (기본: assemblyCode) */
102
+ /** Childparent reference field. Default `parentId` */
56
103
  childField?: string;
57
- /** 중첩 자식 배열 필드 (기본: assemblyMaterials) */
104
+ /** Nested children array field. Default `children` */
58
105
  flattenField?: string;
59
- /** 펼쳐진 Set (controlled) */
106
+ /** Parent quantity field used for parentCount. Default `qty` */
107
+ qtyField?: string;
108
+ /** Expanded row key set (controlled) */
60
109
  expandedRows?: Set<string>;
61
110
  onExpandedRowsChange?: (next: Set<string>) => void;
62
- /** true 토글 비활성(자식 항상 표시) */
111
+ /** When true, expand is disabled (children always visible) */
63
112
  preventExpand?: boolean;
64
113
  /**
65
- * 가상화 활성화. 기본 true.
66
- * enableRowSpan이 true면 병합 유지를 위해 가상화를 강제 비활성화합니다.
67
- * (HTML table + spacer 방식 유지, absolute/translateY 미사용)
114
+ * Enable row virtualization. Defaults to true.
115
+ * Forced off when enableRowSpan is true to preserve merges
116
+ * (HTML table + spacer rows; no absolute/translateY positioning).
68
117
  */
69
118
  enableVirtualization?: boolean;
70
- /** 가상화 예상 높이(px). 기본 44. 실측은 measureElement 보정 */
119
+ /** Estimated virtual row height in px. Default 44; refined via measureElement */
71
120
  estimateRowHeight?: number;
72
- /** 가상화 overscan 수. 기본 8 */
121
+ /** Virtualization overscan row count. Default 8 */
73
122
  virtualOverscan?: number;
123
+ /**
124
+ * Optional UI part replacements for the unstyled DataTable renderer.
125
+ * Use with `createTable` / `Table.Column`, or pass columns directly to `DataTable`.
126
+ */
127
+ slots?: DataTableSlots<T>;
128
+ };
129
+ type DataTableToolbarSlotProps = {
130
+ filteredCount?: number;
131
+ totalCount?: number;
132
+ summary?: ReactNode;
133
+ selectedCount: number;
134
+ selectionLabel?: (selectedCount: number) => ReactNode;
135
+ toolbar?: ReactNode;
136
+ className?: string;
137
+ };
138
+ type DataTableRowSlotProps<T extends Record<string, unknown>> = {
139
+ row: Row<T>;
140
+ onToggleSelect: () => void;
141
+ virtualIndex?: number;
142
+ measureElement?: (node: Element | null) => void;
143
+ };
144
+ /**
145
+ * Slot replacements for the default DataTable shell (semantic HTML + behavior only).
146
+ * Row-level custom UI → `Row`; cell content → `Table.Column` / column `render`.
147
+ * Header/Cell are not split into separate slots in this contract.
148
+ */
149
+ type DataTableSlots<T extends Record<string, unknown>> = {
150
+ /** Top summary / actions region */
151
+ Toolbar?: ComponentType<DataTableToolbarSlotProps>;
152
+ /** Full row replacement (cells, selection, edit UI) */
153
+ Row?: ComponentType<DataTableRowSlotProps<T>>;
154
+ /** Replace the pending state view */
155
+ Pending?: ComponentType<{
156
+ loadingText: string;
157
+ className?: string;
158
+ }>;
159
+ /** Replace the empty-state cell content */
160
+ Empty?: ComponentType<{
161
+ emptyText: string;
162
+ columnCount: number;
163
+ }>;
74
164
  };
75
165
  type TableColumnProps<T extends Record<string, unknown>, K extends string = keyof T & string> = {
76
- /** 컬럼 id. 데이터 필드명이거나 virtual 컬럼용 임의 문자열 */
166
+ /** Column id: data field name, or an arbitrary id for virtual columns */
77
167
  field: K;
78
- /** true accessorKey 없이 id 사용하는 가상 컬럼 (선택 체크박스, No. 등) */
168
+ /** When true, uses id only (no accessorKey) e.g. checkbox / No. columns */
79
169
  virtual?: boolean;
80
170
  children?: ReactNode;
81
171
  sortable?: boolean;
@@ -93,15 +183,261 @@ type TableProps<T extends Record<string, unknown>> = Omit<DataTableProps<T>, "co
93
183
  children: ReactNode;
94
184
  };
95
185
 
96
- declare function DataTable<T extends Record<string, unknown>>({ data, columns, rowSelectionMode, rowSelection: controlledRowSelection, onRowSelectionChange, totalCount, filteredCount, summary, toolbar, selectionLabel, isPending, emptyText, enableRowSpan, getRowId, onRowClick, getRowClassName, getRowCanSelect, selectOnRowClick, onDataChange, className, preserveRowSelection, toggleField, childField, flattenField, expandedRows: controlledExpandedRows, onExpandedRowsChange, preventExpand, enableVirtualization, estimateRowHeight, virtualOverscan, }: DataTableProps<T>): react.JSX.Element;
186
+ type EditingCell = {
187
+ rowIndex: number;
188
+ colIndex: number;
189
+ };
190
+ type ColumnDefLike = {
191
+ id?: string;
192
+ accessorKey?: unknown;
193
+ meta?: {
194
+ editable?: boolean;
195
+ editType?: CellEditType;
196
+ };
197
+ };
198
+ declare function isColumnEditable(columnDef: ColumnDefLike): boolean;
199
+ declare function getColumnEditType(columnDef: ColumnDefLike): CellEditType;
200
+ declare function parseCellEditValue(raw: string, editType: CellEditType): {
201
+ ok: true;
202
+ value: string | number | null;
203
+ } | {
204
+ ok: false;
205
+ };
206
+ declare function getCellEditDraftValue(value: unknown): string;
207
+ /** Returns updated data on success; null if parsing fails or the cell is not editable */
208
+ declare function applyCellEdit<T extends Record<string, unknown>>(data: T[], rows: Row<T>[], rowIndex: number, colIndex: number, raw: string): T[] | null;
209
+
210
+ type CellPosition = {
211
+ row: number;
212
+ col: number;
213
+ };
214
+ type CellSelectionBounds = {
215
+ startRow: number;
216
+ endRow: number;
217
+ startCol: number;
218
+ endCol: number;
219
+ };
220
+ type DragState = {
221
+ isSelecting: boolean;
222
+ isFillDragging: boolean;
223
+ start: CellPosition | null;
224
+ end: CellPosition | null;
225
+ /** Fixed anchor opposite the fill handle (top-left) */
226
+ fillAnchor: CellPosition | null;
227
+ fillEnd: CellPosition | null;
228
+ };
229
+ declare function getRowIndexInMergedCell(clientY: number, cellElement: HTMLElement, rowIndex: number, rowSpan: number): number;
230
+ declare function isCellInSelection(rowIndex: number, colIndex: number, bounds: CellSelectionBounds | null, rowSpan?: number): boolean;
231
+ declare const CELL_SELECTION_EDGES_CLASS = "cell-selection-edges";
232
+ type CellSelectionEdgeStyle = {
233
+ /** Full-side inset border applied via ::after */
234
+ ["--selection-edge-shadows"]?: string;
235
+ /** Partial vertical border for merged-cell step (stair) segments */
236
+ ["--selection-edge-gradients"]?: string;
237
+ ["--selection-edge-sizes"]?: string;
238
+ ["--selection-edge-positions"]?: string;
239
+ /** Hide internal horizontal grid lines inside the selection with background color */
240
+ borderBottomColor?: string;
241
+ };
242
+ /**
243
+ * Draws the selection border with ::after (extended -1px at the bottom) plus
244
+ * inset box-shadow / partial gradients so it does not break on the cell's
245
+ * border-bottom.
246
+ *
247
+ * @param isVisuallySelectedAt Whether a logical cell is visually selected
248
+ * (including adjacent merged cells). Used to suppress internal step borders
249
+ * when multiple columns have rowSpan.
250
+ */
251
+ declare function getCellSelectionEdgeStyle(rowIndex: number, colIndex: number, bounds: CellSelectionBounds | null, rowSpan?: number, isVisuallySelectedAt?: (row: number, col: number) => boolean): CellSelectionEdgeStyle | undefined;
252
+ declare function hasCellSelectionEdges(style: CellSelectionEdgeStyle | undefined): boolean;
253
+
254
+ type RowSpanInfo = {
255
+ /** 0 means skip render (merged into a parent row) */
256
+ rowSpan: number;
257
+ isFirstInGroup: boolean;
258
+ };
259
+ type ColumnRowSpanMap = Map<string, RowSpanInfo[]>;
260
+ /**
261
+ * Returns the start row and rowSpan of the merged cell covering a given row.
262
+ * Rows with rowSpan === 0 walk up to the merge origin.
263
+ */
264
+ declare function resolveRowSpanAt(rowSpans: RowSpanInfo[] | undefined, rowIndex: number): {
265
+ startRow: number;
266
+ rowSpan: number;
267
+ };
268
+ /**
269
+ * Computes merge info for every column that has rowSpan meta.
270
+ */
271
+ declare function buildColumnRowSpanMap<T extends Record<string, unknown>>(data: T[], columnKeys: Array<{
272
+ columnId: string;
273
+ rowSpanKey: string;
274
+ }>): ColumnRowSpanMap;
275
+ declare function collectRowSpanColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): Array<{
276
+ columnId: string;
277
+ rowSpanKey: string;
278
+ }>;
279
+
280
+ type RowData = Record<string, unknown>;
281
+ type DataTableRowContextValue = {
282
+ rowSpan: {
283
+ enableRowSpan: boolean;
284
+ primaryRowSpanKey?: string;
285
+ columnRowSpanMap: ColumnRowSpanMap;
286
+ hoveredRowIndex: number | null;
287
+ hoveredGroupKey: string | null;
288
+ selectedGroupKeys: Set<string>;
289
+ onRowHover: (rowIndex: number, rowData: RowData) => void;
290
+ };
291
+ selection: {
292
+ rowSelectionMode: RowSelectionMode;
293
+ selectOnRowClick: boolean;
294
+ onRowClick?: (row: RowData, index: number) => void;
295
+ getRowClassName?: (row: RowData, index: number) => string | undefined;
296
+ };
297
+ cellSelection: {
298
+ enableCellSelection: boolean;
299
+ activeSelectionBounds: CellSelectionBounds | null;
300
+ dragState: DragState;
301
+ onCellMouseDown: (rowIndex: number, colIndex: number) => void;
302
+ onCellMouseEnter: (rowIndex: number, colIndex: number) => void;
303
+ onFillHandleMouseDown: (rowIndex: number, colIndex: number) => void;
304
+ };
305
+ cellEdit: {
306
+ editingCell: EditingCell | null;
307
+ draftValue: string;
308
+ onDraftValueChange: (value: string) => void;
309
+ onStartEdit: (rowIndex: number, colIndex: number) => void;
310
+ onCommitEdit: (raw?: string) => boolean;
311
+ onCancelEdit: () => void;
312
+ };
313
+ expand: {
314
+ enableExpand: boolean;
315
+ toggleField?: string;
316
+ expandedRows?: Set<string>;
317
+ preventExpand: boolean;
318
+ onToggleExpand?: (rowKey: string) => void;
319
+ expandRowLabel: string;
320
+ collapseRowLabel: string;
321
+ };
322
+ };
323
+
324
+ type UseGlideTableOptions<T extends Record<string, unknown>> = Omit<DataTableProps<T>, "className" | "slots" | "summary" | "toolbar" | "isPending" | "totalCount" | "filteredCount">;
325
+ type UseGlideTableResult<T extends Record<string, unknown>> = {
326
+ table: Table$1<T>;
327
+ tableData: T[];
328
+ rows: Row<T>[];
329
+ columnCount: number;
330
+ selectedCount: number;
331
+ labels: DataTableLabels;
332
+ emptyText: string;
333
+ loadingText: string;
334
+ selectionLabel: DataTableLabels["selection"];
335
+ enableCellSelection: boolean;
336
+ shouldVirtualize: boolean;
337
+ scrollRef: RefObject<HTMLDivElement | null>;
338
+ rowVirtualizer: Virtualizer<HTMLDivElement, Element>;
339
+ virtualRows: VirtualItem[];
340
+ paddingTop: number;
341
+ paddingBottom: number;
342
+ rowContextValue: DataTableRowContextValue;
343
+ handleToggleSelect: (row: Row<T>) => void;
344
+ clearHover: () => void;
345
+ };
346
+ declare function useGlideTable<T extends Record<string, unknown>>(options: UseGlideTableOptions<T>): UseGlideTableResult<T>;
347
+
348
+ type UseCellEditOptions<T extends Record<string, unknown>> = {
349
+ data: T[];
350
+ rows: Row<T>[];
351
+ onDataChange?: (data: T[]) => void;
352
+ onCellChange?: (rowId: string, columnId: string, value: unknown) => void;
353
+ };
354
+ declare function useCellEdit<T extends Record<string, unknown>>({ data, rows, onDataChange, onCellChange, }: UseCellEditOptions<T>): {
355
+ editingCell: EditingCell | null;
356
+ draftValue: string;
357
+ setDraftValue: react.Dispatch<react.SetStateAction<string>>;
358
+ startEdit: (rowIndex: number, colIndex: number) => void;
359
+ commitEdit: (raw?: string) => boolean;
360
+ cancelEdit: () => void;
361
+ };
362
+
363
+ type UseCellSelectionOptions<T extends Record<string, unknown>> = {
364
+ data: T[];
365
+ rows: Row<T>[];
366
+ enabled?: boolean;
367
+ onDataChange?: (data: T[]) => void;
368
+ onBatchChange?: (changes: Array<{
369
+ rowId: string;
370
+ columnId: string;
371
+ value: unknown;
372
+ }>) => void;
373
+ };
374
+ declare function useCellSelection<T extends Record<string, unknown>>({ data, rows, enabled, onDataChange, onBatchChange, }: UseCellSelectionOptions<T>): {
375
+ dragState: DragState;
376
+ activeSelectionBounds: CellSelectionBounds | null;
377
+ handleCellMouseDown: (rowIndex: number, colIndex: number) => void;
378
+ handleCellMouseEnter: (rowIndex: number, colIndex: number) => void;
379
+ handleFillHandleMouseDown: (rowIndex: number, colIndex: number) => void;
380
+ };
381
+
382
+ type CellChange = {
383
+ rowId: string;
384
+ columnId: string;
385
+ value: unknown;
386
+ };
387
+ declare function collectFillChanges<T extends Record<string, unknown>>(rows: Row<T>[], sourceBounds: CellSelectionBounds, fillBounds: CellSelectionBounds): CellChange[];
388
+ declare function applyFillData<T extends Record<string, unknown>>(data: T[], rows: Row<T>[], sourceBounds: CellSelectionBounds, fillBounds: CellSelectionBounds): T[];
389
+
390
+ type TreeRow<T extends Record<string, unknown> = Record<string, unknown>> = T & {
391
+ level: number;
392
+ children: TreeRow<T>[];
393
+ treeNo?: string;
394
+ uniqueId?: string;
395
+ parentCount?: number;
396
+ processed?: boolean;
397
+ };
398
+ type UseConvertTreeDataParams<T extends Record<string, unknown>> = {
399
+ data: T[] | null;
400
+ /** When false, returns data unchanged (plain DataTable) */
401
+ enabled?: boolean;
402
+ /** Row id / expand key field (idField). Defaults to `id` */
403
+ toggleField?: string;
404
+ /** Child → parent reference field (parentIdField). Defaults to `parentId` */
405
+ childField?: string;
406
+ /** Nested children array field (childrenField). Defaults to `children` */
407
+ flattenField?: string;
408
+ /** Parent quantity field (qtyField). Used for parentCount. Defaults to `qty` */
409
+ qtyField?: string;
410
+ preventExpand?: boolean;
411
+ startIndex?: number;
412
+ expandedRows?: Set<string>;
413
+ onExpandedRowsChange?: (next: Set<string>) => void;
414
+ };
415
+ declare function canExpandRow(row: Record<string, unknown>): boolean;
416
+ declare function toggleExpandedRowId(rowId: string, previous: Set<string>): Set<string>;
417
+ /**
418
+ * Builds a tree from flat/nested data, then returns only rows visible under expandedRows.
419
+ * When enabled=false, returns data as-is.
420
+ */
421
+ declare const useConvertTreeData: <T extends Record<string, unknown>>({ data, enabled, toggleField, childField, flattenField, qtyField, preventExpand, startIndex, expandedRows, onExpandedRowsChange, }: UseConvertTreeDataParams<T>) => T[];
422
+
423
+ declare function resolveRowSelection(mode: RowSelectionMode, controlledSelection: RowSelectionState | undefined, internalSelection: RowSelectionState): RowSelectionState;
424
+ declare function applySelectionUpdater(mode: RowSelectionMode, updater: Updater<RowSelectionState>, previous: RowSelectionState): RowSelectionState;
425
+
426
+ /**
427
+ * Unstyled DataTable shell: semantic HTML + interaction behavior.
428
+ * Class hooks (`DataTableJSX`, `data-table`, …) are opt-in — no CSS is shipped.
429
+ * Customize via `className`, column `className` / `headerClassName`, `labels`,
430
+ * `summary` / `toolbar`, `Column.render`, and `slots`.
431
+ */
432
+ declare function DataTable<T extends Record<string, unknown>>({ isPending, summary, toolbar, filteredCount, totalCount, className, slots, ...glideOptions }: DataTableProps<T>): react.JSX.Element;
97
433
 
98
- /** 본문 슬롯 마커. 실제 tbody는 DataTable이 렌더합니다. */
434
+ /** Body slot marker. DataTable renders the actual tbody. */
99
435
  declare function TableBody(): null;
100
436
  declare namespace TableBody {
101
437
  var displayName: string;
102
438
  }
103
439
 
104
- /** Table.Header 안에서만 사용합니다. DOM을 렌더하지 않고 컬럼 정의만 등록합니다. */
440
+ /** Used only inside Table.Header. Registers a column definition; does not render DOM. */
105
441
  declare function TableColumn<T extends Record<string, unknown>, K extends string = keyof T & string>(props: TableColumnProps<T, K>): null;
106
442
  declare namespace TableColumn {
107
443
  var displayName: string;
@@ -110,7 +446,7 @@ declare namespace TableColumn {
110
446
  type TableHeaderProps = {
111
447
  children: ReactNode;
112
448
  };
113
- /** 컬럼 선언 슬롯. DOM을 렌더하지 않습니다. */
449
+ /** Column declaration slot. Does not render DOM. */
114
450
  declare function TableHeader(props: TableHeaderProps): null;
115
451
  declare namespace TableHeader {
116
452
  var displayName: string;
@@ -143,4 +479,4 @@ declare const Table: typeof TableRoot & {
143
479
  Pagination: typeof TablePagination;
144
480
  };
145
481
 
146
- export { DataTable, type DataTableProps, type RowSelectionMode, Table, type TableColumnProps, type TableCompoundComponent, type TableProps, createTable };
482
+ export { CELL_SELECTION_EDGES_CLASS, type CellSelectionBounds, type ColumnRowSpanMap, DEFAULT_DATA_TABLE_LABELS, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DataTable, type DataTableLabels, type DataTableProps, type DataTableSlots, type DragState, type EditingCell, type RowSelectionMode, type RowSpanInfo, Table, type TableColumnProps, type TableCompoundComponent, type TableProps, type TreeRow, type UseConvertTreeDataParams, type UseGlideTableOptions, type UseGlideTableResult, applyCellEdit, applyFillData, applySelectionUpdater, buildColumnRowSpanMap, canExpandRow, collectFillChanges, collectRowSpanColumns, createTable, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, parseCellEditValue, resolveDataTableLabels, resolveRowSelection, resolveRowSpanAt, toggleExpandedRowId, useCellEdit, useCellSelection, useConvertTreeData, useGlideTable };