react-glide-table 2.1.0 → 2.2.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/core.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { W as CellEditType, c as CellRenderer, C as CellKind, a as CellRenderContext, i as DataTableClassNames, R as RowSelectionMode, g as ColumnFreezeOffset, p as SearchResultItem, q as SearchStatus, l as DataTableProps, k as DataTableLabels, j as DataTableCopyActions, P as PasteMode, o as RowsPastePayload } from './types-CMUGtH-c.cjs';
2
- export { B as BuiltinCellKind, b as CellRenderFn, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, I as INLINE_SEARCH_MAX_RESULTS, S as SearchCorpusRow, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CMUGtH-c.cjs';
1
+ import { W as CellEditType, c as CellRenderer, C as CellKind, a as CellRenderContext, i as DataTableClassNames, R as RowSelectionMode, g as ColumnFreezeOffset, p as SearchResultItem, q as SearchStatus, l as DataTableProps, k as DataTableLabels, j as DataTableCopyActions, P as PasteMode, o as RowsPastePayload } from './types-CnsQ8GZb.cjs';
2
+ export { B as BuiltinCellKind, b as CellRenderFn, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, I as INLINE_SEARCH_MAX_RESULTS, S as SearchCorpusRow, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CnsQ8GZb.cjs';
3
3
  import { Row, ColumnDef, CellContext, Table, Cell, ColumnOrderState, Updater, RowSelectionState } from '@tanstack/react-table';
4
4
  export { ColumnDef, ColumnOrderState, ColumnResizeMode, ColumnSizingState, RowSelectionState } from '@tanstack/react-table';
5
5
  import { Virtualizer, VirtualItem } from '@tanstack/react-virtual';
@@ -115,6 +115,15 @@ type RowSpanInfo = {
115
115
  rowSpan: number;
116
116
  isFirstInGroup: boolean;
117
117
  };
118
+ type RowSpanColumnSpec = {
119
+ columnId: string;
120
+ rowSpanKey: string;
121
+ /**
122
+ * Column ids, rowSpanKeys, or row fields this merge cannot cross.
123
+ * Omit (or leave undefined) to merge independently of other rowSpan columns.
124
+ */
125
+ rowSpanParent?: readonly string[];
126
+ };
118
127
  type ColumnRowSpanMap = Map<string, RowSpanInfo[]>;
119
128
  /**
120
129
  * Returns the start row and rowSpan of the merged cell covering a given row.
@@ -126,15 +135,11 @@ declare function resolveRowSpanAt(rowSpans: RowSpanInfo[] | undefined, rowIndex:
126
135
  };
127
136
  /**
128
137
  * Computes merge info for every column that has rowSpan meta.
138
+ * Columns without `rowSpanParent` merge independently. Columns with a parent
139
+ * only merge inside that parent field / column's groups.
129
140
  */
130
- declare function buildColumnRowSpanMap<T extends Record<string, unknown>>(data: T[], columnKeys: Array<{
131
- columnId: string;
132
- rowSpanKey: string;
133
- }>): ColumnRowSpanMap;
134
- declare function collectRowSpanColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): Array<{
135
- columnId: string;
136
- rowSpanKey: string;
137
- }>;
141
+ declare function buildColumnRowSpanMap<T extends Record<string, unknown>>(data: T[], columnKeys: RowSpanColumnSpec[]): ColumnRowSpanMap;
142
+ declare function collectRowSpanColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): RowSpanColumnSpec[];
138
143
 
139
144
  type RowData = Record<string, unknown>;
140
145
  type DataTableRowContextValue = {
@@ -335,11 +340,16 @@ declare function ResolvedTableCell<T extends Record<string, unknown>>({ info, }:
335
340
  info: CellContext<T, unknown>;
336
341
  }): react.ReactNode;
337
342
 
338
- /** Width styles for header/body cells when column sizing is active. */
339
- declare function getColumnSizeStyle(size: number, options?: {
343
+ type ColumnSizeStyleOptions = {
340
344
  force?: boolean;
341
345
  lockMax?: boolean;
342
- }): CSSProperties | undefined;
346
+ /** CSS min-width for the cell. Ignored when `lockMax` is on. */
347
+ minWidth?: number;
348
+ /** CSS max-width for the cell. Ignored when `lockMax` is on. */
349
+ maxWidth?: number;
350
+ };
351
+ /** Width styles for header/body cells when column sizing is active. */
352
+ declare function getColumnSizeStyle(size: number, options?: ColumnSizeStyleOptions): CSSProperties | undefined;
343
353
 
344
354
  type ColumnDropEdge = "before" | "after";
345
355
  declare function collectLeafColumnIds<T>(columns: readonly ColumnDef<T, unknown>[]): string[];
@@ -497,4 +507,4 @@ declare const useConvertTreeData: <T extends Record<string, unknown>>({ data, en
497
507
  declare function resolveRowSelection(mode: RowSelectionMode, controlledSelection: RowSelectionState | undefined, internalSelection: RowSelectionState): RowSelectionState;
498
508
  declare function applySelectionUpdater(mode: RowSelectionMode, updater: Updater<RowSelectionState>, previous: RowSelectionState): RowSelectionState;
499
509
 
500
- export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, type CellContextWithUpdate, CellKind, CellRenderContext, CellRenderer, type CellRendererRegistry, type CellSelectionBounds, type ColumnDropEdge, ColumnFreezeOffset, type ColumnRowSpanMap, type CopyRowEntry, type CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DataTableCopyActions, DataTableLabels, DataTableProps, type DragState, type EditingCell, PasteMode, ResolvedTableCell, RowSelectionMode, type RowSpanInfo, RowsPastePayload, SearchResultItem, SearchStatus, type TreeRow, type UseConvertTreeDataParams, type UseGlideTableOptions, type UseGlideTableResult, type UseInlineSearchOptions, type UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard };
510
+ export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, type CellContextWithUpdate, CellKind, CellRenderContext, CellRenderer, type CellRendererRegistry, type CellSelectionBounds, type ColumnDropEdge, ColumnFreezeOffset, type ColumnRowSpanMap, type CopyRowEntry, type CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DataTableCopyActions, DataTableLabels, DataTableProps, type DragState, type EditingCell, PasteMode, ResolvedTableCell, RowSelectionMode, type RowSpanColumnSpec, type RowSpanInfo, RowsPastePayload, SearchResultItem, SearchStatus, type TreeRow, type UseConvertTreeDataParams, type UseGlideTableOptions, type UseGlideTableResult, type UseInlineSearchOptions, type UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard };
package/dist/core.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { W as CellEditType, c as CellRenderer, C as CellKind, a as CellRenderContext, i as DataTableClassNames, R as RowSelectionMode, g as ColumnFreezeOffset, p as SearchResultItem, q as SearchStatus, l as DataTableProps, k as DataTableLabels, j as DataTableCopyActions, P as PasteMode, o as RowsPastePayload } from './types-CMUGtH-c.js';
2
- export { B as BuiltinCellKind, b as CellRenderFn, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, I as INLINE_SEARCH_MAX_RESULTS, S as SearchCorpusRow, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CMUGtH-c.js';
1
+ import { W as CellEditType, c as CellRenderer, C as CellKind, a as CellRenderContext, i as DataTableClassNames, R as RowSelectionMode, g as ColumnFreezeOffset, p as SearchResultItem, q as SearchStatus, l as DataTableProps, k as DataTableLabels, j as DataTableCopyActions, P as PasteMode, o as RowsPastePayload } from './types-CnsQ8GZb.js';
2
+ export { B as BuiltinCellKind, b as CellRenderFn, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, I as INLINE_SEARCH_MAX_RESULTS, S as SearchCorpusRow, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CnsQ8GZb.js';
3
3
  import { Row, ColumnDef, CellContext, Table, Cell, ColumnOrderState, Updater, RowSelectionState } from '@tanstack/react-table';
4
4
  export { ColumnDef, ColumnOrderState, ColumnResizeMode, ColumnSizingState, RowSelectionState } from '@tanstack/react-table';
5
5
  import { Virtualizer, VirtualItem } from '@tanstack/react-virtual';
@@ -115,6 +115,15 @@ type RowSpanInfo = {
115
115
  rowSpan: number;
116
116
  isFirstInGroup: boolean;
117
117
  };
118
+ type RowSpanColumnSpec = {
119
+ columnId: string;
120
+ rowSpanKey: string;
121
+ /**
122
+ * Column ids, rowSpanKeys, or row fields this merge cannot cross.
123
+ * Omit (or leave undefined) to merge independently of other rowSpan columns.
124
+ */
125
+ rowSpanParent?: readonly string[];
126
+ };
118
127
  type ColumnRowSpanMap = Map<string, RowSpanInfo[]>;
119
128
  /**
120
129
  * Returns the start row and rowSpan of the merged cell covering a given row.
@@ -126,15 +135,11 @@ declare function resolveRowSpanAt(rowSpans: RowSpanInfo[] | undefined, rowIndex:
126
135
  };
127
136
  /**
128
137
  * Computes merge info for every column that has rowSpan meta.
138
+ * Columns without `rowSpanParent` merge independently. Columns with a parent
139
+ * only merge inside that parent field / column's groups.
129
140
  */
130
- declare function buildColumnRowSpanMap<T extends Record<string, unknown>>(data: T[], columnKeys: Array<{
131
- columnId: string;
132
- rowSpanKey: string;
133
- }>): ColumnRowSpanMap;
134
- declare function collectRowSpanColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): Array<{
135
- columnId: string;
136
- rowSpanKey: string;
137
- }>;
141
+ declare function buildColumnRowSpanMap<T extends Record<string, unknown>>(data: T[], columnKeys: RowSpanColumnSpec[]): ColumnRowSpanMap;
142
+ declare function collectRowSpanColumns<T extends Record<string, unknown>>(columns: ColumnDef<T, unknown>[]): RowSpanColumnSpec[];
138
143
 
139
144
  type RowData = Record<string, unknown>;
140
145
  type DataTableRowContextValue = {
@@ -335,11 +340,16 @@ declare function ResolvedTableCell<T extends Record<string, unknown>>({ info, }:
335
340
  info: CellContext<T, unknown>;
336
341
  }): react.ReactNode;
337
342
 
338
- /** Width styles for header/body cells when column sizing is active. */
339
- declare function getColumnSizeStyle(size: number, options?: {
343
+ type ColumnSizeStyleOptions = {
340
344
  force?: boolean;
341
345
  lockMax?: boolean;
342
- }): CSSProperties | undefined;
346
+ /** CSS min-width for the cell. Ignored when `lockMax` is on. */
347
+ minWidth?: number;
348
+ /** CSS max-width for the cell. Ignored when `lockMax` is on. */
349
+ maxWidth?: number;
350
+ };
351
+ /** Width styles for header/body cells when column sizing is active. */
352
+ declare function getColumnSizeStyle(size: number, options?: ColumnSizeStyleOptions): CSSProperties | undefined;
343
353
 
344
354
  type ColumnDropEdge = "before" | "after";
345
355
  declare function collectLeafColumnIds<T>(columns: readonly ColumnDef<T, unknown>[]): string[];
@@ -497,4 +507,4 @@ declare const useConvertTreeData: <T extends Record<string, unknown>>({ data, en
497
507
  declare function resolveRowSelection(mode: RowSelectionMode, controlledSelection: RowSelectionState | undefined, internalSelection: RowSelectionState): RowSelectionState;
498
508
  declare function applySelectionUpdater(mode: RowSelectionMode, updater: Updater<RowSelectionState>, previous: RowSelectionState): RowSelectionState;
499
509
 
500
- export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, type CellContextWithUpdate, CellKind, CellRenderContext, CellRenderer, type CellRendererRegistry, type CellSelectionBounds, type ColumnDropEdge, ColumnFreezeOffset, type ColumnRowSpanMap, type CopyRowEntry, type CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DataTableCopyActions, DataTableLabels, DataTableProps, type DragState, type EditingCell, PasteMode, ResolvedTableCell, RowSelectionMode, type RowSpanInfo, RowsPastePayload, SearchResultItem, SearchStatus, type TreeRow, type UseConvertTreeDataParams, type UseGlideTableOptions, type UseGlideTableResult, type UseInlineSearchOptions, type UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard };
510
+ export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, type CellContextWithUpdate, CellKind, CellRenderContext, CellRenderer, type CellRendererRegistry, type CellSelectionBounds, type ColumnDropEdge, ColumnFreezeOffset, type ColumnRowSpanMap, type CopyRowEntry, type CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DataTableCopyActions, DataTableLabels, DataTableProps, type DragState, type EditingCell, PasteMode, ResolvedTableCell, RowSelectionMode, type RowSpanColumnSpec, type RowSpanInfo, RowsPastePayload, SearchResultItem, SearchStatus, type TreeRow, type UseConvertTreeDataParams, type UseGlideTableOptions, type UseGlideTableResult, type UseInlineSearchOptions, type UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard };
package/dist/core.js CHANGED
@@ -2210,23 +2210,49 @@ function applySelectionUpdater(mode, updater, previous) {
2210
2210
  function getRowFieldValue(row, key) {
2211
2211
  return row[key];
2212
2212
  }
2213
- function computeRowSpans(data, rowSpanKey) {
2213
+ function normalizeRowSpanParent(value) {
2214
+ if (!value) return [];
2215
+ return typeof value === "string" ? [value] : [...value];
2216
+ }
2217
+ function toParentSpanList(parentSpans) {
2218
+ if (!parentSpans?.length) return [];
2219
+ const first = parentSpans[0];
2220
+ if (!Array.isArray(first)) {
2221
+ return [parentSpans];
2222
+ }
2223
+ return parentSpans;
2224
+ }
2225
+ function buildStartRowLookup(spans) {
2226
+ const startRows = new Array(spans.length);
2227
+ let origin = 0;
2228
+ for (let i = 0; i < spans.length; i++) {
2229
+ if ((spans[i]?.rowSpan ?? 1) > 0) origin = i;
2230
+ startRows[i] = origin;
2231
+ }
2232
+ return startRows;
2233
+ }
2234
+ function sharesParentGroup(parentStartRows, rowIndex) {
2235
+ if (parentStartRows.length === 0 || rowIndex <= 0) return true;
2236
+ return parentStartRows.every(
2237
+ (startRows) => startRows[rowIndex - 1] === startRows[rowIndex]
2238
+ );
2239
+ }
2240
+ function computeRowSpans(data, rowSpanKey, parentSpans) {
2214
2241
  if (data.length === 0) return [];
2242
+ const parentStartRows = toParentSpanList(parentSpans).map(buildStartRowLookup);
2215
2243
  const result = [];
2216
2244
  for (let index = 0; index < data.length; index++) {
2217
2245
  const currentValue = getRowFieldValue(data[index], rowSpanKey);
2218
2246
  const previousValue = index > 0 ? getRowFieldValue(data[index - 1], rowSpanKey) : void 0;
2219
- if (index > 0 && currentValue === previousValue) {
2247
+ if (index > 0 && currentValue === previousValue && sharesParentGroup(parentStartRows, index)) {
2220
2248
  result.push({ rowSpan: 0, isFirstInGroup: false });
2221
2249
  continue;
2222
2250
  }
2223
2251
  let span = 1;
2224
2252
  for (let nextIndex = index + 1; nextIndex < data.length; nextIndex++) {
2225
- if (getRowFieldValue(data[nextIndex], rowSpanKey) === currentValue) {
2226
- span++;
2227
- } else {
2228
- break;
2229
- }
2253
+ if (getRowFieldValue(data[nextIndex], rowSpanKey) !== currentValue) break;
2254
+ if (!sharesParentGroup(parentStartRows, nextIndex)) break;
2255
+ span++;
2230
2256
  }
2231
2257
  result.push({ rowSpan: span, isFirstInGroup: true });
2232
2258
  }
@@ -2248,10 +2274,50 @@ function resolveRowSpanAt(rowSpans, rowIndex) {
2248
2274
  }
2249
2275
  return { startRow: rowIndex, rowSpan: 1 };
2250
2276
  }
2277
+ function findRowSpanColumn(spec, ref) {
2278
+ return spec.find((column) => column.columnId === ref) ?? spec.find((column) => column.rowSpanKey === ref);
2279
+ }
2251
2280
  function buildColumnRowSpanMap(data, columnKeys) {
2252
2281
  const map = /* @__PURE__ */ new Map();
2253
- for (const { columnId, rowSpanKey } of columnKeys) {
2254
- map.set(columnId, computeRowSpans(data, rowSpanKey));
2282
+ const visiting = /* @__PURE__ */ new Set();
2283
+ const warnedCycles = /* @__PURE__ */ new Set();
2284
+ const virtualParents = /* @__PURE__ */ new Map();
2285
+ const spansForColumn = (columnId) => {
2286
+ const cached = map.get(columnId);
2287
+ if (cached !== void 0) return cached;
2288
+ const column = columnKeys.find((item) => item.columnId === columnId);
2289
+ if (!column) return void 0;
2290
+ if (visiting.has(columnId)) {
2291
+ if (!warnedCycles.has(columnId)) {
2292
+ warnedCycles.add(columnId);
2293
+ console.warn(
2294
+ `[rowSpan] rowSpanParent cycle detected at column "${columnId}"; dropping the cyclic parent reference.`
2295
+ );
2296
+ }
2297
+ return void 0;
2298
+ }
2299
+ visiting.add(columnId);
2300
+ const parentSpans = (column.rowSpanParent ?? []).map((ref) => spansForParentRef(ref)).filter((spans2) => Boolean(spans2));
2301
+ visiting.delete(columnId);
2302
+ const spans = computeRowSpans(
2303
+ data,
2304
+ column.rowSpanKey,
2305
+ parentSpans.length > 0 ? parentSpans : void 0
2306
+ );
2307
+ map.set(columnId, spans);
2308
+ return spans;
2309
+ };
2310
+ const spansForParentRef = (ref) => {
2311
+ const parentColumn = findRowSpanColumn(columnKeys, ref);
2312
+ if (parentColumn) return spansForColumn(parentColumn.columnId);
2313
+ const cached = virtualParents.get(ref);
2314
+ if (cached !== void 0) return cached;
2315
+ const spans = computeRowSpans(data, ref);
2316
+ virtualParents.set(ref, spans);
2317
+ return spans;
2318
+ };
2319
+ for (const column of columnKeys) {
2320
+ spansForColumn(column.columnId);
2255
2321
  }
2256
2322
  return map;
2257
2323
  }
@@ -2267,7 +2333,8 @@ function collectRowSpanColumns(columns) {
2267
2333
  if (!columnId || !columnDef.meta?.rowSpan) continue;
2268
2334
  result.push({
2269
2335
  columnId,
2270
- rowSpanKey: columnDef.meta.rowSpanKey ?? columnId
2336
+ rowSpanKey: columnDef.meta.rowSpanKey ?? columnId,
2337
+ rowSpanParent: normalizeRowSpanParent(columnDef.meta.rowSpanParent)
2271
2338
  });
2272
2339
  }
2273
2340
  };
@@ -2969,15 +3036,29 @@ function ResolvedTableCell({
2969
3036
 
2970
3037
  // src/components/ui/table/features/column-resize/columnResize.ts
2971
3038
  function getColumnSizeStyle(size, options) {
2972
- const { force = false, lockMax = false } = options ?? {};
2973
- if (!force && size === DATA_TABLE_COLUMN_SIZE) {
3039
+ const { force = false, lockMax = false, minWidth, maxWidth } = options ?? {};
3040
+ if (lockMax) {
3041
+ return {
3042
+ width: size,
3043
+ minWidth: size,
3044
+ maxWidth: size
3045
+ };
3046
+ }
3047
+ const hasExplicitSize = force || size !== DATA_TABLE_COLUMN_SIZE;
3048
+ if (!hasExplicitSize && minWidth == null && maxWidth == null) {
2974
3049
  return void 0;
2975
3050
  }
2976
- return {
2977
- width: size,
2978
- minWidth: size,
2979
- ...lockMax ? { maxWidth: size } : {}
2980
- };
3051
+ const style = {};
3052
+ if (hasExplicitSize) {
3053
+ style.width = size;
3054
+ style.minWidth = minWidth ?? size;
3055
+ } else if (minWidth != null) {
3056
+ style.minWidth = minWidth;
3057
+ }
3058
+ if (maxWidth != null) {
3059
+ style.maxWidth = maxWidth;
3060
+ }
3061
+ return style;
2981
3062
  }
2982
3063
 
2983
3064
  // src/components/ui/table/features/column-reorder/useColumnReorder.ts
package/dist/index.cjs CHANGED
@@ -2314,23 +2314,49 @@ function applySelectionUpdater(mode, updater, previous) {
2314
2314
  function getRowFieldValue(row, key) {
2315
2315
  return row[key];
2316
2316
  }
2317
- function computeRowSpans(data, rowSpanKey) {
2317
+ function normalizeRowSpanParent(value) {
2318
+ if (!value) return [];
2319
+ return typeof value === "string" ? [value] : [...value];
2320
+ }
2321
+ function toParentSpanList(parentSpans) {
2322
+ if (!parentSpans?.length) return [];
2323
+ const first = parentSpans[0];
2324
+ if (!Array.isArray(first)) {
2325
+ return [parentSpans];
2326
+ }
2327
+ return parentSpans;
2328
+ }
2329
+ function buildStartRowLookup(spans) {
2330
+ const startRows = new Array(spans.length);
2331
+ let origin = 0;
2332
+ for (let i = 0; i < spans.length; i++) {
2333
+ if ((spans[i]?.rowSpan ?? 1) > 0) origin = i;
2334
+ startRows[i] = origin;
2335
+ }
2336
+ return startRows;
2337
+ }
2338
+ function sharesParentGroup(parentStartRows, rowIndex) {
2339
+ if (parentStartRows.length === 0 || rowIndex <= 0) return true;
2340
+ return parentStartRows.every(
2341
+ (startRows) => startRows[rowIndex - 1] === startRows[rowIndex]
2342
+ );
2343
+ }
2344
+ function computeRowSpans(data, rowSpanKey, parentSpans) {
2318
2345
  if (data.length === 0) return [];
2346
+ const parentStartRows = toParentSpanList(parentSpans).map(buildStartRowLookup);
2319
2347
  const result = [];
2320
2348
  for (let index = 0; index < data.length; index++) {
2321
2349
  const currentValue = getRowFieldValue(data[index], rowSpanKey);
2322
2350
  const previousValue = index > 0 ? getRowFieldValue(data[index - 1], rowSpanKey) : void 0;
2323
- if (index > 0 && currentValue === previousValue) {
2351
+ if (index > 0 && currentValue === previousValue && sharesParentGroup(parentStartRows, index)) {
2324
2352
  result.push({ rowSpan: 0, isFirstInGroup: false });
2325
2353
  continue;
2326
2354
  }
2327
2355
  let span = 1;
2328
2356
  for (let nextIndex = index + 1; nextIndex < data.length; nextIndex++) {
2329
- if (getRowFieldValue(data[nextIndex], rowSpanKey) === currentValue) {
2330
- span++;
2331
- } else {
2332
- break;
2333
- }
2357
+ if (getRowFieldValue(data[nextIndex], rowSpanKey) !== currentValue) break;
2358
+ if (!sharesParentGroup(parentStartRows, nextIndex)) break;
2359
+ span++;
2334
2360
  }
2335
2361
  result.push({ rowSpan: span, isFirstInGroup: true });
2336
2362
  }
@@ -2352,10 +2378,50 @@ function resolveRowSpanAt(rowSpans, rowIndex) {
2352
2378
  }
2353
2379
  return { startRow: rowIndex, rowSpan: 1 };
2354
2380
  }
2381
+ function findRowSpanColumn(spec, ref) {
2382
+ return spec.find((column) => column.columnId === ref) ?? spec.find((column) => column.rowSpanKey === ref);
2383
+ }
2355
2384
  function buildColumnRowSpanMap(data, columnKeys) {
2356
2385
  const map = /* @__PURE__ */ new Map();
2357
- for (const { columnId, rowSpanKey } of columnKeys) {
2358
- map.set(columnId, computeRowSpans(data, rowSpanKey));
2386
+ const visiting = /* @__PURE__ */ new Set();
2387
+ const warnedCycles = /* @__PURE__ */ new Set();
2388
+ const virtualParents = /* @__PURE__ */ new Map();
2389
+ const spansForColumn = (columnId) => {
2390
+ const cached = map.get(columnId);
2391
+ if (cached !== void 0) return cached;
2392
+ const column = columnKeys.find((item) => item.columnId === columnId);
2393
+ if (!column) return void 0;
2394
+ if (visiting.has(columnId)) {
2395
+ if (!warnedCycles.has(columnId)) {
2396
+ warnedCycles.add(columnId);
2397
+ console.warn(
2398
+ `[rowSpan] rowSpanParent cycle detected at column "${columnId}"; dropping the cyclic parent reference.`
2399
+ );
2400
+ }
2401
+ return void 0;
2402
+ }
2403
+ visiting.add(columnId);
2404
+ const parentSpans = (column.rowSpanParent ?? []).map((ref) => spansForParentRef(ref)).filter((spans2) => Boolean(spans2));
2405
+ visiting.delete(columnId);
2406
+ const spans = computeRowSpans(
2407
+ data,
2408
+ column.rowSpanKey,
2409
+ parentSpans.length > 0 ? parentSpans : void 0
2410
+ );
2411
+ map.set(columnId, spans);
2412
+ return spans;
2413
+ };
2414
+ const spansForParentRef = (ref) => {
2415
+ const parentColumn = findRowSpanColumn(columnKeys, ref);
2416
+ if (parentColumn) return spansForColumn(parentColumn.columnId);
2417
+ const cached = virtualParents.get(ref);
2418
+ if (cached !== void 0) return cached;
2419
+ const spans = computeRowSpans(data, ref);
2420
+ virtualParents.set(ref, spans);
2421
+ return spans;
2422
+ };
2423
+ for (const column of columnKeys) {
2424
+ spansForColumn(column.columnId);
2359
2425
  }
2360
2426
  return map;
2361
2427
  }
@@ -2371,7 +2437,8 @@ function collectRowSpanColumns(columns) {
2371
2437
  if (!columnId || !columnDef.meta?.rowSpan) continue;
2372
2438
  result.push({
2373
2439
  columnId,
2374
- rowSpanKey: columnDef.meta.rowSpanKey ?? columnId
2440
+ rowSpanKey: columnDef.meta.rowSpanKey ?? columnId,
2441
+ rowSpanParent: normalizeRowSpanParent(columnDef.meta.rowSpanParent)
2375
2442
  });
2376
2443
  }
2377
2444
  };
@@ -3079,15 +3146,29 @@ function ResolvedTableCell({
3079
3146
 
3080
3147
  // src/components/ui/table/features/column-resize/columnResize.ts
3081
3148
  function getColumnSizeStyle(size, options) {
3082
- const { force = false, lockMax = false } = options ?? {};
3083
- if (!force && size === DATA_TABLE_COLUMN_SIZE) {
3149
+ const { force = false, lockMax = false, minWidth, maxWidth } = options ?? {};
3150
+ if (lockMax) {
3151
+ return {
3152
+ width: size,
3153
+ minWidth: size,
3154
+ maxWidth: size
3155
+ };
3156
+ }
3157
+ const hasExplicitSize = force || size !== DATA_TABLE_COLUMN_SIZE;
3158
+ if (!hasExplicitSize && minWidth == null && maxWidth == null) {
3084
3159
  return void 0;
3085
3160
  }
3086
- return {
3087
- width: size,
3088
- minWidth: size,
3089
- ...lockMax ? { maxWidth: size } : {}
3090
- };
3161
+ const style = {};
3162
+ if (hasExplicitSize) {
3163
+ style.width = size;
3164
+ style.minWidth = minWidth ?? size;
3165
+ } else if (minWidth != null) {
3166
+ style.minWidth = minWidth;
3167
+ }
3168
+ if (maxWidth != null) {
3169
+ style.maxWidth = maxWidth;
3170
+ }
3171
+ return style;
3091
3172
  }
3092
3173
 
3093
3174
  // src/components/ui/table/features/column-reorder/useColumnReorder.ts
@@ -3691,7 +3772,9 @@ function DataTableRow({
3691
3772
  const hasSelectionEdges = hasCellSelectionEdges(selectionEdgeStyle);
3692
3773
  const sizeStyle = getColumnSizeStyle(cell.column.getSize(), {
3693
3774
  force: enableColumnResize,
3694
- lockMax: enableColumnResize
3775
+ lockMax: enableColumnResize,
3776
+ minWidth: meta?.minWidth,
3777
+ maxWidth: meta?.maxWidth
3695
3778
  });
3696
3779
  const freezeOffset = enableColumnFreeze ? freezeOffsets.get(columnId) : void 0;
3697
3780
  const freezeStyle = getColumnFreezeStyle(freezeOffset);
@@ -4312,7 +4395,9 @@ function DataTable({
4312
4395
  const canResize = enableColumnResize && header.column.getCanResize();
4313
4396
  const sizeStyle = getColumnSizeStyle(header.getSize(), {
4314
4397
  force: enableColumnResize,
4315
- lockMax: enableColumnResize
4398
+ lockMax: enableColumnResize,
4399
+ minWidth: header.column.columnDef.meta?.minWidth,
4400
+ maxWidth: header.column.columnDef.meta?.maxWidth
4316
4401
  });
4317
4402
  const freezeOffset = enableColumnFreeze ? resolveHeaderFreezeOffset(header.column, freezeOffsets) : void 0;
4318
4403
  const freezeStyle = getColumnFreezeStyle(freezeOffset, {
@@ -4518,12 +4603,15 @@ function buildColumnDef(props, sort, onSort) {
4518
4603
  width,
4519
4604
  minWidth,
4520
4605
  maxWidth,
4606
+ minResizeWidth,
4607
+ maxResizeWidth,
4521
4608
  resizable,
4522
4609
  reorderable,
4523
4610
  frozen,
4524
4611
  align,
4525
4612
  rowSpan,
4526
4613
  rowSpanKey,
4614
+ rowSpanParent,
4527
4615
  editable,
4528
4616
  editType,
4529
4617
  editInputProps,
@@ -4537,8 +4625,8 @@ function buildColumnDef(props, sort, onSort) {
4537
4625
  id: field,
4538
4626
  ...!virtual ? { accessorKey: field } : {},
4539
4627
  size: width ?? DATA_TABLE_COLUMN_SIZE,
4540
- ...minWidth != null ? { minSize: minWidth } : {},
4541
- ...maxWidth != null ? { maxSize: maxWidth } : {},
4628
+ ...minResizeWidth != null ? { minSize: minResizeWidth } : {},
4629
+ ...maxResizeWidth != null ? { maxSize: maxResizeWidth } : {},
4542
4630
  ...resizable === false ? { enableResizing: false } : {},
4543
4631
  header: sortable ? () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
4544
4632
  SortableHeader,
@@ -4558,6 +4646,7 @@ function buildColumnDef(props, sort, onSort) {
4558
4646
  align,
4559
4647
  rowSpan,
4560
4648
  rowSpanKey,
4649
+ rowSpanParent,
4561
4650
  editable,
4562
4651
  editType,
4563
4652
  editInputProps,
@@ -4566,6 +4655,8 @@ function buildColumnDef(props, sort, onSort) {
4566
4655
  cellRender: render,
4567
4656
  frozen,
4568
4657
  reorderable,
4658
+ minWidth,
4659
+ maxWidth,
4569
4660
  className,
4570
4661
  headerClassName
4571
4662
  }
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- export { B as BuiltinCellKind, C as CellKind, a as CellRenderContext, b as CellRenderFn, c as CellRenderer, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, g as ColumnFreezeOffset, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, i as DataTableClassNames, j as DataTableCopyActions, k as DataTableLabels, l as DataTableProps, m as DataTableScrollSlotProps, n as DataTableSlots, I as INLINE_SEARCH_MAX_RESULTS, P as PasteMode, R as RowSelectionMode, o as RowsPastePayload, S as SearchCorpusRow, p as SearchResultItem, q as SearchStatus, T as TableColumnGroupProps, r as TableColumnProps, s as TableProps, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CMUGtH-c.cjs';
2
- export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, CellContextWithUpdate, CellRendererRegistry, CellSelectionBounds, ColumnDropEdge, ColumnRowSpanMap, CopyRowEntry, CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DragState, EditingCell, ResolvedTableCell, RowSpanInfo, TreeRow, UseConvertTreeDataParams, UseGlideTableOptions, UseGlideTableResult, UseInlineSearchOptions, UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard } from './core.cjs';
1
+ export { B as BuiltinCellKind, C as CellKind, a as CellRenderContext, b as CellRenderFn, c as CellRenderer, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, g as ColumnFreezeOffset, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, i as DataTableClassNames, j as DataTableCopyActions, k as DataTableLabels, l as DataTableProps, m as DataTableScrollSlotProps, n as DataTableSlots, I as INLINE_SEARCH_MAX_RESULTS, P as PasteMode, R as RowSelectionMode, o as RowsPastePayload, S as SearchCorpusRow, p as SearchResultItem, q as SearchStatus, T as TableColumnGroupProps, r as TableColumnProps, s as TableProps, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CnsQ8GZb.cjs';
2
+ export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, CellContextWithUpdate, CellRendererRegistry, CellSelectionBounds, ColumnDropEdge, ColumnRowSpanMap, CopyRowEntry, CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DragState, EditingCell, ResolvedTableCell, RowSpanColumnSpec, RowSpanInfo, TreeRow, UseConvertTreeDataParams, UseGlideTableOptions, UseGlideTableResult, UseInlineSearchOptions, UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard } from './core.cjs';
3
3
  export { DataTable, Table, TableCompoundComponent, createTable } from './compound.cjs';
4
4
  export { ColumnDef, ColumnOrderState, ColumnResizeMode, ColumnSizingState, RowSelectionState } from '@tanstack/react-table';
5
5
  import 'react';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { B as BuiltinCellKind, C as CellKind, a as CellRenderContext, b as CellRenderFn, c as CellRenderer, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, g as ColumnFreezeOffset, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, i as DataTableClassNames, j as DataTableCopyActions, k as DataTableLabels, l as DataTableProps, m as DataTableScrollSlotProps, n as DataTableSlots, I as INLINE_SEARCH_MAX_RESULTS, P as PasteMode, R as RowSelectionMode, o as RowsPastePayload, S as SearchCorpusRow, p as SearchResultItem, q as SearchStatus, T as TableColumnGroupProps, r as TableColumnProps, s as TableProps, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CMUGtH-c.js';
2
- export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, CellContextWithUpdate, CellRendererRegistry, CellSelectionBounds, ColumnDropEdge, ColumnRowSpanMap, CopyRowEntry, CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DragState, EditingCell, ResolvedTableCell, RowSpanInfo, TreeRow, UseConvertTreeDataParams, UseGlideTableOptions, UseGlideTableResult, UseInlineSearchOptions, UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard } from './core.js';
1
+ export { B as BuiltinCellKind, C as CellKind, a as CellRenderContext, b as CellRenderFn, c as CellRenderer, d as ColumnFreezeColumnInput, e as ColumnFreezeEdgeSide, f as ColumnFreezeMeta, g as ColumnFreezeOffset, h as ColumnFreezeSide, D as DEFAULT_DATA_TABLE_LABELS, i as DataTableClassNames, j as DataTableCopyActions, k as DataTableLabels, l as DataTableProps, m as DataTableScrollSlotProps, n as DataTableSlots, I as INLINE_SEARCH_MAX_RESULTS, P as PasteMode, R as RowSelectionMode, o as RowsPastePayload, S as SearchCorpusRow, p as SearchResultItem, q as SearchStatus, T as TableColumnGroupProps, r as TableColumnProps, s as TableProps, t as buildColumnFreezeOffsets, u as buildFlatSearchCorpus, v as buildSearchMatchKey, w as buildSearchMatchKeys, x as buildTreeSearchCorpus, y as cellValueToSearchText, z as collectAncestorKeysToExpand, A as collectSearchMatchesInRange, E as createSearchRegex, F as escapeSearchRegex, G as formatSearchResultLabel, H as getColumnFreezeEdgeAttr, J as getColumnFreezeStyle, K as mapSearchResultToVisibleItem, L as mapSearchResultsToVisibleKeys, M as nextSearchIndex, N as nextSearchStride, O as previousSearchIndex, Q as resolveColumnFreezeSide, U as resolveDataTableLabels, V as resolveHeaderFreezeOffset } from './types-CnsQ8GZb.js';
2
+ export { BUILTIN_CELL_RENDERERS, CELL_SELECTION_EDGES_CLASS, CellContextWithUpdate, CellRendererRegistry, CellSelectionBounds, ColumnDropEdge, ColumnRowSpanMap, CopyRowEntry, CopySelectionMode, DEFAULT_TREE_CHILDREN_FIELD, DEFAULT_TREE_ID_FIELD, DEFAULT_TREE_PARENT_ID_FIELD, DEFAULT_TREE_QTY_FIELD, DragState, EditingCell, ResolvedTableCell, RowSpanColumnSpec, RowSpanInfo, TreeRow, UseConvertTreeDataParams, UseGlideTableOptions, UseGlideTableResult, UseInlineSearchOptions, UseInlineSearchResult, applyCellEdit, applyFillData, applyLeafColumnOrder, applySelectionUpdater, buildColumnRowSpanMap, buildRowsPastePayload, canExpandRow, collectCopyRowEntries, collectCopyRows, collectFillChanges, collectLeafColumnIds, collectRowSpanColumns, commitCellValue, createCellRendererRegistry, flattenSubtreeRows, formatCellValue, formatDefaultCellValue, getCellEditDraftValue, getCellSelectionEdgeStyle, getColumnEditType, getColumnSizeStyle, getRowIndexInMergedCell, hasCellSelectionEdges, isCellInSelection, isColumnEditable, isEditablePasteTarget, measureMergedSpanRowHeights, moveColumnIds, parseCellEditValue, parseClipboardTSV, parseClipboardTSVWithDepths, resolveCellRenderer, resolveDropEdge, resolveLeafColumnOrder, resolvePasteColumnIds, resolveRowSelection, resolveRowSpanAt, rowRangeToHeightRatios, serializeCopyRowsToTSV, serializeSelectionToTSV, toggleExpandedRowId, useCellEdit, useCellSelection, useColumnReorder, useConvertTreeData, useGlideTable, useInlineSearch, withCellUpdate, writeSelectionToClipboard } from './core.js';
3
3
  export { DataTable, Table, TableCompoundComponent, createTable } from './compound.js';
4
4
  export { ColumnDef, ColumnOrderState, ColumnResizeMode, ColumnSizingState, RowSelectionState } from '@tanstack/react-table';
5
5
  import 'react';