@rozie-ui/data-table-lit 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -6,14 +6,14 @@ declare class DataTable extends DataTable_base {
6
6
  static shadowRootOptions: ShadowRootInit;
7
7
  static styles: _$lit.CSSResult;
8
8
  /**
9
- * The row data — `model: true`, so a committed cell/row edit writes a **fresh** array back through `r-model:data` (uncontrolled fallback `dataDefault`). A stable reference per Rozie's setup-once model — fed directly into table-core (never map/cloned in the watcher).
9
+ * The row data — `model: true`, so a committed cell/row edit writes a **fresh** array back through the two-way `data` binding (uncontrolled fallback `dataDefault`). A stable reference per Rozie's setup-once model — fed directly into table-core (never map/cloned in the watcher).
10
10
  * @example
11
11
  * <rozie-data-table .data=${rows} @data-change=${…} .columns=${cols}></rozie-data-table>
12
12
  */
13
13
  _data_attr: any[];
14
14
  private _dataControllable;
15
15
  /**
16
- * Config-array column fallback (lower precedence than `<Column>` children). Each entry: `{ id?, field, header?, sortable?, filterable?, pinned?, width? }`. Columns may come from this array, from `<Column>` children, or both (id-keyed last-write-wins union).
16
+ * Config-array column fallback (lower precedence than `<Column>` children). Each entry: `{ id?, field, header?, sortable?, filterable?, pinned?, width? }`. Columns may come from this array, from `<Column>` children, or both (id-keyed last-write-wins union). A `pinned` value of `'left'` or `'right'` is applied once as the table's initial `columnPinning` state — identical to `<Column pinned>` — which also REORDERS that column, since table-core orders visible cells `[left-pinned, center, right-pinned]`. A consumer who has already expressed a pin (an initial two-way `columnPinning` model value or an interactive pin) owns the slice and this declaration is ignored.
17
17
  */
18
18
  columns: any[];
19
19
  /**
@@ -53,7 +53,7 @@ declare class DataTable extends DataTable_base {
53
53
  */
54
54
  pageCount: number | null;
55
55
  /**
56
- * Opt-in **expandable rows**. When `true`, a leading chevron expander column auto-injects (after the select column) and `getExpandedRowModel` activates; default `false` is byte-identical-off. Every row can expand to reveal a `#detail` panel unless `getSubRows` is supplied (then only rows with children expand). Bind `:expandable="true"` (a bare attr only coerces on Vue+Lit).
56
+ * Opt-in **expandable rows**. When `true`, a leading chevron expander column auto-injects (after the select column) and `getExpandedRowModel` activates; default `false` is byte-identical-off. Every row can expand to reveal a `#detail` panel unless `getSubRows` is supplied (then only rows with children expand). Pass `expandable` as a real boolean — a valueless attribute only coerces to `true` on Vue and Lit.
57
57
  */
58
58
  expandable: boolean;
59
59
  /**
@@ -70,7 +70,7 @@ declare class DataTable extends DataTable_base {
70
70
  */
71
71
  groupable: boolean;
72
72
  /**
73
- * `GroupingState` — an ordered `string[]` of column ids (multi-column → nested groups, e.g. `['region','category']`). An empty/unbound list is ungrouped (byte-identical-off). Group-header rows are collapsible (they ride the expand model). Surfaces through `group-change`; uncontrolled fallback (`$data.groupingDefault`, default `[]`) when unbound — the default is `null` (mirroring `expanded`) so the uncontrolled fallback is reachable and the grouping auto-expand default can activate when a consumer applies grouping without binding `r-model:grouping` (a non-null `[]` default would short-circuit it). All reads are null-guarded, so table-core still receives an array.
73
+ * `GroupingState` — an ordered `string[]` of column ids (multi-column → nested groups, e.g. `['region','category']`). An empty/unbound list is ungrouped (byte-identical-off). Group-header rows are collapsible (they ride the expand model). Surfaces through `group-change`; uncontrolled fallback (`$data.groupingDefault`, default `[]`) when unbound — the default is `null` (mirroring `expanded`) so the uncontrolled fallback is reachable and the grouping auto-expand default can activate when a consumer applies grouping without binding the two-way `grouping` model (a non-null `[]` default would short-circuit it). All reads are null-guarded, so table-core still receives an array.
74
74
  */
75
75
  _grouping_attr: any[] | null;
76
76
  private _groupingControllable;
@@ -104,7 +104,7 @@ declare class DataTable extends DataTable_base {
104
104
  */
105
105
  stickyHeader: boolean;
106
106
  /**
107
- * `'table'` (default, row-oriented, byte-behaviorally identical to a plain accessible table) | `'grid'` (GA since Phase 63) — lights up the full WAI-ARIA **[grid interaction mode](/components/data-table-grid-mode)**: `role="grid"`, a roving single tab-stop, 2-D APG arrow-key cell navigation, range selection, and clipboard support.
107
+ * `'table'` (default, row-oriented, byte-behaviorally identical to a plain accessible table) | `'grid'` — lights up the full WAI-ARIA **[grid interaction mode](/components/data-table-grid-mode)**: `role="grid"`, a roving single tab-stop, 2-D APG arrow-key cell navigation, range selection, and clipboard support.
108
108
  */
109
109
  interactionMode: string;
110
110
  /**
@@ -192,6 +192,26 @@ declare class DataTable extends DataTable_base {
192
192
  indeterminate: any;
193
193
  toggle: any;
194
194
  }) => unknown;
195
+ private _hasSlotDynamicColHeader;
196
+ private _slotDynamicColHeaderElements;
197
+ private _hasSlotDynamicFilter;
198
+ private _slotDynamicFilterElements;
199
+ private _hasSlotSelectCell;
200
+ private _slotSelectCellElements;
201
+ selectCell?: (scope: {
202
+ row: any;
203
+ checked: any;
204
+ toggle: any;
205
+ }) => unknown;
206
+ private _hasSlotDynamicCell;
207
+ private _slotDynamicCellElements;
208
+ private _hasSlotDynamicEditor;
209
+ private _slotDynamicEditorElements;
210
+ private _hasSlotDetail;
211
+ private _slotDetailElements;
212
+ detail?: (scope: {
213
+ row: any;
214
+ }) => unknown;
195
215
  private _hasSlotColHeader;
196
216
  private _slotColHeaderElements;
197
217
  colHeader?: (scope: {
@@ -208,13 +228,6 @@ declare class DataTable extends DataTable_base {
208
228
  minMax: any;
209
229
  setFilter: any;
210
230
  }) => unknown;
211
- private _hasSlotSelectCell;
212
- private _slotSelectCellElements;
213
- selectCell?: (scope: {
214
- row: any;
215
- checked: any;
216
- toggle: any;
217
- }) => unknown;
218
231
  private _hasSlotCell;
219
232
  private _slotCellElements;
220
233
  cell?: (scope: {
@@ -234,12 +247,35 @@ declare class DataTable extends DataTable_base {
234
247
  cancel: any;
235
248
  autofocus: any;
236
249
  }) => unknown;
237
- private _hasSlotDetail;
238
- private _slotDetailElements;
239
- detail?: (scope: {
240
- row: any;
241
- }) => unknown;
242
- rozieSlots?: Record<string, (scope: any) => unknown>;
250
+ rozieSlots?: {
251
+ [key: `colHeader-${string}`]: (scope: {
252
+ columnId: any;
253
+ column: any;
254
+ label: any;
255
+ }) => unknown;
256
+ [key: `filter-${string}`]: (scope: {
257
+ columnId: any;
258
+ value: any;
259
+ uniqueValues: any;
260
+ minMax: any;
261
+ setFilter: any;
262
+ }) => unknown;
263
+ [key: `cell-${string}`]: (scope: {
264
+ columnId: any;
265
+ column: any;
266
+ row: any;
267
+ value: any;
268
+ }) => unknown;
269
+ [key: `editor-${string}`]: (scope: {
270
+ columnId: any;
271
+ column: any;
272
+ row: any;
273
+ value: any;
274
+ commit: any;
275
+ cancel: any;
276
+ autofocus: any;
277
+ }) => unknown;
278
+ } & Record<string, (scope: any) => unknown>;
243
279
  private _disconnectCleanups;
244
280
  private _rozieTornDown;
245
281
  private _armListeners;
@@ -269,6 +305,8 @@ declare class DataTable extends DataTable_base {
269
305
  expandedTouched: boolean;
270
306
  groupingActiveDefault: () => boolean;
271
307
  effectiveColumnPinning: () => any;
308
+ pinSeedApplied: boolean;
309
+ seedColumnPinning: () => void;
272
310
  currentState: () => any;
273
311
  currentData: () => any;
274
312
  buildConfigDef: (c: any) => {
@@ -349,6 +387,7 @@ declare class DataTable extends DataTable_base {
349
387
  onColumnSizingChangeCb: (updater: any) => void;
350
388
  onColumnOrderChangeCb: (updater: any) => void;
351
389
  onColumnPinningChangeCb: (updater: any) => void;
390
+ columnSizingInfoSync: any;
352
391
  onColumnSizingInfoChangeCb: (updater: any) => void;
353
392
  resolveVirtual: () => "rows" | "columns" | "both" | "off";
354
393
  rowsWindowed: () => boolean;
@@ -424,11 +463,9 @@ declare class DataTable extends DataTable_base {
424
463
  columnEditable: (colId: any) => boolean;
425
464
  editorTypeOf: (colId: any) => any;
426
465
  editorOptionsOf: (colId: any) => any;
427
- hasEditorSlot: (colId: any) => boolean;
428
- hasFilterSlot: () => boolean;
429
466
  columnIsFilterable: (colId: any) => boolean;
430
467
  headerLabel: (colId: any) => any;
431
- headerWidth: (colId: any) => string;
468
+ headerWidth: (header: any) => string;
432
469
  onResizeStart: (colId: any, evt: any) => void;
433
470
  findHeader: (colId: any) => any;
434
471
  columnIsResizing: (colId: any) => boolean;
@@ -438,7 +475,7 @@ declare class DataTable extends DataTable_base {
438
475
  columnPinSide: (colId: any) => any;
439
476
  onPinColumn: (colId: any, side: any, evt: any) => void;
440
477
  pinStyle: (colId: any, zIndex?: number) => string;
441
- thStyle: (colId: any) => string;
478
+ thStyle: (header: any) => string;
442
479
  onGlobalFilterInput: (evt: any) => void;
443
480
  onColumnFilterInput: (colId: any, evt: any) => void;
444
481
  globalFilterValue: () => any;
@@ -604,6 +641,12 @@ declare class DataTable extends DataTable_base {
604
641
  dy: number;
605
642
  };
606
643
  teardownFillDrag: () => void;
644
+ FILL_HITTEST_PROBE_RADIUS_PX: number;
645
+ FILL_HITTEST_PROBE_STEP_PX: number;
646
+ resolveCellAt: (clientX: any, clientY: any) => {
647
+ r: number;
648
+ c: number;
649
+ };
607
650
  cellIndexFromPoint: (clientX: any, clientY: any) => {
608
651
  r: number;
609
652
  c: number;
@@ -627,7 +670,8 @@ declare class DataTable extends DataTable_base {
627
670
  editingCellValue: () => any;
628
671
  editingRowOriginal: () => any;
629
672
  editingRowId: () => any;
630
- focusEditorWhenReady: (selectAll?: boolean) => void;
673
+ resolveEditFocusCellEl: (rowIndex: any, colIndex: any) => any;
674
+ focusEditorWhenReady: (rowIndex: any, colIndex: any, selectAll?: boolean) => void;
631
675
  columnIdAt: (rowIndex: any, colIndex: any) => any;
632
676
  cellValueAt: (rowIndex: any, colIndex: any) => any;
633
677
  beginEdit: (rowIndex: any, colIndex: any, seed: any) => void;
@@ -738,7 +782,7 @@ declare class Column extends Column_base {
738
782
  */
739
783
  filterable: boolean;
740
784
  /**
741
- * Pin side: `''` (unpinned) | `'left'` | `'right'`. Reserved metadata carried into the parent's column pinning state.
785
+ * Initial pin side: `''` (unpinned) | `'left'` | `'right'`. Applied once as the table's starting `columnPinning` state, so `getIsPinned()` reports it and the column joins the matching sticky rail — which also reorders it, since visible cells are ordered `[left-pinned, center, right-pinned]`. Ignored if the consumer has already pinned something; an interactive unpin is never re-applied.
742
786
  */
743
787
  pinned: string;
744
788
  /**
@@ -762,7 +806,7 @@ declare class Column extends Column_base {
762
806
  */
763
807
  editable: boolean;
764
808
  /**
765
- * Built-in editor type for this column: `'text'` | `'number'` | `'select'` | `'checkbox'`. Ignored when a custom `#editor` scoped slot handles the column. Default `'text'`.
809
+ * Editor type for this column: `'text'` | `'number'` | `'select'` | `'checkbox'` (built-in inputs), or `'custom'` to hand rendering to the `#editor` scoped slot (or a per-column `editor-<columnId>` fill). Default `'text'`. **`'custom'` is the gate:** a column left on a built-in type ignores any `#editor` fill and renders the built-in input. Requires `editable: true` — and, for any pointer or keyboard edit entry, `interactionMode="grid"` on the table.
766
810
  */
767
811
  editor: string;
768
812
  /**
package/dist/index.d.mts CHANGED
@@ -6,14 +6,14 @@ declare class DataTable extends DataTable_base {
6
6
  static shadowRootOptions: ShadowRootInit;
7
7
  static styles: _$lit.CSSResult;
8
8
  /**
9
- * The row data — `model: true`, so a committed cell/row edit writes a **fresh** array back through `r-model:data` (uncontrolled fallback `dataDefault`). A stable reference per Rozie's setup-once model — fed directly into table-core (never map/cloned in the watcher).
9
+ * The row data — `model: true`, so a committed cell/row edit writes a **fresh** array back through the two-way `data` binding (uncontrolled fallback `dataDefault`). A stable reference per Rozie's setup-once model — fed directly into table-core (never map/cloned in the watcher).
10
10
  * @example
11
11
  * <rozie-data-table .data=${rows} @data-change=${…} .columns=${cols}></rozie-data-table>
12
12
  */
13
13
  _data_attr: any[];
14
14
  private _dataControllable;
15
15
  /**
16
- * Config-array column fallback (lower precedence than `<Column>` children). Each entry: `{ id?, field, header?, sortable?, filterable?, pinned?, width? }`. Columns may come from this array, from `<Column>` children, or both (id-keyed last-write-wins union).
16
+ * Config-array column fallback (lower precedence than `<Column>` children). Each entry: `{ id?, field, header?, sortable?, filterable?, pinned?, width? }`. Columns may come from this array, from `<Column>` children, or both (id-keyed last-write-wins union). A `pinned` value of `'left'` or `'right'` is applied once as the table's initial `columnPinning` state — identical to `<Column pinned>` — which also REORDERS that column, since table-core orders visible cells `[left-pinned, center, right-pinned]`. A consumer who has already expressed a pin (an initial two-way `columnPinning` model value or an interactive pin) owns the slice and this declaration is ignored.
17
17
  */
18
18
  columns: any[];
19
19
  /**
@@ -53,7 +53,7 @@ declare class DataTable extends DataTable_base {
53
53
  */
54
54
  pageCount: number | null;
55
55
  /**
56
- * Opt-in **expandable rows**. When `true`, a leading chevron expander column auto-injects (after the select column) and `getExpandedRowModel` activates; default `false` is byte-identical-off. Every row can expand to reveal a `#detail` panel unless `getSubRows` is supplied (then only rows with children expand). Bind `:expandable="true"` (a bare attr only coerces on Vue+Lit).
56
+ * Opt-in **expandable rows**. When `true`, a leading chevron expander column auto-injects (after the select column) and `getExpandedRowModel` activates; default `false` is byte-identical-off. Every row can expand to reveal a `#detail` panel unless `getSubRows` is supplied (then only rows with children expand). Pass `expandable` as a real boolean — a valueless attribute only coerces to `true` on Vue and Lit.
57
57
  */
58
58
  expandable: boolean;
59
59
  /**
@@ -70,7 +70,7 @@ declare class DataTable extends DataTable_base {
70
70
  */
71
71
  groupable: boolean;
72
72
  /**
73
- * `GroupingState` — an ordered `string[]` of column ids (multi-column → nested groups, e.g. `['region','category']`). An empty/unbound list is ungrouped (byte-identical-off). Group-header rows are collapsible (they ride the expand model). Surfaces through `group-change`; uncontrolled fallback (`$data.groupingDefault`, default `[]`) when unbound — the default is `null` (mirroring `expanded`) so the uncontrolled fallback is reachable and the grouping auto-expand default can activate when a consumer applies grouping without binding `r-model:grouping` (a non-null `[]` default would short-circuit it). All reads are null-guarded, so table-core still receives an array.
73
+ * `GroupingState` — an ordered `string[]` of column ids (multi-column → nested groups, e.g. `['region','category']`). An empty/unbound list is ungrouped (byte-identical-off). Group-header rows are collapsible (they ride the expand model). Surfaces through `group-change`; uncontrolled fallback (`$data.groupingDefault`, default `[]`) when unbound — the default is `null` (mirroring `expanded`) so the uncontrolled fallback is reachable and the grouping auto-expand default can activate when a consumer applies grouping without binding the two-way `grouping` model (a non-null `[]` default would short-circuit it). All reads are null-guarded, so table-core still receives an array.
74
74
  */
75
75
  _grouping_attr: any[] | null;
76
76
  private _groupingControllable;
@@ -104,7 +104,7 @@ declare class DataTable extends DataTable_base {
104
104
  */
105
105
  stickyHeader: boolean;
106
106
  /**
107
- * `'table'` (default, row-oriented, byte-behaviorally identical to a plain accessible table) | `'grid'` (GA since Phase 63) — lights up the full WAI-ARIA **[grid interaction mode](/components/data-table-grid-mode)**: `role="grid"`, a roving single tab-stop, 2-D APG arrow-key cell navigation, range selection, and clipboard support.
107
+ * `'table'` (default, row-oriented, byte-behaviorally identical to a plain accessible table) | `'grid'` — lights up the full WAI-ARIA **[grid interaction mode](/components/data-table-grid-mode)**: `role="grid"`, a roving single tab-stop, 2-D APG arrow-key cell navigation, range selection, and clipboard support.
108
108
  */
109
109
  interactionMode: string;
110
110
  /**
@@ -192,6 +192,26 @@ declare class DataTable extends DataTable_base {
192
192
  indeterminate: any;
193
193
  toggle: any;
194
194
  }) => unknown;
195
+ private _hasSlotDynamicColHeader;
196
+ private _slotDynamicColHeaderElements;
197
+ private _hasSlotDynamicFilter;
198
+ private _slotDynamicFilterElements;
199
+ private _hasSlotSelectCell;
200
+ private _slotSelectCellElements;
201
+ selectCell?: (scope: {
202
+ row: any;
203
+ checked: any;
204
+ toggle: any;
205
+ }) => unknown;
206
+ private _hasSlotDynamicCell;
207
+ private _slotDynamicCellElements;
208
+ private _hasSlotDynamicEditor;
209
+ private _slotDynamicEditorElements;
210
+ private _hasSlotDetail;
211
+ private _slotDetailElements;
212
+ detail?: (scope: {
213
+ row: any;
214
+ }) => unknown;
195
215
  private _hasSlotColHeader;
196
216
  private _slotColHeaderElements;
197
217
  colHeader?: (scope: {
@@ -208,13 +228,6 @@ declare class DataTable extends DataTable_base {
208
228
  minMax: any;
209
229
  setFilter: any;
210
230
  }) => unknown;
211
- private _hasSlotSelectCell;
212
- private _slotSelectCellElements;
213
- selectCell?: (scope: {
214
- row: any;
215
- checked: any;
216
- toggle: any;
217
- }) => unknown;
218
231
  private _hasSlotCell;
219
232
  private _slotCellElements;
220
233
  cell?: (scope: {
@@ -234,12 +247,35 @@ declare class DataTable extends DataTable_base {
234
247
  cancel: any;
235
248
  autofocus: any;
236
249
  }) => unknown;
237
- private _hasSlotDetail;
238
- private _slotDetailElements;
239
- detail?: (scope: {
240
- row: any;
241
- }) => unknown;
242
- rozieSlots?: Record<string, (scope: any) => unknown>;
250
+ rozieSlots?: {
251
+ [key: `colHeader-${string}`]: (scope: {
252
+ columnId: any;
253
+ column: any;
254
+ label: any;
255
+ }) => unknown;
256
+ [key: `filter-${string}`]: (scope: {
257
+ columnId: any;
258
+ value: any;
259
+ uniqueValues: any;
260
+ minMax: any;
261
+ setFilter: any;
262
+ }) => unknown;
263
+ [key: `cell-${string}`]: (scope: {
264
+ columnId: any;
265
+ column: any;
266
+ row: any;
267
+ value: any;
268
+ }) => unknown;
269
+ [key: `editor-${string}`]: (scope: {
270
+ columnId: any;
271
+ column: any;
272
+ row: any;
273
+ value: any;
274
+ commit: any;
275
+ cancel: any;
276
+ autofocus: any;
277
+ }) => unknown;
278
+ } & Record<string, (scope: any) => unknown>;
243
279
  private _disconnectCleanups;
244
280
  private _rozieTornDown;
245
281
  private _armListeners;
@@ -269,6 +305,8 @@ declare class DataTable extends DataTable_base {
269
305
  expandedTouched: boolean;
270
306
  groupingActiveDefault: () => boolean;
271
307
  effectiveColumnPinning: () => any;
308
+ pinSeedApplied: boolean;
309
+ seedColumnPinning: () => void;
272
310
  currentState: () => any;
273
311
  currentData: () => any;
274
312
  buildConfigDef: (c: any) => {
@@ -349,6 +387,7 @@ declare class DataTable extends DataTable_base {
349
387
  onColumnSizingChangeCb: (updater: any) => void;
350
388
  onColumnOrderChangeCb: (updater: any) => void;
351
389
  onColumnPinningChangeCb: (updater: any) => void;
390
+ columnSizingInfoSync: any;
352
391
  onColumnSizingInfoChangeCb: (updater: any) => void;
353
392
  resolveVirtual: () => "rows" | "columns" | "both" | "off";
354
393
  rowsWindowed: () => boolean;
@@ -424,11 +463,9 @@ declare class DataTable extends DataTable_base {
424
463
  columnEditable: (colId: any) => boolean;
425
464
  editorTypeOf: (colId: any) => any;
426
465
  editorOptionsOf: (colId: any) => any;
427
- hasEditorSlot: (colId: any) => boolean;
428
- hasFilterSlot: () => boolean;
429
466
  columnIsFilterable: (colId: any) => boolean;
430
467
  headerLabel: (colId: any) => any;
431
- headerWidth: (colId: any) => string;
468
+ headerWidth: (header: any) => string;
432
469
  onResizeStart: (colId: any, evt: any) => void;
433
470
  findHeader: (colId: any) => any;
434
471
  columnIsResizing: (colId: any) => boolean;
@@ -438,7 +475,7 @@ declare class DataTable extends DataTable_base {
438
475
  columnPinSide: (colId: any) => any;
439
476
  onPinColumn: (colId: any, side: any, evt: any) => void;
440
477
  pinStyle: (colId: any, zIndex?: number) => string;
441
- thStyle: (colId: any) => string;
478
+ thStyle: (header: any) => string;
442
479
  onGlobalFilterInput: (evt: any) => void;
443
480
  onColumnFilterInput: (colId: any, evt: any) => void;
444
481
  globalFilterValue: () => any;
@@ -604,6 +641,12 @@ declare class DataTable extends DataTable_base {
604
641
  dy: number;
605
642
  };
606
643
  teardownFillDrag: () => void;
644
+ FILL_HITTEST_PROBE_RADIUS_PX: number;
645
+ FILL_HITTEST_PROBE_STEP_PX: number;
646
+ resolveCellAt: (clientX: any, clientY: any) => {
647
+ r: number;
648
+ c: number;
649
+ };
607
650
  cellIndexFromPoint: (clientX: any, clientY: any) => {
608
651
  r: number;
609
652
  c: number;
@@ -627,7 +670,8 @@ declare class DataTable extends DataTable_base {
627
670
  editingCellValue: () => any;
628
671
  editingRowOriginal: () => any;
629
672
  editingRowId: () => any;
630
- focusEditorWhenReady: (selectAll?: boolean) => void;
673
+ resolveEditFocusCellEl: (rowIndex: any, colIndex: any) => any;
674
+ focusEditorWhenReady: (rowIndex: any, colIndex: any, selectAll?: boolean) => void;
631
675
  columnIdAt: (rowIndex: any, colIndex: any) => any;
632
676
  cellValueAt: (rowIndex: any, colIndex: any) => any;
633
677
  beginEdit: (rowIndex: any, colIndex: any, seed: any) => void;
@@ -738,7 +782,7 @@ declare class Column extends Column_base {
738
782
  */
739
783
  filterable: boolean;
740
784
  /**
741
- * Pin side: `''` (unpinned) | `'left'` | `'right'`. Reserved metadata carried into the parent's column pinning state.
785
+ * Initial pin side: `''` (unpinned) | `'left'` | `'right'`. Applied once as the table's starting `columnPinning` state, so `getIsPinned()` reports it and the column joins the matching sticky rail — which also reorders it, since visible cells are ordered `[left-pinned, center, right-pinned]`. Ignored if the consumer has already pinned something; an interactive unpin is never re-applied.
742
786
  */
743
787
  pinned: string;
744
788
  /**
@@ -762,7 +806,7 @@ declare class Column extends Column_base {
762
806
  */
763
807
  editable: boolean;
764
808
  /**
765
- * Built-in editor type for this column: `'text'` | `'number'` | `'select'` | `'checkbox'`. Ignored when a custom `#editor` scoped slot handles the column. Default `'text'`.
809
+ * Editor type for this column: `'text'` | `'number'` | `'select'` | `'checkbox'` (built-in inputs), or `'custom'` to hand rendering to the `#editor` scoped slot (or a per-column `editor-<columnId>` fill). Default `'text'`. **`'custom'` is the gate:** a column left on a built-in type ignores any `#editor` fill and renders the built-in input. Requires `editable: true` — and, for any pointer or keyboard edit entry, `interactionMode="grid"` on the table.
766
810
  */
767
811
  editor: string;
768
812
  /**