@ixfx/components 0.15.5 → 0.16.1

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 (80) hide show
  1. package/bundle/index.d.ts +986 -49
  2. package/bundle/index.js +765 -729
  3. package/dist/ac-token.js +1 -1
  4. package/dist/crumb-navigation-BbqfmkYs.d.ts +147 -0
  5. package/dist/crumb-navigation-YnFVFqrx.js +1290 -0
  6. package/dist/crumbs.d.ts +2 -115
  7. package/dist/crumbs.js +1 -1179
  8. package/dist/{data-grid-C1sZX6n9.js → data-grid-Cqxuwgbb.js} +615 -210
  9. package/dist/{data-grid-D7qzmMMp.d.ts → data-grid-Csh5EJW9.d.ts} +55 -4
  10. package/dist/data-grid.d.ts +3 -3
  11. package/dist/data-grid.js +1 -1
  12. package/dist/{detail-list-q8bs67BM.js → detail-list-Bo5ze3SN.js} +234 -9
  13. package/dist/{detail-list-CKIKlszv.d.ts → detail-list-DSZ1DDor.d.ts} +48 -4
  14. package/dist/detail-list.d.ts +4 -4
  15. package/dist/detail-list.js +1 -1
  16. package/dist/{flat-list-DXMyDiSH.d.ts → flat-list-CT9kX3TQ.d.ts} +27 -4
  17. package/dist/flat-list.d.ts +2 -2
  18. package/dist/flat-list.js +123 -4
  19. package/dist/{grid-list-y6dWJYu3.js → grid-list-D0dJNVEF.js} +278 -76
  20. package/dist/{grid-list-0e7snW6t.d.ts → grid-list-DDLrWRxm.d.ts} +128 -22
  21. package/dist/grid-list.d.ts +3 -3
  22. package/dist/grid-list.js +1 -1
  23. package/dist/{incr-search-JIhwB49y.js → incr-search-CgbL-OlS.js} +140 -10
  24. package/dist/incr-search.d.ts +1 -1
  25. package/dist/incr-search.js +1 -1
  26. package/dist/index-9ttcdwlL.d.ts +71 -0
  27. package/dist/index-Bnm-kKGC.d.ts +475 -0
  28. package/dist/{index-KN2MW_xD.d.ts → index-CUErGhCg.d.ts} +31 -4
  29. package/dist/{index-DEVyVIn8.d.ts → index-D-lZNlHa.d.ts} +52 -6
  30. package/dist/index.d.ts +341 -21
  31. package/dist/index.js +2286 -884
  32. package/dist/{list-native-drag-controller-O2Nruqpi.d.ts → list-native-drag-controller-D_UrXipS.d.ts} +1 -1
  33. package/dist/{list-selection-controller-BeE70lbB.js → list-selection-controller-5L0Nj9tR.js} +87 -2
  34. package/dist/miller-DUqiUAWQ.js +2230 -0
  35. package/dist/miller.d.ts +4 -437
  36. package/dist/miller.js +1 -1815
  37. package/dist/narrowed-text.js +1 -1
  38. package/dist/pending-BGidHppL.js +91 -0
  39. package/dist/scroll-hover-guard-Cjw6179Q.js +35 -0
  40. package/dist/{split-layout-JK3xWVX2.d.ts → split-layout-CophkNeU.d.ts} +41 -3
  41. package/dist/{split-layout-Deoxy47d.js → split-layout-DTY4PJRp.js} +251 -19
  42. package/dist/split-layout.d.ts +1 -1
  43. package/dist/split-layout.js +1 -1
  44. package/dist/sunburst-tree.d.ts +2 -2
  45. package/dist/sunburst-tree.js +1 -1
  46. package/dist/{sunbursttree-list-yXwS-uEI.js → sunbursttree-list-B_M0YTEA.js} +299 -80
  47. package/dist/{sunbursttree-list--Z0uyh8O.d.ts → sunbursttree-list-DePuFYlU.d.ts} +40 -3
  48. package/dist/tree-CftHwtEb.js +146 -0
  49. package/dist/{tree-D8VxvR9u.js → tree-DAlgvaHB.js} +276 -48
  50. package/dist/{tree-component-C6UHO-w9.d.ts → tree-component-DgfkxmVY.d.ts} +19 -8
  51. package/dist/tree.d.ts +3 -3
  52. package/dist/tree.js +1 -1
  53. package/dist/types-LU1u0CB8.d.ts +87 -0
  54. package/dist/vertical-list-DyKPKGxK.js +1993 -0
  55. package/dist/{vertical-list-D8MksoTp.d.ts → vertical-list-SAx56U-l.d.ts} +31 -3
  56. package/dist/vertical-list.d.ts +3 -3
  57. package/dist/vertical-list.js +1 -1789
  58. package/dist/view-state-controller-BdyXWUUM.js +305 -0
  59. package/docs-user/README.md +2 -0
  60. package/docs-user/crumbs.md +27 -0
  61. package/docs-user/data-grid.md +79 -5
  62. package/docs-user/detail-list.md +69 -0
  63. package/docs-user/dock.md +63 -12
  64. package/docs-user/flat-list.md +27 -0
  65. package/docs-user/grid-list.md +69 -13
  66. package/docs-user/hyperbolic-tree.md +31 -4
  67. package/docs-user/icicle-tree.md +36 -0
  68. package/docs-user/index.json +12 -2
  69. package/docs-user/llms.txt +2 -0
  70. package/docs-user/miller.md +52 -21
  71. package/docs-user/multicol-list.md +50 -8
  72. package/docs-user/split-layout.md +45 -17
  73. package/docs-user/sunburst-tree.md +32 -2
  74. package/docs-user/tree.md +45 -6
  75. package/docs-user/treemap.md +32 -0
  76. package/docs-user/twosplit-layout.md +22 -0
  77. package/docs-user/user-catalog.md +1 -1
  78. package/docs-user/vertical-list.md +55 -7
  79. package/llms.txt +2 -0
  80. package/package.json +2 -2
package/bundle/index.d.ts CHANGED
@@ -294,7 +294,7 @@ interface AcTokenElement {
294
294
  addEventListener: (<K extends keyof AcTokenElementEventMap>(type: K, listener: (this: AcTokenElement, event: AcTokenElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
295
295
  }
296
296
  //#endregion
297
- //#region node_modules/.pnpm/@clinth+ui-commands@1.1.0/node_modules/@clinth/ui-commands/dist/types.d.ts
297
+ //#region node_modules/.pnpm/@clinth+ui-commands@1.1.1/node_modules/@clinth/ui-commands/dist/types.d.ts
298
298
  type CommandId = string;
299
299
  type CommandOptions = Readonly<{
300
300
  onInvoke?: (id: CommandId, args?: Record<string, unknown>) => void;
@@ -328,11 +328,15 @@ interface KeyBinding<TAppModes extends string = string> {
328
328
  mode?: TAppModes | `all`;
329
329
  nonExclusive?: boolean;
330
330
  commandContext?: string;
331
+ /** Fire even while focus is in a text field (input, textarea, contenteditable). Default false. */
332
+ inTextInput?: boolean;
333
+ /** Require the event's modifiers to match exactly, rather than being a superset. Default false. */
334
+ exact?: boolean;
331
335
  commandId: CommandId;
332
336
  }
333
337
  type KeyEventHandler = (commandId: CommandId, modifiers: Modifiers, context: InputContext) => void;
334
338
  //#endregion
335
- //#region node_modules/.pnpm/@clinth+ui-commands@1.1.0/node_modules/@clinth/ui-commands/dist/command-registry.d.ts
339
+ //#region node_modules/.pnpm/@clinth+ui-commands@1.1.1/node_modules/@clinth/ui-commands/dist/command-registry.d.ts
336
340
  /**
337
341
  * Command registry.
338
342
  */
@@ -402,7 +406,7 @@ declare class CommandRegistry<TState = unknown> {
402
406
  has(id: CommandId): boolean;
403
407
  }
404
408
  //#endregion
405
- //#region node_modules/.pnpm/@clinth+ui-commands@1.1.0/node_modules/@clinth/ui-commands/dist/keyboard-manager.d.ts
409
+ //#region node_modules/.pnpm/@clinth+ui-commands@1.1.1/node_modules/@clinth/ui-commands/dist/keyboard-manager.d.ts
406
410
  /**
407
411
  * Manages keyboard bindings and event handling.
408
412
  * @typeParam M - The mode type (e.g., 'detail' | 'coarse')
@@ -413,6 +417,7 @@ declare class KeyboardManager<M extends string = string> {
413
417
  private element;
414
418
  private eventHandlers;
415
419
  private modeGetter;
420
+ private readonly keydownListener;
416
421
  /**
417
422
  * Sets the function that returns the current application mode.
418
423
  * @param getter - Function that returns the current mode
@@ -2656,6 +2661,92 @@ declare class TreeDataModel {
2656
2661
  _subscribe(callback: ModelSubscriber): () => void;
2657
2662
  }
2658
2663
  //#endregion
2664
+ //#region src/common/view-state/types.d.ts
2665
+ /**
2666
+ * Shared view-state contract for list-like components.
2667
+ *
2668
+ * View state is everything about *how* a component is showing its data —
2669
+ * selection, expansion, scroll, column sizes — kept separate from the data
2670
+ * itself. It is plain JSON (arrays and records, never Sets or Maps) so a host
2671
+ * can `JSON.stringify` it straight into whatever storage it likes. Components
2672
+ * never persist it themselves; see `bindViewState()`.
2673
+ *
2674
+ * Every field is keyed by the stable item / column / group key, never by
2675
+ * index, so state can be re-applied to data that has been rebuilt, re-sorted
2676
+ * or streamed in over time. Keys the current data doesn't contain are kept
2677
+ * as pending and applied once a matching item appears.
2678
+ */
2679
+ /** Current schema version. Bump on breaking shape changes. */
2680
+ declare const VIEW_STATE_VERSION = 1;
2681
+ /** Name of the debounced change event every view-stateful component fires. */
2682
+ declare const VIEW_STATE_CHANGE = "view-state-change";
2683
+ /**
2684
+ * Where the viewport is scrolled to. `anchor` is the preferred form: the key
2685
+ * of the first visible item plus how far (px) the viewport top sits below
2686
+ * that item's start. It survives items being inserted above. `top` / `left`
2687
+ * are raw pixel offsets, used when there is no keyed item to anchor to.
2688
+ */
2689
+ type ScrollState = {
2690
+ readonly top: number;
2691
+ readonly left?: number;
2692
+ readonly anchor?: {
2693
+ readonly key: string;
2694
+ readonly offset: number;
2695
+ };
2696
+ };
2697
+ /** Fields shared by all view states. Components extend this with their own. */
2698
+ type ViewStateBase = {
2699
+ readonly v: typeof VIEW_STATE_VERSION;
2700
+ /** Component kind, e.g. `tree-list`. Mismatched states are ignored. */
2701
+ readonly kind: string;
2702
+ /** Selected item keys. In `checked` interaction modes this is the checked set. */
2703
+ readonly selected?: readonly string[];
2704
+ /** Keyboard cursor (tickled / focused item) key. */
2705
+ readonly focus?: string;
2706
+ readonly scroll?: ScrollState;
2707
+ /**
2708
+ * Explicit open/closed choices for expandable things (tree branches, groups),
2709
+ * keyed by item or group key. A missing key means "use the default".
2710
+ */
2711
+ readonly expanded?: Readonly<Record<string, boolean>>;
2712
+ };
2713
+ /**
2714
+ * What triggered a `view-state-change`:
2715
+ * - `user` — a direct interaction (click, key, drag, scroll)
2716
+ * - `data` — the data changed and the component adjusted (e.g. pruned focus)
2717
+ * - `restore` — pending state was applied to newly-arrived items, or `setViewState()` ran
2718
+ */
2719
+ type ViewStateChangeReason = `user` | `data` | `restore`;
2720
+ type ViewStateChangeDetail<S extends ViewStateBase = ViewStateBase> = {
2721
+ readonly state: S;
2722
+ readonly reason: ViewStateChangeReason;
2723
+ };
2724
+ type ViewStateChangeEvent<S extends ViewStateBase = ViewStateBase> = CustomEvent<ViewStateChangeDetail<S>>;
2725
+ type GetViewStateOptions<S extends ViewStateBase> = {
2726
+ /** Only include these fields (plus `v` and `kind`). Default: all. */
2727
+ readonly include?: ReadonlyArray<Exclude<keyof S, `v` | `kind`>>;
2728
+ /**
2729
+ * Include pending state for keys not (yet) present in the data. Default
2730
+ * `true` — leaving it out means a save made mid-rebuild overwrites the
2731
+ * stored state with a partial one.
2732
+ */
2733
+ readonly includePending?: boolean;
2734
+ };
2735
+ /** Implemented by every component that supports view-state snapshot / restore. */
2736
+ type ViewStateful<S extends ViewStateBase = ViewStateBase> = {
2737
+ /** Snapshot the current view state as plain JSON. */
2738
+ getViewState: (options?: GetViewStateOptions<S>) => S;
2739
+ /**
2740
+ * Apply a (possibly partial) view state. Only fields present are applied;
2741
+ * absent fields are left as they are. Keys not in the current data are kept
2742
+ * pending and applied when matching items appear. A state whose `kind` or
2743
+ * `v` doesn't match is ignored with a console warning.
2744
+ */
2745
+ setViewState: (state: Partial<S>) => void;
2746
+ /** Drop all pending (not-yet-matched) state. */
2747
+ clearPendingViewState: () => void;
2748
+ };
2749
+ //#endregion
2659
2750
  //#region src/common/tree-component.d.ts
2660
2751
  type TreeDndMode = `none` | `internal` | `external` | `both`;
2661
2752
  type TreeDropPosition = `before` | `after` | `inside`;
@@ -2794,6 +2885,11 @@ interface TreeComponentEventMap {
2794
2885
  'tree-drop': TreeDropEvent;
2795
2886
  'tree-drag-end': TreeDragEndEvent;
2796
2887
  }
2888
+ /** Options for `selectAll()` / `deselectAll()`. */
2889
+ type TreeSelectAllOptions = {
2890
+ /** Only act on rows that are showing (e.g. Ctrl+A), not those in collapsed branches. */
2891
+ readonly visibleOnly?: boolean;
2892
+ };
2797
2893
  /**
2798
2894
  * The common interface all tree-like components must implement.
2799
2895
  *
@@ -2807,7 +2903,12 @@ interface TreeComponentEventMap {
2807
2903
  * }
2808
2904
  * ```
2809
2905
  */
2810
- interface TreeComponent extends EventTarget {
2906
+ /**
2907
+ * Every tree component supports view-state snapshot / restore
2908
+ * (`getViewState` / `setViewState` / `clearPendingViewState`, see
2909
+ * `docs/infra-view-state.md`). Each narrows the state type with its own fields.
2910
+ */
2911
+ interface TreeComponent extends EventTarget, ViewStateful {
2811
2912
  /**
2812
2913
  * Root node of the tree.
2813
2914
  * Set this directly for static/fully-known trees.
@@ -2862,13 +2963,13 @@ interface TreeComponent extends EventTarget {
2862
2963
  /** Clear the entire selection. */
2863
2964
  clearSelection: () => void;
2864
2965
  /**
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.
2966
+ * Select every selectable item — in tree components, including those inside
2967
+ * collapsed branches (only filter matches while a filter is active). Pass
2968
+ * `{ visibleOnly: true }` to limit it to the items showing.
2868
2969
  */
2869
- selectAll: () => void;
2870
- /** Deselect all items. In `checked` mode, unchecks each visible node. */
2871
- deselectAll: () => void;
2970
+ selectAll: (options?: TreeSelectAllOptions) => void;
2971
+ /** Mirror of `selectAll`: deselect the items it would select. */
2972
+ deselectAll: (options?: TreeSelectAllOptions) => void;
2872
2973
  /**
2873
2974
  * Expand ancestors and select the node reached by following `keys` from the root's children.
2874
2975
  * Returns `true` if the path was found and applied.
@@ -2934,12 +3035,207 @@ declare function applyTreeDrop(root: TreeNode, ctx: TreeDropApplyContext): TreeN
2934
3035
  /** Build a synthetic `TreeDropTarget` for programmatic moves (see `TreeDataModel`). */
2935
3036
  declare function dropTargetFor(referenceKey: string, position: TreeDropPosition, index?: number): TreeDropTarget;
2936
3037
  //#endregion
3038
+ //#region src/common/view-state/bind.d.ts
3039
+ type ViewStateBinding<S extends ViewStateBase> = {
3040
+ /** Return the previously saved state, or nothing. Called once, immediately. */
3041
+ readonly load: () => Partial<S> | null | undefined;
3042
+ /** Store the state. Called after debounced changes and on `pagehide`. */
3043
+ readonly save: (state: S) => void;
3044
+ /**
3045
+ * Also save changes caused by restoring (pending state being applied).
3046
+ * Default `false` — they only echo what `load()` returned.
3047
+ */
3048
+ readonly saveOnRestore?: boolean;
3049
+ };
3050
+ /** Whether `el` implements the view-state API. */
3051
+ declare function isViewStateful(el: unknown): el is ViewStateful & EventTarget;
3052
+ /**
3053
+ * Wire a component's view state to storage the host controls. Loads and
3054
+ * applies once, then saves on every `view-state-change` and when the page is
3055
+ * hidden. Returns a function that stops saving.
3056
+ *
3057
+ * ```ts
3058
+ * const stop = bindViewState(tree, {
3059
+ * load: () => JSON.parse(localStorage.getItem(`files`) ?? `null`),
3060
+ * save: s => localStorage.setItem(`files`, JSON.stringify(s)),
3061
+ * });
3062
+ * ```
3063
+ */
3064
+ declare function bindViewState<S extends ViewStateBase>(el: ViewStateful<S> & EventTarget, binding: ViewStateBinding<S>): () => void;
3065
+ //#endregion
3066
+ //#region src/common/view-state/pending.d.ts
3067
+ /**
3068
+ * Pure helpers for *pending* view state: keyed intent that is waiting for a
3069
+ * matching item to appear in the data.
3070
+ *
3071
+ * Pending sets / maps are insertion-ordered (oldest first) and capped so a
3072
+ * long-running app with churning data can't grow them without bound.
3073
+ */
3074
+ /** Default cap on pending keys per facet. Oldest entries are dropped first. */
3075
+ declare const MAX_PENDING_KEYS = 2000;
3076
+ type PendingKeys = ReadonlySet<string>;
3077
+ type PendingFlags = ReadonlyMap<string, boolean>;
3078
+ declare const EMPTY_KEYS: PendingKeys;
3079
+ declare const EMPTY_FLAGS: PendingFlags;
3080
+ /**
3081
+ * Split `keys` into those `has` reports present (to apply now) and those
3082
+ * still missing (to keep pending). Returns the input set untouched as
3083
+ * `missing` when nothing matched, so callers can cheaply detect "no change".
3084
+ */
3085
+ declare function partitionKeys(keys: PendingKeys, has: (key: string) => boolean): {
3086
+ readonly present: readonly string[];
3087
+ readonly missing: PendingKeys;
3088
+ };
3089
+ /** As {@link partitionKeys}, for keyed boolean flags (e.g. expanded / collapsed). */
3090
+ declare function partitionFlags(flags: PendingFlags, has: (key: string) => boolean): {
3091
+ readonly present: ReadonlyArray<readonly [string, boolean]>;
3092
+ readonly missing: PendingFlags;
3093
+ };
3094
+ /** Keep at most `max` keys, dropping the oldest. */
3095
+ declare function capKeys(keys: PendingKeys, max?: number): PendingKeys;
3096
+ /** Keep at most `max` flags, dropping the oldest. */
3097
+ declare function capFlags(flags: PendingFlags, max?: number): PendingFlags;
3098
+ /** `flags` without `key` (same instance when absent). */
3099
+ declare function withoutFlag(flags: PendingFlags, key: string): PendingFlags;
3100
+ /** JSON record → flags map. Non-boolean values are ignored. */
3101
+ declare function flagsFromRecord(record: Readonly<Record<string, boolean>> | undefined): PendingFlags;
3102
+ /**
3103
+ * Combine pending and live flags into one JSON record. Live entries win when
3104
+ * a key is in both (it shouldn't be — matched keys leave pending).
3105
+ */
3106
+ declare function flagsToRecord(...sources: Array<Iterable<readonly [string, boolean]>>): Record<string, boolean>;
3107
+ /** Pending keys followed by live keys, de-duplicated, as a JSON array. */
3108
+ declare function keysToArray(...sources: Array<Iterable<string>>): string[];
3109
+ /** Map `keys` to `true` flags — for components that record a plain key set. */
3110
+ declare function keysAsFlags(keys: Iterable<string>, value?: boolean): Iterable<readonly [string, boolean]>;
3111
+ //#endregion
3112
+ //#region src/common/view-state/scroll-anchor.d.ts
3113
+ /**
3114
+ * Scroll-position helpers. A raw `scrollTop` is wrong as soon as anything is
3115
+ * inserted above it, so view state records the first visible item's key plus
3116
+ * an offset into it, and falls back to pixels only when nothing is keyed.
3117
+ */
3118
+ type ScrollAxis = `vertical` | `horizontal`;
3119
+ /**
3120
+ * Capture a {@link ScrollState} for a DOM-rendered list. `items` must be in
3121
+ * visual order along `axis`; the first one whose far edge is below / right of
3122
+ * the viewport start is the anchor (found by binary search).
3123
+ */
3124
+ declare function captureElementScroll(viewport: HTMLElement, items: readonly Element[], getKey: (el: Element) => string | undefined, axis?: ScrollAxis): ScrollState;
3125
+ /**
3126
+ * Scroll `viewport` so `item` sits at the anchor's offset. Returns `false`
3127
+ * when the viewport can't scroll far enough yet (content still arriving),
3128
+ * so the caller can keep the anchor pending.
3129
+ */
3130
+ declare function restoreElementScroll(viewport: HTMLElement, item: Element, offset: number, axis?: ScrollAxis): boolean;
3131
+ /**
3132
+ * Set the scroll offset along `axis`. Returns `false` when `target` is beyond
3133
+ * the current scroll range (it is clamped and should be retried later).
3134
+ */
3135
+ declare function scrollToOffset(viewport: HTMLElement, target: number, axis?: ScrollAxis): boolean;
3136
+ /**
3137
+ * Anchor for a virtualised list with arithmetic row geometry: pass the first
3138
+ * visible index, the key at that index and that row's start offset.
3139
+ */
3140
+ declare function anchorFromRow(scrollOffset: number, key: string | undefined, rowStart: number, crossOffset?: number): ScrollState;
3141
+ /**
3142
+ * Call `onIntent` the first time the user does something that scrolls or
3143
+ * moves within `target` (wheel, touch, pointer on the scrollbar, navigation
3144
+ * key). Used to cancel a pending scroll restore — the user's own scroll wins.
3145
+ * Programmatic `scrollTop` writes do not trigger it. Returns a disposer.
3146
+ */
3147
+ declare function onUserScrollIntent(target: EventTarget, onIntent: () => void): () => void;
3148
+ //#endregion
3149
+ //#region src/common/view-state/view-state-controller.d.ts
3150
+ type ViewStateControllerOptions<S extends ViewStateBase> = {
3151
+ /** Component kind written into every state, e.g. `tree-list`. */
3152
+ readonly kind: string;
3153
+ /** Build the full current state (pending included). Called when the change event fires. */
3154
+ readonly capture: () => S;
3155
+ /** Trailing debounce for `view-state-change`, ms. Default 150. */
3156
+ readonly debounceMs?: number;
3157
+ };
3158
+ /**
3159
+ * Plumbing shared by every view-stateful component:
3160
+ *
3161
+ * - **change events** — `notify(reason)` coalesces changes into one debounced
3162
+ * `view-state-change` event (strongest reason wins: user > data > restore),
3163
+ * flushed immediately on disconnect so the last change is never lost.
3164
+ * - **restore marking** — changes made inside `restoring(fn)` are reported as
3165
+ * `restore`, so persistence code can skip writing back what it just loaded.
3166
+ * - **validation** — `accepts(state)` rejects a state for another kind / version.
3167
+ * - **pending scroll** — a scroll position waiting for its anchor item (or for
3168
+ * enough content). Cancelled by the user's own scroll intent on the target
3169
+ * given to `observeScrollTarget()`.
3170
+ *
3171
+ * The component owns its facets (selection, expansion, columns) and decides
3172
+ * what's pending; this controller only carries the cross-cutting parts.
3173
+ */
3174
+ declare class ViewStateController<S extends ViewStateBase> implements ReactiveController {
3175
+ #private;
3176
+ constructor(host: ReactiveControllerHost & EventTarget, options: ViewStateControllerOptions<S>);
3177
+ get kind(): string;
3178
+ hostConnected(): void;
3179
+ hostDisconnected(): void;
3180
+ /** Record a change. Inside `restoring()` the reason is forced to `restore`. */
3181
+ notify(reason?: ViewStateChangeReason): void;
3182
+ /** Fire any pending change event now. */
3183
+ flush(): void;
3184
+ /** Run `fn` with every `notify()` inside it reported as `restore`. */
3185
+ restoring<T>(fn: () => T): T;
3186
+ /** True while inside `restoring()`. */
3187
+ get isRestoring(): boolean;
3188
+ /** Whether `state` is for this component kind and schema version. Warns when not. */
3189
+ accepts(state: Partial<S> | null | undefined): state is Partial<S>;
3190
+ /**
3191
+ * Stamp `v` / `kind` onto `fields` and apply `include`. Components build
3192
+ * their full field set and pass it through here from `getViewState()`.
3193
+ */
3194
+ shape(fields: Omit<S, `v` | `kind`>, options?: GetViewStateOptions<S>): S;
3195
+ /**
3196
+ * Watch `target` for user scroll intent (wheel / touch / pointer / nav key);
3197
+ * any intent drops the pending scroll. Call again if the scroll container
3198
+ * is replaced.
3199
+ */
3200
+ observeScrollTarget(target: EventTarget): void;
3201
+ get pendingScroll(): ScrollState | undefined;
3202
+ set pendingScroll(scroll: ScrollState | undefined);
3203
+ /**
3204
+ * Try the pending scroll with `apply`; it returns `true` once the position
3205
+ * was fully reached (anchor present, content long enough), which clears it.
3206
+ * Call after each render that may have added items.
3207
+ */
3208
+ applyPendingScroll(apply: (scroll: ScrollState) => boolean): void;
3209
+ /**
3210
+ * Call from the viewport's `scroll` listener. Ignored while a scroll restore
3211
+ * is still pending; the event caused by a restore's own write is reported
3212
+ * as `restore`, anything else as `user`.
3213
+ */
3214
+ notifyScroll(): void;
3215
+ }
3216
+ //#endregion
2937
3217
  //#region src/tree/types.d.ts
2938
3218
  /** Tree layout/display configuration (tree-specific, not shared). */
2939
3219
  type TreeConfig = {
2940
3220
  indent: number;
2941
3221
  };
2942
3222
  //#endregion
3223
+ //#region src/crumbs/crumb-view-state.d.ts
3224
+ /**
3225
+ * Pure view-state helpers for `ixfx-crumb-navigation` (also used by
3226
+ * `ixfx-flat-list`, whose location is the same kind of key path).
3227
+ * See docs/infra-view-state.md.
3228
+ */
3229
+ /**
3230
+ * `ixfx-crumb-navigation` view state. The location *is* the selection (one
3231
+ * node), so it is stored once, as the key path that reaches it — a path, not
3232
+ * a lone key, so a saved location deep in a lazy tree can be loaded down to.
3233
+ */
3234
+ type CrumbNavigationViewState = ViewStateBase & {
3235
+ /** Keys from the root (excluded) down to the current location. `[]` = the root. */
3236
+ readonly path?: readonly string[];
3237
+ };
3238
+ //#endregion
2943
3239
  //#region src/narrowed-text/types.d.ts
2944
3240
  type NarrowedTextItem = Readonly<{
2945
3241
  value: string;
@@ -3080,6 +3376,11 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
3080
3376
  hideRoot: boolean;
3081
3377
  padEnding: boolean;
3082
3378
  withUp: boolean;
3379
+ /**
3380
+ * Whether restoring view state may call `loadChildren` to reach a saved
3381
+ * location through unloaded branches (one load at a time). Default `true`.
3382
+ */
3383
+ restoreLoads: boolean;
3083
3384
  private tickled;
3084
3385
  select(node: TreeNode): void;
3085
3386
  deselect(_node: TreeNode): void;
@@ -3092,6 +3393,15 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
3092
3393
  node: TreeNode;
3093
3394
  depth: number;
3094
3395
  }>;
3396
+ /** Snapshot the location as a key path. Includes a saved location not reached yet. */
3397
+ getViewState(options?: GetViewStateOptions<CrumbNavigationViewState>): CrumbNavigationViewState;
3398
+ /**
3399
+ * Go to a saved location. Keys not loaded yet are reached as they appear —
3400
+ * via `loadChildren` when `restoreLoads` — moving through each loaded ancestor.
3401
+ */
3402
+ setViewState(state: Partial<CrumbNavigationViewState>): void;
3403
+ clearPendingViewState(): void;
3404
+ willUpdate(changedProps: PropertyValues): void;
3095
3405
  updated(changedProps: PropertyValues): void;
3096
3406
  connectedCallback(): void;
3097
3407
  disconnectedCallback(): void;
@@ -3421,6 +3731,31 @@ type DataGridGroupLabel = (groupKey: string, rows: readonly unknown[]) => string
3421
3731
  /** Whether the data-grid renders its built-in header column/group menu. */
3422
3732
  type DataGridColumnMenu = `auto` | `none`;
3423
3733
  //#endregion
3734
+ //#region src/data-grid/data-grid-view-state.d.ts
3735
+ /**
3736
+ * Pure view-state helpers for `ixfx-data-grid`. The grid runs these whenever
3737
+ * its rows or columns change, so state keyed to rows / columns that left the
3738
+ * data goes pending and comes back when those keys reappear.
3739
+ */
3740
+ /** Saved layout for one column, keyed by column key in {@link DataGridViewState.columns}. */
3741
+ type DataGridColumnViewState = {
3742
+ readonly width?: number;
3743
+ readonly visible?: boolean;
3744
+ /** Rank among the saved columns (lower is further left). */
3745
+ readonly order?: number;
3746
+ };
3747
+ /**
3748
+ * `ixfx-data-grid` view state. `expanded` is keyed by group key; groups
3749
+ * default to open, so a collapsed group is `false`.
3750
+ */
3751
+ type DataGridViewState = ViewStateBase & {
3752
+ readonly columns?: Readonly<Record<string, DataGridColumnViewState>>;
3753
+ /** Sorted column + direction; `null` means unsorted. */
3754
+ readonly sort?: DataGridSortState;
3755
+ /** Group-by column key (`null` = ungrouped). Only recorded when `allowGrouping` is on. */
3756
+ readonly groupBy?: string | null;
3757
+ };
3758
+ //#endregion
3424
3759
  //#region node_modules/.pnpm/fzf@0.5.2/node_modules/fzf/dist/types/slab.d.ts
3425
3760
  interface Slab {
3426
3761
  i16: Int16Array;
@@ -3735,7 +4070,8 @@ declare class IncrSearchTreeController {
3735
4070
  * - `navigate` — move the cursor to the best match; ↑/↓ cycle between matches;
3736
4071
  * Enter activates the current match and closes.
3737
4072
  * - `select` — (re)select every item whose label matches, live as you type.
3738
- * - `filter` — hide items that don't match; restored when the popover closes.
4073
+ * - `filter` — hide items that don't match; restored when the popover closes
4074
+ * (unless `stickyFilter` keeps it on Enter).
3739
4075
  */
3740
4076
  type ListSearchMode = `navigate` | `select` | `filter`;
3741
4077
  /** Canonical order — used for the switch-row and to normalise a requested set. */
@@ -3788,6 +4124,8 @@ interface ListSearchControllerOptions<TItem> {
3788
4124
  modes?: readonly ListSearchMode[];
3789
4125
  fzf?: Partial<FzfOptions<SearchItem>>;
3790
4126
  placeholder?: string;
4127
+ /** Initial {@link ListSearchController.stickyFilter}. Default false. */
4128
+ stickyFilter?: boolean;
3791
4129
  }
3792
4130
  type ListSearchHost = ReactiveControllerHost & HTMLElement & {
3793
4131
  renderRoot?: DocumentFragment | HTMLElement;
@@ -3800,6 +4138,12 @@ type ListSearchHost = ReactiveControllerHost & HTMLElement & {
3800
4138
  */
3801
4139
  declare class ListSearchController<TItem> implements ReactiveController {
3802
4140
  #private;
4141
+ /**
4142
+ * When true, Enter in `filter` mode closes the popover but keeps the filter,
4143
+ * shown as a "Filtered: …" chip. Clear it with the chip's ×, Escape on the
4144
+ * host, or {@link clearFilter}; click the chip to edit the query.
4145
+ */
4146
+ stickyFilter: boolean;
3803
4147
  constructor(host: ListSearchHost, options: ListSearchControllerOptions<TItem>);
3804
4148
  /** `false` when no modes are available — the host should register no commands and render no field. */
3805
4149
  get enabled(): boolean;
@@ -3817,20 +4161,38 @@ declare class ListSearchController<TItem> implements ReactiveController {
3817
4161
  get query(): string;
3818
4162
  get matchCount(): number;
3819
4163
  get matchIndex(): number;
4164
+ /** The query of a filter kept applied after the popover closed (see {@link stickyFilter}). */
4165
+ get keptFilter(): string | undefined;
3820
4166
  hostConnected(): void;
3821
4167
  hostDisconnected(): void;
3822
- /** Open the popover in `mode` (clamped to the available set). */
4168
+ /**
4169
+ * Open the popover in `mode` (clamped to the available set). When it is
4170
+ * already open the query is kept: the mode switches if it differs and the
4171
+ * input is refocused with its text selected.
4172
+ */
3823
4173
  open(mode: ListSearchMode): void;
3824
4174
  /** Close the popover, restoring any live filter. Selection / cursor stay put. */
3825
4175
  close(): void;
4176
+ /** Remove a filter kept by {@link stickyFilter}. No-op when none is kept. */
4177
+ clearFilter(): void;
3826
4178
  setQuery(query: string): void;
3827
4179
  /** Re-interpret the current query under a new mode (undoing the old mode's effect). */
3828
4180
  switchMode(next: ListSearchMode): void;
4181
+ /**
4182
+ * Step through {@link registeredModes} (wrapping) and switch to the result.
4183
+ * Bound to Tab / Shift+Tab in the popover input.
4184
+ */
4185
+ cycleMode(delta: 1 | -1): void;
4186
+ /** Refocus the popover input (text selected) without touching the query. No-op when closed. */
4187
+ focus(): void;
3829
4188
  /** One-shot: turn the current match set into the selection, staying in the current mode. */
3830
4189
  selectMatches(): void;
3831
4190
  nextMatch(): void;
3832
4191
  prevMatch(): void;
3833
- /** Enter: in `navigate` activate the current match; then close. */
4192
+ /**
4193
+ * Enter: in `navigate` activate the current match; then close. In `filter`
4194
+ * with {@link stickyFilter} and a query, close but keep the filter.
4195
+ */
3834
4196
  commit(): void;
3835
4197
  /** Rebuild the searchable item set from the adapter. Called on open and on container mutation. */
3836
4198
  refresh(): void;
@@ -4347,8 +4709,17 @@ declare class DataGridElement extends LitElement {
4347
4709
  * view and navigation.
4348
4710
  */
4349
4711
  filterPredicate?: (row: unknown) => boolean;
4350
- /** Text a row is matched against by incremental search. Default: its visible cells joined by a space. */
4712
+ /**
4713
+ * Text a row is matched against by incremental search. Overrides
4714
+ * `searchColumn`; matches against it aren't highlighted, since they can't be
4715
+ * mapped onto a cell.
4716
+ */
4351
4717
  rowSearchText?: (row: unknown) => string;
4718
+ /**
4719
+ * Key of the column incremental search matches against, using the cell's
4720
+ * displayed (formatted) text. Default: the first visible column.
4721
+ */
4722
+ searchColumn: string;
4352
4723
  /**
4353
4724
  * Space-separated subset of `navigate select filter` — limits which
4354
4725
  * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
@@ -4509,6 +4880,21 @@ declare class DataGridElement extends LitElement {
4509
4880
  autoSizeColumn(key: string): boolean;
4510
4881
  private _columnResizeAnimationMs;
4511
4882
  private _onResizePointerDown;
4883
+ /**
4884
+ * Snapshot selection, cursor, scroll, collapsed groups, column layout, sort
4885
+ * and (with `allowGrouping`) grouping as plain JSON, keyed by row / group /
4886
+ * column key. Includes pending state for keys not currently present. Rows
4887
+ * keyed by index (no `key` / `id` under the default `getRowKey`) are never
4888
+ * recorded.
4889
+ */
4890
+ getViewState(options?: GetViewStateOptions<DataGridViewState>): DataGridViewState;
4891
+ /**
4892
+ * Apply saved view state. Fields present replace the current ones; row and
4893
+ * column keys that aren't defined yet are applied as they appear (including
4894
+ * rows streamed in with `appendRows()`).
4895
+ */
4896
+ setViewState(state: Partial<DataGridViewState>): void;
4897
+ clearPendingViewState(): void;
4512
4898
  getVisibleRange(): {
4513
4899
  startRow: number;
4514
4900
  endRow: number;
@@ -4699,6 +5085,21 @@ interface ListElementEventMap {
4699
5085
  'list-item-click': ListItemClickEvent;
4700
5086
  }
4701
5087
  //#endregion
5088
+ //#region src/detail-list/detail-list-view-state.d.ts
5089
+ /**
5090
+ * Pure helpers behind `ixfx-detail-list`'s view state (see
5091
+ * `docs/infra-view-state.md`). The component keeps only the wiring.
5092
+ *
5093
+ * - `selected` — selected item keys (in `checked` mode, the checked set:
5094
+ * `data-checked` is derived from the selection, not stored separately).
5095
+ * - `expanded` — `{ [groupKey]: false }` for collapsed groups. Groups default
5096
+ * open, so only collapses are recorded; `true` re-opens.
5097
+ * - `focus` — keyboard-cursor key.
5098
+ * - `scroll` — horizontal: `left` plus an anchor on the top item of the first
5099
+ * visible column.
5100
+ */
5101
+ type DetailListViewState = ViewStateBase;
5102
+ //#endregion
4702
5103
  //#region src/vertical-list/types.d.ts
4703
5104
  /**
4704
5105
  * `list-drag-over` / `list-drop`. `key` and `item` are `undefined` when the
@@ -4735,6 +5136,20 @@ type ListContextMenuEvent = CustomEvent<ListContextMenuDetail>;
4735
5136
  type ListEditCommitEvent = CustomEvent<ListEditCommitDetail>;
4736
5137
  type ListEditCancelEvent = CustomEvent<ListEditCancelDetail>;
4737
5138
  //#endregion
5139
+ //#region src/vertical-list/vertical-list-view-state.d.ts
5140
+ /**
5141
+ * Pure helpers behind `ixfx-vertical-list`'s view state. The component runs
5142
+ * them whenever its items change (light-DOM edits, `addItem` / `setItems` /
5143
+ * `clearItems`, adapter rebuilds, virtual registry changes), so state keyed to
5144
+ * rows that left the list goes pending and comes back when those keys reappear.
5145
+ */
5146
+ /**
5147
+ * `ixfx-vertical-list` view state. All fields are the shared base fields:
5148
+ * `selected` (the checked set in `checked` mode), `focus` (keyboard cursor)
5149
+ * and `scroll`. Keys are each row's `data-key` / `data-value`.
5150
+ */
5151
+ type VerticalListViewState = ViewStateBase;
5152
+ //#endregion
4738
5153
  //#region src/editable-label/editable-label.d.ts
4739
5154
  type EditableMode = `label` | `editor`;
4740
5155
  type EntryMode = `free` | `text` | `number` | `percent`;
@@ -5028,6 +5443,18 @@ declare class VerticalListElement extends LitElement {
5028
5443
  focusKey(key: string): void;
5029
5444
  /** The item carrying this `data-key`, or `undefined`. */
5030
5445
  getItemByKey(key: string): Element | undefined;
5446
+ /**
5447
+ * Snapshot selection (the checked set in `checked` mode), keyboard cursor
5448
+ * and scroll as plain JSON keyed by `data-key` / `data-value`. Includes
5449
+ * pending state for keys not currently in the list.
5450
+ */
5451
+ getViewState(options?: GetViewStateOptions<VerticalListViewState>): VerticalListViewState;
5452
+ /**
5453
+ * Apply saved view state. Fields present replace the current ones; keys
5454
+ * not in the list yet are applied as matching rows appear.
5455
+ */
5456
+ setViewState(state: Partial<VerticalListViewState>): void;
5457
+ clearPendingViewState(): void;
5031
5458
  /**
5032
5459
  * Keys of items currently intersecting the viewport — for prioritising
5033
5460
  * viewport-first work (e.g. metadata/thumbnail fetches). A rect-intersection
@@ -5195,6 +5622,13 @@ declare class DetailListElement extends LitElement {
5195
5622
  provider: IDataProvider<void, unknown> | undefined;
5196
5623
  displayProperty: string;
5197
5624
  formatter: DetailFormatter | undefined;
5625
+ /**
5626
+ * Text incremental search matches for an object item. Defaults to the
5627
+ * caption when it is a string (`displayProperty` or a string `formatter`),
5628
+ * else the row's whole text — set this when `formatter` returns a `Node`
5629
+ * carrying more than the name (sublines, sizes, dates).
5630
+ */
5631
+ searchText: ((item: unknown, index: number) => string) | undefined;
5198
5632
  iconProperty: string;
5199
5633
  /**
5200
5634
  * Property on each `items` entry holding a CSS colour for the item's
@@ -5278,6 +5712,13 @@ declare class DetailListElement extends LitElement {
5278
5712
  * changed by outside forces (e.g. an external font load).
5279
5713
  */
5280
5714
  refreshLayout(): void;
5715
+ /**
5716
+ * Rebuild every object-item row, for when something the `formatter` (or
5717
+ * `searchText`) reads has changed but the items themselves haven't —
5718
+ * reassigning the same objects keeps their rows as they are. Assigning a new
5719
+ * `formatter` function has the same effect.
5720
+ */
5721
+ reformat(): void;
5281
5722
  addItem(item: Element | string, options?: AddItemOptions): void;
5282
5723
  /**
5283
5724
  * Collapse + fade `item` out, then detach it; the rows after it slide up to
@@ -5331,6 +5772,18 @@ declare class DetailListElement extends LitElement {
5331
5772
  /** Move the cursor to the item with this key and scroll it into view. */
5332
5773
  focusKey(key: string): void;
5333
5774
  selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
5775
+ /**
5776
+ * Snapshot selection, collapsed groups, cursor and scroll as plain JSON,
5777
+ * keyed by item / group key. Includes pending state for keys not present.
5778
+ */
5779
+ getViewState(options?: GetViewStateOptions<DetailListViewState>): DetailListViewState;
5780
+ /**
5781
+ * Apply saved view state. Fields present replace the current ones; keys not
5782
+ * in the data are applied as matching items arrive (rebuilds, provider
5783
+ * batches, `addItem`, light-DOM appends).
5784
+ */
5785
+ setViewState(state: Partial<DetailListViewState>): void;
5786
+ clearPendingViewState(): void;
5334
5787
  /** Groups in display order (empty when ungrouped). */
5335
5788
  get groups(): readonly ListGroupInfo[];
5336
5789
  /** Collapse or expand one group. Fires `list-group-toggle` when the state changes. */
@@ -5395,6 +5848,7 @@ declare global {
5395
5848
  interface DetailListElementEventMap extends ListElementEventMap, ListGroupEventMap {
5396
5849
  'detail-list-viewport-change': ListViewportChangeEvent;
5397
5850
  'list-native-drag-start': ListNativeDragStartEvent<Element>;
5851
+ 'view-state-change': ViewStateChangeEvent<DetailListViewState>;
5398
5852
  }
5399
5853
  //#endregion
5400
5854
  //#region src/dock/types.d.ts
@@ -5405,6 +5859,15 @@ type DockLayout = {
5405
5859
  readonly root: DockNode;
5406
5860
  };
5407
5861
  type DockNode = DockSplitNode | DockStackNode;
5862
+ /**
5863
+ * `ixfx-dock-host` view state (`kind: 'dock-host'`). `layout` is the whole
5864
+ * dock tree — splits and their sizes, stacks with tab order, active tab and
5865
+ * collapse — keyed by panel id. Panels it names that the host doesn't hold
5866
+ * yet keep their place and slot in when they arrive.
5867
+ */
5868
+ type DockHostViewState = ViewStateBase & {
5869
+ readonly layout?: DockLayout;
5870
+ };
5408
5871
  /**
5409
5872
  * N-ary split node, rendered as a single `ixfx-split-layout`.
5410
5873
  * `direction` uses the element's flexbox sense: `row` places children
@@ -5756,6 +6219,24 @@ interface LayoutSnapshot {
5756
6219
  version: 1;
5757
6220
  root: SnapshotNode;
5758
6221
  }
6222
+ /**
6223
+ * Saved size of one direct child of an `ixfx-split-layout`, keyed by the
6224
+ * child's `id` in {@link SplitLayoutViewState.layout}.
6225
+ */
6226
+ interface SplitPanelViewState {
6227
+ /**
6228
+ * Share (0..1) of the weighted flow. For a collapsed panel, the share it
6229
+ * returns to when expanded.
6230
+ */
6231
+ readonly weight: number;
6232
+ /** Collapsed to the gutter. Absent ⇒ expanded. */
6233
+ readonly collapsed?: boolean;
6234
+ }
6235
+ /** `ixfx-split-layout` view state (`kind: 'split-layout'`). */
6236
+ type SplitLayoutViewState = ViewStateBase & {
6237
+ /** Direct children with an author-given `id`, keyed by that id. */
6238
+ readonly layout?: Readonly<Record<string, SplitPanelViewState>>;
6239
+ };
5759
6240
  interface PanelInfo {
5760
6241
  id: string;
5761
6242
  el: HTMLElement;
@@ -5821,10 +6302,17 @@ declare global {
5821
6302
  //#endregion
5822
6303
  //#region src/split-layout/split-layout.d.ts
5823
6304
  declare class SplitLayoutElement extends LitElement {
6305
+ #private;
5824
6306
  direction: Axis;
5825
6307
  sizes: string;
5826
6308
  gutterSize: string;
5827
6309
  snap: string;
6310
+ /**
6311
+ * Forget the saved size of a child that leaves instead of re-applying it
6312
+ * when a child with that id returns. For hosts that drive child sizes
6313
+ * themselves (e.g. `ixfx-dock-host`, whose leaf ids are positional).
6314
+ */
6315
+ forgetAbsent: boolean;
5828
6316
  private _model;
5829
6317
  private _resizing;
5830
6318
  private _groupEl?;
@@ -5837,9 +6325,20 @@ declare class SplitLayoutElement extends LitElement {
5837
6325
  firstUpdated(): void;
5838
6326
  private _setupObserver;
5839
6327
  private _rebuildModel;
6328
+ private _writeCollapsedAttributes;
5840
6329
  get panels(): PanelInfo[];
5841
- getLayout(): LayoutSnapshot | null;
5842
- setLayout(s: LayoutSnapshot): void;
6330
+ /**
6331
+ * Snapshot the size and collapse of every direct child with an `id`.
6332
+ * Includes saved entries for children not currently slotted.
6333
+ */
6334
+ getViewState(options?: GetViewStateOptions<SplitLayoutViewState>): SplitLayoutViewState;
6335
+ /**
6336
+ * Apply saved sizes. Entries for children that aren't slotted yet are kept
6337
+ * and applied when a child with that id appears. Present children without
6338
+ * an entry keep their relative size.
6339
+ */
6340
+ setViewState(state: Partial<SplitLayoutViewState>): void;
6341
+ clearPendingViewState(): void;
5843
6342
  getSizes(_groupId?: string): Record<string, number>;
5844
6343
  setSizes(weights: number[] | Record<string, number>, _groupId?: string): void;
5845
6344
  collapse(idOrEl: string | HTMLElement): void;
@@ -6030,6 +6529,7 @@ interface DockHostElementEventMap {
6030
6529
  'dock-panel-drag-in': DockDragBoundaryEvent;
6031
6530
  }
6032
6531
  declare class DockHostElement extends LitElement {
6532
+ #private;
6033
6533
  /** Initial layout as `DockLayout` JSON. Absent ⇒ all pooled panels go into one root stack. */
6034
6534
  layout: string | null;
6035
6535
  /**
@@ -6061,6 +6561,11 @@ declare class DockHostElement extends LitElement {
6061
6561
  acceptsKinds: readonly string[] | null;
6062
6562
  /** Finest-grained veto, consulted per candidate zone. */
6063
6563
  canAccept: ((panelId: string, op: DockOperation) => boolean) | undefined;
6564
+ /**
6565
+ * Tab label for a placeholder (a panel a restored layout names that the host
6566
+ * doesn't hold yet). Defaults to the panel id.
6567
+ */
6568
+ placeholderLabel: ((panelId: string) => string) | undefined;
6064
6569
  private _model;
6065
6570
  private _pool;
6066
6571
  private _dropZone;
@@ -6075,7 +6580,7 @@ declare class DockHostElement extends LitElement {
6075
6580
  /**
6076
6581
  * Placement policy per named leaf: `{ allow, deny }` kind sets plus an
6077
6582
  * `allowEdgeSplit` gate (default `true`). Host-level only — never serialized
6078
- * into the layout, but kept across `loadLayout()` calls. Existing panels are
6583
+ * into the layout, but kept across `setViewState()` calls. Existing panels are
6079
6584
  * grandfathered; rules govern future placements (drags, `addPanel`,
6080
6585
  * re-homing). See {@link setLeafPlacementPolicy}.
6081
6586
  */
@@ -6085,7 +6590,7 @@ declare class DockHostElement extends LitElement {
6085
6590
  private _junctionsRaf;
6086
6591
  private _hostResizeObserver;
6087
6592
  /**
6088
- * Bumped on every `loadLayout()`. Stamped onto each rendered
6593
+ * Bumped on every layout restore (`setViewState()`). Stamped onto each rendered
6089
6594
  * `ixfx-split-layout` as `data-dock-gen`, so `_foldLiveWeights` can tell a
6090
6595
  * split that still carries the *previous* generation's live weights (its
6091
6596
  * async re-render hasn't landed yet) from one that's caught up — and skip
@@ -6135,9 +6640,33 @@ declare class DockHostElement extends LitElement {
6135
6640
  private _observePanel;
6136
6641
  private _unobservePanel;
6137
6642
  private _syncPool;
6138
- /** Serialize the current layout, folding live split weights from the DOM. */
6643
+ /**
6644
+ * Snapshot the layout (live split weights folded in from the DOM). With
6645
+ * `includePending` (default), panels the restored layout names but the
6646
+ * host doesn't hold yet are kept in place; without it they are left out.
6647
+ */
6648
+ getViewState(options?: GetViewStateOptions<DockHostViewState>): DockHostViewState;
6649
+ /**
6650
+ * Restore a layout. Panels it names that aren't in the host yet keep their
6651
+ * place (shown as a placeholder tab) and slot in when they arrive — as a
6652
+ * light-DOM child, or via `addPanel()` without a target. Pooled panels it
6653
+ * doesn't name are appended to the first stack admitting their kind.
6654
+ */
6655
+ setViewState(state: Partial<DockHostViewState>): void;
6656
+ /**
6657
+ * Drop every placeholder: panels the restored layout names that the host
6658
+ * doesn't hold. Call it once the app has added all the panels it has, so
6659
+ * ids for panels that no longer exist don't linger (and get saved again).
6660
+ */
6661
+ clearPendingViewState(): void;
6662
+ /** @deprecated Since 0.16; use `getViewState().layout`. */
6139
6663
  saveLayout(): DockLayout;
6664
+ /** @deprecated Since 0.16; use `setViewState({ layout })`. */
6140
6665
  loadLayout(layout: DockLayout): void;
6666
+ /** The current layout, folding live split weights from the DOM. */
6667
+ private _captureLayout;
6668
+ /** Whether `panelId` is in the model only as a placeholder from a restored layout. */
6669
+ private _isPlaceholder;
6141
6670
  /**
6142
6671
  * Dock a panel. Returns false (without touching the DOM) when the
6143
6672
  * explicitly targeted container denies the panel's `kind`.
@@ -6177,7 +6706,7 @@ declare class DockHostElement extends LitElement {
6177
6706
  * {@link setLeafPlacementPolicy}'s `allowEdgeSplit` (default `true`).
6178
6707
  * Pass `[]` to seal the leaf (nothing admitted). Warns when no stack
6179
6708
  * currently carries `name`, but the rule is still stored and applies once
6180
- * one appears. Rules are host policy: kept across `loadLayout()`, never
6709
+ * one appears. Rules are host policy: kept across `setViewState()`, never
6181
6710
  * serialized.
6182
6711
  */
6183
6712
  setLeafExclusiveContents(name: string, kinds: readonly string[]): void;
@@ -6203,7 +6732,7 @@ declare class DockHostElement extends LitElement {
6203
6732
  * unconstrained* leaf — the policy is not propagated to it.
6204
6733
  *
6205
6734
  * Warns when no stack currently carries `name`; the policy is stored and
6206
- * applies once one appears. Host policy: kept across `loadLayout()`, never
6735
+ * applies once one appears. Host policy: kept across `setViewState()`, never
6207
6736
  * serialized.
6208
6737
  */
6209
6738
  setLeafPlacementPolicy(name: string, policy: DockLeafPlacementPolicy): void;
@@ -6328,6 +6857,12 @@ declare class DockHostElement extends LitElement {
6328
6857
  /** Fold live weights from each rendered `ixfx-split-layout` into the model. */
6329
6858
  private _foldLiveWeights;
6330
6859
  private _onSplitWeightsChanged;
6860
+ /**
6861
+ * Splits inside the dock are an implementation detail: keep their own
6862
+ * `view-state-change` from escaping (retargeted, it would look like ours).
6863
+ * Events from panel content pass through untouched.
6864
+ */
6865
+ private _onInnerViewState;
6331
6866
  private _onSplitCollapsed;
6332
6867
  private _onSplitClose;
6333
6868
  private _onTabChange;
@@ -6687,6 +7222,15 @@ type FlatListEditCommitDetail = {
6687
7222
  type FlatListEditCancelDetail = {
6688
7223
  readonly node: TreeNode;
6689
7224
  };
7225
+ /**
7226
+ * `ixfx-flat-list` view state. `selected`, `focus` and `scroll` belong to the
7227
+ * level at `path`; they are held until that level is shown, then handed to
7228
+ * the inner list.
7229
+ */
7230
+ type FlatListViewState = ViewStateBase & {
7231
+ /** Keys from the root (excluded) to the level shown — the `path` property. */
7232
+ readonly path?: readonly string[];
7233
+ };
6690
7234
  type FlatListNavigateEvent = CustomEvent<FlatListNavigateDetail>;
6691
7235
  type FlatListSelectEvent = CustomEvent<FlatListSelectDetail>;
6692
7236
  type FlatListActivateEvent = CustomEvent<FlatListActivateDetail>;
@@ -6805,6 +7349,18 @@ declare class FlatListElement extends LitElement {
6805
7349
  navigateInto(key: string): boolean;
6806
7350
  /** Move to the parent level. Returns false at the root. */
6807
7351
  navigateUp(): boolean;
7352
+ /**
7353
+ * Snapshot the level shown (`path`) and, from the inner list, its selection,
7354
+ * cursor and scroll. Includes a saved level not reached yet.
7355
+ */
7356
+ getViewState(options?: GetViewStateOptions<FlatListViewState>): FlatListViewState;
7357
+ /**
7358
+ * Go to a saved level. Keys not loaded yet are reached as they load (the
7359
+ * level shown is always loaded); `selected` / `focus` / `scroll` apply once
7360
+ * that level is shown.
7361
+ */
7362
+ setViewState(state: Partial<FlatListViewState>): void;
7363
+ clearPendingViewState(): void;
6808
7364
  disconnectedCallback(): void;
6809
7365
  protected willUpdate(changed: PropertyValues): void;
6810
7366
  protected updated(changed: PropertyValues): void;
@@ -7371,6 +7927,29 @@ declare class ListSelectionController<T> {
7371
7927
  * fires once if anything changed.
7372
7928
  */
7373
7929
  removeKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
7930
+ /** Selected keys waiting for their items to appear. */
7931
+ get pendingKeys(): PendingKeys;
7932
+ /**
7933
+ * Restore a selection by key: keys that resolve are selected now (one
7934
+ * `onChange`), the rest are kept pending for `resolvePending()`. Replaces
7935
+ * any previous selection and pending keys. Unlike `selectKeys`, this works
7936
+ * in `selectionMode="none"` only to the extent of holding keys pending.
7937
+ */
7938
+ restoreKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
7939
+ /**
7940
+ * Select pending keys whose items now resolve (call after items are added
7941
+ * or rebuilt). Fires `onChange` once when anything was selected; returns
7942
+ * whether it did.
7943
+ */
7944
+ resolvePending(resolve: (key: string) => T | undefined): boolean;
7945
+ /**
7946
+ * Silently deselect `items` that left the data, keeping their keys pending
7947
+ * so they are re-selected if the same keys come back (data reset, re-fetch).
7948
+ * No `onChange`; returns whether the selection changed.
7949
+ */
7950
+ demote(items: Iterable<T>): boolean;
7951
+ /** Drop pending keys without touching the live selection. */
7952
+ clearPending(): void;
7374
7953
  /** Route a click on `item` according to the current interaction mode. */
7375
7954
  handleClick(item: T, gesture: ListSelectionGesture): void;
7376
7955
  /** Route a Space keypress on `item` according to the current interaction mode. */
@@ -7385,7 +7964,8 @@ declare class ListSelectionController<T> {
7385
7964
  remap(fn: (item: T) => T): void;
7386
7965
  /**
7387
7966
  * Hard reset: empty the selection and clear the anchor without firing
7388
- * `onChange` (e.g. when all items are removed).
7967
+ * `onChange` (e.g. when all items are removed). Keyed selected items become
7968
+ * pending, so a rebuilt item set re-selects them via `resolvePending()`.
7389
7969
  */
7390
7970
  reset(): void;
7391
7971
  /**
@@ -7396,6 +7976,46 @@ declare class ListSelectionController<T> {
7396
7976
  seed(items: Iterable<T>, anchor?: T): void;
7397
7977
  }
7398
7978
  //#endregion
7979
+ //#region src/interaction/scroll-hover-guard.d.ts
7980
+ /**
7981
+ * Scroll-hover guard: tells a hover-driven cursor to hold still while a scroll
7982
+ * gesture moves items beneath a stationary pointer.
7983
+ *
7984
+ * With virtualised / scrolling lists, wheel or trackpad scrolling slides items
7985
+ * under the pointer and the browser fires `pointerenter` on them from its
7986
+ * (throttled) post-scroll hit-test. Following those enters makes the hover
7987
+ * cursor trail the content. The guard opens a suppression window on scroll and
7988
+ * closes it on the next *real* pointer movement or when the pointer leaves.
7989
+ *
7990
+ * While suppressed, `host` carries a `data-scroll-hover-suppress` attribute so
7991
+ * CSS `:hover` highlights can be gated too.
7992
+ */
7993
+ type ScrollHoverGuard = Readonly<{
7994
+ /** True while hover-driven cursor moves should be ignored. */
7995
+ suppressed: () => boolean;
7996
+ /** Call from the scroll container's `scroll` (and any manual-scroll wheel) handler. */
7997
+ onScroll: () => void;
7998
+ /** Call from a `pointermove` listener covering the list. */
7999
+ onPointerMove: (e: PointerEvent) => void;
8000
+ /** Call when the pointer leaves the list. */
8001
+ onPointerLeave: () => void;
8002
+ /** Close any open suppression window (e.g. on disconnect or opt-out). */
8003
+ end: () => void;
8004
+ }>;
8005
+ type ScrollHoverGuardConfig = Readonly<{
8006
+ host: HTMLElement;
8007
+ /** Whether suppression is enabled; read on every scroll. */
8008
+ enabled: () => boolean;
8009
+ /**
8010
+ * Called when real pointer movement ends suppression, with the pointer
8011
+ * position. The enter that accompanied that movement may have been swallowed,
8012
+ * so the consumer should re-hover whatever item is now under the pointer.
8013
+ */
8014
+ onResume?: (clientX: number, clientY: number) => void;
8015
+ }>;
8016
+ declare const SCROLL_HOVER_SUPPRESS_ATTR = "data-scroll-hover-suppress";
8017
+ declare function createScrollHoverGuard(config: ScrollHoverGuardConfig): ScrollHoverGuard;
8018
+ //#endregion
7399
8019
  //#region src/interaction/tickled-controller.d.ts
7400
8020
  /**
7401
8021
  * Represents an item that can be tickled (highlighted via hover or keyboard navigation)
@@ -7824,6 +8444,23 @@ interface GridListFullElementEventMap extends GridListElementEventMap {
7824
8444
  'list-native-drag-start': ListNativeDragStartEvent;
7825
8445
  }
7826
8446
  //#endregion
8447
+ //#region src/grid-list/grid-list-view-state.d.ts
8448
+ /**
8449
+ * Pure view-state helpers for `ixfx-grid-list`. The component runs
8450
+ * {@link reconcileGroups} whenever its item set or grouping changes, so a
8451
+ * group's collapsed state survives the group disappearing (data reset,
8452
+ * filter, streaming) and comes back when the group does. Scroll is captured
8453
+ * and restored arithmetically from the virtual layout, along the main axis
8454
+ * (`scrollLeft` in `row` orientation, `scrollTop` otherwise).
8455
+ */
8456
+ /**
8457
+ * `ixfx-grid-list` view state. All fields are the shared base fields:
8458
+ * `selected` (item keys), `focus` (keyboard cursor key), `scroll`, and
8459
+ * `expanded` (group key → open; groups default open, so only `false` entries
8460
+ * are ever recorded).
8461
+ */
8462
+ type GridListViewState = ViewStateBase;
8463
+ //#endregion
7827
8464
  //#region src/grid-list/grid-list.d.ts
7828
8465
  declare class GridListElement<T = unknown> extends LitElement {
7829
8466
  #private;
@@ -7837,18 +8474,17 @@ declare class GridListElement<T = unknown> extends LitElement {
7837
8474
  */
7838
8475
  disableHoverTickle: boolean;
7839
8476
  /**
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;
8477
+ * Let hover follow cells that scroll beneath a stationary pointer. Off by
8478
+ * default: with virtualisation, a wheel / trackpad gesture replaces the cell
8479
+ * beneath the pointer, and following its `pointerenter` would move the
8480
+ * cursor and emit `list-tickle` even though the pointer never moved. While a
8481
+ * scroll gesture is active those enters are ignored and the host carries a
8482
+ * `data-scroll-hover-suppress` attribute that gates the CSS `:hover`
8483
+ * highlight, so the visual cursor holds still too. Hover resumes on the next
8484
+ * real pointer movement, or after the pointer leaves the list. Click
8485
+ * selection, keyboard navigation, and `focusKey()` are unaffected.
8486
+ */
8487
+ scrollHoverTickle: boolean;
7852
8488
  itemSize: number;
7853
8489
  gap: number;
7854
8490
  /**
@@ -8038,8 +8674,9 @@ declare class GridListElement<T = unknown> extends LitElement {
8038
8674
  removeSelectedKeys(keys: Iterable<string>): void;
8039
8675
  /**
8040
8676
  * 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.
8677
+ * that is still present; keys that vanish are deselected silently and held
8678
+ * as pending view state, so they come back if the key reappears. A no-op in
8679
+ * element mode.
8043
8680
  */
8044
8681
  setItems(items: readonly T[]): void;
8045
8682
  /**
@@ -8056,19 +8693,36 @@ declare class GridListElement<T = unknown> extends LitElement {
8056
8693
  */
8057
8694
  updateItem(key: string, item: T): void;
8058
8695
  /**
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.
8696
+ * Data mode: remove the items carrying these keys. Removed keys leave the
8697
+ * selection and cursor silently (via the `items` change) and are held as
8698
+ * pending view state. A no-op in element mode.
8061
8699
  */
8062
8700
  removeItems(keys: Iterable<string>): void;
8063
8701
  /**
8064
8702
  * 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.
8703
+ * `list-select` with empty sets is emitted; their keys are held as pending
8704
+ * view state, so re-adding the same keys restores them. A no-op in element
8705
+ * mode.
8066
8706
  */
8067
8707
  clearItems(): void;
8068
8708
  /** Move the cursor to the item with this key and scroll it into view. */
8069
8709
  focusKey(key: string): void;
8070
8710
  /** The key of the item under the cursor, or `undefined`. */
8071
8711
  get tickledKey(): string | undefined;
8712
+ /**
8713
+ * Snapshot selection, collapsed groups, keyboard cursor and scroll as plain
8714
+ * JSON, keyed by item / group key. Includes pending state for keys not
8715
+ * currently present unless `includePending: false`.
8716
+ */
8717
+ getViewState(options?: GetViewStateOptions<GridListViewState>): GridListViewState;
8718
+ /**
8719
+ * Apply saved view state. Fields present replace the current ones; keys
8720
+ * (items or groups) that aren't present yet are applied as they appear.
8721
+ * Restored selection fires `list-select`.
8722
+ */
8723
+ setViewState(state: Partial<GridListViewState>): void;
8724
+ /** Drop view state still waiting for its keys to appear. */
8725
+ clearPendingViewState(): void;
8072
8726
  /** Element mode: the light-DOM element carrying `key`, or `undefined`. */
8073
8727
  getItem(key: string): Element | undefined;
8074
8728
  /** Element mode: the light-DOM element at effective index `index`. */
@@ -8268,6 +8922,10 @@ interface GroupedItemListerElement<T> {
8268
8922
  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
8923
  }
8270
8924
  //#endregion
8925
+ //#region src/tree/tree-view-state.d.ts
8926
+ /** `ixfx-tree-list` view state. All fields are the shared base fields. */
8927
+ type TreeListViewState = ViewStateBase;
8928
+ //#endregion
8271
8929
  //#region src/tree/tree-base.d.ts
8272
8930
  /**
8273
8931
  * `auto` windows the list once it has more than `virtualizeThreshold` visible
@@ -8296,6 +8954,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8296
8954
  get selectedNodes(): ReadonlySet<TreeNode>;
8297
8955
  filterPredicate: TreeFilterPredicate | undefined;
8298
8956
  disableKeyboardNavigation: boolean;
8957
+ /**
8958
+ * Let hover follow rows that scroll beneath a stationary pointer. Off by
8959
+ * default: while a scroll gesture is active, row `pointerenter` is ignored so
8960
+ * the hover cursor holds still instead of trailing the content. Hover resumes
8961
+ * on the next real pointer movement, or when the pointer leaves the tree.
8962
+ */
8963
+ scrollHoverTickle: boolean;
8299
8964
  registry: CommandRegistry<unknown> | undefined;
8300
8965
  /**
8301
8966
  * Space-separated subset of `navigate select filter` — limits which
@@ -8345,6 +9010,12 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8345
9010
  applyInternalDrop: boolean;
8346
9011
  /** Immutable: replace via `#setExpanded` so the flat-row cache is invalidated. */
8347
9012
  protected _expandedKeys: ReadonlySet<string>;
9013
+ /**
9014
+ * Whether restoring view state may call `loadChildren` / `model` to open
9015
+ * saved branches that aren't loaded yet (one at a time, cascading down the
9016
+ * saved path). Default `true`.
9017
+ */
9018
+ restoreLoads: boolean;
8348
9019
  /** Bumped whenever `_selectedNodes` content may have changed. */
8349
9020
  protected _selectionVersion: number;
8350
9021
  /**
@@ -8359,6 +9030,13 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8359
9030
  /** Depths at which any loaded node carries an icon (stable across expansion). */
8360
9031
  protected get _depthsWithIcons(): ReadonlySet<number>;
8361
9032
  protected tickled: TickledController<string>;
9033
+ /**
9034
+ * Row `pointerenter` funnel: moves the hover cursor unless a scroll gesture
9035
+ * is sliding rows beneath a stationary pointer (see `scrollHoverTickle`).
9036
+ * Subclasses rendering their own rows should call this rather than the
9037
+ * tickled controller directly.
9038
+ */
9039
+ protected _handleRowPointerEnter(node: TreeNode, depth: number): void;
8362
9040
  protected _focusedDepth: number;
8363
9041
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
8364
9042
  readonly search: ListSearchController<{
@@ -8388,11 +9066,31 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
8388
9066
  disconnectedCallback(): void;
8389
9067
  getConfig(): TreeConfig;
8390
9068
  setConfig(config: Partial<TreeConfig>): void;
9069
+ /**
9070
+ * Snapshot selection, expansion, cursor and scroll as plain JSON, keyed by
9071
+ * `item.key`. Includes pending state for keys not currently loaded.
9072
+ */
9073
+ getViewState(options?: GetViewStateOptions<TreeListViewState>): TreeListViewState;
9074
+ /**
9075
+ * Apply saved view state. Fields present replace the current ones; keys
9076
+ * that aren't loaded yet are applied as they appear — including via
9077
+ * `loadChildren` / `model` for saved-open branches when `restoreLoads`.
9078
+ */
9079
+ setViewState(state: Partial<TreeListViewState>): void;
9080
+ clearPendingViewState(): void;
8391
9081
  select(node: TreeNode): void;
8392
9082
  deselect(node: TreeNode): void;
8393
9083
  clearSelection(): void;
8394
- selectAll(): void;
8395
- deselectAll(): void;
9084
+ /**
9085
+ * Select every selectable node in the tree, or only the matches while a
9086
+ * `filterPredicate` is active. Nodes inside collapsed branches are included;
9087
+ * unloaded (lazy) children are not. With `visibleOnly`, only rows that are
9088
+ * showing are selected (Ctrl+A). In `checked` mode checking a row checks its
9089
+ * descendants, so `visibleOnly` makes no difference there.
9090
+ */
9091
+ selectAll(options?: TreeSelectAllOptions): void;
9092
+ /** Mirror of {@link selectAll}: deselect the same set of nodes it would select. */
9093
+ deselectAll(options?: TreeSelectAllOptions): void;
8396
9094
  /**
8397
9095
  * Expand every already-loaded branch in a single update. With `maxDepth`,
8398
9096
  * only branches at depth < `maxDepth` are expanded (the root's children are
@@ -8970,6 +9668,29 @@ type HyperbolicFocusDetail = {
8970
9668
  };
8971
9669
  type HyperbolicFocusEvent = CustomEvent<HyperbolicFocusDetail>;
8972
9670
  //#endregion
9671
+ //#region src/hyperbolic-tree/hyperbolic-view-state.d.ts
9672
+ /**
9673
+ * Pure view-state helpers for `ixfx-hyperbolictree-list`. The element re-runs
9674
+ * {@link reconcileHyperbolicViewState} whenever its structure changes (new
9675
+ * `root` / `model`, model invalidation, a lazy load), so state keyed to nodes
9676
+ * that left the tree goes pending and comes back when those keys reappear.
9677
+ */
9678
+ /**
9679
+ * `ixfx-hyperbolictree-list` view state.
9680
+ * - `selected` / `focus` — the shared base fields (`focus` is the keyboard
9681
+ * cursor, not the centred node).
9682
+ * - `center` — key path from the root's children down to the centred node
9683
+ * (`[]` = the root). A path, not a lone key, because keys may repeat across
9684
+ * branches here (e.g. `readme.md`), and so a deep centre in lazily-loaded
9685
+ * data can be restored by loading each ancestor in turn. A free pan away
9686
+ * from the centred node is transient and not saved.
9687
+ * - `zoom` — the visual magnification (the `zoom` property).
9688
+ */
9689
+ type HyperbolicTreeListViewState = ViewStateBase & {
9690
+ readonly center?: readonly string[];
9691
+ readonly zoom?: number;
9692
+ };
9693
+ //#endregion
8973
9694
  //#region src/hyperbolic-tree/render-utils.d.ts
8974
9695
  /**
8975
9696
  * How nodes are drawn:
@@ -9133,6 +9854,11 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9133
9854
  * repeats keys across branches still focuses the node actually clicked.
9134
9855
  */
9135
9856
  private _focusId;
9857
+ /**
9858
+ * Whether restoring a saved `center` may call `loadChildren` / `model` to
9859
+ * load the ancestors on its path (one at a time, cascading down). Default `true`.
9860
+ */
9861
+ restoreLoads: boolean;
9136
9862
  /**
9137
9863
  * Canonical → screen projection overriding the settled "focus at the
9138
9864
  * center" view — set per-frame while a focus change animates, and by
@@ -9160,6 +9886,7 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9160
9886
  private _hostSize;
9161
9887
  connectedCallback(): void;
9162
9888
  disconnectedCallback(): void;
9889
+ protected willUpdate(changedProps: PropertyValues): void;
9163
9890
  protected updated(changedProps: PropertyValues): void;
9164
9891
  select(node: TreeNode): void;
9165
9892
  deselect(node: TreeNode): void;
@@ -9195,6 +9922,18 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
9195
9922
  node: TreeNode;
9196
9923
  depth: number;
9197
9924
  }>;
9925
+ /**
9926
+ * Snapshot selection, centred node, keyboard cursor and zoom as plain JSON,
9927
+ * keyed by `item.key`. Includes pending state for keys not currently loaded.
9928
+ */
9929
+ getViewState(options?: GetViewStateOptions<HyperbolicTreeListViewState>): HyperbolicTreeListViewState;
9930
+ /**
9931
+ * Apply saved view state. Fields present replace the current ones; keys
9932
+ * that aren't loaded yet are applied as they appear — a deep `center` loads
9933
+ * its ancestors via `loadChildren` / `model` when `restoreLoads`.
9934
+ */
9935
+ setViewState(state: Partial<HyperbolicTreeListViewState>): void;
9936
+ clearPendingViewState(): void;
9198
9937
  protected render(): import("lit").TemplateResult<1>;
9199
9938
  static styles: import("lit").CSSResult[];
9200
9939
  }
@@ -9333,6 +10072,26 @@ declare function computeHyperbolicLayout(root: TreeNode | undefined, options?: C
9333
10072
  edges: HyperbolicLayoutEdge[];
9334
10073
  };
9335
10074
  //#endregion
10075
+ //#region src/icicle-tree/icicle-view-state.d.ts
10076
+ /**
10077
+ * Pure helpers behind `ixfx-icicletree-list` view state (also used by the
10078
+ * sunburst, which shares the zoom-path model). The component runs them on
10079
+ * every update, so state keyed to nodes that left the tree goes pending and
10080
+ * comes back when those keys reappear. See `docs/infra-view-state.md`.
10081
+ */
10082
+ /**
10083
+ * `ixfx-icicletree-list` view state: `selected`, `focus`, `scroll`, plus the
10084
+ * zoom path.
10085
+ */
10086
+ type IcicleViewState = ViewStateBase & {
10087
+ /**
10088
+ * Keys from the root's children down to the zoomed-into node; `[]` = the
10089
+ * full tree. A path rather than a lone key so a lazily-loaded tree can be
10090
+ * opened down to it, one load at a time.
10091
+ */
10092
+ readonly zoom?: readonly string[];
10093
+ };
10094
+ //#endregion
9336
10095
  //#region src/icicle-tree/types.d.ts
9337
10096
  /**
9338
10097
  * Weight accessor — returns the area share of `item` within its siblings.
@@ -9510,6 +10269,11 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9510
10269
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
9511
10270
  get focusedNode(): TreeNode | undefined;
9512
10271
  private _zoomKey;
10272
+ /**
10273
+ * Whether restoring a saved zoom may call `loadChildren` / `model` to load
10274
+ * the nodes along its path (one at a time). Default `true`.
10275
+ */
10276
+ restoreLoads: boolean;
9513
10277
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
9514
10278
  readonly search: ListSearchController<{
9515
10279
  node: TreeNode;
@@ -9527,7 +10291,20 @@ declare class IcicleTreeListElement extends LitElement implements TreeComponent,
9527
10291
  private _tooltipEl;
9528
10292
  connectedCallback(): void;
9529
10293
  disconnectedCallback(): void;
10294
+ protected willUpdate(changedProps: PropertyValues): void;
9530
10295
  protected updated(changedProps: PropertyValues): void;
10296
+ /**
10297
+ * Snapshot selection, zoom path, keyboard cursor and scroll as plain JSON,
10298
+ * keyed by `item.key`. Includes pending state for keys not currently loaded.
10299
+ */
10300
+ getViewState(options?: GetViewStateOptions<IcicleViewState>): IcicleViewState;
10301
+ /**
10302
+ * Apply saved view state. Fields present replace the current ones; keys
10303
+ * that aren't loaded yet are applied as they appear — including via
10304
+ * `loadChildren` / `model` down a saved zoom path when `restoreLoads`.
10305
+ */
10306
+ setViewState(state: Partial<IcicleViewState>): void;
10307
+ clearPendingViewState(): void;
9531
10308
  select(node: TreeNode): void;
9532
10309
  deselect(node: TreeNode): void;
9533
10310
  clearSelection(): void;
@@ -9592,6 +10369,13 @@ declare function findIcicleNode(root: TreeNode | undefined, key: string): TreeNo
9592
10369
  * Returns `undefined` when the key is absent. The first entry is always `root`.
9593
10370
  */
9594
10371
  declare function findIciclePath(root: TreeNode | undefined, key: string): TreeNode[] | undefined;
10372
+ /**
10373
+ * Follow `keys` from `root`; a leading key equal to the root's own key
10374
+ * matches the root itself. Returns `undefined` when a key isn't found.
10375
+ */
10376
+ declare function resolveIcicleKeyPath(root: TreeNode | undefined, keys: readonly string[]): TreeNode | undefined;
10377
+ /** Key path (depth-first) to the first node among `nodes` matching `predicate`. */
10378
+ declare function findIcicleKeyPath(nodes: readonly TreeNode[], predicate: (node: TreeNode) => boolean, prefix?: readonly string[]): string[] | undefined;
9595
10379
  /**
9596
10380
  * Compute the visible rectangles for an icicle view.
9597
10381
  *
@@ -9984,9 +10768,6 @@ declare global {
9984
10768
  //#endregion
9985
10769
  //#region src/miller/types.d.ts
9986
10770
  type MillerSelectionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
9987
- type MillerConfig = {
9988
- columnWidths: Record<number, number>;
9989
- };
9990
10771
  /** Detail for the `header-click` event fired when a column header is clicked. */
9991
10772
  type MillerHeaderClickDetail = {
9992
10773
  /** Zero-based column index whose header was clicked. */
@@ -10051,6 +10832,26 @@ type MillerItemState = {
10051
10832
  isLeaf: boolean;
10052
10833
  };
10053
10834
  //#endregion
10835
+ //#region src/miller/miller-view-state.d.ts
10836
+ /**
10837
+ * Pure view-state helpers for `ixfx-miller-*`. The element runs these
10838
+ * whenever its data changes (new root, lazy load, `invalidateStructure()`)
10839
+ * and on `setViewState()`; see docs/infra-view-state.md.
10840
+ */
10841
+ /** `ixfx-miller-list` view state. */
10842
+ type MillerListViewState = ViewStateBase & {
10843
+ /**
10844
+ * Key of the open branch at each depth, from column 0 down, relative to the
10845
+ * view root. A Miller view has exactly one open branch per column, so this
10846
+ * is an ordered path rather than an `expanded` record.
10847
+ */
10848
+ readonly path?: readonly string[];
10849
+ /** User-resized column widths in px, keyed by column depth. */
10850
+ readonly columnWidths?: Readonly<Record<string, number>>;
10851
+ /** Per-column scroll, keyed by the key of the node whose children the column lists. */
10852
+ readonly columnScroll?: Readonly<Record<string, ScrollState>>;
10853
+ };
10854
+ //#endregion
10054
10855
  //#region src/miller/miller-base.d.ts
10055
10856
  /**
10056
10857
  * Base class for Miller column components. Handles column lifecycle,
@@ -10147,6 +10948,12 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10147
10948
  protected _selectedByDepth: Map<number, TreeNode>;
10148
10949
  protected _selectedKeys: Set<string>;
10149
10950
  protected _selectedNodes: Set<TreeNode>;
10951
+ /**
10952
+ * Whether restoring view state may call `loadChildren` / `model` to open a
10953
+ * saved path through branches that aren't loaded yet (one load at a time,
10954
+ * cascading down the path). Default `true`.
10955
+ */
10956
+ restoreLoads: boolean;
10150
10957
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
10151
10958
  readonly search: ListSearchController<{
10152
10959
  node: TreeNode;
@@ -10155,11 +10962,24 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
10155
10962
  /** Command registry carrying this component's `list.search.*` commands. */
10156
10963
  get registry(): CommandRegistry<unknown> | undefined;
10157
10964
  tickled: TickledController<string>;
10965
+ willUpdate(_changedProps: PropertyValues): void;
10158
10966
  updated(changedProps: PropertyValues): void;
10967
+ firstUpdated(): void;
10159
10968
  connectedCallback(): void;
10160
10969
  disconnectedCallback(): void;
10161
- getConfig(): MillerConfig;
10162
- setConfig(config: MillerConfig): void;
10970
+ /**
10971
+ * Snapshot the open path, selection, keyboard cursor, column widths and
10972
+ * column scroll as plain JSON, keyed by `item.key`. Includes pending state
10973
+ * for keys not currently loaded.
10974
+ */
10975
+ getViewState(options?: GetViewStateOptions<MillerListViewState>): MillerListViewState;
10976
+ /**
10977
+ * Apply saved view state. Fields present replace the current ones; keys not
10978
+ * loaded yet are applied as they appear — including via `loadChildren` /
10979
+ * `model` for the saved path when `restoreLoads`.
10980
+ */
10981
+ setViewState(state: Partial<MillerListViewState>): void;
10982
+ clearPendingViewState(): void;
10163
10983
  /** Read current selection as an immutable set of item keys. */
10164
10984
  get selectedKeys(): ReadonlySet<string>;
10165
10985
  /** Replace entire selection and trigger a re-render. */
@@ -10459,6 +11279,21 @@ type MulticolSelectDetail = {
10459
11279
  readonly columns: readonly MulticolColumnSelection[];
10460
11280
  };
10461
11281
  //#endregion
11282
+ //#region src/multicol-list/multicol-view-state.d.ts
11283
+ /**
11284
+ * `ixfx-multicol-list` view state. The shared `selected` / `scroll` fields
11285
+ * aren't used: every column has its own selection and scroll, keyed by
11286
+ * column id.
11287
+ */
11288
+ type MulticolListViewState = ViewStateBase & {
11289
+ /** Column layout in display order. */
11290
+ readonly columns?: readonly MulticolColumnState[];
11291
+ /** Selected item keys per column id. A missing / empty column is at 'All'. */
11292
+ readonly selectedByColumn?: Readonly<Record<string, readonly string[]>>;
11293
+ /** Scroll position of each column's list, keyed by column id. */
11294
+ readonly scrollByColumn?: Readonly<Record<string, ScrollState>>;
11295
+ };
11296
+ //#endregion
10462
11297
  //#region src/multicol-list/multicol-list.d.ts
10463
11298
  type MulticolSelectEvent = CustomEvent<MulticolSelectDetail>;
10464
11299
  type MulticolColumnsChangeDetail = {
@@ -10469,6 +11304,7 @@ type MulticolColumnsChangeEvent = CustomEvent<MulticolColumnsChangeDetail>;
10469
11304
  interface MulticolListElementEventMap {
10470
11305
  'multicol-select': MulticolSelectEvent;
10471
11306
  'multicol-columns-change': MulticolColumnsChangeEvent;
11307
+ 'view-state-change': ViewStateChangeEvent<MulticolListViewState>;
10472
11308
  }
10473
11309
  declare global {
10474
11310
  interface HTMLElementTagNameMap {
@@ -10496,8 +11332,6 @@ declare class MulticolListElement extends LitElement {
10496
11332
  private _idCounter;
10497
11333
  private _autoSeeded;
10498
11334
  private _drag;
10499
- get columns(): readonly MulticolColumnState[];
10500
- setColumns(states: readonly MulticolColumnState[]): void;
10501
11335
  addColumn(categoryKey: string, position?: number): void;
10502
11336
  removeColumn(columnId: string): void;
10503
11337
  getSelection(): ReadonlyArray<{
@@ -10506,7 +11340,22 @@ declare class MulticolListElement extends LitElement {
10506
11340
  values: readonly string[];
10507
11341
  }>;
10508
11342
  clearSelection(): void;
11343
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
10509
11344
  protected render(): import("lit").TemplateResult<1>;
11345
+ /**
11346
+ * Snapshot the column layout (in display order) and each column's
11347
+ * selection and scroll, keyed by column id. Includes pending state —
11348
+ * saved columns whose category isn't known and keys not yet in the data.
11349
+ */
11350
+ getViewState(options?: GetViewStateOptions<MulticolListViewState>): MulticolListViewState;
11351
+ /**
11352
+ * Apply saved view state; fields present replace the current ones.
11353
+ * `columns` creates, reorders, re-points and removes columns to match
11354
+ * (columns whose category isn't in `categories` wait until it is).
11355
+ * Selection keys not in a column's data are applied when they arrive.
11356
+ */
11357
+ setViewState(state: Partial<MulticolListViewState>): void;
11358
+ clearPendingViewState(): void;
10510
11359
  protected updated(changedProperties: Map<string, unknown>): void;
10511
11360
  private _renderColumn;
10512
11361
  private _getCategoryLabel;
@@ -11863,6 +12712,24 @@ declare function sunburstHasChildren(node: TreeNode): boolean;
11863
12712
  */
11864
12713
  declare function computeSunburstLayout(root: TreeNode | undefined, options?: ComputeSunburstLayoutOptions): SunburstLayout;
11865
12714
  //#endregion
12715
+ //#region src/sunburst-tree/sunburst-view-state.d.ts
12716
+ /**
12717
+ * Pure helpers behind `ixfx-sunbursttree-list` view state. Arcs are
12718
+ * identified by key *path* (keys need only be unique among siblings), so live
12719
+ * selection follows its path across data changes; saved keys — which are
12720
+ * bare `item.key`s — resolve to the first node, depth-first, carrying them.
12721
+ * See `docs/infra-view-state.md`.
12722
+ */
12723
+ /** `ixfx-sunbursttree-list` view state: `selected`, `focus`, plus the zoom path. */
12724
+ type SunburstViewState = ViewStateBase & {
12725
+ /**
12726
+ * Keys from the root's children down to the centre node; `[]` = the full
12727
+ * tree. A path because keys are only unique among siblings, and so a
12728
+ * lazily-loaded tree can be opened down to it, one load at a time.
12729
+ */
12730
+ readonly zoom?: readonly string[];
12731
+ };
12732
+ //#endregion
11866
12733
  //#region src/sunburst-tree/sunbursttree-list.d.ts
11867
12734
  /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
11868
12735
  type SunburstZoomDetail = {
@@ -11952,6 +12819,11 @@ declare class SunburstTreeListElement extends LitElement implements TreeComponen
11952
12819
  get focusedNode(): TreeNode | undefined;
11953
12820
  /** Id (key path) of the zoom node; `undefined` = the true root. */
11954
12821
  private _zoomId;
12822
+ /**
12823
+ * Whether restoring a saved zoom may call `loadChildren` / `model` to load
12824
+ * the nodes along its path (one at a time). Default `true`.
12825
+ */
12826
+ restoreLoads: boolean;
11955
12827
  private _size;
11956
12828
  readonly search: ListSearchController<{
11957
12829
  node: TreeNode;
@@ -11966,6 +12838,18 @@ declare class SunburstTreeListElement extends LitElement implements TreeComponen
11966
12838
  disconnectedCallback(): void;
11967
12839
  protected willUpdate(changed: PropertyValues): void;
11968
12840
  protected updated(changed: PropertyValues): void;
12841
+ /**
12842
+ * Snapshot selection, zoom path and keyboard cursor as plain JSON, keyed by
12843
+ * `item.key`. Includes pending state for keys not currently loaded.
12844
+ */
12845
+ getViewState(options?: GetViewStateOptions<SunburstViewState>): SunburstViewState;
12846
+ /**
12847
+ * Apply saved view state. Fields present replace the current ones; keys
12848
+ * that aren't loaded yet are applied as they appear — including via
12849
+ * `loadChildren` / `model` down a saved zoom path when `restoreLoads`.
12850
+ */
12851
+ setViewState(state: Partial<SunburstViewState>): void;
12852
+ clearPendingViewState(): void;
11969
12853
  select(node: TreeNode): void;
11970
12854
  deselect(node: TreeNode): void;
11971
12855
  clearSelection(): void;
@@ -13043,6 +13927,24 @@ declare function findTreemapPath(root: TreeNode | undefined, key: string): TreeN
13043
13927
  */
13044
13928
  declare function computeTreemapLayout(root: TreeNode | undefined, options?: ComputeTreemapLayoutOptions): TreemapRect[];
13045
13929
  //#endregion
13930
+ //#region src/treemap/treemap-view-state.d.ts
13931
+ /**
13932
+ * Pure view-state helpers for `ixfx-treemap-list`. The element re-runs
13933
+ * {@link reconcileTreemapViewState} whenever its structure changes (new
13934
+ * `root` / `model`, model invalidation, a lazy load), so state keyed to nodes
13935
+ * that left the tree goes pending and comes back when those keys reappear.
13936
+ */
13937
+ /**
13938
+ * `ixfx-treemap-list` view state.
13939
+ * - `selected` / `focus` — the shared base fields.
13940
+ * - `zoom` — key path from the root's children down to the zoom root
13941
+ * (`[]` = the full tree). A path rather than a lone key so a deep zoom into
13942
+ * lazily-loaded data can be restored by loading each ancestor in turn.
13943
+ */
13944
+ type TreemapListViewState = ViewStateBase & {
13945
+ readonly zoom?: readonly string[];
13946
+ };
13947
+ //#endregion
13046
13948
  //#region src/treemap/treemap-list.d.ts
13047
13949
  /** Fired when the zoom root changes. `node` is `undefined` on zoom-out to the full tree. */
13048
13950
  type TreemapZoomDetail = {
@@ -13179,6 +14081,11 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13179
14081
  /** Current zoom root. `undefined` when showing the full tree. Pure view-state — `root` is never mutated. */
13180
14082
  get focusedNode(): TreeNode | undefined;
13181
14083
  private _zoomKey;
14084
+ /**
14085
+ * Whether restoring a saved `zoom` may call `loadChildren` / `model` to load
14086
+ * the ancestors on its path (one at a time, cascading down). Default `true`.
14087
+ */
14088
+ restoreLoads: boolean;
13182
14089
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
13183
14090
  readonly search: ListSearchController<{
13184
14091
  node: TreeNode;
@@ -13187,6 +14094,7 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13187
14094
  private tickled;
13188
14095
  connectedCallback(): void;
13189
14096
  disconnectedCallback(): void;
14097
+ protected willUpdate(changedProps: PropertyValues): void;
13190
14098
  protected updated(changedProps: PropertyValues): void;
13191
14099
  select(node: TreeNode): void;
13192
14100
  deselect(node: TreeNode): void;
@@ -13229,6 +14137,18 @@ declare class TreemapListElement extends LitElement implements TreeComponent, Tr
13229
14137
  node: TreeNode;
13230
14138
  depth: number;
13231
14139
  }>;
14140
+ /**
14141
+ * Snapshot selection, zoom path and keyboard cursor as plain JSON, keyed by
14142
+ * `item.key`. Includes pending state for keys not currently loaded.
14143
+ */
14144
+ getViewState(options?: GetViewStateOptions<TreemapListViewState>): TreemapListViewState;
14145
+ /**
14146
+ * Apply saved view state. Fields present replace the current ones; keys
14147
+ * that aren't loaded yet are applied as they appear — a deep `zoom` loads
14148
+ * its ancestors via `loadChildren` / `model` when `restoreLoads`.
14149
+ */
14150
+ setViewState(state: Partial<TreemapListViewState>): void;
14151
+ clearPendingViewState(): void;
13232
14152
  protected render(): import("lit").TemplateResult<1>;
13233
14153
  static styles: import("lit").CSSResult[];
13234
14154
  }
@@ -13243,6 +14163,17 @@ interface TreemapListElement {
13243
14163
  }
13244
14164
  //#endregion
13245
14165
  //#region src/twosplit-layout/split-layout.d.ts
14166
+ /** One side of an `ixfx-twosplit-layout` in its view state. */
14167
+ type TwoSplitPanelViewState = {
14168
+ /** CSS size, as in `sizeA` / `sizeB` (e.g. `30%`, `200px`). */
14169
+ readonly size: string;
14170
+ /** Collapsed by dragging to the edge. Absent ⇒ expanded. */
14171
+ readonly collapsed?: boolean;
14172
+ };
14173
+ /** `ixfx-twosplit-layout` view state (`kind: 'twosplit-layout'`), keyed by slot name. */
14174
+ type TwoSplitLayoutViewState = ViewStateBase & {
14175
+ readonly layout?: Readonly<Partial<Record<`a` | `b`, TwoSplitPanelViewState>>>;
14176
+ };
13246
14177
  /**
13247
14178
  * Lays out two elements within a container, with a bar to resize them
13248
14179
  * proportionally.
@@ -13286,6 +14217,12 @@ declare class TwoSplitLayoutElement extends LitElement {
13286
14217
  disconnectedCallback(): void;
13287
14218
  firstUpdated(): void;
13288
14219
  updated(changedProperties: Map<string, unknown>): void;
14220
+ /** Snapshot both sides' size and collapse. */
14221
+ getViewState(options?: GetViewStateOptions<TwoSplitLayoutViewState>): TwoSplitLayoutViewState;
14222
+ /** Restore sizes / collapse. A side missing from `layout` is left as it is. */
14223
+ setViewState(state: Partial<TwoSplitLayoutViewState>): void;
14224
+ /** Both slots always exist, so nothing is ever pending. */
14225
+ clearPendingViewState(): void;
13289
14226
  getZone(): HTMLElement | undefined;
13290
14227
  render(): import("lit").TemplateResult<1>;
13291
14228
  static styles: import("lit").CSSResult[];
@@ -13389,4 +14326,4 @@ interface XyPad {
13389
14326
  //#region src/index.d.ts
13390
14327
  declare function init(): void;
13391
14328
  //#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 };
14329
+ 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 };