@ixfx/components 0.8.7 → 0.8.9

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 (85) hide show
  1. package/bundle/index.d.ts +743 -383
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +2093 -222
  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-C588pTgt.d.ts} +15 -2
  8. package/dist/data-grid-C588pTgt.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-IKl76Wnp.d.ts} +22 -5
  13. package/dist/detail-list-IKl76Wnp.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-Cq8ga2WZ.d.ts → grid-list-BUlUnisU.d.ts} +214 -112
  18. package/dist/grid-list-BUlUnisU.d.ts.map +1 -0
  19. package/dist/{grid-list-j5C7qtlG.js → grid-list-D18FNJRH.js} +77 -164
  20. package/dist/grid-list-D18FNJRH.js.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--qnhBWZJ.d.ts} +2 -2
  25. package/dist/{index-DDREWqMm.d.ts.map → index--qnhBWZJ.d.ts.map} +1 -1
  26. package/dist/index.d.ts +212 -253
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +13 -12
  29. package/dist/index.js.map +1 -1
  30. package/dist/{interaction-B9AAlsFO.js → interaction-BskmlA9t.js} +1 -1
  31. package/dist/{labelled-slider-input-BCH9968c.js → labelled-slider-input-aEYDvW2S.js} +2 -2
  32. package/dist/{labelled-slider-input-BCH9968c.js.map → labelled-slider-input-aEYDvW2S.js.map} +1 -1
  33. package/dist/labelled-slider-input.js +1 -1
  34. package/dist/{list-item-animation-DuiwgN3l.js → list-item-animation-BUoEKi5s.js} +29 -10
  35. package/dist/list-item-animation-BUoEKi5s.js.map +1 -0
  36. package/dist/list-native-drag-controller-CFyrkKUj.d.ts +61 -0
  37. package/dist/list-native-drag-controller-CFyrkKUj.d.ts.map +1 -0
  38. package/dist/list-native-drag-controller-DxD6Yjci.js +567 -0
  39. package/dist/list-native-drag-controller-DxD6Yjci.js.map +1 -0
  40. package/dist/{menu-HMoxCPY2.js → menu-CMXhIaNZ.js} +3 -3
  41. package/dist/{menu-HMoxCPY2.js.map → menu-CMXhIaNZ.js.map} +1 -1
  42. package/dist/{menu-item-BQDYxk5A.js → menu-item-BYGQzyCe.js} +2 -2
  43. package/dist/{menu-item-BQDYxk5A.js.map → menu-item-BYGQzyCe.js.map} +1 -1
  44. package/dist/menu.js +2 -2
  45. package/dist/miller.d.ts +2 -2
  46. package/dist/miller.js +1 -1
  47. package/dist/narrowed-text.js +1 -1
  48. package/dist/plots.js +1 -1
  49. package/dist/select-horiz.js +1 -1
  50. package/dist/slider-input-BxURAAmD.d.ts.map +1 -1
  51. package/dist/{slider-input-WR8_RwHg.js → slider-input-Cb5uSV42.js} +78 -11
  52. package/dist/slider-input-Cb5uSV42.js.map +1 -0
  53. package/dist/slider-input.js +1 -1
  54. package/dist/{tree-CozQj01a.js → tree-a14n9y7i.js} +1055 -32
  55. package/dist/tree-a14n9y7i.js.map +1 -0
  56. package/dist/{tree-component-BMpxpdTi.d.ts → tree-component-BW2iCFq9.d.ts} +108 -4
  57. package/dist/tree-component-BW2iCFq9.d.ts.map +1 -0
  58. package/dist/tree.d.ts +102 -4
  59. package/dist/tree.d.ts.map +1 -1
  60. package/dist/tree.js +2 -2
  61. package/dist/{vertical-list-BGn9nyKh.d.ts → vertical-list-CHrXmmQ3.d.ts} +21 -4
  62. package/dist/vertical-list-CHrXmmQ3.d.ts.map +1 -0
  63. package/dist/vertical-list.d.ts +3 -2
  64. package/dist/vertical-list.js +103 -3
  65. package/dist/vertical-list.js.map +1 -1
  66. package/dist/{xy-axis-CrrVdDFe.js → xy-axis-COKw338Q.js} +2 -2
  67. package/dist/xy-axis-COKw338Q.js.map +1 -0
  68. package/dist/xy-axis-DQqd2yXJ.d.ts.map +1 -1
  69. package/docs-user/data-grid.md +30 -0
  70. package/docs-user/detail-list.md +29 -0
  71. package/docs-user/grid-list.md +34 -4
  72. package/docs-user/index.json +2 -2
  73. package/docs-user/tree.md +76 -1
  74. package/docs-user/vertical-list.md +30 -1
  75. package/package.json +1 -1
  76. package/dist/data-grid-CYVPSUwh.d.ts.map +0 -1
  77. package/dist/detail-list-vH56z7WE.d.ts.map +0 -1
  78. package/dist/grid-list-Cq8ga2WZ.d.ts.map +0 -1
  79. package/dist/grid-list-j5C7qtlG.js.map +0 -1
  80. package/dist/list-item-animation-DuiwgN3l.js.map +0 -1
  81. package/dist/slider-input-WR8_RwHg.js.map +0 -1
  82. package/dist/tree-CozQj01a.js.map +0 -1
  83. package/dist/tree-component-BMpxpdTi.d.ts.map +0 -1
  84. package/dist/vertical-list-BGn9nyKh.d.ts.map +0 -1
  85. package/dist/xy-axis-CrrVdDFe.js.map +0 -1
package/bundle/index.d.ts CHANGED
@@ -2003,6 +2003,46 @@ declare class DataController<TQuery, TItem> implements ReactiveController {
2003
2003
  cancel(): void;
2004
2004
  }
2005
2005
  //#endregion
2006
+ //#region src/interaction/list-drag-types.d.ts
2007
+ interface ListDragEntry<T> {
2008
+ readonly key: string;
2009
+ readonly index: number;
2010
+ readonly item: T | Element;
2011
+ readonly element?: Element;
2012
+ }
2013
+ type ListDragSource = `grid-list` | `detail-list` | `vertical-list` | `data-grid` | `tree-list`;
2014
+ interface ListDragPreviewContext<T> {
2015
+ readonly source: ListDragSource;
2016
+ readonly origin: ListDragEntry<T>;
2017
+ readonly selected: ReadonlyArray<ListDragEntry<T>>;
2018
+ readonly metrics: {
2019
+ readonly itemSize?: number;
2020
+ readonly captionStyle?: string;
2021
+ readonly captionHeight?: number;
2022
+ readonly rowHeight?: number;
2023
+ };
2024
+ readonly hostStyle: CSSStyleDeclaration;
2025
+ }
2026
+ interface ListDragPreview {
2027
+ readonly element: HTMLElement;
2028
+ readonly hotspot?: Readonly<{
2029
+ x: number;
2030
+ y: number;
2031
+ }>;
2032
+ readonly canvas?: HTMLCanvasElement;
2033
+ readonly dispose?: () => void;
2034
+ }
2035
+ type ListDragPreviewRenderer<T> = (context: ListDragPreviewContext<T>) => ListDragPreview;
2036
+ interface ListNativeDragStartDetail<T = unknown> {
2037
+ readonly key: string;
2038
+ readonly index: number;
2039
+ readonly item: T | Element;
2040
+ readonly selectedKeys: readonly string[];
2041
+ readonly selected: ReadonlyArray<ListDragEntry<T>>;
2042
+ readonly preview?: ListDragPreview;
2043
+ }
2044
+ type ListNativeDragStartEvent<T = unknown> = CustomEvent<ListNativeDragStartDetail<T>>;
2045
+ //#endregion
2006
2046
  //#region src/common/types.d.ts
2007
2047
  type TreeItem = {
2008
2048
  /** Unique identifier within the tree. */
@@ -2159,9 +2199,29 @@ declare class TreeDataModel {
2159
2199
  updateItem(key: string, patch: Partial<TreeItem>): TreeNode;
2160
2200
  /**
2161
2201
  * Moves the node with the given key to become a child of `newParentKey`.
2202
+ * When `index` is provided, inserts at that position; otherwise appends.
2162
2203
  * Returns the new root (connected components are notified automatically).
2163
2204
  */
2164
- moveNode(key: string, newParentKey: string): TreeNode;
2205
+ moveNode(key: string, newParentKey: string, index?: number): TreeNode;
2206
+ /**
2207
+ * Moves the node with the given key to become a sibling of `referenceKey`,
2208
+ * positioned `before` or `after` it. A no-op (returns the unchanged root) when
2209
+ * `key` is `referenceKey`, an ancestor of it, or either is missing.
2210
+ * Returns the new root (connected components are notified automatically).
2211
+ */
2212
+ moveNodeRelative(key: string, referenceKey: string, position: `before` | `after`): TreeNode;
2213
+ /**
2214
+ * Applies a resolved drop (from `ixfx-tree-list`'s `tree-drop` event or a
2215
+ * hand-built context) to the current root. No-op when the drop is invalid.
2216
+ * Returns the new root (connected components are notified automatically).
2217
+ */
2218
+ applyDrop(ctx: TreeDropApplyContext): TreeNode;
2219
+ /**
2220
+ * Inserts `node` as a child of `parentKey` (or at the root level when `parentKey` is undefined).
2221
+ * When `index` is provided, inserts at that position; otherwise appends.
2222
+ * Returns the new root (connected components are notified automatically).
2223
+ */
2224
+ insertNode(parentKey: string | undefined, node: TreeNode, index?: number): TreeNode;
2165
2225
  /**
2166
2226
  * Subscribe to model events. Returns an unsubscribe function.
2167
2227
  * Components call this when the `model` property is set, and unsubscribe when it is unset.
@@ -2172,6 +2232,45 @@ declare class TreeDataModel {
2172
2232
  }
2173
2233
  //#endregion
2174
2234
  //#region src/common/tree-component.d.ts
2235
+ type TreeDndMode = `none` | `internal` | `external` | `both`;
2236
+ type TreeDropPosition = `before` | `after` | `inside`;
2237
+ interface TreeDropTarget {
2238
+ readonly parentKey: string | undefined;
2239
+ readonly index: number;
2240
+ readonly referenceKey: string;
2241
+ readonly position: TreeDropPosition;
2242
+ readonly depth: number;
2243
+ }
2244
+ interface TreeDragContext {
2245
+ readonly nodes: readonly TreeNode[];
2246
+ readonly keys: readonly string[];
2247
+ }
2248
+ /**
2249
+ * The structural subset of {@link TreeDropContext} needed to apply a drop to a
2250
+ * tree root. Passed to `applyTreeDrop()` / `TreeDataModel.applyDrop()`.
2251
+ */
2252
+ interface TreeDropApplyContext {
2253
+ readonly source: `internal` | `external`;
2254
+ /**
2255
+ * For `internal` drops this is advisory — the nodes are re-resolved from the
2256
+ * live root by `draggedKeys`. For `external` drops it is the payload to insert.
2257
+ */
2258
+ readonly dragged?: readonly TreeNode[];
2259
+ readonly draggedKeys: readonly string[];
2260
+ readonly target: TreeDropTarget;
2261
+ }
2262
+ interface TreeDropContext extends TreeDropApplyContext {
2263
+ readonly dataTransfer: DataTransfer | null;
2264
+ }
2265
+ interface TreeDropDetail extends TreeDropContext {
2266
+ readonly external?: readonly TreeNode[];
2267
+ }
2268
+ type TreeDragStartEvent = CustomEvent<TreeDragContext>;
2269
+ type TreeDragOverEvent = CustomEvent<TreeDropContext>;
2270
+ type TreeDropEvent = CustomEvent<TreeDropDetail>;
2271
+ type TreeDragEndEvent = CustomEvent<{
2272
+ dropped: boolean;
2273
+ }>;
2175
2274
  /**
2176
2275
  * Fired when the selection set changes by any means (click, keyboard, programmatic).
2177
2276
  * Event name: `select`
@@ -2209,7 +2308,7 @@ type TreeItemClickDetail = {
2209
2308
  };
2210
2309
  /**
2211
2310
  * 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.
2311
+ * swallowed, so a branch is never toggled open/closed by a double-click.
2213
2312
  * Event name: `item-dblclick`
2214
2313
  */
2215
2314
  type TreeItemDblClickDetail = {
@@ -2246,6 +2345,11 @@ interface TreeComponentEventMap {
2246
2345
  'item-click': TreeItemClickEvent;
2247
2346
  'expand': TreeExpandEvent;
2248
2347
  'collapse': TreeCollapseEvent;
2348
+ 'list-native-drag-start': CustomEvent<ListNativeDragStartDetail<TreeNode>>;
2349
+ 'tree-drag-start': TreeDragStartEvent;
2350
+ 'tree-drag-over': TreeDragOverEvent;
2351
+ 'tree-drop': TreeDropEvent;
2352
+ 'tree-drag-end': TreeDragEndEvent;
2249
2353
  }
2250
2354
  /**
2251
2355
  * The common interface all tree-like components must implement.
@@ -2362,6 +2466,27 @@ interface TreeSearchHost extends TreeComponent {
2362
2466
  readonly updateComplete: Promise<boolean>;
2363
2467
  }
2364
2468
  //#endregion
2469
+ //#region src/common/tree-drop-apply.d.ts
2470
+ /**
2471
+ * Drop keys whose ancestor is also being dragged — only the top-most selected
2472
+ * nodes move; their subtrees travel with them. Preserves input order.
2473
+ */
2474
+ declare function pruneDraggedDescendants(root: TreeNode, keys: readonly string[]): string[];
2475
+ /**
2476
+ * Framework-agnostic drop application. Given the current immutable `root` and a
2477
+ * resolved drop context, returns a **new** root with the drop applied, or the
2478
+ * unchanged `root` when the drop is invalid (dragged node into its own subtree,
2479
+ * missing reference, empty payload). Never throws, never mutates.
2480
+ *
2481
+ * The insertion point is re-derived from `target.referenceKey` + `target.position`
2482
+ * against the post-removal tree, so same-parent reorders are off-by-one-safe and
2483
+ * multi-node drops land as siblings in drag order. `target.index` is honoured only
2484
+ * for `position: 'inside'` (0 = first child, large = append).
2485
+ */
2486
+ declare function applyTreeDrop(root: TreeNode, ctx: TreeDropApplyContext): TreeNode;
2487
+ /** Build a synthetic `TreeDropTarget` for programmatic moves (see `TreeDataModel`). */
2488
+ declare function dropTargetFor(referenceKey: string, position: TreeDropPosition, index?: number): TreeDropTarget;
2489
+ //#endregion
2365
2490
  //#region src/tree/types.d.ts
2366
2491
  /** Tree layout/display configuration (tree-specific, not shared). */
2367
2492
  type TreeConfig = {
@@ -3333,6 +3458,7 @@ interface DataGridElementEventMap {
3333
3458
  'datagrid-cell-click': DataGridCellClickEvent;
3334
3459
  'datagrid-cell-edit': DataGridCellEditEvent;
3335
3460
  'datagrid-group-change': DataGridGroupChangeEvent;
3461
+ 'list-native-drag-start': ListNativeDragStartEvent<unknown>;
3336
3462
  }
3337
3463
  declare class DataGridElement extends LitElement {
3338
3464
  #private;
@@ -3374,6 +3500,17 @@ declare class DataGridElement extends LitElement {
3374
3500
  * disabled. See `docs/infra-incremental.md`.
3375
3501
  */
3376
3502
  searchModes: string | undefined;
3503
+ /**
3504
+ * Enable native browser drag-and-drop for selectable rows. When true,
3505
+ * selectable rows become draggable and the grid emits
3506
+ * `list-native-drag-start` when a drag begins.
3507
+ */
3508
+ itemsDraggable: boolean;
3509
+ /**
3510
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3511
+ * built-in HTML+canvas preview.
3512
+ */
3513
+ dragPreviewRenderer: ListDragPreviewRenderer<unknown> | undefined;
3377
3514
  private _columnFormatters;
3378
3515
  private _selectedKeys;
3379
3516
  private _scrollTop;
@@ -3656,8 +3793,20 @@ declare class VerticalListElement extends LitElement {
3656
3793
  * disabled. See `docs/infra-incremental.md`.
3657
3794
  */
3658
3795
  searchModes: string | undefined;
3796
+ /**
3797
+ * Enable native browser drag-and-drop for selectable items. When true,
3798
+ * selectable rows become draggable and the list emits
3799
+ * `list-native-drag-start` when a drag begins.
3800
+ */
3801
+ itemsDraggable: boolean;
3802
+ /**
3803
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3804
+ * built-in HTML+canvas preview.
3805
+ */
3806
+ dragPreviewRenderer: ListDragPreviewRenderer<Element> | undefined;
3659
3807
  private readonly selection;
3660
3808
  private tickled;
3809
+ private _syncNativeDraggable;
3661
3810
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3662
3811
  readonly search: ListSearchController<Element>;
3663
3812
  /** Command registry carrying this list's `list.search.*` commands. */
@@ -3727,6 +3876,7 @@ declare class VerticalListElement extends LitElement {
3727
3876
  private _createCustomCheckbox;
3728
3877
  private _findListItem;
3729
3878
  private _dispatch;
3879
+ private _dispatchCancelable;
3730
3880
  private _onPointerOver;
3731
3881
  private _onPointerLeave;
3732
3882
  private _onKeyDown;
@@ -3740,7 +3890,10 @@ declare global {
3740
3890
  interface HTMLElementTagNameMap {
3741
3891
  'ixfx-vertical-list': VerticalListElement;
3742
3892
  }
3743
- interface HTMLElementEventMap extends ListElementEventMap {}
3893
+ interface HTMLElementEventMap extends VerticalListElementEventMap {}
3894
+ }
3895
+ interface VerticalListElementEventMap extends ListElementEventMap {
3896
+ 'list-native-drag-start': ListNativeDragStartEvent<Element>;
3744
3897
  }
3745
3898
  //#endregion
3746
3899
  //#region src/detail-list/types.d.ts
@@ -3803,9 +3956,21 @@ declare class DetailListElement extends LitElement {
3803
3956
  * disabled. See `docs/infra-incremental.md`.
3804
3957
  */
3805
3958
  searchModes: string | undefined;
3959
+ /**
3960
+ * Enable native browser drag-and-drop for selectable items. When true,
3961
+ * selectable rows become draggable and the list emits
3962
+ * `list-native-drag-start` when a drag begins.
3963
+ */
3964
+ itemsDraggable: boolean;
3965
+ /**
3966
+ * Custom drag preview renderer (synchronous). Defaults to the shared
3967
+ * built-in HTML+canvas preview.
3968
+ */
3969
+ dragPreviewRenderer: ListDragPreviewRenderer<Element> | undefined;
3806
3970
  private _listEl;
3807
3971
  private readonly selection;
3808
3972
  private tickled;
3973
+ private _syncNativeDraggable;
3809
3974
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3810
3975
  readonly search: ListSearchController<Element>;
3811
3976
  /** Command registry carrying this list's `list.search.*` commands. */
@@ -3892,6 +4057,7 @@ declare class DetailListElement extends LitElement {
3892
4057
  private _createCustomCheckbox;
3893
4058
  private _findListItem;
3894
4059
  private _dispatch;
4060
+ private _dispatchCancelable;
3895
4061
  private _onPointerOver;
3896
4062
  private _onPointerLeave;
3897
4063
  private _onKeyDown;
@@ -3906,7 +4072,10 @@ declare global {
3906
4072
  interface HTMLElementTagNameMap {
3907
4073
  'ixfx-detail-list': DetailListElement;
3908
4074
  }
3909
- interface HTMLElementEventMap extends ListElementEventMap {}
4075
+ interface HTMLElementEventMap extends DetailListElementEventMap {}
4076
+ }
4077
+ interface DetailListElementEventMap extends ListElementEventMap {
4078
+ 'list-native-drag-start': ListNativeDragStartEvent<Element>;
3910
4079
  }
3911
4080
  //#endregion
3912
4081
  //#region src/dock/types.d.ts
@@ -5109,153 +5278,302 @@ declare global {
5109
5278
  }
5110
5279
  }
5111
5280
  //#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`;
5281
+ //#region src/interaction/keyed-list.d.ts
5151
5282
  /**
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.
5283
+ * Helpers for key-based selection on the Element-flavoured list components
5284
+ * (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-grid-list`).
5285
+ *
5286
+ * A "key" is a stable string the host puts on each item element — `data-key`
5287
+ * (preferred) or `data-value`. It survives the host rebuilding the item set
5288
+ * (re-fetch, re-sort, filter) where raw `Element` references do not.
5157
5289
  */
5158
- type GridListCaptionBackdrop = `scrim` | `gradient` | `blur` | `none`;
5159
5290
  /**
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.
5291
+ * The stable key for an item element: `data-key`, then `data-value`, else
5292
+ * `undefined`.
5165
5293
  */
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>;
5294
+ declare function keyForElement(el: Element): string | undefined;
5174
5295
  /**
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.
5296
+ * A lazily-built key element index over a container. Rebuilt on first use
5297
+ * and after any child-list mutation under `root`; `invalidate()` forces a
5298
+ * rebuild on the next `get()`.
5299
+ *
5300
+ * ```ts
5301
+ * #keyIndex = new KeyedElementIndex(this);
5302
+ * // ...
5303
+ * const el = this.#keyIndex.get(`row-42`);
5304
+ * // on disconnect:
5305
+ * this.#keyIndex.dispose();
5306
+ * ```
5179
5307
  */
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;
5308
+ declare class KeyedElementIndex {
5309
+ #private;
5310
+ /**
5311
+ * @param root Container whose descendants are indexed.
5312
+ * @param itemSelector Which descendants count as items (default: any `[data-key]`).
5313
+ */
5314
+ constructor(root: Element, itemSelector?: string);
5315
+ /** The element with this key, or `undefined`. First match wins on duplicates. */
5316
+ get(key: string): Element | undefined;
5317
+ /** Force a rebuild on the next `get()` — e.g. after a `data-key` attribute change. */
5318
+ invalidate(): void;
5319
+ /** Stop observing and drop the cache. */
5320
+ dispose(): void;
5222
5321
  }
5223
5322
  //#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
- };
5323
+ //#region src/interaction/list-drag-preview-default.d.ts
5324
+ /** Caption for a drag entry element labels win, then string items, then common object fields, then the key. */
5325
+ declare function captionForEntry(entry: ListDragEntry<unknown>): string;
5235
5326
  /**
5236
- * Configuration supplied by the host component.
5327
+ * Uniform built-in HTML+canvas drag preview for all four list components.
5237
5328
  *
5238
- * The controller owns selection *state* only everything DOM- or
5239
- * component-specific is expressed through these callbacks.
5329
+ * - ≤5 selected a row of small cards (thumbnail well + caption).
5330
+ * - >5 selected a compact list (`N items` header, up to 5 rows, `+N more`).
5331
+ *
5332
+ * Always returns an offscreen `element` for `DataTransfer.setDragImage()` and,
5333
+ * when a 2D context is available, a DPR-aware painted `canvas` for native
5334
+ * hosts. Colours track the active theme via `ctx.hostStyle` CSS variables.
5240
5335
  */
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;
5336
+ declare function createDefaultListDragPreview<T>(ctx: ListDragPreviewContext<T>): ListDragPreview;
5337
+ //#endregion
5338
+ //#region src/interaction/list-drag-select-controller.d.ts
5339
+ /** Surface-relative rectangle: origin at the scroll container's top-left. */
5340
+ type DragSelectRect = {
5341
+ readonly x: number;
5342
+ readonly y: number;
5343
+ readonly width: number;
5344
+ readonly height: number;
5345
+ };
5346
+ type ListDragSelectControllerConfig<T> = {
5347
+ /** Element the marquee is drawn in and pointer geometry is measured against. */
5348
+ getSurface: () => HTMLElement | undefined;
5349
+ /** Is drag-select currently allowed? (multi-capable, has items, not disabled) */
5350
+ isEnabled: () => boolean;
5351
+ /** Pointer types that may start a drag. Default ['mouse', 'pen'] — touch still scrolls. */
5352
+ pointerTypes?: readonly string[];
5353
+ /** Movement in px before a press becomes a drag. Default 4. */
5354
+ threshold?: number;
5355
+ /** Map a surface-relative rect to covered items. */
5356
+ hitTest: (rect: DragSelectRect) => Iterable<T>;
5248
5357
  /**
5249
- * Fired after every selection change. The host syncs DOM state
5250
- * (`data-selected` / `data-checked`), dispatches `list-select`, and
5251
- * requests an update.
5358
+ * Selection snapshotted when the drag starts, combined with the hit set
5359
+ * while modifiers are held: Shift adds (`base + hit`), Cmd / Ctrl inverts
5360
+ * (covered items toggle, the rest is untouched).
5252
5361
  */
5253
- readonly onChange: (selected: ReadonlySet<T>, previous: ReadonlySet<T>) => void;
5362
+ getBaseSelection: () => ReadonlySet<T>;
5363
+ /** Continuous visual feedback: the preview set + current rect (undefined when idle). */
5364
+ onPreview: (preview: ReadonlySet<T>, rect: DragSelectRect | undefined) => void;
5254
5365
  /**
5255
- * Optional: derive a stable string key for an item. Enables `selectedKeys`
5256
- * and `selectKeys()`. When omitted, `selectedKeys` is always empty.
5366
+ * Fired once on release with the final set. Host applies it to its
5367
+ * selection. `additive` is `true` when the drag ran with Shift (add) or
5368
+ * Cmd / Ctrl (invert) held.
5257
5369
  */
5258
- readonly getKey?: (item: T) => string | undefined;
5370
+ onCommit: (finalSet: ReadonlySet<T>, info: {
5371
+ additive: boolean;
5372
+ }) => void;
5373
+ /** Optional: scroll the surface when the pointer nears an edge during a drag. */
5374
+ autoScroll?: (dx: number, dy: number) => void;
5375
+ /**
5376
+ * Optional predicate called on pointerdown before the controller records its
5377
+ * pointer id or later calls setPointerCapture/preventDefault. Return false
5378
+ * to yield to another gesture (e.g. native item drag).
5379
+ */
5380
+ shouldStart?: (event: PointerEvent) => boolean;
5381
+ };
5382
+ type DragHost$1 = ReactiveControllerHost & HTMLElement;
5383
+ /**
5384
+ * Shared pointer-drag (marquee / rubber-band) selection for list components.
5385
+ *
5386
+ * Owns all pointer plumbing and rectangle state; knows nothing about DOM
5387
+ * geometry or the selection model — those are host callbacks. Mirrors the
5388
+ * `TickledController` attach pattern (`new ListDragSelectController(this, …)`).
5389
+ *
5390
+ * Behaviour: `pointerdown` on the surface records a start point; once the
5391
+ * pointer moves past `threshold`, the surface captures the pointer and every
5392
+ * move recomputes the rect, hit-tests, and calls `onPreview`. On release the
5393
+ * final set is delivered once via `onCommit`. A press that never crosses the
5394
+ * threshold does nothing (the normal `@click` path runs).
5395
+ */
5396
+ declare class ListDragSelectController<T> implements ReactiveController {
5397
+ #private;
5398
+ constructor(host: DragHost$1, config: ListDragSelectControllerConfig<T>);
5399
+ /** `true` while a drag is in progress or its trailing click is still pending. */
5400
+ get isDragging(): boolean;
5401
+ /** `true` once the press has crossed the threshold and a rect is live. */
5402
+ get isActive(): boolean;
5403
+ hostConnected(): void;
5404
+ hostDisconnected(): void;
5405
+ /** Re-bind when the surface element appears/changes (e.g. first render). */
5406
+ hostUpdated(): void;
5407
+ }
5408
+ //#endregion
5409
+ //#region src/interaction/list-item-animation.d.ts
5410
+ /**
5411
+ * Shared insertion / removal animation for the list & tree components.
5412
+ *
5413
+ * Two flavours, because the components split into two layout families:
5414
+ *
5415
+ * - **Flow layouts** (`ixfx-vertical-list`, `ixfx-detail-list`, `ixfx-tree-*`) —
5416
+ * rows sit in normal flow, so a new row can collapse in from zero height and a
5417
+ * leaving row can collapse back to zero, and the rows around it slide to make
5418
+ * or close the gap for free. Use {@link animateListItemIn} /
5419
+ * {@link animateListItemOut} (Web Animations API, exact measured sizes).
5420
+ *
5421
+ * - **Virtualised layouts** (`ixfx-grid-list`, `ixfx-data-grid`) — rows are
5422
+ * absolutely positioned (`transform` / `top`), so collapsing a row's box moves
5423
+ * nothing. Those components instead fade the entering / leaving row with the
5424
+ * {@link listItemFadeKeyframes} keyframes and slide the survivors by
5425
+ * transitioning their position for a short window after the change.
5426
+ *
5427
+ * Everything here is a no-op under `prefers-reduced-motion: reduce`.
5428
+ */
5429
+ /** Default duration (ms) for both flavours; overridable per call / per component. */
5430
+ declare const LIST_ITEM_MOTION_MS = 200;
5431
+ declare function prefersReducedMotion(): boolean;
5432
+ /**
5433
+ * Opacity keyframes for the virtualised components. Each one adds its own
5434
+ * one-line rule binding `.<row>.ixfx-item-entering` / `.ixfx-item-leaving` to
5435
+ * these, plus a `prefers-reduced-motion` guard on its own selectors.
5436
+ */
5437
+ declare const listItemFadeKeyframes: CSSResult;
5438
+ interface ListItemMotionOptions {
5439
+ /**
5440
+ * Animation duration in ms. When omitted, the element's
5441
+ * `--ixfx-list-item-move-duration` custom property is used if set (accepts
5442
+ * `ms` or `s`), otherwise {@link LIST_ITEM_MOTION_MS}.
5443
+ */
5444
+ duration?: number;
5445
+ /** Which axis collapses — `block` (height, default) or `inline` (width). */
5446
+ axis?: `block` | `inline`;
5447
+ easing?: string;
5448
+ }
5449
+ /**
5450
+ * Collapse + fade `el` in from nothing to its natural size. Call it just after
5451
+ * the element has been inserted (it must already be laid out at full size so it
5452
+ * can be measured). No-op under reduced motion.
5453
+ */
5454
+ declare function animateListItemIn(el: HTMLElement, options?: ListItemMotionOptions): Animation | undefined;
5455
+ /**
5456
+ * Result of {@link animateListItemOut}: a promise that resolves once the
5457
+ * animation finishes, carrying the underlying `Animation` handle (if any) so
5458
+ * callers can `cancel()` superseded work. Awaiting / `.then()` behaves like
5459
+ * the previous `Promise<void>` return type.
5460
+ */
5461
+ type ListItemOutResult = Promise<void> & {
5462
+ /** The running collapse animation, or `undefined` under reduced motion / zero size. */
5463
+ animation: Animation | undefined;
5464
+ };
5465
+ /**
5466
+ * Start the collapse + fade-out animation for `el` and return the handle.
5467
+ * Returns `undefined` when no animation was started (reduced motion or zero
5468
+ * size). The caller owns the handle and must `cancel()` it if the removal is
5469
+ * reversed — a retained `fill: forwards` frame otherwise keeps overriding the
5470
+ * element's ordinary CSS indefinitely.
5471
+ */
5472
+ declare function startListItemOutAnimation(el: HTMLElement, options?: ListItemMotionOptions): Animation | undefined;
5473
+ /**
5474
+ * Collapse + fade `el` out. Resolves once the animation finishes (or straight
5475
+ * away under reduced motion); the caller detaches the element after. The final
5476
+ * collapsed state is held (`fill: forwards`) so there's no flash back to full
5477
+ * size in the gap before removal.
5478
+ *
5479
+ * The returned promise carries an `.animation` handle. If the removal is
5480
+ * reversed (the same key becomes visible again), cancel that handle so its
5481
+ * filled final frame stops overriding the reused element's style.
5482
+ */
5483
+ declare function animateListItemOut(el: HTMLElement, options?: ListItemMotionOptions): ListItemOutResult;
5484
+ //#endregion
5485
+ //#region src/interaction/list-native-drag-controller.d.ts
5486
+ type ListNativeDragControllerConfig<T> = {
5487
+ readonly source: ListDragSource;
5488
+ /** `itemsDraggable && selection usable` */
5489
+ isEnabled: () => boolean;
5490
+ /** Event target → item key, or `undefined` when the drag did not start on an item. */
5491
+ resolveEventToKey: (target: EventTarget | null) => string | undefined;
5492
+ /**
5493
+ * Apply the origin rule (origin ∉ selection ⇒ replace with origin); return
5494
+ * display-ordered `{ origin, selected }` for both modes, or `undefined` when
5495
+ * the origin is not selectable.
5496
+ */
5497
+ prepareSelection: (originKey: string) => {
5498
+ origin: ListDragEntry<T>;
5499
+ selected: Array<ListDragEntry<T>>;
5500
+ } | undefined;
5501
+ getMetrics: () => ListDragPreviewContext<T>[`metrics`];
5502
+ getRenderer: () => ListDragPreviewRenderer<T> | undefined;
5503
+ /** Fire the cancelable `list-native-drag-start`; return `!defaultPrevented`. */
5504
+ dispatch: (detail: ListNativeDragStartDetail<T>) => boolean;
5505
+ /**
5506
+ * Optional: write custom payloads onto the drag's `DataTransfer` (e.g. a
5507
+ * MIME type for same-app drops). Called once, after a non-cancelled dispatch,
5508
+ * inside the synchronous `dragstart` turn.
5509
+ */
5510
+ writeDataTransfer?: (dataTransfer: DataTransfer, detail: ListNativeDragStartDetail<T>) => void;
5511
+ /** Host toggles `data-native-dragging` / `aria-label`, re-renders. */
5512
+ onActiveChange: (active: boolean, originKey?: string) => void;
5513
+ /** Host clears state + starts its post-drag click-suppress timer. */
5514
+ onEnd: () => void;
5515
+ /** Optional: sync `draggable` on light-DOM / slotted children while enabled. */
5516
+ syncLightDomDraggable?: () => void;
5517
+ };
5518
+ type DragHost = ReactiveControllerHost & HTMLElement;
5519
+ /**
5520
+ * Shared native item/row drag-out for list components.
5521
+ *
5522
+ * Owns capture-phase `dragstart` / `dragend` listeners on the host and its
5523
+ * render root, a `MutationObserver` that keeps light-DOM / slotted item `draggable`
5524
+ * attributes in sync, and a single post-dispatch disposal on
5525
+ * `requestAnimationFrame`. All DOM / selection knowledge lives in the host
5526
+ * config callbacks.
5527
+ */
5528
+ declare class ListNativeDragController<T> implements ReactiveController {
5529
+ #private;
5530
+ constructor(host: DragHost, config: ListNativeDragControllerConfig<T>);
5531
+ get isDragging(): boolean;
5532
+ /** `"true"` when enabled, else `"false"` — for shadow-row template bindings. */
5533
+ get draggableAttr(): string;
5534
+ /** Re-run the light-DOM `draggable` sync (e.g. after `itemsDraggable` flips). */
5535
+ refreshDraggable(): void;
5536
+ hostConnected(): void;
5537
+ /** `renderRoot` does not exist yet at `hostConnected` for a shadow-DOM host — rebind once it does. */
5538
+ hostUpdated(): void;
5539
+ hostDisconnected(): void;
5540
+ }
5541
+ //#endregion
5542
+ //#region src/interaction/list-selection-controller.d.ts
5543
+ /** Modifier state needed to route a click gesture per interaction mode. */
5544
+ type ListSelectionGesture = {
5545
+ readonly ctrlKey: boolean;
5546
+ readonly metaKey: boolean;
5547
+ readonly shiftKey: boolean;
5548
+ };
5549
+ type ListSelectionModes = {
5550
+ readonly selectionMode: ListSelectionMode;
5551
+ readonly interactionMode: ListInteractionMode;
5552
+ };
5553
+ /**
5554
+ * Configuration supplied by the host component.
5555
+ *
5556
+ * The controller owns selection *state* only — everything DOM- or
5557
+ * component-specific is expressed through these callbacks.
5558
+ */
5559
+ type ListSelectionControllerConfig<T> = {
5560
+ /** Visible items in navigation order — used for range selection and select-all. */
5561
+ readonly getOrderedItems: () => readonly T[];
5562
+ /** Whether an item may join the selection (e.g. reject `not-checked` rows). */
5563
+ readonly isSelectable: (item: T) => boolean;
5564
+ /** Current modes; read on every gesture so property changes apply immediately. */
5565
+ readonly getModes: () => ListSelectionModes;
5566
+ /**
5567
+ * Fired after every selection change. The host syncs DOM state
5568
+ * (`data-selected` / `data-checked`), dispatches `list-select`, and
5569
+ * requests an update.
5570
+ */
5571
+ readonly onChange: (selected: ReadonlySet<T>, previous: ReadonlySet<T>) => void;
5572
+ /**
5573
+ * Optional: derive a stable string key for an item. Enables `selectedKeys`
5574
+ * and `selectKeys()`. When omitted, `selectedKeys` is always empty.
5575
+ */
5576
+ readonly getKey?: (item: T) => string | undefined;
5259
5577
  };
5260
5578
  /** Whether the interaction mode allows building a multi-item selection. */
5261
5579
  declare function isMultiMode(mode: ListInteractionMode): boolean;
@@ -5590,6 +5908,189 @@ declare class TickledController<T = number> implements ReactiveController {
5590
5908
  setInputMode(mode: InputMode): void;
5591
5909
  }
5592
5910
  //#endregion
5911
+ //#region src/interaction/tickled-styles.d.ts
5912
+ /**
5913
+ * Shared CSS styles for tickled interaction pattern.
5914
+ *
5915
+ * Tickled state is controlled via the `.tickled` CSS class (applied by TickledController).
5916
+ * The `tickledItemStyles` provides base styling that all tickled components should use.
5917
+ *
5918
+ * ## CSS Variable Contract
5919
+ *
5920
+ * **Style variables** — `tickledItemStyles` only consumes these via `var()`; it
5921
+ * defines no defaults itself. Fallback values (used when no theme CSS is loaded)
5922
+ * are registered in `themeFallbacks` (`../styles/fallbacks.ts`) and mirror the
5923
+ * documented base theme in `user-theming.md`:
5924
+ * - `--item-bg`, `--item-bg-tickled`, `--item-bg-selected`, `--item-bg-selected-tickled`
5925
+ * - `--item-border`, `--item-border-tickled`, `--item-border-selected` (full border shorthands, not colours)
5926
+ * - `--item-text-tickled`, `--item-text-selected`
5927
+ * - `--item-padding`, `--item-border-radius`, `--item-icon-spacing`
5928
+ *
5929
+ * ## Usage
5930
+ *
5931
+ * Components should import both `tickledStyles` and `tickledItemStyles`:
5932
+ *
5933
+ * ```ts
5934
+ * import { tickledStyles, tickledItemStyles } from '../interaction/index.js';
5935
+ *
5936
+ * class MyComponent extends LitElement {
5937
+ * static styles = [
5938
+ * tickledStyles,
5939
+ * tickledItemStyles,
5940
+ * css`
5941
+ * :host {
5942
+ * --item-bg-tickled: #e0e0e0;
5943
+ * --item-bg-selected: #1976d2;
5944
+ * }
5945
+ * `
5946
+ * ];
5947
+ * }
5948
+ * ```
5949
+ */
5950
+ declare const tickledStyles: CSSResult;
5951
+ /**
5952
+ * Shared item styling for tickled components.
5953
+ *
5954
+ * Provides base styles for interactive items with tickled and selected states.
5955
+ * Components should import this in addition to `tickledStyles` and can override
5956
+ * CSS variables to customize appearance.
5957
+ */
5958
+ declare const tickledItemStyles: CSSResult;
5959
+ //#endregion
5960
+ //#region src/interaction/tree-keyboard-controller.d.ts
5961
+ type TreeKeyboardNavItemId = string;
5962
+ type TreeKeyboardNavCallbacks = {
5963
+ getItems: () => ReadonlyArray<TickledItem<TreeKeyboardNavItemId>>;
5964
+ onExpand: (id: TreeKeyboardNavItemId) => void;
5965
+ onCollapse: (id: TreeKeyboardNavItemId) => void;
5966
+ onActivate: (id: TreeKeyboardNavItemId) => void;
5967
+ onSelect?: (id: TreeKeyboardNavItemId) => void;
5968
+ onEscape?: () => void;
5969
+ isLeaf: (id: TreeKeyboardNavItemId) => boolean;
5970
+ isExpanded: (id: TreeKeyboardNavItemId) => boolean;
5971
+ getParentId?: (id: TreeKeyboardNavItemId) => TreeKeyboardNavItemId | undefined;
5972
+ };
5973
+ type TreeKeyboardNavControllerConfig = {
5974
+ callbacks: TreeKeyboardNavCallbacks;
5975
+ disableKeyboardNavigation?: () => boolean;
5976
+ };
5977
+ declare class TreeKeyboardNavController implements ReactiveController {
5978
+ #private;
5979
+ private host;
5980
+ private tickled;
5981
+ private callbacks;
5982
+ private disableKeyboardNavigation;
5983
+ constructor(host: ReactiveControllerHost, tickled: TickledController<TreeKeyboardNavItemId>, config: TreeKeyboardNavControllerConfig);
5984
+ hostConnected(): void;
5985
+ hostDisconnected(): void;
5986
+ handleKeyDown: (event: KeyboardEvent) => void;
5987
+ }
5988
+ //#endregion
5989
+ //#region src/grid-list/types.d.ts
5990
+ /**
5991
+ * Adapter for data-backed grid list mode.
5992
+ * @param T The type of data item.
5993
+ */
5994
+ type GridListDataAdapter<T> = {
5995
+ key: (item: T, index: number) => string;
5996
+ label?: (item: T, index: number) => string;
5997
+ render: (item: T, index: number) => unknown;
5998
+ disabled?: (item: T, index: number) => boolean;
5999
+ searchableText?: (item: T, index: number) => string;
6000
+ };
6001
+ /**
6002
+ * Common detail for per-item events (activate, click, tickle), key-first in
6003
+ * BOTH element and data modes. `item` is the backward-compat field — Element in
6004
+ * element mode, T in data mode.
6005
+ */
6006
+ type GridListItemEventDetail<T = unknown> = {
6007
+ readonly key: string;
6008
+ readonly index: number;
6009
+ readonly item: T | Element;
6010
+ readonly element: Element | undefined;
6011
+ };
6012
+ /**
6013
+ * How the caption relates to the cell's content.
6014
+ * - `hidden`: no caption is rendered.
6015
+ * - `separate`: content sits in a square; the caption is a detached label
6016
+ * below it. Square and caption are highlighted separately, like macOS
6017
+ * Finder icon view.
6018
+ * - `under` (default): the whole cell is one box — content on top, caption in
6019
+ * its own strip below it, inside the same box. One selection outline.
6020
+ * - `overlaid`: the caption floats on top of the content (see
6021
+ * `GridListCaptionPosition` / `GridListCaptionBackdrop`).
6022
+ */
6023
+ type GridListCaptionStyle = `hidden` | `separate` | `under` | `overlaid`;
6024
+ /** Horizontal alignment of caption text (`middle` is the default). */
6025
+ type GridListCaptionAlign = `left` | `middle` | `right`;
6026
+ /** Vertical placement of an `overlaid` caption (`bottom` is the default). */
6027
+ type GridListCaptionPosition = `top` | `middle` | `bottom`;
6028
+ /**
6029
+ * Backdrop behind an `overlaid` caption.
6030
+ * - `scrim` (default): flat translucent panel.
6031
+ * - `gradient`: translucent gradient fading away from the caption edge.
6032
+ * - `blur`: frosted / backdrop-blurred panel.
6033
+ * - `none`: no panel — caption text only, with a shadow for legibility.
6034
+ */
6035
+ type GridListCaptionBackdrop = `scrim` | `gradient` | `blur` | `none`;
6036
+ /**
6037
+ * Layout / scroll direction.
6038
+ * - `grid` (default): items wrap across as many columns as fit and the list
6039
+ * scrolls vertically.
6040
+ * - `row`: a single row of items that scrolls horizontally.
6041
+ * - `column`: a single column of items that scrolls vertically.
6042
+ */
6043
+ type GridListOrientation = `grid` | `row` | `column`;
6044
+ interface GridListSelectDetail {
6045
+ readonly selected: ReadonlySet<Element>;
6046
+ readonly previous: ReadonlySet<Element>;
6047
+ readonly selectedKeys: ReadonlySet<string>;
6048
+ readonly previousKeys: ReadonlySet<string>;
6049
+ }
6050
+ type GridListSelectEvent = CustomEvent<GridListSelectDetail>;
6051
+ /**
6052
+ * `item` is the backward-compatible field: the light-DOM `Element` in element
6053
+ * mode, the data value `T` in data mode. Use `element` when you specifically
6054
+ * need the DOM node (`undefined` in data mode). `key` / `index` are the stable
6055
+ * contract in both modes.
6056
+ */
6057
+ interface GridListActivateDetail {
6058
+ readonly item: unknown;
6059
+ readonly key: string;
6060
+ readonly index: number;
6061
+ readonly element: Element | undefined;
6062
+ }
6063
+ type GridListActivateEvent = CustomEvent<GridListActivateDetail>;
6064
+ interface GridListItemClickDetail {
6065
+ readonly item: unknown;
6066
+ readonly key: string;
6067
+ readonly index: number;
6068
+ readonly element: Element | undefined;
6069
+ }
6070
+ type GridListItemClickEvent = CustomEvent<GridListItemClickDetail>;
6071
+ interface GridListTickleDetail {
6072
+ readonly item: unknown;
6073
+ readonly key: string;
6074
+ readonly index: number;
6075
+ readonly element: Element | undefined;
6076
+ }
6077
+ type GridListTickleEvent = CustomEvent<GridListTickleDetail>;
6078
+ interface GridListElementEventMap {
6079
+ 'list-select': GridListSelectEvent;
6080
+ 'list-activate': GridListActivateEvent;
6081
+ 'list-item-click': GridListItemClickEvent;
6082
+ 'list-tickle': GridListTickleEvent;
6083
+ }
6084
+ type GridListViewportChangeDetail = {
6085
+ readonly renderedKeys: string[];
6086
+ readonly visibleKeys: string[];
6087
+ };
6088
+ type GridListViewportChangeEvent = CustomEvent<GridListViewportChangeDetail>;
6089
+ interface GridListFullElementEventMap extends GridListElementEventMap {
6090
+ 'grid-list-viewport-change': GridListViewportChangeEvent;
6091
+ 'list-native-drag-start': ListNativeDragStartEvent;
6092
+ }
6093
+ //#endregion
5593
6094
  //#region src/pan-text/pan-text.d.ts
5594
6095
  type PanTextMode = `hover` | `loop`;
5595
6096
  declare class PanTextElement extends LitElement {
@@ -5714,9 +6215,16 @@ declare class GridListElement<T = unknown> extends LitElement {
5714
6215
  /**
5715
6216
  * Enable native browser drag-and-drop for selectable items. When true,
5716
6217
  * selectable cells become draggable and the grid emits
5717
- * `grid-list-native-drag-start` when a drag begins.
6218
+ * `list-native-drag-start` when a drag begins.
5718
6219
  */
5719
6220
  itemsDraggable: boolean;
6221
+ /**
6222
+ * Custom drag preview renderer. Receives the selection snapshot and returns
6223
+ * an element for `DataTransfer.setDragImage()` plus an optional pre-painted
6224
+ * canvas for native hosts. Synchronous by contract — pre-decode thumbnails
6225
+ * as selection changes. Defaults to the shared built-in preview.
6226
+ */
6227
+ dragPreviewRenderer: ListDragPreviewRenderer<T> | undefined;
5720
6228
  searchModes: string | undefined;
5721
6229
  /**
5722
6230
  * Data items for data-backed mode. When set along with `itemAdapter`, the
@@ -6027,6 +6535,21 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
6027
6535
  * disabled. See `docs/infra-incremental.md`.
6028
6536
  */
6029
6537
  searchModes: string | undefined;
6538
+ itemDnd: TreeDndMode;
6539
+ acceptDropTypes: string | undefined;
6540
+ dndExpandHoverMs: number;
6541
+ /**
6542
+ * Whether a drag that only reorders siblings (no dragged node changes parent)
6543
+ * is honoured. Default `true`. Set `reorderable="false"` for models with no
6544
+ * meaningful child order (e.g. a filesystem) — pure-reorder drags then get no
6545
+ * drop indicator and emit no `tree-drop`. Reparenting is unaffected.
6546
+ */
6547
+ reorderable: boolean;
6548
+ dragPreviewRenderer: ListDragPreviewRenderer<TreeNode> | undefined;
6549
+ canDrag: ((ctx: TreeDragContext) => boolean) | undefined;
6550
+ canDrop: ((ctx: TreeDropContext) => boolean) | undefined;
6551
+ parseExternalDrop: ((dt: DataTransfer) => TreeNode[] | undefined) | undefined;
6552
+ applyInternalDrop: boolean;
6030
6553
  protected _expandedKeys: Set<string>;
6031
6554
  protected tickled: TickledController<string>;
6032
6555
  protected _focusedDepth: number;
@@ -6035,6 +6558,10 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
6035
6558
  node: TreeNode;
6036
6559
  depth: number;
6037
6560
  }>;
6561
+ protected get nativeDrag(): ListNativeDragController<TreeNode>;
6562
+ protected get dropState(): TreeDropTarget | undefined;
6563
+ /** Keys of the nodes currently being dragged out of this tree. */
6564
+ protected get nativeDragKeys(): ReadonlySet<string>;
6038
6565
  willUpdate(changedProps: PropertyValues): void;
6039
6566
  /** True while `node` is a fading ghost row (removed / collapsed, still animating out). */
6040
6567
  protected _isLeaving(node: TreeNode): boolean;
@@ -6072,6 +6599,14 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
6072
6599
  protected get _pendingNode(): TreeNode | undefined;
6073
6600
  protected renderLoadingIndicator(): TemplateResult | typeof nothing;
6074
6601
  protected render(): TemplateResult<1>;
6602
+ /** Shared drag-and-drop render state for a row, used by every `_renderNode` variant. */
6603
+ protected _dndRowState(node: TreeNode): {
6604
+ draggable: boolean;
6605
+ dragging: boolean;
6606
+ dropTarget: boolean;
6607
+ dropPosition?: TreeDropTarget[`position`];
6608
+ dropDepth?: number;
6609
+ };
6075
6610
  protected _renderNode(node: TreeNode, depth: number): TemplateResult;
6076
6611
  static styles: CSSResult[];
6077
6612
  }
@@ -6088,6 +6623,11 @@ interface TreeBaseElementEventMap extends TreeComponentEventMap {
6088
6623
  'select': TreeSelectEvent;
6089
6624
  'tickle': TreeTickleEvent;
6090
6625
  'activate': TreeActivateEvent;
6626
+ 'list-native-drag-start': CustomEvent<ListNativeDragStartDetail<TreeNode>>;
6627
+ 'tree-drag-start': TreeDragStartEvent;
6628
+ 'tree-drag-over': TreeDragOverEvent;
6629
+ 'tree-drop': TreeDropEvent;
6630
+ 'tree-drag-end': TreeDragEndEvent;
6091
6631
  }
6092
6632
  interface TreeBaseElement {
6093
6633
  addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
@@ -6412,251 +6952,6 @@ declare function setIconFont(fontFamily: string): void;
6412
6952
  declare function getIconFont(): string | undefined;
6413
6953
  declare function svgToDataUri(svg: string): string;
6414
6954
  //#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
6955
  //#region src/radial-input/types.d.ts
6661
6956
  /**
6662
6957
  * Type definitions for radial input component
@@ -9223,6 +9518,71 @@ declare class TreeController<T> {
9223
9518
  navigateToValue(predicate: (value: T) => boolean): boolean;
9224
9519
  }
9225
9520
  //#endregion
9521
+ //#region src/tree/tree-drop-controller.d.ts
9522
+ interface TreeDropVisibleRow {
9523
+ readonly key: string;
9524
+ readonly node: TreeNode;
9525
+ readonly depth: number;
9526
+ readonly rect: DOMRect;
9527
+ }
9528
+ /** What a `dragover` / `drop` DataTransfer resolved to for this tree. */
9529
+ interface TreeDropResolvedDrag {
9530
+ readonly source: `internal` | `external`;
9531
+ /** Keys of the dragged nodes (empty for external). */
9532
+ readonly keys: readonly string[];
9533
+ /** The dragged nodes — live nodes for internal, parsed payload for external. */
9534
+ readonly nodes: readonly TreeNode[];
9535
+ }
9536
+ type TreeDropControllerConfig = {
9537
+ getDndMode: () => `none` | `internal` | `external` | `both`;
9538
+ getExpandHoverMs: () => number;
9539
+ /** Visible rows in display order, each with a fresh viewport rect. Host may cache. */
9540
+ getVisibleRows: () => TreeDropVisibleRow[];
9541
+ getIndentPx: () => number;
9542
+ getScrollContainer: () => HTMLElement | undefined;
9543
+ /** True when `key` is `ancestorKey` or a descendant of it. */
9544
+ isSelfOrDescendant: (ancestorKey: string, key: string) => boolean;
9545
+ /** True when the node is currently expanded in the UI. */
9546
+ isExpanded: (key: string) => boolean;
9547
+ /**
9548
+ * When `false`, an internal drop that would not change any dragged node's
9549
+ * parent (pure sibling reorder, or dropping back into the current parent) is
9550
+ * rejected outright — no indicator, no `tree-drop`.
9551
+ */
9552
+ isReorderAllowed: () => boolean;
9553
+ /** Current parent key of `key`, or `undefined` for a root-level node. */
9554
+ getParentKey: (key: string) => string | undefined;
9555
+ /**
9556
+ * Decide whether this DataTransfer is acceptable and resolve the dragged set.
9557
+ * `phase` is `hover` during dragenter/dragover (DataTransfer is read-protected —
9558
+ * resolve internal drags from the drag registry) and `drop` during drop
9559
+ * (getData is readable; external payloads may be parsed here). Return
9560
+ * `undefined` to reject (the tree will not become a drop target).
9561
+ */
9562
+ resolveDrag: (dataTransfer: DataTransfer, phase: `hover` | `drop`) => TreeDropResolvedDrag | undefined;
9563
+ vet: (ctx: TreeDropContext) => boolean;
9564
+ expandKey: (key: string) => void;
9565
+ /** Fired whenever the resolved drop target changes (undefined = none / rejected). */
9566
+ onDropStateChange: (state: TreeDropTarget | undefined) => void;
9567
+ /** Fired when a drag enters / leaves this tree. */
9568
+ onActiveChange: (active: boolean) => void;
9569
+ commitDrop: (detail: TreeDropDetail) => boolean;
9570
+ onDragEnd: (dropped: boolean) => void;
9571
+ };
9572
+ declare class TreeDropController implements ReactiveController {
9573
+ #private;
9574
+ constructor(host: ReactiveControllerHost & HTMLElement, config: TreeDropControllerConfig);
9575
+ /** A drag is currently over this tree. */
9576
+ get isDragging(): boolean;
9577
+ /** A drag is over this tree but the current position is not a valid drop. */
9578
+ get isRejected(): boolean;
9579
+ get dropState(): TreeDropTarget | undefined;
9580
+ hostConnected(): void;
9581
+ /** Bind once the shadow `#container` exists (it does not yet at `hostConnected`). */
9582
+ hostUpdated(): void;
9583
+ hostDisconnected(): void;
9584
+ }
9585
+ //#endregion
9226
9586
  //#region src/twosplit-layout/split-layout.d.ts
9227
9587
  /**
9228
9588
  * Lays out two elements within a container, with a bar to resize them
@@ -9370,5 +9730,5 @@ interface XyPad {
9370
9730
  //#region src/index.d.ts
9371
9731
  declare function init(): void;
9372
9732
  //#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 };
9733
+ 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, TreeDndMode, TreeDragContext, TreeDragEndEvent, TreeDragOverEvent, TreeDragStartEvent, TreeDropApplyContext, TreeDropContext, TreeDropController, TreeDropControllerConfig, TreeDropDetail, TreeDropEvent, TreeDropPosition, TreeDropResolvedDrag, TreeDropTarget, TreeDropVisibleRow, 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, applyTreeDrop, 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, dropTargetFor, 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, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
9374
9734
  //# sourceMappingURL=index.d.ts.map