@ixfx/components 0.8.7 → 0.8.8

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 (71) hide show
  1. package/bundle/index.d.ts +565 -395
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +993 -187
  4. package/bundle/index.js.map +1 -1
  5. package/dist/crumbs.d.ts +1 -1
  6. package/dist/crumbs.js +2 -2
  7. package/dist/{data-grid-CYVPSUwh.d.ts → data-grid-BKa9i86q.d.ts} +15 -2
  8. package/dist/data-grid-BKa9i86q.d.ts.map +1 -0
  9. package/dist/data-grid.d.ts +3 -2
  10. package/dist/data-grid.js +95 -5
  11. package/dist/data-grid.js.map +1 -1
  12. package/dist/{detail-list-vH56z7WE.d.ts → detail-list-CHTomlbR.d.ts} +22 -5
  13. package/dist/detail-list-CHTomlbR.d.ts.map +1 -0
  14. package/dist/detail-list.d.ts +4 -3
  15. package/dist/detail-list.js +103 -3
  16. package/dist/detail-list.js.map +1 -1
  17. package/dist/{grid-list-j5C7qtlG.js → grid-list-C8oMxLl-.js} +77 -164
  18. package/dist/grid-list-C8oMxLl-.js.map +1 -0
  19. package/dist/{grid-list-Cq8ga2WZ.d.ts → grid-list-CsZcXxMC.d.ts} +259 -109
  20. package/dist/grid-list-CsZcXxMC.d.ts.map +1 -0
  21. package/dist/grid-list.d.ts +3 -2
  22. package/dist/grid-list.js +1 -1
  23. package/dist/incr-search.d.ts +1 -1
  24. package/dist/{index-DDREWqMm.d.ts → index-Dgrx-DIA.d.ts} +2 -2
  25. package/dist/{index-DDREWqMm.d.ts.map → index-Dgrx-DIA.d.ts.map} +1 -1
  26. package/dist/index.d.ts +190 -252
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -7
  29. package/dist/index.js.map +1 -1
  30. package/dist/{interaction-B9AAlsFO.js → interaction-BskmlA9t.js} +1 -1
  31. package/dist/list-drag-types-kpaXz2pZ.d.ts +42 -0
  32. package/dist/list-drag-types-kpaXz2pZ.d.ts.map +1 -0
  33. package/dist/{list-item-animation-DuiwgN3l.js → list-item-animation-BUoEKi5s.js} +29 -10
  34. package/dist/list-item-animation-BUoEKi5s.js.map +1 -0
  35. package/dist/list-native-drag-controller-DrY3qeJM.js +555 -0
  36. package/dist/list-native-drag-controller-DrY3qeJM.js.map +1 -0
  37. package/dist/{menu-HMoxCPY2.js → menu-CMXhIaNZ.js} +3 -3
  38. package/dist/{menu-HMoxCPY2.js.map → menu-CMXhIaNZ.js.map} +1 -1
  39. package/dist/{menu-item-BQDYxk5A.js → menu-item-BYGQzyCe.js} +2 -2
  40. package/dist/{menu-item-BQDYxk5A.js.map → menu-item-BYGQzyCe.js.map} +1 -1
  41. package/dist/menu.js +2 -2
  42. package/dist/miller.d.ts +2 -2
  43. package/dist/miller.js +1 -1
  44. package/dist/narrowed-text.js +1 -1
  45. package/dist/select-horiz.js +1 -1
  46. package/dist/{tree-CozQj01a.js → tree-DSMn566I.js} +50 -14
  47. package/dist/tree-DSMn566I.js.map +1 -0
  48. package/dist/{tree-component-BMpxpdTi.d.ts → tree-component-nPP5Y-WS.d.ts} +2 -2
  49. package/dist/{tree-component-BMpxpdTi.d.ts.map → tree-component-nPP5Y-WS.d.ts.map} +1 -1
  50. package/dist/tree.d.ts +2 -2
  51. package/dist/tree.d.ts.map +1 -1
  52. package/dist/tree.js +1 -1
  53. package/dist/{vertical-list-BGn9nyKh.d.ts → vertical-list-A6oWfivZ.d.ts} +21 -4
  54. package/dist/vertical-list-A6oWfivZ.d.ts.map +1 -0
  55. package/dist/vertical-list.d.ts +3 -2
  56. package/dist/vertical-list.js +103 -3
  57. package/dist/vertical-list.js.map +1 -1
  58. package/docs-user/data-grid.md +30 -0
  59. package/docs-user/detail-list.md +29 -0
  60. package/docs-user/grid-list.md +34 -4
  61. package/docs-user/index.json +2 -2
  62. package/docs-user/tree.md +1 -1
  63. package/docs-user/vertical-list.md +30 -1
  64. package/package.json +1 -1
  65. package/dist/data-grid-CYVPSUwh.d.ts.map +0 -1
  66. package/dist/detail-list-vH56z7WE.d.ts.map +0 -1
  67. package/dist/grid-list-Cq8ga2WZ.d.ts.map +0 -1
  68. package/dist/grid-list-j5C7qtlG.js.map +0 -1
  69. package/dist/list-item-animation-DuiwgN3l.js.map +0 -1
  70. package/dist/tree-CozQj01a.js.map +0 -1
  71. package/dist/vertical-list-BGn9nyKh.d.ts.map +0 -1
package/bundle/index.d.ts CHANGED
@@ -2209,7 +2209,7 @@ type TreeItemClickDetail = {
2209
2209
  };
2210
2210
  /**
2211
2211
  * Fired when the user double-clicks an item. The second click of the pair is
2212
- * swallowed, so a branch is never toggled twice by a double-click.
2212
+ * swallowed, so a branch is never toggled open/closed by a double-click.
2213
2213
  * Event name: `item-dblclick`
2214
2214
  */
2215
2215
  type TreeItemDblClickDetail = {
@@ -2660,6 +2660,46 @@ declare global {
2660
2660
  }
2661
2661
  }
2662
2662
  //#endregion
2663
+ //#region src/interaction/list-drag-types.d.ts
2664
+ interface ListDragEntry<T> {
2665
+ readonly key: string;
2666
+ readonly index: number;
2667
+ readonly item: T | Element;
2668
+ readonly element?: Element;
2669
+ }
2670
+ type ListDragSource = `grid-list` | `detail-list` | `vertical-list` | `data-grid`;
2671
+ interface ListDragPreviewContext<T> {
2672
+ readonly source: ListDragSource;
2673
+ readonly origin: ListDragEntry<T>;
2674
+ readonly selected: ReadonlyArray<ListDragEntry<T>>;
2675
+ readonly metrics: {
2676
+ readonly itemSize?: number;
2677
+ readonly captionStyle?: string;
2678
+ readonly captionHeight?: number;
2679
+ readonly rowHeight?: number;
2680
+ };
2681
+ readonly hostStyle: CSSStyleDeclaration;
2682
+ }
2683
+ interface ListDragPreview {
2684
+ readonly element: HTMLElement;
2685
+ readonly hotspot?: Readonly<{
2686
+ x: number;
2687
+ y: number;
2688
+ }>;
2689
+ readonly canvas?: HTMLCanvasElement;
2690
+ readonly dispose?: () => void;
2691
+ }
2692
+ type ListDragPreviewRenderer<T> = (context: ListDragPreviewContext<T>) => ListDragPreview;
2693
+ interface ListNativeDragStartDetail<T = unknown> {
2694
+ readonly key: string;
2695
+ readonly index: number;
2696
+ readonly item: T | Element;
2697
+ readonly selectedKeys: readonly string[];
2698
+ readonly selected: ReadonlyArray<ListDragEntry<T>>;
2699
+ readonly preview?: ListDragPreview;
2700
+ }
2701
+ type ListNativeDragStartEvent<T = unknown> = CustomEvent<ListNativeDragStartDetail<T>>;
2702
+ //#endregion
2663
2703
  //#region src/data-grid/types.d.ts
2664
2704
  type DataGridSelectionMode = `none` | `single` | `multiple`;
2665
2705
  type DataGridInteractionMode = `standard` | `implicit` | `manual` | `checked` | `sticky` | `vscode`;
@@ -3333,6 +3373,7 @@ interface DataGridElementEventMap {
3333
3373
  'datagrid-cell-click': DataGridCellClickEvent;
3334
3374
  'datagrid-cell-edit': DataGridCellEditEvent;
3335
3375
  'datagrid-group-change': DataGridGroupChangeEvent;
3376
+ 'list-native-drag-start': ListNativeDragStartEvent<unknown>;
3336
3377
  }
3337
3378
  declare class DataGridElement extends LitElement {
3338
3379
  #private;
@@ -3374,6 +3415,17 @@ declare class DataGridElement extends LitElement {
3374
3415
  * disabled. See `docs/infra-incremental.md`.
3375
3416
  */
3376
3417
  searchModes: string | undefined;
3418
+ /**
3419
+ * Enable native browser drag-and-drop for selectable rows. When true,
3420
+ * selectable rows become draggable and the grid emits
3421
+ * `list-native-drag-start` when a drag begins.
3422
+ */
3423
+ itemsDraggable: boolean;
3424
+ /**
3425
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3426
+ * built-in HTML+canvas preview.
3427
+ */
3428
+ dragPreviewRenderer: ListDragPreviewRenderer<unknown> | undefined;
3377
3429
  private _columnFormatters;
3378
3430
  private _selectedKeys;
3379
3431
  private _scrollTop;
@@ -3656,8 +3708,20 @@ declare class VerticalListElement extends LitElement {
3656
3708
  * disabled. See `docs/infra-incremental.md`.
3657
3709
  */
3658
3710
  searchModes: string | undefined;
3711
+ /**
3712
+ * Enable native browser drag-and-drop for selectable items. When true,
3713
+ * selectable rows become draggable and the list emits
3714
+ * `list-native-drag-start` when a drag begins.
3715
+ */
3716
+ itemsDraggable: boolean;
3717
+ /**
3718
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3719
+ * built-in HTML+canvas preview.
3720
+ */
3721
+ dragPreviewRenderer: ListDragPreviewRenderer<Element> | undefined;
3659
3722
  private readonly selection;
3660
3723
  private tickled;
3724
+ private _syncNativeDraggable;
3661
3725
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3662
3726
  readonly search: ListSearchController<Element>;
3663
3727
  /** Command registry carrying this list's `list.search.*` commands. */
@@ -3727,6 +3791,7 @@ declare class VerticalListElement extends LitElement {
3727
3791
  private _createCustomCheckbox;
3728
3792
  private _findListItem;
3729
3793
  private _dispatch;
3794
+ private _dispatchCancelable;
3730
3795
  private _onPointerOver;
3731
3796
  private _onPointerLeave;
3732
3797
  private _onKeyDown;
@@ -3740,7 +3805,10 @@ declare global {
3740
3805
  interface HTMLElementTagNameMap {
3741
3806
  'ixfx-vertical-list': VerticalListElement;
3742
3807
  }
3743
- interface HTMLElementEventMap extends ListElementEventMap {}
3808
+ interface HTMLElementEventMap extends VerticalListElementEventMap {}
3809
+ }
3810
+ interface VerticalListElementEventMap extends ListElementEventMap {
3811
+ 'list-native-drag-start': ListNativeDragStartEvent<Element>;
3744
3812
  }
3745
3813
  //#endregion
3746
3814
  //#region src/detail-list/types.d.ts
@@ -3803,9 +3871,21 @@ declare class DetailListElement extends LitElement {
3803
3871
  * disabled. See `docs/infra-incremental.md`.
3804
3872
  */
3805
3873
  searchModes: string | undefined;
3874
+ /**
3875
+ * Enable native browser drag-and-drop for selectable items. When true,
3876
+ * selectable rows become draggable and the list emits
3877
+ * `list-native-drag-start` when a drag begins.
3878
+ */
3879
+ itemsDraggable: boolean;
3880
+ /**
3881
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3882
+ * built-in HTML+canvas preview.
3883
+ */
3884
+ dragPreviewRenderer: ListDragPreviewRenderer<Element> | undefined;
3806
3885
  private _listEl;
3807
3886
  private readonly selection;
3808
3887
  private tickled;
3888
+ private _syncNativeDraggable;
3809
3889
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3810
3890
  readonly search: ListSearchController<Element>;
3811
3891
  /** Command registry carrying this list's `list.search.*` commands. */
@@ -3892,6 +3972,7 @@ declare class DetailListElement extends LitElement {
3892
3972
  private _createCustomCheckbox;
3893
3973
  private _findListItem;
3894
3974
  private _dispatch;
3975
+ private _dispatchCancelable;
3895
3976
  private _onPointerOver;
3896
3977
  private _onPointerLeave;
3897
3978
  private _onKeyDown;
@@ -3906,7 +3987,10 @@ declare global {
3906
3987
  interface HTMLElementTagNameMap {
3907
3988
  'ixfx-detail-list': DetailListElement;
3908
3989
  }
3909
- interface HTMLElementEventMap extends ListElementEventMap {}
3990
+ interface HTMLElementEventMap extends DetailListElementEventMap {}
3991
+ }
3992
+ interface DetailListElementEventMap extends ListElementEventMap {
3993
+ 'list-native-drag-start': ListNativeDragStartEvent<Element>;
3910
3994
  }
3911
3995
  //#endregion
3912
3996
  //#region src/dock/types.d.ts
@@ -5109,170 +5193,311 @@ declare global {
5109
5193
  }
5110
5194
  }
5111
5195
  //#endregion
5112
- //#region src/grid-list/types.d.ts
5113
- /**
5114
- * Adapter for data-backed grid list mode.
5115
- * @param T The type of data item.
5116
- */
5117
- type GridListDataAdapter<T> = {
5118
- key: (item: T, index: number) => string;
5119
- label?: (item: T, index: number) => string;
5120
- render: (item: T, index: number) => unknown;
5121
- disabled?: (item: T, index: number) => boolean;
5122
- searchableText?: (item: T, index: number) => string;
5123
- };
5124
- /**
5125
- * Common detail for per-item events (activate, click, tickle), key-first in
5126
- * BOTH element and data modes. `item` is the backward-compat field — Element in
5127
- * element mode, T in data mode.
5128
- */
5129
- type GridListItemEventDetail<T = unknown> = {
5130
- readonly key: string;
5131
- readonly index: number;
5132
- readonly item: T | Element;
5133
- readonly element: Element | undefined;
5134
- };
5135
- /**
5136
- * How the caption relates to the cell's content.
5137
- * - `hidden`: no caption is rendered.
5138
- * - `separate`: content sits in a square; the caption is a detached label
5139
- * below it. Square and caption are highlighted separately, like macOS
5140
- * Finder icon view.
5141
- * - `under` (default): the whole cell is one box — content on top, caption in
5142
- * its own strip below it, inside the same box. One selection outline.
5143
- * - `overlaid`: the caption floats on top of the content (see
5144
- * `GridListCaptionPosition` / `GridListCaptionBackdrop`).
5145
- */
5146
- type GridListCaptionStyle = `hidden` | `separate` | `under` | `overlaid`;
5147
- /** Horizontal alignment of caption text (`middle` is the default). */
5148
- type GridListCaptionAlign = `left` | `middle` | `right`;
5149
- /** Vertical placement of an `overlaid` caption (`bottom` is the default). */
5150
- type GridListCaptionPosition = `top` | `middle` | `bottom`;
5196
+ //#region src/interaction/keyed-list.d.ts
5151
5197
  /**
5152
- * Backdrop behind an `overlaid` caption.
5153
- * - `scrim` (default): flat translucent panel.
5154
- * - `gradient`: translucent gradient fading away from the caption edge.
5155
- * - `blur`: frosted / backdrop-blurred panel.
5156
- * - `none`: no panel caption text only, with a shadow for legibility.
5198
+ * Helpers for key-based selection on the Element-flavoured list components
5199
+ * (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-grid-list`).
5200
+ *
5201
+ * A "key" is a stable string the host puts on each item element — `data-key`
5202
+ * (preferred) or `data-value`. It survives the host rebuilding the item set
5203
+ * (re-fetch, re-sort, filter) where raw `Element` references do not.
5157
5204
  */
5158
- type GridListCaptionBackdrop = `scrim` | `gradient` | `blur` | `none`;
5159
5205
  /**
5160
- * Layout / scroll direction.
5161
- * - `grid` (default): items wrap across as many columns as fit and the list
5162
- * scrolls vertically.
5163
- * - `row`: a single row of items that scrolls horizontally.
5164
- * - `column`: a single column of items that scrolls vertically.
5206
+ * The stable key for an item element: `data-key`, then `data-value`, else
5207
+ * `undefined`.
5165
5208
  */
5166
- type GridListOrientation = `grid` | `row` | `column`;
5167
- interface GridListSelectDetail {
5168
- readonly selected: ReadonlySet<Element>;
5169
- readonly previous: ReadonlySet<Element>;
5170
- readonly selectedKeys: ReadonlySet<string>;
5171
- readonly previousKeys: ReadonlySet<string>;
5172
- }
5173
- type GridListSelectEvent = CustomEvent<GridListSelectDetail>;
5209
+ declare function keyForElement(el: Element): string | undefined;
5174
5210
  /**
5175
- * `item` is the backward-compatible field: the light-DOM `Element` in element
5176
- * mode, the data value `T` in data mode. Use `element` when you specifically
5177
- * need the DOM node (`undefined` in data mode). `key` / `index` are the stable
5178
- * contract in both modes.
5211
+ * A lazily-built key element index over a container. Rebuilt on first use
5212
+ * and after any child-list mutation under `root`; `invalidate()` forces a
5213
+ * rebuild on the next `get()`.
5214
+ *
5215
+ * ```ts
5216
+ * #keyIndex = new KeyedElementIndex(this);
5217
+ * // ...
5218
+ * const el = this.#keyIndex.get(`row-42`);
5219
+ * // on disconnect:
5220
+ * this.#keyIndex.dispose();
5221
+ * ```
5179
5222
  */
5180
- interface GridListActivateDetail {
5181
- readonly item: unknown;
5182
- readonly key: string;
5183
- readonly index: number;
5184
- readonly element: Element | undefined;
5185
- }
5186
- type GridListActivateEvent = CustomEvent<GridListActivateDetail>;
5187
- interface GridListItemClickDetail {
5188
- readonly item: unknown;
5189
- readonly key: string;
5190
- readonly index: number;
5191
- readonly element: Element | undefined;
5192
- }
5193
- type GridListItemClickEvent = CustomEvent<GridListItemClickDetail>;
5194
- interface GridListTickleDetail {
5195
- readonly item: unknown;
5196
- readonly key: string;
5197
- readonly index: number;
5198
- readonly element: Element | undefined;
5199
- }
5200
- type GridListTickleEvent = CustomEvent<GridListTickleDetail>;
5201
- interface GridListElementEventMap {
5202
- 'list-select': GridListSelectEvent;
5203
- 'list-activate': GridListActivateEvent;
5204
- 'list-item-click': GridListItemClickEvent;
5205
- 'list-tickle': GridListTickleEvent;
5206
- }
5207
- type GridListViewportChangeDetail = {
5208
- readonly renderedKeys: string[];
5209
- readonly visibleKeys: string[];
5210
- };
5211
- type GridListViewportChangeEvent = CustomEvent<GridListViewportChangeDetail>;
5212
- interface GridListNativeDragStartDetail<T = unknown> {
5213
- readonly key: string;
5214
- readonly index: number;
5215
- readonly item: T | Element;
5216
- readonly selectedKeys: readonly string[];
5217
- }
5218
- type GridListNativeDragStartEvent<T = unknown> = CustomEvent<GridListNativeDragStartDetail<T>>;
5219
- interface GridListFullElementEventMap extends GridListElementEventMap {
5220
- 'grid-list-viewport-change': GridListViewportChangeEvent;
5221
- 'grid-list-native-drag-start': GridListNativeDragStartEvent;
5223
+ declare class KeyedElementIndex {
5224
+ #private;
5225
+ /**
5226
+ * @param root Container whose descendants are indexed.
5227
+ * @param itemSelector Which descendants count as items (default: any `[data-key]`).
5228
+ */
5229
+ constructor(root: Element, itemSelector?: string);
5230
+ /** The element with this key, or `undefined`. First match wins on duplicates. */
5231
+ get(key: string): Element | undefined;
5232
+ /** Force a rebuild on the next `get()` — e.g. after a `data-key` attribute change. */
5233
+ invalidate(): void;
5234
+ /** Stop observing and drop the cache. */
5235
+ dispose(): void;
5222
5236
  }
5223
5237
  //#endregion
5224
- //#region src/interaction/list-selection-controller.d.ts
5225
- /** Modifier state needed to route a click gesture per interaction mode. */
5226
- type ListSelectionGesture = {
5227
- readonly ctrlKey: boolean;
5228
- readonly metaKey: boolean;
5229
- readonly shiftKey: boolean;
5230
- };
5231
- type ListSelectionModes = {
5232
- readonly selectionMode: ListSelectionMode;
5233
- readonly interactionMode: ListInteractionMode;
5234
- };
5238
+ //#region src/interaction/list-drag-preview-default.d.ts
5239
+ /** Caption for a drag entry element labels win, then string items, then common object fields, then the key. */
5240
+ declare function captionForEntry(entry: ListDragEntry<unknown>): string;
5235
5241
  /**
5236
- * Configuration supplied by the host component.
5242
+ * Uniform built-in HTML+canvas drag preview for all four list components.
5237
5243
  *
5238
- * The controller owns selection *state* only everything DOM- or
5239
- * component-specific is expressed through these callbacks.
5244
+ * - ≤5 selected a row of small cards (thumbnail well + caption).
5245
+ * - >5 selected a compact list (`N items` header, up to 5 rows, `+N more`).
5246
+ *
5247
+ * Always returns an offscreen `element` for `DataTransfer.setDragImage()` and,
5248
+ * when a 2D context is available, a DPR-aware painted `canvas` for native
5249
+ * hosts. Colours track the active theme via `ctx.hostStyle` CSS variables.
5240
5250
  */
5241
- type ListSelectionControllerConfig<T> = {
5242
- /** Visible items in navigation order — used for range selection and select-all. */
5243
- readonly getOrderedItems: () => readonly T[];
5244
- /** Whether an item may join the selection (e.g. reject `not-checked` rows). */
5245
- readonly isSelectable: (item: T) => boolean;
5246
- /** Current modes; read on every gesture so property changes apply immediately. */
5247
- readonly getModes: () => ListSelectionModes;
5251
+ declare function createDefaultListDragPreview<T>(ctx: ListDragPreviewContext<T>): ListDragPreview;
5252
+ //#endregion
5253
+ //#region src/interaction/list-drag-select-controller.d.ts
5254
+ /** Surface-relative rectangle: origin at the scroll container's top-left. */
5255
+ type DragSelectRect = {
5256
+ readonly x: number;
5257
+ readonly y: number;
5258
+ readonly width: number;
5259
+ readonly height: number;
5260
+ };
5261
+ type ListDragSelectControllerConfig<T> = {
5262
+ /** Element the marquee is drawn in and pointer geometry is measured against. */
5263
+ getSurface: () => HTMLElement | undefined;
5264
+ /** Is drag-select currently allowed? (multi-capable, has items, not disabled) */
5265
+ isEnabled: () => boolean;
5266
+ /** Pointer types that may start a drag. Default ['mouse', 'pen'] — touch still scrolls. */
5267
+ pointerTypes?: readonly string[];
5268
+ /** Movement in px before a press becomes a drag. Default 4. */
5269
+ threshold?: number;
5270
+ /** Map a surface-relative rect to covered items. */
5271
+ hitTest: (rect: DragSelectRect) => Iterable<T>;
5248
5272
  /**
5249
- * Fired after every selection change. The host syncs DOM state
5250
- * (`data-selected` / `data-checked`), dispatches `list-select`, and
5251
- * requests an update.
5273
+ * Selection snapshotted when the drag starts, combined with the hit set
5274
+ * while modifiers are held: Shift adds (`base + hit`), Cmd / Ctrl inverts
5275
+ * (covered items toggle, the rest is untouched).
5252
5276
  */
5253
- readonly onChange: (selected: ReadonlySet<T>, previous: ReadonlySet<T>) => void;
5277
+ getBaseSelection: () => ReadonlySet<T>;
5278
+ /** Continuous visual feedback: the preview set + current rect (undefined when idle). */
5279
+ onPreview: (preview: ReadonlySet<T>, rect: DragSelectRect | undefined) => void;
5254
5280
  /**
5255
- * Optional: derive a stable string key for an item. Enables `selectedKeys`
5256
- * and `selectKeys()`. When omitted, `selectedKeys` is always empty.
5281
+ * Fired once on release with the final set. Host applies it to its
5282
+ * selection. `additive` is `true` when the drag ran with Shift (add) or
5283
+ * Cmd / Ctrl (invert) held.
5257
5284
  */
5258
- readonly getKey?: (item: T) => string | undefined;
5285
+ onCommit: (finalSet: ReadonlySet<T>, info: {
5286
+ additive: boolean;
5287
+ }) => void;
5288
+ /** Optional: scroll the surface when the pointer nears an edge during a drag. */
5289
+ autoScroll?: (dx: number, dy: number) => void;
5290
+ /**
5291
+ * Optional predicate called on pointerdown before the controller records its
5292
+ * pointer id or later calls setPointerCapture/preventDefault. Return false
5293
+ * to yield to another gesture (e.g. native item drag).
5294
+ */
5295
+ shouldStart?: (event: PointerEvent) => boolean;
5259
5296
  };
5260
- /** Whether the interaction mode allows building a multi-item selection. */
5261
- declare function isMultiMode(mode: ListInteractionMode): boolean;
5297
+ type DragHost$1 = ReactiveControllerHost & HTMLElement;
5262
5298
  /**
5263
- * Generic selection state machine shared by list components.
5264
- *
5265
- * Owns the selected set plus the range-selection anchor, the selection
5266
- * primitives (`replace` / `toggle` / `rangeTo` / `clear` / `selectAll` /
5267
- * `selectMany` / `deselect`) and the per-interactionMode gesture routers
5268
- * (`handleClick` / `handleSpace`).
5299
+ * Shared pointer-drag (marquee / rubber-band) selection for list components.
5269
5300
  *
5270
- * Identity is generic: both `ixfx-vertical-list` and `ixfx-detail-list` use
5271
- * `ListSelectionController<Element>`.
5301
+ * Owns all pointer plumbing and rectangle state; knows nothing about DOM
5302
+ * geometry or the selection model — those are host callbacks. Mirrors the
5303
+ * `TickledController` attach pattern (`new ListDragSelectController(this, …)`).
5272
5304
  *
5273
- * @example
5274
- * ```ts
5275
- * const selection = new ListSelectionController<Element>({
5305
+ * Behaviour: `pointerdown` on the surface records a start point; once the
5306
+ * pointer moves past `threshold`, the surface captures the pointer and every
5307
+ * move recomputes the rect, hit-tests, and calls `onPreview`. On release the
5308
+ * final set is delivered once via `onCommit`. A press that never crosses the
5309
+ * threshold does nothing (the normal `@click` path runs).
5310
+ */
5311
+ declare class ListDragSelectController<T> implements ReactiveController {
5312
+ #private;
5313
+ constructor(host: DragHost$1, config: ListDragSelectControllerConfig<T>);
5314
+ /** `true` while a drag is in progress or its trailing click is still pending. */
5315
+ get isDragging(): boolean;
5316
+ /** `true` once the press has crossed the threshold and a rect is live. */
5317
+ get isActive(): boolean;
5318
+ hostConnected(): void;
5319
+ hostDisconnected(): void;
5320
+ /** Re-bind when the surface element appears/changes (e.g. first render). */
5321
+ hostUpdated(): void;
5322
+ }
5323
+ //#endregion
5324
+ //#region src/interaction/list-item-animation.d.ts
5325
+ /**
5326
+ * Shared insertion / removal animation for the list & tree components.
5327
+ *
5328
+ * Two flavours, because the components split into two layout families:
5329
+ *
5330
+ * - **Flow layouts** (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-tree-*`) —
5331
+ * rows sit in normal flow, so a new row can collapse in from zero height and a
5332
+ * leaving row can collapse back to zero, and the rows around it slide to make
5333
+ * or close the gap for free. Use {@link animateListItemIn} /
5334
+ * {@link animateListItemOut} (Web Animations API, exact measured sizes).
5335
+ *
5336
+ * - **Virtualised layouts** (`ixfx-grid-list`, `ixfx-data-grid`) — rows are
5337
+ * absolutely positioned (`transform` / `top`), so collapsing a row's box moves
5338
+ * nothing. Those components instead fade the entering / leaving row with the
5339
+ * {@link listItemFadeKeyframes} keyframes and slide the survivors by
5340
+ * transitioning their position for a short window after the change.
5341
+ *
5342
+ * Everything here is a no-op under `prefers-reduced-motion: reduce`.
5343
+ */
5344
+ /** Default duration (ms) for both flavours; overridable per call / per component. */
5345
+ declare const LIST_ITEM_MOTION_MS = 200;
5346
+ declare function prefersReducedMotion(): boolean;
5347
+ /**
5348
+ * Opacity keyframes for the virtualised components. Each one adds its own
5349
+ * one-line rule binding `.<row>.ixfx-item-entering` / `.ixfx-item-leaving` to
5350
+ * these, plus a `prefers-reduced-motion` guard on its own selectors.
5351
+ */
5352
+ declare const listItemFadeKeyframes: CSSResult;
5353
+ interface ListItemMotionOptions {
5354
+ /**
5355
+ * Animation duration in ms. When omitted, the element's
5356
+ * `--ixfx-list-item-move-duration` custom property is used if set (accepts
5357
+ * `ms` or `s`), otherwise {@link LIST_ITEM_MOTION_MS}.
5358
+ */
5359
+ duration?: number;
5360
+ /** Which axis collapses — `block` (height, default) or `inline` (width). */
5361
+ axis?: `block` | `inline`;
5362
+ easing?: string;
5363
+ }
5364
+ /**
5365
+ * Collapse + fade `el` in from nothing to its natural size. Call it just after
5366
+ * the element has been inserted (it must already be laid out at full size so it
5367
+ * can be measured). No-op under reduced motion.
5368
+ */
5369
+ declare function animateListItemIn(el: HTMLElement, options?: ListItemMotionOptions): Animation | undefined;
5370
+ /**
5371
+ * Result of {@link animateListItemOut}: a promise that resolves once the
5372
+ * animation finishes, carrying the underlying `Animation` handle (if any) so
5373
+ * callers can `cancel()` superseded work. Awaiting / `.then()` behaves like
5374
+ * the previous `Promise<void>` return type.
5375
+ */
5376
+ type ListItemOutResult = Promise<void> & {
5377
+ /** The running collapse animation, or `undefined` under reduced motion / zero size. */
5378
+ animation: Animation | undefined;
5379
+ };
5380
+ /**
5381
+ * Start the collapse + fade-out animation for `el` and return the handle.
5382
+ * Returns `undefined` when no animation was started (reduced motion or zero
5383
+ * size). The caller owns the handle and must `cancel()` it if the removal is
5384
+ * reversed — a retained `fill: forwards` frame otherwise keeps overriding the
5385
+ * element's ordinary CSS indefinitely.
5386
+ */
5387
+ declare function startListItemOutAnimation(el: HTMLElement, options?: ListItemMotionOptions): Animation | undefined;
5388
+ /**
5389
+ * Collapse + fade `el` out. Resolves once the animation finishes (or straight
5390
+ * away under reduced motion); the caller detaches the element after. The final
5391
+ * collapsed state is held (`fill: forwards`) so there's no flash back to full
5392
+ * size in the gap before removal.
5393
+ *
5394
+ * The returned promise carries an `.animation` handle. If the removal is
5395
+ * reversed (the same key becomes visible again), cancel that handle so its
5396
+ * filled final frame stops overriding the reused element's style.
5397
+ */
5398
+ declare function animateListItemOut(el: HTMLElement, options?: ListItemMotionOptions): ListItemOutResult;
5399
+ //#endregion
5400
+ //#region src/interaction/list-native-drag-controller.d.ts
5401
+ type ListNativeDragControllerConfig<T> = {
5402
+ readonly source: ListDragSource;
5403
+ /** `itemsDraggable && selection usable` */
5404
+ isEnabled: () => boolean;
5405
+ /** Event target → item key, or `undefined` when the drag did not start on an item. */
5406
+ resolveEventToKey: (target: EventTarget | null) => string | undefined;
5407
+ /**
5408
+ * Apply the origin rule (origin ∉ selection ⇒ replace with origin); return
5409
+ * display-ordered `{ origin, selected }` for both modes, or `undefined` when
5410
+ * the origin is not selectable.
5411
+ */
5412
+ prepareSelection: (originKey: string) => {
5413
+ origin: ListDragEntry<T>;
5414
+ selected: Array<ListDragEntry<T>>;
5415
+ } | undefined;
5416
+ getMetrics: () => ListDragPreviewContext<T>[`metrics`];
5417
+ getRenderer: () => ListDragPreviewRenderer<T> | undefined;
5418
+ /** Fire the cancelable `list-native-drag-start`; return `!defaultPrevented`. */
5419
+ dispatch: (detail: ListNativeDragStartDetail<T>) => boolean;
5420
+ /** Host toggles `data-native-dragging` / `aria-label`, re-renders. */
5421
+ onActiveChange: (active: boolean, originKey?: string) => void;
5422
+ /** Host clears state + starts its post-drag click-suppress timer. */
5423
+ onEnd: () => void;
5424
+ /** Optional: sync `draggable` on light-DOM / slotted children while enabled. */
5425
+ syncLightDomDraggable?: () => void;
5426
+ };
5427
+ type DragHost = ReactiveControllerHost & HTMLElement;
5428
+ /**
5429
+ * Shared native item/row drag-out for list components.
5430
+ *
5431
+ * Owns capture-phase `dragstart` / `dragend` listeners on the host and its
5432
+ * render root, a `MutationObserver` that keeps light-DOM / slotted item `draggable`
5433
+ * attributes in sync, and a single post-dispatch disposal on
5434
+ * `requestAnimationFrame`. All DOM / selection knowledge lives in the host
5435
+ * config callbacks.
5436
+ */
5437
+ declare class ListNativeDragController<T> implements ReactiveController {
5438
+ #private;
5439
+ constructor(host: DragHost, config: ListNativeDragControllerConfig<T>);
5440
+ get isDragging(): boolean;
5441
+ /** `"true"` when enabled, else `"false"` — for shadow-row template bindings. */
5442
+ get draggableAttr(): string;
5443
+ /** Re-run the light-DOM `draggable` sync (e.g. after `itemsDraggable` flips). */
5444
+ refreshDraggable(): void;
5445
+ hostConnected(): void;
5446
+ hostDisconnected(): void;
5447
+ }
5448
+ //#endregion
5449
+ //#region src/interaction/list-selection-controller.d.ts
5450
+ /** Modifier state needed to route a click gesture per interaction mode. */
5451
+ type ListSelectionGesture = {
5452
+ readonly ctrlKey: boolean;
5453
+ readonly metaKey: boolean;
5454
+ readonly shiftKey: boolean;
5455
+ };
5456
+ type ListSelectionModes = {
5457
+ readonly selectionMode: ListSelectionMode;
5458
+ readonly interactionMode: ListInteractionMode;
5459
+ };
5460
+ /**
5461
+ * Configuration supplied by the host component.
5462
+ *
5463
+ * The controller owns selection *state* only — everything DOM- or
5464
+ * component-specific is expressed through these callbacks.
5465
+ */
5466
+ type ListSelectionControllerConfig<T> = {
5467
+ /** Visible items in navigation order — used for range selection and select-all. */
5468
+ readonly getOrderedItems: () => readonly T[];
5469
+ /** Whether an item may join the selection (e.g. reject `not-checked` rows). */
5470
+ readonly isSelectable: (item: T) => boolean;
5471
+ /** Current modes; read on every gesture so property changes apply immediately. */
5472
+ readonly getModes: () => ListSelectionModes;
5473
+ /**
5474
+ * Fired after every selection change. The host syncs DOM state
5475
+ * (`data-selected` / `data-checked`), dispatches `list-select`, and
5476
+ * requests an update.
5477
+ */
5478
+ readonly onChange: (selected: ReadonlySet<T>, previous: ReadonlySet<T>) => void;
5479
+ /**
5480
+ * Optional: derive a stable string key for an item. Enables `selectedKeys`
5481
+ * and `selectKeys()`. When omitted, `selectedKeys` is always empty.
5482
+ */
5483
+ readonly getKey?: (item: T) => string | undefined;
5484
+ };
5485
+ /** Whether the interaction mode allows building a multi-item selection. */
5486
+ declare function isMultiMode(mode: ListInteractionMode): boolean;
5487
+ /**
5488
+ * Generic selection state machine shared by list components.
5489
+ *
5490
+ * Owns the selected set plus the range-selection anchor, the selection
5491
+ * primitives (`replace` / `toggle` / `rangeTo` / `clear` / `selectAll` /
5492
+ * `selectMany` / `deselect`) and the per-interactionMode gesture routers
5493
+ * (`handleClick` / `handleSpace`).
5494
+ *
5495
+ * Identity is generic: both `ixfx-vertical-list` and `ixfx-detail-list` use
5496
+ * `ListSelectionController<Element>`.
5497
+ *
5498
+ * @example
5499
+ * ```ts
5500
+ * const selection = new ListSelectionController<Element>({
5276
5501
  * getOrderedItems: () => this.getVisibleItems(),
5277
5502
  * isSelectable: el => !el.hasAttribute(`not-checked`),
5278
5503
  * getModes: () => ({ selectionMode: this.selectionMode, interactionMode: this.interactionMode }),
@@ -5590,6 +5815,189 @@ declare class TickledController<T = number> implements ReactiveController {
5590
5815
  setInputMode(mode: InputMode): void;
5591
5816
  }
5592
5817
  //#endregion
5818
+ //#region src/interaction/tickled-styles.d.ts
5819
+ /**
5820
+ * Shared CSS styles for tickled interaction pattern.
5821
+ *
5822
+ * Tickled state is controlled via the `.tickled` CSS class (applied by TickledController).
5823
+ * The `tickledItemStyles` provides base styling that all tickled components should use.
5824
+ *
5825
+ * ## CSS Variable Contract
5826
+ *
5827
+ * **Style variables** — `tickledItemStyles` only consumes these via `var()`; it
5828
+ * defines no defaults itself. Fallback values (used when no theme CSS is loaded)
5829
+ * are registered in `themeFallbacks` (`../styles/fallbacks.ts`) and mirror the
5830
+ * documented base theme in `user-theming.md`:
5831
+ * - `--item-bg`, `--item-bg-tickled`, `--item-bg-selected`, `--item-bg-selected-tickled`
5832
+ * - `--item-border`, `--item-border-tickled`, `--item-border-selected` (full border shorthands, not colours)
5833
+ * - `--item-text-tickled`, `--item-text-selected`
5834
+ * - `--item-padding`, `--item-border-radius`, `--item-icon-spacing`
5835
+ *
5836
+ * ## Usage
5837
+ *
5838
+ * Components should import both `tickledStyles` and `tickledItemStyles`:
5839
+ *
5840
+ * ```ts
5841
+ * import { tickledStyles, tickledItemStyles } from '../interaction/index.js';
5842
+ *
5843
+ * class MyComponent extends LitElement {
5844
+ * static styles = [
5845
+ * tickledStyles,
5846
+ * tickledItemStyles,
5847
+ * css`
5848
+ * :host {
5849
+ * --item-bg-tickled: #e0e0e0;
5850
+ * --item-bg-selected: #1976d2;
5851
+ * }
5852
+ * `
5853
+ * ];
5854
+ * }
5855
+ * ```
5856
+ */
5857
+ declare const tickledStyles: CSSResult;
5858
+ /**
5859
+ * Shared item styling for tickled components.
5860
+ *
5861
+ * Provides base styles for interactive items with tickled and selected states.
5862
+ * Components should import this in addition to `tickledStyles` and can override
5863
+ * CSS variables to customize appearance.
5864
+ */
5865
+ declare const tickledItemStyles: CSSResult;
5866
+ //#endregion
5867
+ //#region src/interaction/tree-keyboard-controller.d.ts
5868
+ type TreeKeyboardNavItemId = string;
5869
+ type TreeKeyboardNavCallbacks = {
5870
+ getItems: () => ReadonlyArray<TickledItem<TreeKeyboardNavItemId>>;
5871
+ onExpand: (id: TreeKeyboardNavItemId) => void;
5872
+ onCollapse: (id: TreeKeyboardNavItemId) => void;
5873
+ onActivate: (id: TreeKeyboardNavItemId) => void;
5874
+ onSelect?: (id: TreeKeyboardNavItemId) => void;
5875
+ onEscape?: () => void;
5876
+ isLeaf: (id: TreeKeyboardNavItemId) => boolean;
5877
+ isExpanded: (id: TreeKeyboardNavItemId) => boolean;
5878
+ getParentId?: (id: TreeKeyboardNavItemId) => TreeKeyboardNavItemId | undefined;
5879
+ };
5880
+ type TreeKeyboardNavControllerConfig = {
5881
+ callbacks: TreeKeyboardNavCallbacks;
5882
+ disableKeyboardNavigation?: () => boolean;
5883
+ };
5884
+ declare class TreeKeyboardNavController implements ReactiveController {
5885
+ #private;
5886
+ private host;
5887
+ private tickled;
5888
+ private callbacks;
5889
+ private disableKeyboardNavigation;
5890
+ constructor(host: ReactiveControllerHost, tickled: TickledController<TreeKeyboardNavItemId>, config: TreeKeyboardNavControllerConfig);
5891
+ hostConnected(): void;
5892
+ hostDisconnected(): void;
5893
+ handleKeyDown: (event: KeyboardEvent) => void;
5894
+ }
5895
+ //#endregion
5896
+ //#region src/grid-list/types.d.ts
5897
+ /**
5898
+ * Adapter for data-backed grid list mode.
5899
+ * @param T The type of data item.
5900
+ */
5901
+ type GridListDataAdapter<T> = {
5902
+ key: (item: T, index: number) => string;
5903
+ label?: (item: T, index: number) => string;
5904
+ render: (item: T, index: number) => unknown;
5905
+ disabled?: (item: T, index: number) => boolean;
5906
+ searchableText?: (item: T, index: number) => string;
5907
+ };
5908
+ /**
5909
+ * Common detail for per-item events (activate, click, tickle), key-first in
5910
+ * BOTH element and data modes. `item` is the backward-compat field — Element in
5911
+ * element mode, T in data mode.
5912
+ */
5913
+ type GridListItemEventDetail<T = unknown> = {
5914
+ readonly key: string;
5915
+ readonly index: number;
5916
+ readonly item: T | Element;
5917
+ readonly element: Element | undefined;
5918
+ };
5919
+ /**
5920
+ * How the caption relates to the cell's content.
5921
+ * - `hidden`: no caption is rendered.
5922
+ * - `separate`: content sits in a square; the caption is a detached label
5923
+ * below it. Square and caption are highlighted separately, like macOS
5924
+ * Finder icon view.
5925
+ * - `under` (default): the whole cell is one box — content on top, caption in
5926
+ * its own strip below it, inside the same box. One selection outline.
5927
+ * - `overlaid`: the caption floats on top of the content (see
5928
+ * `GridListCaptionPosition` / `GridListCaptionBackdrop`).
5929
+ */
5930
+ type GridListCaptionStyle = `hidden` | `separate` | `under` | `overlaid`;
5931
+ /** Horizontal alignment of caption text (`middle` is the default). */
5932
+ type GridListCaptionAlign = `left` | `middle` | `right`;
5933
+ /** Vertical placement of an `overlaid` caption (`bottom` is the default). */
5934
+ type GridListCaptionPosition = `top` | `middle` | `bottom`;
5935
+ /**
5936
+ * Backdrop behind an `overlaid` caption.
5937
+ * - `scrim` (default): flat translucent panel.
5938
+ * - `gradient`: translucent gradient fading away from the caption edge.
5939
+ * - `blur`: frosted / backdrop-blurred panel.
5940
+ * - `none`: no panel — caption text only, with a shadow for legibility.
5941
+ */
5942
+ type GridListCaptionBackdrop = `scrim` | `gradient` | `blur` | `none`;
5943
+ /**
5944
+ * Layout / scroll direction.
5945
+ * - `grid` (default): items wrap across as many columns as fit and the list
5946
+ * scrolls vertically.
5947
+ * - `row`: a single row of items that scrolls horizontally.
5948
+ * - `column`: a single column of items that scrolls vertically.
5949
+ */
5950
+ type GridListOrientation = `grid` | `row` | `column`;
5951
+ interface GridListSelectDetail {
5952
+ readonly selected: ReadonlySet<Element>;
5953
+ readonly previous: ReadonlySet<Element>;
5954
+ readonly selectedKeys: ReadonlySet<string>;
5955
+ readonly previousKeys: ReadonlySet<string>;
5956
+ }
5957
+ type GridListSelectEvent = CustomEvent<GridListSelectDetail>;
5958
+ /**
5959
+ * `item` is the backward-compatible field: the light-DOM `Element` in element
5960
+ * mode, the data value `T` in data mode. Use `element` when you specifically
5961
+ * need the DOM node (`undefined` in data mode). `key` / `index` are the stable
5962
+ * contract in both modes.
5963
+ */
5964
+ interface GridListActivateDetail {
5965
+ readonly item: unknown;
5966
+ readonly key: string;
5967
+ readonly index: number;
5968
+ readonly element: Element | undefined;
5969
+ }
5970
+ type GridListActivateEvent = CustomEvent<GridListActivateDetail>;
5971
+ interface GridListItemClickDetail {
5972
+ readonly item: unknown;
5973
+ readonly key: string;
5974
+ readonly index: number;
5975
+ readonly element: Element | undefined;
5976
+ }
5977
+ type GridListItemClickEvent = CustomEvent<GridListItemClickDetail>;
5978
+ interface GridListTickleDetail {
5979
+ readonly item: unknown;
5980
+ readonly key: string;
5981
+ readonly index: number;
5982
+ readonly element: Element | undefined;
5983
+ }
5984
+ type GridListTickleEvent = CustomEvent<GridListTickleDetail>;
5985
+ interface GridListElementEventMap {
5986
+ 'list-select': GridListSelectEvent;
5987
+ 'list-activate': GridListActivateEvent;
5988
+ 'list-item-click': GridListItemClickEvent;
5989
+ 'list-tickle': GridListTickleEvent;
5990
+ }
5991
+ type GridListViewportChangeDetail = {
5992
+ readonly renderedKeys: string[];
5993
+ readonly visibleKeys: string[];
5994
+ };
5995
+ type GridListViewportChangeEvent = CustomEvent<GridListViewportChangeDetail>;
5996
+ interface GridListFullElementEventMap extends GridListElementEventMap {
5997
+ 'grid-list-viewport-change': GridListViewportChangeEvent;
5998
+ 'list-native-drag-start': ListNativeDragStartEvent;
5999
+ }
6000
+ //#endregion
5593
6001
  //#region src/pan-text/pan-text.d.ts
5594
6002
  type PanTextMode = `hover` | `loop`;
5595
6003
  declare class PanTextElement extends LitElement {
@@ -5714,9 +6122,16 @@ declare class GridListElement<T = unknown> extends LitElement {
5714
6122
  /**
5715
6123
  * Enable native browser drag-and-drop for selectable items. When true,
5716
6124
  * selectable cells become draggable and the grid emits
5717
- * `grid-list-native-drag-start` when a drag begins.
6125
+ * `list-native-drag-start` when a drag begins.
5718
6126
  */
5719
6127
  itemsDraggable: boolean;
6128
+ /**
6129
+ * Custom drag preview renderer. Receives the selection snapshot and returns
6130
+ * an element for `DataTransfer.setDragImage()` plus an optional pre-painted
6131
+ * canvas for native hosts. Synchronous by contract — pre-decode thumbnails
6132
+ * as selection changes. Defaults to the shared built-in preview.
6133
+ */
6134
+ dragPreviewRenderer: ListDragPreviewRenderer<T> | undefined;
5720
6135
  searchModes: string | undefined;
5721
6136
  /**
5722
6137
  * Data items for data-backed mode. When set along with `itemAdapter`, the
@@ -6412,251 +6827,6 @@ declare function setIconFont(fontFamily: string): void;
6412
6827
  declare function getIconFont(): string | undefined;
6413
6828
  declare function svgToDataUri(svg: string): string;
6414
6829
  //#endregion
6415
- //#region src/interaction/keyed-list.d.ts
6416
- /**
6417
- * Helpers for key-based selection on the Element-flavoured list components
6418
- * (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-grid-list`).
6419
- *
6420
- * A "key" is a stable string the host puts on each item element — `data-key`
6421
- * (preferred) or `data-value`. It survives the host rebuilding the item set
6422
- * (re-fetch, re-sort, filter) where raw `Element` references do not.
6423
- */
6424
- /**
6425
- * The stable key for an item element: `data-key`, then `data-value`, else
6426
- * `undefined`.
6427
- */
6428
- declare function keyForElement(el: Element): string | undefined;
6429
- /**
6430
- * A lazily-built key → element index over a container. Rebuilt on first use
6431
- * and after any child-list mutation under `root`; `invalidate()` forces a
6432
- * rebuild on the next `get()`.
6433
- *
6434
- * ```ts
6435
- * #keyIndex = new KeyedElementIndex(this);
6436
- * // ...
6437
- * const el = this.#keyIndex.get(`row-42`);
6438
- * // on disconnect:
6439
- * this.#keyIndex.dispose();
6440
- * ```
6441
- */
6442
- declare class KeyedElementIndex {
6443
- #private;
6444
- /**
6445
- * @param root Container whose descendants are indexed.
6446
- * @param itemSelector Which descendants count as items (default: any `[data-key]`).
6447
- */
6448
- constructor(root: Element, itemSelector?: string);
6449
- /** The element with this key, or `undefined`. First match wins on duplicates. */
6450
- get(key: string): Element | undefined;
6451
- /** Force a rebuild on the next `get()` — e.g. after a `data-key` attribute change. */
6452
- invalidate(): void;
6453
- /** Stop observing and drop the cache. */
6454
- dispose(): void;
6455
- }
6456
- //#endregion
6457
- //#region src/interaction/list-drag-select-controller.d.ts
6458
- /** Surface-relative rectangle: origin at the scroll container's top-left. */
6459
- type DragSelectRect = {
6460
- readonly x: number;
6461
- readonly y: number;
6462
- readonly width: number;
6463
- readonly height: number;
6464
- };
6465
- type ListDragSelectControllerConfig<T> = {
6466
- /** Element the marquee is drawn in and pointer geometry is measured against. */
6467
- getSurface: () => HTMLElement | undefined;
6468
- /** Is drag-select currently allowed? (multi-capable, has items, not disabled) */
6469
- isEnabled: () => boolean;
6470
- /** Pointer types that may start a drag. Default ['mouse', 'pen'] — touch still scrolls. */
6471
- pointerTypes?: readonly string[];
6472
- /** Movement in px before a press becomes a drag. Default 4. */
6473
- threshold?: number;
6474
- /** Map a surface-relative rect to covered items. */
6475
- hitTest: (rect: DragSelectRect) => Iterable<T>;
6476
- /**
6477
- * Selection snapshotted when the drag starts, combined with the hit set
6478
- * while modifiers are held: Shift adds (`base + hit`), Cmd / Ctrl inverts
6479
- * (covered items toggle, the rest is untouched).
6480
- */
6481
- getBaseSelection: () => ReadonlySet<T>;
6482
- /** Continuous visual feedback: the preview set + current rect (undefined when idle). */
6483
- onPreview: (preview: ReadonlySet<T>, rect: DragSelectRect | undefined) => void;
6484
- /**
6485
- * Fired once on release with the final set. Host applies it to its
6486
- * selection. `additive` is `true` when the drag ran with Shift (add) or
6487
- * Cmd / Ctrl (invert) held.
6488
- */
6489
- onCommit: (finalSet: ReadonlySet<T>, info: {
6490
- additive: boolean;
6491
- }) => void;
6492
- /** Optional: scroll the surface when the pointer nears an edge during a drag. */
6493
- autoScroll?: (dx: number, dy: number) => void;
6494
- /**
6495
- * Optional predicate called on pointerdown before the controller records its
6496
- * pointer id or later calls setPointerCapture/preventDefault. Return false
6497
- * to yield to another gesture (e.g. native item drag).
6498
- */
6499
- shouldStart?: (event: PointerEvent) => boolean;
6500
- };
6501
- type DragHost = ReactiveControllerHost & HTMLElement;
6502
- /**
6503
- * Shared pointer-drag (marquee / rubber-band) selection for list components.
6504
- *
6505
- * Owns all pointer plumbing and rectangle state; knows nothing about DOM
6506
- * geometry or the selection model — those are host callbacks. Mirrors the
6507
- * `TickledController` attach pattern (`new ListDragSelectController(this, …)`).
6508
- *
6509
- * Behaviour: `pointerdown` on the surface records a start point; once the
6510
- * pointer moves past `threshold`, the surface captures the pointer and every
6511
- * move recomputes the rect, hit-tests, and calls `onPreview`. On release the
6512
- * final set is delivered once via `onCommit`. A press that never crosses the
6513
- * threshold does nothing (the normal `@click` path runs).
6514
- */
6515
- declare class ListDragSelectController<T> implements ReactiveController {
6516
- #private;
6517
- constructor(host: DragHost, config: ListDragSelectControllerConfig<T>);
6518
- /** `true` while a drag is in progress or its trailing click is still pending. */
6519
- get isDragging(): boolean;
6520
- /** `true` once the press has crossed the threshold and a rect is live. */
6521
- get isActive(): boolean;
6522
- hostConnected(): void;
6523
- hostDisconnected(): void;
6524
- /** Re-bind when the surface element appears/changes (e.g. first render). */
6525
- hostUpdated(): void;
6526
- }
6527
- //#endregion
6528
- //#region src/interaction/list-item-animation.d.ts
6529
- /**
6530
- * Shared insertion / removal animation for the list & tree components.
6531
- *
6532
- * Two flavours, because the components split into two layout families:
6533
- *
6534
- * - **Flow layouts** (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-tree-*`) —
6535
- * rows sit in normal flow, so a new row can collapse in from zero height and a
6536
- * leaving row can collapse back to zero, and the rows around it slide to make
6537
- * or close the gap for free. Use {@link animateListItemIn} /
6538
- * {@link animateListItemOut} (Web Animations API, exact measured sizes).
6539
- *
6540
- * - **Virtualised layouts** (`ixfx-grid-list`, `ixfx-data-grid`) — rows are
6541
- * absolutely positioned (`transform` / `top`), so collapsing a row's box moves
6542
- * nothing. Those components instead fade the entering / leaving row with the
6543
- * {@link listItemFadeKeyframes} keyframes and slide the survivors by
6544
- * transitioning their position for a short window after the change.
6545
- *
6546
- * Everything here is a no-op under `prefers-reduced-motion: reduce`.
6547
- */
6548
- /** Default duration (ms) for both flavours; overridable per call / per component. */
6549
- declare const LIST_ITEM_MOTION_MS = 200;
6550
- declare function prefersReducedMotion(): boolean;
6551
- /**
6552
- * Opacity keyframes for the virtualised components. Each one adds its own
6553
- * one-line rule binding `.<row>.ixfx-item-entering` / `.ixfx-item-leaving` to
6554
- * these, plus a `prefers-reduced-motion` guard on its own selectors.
6555
- */
6556
- declare const listItemFadeKeyframes: CSSResult;
6557
- interface ListItemMotionOptions {
6558
- /**
6559
- * Animation duration in ms. When omitted, the element's
6560
- * `--ixfx-list-item-move-duration` custom property is used if set (accepts
6561
- * `ms` or `s`), otherwise {@link LIST_ITEM_MOTION_MS}.
6562
- */
6563
- duration?: number;
6564
- /** Which axis collapses — `block` (height, default) or `inline` (width). */
6565
- axis?: `block` | `inline`;
6566
- easing?: string;
6567
- }
6568
- /**
6569
- * Collapse + fade `el` in from nothing to its natural size. Call it just after
6570
- * the element has been inserted (it must already be laid out at full size so it
6571
- * can be measured). No-op under reduced motion.
6572
- */
6573
- declare function animateListItemIn(el: HTMLElement, options?: ListItemMotionOptions): Animation | undefined;
6574
- /**
6575
- * Collapse + fade `el` out. Resolves once the animation finishes (or straight
6576
- * away under reduced motion); the caller detaches the element after. The final
6577
- * collapsed state is held (`fill: forwards`) so there's no flash back to full
6578
- * size in the gap before removal.
6579
- */
6580
- declare function animateListItemOut(el: HTMLElement, options?: ListItemMotionOptions): Promise<void>;
6581
- //#endregion
6582
- //#region src/interaction/tickled-styles.d.ts
6583
- /**
6584
- * Shared CSS styles for tickled interaction pattern.
6585
- *
6586
- * Tickled state is controlled via the `.tickled` CSS class (applied by TickledController).
6587
- * The `tickledItemStyles` provides base styling that all tickled components should use.
6588
- *
6589
- * ## CSS Variable Contract
6590
- *
6591
- * **Style variables** — `tickledItemStyles` only consumes these via `var()`; it
6592
- * defines no defaults itself. Fallback values (used when no theme CSS is loaded)
6593
- * are registered in `themeFallbacks` (`../styles/fallbacks.ts`) and mirror the
6594
- * documented base theme in `user-theming.md`:
6595
- * - `--item-bg`, `--item-bg-tickled`, `--item-bg-selected`, `--item-bg-selected-tickled`
6596
- * - `--item-border`, `--item-border-tickled`, `--item-border-selected` (full border shorthands, not colours)
6597
- * - `--item-text-tickled`, `--item-text-selected`
6598
- * - `--item-padding`, `--item-border-radius`, `--item-icon-spacing`
6599
- *
6600
- * ## Usage
6601
- *
6602
- * Components should import both `tickledStyles` and `tickledItemStyles`:
6603
- *
6604
- * ```ts
6605
- * import { tickledStyles, tickledItemStyles } from '../interaction/index.js';
6606
- *
6607
- * class MyComponent extends LitElement {
6608
- * static styles = [
6609
- * tickledStyles,
6610
- * tickledItemStyles,
6611
- * css`
6612
- * :host {
6613
- * --item-bg-tickled: #e0e0e0;
6614
- * --item-bg-selected: #1976d2;
6615
- * }
6616
- * `
6617
- * ];
6618
- * }
6619
- * ```
6620
- */
6621
- declare const tickledStyles: CSSResult;
6622
- /**
6623
- * Shared item styling for tickled components.
6624
- *
6625
- * Provides base styles for interactive items with tickled and selected states.
6626
- * Components should import this in addition to `tickledStyles` and can override
6627
- * CSS variables to customize appearance.
6628
- */
6629
- declare const tickledItemStyles: CSSResult;
6630
- //#endregion
6631
- //#region src/interaction/tree-keyboard-controller.d.ts
6632
- type TreeKeyboardNavItemId = string;
6633
- type TreeKeyboardNavCallbacks = {
6634
- getItems: () => ReadonlyArray<TickledItem<TreeKeyboardNavItemId>>;
6635
- onExpand: (id: TreeKeyboardNavItemId) => void;
6636
- onCollapse: (id: TreeKeyboardNavItemId) => void;
6637
- onActivate: (id: TreeKeyboardNavItemId) => void;
6638
- onSelect?: (id: TreeKeyboardNavItemId) => void;
6639
- onEscape?: () => void;
6640
- isLeaf: (id: TreeKeyboardNavItemId) => boolean;
6641
- isExpanded: (id: TreeKeyboardNavItemId) => boolean;
6642
- getParentId?: (id: TreeKeyboardNavItemId) => TreeKeyboardNavItemId | undefined;
6643
- };
6644
- type TreeKeyboardNavControllerConfig = {
6645
- callbacks: TreeKeyboardNavCallbacks;
6646
- disableKeyboardNavigation?: () => boolean;
6647
- };
6648
- declare class TreeKeyboardNavController implements ReactiveController {
6649
- #private;
6650
- private host;
6651
- private tickled;
6652
- private callbacks;
6653
- private disableKeyboardNavigation;
6654
- constructor(host: ReactiveControllerHost, tickled: TickledController<TreeKeyboardNavItemId>, config: TreeKeyboardNavControllerConfig);
6655
- hostConnected(): void;
6656
- hostDisconnected(): void;
6657
- handleKeyDown: (event: KeyboardEvent) => void;
6658
- }
6659
- //#endregion
6660
6830
  //#region src/radial-input/types.d.ts
6661
6831
  /**
6662
6832
  * Type definitions for radial input component
@@ -9370,5 +9540,5 @@ interface XyPad {
9370
9540
  //#region src/index.d.ts
9371
9541
  declare function init(): void;
9372
9542
  //#endregion
9373
- export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafPlacementPolicy, DockLeafPlacementPolicyResolved, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, type DragSelectRect, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListNativeDragStartDetail, type GridListNativeDragStartEvent, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LaneData, LaneType, LayoutNode, LayoutSnapshot, LeafGeom, LedElement, LedMode, type ListActivateDetail, type ListActivateEvent, ListDragSelectController, type ListDragSelectControllerConfig, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanTextMode, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupElementEventMap, PanelGroupOrientation, PanelGroupReorderDetail, PanelGroupReorderEvent, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramInteractionMode, PlotHistogramOrientation, PlotHistogramSelectionChangeDetail, PlotHistogramSelectionChangeEvent, PlotHistogramSelectionRange, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, type RegisterListSearchCommandsOptions, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarGroupElement, ToolbarLayout, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeSearchHost, TreeSelectionFilter, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeLeafGeoms, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
9543
+ export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, DetailListElementEventMap, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafPlacementPolicy, DockLeafPlacementPolicyResolved, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, type DragSelectRect, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LaneData, LaneType, LayoutNode, LayoutSnapshot, LeafGeom, LedElement, LedMode, type ListActivateDetail, type ListActivateEvent, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, ListDragSelectController, type ListDragSelectControllerConfig, type ListDragSource, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListItemOutResult, ListNativeDragController, type ListNativeDragControllerConfig, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanTextMode, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupElementEventMap, PanelGroupOrientation, PanelGroupReorderDetail, PanelGroupReorderEvent, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramInteractionMode, PlotHistogramOrientation, PlotHistogramSelectionChangeDetail, PlotHistogramSelectionChangeEvent, PlotHistogramSelectionRange, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, type RegisterListSearchCommandsOptions, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarGroupElement, ToolbarLayout, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeSearchHost, TreeSelectionFilter, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, VerticalListElementEventMap, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeLeafGeoms, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
9374
9544
  //# sourceMappingURL=index.d.ts.map