@ixfx/components 0.15.5 → 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 (76) hide show
  1. package/bundle/index.d.ts +917 -44
  2. package/bundle/index.js +702 -696
  3. package/dist/crumb-navigation-BbqfmkYs.d.ts +147 -0
  4. package/dist/crumb-navigation-YnFVFqrx.js +1290 -0
  5. package/dist/crumbs.d.ts +2 -115
  6. package/dist/crumbs.js +1 -1179
  7. package/dist/{data-grid-D7qzmMMp.d.ts → data-grid-CIG2DVip.d.ts} +45 -3
  8. package/dist/{data-grid-C1sZX6n9.js → data-grid-rMkLX2qo.js} +593 -206
  9. package/dist/data-grid.d.ts +3 -3
  10. package/dist/data-grid.js +1 -1
  11. package/dist/{detail-list-CKIKlszv.d.ts → detail-list-6iMTNP4N.d.ts} +34 -4
  12. package/dist/{detail-list-q8bs67BM.js → detail-list-C4pDSoI8.js} +218 -7
  13. package/dist/detail-list.d.ts +4 -4
  14. package/dist/detail-list.js +1 -1
  15. package/dist/{flat-list-DXMyDiSH.d.ts → flat-list-JPgQSmLW.d.ts} +27 -4
  16. package/dist/flat-list.d.ts +2 -2
  17. package/dist/flat-list.js +123 -4
  18. package/dist/{grid-list-y6dWJYu3.js → grid-list-CdEkScn-.js} +276 -75
  19. package/dist/{grid-list-0e7snW6t.d.ts → grid-list-D6n7WH8l.d.ts} +128 -22
  20. package/dist/grid-list.d.ts +3 -3
  21. package/dist/grid-list.js +1 -1
  22. package/dist/incr-search.d.ts +1 -1
  23. package/dist/index-9ttcdwlL.d.ts +71 -0
  24. package/dist/{index-DEVyVIn8.d.ts → index-Bx0BXPxI.d.ts} +52 -6
  25. package/dist/index-CYRc6Dah.d.ts +475 -0
  26. package/dist/{index-KN2MW_xD.d.ts → index-Dr80Zdl6.d.ts} +1 -1
  27. package/dist/index.d.ts +334 -23
  28. package/dist/index.js +2247 -867
  29. package/dist/{list-native-drag-controller-O2Nruqpi.d.ts → list-native-drag-controller-D_UrXipS.d.ts} +1 -1
  30. package/dist/{list-selection-controller-BeE70lbB.js → list-selection-controller-5L0Nj9tR.js} +87 -2
  31. package/dist/miller-BFRfn0ve.js +2237 -0
  32. package/dist/miller.d.ts +4 -437
  33. package/dist/miller.js +1 -1815
  34. package/dist/pending-BGidHppL.js +91 -0
  35. package/dist/scroll-hover-guard-Cjw6179Q.js +35 -0
  36. package/dist/{split-layout-JK3xWVX2.d.ts → split-layout-CophkNeU.d.ts} +41 -3
  37. package/dist/{split-layout-Deoxy47d.js → split-layout-DTY4PJRp.js} +251 -19
  38. package/dist/split-layout.d.ts +1 -1
  39. package/dist/split-layout.js +1 -1
  40. package/dist/sunburst-tree.d.ts +2 -2
  41. package/dist/sunburst-tree.js +1 -1
  42. package/dist/{sunbursttree-list-yXwS-uEI.js → sunbursttree-list-B_VxOHlo.js} +298 -79
  43. package/dist/{sunbursttree-list--Z0uyh8O.d.ts → sunbursttree-list-D6j5BxVQ.d.ts} +40 -3
  44. package/dist/tree-CftHwtEb.js +146 -0
  45. package/dist/{tree-D8VxvR9u.js → tree-Crdpl4nc.js} +275 -47
  46. package/dist/{tree-component-C6UHO-w9.d.ts → tree-component-DgfkxmVY.d.ts} +19 -8
  47. package/dist/tree.d.ts +3 -3
  48. package/dist/tree.js +1 -1
  49. package/dist/types-LU1u0CB8.d.ts +87 -0
  50. package/dist/vertical-list-1V1Vg2O5.js +1993 -0
  51. package/dist/{vertical-list-D8MksoTp.d.ts → vertical-list-BPDmZx6T.d.ts} +31 -3
  52. package/dist/vertical-list.d.ts +3 -3
  53. package/dist/vertical-list.js +1 -1789
  54. package/dist/view-state-controller-BdyXWUUM.js +305 -0
  55. package/docs-user/README.md +2 -0
  56. package/docs-user/crumbs.md +27 -0
  57. package/docs-user/data-grid.md +66 -1
  58. package/docs-user/detail-list.md +54 -0
  59. package/docs-user/dock.md +54 -12
  60. package/docs-user/flat-list.md +27 -0
  61. package/docs-user/grid-list.md +64 -11
  62. package/docs-user/hyperbolic-tree.md +31 -4
  63. package/docs-user/icicle-tree.md +36 -0
  64. package/docs-user/index.json +12 -2
  65. package/docs-user/llms.txt +2 -0
  66. package/docs-user/miller.md +52 -21
  67. package/docs-user/multicol-list.md +50 -8
  68. package/docs-user/split-layout.md +45 -17
  69. package/docs-user/sunburst-tree.md +32 -2
  70. package/docs-user/tree.md +45 -6
  71. package/docs-user/treemap.md +32 -0
  72. package/docs-user/twosplit-layout.md +22 -0
  73. package/docs-user/user-catalog.md +1 -1
  74. package/docs-user/vertical-list.md +55 -7
  75. package/llms.txt +2 -0
  76. package/package.json +1 -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;
@@ -3421,6 +3726,31 @@ type DataGridGroupLabel = (groupKey: string, rows: readonly unknown[]) => string
3421
3726
  /** Whether the data-grid renders its built-in header column/group menu. */
3422
3727
  type DataGridColumnMenu = `auto` | `none`;
3423
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
3424
3754
  //#region node_modules/.pnpm/fzf@0.5.2/node_modules/fzf/dist/types/slab.d.ts
3425
3755
  interface Slab {
3426
3756
  i16: Int16Array;
@@ -4509,6 +4839,21 @@ declare class DataGridElement extends LitElement {
4509
4839
  autoSizeColumn(key: string): boolean;
4510
4840
  private _columnResizeAnimationMs;
4511
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;
4512
4857
  getVisibleRange(): {
4513
4858
  startRow: number;
4514
4859
  endRow: number;
@@ -4699,6 +5044,21 @@ interface ListElementEventMap {
4699
5044
  'list-item-click': ListItemClickEvent;
4700
5045
  }
4701
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
4702
5062
  //#region src/vertical-list/types.d.ts
4703
5063
  /**
4704
5064
  * `list-drag-over` / `list-drop`. `key` and `item` are `undefined` when the
@@ -4735,6 +5095,20 @@ type ListContextMenuEvent = CustomEvent<ListContextMenuDetail>;
4735
5095
  type ListEditCommitEvent = CustomEvent<ListEditCommitDetail>;
4736
5096
  type ListEditCancelEvent = CustomEvent<ListEditCancelDetail>;
4737
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
4738
5112
  //#region src/editable-label/editable-label.d.ts
4739
5113
  type EditableMode = `label` | `editor`;
4740
5114
  type EntryMode = `free` | `text` | `number` | `percent`;
@@ -5028,6 +5402,18 @@ declare class VerticalListElement extends LitElement {
5028
5402
  focusKey(key: string): void;
5029
5403
  /** The item carrying this `data-key`, or `undefined`. */
5030
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;
5031
5417
  /**
5032
5418
  * Keys of items currently intersecting the viewport — for prioritising
5033
5419
  * viewport-first work (e.g. metadata/thumbnail fetches). A rect-intersection
@@ -5331,6 +5717,18 @@ declare class DetailListElement extends LitElement {
5331
5717
  /** Move the cursor to the item with this key and scroll it into view. */
5332
5718
  focusKey(key: string): void;
5333
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;
5334
5732
  /** Groups in display order (empty when ungrouped). */
5335
5733
  get groups(): readonly ListGroupInfo[];
5336
5734
  /** Collapse or expand one group. Fires `list-group-toggle` when the state changes. */
@@ -5395,6 +5793,7 @@ declare global {
5395
5793
  interface DetailListElementEventMap extends ListElementEventMap, ListGroupEventMap {
5396
5794
  'detail-list-viewport-change': ListViewportChangeEvent;
5397
5795
  'list-native-drag-start': ListNativeDragStartEvent<Element>;
5796
+ 'view-state-change': ViewStateChangeEvent<DetailListViewState>;
5398
5797
  }
5399
5798
  //#endregion
5400
5799
  //#region src/dock/types.d.ts
@@ -5405,6 +5804,15 @@ type DockLayout = {
5405
5804
  readonly root: DockNode;
5406
5805
  };
5407
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
+ };
5408
5816
  /**
5409
5817
  * N-ary split node, rendered as a single `ixfx-split-layout`.
5410
5818
  * `direction` uses the element's flexbox sense: `row` places children
@@ -5756,6 +6164,24 @@ interface LayoutSnapshot {
5756
6164
  version: 1;
5757
6165
  root: SnapshotNode;
5758
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
+ };
5759
6185
  interface PanelInfo {
5760
6186
  id: string;
5761
6187
  el: HTMLElement;
@@ -5821,10 +6247,17 @@ declare global {
5821
6247
  //#endregion
5822
6248
  //#region src/split-layout/split-layout.d.ts
5823
6249
  declare class SplitLayoutElement extends LitElement {
6250
+ #private;
5824
6251
  direction: Axis;
5825
6252
  sizes: string;
5826
6253
  gutterSize: string;
5827
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;
5828
6261
  private _model;
5829
6262
  private _resizing;
5830
6263
  private _groupEl?;
@@ -5837,9 +6270,20 @@ declare class SplitLayoutElement extends LitElement {
5837
6270
  firstUpdated(): void;
5838
6271
  private _setupObserver;
5839
6272
  private _rebuildModel;
6273
+ private _writeCollapsedAttributes;
5840
6274
  get panels(): PanelInfo[];
5841
- getLayout(): LayoutSnapshot | null;
5842
- 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;
5843
6287
  getSizes(_groupId?: string): Record<string, number>;
5844
6288
  setSizes(weights: number[] | Record<string, number>, _groupId?: string): void;
5845
6289
  collapse(idOrEl: string | HTMLElement): void;
@@ -6030,6 +6474,7 @@ interface DockHostElementEventMap {
6030
6474
  'dock-panel-drag-in': DockDragBoundaryEvent;
6031
6475
  }
6032
6476
  declare class DockHostElement extends LitElement {
6477
+ #private;
6033
6478
  /** Initial layout as `DockLayout` JSON. Absent ⇒ all pooled panels go into one root stack. */
6034
6479
  layout: string | null;
6035
6480
  /**
@@ -6075,7 +6520,7 @@ declare class DockHostElement extends LitElement {
6075
6520
  /**
6076
6521
  * Placement policy per named leaf: `{ allow, deny }` kind sets plus an
6077
6522
  * `allowEdgeSplit` gate (default `true`). Host-level only — never serialized
6078
- * into the layout, but kept across `loadLayout()` calls. Existing panels are
6523
+ * into the layout, but kept across `setViewState()` calls. Existing panels are
6079
6524
  * grandfathered; rules govern future placements (drags, `addPanel`,
6080
6525
  * re-homing). See {@link setLeafPlacementPolicy}.
6081
6526
  */
@@ -6085,7 +6530,7 @@ declare class DockHostElement extends LitElement {
6085
6530
  private _junctionsRaf;
6086
6531
  private _hostResizeObserver;
6087
6532
  /**
6088
- * Bumped on every `loadLayout()`. Stamped onto each rendered
6533
+ * Bumped on every layout restore (`setViewState()`). Stamped onto each rendered
6089
6534
  * `ixfx-split-layout` as `data-dock-gen`, so `_foldLiveWeights` can tell a
6090
6535
  * split that still carries the *previous* generation's live weights (its
6091
6536
  * async re-render hasn't landed yet) from one that's caught up — and skip
@@ -6135,9 +6580,29 @@ declare class DockHostElement extends LitElement {
6135
6580
  private _observePanel;
6136
6581
  private _unobservePanel;
6137
6582
  private _syncPool;
6138
- /** Serialize the current layout, folding live split weights from the DOM. */
6139
- saveLayout(): DockLayout;
6140
- 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;
6141
6606
  /**
6142
6607
  * Dock a panel. Returns false (without touching the DOM) when the
6143
6608
  * explicitly targeted container denies the panel's `kind`.
@@ -6177,7 +6642,7 @@ declare class DockHostElement extends LitElement {
6177
6642
  * {@link setLeafPlacementPolicy}'s `allowEdgeSplit` (default `true`).
6178
6643
  * Pass `[]` to seal the leaf (nothing admitted). Warns when no stack
6179
6644
  * currently carries `name`, but the rule is still stored and applies once
6180
- * one appears. Rules are host policy: kept across `loadLayout()`, never
6645
+ * one appears. Rules are host policy: kept across `setViewState()`, never
6181
6646
  * serialized.
6182
6647
  */
6183
6648
  setLeafExclusiveContents(name: string, kinds: readonly string[]): void;
@@ -6203,7 +6668,7 @@ declare class DockHostElement extends LitElement {
6203
6668
  * unconstrained* leaf — the policy is not propagated to it.
6204
6669
  *
6205
6670
  * Warns when no stack currently carries `name`; the policy is stored and
6206
- * applies once one appears. Host policy: kept across `loadLayout()`, never
6671
+ * applies once one appears. Host policy: kept across `setViewState()`, never
6207
6672
  * serialized.
6208
6673
  */
6209
6674
  setLeafPlacementPolicy(name: string, policy: DockLeafPlacementPolicy): void;
@@ -6328,6 +6793,12 @@ declare class DockHostElement extends LitElement {
6328
6793
  /** Fold live weights from each rendered `ixfx-split-layout` into the model. */
6329
6794
  private _foldLiveWeights;
6330
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;
6331
6802
  private _onSplitCollapsed;
6332
6803
  private _onSplitClose;
6333
6804
  private _onTabChange;
@@ -6687,6 +7158,15 @@ type FlatListEditCommitDetail = {
6687
7158
  type FlatListEditCancelDetail = {
6688
7159
  readonly node: TreeNode;
6689
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
+ };
6690
7170
  type FlatListNavigateEvent = CustomEvent<FlatListNavigateDetail>;
6691
7171
  type FlatListSelectEvent = CustomEvent<FlatListSelectDetail>;
6692
7172
  type FlatListActivateEvent = CustomEvent<FlatListActivateDetail>;
@@ -6805,6 +7285,18 @@ declare class FlatListElement extends LitElement {
6805
7285
  navigateInto(key: string): boolean;
6806
7286
  /** Move to the parent level. Returns false at the root. */
6807
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;
6808
7300
  disconnectedCallback(): void;
6809
7301
  protected willUpdate(changed: PropertyValues): void;
6810
7302
  protected updated(changed: PropertyValues): void;
@@ -7371,6 +7863,29 @@ declare class ListSelectionController<T> {
7371
7863
  * fires once if anything changed.
7372
7864
  */
7373
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;
7374
7889
  /** Route a click on `item` according to the current interaction mode. */
7375
7890
  handleClick(item: T, gesture: ListSelectionGesture): void;
7376
7891
  /** Route a Space keypress on `item` according to the current interaction mode. */
@@ -7385,7 +7900,8 @@ declare class ListSelectionController<T> {
7385
7900
  remap(fn: (item: T) => T): void;
7386
7901
  /**
7387
7902
  * Hard reset: empty the selection and clear the anchor without firing
7388
- * `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()`.
7389
7905
  */
7390
7906
  reset(): void;
7391
7907
  /**
@@ -7396,6 +7912,46 @@ declare class ListSelectionController<T> {
7396
7912
  seed(items: Iterable<T>, anchor?: T): void;
7397
7913
  }
7398
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
7399
7955
  //#region src/interaction/tickled-controller.d.ts
7400
7956
  /**
7401
7957
  * Represents an item that can be tickled (highlighted via hover or keyboard navigation)
@@ -7824,6 +8380,23 @@ interface GridListFullElementEventMap extends GridListElementEventMap {
7824
8380
  'list-native-drag-start': ListNativeDragStartEvent;
7825
8381
  }
7826
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
7827
8400
  //#region src/grid-list/grid-list.d.ts
7828
8401
  declare class GridListElement<T = unknown> extends LitElement {
7829
8402
  #private;
@@ -7837,18 +8410,17 @@ declare class GridListElement<T = unknown> extends LitElement {
7837
8410
  */
7838
8411
  disableHoverTickle: boolean;
7839
8412
  /**
7840
- * Ignore hover-target changes caused by scrolling. With virtualisation, a
7841
- * wheel / trackpad gesture replaces the cell beneath a stationary pointer,
7842
- * and the freshly rendered cell's `pointerenter` would move the cursor and
7843
- * emit `list-tickle` even though the pointer never moved. With this set,
7844
- * `pointerenter`-driven tickling is suppressed while a scroll gesture is
7845
- * active — the host also carries a `data-scroll-hover-suppress` attribute
7846
- * that gates the CSS `:hover` highlight, so the visual cursor holds still
7847
- * too. Hover resumes on the next real pointer movement, or after the pointer
7848
- * leaves and re-enters the list. Click selection, keyboard navigation, and
7849
- * `focusKey()` are unaffected.
7850
- */
7851
- 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;
7852
8424
  itemSize: number;
7853
8425
  gap: number;
7854
8426
  /**
@@ -8038,8 +8610,9 @@ declare class GridListElement<T = unknown> extends LitElement {
8038
8610
  removeSelectedKeys(keys: Iterable<string>): void;
8039
8611
  /**
8040
8612
  * Data mode: replace the whole item array. Selection and cursor keep any key
8041
- * that is still present; keys that vanish are dropped (one `list-select`).
8042
- * 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.
8043
8616
  */
8044
8617
  setItems(items: readonly T[]): void;
8045
8618
  /**
@@ -8056,19 +8629,36 @@ declare class GridListElement<T = unknown> extends LitElement {
8056
8629
  */
8057
8630
  updateItem(key: string, item: T): void;
8058
8631
  /**
8059
- * Data mode: remove the items carrying these keys. Removed keys are dropped
8060
- * 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.
8061
8635
  */
8062
8636
  removeItems(keys: Iterable<string>): void;
8063
8637
  /**
8064
8638
  * Data mode: drop every item. Selection and cursor are reset and one
8065
- * `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.
8066
8642
  */
8067
8643
  clearItems(): void;
8068
8644
  /** Move the cursor to the item with this key and scroll it into view. */
8069
8645
  focusKey(key: string): void;
8070
8646
  /** The key of the item under the cursor, or `undefined`. */
8071
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;
8072
8662
  /** Element mode: the light-DOM element carrying `key`, or `undefined`. */
8073
8663
  getItem(key: string): Element | undefined;
8074
8664
  /** Element mode: the light-DOM element at effective index `index`. */
@@ -8268,6 +8858,10 @@ interface GroupedItemListerElement<T> {
8268
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);
8269
8859
  }
8270
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
8271
8865
  //#region src/tree/tree-base.d.ts
8272
8866
  /**
8273
8867
  * `auto` windows the list once it has more than `virtualizeThreshold` visible
@@ -8296,6 +8890,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8296
8890
  get selectedNodes(): ReadonlySet<TreeNode>;
8297
8891
  filterPredicate: TreeFilterPredicate | undefined;
8298
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;
8299
8900
  registry: CommandRegistry<unknown> | undefined;
8300
8901
  /**
8301
8902
  * Space-separated subset of `navigate select filter` — limits which
@@ -8345,6 +8946,12 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8345
8946
  applyInternalDrop: boolean;
8346
8947
  /** Immutable: replace via `#setExpanded` so the flat-row cache is invalidated. */
8347
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;
8348
8955
  /** Bumped whenever `_selectedNodes` content may have changed. */
8349
8956
  protected _selectionVersion: number;
8350
8957
  /**
@@ -8359,6 +8966,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8359
8966
  /** Depths at which any loaded node carries an icon (stable across expansion). */
8360
8967
  protected get _depthsWithIcons(): ReadonlySet<number>;
8361
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;
8362
8976
  protected _focusedDepth: number;
8363
8977
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
8364
8978
  readonly search: ListSearchController<{
@@ -8388,11 +9002,31 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8388
9002
  disconnectedCallback(): void;
8389
9003
  getConfig(): TreeConfig;
8390
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;
8391
9017
  select(node: TreeNode): void;
8392
9018
  deselect(node: TreeNode): void;
8393
9019
  clearSelection(): void;
8394
- selectAll(): void;
8395
- 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;
8396
9030
  /**
8397
9031
  * Expand every already-loaded branch in a single update. With `maxDepth`,
8398
9032
  * only branches at depth < `maxDepth` are expanded (the root's children are
@@ -8970,6 +9604,29 @@ type HyperbolicFocusDetail = {
8970
9604
  };
8971
9605
  type HyperbolicFocusEvent = CustomEvent<HyperbolicFocusDetail>;
8972
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
8973
9630
  //#region src/hyperbolic-tree/render-utils.d.ts
8974
9631
  /**
8975
9632
  * How nodes are drawn:
@@ -9133,6 +9790,11 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9133
9790
  * repeats keys across branches still focuses the node actually clicked.
9134
9791
  */
9135
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;
9136
9798
  /**
9137
9799
  * Canonical → screen projection overriding the settled "focus at the
9138
9800
  * center" view — set per-frame while a focus change animates, and by
@@ -9160,6 +9822,7 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9160
9822
  private _hostSize;
9161
9823
  connectedCallback(): void;
9162
9824
  disconnectedCallback(): void;
9825
+ protected willUpdate(changedProps: PropertyValues): void;
9163
9826
  protected updated(changedProps: PropertyValues): void;
9164
9827
  select(node: TreeNode): void;
9165
9828
  deselect(node: TreeNode): void;
@@ -9195,6 +9858,18 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9195
9858
  node: TreeNode;
9196
9859
  depth: number;
9197
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;
9198
9873
  protected render(): import("lit").TemplateResult<1>;
9199
9874
  static styles: import("lit").CSSResult[];
9200
9875
  }
@@ -9333,6 +10008,26 @@ declare function computeHyperbolicLayout(root: TreeNode | undefined, options?: C
9333
10008
  edges: HyperbolicLayoutEdge[];
9334
10009
  };
9335
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
9336
10031
  //#region src/icicle-tree/types.d.ts
9337
10032
  /**
9338
10033
  * Weight accessor — returns the area share of `item` within its siblings.
@@ -9510,6 +10205,11 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9510
10205
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
9511
10206
  get focusedNode(): TreeNode | undefined;
9512
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;
9513
10213
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
9514
10214
  readonly search: ListSearchController<{
9515
10215
  node: TreeNode;
@@ -9527,7 +10227,20 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9527
10227
  private _tooltipEl;
9528
10228
  connectedCallback(): void;
9529
10229
  disconnectedCallback(): void;
10230
+ protected willUpdate(changedProps: PropertyValues): void;
9530
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;
9531
10244
  select(node: TreeNode): void;
9532
10245
  deselect(node: TreeNode): void;
9533
10246
  clearSelection(): void;
@@ -9592,6 +10305,13 @@ declare function findIcicleNode(root: TreeNode | undefined, key: string): TreeNo
9592
10305
  * Returns `undefined` when the key is absent. The first entry is always `root`.
9593
10306
  */
9594
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;
9595
10315
  /**
9596
10316
  * Compute the visible rectangles for an icicle view.
9597
10317
  *
@@ -9984,9 +10704,6 @@ declare global {
9984
10704
  //#endregion
9985
10705
  //#region src/miller/types.d.ts
9986
10706
  type MillerSelectionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
9987
- type MillerConfig = {
9988
- columnWidths: Record<number, number>;
9989
- };
9990
10707
  /** Detail for the `header-click` event fired when a column header is clicked. */
9991
10708
  type MillerHeaderClickDetail = {
9992
10709
  /** Zero-based column index whose header was clicked. */
@@ -10051,6 +10768,26 @@ type MillerItemState = {
10051
10768
  isLeaf: boolean;
10052
10769
  };
10053
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
10054
10791
  //#region src/miller/miller-base.d.ts
10055
10792
  /**
10056
10793
  * Base class for Miller column components. Handles column lifecycle,
@@ -10147,6 +10884,12 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10147
10884
  protected _selectedByDepth: Map<number, TreeNode>;
10148
10885
  protected _selectedKeys: Set<string>;
10149
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;
10150
10893
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
10151
10894
  readonly search: ListSearchController<{
10152
10895
  node: TreeNode;
@@ -10155,11 +10898,24 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10155
10898
  /** Command registry carrying this component's `list.search.*` commands. */
10156
10899
  get registry(): CommandRegistry<unknown> | undefined;
10157
10900
  tickled: TickledController<string>;
10901
+ willUpdate(_changedProps: PropertyValues): void;
10158
10902
  updated(changedProps: PropertyValues): void;
10903
+ firstUpdated(): void;
10159
10904
  connectedCallback(): void;
10160
10905
  disconnectedCallback(): void;
10161
- getConfig(): MillerConfig;
10162
- 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;
10163
10919
  /** Read current selection as an immutable set of item keys. */
10164
10920
  get selectedKeys(): ReadonlySet<string>;
10165
10921
  /** Replace entire selection and trigger a re-render. */
@@ -10459,6 +11215,21 @@ type MulticolSelectDetail = {
10459
11215
  readonly columns: readonly MulticolColumnSelection[];
10460
11216
  };
10461
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
10462
11233
  //#region src/multicol-list/multicol-list.d.ts
10463
11234
  type MulticolSelectEvent = CustomEvent<MulticolSelectDetail>;
10464
11235
  type MulticolColumnsChangeDetail = {
@@ -10469,6 +11240,7 @@ type MulticolColumnsChangeEvent = CustomEvent<MulticolColumnsChangeDetail>;
10469
11240
  interface MulticolListElementEventMap {
10470
11241
  'multicol-select': MulticolSelectEvent;
10471
11242
  'multicol-columns-change': MulticolColumnsChangeEvent;
11243
+ 'view-state-change': ViewStateChangeEvent<MulticolListViewState>;
10472
11244
  }
10473
11245
  declare global {
10474
11246
  interface HTMLElementTagNameMap {
@@ -10496,8 +11268,6 @@ declare class MulticolListElement extends LitElement {
10496
11268
  private _idCounter;
10497
11269
  private _autoSeeded;
10498
11270
  private _drag;
10499
- get columns(): readonly MulticolColumnState[];
10500
- setColumns(states: readonly MulticolColumnState[]): void;
10501
11271
  addColumn(categoryKey: string, position?: number): void;
10502
11272
  removeColumn(columnId: string): void;
10503
11273
  getSelection(): ReadonlyArray<{
@@ -10506,7 +11276,22 @@ declare class MulticolListElement extends LitElement {
10506
11276
  values: readonly string[];
10507
11277
  }>;
10508
11278
  clearSelection(): void;
11279
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
10509
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;
10510
11295
  protected updated(changedProperties: Map<string, unknown>): void;
10511
11296
  private _renderColumn;
10512
11297
  private _getCategoryLabel;
@@ -11863,6 +12648,24 @@ declare function sunburstHasChildren(node: TreeNode): boolean;
11863
12648
  */
11864
12649
  declare function computeSunburstLayout(root: TreeNode | undefined, options?: ComputeSunburstLayoutOptions): SunburstLayout;
11865
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
11866
12669
  //#region src/sunburst-tree/sunbursttree-list.d.ts
11867
12670
  /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
11868
12671
  type SunburstZoomDetail = {
@@ -11952,6 +12755,11 @@ declare class SunburstTreeListElement extends LitElement implements TreeComponen
11952
12755
  get focusedNode(): TreeNode | undefined;
11953
12756
  /** Id (key path) of the zoom node; `undefined` = the true root. */
11954
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;
11955
12763
  private _size;
11956
12764
  readonly search: ListSearchController<{
11957
12765
  node: TreeNode;
@@ -11966,6 +12774,18 @@ declare class SunburstTreeListElement extends LitElement implements TreeComponen
11966
12774
  disconnectedCallback(): void;
11967
12775
  protected willUpdate(changed: PropertyValues): void;
11968
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;
11969
12789
  select(node: TreeNode): void;
11970
12790
  deselect(node: TreeNode): void;
11971
12791
  clearSelection(): void;
@@ -13043,6 +13863,24 @@ declare function findTreemapPath(root: TreeNode | undefined, key: string): TreeN
13043
13863
  */
13044
13864
  declare function computeTreemapLayout(root: TreeNode | undefined, options?: ComputeTreemapLayoutOptions): TreemapRect[];
13045
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
13046
13884
  //#region src/treemap/treemap-list.d.ts
13047
13885
  /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
13048
13886
  type TreemapZoomDetail = {
@@ -13179,6 +14017,11 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13179
14017
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
13180
14018
  get focusedNode(): TreeNode | undefined;
13181
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;
13182
14025
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
13183
14026
  readonly search: ListSearchController<{
13184
14027
  node: TreeNode;
@@ -13187,6 +14030,7 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13187
14030
  private tickled;
13188
14031
  connectedCallback(): void;
13189
14032
  disconnectedCallback(): void;
14033
+ protected willUpdate(changedProps: PropertyValues): void;
13190
14034
  protected updated(changedProps: PropertyValues): void;
13191
14035
  select(node: TreeNode): void;
13192
14036
  deselect(node: TreeNode): void;
@@ -13229,6 +14073,18 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13229
14073
  node: TreeNode;
13230
14074
  depth: number;
13231
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;
13232
14088
  protected render(): import("lit").TemplateResult<1>;
13233
14089
  static styles: import("lit").CSSResult[];
13234
14090
  }
@@ -13243,6 +14099,17 @@ interface TreemapListElement {
13243
14099
  }
13244
14100
  //#endregion
13245
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
+ };
13246
14113
  /**
13247
14114
  * Lays out two elements within a container, with a bar to resize them
13248
14115
  * proportionally.
@@ -13286,6 +14153,12 @@ declare class TwoSplitLayoutElement extends LitElement {
13286
14153
  disconnectedCallback(): void;
13287
14154
  firstUpdated(): void;
13288
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;
13289
14162
  getZone(): HTMLElement | undefined;
13290
14163
  render(): import("lit").TemplateResult<1>;
13291
14164
  static styles: import("lit").CSSResult[];
@@ -13389,4 +14262,4 @@ interface XyPad {
13389
14262
  //#region src/index.d.ts
13390
14263
  declare function init(): void;
13391
14264
  //#endregion
13392
- 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, 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, SUNBURST_PATH_SEPARATOR, 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, SunburstArcVisual, SunburstInteractionMode, SunburstLabelPlacement, SunburstLayout, SunburstLayoutNode, SunburstRings, SunburstTreeListElement, SunburstTreeListElementEventMap, SunburstValueAccessor, SunburstValueFormatter, SunburstView, 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, 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, computeSunburstLayout, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createValueResolver, createVerticalListAdapter, decomposeViewIsometry, defaultGroupLabel, defaultSunburstValueAccessor, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findEmptiedStacks, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findSunburstId, findSunburstNodeById, 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, isSunburstAncestorId, 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, sunburstChildId, sunburstHasChildren, sunburstIdToPath, sunburstParentId, sunburstPathToId, 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 };