simple-table-core 4.0.3 → 4.0.5

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 (105) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/consts/general-consts.d.ts +2 -2
  3. package/dist/core/SimpleTableVanilla.d.ts +3 -3
  4. package/dist/core/api/TableAPIImpl.d.ts +6 -6
  5. package/dist/core/initialization/TableInitializer.d.ts +4 -4
  6. package/dist/core/rendering/RenderOrchestrator.d.ts +9 -9
  7. package/dist/core/rendering/SectionRenderer.d.ts +3 -3
  8. package/dist/core/rendering/TableRenderer.d.ts +8 -8
  9. package/dist/hooks/contentHeight.d.ts +2 -2
  10. package/dist/hooks/expandedDepths.d.ts +1 -1
  11. package/dist/hooks/handleOutsideClick.d.ts +3 -3
  12. package/dist/hooks/useAggregatedRows.d.ts +2 -2
  13. package/dist/hooks/useQuickFilter.d.ts +2 -2
  14. package/dist/index.d.ts +2 -3
  15. package/dist/index.es.js +1 -1
  16. package/dist/managers/AutoScaleManager.d.ts +5 -5
  17. package/dist/managers/ColumnManager.d.ts +12 -12
  18. package/dist/managers/DimensionManager.d.ts +2 -2
  19. package/dist/managers/DragHandlerManager.d.ts +20 -20
  20. package/dist/managers/FilterManager.d.ts +2 -2
  21. package/dist/managers/PivotManager.d.ts +4 -4
  22. package/dist/managers/RowManager.d.ts +2 -2
  23. package/dist/managers/SelectionManager/types.d.ts +3 -3
  24. package/dist/managers/SortManager.d.ts +2 -2
  25. package/dist/managers/TableManager.d.ts +4 -4
  26. package/dist/types/CellChangeProps.d.ts +1 -1
  27. package/dist/types/CellClickProps.d.ts +1 -1
  28. package/dist/types/CellRendererProps.d.ts +1 -1
  29. package/dist/types/{HeaderObject.d.ts → ColumnDef.d.ts} +7 -21
  30. package/dist/types/ColumnEditorConfig.d.ts +2 -2
  31. package/dist/types/ColumnEditorCustomRendererProps.d.ts +2 -2
  32. package/dist/types/ColumnEditorRowRendererProps.d.ts +6 -6
  33. package/dist/types/ColumnVisibilityTypes.d.ts +1 -1
  34. package/dist/types/DragHandlerProps.d.ts +6 -6
  35. package/dist/types/FilterTypes.d.ts +1 -1
  36. package/dist/types/FlattenedHeader.d.ts +3 -3
  37. package/dist/types/HandleResizeStartProps.d.ts +5 -5
  38. package/dist/types/HeaderRendererProps.d.ts +3 -3
  39. package/dist/types/OnRowGroupExpandProps.d.ts +1 -1
  40. package/dist/types/OnSortProps.d.ts +1 -1
  41. package/dist/types/PinnedSectionsState.d.ts +1 -1
  42. package/dist/types/PivotTypes.d.ts +3 -3
  43. package/dist/types/QuickFilterTypes.d.ts +1 -1
  44. package/dist/types/SharedTableProps.d.ts +7 -7
  45. package/dist/types/SimpleTableConfig.d.ts +24 -16
  46. package/dist/types/SimpleTableProps.d.ts +19 -58
  47. package/dist/types/SortColumn.d.ts +2 -2
  48. package/dist/types/TableAPI.d.ts +4 -4
  49. package/dist/types/TableBodyProps.d.ts +3 -3
  50. package/dist/types/TableHeaderProps.d.ts +4 -4
  51. package/dist/types/TableHeaderSectionProps.d.ts +2 -2
  52. package/dist/types/TableRow.d.ts +2 -2
  53. package/dist/types/TableRowProps.d.ts +6 -6
  54. package/dist/types/UpdateCellProps.d.ts +1 -1
  55. package/dist/utils/bodyCell/content.d.ts +2 -2
  56. package/dist/utils/bodyCell/types.d.ts +6 -6
  57. package/dist/utils/cellClipboardUtils.d.ts +4 -4
  58. package/dist/utils/cellUtils.d.ts +3 -3
  59. package/dist/utils/collapseUtils.d.ts +7 -7
  60. package/dist/utils/columnEditor/columnEditorUtils.d.ts +5 -5
  61. package/dist/utils/columnEditor/createColumnEditor.d.ts +5 -5
  62. package/dist/utils/columnEditor/createColumnEditorPopout.d.ts +4 -4
  63. package/dist/utils/columnEditor/createColumnEditorRow.d.ts +6 -6
  64. package/dist/utils/columnIndicesUtils.d.ts +4 -4
  65. package/dist/utils/columnVirtualizationUtils.d.ts +10 -10
  66. package/dist/utils/csvExportUtils.d.ts +3 -3
  67. package/dist/utils/filters/createBooleanFilter.d.ts +2 -2
  68. package/dist/utils/filters/createDateFilter.d.ts +2 -2
  69. package/dist/utils/filters/createEnumFilter.d.ts +2 -2
  70. package/dist/utils/filters/createFilterDropdown.d.ts +2 -2
  71. package/dist/utils/filters/createNumberFilter.d.ts +2 -2
  72. package/dist/utils/filters/createStringFilter.d.ts +2 -2
  73. package/dist/utils/footer/createTableFooter.d.ts +1 -1
  74. package/dist/utils/generalUtils.d.ts +2 -2
  75. package/dist/utils/headerCell/collapsing.d.ts +2 -2
  76. package/dist/utils/headerCell/dragging.d.ts +4 -4
  77. package/dist/utils/headerCell/editing.d.ts +3 -3
  78. package/dist/utils/headerCell/eventTracking.d.ts +3 -3
  79. package/dist/utils/headerCell/filtering.d.ts +2 -2
  80. package/dist/utils/headerCell/resizing.d.ts +2 -2
  81. package/dist/utils/headerCell/sorting.d.ts +2 -2
  82. package/dist/utils/headerCell/types.d.ts +13 -13
  83. package/dist/utils/headerLayoutUtils.d.ts +2 -2
  84. package/dist/utils/headerUtils.d.ts +5 -5
  85. package/dist/utils/headerWidthUtils.d.ts +10 -10
  86. package/dist/utils/horizontalScrollbarRenderer.d.ts +1 -1
  87. package/dist/utils/infiniteScrollUtils.d.ts +1 -1
  88. package/dist/utils/normalizeConfig.d.ts +8 -53
  89. package/dist/utils/pinnedColumnUtils.d.ts +13 -13
  90. package/dist/utils/pivot/pivotRows.d.ts +4 -4
  91. package/dist/utils/propSyncEqual.d.ts +4 -4
  92. package/dist/utils/resizeUtils/autoExpandResize.d.ts +5 -5
  93. package/dist/utils/resizeUtils/compensation.d.ts +2 -2
  94. package/dist/utils/resizeUtils/domUpdates.d.ts +3 -3
  95. package/dist/utils/resizeUtils/index.d.ts +5 -5
  96. package/dist/utils/resizeUtils/maxWidth.d.ts +3 -3
  97. package/dist/utils/resizeUtils/parentHeaderResize.d.ts +2 -2
  98. package/dist/utils/resizeUtils/sectionWidths.d.ts +2 -2
  99. package/dist/utils/rowFlattening.d.ts +2 -2
  100. package/dist/utils/rowProcessing.d.ts +2 -2
  101. package/dist/utils/rowSelectionUtils.d.ts +2 -2
  102. package/dist/utils/rowUtils.d.ts +2 -2
  103. package/dist/utils/sortUtils.d.ts +2 -2
  104. package/dist/utils/stickyParentsRenderer.d.ts +5 -5
  105. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import { Pinned } from "../types/Pinned";
3
3
  /**
4
4
  * Precomputed cumulative width data structure for O(1) column position lookups
@@ -10,7 +10,7 @@ export interface CumulativeWidthMap {
10
10
  /** Total width of all columns combined */
11
11
  totalWidth: number;
12
12
  /** Ordered array of leaf headers (actual columns that render) */
13
- leafHeaders: HeaderObject[];
13
+ leafHeaders: ColumnDef[];
14
14
  }
15
15
  /**
16
16
  * Get all leaf headers (actual columns that render) from a header tree
@@ -24,7 +24,7 @@ export interface CumulativeWidthMap {
24
24
  * @param collapsedHeaders - Set of collapsed header accessors
25
25
  * @returns Flat array of leaf headers in order
26
26
  */
27
- export declare const getLeafHeaders: (headers: HeaderObject[], pinned: Pinned | undefined, allHeaders: HeaderObject[], collapsedHeaders?: Set<Accessor>) => HeaderObject[];
27
+ export declare const getLeafHeaders: (headers: ColumnDef[], pinned: Pinned | undefined, allHeaders: ColumnDef[], collapsedHeaders?: Set<Accessor>) => ColumnDef[];
28
28
  /**
29
29
  * Build a cumulative width map for efficient viewport calculations
30
30
  * This precomputes the left position of every column, enabling:
@@ -39,7 +39,7 @@ export declare const getLeafHeaders: (headers: HeaderObject[], pinned: Pinned |
39
39
  * @param collapsedHeaders - Set of collapsed header accessors
40
40
  * @returns Cumulative width map with column positions
41
41
  */
42
- export declare const buildCumulativeWidthMap: (headers: HeaderObject[], pinned: Pinned | undefined, allHeaders: HeaderObject[], collapsedHeaders?: Set<Accessor>) => CumulativeWidthMap;
42
+ export declare const buildCumulativeWidthMap: (headers: ColumnDef[], pinned: Pinned | undefined, allHeaders: ColumnDef[], collapsedHeaders?: Set<Accessor>) => CumulativeWidthMap;
43
43
  /**
44
44
  * Find the column index at a given scroll position using binary search
45
45
  * Returns the index of the column that contains or is closest to the scroll position
@@ -73,7 +73,7 @@ export declare const getVisibleColumns: ({ scrollLeft, viewportWidth, bufferColu
73
73
  }) => {
74
74
  startIndex: number;
75
75
  endIndex: number;
76
- columns: HeaderObject[];
76
+ columns: ColumnDef[];
77
77
  };
78
78
  /**
79
79
  * Build parent-child relationship maps for the header hierarchy
@@ -85,7 +85,7 @@ export declare const getVisibleColumns: ({ scrollLeft, viewportWidth, bufferColu
85
85
  * @param collapsedHeaders - Set of collapsed header accessors
86
86
  * @returns Maps for leaf-to-parents and parent-to-leaves relationships
87
87
  */
88
- export declare const buildColumnHierarchy: (headers: HeaderObject[], pinned: Pinned | undefined, allHeaders: HeaderObject[], collapsedHeaders?: Set<Accessor>) => {
88
+ export declare const buildColumnHierarchy: (headers: ColumnDef[], pinned: Pinned | undefined, allHeaders: ColumnDef[], collapsedHeaders?: Set<Accessor>) => {
89
89
  leafToParents: Map<Accessor, Accessor[]>;
90
90
  parentToLeaves: Map<Accessor, Accessor[]>;
91
91
  };
@@ -98,19 +98,19 @@ export declare const buildColumnHierarchy: (headers: HeaderObject[], pinned: Pin
98
98
  * @param leafToParents - Map from leaf accessor to parent accessor chain
99
99
  * @returns Set of all header accessors to render (leaves + ancestors)
100
100
  */
101
- export declare const getHeadersToRender: (visibleLeafColumns: HeaderObject[], leafToParents: Map<Accessor, Accessor[]>) => Set<Accessor>;
101
+ export declare const getHeadersToRender: (visibleLeafColumns: ColumnDef[], leafToParents: Map<Accessor, Accessor[]>) => Set<Accessor>;
102
102
  /**
103
103
  * GridCell type (matches TableHeaderSection.tsx)
104
104
  * Represents a single header cell in the grid with its positioning
105
105
  */
106
106
  export type GridCell = {
107
- header: HeaderObject;
107
+ header: ColumnDef;
108
108
  gridColumnStart: number;
109
109
  gridColumnEnd: number;
110
110
  gridRowStart: number;
111
111
  gridRowEnd: number;
112
112
  colIndex: number;
113
- parentHeader?: HeaderObject;
113
+ parentHeader?: ColumnDef;
114
114
  };
115
115
  /**
116
116
  * Recalculate grid column positions for visible headers
@@ -125,4 +125,4 @@ export type GridCell = {
125
125
  * @param startColumnIndex - Index of first visible leaf column in the full leaf array
126
126
  * @returns Filtered and repositioned grid cells
127
127
  */
128
- export declare const recalculateGridPositions: (originalGridCells: GridCell[], headersToRender: Set<Accessor>, visibleLeafColumns: HeaderObject[], startColumnIndex: number) => GridCell[];
128
+ export declare const recalculateGridPositions: (originalGridCells: GridCell[], headersToRender: Set<Accessor>, visibleLeafColumns: ColumnDef[], startColumnIndex: number) => GridCell[];
@@ -1,9 +1,9 @@
1
- import HeaderObject from "../types/HeaderObject";
1
+ import ColumnDef from "../types/ColumnDef";
2
2
  import TableRow from "../types/TableRow";
3
3
  /**
4
4
  * Converts table data to CSV format
5
5
  */
6
- export declare const convertToCSV: (visibleRows: TableRow[], headers: HeaderObject[], includeHeadersInCSVExport?: boolean) => string;
6
+ export declare const convertToCSV: (visibleRows: TableRow[], headers: ColumnDef[], includeHeadersInCSVExport?: boolean) => string;
7
7
  /**
8
8
  * Triggers a download of the CSV file
9
9
  */
@@ -11,4 +11,4 @@ export declare const downloadCSV: (csvContent: string, filename?: string) => voi
11
11
  /**
12
12
  * Main export function that combines CSV conversion and download
13
13
  */
14
- export declare const exportTableToCSV: (visibleRows: TableRow[], headers: HeaderObject[], filename?: string, includeHeadersInCSVExport?: boolean) => void;
14
+ export declare const exportTableToCSV: (visibleRows: TableRow[], headers: ColumnDef[], filename?: string, includeHeadersInCSVExport?: boolean) => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateBooleanFilterOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateDateFilterOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateEnumFilterOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateFilterDropdownOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateNumberFilterOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -1,7 +1,7 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { FilterCondition } from "../../types/FilterTypes";
3
3
  export interface CreateStringFilterOptions {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  currentFilter?: FilterCondition;
6
6
  onApplyFilter: (filter: FilterCondition) => void;
7
7
  onClearFilter: () => void;
@@ -6,7 +6,7 @@ export interface CreateTableFooterOptions {
6
6
  onNextPage?: OnNextPage;
7
7
  onUserPageChange?: (page: number) => void | Promise<void>;
8
8
  rowsPerPage: number;
9
- shouldPaginate?: boolean;
9
+ enablePagination?: boolean;
10
10
  totalPages: number;
11
11
  totalRows: number;
12
12
  /** Custom icon for previous page button (string = HTML, HTMLElement = node to clone/append). */
@@ -1,4 +1,4 @@
1
- import HeaderObject from "../types/HeaderObject";
1
+ import ColumnDef from "../types/ColumnDef";
2
2
  import { Pinned } from "../types/Pinned";
3
3
  export declare const deepClone: <T>(obj: T) => T;
4
- export declare const canDisplaySection: (headers: HeaderObject[], pinned?: Pinned) => boolean;
4
+ export declare const canDisplaySection: (headers: ColumnDef[], pinned?: Pinned) => boolean;
@@ -1,6 +1,6 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
3
  /** Use same icon and animation as body row expand/collapse (icons.expand + st-expand-icon-container). */
4
- export declare const createCollapseIcon: (header: HeaderObject, context: HeaderRenderContext) => HTMLElement | null;
4
+ export declare const createCollapseIcon: (header: ColumnDef, context: HeaderRenderContext) => HTMLElement | null;
5
5
  /** Update header collapse icon direction on an existing cell (delegates to body updateExpandIconState). */
6
6
  export declare const updateHeaderCollapseIconState: (cellElement: HTMLElement, isCollapsed: boolean, label?: string) => void;
@@ -1,5 +1,5 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
- export declare const handleColumnHeaderClick: (event: MouseEvent, header: HeaderObject, colIndex: number, context: HeaderRenderContext) => void;
4
- export declare const handleColumnHeaderDoubleClick: (event: MouseEvent, header: HeaderObject, context: HeaderRenderContext) => void;
5
- export declare const attachDragHandlers: (labelElement: HTMLElement, cellElement: HTMLElement, header: HeaderObject, context: HeaderRenderContext) => void;
3
+ export declare const handleColumnHeaderClick: (event: MouseEvent, header: ColumnDef, colIndex: number, context: HeaderRenderContext) => void;
4
+ export declare const handleColumnHeaderDoubleClick: (event: MouseEvent, header: ColumnDef, context: HeaderRenderContext) => void;
5
+ export declare const attachDragHandlers: (labelElement: HTMLElement, cellElement: HTMLElement, header: ColumnDef, context: HeaderRenderContext) => void;
@@ -1,4 +1,4 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
- export declare const createEditableInput: (header: HeaderObject, context: HeaderRenderContext, labelContainer: HTMLElement) => HTMLInputElement;
4
- export declare const createLabelContent: (header: HeaderObject, context: HeaderRenderContext, labelOverride?: string) => HTMLElement;
3
+ export declare const createEditableInput: (header: ColumnDef, context: HeaderRenderContext, labelContainer: HTMLElement) => HTMLInputElement;
4
+ export declare const createLabelContent: (header: ColumnDef, context: HeaderRenderContext, labelOverride?: string) => HTMLElement;
@@ -1,16 +1,16 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  export declare let prevUpdateTime: number;
3
3
  export declare let prevDraggingPosition: {
4
4
  screenX: number;
5
5
  screenY: number;
6
6
  };
7
- export declare let prevHeaders: HeaderObject[] | null;
7
+ export declare let prevHeaders: ColumnDef[] | null;
8
8
  export declare const setPrevUpdateTime: (time: number) => void;
9
9
  export declare const setPrevDraggingPosition: (position: {
10
10
  screenX: number;
11
11
  screenY: number;
12
12
  }) => void;
13
- export declare const setPrevHeaders: (headers: HeaderObject[] | null) => void;
13
+ export declare const setPrevHeaders: (headers: ColumnDef[] | null) => void;
14
14
  export declare const getRenderedCells: (container: HTMLElement) => Map<string, HTMLElement>;
15
15
  export interface CachedHeaderPosition {
16
16
  left: number;
@@ -1,3 +1,3 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
- export declare const createFilterIcon: (header: HeaderObject, context: HeaderRenderContext) => HTMLElement | null;
3
+ export declare const createFilterIcon: (header: ColumnDef, context: HeaderRenderContext) => HTMLElement | null;
@@ -1,3 +1,3 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
- export declare const createResizeHandle: (header: HeaderObject, context: HeaderRenderContext) => HTMLElement | null;
3
+ export declare const createResizeHandle: (header: ColumnDef, context: HeaderRenderContext) => HTMLElement | null;
@@ -1,3 +1,3 @@
1
- import HeaderObject from "../../types/HeaderObject";
1
+ import ColumnDef from "../../types/ColumnDef";
2
2
  import { HeaderRenderContext } from "./types";
3
- export declare const createSortIcon: (header: HeaderObject, context: HeaderRenderContext) => HTMLElement | null;
3
+ export declare const createSortIcon: (header: ColumnDef, context: HeaderRenderContext) => HTMLElement | null;
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../../types/ColumnDef";
2
2
  import SortColumn from "../../types/SortColumn";
3
3
  import { TableFilterState, FilterCondition } from "../../types/FilterTypes";
4
4
  import { IconsConfig } from "../../types/IconsConfig";
@@ -14,13 +14,13 @@ type RefObject<T> = {
14
14
  readonly current: T | null;
15
15
  };
16
16
  export interface AbsoluteCell {
17
- header: HeaderObject;
17
+ header: ColumnDef;
18
18
  left: number;
19
19
  top: number;
20
20
  width: number;
21
21
  height: number;
22
22
  colIndex: number;
23
- parentHeader?: HeaderObject;
23
+ parentHeader?: ColumnDef;
24
24
  }
25
25
  export interface HeaderRenderContext {
26
26
  areAllRowsSelected?: () => boolean;
@@ -32,7 +32,7 @@ export interface HeaderRenderContext {
32
32
  columnResizing: boolean;
33
33
  columnsWithSelectedCells: Set<number>;
34
34
  containerWidth: number;
35
- draggedHeaderRef: MutableRefObject<HeaderObject | null>;
35
+ draggedHeaderRef: MutableRefObject<ColumnDef | null>;
36
36
  enableHeaderEditing?: boolean;
37
37
  enableRowSelection?: boolean;
38
38
  /** When `"single"`, header select-all checkbox is hidden. */
@@ -48,13 +48,13 @@ export interface HeaderRenderContext {
48
48
  handleClearFilter: (accessor: Accessor) => void;
49
49
  handleSelectAll?: (checked: boolean) => void;
50
50
  /** Live header tree from table state (avoids stale `headers` snapshot in long-lived handlers). */
51
- getHeaders: () => HeaderObject[];
51
+ getHeaders: () => ColumnDef[];
52
52
  headerHeight: number;
53
53
  headerRegistry?: Map<string, {
54
54
  setEditing: (editing: boolean) => void;
55
55
  }>;
56
- headers: HeaderObject[];
57
- hoveredHeaderRef: MutableRefObject<HeaderObject | null>;
56
+ headers: ColumnDef[];
57
+ hoveredHeaderRef: MutableRefObject<ColumnDef | null>;
58
58
  icons: IconsConfig;
59
59
  lastHeaderIndex: number;
60
60
  mainBodyRef: RefObject<HTMLDivElement>;
@@ -62,12 +62,12 @@ export interface HeaderRenderContext {
62
62
  mainSectionViewportWidth?: number; /** Main section *visible* viewport width (container minus pinned); use for getVisibleCells when !pinned */
63
63
  /** When false, skip column virtualization and render every header cell in the main section. Default true. */
64
64
  enableVirtualization?: boolean;
65
- onColumnOrderChange?: (headers: HeaderObject[]) => void;
66
- onColumnSelect?: (header: HeaderObject) => void;
67
- onColumnWidthChange?: (headers: HeaderObject[]) => void;
68
- onHeaderEdit?: (header: HeaderObject, newLabel: string) => void;
65
+ onColumnOrderChange?: (headers: ColumnDef[]) => void;
66
+ onColumnSelect?: (header: ColumnDef) => void;
67
+ onColumnWidthChange?: (headers: ColumnDef[]) => void;
68
+ onHeaderEdit?: (header: ColumnDef, newLabel: string) => void;
69
69
  onSort: (accessor: Accessor) => void;
70
- onTableHeaderDragEnd: (headers: HeaderObject[]) => void;
70
+ onTableHeaderDragEnd: (headers: ColumnDef[]) => void;
71
71
  pinned?: "left" | "right";
72
72
  /** Mirrors body context: pinned strip width for cache invalidation when only section width changes. */
73
73
  pinnedSectionWidthPx?: number;
@@ -80,7 +80,7 @@ export interface HeaderRenderContext {
80
80
  selectedColumns: Set<number>;
81
81
  selectedRowCount?: number; /** Used for context cache invalidation when row selection changes */
82
82
  setCollapsedHeaders: Dispatch<SetStateAction<Set<Accessor>>>;
83
- setHeaders: Dispatch<SetStateAction<HeaderObject[]>>;
83
+ setHeaders: Dispatch<SetStateAction<ColumnDef[]>>;
84
84
  setInitialFocusedCell: (cell: any) => void;
85
85
  setIsResizing: Dispatch<SetStateAction<boolean>>;
86
86
  setSelectedCells: Dispatch<SetStateAction<Set<string>>>;
@@ -1,4 +1,4 @@
1
- import type HeaderObject from "../types/HeaderObject";
1
+ import type ColumnDef from "../types/ColumnDef";
2
2
  /**
3
3
  * True when a column must not participate in table layout: cells, widths,
4
4
  * positions, colspan, pinned-section math, etc.
@@ -6,4 +6,4 @@ import type HeaderObject from "../types/HeaderObject";
6
6
  * Covers both user-hidden columns (`hide`) and export-only columns
7
7
  * (`excludeFromRender`). Prefer this over checking either flag alone.
8
8
  */
9
- export declare const isHeaderExcludedFromLayout: (header: Pick<HeaderObject, "hide" | "excludeFromRender">) => boolean;
9
+ export declare const isHeaderExcludedFromLayout: (header: Pick<ColumnDef, "hide" | "excludeFromRender">) => boolean;
@@ -1,23 +1,23 @@
1
- import HeaderObject from "../types/HeaderObject";
1
+ import ColumnDef from "../types/ColumnDef";
2
2
  /**
3
3
  * Gets all leaf column indices (bottom-level columns) for a given header and its descendants
4
4
  * @param header The header to get indices for
5
5
  * @param colIndex The column index of the header in the current context
6
6
  * @returns Array of column indices that belong to this header branch
7
7
  */
8
- export declare const getHeaderLeafIndices: (header: HeaderObject, colIndex: number) => number[];
8
+ export declare const getHeaderLeafIndices: (header: ColumnDef, colIndex: number) => number[];
9
9
  /**
10
10
  * Flattens a nested header structure to get all leaf headers
11
11
  * @param headers The headers array to flatten
12
12
  * @returns Flattened array of all leaf headers
13
13
  */
14
- export declare const flattenHeaders: (headers: HeaderObject[]) => HeaderObject[];
14
+ export declare const flattenHeaders: (headers: ColumnDef[]) => ColumnDef[];
15
15
  /**
16
16
  * Flattens a nested header structure to get all headers (including parent headers)
17
17
  * @param headers The headers array to flatten
18
18
  * @returns Flattened array of all headers in the hierarchy
19
19
  */
20
- export declare const flattenAllHeaders: (headers: HeaderObject[]) => HeaderObject[];
20
+ export declare const flattenAllHeaders: (headers: ColumnDef[]) => ColumnDef[];
21
21
  /**
22
22
  * Gets the range of column indices between two column indices
23
23
  * @param startColIndex Starting column index
@@ -38,4 +38,4 @@ export declare const getHeaderDescriptionId: (accessor: string | number) => stri
38
38
  * @param filterable Whether the column is filterable
39
39
  * @returns Description string for aria-describedby, or empty string if no description
40
40
  */
41
- export declare const getHeaderDescription: (header: HeaderObject, filterable: boolean) => string;
41
+ export declare const getHeaderDescription: (header: ColumnDef, filterable: boolean) => string;
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  /**
3
3
  * Build the set of row indices to sample for auto-size measurement.
4
4
  * Hybrid strategy: the first `headSize` rows (always include the top / initial
@@ -29,13 +29,13 @@ export declare const selectContentWidthWithOutlierClip: (widths: number[], optio
29
29
  * Takes collapsed state into account - when a header is collapsed, only returns
30
30
  * children that are visible when parent is collapsed (showWhen is 'parentCollapsed' or 'always')
31
31
  */
32
- export declare const findLeafHeaders: (header: HeaderObject, collapsedHeaders?: Set<Accessor>) => HeaderObject[];
32
+ export declare const findLeafHeaders: (header: ColumnDef, collapsedHeaders?: Set<Accessor>) => ColumnDef[];
33
33
  /** Default pixel width for 1fr when converting before container width is known */
34
34
  export declare const DEFAULT_FR_PX = 150;
35
35
  /** Default total table width used when normalizing fr/% if container width unknown */
36
36
  export declare const DEFAULT_TABLE_WIDTH = 800;
37
37
  /** True when a header's width requests content-based auto-sizing (`width: "auto"`). */
38
- export declare const isAutoWidth: (header: HeaderObject) => boolean;
38
+ export declare const isAutoWidth: (header: ColumnDef) => boolean;
39
39
  /**
40
40
  * Normalize header widths so that fr and % are converted to pixels.
41
41
  * Call this as soon as headers are received so the rest of the code can assume numeric widths.
@@ -43,25 +43,25 @@ export declare const isAutoWidth: (header: HeaderObject) => boolean;
43
43
  * If options.containerWidth is provided, all fr/% columns are resolved against the full container width,
44
44
  * so pinned and non-pinned fr columns share the same proportional pool.
45
45
  */
46
- export declare function normalizeHeaderWidths(headers: HeaderObject[], totalWidthOrOptions?: number | {
46
+ export declare function normalizeHeaderWidths(headers: ColumnDef[], totalWidthOrOptions?: number | {
47
47
  containerWidth: number;
48
- }): HeaderObject[];
48
+ }): ColumnDef[];
49
49
  /**
50
50
  * Get actual width of a header in pixels
51
51
  */
52
- export declare const getHeaderWidthInPixels: (header: HeaderObject) => number;
52
+ export declare const getHeaderWidthInPixels: (header: ColumnDef) => number;
53
53
  /**
54
54
  * Convert fractional widths to pixel values
55
55
  */
56
- export declare const removeAllFractionalWidths: (header: HeaderObject) => void;
56
+ export declare const removeAllFractionalWidths: (header: ColumnDef) => void;
57
57
  /**
58
58
  * Calculate the minimum width for a header
59
59
  */
60
- export declare const getHeaderMinWidth: (header: HeaderObject) => number;
60
+ export declare const getHeaderMinWidth: (header: ColumnDef) => number;
61
61
  /**
62
62
  * Get all visible leaf headers from an array of headers
63
63
  */
64
- export declare const getAllVisibleLeafHeaders: (headers: HeaderObject[], collapsedHeaders?: Set<Accessor>) => HeaderObject[];
64
+ export declare const getAllVisibleLeafHeaders: (headers: ColumnDef[], collapsedHeaders?: Set<Accessor>) => ColumnDef[];
65
65
  /**
66
66
  * Calculate the optimal width for a column by measuring both header and cell content
67
67
  * This is used for auto-sizing columns to fit their content (like Excel/Google Sheets)
@@ -79,7 +79,7 @@ export declare const getAllVisibleLeafHeaders: (headers: HeaderObject[], collaps
79
79
  */
80
80
  export declare const calculateHeaderContentWidth: (accessor: Accessor, options?: {
81
81
  rows?: any[];
82
- header?: HeaderObject;
82
+ header?: ColumnDef;
83
83
  maxWidth?: number;
84
84
  /** Leading rows always measured (default AUTO_SIZE_HEAD_SAMPLE_SIZE) */
85
85
  headSampleSize?: number;
@@ -8,7 +8,7 @@ export interface HorizontalScrollbarProps {
8
8
  pinnedRightContentWidth: number;
9
9
  tableBodyContainerRef: HTMLDivElement;
10
10
  /** True when the column-editor toggle strip is visible and reserves horizontal space. */
11
- editColumns: boolean;
11
+ enableColumnEditor: boolean;
12
12
  sectionScrollController?: SectionScrollController | null;
13
13
  /**
14
14
  * When true, skip the DOM scrollWidth check and always build the scrollbar.
@@ -1,6 +1,6 @@
1
1
  import TableRow from "../types/TableRow";
2
2
  import { CustomTheme } from "../types/CustomTheme";
3
- import { Accessor } from "../types/HeaderObject";
3
+ import { Accessor } from "../types/ColumnDef";
4
4
  /**
5
5
  * Sorted array of [position, extraHeight] tuples for nested grids
6
6
  * Position: the row index in flattened array
@@ -1,62 +1,17 @@
1
- import type HeaderObject from "../types/HeaderObject";
1
+ import type ColumnDef from "../types/ColumnDef";
2
2
  import type { SimpleTableConfig } from "../types/SimpleTableConfig";
3
- /** Preferred column-def aliases accepted on column objects (normalized to `is*` fields). */
4
- export type ColumnDefAliases = {
5
- /** @deprecated Prefer `editable` */
6
- isEditable?: boolean;
7
- editable?: boolean;
8
- /** @deprecated Prefer `sortable` */
9
- isSortable?: boolean;
10
- sortable?: boolean;
11
- /** @deprecated Prefer `essential` */
12
- isEssential?: boolean;
13
- essential?: boolean;
14
- };
15
3
  /**
16
- * Consumer-facing config input: accepts preferred prop names alongside legacy
17
- * names. {@link normalizeConfig} / {@link normalizeConfigPatch} collapse aliases
18
- * into the canonical {@link SimpleTableConfig} shape used internally.
4
+ * Consumer-facing config input. Preferred prop names only — no legacy aliases.
19
5
  */
20
- export type SimpleTableConfigInput = Omit<SimpleTableConfig, "defaultHeaders" | "editColumns" | "editColumnsInitOpen" | "shouldPaginate" | "onGridReady" | "useHoverRowBackground" | "useOddColumnBackground" | "useOddEvenRowBackground"> & {
21
- /** Preferred column definitions prop. */
22
- columns?: HeaderObject[];
23
- /** @deprecated Prefer `columns` */
24
- defaultHeaders?: HeaderObject[];
25
- /** Preferred flag for the column editor / visibility UI. */
26
- enableColumnEditor?: boolean;
27
- /** @deprecated Prefer `enableColumnEditor` */
28
- editColumns?: boolean;
29
- enableColumnEditorInitOpen?: boolean;
30
- /** @deprecated Prefer `enableColumnEditorInitOpen` */
31
- editColumnsInitOpen?: boolean;
32
- /** Preferred pagination flag. */
33
- enablePagination?: boolean;
34
- /** @deprecated Prefer `enablePagination` */
35
- shouldPaginate?: boolean;
36
- /** Preferred ready callback. */
37
- onTableReady?: () => void;
38
- /** @deprecated Prefer `onTableReady` */
39
- onGridReady?: () => void;
40
- hoverRowBackground?: boolean;
41
- /** @deprecated Prefer `hoverRowBackground` */
42
- useHoverRowBackground?: boolean;
43
- oddColumnBackground?: boolean;
44
- /** @deprecated Prefer `oddColumnBackground` */
45
- useOddColumnBackground?: boolean;
46
- oddEvenRowBackground?: boolean;
47
- /** @deprecated Prefer `oddEvenRowBackground` */
48
- useOddEvenRowBackground?: boolean;
49
- };
50
- /** Normalize a single column def: preferred bare adjectives win over `is*` aliases. */
51
- export declare function normalizeColumnDef(header: HeaderObject): HeaderObject;
52
- export declare function normalizeColumnDefs(headers: HeaderObject[]): HeaderObject[];
6
+ export type SimpleTableConfigInput = SimpleTableConfig;
7
+ /** Pass-through for column trees (kept for call-site stability / future transforms). */
8
+ export declare function normalizeColumnDef(header: ColumnDef): ColumnDef;
9
+ export declare function normalizeColumnDefs(headers: ColumnDef[]): ColumnDef[];
53
10
  /**
54
- * Collapse consumer aliases into the canonical config shape.
55
- * Requires `columns` or `defaultHeaders`.
11
+ * Validate and normalize config. Requires `columns`.
56
12
  */
57
13
  export declare function normalizeConfig(input: SimpleTableConfigInput): SimpleTableConfig;
58
14
  /**
59
- * Normalize a partial update patch. Maps preferred alias keys onto canonical
60
- * keys so `update({ columns })` / `update({ enablePagination })` work.
15
+ * Normalize a partial update patch.
61
16
  */
62
17
  export declare function normalizeConfigPatch(patch: Partial<SimpleTableConfigInput>): Partial<SimpleTableConfig>;
@@ -1,29 +1,29 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import { PinnedSectionsState } from "../types/PinnedSectionsState";
3
3
  import { PanelSection } from "../types/PanelSection";
4
4
  export type { PinnedSectionsState, PanelSection };
5
5
  /** Root-level columns only, preserving order within each pin group. */
6
- export declare function partitionRootHeadersByPin(headers: HeaderObject[]): {
7
- pinnedLeft: HeaderObject[];
8
- unpinned: HeaderObject[];
9
- pinnedRight: HeaderObject[];
6
+ export declare function partitionRootHeadersByPin(headers: ColumnDef[]): {
7
+ pinnedLeft: ColumnDef[];
8
+ unpinned: ColumnDef[];
9
+ pinnedRight: ColumnDef[];
10
10
  };
11
- export declare function isHeaderEssential(header: HeaderObject, essentialAccessors: ReadonlySet<string>): boolean;
12
- /** Accessors for every header with `isEssential` in the tree (including nested). */
13
- export declare function collectEssentialAccessors(headers: HeaderObject[]): Set<string>;
11
+ export declare function isHeaderEssential(header: ColumnDef, essentialAccessors: ReadonlySet<string>): boolean;
12
+ /** Accessors for every header with `essential` in the tree (including nested). */
13
+ export declare function collectEssentialAccessors(headers: ColumnDef[]): Set<string>;
14
14
  /** Within one sibling list: all essential columns must form a left prefix. */
15
- export declare function hasEssentialPrefixOrder(siblings: HeaderObject[], essentialAccessors: ReadonlySet<string>): boolean;
15
+ export declare function hasEssentialPrefixOrder(siblings: ColumnDef[], essentialAccessors: ReadonlySet<string>): boolean;
16
16
  /** Root array mixes pin sections; validate each pin group separately, then recurse into children. */
17
- export declare function validateFullHeaderTreeEssentialOrder(headers: HeaderObject[], essentialAccessors: ReadonlySet<string>): boolean;
18
- export declare function getPinnedSectionsState(headers: HeaderObject[]): PinnedSectionsState;
17
+ export declare function validateFullHeaderTreeEssentialOrder(headers: ColumnDef[], essentialAccessors: ReadonlySet<string>): boolean;
18
+ export declare function getPinnedSectionsState(headers: ColumnDef[]): PinnedSectionsState;
19
19
  /**
20
20
  * Rebuilds root `headers` order and `pinned` flags from section accessor lists.
21
21
  * Clamps essential columns to the left within each section. Returns null if accessors don't match roots.
22
22
  */
23
- export declare function rebuildHeadersFromPinnedState(headers: HeaderObject[], state: PinnedSectionsState, essentialAccessors: ReadonlySet<string>): HeaderObject[] | null;
23
+ export declare function rebuildHeadersFromPinnedState(headers: ColumnDef[], state: PinnedSectionsState, essentialAccessors: ReadonlySet<string>): ColumnDef[] | null;
24
24
  /**
25
25
  * Move a root column to another pin section.
26
26
  * Appends within left/right targets. For `main`, left-pinned columns are inserted at the
27
27
  * start of main; right-pinned (and other) columns are inserted at the end of main.
28
28
  */
29
- export declare function moveRootColumnPinSide(headers: HeaderObject[], accessor: Accessor, target: Exclude<PanelSection, "main"> | "main", essentialAccessors: ReadonlySet<string>): HeaderObject[] | null;
29
+ export declare function moveRootColumnPinSide(headers: ColumnDef[], accessor: Accessor, target: Exclude<PanelSection, "main"> | "main", essentialAccessors: ReadonlySet<string>): ColumnDef[] | null;
@@ -1,12 +1,12 @@
1
- import type HeaderObject from "../../types/HeaderObject";
2
- import type { Accessor } from "../../types/HeaderObject";
1
+ import type ColumnDef from "../../types/ColumnDef";
2
+ import type { Accessor } from "../../types/ColumnDef";
3
3
  import type Row from "../../types/Row";
4
4
  import type { PivotConfig, PivotResult } from "../../types/PivotTypes";
5
5
  export type PivotRowsProps = {
6
6
  rows: Row[];
7
7
  pivot: PivotConfig;
8
- /** Field catalog (`defaultHeaders`) for labels, types, widths, formatters. */
9
- fieldHeaders: HeaderObject[];
8
+ /** Field catalog (`columns`) for labels, types, widths, formatters. */
9
+ fieldHeaders: ColumnDef[];
10
10
  };
11
11
  export declare const buildPivotAccessor: (colKey: string, valueAccessor: Accessor) => string;
12
12
  export declare const buildPivotRowTotalAccessor: (valueAccessor: Accessor) => string;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Shared prop-sync helpers for framework adapters.
3
- * Used to skip no-op `defaultHeaders` / `rows` updates when consumers rebuild
3
+ * Used to skip no-op `columns` / `rows` updates when consumers rebuild
4
4
  * column configs or shallow-clone rows every render.
5
5
  */
6
6
  import type { GetRowIdParams } from "../types/GetRowId";
@@ -14,14 +14,14 @@ export type HeaderStructureLike = {
14
14
  type?: string;
15
15
  pinned?: string | boolean | null;
16
16
  hide?: boolean;
17
- isSortable?: boolean;
17
+ sortable?: boolean;
18
18
  filterable?: boolean;
19
19
  align?: string;
20
20
  collapsible?: boolean;
21
21
  collapseDefault?: boolean;
22
22
  showWhen?: string;
23
- isEditable?: boolean;
24
- isEssential?: boolean;
23
+ editable?: boolean;
24
+ essential?: boolean;
25
25
  disableReorder?: boolean;
26
26
  expandable?: boolean;
27
27
  excludeFromRender?: boolean;