@cocoar/vue-data-grid 1.6.4 → 1.6.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.
@@ -36,6 +36,13 @@ export interface RowDragHighlightOptions<TData> {
36
36
  /** Validate if dragged row can be dropped on target. Return `false` to show "not allowed" feedback. */
37
37
  canDrop?: (draggedData: TData, targetData: TData) => boolean;
38
38
  }
39
+ /** Options for column state persistence */
40
+ export interface ColumnPersistenceOptions {
41
+ /** Bucket size in pixels. Grid width is rounded to the nearest bucket. Default: 100 */
42
+ bucketSize?: number;
43
+ /** Debounce delay in ms for saving column state. Default: 500 */
44
+ debounceMs?: number;
45
+ }
39
46
  /** Options for row selection */
40
47
  export interface RowSelectionOptions {
41
48
  /** Show a checkbox column for selection (default: false for 'single', true for 'multiple') */
@@ -167,6 +174,69 @@ export declare class CoarGridBuilder<TData = unknown> {
167
174
  * ```
168
175
  */
169
176
  autoSize(strategy: 'fitGridWidth' | 'fitCellContents'): this;
177
+ /**
178
+ * Persist column state (widths, order, visibility, sort) in IndexedDB.
179
+ *
180
+ * The grid container width is rounded to the nearest bucket (default: 100px).
181
+ * Each bucket gets its own saved column state, so different container
182
+ * widths (monitor switch, sidebar collapse) each keep their own layout.
183
+ * When no exact bucket exists, the nearest saved state is applied.
184
+ *
185
+ * **Live sync:** Multiple grids with the same `gridKey` synchronize
186
+ * column changes instantly. Resizing a column in one grid updates all
187
+ * others immediately. The IndexedDB write is debounced (default: 500ms)
188
+ * but the cross-grid broadcast is instant.
189
+ *
190
+ * @param gridKey - Unique key for this grid (e.g. `'todo-list'`, `'admin-users'`).
191
+ * Grids with the same key share persisted state and sync live.
192
+ * @param options - Optional bucket size and debounce configuration
193
+ *
194
+ * @example
195
+ * ```ts
196
+ * // Basic usage
197
+ * const builder = CoarGridBuilder.create<User>()
198
+ * .persistColumnState('admin-users')
199
+ * .columns([...])
200
+ *
201
+ * // Two grids with the same key sync column changes live
202
+ * const gridA = CoarGridBuilder.create<User>()
203
+ * .persistColumnState('users')
204
+ * .columns(sharedColumns)
205
+ * .rowData(teamA);
206
+ *
207
+ * const gridB = CoarGridBuilder.create<User>()
208
+ * .persistColumnState('users')
209
+ * .columns(sharedColumns)
210
+ * .rowData(teamB);
211
+ * ```
212
+ */
213
+ persistColumnState(gridKey: string, options?: ColumnPersistenceOptions): this;
214
+ /**
215
+ * Reset the persisted column state for a specific bucket and restore AG Grid defaults.
216
+ * If no bucket is specified, the current width bucket is used.
217
+ *
218
+ * @param bucket - Width bucket to reset (e.g. `800`, `1200`). Defaults to the current bucket.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * // Reset current bucket
223
+ * builder.resetPersistedState()
224
+ *
225
+ * // Reset a specific bucket
226
+ * builder.resetPersistedState(1200)
227
+ * ```
228
+ */
229
+ resetPersistedState(bucket?: number): Promise<void>;
230
+ /**
231
+ * Reset all persisted column states for this grid (all buckets)
232
+ * and restore AG Grid defaults.
233
+ *
234
+ * @example
235
+ * ```ts
236
+ * builder.resetPersistedStates()
237
+ * ```
238
+ */
239
+ resetPersistedStates(): Promise<void>;
170
240
  /**
171
241
  * Enable managed row drag & drop reordering.
172
242
  * AG Grid handles the visual reorder. Dragging is automatically
@@ -1 +1 @@
1
- {"version":3,"file":"coar-grid-builder.d.ts","sourceRoot":"","sources":["../../src/builders/coar-grid-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coar-grid-builder.d.ts","sourceRoot":"","sources":["../../src/builders/coar-grid-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * IndexedDB-backed storage for AG Grid column state.
3
+ *
4
+ * Column states are keyed by a grid identifier + width bucket so that
5
+ * different container widths (monitor switch, sidebar collapse) each
6
+ * get their own persisted layout.
7
+ *
8
+ * Each entry stores `{ state, lastAccessedAt }`. The timestamp is updated
9
+ * on every read and write, enabling time-based cleanup of stale entries.
10
+ */
11
+ export declare function loadColumnState(gridKey: string, bucket: number): Promise<unknown[] | null>;
12
+ export declare function saveColumnState(gridKey: string, bucket: number, state: unknown[]): Promise<void>;
13
+ export declare function getSavedBuckets(gridKey: string): Promise<number[]>;
14
+ export declare function deleteColumnState(gridKey: string, bucket: number): Promise<void>;
15
+ export declare function deleteAllColumnStates(gridKey: string): Promise<void>;
16
+ /**
17
+ * Remove column state entries that haven't been read or written
18
+ * within the specified number of days.
19
+ *
20
+ * Call once at application startup to prevent unbounded growth.
21
+ *
22
+ * @param maxAgeDays - Maximum age in days. Entries older than this are deleted.
23
+ * @returns Number of deleted entries.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * // main.ts — clean up entries older than 6 months
28
+ * import { cleanupColumnStates } from '@cocoar/vue-data-grid';
29
+ * cleanupColumnStates(180);
30
+ * ```
31
+ */
32
+ export declare function cleanupColumnStates(maxAgeDays: number): Promise<number>;
33
+ export declare function toBucket(width: number, bucketSize: number): number;
34
+ export declare function findNearestBucket(target: number, savedBuckets: number[]): number | null;
35
+ export type ColumnStateListener = (state: unknown[], senderId: number) => void;
36
+ /** Generate a unique instance ID for a grid builder */
37
+ export declare function createPersistenceInstanceId(): number;
38
+ /** Subscribe to column state changes from other grids with the same key */
39
+ export declare function onColumnStateChanged(gridKey: string, instanceId: number, listener: ColumnStateListener): () => void;
40
+ /** Notify other grids with the same key about a column state change */
41
+ export declare function broadcastColumnState(gridKey: string, senderId: number, state: unknown[]): void;
42
+ //# sourceMappingURL=column-state-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-state-storage.d.ts","sourceRoot":"","sources":["../../src/builders/column-state-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyCH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAoBhG;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtG;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBxE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtF;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B7E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAYvF;AAID,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAK/E,uDAAuD;AACvD,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,mBAAmB,GAC5B,MAAM,IAAI,CAaZ;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAM9F"}
@@ -1,4 +1,5 @@
1
- export { CoarGridBuilder, type ColumnDefinition, type RowSelectionOptions, type RowDragHighlightOptions, type TreeDataConfig, type TreeNodeMeta, type CoarTreeContext } from './coar-grid-builder';
1
+ export { CoarGridBuilder, type ColumnDefinition, type ColumnPersistenceOptions, type RowSelectionOptions, type RowDragHighlightOptions, type TreeDataConfig, type TreeNodeMeta, type CoarTreeContext } from './coar-grid-builder';
2
2
  export { CoarGridColumnBuilder, COAR_QUICK_FILTER_KEY, COAR_HEADER_I18N_KEY, type QuickFilterConfig } from './coar-grid-column-builder';
3
3
  export { CoarGridColumnFactory } from './coar-grid-column-factory';
4
+ export { cleanupColumnStates } from './column-state-storage';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnM,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxI,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClO,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxI,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.css CHANGED
@@ -1 +1,2 @@
1
- .coar-tag-cell-renderer{display:flex;align-items:center;gap:var(--coar-spacing-xs, 4px);flex-wrap:wrap;height:100%}.coar-icon-cell-renderer{display:flex;align-items:center;justify-content:center;height:100%}.coar-icon-cell-renderer.clickable{cursor:pointer}.coar-date-cell-renderer{display:flex;align-items:center;height:100%}.coar-number-cell-renderer,.coar-currency-cell-renderer{display:flex;align-items:center;justify-content:flex-end;height:100%}.coar-tree-cell{display:flex;align-items:center;height:100%;gap:2px;overflow:hidden}.coar-tree-cell__toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;cursor:pointer;border-radius:4px;transition:background-color .1s}.coar-tree-cell__toggle:hover{background-color:var(--coar-surface-neutral-hover, rgba(0, 0, 0, .06))}.coar-tree-cell__spacer{width:20px;flex-shrink:0}.coar-tree-cell__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coar-tree-cell__count{color:var(--coar-text-neutral-tertiary, #888);font-size:.85em;flex-shrink:0;margin-left:4px}.coar-grid-header{display:flex;align-items:center;width:100%;height:100%;gap:4px;overflow:hidden;color:var(--ag-header-foreground-color, inherit)}.coar-grid-header--sortable{cursor:pointer}.coar-grid-header__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coar-grid-header__spacer{flex:1}.coar-grid-header__sort-icon{font-size:.65em;opacity:.6;flex-shrink:0}.coar-data-grid-search[data-v-aa875501]{display:flex;align-items:center;gap:var(--coar-spacing-s)}.coar-data-grid-search--bordered[data-v-aa875501]{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);padding:var(--coar-spacing-s)}.coar-data-grid-search--elevated[data-v-aa875501]{box-shadow:var(--coar-elevation-medium);border-radius:var(--coar-radius-s);padding:var(--coar-spacing-s)}.coar-data-grid-search__input[data-v-aa875501]{flex:1;min-width:0}.coar-data-grid-search__actions[data-v-aa875501]{display:flex;align-items:center;gap:var(--coar-spacing-xs);flex-shrink:0}.ag-theme-cocoar{--ag-font-family: var(--coar-font-family-body, Poppins, sans-serif);--ag-font-size: var(--coar-font-size-xs, 14px);--ag-grid-size: 4px;--ag-cell-horizontal-padding: var(--coar-spacing-m, 16px);--ag-row-height: 40px;--ag-header-height: 40px;--ag-list-item-height: 36px;--ag-borders: solid 1px;--ag-border-radius: var(--coar-radius-m, 8px);--ag-wrapper-border-radius: var(--coar-radius-m, 8px);--ag-row-border-style: solid;--ag-row-border-width: 1px;--ag-background-color: var(--coar-background-neutral-primary, #ffffff);--ag-header-background-color: var(--coar-background-neutral-secondary, #f5f5f5);--ag-odd-row-background-color: var(--coar-background-neutral-primary, #ffffff);--ag-row-hover-color: var(--coar-background-neutral-tertiary, #e5e5e5);--ag-selected-row-background-color: var(--coar-background-accent-tertiary, #e6f0ff);--ag-modal-overlay-background-color: rgba(0, 0, 0, .5);--ag-border-color: var(--coar-border-neutral-tertiary, #e5e5e5);--ag-row-border-color: var(--coar-border-neutral-tertiary, #e5e5e5);--ag-header-column-separator-color: var(--coar-border-neutral-tertiary, #e5e5e5);--ag-foreground-color: var(--coar-text-neutral-primary, #171717);--ag-header-foreground-color: var(--coar-text-neutral-secondary, #404040);--ag-secondary-foreground-color: var(--coar-text-neutral-tertiary, #525252);--ag-disabled-foreground-color: var(--coar-text-neutral-disabled, #a3a3a3);--ag-range-selection-border-color: var(--coar-border-accent-primary, #0066cc);--ag-range-selection-background-color: var(--coar-background-accent-tertiary, #e6f0ff);--ag-range-selection-highlight-color: var(--coar-background-accent-secondary, #cce0ff);--ag-input-focus-border-color: var(--coar-border-accent-primary, #0066cc);--ag-input-disabled-background-color: var(--coar-background-neutral-disabled, #d4d4d4);--ag-icon-font-color: var(--coar-icon-neutral-secondary, #404040);--ag-subheader-background-color: var(--coar-background-neutral-secondary, #f5f5f5);--ag-control-panel-background-color: var(--coar-background-neutral-primary, #ffffff);--ag-side-button-selected-background-color: var(--coar-background-accent-tertiary, #e6f0ff);--ag-menu-background-color: var(--coar-background-neutral-primary, #ffffff);--ag-menu-border-color: var(--coar-border-neutral-tertiary, #e5e5e5);--ag-checkbox-checked-color: var(--coar-background-accent-primary, #0066cc);--ag-checkbox-unchecked-color: var(--coar-border-neutral-tertiary, #e5e5e5);--ag-checkbox-indeterminate-color: var(--coar-background-accent-secondary, #cce0ff);--ag-chip-background-color: var(--coar-background-neutral-secondary, #f5f5f5);--ag-invalid-color: var(--coar-text-semantic-error-bold, #dc2626)}.ag-theme-cocoar .ag-header-cell,.ag-theme-cocoar .ag-cell{transition:none!important}.dark-mode .ag-theme-cocoar,.ag-theme-cocoar.dark-mode{--ag-background-color: var(--coar-background-neutral-primary, #18181b);--ag-header-background-color: var(--coar-background-neutral-secondary, #27272a);--ag-odd-row-background-color: var(--coar-background-neutral-primary, #18181b);--ag-row-hover-color: var(--coar-background-neutral-tertiary, #3f3f46);--ag-selected-row-background-color: var(--coar-background-accent-tertiary, #1e3a5f);--ag-border-color: var(--coar-border-neutral-tertiary, #3f3f46);--ag-row-border-color: var(--coar-border-neutral-tertiary, #3f3f46);--ag-header-column-separator-color: var(--coar-border-neutral-tertiary, #3f3f46);--ag-foreground-color: var(--coar-text-neutral-primary, #fafafa);--ag-header-foreground-color: var(--coar-text-neutral-secondary, #e4e4e7);--ag-secondary-foreground-color: var(--coar-text-neutral-tertiary, #a1a1aa);--ag-disabled-foreground-color: var(--coar-text-neutral-disabled, #71717a);--ag-icon-font-color: var(--coar-icon-neutral-secondary, #e4e4e7);--ag-subheader-background-color: var(--coar-background-neutral-secondary, #27272a);--ag-control-panel-background-color: var(--coar-background-neutral-primary, #18181b);--ag-menu-background-color: var(--coar-background-neutral-primary, #18181b);--ag-menu-border-color: var(--coar-border-neutral-tertiary, #3f3f46);--ag-checkbox-unchecked-color: var(--coar-border-neutral-tertiary, #3f3f46);--ag-chip-background-color: var(--coar-background-neutral-secondary, #27272a);--ag-input-disabled-background-color: var(--coar-background-neutral-disabled, #3f3f46)}.ag-theme-cocoar .ag-row-focus{outline:none}.ag-theme-cocoar .ag-row-selected{background-color:var(--ag-selected-row-background-color)!important}.ag-theme-cocoar .ag-header{font-weight:600}.ag-theme-cocoar .ag-header-cell{padding-left:var(--coar-spacing-m, 16px);padding-right:var(--coar-spacing-m, 16px)}.ag-theme-cocoar .ag-cell-focus{border-color:var(--ag-range-selection-border-color, var(--coar-border-accent-primary, #0066cc))!important}.ag-theme-cocoar .ag-row{transition:background-color .15s ease}.ag-theme-cocoar .ag-cell.clickable{cursor:pointer;color:var(--coar-text-accent-primary, #0066cc)}.ag-theme-cocoar .ag-cell.clickable:hover{text-decoration:underline}.ag-theme-cocoar .ag-cell.text-right{justify-content:flex-end;text-align:right}.ag-theme-cocoar .ag-cell.text-center{justify-content:center;text-align:center}.ag-theme-cocoar .ag-overlay-loading-wrapper{background-color:var(--ag-background-color)}.ag-theme-cocoar .ag-overlay-no-rows-wrapper{color:var(--ag-secondary-foreground-color)}.ag-theme-cocoar .ag-row.coar-drop-target{background-color:var(--coar-surface-accent-subtle, rgba(0, 102, 204, .1))!important;outline:2px solid var(--coar-border-accent, #0066cc);outline-offset:-2px;border-radius:var(--coar-radius-s, 6px)}.ag-theme-cocoar.coar-drop-target-root{outline:2px dashed var(--coar-border-accent, #0066cc);outline-offset:-2px;border-radius:var(--coar-radius-s, 6px)}.ag-theme-cocoar.ag-theme-cocoar--bordered{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);overflow:hidden}.ag-theme-cocoar.ag-theme-cocoar--elevated{box-shadow:var(--coar-elevation-medium);border-radius:var(--coar-radius-s);overflow:hidden}.ag-theme-cocoar .ag-row.coar-drop-target--invalid{background-color:var(--coar-surface-semantic-error-subtle, rgba(204, 0, 0, .06))!important;outline:2px dashed var(--coar-border-semantic-error, rgba(204, 0, 0, .4));outline-offset:-2px;border-radius:var(--coar-radius-s, 6px);cursor:not-allowed}::highlight(coar-search){text-decoration:underline;text-decoration-color:var(--coar-border-accent, #0066cc);text-decoration-thickness:2px;text-underline-offset:2px;background-color:transparent;color:inherit}.coar-grid-toolbar{display:flex;align-items:center;gap:var(--coar-spacing-s);margin-bottom:var(--coar-spacing-s)}:is(.ag-theme-cocoar--bordered,.ag-theme-cocoar--elevated)>.coar-grid-toolbar{padding:var(--coar-spacing-s) var(--coar-spacing-s) 0;margin-bottom:var(--coar-spacing-s)}.coar-grid-toolbar:has(>:only-child.coar-grid-toolbar__spacer){display:none}.ag-theme-cocoar--has-toolbar>.ag-grid-vue-container{border-top:1px solid var(--coar-border-neutral)}.coar-grid-toolbar__search{flex:1;min-width:0}.coar-grid-toolbar__spacer{flex:1}
1
+ .coar-tag-cell-renderer{align-items:center;gap:var(--coar-spacing-xs,4px);flex-wrap:wrap;height:100%;display:flex}.coar-icon-cell-renderer{justify-content:center;align-items:center;height:100%;display:flex}.coar-icon-cell-renderer.clickable{cursor:pointer}.coar-date-cell-renderer{align-items:center;height:100%;display:flex}.coar-number-cell-renderer,.coar-currency-cell-renderer{justify-content:flex-end;align-items:center;height:100%;display:flex}.coar-tree-cell{align-items:center;gap:2px;height:100%;display:flex;overflow:hidden}.coar-tree-cell__toggle{cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:background-color .1s;display:flex}.coar-tree-cell__toggle:hover{background-color:var(--coar-surface-neutral-hover,#0000000f)}.coar-tree-cell__spacer{flex-shrink:0;width:20px}.coar-tree-cell__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coar-tree-cell__count{color:var(--coar-text-neutral-tertiary,#888);flex-shrink:0;margin-left:4px;font-size:.85em}.coar-grid-header{width:100%;height:100%;color:var(--ag-header-foreground-color,inherit);align-items:center;gap:4px;display:flex;overflow:hidden}.coar-grid-header--sortable{cursor:pointer}.coar-grid-header__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.coar-grid-header__spacer{flex:1}.coar-grid-header__sort-icon{opacity:.6;flex-shrink:0;font-size:.65em}.coar-data-grid-search[data-v-aa875501]{align-items:center;gap:var(--coar-spacing-s);display:flex}.coar-data-grid-search--bordered[data-v-aa875501]{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);padding:var(--coar-spacing-s)}.coar-data-grid-search--elevated[data-v-aa875501]{box-shadow:var(--coar-elevation-medium);border-radius:var(--coar-radius-s);padding:var(--coar-spacing-s)}.coar-data-grid-search__input[data-v-aa875501]{flex:1;min-width:0}.coar-data-grid-search__actions[data-v-aa875501]{align-items:center;gap:var(--coar-spacing-xs);flex-shrink:0;display:flex}.ag-theme-cocoar .ag-header-cell,.ag-theme-cocoar .ag-cell{transition:none!important}.ag-theme-cocoar{--ag-font-family:var(--coar-font-family-body,Poppins, sans-serif);--ag-font-size:var(--coar-font-size-xs,14px);--ag-grid-size:4px;--ag-cell-horizontal-padding:var(--coar-spacing-m,16px);--ag-row-height:40px;--ag-header-height:40px;--ag-list-item-height:36px;--ag-borders:solid 1px;--ag-border-radius:var(--coar-radius-m,8px);--ag-wrapper-border-radius:var(--coar-radius-m,8px);--ag-row-border-style:solid;--ag-row-border-width:1px;--ag-background-color:var(--coar-background-neutral-primary,#fff);--ag-header-background-color:var(--coar-background-neutral-secondary,#f5f5f5);--ag-odd-row-background-color:var(--coar-background-neutral-primary,#fff);--ag-row-hover-color:var(--coar-background-neutral-tertiary,#e5e5e5);--ag-selected-row-background-color:var(--coar-background-accent-tertiary,#e6f0ff);--ag-modal-overlay-background-color:#00000080;--ag-border-color:var(--coar-border-neutral-tertiary,#e5e5e5);--ag-row-border-color:var(--coar-border-neutral-tertiary,#e5e5e5);--ag-header-column-separator-color:var(--coar-border-neutral-tertiary,#e5e5e5);--ag-foreground-color:var(--coar-text-neutral-primary,#171717);--ag-header-foreground-color:var(--coar-text-neutral-secondary,#404040);--ag-secondary-foreground-color:var(--coar-text-neutral-tertiary,#525252);--ag-disabled-foreground-color:var(--coar-text-neutral-disabled,#a3a3a3);--ag-range-selection-border-color:var(--coar-border-accent-primary,#06c);--ag-range-selection-background-color:var(--coar-background-accent-tertiary,#e6f0ff);--ag-range-selection-highlight-color:var(--coar-background-accent-secondary,#cce0ff);--ag-input-focus-border-color:var(--coar-border-accent-primary,#06c);--ag-input-disabled-background-color:var(--coar-background-neutral-disabled,#d4d4d4);--ag-icon-font-color:var(--coar-icon-neutral-secondary,#404040);--ag-subheader-background-color:var(--coar-background-neutral-secondary,#f5f5f5);--ag-control-panel-background-color:var(--coar-background-neutral-primary,#fff);--ag-side-button-selected-background-color:var(--coar-background-accent-tertiary,#e6f0ff);--ag-menu-background-color:var(--coar-background-neutral-primary,#fff);--ag-menu-border-color:var(--coar-border-neutral-tertiary,#e5e5e5);--ag-checkbox-checked-color:var(--coar-background-accent-primary,#06c);--ag-checkbox-unchecked-color:var(--coar-border-neutral-tertiary,#e5e5e5);--ag-checkbox-indeterminate-color:var(--coar-background-accent-secondary,#cce0ff);--ag-chip-background-color:var(--coar-background-neutral-secondary,#f5f5f5);--ag-invalid-color:var(--coar-text-semantic-error-bold,#dc2626)}.dark-mode .ag-theme-cocoar,.ag-theme-cocoar.dark-mode{--ag-background-color:var(--coar-background-neutral-primary,#18181b);--ag-header-background-color:var(--coar-background-neutral-secondary,#27272a);--ag-odd-row-background-color:var(--coar-background-neutral-primary,#18181b);--ag-row-hover-color:var(--coar-background-neutral-tertiary,#3f3f46);--ag-selected-row-background-color:var(--coar-background-accent-tertiary,#1e3a5f);--ag-border-color:var(--coar-border-neutral-tertiary,#3f3f46);--ag-row-border-color:var(--coar-border-neutral-tertiary,#3f3f46);--ag-header-column-separator-color:var(--coar-border-neutral-tertiary,#3f3f46);--ag-foreground-color:var(--coar-text-neutral-primary,#fafafa);--ag-header-foreground-color:var(--coar-text-neutral-secondary,#e4e4e7);--ag-secondary-foreground-color:var(--coar-text-neutral-tertiary,#a1a1aa);--ag-disabled-foreground-color:var(--coar-text-neutral-disabled,#71717a);--ag-icon-font-color:var(--coar-icon-neutral-secondary,#e4e4e7);--ag-subheader-background-color:var(--coar-background-neutral-secondary,#27272a);--ag-control-panel-background-color:var(--coar-background-neutral-primary,#18181b);--ag-menu-background-color:var(--coar-background-neutral-primary,#18181b);--ag-menu-border-color:var(--coar-border-neutral-tertiary,#3f3f46);--ag-checkbox-unchecked-color:var(--coar-border-neutral-tertiary,#3f3f46);--ag-chip-background-color:var(--coar-background-neutral-secondary,#27272a);--ag-input-disabled-background-color:var(--coar-background-neutral-disabled,#3f3f46)}.ag-theme-cocoar .ag-row-focus{outline:none}.ag-theme-cocoar .ag-row-selected{background-color:var(--ag-selected-row-background-color)!important}.ag-theme-cocoar .ag-header{font-weight:600}.ag-theme-cocoar .ag-header-cell{padding-left:var(--coar-spacing-m,16px);padding-right:var(--coar-spacing-m,16px)}.ag-theme-cocoar .ag-cell-focus{border-color:var(--ag-range-selection-border-color,var(--coar-border-accent-primary,#06c))!important}.ag-theme-cocoar .ag-row{transition:background-color .15s}.ag-theme-cocoar .ag-cell.clickable{cursor:pointer;color:var(--coar-text-accent-primary,#06c)}.ag-theme-cocoar .ag-cell.clickable:hover{text-decoration:underline}.ag-theme-cocoar .ag-cell.text-right{text-align:right;justify-content:flex-end}.ag-theme-cocoar .ag-cell.text-center{text-align:center;justify-content:center}.ag-theme-cocoar .ag-overlay-loading-wrapper{background-color:var(--ag-background-color)}.ag-theme-cocoar .ag-overlay-no-rows-wrapper{color:var(--ag-secondary-foreground-color)}.ag-theme-cocoar .ag-row.coar-drop-target{outline:2px solid var(--coar-border-accent,#06c);outline-offset:-2px;border-radius:var(--coar-radius-s,6px);background-color:var(--coar-surface-accent-subtle,#0066cc1a)!important}.ag-theme-cocoar.coar-drop-target-root{outline:2px dashed var(--coar-border-accent,#06c);outline-offset:-2px;border-radius:var(--coar-radius-s,6px)}.ag-theme-cocoar.ag-theme-cocoar--bordered{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);overflow:hidden}.ag-theme-cocoar.ag-theme-cocoar--elevated{box-shadow:var(--coar-elevation-medium);border-radius:var(--coar-radius-s);overflow:hidden}.ag-theme-cocoar .ag-row.coar-drop-target--invalid{outline:2px dashed var(--coar-border-semantic-error,#c006);outline-offset:-2px;border-radius:var(--coar-radius-s,6px);cursor:not-allowed;background-color:var(--coar-surface-semantic-error-subtle,#cc00000f)!important}::highlight(coar-search){text-decoration:underline;-webkit-text-decoration-color:var(--coar-border-accent,#06c);text-decoration-color:var(--coar-border-accent,#06c);text-underline-offset:2px;color:inherit;background-color:#0000;text-decoration-thickness:2px}.coar-grid-toolbar{align-items:center;gap:var(--coar-spacing-s);margin-bottom:var(--coar-spacing-s);display:flex}:is(.ag-theme-cocoar--bordered,.ag-theme-cocoar--elevated)>.coar-grid-toolbar{padding:var(--coar-spacing-s) var(--coar-spacing-s) 0;margin-bottom:var(--coar-spacing-s)}.coar-grid-toolbar:has(>:only-child.coar-grid-toolbar__spacer){display:none}.ag-theme-cocoar--has-toolbar>.ag-grid-vue-container{border-top:1px solid var(--coar-border-neutral)}.coar-grid-toolbar__search{flex:1;min-width:0}.coar-grid-toolbar__spacer{flex:1}
2
+ /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { CoarGridBuilder, type ColumnDefinition, type TreeDataConfig, type TreeNodeMeta, type CoarTreeContext } from './builders';
1
+ export { CoarGridBuilder, type ColumnDefinition, type ColumnPersistenceOptions, type TreeDataConfig, type TreeNodeMeta, type CoarTreeContext, cleanupColumnStates } from './builders';
2
2
  export { CoarGridColumnBuilder } from './builders';
3
3
  export { CoarGridColumnFactory } from './builders';
4
4
  export { TagCellRenderer, IconCellRenderer, DateCellRenderer, TreeCellRenderer } from './cell-renderers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAClI,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzG,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGtI,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGzD,YAAY,EACV,MAAM,EACN,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtL,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzG,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGtI,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGzD,YAAY,EACV,MAAM,EACN,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}