@ixfx/components 0.11.3 → 0.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/bundle/index.d.ts +444 -120
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +2293 -553
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
  7. package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
  8. package/dist/ac-token.d.ts +1 -1
  9. package/dist/{button-CTL45aBl.d.ts → button-BYuf72aR.d.ts} +2 -2
  10. package/dist/{button-CTL45aBl.d.ts.map → button-BYuf72aR.d.ts.map} +1 -1
  11. package/dist/button.d.ts +1 -1
  12. package/dist/colour-picker.d.ts +1 -1
  13. package/dist/crumbs.d.ts +3 -3
  14. package/dist/crumbs.js +1 -1
  15. package/dist/{data-grid-BWrtE8H9.d.ts → data-grid-CPsJBnL4.d.ts} +48 -6
  16. package/dist/data-grid-CPsJBnL4.d.ts.map +1 -0
  17. package/dist/data-grid.d.ts +3 -3
  18. package/dist/data-grid.js +67 -3
  19. package/dist/data-grid.js.map +1 -1
  20. package/dist/{detail-list-DxQZkK-C.d.ts → detail-list-CmdCxddo.d.ts} +22 -5
  21. package/dist/detail-list-CmdCxddo.d.ts.map +1 -0
  22. package/dist/detail-list.d.ts +3 -3
  23. package/dist/detail-list.js +67 -4
  24. package/dist/detail-list.js.map +1 -1
  25. package/dist/{grid-list-k89JpiNy.js → grid-list-3fGhdaFA.js} +92 -7
  26. package/dist/grid-list-3fGhdaFA.js.map +1 -0
  27. package/dist/{grid-list-ChgYpUUq.d.ts → grid-list-D6AfWfwn.d.ts} +27 -4
  28. package/dist/grid-list-D6AfWfwn.d.ts.map +1 -0
  29. package/dist/grid-list.d.ts +2 -2
  30. package/dist/grid-list.js +1 -1
  31. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +2 -2
  32. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts.map → grouped-item-lister-DETte0Dh.d.ts.map} +1 -1
  33. package/dist/grouped-item-lister.d.ts +1 -1
  34. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
  35. package/dist/icon-CDGprSdE.d.ts.map +1 -0
  36. package/dist/icons.d.ts +2 -2
  37. package/dist/incr-search.d.ts +1 -1
  38. package/dist/{index-CHbuPyLL.d.ts → index-CMsmZ6Or.d.ts} +4 -4
  39. package/dist/{index-CHbuPyLL.d.ts.map → index-CMsmZ6Or.d.ts.map} +1 -1
  40. package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -2
  41. package/dist/{index-garxxqgV.d.ts.map → index-CYndvTWH.d.ts.map} +1 -1
  42. package/dist/{index-PjiaGpA5.d.ts → index-CnyoNA6m.d.ts} +4 -4
  43. package/dist/{index-PjiaGpA5.d.ts.map → index-CnyoNA6m.d.ts.map} +1 -1
  44. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
  45. package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
  46. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
  47. package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
  48. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
  49. package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
  50. package/dist/index.d.ts +337 -140
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +2054 -647
  53. package/dist/index.js.map +1 -1
  54. package/dist/item-appearance-BjcMyauw.js +31 -0
  55. package/dist/item-appearance-BjcMyauw.js.map +1 -0
  56. package/dist/{labelled-input-base-hoKGwyKT.js → labelled-input-base-BFa4xlYV.js} +11 -8
  57. package/dist/labelled-input-base-BFa4xlYV.js.map +1 -0
  58. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
  59. package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
  60. package/dist/labelled-radial-input.d.ts +2 -2
  61. package/dist/labelled-radial-input.d.ts.map +1 -1
  62. package/dist/labelled-radial-input.js +1 -1
  63. package/dist/labelled-range-input.d.ts +1 -1
  64. package/dist/labelled-range-input.js +1 -1
  65. package/dist/{labelled-slider-input-CF2RtzgG.js → labelled-slider-input-FdCRi6st.js} +2 -2
  66. package/dist/{labelled-slider-input-CF2RtzgG.js.map → labelled-slider-input-FdCRi6st.js.map} +1 -1
  67. package/dist/labelled-slider-input.d.ts +1 -1
  68. package/dist/labelled-slider-input.js +1 -1
  69. package/dist/{list-native-drag-controller-B9reY4uM.d.ts → list-native-drag-controller-CllsHLxw.d.ts} +2 -2
  70. package/dist/{list-native-drag-controller-B9reY4uM.d.ts.map → list-native-drag-controller-CllsHLxw.d.ts.map} +1 -1
  71. package/dist/{menu-B2Qv3Oiz.js → menu-BHT6HRND.js} +2 -2
  72. package/dist/{menu-B2Qv3Oiz.js.map → menu-BHT6HRND.js.map} +1 -1
  73. package/dist/{menu-item-ZmkXNjek.d.ts → menu-item-DT7bKAIw.d.ts} +4 -2
  74. package/dist/menu-item-DT7bKAIw.d.ts.map +1 -0
  75. package/dist/{menu-item-Woc8jJc1.js → menu-item-JcpHCyF0.js} +30 -6
  76. package/dist/menu-item-JcpHCyF0.js.map +1 -0
  77. package/dist/menu.d.ts +2 -2
  78. package/dist/menu.js +2 -2
  79. package/dist/miller.d.ts +3 -3
  80. package/dist/miller.d.ts.map +1 -1
  81. package/dist/miller.js +18 -2
  82. package/dist/miller.js.map +1 -1
  83. package/dist/panel.d.ts +1 -1
  84. package/dist/range-input.js +8 -2
  85. package/dist/range-input.js.map +1 -1
  86. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
  87. package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
  88. package/dist/split-layout.d.ts +1 -1
  89. package/dist/{tab-list-v8mKX7Fu.d.ts → tab-list-pqfKaVAE.d.ts} +2 -2
  90. package/dist/{tab-list-v8mKX7Fu.d.ts.map → tab-list-pqfKaVAE.d.ts.map} +1 -1
  91. package/dist/tabs.d.ts +1 -1
  92. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -2
  93. package/dist/{titlebar-B5zSTZnF.d.ts.map → titlebar-Tqu-VvMU.d.ts.map} +1 -1
  94. package/dist/titlebar.d.ts +1 -1
  95. package/dist/{tree-component-CMGeqyjZ.d.ts → tree-component-DukLqesg.d.ts} +2 -2
  96. package/dist/{tree-component-CMGeqyjZ.d.ts.map → tree-component-DukLqesg.d.ts.map} +1 -1
  97. package/dist/tree.d.ts +4 -4
  98. package/dist/{types-3Jfcaxvo.d.ts → types-D-kYF16b.d.ts} +21 -1
  99. package/dist/types-D-kYF16b.d.ts.map +1 -0
  100. package/dist/{vertical-list-R25WqAVO.d.ts → vertical-list-DTp-UIUE.d.ts} +26 -3
  101. package/dist/vertical-list-DTp-UIUE.d.ts.map +1 -0
  102. package/dist/vertical-list.d.ts +2 -2
  103. package/dist/vertical-list.js +53 -4
  104. package/dist/vertical-list.js.map +1 -1
  105. package/docs-user/data-grid.md +51 -1
  106. package/docs-user/detail-list.md +46 -0
  107. package/docs-user/grid-list.md +49 -2
  108. package/docs-user/hyperbolic-tree.md +98 -18
  109. package/docs-user/index.json +2 -2
  110. package/docs-user/miller.md +52 -7
  111. package/docs-user/multicol-list.md +1 -0
  112. package/docs-user/vertical-list.md +63 -0
  113. package/package.json +1 -1
  114. package/dist/data-grid-BWrtE8H9.d.ts.map +0 -1
  115. package/dist/detail-list-DxQZkK-C.d.ts.map +0 -1
  116. package/dist/grid-list-ChgYpUUq.d.ts.map +0 -1
  117. package/dist/grid-list-k89JpiNy.js.map +0 -1
  118. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  119. package/dist/labelled-input-base-hoKGwyKT.js.map +0 -1
  120. package/dist/menu-item-Woc8jJc1.js.map +0 -1
  121. package/dist/menu-item-ZmkXNjek.d.ts.map +0 -1
  122. package/dist/types-3Jfcaxvo.d.ts.map +0 -1
  123. package/dist/vertical-list-R25WqAVO.d.ts.map +0 -1
package/bundle/index.d.ts CHANGED
@@ -542,6 +542,7 @@ declare class MenuTrigger extends LitElement {
542
542
  private _isOpen;
543
543
  private _hasMenu;
544
544
  private _hasTriggerSlot;
545
+ private _hasContextTarget;
545
546
  private _triggerBtn;
546
547
  private _popup;
547
548
  private static _count;
@@ -555,6 +556,7 @@ declare class MenuTrigger extends LitElement {
555
556
  private _propagateContext;
556
557
  private _handleSlotChange;
557
558
  private _handleTriggerSlotChange;
559
+ private _handleContextTargetSlotChange;
558
560
  get isOpen(): boolean;
559
561
  openMenu(): void;
560
562
  closeMenu(): void;
@@ -1071,6 +1073,26 @@ type TreeItem = {
1071
1073
  data?: unknown;
1072
1074
  /** Icon name passed to an icon component, if icons are enabled. */
1073
1075
  icon?: string;
1076
+ /**
1077
+ * CSS colour applied to the node's icon, overriding the inherited text
1078
+ * colour. Only meaningful when `icon` is set. Components that render the
1079
+ * icon from `icon` honour this; the rest ignore it.
1080
+ */
1081
+ iconColor?: string;
1082
+ /**
1083
+ * CSS colour applied to the node's label. Inline, so it wins over the
1084
+ * selected/tickled text colours — keep it legible against both, or leave
1085
+ * it unset and let the component's theming handle selection contrast.
1086
+ */
1087
+ textColor?: string;
1088
+ /**
1089
+ * Finder-style badge rendered alongside the label — e.g. a colour-tag chip
1090
+ * or a stack of them. Anything Lit can render (usually a `TemplateResult`),
1091
+ * or a DOM `Node` for the components that build their rows imperatively.
1092
+ * Placement is per-component: thumbnails-style lists put it before the
1093
+ * name, list-style views right-justify it on the same line.
1094
+ */
1095
+ badge?: unknown;
1074
1096
  /** Tooltip text shown on hover. */
1075
1097
  tooltip?: string;
1076
1098
  /** Optional string value, e.g. for use as a command/route. */
@@ -1784,6 +1806,13 @@ declare class CrumbPathElement extends LitElement {
1784
1806
  segmentDragLookup: CrumbSegmentDragLookupFn | undefined;
1785
1807
  /** Interprets drops landing on segments; enables drop targeting when set. */
1786
1808
  parseExternalDrop: CrumbExternalDropParser | undefined;
1809
+ /**
1810
+ * When enabled, navigating up (clicking an earlier real segment) keeps
1811
+ * rendering the segments beyond it as translucent, non-interactive-drag,
1812
+ * click-to-restore "virtual" segments — for as long as the current path
1813
+ * stays a prefix of the deepest path visited. See `#recordHintOnShorten`.
1814
+ */
1815
+ hintPrevious: boolean;
1787
1816
  private _openIdx;
1788
1817
  private _editing;
1789
1818
  private _cachedSiblings;
@@ -1797,6 +1826,8 @@ declare class CrumbPathElement extends LitElement {
1797
1826
  private _dragCumPath;
1798
1827
  /** Cumulative path of the segment currently hovered by an external drag (`.drop-into`). */
1799
1828
  private _dropCumPath;
1829
+ /** Deepest relative-segment path visited, kept so it can be restored via virtual segments. */
1830
+ private _hintSegments;
1800
1831
  protected updated(changedProperties: PropertyValues): void;
1801
1832
  setPath(newPath: string): void;
1802
1833
  getPath(): string;
@@ -1938,6 +1969,27 @@ type DataGridColumn<R = unknown> = {
1938
1969
  formatter?: (value: unknown, row: R, col: DataGridColumn<R>) => unknown;
1939
1970
  };
1940
1971
  type GlobalFormatter = (value: unknown, columnName: string, row: unknown) => unknown;
1972
+ /**
1973
+ * Optional appearance fields a row may carry, honoured only in the column
1974
+ * nominated by the matching grid property (`textColorColumn`, `iconColumn`,
1975
+ * `badgeColumn`). Read off the *row*, not off the nominated column's own
1976
+ * value, so one row can tint just one of its cells:
1977
+ *
1978
+ * ```ts
1979
+ * grid.textColorColumn = 'status';
1980
+ * grid.rows = [{ status: 'failed', statusTextColor: 'crimson' }];
1981
+ * ```
1982
+ */
1983
+ type DataGridRowLook = {
1984
+ /** CSS colour applied to the cell nominated by `textColorColumn`. */
1985
+ textColor?: string;
1986
+ /** Icon content for the cell nominated by `iconColumn` — anything Lit can render. */
1987
+ icon?: unknown;
1988
+ /** CSS colour tinting the row's `icon`. */
1989
+ iconColor?: string;
1990
+ /** Finder-style badge for the cell nominated by `badgeColumn` — anything Lit can render. */
1991
+ badge?: unknown;
1992
+ };
1941
1993
  type DataGridEditability = `disabled` | `manual` | `user` | `immediate`;
1942
1994
  /**
1943
1995
  * How cell text that's too long for its column width is handled.
@@ -2680,6 +2732,20 @@ declare class DataGridElement extends LitElement {
2680
2732
  */
2681
2733
  columnMenu: DataGridColumnMenu;
2682
2734
  globalFormatter?: GlobalFormatter;
2735
+ /**
2736
+ * Key of the column whose cell text takes the row's `textColor` — e.g. a
2737
+ * status column that renders a red "Failed" only on some rows.
2738
+ */
2739
+ textColorColumn: string;
2740
+ /**
2741
+ * Key of the column that renders the row's `icon` (tinted by `iconColor`).
2742
+ */
2743
+ iconColumn: string;
2744
+ /**
2745
+ * Key of the column that renders the row's `badge`, right-justified in the
2746
+ * cell after the cell's own value.
2747
+ */
2748
+ badgeColumn: string;
2683
2749
  /**
2684
2750
  * Predicate used by incremental filter-search (and callable directly). Rows
2685
2751
  * for which it returns `false` are dropped from the flat list — hidden from
@@ -2807,6 +2873,13 @@ declare class DataGridElement extends LitElement {
2807
2873
  stopEdit(): void;
2808
2874
  setColumnFormatter(columnKey: string, formatter: ((value: unknown) => unknown) | BuiltInFormatterName | null, options?: BuiltInFormatterOptions): void;
2809
2875
  private _formatValue;
2876
+ /**
2877
+ * Resolve the per-row appearance for the cell at `colKey`, honouring the
2878
+ * nominated columns. Additive — `col.renderer` / `col.formatter` still own
2879
+ * the cell's value; this only decorates it. Returns all-`undefined` for
2880
+ * every cell when nothing is nominated (the common case).
2881
+ */
2882
+ private _cellLook;
2810
2883
  private _handleCellSecondClick;
2811
2884
  private _commitEdit;
2812
2885
  private _suppressBlurCommit;
@@ -3047,6 +3120,29 @@ declare class VerticalListElement extends LitElement {
3047
3120
  * appended.
3048
3121
  */
3049
3122
  formatter: ((item: unknown, index: number) => unknown) | undefined;
3123
+ /**
3124
+ * Per-item icon for adapter (`items`) mode, prepended to the row — a DOM
3125
+ * `Node` or anything Lit can render (usually a `TemplateResult` wrapping an
3126
+ * `<ixfx-icon>` or an inline SVG). Ignored when the `formatter` returns a
3127
+ * full row element (the formatter then owns the whole row, icon included).
3128
+ */
3129
+ icon: ((item: unknown, index: number) => unknown) | undefined;
3130
+ /**
3131
+ * CSS colour tinting the per-item `icon`. Icons paint from `currentColor`,
3132
+ * so this recolours them. Inline, so it wins over selection styling.
3133
+ */
3134
+ iconColor: ((item: unknown, index: number) => string | undefined) | undefined;
3135
+ /**
3136
+ * CSS colour for the row's text. Inline, so it wins over the selected /
3137
+ * tickled text colours — keep it legible against both.
3138
+ */
3139
+ textColor: ((item: unknown, index: number) => string | undefined) | undefined;
3140
+ /**
3141
+ * Finder-style badge for the row, right-justified after the text — a
3142
+ * `TemplateResult`, a DOM `Node`, or anything Lit can render. The row is
3143
+ * flex, so the badge self-justifies to the trailing edge.
3144
+ */
3145
+ badge: ((item: unknown, index: number) => unknown) | undefined;
3050
3146
  /**
3051
3147
  * Virtualize the list: only the overscanned viewport window exists in the
3052
3148
  * DOM; offscreen rows are recycled through an off-DOM pool as the list
@@ -3252,6 +3348,22 @@ declare class DetailListElement extends LitElement {
3252
3348
  displayProperty: string;
3253
3349
  formatter: DetailFormatter | undefined;
3254
3350
  iconProperty: string;
3351
+ /**
3352
+ * Property on each `items` entry holding a CSS colour for the item's
3353
+ * `<ixfx-icon>`. Only read when `iconProperty` also resolves an icon.
3354
+ */
3355
+ iconColorProperty: string;
3356
+ /**
3357
+ * Property on each `items` entry holding a CSS colour for the item's caption
3358
+ * text. Inline, so it wins over the selected/tickled text colours.
3359
+ */
3360
+ textColorProperty: string;
3361
+ /**
3362
+ * Property on each `items` entry holding a Finder-style badge — a
3363
+ * `TemplateResult`, a DOM `Node`, or anything Lit can render. Rendered
3364
+ * right-justified on the row, after the caption.
3365
+ */
3366
+ badgeProperty: string;
3255
3367
  keyProperty: string;
3256
3368
  filterPredicate: ((el: Element) => boolean) | undefined;
3257
3369
  /**
@@ -3366,6 +3478,7 @@ declare class DetailListElement extends LitElement {
3366
3478
  */
3367
3479
  fitColumnWidth(): Promise<number>;
3368
3480
  private _isCheckable;
3481
+ /** Appends the caption span; returns it so callers can style it per item. */
3369
3482
  private _setLabel;
3370
3483
  private _syncItemStates;
3371
3484
  private _syncCheckboxes;
@@ -5377,6 +5490,29 @@ type GridListDataAdapter<T> = {
5377
5490
  render: (item: T, index: number) => unknown;
5378
5491
  disabled?: (item: T, index: number) => boolean;
5379
5492
  searchableText?: (item: T, index: number) => string;
5493
+ /**
5494
+ * Per-item icon, rendered above `render`'s output inside the cell's content
5495
+ * well. Anything Lit can render — a `TemplateResult` (e.g.
5496
+ * `html`<ixfx-icon name=${...}></ixfx-icon>``), a DOM `Node`, or a string.
5497
+ * Return `undefined` for items without an icon.
5498
+ */
5499
+ icon?: (item: T, index: number) => unknown;
5500
+ /**
5501
+ * CSS colour applied to this item's icon, tinting any `currentColor` glyph.
5502
+ * Ignored when `icon` returns nothing. Inline, so it wins over selection
5503
+ * styling.
5504
+ */
5505
+ iconColor?: (item: T, index: number) => string | undefined;
5506
+ /**
5507
+ * CSS colour applied to this item's caption. Inline, so it wins over the
5508
+ * selected/tickled caption colours — keep it legible against both.
5509
+ */
5510
+ textColor?: (item: T, index: number) => string | undefined;
5511
+ /**
5512
+ * Finder-style badge rendered inline at the head of the caption, before the
5513
+ * filename — anything Lit can render, e.g. a colour-tag chip as inline SVG.
5514
+ */
5515
+ badge?: (item: T, index: number) => unknown;
5380
5516
  };
5381
5517
  /**
5382
5518
  * Common detail for per-item events (activate, click, tickle), key-first in
@@ -6286,6 +6422,92 @@ declare global {
6286
6422
  }
6287
6423
  }
6288
6424
  //#endregion
6425
+ //#region src/hyperbolic-tree/poincare-math.d.ts
6426
+ /** Euclidean norm (`|z|`) of a point. */
6427
+ declare function norm(a: Point): number;
6428
+ /** Clamp a point to stay strictly inside the unit disk (the Poincaré model's boundary is never reached). */
6429
+ declare function clampToDisk(p: Point, maxNorm?: number): Point;
6430
+ /**
6431
+ * Möbius transform that translates `a` to the origin: `(z - a) / (1 - conj(a) * z)`.
6432
+ * A hyperbolic isometry — preserves all pairwise Poincaré distances.
6433
+ */
6434
+ declare function mobiusToOrigin(z: Point, a: Point): Point;
6435
+ /**
6436
+ * Inverse of {@link mobiusToOrigin}: translates the origin back to `a`, i.e.
6437
+ * `(z + a) / (1 + conj(a) * z)`.
6438
+ */
6439
+ declare function mobiusFromOrigin(z: Point, a: Point): Point;
6440
+ /**
6441
+ * Möbius addition (gyrogroup composition) of two disk-translations: the
6442
+ * canonical-space point reached by translating the origin to `a`, then
6443
+ * translating that local frame's origin by `b`.
6444
+ */
6445
+ declare function mobiusAdd(a: Point, b: Point): Point;
6446
+ /** Euclidean Poincaré-disk radius corresponding to hyperbolic distance `d` from the origin. */
6447
+ declare function euclideanRadiusForHyperbolicDistance(d: number): number;
6448
+ /** Hyperbolic distance from the origin corresponding to Euclidean disk radius `r`. */
6449
+ declare function hyperbolicDistanceForEuclideanRadius(r: number): number;
6450
+ /** Hyperbolic (Poincaré) distance between two points in the unit disk. */
6451
+ declare function poincareDistance(p: Point, q: Point): number;
6452
+ /**
6453
+ * Point at parameter `t` (0–1) along the hyperbolic geodesic from `a` to `b`.
6454
+ * `t=0` yields `a`, `t=1` yields `b`; intermediate values move at constant
6455
+ * hyperbolic speed along the geodesic (not the Euclidean straight line).
6456
+ */
6457
+ declare function geodesicInterpolate(a: Point, b: Point, t: number): Point;
6458
+ /**
6459
+ * An orientation-preserving isometry of the Poincaré disk, stored as the
6460
+ * SU(1,1) pair `(a, b)` of the map `z ↦ (a·z + b) / (conj(b)·z + conj(a))`.
6461
+ *
6462
+ * Every disk isometry is a translation *plus a rotation*, and composing two
6463
+ * translations generally yields a rotation too (the hyperbolic "gyration").
6464
+ * Tracking the full map — rather than just "the point that goes to the
6465
+ * origin" — is what keeps a recursively-built local frame correctly oriented.
6466
+ */
6467
+ type DiskIsometry = {
6468
+ readonly a: Point;
6469
+ readonly b: Point;
6470
+ };
6471
+ declare const identityIsometry: DiskIsometry;
6472
+ /** Apply `m` to `z`. */
6473
+ declare function applyIsometry(m: DiskIsometry, z: Point): Point;
6474
+ /** `outer ∘ inner` — apply `inner` first, then `outer`. */
6475
+ declare function composeIsometry(outer: DiskIsometry, inner: DiskIsometry): DiskIsometry;
6476
+ declare function invertIsometry(m: DiskIsometry): DiskIsometry;
6477
+ /** Pure translation carrying the origin to `p` (same map as {@link mobiusFromOrigin}). */
6478
+ declare function translationFromOrigin(p: Point): DiskIsometry;
6479
+ /** `z ↦ e^{iθ}·z`. */
6480
+ declare function rotationIsometry(theta: number): DiskIsometry;
6481
+ /**
6482
+ * The view map that sends canonical point `center` to the origin, then
6483
+ * rotates by `rotation` radians: `z ↦ e^{i·rotation}·mobiusToOrigin(z, center)`.
6484
+ */
6485
+ declare function viewIsometry(center: Point, rotation?: number): DiskIsometry;
6486
+ /** Decompose `m` into the `{ center, rotation }` accepted by {@link viewIsometry}. */
6487
+ declare function decomposeViewIsometry(m: DiskIsometry): {
6488
+ center: Point;
6489
+ rotation: number;
6490
+ };
6491
+ /**
6492
+ * Exact geodesic between `p` and `q`, for rendering: either a straight
6493
+ * segment (when the geodesic is a diameter) or a circular arc orthogonal to
6494
+ * the unit circle. `sweep` follows SVG's `sweep-flag` convention in the
6495
+ * points' own (unflipped) coordinate system; the in-disk segment of an
6496
+ * orthogonal circle is always less than a semicircle, so it's always the
6497
+ * minor arc.
6498
+ */
6499
+ type GeodesicSegment = {
6500
+ readonly kind: `line`;
6501
+ } | {
6502
+ readonly kind: `arc`;
6503
+ readonly center: Point;
6504
+ readonly radius: number;
6505
+ readonly sweep: 0 | 1;
6506
+ };
6507
+ declare function geodesicSegment(p: Point, q: Point): GeodesicSegment;
6508
+ /** SVG path `d` for the geodesic from `p` to `q`, with coordinates multiplied by `scale`. */
6509
+ declare function geodesicPath(p: Point, q: Point, scale?: number): string;
6510
+ //#endregion
6289
6511
  //#region src/hyperbolic-tree/types.d.ts
6290
6512
  /**
6291
6513
  * Pointer/keyboard gesture mapping (subset of `TreeInteractionMode`).
@@ -6301,20 +6523,27 @@ type Point = {
6301
6523
  /** A single node positioned on the Poincaré disk. */
6302
6524
  type HyperbolicLayoutNode = {
6303
6525
  readonly node: TreeNode;
6526
+ /** `node.item.key`. Not necessarily unique if the data repeats keys — use {@link id} for identity. */
6304
6527
  readonly key: string;
6528
+ /**
6529
+ * Layout id derived from the key path from the root — unique even when
6530
+ * `item.key`s repeat across the tree (e.g. `readme.md` in many folders).
6531
+ */
6532
+ readonly id: string;
6305
6533
  /** Absolute depth from the true root (root is depth 0). */
6306
6534
  readonly depth: number;
6307
6535
  /** Tree-graph distance (steps) from the current focus — `0` for the focused node itself. */
6308
6536
  readonly ring: number;
6309
6537
  readonly parentKey: string | undefined;
6538
+ readonly parentId: string | undefined;
6310
6539
  /** Poincaré-disk position with the focus projected to the origin. */
6311
6540
  readonly position: Point;
6312
6541
  /**
6313
6542
  * Angular width (radians) this node was allocated by its parent's
6314
- * partition — root is `2π`. Siblings sharing a narrow wedge (a bushy
6315
- * ancestor elsewhere in the tree, or many siblings at this level) get a
6316
- * small value here; renderers can use it to shrink crowded nodes further
6317
- * than distance-from-focus alone would, so they don't visually overlap.
6543
+ * partition — root is `2π`. Measured in the *parent's canonical local
6544
+ * frame*, not on screen: after refocusing, the same share can look very
6545
+ * different in size. For on-screen crowding use the projected `position`s
6546
+ * (the built-in renderer caps node size by nearest-neighbour distance).
6318
6547
  */
6319
6548
  readonly angularShare: number;
6320
6549
  /** This node's raw `TreeItem.weight`, if set. */
@@ -6331,6 +6560,9 @@ type HyperbolicLayoutNode = {
6331
6560
  type HyperbolicLayoutEdge = {
6332
6561
  readonly fromKey: string;
6333
6562
  readonly toKey: string;
6563
+ /** Layout ids of the endpoints — see {@link HyperbolicLayoutNode.id}. */
6564
+ readonly fromId: string;
6565
+ readonly toId: string;
6334
6566
  readonly from: Point;
6335
6567
  readonly to: Point;
6336
6568
  /**
@@ -6340,7 +6572,10 @@ type HyperbolicLayoutEdge = {
6340
6572
  readonly weightNormalized: number;
6341
6573
  };
6342
6574
  type ComputeHyperbolicLayoutOptions = {
6343
- /** Key of the node to center the view on. Defaults to the true root. */
6575
+ /**
6576
+ * Node to center the view on: a layout id ({@link HyperbolicLayoutNode.id})
6577
+ * or a plain `item.key` (first depth-first match). Defaults to the true root.
6578
+ */
6344
6579
  focusedKey?: string;
6345
6580
  /** Tree-graph steps from the focus to lay out and render. Defaults to unlimited. */
6346
6581
  maxRadius?: number;
@@ -6350,19 +6585,34 @@ type ComputeHyperbolicLayoutOptions = {
6350
6585
  */
6351
6586
  maxDepth?: number;
6352
6587
  /**
6353
- * Project around this canonical-space point instead of the focus node's own
6354
- * canonical position — used mid-animation to interpolate the view smoothly
6355
- * while `focusedKey` (and therefore the visible node set) stays fixed at
6356
- * its final value.
6588
+ * Center the view on this point of the focus's local frame instead of the
6589
+ * focus itself (which is that frame's origin).
6357
6590
  */
6358
6591
  centerOverride?: Point;
6359
6592
  /**
6360
- * Hyperbolic distance placed between each generation. Default `1`.
6593
+ * Full focus-local → screen isometry to project through, taking
6594
+ * precedence over `centerOverride`. Unlike a bare center, this can also
6595
+ * carry a rotation — needed for panning to track the pointer faithfully.
6596
+ * Views are expressed relative to the focus (not the root) so they stay
6597
+ * precise however deep the focus is.
6598
+ */
6599
+ view?: DiskIsometry;
6600
+ /**
6601
+ * Minimum hyperbolic distance placed between each generation (bushy
6602
+ * nodes' children go further, per `siblingSpacing`). Default `1`.
6361
6603
  * Raising it exaggerates the disk's fisheye compression (distant
6362
6604
  * generations crowd the boundary faster, reading as "zooming in" on the
6363
6605
  * focus); lowering it flattens the layout toward a Euclidean-feeling one.
6364
6606
  */
6365
6607
  curvature?: number;
6608
+ /**
6609
+ * Minimum hyperbolic distance between adjacent siblings. Children of a
6610
+ * bushy node are pushed further from it until they're at least this far
6611
+ * apart — so dragging a crowded fan towards the center always spreads it
6612
+ * out (panning can't change hyperbolic distances, only magnify them).
6613
+ * `0` disables it (every child at exactly `curvature`). Default `0.5`.
6614
+ */
6615
+ siblingSpacing?: number;
6366
6616
  };
6367
6617
  type HyperbolicEdgeRenderContext = {
6368
6618
  readonly edge: HyperbolicLayoutEdge;
@@ -6381,6 +6631,15 @@ type HyperbolicFocusDetail = {
6381
6631
  };
6382
6632
  type HyperbolicFocusEvent = CustomEvent<HyperbolicFocusDetail>;
6383
6633
  //#endregion
6634
+ //#region src/hyperbolic-tree/render-utils.d.ts
6635
+ /**
6636
+ * How nodes are drawn:
6637
+ * - `dot` — a filled circle with the label beside it (thinned when crowded).
6638
+ * - `box` — a rectangle containing the label, shrinking with distance from
6639
+ * the focus the way the space itself does.
6640
+ */
6641
+ type HyperbolicNodeShape = `dot` | `box`;
6642
+ //#endregion
6384
6643
  //#region src/hyperbolic-tree/hyperbolictree-list.d.ts
6385
6644
  interface HyperbolicTreeListElementEventMap extends TreeComponentEventMap {
6386
6645
  'select': TreeSelectEvent;
@@ -6399,49 +6658,15 @@ interface HyperbolicTreeListElementEventMap extends TreeComponentEventMap {
6399
6658
  * shared `TreeComponent` interface so existing infrastructure (`TreeDataModel`,
6400
6659
  * `IncrSearchTreeController`, `TreeComponent`-typed code) works unmodified.
6401
6660
  *
6402
- * Differences from `ixfx-tree-list` (deliberate):
6403
- * - **Expand/collapse is reinterpreted as focus change.** Every loaded node is
6404
- * always laid out; clicking a node re-centers the disk on it (an animated
6405
- * Möbius transform of the same fixed layout, not a re-layout). `expand`/
6406
- * `collapse` fire when the new focus is a descendant/ancestor of the
6407
- * previous one, for interop with existing listeners.
6408
- * - **`interactionMode` drops `checked`** — no checkbox affordance at
6409
- * disk-edge node scale.
6410
- * - **`exclusivity` is accepted but ignored** — nothing is independently open.
6411
- * - **`filterPredicate` dims** non-matching nodes instead of hiding them.
6412
- * - Dragging empty disk space pans the view without changing focus or
6413
- * selection — a gesture with no indented-tree analog.
6414
- * - Drag-and-drop and `checkboxRenderer` are out of scope.
6415
- *
6416
- * **Zoom vs. curvature.** `zoom` (default `1`) magnifies the rendered disk
6417
- * around the focus — a post-layout SVG scale, not a re-layout. `curvature`
6418
- * (default `1`) instead changes the layout itself: the hyperbolic distance
6419
- * placed between generations, i.e. how strongly the disk's own compression
6420
- * curves the space. Raising `curvature` crowds distant generations toward
6421
- * the boundary faster (a stronger fisheye) which — unlike `zoom` — also
6422
- * reshapes the relative sizes/spacing of what's near vs. far from the focus,
6423
- * so it reads as "zooming in" on the focus even at `zoom: 1`. Both are also
6424
- * independent of `maxRadius`, which changes how many tree-graph rings get
6425
- * laid out at all.
6426
- *
6427
- * **Weighting.** Set `TreeItem.weight` on any node to influence its visuals.
6428
- * Weight is normalized to `0..1` across the currently-visible node set and
6429
- * exposed as the `--node-weight` CSS custom property on each node's `<g
6430
- * part="node">` (raw value also available as `--node-weight-raw`), and as
6431
- * `--edge-weight` (average of the two endpoints) on each edge's `<path
6432
- * part="edge">`. By default this scales node radius (via `minWeightScale`/
6433
- * `maxWeightScale`), tints node fill toward `--accent`, and thickens edge
6434
- * strokes — override any of that with CSS targeting `::part(dot)`/
6435
- * `::part(edge)`, or the vars themselves.
6436
- *
6437
- * A specific node or edge can be targeted from outside the shadow root by
6438
- * key — each node also exports `node-<key>` and each edge `edge-to-<key>`/
6439
- * `edge-from-<key>` (non-identifier key characters replaced with `-`), e.g.
6440
- * `::part(edge-to-library) { stroke-dasharray: 4 2; }`. (A plain attribute
6441
- * selector like `[data-to="..."]` can't reach across the shadow boundary —
6442
- * those `data-from`/`data-to` attributes are there for JS introspection via
6443
- * `shadowRoot.querySelector`, not CSS from the light DOM.) For anything CSS
6444
- * can't express, use `edgeRenderer` for full custom edges.
6661
+ * Deliberate differences from `ixfx-tree-list`: expand/collapse is
6662
+ * reinterpreted as focus change (`expand`/`collapse` still fire, for
6663
+ * interop); `interactionMode` drops `checked`; `exclusivity` is ignored;
6664
+ * `filterPredicate` dims rather than hides; dragging empty space pans;
6665
+ * drag-and-drop and `checkboxRenderer` are out of scope.
6666
+ *
6667
+ * See `src/hyperbolic-tree/README.md` for zoom vs. curvature, crowded fans,
6668
+ * label legibility, weighting, branch colours, `::part()` targeting and the
6669
+ * full CSS variable list.
6445
6670
  */
6446
6671
  declare class HyperbolicTreeListElement extends LitElement implements TreeComponent, TreeSearchHost {
6447
6672
  #private;
@@ -6471,6 +6696,28 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
6471
6696
  interactionMode: HyperbolicInteractionMode;
6472
6697
  /** Tree-graph steps from the focus to lay out and render. */
6473
6698
  maxRadius: number;
6699
+ /**
6700
+ * How nodes are drawn: `dot` (filled circle, label beside it) or `box`
6701
+ * (a rectangle containing the label, shrinking with distance from focus).
6702
+ * @default 'dot'
6703
+ */
6704
+ nodeShape: HyperbolicNodeShape;
6705
+ /** `box` mode: labels longer than this are truncated with `…`. `0` disables truncation. */
6706
+ boxMaxChars: number;
6707
+ /**
6708
+ * `box` mode: smallest on-screen label size (CSS px) worth drawing. Boxes
6709
+ * whose label would render smaller — or that would overlap a
6710
+ * higher-priority label — are drawn as small text-less markers instead
6711
+ * (hover one to reveal its label).
6712
+ */
6713
+ minLabelSize: number;
6714
+ /**
6715
+ * Tint each top-level branch (each child of the root, and everything under
6716
+ * it) its own hue, like a classic hyperbolic browser — makes it obvious
6717
+ * which subtree a distant node belongs to. Hues are spread evenly around
6718
+ * the colour wheel from `--hyperbolictree-branch-hue-start`.
6719
+ */
6720
+ colorByBranch: boolean;
6474
6721
  /** Base node dot radius, as a fraction of the disk radius (the disk has radius 1). */
6475
6722
  nodeRadius: number;
6476
6723
  /** Nodes whose scaled radius falls below this (same fraction-of-disk-radius units) render without a label. */
@@ -6480,26 +6727,49 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
6480
6727
  /** Radius multiplier applied to a node with `weight` at the high end of the currently-visible range. */
6481
6728
  maxWeightScale: number;
6482
6729
  /**
6483
- * Visual magnification of the rendered disk, centered on the focus — a
6484
- * plain SVG scale applied after layout, distinct from {@link maxRadius}
6485
- * (which changes *how many rings* are laid out, and so how much the
6486
- * Poincaré projection itself compresses distant nodes). `1` is unscaled;
6487
- * `>1` zooms in, `<1` zooms out. Panning (dragging empty disk space) still
6488
- * operates in the same pre-zoom disk coordinates, so it keeps feeling
6489
- * consistent at any zoom level.
6730
+ * Visual (Euclidean) magnification of the rendered disk — a post-layout
6731
+ * scale, distinct from {@link curvature} (which reshapes the layout) and
6732
+ * {@link maxRadius} (how many rings are laid out). Labels stay the same
6733
+ * size on screen, so zooming in spreads crowded labels apart. Zoom
6734
+ * gestures update it; see {@link disableZoomGestures}.
6490
6735
  */
6491
6736
  zoom: number;
6492
6737
  /**
6493
- * Hyperbolic distance placed between each generation — how much the space
6494
- * itself is curved, as distinct from {@link zoom} (a flat post-layout
6495
- * magnification). `1` is the standard Poincaré-disk layout. Raising it
6496
- * pushes each generation further out, so the disk's own `tanh` compression
6497
- * crowds distant generations toward the boundary faster: a stronger
6498
- * fisheye, which reads as "zooming in" on the focus even though `zoom`
6499
- * hasn't changed. Lowering it spreads generations out more evenly,
6500
- * flattening the view toward a Euclidean-feeling layout.
6738
+ * Turn off zoom gestures: trackpad pinch / Ctrl-⌘-wheel (over the tree),
6739
+ * plain wheel (while the tree has keyboard focus), and two-finger touch
6740
+ * pinch. All zoom around the pointer, and update {@link zoom}.
6741
+ */
6742
+ disableZoomGestures: boolean;
6743
+ /**
6744
+ * Turn off radial labels. By default a label runs along its node's
6745
+ * incoming edge (flipped on the left half so it never reads upside-down),
6746
+ * so a fan of siblings only needs room for each label's height, not its
6747
+ * width. Disabled, every label is horizontal.
6748
+ */
6749
+ disableRadialLabels: boolean;
6750
+ /**
6751
+ * Turn off the child preview: hovering (or keyboard-tickling) a node whose
6752
+ * children aren't all legible in the current view — labels culled, or
6753
+ * beyond `maxRadius` — pops up a clickable list of them.
6754
+ */
6755
+ disableChildPreview: boolean;
6756
+ /**
6757
+ * Minimum hyperbolic distance placed between generations — how curved the
6758
+ * space is. Raising it crowds distant generations toward the boundary
6759
+ * faster (a stronger fisheye that reads as "zooming in" on the focus);
6760
+ * lowering it flattens the view toward a Euclidean-feeling layout.
6501
6761
  */
6502
6762
  curvature: number;
6763
+ /**
6764
+ * Minimum hyperbolic distance between adjacent siblings. A bushy node's
6765
+ * children are pushed further out until they're at least this far apart,
6766
+ * so dragging a crowded fan towards the center always spreads it out —
6767
+ * panning can't change hyperbolic distances, only magnify them, so without
6768
+ * this a tightly-packed fan stays packed wherever it's dragged. Larger
6769
+ * values fan out more when inspected, at the cost of pushing crowds further
6770
+ * towards the edge in the overview. `0` disables it.
6771
+ */
6772
+ siblingSpacing: number;
6503
6773
  /** Duration (ms) of the animated re-center on focus change. `0` snaps instantly. */
6504
6774
  focusAnimationDuration: number;
6505
6775
  /** Optional custom renderer for edges, in place of the default geodesic-arc path. */
@@ -6518,17 +6788,37 @@ declare class HyperbolicTreeListElement extends LitElement implements TreeCompon
6518
6788
  searchModes: string | undefined;
6519
6789
  /** The node currently centered on the disk. Pure view-state — `root` is never mutated by focus changes. */
6520
6790
  get focusedNode(): TreeNode | undefined;
6521
- private _focusKey;
6522
- /** Interpolated canonical-space view center while a focus-change animation is in flight; `undefined` when settled. */
6523
- private _animCenter;
6524
- /** Extra pan offset applied on top of the focus center, from dragging empty disk space. */
6525
- private _panOffset;
6791
+ /**
6792
+ * Layout id (see `HyperbolicLayoutNode.id`) of the focused node —
6793
+ * `undefined` means the root. Ids rather than `item.key`s, so data that
6794
+ * repeats keys across branches still focuses the node actually clicked.
6795
+ */
6796
+ private _focusId;
6797
+ /**
6798
+ * Canonical → screen projection overriding the settled "focus at the
6799
+ * center" view — set per-frame while a focus change animates, and by
6800
+ * panning. `undefined` when settled on the focus.
6801
+ */
6802
+ private _viewOverride;
6803
+ /**
6804
+ * Orientation of the settled view (focus at the center). Views are
6805
+ * expressed in the focus's own local frame, and focus changes keep
6806
+ * whatever orientation the tree had when the animation started, so there
6807
+ * is no global "up" to snap back to — and no spin on refocus.
6808
+ */
6809
+ private _focusRotation;
6810
+ /** Pan of the zoomed disk, in screen units — see {@link ZoomState}. */
6811
+ private _zoomOffset;
6812
+ /** Layout id of the node whose children are being previewed. */
6813
+ private _previewId;
6526
6814
  /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
6527
6815
  readonly search: ListSearchController<{
6528
6816
  node: TreeNode;
6529
6817
  depth: number;
6530
6818
  }>;
6531
6819
  private tickled;
6820
+ /** The host's size in CSS px. */
6821
+ private _hostSize;
6532
6822
  connectedCallback(): void;
6533
6823
  disconnectedCallback(): void;
6534
6824
  protected updated(changedProps: PropertyValues): void;
@@ -6582,12 +6872,54 @@ interface HyperbolicTreeListElement {
6582
6872
  //#region src/hyperbolic-tree/layout.d.ts
6583
6873
  type CanonicalEntry = {
6584
6874
  readonly node: TreeNode;
6875
+ /** Path-derived id, unique even when `item.key`s repeat — see {@link hyperbolicChildIds}. */
6876
+ readonly id: string;
6585
6877
  readonly depth: number;
6586
6878
  readonly parentKey: string | undefined;
6879
+ readonly parentId: string | undefined;
6880
+ /**
6881
+ * Root-anchored position. Informational only: every step away from the
6882
+ * root pushes it exponentially closer to the disk boundary, so beyond
6883
+ * ~14 hyperbolic units (e.g. depth 5 at `curvature` 3) it saturates to the
6884
+ * clamp limit and distinct nodes collapse together. Views are built from
6885
+ * {@link toParent} instead — see {@link hyperbolicRelativeFrame}.
6886
+ */
6587
6887
  readonly position: Point;
6888
+ /**
6889
+ * This node's local frame expressed in its parent's local frame — the
6890
+ * single short hop (a translation by one generation) from parent to
6891
+ * child. Identity for the root. Composing these outward from the focus
6892
+ * keeps every visible position precise, however deep the focus sits.
6893
+ */
6894
+ readonly toParent: DiskIsometry;
6588
6895
  /** Angular width (radians) this node's own parent allocated to it — root is `2π`. */
6589
6896
  readonly angularShare: number;
6590
6897
  };
6898
+ /**
6899
+ * Path-derived ids for `children` of the node with id `parentId`. `TreeItem.key`
6900
+ * is meant to be unique, but real data (e.g. a file system, where `readme.md`
6901
+ * recurs in many folders) often only has keys unique among siblings. Keying
6902
+ * the layout on `item.key` alone would silently merge those nodes — edges get
6903
+ * attached to the wrong parent and clicks focus the wrong node — so the
6904
+ * layout identifies nodes by their key path instead. Repeated keys among
6905
+ * siblings are disambiguated by occurrence count. The root's id is its key.
6906
+ */
6907
+ declare function hyperbolicChildIds(parentId: string, children: readonly TreeNode[]): string[];
6908
+ /** Depth (root is 0) of the node with layout id `id`. */
6909
+ declare function hyperbolicIdDepth(id: string): number;
6910
+ /**
6911
+ * Layout id of the root's child that `id` descends from (or is) — i.e. which
6912
+ * top-level branch it belongs to. `undefined` for the root itself.
6913
+ */
6914
+ declare function hyperbolicBranchId(id: string): string | undefined;
6915
+ /** Whether layout id `id` is a strict descendant of `ancestorId`. */
6916
+ declare function isHyperbolicDescendantId(id: string, ancestorId: string): boolean;
6917
+ /** Chain of nodes from `root` down to the node with layout id `id`, or `undefined` if absent. */
6918
+ declare function findHyperbolicPathById(root: TreeNode | undefined, id: string): TreeNode[] | undefined;
6919
+ /** Layout id of `target` (matched by object identity) within `root`, or `undefined` if absent. */
6920
+ declare function findHyperbolicIdOf(root: TreeNode | undefined, target: TreeNode): string | undefined;
6921
+ /** Key path (from the root's children) to the first node, depth-first, satisfying `predicate`. */
6922
+ declare function findHyperbolicKeyPath(nodes: readonly TreeNode[], predicate: (node: TreeNode) => boolean, prefix?: readonly string[]): string[] | undefined;
6591
6923
  /** Depth-first search for the node with `key`. Returns `undefined` when absent. */
6592
6924
  declare function findHyperbolicNode(root: TreeNode | undefined, key: string): TreeNode | undefined;
6593
6925
  /**
@@ -6595,21 +6927,37 @@ declare function findHyperbolicNode(root: TreeNode | undefined, key: string): Tr
6595
6927
  * Returns `undefined` when the key is absent. The first entry is always `root`.
6596
6928
  */
6597
6929
  declare function findHyperbolicPath(root: TreeNode | undefined, key: string): TreeNode[] | undefined;
6930
+ /** Default minimum hyperbolic distance between adjacent siblings. See {@link childDistance}. */
6931
+ declare const DEFAULT_SIBLING_SPACING = 0.5;
6598
6932
  /**
6599
6933
  * Canonical (true-root-anchored) hyperbolic position of every currently-loaded
6600
- * node, keyed by node key. Positions never depend on the current focus —
6934
+ * node, keyed by layout id (see {@link hyperbolicChildIds}). Positions never depend on the current focus —
6601
6935
  * refocusing is purely a Möbius re-projection of these fixed coordinates, so
6602
6936
  * the tree never needs to be re-laid-out when the focus changes.
6603
6937
  *
6604
6938
  * Each node holds an angular wedge — inherited from its parent, expressed in
6605
6939
  * its *own* local frame (root starts with the full `[-π, π]`) — across which
6606
- * its children are placed at hyperbolic distance `curvature` (default `1`).
6607
- * That wedge is partitioned among the children, weighted by each child's own
6940
+ * its children are placed at hyperbolic distance of at least `curvature`
6941
+ * (default `1`) — further for a thin slice, per `siblingSpacing` (see
6942
+ * {@link childDistance}).
6943
+ * That wedge is partitioned among the children, weighted by √ of each child's own
6608
6944
  * subtree size rather than split evenly, and each child's own share is
6609
6945
  * carried into its local frame via {@link boundaryAngleInLocalFrame} before
6610
- * recursing. This is a strict partition (slices never overlap and always sum
6611
- * to the parent's own wedge), which is what guarantees sibling subtrees never
6612
- * spatially cross regardless of how deep or bushy they are.
6946
+ * recursing. This is a strict partition, and each child's wedge region
6947
+ * (bounded by geodesic rays to the same two ideal boundary points as its
6948
+ * slice) nests inside its parent's, which is what guarantees sibling
6949
+ * subtrees never spatially cross regardless of how deep or bushy they are.
6950
+ *
6951
+ * Every node's local frame is tracked as a full {@link DiskIsometry}
6952
+ * (local → canonical), built by composing its parent's frame with the
6953
+ * translation to the child. Composing Möbius translations introduces a
6954
+ * rotation (gyration); dropping it — i.e. assuming a node's frame is simply
6955
+ * `mobiusToOrigin(·, position)` — makes every wedge from depth 3 onward
6956
+ * point in a subtly wrong direction, so subtrees cross each other.
6957
+ *
6958
+ * A wedge wider than π is narrowed to π (around the same bisector) before
6959
+ * the child recurses into it: a near-full-circle wedge would otherwise fan
6960
+ * that child's own children back around towards — and across — its parent.
6613
6961
  *
6614
6962
  * `curvature` scales how far apart (in hyperbolic distance) each generation
6615
6963
  * sits. Raising it pushes each generation further out, so the Poincaré
@@ -6618,58 +6966,34 @@ declare function findHyperbolicPath(root: TreeNode | undefined, key: string): Tr
6618
6966
  * in" on the focus. Lowering it spreads generations out more evenly,
6619
6967
  * flattening the view toward a Euclidean-feeling layout.
6620
6968
  */
6621
- declare function computeCanonicalPositions(root: TreeNode | undefined, maxDepth?: number, curvature?: number): Map<string, CanonicalEntry>;
6969
+ declare function computeCanonicalPositions(root: TreeNode | undefined, maxDepth?: number, curvature?: number, siblingSpacing?: number): Map<string, CanonicalEntry>;
6970
+ /**
6971
+ * The frame of node `toId` expressed in node `fromId`'s local frame (maps
6972
+ * `toId`-local coordinates to `fromId`-local ones), composed along the tree
6973
+ * path between them via their lowest common ancestor. Used to hand a view
6974
+ * over from one focus to another without passing through root-anchored
6975
+ * coordinates. `undefined` if either id is absent.
6976
+ */
6977
+ declare function hyperbolicRelativeFrame(entries: ReadonlyMap<string, CanonicalEntry>, fromId: string, toId: string): DiskIsometry | undefined;
6622
6978
  /**
6623
6979
  * Compute the visible nodes/edges of a hyperbolic tree view: every
6624
6980
  * currently-loaded node within `maxRadius` tree-graph steps of the focused
6625
6981
  * node, projected onto the Poincaré disk with the focus at its center.
6626
6982
  *
6627
6983
  * @param root True tree root. `undefined` yields an empty layout.
6628
- * @param options `focusedKey` (default the true root; unknown keys fall back
6629
- * to the true root), `maxRadius` (default unlimited), `maxDepth` (safety
6630
- * cap on canonical-position recursion depth, default 24), `centerOverride`
6631
- * (project around this canonical-space point instead of the focus node's
6632
- * own position — used to animate smoothly between foci).
6984
+ * @param options `focusedKey` (a layout id or plain `item.key`; default the
6985
+ * true root; unknown keys fall back to the true root), `maxRadius` (default unlimited), `maxDepth` (safety
6986
+ * cap on layout recursion depth, default 24), `curvature`,
6987
+ * `siblingSpacing`, `centerOverride` (put this point of the focus's local
6988
+ * frame at the center instead of the focus itself), `view` (a full
6989
+ * focus-local → screen isometry, taking precedence over `centerOverride` —
6990
+ * used for panning and animation, which also rotate).
6633
6991
  */
6634
6992
  declare function computeHyperbolicLayout(root: TreeNode | undefined, options?: ComputeHyperbolicLayoutOptions): {
6635
6993
  nodes: HyperbolicLayoutNode[];
6636
6994
  edges: HyperbolicLayoutEdge[];
6637
6995
  };
6638
6996
  //#endregion
6639
- //#region src/hyperbolic-tree/poincare-math.d.ts
6640
- /** Euclidean norm (`|z|`) of a point. */
6641
- declare function norm(a: Point): number;
6642
- /** Clamp a point to stay strictly inside the unit disk (the Poincaré model's boundary is never reached). */
6643
- declare function clampToDisk(p: Point, maxNorm?: number): Point;
6644
- /**
6645
- * Möbius transform that translates `a` to the origin: `(z - a) / (1 - conj(a) * z)`.
6646
- * A hyperbolic isometry — preserves all pairwise Poincaré distances.
6647
- */
6648
- declare function mobiusToOrigin(z: Point, a: Point): Point;
6649
- /**
6650
- * Inverse of {@link mobiusToOrigin}: translates the origin back to `a`, i.e.
6651
- * `(z + a) / (1 + conj(a) * z)`.
6652
- */
6653
- declare function mobiusFromOrigin(z: Point, a: Point): Point;
6654
- /**
6655
- * Möbius addition (gyrogroup composition) of two disk-translations: the
6656
- * canonical-space point reached by translating the origin to `a`, then
6657
- * translating that local frame's origin by `b`.
6658
- */
6659
- declare function mobiusAdd(a: Point, b: Point): Point;
6660
- /** Euclidean Poincaré-disk radius corresponding to hyperbolic distance `d` from the origin. */
6661
- declare function euclideanRadiusForHyperbolicDistance(d: number): number;
6662
- /** Hyperbolic distance from the origin corresponding to Euclidean disk radius `r`. */
6663
- declare function hyperbolicDistanceForEuclideanRadius(r: number): number;
6664
- /** Hyperbolic (Poincaré) distance between two points in the unit disk. */
6665
- declare function poincareDistance(p: Point, q: Point): number;
6666
- /**
6667
- * Point at parameter `t` (0–1) along the hyperbolic geodesic from `a` to `b`.
6668
- * `t=0` yields `a`, `t=1` yields `b`; intermediate values move at constant
6669
- * hyperbolic speed along the geodesic (not the Euclidean straight line).
6670
- */
6671
- declare function geodesicInterpolate(a: Point, b: Point, t: number): Point;
6672
- //#endregion
6673
6997
  //#region src/icicle-tree/types.d.ts
6674
6998
  /**
6675
6999
  * Weight accessor — returns the area share of `item` within its siblings.
@@ -10339,5 +10663,5 @@ interface XyPad {
10339
10663
  //#region src/index.d.ts
10340
10664
  declare function init(): void;
10341
10665
  //#endregion
10342
- 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, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, type BuiltInFormatterName, type BuiltInFormatterOptions, ButtonElement, ButtonElementEventMap, ButtonToggleDetail, ButtonToggleEvent, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, type ComputeHyperbolicLayoutOptions, ComputeIcicleLayoutOptions, type ComputeTreemapLayoutOptions, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbDragStartDetail, CrumbDragStartEvent, CrumbDropDetail, CrumbDropEvent, CrumbExternalDropParser, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSegmentDragData, CrumbSegmentDragLookupFn, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, type DataGridColumn, type DataGridColumnMenu, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, type DataGridDataType, type DataGridEditability, type DataGridEditorContext, type DataGridEditorFactory, type DataGridEditorType, DataGridElement, DataGridElementEventMap, type DataGridGetRowKey, type DataGridGroupBy, DataGridGroupChangeDetail, DataGridGroupChangeEvent, type DataGridGroupLabel, type DataGridInteractionMode, DataGridRowActivateDetail, DataGridRowActivateEvent, DataGridSelectDetail, DataGridSelectEvent, type DataGridSelectionMode, DataGridSortDetail, type DataGridSortDirection, DataGridSortEvent, type DataGridSortState, DataGridViewportChangeDetail, DataGridViewportChangeEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, DetailListElementEventMap, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafPlacementPolicy, DockLeafPlacementPolicyResolved, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, type DragSelectRect, 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 GlobalFormatter, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, type HyperbolicEdgeRenderContext, type HyperbolicEdgeRenderer, type HyperbolicFocusDetail, type HyperbolicFocusEvent, type HyperbolicInteractionMode, type HyperbolicLayoutEdge, type HyperbolicLayoutNode, type Point as HyperbolicPoint, HyperbolicTreeListElement, HyperbolicTreeListElementEventMap, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, IcicleInteractionMode, IcicleOrientation, IcicleRect, IcicleTreeListElement, IcicleTreeListElementEventMap, IcicleValueAccessor, IcicleZoomDetail, IcicleZoomEvent, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, 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 ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragPreviewSourceResolver, ListDragSelectController, type ListDragSelectControllerConfig, type ListDragSource, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListItemOutResult, ListNativeDragController, type ListNativeDragControllerConfig, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, type ListViewportChangeDetail, type ListViewportChangeEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, type MulticolCategory, type MulticolColumnState, MulticolColumnsChangeDetail, MulticolColumnsChangeEvent, type MulticolColumnsChangeReason, type MulticolItem, MulticolListElement, MulticolListElementEventMap, type MulticolQuery, type MulticolSelectDetail, MulticolSelectEvent, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanTextMode, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupElementEventMap, PanelGroupOrientation, PanelGroupReorderDetail, PanelGroupReorderEvent, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramInteractionMode, PlotHistogramOrientation, PlotHistogramSelectionChangeDetail, PlotHistogramSelectionChangeEvent, PlotHistogramSelectionRange, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, type RegisterListSearchCommandsOptions, RendererStyle, ResizeMode, SegmentIconLookupFn, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, ShapefillDisplay, ShapefillFillMode, ShapefillValueChangeDetail, ShapefillValueChangeEvent, ShapefillValueElement, ShapefillValueInputDetail, ShapefillValueInputEvent, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, type SortDirection, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarElementEventMap, ToolbarGroupElement, ToolbarGroupReorderDetail, ToolbarGroupReorderEvent, ToolbarLayout, ToolbarLayoutSnapshot, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeDndMode, TreeDragContext, TreeDragEndEvent, TreeDragOverEvent, TreeDragStartEvent, TreeDropApplyContext, TreeDropContext, TreeDropController, TreeDropControllerConfig, TreeDropDetail, TreeDropEvent, TreeDropPosition, TreeDropResolvedDrag, TreeDropTarget, TreeDropVisibleRow, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeSearchHost, TreeSelectionFilter, type TreemapInteractionMode, TreemapListElement, TreemapListElementEventMap, type TreemapRect, type TreemapTilingMethod, type TreemapValueAccessor, TreemapZoomDetail, TreemapZoomEvent, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, VerticalListElementEventMap, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clampToDisk, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findHyperbolicNode, findHyperbolicPath, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, geodesicInterpolate, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hyperbolicDistanceForEuclideanRadius, iconBus, init, insertBeside, isDragging, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, norm, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, poincareDistance, pointerOverAnyHost, prefersReducedMotion, preserveRestoreWeights, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, walk, wrapRoot };
10666
+ 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, BottomDrawerCloseEvent, BottomDrawerCommand, BottomDrawerElement, BottomDrawerElementEventMap, BottomDrawerResizeDetail, BottomDrawerResizeEvent, type BuiltInFormatterName, type BuiltInFormatterOptions, ButtonElement, ButtonElementEventMap, ButtonToggleDetail, ButtonToggleEvent, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, type ComputeHyperbolicLayoutOptions, ComputeIcicleLayoutOptions, type ComputeTreemapLayoutOptions, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbDragStartDetail, CrumbDragStartEvent, CrumbDropDetail, CrumbDropEvent, CrumbExternalDropParser, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSegmentDragData, CrumbSegmentDragLookupFn, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DEFAULT_SIBLING_SPACING, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, type DataGridColumn, type DataGridColumnMenu, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, type DataGridDataType, type DataGridEditability, type DataGridEditorContext, type DataGridEditorFactory, type DataGridEditorType, DataGridElement, DataGridElementEventMap, type DataGridGetRowKey, type DataGridGroupBy, DataGridGroupChangeDetail, DataGridGroupChangeEvent, type DataGridGroupLabel, type DataGridInteractionMode, DataGridRowActivateDetail, DataGridRowActivateEvent, type DataGridRowLook, DataGridSelectDetail, DataGridSelectEvent, type DataGridSelectionMode, DataGridSortDetail, type DataGridSortDirection, DataGridSortEvent, type DataGridSortState, DataGridViewportChangeDetail, DataGridViewportChangeEvent, type DataListSearchAdapterOptions, type DataListSearchItem, DataProviderResult, DataTableElement, DataTableElementEventMap, DataTableRow, DataTableRowClickDetail, DataTableRowClickEvent, type DetailFormatter, DetailListElement, DetailListElementEventMap, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DiskIsometry, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafPlacementPolicy, DockLeafPlacementPolicyResolved, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, type DragSelectRect, 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, GeodesicSegment, type GlobalFormatter, type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewportChangeDetail, type GridListViewportChangeEvent, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, type HyperbolicEdgeRenderContext, type HyperbolicEdgeRenderer, type HyperbolicFocusDetail, type HyperbolicFocusEvent, type HyperbolicInteractionMode, type HyperbolicLayoutEdge, type HyperbolicLayoutNode, type HyperbolicNodeShape, type Point as HyperbolicPoint, HyperbolicTreeListElement, HyperbolicTreeListElementEventMap, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, IcicleInteractionMode, IcicleOrientation, IcicleRect, IcicleTreeListElement, IcicleTreeListElementEventMap, IcicleValueAccessor, IcicleZoomDetail, IcicleZoomEvent, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, type InputMode, 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 ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragPreviewSourceResolver, ListDragSelectController, type ListDragSelectControllerConfig, type ListDragSource, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListItemMotionOptions, type ListItemOutResult, ListNativeDragController, type ListNativeDragControllerConfig, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type ListSelectDetail, type ListSelectEvent, ListSelectionController, type ListSelectionControllerConfig, type ListSelectionGesture, type ListSelectionMode, type ListSelectionModes, type ListTickleDetail, type ListTickleEvent, type ListViewportChangeDetail, type ListViewportChangeEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, type MulticolCategory, type MulticolColumnState, MulticolColumnsChangeDetail, MulticolColumnsChangeEvent, type MulticolColumnsChangeReason, type MulticolItem, MulticolListElement, MulticolListElementEventMap, type MulticolQuery, type MulticolSelectDetail, MulticolSelectEvent, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanTextElement, PanTextMode, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupElementEventMap, PanelGroupOrientation, PanelGroupReorderDetail, PanelGroupReorderEvent, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramInteractionMode, PlotHistogramOrientation, PlotHistogramSelectionChangeDetail, PlotHistogramSelectionChangeEvent, PlotHistogramSelectionRange, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, type RegisterListSearchCommandsOptions, RendererStyle, ResizeMode, SegmentIconLookupFn, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, ShapefillDisplay, ShapefillFillMode, ShapefillValueChangeDetail, ShapefillValueChangeEvent, ShapefillValueElement, ShapefillValueInputDetail, ShapefillValueInputEvent, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, type SortDirection, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, type TickledControllerConfig, type TickledItem, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarElementEventMap, ToolbarGroupElement, ToolbarGroupReorderDetail, ToolbarGroupReorderEvent, ToolbarLayout, ToolbarLayoutSnapshot, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeDndMode, TreeDragContext, TreeDragEndEvent, TreeDragOverEvent, TreeDragStartEvent, TreeDropApplyContext, TreeDropContext, TreeDropController, TreeDropControllerConfig, TreeDropDetail, TreeDropEvent, TreeDropPosition, TreeDropResolvedDrag, TreeDropTarget, TreeDropVisibleRow, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeItemDblClickDetail, TreeItemDblClickEvent, type TreeKeyboardNavCallbacks, TreeKeyboardNavController, type TreeKeyboardNavControllerConfig, type TreeKeyboardNavItemId, TreeListAdapterOptions, TreeListElement, type TreeListSearchAdapterOptions, TreeSearchHost, TreeSelectionFilter, type TreemapInteractionMode, TreemapListElement, TreemapListElementEventMap, type TreemapRect, type TreemapTilingMethod, type TreemapValueAccessor, TreemapZoomDetail, TreemapZoomEvent, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, VerticalListElementEventMap, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applySnapshot, applyTreeDrop, attachTimelineInteractions, bottomDrawerCommandId, buildHighlightTargets, buildModel, captionForEntry, clampToDisk, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, composeIsometry, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createVerticalListAdapter, decomposeViewIsometry, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findTreemapNode, findTreemapPath, geodesicInterpolate, geodesicPath, geodesicSegment, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hyperbolicBranchId, hyperbolicChildIds, hyperbolicDistanceForEuclideanRadius, hyperbolicIdDepth, hyperbolicRelativeFrame, iconBus, identityIsometry, init, insertBeside, invertIsometry, isDragging, isHyperbolicDescendantId, isMultiMode, isSplit, isStack, keyForElement, listItemFadeKeyframes, listSearchStyles, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, norm, normalise, normaliseValue, normalize, panelGapIndex, parseColourScaleAttr, parseLayout, poincareDistance, pointerOverAnyHost, prefersReducedMotion, preserveRestoreWeights, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, rotationIsometry, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, startListItemOutAnimation, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toSnapshot, toolbarGapIndex, translationFromOrigin, viewIsometry, walk, wrapRoot };
10343
10667
  //# sourceMappingURL=index.d.ts.map