@ixfx/components 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/bundle/index.d.ts +787 -190
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +2770 -592
  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-D-z7bx5-.d.ts} +26 -1
  11. package/dist/data-grid-D-z7bx5-.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-_ZJHYEBr.d.ts} +20 -12
  16. package/dist/detail-list-_ZJHYEBr.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-nRUQOcEL.js +1537 -0
  21. package/dist/grid-list-nRUQOcEL.js.map +1 -0
  22. package/dist/{grid-list-B_orPsot.d.ts → grid-list-u33vmKzb.d.ts} +128 -10
  23. package/dist/grid-list-u33vmKzb.d.ts.map +1 -0
  24. package/dist/grid-list.d.ts +1 -1
  25. package/dist/grid-list.js +1 -932
  26. package/dist/incr-search-C05WjbZh.js +999 -0
  27. package/dist/incr-search-C05WjbZh.js.map +1 -0
  28. package/dist/incr-search.d.ts +2 -2
  29. package/dist/incr-search.js +2 -3
  30. package/dist/index-h6gxtfHH.d.ts +397 -0
  31. package/dist/index-h6gxtfHH.d.ts.map +1 -0
  32. package/dist/index.d.ts +62 -13
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +343 -17
  35. package/dist/index.js.map +1 -1
  36. package/dist/led.d.ts +33 -1
  37. package/dist/led.d.ts.map +1 -1
  38. package/dist/led.js +157 -13
  39. package/dist/led.js.map +1 -1
  40. package/dist/{list-selection-controller-CUo-Hhcm.js → list-selection-controller-DTFI40li.js} +2 -76
  41. package/dist/list-selection-controller-DTFI40li.js.map +1 -0
  42. package/dist/miller.d.ts +81 -3
  43. package/dist/miller.d.ts.map +1 -1
  44. package/dist/miller.js +327 -68
  45. package/dist/miller.js.map +1 -1
  46. package/dist/narrowed-text.js +1 -2
  47. package/dist/narrowed-text.js.map +1 -1
  48. package/dist/panel.d.ts +3 -1
  49. package/dist/panel.d.ts.map +1 -1
  50. package/dist/panel.js +31 -1
  51. package/dist/panel.js.map +1 -1
  52. package/dist/plots.d.ts +2 -2
  53. package/dist/plots.js +1 -1
  54. package/dist/{titlebar-Bj5pfdw_.d.ts → titlebar-YQ-jVQoS.d.ts} +2 -2
  55. package/dist/{titlebar-Bj5pfdw_.d.ts.map → titlebar-YQ-jVQoS.d.ts.map} +1 -1
  56. package/dist/titlebar.d.ts +1 -1
  57. package/dist/titlebar.js +83 -1
  58. package/dist/titlebar.js.map +1 -1
  59. package/dist/{tree-B74zdI60.js → tree-Chptss7I.js} +77 -15
  60. package/dist/tree-Chptss7I.js.map +1 -0
  61. package/dist/{tree-component-BvV4muxx.d.ts → tree-component-F6qZ0Gdv.d.ts} +9 -1
  62. package/dist/{tree-component-BvV4muxx.d.ts.map → tree-component-F6qZ0Gdv.d.ts.map} +1 -1
  63. package/dist/tree.d.ts +22 -1
  64. package/dist/tree.d.ts.map +1 -1
  65. package/dist/tree.js +1 -1
  66. package/dist/{vertical-list-CQSEVeOT.d.ts → vertical-list-CFuFDygi.d.ts} +17 -14
  67. package/dist/vertical-list-CFuFDygi.d.ts.map +1 -0
  68. package/dist/vertical-list.d.ts +1 -1
  69. package/dist/vertical-list.js +59 -127
  70. package/dist/vertical-list.js.map +1 -1
  71. package/dist/{xy-axis-5KhVTNoX.d.ts → xy-axis-BfP9hKLj.d.ts} +25 -2
  72. package/dist/{xy-axis-5KhVTNoX.d.ts.map → xy-axis-BfP9hKLj.d.ts.map} +1 -1
  73. package/dist/{xy-axis-VrX8dmvS.js → xy-axis-DzM1brBZ.js} +141 -8
  74. package/dist/xy-axis-DzM1brBZ.js.map +1 -0
  75. package/docs-user/data-grid.md +19 -0
  76. package/docs-user/detail-list.md +1 -1
  77. package/docs-user/grid-list.md +120 -11
  78. package/docs-user/incr-search.md +12 -2
  79. package/docs-user/index.json +3 -3
  80. package/docs-user/led.md +37 -7
  81. package/docs-user/llms.txt +1 -1
  82. package/docs-user/panel.md +68 -13
  83. package/docs-user/titlebar.md +3 -4
  84. package/docs-user/tree.md +22 -1
  85. package/docs-user/vertical-list.md +7 -1
  86. package/llms.txt +1 -1
  87. package/package.json +1 -1
  88. package/dist/data-grid-BddUjAti.d.ts.map +0 -1
  89. package/dist/detail-list-Br0WAnry.d.ts.map +0 -1
  90. package/dist/element-search-Y8SRfPGM.js +0 -185
  91. package/dist/element-search-Y8SRfPGM.js.map +0 -1
  92. package/dist/grid-list-B_orPsot.d.ts.map +0 -1
  93. package/dist/grid-list.js.map +0 -1
  94. package/dist/incr-search-vCzuao-2.js +0 -137
  95. package/dist/incr-search-vCzuao-2.js.map +0 -1
  96. package/dist/index-Cu5i8zZY.d.ts +0 -160
  97. package/dist/index-Cu5i8zZY.d.ts.map +0 -1
  98. package/dist/list-selection-controller-CUo-Hhcm.js.map +0 -1
  99. package/dist/tree-B74zdI60.js.map +0 -1
  100. package/dist/vertical-list-CQSEVeOT.d.ts.map +0 -1
  101. package/dist/xy-axis-VrX8dmvS.js.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,396 @@ 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/data-list-search-adapter.d.ts
2851
+ /** One searchable item in data-backed mode. */
2852
+ type DataListSearchItem = {
2853
+ key: string;
2854
+ index: number;
2855
+ };
2856
+ interface DataListSearchAdapterOptions {
2857
+ /** Total number of items in the whole collection (search sees all of them). */
2858
+ rawCount: () => number;
2859
+ /** Raw (unfiltered) index → key. */
2860
+ rawKeyAt: (index: number) => string;
2861
+ /** Raw (unfiltered) index → text matched against the query. */
2862
+ rawSearchTextAt: (index: number) => string;
2863
+ /** `filter` mode: the host hides items whose key is not in `matchedKeys` (`undefined` clears). */
2864
+ onFilterChange?: (matchedKeys: ReadonlySet<string> | undefined) => void;
2865
+ /** `navigate` + Enter: activate the item with this key. Falls back to `focusKey`. */
2866
+ onActivate?: (key: string) => void;
2867
+ /** Where matched-character highlights are painted (usually the shadow root). */
2868
+ getHighlightRoot?: () => ShadowRoot | Element | null | undefined;
2869
+ }
2870
+ /**
2871
+ * A {@link ListSearchAdapter} over a data-backed list. Unlike the element
2872
+ * adapter it never materialises an element per item — it reads keys and text
2873
+ * straight from the source by index. Highlights are painted on whatever
2874
+ * captions are currently rendered in the shadow window; offscreen matches paint
2875
+ * when scrolled into view. See `docs/infra-incremental.md`.
2876
+ */
2877
+ declare function createDataListSearchAdapter(host: {
2878
+ focusKey: (key: string) => void;
2879
+ selectKeys: (keys: Iterable<string>) => void;
2880
+ }, options: DataListSearchAdapterOptions): ListSearchAdapter<DataListSearchItem>;
2881
+ //#endregion
2882
+ //#region src/incr-search/element-list-search-adapter.d.ts
2883
+ /**
2884
+ * The slice of a list component the element adapter drives. `ixfx-grid-list`,
2885
+ * `ixfx-vertical-list` and `ixfx-detail-list` all satisfy it.
2886
+ */
2887
+ interface ElementListSearchHost extends HTMLElement {
2888
+ focusKey: (key: string) => void;
2889
+ selectKeys: (keys: Iterable<string>) => void;
2890
+ }
2891
+ interface ElementListSearchAdapterOptions {
2892
+ /** Selector for item elements, relative to the host. Default `:scope > *`. */
2893
+ itemSelector?: string;
2894
+ getLabel?: (el: Element) => string;
2895
+ getKey?: (el: Element) => string;
2896
+ /** `CSS.highlights` registry key for matched-character highlights. */
2897
+ highlightKey?: string;
2898
+ }
2899
+ /**
2900
+ * A {@link ListSearchAdapter} over the light-DOM item elements of a list
2901
+ * component. Filter mode toggles `hidden` (only on elements it hid itself, so a
2902
+ * consumer's own `hidden` items are left alone). Highlights are painted on the
2903
+ * item elements in the light DOM — the consuming page styles
2904
+ * `::highlight(<highlightKey>)`. See `docs/infra-incremental.md`.
2905
+ */
2906
+ declare function createElementListSearchAdapter(host: ElementListSearchHost, options?: ElementListSearchAdapterOptions): ListSearchAdapter<Element>;
2907
+ //#endregion
2908
+ //#region src/incr-search/element-search.d.ts
2909
+ type ElementItem = {
2910
+ readonly key: string;
2911
+ readonly label: string;
2912
+ };
2913
+ type ElementIncrSearch = {
2914
+ readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;
2915
+ readonly clearQuery: () => Promise<void>;
2916
+ readonly refresh: () => void;
2917
+ readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;
2918
+ readonly dispose: () => void;
2919
+ };
2920
+ /**
2921
+ * DOM filter-search over a container's item elements (sets `hidden` on
2922
+ * non-matches, applies highlights).
2923
+ *
2924
+ * @deprecated The list components (`ixfx-grid-list`, `ixfx-vertical-list`,
2925
+ * `ixfx-detail-list`, …) now have a built-in navigate / select / filter search
2926
+ * popover — see `docs/infra-incremental.md` and `ListSearchController`. Kept for
2927
+ * standalone / non-component use.
2928
+ */
2929
+ declare function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch;
2930
+ //#endregion
2931
+ //#region src/incr-search/fuzzy.d.ts
2932
+ declare function createFuzzySearch<T>(items: readonly T[], options?: FuzzySearchOptions<T>): FuzzySearch<T>;
2933
+ //#endregion
2934
+ //#region src/incr-search/highlight.d.ts
2935
+ declare function applyHighlights(targets: readonly HighlightTarget[], options?: HighlightOptions): void;
2936
+ declare function clearHighlights(options?: HighlightOptions): void;
2937
+ declare function buildHighlightTargets<T>(root: ShadowRoot | Element, itemSelector: string, positionsByItem: ReadonlyMap<T, ReadonlySet<number>>, getItem: (el: Element) => T | undefined, getText: (el: Element) => string): HighlightTarget[];
2938
+ //#endregion
2939
+ //#region src/incr-search/incr-search.d.ts
2940
+ declare function createIncrSearch<T>(options?: IncrSearchOptions<T>): IncrSearch<T>;
2941
+ //#endregion
2942
+ //#region src/incr-search/list-search-commands.d.ts
2943
+ /** Command ids registered by {@link registerListSearchCommands}, keyed by mode. */
2944
+ declare const LIST_SEARCH_COMMAND_IDS: Readonly<Record<ListSearchMode, string>>;
2945
+ interface RegisterListSearchCommandsOptions {
2946
+ /**
2947
+ * Prefix for command ids, e.g. `grid-list` ⇒ `grid-list.search.filter`. When
2948
+ * omitted the shared ids from {@link LIST_SEARCH_COMMAND_IDS} are used so a
2949
+ * single dispatch (`ixfx-grouped-item-lister.dispatch('list.search.filter')`)
2950
+ * fans out to every list.
2951
+ */
2952
+ idPrefix?: string;
2953
+ }
2954
+ /**
2955
+ * Register one command per mode the controller offers (see
2956
+ * `controller.registeredModes`). Each command opens the search popover in its
2957
+ * mode. Returns a function that unregisters them again — call it from
2958
+ * `disconnectedCallback`. See `docs/infra-incremental.md`.
2959
+ */
2960
+ declare function registerListSearchCommands<T>(registry: CommandRegistry<unknown>, controller: ListSearchController<T>, options?: RegisterListSearchCommandsOptions): () => void;
2961
+ //#endregion
2962
+ //#region src/incr-search/list-search-styles.d.ts
2963
+ /**
2964
+ * Styles for the incremental-search popover rendered by
2965
+ * `ListSearchController.renderField()`. Add to a component's `static styles`;
2966
+ * the class names are the contract between this fragment and `renderField()`.
2967
+ *
2968
+ * The host must give the popover a positioned ancestor (a wrapper with
2969
+ * `position: relative`, or `:host { position: relative }`). Tunables:
2970
+ * `--list-search-inset` (default `8px`) offsets it from the top-right corner.
2971
+ *
2972
+ * See `docs/infra-incremental.md`.
2973
+ */
2974
+ declare const listSearchStyles: CSSResult;
2975
+ //#endregion
2976
+ //#region src/incr-search/tree-list-search-adapter.d.ts
2977
+ type TreeSearchItem = {
2978
+ node: TreeNode;
2979
+ depth: number;
2980
+ };
2981
+ interface TreeListSearchAdapterOptions {
2982
+ /** Label-element selector inside the shadow root. Default `.tree-label`; `ixfx-miller-list` uses `.label`. */
2983
+ labelSelector?: string;
2984
+ /** `CSS.highlights` registry key for matched-character highlights. */
2985
+ highlightKey?: string;
2986
+ getLabel?: (item: TreeSearchItem) => string;
2987
+ }
2988
+ /**
2989
+ * A {@link ListSearchAdapter} over any `TreeSearchHost` (`ixfx-tree-list`,
2990
+ * `ixfx-miller-list`, `ixfx-crumb-navigation`). Navigate reveals the match
2991
+ * (expands its ancestors, moves the cursor); select drives `selectMany`; filter
2992
+ * sets `filterPredicate`. The item set is the whole tree — `getNodes()` returns
2993
+ * every node regardless of expansion or an active filter — so refining a query
2994
+ * can always re-surface a node. See `docs/infra-incremental.md`.
2995
+ */
2996
+ declare function createTreeListSearchAdapter(host: TreeSearchHost, options?: TreeListSearchAdapterOptions): ListSearchAdapter<TreeSearchItem>;
2997
+ //#endregion
2596
2998
  //#region src/menu/menu-bar.d.ts
2597
2999
  declare class MenuBar extends LitElement {
2598
3000
  private _openTrigger;
@@ -2849,6 +3251,20 @@ declare class DataGridElement extends LitElement {
2849
3251
  */
2850
3252
  columnMenu: DataGridColumnMenu;
2851
3253
  globalFormatter?: GlobalFormatter;
3254
+ /**
3255
+ * Predicate used by incremental filter-search (and callable directly). Rows
3256
+ * for which it returns `false` are dropped from the flat list — hidden from
3257
+ * view and navigation.
3258
+ */
3259
+ filterPredicate?: (row: unknown) => boolean;
3260
+ /** Text a row is matched against by incremental search. Default: its visible cells joined by a space. */
3261
+ rowSearchText?: (row: unknown) => string;
3262
+ /**
3263
+ * Space-separated subset of `navigate select filter` — limits which
3264
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3265
+ * disabled. See `docs/infra-incremental.md`.
3266
+ */
3267
+ searchModes: string | undefined;
2852
3268
  private _columnFormatters;
2853
3269
  private _selectedKeys;
2854
3270
  private _scrollTop;
@@ -2867,6 +3283,10 @@ declare class DataGridElement extends LitElement {
2867
3283
  private _sortedRows;
2868
3284
  private _flat;
2869
3285
  private _flatKeys;
3286
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3287
+ readonly search: ListSearchController<unknown>;
3288
+ /** Command registry carrying this grid's `list.search.*` commands. */
3289
+ get registry(): CommandRegistry<unknown> | undefined;
2870
3290
  private _visibleColumns;
2871
3291
  private _colOffsets;
2872
3292
  private _colWidthSum;
@@ -2874,6 +3294,11 @@ declare class DataGridElement extends LitElement {
2874
3294
  private _drag;
2875
3295
  connectedCallback(): void;
2876
3296
  disconnectedCallback(): void;
3297
+ /**
3298
+ * Dispatch a command to this grid — routes through the command registry so
3299
+ * `list.search.*` (and any other registered commands) work.
3300
+ */
3301
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
2877
3302
  private _onFocusOut;
2878
3303
  protected firstUpdated(): void;
2879
3304
  protected updated(changed: Map<string, unknown>): void;
@@ -3116,14 +3541,20 @@ declare class VerticalListElement extends LitElement {
3116
3541
  * : html``;
3117
3542
  */
3118
3543
  checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
3119
- private _searchVisible;
3120
- private _searchQuery;
3121
- private _searchInputEl;
3544
+ /**
3545
+ * Space-separated subset of `navigate select filter` — limits which
3546
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3547
+ * disabled. See `docs/infra-incremental.md`.
3548
+ */
3549
+ searchModes: string | undefined;
3122
3550
  private readonly selection;
3123
3551
  private tickled;
3552
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3553
+ readonly search: ListSearchController<Element>;
3554
+ /** Command registry carrying this list's `list.search.*` commands. */
3555
+ get registry(): CommandRegistry<unknown> | undefined;
3124
3556
  connectedCallback(): void;
3125
3557
  disconnectedCallback(): void;
3126
- firstUpdated(): void;
3127
3558
  updated(changed: PropertyValues): void;
3128
3559
  /** The most recently selected item, or `undefined` if nothing is selected. */
3129
3560
  get selectedItem(): Element | undefined;
@@ -3146,11 +3577,11 @@ declare class VerticalListElement extends LitElement {
3146
3577
  */
3147
3578
  setItems(items: readonly Element[]): void;
3148
3579
  /**
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.
3580
+ * Dispatch a command to this list used by `ixfx-grouped-item-lister` to
3581
+ * forward commands to all sub-components. Routes through the command registry
3582
+ * (so `list.search.*` and any other registered commands work).
3152
3583
  */
3153
- dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
3584
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3154
3585
  select(item: Element): void;
3155
3586
  selectMany(items: Iterable<Element>): void;
3156
3587
  deselect(item: Element): void;
@@ -3187,16 +3618,12 @@ declare class VerticalListElement extends LitElement {
3187
3618
  private _createCustomCheckbox;
3188
3619
  private _findListItem;
3189
3620
  private _dispatch;
3190
- private _openSearch;
3191
- private _closeSearch;
3192
3621
  private _onPointerOver;
3193
3622
  private _onPointerLeave;
3194
3623
  private _onKeyDown;
3195
3624
  private _onClick;
3196
3625
  private _onDblClick;
3197
3626
  private _activateItem;
3198
- private _onSearchInput;
3199
- private _onSearchKeydown;
3200
3627
  static styles: CSSResult[];
3201
3628
  render(): TemplateResult<1>;
3202
3629
  }
@@ -3261,12 +3688,19 @@ declare class DetailListElement extends LitElement {
3261
3688
  itemWrap: `stop` | `wrap`;
3262
3689
  /** Optional renderer for the checkbox shown in `checked` interactionMode. */
3263
3690
  checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
3264
- private _searchVisible;
3265
- private _searchQuery;
3266
- private _searchInputEl;
3691
+ /**
3692
+ * Space-separated subset of `navigate select filter` — limits which
3693
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
3694
+ * disabled. See `docs/infra-incremental.md`.
3695
+ */
3696
+ searchModes: string | undefined;
3267
3697
  private _listEl;
3268
3698
  private readonly selection;
3269
3699
  private tickled;
3700
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
3701
+ readonly search: ListSearchController<Element>;
3702
+ /** Command registry carrying this list's `list.search.*` commands. */
3703
+ get registry(): CommandRegistry<unknown> | undefined;
3270
3704
  connectedCallback(): void;
3271
3705
  disconnectedCallback(): void;
3272
3706
  firstUpdated(): void;
@@ -3300,8 +3734,12 @@ declare class DetailListElement extends LitElement {
3300
3734
  * provider. Returns `undefined` for declarative / programmatic elements.
3301
3735
  */
3302
3736
  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;
3737
+ /**
3738
+ * Dispatch a command to this list — used by `ixfx-grouped-item-lister` to
3739
+ * forward commands. Routes through the command registry (so `list.search.*`
3740
+ * and any other registered commands work).
3741
+ */
3742
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3305
3743
  select(item: Element): void;
3306
3744
  selectMany(items: Iterable<Element>): void;
3307
3745
  deselect(item: Element): void;
@@ -3345,8 +3783,6 @@ declare class DetailListElement extends LitElement {
3345
3783
  private _createCustomCheckbox;
3346
3784
  private _findListItem;
3347
3785
  private _dispatch;
3348
- private _openSearch;
3349
- private _closeSearch;
3350
3786
  private _onPointerOver;
3351
3787
  private _onPointerLeave;
3352
3788
  private _onKeyDown;
@@ -3354,8 +3790,6 @@ declare class DetailListElement extends LitElement {
3354
3790
  private _onDblClick;
3355
3791
  private _onWheel;
3356
3792
  private _activateItem;
3357
- private _onSearchInput;
3358
- private _onSearchKeydown;
3359
3793
  static styles: CSSResult[];
3360
3794
  render(): TemplateResult<1>;
3361
3795
  }
@@ -3368,7 +3802,7 @@ declare global {
3368
3802
  //#endregion
3369
3803
  //#region src/titlebar/titlebar.d.ts
3370
3804
  type TitlebarOrientation = `horizontal` | `vertical`;
3371
- type TitlebarVariant = `titlebar` | `midline`;
3805
+ type TitlebarVariant = `titlebar` | `midline` | `tree`;
3372
3806
  type TitlebarToggleInteraction = `implicit` | `explicit` | `disabled`;
3373
3807
  interface TitlebarToggleDetail {
3374
3808
  readonly collapsed: boolean;
@@ -4544,6 +4978,17 @@ declare global {
4544
4978
  }
4545
4979
  //#endregion
4546
4980
  //#region src/grid-list/types.d.ts
4981
+ /**
4982
+ * Adapter for data-backed grid list mode.
4983
+ * @param T The type of data item.
4984
+ */
4985
+ type GridListDataAdapter<T> = {
4986
+ key: (item: T, index: number) => string;
4987
+ label?: (item: T, index: number) => string;
4988
+ render: (item: T, index: number) => unknown;
4989
+ disabled?: (item: T, index: number) => boolean;
4990
+ searchableText?: (item: T, index: number) => string;
4991
+ };
4547
4992
  /**
4548
4993
  * How the caption relates to the cell's content.
4549
4994
  * - `hidden`: no caption is rendered.
@@ -4579,20 +5024,35 @@ type GridListOrientation = `grid` | `row` | `column`;
4579
5024
  interface GridListSelectDetail {
4580
5025
  readonly selected: ReadonlySet<Element>;
4581
5026
  readonly previous: ReadonlySet<Element>;
4582
- /** The selection as stable `data-key` / `data-value` strings. */
4583
5027
  readonly selectedKeys: ReadonlySet<string>;
5028
+ readonly previousKeys: ReadonlySet<string>;
4584
5029
  }
4585
5030
  type GridListSelectEvent = CustomEvent<GridListSelectDetail>;
5031
+ /**
5032
+ * `item` is the backward-compatible field: the light-DOM `Element` in element
5033
+ * mode, the data value `T` in data mode. Use `element` when you specifically
5034
+ * need the DOM node (`undefined` in data mode). `key` / `index` are the stable
5035
+ * contract in both modes.
5036
+ */
4586
5037
  interface GridListActivateDetail {
4587
- readonly item: Element;
5038
+ readonly item: unknown;
5039
+ readonly key: string;
5040
+ readonly index: number;
5041
+ readonly element: Element | undefined;
4588
5042
  }
4589
5043
  type GridListActivateEvent = CustomEvent<GridListActivateDetail>;
4590
5044
  interface GridListItemClickDetail {
4591
- readonly item: Element;
5045
+ readonly item: unknown;
5046
+ readonly key: string;
5047
+ readonly index: number;
5048
+ readonly element: Element | undefined;
4592
5049
  }
4593
5050
  type GridListItemClickEvent = CustomEvent<GridListItemClickDetail>;
4594
5051
  interface GridListTickleDetail {
4595
- readonly item: Element;
5052
+ readonly item: unknown;
5053
+ readonly key: string;
5054
+ readonly index: number;
5055
+ readonly element: Element | undefined;
4596
5056
  }
4597
5057
  type GridListTickleEvent = CustomEvent<GridListTickleDetail>;
4598
5058
  interface GridListElementEventMap {
@@ -4602,6 +5062,7 @@ interface GridListElementEventMap {
4602
5062
  'list-tickle': GridListTickleEvent;
4603
5063
  }
4604
5064
  type GridListViewportChangeDetail = {
5065
+ readonly renderedKeys: string[];
4605
5066
  readonly visibleKeys: string[];
4606
5067
  };
4607
5068
  type GridListViewportChangeEvent = CustomEvent<GridListViewportChangeDetail>;
@@ -4953,7 +5414,7 @@ declare class TickledController<T = number> implements ReactiveController {
4953
5414
  }
4954
5415
  //#endregion
4955
5416
  //#region src/grid-list/grid-list.d.ts
4956
- declare class GridListElement extends LitElement {
5417
+ declare class GridListElement<T = unknown> extends LitElement {
4957
5418
  #private;
4958
5419
  static styles: CSSResult[];
4959
5420
  selectionMode: ListSelectionMode;
@@ -4987,18 +5448,60 @@ declare class GridListElement extends LitElement {
4987
5448
  */
4988
5449
  captionHeight: number;
4989
5450
  itemWrap: `stop` | `wrap`;
5451
+ /**
5452
+ * Element-mode filter predicate (also driven by incremental filter-search).
5453
+ * Light-DOM items for which it returns `false` are removed from layout and
5454
+ * navigation. For data mode use {@link itemFilterPredicate}.
5455
+ */
5456
+ filterPredicate: ((el: Element) => boolean) | undefined;
5457
+ /**
5458
+ * Data-mode filter predicate. Items for which it returns `false` are removed
5459
+ * from layout and navigation without any element being materialised.
5460
+ */
5461
+ itemFilterPredicate: ((item: T, index: number) => boolean) | undefined;
5462
+ /**
5463
+ * Space-separated subset of `navigate select filter` — limits which
5464
+ * incremental-search modes are offered (as commands and in-popover switches).
5465
+ * Unset ⇒ all three; empty ⇒ search disabled. See `docs/infra-incremental.md`.
5466
+ */
5467
+ searchModes: string | undefined;
5468
+ /**
5469
+ * Data items for data-backed mode. When set along with `itemAdapter`, the
5470
+ * component operates in data mode instead of element mode.
5471
+ */
5472
+ items: readonly T[];
5473
+ /**
5474
+ * Adapter for data-backed mode. When set, the component renders items from
5475
+ * the `items` array using this adapter instead of projecting light-DOM children.
5476
+ */
5477
+ itemAdapter: GridListDataAdapter<T> | undefined;
4990
5478
  private _scrollTop;
4991
5479
  private _scrollLeft;
4992
5480
  private _viewportHeight;
4993
5481
  private _viewportWidth;
4994
- readonly selection: ListSelectionController<Element>;
4995
- readonly tickled: TickledController<Element>;
5482
+ readonly selection: ListSelectionController<string>;
5483
+ readonly tickled: TickledController<string>;
5484
+ /**
5485
+ * Incremental search (navigate / select / filter). Element- or data-backed
5486
+ * depending on the mode; the mode-agnostic surface (`renderField`, `open`,
5487
+ * `close`, `setModes`, …) is the same either way. See `docs/infra-incremental.md`.
5488
+ */
5489
+ search: ListSearchController<unknown>;
5490
+ /** Command registry carrying this grid's `list.search.*` commands. */
5491
+ get registry(): CommandRegistry<unknown> | undefined;
4996
5492
  connectedCallback(): void;
4997
5493
  disconnectedCallback(): void;
4998
5494
  protected firstUpdated(): void;
4999
5495
  protected willUpdate(changed: PropertyValues<this>): void;
5000
5496
  protected updated(changed: PropertyValues<this>): void;
5001
- private _getVisibleItems;
5497
+ /**
5498
+ * Re-read the viewport after an ancestor's visibility/layout changed.
5499
+ * Safe while hidden (zero-sized reads are ignored); forces a repaint of the
5500
+ * virtual window even when the size is unchanged.
5501
+ */
5502
+ refreshLayout(): void;
5503
+ /** Alias of {@link refreshLayout}. */
5504
+ remeasure(): void;
5002
5505
  get count(): number;
5003
5506
  /**
5004
5507
  * Number of cells currently rendered in the shadow DOM. With virtualization
@@ -5007,7 +5510,11 @@ declare class GridListElement extends LitElement {
5007
5510
  */
5008
5511
  get renderedCount(): number;
5009
5512
  get selectedItems(): ReadonlySet<Element>;
5010
- /** The selection as stable `data-key` / `data-value` strings. */
5513
+ /**
5514
+ * The selection as stable `data-key` / `data-value` strings. Auto-assigned
5515
+ * keys for keyless light-DOM items are omitted (they are not a stable contract
5516
+ * for the consumer).
5517
+ */
5011
5518
  get selectedKeys(): ReadonlySet<string>;
5012
5519
  select(item: Element): void;
5013
5520
  selectMany(items: Iterable<Element>): void;
@@ -5024,13 +5531,56 @@ declare class GridListElement extends LitElement {
5024
5531
  addSelectedKeys(keys: Iterable<string>): void;
5025
5532
  /** Remove items by key from the selection. */
5026
5533
  removeSelectedKeys(keys: Iterable<string>): void;
5534
+ /**
5535
+ * Data mode: replace the whole item array. Selection and cursor keep any key
5536
+ * that is still present; keys that vanish are dropped (one `list-select`).
5537
+ * A no-op in element mode.
5538
+ */
5539
+ setItems(items: readonly T[]): void;
5540
+ /**
5541
+ * Data mode: append items to the end. Scroll position, selection and cursor
5542
+ * are untouched; appended items don't play the mid-list `[reflowing]` slide.
5543
+ * A no-op in element mode.
5544
+ */
5545
+ appendItems(items: readonly T[]): void;
5546
+ /**
5547
+ * Data mode: replace the item carrying `key`. A visible cell re-renders in
5548
+ * place (the keyed subtree is kept); an offscreen item shows its new content
5549
+ * when scrolled into view. Scroll and selection are untouched. Unknown keys
5550
+ * are ignored.
5551
+ */
5552
+ updateItem(key: string, item: T): void;
5553
+ /**
5554
+ * Data mode: remove the items carrying these keys. Removed keys are dropped
5555
+ * from selection and cursor (via the `items` change). A no-op in element mode.
5556
+ */
5557
+ removeItems(keys: Iterable<string>): void;
5558
+ /**
5559
+ * Data mode: drop every item. Selection and cursor are reset and one
5560
+ * `list-select` with empty sets is emitted. A no-op in element mode.
5561
+ */
5562
+ clearItems(): void;
5027
5563
  /** Move the cursor to the item with this key and scroll it into view. */
5028
5564
  focusKey(key: string): void;
5029
5565
  /** The key of the item under the cursor, or `undefined`. */
5030
5566
  get tickledKey(): string | undefined;
5567
+ /** Element mode: the light-DOM element carrying `key`, or `undefined`. */
5031
5568
  getItem(key: string): Element | undefined;
5569
+ /** Element mode: the light-DOM element at effective index `index`. */
5032
5570
  getItemByIndex(index: number): Element | undefined;
5571
+ /** Data mode: the data value carrying `key`, or `undefined`. */
5572
+ getData(key: string): T | undefined;
5033
5573
  getKey(item: Element): string | undefined;
5574
+ /**
5575
+ * Keys of items in the rendered window (viewport + overscan) — the priority
5576
+ * set for prefetching. Use {@link visibleKeys} for the strict viewport
5577
+ * intersection. Auto-assigned keyless-item keys are omitted.
5578
+ */
5579
+ renderedKeys(): string[];
5580
+ /**
5581
+ * Keys of items actually intersecting the viewport (no overscan).
5582
+ * Auto-assigned keyless-item keys are omitted.
5583
+ */
5034
5584
  visibleKeys(): string[];
5035
5585
  private _syncItemStates;
5036
5586
  private _dispatch;
@@ -5152,6 +5702,8 @@ declare class PanelElement extends LitElement {
5152
5702
  variant: PanelVariant;
5153
5703
  /** Suppress the titlebar entirely (content-only chrome, e.g. dock tabbed mode). */
5154
5704
  hideTitlebar: boolean;
5705
+ /** Keep the toolbar visible even when the panel is collapsed. */
5706
+ keepToolbar: boolean;
5155
5707
  private _onTitlebarToggle;
5156
5708
  private _onCloseClick;
5157
5709
  protected render(): TemplateResult<1>;
@@ -5216,12 +5768,28 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
5216
5768
  filterPredicate: TreeFilterPredicate | undefined;
5217
5769
  disableKeyboardNavigation: boolean;
5218
5770
  registry: CommandRegistry<unknown> | undefined;
5771
+ /**
5772
+ * Space-separated subset of `navigate select filter` — limits which
5773
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
5774
+ * disabled. See `docs/infra-incremental.md`.
5775
+ */
5776
+ searchModes: string | undefined;
5219
5777
  protected _expandedKeys: Set<string>;
5220
5778
  protected tickled: TickledController<string>;
5221
5779
  protected _focusedDepth: number;
5780
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
5781
+ readonly search: ListSearchController<{
5782
+ node: TreeNode;
5783
+ depth: number;
5784
+ }>;
5222
5785
  willUpdate(changedProps: PropertyValues): void;
5223
5786
  /** True while `node` is a fading ghost row (removed / collapsed, still animating out). */
5224
5787
  protected _isLeaving(node: TreeNode): boolean;
5788
+ /**
5789
+ * True when `filterPredicate` is set and neither `node` nor any descendant
5790
+ * matches — the row should carry the `filtered` class (`display: none`).
5791
+ */
5792
+ protected _isFilteredOut(node: TreeNode, depth: number): boolean;
5225
5793
  updated(changedProps: PropertyValues): void;
5226
5794
  connectedCallback(): void;
5227
5795
  disconnectedCallback(): void;
@@ -5234,6 +5802,10 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
5234
5802
  deselectAll(): void;
5235
5803
  navigateTo(keys: readonly string[]): boolean;
5236
5804
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
5805
+ /** Expand ancestors + move the cursor to `key`, without touching the selection (search "navigate" mode). */
5806
+ revealKey(key: string): boolean;
5807
+ /** Replace the selection with `nodes` (subject to `selectionFilter`) — search "select" mode. */
5808
+ selectMany(nodes: Iterable<TreeNode>): void;
5237
5809
  getNodes(): ReadonlyArray<{
5238
5810
  node: TreeNode;
5239
5811
  depth: number;
@@ -5586,161 +6158,6 @@ declare function setIconFont(fontFamily: string): void;
5586
6158
  declare function getIconFont(): string | undefined;
5587
6159
  declare function svgToDataUri(svg: string): string;
5588
6160
  //#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
6161
  //#region src/interaction/keyed-list.d.ts
5745
6162
  /**
5746
6163
  * Helpers for key-based selection on the Element-flavoured list components
@@ -6204,15 +6621,47 @@ declare global {
6204
6621
  }
6205
6622
  //#endregion
6206
6623
  //#region src/led/led.d.ts
6624
+ type LedMode = `brightness` | `blink` | `pulse`;
6207
6625
  declare class LedElement extends LitElement {
6208
6626
  #private;
6209
6627
  value: number;
6210
6628
  lit: boolean;
6211
6629
  color: string;
6630
+ glow: boolean;
6631
+ /**
6632
+ * Operating mode:
6633
+ * - `brightness` (default): {@link value} sets the LED brightness directly
6634
+ * - `blink`: LED blinks on/off every {@link rate} milliseconds (this mode
6635
+ * is what the legacy `blinking` attribute now selects)
6636
+ * - `pulse`: LED sits unlit until {@link pulse} is called, which fires an
6637
+ * attack/release envelope up to {@link value} and back down
6638
+ */
6639
+ mode: LedMode;
6640
+ /**
6641
+ * Legacy alias for `mode="blink"`. Setting `blinking` switches {@link mode}
6642
+ * to `blink`; clearing it returns to `brightness`.
6643
+ */
6212
6644
  blinking: boolean;
6213
6645
  rate: number;
6646
+ /** Pulse-mode attack time in milliseconds (0 → instant). */
6647
+ attackTime: number;
6648
+ /** Pulse-mode release/decay time in milliseconds (0 → instant). */
6649
+ releaseTime: number;
6650
+ /**
6651
+ * Pulse-mode retrigger behaviour. When set, each {@link pulse} call restarts
6652
+ * the envelope from 0. When unset (default), the attack ramps from wherever
6653
+ * the envelope currently sits, so a retrigger mid-decay is continuous.
6654
+ */
6655
+ pulseRetrigger: boolean;
6214
6656
  willUpdate(changedProperties: Map<string, unknown>): void;
6215
6657
  disconnectedCallback(): void;
6658
+ /**
6659
+ * Pulse-mode trigger: lights the LED to {@link value} using an attack/release
6660
+ * envelope, then decays back to unlit. Calling again restarts the envelope
6661
+ * (from 0 if {@link pulseRetrigger} is set, otherwise from the current level).
6662
+ * No-op unless {@link mode} is `pulse`.
6663
+ */
6664
+ pulse(): void;
6216
6665
  protected render(): TemplateResult<1>;
6217
6666
  static styles: CSSResult;
6218
6667
  }
@@ -6247,6 +6696,16 @@ type MillerItemDblClickDetail = {
6247
6696
  node: TreeNode;
6248
6697
  depth: number;
6249
6698
  };
6699
+ /** Detail for the `rebase` event fired when the view root changes. */
6700
+ type MillerRebaseDetail = {
6701
+ /** The new view root, or `undefined` when the view was restored to the full tree. */
6702
+ viewRoot: TreeNode | undefined;
6703
+ /**
6704
+ * Ancestry chain from the true root down to and including the new view root.
6705
+ * Empty when the view shows the full tree.
6706
+ */
6707
+ path: Array<TreeNode>;
6708
+ };
6250
6709
  /** Detail for the `item-rightclick` event. */
6251
6710
  type MillerItemRightClickDetail = {
6252
6711
  node: TreeNode;
@@ -6264,6 +6723,7 @@ type MillerHeaderClickEvent = CustomEvent<MillerHeaderClickDetail>;
6264
6723
  type MillerItemDblClickEvent = CustomEvent<MillerItemDblClickDetail>;
6265
6724
  type MillerItemRightClickEvent = CustomEvent<MillerItemRightClickDetail>;
6266
6725
  type MillerHeaderRightClickEvent = CustomEvent<MillerHeaderRightClickDetail>;
6726
+ type MillerRebaseEvent = CustomEvent<MillerRebaseDetail>;
6267
6727
  /**
6268
6728
  * A snapshot of all display states for a single item in the miller columns.
6269
6729
  *
@@ -6327,6 +6787,29 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6327
6787
  root: TreeNode | undefined;
6328
6788
  model: TreeDataModel | undefined;
6329
6789
  headers: boolean;
6790
+ /**
6791
+ * When true, the last (rightmost) column grows to fill any remaining
6792
+ * horizontal space in the host. All other columns size to their content
6793
+ * (`max-content`), unless the user has manually resized them.
6794
+ *
6795
+ * When the user clicks into an item in the stretched column and a new
6796
+ * column opens, the previously-last column automatically transitions back
6797
+ * to its content-based width and the new last column stretches instead.
6798
+ * Explicit user-resized widths (via the resize handle) always win over
6799
+ * stretching.
6800
+ */
6801
+ stretchLastColumn: boolean;
6802
+ /**
6803
+ * Alternative node to use as the display root (Finder-style column-view
6804
+ * rebase). When set, column 0 shows this node's children and all depths,
6805
+ * headers, and key paths are relative to it. When `undefined` (default),
6806
+ * the full `root` tree is shown.
6807
+ *
6808
+ * Prefer `rebaseTo()` / `rebaseUp()` over assigning this directly — they
6809
+ * validate the target and report whether the view changed. Assigning a new
6810
+ * `root` (or receiving one via `model`) silently clears the view root.
6811
+ */
6812
+ viewRoot: TreeNode | undefined;
6330
6813
  /**
6331
6814
  * Controls the column-level interaction pattern (how clicks map to column changes).
6332
6815
  * This is distinct from `selectionFilter` (which restricts which node kinds are selectable).
@@ -6342,13 +6825,27 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6342
6825
  */
6343
6826
  loadChildren: LoadChildrenCallback | undefined;
6344
6827
  filterPredicate: TreeFilterPredicate | undefined;
6828
+ /**
6829
+ * Space-separated subset of `navigate select filter` — limits which
6830
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
6831
+ * disabled. See `docs/infra-incremental.md`.
6832
+ */
6833
+ searchModes: string | undefined;
6345
6834
  protected _columns: TreeNode[][];
6346
6835
  protected _loadingDepth: number | undefined;
6347
6836
  protected _selectedByDepth: Map<number, TreeNode>;
6348
6837
  protected _selectedKeys: Set<string>;
6349
6838
  protected _selectedNodes: Set<TreeNode>;
6839
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
6840
+ readonly search: ListSearchController<{
6841
+ node: TreeNode;
6842
+ depth: number;
6843
+ }>;
6844
+ /** Command registry carrying this component's `list.search.*` commands. */
6845
+ get registry(): CommandRegistry<unknown> | undefined;
6350
6846
  tickled: TickledController<string>;
6351
6847
  updated(changedProps: PropertyValues): void;
6848
+ connectedCallback(): void;
6352
6849
  disconnectedCallback(): void;
6353
6850
  getConfig(): MillerConfig;
6354
6851
  setConfig(config: MillerConfig): void;
@@ -6384,17 +6881,41 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
6384
6881
  */
6385
6882
  getSelected(): TreeNode[];
6386
6883
  /**
6387
- * Programmatically navigate to a node by key path.
6884
+ * Programmatically navigate to a node by key path, relative to the current
6885
+ * view root (rebased or full tree).
6388
6886
  */
6389
6887
  navigateTo(keys: readonly string[]): boolean;
6390
6888
  /**
6391
6889
  * Programmatically navigate to the first node (breadth-first) matching a predicate.
6392
6890
  */
6393
6891
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
6892
+ /** Open the columns down to `key` and move the cursor to it, without changing the selection (search "navigate" mode). */
6893
+ revealKey(key: string): boolean;
6894
+ /** Replace the selection with `nodes` (search "select" mode). */
6895
+ selectMany(nodes: Iterable<TreeNode>): void;
6394
6896
  getNodes(): ReadonlyArray<{
6395
6897
  node: TreeNode;
6396
6898
  depth: number;
6397
6899
  }>;
6900
+ /**
6901
+ * Rebase the view to show `target`'s children in column 0 (Finder column-view
6902
+ * behavior on double-click), keeping the full tree in `root`.
6903
+ *
6904
+ * - Pass a `MillerNode` (used as-is) or a key (looked up in the full tree).
6905
+ * - Pass `undefined` to restore the full-tree view.
6906
+ * - Rebasing to the true root is equivalent to restoring the full view.
6907
+ * - Leaves are refused (returns `false`).
6908
+ *
6909
+ * Selection is cleared; all depths, headers, and key paths are relative to
6910
+ * the new view root. Fires a `rebase` event when the view actually changes.
6911
+ * Returns `false` when nothing changed (unknown key, leaf, or same view).
6912
+ */
6913
+ rebaseTo(target: TreeNode | string | undefined): boolean;
6914
+ /**
6915
+ * Rebase one level up from the current view root (no-op at the full tree).
6916
+ * Fires a `rebase` event when the view actually changes.
6917
+ */
6918
+ rebaseUp(): boolean;
6398
6919
  protected renderColumnContent(nodes: TreeNode[], depth: number): TemplateResult | typeof nothing;
6399
6920
  protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
6400
6921
  /**
@@ -6453,6 +6974,7 @@ interface MillerBaseElementEventMap extends TreeComponentEventMap {
6453
6974
  'item-rightclick': CustomEvent<MillerItemRightClickDetail>;
6454
6975
  'header-click': CustomEvent<MillerHeaderClickDetail>;
6455
6976
  'header-rightclick': CustomEvent<MillerHeaderRightClickDetail>;
6977
+ 'rebase': CustomEvent<MillerRebaseDetail>;
6456
6978
  }
6457
6979
  interface MillerBaseElement {
6458
6980
  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 +7060,9 @@ declare class MillerTreeController<T> {
6538
7060
  * Any ancestor `MillerNode`s with unloaded children are populated
6539
7061
  * synchronously before calling `element.navigateTo()`.
6540
7062
  *
7063
+ * Key paths are relative to the element's current view root: when the view
7064
+ * is rebased, only matches at or below the view root can be reached.
7065
+ *
6541
7066
  * Returns `false` if no matching node is found.
6542
7067
  */
6543
7068
  navigateToValue(predicate: (value: T) => boolean): boolean;
@@ -6672,18 +7197,64 @@ declare global {
6672
7197
  //#endregion
6673
7198
  //#region src/panel/panel-group.d.ts
6674
7199
  type PanelGroupOrientation = `horizontal` | `vertical`;
7200
+ interface PanelGroupReorderDetail {
7201
+ readonly fromIndex: number;
7202
+ readonly toIndex: number;
7203
+ readonly panel: PanelElement;
7204
+ }
7205
+ type PanelGroupReorderEvent = CustomEvent<PanelGroupReorderDetail>;
7206
+ interface PanelGroupElementEventMap {
7207
+ reorder: PanelGroupReorderEvent;
7208
+ }
7209
+ /**
7210
+ * Pure helper: nearest gap index for a pointer position along one axis.
7211
+ * `edges` are the [start, end] of each sibling (excluding the drag source),
7212
+ * in DOM order. Returns 0..edges.length.
7213
+ */
7214
+ declare function panelGapIndex(edges: ReadonlyArray<readonly [number, number]>, pos: number): number;
6675
7215
  declare class PanelGroupElement extends LitElement {
6676
7216
  orientation: PanelGroupOrientation;
6677
7217
  variant: PanelVariant;
6678
7218
  toggleInteraction: PanelToggleInteraction;
6679
7219
  collapsible: boolean;
6680
- allowMultiple: boolean;
6681
- gap: string;
7220
+ accordion: boolean;
7221
+ allowReorder: boolean;
7222
+ /** Explicit gap between panels. When unset, `--group-gap` (falling back to `--space-l`) controls the gap. */
7223
+ gap?: string;
6682
7224
  private _panels;
7225
+ private _dragState;
7226
+ private _suppressNextClick;
6683
7227
  private _onPanelToggle;
7228
+ connectedCallback(): void;
7229
+ disconnectedCallback(): void;
6684
7230
  protected firstUpdated(): void;
6685
7231
  protected updated(changed: Map<string, unknown>): void;
6686
7232
  private _propagateAll;
7233
+ private _onSlotChange;
7234
+ private _onClickCapture;
7235
+ private _onKeyDown;
7236
+ /**
7237
+ * Walk composedPath for the nearest ixfx-panel, requiring the press to have
7238
+ * gone through an ixfx-titlebar (titlebar-anywhere drag). Bails when the
7239
+ * path crosses interactive chrome (buttons/links/inputs/toolbar/caret/close)
7240
+ * so those controls always win over dragging.
7241
+ */
7242
+ private _findDragTarget;
7243
+ private _onPointerDown;
7244
+ private _onPointerMove;
7245
+ private _onPointerUp;
7246
+ private _onPointerCancel;
7247
+ private _beginDrag;
7248
+ private _abortDrag;
7249
+ private _endDrag;
7250
+ private _commitDrag;
7251
+ private _createGhost;
7252
+ /**
7253
+ * Nearest panel gap to the pointer, ignoring the drag source.
7254
+ * The perpendicular axis is ignored — the pointer always resolves to a gap.
7255
+ */
7256
+ private _computeGapIndex;
7257
+ private _computeCaretStyle;
6687
7258
  protected render(): TemplateResult<1>;
6688
7259
  static styles: CSSResult;
6689
7260
  }
@@ -6692,6 +7263,9 @@ declare global {
6692
7263
  'ixfx-panel-group': PanelGroupElement;
6693
7264
  }
6694
7265
  }
7266
+ interface PanelGroupElement {
7267
+ addEventListener: (<K extends keyof PanelGroupElementEventMap>(type: K, listener: (this: PanelGroupElement, event: PanelGroupElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
7268
+ }
6695
7269
  //#endregion
6696
7270
  //#region src/plots/colour-map.d.ts
6697
7271
  type ColourMode = `fixed` | `opacity` | `hue` | `saturation` | `lightness` | `scale`;
@@ -6985,6 +7559,7 @@ type PlotHistogramOrientation = `horizontal` | `vertical`;
6985
7559
  * - `none`: no hover feedback.
6986
7560
  */
6987
7561
  type PlotHistogramValueTooltips = `hover` | `inline` | `none`;
7562
+ type PlotHistogramInteractionMode = `inspect` | `select`;
6988
7563
  type PlotHistogramBucketClickDetail = {
6989
7564
  readonly bucketIndex: number;
6990
7565
  readonly valueMin: number;
@@ -7014,15 +7589,37 @@ declare class PlotHistogram extends LitElement {
7014
7589
  tooltipDelay: number;
7015
7590
  /** Max rate (ms) at which an already-shown value display refreshes to match live-changing bucket data. */
7016
7591
  valueUpdateInterval: number;
7592
+ /** Interaction mode: 'inspect' for hover tooltips, 'select' for click-drag selection. */
7593
+ interactionMode: PlotHistogramInteractionMode;
7017
7594
  /** Override to customize the value/frequency label used by the tooltip and overlay text. */
7018
7595
  valueFormat: (valueMin: number, valueMax: number, frequency: number) => string;
7019
7596
  private _width;
7020
7597
  private _height;
7021
7598
  private _hoveredIndex;
7022
7599
  private _inlineOverlayText;
7600
+ private _coloredRangeMin;
7601
+ private _coloredRangeMax;
7602
+ private _selectionStart;
7603
+ private _selectionEnd;
7604
+ private _isDragging;
7605
+ private _selectionOverlayText;
7023
7606
  add(v: number): void;
7024
7607
  set(values: number[]): void;
7025
7608
  clear(): void;
7609
+ setColoredRange(min: number, max: number): void;
7610
+ clearColoredRange(): void;
7611
+ setSelection(startBarIndex: number, endBarIndex: number): void;
7612
+ clearSelection(): void;
7613
+ getSelectedRange(): {
7614
+ barIndices: {
7615
+ start: number;
7616
+ end: number;
7617
+ } | null;
7618
+ dataValues: {
7619
+ min: number;
7620
+ max: number;
7621
+ } | null;
7622
+ };
7026
7623
  protected firstUpdated(_changed: PropertyValues): void;
7027
7624
  protected updated(changed: PropertyValues): void;
7028
7625
  disconnectedCallback(): void;
@@ -8470,5 +9067,5 @@ interface XyPad {
8470
9067
  //#region src/index.d.ts
8471
9068
  declare function init(): void;
8472
9069
  //#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 };
9070
+ 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, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, 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, LedMode, 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, 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, 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, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, pointerOverAnyHost, prefersReducedMotion, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, walk, wrapRoot };
8474
9071
  //# sourceMappingURL=index.d.ts.map