impact-nova 2.1.0-alpha.4 → 2.1.0-alpha.6

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 (153) hide show
  1. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.d.ts +3 -0
  2. package/dist/components/data/ag-grid-react/ag-grid-tooltip-overflow.js +6 -0
  3. package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +15 -21
  4. package/dist/components/data/ag-grid-react/cell-renderers/date-display-renderer.js +1 -1
  5. package/dist/components/data/ag-grid-react/cell-renderers/default-text-cell-renderer.d.ts +1 -2
  6. package/dist/components/data/ag-grid-react/cell-renderers/default-text-cell-renderer.js +12 -6
  7. package/dist/components/data/ag-grid-react/cell-renderers/editors/textarea-cell-editor.js +19 -19
  8. package/dist/components/data/ag-grid-react/cell-renderers/select-display-renderer.js +1 -1
  9. package/dist/components/data/ag-grid-react/cell-renderers/switch-display-renderer.js +15 -15
  10. package/dist/components/data/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.js +1 -1
  11. package/dist/components/data/ag-grid-react/headers/advanced-filter/column-filter-section.js +33 -33
  12. package/dist/components/data/ag-grid-react/headers/components/header-info.js +66 -62
  13. package/dist/components/data/ag-grid-react/headers/components/info-modal.js +6 -6
  14. package/dist/components/data/ag-grid-react/headers/components/section-renderers.js +18 -18
  15. package/dist/components/data/ag-grid-react/headers/custom-header-group.js +40 -29
  16. package/dist/components/data/ag-grid-react/headers/custom-header.js +102 -98
  17. package/dist/components/data/ag-grid-react/index.d.ts +1 -1
  18. package/dist/components/data/ag-grid-react/index.js +136 -127
  19. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.d.ts +7 -0
  20. package/dist/components/data/ag-grid-react/notify-column-indicator-sync.js +6 -0
  21. package/dist/components/data/ag-grid-react/theme.js +8 -4
  22. package/dist/components/data/ag-grid-react/use-ag-grid-truncation-tooltip.d.ts +5 -0
  23. package/dist/components/data/ag-grid-react/use-ag-grid-truncation-tooltip.js +13 -0
  24. package/dist/components/data/ag-grid-react/useGridAutoSizeStrategyOnResize.js +8 -5
  25. package/dist/components/data/data-table/build-column-tree-from-grid.d.ts +14 -0
  26. package/dist/components/data/data-table/build-column-tree-from-grid.js +95 -0
  27. package/dist/components/data/data-table/data-table-column-apply.d.ts +29 -0
  28. package/dist/components/data/data-table/data-table-column-apply.js +102 -0
  29. package/dist/components/data/data-table/data-table-column-def-pin.d.ts +25 -0
  30. package/dist/components/data/data-table/data-table-column-def-pin.js +66 -0
  31. package/dist/components/data/data-table/data-table-column-list-sync.d.ts +8 -0
  32. package/dist/components/data/data-table/data-table-column-list-sync.js +15 -0
  33. package/dist/components/data/data-table/data-table-column-list.d.ts +14 -4
  34. package/dist/components/data/data-table/data-table-column-list.js +74 -277
  35. package/dist/components/data/data-table/data-table-constants.d.ts +3 -4
  36. package/dist/components/data/data-table/data-table-context.d.ts +3 -6
  37. package/dist/components/data/data-table/data-table-context.js +21 -10
  38. package/dist/components/data/data-table/data-table-saved-views.js +26 -26
  39. package/dist/components/data/data-table/data-table-sheet-portal-store.d.ts +13 -0
  40. package/dist/components/data/data-table/data-table-sheet-portal-store.js +36 -0
  41. package/dist/components/data/data-table/data-table-sheet.d.ts +3 -6
  42. package/dist/components/data/data-table/data-table-sheet.js +4 -2
  43. package/dist/components/data/data-table/data-table-view-menu.js +40 -40
  44. package/dist/components/data/data-table/data-table.d.ts +8 -10
  45. package/dist/components/data/data-table/data-table.js +138 -111
  46. package/dist/components/data/data-table/data-table.types.d.ts +35 -0
  47. package/dist/components/data/data-table/index.js +28 -27
  48. package/dist/components/data/data-table/indicator-legend.js +6 -6
  49. package/dist/components/data/data-table/use-data-table-column-list-sync.d.ts +16 -0
  50. package/dist/components/data/data-table/use-data-table-column-list-sync.js +222 -0
  51. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.d.ts +8 -0
  52. package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +72 -0
  53. package/dist/components/data/expandable-list-item/expandable-list-item-context.d.ts +13 -0
  54. package/dist/components/data/expandable-list-item/expandable-list-item-context.js +25 -0
  55. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.d.ts +6 -0
  56. package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +41 -0
  57. package/dist/components/data/expandable-list-item/expandable-list-item-parts.d.ts +31 -0
  58. package/dist/components/data/expandable-list-item/expandable-list-item-parts.js +233 -0
  59. package/dist/components/data/expandable-list-item/expandable-list-item-preset.d.ts +18 -0
  60. package/dist/components/data/expandable-list-item/expandable-list-item-preset.js +133 -0
  61. package/dist/components/data/expandable-list-item/expandable-list-item.d.ts +5 -0
  62. package/dist/components/data/{expandable-sku/expandable-sku.types.d.ts → expandable-list-item/expandable-list-item.types.d.ts} +7 -7
  63. package/dist/components/data/expandable-list-item/index.d.ts +5 -0
  64. package/dist/components/data/expandable-list-item/index.js +19 -0
  65. package/dist/components/data/nested-list/components/NestedListHeader.js +11 -11
  66. package/dist/components/data/nested-list/components/SortableItem.js +2 -2
  67. package/dist/components/data-display/avatar/avatar.types.d.ts +2 -0
  68. package/dist/components/data-display/badge/badge.types.d.ts +2 -0
  69. package/dist/components/data-display/calendar/calendar-day-picker-classnames.js +11 -11
  70. package/dist/components/data-display/calendar/calendar-month-picker-panel.js +7 -7
  71. package/dist/components/data-display/calendar/calendar-week-number-cell.js +31 -31
  72. package/dist/components/data-display/card/card.js +8 -8
  73. package/dist/components/data-display/chart/chart.types.d.ts +9 -0
  74. package/dist/components/data-display/skeleton/skeleton.js +6 -6
  75. package/dist/components/data-display/statistics-card/statistics-card.js +14 -14
  76. package/dist/components/feedback/alert-dialog/alert-dialog.js +19 -19
  77. package/dist/components/feedback/dialog/dialog.js +1 -1
  78. package/dist/components/feedback/drawer/drawer.js +18 -18
  79. package/dist/components/feedback/dropdown-menu/dropdown-menu.js +70 -57
  80. package/dist/components/feedback/popover/popover.js +1 -1
  81. package/dist/components/feedback/sheet/sheet.js +1 -1
  82. package/dist/components/feedback/tooltip/tooltip.js +22 -22
  83. package/dist/components/feedback/tooltip/tooltip.variants.js +1 -1
  84. package/dist/components/flows/command-palette/command-palette.js +104 -104
  85. package/dist/components/flows/command-palette/shortcut-settings.js +34 -34
  86. package/dist/components/flows/filter-strip/filter-tag-list.js +4 -4
  87. package/dist/components/flows/notification-panel/notification-list.js +17 -17
  88. package/dist/components/flows/notification-panel/notification-panel.js +4 -4
  89. package/dist/components/flows/notification-panel/notification-panel.types.d.ts +3 -0
  90. package/dist/components/flows/wizard/wizard.js +8 -8
  91. package/dist/components/forms/combobox/combobox.js +20 -20
  92. package/dist/components/forms/date-picker/date-picker.js +17 -17
  93. package/dist/components/forms/date-picker/date-range-picker.js +3 -3
  94. package/dist/components/forms/date-picker/month-picker.js +1 -1
  95. package/dist/components/forms/date-picker/month-range-picker.js +42 -42
  96. package/dist/components/forms/date-picker/week-picker.js +15 -15
  97. package/dist/components/forms/date-picker/week-range-picker.js +3 -3
  98. package/dist/components/forms/file-upload/file-upload.js +33 -33
  99. package/dist/components/forms/input/input.js +8 -8
  100. package/dist/components/forms/input/input.variants.js +3 -3
  101. package/dist/components/forms/select/components/SelectMenuPanel.d.ts +1 -2
  102. package/dist/components/forms/select/components/SelectMenuPanel.js +18 -20
  103. package/dist/components/forms/select/components/SelectTrigger.d.ts +9 -6
  104. package/dist/components/forms/select/components/SelectTrigger.js +120 -122
  105. package/dist/components/forms/select/components/Submenu.js +8 -8
  106. package/dist/components/forms/select/hooks/useSelectKeyboardHandlers.d.ts +1 -1
  107. package/dist/components/forms/select/hooks/useSelectValueState.d.ts +19 -0
  108. package/dist/components/forms/select/hooks/useSelectValueState.js +41 -0
  109. package/dist/components/forms/select/index.js +4 -3
  110. package/dist/components/forms/select/select.js +180 -175
  111. package/dist/components/forms/select/select.types.d.ts +3 -2
  112. package/dist/components/forms/select/select.variants.js +4 -4
  113. package/dist/components/forms/select/utils/select.d.ts +2 -1
  114. package/dist/components/forms/select/utils/select.js +47 -37
  115. package/dist/components/layout/sidebar/sidebar.d.ts +7 -50
  116. package/dist/components/layout/sidebar/sidebar.js +12 -11
  117. package/dist/components/layout/sidebar/sidebar.types.d.ts +35 -1
  118. package/dist/components/primitives/button-group/button-group.js +32 -32
  119. package/dist/components/primitives/chips/chips.variants.js +5 -5
  120. package/dist/components/primitives/empty-container/empty-container.types.d.ts +3 -0
  121. package/dist/components/primitives/kbd/kbd.variants.js +3 -3
  122. package/dist/components/primitives/stepper/stepper.js +6 -6
  123. package/dist/impact-nova-components.css +113 -7
  124. package/dist/impact-nova-tokens.scss +2 -4
  125. package/dist/impact-nova.css +1 -1
  126. package/dist/index.d.ts +1 -1
  127. package/dist/index.js +467 -433
  128. package/dist/lib/compose-refs.d.ts +8 -0
  129. package/dist/lib/compose-refs.js +14 -0
  130. package/dist/lib/primitives/field.types.d.ts +8 -2
  131. package/dist/lib/virtualized/index.d.ts +3 -0
  132. package/dist/lib/virtualized/index.js +33 -16
  133. package/dist/lib/virtualized/useVirtualizedList.d.ts +2 -0
  134. package/dist/lib/virtualized/useVirtualizedList.js +115 -109
  135. package/dist/lib/virtualized/virtualized-list-context.d.ts +12 -0
  136. package/dist/lib/virtualized/virtualized-list-context.js +21 -0
  137. package/dist/lib/virtualized/virtualized-list-parts.d.ts +51 -0
  138. package/dist/lib/virtualized/virtualized-list-parts.js +175 -0
  139. package/dist/lib/virtualized/virtualized-list-utils.d.ts +5 -0
  140. package/dist/lib/virtualized/virtualized-list-utils.js +6 -0
  141. package/dist/llms/rules/ag-grid.js +1 -1
  142. package/dist/llms/rules/installation.js +1 -1
  143. package/dist/llms/rules/migration.js +1 -1
  144. package/dist/llms/rules/real-world-patterns.js +1 -1
  145. package/dist/llms/rules/requirements.js +1 -1
  146. package/package.json +24 -15
  147. package/tailwind.config.js +1 -0
  148. package/dist/components/data/ag-grid-react/headers/components/truncated-text.d.ts +0 -15
  149. package/dist/components/data/ag-grid-react/headers/components/truncated-text.js +0 -27
  150. package/dist/components/data/expandable-sku/expandable-sku.d.ts +0 -38
  151. package/dist/components/data/expandable-sku/expandable-sku.js +0 -245
  152. package/dist/components/data/expandable-sku/index.d.ts +0 -2
  153. package/dist/components/data/expandable-sku/index.js +0 -4
@@ -0,0 +1,95 @@
1
+ import { resolveColumnPinnedFromGridState as O } from "./data-table-column-apply.js";
2
+ function x(t) {
3
+ const i = [];
4
+ let l = t.getOriginalParent();
5
+ for (; l; ) {
6
+ const f = l.getColGroupDef();
7
+ f?.headerName && f?.children && i.push(l), l = l.getOriginalParent();
8
+ }
9
+ return i.reverse(), i;
10
+ }
11
+ function T(t, i) {
12
+ const l = t.getColumnState(), f = t.getGridOption("context"), y = typeof f?.activeSearchColumnId == "string" ? f.activeSearchColumnId : null, z = t.getAllGridColumns?.() ?? t.getColumns() ?? [], N = new Map(
13
+ z.map((o) => [o.getColId(), o])
14
+ ), h = [], m = [], G = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
15
+ p.set(h, "f"), p.set(m, "s");
16
+ let _ = 0;
17
+ const w = (o) => {
18
+ let e = p.get(o);
19
+ return e === void 0 && (e = `n${_++}`, p.set(o, e)), e;
20
+ }, F = (o, e) => {
21
+ const n = o.getGroupId(), r = w(e), d = `${n}::${r}`, u = G.get(d);
22
+ if (u && u.list === e && e[e.length - 1] === u.node)
23
+ return u.node;
24
+ const c = v.get(d) || 0;
25
+ v.set(d, c + 1);
26
+ const C = o.getColGroupDef(), a = {
27
+ id: c === 0 ? `${n}__${r}` : `${n}__${r}__${c}`,
28
+ label: C?.headerName || n,
29
+ checked: !0,
30
+ children: [],
31
+ category: "group"
32
+ };
33
+ return e.push(a), G.set(d, { list: e, node: a }), a;
34
+ };
35
+ let g = 0, S = 0, I = 0, $ = 0;
36
+ l.forEach((o) => {
37
+ const e = N.get(o.colId) ?? t.getColumn(o.colId);
38
+ if (!e) return;
39
+ let n = t.getDisplayNameForColumn(e, "header");
40
+ if (n === "") return;
41
+ if (n == null) {
42
+ const s = e.getColDef();
43
+ if (s.headerName === "") return;
44
+ n = s.headerName || s.field || o.colId;
45
+ }
46
+ if (!n || n.trim() === "")
47
+ return;
48
+ const r = !o.hide, d = !!o.sort, u = e.isFilterActive() || y === o.colId, c = O(o, e), C = {
49
+ id: o.colId,
50
+ label: n,
51
+ checked: r,
52
+ data: {
53
+ hasSortApplied: d,
54
+ hasFilterApplied: u,
55
+ pinned: c
56
+ }
57
+ };
58
+ c ? (g++, r && S++) : (I++, r && $++);
59
+ const k = c ? h : m, a = x(e);
60
+ if (a.length > 0) {
61
+ let s = k, D = null;
62
+ for (const M of a)
63
+ D = F(M, s), s = D.children;
64
+ D.children.push(C);
65
+ } else
66
+ k.push(C);
67
+ });
68
+ const b = (o) => {
69
+ let e = o.length > 0;
70
+ for (const n of o)
71
+ n.children && (n.checked = b(n.children)), n.checked || (e = !1);
72
+ return e;
73
+ };
74
+ return b(h), b(m), [
75
+ {
76
+ id: "root-frozen",
77
+ label: i.frozenColumns,
78
+ checked: g > 0 && S === g,
79
+ children: h,
80
+ category: "structure",
81
+ isDragDisabled: !0
82
+ },
83
+ {
84
+ id: "root-scrollable",
85
+ label: i.scrollableColumns,
86
+ checked: I > 0 && $ === I,
87
+ children: m,
88
+ category: "structure",
89
+ isDragDisabled: !0
90
+ }
91
+ ];
92
+ }
93
+ export {
94
+ T as buildColumnTreeFromGrid
95
+ };
@@ -0,0 +1,29 @@
1
+ import { Column, ColumnPinnedType, ColumnState, GridApi } from 'ag-grid-community';
2
+ import { NestedListItem } from '../nested-list/nested-list.types';
3
+ /** Debounce window for coalescing external grid column events into one UI sync. */
4
+ export declare const EXTERNAL_SYNC_DEBOUNCE_MS = 150;
5
+ /**
6
+ * Fallback when AG Grid may asynchronously reject a new pin (pinned viewport full).
7
+ * Event-driven detection is primary; this only covers the "no rejection fired" path.
8
+ */
9
+ export declare const GRID_AUTO_UNPIN_WAIT_MS = 300;
10
+ export type NormalizedColumnPin = 'left' | 'right' | null;
11
+ export declare function normalizeColumnPinned(pinned: ColumnPinnedType | boolean | null | undefined): NormalizedColumnPin;
12
+ /**
13
+ * Prefer runtime column state from `getColumnState()`. Only fall back to
14
+ * `column.getPinned()` when the state object omits `pinned` entirely.
15
+ */
16
+ export declare function resolveColumnPinnedFromGridState(state: ColumnState, column: Column): NormalizedColumnPin;
17
+ export declare function readGridColumnPinned(gridApi: GridApi, columnId: string): NormalizedColumnPin;
18
+ export declare function pinnedColumnIdsFromState(state: ColumnState[]): Set<string>;
19
+ /** Align `data.pinned` on leaves with frozen/scrollable section placement. */
20
+ export declare function alignColumnTreePinMetadata(items: NestedListItem[]): NestedListItem[];
21
+ /** Cheap structural fingerprint for column-tree equality (order, pin, visibility). */
22
+ export declare function fingerprintColumnTreeItems(items: NestedListItem[]): string;
23
+ /** Fingerprint for sort/filter indicator badges on column-picker leaves. */
24
+ export declare function fingerprintColumnTreeIndicators(items: NestedListItem[]): string;
25
+ /**
26
+ * Run after `applyColumnState` returns. AG Grid applies pin/order/hide synchronously;
27
+ * `queueMicrotask` lets any same-turn grid events finish before we release the panel lock.
28
+ */
29
+ export declare function afterSynchronousColumnApply(onSettled: () => void): void;
@@ -0,0 +1,102 @@
1
+ const p = 150, s = 300;
2
+ function c(e) {
3
+ return e === "left" || e === !0 ? "left" : e === "right" ? "right" : null;
4
+ }
5
+ function f(e, n) {
6
+ return "pinned" in e && e.pinned !== void 0 ? c(e.pinned) : c(n.getPinned());
7
+ }
8
+ function g(e, n) {
9
+ const r = e.getColumn(n);
10
+ if (!r) return null;
11
+ const l = e.getColumnState().find((t) => t.colId === n);
12
+ return l ? f(l, r) : c(r.getPinned());
13
+ }
14
+ function d(e, n) {
15
+ return e.map((r) => {
16
+ if ((r.category === "group" || r.children && r.children.length > 0) && r.children)
17
+ return {
18
+ ...r,
19
+ children: d(r.children, n)
20
+ };
21
+ const t = r.data ?? {};
22
+ let i = null;
23
+ if (n !== null) {
24
+ const o = t.pinned;
25
+ i = o === "left" || o === "right" ? o : n;
26
+ }
27
+ return {
28
+ ...r,
29
+ data: {
30
+ ...t,
31
+ pinned: i
32
+ }
33
+ };
34
+ });
35
+ }
36
+ function m(e) {
37
+ return e.map((n) => n.id === "root-frozen" ? {
38
+ ...n,
39
+ children: n.children ? d(n.children, "left") : []
40
+ } : n.id === "root-scrollable" ? {
41
+ ...n,
42
+ children: n.children ? d(n.children, null) : []
43
+ } : n);
44
+ }
45
+ function C(e) {
46
+ const n = [], r = (l, t) => {
47
+ for (const i of l) {
48
+ if (i.id === "root-frozen") {
49
+ i.children && r(i.children, "left");
50
+ continue;
51
+ }
52
+ if (i.id === "root-scrollable") {
53
+ i.children && r(i.children, null);
54
+ continue;
55
+ }
56
+ if ((i.category === "group" || i.children && i.children.length > 0) && i.children) {
57
+ r(i.children, t);
58
+ continue;
59
+ }
60
+ let a = "0";
61
+ if (t !== null) {
62
+ const u = i.data?.pinned;
63
+ a = u === "left" || u === "right" ? u : "left";
64
+ }
65
+ n.push(`${i.id}:${a}:${i.checked ? "1" : "0"}`);
66
+ }
67
+ };
68
+ return r(e, null), n.join("|");
69
+ }
70
+ function G(e) {
71
+ const n = [], r = (l) => {
72
+ for (const t of l) {
73
+ if (t.id === "root-frozen" || t.id === "root-scrollable") {
74
+ t.children && r(t.children);
75
+ continue;
76
+ }
77
+ if ((t.category === "group" || t.children && t.children.length > 0) && t.children) {
78
+ r(t.children);
79
+ continue;
80
+ }
81
+ const o = t.data;
82
+ n.push(
83
+ `${t.id}:${o?.hasSortApplied ? "1" : "0"}:${o?.hasFilterApplied ? "1" : "0"}`
84
+ );
85
+ }
86
+ };
87
+ return r(e), n.join("|");
88
+ }
89
+ function S(e) {
90
+ queueMicrotask(e);
91
+ }
92
+ export {
93
+ p as EXTERNAL_SYNC_DEBOUNCE_MS,
94
+ s as GRID_AUTO_UNPIN_WAIT_MS,
95
+ S as afterSynchronousColumnApply,
96
+ m as alignColumnTreePinMetadata,
97
+ G as fingerprintColumnTreeIndicators,
98
+ C as fingerprintColumnTreeItems,
99
+ c as normalizeColumnPinned,
100
+ g as readGridColumnPinned,
101
+ f as resolveColumnPinnedFromGridState
102
+ };
@@ -0,0 +1,25 @@
1
+ import { ColDef, ColGroupDef, GridState } from 'ag-grid-community';
2
+ export interface ExtractedColumnPinning {
3
+ leftColIds: string[];
4
+ rightColIds: string[];
5
+ }
6
+ export interface ExtractedColumnVisibility {
7
+ hiddenColIds: string[];
8
+ }
9
+ export interface ExtractedColumnRuntimeDefaults {
10
+ columnPinning: ExtractedColumnPinning;
11
+ columnVisibility: ExtractedColumnVisibility;
12
+ }
13
+ export interface RuntimeColumnDefsResult {
14
+ runtimeColumnDefs: (ColDef | ColGroupDef)[];
15
+ extractedRuntimeDefaults: ExtractedColumnRuntimeDefaults;
16
+ }
17
+ /**
18
+ * AG Grid reapplies `colDef.pinned` / `colDef.hide` on column-definition refresh.
19
+ * User changes belong in runtime column state / `initialState`, not on defs.
20
+ */
21
+ export declare function extractRuntimeColumnDefs(columnDefs: (ColDef | ColGroupDef)[] | undefined): RuntimeColumnDefsResult;
22
+ /** @deprecated Use `extractedRuntimeDefaults.columnPinning` from `extractRuntimeColumnDefs`. */
23
+ export declare function getExtractedColumnPinning(result: RuntimeColumnDefsResult): ExtractedColumnPinning;
24
+ export declare function mergeInitialColumnPinningState(userInitialState: GridState | undefined, extractedColumnPinning: ExtractedColumnPinning): GridState | undefined;
25
+ export declare function mergeInitialGridRuntimeState(userInitialState: GridState | undefined, extractedRuntimeDefaults: ExtractedColumnRuntimeDefaults): GridState | undefined;
@@ -0,0 +1,66 @@
1
+ function d(n) {
2
+ const i = n.colId ?? n.field;
3
+ return typeof i == "string" && i.length > 0 ? i : void 0;
4
+ }
5
+ function s(n, i, r) {
6
+ if (i === "left" || i === !0) {
7
+ r.leftColIds.push(n);
8
+ return;
9
+ }
10
+ i === "right" && r.rightColIds.push(n);
11
+ }
12
+ function h(n, i) {
13
+ const r = d(n);
14
+ if (r && (n.pinned != null && s(r, n.pinned, i.columnPinning), n.hide === !0 && i.columnVisibility.hiddenColIds.push(r)), n.pinned === void 0 && n.hide === void 0)
15
+ return n;
16
+ const { pinned: e, hide: t, ...o } = n;
17
+ return o;
18
+ }
19
+ function u(n, i) {
20
+ let r = !1;
21
+ const e = n.map((t) => {
22
+ if ("children" in t && t.children) {
23
+ const l = u(
24
+ t.children,
25
+ i
26
+ );
27
+ return l === t.children ? t : (r = !0, {
28
+ ...t,
29
+ children: l
30
+ });
31
+ }
32
+ const o = h(
33
+ t,
34
+ i
35
+ );
36
+ return o !== t && (r = !0), o;
37
+ });
38
+ return r ? e : n;
39
+ }
40
+ function c() {
41
+ return {
42
+ columnPinning: { leftColIds: [], rightColIds: [] },
43
+ columnVisibility: { hiddenColIds: [] }
44
+ };
45
+ }
46
+ function m(n) {
47
+ const i = c();
48
+ return !n || n.length === 0 ? { runtimeColumnDefs: [], extractedRuntimeDefaults: i } : {
49
+ runtimeColumnDefs: u(
50
+ n,
51
+ i
52
+ ),
53
+ extractedRuntimeDefaults: i
54
+ };
55
+ }
56
+ function g(n, i) {
57
+ const r = i.columnPinning.leftColIds.length > 0 || i.columnPinning.rightColIds.length > 0, e = i.columnVisibility.hiddenColIds.length > 0;
58
+ if (!n && !r && !e)
59
+ return;
60
+ const t = { ...n };
61
+ return !n?.columnPinning && r && (t.columnPinning = i.columnPinning), !n?.columnVisibility && e && (t.columnVisibility = i.columnVisibility), !t.columnPinning && !t.columnVisibility && Object.keys(t).length === 0 ? n : Object.keys(t).length > 0 ? t : void 0;
62
+ }
63
+ export {
64
+ m as extractRuntimeColumnDefs,
65
+ g as mergeInitialGridRuntimeState
66
+ };
@@ -0,0 +1,8 @@
1
+ import { NestedListItem } from '../nested-list/nested-list.types';
2
+ export type ColumnListSyncMode = 'skip' | 'indicators-only' | 'structural';
3
+ export interface ColumnListSyncFingerprints {
4
+ structural: string;
5
+ indicators: string;
6
+ }
7
+ export declare function computeColumnListSyncFingerprints(rootItems: NestedListItem[]): ColumnListSyncFingerprints;
8
+ export declare function resolveColumnListSyncMode(rootItems: NestedListItem[], previousStructuralFingerprint: string, previousIndicatorsFingerprint: string): ColumnListSyncMode;
@@ -0,0 +1,15 @@
1
+ import { fingerprintColumnTreeIndicators as u, fingerprintColumnTreeItems as s } from "./data-table-column-apply.js";
2
+ function c(n) {
3
+ return {
4
+ structural: s(n),
5
+ indicators: u(n)
6
+ };
7
+ }
8
+ function l(n, t, i) {
9
+ const r = c(n), e = r.structural !== t, o = r.indicators !== i;
10
+ return e ? "structural" : o ? "indicators-only" : "skip";
11
+ }
12
+ export {
13
+ c as computeColumnListSyncFingerprints,
14
+ l as resolveColumnListSyncMode
15
+ };
@@ -1,8 +1,18 @@
1
- interface DataTableColumnListProps {
1
+ /**
2
+ * Column visibility, order, and pin picker backed by AG Grid `gridApi`.
3
+ * Must render inside `DataTable` (reads `useDataTable().gridApi`).
4
+ */
5
+ export type DataTableColumnListProps = {
6
+ /**
7
+ * When `true`, column changes stay staged until the user clicks Apply (Discard resets).
8
+ * When `false` (default), visibility, order, and pin updates apply to the grid immediately.
9
+ */
2
10
  enableApplyDiscard?: boolean;
11
+ /** Show the search field that filters the column tree. Default `true`. */
3
12
  showSearch?: boolean;
13
+ /** Show the select-all control for column visibility. Default `true`. */
4
14
  showSelectAll?: boolean;
15
+ /** Show collapse/expand controls on nested column group headers. Default `true`. */
5
16
  showCollapse?: boolean;
6
- }
7
- export declare const DataTableColumnList: ({ enableApplyDiscard, showSearch, showSelectAll, showCollapse }: DataTableColumnListProps) => import("react/jsx-runtime").JSX.Element;
8
- export {};
17
+ };
18
+ export declare const DataTableColumnList: ({ enableApplyDiscard, showSearch, showSelectAll, showCollapse, }: DataTableColumnListProps) => import("react/jsx-runtime").JSX.Element;