@ixfx/components 0.13.6 → 0.13.8

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.
package/dist/crumbs.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { E as TreeSelectEvent, O as TreeTickleEvent, a as TreeComponent, k as TreeDataModel, n as TreeActivateEvent, o as TreeComponentEventMap, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-Bx40hxMz.js";
1
+ import { A as TreeTickleEvent, O as TreeSelectEvent, a as TreeComponent, j as TreeDataModel, n as TreeActivateEvent, o as TreeComponentEventMap, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-Tslymyyl.js";
2
2
  import { n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-DQ7KOUIj.js";
3
3
  import "./menu-item-bF6narIz.js";
4
4
  import "./index-o-CWDt11.js";
@@ -1,7 +1,7 @@
1
1
  import "./icon-CDGprSdE.js";
2
- import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-Bx40hxMz.js";
2
+ import { B as ListNativeDragStartEvent, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver } from "./tree-component-Tslymyyl.js";
3
3
  import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
4
- import { S as ListSearchController } from "./index-CzFRWPzh.js";
4
+ import { S as ListSearchController } from "./index-CO6m-YC0.js";
5
5
  import "./index-B-hzcIP0.js";
6
6
  import "./pan-text-CoYmt2qd.js";
7
7
  import { LitElement } from "lit";
@@ -1,3 +1,3 @@
1
- import { I as ListDragSource, L as ListNativeDragStartDetail, M as ListDragPreview, N as ListDragPreviewContext, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent, j as ListDragEntry } from "./tree-component-Bx40hxMz.js";
2
- import { A as DataGridEditorFactory, B as GlobalFormatter, C as BuiltInFormatterName, D as DataGridDataType, E as DataGridColumnMenu, F as DataGridInteractionMode, I as DataGridRowLook, L as DataGridSelectionMode, M as DataGridGetRowKey, N as DataGridGroupBy, O as DataGridEditability, P as DataGridGroupLabel, R as DataGridSortDirection, S as DataGridViewportChangeEvent, T as DataGridColumn, _ as DataGridSelectDetail, a as DataGridColumnReorderDetail, b as DataGridSortEvent, c as DataGridColumnResizeEvent, d as DataGridElement, f as DataGridElementEventMap, g as DataGridRowActivateEvent, h as DataGridRowActivateDetail, i as DataGridCellEditEvent, j as DataGridEditorType, k as DataGridEditorContext, l as DataGridColumnVisibilityDetail, m as DataGridGroupChangeEvent, n as DataGridCellClickEvent, o as DataGridColumnReorderEvent, p as DataGridGroupChangeDetail, r as DataGridCellEditDetail, s as DataGridColumnResizeDetail, t as DataGridCellClickDetail, u as DataGridColumnVisibilityEvent, v as DataGridSelectEvent, w as BuiltInFormatterOptions, x as DataGridViewportChangeDetail, y as DataGridSortDetail, z as DataGridSortState } from "./data-grid-CGe1kRMI.js";
1
+ import { B as ListNativeDragStartEvent, F as ListDragPreviewContext, I as ListDragPreviewRenderer, N as ListDragEntry, P as ListDragPreview, R as ListDragSource, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
2
+ import { A as DataGridEditorFactory, B as GlobalFormatter, C as BuiltInFormatterName, D as DataGridDataType, E as DataGridColumnMenu, F as DataGridInteractionMode, I as DataGridRowLook, L as DataGridSelectionMode, M as DataGridGetRowKey, N as DataGridGroupBy, O as DataGridEditability, P as DataGridGroupLabel, R as DataGridSortDirection, S as DataGridViewportChangeEvent, T as DataGridColumn, _ as DataGridSelectDetail, a as DataGridColumnReorderDetail, b as DataGridSortEvent, c as DataGridColumnResizeEvent, d as DataGridElement, f as DataGridElementEventMap, g as DataGridRowActivateEvent, h as DataGridRowActivateDetail, i as DataGridCellEditEvent, j as DataGridEditorType, k as DataGridEditorContext, l as DataGridColumnVisibilityDetail, m as DataGridGroupChangeEvent, n as DataGridCellClickEvent, o as DataGridColumnReorderEvent, p as DataGridGroupChangeDetail, r as DataGridCellEditDetail, s as DataGridColumnResizeDetail, t as DataGridCellClickDetail, u as DataGridColumnVisibilityEvent, v as DataGridSelectEvent, w as BuiltInFormatterOptions, x as DataGridViewportChangeDetail, y as DataGridSortDetail, z as DataGridSortState } from "./data-grid-D7RxYISt.js";
3
3
  export { type BuiltInFormatterName, type BuiltInFormatterOptions, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, type DataGridColumn, type DataGridColumnMenu, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, type DataGridDataType, type DataGridEditability, type DataGridEditorContext, type DataGridEditorFactory, type DataGridEditorType, DataGridElement, DataGridElementEventMap, type DataGridGetRowKey, type DataGridGroupBy, DataGridGroupChangeDetail, DataGridGroupChangeEvent, type DataGridGroupLabel, type DataGridInteractionMode, DataGridRowActivateDetail, DataGridRowActivateEvent, type DataGridRowLook, DataGridSelectDetail, DataGridSelectEvent, type DataGridSelectionMode, DataGridSortDetail, type DataGridSortDirection, DataGridSortEvent, type DataGridSortState, DataGridViewportChangeDetail, DataGridViewportChangeEvent, type GlobalFormatter, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListNativeDragStartDetail, type ListNativeDragStartEvent };
@@ -1,11 +1,11 @@
1
1
  import "./icon-CDGprSdE.js";
2
2
  import { r as IDataProvider } from "./data-provider-BAn_-oR1.js";
3
- import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-Bx40hxMz.js";
3
+ import { B as ListNativeDragStartEvent, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver } from "./tree-component-Tslymyyl.js";
4
4
  import { n as ListViewportChangeEvent } from "./list-viewport-types-BRZsLcvp.js";
5
- import { S as ListSearchController } from "./index-CzFRWPzh.js";
5
+ import { S as ListSearchController } from "./index-CO6m-YC0.js";
6
6
  import { a as ListGroupEventMap, o as ListGroupInfo, s as ListGroupLabel } from "./grouping-CUKgmkMm.js";
7
7
  import { i as ListInteractionMode, l as ListSelectionMode, r as ListElementEventMap } from "./list-selection-types-PjKdhF-a.js";
8
- import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-BohPAS04.js";
8
+ import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-B1Fq06xr.js";
9
9
  import "./list-group-header.js";
10
10
  import { LitElement, PropertyValues } from "lit";
11
11
  import { CommandId, CommandRegistry } from "@clinth/ui-commands";
@@ -1,6 +1,6 @@
1
- import { I as ListDragSource, L as ListNativeDragStartDetail, M as ListDragPreview, N as ListDragPreviewContext, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent, j as ListDragEntry } from "./tree-component-Bx40hxMz.js";
1
+ import { B as ListNativeDragStartEvent, F as ListDragPreviewContext, I as ListDragPreviewRenderer, N as ListDragEntry, P as ListDragPreview, R as ListDragSource, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
2
2
  import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
3
3
  import { i as ListGroupChangeEvent, l as ListGroupToggleDetail, n as ListGroupBy, o as ListGroupInfo, r as ListGroupChangeDetail, s as ListGroupLabel, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
4
- import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-BohPAS04.js";
5
- import { a as DetailSortComparator, i as DetailGroupBy, n as DetailListElementEventMap, o as DetailSortItem, r as DetailFormatter, s as DetailSortMode, t as DetailListElement } from "./detail-list-BhuV3_jF.js";
4
+ import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-B1Fq06xr.js";
5
+ import { a as DetailSortComparator, i as DetailGroupBy, n as DetailListElementEventMap, o as DetailSortItem, r as DetailFormatter, s as DetailSortMode, t as DetailListElement } from "./detail-list-w32XZEgH.js";
6
6
  export { type AddItemOptions, type CustomCheckboxOptions, type DetailFormatter, type DetailGroupBy, DetailListElement, DetailListElementEventMap, type DetailSortComparator, type DetailSortItem, type DetailSortMode, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListGroupBy, type ListGroupChangeDetail, type ListGroupChangeEvent, type ListGroupInfo, type ListGroupLabel, type ListGroupToggleDetail, type ListGroupToggleEvent, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListViewportChangeDetail, type ListViewportChangeEvent };
@@ -1,9 +1,9 @@
1
1
  import "./icon-CDGprSdE.js";
2
- import { k as TreeDataModel } from "./tree-component-Bx40hxMz.js";
2
+ import { j as TreeDataModel } from "./tree-component-Tslymyyl.js";
3
3
  import { o as TreeNode, r as TreeFilterPredicate, t as LoadChildrenCallback } from "./types-DQ7KOUIj.js";
4
4
  import "./crumbs.js";
5
5
  import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
6
- import { r as VerticalListElement } from "./vertical-list-BohPAS04.js";
6
+ import { r as VerticalListElement } from "./vertical-list-B1Fq06xr.js";
7
7
  import { LitElement, PropertyValues } from "lit";
8
8
  //#region src/flat-list/types.d.ts
9
9
  /** How branches and leaves are ordered within one level. */
@@ -1,2 +1,2 @@
1
- import { _ as FlatListSelectEvent, a as FlatListContextMenuDetail, c as FlatListDropEvent, d as FlatListEditCommitDetail, f as FlatListEditCommitEvent, g as FlatListSelectDetail, h as FlatListNavigateEvent, i as FlatListBranchOrder, l as FlatListEditCancelDetail, m as FlatListNavigateDetail, n as FlatListActivateDetail, o as FlatListContextMenuEvent, p as FlatListElementEventMap, r as FlatListActivateEvent, s as FlatListDropDetail, t as FlatListElement, u as FlatListEditCancelEvent } from "./flat-list-C7fmx7ii.js";
1
+ import { _ as FlatListSelectEvent, a as FlatListContextMenuDetail, c as FlatListDropEvent, d as FlatListEditCommitDetail, f as FlatListEditCommitEvent, g as FlatListSelectDetail, h as FlatListNavigateEvent, i as FlatListBranchOrder, l as FlatListEditCancelDetail, m as FlatListNavigateDetail, n as FlatListActivateDetail, o as FlatListContextMenuEvent, p as FlatListElementEventMap, r as FlatListActivateEvent, s as FlatListDropDetail, t as FlatListElement, u as FlatListEditCancelEvent } from "./flat-list-CkRIZCuR.js";
2
2
  export { type FlatListActivateDetail, type FlatListActivateEvent, type FlatListBranchOrder, type FlatListContextMenuDetail, type FlatListContextMenuEvent, type FlatListDropDetail, type FlatListDropEvent, type FlatListEditCancelDetail, type FlatListEditCancelEvent, type FlatListEditCommitDetail, type FlatListEditCommitEvent, FlatListElement, type FlatListElementEventMap, type FlatListNavigateDetail, type FlatListNavigateEvent, type FlatListSelectDetail, type FlatListSelectEvent };
@@ -1,10 +1,10 @@
1
- import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-Bx40hxMz.js";
2
- import { S as ListSearchController } from "./index-CzFRWPzh.js";
1
+ import { B as ListNativeDragStartEvent, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver } from "./tree-component-Tslymyyl.js";
2
+ import { S as ListSearchController } from "./index-CO6m-YC0.js";
3
3
  import "./pan-text-CoYmt2qd.js";
4
4
  import { i as ListGroupChangeEvent, n as ListGroupBy, o as ListGroupInfo, s as ListGroupLabel, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
5
5
  import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
6
6
  import "./list-group-header.js";
7
- import "./list-native-drag-controller-B0xS2Sj4.js";
7
+ import "./list-native-drag-controller-CvXN3NB7.js";
8
8
  import { i as TickledItem, n as TickledController } from "./tickled-controller-DodxD3eQ.js";
9
9
  import { LitElement, PropertyValues, ReactiveController, ReactiveControllerHost, html } from "lit";
10
10
  import { CommandRegistry } from "@clinth/ui-commands";
@@ -1,5 +1,5 @@
1
- import { I as ListDragSource, L as ListNativeDragStartDetail, M as ListDragPreview, N as ListDragPreviewContext, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent, j as ListDragEntry } from "./tree-component-Bx40hxMz.js";
1
+ import { B as ListNativeDragStartEvent, F as ListDragPreviewContext, I as ListDragPreviewRenderer, N as ListDragEntry, P as ListDragPreview, R as ListDragSource, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
2
2
  import { i as ListGroupChangeEvent, l as ListGroupToggleDetail, n as ListGroupBy, o as ListGroupInfo, r as ListGroupChangeDetail, s as ListGroupLabel, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
3
3
  import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
4
- import { _ as GridListTickleDetail, a as GridListCaptionBackdrop, b as GridListViewportChangeEvent, c as GridListDataAdapter, d as GridListItemClickDetail, f as GridListItemClickEvent, g as GridListSelectEvent, h as GridListSelectDetail, i as GridListCaptionAlign, l as GridListElementEventMap, m as GridListOrientation, n as GridListActivateDetail, o as GridListCaptionPosition, p as GridListItemEventDetail, r as GridListActivateEvent, s as GridListCaptionStyle, t as GridListElement, u as GridListFullElementEventMap, v as GridListTickleEvent, y as GridListViewportChangeDetail } from "./grid-list-DqRuaIRk.js";
4
+ import { _ as GridListTickleDetail, a as GridListCaptionBackdrop, b as GridListViewportChangeEvent, c as GridListDataAdapter, d as GridListItemClickDetail, f as GridListItemClickEvent, g as GridListSelectEvent, h as GridListSelectDetail, i as GridListCaptionAlign, l as GridListElementEventMap, m as GridListOrientation, n as GridListActivateDetail, o as GridListCaptionPosition, p as GridListItemEventDetail, r as GridListActivateEvent, s as GridListCaptionStyle, t as GridListElement, u as GridListFullElementEventMap, v as GridListTickleEvent, y as GridListViewportChangeDetail } from "./grid-list-DUvhSoT2.js";
5
5
  export { type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListGroupBy, type ListGroupChangeDetail, type ListGroupChangeEvent, type ListGroupInfo, type ListGroupLabel, type ListGroupToggleDetail, type ListGroupToggleEvent, type ListInteractionMode, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSelectionMode };
@@ -1,2 +1,2 @@
1
- import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CzFRWPzh.js";
1
+ import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CO6m-YC0.js";
2
2
  export { type DataListSearchAdapterOptions, type DataListSearchItem, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, type FuzzySearch, type FuzzySearchOptions, type HighlightOptions, type HighlightTarget, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type RegisterListSearchCommandsOptions, type TreeListSearchAdapterOptions, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createFuzzySearch, createIncrSearch, createTreeListSearchAdapter, listSearchStyles, registerListSearchCommands };
@@ -1,5 +1,5 @@
1
1
  import "./icon-CDGprSdE.js";
2
- import { w as TreeSearchHost } from "./tree-component-Bx40hxMz.js";
2
+ import { E as TreeSearchHost } from "./tree-component-Tslymyyl.js";
3
3
  import { o as TreeNode } from "./types-DQ7KOUIj.js";
4
4
  import { ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
5
5
  import { FzfOptions } from "fzf";
@@ -1,7 +1,7 @@
1
- import { C as TreeItemDblClickEvent, E as TreeSelectEvent, F as ListDragPreviewSourceResolver, L as ListNativeDragStartDetail, O as TreeTickleEvent, P as ListDragPreviewRenderer, _ as TreeDropTarget, a as TreeComponent, c as TreeDragContext, d as TreeDragStartEvent, h as TreeDropEvent, i as TreeCollapseEvent, k as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, s as TreeDndMode, u as TreeDragOverEvent, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-Bx40hxMz.js";
1
+ import { A as TreeTickleEvent, C as TreeItemDblClickEvent, E as TreeSearchHost, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver, O as TreeSelectEvent, _ as TreeDropTarget, a as TreeComponent, c as TreeDragContext, d as TreeDragStartEvent, h as TreeDropEvent, i as TreeCollapseEvent, j as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, s as TreeDndMode, u as TreeDragOverEvent, w as TreeNavigateOptions, x as TreeItemClickEvent, y as TreeExpandEvent, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
2
2
  import { a as TreeItem, i as TreeInteractionMode, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-DQ7KOUIj.js";
3
- import { S as ListSearchController } from "./index-CzFRWPzh.js";
4
- import { t as ListNativeDragController } from "./list-native-drag-controller-B0xS2Sj4.js";
3
+ import { S as ListSearchController } from "./index-CO6m-YC0.js";
4
+ import { t as ListNativeDragController } from "./list-native-drag-controller-CvXN3NB7.js";
5
5
  import { n as TickledController } from "./tickled-controller-DodxD3eQ.js";
6
6
  import { LitElement, PropertyValues, ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
7
7
  import { CommandRegistry } from "@clinth/ui-commands";
@@ -18,14 +18,6 @@ type TreeConfig = {
18
18
  * rows; `on` / `off` force it.
19
19
  */
20
20
  type TreeVirtualize = `auto` | `on` | `off`;
21
- /** How `navigateTo` scrolls its target: edge-align it, or centre it when it is off screen. */
22
- type TreeRevealMode = `edge` | `center-if-hidden`;
23
- type TreeNavigateOptions = {
24
- /** Scroll behaviour for the target row (default `edge`). */
25
- reveal?: TreeRevealMode;
26
- /** Suppress the `select` event this navigation would otherwise fire. */
27
- silent?: boolean;
28
- };
29
21
  declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
30
22
  #private;
31
23
  root: TreeNode | undefined;
@@ -131,6 +123,24 @@ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeS
131
123
  clearSelection(): void;
132
124
  selectAll(): void;
133
125
  deselectAll(): void;
126
+ /**
127
+ * Expand every already-loaded branch in a single update. With `maxDepth`,
128
+ * only branches at depth < `maxDepth` are expanded (the root's children are
129
+ * depth 0), so rows at depth `maxDepth` become visible but stay collapsed.
130
+ *
131
+ * Unloaded (lazy) branches are not fetched — call again once their children
132
+ * have loaded to expand further. Bulk expansion ignores `exclusivity`. Fires
133
+ * one `expand` event per branch that actually opens — none for branches that
134
+ * were already expanded, including ones opened by filter auto-expansion.
135
+ */
136
+ expandAll(maxDepth?: number): void;
137
+ /**
138
+ * Collapse expanded branches in a single update. With `maxDepth`, only
139
+ * branches at depth >= `maxDepth` are collapsed, leaving the tree open down
140
+ * to depth `maxDepth - 1` (`collapseAll(0)` is a full collapse). Fires one
141
+ * `collapse` event per branch that actually closes.
142
+ */
143
+ collapseAll(maxDepth?: number): void;
134
144
  navigateTo(keys: readonly string[], options?: TreeNavigateOptions): boolean;
135
145
  navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
136
146
  /** Expand ancestors + move the cursor to `key`, without touching the selection (search "navigate" mode). */
@@ -342,4 +352,4 @@ declare class TreeDropController implements ReactiveController {
342
352
  hostDisconnected(): void;
343
353
  }
344
354
  //#endregion
345
- export { TreeDropVisibleRow as a, TreeListElement as c, TreeBaseElementEventMap as d, TreeNavigateOptions as f, TreeConfig as h, TreeDropRowInfo as i, TreeCheckboxState as l, TreeVirtualize as m, TreeDropControllerConfig as n, TreeController as o, TreeRevealMode as p, TreeDropResolvedDrag as r, TreeControllerOptions as s, TreeDropController as t, TreeBaseElement as u };
355
+ export { TreeDropVisibleRow as a, TreeListElement as c, TreeBaseElementEventMap as d, TreeVirtualize as f, TreeDropRowInfo as i, TreeCheckboxState as l, TreeDropControllerConfig as n, TreeController as o, TreeConfig as p, TreeDropResolvedDrag as r, TreeControllerOptions as s, TreeDropController as t, TreeBaseElement as u };
package/dist/index.d.ts CHANGED
@@ -7,28 +7,28 @@ import { Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap }
7
7
  import { a as CheckState, c as ItemOrientation, i as CheckedSelectEventMap, n as CheckedSelectChangeDetail, o as CheckedSelectItem, r as CheckedSelectChangeEvent, s as ItemDisplay, t as CheckedSelect } from "./checked-select-CglRukbP.js";
8
8
  import { a as ColourPickerInputEvent, i as ColourPickerEventDetail, n as ColourPicker, o as OklchValue, r as ColourPickerChangeEvent, t as ColourPickerPopup } from "./index-tq6f8007.js";
9
9
  import { t as LabelledRangeInput } from "./index-CoqtMSd9.js";
10
- import { A as TreeDataModelOptions, C as TreeItemDblClickEvent, D as TreeTickleDetail, E as TreeSelectEvent, F as ListDragPreviewSourceResolver, I as ListDragSource, L as ListNativeDragStartDetail, M as ListDragPreview, N as ListDragPreviewContext, O as TreeTickleEvent, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent, S as TreeItemDblClickDetail, T as TreeSelectDetail, _ as TreeDropTarget, a as TreeComponent, b as TreeItemClickDetail, c as TreeDragContext, d as TreeDragStartEvent, f as TreeDropApplyContext, g as TreeDropPosition, h as TreeDropEvent, i as TreeCollapseEvent, j as ListDragEntry, k as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, r as TreeCollapseDetail, s as TreeDndMode, t as TreeActivateDetail, u as TreeDragOverEvent, v as TreeExpandDetail, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-Bx40hxMz.js";
10
+ import { A as TreeTickleEvent, B as ListNativeDragStartEvent, C as TreeItemDblClickEvent, D as TreeSelectDetail, E as TreeSearchHost, F as ListDragPreviewContext, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver, M as TreeDataModelOptions, N as ListDragEntry, O as TreeSelectEvent, P as ListDragPreview, R as ListDragSource, S as TreeItemDblClickDetail, T as TreeRevealMode, _ as TreeDropTarget, a as TreeComponent, b as TreeItemClickDetail, c as TreeDragContext, d as TreeDragStartEvent, f as TreeDropApplyContext, g as TreeDropPosition, h as TreeDropEvent, i as TreeCollapseEvent, j as TreeDataModel, k as TreeTickleDetail, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, r as TreeCollapseDetail, s as TreeDndMode, t as TreeActivateDetail, u as TreeDragOverEvent, v as TreeExpandDetail, w as TreeNavigateOptions, x as TreeItemClickEvent, y as TreeExpandEvent, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
11
11
  import { a as TreeItem, i as TreeInteractionMode, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-DQ7KOUIj.js";
12
- import { a as TreeDropVisibleRow, c as TreeListElement, d as TreeBaseElementEventMap, f as TreeNavigateOptions, h as TreeConfig, i as TreeDropRowInfo, l as TreeCheckboxState, m as TreeVirtualize, n as TreeDropControllerConfig, o as TreeController, p as TreeRevealMode, r as TreeDropResolvedDrag, s as TreeControllerOptions, t as TreeDropController, u as TreeBaseElement } from "./index-AifRs3k9.js";
12
+ import { a as TreeDropVisibleRow, c as TreeListElement, d as TreeBaseElementEventMap, f as TreeVirtualize, i as TreeDropRowInfo, l as TreeCheckboxState, n as TreeDropControllerConfig, o as TreeController, p as TreeConfig, r as TreeDropResolvedDrag, s as TreeControllerOptions, t as TreeDropController, u as TreeBaseElement } from "./index-CSCrK0hR.js";
13
13
  import "./menu-item-bF6narIz.js";
14
14
  import { a as NarrowedTextItem, i as NarrowedTextChangeEvent, n as FuzzySearchResult, o as Orientation, r as NarrowedTextChangeDetail, s as SelectionMode, t as NarrowedTextElement } from "./index-o-CWDt11.js";
15
15
  import { CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent } from "./crumbs.js";
16
16
  import { ConfigEntry, DataDisplayComponent, FormattingOptions, RendererStyle } from "./data-display.js";
17
17
  import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
18
- import { A as DataGridEditorFactory, B as GlobalFormatter, C as BuiltInFormatterName, D as DataGridDataType, E as DataGridColumnMenu, F as DataGridInteractionMode, I as DataGridRowLook, L as DataGridSelectionMode, M as DataGridGetRowKey, N as DataGridGroupBy, O as DataGridEditability, P as DataGridGroupLabel, R as DataGridSortDirection, S as DataGridViewportChangeEvent, T as DataGridColumn, _ as DataGridSelectDetail, a as DataGridColumnReorderDetail, b as DataGridSortEvent, c as DataGridColumnResizeEvent, d as DataGridElement, f as DataGridElementEventMap, g as DataGridRowActivateEvent, h as DataGridRowActivateDetail, i as DataGridCellEditEvent, j as DataGridEditorType, k as DataGridEditorContext, l as DataGridColumnVisibilityDetail, m as DataGridGroupChangeEvent, n as DataGridCellClickEvent, o as DataGridColumnReorderEvent, p as DataGridGroupChangeDetail, r as DataGridCellEditDetail, s as DataGridColumnResizeDetail, t as DataGridCellClickDetail, u as DataGridColumnVisibilityEvent, v as DataGridSelectEvent, w as BuiltInFormatterOptions, x as DataGridViewportChangeDetail, y as DataGridSortDetail, z as DataGridSortState } from "./data-grid-CGe1kRMI.js";
19
- import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CzFRWPzh.js";
18
+ import { A as DataGridEditorFactory, B as GlobalFormatter, C as BuiltInFormatterName, D as DataGridDataType, E as DataGridColumnMenu, F as DataGridInteractionMode, I as DataGridRowLook, L as DataGridSelectionMode, M as DataGridGetRowKey, N as DataGridGroupBy, O as DataGridEditability, P as DataGridGroupLabel, R as DataGridSortDirection, S as DataGridViewportChangeEvent, T as DataGridColumn, _ as DataGridSelectDetail, a as DataGridColumnReorderDetail, b as DataGridSortEvent, c as DataGridColumnResizeEvent, d as DataGridElement, f as DataGridElementEventMap, g as DataGridRowActivateEvent, h as DataGridRowActivateDetail, i as DataGridCellEditEvent, j as DataGridEditorType, k as DataGridEditorContext, l as DataGridColumnVisibilityDetail, m as DataGridGroupChangeEvent, n as DataGridCellClickEvent, o as DataGridColumnReorderEvent, p as DataGridGroupChangeDetail, r as DataGridCellEditDetail, s as DataGridColumnResizeDetail, t as DataGridCellClickDetail, u as DataGridColumnVisibilityEvent, v as DataGridSelectEvent, w as BuiltInFormatterOptions, x as DataGridViewportChangeDetail, y as DataGridSortDetail, z as DataGridSortState } from "./data-grid-D7RxYISt.js";
19
+ import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CO6m-YC0.js";
20
20
  import { t as index_d_exports } from "./index-B-hzcIP0.js";
21
21
  import { n as PanTextMode, t as PanTextElement } from "./pan-text-CoYmt2qd.js";
22
22
  import { a as ListGroupEventMap, c as ListGroupPartition, d as defaultGroupLabel, f as partitionByGroup, h as toggleInSet, i as ListGroupChangeEvent, l as ListGroupToggleDetail, m as toGroupKey, n as ListGroupBy, o as ListGroupInfo, p as resolveGroupKey, r as ListGroupChangeDetail, s as ListGroupLabel, t as EMPTY_GROUP_LABEL, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
23
23
  import { a as ListItemClickDetail, c as ListSelectEvent, d as ListTickleEvent, i as ListInteractionMode, l as ListSelectionMode, n as ListActivateEvent, o as ListItemClickEvent, r as ListElementEventMap, s as ListSelectDetail, t as ListActivateDetail, u as ListTickleDetail } from "./list-selection-types-PjKdhF-a.js";
24
- import { a as ListContextMenuDetail, c as ListDragLeaveEvent, d as ListDropEvent, f as ListEditCancelDetail, h as ListEditCommitEvent, i as VerticalListElementEventMap, l as ListDragOverEvent, m as ListEditCommitDetail, n as CustomCheckboxOptions, o as ListContextMenuEvent, p as ListEditCancelEvent, r as VerticalListElement, s as ListDragLeaveDetail, t as AddItemOptions, u as ListDropDetail } from "./vertical-list-BohPAS04.js";
24
+ import { a as ListContextMenuDetail, c as ListDragLeaveEvent, d as ListDropEvent, f as ListEditCancelDetail, h as ListEditCommitEvent, i as VerticalListElementEventMap, l as ListDragOverEvent, m as ListEditCommitDetail, n as CustomCheckboxOptions, o as ListContextMenuEvent, p as ListEditCancelEvent, r as VerticalListElement, s as ListDragLeaveDetail, t as AddItemOptions, u as ListDropDetail } from "./vertical-list-B1Fq06xr.js";
25
25
  import { a as EditableMode, i as EditableLabelChangeEvent, n as EditableLabel, o as EntryMode, r as EditableLabelChangeDetail, t as DisplayTextLogic } from "./editable-label-rzXkjf1H.js";
26
- import { a as DetailSortComparator, i as DetailGroupBy, n as DetailListElementEventMap, o as DetailSortItem, r as DetailFormatter, s as DetailSortMode, t as DetailListElement } from "./detail-list-BhuV3_jF.js";
26
+ import { a as DetailSortComparator, i as DetailGroupBy, n as DetailListElementEventMap, o as DetailSortItem, r as DetailFormatter, s as DetailSortMode, t as DetailListElement } from "./detail-list-w32XZEgH.js";
27
27
  import { ListGroupHeaderElement } from "./list-group-header.js";
28
- import { _ as FlatListSelectEvent, a as FlatListContextMenuDetail, c as FlatListDropEvent, d as FlatListEditCommitDetail, f as FlatListEditCommitEvent, g as FlatListSelectDetail, h as FlatListNavigateEvent, i as FlatListBranchOrder, l as FlatListEditCancelDetail, m as FlatListNavigateDetail, n as FlatListActivateDetail, o as FlatListContextMenuEvent, p as FlatListElementEventMap, r as FlatListActivateEvent, s as FlatListDropDetail, t as FlatListElement, u as FlatListEditCancelEvent } from "./flat-list-C7fmx7ii.js";
28
+ import { _ as FlatListSelectEvent, a as FlatListContextMenuDetail, c as FlatListDropEvent, d as FlatListEditCommitDetail, f as FlatListEditCommitEvent, g as FlatListSelectDetail, h as FlatListNavigateEvent, i as FlatListBranchOrder, l as FlatListEditCancelDetail, m as FlatListNavigateDetail, n as FlatListActivateDetail, o as FlatListContextMenuEvent, p as FlatListElementEventMap, r as FlatListActivateEvent, s as FlatListDropDetail, t as FlatListElement, u as FlatListEditCancelEvent } from "./flat-list-CkRIZCuR.js";
29
29
  import { FormElement } from "./form.js";
30
- import { A as DragSelectRect, C as TreeKeyboardNavControllerConfig, D as ListSelectionGesture, E as ListSelectionControllerConfig, M as ListDragSelectControllerConfig, O as ListSelectionModes, S as TreeKeyboardNavController, T as ListSelectionController, _ as GridListTickleDetail, a as GridListCaptionBackdrop, b as GridListViewportChangeEvent, c as GridListDataAdapter, d as GridListItemClickDetail, f as GridListItemClickEvent, g as GridListSelectEvent, h as GridListSelectDetail, i as GridListCaptionAlign, j as ListDragSelectController, k as isMultiMode, l as GridListElementEventMap, m as GridListOrientation, n as GridListActivateDetail, o as GridListCaptionPosition, p as GridListItemEventDetail, r as GridListActivateEvent, s as GridListCaptionStyle, t as GridListElement, u as GridListFullElementEventMap, v as GridListTickleEvent, w as TreeKeyboardNavItemId, x as TreeKeyboardNavCallbacks, y as GridListViewportChangeDetail } from "./grid-list-DqRuaIRk.js";
31
- import { n as ListNativeDragControllerConfig, t as ListNativeDragController } from "./list-native-drag-controller-B0xS2Sj4.js";
30
+ import { A as DragSelectRect, C as TreeKeyboardNavControllerConfig, D as ListSelectionGesture, E as ListSelectionControllerConfig, M as ListDragSelectControllerConfig, O as ListSelectionModes, S as TreeKeyboardNavController, T as ListSelectionController, _ as GridListTickleDetail, a as GridListCaptionBackdrop, b as GridListViewportChangeEvent, c as GridListDataAdapter, d as GridListItemClickDetail, f as GridListItemClickEvent, g as GridListSelectEvent, h as GridListSelectDetail, i as GridListCaptionAlign, j as ListDragSelectController, k as isMultiMode, l as GridListElementEventMap, m as GridListOrientation, n as GridListActivateDetail, o as GridListCaptionPosition, p as GridListItemEventDetail, r as GridListActivateEvent, s as GridListCaptionStyle, t as GridListElement, u as GridListFullElementEventMap, v as GridListTickleEvent, w as TreeKeyboardNavItemId, x as TreeKeyboardNavCallbacks, y as GridListViewportChangeDetail } from "./grid-list-DUvhSoT2.js";
31
+ import { n as ListNativeDragControllerConfig, t as ListNativeDragController } from "./list-native-drag-controller-CvXN3NB7.js";
32
32
  import { i as TickledItem, n as TickledController, r as TickledControllerConfig, t as InputMode } from "./tickled-controller-DodxD3eQ.js";
33
33
  import { a as IGroupedSubComponent, c as SubComponentActivateEvent, d as SubComponentItemClickEvent, f as SubComponentSelectDetail, h as SubComponentTickleEvent, i as GroupedSelectEvent, l as SubComponentFactory, m as SubComponentTickleDetail, n as GroupedItemListerElementEventMap, o as IGroupedSubComponentEventMap, p as SubComponentSelectEvent, r as GroupedSelectDetail, s as SubComponentActivateDetail, t as GroupedItemListerElement, u as SubComponentItemClickDetail } from "./grouped-item-lister-DETte0Dh.js";
34
34
  import { a as TitlebarToggleDetail, c as TitlebarVariant, i as TitlebarOrientation, n as TitlebarElement, o as TitlebarToggleEvent, r as TitlebarElementEventMap, s as TitlebarToggleInteraction, t as TitlebarCloseEvent } from "./titlebar-Tqu-VvMU.js";
@@ -2446,6 +2446,8 @@ type MulticolCategoryDefaults = {
2446
2446
  type MulticolCategory = {
2447
2447
  readonly key: string;
2448
2448
  readonly label: string;
2449
+ /** Shown as a tooltip on the column header label. */
2450
+ readonly description?: string;
2449
2451
  readonly children?: readonly MulticolCategory[];
2450
2452
  readonly defaults?: MulticolCategoryDefaults;
2451
2453
  };
@@ -2523,6 +2525,8 @@ declare class MulticolListElement extends LitElement {
2523
2525
  protected updated(changedProperties: Map<string, unknown>): void;
2524
2526
  private _renderColumn;
2525
2527
  private _getCategoryLabel;
2528
+ /** Category description if present, else the default 'Change category' hint. */
2529
+ private _getCategoryTooltip;
2526
2530
  private _onHeaderPointerDown;
2527
2531
  private _onResizePointerDown;
2528
2532
  private _openCategoryPicker;
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import { t as CheckedSelect } from "./checked-select-lDgAQQ7v.js";
27
27
  import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-BCMU7W7R.js";
28
28
  import { LabelledRangeInput } from "./labelled-range-input.js";
29
29
  import { t as collectDataResult } from "./data-provider-35TyWclX.js";
30
- import { a as TreeDataModel, c as pruneDraggedDescendants, i as TreeDropController, n as TreeListElement, o as applyTreeDrop, r as TreeBaseElement, s as dropTargetFor, t as TreeController } from "./tree-BjrfaX7d.js";
30
+ import { a as TreeDataModel, c as pruneDraggedDescendants, i as TreeDropController, n as TreeListElement, o as applyTreeDrop, r as TreeBaseElement, s as dropTargetFor, t as TreeController } from "./tree-9Hs7VxuX.js";
31
31
  import { t as scrollFadeStyles } from "./scroll-fade-Xx28D7mH.js";
32
32
  import { NarrowedTextElement } from "./narrowed-text.js";
33
33
  import { CrumbNavigationElement } from "./crumbs.js";
@@ -3848,7 +3848,7 @@ TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabLi
3848
3848
  //#endregion
3849
3849
  //#region src/dock/dock-panel.ts
3850
3850
  /** Pointer movement threshold before a titlebar press becomes a dock drag. */
3851
- const DRAG_THRESHOLD_PX$3 = 5;
3851
+ const DRAG_THRESHOLD_PX$4 = 5;
3852
3852
  let DockPanelElement = class DockPanelElement extends LitElement {
3853
3853
  constructor(..._args) {
3854
3854
  super(..._args);
@@ -3880,7 +3880,7 @@ let DockPanelElement = class DockPanelElement extends LitElement {
3880
3880
  this._onPointerMove = (event) => {
3881
3881
  if (this._dragPointerId === null || event.pointerId !== this._dragPointerId) return;
3882
3882
  if (!this._dragStarted) {
3883
- if (Math.hypot(event.clientX - this._dragStartX, event.clientY - this._dragStartY) < DRAG_THRESHOLD_PX$3) return;
3883
+ if (Math.hypot(event.clientX - this._dragStartX, event.clientY - this._dragStartY) < DRAG_THRESHOLD_PX$4) return;
3884
3884
  this._dragStarted = true;
3885
3885
  const pointerId = this._dragPointerId;
3886
3886
  this._teardownDragListeners();
@@ -4035,7 +4035,7 @@ DockPanelElement = __decorate([safeCustomElement(`ixfx-dock-panel`)], DockPanelE
4035
4035
  /** Fraction of the leaf rect (from each edge) that forms the split bands. */
4036
4036
  const BAND = .25;
4037
4037
  /** Pointer movement threshold before a press becomes a dock drag (matches tab-list). */
4038
- const DRAG_THRESHOLD_PX$2 = 5;
4038
+ const DRAG_THRESHOLD_PX$3 = 5;
4039
4039
  /** Tolerance (px) when matching a child gutter endpoint to a parent gutter line. */
4040
4040
  const JUNCTION_TOL_PX = 6;
4041
4041
  /** Junction points closer than this merge into one handle (a 4-way cross yields one per side). */
@@ -4152,7 +4152,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4152
4152
  this._onTabDragMove = (event) => {
4153
4153
  const pending = this._tabDragPending;
4154
4154
  if (pending === null || event.pointerId !== pending.pointerId) return;
4155
- if (Math.hypot(event.clientX - pending.startX, event.clientY - pending.startY) < DRAG_THRESHOLD_PX$2) return;
4155
+ if (Math.hypot(event.clientX - pending.startX, event.clientY - pending.startY) < DRAG_THRESHOLD_PX$3) return;
4156
4156
  this._tabDragPending = null;
4157
4157
  this._teardownTabDragListeners();
4158
4158
  this._suppressNextClick();
@@ -5880,6 +5880,16 @@ function createVerticalListAdapter(renderItem, options) {
5880
5880
  });
5881
5881
  return adapter;
5882
5882
  }
5883
+ //#endregion
5884
+ //#region src/hyperbolic-tree/child-preview.ts
5885
+ /** Lucide `arrow-up`. */
5886
+ const upIcon = svg`<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 7-7 7 7"/><path d="M12 19V5"/></svg>`;
5887
+ /** Picks the popover's side for a node anchored at `anchor` in a `width` x `height` host. */
5888
+ function choosePreviewSide(anchor, width, height) {
5889
+ if (anchor.y < height * .25) return `below`;
5890
+ if (anchor.y > height * .75) return `above`;
5891
+ return anchor.x > width / 2 ? `left` : `right`;
5892
+ }
5883
5893
  /**
5884
5894
  * Whether `n` deserves a preview: it has children and at least one of them
5885
5895
  * isn't legible right now — laid out without a label, or not laid out at
@@ -5906,7 +5916,7 @@ function renderChildPreview(preview, handlers) {
5906
5916
  const more = children.length - listed.length;
5907
5917
  return html`
5908
5918
  <div
5909
- class="child-preview ${preview.above ? `above` : `below`}"
5919
+ class="child-preview ${preview.side}"
5910
5920
  part="child-preview"
5911
5921
  role="dialog"
5912
5922
  aria-label=${`Children of ${preview.node.item.label}`}
@@ -5915,7 +5925,17 @@ function renderChildPreview(preview, handlers) {
5915
5925
  @pointerleave=${handlers.onPointerLeave}
5916
5926
  @pointerdown=${(e) => e.stopPropagation()}
5917
5927
  >
5918
- <div class="child-preview-title">${preview.node.item.label}</div>
5928
+ <div class="child-preview-title">
5929
+ ${preview.parent ? html`<button
5930
+ type="button"
5931
+ class="child-preview-up"
5932
+ tabindex="-1"
5933
+ title=${`Up to ${preview.parent.item.label}`}
5934
+ aria-label=${`Up to ${preview.parent.item.label}`}
5935
+ @click=${() => handlers.onPick(preview.parent)}
5936
+ >${upIcon}</button>` : nothing}
5937
+ <span>${preview.node.item.label}</span>
5938
+ </div>
5919
5939
  <ul>
5920
5940
  ${listed.map((child) => html`<li>
5921
5941
  <button type="button" tabindex="-1" @click=${() => handlers.onPick(child)}>${child.item.label}</button>
@@ -5926,9 +5946,11 @@ function renderChildPreview(preview, handlers) {
5926
5946
  `;
5927
5947
  }
5928
5948
  /**
5929
- * Show/hide timing for the preview: shows at once for a qualifying node;
5930
- * otherwise hides after a short grace period, unless the pointer is over the
5931
- * popover itself — so it can travel from the node onto the list.
5949
+ * Show/hide timing for the preview: opens only after the pointer has rested
5950
+ * on a qualifying node for {@link PREVIEW_SHOW_DELAY_MS} (re-checked when the
5951
+ * delay elapses, so a drag in the meantime suppresses it); otherwise hides
5952
+ * after a short grace period, unless the pointer is over the popover itself —
5953
+ * so it can travel from the node onto the list.
5932
5954
  */
5933
5955
  function createChildPreviewTiming(host) {
5934
5956
  let hovered = false;
@@ -5937,7 +5959,11 @@ function createChildPreviewTiming(host) {
5937
5959
  clearTimeout(timer);
5938
5960
  const candidate = host.candidate(id);
5939
5961
  if (candidate !== void 0) {
5940
- host.setPreviewId(candidate);
5962
+ if (candidate === host.currentId()) return;
5963
+ timer = setTimeout(() => {
5964
+ const still = host.candidate(id);
5965
+ if (still !== void 0) host.setPreviewId(still);
5966
+ }, 600);
5941
5967
  return;
5942
5968
  }
5943
5969
  timer = setTimeout(() => {
@@ -6279,6 +6305,7 @@ function isBackground(event) {
6279
6305
  function createGestureHandlers(host) {
6280
6306
  const pointers = /* @__PURE__ */ new Map();
6281
6307
  let pan;
6308
+ let dragged = false;
6282
6309
  let pinch;
6283
6310
  const screenOf = (event) => {
6284
6311
  const rect = host.svgRect();
@@ -6289,11 +6316,13 @@ function createGestureHandlers(host) {
6289
6316
  x: (a.x + b.x) / 2,
6290
6317
  y: (a.y + b.y) / 2
6291
6318
  });
6292
- const startPan = (pointerId, screen) => {
6319
+ const startPan = (pointerId, screen, downClient, armed) => {
6293
6320
  pan = {
6294
6321
  pointerId,
6295
6322
  start: diskOf(screen),
6296
- baseView: host.takeView()
6323
+ baseView: host.takeView(),
6324
+ downClient,
6325
+ armed
6297
6326
  };
6298
6327
  };
6299
6328
  const startPinch = () => {
@@ -6309,14 +6338,21 @@ function createGestureHandlers(host) {
6309
6338
  };
6310
6339
  return {
6311
6340
  onPointerDown(event) {
6312
- if (!isBackground(event)) return;
6341
+ dragged = false;
6342
+ const onBackground = isBackground(event);
6313
6343
  host.focusTree();
6314
6344
  const screen = screenOf(event);
6315
6345
  if (!screen) return;
6316
- event.currentTarget.setPointerCapture?.(event.pointerId);
6346
+ if (onBackground) {
6347
+ event.currentTarget.setPointerCapture?.(event.pointerId);
6348
+ host.onDragStart?.();
6349
+ }
6317
6350
  pointers.set(event.pointerId, screen);
6318
6351
  if (pointers.size === 2 && host.zoomGesturesEnabled()) startPinch();
6319
- else if (pointers.size === 1) startPan(event.pointerId, screen);
6352
+ else if (pointers.size === 1) startPan(event.pointerId, screen, {
6353
+ x: event.clientX,
6354
+ y: event.clientY
6355
+ }, onBackground);
6320
6356
  },
6321
6357
  onPointerMove(event) {
6322
6358
  if (!pointers.has(event.pointerId)) return;
@@ -6337,14 +6373,26 @@ function createGestureHandlers(host) {
6337
6373
  y: mid.y - clampedZoom * pinch.anchor.y
6338
6374
  }
6339
6375
  }));
6340
- } else if (pan && pan.pointerId === event.pointerId) host.setView(panView(pan.baseView, pan.start, diskOf(screen)));
6376
+ } else if (pan && pan.pointerId === event.pointerId) {
6377
+ if (!pan.armed) {
6378
+ if (Math.hypot(event.clientX - pan.downClient.x, event.clientY - pan.downClient.y) < 4) return;
6379
+ pan.armed = true;
6380
+ dragged = true;
6381
+ event.currentTarget.setPointerCapture?.(event.pointerId);
6382
+ host.onDragStart?.();
6383
+ }
6384
+ host.setView(panView(pan.baseView, pan.start, diskOf(screen)));
6385
+ }
6341
6386
  },
6342
6387
  onPointerUp(event) {
6343
6388
  if (!pointers.delete(event.pointerId)) return;
6344
6389
  if (pinch) {
6345
6390
  pinch = void 0;
6346
6391
  const [remaining] = [...pointers.entries()];
6347
- if (remaining) startPan(remaining[0], remaining[1]);
6392
+ if (remaining) startPan(remaining[0], remaining[1], {
6393
+ x: 0,
6394
+ y: 0
6395
+ }, true);
6348
6396
  } else if (pan?.pointerId === event.pointerId) pan = void 0;
6349
6397
  },
6350
6398
  /**
@@ -6363,6 +6411,14 @@ function createGestureHandlers(host) {
6363
6411
  const factor = Math.exp(-delta * (modified ? .01 : .002));
6364
6412
  host.setZoomState(zoomAt(host.zoomState(), screen, factor));
6365
6413
  },
6414
+ /** Whether the view is being dragged right now. */
6415
+ isDragging() {
6416
+ return pan?.armed === true;
6417
+ },
6418
+ /** Whether the last press turned into a drag — so the click that follows it shouldn't count. */
6419
+ wasDragged() {
6420
+ return dragged;
6421
+ },
6366
6422
  /** Forget any in-progress pan (e.g. when a focus change takes over the view). */
6367
6423
  cancel() {
6368
6424
  pan = void 0;
@@ -6565,6 +6621,15 @@ const hyperbolicTreeStyles = css`
6565
6621
  border-radius: var(--radius-m, 6px);
6566
6622
  box-shadow: var(--shadow-m);
6567
6623
  font-size: var(--hyperbolictree-font-size);
6624
+ /* Beside the node, never over it, with the dot level with the popover's middle. */
6625
+ transform: translate(14px, -50%);
6626
+ }
6627
+
6628
+ .child-preview.left {
6629
+ transform: translate(calc(-100% - 14px), -50%);
6630
+ }
6631
+
6632
+ .child-preview.below {
6568
6633
  transform: translate(-50%, 14px);
6569
6634
  }
6570
6635
 
@@ -6573,13 +6638,26 @@ const hyperbolicTreeStyles = css`
6573
6638
  }
6574
6639
 
6575
6640
  .child-preview-title {
6641
+ display: flex;
6642
+ align-items: center;
6643
+ gap: 4px;
6576
6644
  padding: 2px 6px 4px;
6577
6645
  font-weight: 600;
6646
+ }
6647
+
6648
+ .child-preview-title span {
6578
6649
  overflow: hidden;
6579
6650
  text-overflow: ellipsis;
6580
6651
  white-space: nowrap;
6581
6652
  }
6582
6653
 
6654
+ .child-preview button.child-preview-up {
6655
+ display: inline-flex;
6656
+ flex: none;
6657
+ width: auto;
6658
+ padding: 2px;
6659
+ }
6660
+
6583
6661
  .child-preview ul {
6584
6662
  margin: 0;
6585
6663
  padding: 0;
@@ -7535,7 +7613,6 @@ function renderNodeGroup(n, args, transform, content) {
7535
7613
  part="node node-${partToken(key)}"
7536
7614
  style=${weightStyle + branchStyle(id, ctx.branches)}
7537
7615
  transform=${transform}
7538
- @pointerdown=${handlers.onPointerDown}
7539
7616
  @mousedown=${preventMouseDownFocus}
7540
7617
  @click=${(e) => handlers.onClick(n, e)}
7541
7618
  @dblclick=${(e) => handlers.onDblClick(n, e)}
@@ -7657,8 +7734,9 @@ let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitEleme
7657
7734
  candidate: (id) => {
7658
7735
  const nodes = this.#layout().nodes;
7659
7736
  const n = id === void 0 || this.disableChildPreview ? void 0 : nodes.find((v) => v.id === id);
7660
- return n && needsChildPreview(n, nodes, this.#lastLabelIds) ? n.id : void 0;
7737
+ return n && !this.#gestures.isDragging() && needsChildPreview(n, nodes, this.#lastLabelIds) ? n.id : void 0;
7661
7738
  },
7739
+ currentId: () => this._previewId,
7662
7740
  setPreviewId: (id) => {
7663
7741
  this._previewId = id;
7664
7742
  }
@@ -7701,6 +7779,7 @@ let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitEleme
7701
7779
  };
7702
7780
  this.#gestures = createGestureHandlers({
7703
7781
  svgRect: () => this.renderRoot.querySelector(`svg.hyperbolictree`)?.getBoundingClientRect(),
7782
+ onDragStart: () => this.#preview.hide(),
7704
7783
  takeView: () => {
7705
7784
  const view = this.#currentView();
7706
7785
  this.#cancelAnimation();
@@ -8170,10 +8249,6 @@ let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitEleme
8170
8249
  #focusTree() {
8171
8250
  this.renderRoot.querySelector(`svg.hyperbolictree`)?.focus({ preventScroll: true });
8172
8251
  }
8173
- #handleNodePointerDown(event) {
8174
- event.stopPropagation();
8175
- this.#focusTree();
8176
- }
8177
8252
  #pickPreviewChild(child) {
8178
8253
  this.#preview.hide();
8179
8254
  if (this.interactionMode !== `manual`) this.select(child);
@@ -8187,10 +8262,12 @@ let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitEleme
8187
8262
  if (!n) return void 0;
8188
8263
  const { width, height } = this._hostSize;
8189
8264
  const anchor = diskToHostPx(n.position, this.#zoomState(), width || 420, height || 420);
8265
+ const parent = n.parentId === void 0 ? void 0 : nodes.find((v) => v.id === n.parentId)?.node;
8190
8266
  return {
8191
8267
  node: n.node,
8192
8268
  anchor,
8193
- above: anchor.y > (height || 420) / 2
8269
+ side: choosePreviewSide(anchor, width || 420, height || 420),
8270
+ parent
8194
8271
  };
8195
8272
  }
8196
8273
  #nodeContext(nodes, branches) {
@@ -8221,14 +8298,13 @@ let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitEleme
8221
8298
  isPending: (node) => this.#lazy.isPending(node)
8222
8299
  },
8223
8300
  handlers: {
8224
- onPointerDown: (e) => this.#handleNodePointerDown(e),
8225
8301
  onClick: (n, e) => {
8226
8302
  e.stopPropagation();
8227
- this.#handleItemClick(n, e);
8303
+ if (!this.#gestures.wasDragged()) this.#handleItemClick(n, e);
8228
8304
  },
8229
8305
  onDblClick: (n, e) => {
8230
8306
  e.stopPropagation();
8231
- this.#handleItemDblClick(n);
8307
+ if (!this.#gestures.wasDragged()) this.#handleItemDblClick(n);
8232
8308
  },
8233
8309
  onPointerEnter: (id) => this.tickled.handlePointerEnter(id)
8234
8310
  }
@@ -10026,7 +10102,7 @@ let MulticolListElement = class MulticolListElement extends LitElement {
10026
10102
  ><span class="ixfx-handle" data-handle="dotted" data-shape="vertical" part="reorder-handle"></span></span>
10027
10103
  <button
10028
10104
  class="column-label"
10029
- data-tooltip="Change category"
10105
+ data-tooltip=${this._getCategoryTooltip(col.categoryKey)}
10030
10106
  @click=${(e) => {
10031
10107
  e.stopPropagation();
10032
10108
  this._openCategoryPicker(col, e.currentTarget);
@@ -10056,6 +10132,10 @@ let MulticolListElement = class MulticolListElement extends LitElement {
10056
10132
  _getCategoryLabel(key) {
10057
10133
  return this.categories.find((c) => c.key === key)?.label ?? key;
10058
10134
  }
10135
+ /** Category description if present, else the default 'Change category' hint. */
10136
+ _getCategoryTooltip(key) {
10137
+ return this.categories.find((c) => c.key === key)?.description ?? `Change category`;
10138
+ }
10059
10139
  #createController(id, category) {
10060
10140
  return new MulticolColumnController({
10061
10141
  id,
@@ -1,4 +1,4 @@
1
- import { F as ListDragPreviewSourceResolver, I as ListDragSource, L as ListNativeDragStartDetail, N as ListDragPreviewContext, P as ListDragPreviewRenderer, j as ListDragEntry } from "./tree-component-Bx40hxMz.js";
1
+ import { F as ListDragPreviewContext, I as ListDragPreviewRenderer, L as ListDragPreviewSourceResolver, N as ListDragEntry, R as ListDragSource, z as ListNativeDragStartDetail } from "./tree-component-Tslymyyl.js";
2
2
  import { ReactiveController, ReactiveControllerHost } from "lit";
3
3
  //#region src/interaction/list-native-drag-controller.d.ts
4
4
  type ListNativeDragControllerConfig<T> = {