@ixfx/components 0.15.4 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/bundle/index.d.ts +1223 -48
  2. package/bundle/index.js +875 -700
  3. package/dist/ac-text.d.ts +1 -1
  4. package/dist/{ac-token-Cq7lsYf-.d.ts → ac-token-qEs3FsQv.d.ts} +1 -1
  5. package/dist/ac-token.d.ts +1 -1
  6. package/dist/colour-picker.d.ts +1 -1
  7. package/dist/crumb-navigation-BbqfmkYs.d.ts +147 -0
  8. package/dist/crumb-navigation-YnFVFqrx.js +1290 -0
  9. package/dist/crumbs.d.ts +2 -115
  10. package/dist/crumbs.js +1 -1179
  11. package/dist/{data-grid-CbiubdG2.d.ts → data-grid-CIG2DVip.d.ts} +58 -9
  12. package/dist/{data-grid-Dx3l3dxw.js → data-grid-rMkLX2qo.js} +630 -215
  13. package/dist/data-grid.d.ts +3 -3
  14. package/dist/data-grid.js +1 -1
  15. package/dist/{detail-list-ClkMV0SN.d.ts → detail-list-6iMTNP4N.d.ts} +35 -5
  16. package/dist/{detail-list-q8bs67BM.js → detail-list-C4pDSoI8.js} +218 -7
  17. package/dist/detail-list.d.ts +4 -4
  18. package/dist/detail-list.js +1 -1
  19. package/dist/{flat-list-0xTZdXzh.d.ts → flat-list-JPgQSmLW.d.ts} +28 -5
  20. package/dist/flat-list.d.ts +2 -2
  21. package/dist/flat-list.js +123 -4
  22. package/dist/{grid-list-y6dWJYu3.js → grid-list-CdEkScn-.js} +276 -75
  23. package/dist/{grid-list-BnWJUIBC.d.ts → grid-list-D6n7WH8l.d.ts} +128 -22
  24. package/dist/grid-list.d.ts +3 -3
  25. package/dist/grid-list.js +1 -1
  26. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +1 -1
  27. package/dist/grouped-item-lister.d.ts +1 -1
  28. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +1 -1
  29. package/dist/icons.d.ts +2 -2
  30. package/dist/incr-search.d.ts +1 -1
  31. package/dist/index-9ttcdwlL.d.ts +71 -0
  32. package/dist/{index-BAuqR9El.d.ts → index-Bx0BXPxI.d.ts} +52 -6
  33. package/dist/index-CYRc6Dah.d.ts +475 -0
  34. package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +1 -1
  35. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +1 -1
  36. package/dist/{index-Bz3loIAf.d.ts → index-DN2BWctP.d.ts} +1 -1
  37. package/dist/{index-BPTuCRGb.d.ts → index-Dr80Zdl6.d.ts} +2 -2
  38. package/dist/{index-cnaRPQPp.d.ts → index-DxyyVqzA.d.ts} +2 -2
  39. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +1 -1
  40. package/dist/index.d.ts +380 -33
  41. package/dist/index.js +2247 -866
  42. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +1 -1
  43. package/dist/labelled-radial-input.d.ts +2 -2
  44. package/dist/labelled-range-input.d.ts +1 -1
  45. package/dist/labelled-slider-input.d.ts +1 -1
  46. package/dist/list-group-header.d.ts +1 -1
  47. package/dist/{list-native-drag-controller-O2Nruqpi.d.ts → list-native-drag-controller-D_UrXipS.d.ts} +1 -1
  48. package/dist/{list-selection-controller-BeE70lbB.js → list-selection-controller-5L0Nj9tR.js} +87 -2
  49. package/dist/{menu-item-B0zqw2xp.d.ts → menu-item-bF6narIz.d.ts} +1 -1
  50. package/dist/menu.d.ts +2 -2
  51. package/dist/miller-BFRfn0ve.js +2237 -0
  52. package/dist/miller.d.ts +4 -437
  53. package/dist/miller.js +1 -1815
  54. package/dist/panel.d.ts +1 -1
  55. package/dist/pending-BGidHppL.js +91 -0
  56. package/dist/scroll-hover-guard-Cjw6179Q.js +35 -0
  57. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-CophkNeU.d.ts} +42 -4
  58. package/dist/{split-layout-Deoxy47d.js → split-layout-DTY4PJRp.js} +251 -19
  59. package/dist/split-layout.d.ts +1 -1
  60. package/dist/split-layout.js +1 -1
  61. package/dist/sunburst-tree.d.ts +2 -0
  62. package/dist/sunburst-tree.js +2 -0
  63. package/dist/sunbursttree-list-B_VxOHlo.js +1556 -0
  64. package/dist/sunbursttree-list-D6j5BxVQ.d.ts +303 -0
  65. package/dist/{tab-list-wC0xNz1b.d.ts → tab-list-Df371rqw.d.ts} +1 -1
  66. package/dist/tabs.d.ts +1 -1
  67. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +1 -1
  68. package/dist/titlebar.d.ts +1 -1
  69. package/dist/tree-CftHwtEb.js +146 -0
  70. package/dist/{tree-D8VxvR9u.js → tree-Crdpl4nc.js} +275 -47
  71. package/dist/{tree-component-C6UHO-w9.d.ts → tree-component-DgfkxmVY.d.ts} +19 -8
  72. package/dist/tree.d.ts +3 -3
  73. package/dist/tree.js +1 -1
  74. package/dist/types-LU1u0CB8.d.ts +87 -0
  75. package/dist/vertical-list-1V1Vg2O5.js +1993 -0
  76. package/dist/{vertical-list-B8FoU-pU.d.ts → vertical-list-BPDmZx6T.d.ts} +31 -3
  77. package/dist/vertical-list.d.ts +3 -3
  78. package/dist/vertical-list.js +1 -1789
  79. package/dist/view-state-controller-BdyXWUUM.js +305 -0
  80. package/docs-user/README.md +3 -0
  81. package/docs-user/crumbs.md +27 -0
  82. package/docs-user/data-grid.md +77 -5
  83. package/docs-user/detail-list.md +54 -0
  84. package/docs-user/dock.md +54 -12
  85. package/docs-user/flat-list.md +27 -0
  86. package/docs-user/grid-list.md +64 -11
  87. package/docs-user/hyperbolic-tree.md +31 -4
  88. package/docs-user/icicle-tree.md +36 -0
  89. package/docs-user/index.json +17 -2
  90. package/docs-user/llms.txt +3 -0
  91. package/docs-user/miller.md +52 -21
  92. package/docs-user/multicol-list.md +50 -8
  93. package/docs-user/split-layout.md +45 -17
  94. package/docs-user/sunburst-tree.md +223 -0
  95. package/docs-user/tree.md +46 -7
  96. package/docs-user/treemap.md +32 -0
  97. package/docs-user/twosplit-layout.md +22 -0
  98. package/docs-user/user-catalog.md +1 -1
  99. package/docs-user/vertical-list.md +55 -7
  100. package/llms.txt +3 -0
  101. package/package.json +5 -1
package/bundle/index.d.ts CHANGED
@@ -2656,6 +2656,92 @@ declare class TreeDataModel {
2656
2656
  _subscribe(callback: ModelSubscriber): () => void;
2657
2657
  }
2658
2658
  //#endregion
2659
+ //#region src/common/view-state/types.d.ts
2660
+ /**
2661
+ * Shared view-state contract for list-like components.
2662
+ *
2663
+ * View state is everything about *how* a component is showing its data —
2664
+ * selection, expansion, scroll, column sizes — kept separate from the data
2665
+ * itself. It is plain JSON (arrays and records, never Sets or Maps) so a host
2666
+ * can `JSON.stringify` it straight into whatever storage it likes. Components
2667
+ * never persist it themselves; see `bindViewState()`.
2668
+ *
2669
+ * Every field is keyed by the stable item / column / group key, never by
2670
+ * index, so state can be re-applied to data that has been rebuilt, re-sorted
2671
+ * or streamed in over time. Keys the current data doesn't contain are kept
2672
+ * as pending and applied once a matching item appears.
2673
+ */
2674
+ /** Current schema version. Bump on breaking shape changes. */
2675
+ declare const VIEW_STATE_VERSION = 1;
2676
+ /** Name of the debounced change event every view-stateful component fires. */
2677
+ declare const VIEW_STATE_CHANGE = "view-state-change";
2678
+ /**
2679
+ * Where the viewport is scrolled to. `anchor` is the preferred form: the key
2680
+ * of the first visible item plus how far (px) the viewport top sits below
2681
+ * that item's start. It survives items being inserted above. `top` / `left`
2682
+ * are raw pixel offsets, used when there is no keyed item to anchor to.
2683
+ */
2684
+ type ScrollState = {
2685
+ readonly top: number;
2686
+ readonly left?: number;
2687
+ readonly anchor?: {
2688
+ readonly key: string;
2689
+ readonly offset: number;
2690
+ };
2691
+ };
2692
+ /** Fields shared by all view states. Components extend this with their own. */
2693
+ type ViewStateBase = {
2694
+ readonly v: typeof VIEW_STATE_VERSION;
2695
+ /** Component kind, e.g. `tree-list`. Mismatched states are ignored. */
2696
+ readonly kind: string;
2697
+ /** Selected item keys. In `checked` interaction modes this is the checked set. */
2698
+ readonly selected?: readonly string[];
2699
+ /** Keyboard cursor (tickled / focused item) key. */
2700
+ readonly focus?: string;
2701
+ readonly scroll?: ScrollState;
2702
+ /**
2703
+ * Explicit open/closed choices for expandable things (tree branches, groups),
2704
+ * keyed by item or group key. A missing key means "use the default".
2705
+ */
2706
+ readonly expanded?: Readonly<Record<string, boolean>>;
2707
+ };
2708
+ /**
2709
+ * What triggered a `view-state-change`:
2710
+ * - `user` — a direct interaction (click, key, drag, scroll)
2711
+ * - `data` — the data changed and the component adjusted (e.g. pruned focus)
2712
+ * - `restore` — pending state was applied to newly-arrived items, or `setViewState()` ran
2713
+ */
2714
+ type ViewStateChangeReason = `user` | `data` | `restore`;
2715
+ type ViewStateChangeDetail<S extends ViewStateBase = ViewStateBase> = {
2716
+ readonly state: S;
2717
+ readonly reason: ViewStateChangeReason;
2718
+ };
2719
+ type ViewStateChangeEvent<S extends ViewStateBase = ViewStateBase> = CustomEvent<ViewStateChangeDetail<S>>;
2720
+ type GetViewStateOptions<S extends ViewStateBase> = {
2721
+ /** Only include these fields (plus `v` and `kind`). Default: all. */
2722
+ readonly include?: ReadonlyArray<Exclude<keyof S, `v` | `kind`>>;
2723
+ /**
2724
+ * Include pending state for keys not (yet) present in the data. Default
2725
+ * `true` — leaving it out means a save made mid-rebuild overwrites the
2726
+ * stored state with a partial one.
2727
+ */
2728
+ readonly includePending?: boolean;
2729
+ };
2730
+ /** Implemented by every component that supports view-state snapshot / restore. */
2731
+ type ViewStateful<S extends ViewStateBase = ViewStateBase> = {
2732
+ /** Snapshot the current view state as plain JSON. */
2733
+ getViewState: (options?: GetViewStateOptions<S>) => S;
2734
+ /**
2735
+ * Apply a (possibly partial) view state. Only fields present are applied;
2736
+ * absent fields are left as they are. Keys not in the current data are kept
2737
+ * pending and applied when matching items appear. A state whose `kind` or
2738
+ * `v` doesn't match is ignored with a console warning.
2739
+ */
2740
+ setViewState: (state: Partial<S>) => void;
2741
+ /** Drop all pending (not-yet-matched) state. */
2742
+ clearPendingViewState: () => void;
2743
+ };
2744
+ //#endregion
2659
2745
  //#region src/common/tree-component.d.ts
2660
2746
  type TreeDndMode = `none` | `internal` | `external` | `both`;
2661
2747
  type TreeDropPosition = `before` | `after` | `inside`;
@@ -2794,6 +2880,11 @@ interface TreeComponentEventMap {
2794
2880
  'tree-drop': TreeDropEvent;
2795
2881
  'tree-drag-end': TreeDragEndEvent;
2796
2882
  }
2883
+ /** Options for `selectAll()` / `deselectAll()`. */
2884
+ type TreeSelectAllOptions = {
2885
+ /** Only act on rows that are showing (e.g. Ctrl+A), not those in collapsed branches. */
2886
+ readonly visibleOnly?: boolean;
2887
+ };
2797
2888
  /**
2798
2889
  * The common interface all tree-like components must implement.
2799
2890
  *
@@ -2807,7 +2898,12 @@ interface TreeComponentEventMap {
2807
2898
  * }
2808
2899
  * ```
2809
2900
  */
2810
- interface TreeComponent extends EventTarget {
2901
+ /**
2902
+ * Every tree component supports view-state snapshot / restore
2903
+ * (`getViewState` / `setViewState` / `clearPendingViewState`, see
2904
+ * `docs/infra-view-state.md`). Each narrows the state type with its own fields.
2905
+ */
2906
+ interface TreeComponent extends EventTarget, ViewStateful {
2811
2907
  /**
2812
2908
  * Root node of the tree.
2813
2909
  * Set this directly for static/fully-known trees.
@@ -2862,13 +2958,13 @@ interface TreeComponent extends EventTarget {
2862
2958
  /** Clear the entire selection. */
2863
2959
  clearSelection: () => void;
2864
2960
  /**
2865
- * Select all visible items.
2866
- * In `checked` mode, checks the checkbox of each visible node (recursively toggling descendants).
2867
- * In all other modes, adds every visible selectable node to the selection.
2961
+ * Select every selectable item — in tree components, including those inside
2962
+ * collapsed branches (only filter matches while a filter is active). Pass
2963
+ * `{ visibleOnly: true }` to limit it to the items showing.
2868
2964
  */
2869
- selectAll: () => void;
2870
- /** Deselect all items. In `checked` mode, unchecks each visible node. */
2871
- deselectAll: () => void;
2965
+ selectAll: (options?: TreeSelectAllOptions) => void;
2966
+ /** Mirror of `selectAll`: deselect the items it would select. */
2967
+ deselectAll: (options?: TreeSelectAllOptions) => void;
2872
2968
  /**
2873
2969
  * Expand ancestors and select the node reached by following `keys` from the root's children.
2874
2970
  * Returns `true` if the path was found and applied.
@@ -2934,12 +3030,207 @@ declare function applyTreeDrop(root: TreeNode, ctx: TreeDropApplyContext): TreeN
2934
3030
  /** Build a synthetic `TreeDropTarget` for programmatic moves (see `TreeDataModel`). */
2935
3031
  declare function dropTargetFor(referenceKey: string, position: TreeDropPosition, index?: number): TreeDropTarget;
2936
3032
  //#endregion
3033
+ //#region src/common/view-state/bind.d.ts
3034
+ type ViewStateBinding<S extends ViewStateBase> = {
3035
+ /** Return the previously saved state, or nothing. Called once, immediately. */
3036
+ readonly load: () => Partial<S> | null | undefined;
3037
+ /** Store the state. Called after debounced changes and on `pagehide`. */
3038
+ readonly save: (state: S) => void;
3039
+ /**
3040
+ * Also save changes caused by restoring (pending state being applied).
3041
+ * Default `false` — they only echo what `load()` returned.
3042
+ */
3043
+ readonly saveOnRestore?: boolean;
3044
+ };
3045
+ /** Whether `el` implements the view-state API. */
3046
+ declare function isViewStateful(el: unknown): el is ViewStateful & EventTarget;
3047
+ /**
3048
+ * Wire a component's view state to storage the host controls. Loads and
3049
+ * applies once, then saves on every `view-state-change` and when the page is
3050
+ * hidden. Returns a function that stops saving.
3051
+ *
3052
+ * ```ts
3053
+ * const stop = bindViewState(tree, {
3054
+ * load: () => JSON.parse(localStorage.getItem(`files`) ?? `null`),
3055
+ * save: s => localStorage.setItem(`files`, JSON.stringify(s)),
3056
+ * });
3057
+ * ```
3058
+ */
3059
+ declare function bindViewState<S extends ViewStateBase>(el: ViewStateful<S> & EventTarget, binding: ViewStateBinding<S>): () => void;
3060
+ //#endregion
3061
+ //#region src/common/view-state/pending.d.ts
3062
+ /**
3063
+ * Pure helpers for *pending* view state: keyed intent that is waiting for a
3064
+ * matching item to appear in the data.
3065
+ *
3066
+ * Pending sets / maps are insertion-ordered (oldest first) and capped so a
3067
+ * long-running app with churning data can't grow them without bound.
3068
+ */
3069
+ /** Default cap on pending keys per facet. Oldest entries are dropped first. */
3070
+ declare const MAX_PENDING_KEYS = 2000;
3071
+ type PendingKeys = ReadonlySet<string>;
3072
+ type PendingFlags = ReadonlyMap<string, boolean>;
3073
+ declare const EMPTY_KEYS: PendingKeys;
3074
+ declare const EMPTY_FLAGS: PendingFlags;
3075
+ /**
3076
+ * Split `keys` into those `has` reports present (to apply now) and those
3077
+ * still missing (to keep pending). Returns the input set untouched as
3078
+ * `missing` when nothing matched, so callers can cheaply detect "no change".
3079
+ */
3080
+ declare function partitionKeys(keys: PendingKeys, has: (key: string) => boolean): {
3081
+ readonly present: readonly string[];
3082
+ readonly missing: PendingKeys;
3083
+ };
3084
+ /** As {@link partitionKeys}, for keyed boolean flags (e.g. expanded / collapsed). */
3085
+ declare function partitionFlags(flags: PendingFlags, has: (key: string) => boolean): {
3086
+ readonly present: ReadonlyArray<readonly [string, boolean]>;
3087
+ readonly missing: PendingFlags;
3088
+ };
3089
+ /** Keep at most `max` keys, dropping the oldest. */
3090
+ declare function capKeys(keys: PendingKeys, max?: number): PendingKeys;
3091
+ /** Keep at most `max` flags, dropping the oldest. */
3092
+ declare function capFlags(flags: PendingFlags, max?: number): PendingFlags;
3093
+ /** `flags` without `key` (same instance when absent). */
3094
+ declare function withoutFlag(flags: PendingFlags, key: string): PendingFlags;
3095
+ /** JSON record → flags map. Non-boolean values are ignored. */
3096
+ declare function flagsFromRecord(record: Readonly<Record<string, boolean>> | undefined): PendingFlags;
3097
+ /**
3098
+ * Combine pending and live flags into one JSON record. Live entries win when
3099
+ * a key is in both (it shouldn't be — matched keys leave pending).
3100
+ */
3101
+ declare function flagsToRecord(...sources: Array<Iterable<readonly [string, boolean]>>): Record<string, boolean>;
3102
+ /** Pending keys followed by live keys, de-duplicated, as a JSON array. */
3103
+ declare function keysToArray(...sources: Array<Iterable<string>>): string[];
3104
+ /** Map `keys` to `true` flags — for components that record a plain key set. */
3105
+ declare function keysAsFlags(keys: Iterable<string>, value?: boolean): Iterable<readonly [string, boolean]>;
3106
+ //#endregion
3107
+ //#region src/common/view-state/scroll-anchor.d.ts
3108
+ /**
3109
+ * Scroll-position helpers. A raw `scrollTop` is wrong as soon as anything is
3110
+ * inserted above it, so view state records the first visible item's key plus
3111
+ * an offset into it, and falls back to pixels only when nothing is keyed.
3112
+ */
3113
+ type ScrollAxis = `vertical` | `horizontal`;
3114
+ /**
3115
+ * Capture a {@link ScrollState} for a DOM-rendered list. `items` must be in
3116
+ * visual order along `axis`; the first one whose far edge is below / right of
3117
+ * the viewport start is the anchor (found by binary search).
3118
+ */
3119
+ declare function captureElementScroll(viewport: HTMLElement, items: readonly Element[], getKey: (el: Element) => string | undefined, axis?: ScrollAxis): ScrollState;
3120
+ /**
3121
+ * Scroll `viewport` so `item` sits at the anchor's offset. Returns `false`
3122
+ * when the viewport can't scroll far enough yet (content still arriving),
3123
+ * so the caller can keep the anchor pending.
3124
+ */
3125
+ declare function restoreElementScroll(viewport: HTMLElement, item: Element, offset: number, axis?: ScrollAxis): boolean;
3126
+ /**
3127
+ * Set the scroll offset along `axis`. Returns `false` when `target` is beyond
3128
+ * the current scroll range (it is clamped and should be retried later).
3129
+ */
3130
+ declare function scrollToOffset(viewport: HTMLElement, target: number, axis?: ScrollAxis): boolean;
3131
+ /**
3132
+ * Anchor for a virtualised list with arithmetic row geometry: pass the first
3133
+ * visible index, the key at that index and that row's start offset.
3134
+ */
3135
+ declare function anchorFromRow(scrollOffset: number, key: string | undefined, rowStart: number, crossOffset?: number): ScrollState;
3136
+ /**
3137
+ * Call `onIntent` the first time the user does something that scrolls or
3138
+ * moves within `target` (wheel, touch, pointer on the scrollbar, navigation
3139
+ * key). Used to cancel a pending scroll restore — the user's own scroll wins.
3140
+ * Programmatic `scrollTop` writes do not trigger it. Returns a disposer.
3141
+ */
3142
+ declare function onUserScrollIntent(target: EventTarget, onIntent: () => void): () => void;
3143
+ //#endregion
3144
+ //#region src/common/view-state/view-state-controller.d.ts
3145
+ type ViewStateControllerOptions<S extends ViewStateBase> = {
3146
+ /** Component kind written into every state, e.g. `tree-list`. */
3147
+ readonly kind: string;
3148
+ /** Build the full current state (pending included). Called when the change event fires. */
3149
+ readonly capture: () => S;
3150
+ /** Trailing debounce for `view-state-change`, ms. Default 150. */
3151
+ readonly debounceMs?: number;
3152
+ };
3153
+ /**
3154
+ * Plumbing shared by every view-stateful component:
3155
+ *
3156
+ * - **change events** — `notify(reason)` coalesces changes into one debounced
3157
+ * `view-state-change` event (strongest reason wins: user > data > restore),
3158
+ * flushed immediately on disconnect so the last change is never lost.
3159
+ * - **restore marking** — changes made inside `restoring(fn)` are reported as
3160
+ * `restore`, so persistence code can skip writing back what it just loaded.
3161
+ * - **validation** — `accepts(state)` rejects a state for another kind / version.
3162
+ * - **pending scroll** — a scroll position waiting for its anchor item (or for
3163
+ * enough content). Cancelled by the user's own scroll intent on the target
3164
+ * given to `observeScrollTarget()`.
3165
+ *
3166
+ * The component owns its facets (selection, expansion, columns) and decides
3167
+ * what's pending; this controller only carries the cross-cutting parts.
3168
+ */
3169
+ declare class ViewStateController<S extends ViewStateBase> implements ReactiveController {
3170
+ #private;
3171
+ constructor(host: ReactiveControllerHost & EventTarget, options: ViewStateControllerOptions<S>);
3172
+ get kind(): string;
3173
+ hostConnected(): void;
3174
+ hostDisconnected(): void;
3175
+ /** Record a change. Inside `restoring()` the reason is forced to `restore`. */
3176
+ notify(reason?: ViewStateChangeReason): void;
3177
+ /** Fire any pending change event now. */
3178
+ flush(): void;
3179
+ /** Run `fn` with every `notify()` inside it reported as `restore`. */
3180
+ restoring<T>(fn: () => T): T;
3181
+ /** True while inside `restoring()`. */
3182
+ get isRestoring(): boolean;
3183
+ /** Whether `state` is for this component kind and schema version. Warns when not. */
3184
+ accepts(state: Partial<S> | null | undefined): state is Partial<S>;
3185
+ /**
3186
+ * Stamp `v` / `kind` onto `fields` and apply `include`. Components build
3187
+ * their full field set and pass it through here from `getViewState()`.
3188
+ */
3189
+ shape(fields: Omit<S, `v` | `kind`>, options?: GetViewStateOptions<S>): S;
3190
+ /**
3191
+ * Watch `target` for user scroll intent (wheel / touch / pointer / nav key);
3192
+ * any intent drops the pending scroll. Call again if the scroll container
3193
+ * is replaced.
3194
+ */
3195
+ observeScrollTarget(target: EventTarget): void;
3196
+ get pendingScroll(): ScrollState | undefined;
3197
+ set pendingScroll(scroll: ScrollState | undefined);
3198
+ /**
3199
+ * Try the pending scroll with `apply`; it returns `true` once the position
3200
+ * was fully reached (anchor present, content long enough), which clears it.
3201
+ * Call after each render that may have added items.
3202
+ */
3203
+ applyPendingScroll(apply: (scroll: ScrollState) => boolean): void;
3204
+ /**
3205
+ * Call from the viewport's `scroll` listener. Ignored while a scroll restore
3206
+ * is still pending; the event caused by a restore's own write is reported
3207
+ * as `restore`, anything else as `user`.
3208
+ */
3209
+ notifyScroll(): void;
3210
+ }
3211
+ //#endregion
2937
3212
  //#region src/tree/types.d.ts
2938
3213
  /** Tree layout/display configuration (tree-specific, not shared). */
2939
3214
  type TreeConfig = {
2940
3215
  indent: number;
2941
3216
  };
2942
3217
  //#endregion
3218
+ //#region src/crumbs/crumb-view-state.d.ts
3219
+ /**
3220
+ * Pure view-state helpers for `ixfx-crumb-navigation` (also used by
3221
+ * `ixfx-flat-list`, whose location is the same kind of key path).
3222
+ * See docs/infra-view-state.md.
3223
+ */
3224
+ /**
3225
+ * `ixfx-crumb-navigation` view state. The location *is* the selection (one
3226
+ * node), so it is stored once, as the key path that reaches it — a path, not
3227
+ * a lone key, so a saved location deep in a lazy tree can be loaded down to.
3228
+ */
3229
+ type CrumbNavigationViewState = ViewStateBase & {
3230
+ /** Keys from the root (excluded) down to the current location. `[]` = the root. */
3231
+ readonly path?: readonly string[];
3232
+ };
3233
+ //#endregion
2943
3234
  //#region src/narrowed-text/types.d.ts
2944
3235
  type NarrowedTextItem = Readonly<{
2945
3236
  value: string;
@@ -3080,6 +3371,11 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
3080
3371
  hideRoot: boolean;
3081
3372
  padEnding: boolean;
3082
3373
  withUp: boolean;
3374
+ /**
3375
+ * Whether restoring view state may call `loadChildren` to reach a saved
3376
+ * location through unloaded branches (one load at a time). Default `true`.
3377
+ */
3378
+ restoreLoads: boolean;
3083
3379
  private tickled;
3084
3380
  select(node: TreeNode): void;
3085
3381
  deselect(_node: TreeNode): void;
@@ -3092,6 +3388,15 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
3092
3388
  node: TreeNode;
3093
3389
  depth: number;
3094
3390
  }>;
3391
+ /** Snapshot the location as a key path. Includes a saved location not reached yet. */
3392
+ getViewState(options?: GetViewStateOptions<CrumbNavigationViewState>): CrumbNavigationViewState;
3393
+ /**
3394
+ * Go to a saved location. Keys not loaded yet are reached as they appear —
3395
+ * via `loadChildren` when `restoreLoads` — moving through each loaded ancestor.
3396
+ */
3397
+ setViewState(state: Partial<CrumbNavigationViewState>): void;
3398
+ clearPendingViewState(): void;
3399
+ willUpdate(changedProps: PropertyValues): void;
3095
3400
  updated(changedProps: PropertyValues): void;
3096
3401
  connectedCallback(): void;
3097
3402
  disconnectedCallback(): void;
@@ -3374,6 +3679,12 @@ type DataGridColumn<R = unknown> = {
3374
3679
  button?: false | true | {
3375
3680
  icon?: string;
3376
3681
  };
3682
+ /** Heading for this column in the built-in column menu; columns sharing a group are listed in one submenu. Ungrouped columns stay at the top level. */
3683
+ group?: string;
3684
+ /** Pixels added to the measured text width when auto-sizing (e.g. a thumbnail beside the text). Lets a `renderer` column be auto-sized. */
3685
+ fixedExtraWidth?: number;
3686
+ /** Custom content-width measure (px) for one row, used when auto-sizing. Lets a `renderer` column be auto-sized. */
3687
+ measure?: (row: R, col: DataGridColumn<R>) => number;
3377
3688
  };
3378
3689
  type GlobalFormatter = (value: unknown, columnName: string, row: unknown) => unknown;
3379
3690
  /**
@@ -3415,6 +3726,31 @@ type DataGridGroupLabel = (groupKey: string, rows: readonly unknown[]) => string
3415
3726
  /** Whether the data-grid renders its built-in header column/group menu. */
3416
3727
  type DataGridColumnMenu = `auto` | `none`;
3417
3728
  //#endregion
3729
+ //#region src/data-grid/data-grid-view-state.d.ts
3730
+ /**
3731
+ * Pure view-state helpers for `ixfx-data-grid`. The grid runs these whenever
3732
+ * its rows or columns change, so state keyed to rows / columns that left the
3733
+ * data goes pending and comes back when those keys reappear.
3734
+ */
3735
+ /** Saved layout for one column, keyed by column key in {@link DataGridViewState.columns}. */
3736
+ type DataGridColumnViewState = {
3737
+ readonly width?: number;
3738
+ readonly visible?: boolean;
3739
+ /** Rank among the saved columns (lower is further left). */
3740
+ readonly order?: number;
3741
+ };
3742
+ /**
3743
+ * `ixfx-data-grid` view state. `expanded` is keyed by group key; groups
3744
+ * default to open, so a collapsed group is `false`.
3745
+ */
3746
+ type DataGridViewState = ViewStateBase & {
3747
+ readonly columns?: Readonly<Record<string, DataGridColumnViewState>>;
3748
+ /** Sorted column + direction; `null` means unsorted. */
3749
+ readonly sort?: DataGridSortState;
3750
+ /** Group-by column key (`null` = ungrouped). Only recorded when `allowGrouping` is on. */
3751
+ readonly groupBy?: string | null;
3752
+ };
3753
+ //#endregion
3418
3754
  //#region node_modules/.pnpm/fzf@0.5.2/node_modules/fzf/dist/types/slab.d.ts
3419
3755
  interface Slab {
3420
3756
  i16: Int16Array;
@@ -4494,14 +4830,30 @@ declare class DataGridElement extends LitElement {
4494
4830
  /**
4495
4831
  * Resize a single column, by key, to fit its contents (header label + every
4496
4832
  * row's formatted value), animating the width change smoothly. Only works
4497
- * for plain columns - one with a custom `renderer` can't be measured
4498
- * reliably from its raw value, so it's left untouched. Returns `false` (and
4499
- * does nothing) if the column doesn't exist, isn't resizable, or has a
4500
- * `renderer`.
4833
+ * for plain columns, or `renderer` columns that supply `measure` or
4834
+ * `fixedExtraWidth` - otherwise a renderer's output can't be measured
4835
+ * reliably from the raw value, so it's left untouched. Returns `false` (and
4836
+ * does nothing) if the column doesn't exist, isn't resizable, or has an
4837
+ * unmeasurable `renderer`.
4501
4838
  */
4502
4839
  autoSizeColumn(key: string): boolean;
4503
4840
  private _columnResizeAnimationMs;
4504
4841
  private _onResizePointerDown;
4842
+ /**
4843
+ * Snapshot selection, cursor, scroll, collapsed groups, column layout, sort
4844
+ * and (with `allowGrouping`) grouping as plain JSON, keyed by row / group /
4845
+ * column key. Includes pending state for keys not currently present. Rows
4846
+ * keyed by index (no `key` / `id` under the default `getRowKey`) are never
4847
+ * recorded.
4848
+ */
4849
+ getViewState(options?: GetViewStateOptions<DataGridViewState>): DataGridViewState;
4850
+ /**
4851
+ * Apply saved view state. Fields present replace the current ones; row and
4852
+ * column keys that aren't defined yet are applied as they appear (including
4853
+ * rows streamed in with `appendRows()`).
4854
+ */
4855
+ setViewState(state: Partial<DataGridViewState>): void;
4856
+ clearPendingViewState(): void;
4505
4857
  getVisibleRange(): {
4506
4858
  startRow: number;
4507
4859
  endRow: number;
@@ -4692,6 +5044,21 @@ interface ListElementEventMap {
4692
5044
  'list-item-click': ListItemClickEvent;
4693
5045
  }
4694
5046
  //#endregion
5047
+ //#region src/detail-list/detail-list-view-state.d.ts
5048
+ /**
5049
+ * Pure helpers behind `ixfx-detail-list`'s view state (see
5050
+ * `docs/infra-view-state.md`). The component keeps only the wiring.
5051
+ *
5052
+ * - `selected` — selected item keys (in `checked` mode, the checked set:
5053
+ * `data-checked` is derived from the selection, not stored separately).
5054
+ * - `expanded` — `{ [groupKey]: false }` for collapsed groups. Groups default
5055
+ * open, so only collapses are recorded; `true` re-opens.
5056
+ * - `focus` — keyboard-cursor key.
5057
+ * - `scroll` — horizontal: `left` plus an anchor on the top item of the first
5058
+ * visible column.
5059
+ */
5060
+ type DetailListViewState = ViewStateBase;
5061
+ //#endregion
4695
5062
  //#region src/vertical-list/types.d.ts
4696
5063
  /**
4697
5064
  * `list-drag-over` / `list-drop`. `key` and `item` are `undefined` when the
@@ -4728,6 +5095,20 @@ type ListContextMenuEvent = CustomEvent<ListContextMenuDetail>;
4728
5095
  type ListEditCommitEvent = CustomEvent<ListEditCommitDetail>;
4729
5096
  type ListEditCancelEvent = CustomEvent<ListEditCancelDetail>;
4730
5097
  //#endregion
5098
+ //#region src/vertical-list/vertical-list-view-state.d.ts
5099
+ /**
5100
+ * Pure helpers behind `ixfx-vertical-list`'s view state. The component runs
5101
+ * them whenever its items change (light-DOM edits, `addItem` / `setItems` /
5102
+ * `clearItems`, adapter rebuilds, virtual registry changes), so state keyed to
5103
+ * rows that left the list goes pending and comes back when those keys reappear.
5104
+ */
5105
+ /**
5106
+ * `ixfx-vertical-list` view state. All fields are the shared base fields:
5107
+ * `selected` (the checked set in `checked` mode), `focus` (keyboard cursor)
5108
+ * and `scroll`. Keys are each row's `data-key` / `data-value`.
5109
+ */
5110
+ type VerticalListViewState = ViewStateBase;
5111
+ //#endregion
4731
5112
  //#region src/editable-label/editable-label.d.ts
4732
5113
  type EditableMode = `label` | `editor`;
4733
5114
  type EntryMode = `free` | `text` | `number` | `percent`;
@@ -5021,6 +5402,18 @@ declare class VerticalListElement extends LitElement {
5021
5402
  focusKey(key: string): void;
5022
5403
  /** The item carrying this `data-key`, or `undefined`. */
5023
5404
  getItemByKey(key: string): Element | undefined;
5405
+ /**
5406
+ * Snapshot selection (the checked set in `checked` mode), keyboard cursor
5407
+ * and scroll as plain JSON keyed by `data-key` / `data-value`. Includes
5408
+ * pending state for keys not currently in the list.
5409
+ */
5410
+ getViewState(options?: GetViewStateOptions<VerticalListViewState>): VerticalListViewState;
5411
+ /**
5412
+ * Apply saved view state. Fields present replace the current ones; keys
5413
+ * not in the list yet are applied as matching rows appear.
5414
+ */
5415
+ setViewState(state: Partial<VerticalListViewState>): void;
5416
+ clearPendingViewState(): void;
5024
5417
  /**
5025
5418
  * Keys of items currently intersecting the viewport — for prioritising
5026
5419
  * viewport-first work (e.g. metadata/thumbnail fetches). A rect-intersection
@@ -5324,6 +5717,18 @@ declare class DetailListElement extends LitElement {
5324
5717
  /** Move the cursor to the item with this key and scroll it into view. */
5325
5718
  focusKey(key: string): void;
5326
5719
  selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
5720
+ /**
5721
+ * Snapshot selection, collapsed groups, cursor and scroll as plain JSON,
5722
+ * keyed by item / group key. Includes pending state for keys not present.
5723
+ */
5724
+ getViewState(options?: GetViewStateOptions<DetailListViewState>): DetailListViewState;
5725
+ /**
5726
+ * Apply saved view state. Fields present replace the current ones; keys not
5727
+ * in the data are applied as matching items arrive (rebuilds, provider
5728
+ * batches, `addItem`, light-DOM appends).
5729
+ */
5730
+ setViewState(state: Partial<DetailListViewState>): void;
5731
+ clearPendingViewState(): void;
5327
5732
  /** Groups in display order (empty when ungrouped). */
5328
5733
  get groups(): readonly ListGroupInfo[];
5329
5734
  /** Collapse or expand one group. Fires `list-group-toggle` when the state changes. */
@@ -5388,6 +5793,7 @@ declare global {
5388
5793
  interface DetailListElementEventMap extends ListElementEventMap, ListGroupEventMap {
5389
5794
  'detail-list-viewport-change': ListViewportChangeEvent;
5390
5795
  'list-native-drag-start': ListNativeDragStartEvent<Element>;
5796
+ 'view-state-change': ViewStateChangeEvent<DetailListViewState>;
5391
5797
  }
5392
5798
  //#endregion
5393
5799
  //#region src/dock/types.d.ts
@@ -5398,6 +5804,15 @@ type DockLayout = {
5398
5804
  readonly root: DockNode;
5399
5805
  };
5400
5806
  type DockNode = DockSplitNode | DockStackNode;
5807
+ /**
5808
+ * `ixfx-dock-host` view state (`kind: 'dock-host'`). `layout` is the whole
5809
+ * dock tree — splits and their sizes, stacks with tab order, active tab and
5810
+ * collapse — keyed by panel id. Panels it names that the host doesn't hold
5811
+ * yet keep their place and slot in when they arrive.
5812
+ */
5813
+ type DockHostViewState = ViewStateBase & {
5814
+ readonly layout?: DockLayout;
5815
+ };
5401
5816
  /**
5402
5817
  * N-ary split node, rendered as a single `ixfx-split-layout`.
5403
5818
  * `direction` uses the element's flexbox sense: `row` places children
@@ -5749,6 +6164,24 @@ interface LayoutSnapshot {
5749
6164
  version: 1;
5750
6165
  root: SnapshotNode;
5751
6166
  }
6167
+ /**
6168
+ * Saved size of one direct child of an `ixfx-split-layout`, keyed by the
6169
+ * child's `id` in {@link SplitLayoutViewState.layout}.
6170
+ */
6171
+ interface SplitPanelViewState {
6172
+ /**
6173
+ * Share (0..1) of the weighted flow. For a collapsed panel, the share it
6174
+ * returns to when expanded.
6175
+ */
6176
+ readonly weight: number;
6177
+ /** Collapsed to the gutter. Absent ⇒ expanded. */
6178
+ readonly collapsed?: boolean;
6179
+ }
6180
+ /** `ixfx-split-layout` view state (`kind: 'split-layout'`). */
6181
+ type SplitLayoutViewState = ViewStateBase & {
6182
+ /** Direct children with an author-given `id`, keyed by that id. */
6183
+ readonly layout?: Readonly<Record<string, SplitPanelViewState>>;
6184
+ };
5752
6185
  interface PanelInfo {
5753
6186
  id: string;
5754
6187
  el: HTMLElement;
@@ -5814,10 +6247,17 @@ declare global {
5814
6247
  //#endregion
5815
6248
  //#region src/split-layout/split-layout.d.ts
5816
6249
  declare class SplitLayoutElement extends LitElement {
6250
+ #private;
5817
6251
  direction: Axis;
5818
6252
  sizes: string;
5819
6253
  gutterSize: string;
5820
6254
  snap: string;
6255
+ /**
6256
+ * Forget the saved size of a child that leaves instead of re-applying it
6257
+ * when a child with that id returns. For hosts that drive child sizes
6258
+ * themselves (e.g. `ixfx-dock-host`, whose leaf ids are positional).
6259
+ */
6260
+ forgetAbsent: boolean;
5821
6261
  private _model;
5822
6262
  private _resizing;
5823
6263
  private _groupEl?;
@@ -5830,9 +6270,20 @@ declare class SplitLayoutElement extends LitElement {
5830
6270
  firstUpdated(): void;
5831
6271
  private _setupObserver;
5832
6272
  private _rebuildModel;
6273
+ private _writeCollapsedAttributes;
5833
6274
  get panels(): PanelInfo[];
5834
- getLayout(): LayoutSnapshot | null;
5835
- setLayout(s: LayoutSnapshot): void;
6275
+ /**
6276
+ * Snapshot the size and collapse of every direct child with an `id`.
6277
+ * Includes saved entries for children not currently slotted.
6278
+ */
6279
+ getViewState(options?: GetViewStateOptions<SplitLayoutViewState>): SplitLayoutViewState;
6280
+ /**
6281
+ * Apply saved sizes. Entries for children that aren't slotted yet are kept
6282
+ * and applied when a child with that id appears. Present children without
6283
+ * an entry keep their relative size.
6284
+ */
6285
+ setViewState(state: Partial<SplitLayoutViewState>): void;
6286
+ clearPendingViewState(): void;
5836
6287
  getSizes(_groupId?: string): Record<string, number>;
5837
6288
  setSizes(weights: number[] | Record<string, number>, _groupId?: string): void;
5838
6289
  collapse(idOrEl: string | HTMLElement): void;
@@ -6023,6 +6474,7 @@ interface DockHostElementEventMap {
6023
6474
  'dock-panel-drag-in': DockDragBoundaryEvent;
6024
6475
  }
6025
6476
  declare class DockHostElement extends LitElement {
6477
+ #private;
6026
6478
  /** Initial layout as `DockLayout` JSON. Absent ⇒ all pooled panels go into one root stack. */
6027
6479
  layout: string | null;
6028
6480
  /**
@@ -6068,7 +6520,7 @@ declare class DockHostElement extends LitElement {
6068
6520
  /**
6069
6521
  * Placement policy per named leaf: `{ allow, deny }` kind sets plus an
6070
6522
  * `allowEdgeSplit` gate (default `true`). Host-level only — never serialized
6071
- * into the layout, but kept across `loadLayout()` calls. Existing panels are
6523
+ * into the layout, but kept across `setViewState()` calls. Existing panels are
6072
6524
  * grandfathered; rules govern future placements (drags, `addPanel`,
6073
6525
  * re-homing). See {@link setLeafPlacementPolicy}.
6074
6526
  */
@@ -6078,7 +6530,7 @@ declare class DockHostElement extends LitElement {
6078
6530
  private _junctionsRaf;
6079
6531
  private _hostResizeObserver;
6080
6532
  /**
6081
- * Bumped on every `loadLayout()`. Stamped onto each rendered
6533
+ * Bumped on every layout restore (`setViewState()`). Stamped onto each rendered
6082
6534
  * `ixfx-split-layout` as `data-dock-gen`, so `_foldLiveWeights` can tell a
6083
6535
  * split that still carries the *previous* generation's live weights (its
6084
6536
  * async re-render hasn't landed yet) from one that's caught up — and skip
@@ -6128,9 +6580,29 @@ declare class DockHostElement extends LitElement {
6128
6580
  private _observePanel;
6129
6581
  private _unobservePanel;
6130
6582
  private _syncPool;
6131
- /** Serialize the current layout, folding live split weights from the DOM. */
6132
- saveLayout(): DockLayout;
6133
- loadLayout(layout: DockLayout): void;
6583
+ /**
6584
+ * Snapshot the layout (live split weights folded in from the DOM). With
6585
+ * `includePending` (default), panels the restored layout names but the
6586
+ * host doesn't hold yet are kept in place; without it they are left out.
6587
+ */
6588
+ getViewState(options?: GetViewStateOptions<DockHostViewState>): DockHostViewState;
6589
+ /**
6590
+ * Restore a layout. Panels it names that aren't in the host yet keep their
6591
+ * place (shown as a placeholder tab) and slot in when they arrive — as a
6592
+ * light-DOM child, or via `addPanel()` without a target. Pooled panels it
6593
+ * doesn't name are appended to the first stack admitting their kind.
6594
+ */
6595
+ setViewState(state: Partial<DockHostViewState>): void;
6596
+ /**
6597
+ * Placeholders are part of the layout tree rather than a separate pending
6598
+ * set, so there is nothing to clear here: remove a placeholder with
6599
+ * `removePanel(id)`.
6600
+ */
6601
+ clearPendingViewState(): void;
6602
+ /** The current layout, folding live split weights from the DOM. */
6603
+ private _captureLayout;
6604
+ /** Whether `panelId` is in the model only as a placeholder from a restored layout. */
6605
+ private _isPlaceholder;
6134
6606
  /**
6135
6607
  * Dock a panel. Returns false (without touching the DOM) when the
6136
6608
  * explicitly targeted container denies the panel's `kind`.
@@ -6170,7 +6642,7 @@ declare class DockHostElement extends LitElement {
6170
6642
  * {@link setLeafPlacementPolicy}'s `allowEdgeSplit` (default `true`).
6171
6643
  * Pass `[]` to seal the leaf (nothing admitted). Warns when no stack
6172
6644
  * currently carries `name`, but the rule is still stored and applies once
6173
- * one appears. Rules are host policy: kept across `loadLayout()`, never
6645
+ * one appears. Rules are host policy: kept across `setViewState()`, never
6174
6646
  * serialized.
6175
6647
  */
6176
6648
  setLeafExclusiveContents(name: string, kinds: readonly string[]): void;
@@ -6196,7 +6668,7 @@ declare class DockHostElement extends LitElement {
6196
6668
  * unconstrained* leaf — the policy is not propagated to it.
6197
6669
  *
6198
6670
  * Warns when no stack currently carries `name`; the policy is stored and
6199
- * applies once one appears. Host policy: kept across `loadLayout()`, never
6671
+ * applies once one appears. Host policy: kept across `setViewState()`, never
6200
6672
  * serialized.
6201
6673
  */
6202
6674
  setLeafPlacementPolicy(name: string, policy: DockLeafPlacementPolicy): void;
@@ -6321,6 +6793,12 @@ declare class DockHostElement extends LitElement {
6321
6793
  /** Fold live weights from each rendered `ixfx-split-layout` into the model. */
6322
6794
  private _foldLiveWeights;
6323
6795
  private _onSplitWeightsChanged;
6796
+ /**
6797
+ * Splits inside the dock are an implementation detail: keep their own
6798
+ * `view-state-change` from escaping (retargeted, it would look like ours).
6799
+ * Events from panel content pass through untouched.
6800
+ */
6801
+ private _onInnerViewState;
6324
6802
  private _onSplitCollapsed;
6325
6803
  private _onSplitClose;
6326
6804
  private _onTabChange;
@@ -6680,6 +7158,15 @@ type FlatListEditCommitDetail = {
6680
7158
  type FlatListEditCancelDetail = {
6681
7159
  readonly node: TreeNode;
6682
7160
  };
7161
+ /**
7162
+ * `ixfx-flat-list` view state. `selected`, `focus` and `scroll` belong to the
7163
+ * level at `path`; they are held until that level is shown, then handed to
7164
+ * the inner list.
7165
+ */
7166
+ type FlatListViewState = ViewStateBase & {
7167
+ /** Keys from the root (excluded) to the level shown — the `path` property. */
7168
+ readonly path?: readonly string[];
7169
+ };
6683
7170
  type FlatListNavigateEvent = CustomEvent<FlatListNavigateDetail>;
6684
7171
  type FlatListSelectEvent = CustomEvent<FlatListSelectDetail>;
6685
7172
  type FlatListActivateEvent = CustomEvent<FlatListActivateDetail>;
@@ -6798,6 +7285,18 @@ declare class FlatListElement extends LitElement {
6798
7285
  navigateInto(key: string): boolean;
6799
7286
  /** Move to the parent level. Returns false at the root. */
6800
7287
  navigateUp(): boolean;
7288
+ /**
7289
+ * Snapshot the level shown (`path`) and, from the inner list, its selection,
7290
+ * cursor and scroll. Includes a saved level not reached yet.
7291
+ */
7292
+ getViewState(options?: GetViewStateOptions<FlatListViewState>): FlatListViewState;
7293
+ /**
7294
+ * Go to a saved level. Keys not loaded yet are reached as they load (the
7295
+ * level shown is always loaded); `selected` / `focus` / `scroll` apply once
7296
+ * that level is shown.
7297
+ */
7298
+ setViewState(state: Partial<FlatListViewState>): void;
7299
+ clearPendingViewState(): void;
6801
7300
  disconnectedCallback(): void;
6802
7301
  protected willUpdate(changed: PropertyValues): void;
6803
7302
  protected updated(changed: PropertyValues): void;
@@ -7364,6 +7863,29 @@ declare class ListSelectionController<T> {
7364
7863
  * fires once if anything changed.
7365
7864
  */
7366
7865
  removeKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
7866
+ /** Selected keys waiting for their items to appear. */
7867
+ get pendingKeys(): PendingKeys;
7868
+ /**
7869
+ * Restore a selection by key: keys that resolve are selected now (one
7870
+ * `onChange`), the rest are kept pending for `resolvePending()`. Replaces
7871
+ * any previous selection and pending keys. Unlike `selectKeys`, this works
7872
+ * in `selectionMode="none"` only to the extent of holding keys pending.
7873
+ */
7874
+ restoreKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
7875
+ /**
7876
+ * Select pending keys whose items now resolve (call after items are added
7877
+ * or rebuilt). Fires `onChange` once when anything was selected; returns
7878
+ * whether it did.
7879
+ */
7880
+ resolvePending(resolve: (key: string) => T | undefined): boolean;
7881
+ /**
7882
+ * Silently deselect `items` that left the data, keeping their keys pending
7883
+ * so they are re-selected if the same keys come back (data reset, re-fetch).
7884
+ * No `onChange`; returns whether the selection changed.
7885
+ */
7886
+ demote(items: Iterable<T>): boolean;
7887
+ /** Drop pending keys without touching the live selection. */
7888
+ clearPending(): void;
7367
7889
  /** Route a click on `item` according to the current interaction mode. */
7368
7890
  handleClick(item: T, gesture: ListSelectionGesture): void;
7369
7891
  /** Route a Space keypress on `item` according to the current interaction mode. */
@@ -7378,7 +7900,8 @@ declare class ListSelectionController<T> {
7378
7900
  remap(fn: (item: T) => T): void;
7379
7901
  /**
7380
7902
  * Hard reset: empty the selection and clear the anchor without firing
7381
- * `onChange` (e.g. when all items are removed).
7903
+ * `onChange` (e.g. when all items are removed). Keyed selected items become
7904
+ * pending, so a rebuilt item set re-selects them via `resolvePending()`.
7382
7905
  */
7383
7906
  reset(): void;
7384
7907
  /**
@@ -7389,6 +7912,46 @@ declare class ListSelectionController<T> {
7389
7912
  seed(items: Iterable<T>, anchor?: T): void;
7390
7913
  }
7391
7914
  //#endregion
7915
+ //#region src/interaction/scroll-hover-guard.d.ts
7916
+ /**
7917
+ * Scroll-hover guard: tells a hover-driven cursor to hold still while a scroll
7918
+ * gesture moves items beneath a stationary pointer.
7919
+ *
7920
+ * With virtualised / scrolling lists, wheel or trackpad scrolling slides items
7921
+ * under the pointer and the browser fires `pointerenter` on them from its
7922
+ * (throttled) post-scroll hit-test. Following those enters makes the hover
7923
+ * cursor trail the content. The guard opens a suppression window on scroll and
7924
+ * closes it on the next *real* pointer movement or when the pointer leaves.
7925
+ *
7926
+ * While suppressed, `host` carries a `data-scroll-hover-suppress` attribute so
7927
+ * CSS `:hover` highlights can be gated too.
7928
+ */
7929
+ type ScrollHoverGuard = Readonly<{
7930
+ /** True while hover-driven cursor moves should be ignored. */
7931
+ suppressed: () => boolean;
7932
+ /** Call from the scroll container's `scroll` (and any manual-scroll wheel) handler. */
7933
+ onScroll: () => void;
7934
+ /** Call from a `pointermove` listener covering the list. */
7935
+ onPointerMove: (e: PointerEvent) => void;
7936
+ /** Call when the pointer leaves the list. */
7937
+ onPointerLeave: () => void;
7938
+ /** Close any open suppression window (e.g. on disconnect or opt-out). */
7939
+ end: () => void;
7940
+ }>;
7941
+ type ScrollHoverGuardConfig = Readonly<{
7942
+ host: HTMLElement;
7943
+ /** Whether suppression is enabled; read on every scroll. */
7944
+ enabled: () => boolean;
7945
+ /**
7946
+ * Called when real pointer movement ends suppression, with the pointer
7947
+ * position. The enter that accompanied that movement may have been swallowed,
7948
+ * so the consumer should re-hover whatever item is now under the pointer.
7949
+ */
7950
+ onResume?: (clientX: number, clientY: number) => void;
7951
+ }>;
7952
+ declare const SCROLL_HOVER_SUPPRESS_ATTR = "data-scroll-hover-suppress";
7953
+ declare function createScrollHoverGuard(config: ScrollHoverGuardConfig): ScrollHoverGuard;
7954
+ //#endregion
7392
7955
  //#region src/interaction/tickled-controller.d.ts
7393
7956
  /**
7394
7957
  * Represents an item that can be tickled (highlighted via hover or keyboard navigation)
@@ -7817,6 +8380,23 @@ interface GridListFullElementEventMap extends GridListElementEventMap {
7817
8380
  'list-native-drag-start': ListNativeDragStartEvent;
7818
8381
  }
7819
8382
  //#endregion
8383
+ //#region src/grid-list/grid-list-view-state.d.ts
8384
+ /**
8385
+ * Pure view-state helpers for `ixfx-grid-list`. The component runs
8386
+ * {@link reconcileGroups} whenever its item set or grouping changes, so a
8387
+ * group's collapsed state survives the group disappearing (data reset,
8388
+ * filter, streaming) and comes back when the group does. Scroll is captured
8389
+ * and restored arithmetically from the virtual layout, along the main axis
8390
+ * (`scrollLeft` in `row` orientation, `scrollTop` otherwise).
8391
+ */
8392
+ /**
8393
+ * `ixfx-grid-list` view state. All fields are the shared base fields:
8394
+ * `selected` (item keys), `focus` (keyboard cursor key), `scroll`, and
8395
+ * `expanded` (group key → open; groups default open, so only `false` entries
8396
+ * are ever recorded).
8397
+ */
8398
+ type GridListViewState = ViewStateBase;
8399
+ //#endregion
7820
8400
  //#region src/grid-list/grid-list.d.ts
7821
8401
  declare class GridListElement<T = unknown> extends LitElement {
7822
8402
  #private;
@@ -7830,18 +8410,17 @@ declare class GridListElement<T = unknown> extends LitElement {
7830
8410
  */
7831
8411
  disableHoverTickle: boolean;
7832
8412
  /**
7833
- * Ignore hover-target changes caused by scrolling. With virtualisation, a
7834
- * wheel / trackpad gesture replaces the cell beneath a stationary pointer,
7835
- * and the freshly rendered cell's `pointerenter` would move the cursor and
7836
- * emit `list-tickle` even though the pointer never moved. With this set,
7837
- * `pointerenter`-driven tickling is suppressed while a scroll gesture is
7838
- * active — the host also carries a `data-scroll-hover-suppress` attribute
7839
- * that gates the CSS `:hover` highlight, so the visual cursor holds still
7840
- * too. Hover resumes on the next real pointer movement, or after the pointer
7841
- * leaves and re-enters the list. Click selection, keyboard navigation, and
7842
- * `focusKey()` are unaffected.
7843
- */
7844
- disableScrollHoverTickle: boolean;
8413
+ * Let hover follow cells that scroll beneath a stationary pointer. Off by
8414
+ * default: with virtualisation, a wheel / trackpad gesture replaces the cell
8415
+ * beneath the pointer, and following its `pointerenter` would move the
8416
+ * cursor and emit `list-tickle` even though the pointer never moved. While a
8417
+ * scroll gesture is active those enters are ignored and the host carries a
8418
+ * `data-scroll-hover-suppress` attribute that gates the CSS `:hover`
8419
+ * highlight, so the visual cursor holds still too. Hover resumes on the next
8420
+ * real pointer movement, or after the pointer leaves the list. Click
8421
+ * selection, keyboard navigation, and `focusKey()` are unaffected.
8422
+ */
8423
+ scrollHoverTickle: boolean;
7845
8424
  itemSize: number;
7846
8425
  gap: number;
7847
8426
  /**
@@ -8031,8 +8610,9 @@ declare class GridListElement<T = unknown> extends LitElement {
8031
8610
  removeSelectedKeys(keys: Iterable<string>): void;
8032
8611
  /**
8033
8612
  * Data mode: replace the whole item array. Selection and cursor keep any key
8034
- * that is still present; keys that vanish are dropped (one `list-select`).
8035
- * A no-op in element mode.
8613
+ * that is still present; keys that vanish are deselected silently and held
8614
+ * as pending view state, so they come back if the key reappears. A no-op in
8615
+ * element mode.
8036
8616
  */
8037
8617
  setItems(items: readonly T[]): void;
8038
8618
  /**
@@ -8049,19 +8629,36 @@ declare class GridListElement<T = unknown> extends LitElement {
8049
8629
  */
8050
8630
  updateItem(key: string, item: T): void;
8051
8631
  /**
8052
- * Data mode: remove the items carrying these keys. Removed keys are dropped
8053
- * from selection and cursor (via the `items` change). A no-op in element mode.
8632
+ * Data mode: remove the items carrying these keys. Removed keys leave the
8633
+ * selection and cursor silently (via the `items` change) and are held as
8634
+ * pending view state. A no-op in element mode.
8054
8635
  */
8055
8636
  removeItems(keys: Iterable<string>): void;
8056
8637
  /**
8057
8638
  * Data mode: drop every item. Selection and cursor are reset and one
8058
- * `list-select` with empty sets is emitted. A no-op in element mode.
8639
+ * `list-select` with empty sets is emitted; their keys are held as pending
8640
+ * view state, so re-adding the same keys restores them. A no-op in element
8641
+ * mode.
8059
8642
  */
8060
8643
  clearItems(): void;
8061
8644
  /** Move the cursor to the item with this key and scroll it into view. */
8062
8645
  focusKey(key: string): void;
8063
8646
  /** The key of the item under the cursor, or `undefined`. */
8064
8647
  get tickledKey(): string | undefined;
8648
+ /**
8649
+ * Snapshot selection, collapsed groups, keyboard cursor and scroll as plain
8650
+ * JSON, keyed by item / group key. Includes pending state for keys not
8651
+ * currently present unless `includePending: false`.
8652
+ */
8653
+ getViewState(options?: GetViewStateOptions<GridListViewState>): GridListViewState;
8654
+ /**
8655
+ * Apply saved view state. Fields present replace the current ones; keys
8656
+ * (items or groups) that aren't present yet are applied as they appear.
8657
+ * Restored selection fires `list-select`.
8658
+ */
8659
+ setViewState(state: Partial<GridListViewState>): void;
8660
+ /** Drop view state still waiting for its keys to appear. */
8661
+ clearPendingViewState(): void;
8065
8662
  /** Element mode: the light-DOM element carrying `key`, or `undefined`. */
8066
8663
  getItem(key: string): Element | undefined;
8067
8664
  /** Element mode: the light-DOM element at effective index `index`. */
@@ -8261,6 +8858,10 @@ interface GroupedItemListerElement<T> {
8261
8858
  addEventListener: (<K extends keyof GroupedItemListerElementEventMap<T>>(type: K, listener: (this: GroupedItemListerElement<T>, event: GroupedItemListerElementEventMap<T>[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
8262
8859
  }
8263
8860
  //#endregion
8861
+ //#region src/tree/tree-view-state.d.ts
8862
+ /** `ixfx-tree-list` view state. All fields are the shared base fields. */
8863
+ type TreeListViewState = ViewStateBase;
8864
+ //#endregion
8264
8865
  //#region src/tree/tree-base.d.ts
8265
8866
  /**
8266
8867
  * `auto` windows the list once it has more than `virtualizeThreshold` visible
@@ -8289,6 +8890,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8289
8890
  get selectedNodes(): ReadonlySet<TreeNode>;
8290
8891
  filterPredicate: TreeFilterPredicate | undefined;
8291
8892
  disableKeyboardNavigation: boolean;
8893
+ /**
8894
+ * Let hover follow rows that scroll beneath a stationary pointer. Off by
8895
+ * default: while a scroll gesture is active, row `pointerenter` is ignored so
8896
+ * the hover cursor holds still instead of trailing the content. Hover resumes
8897
+ * on the next real pointer movement, or when the pointer leaves the tree.
8898
+ */
8899
+ scrollHoverTickle: boolean;
8292
8900
  registry: CommandRegistry<unknown> | undefined;
8293
8901
  /**
8294
8902
  * Space-separated subset of `navigate select filter` — limits which
@@ -8338,6 +8946,12 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8338
8946
  applyInternalDrop: boolean;
8339
8947
  /** Immutable: replace via `#setExpanded` so the flat-row cache is invalidated. */
8340
8948
  protected _expandedKeys: ReadonlySet<string>;
8949
+ /**
8950
+ * Whether restoring view state may call `loadChildren` / `model` to open
8951
+ * saved branches that aren't loaded yet (one at a time, cascading down the
8952
+ * saved path). Default `true`.
8953
+ */
8954
+ restoreLoads: boolean;
8341
8955
  /** Bumped whenever `_selectedNodes` content may have changed. */
8342
8956
  protected _selectionVersion: number;
8343
8957
  /**
@@ -8352,6 +8966,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8352
8966
  /** Depths at which any loaded node carries an icon (stable across expansion). */
8353
8967
  protected get _depthsWithIcons(): ReadonlySet<number>;
8354
8968
  protected tickled: TickledController<string>;
8969
+ /**
8970
+ * Row `pointerenter` funnel: moves the hover cursor unless a scroll gesture
8971
+ * is sliding rows beneath a stationary pointer (see `scrollHoverTickle`).
8972
+ * Subclasses rendering their own rows should call this rather than the
8973
+ * tickled controller directly.
8974
+ */
8975
+ protected _handleRowPointerEnter(node: TreeNode, depth: number): void;
8355
8976
  protected _focusedDepth: number;
8356
8977
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
8357
8978
  readonly search: ListSearchController<{
@@ -8381,11 +9002,31 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8381
9002
  disconnectedCallback(): void;
8382
9003
  getConfig(): TreeConfig;
8383
9004
  setConfig(config: Partial<TreeConfig>): void;
9005
+ /**
9006
+ * Snapshot selection, expansion, cursor and scroll as plain JSON, keyed by
9007
+ * `item.key`. Includes pending state for keys not currently loaded.
9008
+ */
9009
+ getViewState(options?: GetViewStateOptions<TreeListViewState>): TreeListViewState;
9010
+ /**
9011
+ * Apply saved view state. Fields present replace the current ones; keys
9012
+ * that aren't loaded yet are applied as they appear — including via
9013
+ * `loadChildren` / `model` for saved-open branches when `restoreLoads`.
9014
+ */
9015
+ setViewState(state: Partial<TreeListViewState>): void;
9016
+ clearPendingViewState(): void;
8384
9017
  select(node: TreeNode): void;
8385
9018
  deselect(node: TreeNode): void;
8386
9019
  clearSelection(): void;
8387
- selectAll(): void;
8388
- deselectAll(): void;
9020
+ /**
9021
+ * Select every selectable node in the tree, or only the matches while a
9022
+ * `filterPredicate` is active. Nodes inside collapsed branches are included;
9023
+ * unloaded (lazy) children are not. With `visibleOnly`, only rows that are
9024
+ * showing are selected (Ctrl+A). In `checked` mode checking a row checks its
9025
+ * descendants, so `visibleOnly` makes no difference there.
9026
+ */
9027
+ selectAll(options?: TreeSelectAllOptions): void;
9028
+ /** Mirror of {@link selectAll}: deselect the same set of nodes it would select. */
9029
+ deselectAll(options?: TreeSelectAllOptions): void;
8389
9030
  /**
8390
9031
  * Expand every already-loaded branch in a single update. With `maxDepth`,
8391
9032
  * only branches at depth < `maxDepth` are expanded (the root's children are
@@ -8963,6 +9604,29 @@ type HyperbolicFocusDetail = {
8963
9604
  };
8964
9605
  type HyperbolicFocusEvent = CustomEvent<HyperbolicFocusDetail>;
8965
9606
  //#endregion
9607
+ //#region src/hyperbolic-tree/hyperbolic-view-state.d.ts
9608
+ /**
9609
+ * Pure view-state helpers for `ixfx-hyperbolictree-list`. The element re-runs
9610
+ * {@link reconcileHyperbolicViewState} whenever its structure changes (new
9611
+ * `root` / `model`, model invalidation, a lazy load), so state keyed to nodes
9612
+ * that left the tree goes pending and comes back when those keys reappear.
9613
+ */
9614
+ /**
9615
+ * `ixfx-hyperbolictree-list` view state.
9616
+ * - `selected` / `focus` — the shared base fields (`focus` is the keyboard
9617
+ * cursor, not the centred node).
9618
+ * - `center` — key path from the root's children down to the centred node
9619
+ * (`[]` = the root). A path, not a lone key, because keys may repeat across
9620
+ * branches here (e.g. `readme.md`), and so a deep centre in lazily-loaded
9621
+ * data can be restored by loading each ancestor in turn. A free pan away
9622
+ * from the centred node is transient and not saved.
9623
+ * - `zoom` — the visual magnification (the `zoom` property).
9624
+ */
9625
+ type HyperbolicTreeListViewState = ViewStateBase & {
9626
+ readonly center?: readonly string[];
9627
+ readonly zoom?: number;
9628
+ };
9629
+ //#endregion
8966
9630
  //#region src/hyperbolic-tree/render-utils.d.ts
8967
9631
  /**
8968
9632
  * How nodes are drawn:
@@ -9126,6 +9790,11 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9126
9790
  * repeats keys across branches still focuses the node actually clicked.
9127
9791
  */
9128
9792
  private _focusId;
9793
+ /**
9794
+ * Whether restoring a saved `center` may call `loadChildren` / `model` to
9795
+ * load the ancestors on its path (one at a time, cascading down). Default `true`.
9796
+ */
9797
+ restoreLoads: boolean;
9129
9798
  /**
9130
9799
  * Canonical → screen projection overriding the settled "focus at the
9131
9800
  * center" view — set per-frame while a focus change animates, and by
@@ -9153,6 +9822,7 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9153
9822
  private _hostSize;
9154
9823
  connectedCallback(): void;
9155
9824
  disconnectedCallback(): void;
9825
+ protected willUpdate(changedProps: PropertyValues): void;
9156
9826
  protected updated(changedProps: PropertyValues): void;
9157
9827
  select(node: TreeNode): void;
9158
9828
  deselect(node: TreeNode): void;
@@ -9188,6 +9858,18 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9188
9858
  node: TreeNode;
9189
9859
  depth: number;
9190
9860
  }>;
9861
+ /**
9862
+ * Snapshot selection, centred node, keyboard cursor and zoom as plain JSON,
9863
+ * keyed by `item.key`. Includes pending state for keys not currently loaded.
9864
+ */
9865
+ getViewState(options?: GetViewStateOptions<HyperbolicTreeListViewState>): HyperbolicTreeListViewState;
9866
+ /**
9867
+ * Apply saved view state. Fields present replace the current ones; keys
9868
+ * that aren't loaded yet are applied as they appear — a deep `center` loads
9869
+ * its ancestors via `loadChildren` / `model` when `restoreLoads`.
9870
+ */
9871
+ setViewState(state: Partial<HyperbolicTreeListViewState>): void;
9872
+ clearPendingViewState(): void;
9191
9873
  protected render(): import("lit").TemplateResult<1>;
9192
9874
  static styles: import("lit").CSSResult[];
9193
9875
  }
@@ -9326,6 +10008,26 @@ declare function computeHyperbolicLayout(root: TreeNode | undefined, options?: C
9326
10008
  edges: HyperbolicLayoutEdge[];
9327
10009
  };
9328
10010
  //#endregion
10011
+ //#region src/icicle-tree/icicle-view-state.d.ts
10012
+ /**
10013
+ * Pure helpers behind `ixfx-icicletree-list` view state (also used by the
10014
+ * sunburst, which shares the zoom-path model). The component runs them on
10015
+ * every update, so state keyed to nodes that left the tree goes pending and
10016
+ * comes back when those keys reappear. See `docs/infra-view-state.md`.
10017
+ */
10018
+ /**
10019
+ * `ixfx-icicletree-list` view state: `selected`, `focus`, `scroll`, plus the
10020
+ * zoom path.
10021
+ */
10022
+ type IcicleViewState = ViewStateBase & {
10023
+ /**
10024
+ * Keys from the root's children down to the zoomed-into node; `[]` = the
10025
+ * full tree. A path rather than a lone key so a lazily-loaded tree can be
10026
+ * opened down to it, one load at a time.
10027
+ */
10028
+ readonly zoom?: readonly string[];
10029
+ };
10030
+ //#endregion
9329
10031
  //#region src/icicle-tree/types.d.ts
9330
10032
  /**
9331
10033
  * Weight accessor — returns the area share of `item` within its siblings.
@@ -9503,6 +10205,11 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9503
10205
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
9504
10206
  get focusedNode(): TreeNode | undefined;
9505
10207
  private _zoomKey;
10208
+ /**
10209
+ * Whether restoring a saved zoom may call `loadChildren` / `model` to load
10210
+ * the nodes along its path (one at a time). Default `true`.
10211
+ */
10212
+ restoreLoads: boolean;
9506
10213
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
9507
10214
  readonly search: ListSearchController<{
9508
10215
  node: TreeNode;
@@ -9520,7 +10227,20 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9520
10227
  private _tooltipEl;
9521
10228
  connectedCallback(): void;
9522
10229
  disconnectedCallback(): void;
10230
+ protected willUpdate(changedProps: PropertyValues): void;
9523
10231
  protected updated(changedProps: PropertyValues): void;
10232
+ /**
10233
+ * Snapshot selection, zoom path, keyboard cursor and scroll as plain JSON,
10234
+ * keyed by `item.key`. Includes pending state for keys not currently loaded.
10235
+ */
10236
+ getViewState(options?: GetViewStateOptions<IcicleViewState>): IcicleViewState;
10237
+ /**
10238
+ * Apply saved view state. Fields present replace the current ones; keys
10239
+ * that aren't loaded yet are applied as they appear — including via
10240
+ * `loadChildren` / `model` down a saved zoom path when `restoreLoads`.
10241
+ */
10242
+ setViewState(state: Partial<IcicleViewState>): void;
10243
+ clearPendingViewState(): void;
9524
10244
  select(node: TreeNode): void;
9525
10245
  deselect(node: TreeNode): void;
9526
10246
  clearSelection(): void;
@@ -9585,6 +10305,13 @@ declare function findIcicleNode(root: TreeNode | undefined, key: string): TreeNo
9585
10305
  * Returns `undefined` when the key is absent. The first entry is always `root`.
9586
10306
  */
9587
10307
  declare function findIciclePath(root: TreeNode | undefined, key: string): TreeNode[] | undefined;
10308
+ /**
10309
+ * Follow `keys` from `root`; a leading key equal to the root's own key
10310
+ * matches the root itself. Returns `undefined` when a key isn't found.
10311
+ */
10312
+ declare function resolveIcicleKeyPath(root: TreeNode | undefined, keys: readonly string[]): TreeNode | undefined;
10313
+ /** Key path (depth-first) to the first node among `nodes` matching `predicate`. */
10314
+ declare function findIcicleKeyPath(nodes: readonly TreeNode[], predicate: (node: TreeNode) => boolean, prefix?: readonly string[]): string[] | undefined;
9588
10315
  /**
9589
10316
  * Compute the visible rectangles for an icicle view.
9590
10317
  *
@@ -9977,9 +10704,6 @@ declare global {
9977
10704
  //#endregion
9978
10705
  //#region src/miller/types.d.ts
9979
10706
  type MillerSelectionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
9980
- type MillerConfig = {
9981
- columnWidths: Record<number, number>;
9982
- };
9983
10707
  /** Detail for the `header-click` event fired when a column header is clicked. */
9984
10708
  type MillerHeaderClickDetail = {
9985
10709
  /** Zero-based column index whose header was clicked. */
@@ -10044,6 +10768,26 @@ type MillerItemState = {
10044
10768
  isLeaf: boolean;
10045
10769
  };
10046
10770
  //#endregion
10771
+ //#region src/miller/miller-view-state.d.ts
10772
+ /**
10773
+ * Pure view-state helpers for `ixfx-miller-*`. The element runs these
10774
+ * whenever its data changes (new root, lazy load, `invalidateStructure()`)
10775
+ * and on `setViewState()`; see docs/infra-view-state.md.
10776
+ */
10777
+ /** `ixfx-miller-list` view state. */
10778
+ type MillerListViewState = ViewStateBase & {
10779
+ /**
10780
+ * Key of the open branch at each depth, from column 0 down, relative to the
10781
+ * view root. A Miller view has exactly one open branch per column, so this
10782
+ * is an ordered path rather than an `expanded` record.
10783
+ */
10784
+ readonly path?: readonly string[];
10785
+ /** User-resized column widths in px, keyed by column depth. */
10786
+ readonly columnWidths?: Readonly<Record<string, number>>;
10787
+ /** Per-column scroll, keyed by the key of the node whose children the column lists. */
10788
+ readonly columnScroll?: Readonly<Record<string, ScrollState>>;
10789
+ };
10790
+ //#endregion
10047
10791
  //#region src/miller/miller-base.d.ts
10048
10792
  /**
10049
10793
  * Base class for Miller column components. Handles column lifecycle,
@@ -10140,6 +10884,12 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10140
10884
  protected _selectedByDepth: Map<number, TreeNode>;
10141
10885
  protected _selectedKeys: Set<string>;
10142
10886
  protected _selectedNodes: Set<TreeNode>;
10887
+ /**
10888
+ * Whether restoring view state may call `loadChildren` / `model` to open a
10889
+ * saved path through branches that aren't loaded yet (one load at a time,
10890
+ * cascading down the path). Default `true`.
10891
+ */
10892
+ restoreLoads: boolean;
10143
10893
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
10144
10894
  readonly search: ListSearchController<{
10145
10895
  node: TreeNode;
@@ -10148,11 +10898,24 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10148
10898
  /** Command registry carrying this component's `list.search.*` commands. */
10149
10899
  get registry(): CommandRegistry<unknown> | undefined;
10150
10900
  tickled: TickledController<string>;
10901
+ willUpdate(_changedProps: PropertyValues): void;
10151
10902
  updated(changedProps: PropertyValues): void;
10903
+ firstUpdated(): void;
10152
10904
  connectedCallback(): void;
10153
10905
  disconnectedCallback(): void;
10154
- getConfig(): MillerConfig;
10155
- setConfig(config: MillerConfig): void;
10906
+ /**
10907
+ * Snapshot the open path, selection, keyboard cursor, column widths and
10908
+ * column scroll as plain JSON, keyed by `item.key`. Includes pending state
10909
+ * for keys not currently loaded.
10910
+ */
10911
+ getViewState(options?: GetViewStateOptions<MillerListViewState>): MillerListViewState;
10912
+ /**
10913
+ * Apply saved view state. Fields present replace the current ones; keys not
10914
+ * loaded yet are applied as they appear — including via `loadChildren` /
10915
+ * `model` for the saved path when `restoreLoads`.
10916
+ */
10917
+ setViewState(state: Partial<MillerListViewState>): void;
10918
+ clearPendingViewState(): void;
10156
10919
  /** Read current selection as an immutable set of item keys. */
10157
10920
  get selectedKeys(): ReadonlySet<string>;
10158
10921
  /** Replace entire selection and trigger a re-render. */
@@ -10452,6 +11215,21 @@ type MulticolSelectDetail = {
10452
11215
  readonly columns: readonly MulticolColumnSelection[];
10453
11216
  };
10454
11217
  //#endregion
11218
+ //#region src/multicol-list/multicol-view-state.d.ts
11219
+ /**
11220
+ * `ixfx-multicol-list` view state. The shared `selected` / `scroll` fields
11221
+ * aren't used: every column has its own selection and scroll, keyed by
11222
+ * column id.
11223
+ */
11224
+ type MulticolListViewState = ViewStateBase & {
11225
+ /** Column layout in display order. */
11226
+ readonly columns?: readonly MulticolColumnState[];
11227
+ /** Selected item keys per column id. A missing / empty column is at 'All'. */
11228
+ readonly selectedByColumn?: Readonly<Record<string, readonly string[]>>;
11229
+ /** Scroll position of each column's list, keyed by column id. */
11230
+ readonly scrollByColumn?: Readonly<Record<string, ScrollState>>;
11231
+ };
11232
+ //#endregion
10455
11233
  //#region src/multicol-list/multicol-list.d.ts
10456
11234
  type MulticolSelectEvent = CustomEvent<MulticolSelectDetail>;
10457
11235
  type MulticolColumnsChangeDetail = {
@@ -10462,6 +11240,7 @@ type MulticolColumnsChangeEvent = CustomEvent<MulticolColumnsChangeDetail>;
10462
11240
  interface MulticolListElementEventMap {
10463
11241
  'multicol-select': MulticolSelectEvent;
10464
11242
  'multicol-columns-change': MulticolColumnsChangeEvent;
11243
+ 'view-state-change': ViewStateChangeEvent<MulticolListViewState>;
10465
11244
  }
10466
11245
  declare global {
10467
11246
  interface HTMLElementTagNameMap {
@@ -10489,8 +11268,6 @@ declare class MulticolListElement extends LitElement {
10489
11268
  private _idCounter;
10490
11269
  private _autoSeeded;
10491
11270
  private _drag;
10492
- get columns(): readonly MulticolColumnState[];
10493
- setColumns(states: readonly MulticolColumnState[]): void;
10494
11271
  addColumn(categoryKey: string, position?: number): void;
10495
11272
  removeColumn(columnId: string): void;
10496
11273
  getSelection(): ReadonlyArray<{
@@ -10499,7 +11276,22 @@ declare class MulticolListElement extends LitElement {
10499
11276
  values: readonly string[];
10500
11277
  }>;
10501
11278
  clearSelection(): void;
11279
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
10502
11280
  protected render(): import("lit").TemplateResult<1>;
11281
+ /**
11282
+ * Snapshot the column layout (in display order) and each column's
11283
+ * selection and scroll, keyed by column id. Includes pending state —
11284
+ * saved columns whose category isn't known and keys not yet in the data.
11285
+ */
11286
+ getViewState(options?: GetViewStateOptions<MulticolListViewState>): MulticolListViewState;
11287
+ /**
11288
+ * Apply saved view state; fields present replace the current ones.
11289
+ * `columns` creates, reorders, re-points and removes columns to match
11290
+ * (columns whose category isn't in `categories` wait until it is).
11291
+ * Selection keys not in a column's data are applied when they arrive.
11292
+ */
11293
+ setViewState(state: Partial<MulticolListViewState>): void;
11294
+ clearPendingViewState(): void;
10503
11295
  protected updated(changedProperties: Map<string, unknown>): void;
10504
11296
  private _renderColumn;
10505
11297
  private _getCategoryLabel;
@@ -11704,6 +12496,336 @@ declare function preserveRestoreWeights(previous: GroupNode | null, next: GroupN
11704
12496
  declare function findPanelNode(group: GroupNode, id: string): PanelNode | undefined;
11705
12497
  declare function walk(group: GroupNode, visitor: (node: LayoutNode, path: number[]) => void): void;
11706
12498
  //#endregion
12499
+ //#region src/sunburst-tree/types.d.ts
12500
+ /**
12501
+ * Value accessor — returns the magnitude of a node, branches included.
12502
+ *
12503
+ * A child's arc is its share of its parent's value:
12504
+ * `child / max(parent, Σ siblings)`. When children sum to less than their
12505
+ * parent, the remainder shows as an unfilled gap — which is what makes
12506
+ * progressively-arriving data fill in visibly. When they sum to more, they're
12507
+ * scaled to fit.
12508
+ *
12509
+ * Return `undefined` (or a negative / non-finite number) for "unknown": the
12510
+ * node then uses the sum of its loaded children's values, or `1` for a leaf
12511
+ * or not-yet-loaded node.
12512
+ *
12513
+ * Default: `item => item.weight`.
12514
+ */
12515
+ type SunburstValueAccessor = (item: TreeItem, node: TreeNode) => number | undefined;
12516
+ /** Formats a node's value for the centre readout. */
12517
+ type SunburstValueFormatter = (value: number, node: TreeNode) => string;
12518
+ /**
12519
+ * Pointer/keyboard gesture mapping (subset of `TreeInteractionMode`).
12520
+ * - `'implicit'` — click selects + zooms; single selection follows the pointer.
12521
+ * - `'standard'` — click selects + zooms; Ctrl/Cmd+click toggles, Shift+click range-selects.
12522
+ * - `'manual'` — click only zooms; selection is driven via `select()`/`deselect()`/`clearSelection()`.
12523
+ *
12524
+ * `checked` is deliberately unsupported — a checkbox per arc does not hold up
12525
+ * at small arc sizes.
12526
+ */
12527
+ type SunburstInteractionMode = `implicit` | `standard` | `manual`;
12528
+ /**
12529
+ * A node positioned in the absolute (unzoomed) layout produced by
12530
+ * `computeSunburstLayout()`. Angles are fractions of a full turn, clockwise
12531
+ * from 12 o'clock; the true root spans `0..1`.
12532
+ */
12533
+ type SunburstLayoutNode = {
12534
+ /** Key path from the true root, joined with {@link SUNBURST_PATH_SEPARATOR}. */
12535
+ readonly id: string;
12536
+ readonly node: TreeNode;
12537
+ readonly parentId: string | undefined;
12538
+ /** Depth from the true root (root is `0`). */
12539
+ readonly depth: number;
12540
+ /** Start angle, fraction of a turn (0–1). */
12541
+ readonly x0: number;
12542
+ /** End angle, fraction of a turn (0–1). */
12543
+ readonly x1: number;
12544
+ /** Resolved value (accessor result, or fallback). */
12545
+ readonly value: number;
12546
+ /** 0-based position among siblings. */
12547
+ readonly index: number;
12548
+ /** Number of siblings (for `aria-setsize`). */
12549
+ readonly setSize: number;
12550
+ readonly hasChildren: boolean;
12551
+ };
12552
+ /** Absolute layout, keyed by id, in ring-major (breadth-first) order. */
12553
+ type SunburstLayout = ReadonlyMap<string, SunburstLayoutNode>;
12554
+ type ComputeSunburstLayoutOptions = {
12555
+ valueAccessor?: SunburstValueAccessor;
12556
+ /**
12557
+ * Deepest absolute depth (root is `0`) to lay out. Nodes below it get no
12558
+ * position. Defaults to no limit.
12559
+ */
12560
+ maxDepth?: number;
12561
+ };
12562
+ /**
12563
+ * The zoom window the absolute layout is projected through: the zoom node's
12564
+ * angular span becomes the full circle, and its depth becomes the centre.
12565
+ */
12566
+ type SunburstView = {
12567
+ readonly x0: number;
12568
+ readonly x1: number;
12569
+ /** Absolute depth of the zoom node. */
12570
+ readonly depth: number;
12571
+ };
12572
+ /**
12573
+ * Everything that's animated about one arc, in screen terms. Interpolated
12574
+ * per frame between the displayed state and the target state.
12575
+ */
12576
+ type SunburstArcVisual = {
12577
+ /** Start angle, fraction of a turn (0–1) of the zoomed view. */
12578
+ readonly a0: number;
12579
+ /** End angle, fraction of a turn (0–1) of the zoomed view. */
12580
+ readonly a1: number;
12581
+ /**
12582
+ * Ring index relative to the zoom node: `0` is the first ring, `-1` the
12583
+ * centre disc, `≤ -2` collapsed into the centre. Fractional mid-animation.
12584
+ */
12585
+ readonly depth: number;
12586
+ /** Hue offset in degrees (added to `--sunbursttree-hue-start`). */
12587
+ readonly hue: number;
12588
+ /** Sibling-position tone offset, `-0.5..0.5`. */
12589
+ readonly shade: number;
12590
+ readonly opacity: number;
12591
+ };
12592
+ /** Ring geometry in SVG user units (CSS px). */
12593
+ type SunburstRings = {
12594
+ /** Radius of the centre disc. */
12595
+ readonly center: number;
12596
+ /** Width of each ring. */
12597
+ readonly ring: number;
12598
+ };
12599
+ /** Where to draw an arc's label, if it fits. */
12600
+ type SunburstLabelPlacement = {
12601
+ readonly kind: `straight`;
12602
+ readonly x: number;
12603
+ readonly y: number;
12604
+ /** Rotation in degrees, applied about (x, y). */
12605
+ readonly rotate: number;
12606
+ readonly text: string;
12607
+ } | {
12608
+ readonly kind: `curved`;
12609
+ /** Guide path for `<textPath>`: an arc along the ring's middle, drawn so text reads upright. */
12610
+ readonly path: string;
12611
+ readonly text: string;
12612
+ };
12613
+ /** Ids are key paths; keys only need to be unique among siblings. */
12614
+ declare const SUNBURST_PATH_SEPARATOR = "";
12615
+ //#endregion
12616
+ //#region src/sunburst-tree/layout.d.ts
12617
+ /** Default accessor: the shared `TreeItem.weight` field. */
12618
+ declare const defaultSunburstValueAccessor: SunburstValueAccessor;
12619
+ /** Id of the child `key` under `parentId`. */
12620
+ declare function sunburstChildId(parentId: string, key: string): string;
12621
+ /** Join a key path (root key first) into an id. */
12622
+ declare function sunburstPathToId(path: readonly string[]): string;
12623
+ /** True when `ancestorId` is a strict ancestor of `id`. */
12624
+ declare function isSunburstAncestorId(ancestorId: string, id: string): boolean;
12625
+ /** Split an id back into its key path. */
12626
+ declare function sunburstIdToPath(id: string): string[];
12627
+ /** Parent id, or `undefined` for the root id. */
12628
+ declare function sunburstParentId(id: string): string | undefined;
12629
+ /** Resolve an id (key path from the root, root key included) to a node. */
12630
+ declare function findSunburstNodeById(root: TreeNode | undefined, id: string): TreeNode | undefined;
12631
+ /**
12632
+ * Depth-first search for the first node matching `predicate`. Returns its id
12633
+ * (root key included), or `undefined`.
12634
+ */
12635
+ declare function findSunburstId(root: TreeNode | undefined, predicate: (node: TreeNode) => boolean): string | undefined;
12636
+ /**
12637
+ * Returns a memoised resolver for node values: the accessor's value when
12638
+ * valid, else the sum of loaded children, else `1`.
12639
+ */
12640
+ declare function createValueResolver(accessor: SunburstValueAccessor): (node: TreeNode) => number;
12641
+ /** True when `node` may have children (loaded or loadable). */
12642
+ declare function sunburstHasChildren(node: TreeNode): boolean;
12643
+ /**
12644
+ * Compute the absolute layout of the whole (loaded) tree. The root spans the
12645
+ * full turn at depth `0`; each child spans
12646
+ * `parentSpan × value / max(parentValue, Σ siblingValues)`, packed from the
12647
+ * parent's start angle in sibling order. Returned in ring-major order.
12648
+ */
12649
+ declare function computeSunburstLayout(root: TreeNode | undefined, options?: ComputeSunburstLayoutOptions): SunburstLayout;
12650
+ //#endregion
12651
+ //#region src/sunburst-tree/sunburst-view-state.d.ts
12652
+ /**
12653
+ * Pure helpers behind `ixfx-sunbursttree-list` view state. Arcs are
12654
+ * identified by key *path* (keys need only be unique among siblings), so live
12655
+ * selection follows its path across data changes; saved keys — which are
12656
+ * bare `item.key`s — resolve to the first node, depth-first, carrying them.
12657
+ * See `docs/infra-view-state.md`.
12658
+ */
12659
+ /** `ixfx-sunbursttree-list` view state: `selected`, `focus`, plus the zoom path. */
12660
+ type SunburstViewState = ViewStateBase & {
12661
+ /**
12662
+ * Keys from the root's children down to the centre node; `[]` = the full
12663
+ * tree. A path because keys are only unique among siblings, and so a
12664
+ * lazily-loaded tree can be opened down to it, one load at a time.
12665
+ */
12666
+ readonly zoom?: readonly string[];
12667
+ };
12668
+ //#endregion
12669
+ //#region src/sunburst-tree/sunbursttree-list.d.ts
12670
+ /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
12671
+ type SunburstZoomDetail = {
12672
+ readonly node: TreeNode | undefined;
12673
+ /** Absolute depth of the zoom node (root's children are depth 0); `-1` when fully zoomed out. */
12674
+ readonly depth: number;
12675
+ };
12676
+ type SunburstZoomEvent = CustomEvent<SunburstZoomDetail>;
12677
+ interface SunburstTreeListElementEventMap extends TreeComponentEventMap {
12678
+ 'select': TreeSelectEvent;
12679
+ 'tickle': TreeTickleEvent;
12680
+ 'activate': TreeActivateEvent;
12681
+ 'item-click': TreeItemClickEvent;
12682
+ 'item-dblclick': TreeItemDblClickEvent;
12683
+ 'expand': TreeExpandEvent;
12684
+ 'collapse': TreeCollapseEvent;
12685
+ 'zoom': SunburstZoomEvent;
12686
+ }
12687
+ /**
12688
+ * `ixfx-sunbursttree-list` — a zoomable sunburst over weighted tree data.
12689
+ *
12690
+ * The zoom node is the centre disc; each ring outward is one generation,
12691
+ * each arc's angle its share of its parent's value. Every data, weighting or
12692
+ * zoom change animates from what's on screen to the new layout. Hues come
12693
+ * from the ring around the centre; descendants take tones of their
12694
+ * first-ring ancestor's hue.
12695
+ *
12696
+ * Implements `TreeComponent`. Deliberate differences from `ixfx-tree-list`:
12697
+ * - **Expand/collapse is reinterpreted as zoom.** `expand` fires on zoom-in,
12698
+ * `collapse` on zoom-out.
12699
+ * - **`interactionMode` drops `checked`**; **`exclusivity` is ignored**.
12700
+ * - **`filterPredicate` dims** non-matching arcs instead of hiding them.
12701
+ * - **Reassigning `root` keeps zoom and selection** where the same key paths
12702
+ * still exist, so streamed or immutably-rebuilt data animates in place.
12703
+ */
12704
+ declare class SunburstTreeListElement extends LitElement implements TreeComponent, TreeSearchHost {
12705
+ #private;
12706
+ static shadowRootOptions: {
12707
+ delegatesFocus: boolean;
12708
+ clonable?: boolean;
12709
+ customElementRegistry?: CustomElementRegistry | null;
12710
+ mode: ShadowRootMode;
12711
+ serializable?: boolean;
12712
+ slotAssignment?: SlotAssignmentMode;
12713
+ };
12714
+ root: TreeNode | undefined;
12715
+ model: TreeDataModel | undefined;
12716
+ /** Callback to lazily load children for a node. Superseded by `model` when both are set. */
12717
+ loadChildren: LoadChildrenCallback | undefined;
12718
+ /** Accepted for `TreeComponent` compatibility but ignored. */
12719
+ exclusivity: TreeExclusivity;
12720
+ selectionFilter: TreeSelectionFilter;
12721
+ /** Gesture mapping. `checked` is unsupported. */
12722
+ interactionMode: SunburstInteractionMode;
12723
+ /** How many rings render around the centre. */
12724
+ maxDepth: number;
12725
+ /** Radius of the centre disc as a fraction of the overall radius (0–0.9). */
12726
+ centerRatio: number;
12727
+ /** Arcs whose outer edge is shorter than this (px) aren't drawn. */
12728
+ minArcLength: number;
12729
+ /** Hide in-arc labels (the centre readout still shows). */
12730
+ disableLabels: boolean;
12731
+ /**
12732
+ * Curve labels to follow their ring (`<textPath>`) instead of drawing them
12733
+ * straight. Arcs too narrow for that still get straight radial labels.
12734
+ */
12735
+ curvedLabels: boolean;
12736
+ /** Duration (ms) of data, weighting and zoom transitions. `0` snaps. Respects `prefers-reduced-motion`. */
12737
+ animationDuration: number;
12738
+ /**
12739
+ * Node value. Swap it to change weighting scheme — the chart animates to
12740
+ * the new layout without rebuilding anything. Default: `item.weight`.
12741
+ * See `SunburstValueAccessor` for how missing values fall back.
12742
+ */
12743
+ valueAccessor: SunburstValueAccessor;
12744
+ /** Formats values for the centre readout. */
12745
+ valueFormatter: SunburstValueFormatter;
12746
+ selectedNode: TreeNode | undefined;
12747
+ private _selectedNodes;
12748
+ get selectedNodes(): ReadonlySet<TreeNode>;
12749
+ filterPredicate: TreeFilterPredicate | undefined;
12750
+ disableKeyboardNavigation: boolean;
12751
+ registry: CommandRegistry<unknown> | undefined;
12752
+ /** Space-separated subset of `navigate select filter`. See `docs/infra-incremental.md`. */
12753
+ searchModes: string | undefined;
12754
+ /** Current zoom root. `undefined` when showing the full tree. Pure view-state. */
12755
+ get focusedNode(): TreeNode | undefined;
12756
+ /** Id (key path) of the zoom node; `undefined` = the true root. */
12757
+ private _zoomId;
12758
+ /**
12759
+ * Whether restoring a saved zoom may call `loadChildren` / `model` to load
12760
+ * the nodes along its path (one at a time). Default `true`.
12761
+ */
12762
+ restoreLoads: boolean;
12763
+ private _size;
12764
+ readonly search: ListSearchController<{
12765
+ node: TreeNode;
12766
+ depth: number;
12767
+ }>;
12768
+ private tickled;
12769
+ /** Set by every update request except animation frames — triggers a re-layout. */
12770
+ private _layoutDirty;
12771
+ private _ticking;
12772
+ requestUpdate(...args: Parameters<LitElement[`requestUpdate`]>): void;
12773
+ connectedCallback(): void;
12774
+ disconnectedCallback(): void;
12775
+ protected willUpdate(changed: PropertyValues): void;
12776
+ protected updated(changed: PropertyValues): void;
12777
+ /**
12778
+ * Snapshot selection, zoom path and keyboard cursor as plain JSON, keyed by
12779
+ * `item.key`. Includes pending state for keys not currently loaded.
12780
+ */
12781
+ getViewState(options?: GetViewStateOptions<SunburstViewState>): SunburstViewState;
12782
+ /**
12783
+ * Apply saved view state. Fields present replace the current ones; keys
12784
+ * that aren't loaded yet are applied as they appear — including via
12785
+ * `loadChildren` / `model` down a saved zoom path when `restoreLoads`.
12786
+ */
12787
+ setViewState(state: Partial<SunburstViewState>): void;
12788
+ clearPendingViewState(): void;
12789
+ select(node: TreeNode): void;
12790
+ deselect(node: TreeNode): void;
12791
+ clearSelection(): void;
12792
+ selectAll(): void;
12793
+ deselectAll(): void;
12794
+ selectMany(nodes: Iterable<TreeNode>): void;
12795
+ /**
12796
+ * Zoom so `node` becomes the centre, its children the first ring. Fires
12797
+ * `zoom` and `expand` (or `collapse` when `node` is an ancestor of the
12798
+ * current centre). Pure view-state — `root` is never mutated.
12799
+ */
12800
+ zoomTo(node: TreeNode): void;
12801
+ /** Zoom out one level: the centre's parent becomes the centre. */
12802
+ zoomUp(): void;
12803
+ /** Zoom all the way out to the full tree. */
12804
+ zoomOut(): void;
12805
+ /** Zoom to reveal the node at `keys` (path from the root's children), then select it. */
12806
+ navigateTo(keys: readonly string[]): boolean;
12807
+ /** Zoom + select the first node (depth-first) matching `predicate`. */
12808
+ navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
12809
+ /** Zoom to reveal the first node with `key` and move the cursor to it, without selecting. */
12810
+ revealKey(key: string): boolean;
12811
+ /** Arcs currently drawn (centre excluded), ring-major, depth from the root's children. */
12812
+ getNodes(): ReadonlyArray<{
12813
+ node: TreeNode;
12814
+ depth: number;
12815
+ }>;
12816
+ protected render(): import("lit").TemplateResult<1>;
12817
+ static styles: import("lit").CSSResult[];
12818
+ }
12819
+ declare global {
12820
+ interface HTMLElementTagNameMap {
12821
+ 'ixfx-sunbursttree-list': SunburstTreeListElement;
12822
+ }
12823
+ }
12824
+ interface SunburstTreeListElement {
12825
+ addEventListener: (<K extends keyof SunburstTreeListElementEventMap>(type: K, listener: (this: SunburstTreeListElement, event: SunburstTreeListElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
12826
+ removeEventListener: (<K extends keyof SunburstTreeListElementEventMap>(type: K, listener: (this: SunburstTreeListElement, event: SunburstTreeListElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
12827
+ }
12828
+ //#endregion
11707
12829
  //#region src/swipe/swipe.d.ts
11708
12830
  type SwipeInputDetail = {
11709
12831
  readonly value: number;
@@ -12741,6 +13863,24 @@ declare function findTreemapPath(root: TreeNode | undefined, key: string): TreeN
12741
13863
  */
12742
13864
  declare function computeTreemapLayout(root: TreeNode | undefined, options?: ComputeTreemapLayoutOptions): TreemapRect[];
12743
13865
  //#endregion
13866
+ //#region src/treemap/treemap-view-state.d.ts
13867
+ /**
13868
+ * Pure view-state helpers for `ixfx-treemap-list`. The element re-runs
13869
+ * {@link reconcileTreemapViewState} whenever its structure changes (new
13870
+ * `root` / `model`, model invalidation, a lazy load), so state keyed to nodes
13871
+ * that left the tree goes pending and comes back when those keys reappear.
13872
+ */
13873
+ /**
13874
+ * `ixfx-treemap-list` view state.
13875
+ * - `selected` / `focus` — the shared base fields.
13876
+ * - `zoom` — key path from the root's children down to the zoom root
13877
+ * (`[]` = the full tree). A path rather than a lone key so a deep zoom into
13878
+ * lazily-loaded data can be restored by loading each ancestor in turn.
13879
+ */
13880
+ type TreemapListViewState = ViewStateBase & {
13881
+ readonly zoom?: readonly string[];
13882
+ };
13883
+ //#endregion
12744
13884
  //#region src/treemap/treemap-list.d.ts
12745
13885
  /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
12746
13886
  type TreemapZoomDetail = {
@@ -12877,6 +14017,11 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
12877
14017
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
12878
14018
  get focusedNode(): TreeNode | undefined;
12879
14019
  private _zoomKey;
14020
+ /**
14021
+ * Whether restoring a saved `zoom` may call `loadChildren` / `model` to load
14022
+ * the ancestors on its path (one at a time, cascading down). Default `true`.
14023
+ */
14024
+ restoreLoads: boolean;
12880
14025
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
12881
14026
  readonly search: ListSearchController<{
12882
14027
  node: TreeNode;
@@ -12885,6 +14030,7 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
12885
14030
  private tickled;
12886
14031
  connectedCallback(): void;
12887
14032
  disconnectedCallback(): void;
14033
+ protected willUpdate(changedProps: PropertyValues): void;
12888
14034
  protected updated(changedProps: PropertyValues): void;
12889
14035
  select(node: TreeNode): void;
12890
14036
  deselect(node: TreeNode): void;
@@ -12927,6 +14073,18 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
12927
14073
  node: TreeNode;
12928
14074
  depth: number;
12929
14075
  }>;
14076
+ /**
14077
+ * Snapshot selection, zoom path and keyboard cursor as plain JSON, keyed by
14078
+ * `item.key`. Includes pending state for keys not currently loaded.
14079
+ */
14080
+ getViewState(options?: GetViewStateOptions<TreemapListViewState>): TreemapListViewState;
14081
+ /**
14082
+ * Apply saved view state. Fields present replace the current ones; keys
14083
+ * that aren't loaded yet are applied as they appear — a deep `zoom` loads
14084
+ * its ancestors via `loadChildren` / `model` when `restoreLoads`.
14085
+ */
14086
+ setViewState(state: Partial<TreemapListViewState>): void;
14087
+ clearPendingViewState(): void;
12930
14088
  protected render(): import("lit").TemplateResult<1>;
12931
14089
  static styles: import("lit").CSSResult[];
12932
14090
  }
@@ -12941,6 +14099,17 @@ interface TreemapListElement {
12941
14099
  }
12942
14100
  //#endregion
12943
14101
  //#region src/twosplit-layout/split-layout.d.ts
14102
+ /** One side of an `ixfx-twosplit-layout` in its view state. */
14103
+ type TwoSplitPanelViewState = {
14104
+ /** CSS size, as in `sizeA` / `sizeB` (e.g. `30%`, `200px`). */
14105
+ readonly size: string;
14106
+ /** Collapsed by dragging to the edge. Absent ⇒ expanded. */
14107
+ readonly collapsed?: boolean;
14108
+ };
14109
+ /** `ixfx-twosplit-layout` view state (`kind: 'twosplit-layout'`), keyed by slot name. */
14110
+ type TwoSplitLayoutViewState = ViewStateBase & {
14111
+ readonly layout?: Readonly<Partial<Record<`a` | `b`, TwoSplitPanelViewState>>>;
14112
+ };
12944
14113
  /**
12945
14114
  * Lays out two elements within a container, with a bar to resize them
12946
14115
  * proportionally.
@@ -12984,6 +14153,12 @@ declare class TwoSplitLayoutElement extends LitElement {
12984
14153
  disconnectedCallback(): void;
12985
14154
  firstUpdated(): void;
12986
14155
  updated(changedProperties: Map<string, unknown>): void;
14156
+ /** Snapshot both sides' size and collapse. */
14157
+ getViewState(options?: GetViewStateOptions<TwoSplitLayoutViewState>): TwoSplitLayoutViewState;
14158
+ /** Restore sizes / collapse. A side missing from `layout` is left as it is. */
14159
+ setViewState(state: Partial<TwoSplitLayoutViewState>): void;
14160
+ /** Both slots always exist, so nothing is ever pending. */
14161
+ clearPendingViewState(): void;
12987
14162
  getZone(): HTMLElement | undefined;
12988
14163
  render(): import("lit").TemplateResult<1>;
12989
14164
  static styles: import("lit").CSSResult[];
@@ -13087,4 +14262,4 @@ interface XyPad {
13087
14262
  //#region src/index.d.ts
13088
14263
  declare function init(): void;
13089
14264
  //#endregion
13090
- export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenStyle, type AcTokenStyleFn, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, type BuiltInFormatterName, type BuiltInFormatterOptions, ButtonElement, ButtonElementEventMap, ButtonToggleDetail, ButtonToggleEvent, type CheckState, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, CheckedSelect, CheckedSelectChangeDetail, CheckedSelectChangeEvent, CheckedSelectEventMap, type CheckedSelectItem, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, type ComputeHyperbolicLayoutOptions, ComputeIcicleLayoutOptions, type ComputeTreemapLayoutOptions, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbDragStartDetail, CrumbDragStartEvent, CrumbDropDetail, CrumbDropEvent, CrumbExternalDropParser, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSegmentDragData, CrumbSegmentDragLookupFn, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DEFAULT_SIBLING_SPACING, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, type DataGridColumn, type DataGridColumnMenu, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, type DataGridDataType, type DataGridEditability, type DataGridEditorContext, type DataGridEditorFactory, type DataGridEditorType, DataGridElement, DataGridElementEventMap, type DataGridGetRowKey, type DataGridGroupBy, DataGridGroupChangeDetail, DataGridGroupChangeEvent, type DataGridGroupLabel, type DataGridInteractionMode, DataGridRowActivateDetail, DataGridRowActivateEvent, type DataGridRowLook, DataGridSelectDetail, DataGridSelectEvent, type DataGridSelectionMode, DataGridSortDetail, type DataGridSortDirection, DataGridSortEvent, type DataGridSortState, DataGridViewportChangeDetail, DataGridViewportChangeEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, type DetailGroupBy, DetailListElement, DetailListElementEventMap, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DiskIsometry, 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, DockPanelMovedDetail, DockPanelMovedEvent, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackEmptyDetail, DockStackEmptyEvent, DockStackNode, DockStackSnapshot, DockTabContextMenuDetail, DockTabContextMenuEvent, type DragSelectRect, DragSnappingFn, DragTarget, EMPTY_GROUP_LABEL, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, Endpoints, EntryMode, type FlatListActivateDetail, type FlatListActivateEvent, type FlatListBranchOrder, type FlatListContextMenuDetail, type FlatListContextMenuEvent, type FlatListDropDetail, type FlatListDropEvent, type FlatListEditCancelDetail, type FlatListEditCancelEvent, type FlatListEditCommitDetail, type FlatListEditCommitEvent, FlatListElement, type FlatListElementEventMap, type FlatListNavigateDetail, type FlatListNavigateEvent, type FlatListSelectDetail, type FlatListSelectEvent, FormElement, FormGroupElement, FormOptionsElement, FormPartElement, FormRowElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GeodesicSegment, type GlobalFormatter, 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, type HyperbolicEdgeRenderContext, type HyperbolicEdgeRenderer, type HyperbolicFocusDetail, type HyperbolicFocusEvent, type HyperbolicInteractionMode, type HyperbolicLayoutEdge, type HyperbolicLayoutNode, type HyperbolicNodeShape, type Point as HyperbolicPoint, HyperbolicTreeListElement, HyperbolicTreeListElementEventMap, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, IcicleInteractionMode, IcicleOrientation, IcicleRect, IcicleTreeListElement, IcicleTreeListElementEventMap, IcicleValueAccessor, IcicleZoomDetail, IcicleZoomEvent, 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, type ItemDisplay, type ItemOrientation, 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 ListContextMenuDetail, type ListContextMenuEvent, type ListDragEntry, type ListDragLeaveDetail, type ListDragLeaveEvent, type ListDragOverEvent, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragPreviewSourceResolver, ListDragSelectController, type ListDragSelectControllerConfig, type ListDragSource, type ListDropDetail, type ListDropEvent, type ListEditCancelDetail, type ListEditCancelEvent, type ListEditCommitDetail, type ListEditCommitEvent, type ListElementEventMap, type ListGroupBy, type ListGroupChangeDetail, type ListGroupChangeEvent, type ListGroupEventMap, ListGroupHeaderElement, type ListGroupInfo, type ListGroupLabel, type ListGroupPartition, type ListGroupToggleDetail, type ListGroupToggleEvent, 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, type ListViewportChangeDetail, type ListViewportChangeEvent, 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, type MulticolCategory, type MulticolColumnState, MulticolColumnsChangeDetail, MulticolColumnsChangeEvent, type MulticolColumnsChangeReason, type MulticolItem, MulticolListElement, MulticolListElementEventMap, type MulticolQuery, type MulticolSelectDetail, MulticolSelectEvent, 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, SegmentIconLookupFn, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, ShapefillDisplay, ShapefillFillMode, ShapefillValueChangeDetail, ShapefillValueChangeEvent, ShapefillValueElement, ShapefillValueInputDetail, ShapefillValueInputEvent, 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, type SortDirection, 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, ToolbarElementEventMap, ToolbarGroupElement, ToolbarGroupReorderDetail, ToolbarGroupReorderEvent, ToolbarLayout, ToolbarLayoutSnapshot, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeAnimation, TreeBaseElement, TreeBaseElementEventMap, type TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeDndMode, TreeDragContext, TreeDragEndEvent, TreeDragOverEvent, TreeDragStartEvent, TreeDropApplyContext, TreeDropContext, TreeDropController, TreeDropControllerConfig, TreeDropDetail, TreeDropEvent, TreeDropPosition, TreeDropResolvedDrag, TreeDropRowInfo, TreeDropTarget, TreeDropVisibleRow, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeNavigateOptions, TreeRevealMode, TreeSearchHost, TreeSelectionFilter, TreeVirtualize, type TreemapInteractionMode, TreemapListElement, TreemapListElementEventMap, type TreemapRect, type TreemapTilingMethod, type TreemapValueAccessor, TreemapZoomDetail, TreemapZoomEvent, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, VerticalListElementEventMap, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clampToDisk, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, composeIsometry, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, decomposeViewIsometry, defaultGroupLabel, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findEmptiedStacks, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, geodesicInterpolate, geodesicPath, geodesicSegment, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hyperbolicBranchId, hyperbolicChildIds, hyperbolicDistanceForEuclideanRadius, hyperbolicIdDepth, hyperbolicRelativeFrame, iconBus, identityIsometry, init, insertBeside, invertIsometry, isDragging, isHyperbolicDescendantId, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, norm, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, partitionByGroup, poincareDistance, pointerOverAnyHost, prefersReducedMotion, preserveRestoreWeights, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveGroupKey, resolveLeafPath, resolveTracks, rotationIsometry, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, snapshotNonEmptyStacks, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toGroupKey, toSnapshot, toggleInSet, toolbarGapIndex, translationFromOrigin, viewIsometry, walk, wrapRoot };
14265
+ export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenStyle, type AcTokenStyleFn, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, type BuiltInFormatterName, type BuiltInFormatterOptions, ButtonElement, ButtonElementEventMap, ButtonToggleDetail, ButtonToggleEvent, type CheckState, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, CheckedSelect, CheckedSelectChangeDetail, CheckedSelectChangeEvent, CheckedSelectEventMap, type CheckedSelectItem, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, type ComputeHyperbolicLayoutOptions, ComputeIcicleLayoutOptions, ComputeSunburstLayoutOptions, type ComputeTreemapLayoutOptions, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbDragStartDetail, CrumbDragStartEvent, CrumbDropDetail, CrumbDropEvent, CrumbExternalDropParser, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, type CrumbNavigationViewState, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSegmentDragData, CrumbSegmentDragLookupFn, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DEFAULT_SIBLING_SPACING, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, type DataGridColumn, type DataGridColumnMenu, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, type DataGridColumnViewState, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, type DataGridDataType, type DataGridEditability, type DataGridEditorContext, type DataGridEditorFactory, type DataGridEditorType, DataGridElement, DataGridElementEventMap, type DataGridGetRowKey, type DataGridGroupBy, DataGridGroupChangeDetail, DataGridGroupChangeEvent, type DataGridGroupLabel, type DataGridInteractionMode, DataGridRowActivateDetail, DataGridRowActivateEvent, type DataGridRowLook, DataGridSelectDetail, DataGridSelectEvent, type DataGridSelectionMode, DataGridSortDetail, type DataGridSortDirection, DataGridSortEvent, type DataGridSortState, type DataGridViewState, DataGridViewportChangeDetail, DataGridViewportChangeEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, type DetailGroupBy, DetailListElement, DetailListElementEventMap, type DetailListViewState, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DiskIsometry, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockHostViewState, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafPlacementPolicy, DockLeafPlacementPolicyResolved, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelMovedDetail, DockPanelMovedEvent, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackEmptyDetail, DockStackEmptyEvent, DockStackNode, DockStackSnapshot, DockTabContextMenuDetail, DockTabContextMenuEvent, type DragSelectRect, DragSnappingFn, DragTarget, EMPTY_FLAGS, EMPTY_GROUP_LABEL, EMPTY_KEYS, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, Endpoints, EntryMode, type FlatListActivateDetail, type FlatListActivateEvent, type FlatListBranchOrder, type FlatListContextMenuDetail, type FlatListContextMenuEvent, type FlatListDropDetail, type FlatListDropEvent, type FlatListEditCancelDetail, type FlatListEditCancelEvent, type FlatListEditCommitDetail, type FlatListEditCommitEvent, FlatListElement, type FlatListElementEventMap, type FlatListNavigateDetail, type FlatListNavigateEvent, type FlatListSelectDetail, type FlatListSelectEvent, type FlatListViewState, FormElement, FormGroupElement, FormOptionsElement, FormPartElement, FormRowElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GeodesicSegment, GetViewStateOptions, type GlobalFormatter, 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 GridListViewState, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, type HyperbolicEdgeRenderContext, type HyperbolicEdgeRenderer, type HyperbolicFocusDetail, type HyperbolicFocusEvent, type HyperbolicInteractionMode, type HyperbolicLayoutEdge, type HyperbolicLayoutNode, type HyperbolicNodeShape, type Point as HyperbolicPoint, HyperbolicTreeListElement, HyperbolicTreeListElementEventMap, type HyperbolicTreeListViewState, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, IcicleInteractionMode, IcicleOrientation, IcicleRect, IcicleTreeListElement, IcicleTreeListElementEventMap, IcicleValueAccessor, type IcicleViewState, IcicleZoomDetail, IcicleZoomEvent, 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, type ItemDisplay, type ItemOrientation, 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 ListContextMenuDetail, type ListContextMenuEvent, type ListDragEntry, type ListDragLeaveDetail, type ListDragLeaveEvent, type ListDragOverEvent, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragPreviewSourceResolver, ListDragSelectController, type ListDragSelectControllerConfig, type ListDragSource, type ListDropDetail, type ListDropEvent, type ListEditCancelDetail, type ListEditCancelEvent, type ListEditCommitDetail, type ListEditCommitEvent, type ListElementEventMap, type ListGroupBy, type ListGroupChangeDetail, type ListGroupChangeEvent, type ListGroupEventMap, ListGroupHeaderElement, type ListGroupInfo, type ListGroupLabel, type ListGroupPartition, type ListGroupToggleDetail, type ListGroupToggleEvent, 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, type ListViewportChangeDetail, type ListViewportChangeEvent, LoadChildrenCallback, MAX_PENDING_KEYS, 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, 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 MillerListViewState, 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, type MulticolCategory, type MulticolColumnState, MulticolColumnsChangeDetail, MulticolColumnsChangeEvent, type MulticolColumnsChangeReason, type MulticolItem, MulticolListElement, MulticolListElementEventMap, type MulticolListViewState, type MulticolQuery, type MulticolSelectDetail, MulticolSelectEvent, 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, PendingFlags, PendingKeys, 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, SCROLL_HOVER_SUPPRESS_ATTR, SUNBURST_PATH_SEPARATOR, ScrollAxis, type ScrollHoverGuard, type ScrollHoverGuardConfig, ScrollState, SegmentIconLookupFn, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, ShapefillDisplay, ShapefillFillMode, ShapefillValueChangeDetail, ShapefillValueChangeEvent, ShapefillValueElement, ShapefillValueInputDetail, ShapefillValueInputEvent, 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, type SortDirection, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitLayoutViewState, SplitPanelElement, SplitPanelViewState, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SunburstArcVisual, SunburstInteractionMode, SunburstLabelPlacement, SunburstLayout, SunburstLayoutNode, SunburstRings, SunburstTreeListElement, SunburstTreeListElementEventMap, SunburstValueAccessor, SunburstValueFormatter, SunburstView, type SunburstViewState, SunburstZoomDetail, SunburstZoomEvent, 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, ToolbarElementEventMap, ToolbarGroupElement, ToolbarGroupReorderDetail, ToolbarGroupReorderEvent, ToolbarLayout, ToolbarLayoutSnapshot, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeAnimation, TreeBaseElement, TreeBaseElementEventMap, type TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeDndMode, TreeDragContext, TreeDragEndEvent, TreeDragOverEvent, TreeDragStartEvent, TreeDropApplyContext, TreeDropContext, TreeDropController, TreeDropControllerConfig, TreeDropDetail, TreeDropEvent, TreeDropPosition, TreeDropResolvedDrag, TreeDropRowInfo, TreeDropTarget, TreeDropVisibleRow, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, type TreeListViewState, TreeNavigateOptions, TreeRevealMode, TreeSearchHost, TreeSelectAllOptions, TreeSelectionFilter, TreeVirtualize, type TreemapInteractionMode, TreemapListElement, TreemapListElementEventMap, type TreemapListViewState, type TreemapRect, type TreemapTilingMethod, type TreemapValueAccessor, TreemapZoomDetail, TreemapZoomEvent, TwoSplitLayoutElement, TwoSplitLayoutViewState, TwoSplitPanelViewState, UserScale, VIEW_STATE_CHANGE, VIEW_STATE_VERSION, ValueMode, VerticalListAdapterOptions, VerticalListElement, VerticalListElementEventMap, type VerticalListViewState, ViewRange, ViewStateBase, ViewStateBinding, ViewStateChangeDetail, ViewStateChangeEvent, ViewStateChangeReason, ViewStateController, ViewStateControllerOptions, ViewStateful, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, anchorFromRow, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applySnapshot, applyTreeDrop, attachTimelineInteractions, bindViewState, bottomDrawerCommandId, buildHighlightTargets, buildModel, capFlags, capKeys, captionForEntry, captureElementScroll, clampToDisk, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, composeIsometry, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeSunburstLayout, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createScrollHoverGuard, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createValueResolver, createVerticalListAdapter, decomposeViewIsometry, defaultGroupLabel, defaultSunburstValueAccessor, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findEmptiedStacks, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleKeyPath, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findSunburstId, findSunburstNodeById, findTreemapNode, findTreemapPath, flagsFromRecord, flagsToRecord, geodesicInterpolate, geodesicPath, geodesicSegment, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hyperbolicBranchId, hyperbolicChildIds, hyperbolicDistanceForEuclideanRadius, hyperbolicIdDepth, hyperbolicRelativeFrame, iconBus, identityIsometry, init, insertBeside, invertIsometry, isDragging, isHyperbolicDescendantId, isMultiMode, isSplit, isStack, isSunburstAncestorId, isViewStateful, keyForElement, keysAsFlags, keysToArray, listItemFadeKeyframes, listSearchStyles, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, norm, normalise, normaliseValue, normalize, onUserScrollIntent, panelGapIndex, parseColourScaleAttr, parseLayout, partitionByGroup, partitionFlags, partitionKeys, poincareDistance, pointerOverAnyHost, prefersReducedMotion, preserveRestoreWeights, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveGroupKey, resolveIcicleKeyPath, resolveLeafPath, resolveTracks, restoreElementScroll, rotationIsometry, scrollToOffset, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, snapshotNonEmptyStacks, startListItemOutAnimation, sunburstChildId, sunburstHasChildren, sunburstIdToPath, sunburstParentId, sunburstPathToId, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toGroupKey, toSnapshot, toggleInSet, toolbarGapIndex, translationFromOrigin, viewIsometry, walk, withoutFlag, wrapRoot };