@ixfx/components 0.7.4 → 0.7.5

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 (73) hide show
  1. package/bundle/index.d.ts +536 -178
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +1324 -442
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-token.js +1 -1
  6. package/dist/crumbs.d.ts +5 -1
  7. package/dist/crumbs.d.ts.map +1 -1
  8. package/dist/crumbs.js +10 -0
  9. package/dist/crumbs.js.map +1 -1
  10. package/dist/{data-grid-BddUjAti.d.ts → data-grid-CtJ35v8L.d.ts} +26 -1
  11. package/dist/data-grid-CtJ35v8L.d.ts.map +1 -0
  12. package/dist/data-grid.d.ts +1 -1
  13. package/dist/data-grid.js +88 -7
  14. package/dist/data-grid.js.map +1 -1
  15. package/dist/{detail-list-Br0WAnry.d.ts → detail-list-BS5dRDda.d.ts} +20 -12
  16. package/dist/detail-list-BS5dRDda.d.ts.map +1 -0
  17. package/dist/detail-list.d.ts +2 -2
  18. package/dist/detail-list.js +51 -135
  19. package/dist/detail-list.js.map +1 -1
  20. package/dist/{grid-list-B_orPsot.d.ts → grid-list-D-GbghSH.d.ts} +18 -1
  21. package/dist/grid-list-D-GbghSH.d.ts.map +1 -0
  22. package/dist/grid-list.d.ts +1 -1
  23. package/dist/grid-list.js +76 -15
  24. package/dist/grid-list.js.map +1 -1
  25. package/dist/incr-search-DpbSJtgj.js +962 -0
  26. package/dist/incr-search-DpbSJtgj.js.map +1 -0
  27. package/dist/incr-search.d.ts +2 -2
  28. package/dist/incr-search.js +2 -3
  29. package/dist/index-CBS4z1v-.d.ts +365 -0
  30. package/dist/index-CBS4z1v-.d.ts.map +1 -0
  31. package/dist/index.d.ts +8 -8
  32. package/dist/index.js +4 -5
  33. package/dist/index.js.map +1 -1
  34. package/dist/{list-selection-controller-CUo-Hhcm.js → list-selection-controller-DTFI40li.js} +2 -76
  35. package/dist/list-selection-controller-DTFI40li.js.map +1 -0
  36. package/dist/miller.d.ts +81 -3
  37. package/dist/miller.d.ts.map +1 -1
  38. package/dist/miller.js +327 -68
  39. package/dist/miller.js.map +1 -1
  40. package/dist/narrowed-text.js +1 -2
  41. package/dist/narrowed-text.js.map +1 -1
  42. package/dist/{tree-B74zdI60.js → tree-DAii2A1g.js} +77 -15
  43. package/dist/tree-DAii2A1g.js.map +1 -0
  44. package/dist/{tree-component-BvV4muxx.d.ts → tree-component-F6qZ0Gdv.d.ts} +9 -1
  45. package/dist/{tree-component-BvV4muxx.d.ts.map → tree-component-F6qZ0Gdv.d.ts.map} +1 -1
  46. package/dist/tree.d.ts +22 -1
  47. package/dist/tree.d.ts.map +1 -1
  48. package/dist/tree.js +1 -1
  49. package/dist/{vertical-list-CQSEVeOT.d.ts → vertical-list-DwtCPy1b.d.ts} +17 -14
  50. package/dist/vertical-list-DwtCPy1b.d.ts.map +1 -0
  51. package/dist/vertical-list.d.ts +1 -1
  52. package/dist/vertical-list.js +59 -127
  53. package/dist/vertical-list.js.map +1 -1
  54. package/docs-user/data-grid.md +19 -0
  55. package/docs-user/detail-list.md +1 -1
  56. package/docs-user/grid-list.md +24 -0
  57. package/docs-user/incr-search.md +12 -2
  58. package/docs-user/index.json +2 -2
  59. package/docs-user/tree.md +22 -1
  60. package/docs-user/vertical-list.md +7 -1
  61. package/package.json +1 -1
  62. package/dist/data-grid-BddUjAti.d.ts.map +0 -1
  63. package/dist/detail-list-Br0WAnry.d.ts.map +0 -1
  64. package/dist/element-search-Y8SRfPGM.js +0 -185
  65. package/dist/element-search-Y8SRfPGM.js.map +0 -1
  66. package/dist/grid-list-B_orPsot.d.ts.map +0 -1
  67. package/dist/incr-search-vCzuao-2.js +0 -137
  68. package/dist/incr-search-vCzuao-2.js.map +0 -1
  69. package/dist/index-Cu5i8zZY.d.ts +0 -160
  70. package/dist/index-Cu5i8zZY.d.ts.map +0 -1
  71. package/dist/list-selection-controller-CUo-Hhcm.js.map +0 -1
  72. package/dist/tree-B74zdI60.js.map +0 -1
  73. package/dist/vertical-list-CQSEVeOT.d.ts.map +0 -1
package/bundle/index.d.ts CHANGED
@@ -2223,6 +2223,14 @@ interface TreeComponent extends EventTarget {
2223
2223
  * Returns `true` if a matching node was found.
2224
2224
  */
2225
2225
  navigateToNode: (predicate: (node: TreeNode) => boolean) => boolean;
2226
+ /**
2227
+ * Expand ancestors of the node with `key` and move the keyboard cursor to it,
2228
+ * scrolling it into view — **without** changing the selection. Returns `true`
2229
+ * if the node was found. Used by incremental-search "navigate" mode.
2230
+ */
2231
+ revealKey: (key: string) => boolean;
2232
+ /** Replace the selection with `nodes` (subject to `selectionFilter`). Used by incremental-search "select" mode. */
2233
+ selectMany: (nodes: Iterable<TreeNode>) => void;
2226
2234
  /**
2227
2235
  * Returns all nodes currently visible in the rendered output, in render order,
2228
2236
  * with their depth (0-based, root's children are depth 0).
@@ -2411,6 +2419,10 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
2411
2419
  navigateTo(keys: readonly string[]): boolean;
2412
2420
  /** Navigate to the first node matching the predicate. Returns false if not found. */
2413
2421
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
2422
+ /** `TreeComponent` parity — a crumb path always follows the selection, so this just navigates to `key`. */
2423
+ revealKey(key: string): boolean;
2424
+ /** `TreeComponent` parity — a crumb path is a single selection, so only the last node is kept. */
2425
+ selectMany(nodes: Iterable<TreeNode>): void;
2414
2426
  render(): TemplateResult<1>;
2415
2427
  static styles: CSSResult[];
2416
2428
  }
@@ -2593,6 +2605,364 @@ type DataGridGroupLabel = (groupKey: string, rows: readonly unknown[]) => string
2593
2605
  /** Whether the data-grid renders its built-in header column/group menu. */
2594
2606
  type DataGridColumnMenu = `auto` | `none`;
2595
2607
  //#endregion
2608
+ //#region src/incr-search/types.d.ts
2609
+ type IncrSearchResult<T> = {
2610
+ readonly item: T;
2611
+ readonly positions: ReadonlySet<number>;
2612
+ readonly score: number;
2613
+ };
2614
+ type IncrSearchState<T> = {
2615
+ readonly query: string;
2616
+ readonly results: ReadonlyArray<IncrSearchResult<T>>;
2617
+ readonly positionsByItem: ReadonlyMap<T, ReadonlySet<number>>;
2618
+ };
2619
+ type IncrSearchChangeCallback<T> = (state: IncrSearchState<T>) => void;
2620
+ type IncrSearchOptions<T> = {
2621
+ readonly items?: readonly T[];
2622
+ readonly selector?: (item: T) => string;
2623
+ readonly fzf?: Partial<FzfOptions<T>>;
2624
+ readonly onChange?: IncrSearchChangeCallback<T>;
2625
+ };
2626
+ type IncrSearch<T> = {
2627
+ readonly setItems: (items: readonly T[], signal?: AbortSignal) => Promise<void>;
2628
+ readonly setQuery: (query: string, signal?: AbortSignal) => Promise<IncrSearchState<T>>;
2629
+ readonly clearQuery: () => Promise<void>;
2630
+ readonly state: IncrSearchState<T>;
2631
+ readonly onChange: (cb: IncrSearchChangeCallback<T>) => () => void;
2632
+ readonly dispose: () => void;
2633
+ };
2634
+ type FuzzySearchOptions<T> = {
2635
+ readonly selector?: (item: T) => string;
2636
+ readonly fzf?: Partial<FzfOptions<T>>;
2637
+ };
2638
+ type FuzzySearch<T> = {
2639
+ readonly find: (query: string) => ReadonlyArray<IncrSearchResult<T>>;
2640
+ readonly items: readonly T[];
2641
+ };
2642
+ type HighlightTarget = {
2643
+ readonly element: Element;
2644
+ readonly text?: string;
2645
+ readonly positions: ReadonlySet<number>;
2646
+ };
2647
+ type HighlightOptions = {
2648
+ readonly key?: string;
2649
+ };
2650
+ type ElementIncrSearchOptions = {
2651
+ readonly container: Element;
2652
+ readonly itemSelector: string;
2653
+ readonly getLabel?: (el: Element) => string;
2654
+ readonly getKey?: (el: Element) => string;
2655
+ readonly labelSelector?: string;
2656
+ readonly highlightKey?: string;
2657
+ readonly fzf?: Partial<FzfOptions<{
2658
+ key: string;
2659
+ label: string;
2660
+ }>>;
2661
+ readonly onChange?: IncrSearchChangeCallback<{
2662
+ key: string;
2663
+ label: string;
2664
+ }>;
2665
+ };
2666
+ //#endregion
2667
+ //#region src/incr-search/ac-adapter.d.ts
2668
+ /**
2669
+ * Creates an ixfx-ac-text-compatible `completionProvider` function from a
2670
+ * static item list. Uses synchronous fuzzy search wrapped in a Promise so it
2671
+ * fits the async provider signature.
2672
+ *
2673
+ * Each returned item has `positions` populated with matched character indices,
2674
+ * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.
2675
+ *
2676
+ * Empty query returns all items in original order (no positions).
2677
+ * A cancelled signal causes the returned promise to reject with an AbortError.
2678
+ */
2679
+ declare function createAcCompletionProvider<T extends {
2680
+ label: string;
2681
+ }>(items: readonly T[], options?: Pick<FuzzySearchOptions<T>, `selector`>): (query: string, signal: AbortSignal) => Promise<Array<T & {
2682
+ positions: ReadonlySet<number>;
2683
+ }>>;
2684
+ //#endregion
2685
+ //#region src/incr-search/controller-tree.d.ts
2686
+ type IncrSearchTreeOptions = {
2687
+ selector: (item: {
2688
+ node: TreeNode;
2689
+ depth: number;
2690
+ }) => string;
2691
+ /**
2692
+ * CSS selector for the label elements inside the shadow root.
2693
+ * Defaults to `.tree-label` (suitable for ixfx-tree-list).
2694
+ * Use `.label` for ixfx-miller-list.
2695
+ */
2696
+ labelSelector?: string;
2697
+ highlightKey?: string;
2698
+ input?: HTMLInputElement;
2699
+ fzf?: Partial<FzfOptions<{
2700
+ node: TreeNode;
2701
+ depth: number;
2702
+ }>>;
2703
+ };
2704
+ /**
2705
+ * External-input filter-search controller for `TreeSearchHost` components.
2706
+ *
2707
+ * @deprecated `ixfx-tree-list` / `ixfx-miller-list` now have a built-in
2708
+ * incremental-search popover with navigate / select / filter modes — invoke
2709
+ * `el.registry.invoke('list.search.filter')` (see `docs/infra-incremental.md`)
2710
+ * instead of wiring an external `<input>`. This class remains for existing
2711
+ * consumers and covers filter mode only.
2712
+ *
2713
+ * @example Using with ixfx-tree-list:
2714
+ * ```typescript
2715
+ * const ctrl = new IncrSearchTreeController(myTreeList, {
2716
+ * selector: item => item.node.item.label,
2717
+ * });
2718
+ * ctrl.connect();
2719
+ * ```
2720
+ *
2721
+ * @example Using with ixfx-miller-list (different label selector):
2722
+ * ```typescript
2723
+ * const ctrl = new IncrSearchTreeController(myMillerList, {
2724
+ * selector: item => item.node.item.label,
2725
+ * labelSelector: '.label',
2726
+ * });
2727
+ * ctrl.connect();
2728
+ * ```
2729
+ */
2730
+ declare class IncrSearchTreeController {
2731
+ #private;
2732
+ constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions);
2733
+ connect(): void;
2734
+ disconnect(): void;
2735
+ setQuery(query: string): Promise<void>;
2736
+ clearQuery(): Promise<void>;
2737
+ }
2738
+ //#endregion
2739
+ //#region src/incr-search/list-search-controller.d.ts
2740
+ /**
2741
+ * The three things incremental search can do to a list / tree component. See
2742
+ * `docs/infra-incremental.md`.
2743
+ *
2744
+ * - `navigate` — move the cursor to the best match; ↑/↓ cycle between matches;
2745
+ * Enter activates the current match and closes.
2746
+ * - `select` — (re)select every item whose label matches, live as you type.
2747
+ * - `filter` — hide items that don't match; restored when the popover closes.
2748
+ */
2749
+ type ListSearchMode = `navigate` | `select` | `filter`;
2750
+ /** Canonical order — used for the switch-row and to normalise a requested set. */
2751
+ declare const LIST_SEARCH_MODES: readonly ListSearchMode[];
2752
+ type SearchItem = {
2753
+ readonly key: string;
2754
+ readonly label: string;
2755
+ };
2756
+ /**
2757
+ * Everything {@link ListSearchController} needs to drive a specific host. One is
2758
+ * supplied per component; `createElementListSearchAdapter` and
2759
+ * `createTreeListSearchAdapter` cover the common shapes.
2760
+ */
2761
+ interface ListSearchAdapter<TItem> {
2762
+ /** All searchable items, in display order. */
2763
+ getItems: () => readonly TItem[];
2764
+ /** Text matched against the query. */
2765
+ getLabel: (item: TItem) => string;
2766
+ /** Stable identity for an item. */
2767
+ getKey: (item: TItem) => string;
2768
+ /** `navigate`: move the cursor to `item` and reveal it. `undefined` = no-op. */
2769
+ focusItem: (item: TItem | undefined) => void;
2770
+ /** `navigate` + Enter: activate `item` (falls back to `focusItem`). */
2771
+ activateItem?: (item: TItem) => void;
2772
+ /** `select` / "Select matches": replace the selection with `items`. */
2773
+ selectItems: (items: readonly TItem[]) => void;
2774
+ /** `filter`: hide items whose key is not in `matchedKeys`; `undefined` clears the filter. */
2775
+ applyFilter: (matchedKeys: ReadonlySet<string> | undefined) => void;
2776
+ /** Where matched-character highlights are painted (usually the shadow root). */
2777
+ highlightRoot?: () => ShadowRoot | Element | null | undefined;
2778
+ /** CSS selector for the label elements inside {@link highlightRoot}. */
2779
+ highlightSelector?: string;
2780
+ /** Given a label element, the key of the item it belongs to. */
2781
+ highlightKeyOf?: (labelEl: Element) => string | undefined;
2782
+ /** Text of a label element as fzf saw it (defaults to `el.textContent`). */
2783
+ highlightText?: (labelEl: Element) => string;
2784
+ /** `CSS.highlights` registry key. Defaults to `incr-search-highlight`. */
2785
+ highlightKey?: string;
2786
+ /** Element whose child-list mutations should trigger a `refresh()`. */
2787
+ container?: () => Element | null | undefined;
2788
+ }
2789
+ interface ListSearchControllerOptions<TItem> {
2790
+ adapter: ListSearchAdapter<TItem>;
2791
+ /**
2792
+ * Modes this instance offers, as entry points and as in-popover switch
2793
+ * targets. The controller intersects this with {@link LIST_SEARCH_MODES}, so
2794
+ * pass the intersection of the component's own capability and any
2795
+ * consumer-set `search-modes`. Empty ⇒ search disabled. Default: all three.
2796
+ */
2797
+ modes?: readonly ListSearchMode[];
2798
+ fzf?: Partial<FzfOptions<SearchItem>>;
2799
+ placeholder?: string;
2800
+ }
2801
+ type ListSearchHost = ReactiveControllerHost & HTMLElement & {
2802
+ renderRoot?: DocumentFragment | HTMLElement;
2803
+ };
2804
+ /**
2805
+ * Shared brain for the three-mode incremental-search popover. A Lit
2806
+ * `ReactiveController`: the host adds `listSearchStyles` to `static styles`,
2807
+ * drops `${controller.renderField()}` into `render()`, and registers the
2808
+ * commands with {@link registerListSearchCommands}. See `docs/infra-incremental.md`.
2809
+ */
2810
+ declare class ListSearchController<TItem> implements ReactiveController {
2811
+ #private;
2812
+ constructor(host: ListSearchHost, options: ListSearchControllerOptions<TItem>);
2813
+ /** `false` when no modes are available — the host should register no commands and render no field. */
2814
+ get enabled(): boolean;
2815
+ /** The modes actually offered (component capability ∩ consumer request). */
2816
+ get registeredModes(): readonly ListSearchMode[];
2817
+ /**
2818
+ * Replace the offered mode set (normalised to {@link LIST_SEARCH_MODES}
2819
+ * order). If the current mode is dropped the popover closes and falls back to
2820
+ * the first remaining mode. Callers should re-run
2821
+ * {@link registerListSearchCommands} afterwards.
2822
+ */
2823
+ setModes(modes: readonly ListSearchMode[]): void;
2824
+ get isOpen(): boolean;
2825
+ get mode(): ListSearchMode;
2826
+ get query(): string;
2827
+ get matchCount(): number;
2828
+ get matchIndex(): number;
2829
+ hostConnected(): void;
2830
+ hostDisconnected(): void;
2831
+ /** Open the popover in `mode` (clamped to the available set). */
2832
+ open(mode: ListSearchMode): void;
2833
+ /** Close the popover, restoring any live filter. Selection / cursor stay put. */
2834
+ close(): void;
2835
+ setQuery(query: string): void;
2836
+ /** Re-interpret the current query under a new mode (undoing the old mode's effect). */
2837
+ switchMode(next: ListSearchMode): void;
2838
+ /** One-shot: turn the current match set into the selection, staying in the current mode. */
2839
+ selectMatches(): void;
2840
+ nextMatch(): void;
2841
+ prevMatch(): void;
2842
+ /** Enter: in `navigate` activate the current match; then close. */
2843
+ commit(): void;
2844
+ /** Rebuild the searchable item set from the adapter. Called on open and on container mutation. */
2845
+ refresh(): void;
2846
+ /** Popover markup. Pair with `listSearchStyles` in the host's `static styles`. */
2847
+ renderField(): TemplateResult | typeof nothing;
2848
+ }
2849
+ //#endregion
2850
+ //#region src/incr-search/element-list-search-adapter.d.ts
2851
+ /**
2852
+ * The slice of a list component the element adapter drives. `ixfx-grid-list`,
2853
+ * `ixfx-vertical-list` and `ixfx-detail-list` all satisfy it.
2854
+ */
2855
+ interface ElementListSearchHost extends HTMLElement {
2856
+ focusKey: (key: string) => void;
2857
+ selectKeys: (keys: Iterable<string>) => void;
2858
+ }
2859
+ interface ElementListSearchAdapterOptions {
2860
+ /** Selector for item elements, relative to the host. Default `:scope > *`. */
2861
+ itemSelector?: string;
2862
+ getLabel?: (el: Element) => string;
2863
+ getKey?: (el: Element) => string;
2864
+ /** `CSS.highlights` registry key for matched-character highlights. */
2865
+ highlightKey?: string;
2866
+ }
2867
+ /**
2868
+ * A {@link ListSearchAdapter} over the light-DOM item elements of a list
2869
+ * component. Filter mode toggles `hidden` (only on elements it hid itself, so a
2870
+ * consumer's own `hidden` items are left alone). Highlights are painted on the
2871
+ * item elements in the light DOM — the consuming page styles
2872
+ * `::highlight(<highlightKey>)`. See `docs/infra-incremental.md`.
2873
+ */
2874
+ declare function createElementListSearchAdapter(host: ElementListSearchHost, options?: ElementListSearchAdapterOptions): ListSearchAdapter<Element>;
2875
+ //#endregion
2876
+ //#region src/incr-search/element-search.d.ts
2877
+ type ElementItem = {
2878
+ readonly key: string;
2879
+ readonly label: string;
2880
+ };
2881
+ type ElementIncrSearch = {
2882
+ readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;
2883
+ readonly clearQuery: () => Promise<void>;
2884
+ readonly refresh: () => void;
2885
+ readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;
2886
+ readonly dispose: () => void;
2887
+ };
2888
+ /**
2889
+ * DOM filter-search over a container's item elements (sets `hidden` on
2890
+ * non-matches, applies highlights).
2891
+ *
2892
+ * @deprecated The list components (`ixfx-grid-list`, `ixfx-vertical-list`,
2893
+ * `ixfx-detail-list`, …) now have a built-in navigate / select / filter search
2894
+ * popover — see `docs/infra-incremental.md` and `ListSearchController`. Kept for
2895
+ * standalone / non-component use.
2896
+ */
2897
+ declare function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch;
2898
+ //#endregion
2899
+ //#region src/incr-search/fuzzy.d.ts
2900
+ declare function createFuzzySearch<T>(items: readonly T[], options?: FuzzySearchOptions<T>): FuzzySearch<T>;
2901
+ //#endregion
2902
+ //#region src/incr-search/highlight.d.ts
2903
+ declare function applyHighlights(targets: readonly HighlightTarget[], options?: HighlightOptions): void;
2904
+ declare function clearHighlights(options?: HighlightOptions): void;
2905
+ declare function buildHighlightTargets<T>(root: ShadowRoot | Element, itemSelector: string, positionsByItem: ReadonlyMap<T, ReadonlySet<number>>, getItem: (el: Element) => T | undefined, getText: (el: Element) => string): HighlightTarget[];
2906
+ //#endregion
2907
+ //#region src/incr-search/incr-search.d.ts
2908
+ declare function createIncrSearch<T>(options?: IncrSearchOptions<T>): IncrSearch<T>;
2909
+ //#endregion
2910
+ //#region src/incr-search/list-search-commands.d.ts
2911
+ /** Command ids registered by {@link registerListSearchCommands}, keyed by mode. */
2912
+ declare const LIST_SEARCH_COMMAND_IDS: Readonly<Record<ListSearchMode, string>>;
2913
+ interface RegisterListSearchCommandsOptions {
2914
+ /**
2915
+ * Prefix for command ids, e.g. `grid-list` ⇒ `grid-list.search.filter`. When
2916
+ * omitted the shared ids from {@link LIST_SEARCH_COMMAND_IDS} are used so a
2917
+ * single dispatch (`ixfx-grouped-item-lister.dispatch('list.search.filter')`)
2918
+ * fans out to every list.
2919
+ */
2920
+ idPrefix?: string;
2921
+ }
2922
+ /**
2923
+ * Register one command per mode the controller offers (see
2924
+ * `controller.registeredModes`). Each command opens the search popover in its
2925
+ * mode. Returns a function that unregisters them again — call it from
2926
+ * `disconnectedCallback`. See `docs/infra-incremental.md`.
2927
+ */
2928
+ declare function registerListSearchCommands<T>(registry: CommandRegistry<unknown>, controller: ListSearchController<T>, options?: RegisterListSearchCommandsOptions): () => void;
2929
+ //#endregion
2930
+ //#region src/incr-search/list-search-styles.d.ts
2931
+ /**
2932
+ * Styles for the incremental-search popover rendered by
2933
+ * `ListSearchController.renderField()`. Add to a component's `static styles`;
2934
+ * the class names are the contract between this fragment and `renderField()`.
2935
+ *
2936
+ * The host must give the popover a positioned ancestor (a wrapper with
2937
+ * `position: relative`, or `:host { position: relative }`). Tunables:
2938
+ * `--list-search-inset` (default `8px`) offsets it from the top-right corner.
2939
+ *
2940
+ * See `docs/infra-incremental.md`.
2941
+ */
2942
+ declare const listSearchStyles: CSSResult;
2943
+ //#endregion
2944
+ //#region src/incr-search/tree-list-search-adapter.d.ts
2945
+ type TreeSearchItem = {
2946
+ node: TreeNode;
2947
+ depth: number;
2948
+ };
2949
+ interface TreeListSearchAdapterOptions {
2950
+ /** Label-element selector inside the shadow root. Default `.tree-label`; `ixfx-miller-list` uses `.label`. */
2951
+ labelSelector?: string;
2952
+ /** `CSS.highlights` registry key for matched-character highlights. */
2953
+ highlightKey?: string;
2954
+ getLabel?: (item: TreeSearchItem) => string;
2955
+ }
2956
+ /**
2957
+ * A {@link ListSearchAdapter} over any `TreeSearchHost` (`ixfx-tree-list`,
2958
+ * `ixfx-miller-list`, `ixfx-crumb-navigation`). Navigate reveals the match
2959
+ * (expands its ancestors, moves the cursor); select drives `selectMany`; filter
2960
+ * sets `filterPredicate`. The item set is the whole tree — `getNodes()` returns
2961
+ * every node regardless of expansion or an active filter — so refining a query
2962
+ * can always re-surface a node. See `docs/infra-incremental.md`.
2963
+ */
2964
+ declare function createTreeListSearchAdapter(host: TreeSearchHost, options?: TreeListSearchAdapterOptions): ListSearchAdapter<TreeSearchItem>;
2965
+ //#endregion
2596
2966
  //#region src/menu/menu-bar.d.ts
2597
2967
  declare class MenuBar extends LitElement {
2598
2968
  private _openTrigger;
@@ -2849,6 +3219,20 @@ declare class DataGridElement extends LitElement {
2849
3219
  */
2850
3220
  columnMenu: DataGridColumnMenu;
2851
3221
  globalFormatter?: GlobalFormatter;
3222
+ /**
3223
+ * Predicate used by incremental filter-search (and callable directly). Rows
3224
+ * for which it returns `false` are dropped from the flat list — hidden from
3225
+ * view and navigation.
3226
+ */
3227
+ filterPredicate?: (row: unknown) => boolean;
3228
+ /** Text a row is matched against by incremental search. Default: its visible cells joined by a space. */
3229
+ rowSearchText?: (row: unknown) => string;
3230
+ /**
3231
+ * Space-separated subset of `navigate select filter` — limits which
3232
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3233
+ * disabled. See `docs/infra-incremental.md`.
3234
+ */
3235
+ searchModes: string | undefined;
2852
3236
  private _columnFormatters;
2853
3237
  private _selectedKeys;
2854
3238
  private _scrollTop;
@@ -2867,6 +3251,10 @@ declare class DataGridElement extends LitElement {
2867
3251
  private _sortedRows;
2868
3252
  private _flat;
2869
3253
  private _flatKeys;
3254
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3255
+ readonly search: ListSearchController<unknown>;
3256
+ /** Command registry carrying this grid's `list.search.*` commands. */
3257
+ get registry(): CommandRegistry<unknown> | undefined;
2870
3258
  private _visibleColumns;
2871
3259
  private _colOffsets;
2872
3260
  private _colWidthSum;
@@ -2874,6 +3262,11 @@ declare class DataGridElement extends LitElement {
2874
3262
  private _drag;
2875
3263
  connectedCallback(): void;
2876
3264
  disconnectedCallback(): void;
3265
+ /**
3266
+ * Dispatch a command to this grid — routes through the command registry so
3267
+ * `list.search.*` (and any other registered commands) work.
3268
+ */
3269
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
2877
3270
  private _onFocusOut;
2878
3271
  protected firstUpdated(): void;
2879
3272
  protected updated(changed: Map<string, unknown>): void;
@@ -3116,14 +3509,20 @@ declare class VerticalListElement extends LitElement {
3116
3509
  * : html``;
3117
3510
  */
3118
3511
  checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
3119
- private _searchVisible;
3120
- private _searchQuery;
3121
- private _searchInputEl;
3512
+ /**
3513
+ * Space-separated subset of `navigate select filter` — limits which
3514
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3515
+ * disabled. See `docs/infra-incremental.md`.
3516
+ */
3517
+ searchModes: string | undefined;
3122
3518
  private readonly selection;
3123
3519
  private tickled;
3520
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3521
+ readonly search: ListSearchController<Element>;
3522
+ /** Command registry carrying this list's `list.search.*` commands. */
3523
+ get registry(): CommandRegistry<unknown> | undefined;
3124
3524
  connectedCallback(): void;
3125
3525
  disconnectedCallback(): void;
3126
- firstUpdated(): void;
3127
3526
  updated(changed: PropertyValues): void;
3128
3527
  /** The most recently selected item, or `undefined` if nothing is selected. */
3129
3528
  get selectedItem(): Element | undefined;
@@ -3146,11 +3545,11 @@ declare class VerticalListElement extends LitElement {
3146
3545
  */
3147
3546
  setItems(items: readonly Element[]): void;
3148
3547
  /**
3149
- * Dispatch a command to this list. No-op by default.
3150
- * Intended for use with `ixfx-grouped-item-lister`'s `dispatch()` method,
3151
- * which forwards commands to all sub-components.
3548
+ * Dispatch a command to this list used by `ixfx-grouped-item-lister` to
3549
+ * forward commands to all sub-components. Routes through the command registry
3550
+ * (so `list.search.*` and any other registered commands work).
3152
3551
  */
3153
- dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
3552
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3154
3553
  select(item: Element): void;
3155
3554
  selectMany(items: Iterable<Element>): void;
3156
3555
  deselect(item: Element): void;
@@ -3187,16 +3586,12 @@ declare class VerticalListElement extends LitElement {
3187
3586
  private _createCustomCheckbox;
3188
3587
  private _findListItem;
3189
3588
  private _dispatch;
3190
- private _openSearch;
3191
- private _closeSearch;
3192
3589
  private _onPointerOver;
3193
3590
  private _onPointerLeave;
3194
3591
  private _onKeyDown;
3195
3592
  private _onClick;
3196
3593
  private _onDblClick;
3197
3594
  private _activateItem;
3198
- private _onSearchInput;
3199
- private _onSearchKeydown;
3200
3595
  static styles: CSSResult[];
3201
3596
  render(): TemplateResult<1>;
3202
3597
  }
@@ -3261,12 +3656,19 @@ declare class DetailListElement extends LitElement {
3261
3656
  itemWrap: `stop` | `wrap`;
3262
3657
  /** Optional renderer for the checkbox shown in `checked` interactionMode. */
3263
3658
  checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
3264
- private _searchVisible;
3265
- private _searchQuery;
3266
- private _searchInputEl;
3659
+ /**
3660
+ * Space-separated subset of `navigate select filter` — limits which
3661
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3662
+ * disabled. See `docs/infra-incremental.md`.
3663
+ */
3664
+ searchModes: string | undefined;
3267
3665
  private _listEl;
3268
3666
  private readonly selection;
3269
3667
  private tickled;
3668
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3669
+ readonly search: ListSearchController<Element>;
3670
+ /** Command registry carrying this list's `list.search.*` commands. */
3671
+ get registry(): CommandRegistry<unknown> | undefined;
3270
3672
  connectedCallback(): void;
3271
3673
  disconnectedCallback(): void;
3272
3674
  firstUpdated(): void;
@@ -3300,8 +3702,12 @@ declare class DetailListElement extends LitElement {
3300
3702
  * provider. Returns `undefined` for declarative / programmatic elements.
3301
3703
  */
3302
3704
  getItemData(item: HTMLLIElement): unknown;
3303
- /** Dispatch a command to this list. No-op by default (grouped-lister parity). */
3304
- dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
3705
+ /**
3706
+ * Dispatch a command to this list — used by `ixfx-grouped-item-lister` to
3707
+ * forward commands. Routes through the command registry (so `list.search.*`
3708
+ * and any other registered commands work).
3709
+ */
3710
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3305
3711
  select(item: Element): void;
3306
3712
  selectMany(items: Iterable<Element>): void;
3307
3713
  deselect(item: Element): void;
@@ -3345,8 +3751,6 @@ declare class DetailListElement extends LitElement {
3345
3751
  private _createCustomCheckbox;
3346
3752
  private _findListItem;
3347
3753
  private _dispatch;
3348
- private _openSearch;
3349
- private _closeSearch;
3350
3754
  private _onPointerOver;
3351
3755
  private _onPointerLeave;
3352
3756
  private _onKeyDown;
@@ -3354,8 +3758,6 @@ declare class DetailListElement extends LitElement {
3354
3758
  private _onDblClick;
3355
3759
  private _onWheel;
3356
3760
  private _activateItem;
3357
- private _onSearchInput;
3358
- private _onSearchKeydown;
3359
3761
  static styles: CSSResult[];
3360
3762
  render(): TemplateResult<1>;
3361
3763
  }
@@ -4987,12 +5389,27 @@ declare class GridListElement extends LitElement {
4987
5389
  */
4988
5390
  captionHeight: number;
4989
5391
  itemWrap: `stop` | `wrap`;
5392
+ /**
5393
+ * Predicate used by incremental filter-search (and callable directly). Items
5394
+ * for which it returns `false` are removed from layout and navigation.
5395
+ */
5396
+ filterPredicate: ((el: Element) => boolean) | undefined;
5397
+ /**
5398
+ * Space-separated subset of `navigate select filter` — limits which
5399
+ * incremental-search modes are offered (as commands and in-popover switches).
5400
+ * Unset ⇒ all three; empty ⇒ search disabled. See `docs/infra-incremental.md`.
5401
+ */
5402
+ searchModes: string | undefined;
4990
5403
  private _scrollTop;
4991
5404
  private _scrollLeft;
4992
5405
  private _viewportHeight;
4993
5406
  private _viewportWidth;
4994
5407
  readonly selection: ListSelectionController<Element>;
4995
5408
  readonly tickled: TickledController<Element>;
5409
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
5410
+ readonly search: ListSearchController<Element>;
5411
+ /** Command registry carrying this grid's `list.search.*` commands. */
5412
+ get registry(): CommandRegistry<unknown> | undefined;
4996
5413
  connectedCallback(): void;
4997
5414
  disconnectedCallback(): void;
4998
5415
  protected firstUpdated(): void;
@@ -5216,12 +5633,28 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
5216
5633
  filterPredicate: TreeFilterPredicate | undefined;
5217
5634
  disableKeyboardNavigation: boolean;
5218
5635
  registry: CommandRegistry<unknown> | undefined;
5636
+ /**
5637
+ * Space-separated subset of `navigate select filter` — limits which
5638
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
5639
+ * disabled. See `docs/infra-incremental.md`.
5640
+ */
5641
+ searchModes: string | undefined;
5219
5642
  protected _expandedKeys: Set<string>;
5220
5643
  protected tickled: TickledController<string>;
5221
5644
  protected _focusedDepth: number;
5645
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
5646
+ readonly search: ListSearchController<{
5647
+ node: TreeNode;
5648
+ depth: number;
5649
+ }>;
5222
5650
  willUpdate(changedProps: PropertyValues): void;
5223
5651
  /** True while `node` is a fading ghost row (removed / collapsed, still animating out). */
5224
5652
  protected _isLeaving(node: TreeNode): boolean;
5653
+ /**
5654
+ * True when `filterPredicate` is set and neither `node` nor any descendant
5655
+ * matches — the row should carry the `filtered` class (`display: none`).
5656
+ */
5657
+ protected _isFilteredOut(node: TreeNode, depth: number): boolean;
5225
5658
  updated(changedProps: PropertyValues): void;
5226
5659
  connectedCallback(): void;
5227
5660
  disconnectedCallback(): void;
@@ -5234,6 +5667,10 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
5234
5667
  deselectAll(): void;
5235
5668
  navigateTo(keys: readonly string[]): boolean;
5236
5669
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
5670
+ /** Expand ancestors + move the cursor to `key`, without touching the selection (search "navigate" mode). */
5671
+ revealKey(key: string): boolean;
5672
+ /** Replace the selection with `nodes` (subject to `selectionFilter`) — search "select" mode. */
5673
+ selectMany(nodes: Iterable<TreeNode>): void;
5237
5674
  getNodes(): ReadonlyArray<{
5238
5675
  node: TreeNode;
5239
5676
  depth: number;
@@ -5586,161 +6023,6 @@ declare function setIconFont(fontFamily: string): void;
5586
6023
  declare function getIconFont(): string | undefined;
5587
6024
  declare function svgToDataUri(svg: string): string;
5588
6025
  //#endregion
5589
- //#region src/incr-search/types.d.ts
5590
- type IncrSearchResult<T> = {
5591
- readonly item: T;
5592
- readonly positions: ReadonlySet<number>;
5593
- readonly score: number;
5594
- };
5595
- type IncrSearchState<T> = {
5596
- readonly query: string;
5597
- readonly results: ReadonlyArray<IncrSearchResult<T>>;
5598
- readonly positionsByItem: ReadonlyMap<T, ReadonlySet<number>>;
5599
- };
5600
- type IncrSearchChangeCallback<T> = (state: IncrSearchState<T>) => void;
5601
- type IncrSearchOptions<T> = {
5602
- readonly items?: readonly T[];
5603
- readonly selector?: (item: T) => string;
5604
- readonly fzf?: Partial<FzfOptions<T>>;
5605
- readonly onChange?: IncrSearchChangeCallback<T>;
5606
- };
5607
- type IncrSearch<T> = {
5608
- readonly setItems: (items: readonly T[], signal?: AbortSignal) => Promise<void>;
5609
- readonly setQuery: (query: string, signal?: AbortSignal) => Promise<IncrSearchState<T>>;
5610
- readonly clearQuery: () => Promise<void>;
5611
- readonly state: IncrSearchState<T>;
5612
- readonly onChange: (cb: IncrSearchChangeCallback<T>) => () => void;
5613
- readonly dispose: () => void;
5614
- };
5615
- type FuzzySearchOptions<T> = {
5616
- readonly selector?: (item: T) => string;
5617
- readonly fzf?: Partial<FzfOptions<T>>;
5618
- };
5619
- type FuzzySearch<T> = {
5620
- readonly find: (query: string) => ReadonlyArray<IncrSearchResult<T>>;
5621
- readonly items: readonly T[];
5622
- };
5623
- type HighlightTarget = {
5624
- readonly element: Element;
5625
- readonly text?: string;
5626
- readonly positions: ReadonlySet<number>;
5627
- };
5628
- type HighlightOptions = {
5629
- readonly key?: string;
5630
- };
5631
- type ElementIncrSearchOptions = {
5632
- readonly container: Element;
5633
- readonly itemSelector: string;
5634
- readonly getLabel?: (el: Element) => string;
5635
- readonly getKey?: (el: Element) => string;
5636
- readonly labelSelector?: string;
5637
- readonly highlightKey?: string;
5638
- readonly fzf?: Partial<FzfOptions<{
5639
- key: string;
5640
- label: string;
5641
- }>>;
5642
- readonly onChange?: IncrSearchChangeCallback<{
5643
- key: string;
5644
- label: string;
5645
- }>;
5646
- };
5647
- //#endregion
5648
- //#region src/incr-search/ac-adapter.d.ts
5649
- /**
5650
- * Creates an ixfx-ac-text-compatible `completionProvider` function from a
5651
- * static item list. Uses synchronous fuzzy search wrapped in a Promise so it
5652
- * fits the async provider signature.
5653
- *
5654
- * Each returned item has `positions` populated with matched character indices,
5655
- * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.
5656
- *
5657
- * Empty query returns all items in original order (no positions).
5658
- * A cancelled signal causes the returned promise to reject with an AbortError.
5659
- */
5660
- declare function createAcCompletionProvider<T extends {
5661
- label: string;
5662
- }>(items: readonly T[], options?: Pick<FuzzySearchOptions<T>, `selector`>): (query: string, signal: AbortSignal) => Promise<Array<T & {
5663
- positions: ReadonlySet<number>;
5664
- }>>;
5665
- //#endregion
5666
- //#region src/incr-search/controller-tree.d.ts
5667
- type IncrSearchTreeOptions = {
5668
- selector: (item: {
5669
- node: TreeNode;
5670
- depth: number;
5671
- }) => string;
5672
- /**
5673
- * CSS selector for the label elements inside the shadow root.
5674
- * Defaults to `.tree-label` (suitable for ixfx-tree-list).
5675
- * Use `.label` for ixfx-miller-list.
5676
- */
5677
- labelSelector?: string;
5678
- highlightKey?: string;
5679
- input?: HTMLInputElement;
5680
- fzf?: Partial<FzfOptions<{
5681
- node: TreeNode;
5682
- depth: number;
5683
- }>>;
5684
- };
5685
- /**
5686
- * Incremental-search controller for any component implementing `TreeSearchHost`
5687
- * (i.e. `ixfx-tree-list`, `ixfx-miller-list`, `ixfx-crumb-navigation`).
5688
- *
5689
- * Replaces the previous separate `IncrSearchTreeController` / `IncrSearchMillerController`
5690
- * classes — the unified `TreeFilterPredicate` (with depth) means one implementation works
5691
- * for all tree-like components.
5692
- *
5693
- * @example Using with ixfx-tree-list:
5694
- * ```typescript
5695
- * const ctrl = new IncrSearchTreeController(myTreeList, {
5696
- * selector: item => item.node.item.label,
5697
- * });
5698
- * ctrl.connect();
5699
- * ```
5700
- *
5701
- * @example Using with ixfx-miller-list (different label selector):
5702
- * ```typescript
5703
- * const ctrl = new IncrSearchTreeController(myMillerList, {
5704
- * selector: item => item.node.item.label,
5705
- * labelSelector: '.label',
5706
- * });
5707
- * ctrl.connect();
5708
- * ```
5709
- */
5710
- declare class IncrSearchTreeController {
5711
- #private;
5712
- constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions);
5713
- connect(): void;
5714
- disconnect(): void;
5715
- setQuery(query: string): Promise<void>;
5716
- clearQuery(): Promise<void>;
5717
- }
5718
- //#endregion
5719
- //#region src/incr-search/element-search.d.ts
5720
- type ElementItem = {
5721
- readonly key: string;
5722
- readonly label: string;
5723
- };
5724
- type ElementIncrSearch = {
5725
- readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;
5726
- readonly clearQuery: () => Promise<void>;
5727
- readonly refresh: () => void;
5728
- readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;
5729
- readonly dispose: () => void;
5730
- };
5731
- declare function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch;
5732
- //#endregion
5733
- //#region src/incr-search/fuzzy.d.ts
5734
- declare function createFuzzySearch<T>(items: readonly T[], options?: FuzzySearchOptions<T>): FuzzySearch<T>;
5735
- //#endregion
5736
- //#region src/incr-search/highlight.d.ts
5737
- declare function applyHighlights(targets: readonly HighlightTarget[], options?: HighlightOptions): void;
5738
- declare function clearHighlights(options?: HighlightOptions): void;
5739
- declare function buildHighlightTargets<T>(root: ShadowRoot | Element, itemSelector: string, positionsByItem: ReadonlyMap<T, ReadonlySet<number>>, getItem: (el: Element) => T | undefined, getText: (el: Element) => string): HighlightTarget[];
5740
- //#endregion
5741
- //#region src/incr-search/incr-search.d.ts
5742
- declare function createIncrSearch<T>(options?: IncrSearchOptions<T>): IncrSearch<T>;
5743
- //#endregion
5744
6026
  //#region src/interaction/keyed-list.d.ts
5745
6027
  /**
5746
6028
  * Helpers for key-based selection on the Element-flavoured list components
@@ -6247,6 +6529,16 @@ type MillerItemDblClickDetail = {
6247
6529
  node: TreeNode;
6248
6530
  depth: number;
6249
6531
  };
6532
+ /** Detail for the `rebase` event fired when the view root changes. */
6533
+ type MillerRebaseDetail = {
6534
+ /** The new view root, or `undefined` when the view was restored to the full tree. */
6535
+ viewRoot: TreeNode | undefined;
6536
+ /**
6537
+ * Ancestry chain from the true root down to and including the new view root.
6538
+ * Empty when the view shows the full tree.
6539
+ */
6540
+ path: Array<TreeNode>;
6541
+ };
6250
6542
  /** Detail for the `item-rightclick` event. */
6251
6543
  type MillerItemRightClickDetail = {
6252
6544
  node: TreeNode;
@@ -6264,6 +6556,7 @@ type MillerHeaderClickEvent = CustomEvent<MillerHeaderClickDetail>;
6264
6556
  type MillerItemDblClickEvent = CustomEvent<MillerItemDblClickDetail>;
6265
6557
  type MillerItemRightClickEvent = CustomEvent<MillerItemRightClickDetail>;
6266
6558
  type MillerHeaderRightClickEvent = CustomEvent<MillerHeaderRightClickDetail>;
6559
+ type MillerRebaseEvent = CustomEvent<MillerRebaseDetail>;
6267
6560
  /**
6268
6561
  * A snapshot of all display states for a single item in the miller columns.
6269
6562
  *
@@ -6327,6 +6620,29 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6327
6620
  root: TreeNode | undefined;
6328
6621
  model: TreeDataModel | undefined;
6329
6622
  headers: boolean;
6623
+ /**
6624
+ * When true, the last (rightmost) column grows to fill any remaining
6625
+ * horizontal space in the host. All other columns size to their content
6626
+ * (`max-content`), unless the user has manually resized them.
6627
+ *
6628
+ * When the user clicks into an item in the stretched column and a new
6629
+ * column opens, the previously-last column automatically transitions back
6630
+ * to its content-based width and the new last column stretches instead.
6631
+ * Explicit user-resized widths (via the resize handle) always win over
6632
+ * stretching.
6633
+ */
6634
+ stretchLastColumn: boolean;
6635
+ /**
6636
+ * Alternative node to use as the display root (Finder-style column-view
6637
+ * rebase). When set, column 0 shows this node's children and all depths,
6638
+ * headers, and key paths are relative to it. When `undefined` (default),
6639
+ * the full `root` tree is shown.
6640
+ *
6641
+ * Prefer `rebaseTo()` / `rebaseUp()` over assigning this directly — they
6642
+ * validate the target and report whether the view changed. Assigning a new
6643
+ * `root` (or receiving one via `model`) silently clears the view root.
6644
+ */
6645
+ viewRoot: TreeNode | undefined;
6330
6646
  /**
6331
6647
  * Controls the column-level interaction pattern (how clicks map to column changes).
6332
6648
  * This is distinct from `selectionFilter` (which restricts which node kinds are selectable).
@@ -6342,13 +6658,27 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6342
6658
  */
6343
6659
  loadChildren: LoadChildrenCallback | undefined;
6344
6660
  filterPredicate: TreeFilterPredicate | undefined;
6661
+ /**
6662
+ * Space-separated subset of `navigate select filter` — limits which
6663
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
6664
+ * disabled. See `docs/infra-incremental.md`.
6665
+ */
6666
+ searchModes: string | undefined;
6345
6667
  protected _columns: TreeNode[][];
6346
6668
  protected _loadingDepth: number | undefined;
6347
6669
  protected _selectedByDepth: Map<number, TreeNode>;
6348
6670
  protected _selectedKeys: Set<string>;
6349
6671
  protected _selectedNodes: Set<TreeNode>;
6672
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
6673
+ readonly search: ListSearchController<{
6674
+ node: TreeNode;
6675
+ depth: number;
6676
+ }>;
6677
+ /** Command registry carrying this component's `list.search.*` commands. */
6678
+ get registry(): CommandRegistry<unknown> | undefined;
6350
6679
  tickled: TickledController<string>;
6351
6680
  updated(changedProps: PropertyValues): void;
6681
+ connectedCallback(): void;
6352
6682
  disconnectedCallback(): void;
6353
6683
  getConfig(): MillerConfig;
6354
6684
  setConfig(config: MillerConfig): void;
@@ -6384,17 +6714,41 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6384
6714
  */
6385
6715
  getSelected(): TreeNode[];
6386
6716
  /**
6387
- * Programmatically navigate to a node by key path.
6717
+ * Programmatically navigate to a node by key path, relative to the current
6718
+ * view root (rebased or full tree).
6388
6719
  */
6389
6720
  navigateTo(keys: readonly string[]): boolean;
6390
6721
  /**
6391
6722
  * Programmatically navigate to the first node (breadth-first) matching a predicate.
6392
6723
  */
6393
6724
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
6725
+ /** Open the columns down to `key` and move the cursor to it, without changing the selection (search "navigate" mode). */
6726
+ revealKey(key: string): boolean;
6727
+ /** Replace the selection with `nodes` (search "select" mode). */
6728
+ selectMany(nodes: Iterable<TreeNode>): void;
6394
6729
  getNodes(): ReadonlyArray<{
6395
6730
  node: TreeNode;
6396
6731
  depth: number;
6397
6732
  }>;
6733
+ /**
6734
+ * Rebase the view to show `target`'s children in column 0 (Finder column-view
6735
+ * behavior on double-click), keeping the full tree in `root`.
6736
+ *
6737
+ * - Pass a `MillerNode` (used as-is) or a key (looked up in the full tree).
6738
+ * - Pass `undefined` to restore the full-tree view.
6739
+ * - Rebasing to the true root is equivalent to restoring the full view.
6740
+ * - Leaves are refused (returns `false`).
6741
+ *
6742
+ * Selection is cleared; all depths, headers, and key paths are relative to
6743
+ * the new view root. Fires a `rebase` event when the view actually changes.
6744
+ * Returns `false` when nothing changed (unknown key, leaf, or same view).
6745
+ */
6746
+ rebaseTo(target: TreeNode | string | undefined): boolean;
6747
+ /**
6748
+ * Rebase one level up from the current view root (no-op at the full tree).
6749
+ * Fires a `rebase` event when the view actually changes.
6750
+ */
6751
+ rebaseUp(): boolean;
6398
6752
  protected renderColumnContent(nodes: TreeNode[], depth: number): TemplateResult | typeof nothing;
6399
6753
  protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
6400
6754
  /**
@@ -6453,6 +6807,7 @@ interface MillerBaseElementEventMap extends TreeComponentEventMap {
6453
6807
  'item-rightclick': CustomEvent<MillerItemRightClickDetail>;
6454
6808
  'header-click': CustomEvent<MillerHeaderClickDetail>;
6455
6809
  'header-rightclick': CustomEvent<MillerHeaderRightClickDetail>;
6810
+ 'rebase': CustomEvent<MillerRebaseDetail>;
6456
6811
  }
6457
6812
  interface MillerBaseElement {
6458
6813
  addEventListener: (<K extends keyof MillerBaseElementEventMap>(type: K, listener: (this: MillerBaseElement, event: MillerBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
@@ -6538,6 +6893,9 @@ declare class MillerTreeController<T> {
6538
6893
  * Any ancestor `MillerNode`s with unloaded children are populated
6539
6894
  * synchronously before calling `element.navigateTo()`.
6540
6895
  *
6896
+ * Key paths are relative to the element's current view root: when the view
6897
+ * is rebased, only matches at or below the view root can be reached.
6898
+ *
6541
6899
  * Returns `false` if no matching node is found.
6542
6900
  */
6543
6901
  navigateToValue(predicate: (value: T) => boolean): boolean;
@@ -8470,5 +8828,5 @@ interface XyPad {
8470
8828
  //#region src/index.d.ts
8471
8829
  declare function init(): void;
8472
8830
  //#endregion
8473
- export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LaneData, LaneType, LayoutNode, LayoutSnapshot, LeafGeom, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, 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, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarGroupElement, ToolbarLayout, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, attachTimelineInteractions, buildHighlightTargets, buildModel, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeLeafGeoms, createAcCompletionProvider, createElementIncrSearch, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, readBaseColour, registerFontIcon, registerIcon, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
8831
+ export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LaneData, LaneType, LayoutNode, LayoutSnapshot, LeafGeom, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, type RegisterListSearchCommandsOptions, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarGroupElement, ToolbarLayout, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeSearchHost, TreeSelectionFilter, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, attachTimelineInteractions, buildHighlightTargets, buildModel, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeLeafGeoms, createAcCompletionProvider, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
8474
8832
  //# sourceMappingURL=index.d.ts.map