@ixfx/components 0.16.4 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/bundle/index.d.ts +4192 -1718
  2. package/bundle/index.js +1237 -234
  3. package/bundle/rolldown-runtime-CAoDHAWh.js +1 -0
  4. package/dist/ac-text.d.ts +20 -12
  5. package/dist/ac-text.js +17 -9
  6. package/dist/{ac-token-qEs3FsQv.d.ts → ac-token-CTBa93hF.d.ts} +2 -6
  7. package/dist/ac-token.d.ts +1 -1
  8. package/dist/ac-token.js +8 -9
  9. package/dist/{button-ikByJJPN.js → button-BOX1dfyd.js} +5 -7
  10. package/dist/{button-N92DKoWb.d.ts → button-DyJyyCsb.d.ts} +0 -4
  11. package/dist/button.d.ts +1 -1
  12. package/dist/button.js +1 -2
  13. package/dist/checkbox.d.ts +42 -9
  14. package/dist/checkbox.js +4 -5
  15. package/dist/{checked-select-CBUidG7n.js → checked-select-BmwqpgGr.js} +8 -10
  16. package/dist/{checked-select-CglRukbP.d.ts → checked-select-CNv5zNvR.d.ts} +0 -4
  17. package/dist/checked-select.d.ts +33 -1
  18. package/dist/checked-select.js +1 -2
  19. package/dist/{colour-picker-DwAa6RDh.js → colour-picker-D8g-bTSF.js} +6 -9
  20. package/dist/colour-picker.d.ts +1 -1
  21. package/dist/colour-picker.js +1 -2
  22. package/dist/{crumb-navigation-D3ndPgFg.js → crumb-navigation-D7dAC0H-.js} +11 -13
  23. package/dist/{crumb-navigation-BbqfmkYs.d.ts → crumb-navigation-Tm4fnsvN.d.ts} +6 -10
  24. package/dist/crumbs.d.ts +1 -1
  25. package/dist/crumbs.js +1 -2
  26. package/dist/{data-controller-DOlmqNKb.js → data-controller-q-rXRMzJ.js} +1 -2
  27. package/dist/data-display.d.ts +5 -8
  28. package/dist/data-display.js +3 -4
  29. package/dist/{data-grid-8TsiF2ES.js → data-grid-BcO3SMac.js} +20 -23
  30. package/dist/{data-grid-CslzF16R.d.ts → data-grid-vasJtjFP.d.ts} +9 -15
  31. package/dist/data-grid.d.ts +2 -2
  32. package/dist/data-grid.js +1 -2
  33. package/dist/{data-provider-35TyWclX.js → data-provider-C6ZNAcaT.js} +1 -2
  34. package/dist/{data-provider-BAn_-oR1.d.ts → data-provider-Cq_ylpET.d.ts} +0 -2
  35. package/dist/date-input.d.ts +57 -0
  36. package/dist/date-input.js +122 -0
  37. package/dist/{decorate-VRK8rslU.js → decorate-Dxs8sFX8.js} +2 -4
  38. package/dist/{defaults-B4ePs4LB.js → defaults-_6ELsqLb.js} +2 -3
  39. package/dist/{detail-list-n1MbNbhF.d.ts → detail-list-E9WdMVbE.d.ts} +10 -16
  40. package/dist/{detail-list-w3GXKO2k.js → detail-list-vPVwE1CP.js} +17 -20
  41. package/dist/detail-list.d.ts +5 -5
  42. package/dist/detail-list.js +1 -2
  43. package/dist/{drag-ghost-DtSDvjri.js → drag-ghost-DNWu_RyN.js} +1 -2
  44. package/dist/{editable-label-rzXkjf1H.d.ts → editable-label-CiHCDlhC.d.ts} +0 -2
  45. package/dist/editable-label.d.ts +31 -1
  46. package/dist/editable-label.js +3 -4
  47. package/dist/{fallbacks-DQ_5OsmR.js → fallbacks-BPjjBoED.js} +1 -2
  48. package/dist/{flat-list-D_4y3wgn.d.ts → flat-list-CfutGqKY.d.ts} +8 -12
  49. package/dist/flat-list.d.ts +1 -1
  50. package/dist/flat-list.js +10 -11
  51. package/dist/{form-CY0nibZ5.js → form-Cxx2sO8_.js} +5 -9
  52. package/dist/{form-BGZK3jZd.d.ts → form-raTQNAWF.d.ts} +0 -4
  53. package/dist/form.d.ts +1 -1
  54. package/dist/form.js +1 -2
  55. package/dist/{grid-list-Cz2tKcNZ.js → grid-list-BHo9TBxX.js} +20 -24
  56. package/dist/{grid-list-CqYS28NY.d.ts → grid-list-Dg8hIiKO.d.ts} +9 -23
  57. package/dist/grid-list.d.ts +4 -4
  58. package/dist/grid-list.js +1 -2
  59. package/dist/{grouped-item-lister-CS4yInuw.d.ts → grouped-item-lister-1MlvJORP.d.ts} +2 -6
  60. package/dist/grouped-item-lister.d.ts +1 -1
  61. package/dist/grouped-item-lister.js +3 -4
  62. package/dist/{grouping-CUKgmkMm.d.ts → grouping-OoQ8WaKc.d.ts} +0 -2
  63. package/dist/{grouping-RYPnHkrS.js → grouping-kENdqzSV.js} +1 -2
  64. package/dist/{handle-DAXs7kbJ.js → handle-BVUWv97X.js} +1 -2
  65. package/dist/{hex-editor-Caq8vNQk.d.ts → hex-editor-BCBKRU9D.d.ts} +0 -4
  66. package/dist/{hex-editor-DiYpgIKs.js → hex-editor-DephDhuu.js} +12 -13
  67. package/dist/hex.d.ts +1 -1
  68. package/dist/hex.js +1 -2
  69. package/dist/{highlight-B-eQrhhb.js → highlight-noLHFSKZ.js} +1 -2
  70. package/dist/{icon-CDGprSdE.d.ts → icon-Bhz0c6Yf.d.ts} +0 -2
  71. package/dist/{icon-1gpwtPx8.js → icon-DvTQuylG.js} +4 -5
  72. package/dist/icons.d.ts +2 -2
  73. package/dist/icons.js +4 -5
  74. package/dist/{incr-search-Dc6gYpJG.js → incr-search-C5114RxZ.js} +14 -26
  75. package/dist/incr-search.d.ts +1 -1
  76. package/dist/incr-search.js +2 -2
  77. package/dist/{index-ZaA90u09.d.ts → index-0smh4WCH.d.ts} +3 -21
  78. package/dist/{index-VAs9akt4.d.ts → index-88ra6YHP.d.ts} +8 -22
  79. package/dist/{index-UvnoZUAo.d.ts → index-B7odjrlg.d.ts} +4 -8
  80. package/dist/{index-Bm9a9S3_.d.ts → index-CRLTVAyt.d.ts} +4 -30
  81. package/dist/{index-9ttcdwlL.d.ts → index-Cdcek1Oj.d.ts} +1 -3
  82. package/dist/index-Cn0qsz9a.d.ts +1632 -0
  83. package/dist/{index-YCDugjdu.d.ts → index-CzhYJJsx.d.ts} +7 -17
  84. package/dist/{index-CYndvTWH.d.ts → index-D6N4Lzek.d.ts} +1 -5
  85. package/dist/{index-CoqtMSd9.d.ts → index-DN6kC6an.d.ts} +1 -3
  86. package/dist/{index-DV3iaUBW2.d.ts → index-DrYQBts2.d.ts} +0 -14
  87. package/dist/{index-o-CWDt11.d.ts → index-DzocgUef.d.ts} +0 -4
  88. package/dist/{index-DN2BWctP.d.ts → index-PIrgX1bP.d.ts} +1 -7
  89. package/dist/index.d.ts +391 -490
  90. package/dist/index.js +269 -207
  91. package/dist/interaction-8Kbbf6xN.js +3 -0
  92. package/dist/{item-appearance-BjcMyauw.js → item-appearance-FRO3TRFI.js} +1 -2
  93. package/dist/{keyboard-B5xD7Fz-.js → keyboard-DMwjIYh7.js} +0 -1
  94. package/dist/{labelled-input-base-BFa4xlYV.js → labelled-input-base-KUhD02dh.js} +3 -5
  95. package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-jyr_SR6t.d.ts} +0 -2
  96. package/dist/labelled-radial-input.d.ts +4 -7
  97. package/dist/labelled-radial-input.js +5 -6
  98. package/dist/labelled-range-input.d.ts +1 -1
  99. package/dist/labelled-range-input.js +3 -4
  100. package/dist/{labelled-slider-input-FdCRi6st.js → labelled-slider-input-CfRKd5kC.js} +9 -11
  101. package/dist/labelled-slider-input.d.ts +1 -1
  102. package/dist/labelled-slider-input.js +1 -2
  103. package/dist/led.d.ts +3 -6
  104. package/dist/led.js +2 -3
  105. package/dist/list-group-header.d.ts +3 -6
  106. package/dist/list-group-header.js +3 -4
  107. package/dist/{list-native-drag-controller-CcXoS0YX.js → list-native-drag-controller-ByftBooJ.js} +5 -9
  108. package/dist/{list-native-drag-controller-D_UrXipS.d.ts → list-native-drag-controller-CgXKdmjr.d.ts} +1 -3
  109. package/dist/{list-selection-controller-D4iIrvJH.js → list-selection-controller-Dkh3m3hX.js} +3 -5
  110. package/dist/{list-selection-types-Dnamh2Lu.d.ts → list-selection-types-CKTt7Rrw.d.ts} +0 -2
  111. package/dist/{list-viewport-types-BRZsLcvp.d.ts → list-viewport-types-BJ8c6qur.d.ts} +0 -2
  112. package/dist/{menu-BX1FHxY8.js → menu-C3DhTjHx.js} +17 -27
  113. package/dist/{menu-item-oxU1VKiJ.js → menu-item-BSxhlWnW.js} +30 -15
  114. package/dist/{menu-item-bF6narIz.d.ts → menu-item-DJhaWy9z.d.ts} +10 -7
  115. package/dist/menu.d.ts +2 -2
  116. package/dist/menu.js +2 -2
  117. package/dist/{miller-BrmBywNZ.js → miller-DqDEaXqT.js} +15 -19
  118. package/dist/miller.d.ts +3 -3
  119. package/dist/miller.js +1 -2
  120. package/dist/narrowed-text.d.ts +1 -1
  121. package/dist/narrowed-text.js +8 -9
  122. package/dist/node-graph-DqEGv5QR.js +5369 -0
  123. package/dist/node-graph.d.ts +2 -0
  124. package/dist/node-graph.js +1 -0
  125. package/dist/{notification-pill-DyZydXoZ.d.ts → notification-pill-BiHEJk-o.d.ts} +0 -4
  126. package/dist/notifier.d.ts +1 -1
  127. package/dist/notifier.js +4 -5
  128. package/dist/{pan-text-CoYmt2qd.d.ts → pan-text-DKe2zinH.d.ts} +0 -2
  129. package/dist/{pan-text-CqtvjPyK.js → pan-text-DrJYKQKN.js} +3 -4
  130. package/dist/panel.d.ts +11 -14
  131. package/dist/panel.js +3 -4
  132. package/dist/{partial-keys-Ck6CiprB.js → partial-keys-D4l_ede_.js} +2 -3
  133. package/dist/{pending-BGidHppL.js → pending-Afl4LT64.js} +1 -2
  134. package/dist/plots.d.ts +1 -1
  135. package/dist/plots.js +1 -2
  136. package/dist/polar-pad.d.ts +5 -7
  137. package/dist/polar-pad.js +6 -7
  138. package/dist/{popup-D80sj2QC.js → popup-D8IxN1Eq.js} +1 -2
  139. package/dist/{prominence-DlFShic3.js → prominence-BOOQVWF-.js} +1 -2
  140. package/dist/{radial-input-KMVltQfe.js → radial-input-Cxys4TOG.js} +7 -9
  141. package/dist/{radial-input-DU6t2hYO.d.ts → radial-input-DNCSwRGF.d.ts} +1 -5
  142. package/dist/radial-input.d.ts +10 -1
  143. package/dist/radial-input.js +1 -2
  144. package/dist/range-input.d.ts +4 -6
  145. package/dist/range-input.js +5 -6
  146. package/dist/range.d.ts +4 -6
  147. package/dist/range.js +6 -7
  148. package/dist/{registry-BEtb8_wB.js → registry-DcF0fO7l.js} +1 -2
  149. package/dist/rolldown-runtime-D3KUYPsf.js +12 -0
  150. package/dist/{scroll-fade-Xx28D7mH.js → scroll-fade-DH8OXSqL.js} +1 -2
  151. package/dist/{scroll-hover-guard-Cjw6179Q.js → scroll-hover-guard-BGAjtyXT.js} +1 -2
  152. package/dist/select-horiz.d.ts +7 -9
  153. package/dist/select-horiz.js +8 -9
  154. package/dist/{slider-input-ByHdotzp.js → slider-input-C3mbUBZi.js} +6 -8
  155. package/dist/{slider-input-BxURAAmD.d.ts → slider-input-DHLGJKWF.d.ts} +1 -5
  156. package/dist/slider-input.d.ts +34 -1
  157. package/dist/slider-input.js +1 -2
  158. package/dist/snackbar.d.ts +5 -8
  159. package/dist/snackbar.js +4 -5
  160. package/dist/snap-container.d.ts +8 -11
  161. package/dist/snap-container.js +2 -3
  162. package/dist/{split-layout-DTY4PJRp.js → split-layout-BMN_s6d7.js} +10 -15
  163. package/dist/{split-layout-CophkNeU.d.ts → split-layout-HytcG1Bn.d.ts} +2 -8
  164. package/dist/split-layout.d.ts +1 -1
  165. package/dist/split-layout.js +1 -2
  166. package/dist/sunburst-tree.d.ts +1 -1
  167. package/dist/sunburst-tree.js +1 -2
  168. package/dist/{sunbursttree-list-DQF6DcsS.js → sunbursttree-list-C-FuZB5z.js} +23 -32
  169. package/dist/{sunbursttree-list-Bk20giTF.d.ts → sunbursttree-list-CsrmVSB8.d.ts} +5 -11
  170. package/dist/swipe.d.ts +7 -9
  171. package/dist/swipe.js +5 -6
  172. package/dist/{tab-list-Df371rqw.d.ts → tab-list-BXMRYJeR.d.ts} +1 -5
  173. package/dist/{tab-list-R_bGbDvO.js → tab-list-CFJy3hVm.js} +6 -15
  174. package/dist/tabs.d.ts +1 -1
  175. package/dist/tabs.js +1 -2
  176. package/dist/{tickled-controller-D-HZymaZ.js → tickled-controller-BVhGKzjZ.js} +1 -2
  177. package/dist/{tickled-controller-DodxD3eQ.d.ts → tickled-controller-DSPoG551.d.ts} +0 -2
  178. package/dist/{tickled-styles-BrAHEj1q.js → tickled-styles-pnieYweS.js} +1 -2
  179. package/dist/{timeline-BP1Ux2EV.js → timeline-Br5JIeLI.js} +9 -15
  180. package/dist/timeline.d.ts +1 -1
  181. package/dist/timeline.js +1 -2
  182. package/dist/{titlebar-Tqu-VvMU.d.ts → titlebar-BtLAF2ws.d.ts} +1 -3
  183. package/dist/titlebar.d.ts +1 -1
  184. package/dist/titlebar.js +4 -5
  185. package/dist/{tooltip-CJt3WLmN.js → tooltip-B7t_u6EY.js} +1 -2
  186. package/dist/{tooltip-BlvBUQxx.d.ts → tooltip-Bl4HpBue.d.ts} +0 -2
  187. package/dist/transitory-label.d.ts +3 -6
  188. package/dist/transitory-label.js +2 -3
  189. package/dist/{tree-BaXYyt5U.js → tree-BP5fxvEX.js} +24 -34
  190. package/dist/{tree-CftHwtEb.js → tree-DUc-iQcg.js} +2 -3
  191. package/dist/{tree-component-DgfkxmVY.d.ts → tree-component-DNuzfo6R.d.ts} +2 -8
  192. package/dist/tree.d.ts +3 -3
  193. package/dist/tree.js +1 -2
  194. package/dist/{types-LU1u0CB8.d.ts → types-16GC5k1z.d.ts} +0 -2
  195. package/dist/{types-Jky6oNAp.d.ts → types-6hpXRKt7.d.ts} +1 -3
  196. package/dist/unit-input.d.ts +77 -0
  197. package/dist/unit-input.js +230 -0
  198. package/dist/{vertical-list-o5hfqH87.js → vertical-list-B9z1lbjM.js} +13 -15
  199. package/dist/{vertical-list-DtHX26JO.d.ts → vertical-list-BzeXehBt.d.ts} +7 -13
  200. package/dist/vertical-list.d.ts +4 -4
  201. package/dist/vertical-list.js +1 -2
  202. package/dist/{view-state-controller-BdyXWUUM.js → view-state-controller-DiPAPiA7.js} +3 -6
  203. package/dist/{wheel-nudge-D5rmht3v.js → wheel-nudge-DgJzrL28.js} +2 -3
  204. package/dist/{wheel-nudge-By5s_ioH.d.ts → wheel-nudge-oMFKat9P.d.ts} +1 -3
  205. package/dist/{xy-axis-DQqd2yXJ.d.ts → xy-axis-Bf6WfOS2.d.ts} +0 -12
  206. package/dist/{xy-axis-CyMd_Bn1.js → xy-axis-CBpml-3S.js} +11 -20
  207. package/dist/xy-pad.d.ts +7 -9
  208. package/dist/xy-pad.js +6 -7
  209. package/docs-user/README.md +3 -0
  210. package/docs-user/ac-text.md +2 -1
  211. package/docs-user/ac-token.md +2 -0
  212. package/docs-user/date-input.md +29 -0
  213. package/docs-user/dock.md +17 -1
  214. package/docs-user/index.json +17 -2
  215. package/docs-user/llms.txt +3 -0
  216. package/docs-user/node-graph.md +376 -0
  217. package/docs-user/unit-input.md +39 -0
  218. package/llms.txt +3 -0
  219. package/package.json +48 -25
  220. package/bundle/rolldown-runtime-CEoa-xHZ.js +0 -1
  221. package/dist/interaction-E-uMGHkJ.js +0 -3
  222. package/dist/rolldown-runtime-D7D4PA-g.js +0 -13
package/dist/index.js CHANGED
@@ -1,80 +1,83 @@
1
- import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-B-eQrhhb.js";
2
- import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
3
- import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
4
- import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
5
- import { t as popupSurfaceStyles } from "./popup-D80sj2QC.js";
6
- import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
7
- import { a as iconBus, c as setIconFont, i as hasIcon, l as svgToDataUri, n as getIconEntry, o as registerFontIcon, r as getIconFont, s as registerIcon, t as getIcon } from "./registry-BEtb8_wB.js";
8
- import { t as IxfxIconElement } from "./icon-1gpwtPx8.js";
1
+ import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-noLHFSKZ.js";
9
2
  import { AcTextElement } from "./ac-text.js";
10
- import { t as DataController } from "./data-controller-DOlmqNKb.js";
11
- import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, f as createDataListSearchAdapter, g as createFuzzySearch, h as createAcCompletionProvider, i as ListSearchController, l as KeyedElementIndex, m as createIncrSearch, n as listSearchStyles, o as registerListSearchCommands, p as IncrSearchTreeController, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter, u as keyForElement } from "./incr-search-Dc6gYpJG.js";
3
+ import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-pnieYweS.js";
12
4
  import { AcTokenElement } from "./ac-token.js";
13
- import { t as handleStyles } from "./handle-DAXs7kbJ.js";
5
+ import { t as themeFallbacks } from "./fallbacks-BPjjBoED.js";
6
+ import { t as handleStyles } from "./handle-BVUWv97X.js";
7
+ import { n as safeCustomElement, t as __decorate } from "./decorate-Dxs8sFX8.js";
14
8
  import { TitlebarElement } from "./titlebar.js";
15
- import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-B4ePs4LB.js";
16
- import "./icons.js";
17
- import { t as prominenceStyles } from "./prominence-DlFShic3.js";
18
- import { n as buttonStyles, t as ButtonElement } from "./button-ikByJJPN.js";
19
- import { a as toGroupKey, i as resolveGroupKey, n as defaultGroupLabel, o as toggleInSet, r as partitionByGroup, t as EMPTY_GROUP_LABEL } from "./grouping-RYPnHkrS.js";
20
- import { a as listItemFadeKeyframes, c as captionForEntry, i as animateListItemOut, l as createDefaultListDragPreview, n as LIST_ITEM_MOTION_MS, o as prefersReducedMotion, r as animateListItemIn, s as startListItemOutAnimation, t as ListNativeDragController } from "./list-native-drag-controller-CcXoS0YX.js";
21
- import { i as ListDragSelectController, n as gestureOf, r as isMultiMode, t as ListSelectionController } from "./list-selection-controller-D4iIrvJH.js";
22
- import { a as capKeys, c as keysAsFlags, d as partitionKeys, f as withoutFlag, i as capFlags, l as keysToArray, n as EMPTY_KEYS, o as flagsFromRecord, r as MAX_PENDING_KEYS, s as flagsToRecord, t as EMPTY_FLAGS, u as partitionFlags } from "./pending-BGidHppL.js";
23
- import { i as sameKeySet, n as applyPartialAttributes, r as isPartialKey, t as PARTIAL_DESCRIPTION } from "./partial-keys-Ck6CiprB.js";
24
- import { n as createScrollHoverGuard, t as SCROLL_HOVER_SUPPRESS_ATTR } from "./scroll-hover-guard-Cjw6179Q.js";
25
- import "./interaction-E-uMGHkJ.js";
26
- import { t as scrollFadeStyles } from "./scroll-fade-Xx28D7mH.js";
27
- import "./menu-item-oxU1VKiJ.js";
9
+ import { n as buttonStyles, t as ButtonElement } from "./button-BOX1dfyd.js";
10
+ import { t as prominenceStyles } from "./prominence-BOOQVWF-.js";
11
+ import { t as IxfxIconElement } from "./icon-DvTQuylG.js";
12
+ import "./menu-item-BSxhlWnW.js";
28
13
  import { Checkbox } from "./checkbox.js";
29
- import { t as CheckedSelect } from "./checked-select-CBUidG7n.js";
30
- import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-DwAa6RDh.js";
31
- import { LabelledRangeInput } from "./labelled-range-input.js";
32
- import { t as collectDataResult } from "./data-provider-35TyWclX.js";
33
- 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-BaXYyt5U.js";
34
- import { a as restoreElementScroll, c as VIEW_STATE_VERSION, i as onUserScrollIntent, n as anchorFromRow, o as scrollToOffset, r as captureElementScroll, s as VIEW_STATE_CHANGE, t as ViewStateController } from "./view-state-controller-BdyXWUUM.js";
35
- import { t as CrumbNavigationElement } from "./crumb-navigation-D3ndPgFg.js";
36
- import { NarrowedTextElement } from "./narrowed-text.js";
14
+ import { t as CheckedSelect } from "./checked-select-BmwqpgGr.js";
15
+ import { i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEVRON_DOWN, t as ICON_CARET_RIGHT } from "./defaults-_6ELsqLb.js";
16
+ import { n as ColourPicker, t as ColourPickerPopup } from "./colour-picker-D8g-bTSF.js";
17
+ import { t as DataController } from "./data-controller-q-rXRMzJ.js";
18
+ import { t as collectDataResult } from "./data-provider-C6ZNAcaT.js";
19
+ import { a as toGroupKey, i as resolveGroupKey, n as defaultGroupLabel, o as toggleInSet, r as partitionByGroup, t as EMPTY_GROUP_LABEL } from "./grouping-kENdqzSV.js";
20
+ import { a as listItemFadeKeyframes, c as captionForEntry, i as animateListItemOut, l as createDefaultListDragPreview, n as LIST_ITEM_MOTION_MS, o as prefersReducedMotion, r as animateListItemIn, s as startListItemOutAnimation, t as ListNativeDragController } from "./list-native-drag-controller-ByftBooJ.js";
21
+ import { i as ListDragSelectController, n as gestureOf, r as isMultiMode, t as ListSelectionController } from "./list-selection-controller-Dkh3m3hX.js";
22
+ import { a as capKeys, c as keysAsFlags, d as partitionKeys, f as withoutFlag, i as capFlags, l as keysToArray, n as EMPTY_KEYS, o as flagsFromRecord, r as MAX_PENDING_KEYS, s as flagsToRecord, t as EMPTY_FLAGS, u as partitionFlags } from "./pending-Afl4LT64.js";
23
+ import { i as sameKeySet, n as applyPartialAttributes, r as isPartialKey, t as PARTIAL_DESCRIPTION } from "./partial-keys-D4l_ede_.js";
24
+ import { n as createScrollHoverGuard, t as SCROLL_HOVER_SUPPRESS_ATTR } from "./scroll-hover-guard-BGAjtyXT.js";
25
+ 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-BP5fxvEX.js";
26
+ import { t as CrumbNavigationElement } from "./crumb-navigation-D7dAC0H-.js";
27
+ import { t as popupSurfaceStyles } from "./popup-D8IxN1Eq.js";
28
+ import { t as scrollFadeStyles } from "./scroll-fade-DH8OXSqL.js";
37
29
  import { DataDisplayComponent } from "./data-display.js";
38
- import { t as createDragGhost } from "./drag-ghost-DtSDvjri.js";
39
- import { t as DataGridElement } from "./data-grid-8TsiF2ES.js";
40
- import { a as menuFromTreeToElements, t as menu_exports } from "./menu-BX1FHxY8.js";
41
- import { t as PanTextElement } from "./pan-text-CqtvjPyK.js";
42
- import { t as DetailListElement } from "./detail-list-w3GXKO2k.js";
43
- import { ListGroupHeaderElement } from "./list-group-header.js";
44
- import { a as distribute, c as preserveRestoreWeights, d as toSnapshot, f as walk, i as buildModel, l as resolveTracks, n as SplitPanelElement, o as findPanelNode, r as applySnapshot, s as normalise, t as SplitLayoutElement, u as setPanelRestoreWeight } from "./split-layout-DTY4PJRp.js";
45
- import { t as TabListElement } from "./tab-list-R_bGbDvO.js";
30
+ import { t as DataGridElement } from "./data-grid-BcO3SMac.js";
31
+ import "./interaction-8Kbbf6xN.js";
32
+ import { DateInputElement, formatDateInput, parseDateInput } from "./date-input.js";
33
+ import { t as DetailListElement } from "./detail-list-vPVwE1CP.js";
34
+ import { t as createDragGhost } from "./drag-ghost-DNWu_RyN.js";
35
+ import { a as distribute, c as preserveRestoreWeights, d as toSnapshot, f as walk, i as buildModel, l as resolveTracks, n as SplitPanelElement, o as findPanelNode, r as applySnapshot, s as normalise, t as SplitLayoutElement, u as setPanelRestoreWeight } from "./split-layout-BMN_s6d7.js";
36
+ import { t as TabListElement } from "./tab-list-CFJy3hVm.js";
46
37
  import { EditableLabel } from "./editable-label.js";
47
- import { t as resolveAxisStep } from "./keyboard-B5xD7Fz-.js";
48
- import { t as WheelNudgeMixin } from "./wheel-nudge-D5rmht3v.js";
49
- import { n as EditableNumber, t as LabelledSliderInput } from "./labelled-slider-input-FdCRi6st.js";
50
- import { t as VerticalListElement } from "./vertical-list-o5hfqH87.js";
38
+ import { n as EditableNumber, t as LabelledSliderInput } from "./labelled-slider-input-CfRKd5kC.js";
51
39
  import { FlatListElement } from "./flat-list.js";
52
- import { n as formStyles, r as adoptLightDomStyles, t as FormElement } from "./form-CY0nibZ5.js";
53
- import { t as GridListElement } from "./grid-list-Cz2tKcNZ.js";
54
- import { PanelElement } from "./panel.js";
40
+ import { n as formStyles, r as adoptLightDomStyles, t as FormElement } from "./form-Cxx2sO8_.js";
41
+ import { t as GridListElement } from "./grid-list-BHo9TBxX.js";
55
42
  import { GroupedItemListerElement } from "./grouped-item-lister.js";
56
- import { a as resolveKeyPath, i as reconcileSelection$1, n as reconcileCursor, t as pathFromJson } from "./tree-CftHwtEb.js";
57
- import { t as IxfxHexEditorElement } from "./hex-editor-DiYpgIKs.js";
58
- import { t as RadialInputElement } from "./radial-input-KMVltQfe.js";
43
+ import { t as VerticalListElement } from "./vertical-list-B9z1lbjM.js";
44
+ import { t as IxfxHexEditorElement } from "./hex-editor-DephDhuu.js";
45
+ import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, f as createDataListSearchAdapter, g as createFuzzySearch, h as createAcCompletionProvider, i as ListSearchController, l as KeyedElementIndex, m as createIncrSearch, n as listSearchStyles, o as registerListSearchCommands, p as IncrSearchTreeController, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter, u as keyForElement } from "./incr-search-C5114RxZ.js";
46
+ import { t as TickledController } from "./tickled-controller-BVhGKzjZ.js";
47
+ import { a as resolveKeyPath, i as reconcileSelection$1, n as reconcileCursor, t as pathFromJson } from "./tree-DUc-iQcg.js";
48
+ import { a as restoreElementScroll, c as VIEW_STATE_VERSION, i as onUserScrollIntent, n as anchorFromRow, o as scrollToOffset, r as captureElementScroll, s as VIEW_STATE_CHANGE, t as ViewStateController } from "./view-state-controller-DiPAPiA7.js";
49
+ import "./icons.js";
59
50
  import { LabelledRadialInput } from "./labelled-radial-input.js";
60
- import { t as SliderInputElement } from "./slider-input-ByHdotzp.js";
51
+ import { LabelledRangeInput } from "./labelled-range-input.js";
61
52
  import { LedElement } from "./led.js";
62
- import { n as MillerListElement, r as MillerBaseElement, t as MillerTreeController } from "./miller-BrmBywNZ.js";
53
+ import { ListGroupHeaderElement } from "./list-group-header.js";
54
+ import { a as menuFromTreeToElements, t as menu_exports } from "./menu-C3DhTjHx.js";
55
+ import { n as MillerListElement, r as MillerBaseElement, t as MillerTreeController } from "./miller-DqDEaXqT.js";
56
+ import { a as iconBus, c as setIconFont, i as hasIcon, l as svgToDataUri, n as getIconEntry, o as registerFontIcon, r as getIconFont, s as registerIcon, t as getIcon } from "./registry-DcF0fO7l.js";
57
+ import { NarrowedTextElement } from "./narrowed-text.js";
58
+ import { $ as forceState, A as marqueeStyle, At as outDegreeOf, B as NODE_SHAPES, C as zoomAt, Ct as edgeId, D as MARQUEE_THRESHOLD_PX, Dt as inDegreeOf, E as NodeDragController, Et as hasWire, F as findSnapTarget, Ft as toEdges, G as resizeRect, H as shapeSpec, I as proximityFactor, It as toNodeGraph, J as blinkPeriodSeconds, K as GraphPortElement, L as settled, M as rectFromPoints, Mt as portId, N as rectsIntersect, Nt as removeNode, O as MarqueeController, Ot as incomingEdge, P as wantsMarquee, Pt as removeWire, Q as forcePositions, R as smoothStep, S as screenToFlow, St as cycleBlockedNodes, T as DRAG_THRESHOLD_PX, Tt as fromEdges, U as RESIZE_HANDLES, V as isNodeShape, W as isResizeHandle, X as forceMovement, Y as DEFAULT_FORCE_OPTIONS, Z as forcePin, _ as clampZoom, _t as normaliseConnection, a as selectionAfterNodePress, at as edgeShape, b as flowToScreen, bt as addWire, c as collapsedOffset, ct as polylinePath, d as sanitizeFlowSpeed, dt as EASY_CONNECT_MARGIN, et as forceStep, f as withEntry, ft as inEasyConnectZone, g as boundsOf, gt as findValidWire, h as isEditableTarget, ht as canConnect, i as selectionAfterEdgeClick, it as edgePath, j as nodesInRect, jt as parsePortId, k as combineSelection, kt as incomingEdges, l as measureNode, lt as polylineShape, m as PanZoomController, mt as removeNodes, n as renderWires, nt as defaultSide, o as findProximityConnection, ot as extendFromSide, p as withWireFlow, pt as pickStartPort, q as MAX_BLINK_HZ, r as WireDragController, rt as edgeMidpoint, s as rectGap, st as polylineMidpoint, t as NodeGraphElement, tt as EDGE_CORNER_RADIUS, u as MAX_FLOW_SPEED, ut as stepPoints, v as fitBounds, vt as resolveConnection, w as nodeGraphStyles, wt as ensurePort, x as panBy, xt as connectContext, y as fitRects, yt as typesCompatible, z as GraphNodeElement } from "./node-graph-DqEGv5QR.js";
63
59
  import { NotificationPillElement } from "./notifier.js";
64
- import { a as TooltipElement, c as computeColour, i as PlotMultiAxis, l as parseColourScaleAttr, n as PlotSingleAxis, o as PlotDataSeries, r as PlotHistogram, s as applyAgeModification, t as PlotXyAxis, u as readBaseColour } from "./xy-axis-CyMd_Bn1.js";
60
+ import { t as PanTextElement } from "./pan-text-DrJYKQKN.js";
61
+ import { PanelElement } from "./panel.js";
62
+ import { a as TooltipElement, c as computeColour, i as PlotMultiAxis, l as parseColourScaleAttr, n as PlotSingleAxis, o as PlotDataSeries, r as PlotHistogram, s as applyAgeModification, t as PlotXyAxis, u as readBaseColour } from "./xy-axis-CBpml-3S.js";
65
63
  import { PolarPad } from "./polar-pad.js";
66
- import { t as tooltipValueStyles } from "./tooltip-CJt3WLmN.js";
64
+ import { t as RadialInputElement } from "./radial-input-Cxys4TOG.js";
67
65
  import { RangeInput } from "./range-input.js";
66
+ import { t as tooltipValueStyles } from "./tooltip-B7t_u6EY.js";
68
67
  import { RangeElement } from "./range.js";
69
68
  import { SelectHorizElement } from "./select-horiz.js";
69
+ import { t as resolveAxisStep } from "./keyboard-DMwjIYh7.js";
70
+ import { t as WheelNudgeMixin } from "./wheel-nudge-DgJzrL28.js";
71
+ import { t as SliderInputElement } from "./slider-input-C3mbUBZi.js";
70
72
  import { SnackbarElement } from "./snackbar.js";
71
73
  import { SnapContainer } from "./snap-container.js";
72
- import { a as findSunburstId, c as sunburstChildId, d as sunburstParentId, f as sunburstPathToId, i as defaultSunburstValueAccessor, l as sunburstHasChildren, n as computeSunburstLayout, o as findSunburstNodeById, p as SUNBURST_PATH_SEPARATOR, r as createValueResolver, s as isSunburstAncestorId, t as SunburstTreeListElement, u as sunburstIdToPath } from "./sunbursttree-list-DQF6DcsS.js";
74
+ import { a as findSunburstId, c as sunburstChildId, d as sunburstParentId, f as sunburstPathToId, i as defaultSunburstValueAccessor, l as sunburstHasChildren, n as computeSunburstLayout, o as findSunburstNodeById, p as SUNBURST_PATH_SEPARATOR, r as createValueResolver, s as isSunburstAncestorId, t as SunburstTreeListElement, u as sunburstIdToPath } from "./sunbursttree-list-C-FuZB5z.js";
73
75
  import { SwipeElement } from "./swipe.js";
74
- import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-BP1Ux2EV.js";
76
+ import { a as resolveCssVars, i as attachTimelineInteractions, n as TimelineTrackTabElement, o as resolveGrid, r as timelineStyles, s as TimelineController, t as IxfxTimelineElement } from "./timeline-Br5JIeLI.js";
75
77
  import { TransitoryLabelElement } from "./transitory-label.js";
78
+ import { AGE_UNITS, SIZE_UNITS, UnitInputElement, bestUnit, toBase } from "./unit-input.js";
76
79
  import { XyPad } from "./xy-pad.js";
77
- import { LitElement, css, html, nothing, svg } from "lit";
80
+ import { LitElement, css, html, nothing, svg, unsafeCSS } from "lit";
78
81
  import { eventOptions, property, query, queryAssignedElements, state } from "lit/decorators.js";
79
82
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
80
83
  import { createCommandRegistry } from "@clinth/ui-commands";
@@ -82,7 +85,7 @@ import { repeat } from "lit/directives/repeat.js";
82
85
  import { Trees } from "@ixfx/collections";
83
86
  import { clamp, clamper, scaler } from "@ixfx/numbers";
84
87
  import { live } from "lit/directives/live.js";
85
- //#region src/bottom-drawer/bottom-drawer.ts
88
+ // src/bottom-drawer/bottom-drawer.ts
86
89
  /** Builds the command id for a named drawer's command, e.g. `inspector.expand`. */
87
90
  function bottomDrawerCommandId(name, command) {
88
91
  return `${name.trim()}.${command}`;
@@ -574,8 +577,7 @@ __decorate([property({ type: String })], BottomDrawerElement.prototype, "name",
574
577
  __decorate([property({ attribute: false })], BottomDrawerElement.prototype, "registry", void 0);
575
578
  __decorate([state()], BottomDrawerElement.prototype, "_dragHeight", void 0);
576
579
  BottomDrawerElement = __decorate([safeCustomElement(`ixfx-bottom-drawer`)], BottomDrawerElement);
577
- //#endregion
578
- //#region src/button/radio-group.ts
580
+ // src/button/radio-group.ts
579
581
  let RadioGroup = class RadioGroup extends LitElement {
580
582
  constructor(..._args) {
581
583
  super(..._args);
@@ -914,8 +916,7 @@ __decorate([state()], RadioGroup.prototype, "_computedItems", void 0);
914
916
  __decorate([state()], RadioGroup.prototype, "_icons", void 0);
915
917
  __decorate([query(`slot`)], RadioGroup.prototype, "_slot", void 0);
916
918
  RadioGroup = __decorate([safeCustomElement(`ixfx-radio-group`)], RadioGroup);
917
- //#endregion
918
- //#region src/interaction/tree-keyboard-controller.ts
919
+ // src/interaction/tree-keyboard-controller.ts
919
920
  var TreeKeyboardNavController = class {
920
921
  constructor(host, tickled, config) {
921
922
  this.handleKeyDown = (event) => {
@@ -1007,8 +1008,7 @@ var TreeKeyboardNavController = class {
1007
1008
  this.callbacks.onSelect?.(currentId);
1008
1009
  }
1009
1010
  };
1010
- //#endregion
1011
- //#region src/button/split-button.ts
1011
+ // src/button/split-button.ts
1012
1012
  let SplitButton = class SplitButton extends ButtonElement {
1013
1013
  constructor(..._args) {
1014
1014
  super(..._args);
@@ -1412,8 +1412,7 @@ __decorate([state()], SplitButton.prototype, "_dynamicItems", void 0);
1412
1412
  __decorate([state()], SplitButton.prototype, "_loadingItems", void 0);
1413
1413
  __decorate([state()], SplitButton.prototype, "_menuHasItems", void 0);
1414
1414
  SplitButton = __decorate([safeCustomElement(`ixfx-split-button`)], SplitButton);
1415
- //#endregion
1416
- //#region src/common/view-state/bind.ts
1415
+ // src/common/view-state/bind.ts
1417
1416
  /** Whether `el` implements the view-state API. */
1418
1417
  function isViewStateful(el) {
1419
1418
  return typeof el === `object` && el !== null && typeof el.getViewState === `function` && typeof el.setViewState === `function`;
@@ -1452,8 +1451,7 @@ function bindViewState(el, binding) {
1452
1451
  globalThis.removeEventListener?.(`pagehide`, onHide);
1453
1452
  };
1454
1453
  }
1455
- //#endregion
1456
- //#region src/crumbs/crumb-path-controller.ts
1454
+ // src/crumbs/crumb-path-controller.ts
1457
1455
  var CrumbPathController = class {
1458
1456
  #element = null;
1459
1457
  #pathed;
@@ -1538,8 +1536,7 @@ var CrumbPathController = class {
1538
1536
  return [];
1539
1537
  }
1540
1538
  };
1541
- //#endregion
1542
- //#region src/crumbs/crumb-path.ts
1539
+ // src/crumbs/crumb-path.ts
1543
1540
  const INVALID_ANCHOR_CHARS_RE = /[^\w-]/g;
1544
1541
  let CrumbPathElement = class CrumbPathElement extends LitElement {
1545
1542
  constructor(..._args) {
@@ -2479,8 +2476,7 @@ __decorate([state()], CrumbPathElement.prototype, "_dragCumPath", void 0);
2479
2476
  __decorate([state()], CrumbPathElement.prototype, "_dropCumPath", void 0);
2480
2477
  __decorate([state()], CrumbPathElement.prototype, "_hintSegments", void 0);
2481
2478
  CrumbPathElement = __decorate([safeCustomElement(`ixfx-crumb-path`)], CrumbPathElement);
2482
- //#endregion
2483
- //#region src/data-table/data-table.ts
2479
+ // src/data-table/data-table.ts
2484
2480
  let DataTableElement = class DataTableElement extends LitElement {
2485
2481
  constructor(..._args) {
2486
2482
  super(..._args);
@@ -2744,8 +2740,7 @@ __decorate([state()], DataTableElement.prototype, "_tickled", void 0);
2744
2740
  __decorate([state()], DataTableElement.prototype, "_detailIndex", void 0);
2745
2741
  __decorate([state()], DataTableElement.prototype, "_stacked", void 0);
2746
2742
  DataTableElement = __decorate([safeCustomElement(`ixfx-data-table`)], DataTableElement);
2747
- //#endregion
2748
- //#region src/dock/dock-drag.ts
2743
+ // src/dock/dock-drag.ts
2749
2744
  let activeDrag = null;
2750
2745
  const dragHosts = /* @__PURE__ */ new Set();
2751
2746
  function registerDockHost(host) {
@@ -2911,8 +2906,63 @@ function isDragging() {
2911
2906
  function getActiveDragPanelId() {
2912
2907
  return activeDrag?.panelId ?? null;
2913
2908
  }
2914
- //#endregion
2915
- //#region src/dock/dock-model.ts
2909
+ // src/dock/dock-maximize.ts
2910
+ const MAXIMIZED_ATTR = `data-dock-maximized`;
2911
+ /** Position `leaf` over `hostRect` (viewport coordinates). */
2912
+ function placeOverHost(leaf, hostRect) {
2913
+ const { style } = leaf;
2914
+ style.position = `fixed`;
2915
+ style.inset = `auto`;
2916
+ style.margin = `0`;
2917
+ style.left = `${hostRect.left}px`;
2918
+ style.top = `${hostRect.top}px`;
2919
+ style.width = `${hostRect.width}px`;
2920
+ style.height = `${hostRect.height}px`;
2921
+ }
2922
+ /** Promote `leaf` to the top layer over `hostRect`. Safe to call repeatedly. */
2923
+ function maximizeLeaf(leaf, hostRect) {
2924
+ const el = leaf;
2925
+ leaf.setAttribute(MAXIMIZED_ATTR, ``);
2926
+ leaf.setAttribute(`popover`, `manual`);
2927
+ placeOverHost(leaf, hostRect);
2928
+ try {
2929
+ if (!el.matches(`:popover-open`)) el.showPopover?.();
2930
+ } catch {}
2931
+ }
2932
+ /** Return `leaf` to normal layout. */
2933
+ function restoreLeaf(leaf) {
2934
+ const el = leaf;
2935
+ try {
2936
+ if (el.matches(`:popover-open`)) el.hidePopover?.();
2937
+ } catch {}
2938
+ leaf.removeAttribute(`popover`);
2939
+ leaf.removeAttribute(MAXIMIZED_ATTR);
2940
+ const { style } = leaf;
2941
+ for (const prop of [
2942
+ `position`,
2943
+ `inset`,
2944
+ `margin`,
2945
+ `left`,
2946
+ `top`,
2947
+ `width`,
2948
+ `height`
2949
+ ]) style.removeProperty(prop);
2950
+ }
2951
+ /** CSS for a maximized leaf; add to the host's styles. */
2952
+ const maximizeCss = `
2953
+ .leaf[${MAXIMIZED_ATTR}] {
2954
+ z-index: 1;
2955
+ padding: 0;
2956
+ overflow: hidden;
2957
+ border: 1px solid var(--surface-4);
2958
+ background: var(--dock-maximized-background, var(--surface-2));
2959
+ color: inherit;
2960
+ }
2961
+ .leaf[${MAXIMIZED_ATTR}]::backdrop {
2962
+ background: transparent;
2963
+ }
2964
+ `;
2965
+ // src/dock/dock-model.ts
2916
2966
  /**
2917
2967
  * The dock model is a plain mutable tree owned exclusively by the host
2918
2968
  * element. Mutators below change the tree in place; the host calls
@@ -3559,8 +3609,7 @@ function findEmptiedStacks(before, after) {
3559
3609
  }
3560
3610
  return emptied;
3561
3611
  }
3562
- //#endregion
3563
- //#region src/dock/dock-view-state.ts
3612
+ // src/dock/dock-view-state.ts
3564
3613
  /**
3565
3614
  * Pure helpers for `ixfx-dock-host` view state. The dock's layout is close to
3566
3615
  * structure, so the saved state is the layout tree itself; these helpers
@@ -3599,8 +3648,7 @@ function withoutAbsentPanels(layout, isPresent) {
3599
3648
  root: normalize(root)
3600
3649
  };
3601
3650
  }
3602
- //#endregion
3603
- //#region src/tabs/tab-list-item.ts
3651
+ // src/tabs/tab-list-item.ts
3604
3652
  const resizeHandlers = /* @__PURE__ */ new WeakMap();
3605
3653
  let resizeObserver;
3606
3654
  function sharedResizeObserver() {
@@ -4029,10 +4077,9 @@ __decorate([state()], TabListItemElement.prototype, "_compact", void 0);
4029
4077
  __decorate([state()], TabListItemElement.prototype, "_hasToolbarContent", void 0);
4030
4078
  __decorate([state()], TabListItemElement.prototype, "_hasStatusContent", void 0);
4031
4079
  TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabListItemElement);
4032
- //#endregion
4033
- //#region src/dock/dock-panel.ts
4080
+ // src/dock/dock-panel.ts
4034
4081
  /** Pointer movement threshold before a titlebar press becomes a dock drag. */
4035
- const DRAG_THRESHOLD_PX$4 = 5;
4082
+ const DRAG_THRESHOLD_PX$5 = 5;
4036
4083
  let DockPanelElement = class DockPanelElement extends LitElement {
4037
4084
  constructor(..._args) {
4038
4085
  super(..._args);
@@ -4064,7 +4111,7 @@ let DockPanelElement = class DockPanelElement extends LitElement {
4064
4111
  this._onPointerMove = (event) => {
4065
4112
  if (this._dragPointerId === null || event.pointerId !== this._dragPointerId) return;
4066
4113
  if (!this._dragStarted) {
4067
- if (Math.hypot(event.clientX - this._dragStartX, event.clientY - this._dragStartY) < DRAG_THRESHOLD_PX$4) return;
4114
+ if (Math.hypot(event.clientX - this._dragStartX, event.clientY - this._dragStartY) < DRAG_THRESHOLD_PX$5) return;
4068
4115
  this._dragStarted = true;
4069
4116
  const pointerId = this._dragPointerId;
4070
4117
  this._teardownDragListeners();
@@ -4214,12 +4261,11 @@ __decorate([property({
4214
4261
  })], DockPanelElement.prototype, "presentation", void 0);
4215
4262
  __decorate([state()], DockPanelElement.prototype, "_collapsed", void 0);
4216
4263
  DockPanelElement = __decorate([safeCustomElement(`ixfx-dock-panel`)], DockPanelElement);
4217
- //#endregion
4218
- //#region src/dock/dock-host.ts
4264
+ // src/dock/dock-host.ts
4219
4265
  /** Fraction of the leaf rect (from each edge) that forms the split bands. */
4220
4266
  const BAND = .25;
4221
4267
  /** Pointer movement threshold before a press becomes a dock drag (matches tab-list). */
4222
- const DRAG_THRESHOLD_PX$3 = 5;
4268
+ const DRAG_THRESHOLD_PX$4 = 5;
4223
4269
  /** Tab items of a strip, or the stand-in tab of a hidden strip's drop hint. */
4224
4270
  const STRIP_ITEMS = `ixfx-tab-list-item, .ghost-tab`;
4225
4271
  /** Tolerance (px) when matching a child gutter endpoint to a parent gutter line. */
@@ -4245,6 +4291,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4245
4291
  this._toolbarsOut = /* @__PURE__ */ new Map();
4246
4292
  this._leafContentRules = /* @__PURE__ */ new Map();
4247
4293
  this._tabDragPending = null;
4294
+ this._maximizedId = null;
4248
4295
  this._junctionsKey = ``;
4249
4296
  this._junctionsRaf = null;
4250
4297
  this._hostResizeObserver = null;
@@ -4356,7 +4403,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4356
4403
  this._onTabDragMove = (event) => {
4357
4404
  const pending = this._tabDragPending;
4358
4405
  if (pending === null || event.pointerId !== pending.pointerId) return;
4359
- if (Math.hypot(event.clientX - pending.startX, event.clientY - pending.startY) < DRAG_THRESHOLD_PX$3) return;
4406
+ if (Math.hypot(event.clientX - pending.startX, event.clientY - pending.startY) < DRAG_THRESHOLD_PX$4) return;
4360
4407
  this._tabDragPending = null;
4361
4408
  this._teardownTabDragListeners();
4362
4409
  this._suppressNextClick();
@@ -4386,7 +4433,10 @@ let DockHostElement = class DockHostElement extends LitElement {
4386
4433
  this._liveStacks = snapshotNonEmptyStacks(this._model);
4387
4434
  registerDockHost(this);
4388
4435
  this.addEventListener(`dock-panel-drag-start`, this._onDragStart);
4389
- this._hostResizeObserver = new ResizeObserver(() => this._scheduleJunctions());
4436
+ this._hostResizeObserver = new ResizeObserver(() => {
4437
+ this._scheduleJunctions();
4438
+ this._syncMaximized();
4439
+ });
4390
4440
  this._hostResizeObserver.observe(this);
4391
4441
  this._scanToolbarSlots();
4392
4442
  this._toolbarObserver = new MutationObserver(() => this._scanToolbarSlots());
@@ -4414,6 +4464,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4414
4464
  this._junctions = [];
4415
4465
  this._junctionsKey = ``;
4416
4466
  this._returnAllToolbars();
4467
+ this._clearMaximizedLeaves();
4417
4468
  }
4418
4469
  willUpdate(changed) {
4419
4470
  super.willUpdate(changed);
@@ -4448,6 +4499,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4448
4499
  this._syncSlots();
4449
4500
  this._syncToolbars();
4450
4501
  this._scheduleJunctions();
4502
+ this._syncMaximized();
4451
4503
  }
4452
4504
  _buildInitialModel() {
4453
4505
  if (this.#layoutRestored) {
@@ -4751,6 +4803,69 @@ let DockHostElement = class DockHostElement extends LitElement {
4751
4803
  }));
4752
4804
  return true;
4753
4805
  }
4806
+ /** The panel currently maximized to fill the host, or `null`. */
4807
+ get maximizedPanelId() {
4808
+ return this._maximizedId;
4809
+ }
4810
+ /**
4811
+ * Make a panel's leaf fill the host (above its siblings and the dock
4812
+ * chrome of the rest of the layout) without moving the panel element. The
4813
+ * panel is activated in its stack. Another panel maximized earlier is
4814
+ * restored first. Returns `false` for an unknown panel.
4815
+ */
4816
+ maximizePanel(panelId) {
4817
+ if (findStackOf(this._model, panelId) === null) return false;
4818
+ if (this._maximizedId === panelId) return true;
4819
+ this.activatePanel(panelId);
4820
+ const previousPanelId = this._maximizedId;
4821
+ this._maximizedId = panelId;
4822
+ this._syncMaximized();
4823
+ this._emitMaximized(panelId, previousPanelId);
4824
+ return true;
4825
+ }
4826
+ /** Put the maximized panel back in the layout. Returns `false` when nothing was maximized. */
4827
+ restoreMaximized() {
4828
+ const previousPanelId = this._maximizedId;
4829
+ if (previousPanelId === null) return false;
4830
+ this._maximizedId = null;
4831
+ this._syncMaximized();
4832
+ this._emitMaximized(null, previousPanelId);
4833
+ return true;
4834
+ }
4835
+ _emitMaximized(panelId, previousPanelId) {
4836
+ this.dispatchEvent(new CustomEvent(`dock-panel-maximized`, {
4837
+ detail: {
4838
+ panelId,
4839
+ previousPanelId
4840
+ },
4841
+ bubbles: true,
4842
+ composed: true
4843
+ }));
4844
+ }
4845
+ /** Bring leaf elements in line with `_maximizedId`; restores it if the panel is gone. */
4846
+ _syncMaximized() {
4847
+ const root = this.renderRoot;
4848
+ if (!root) return;
4849
+ let target = null;
4850
+ if (this._maximizedId !== null) {
4851
+ const path = findStackOf(this._model, this._maximizedId);
4852
+ target = path === null ? null : root.querySelector(`.leaf[data-dock-path="${path.join(`-`)}"]`);
4853
+ if (target === null && path === null) {
4854
+ const previousPanelId = this._maximizedId;
4855
+ this._maximizedId = null;
4856
+ this._emitMaximized(null, previousPanelId);
4857
+ }
4858
+ }
4859
+ for (const leaf of root.querySelectorAll(`.leaf[data-dock-maximized]`)) if (leaf !== target) restoreLeaf(leaf);
4860
+ if (target !== null) {
4861
+ const rect = this.getBoundingClientRect();
4862
+ if (target.hasAttribute(`data-dock-maximized`)) placeOverHost(target, rect);
4863
+ else maximizeLeaf(target, rect);
4864
+ }
4865
+ }
4866
+ _clearMaximizedLeaves() {
4867
+ for (const leaf of this.renderRoot?.querySelectorAll(`.leaf[data-dock-maximized]`) ?? []) restoreLeaf(leaf);
4868
+ }
4754
4869
  getPanelIds() {
4755
4870
  return collectPanelIds(this._model);
4756
4871
  }
@@ -5709,6 +5824,8 @@ let DockHostElement = class DockHostElement extends LitElement {
5709
5824
  pointer-events: none;
5710
5825
  }
5711
5826
 
5827
+ ${unsafeCSS(maximizeCss)}
5828
+
5712
5829
  .leaf[collapsed] .leaf-body,
5713
5830
  .leaf[collapsed] .empty {
5714
5831
  visibility: hidden;
@@ -5942,8 +6059,7 @@ function computeStripGapIndex(strip, clientX, _clientY) {
5942
6059
  }
5943
6060
  return items.length;
5944
6061
  }
5945
- //#endregion
5946
- //#region src/form/form-group.ts
6062
+ // src/form/form-group.ts
5947
6063
  let FormGroupElement = class FormGroupElement extends LitElement {
5948
6064
  constructor(..._args) {
5949
6065
  super(..._args);
@@ -5999,8 +6115,7 @@ __decorate([property({
5999
6115
  reflect: true
6000
6116
  })], FormGroupElement.prototype, "labelAlign", void 0);
6001
6117
  FormGroupElement = __decorate([safeCustomElement(`ixfx-form-group`)], FormGroupElement);
6002
- //#endregion
6003
- //#region src/form/form-options.ts
6118
+ // src/form/form-options.ts
6004
6119
  let idCounter$1 = 0;
6005
6120
  let FormOptionsElement = class FormOptionsElement extends LitElement {
6006
6121
  constructor(..._args) {
@@ -6042,8 +6157,7 @@ __decorate([property({
6042
6157
  reflect: true
6043
6158
  })], FormOptionsElement.prototype, "orientation", void 0);
6044
6159
  FormOptionsElement = __decorate([safeCustomElement(`ixfx-form-options`)], FormOptionsElement);
6045
- //#endregion
6046
- //#region src/form/form-part.ts
6160
+ // src/form/form-part.ts
6047
6161
  let idCounter = 0;
6048
6162
  let FormPartElement = class FormPartElement extends LitElement {
6049
6163
  constructor(..._args) {
@@ -6073,8 +6187,7 @@ let FormPartElement = class FormPartElement extends LitElement {
6073
6187
  };
6074
6188
  __decorate([property({ type: String })], FormPartElement.prototype, "label", void 0);
6075
6189
  FormPartElement = __decorate([safeCustomElement(`ixfx-form-part`)], FormPartElement);
6076
- //#endregion
6077
- //#region src/form/form-row.ts
6190
+ // src/form/form-row.ts
6078
6191
  let FormRowElement = class FormRowElement extends LitElement {
6079
6192
  createRenderRoot() {
6080
6193
  return this;
@@ -6097,8 +6210,7 @@ let FormRowElement = class FormRowElement extends LitElement {
6097
6210
  }
6098
6211
  };
6099
6212
  FormRowElement = __decorate([safeCustomElement(`ixfx-form-row`)], FormRowElement);
6100
- //#endregion
6101
- //#region src/grouped-item-lister/tree-list-adapter.ts
6213
+ // src/grouped-item-lister/tree-list-adapter.ts
6102
6214
  /**
6103
6215
  * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
6104
6216
  * an `ixfx-tree-list` internally.
@@ -6258,8 +6370,7 @@ function createTreeListAdapter(toTreeItem, options) {
6258
6370
  });
6259
6371
  return adapter;
6260
6372
  }
6261
- //#endregion
6262
- //#region src/grouped-item-lister/vertical-list-adapter.ts
6373
+ // src/grouped-item-lister/vertical-list-adapter.ts
6263
6374
  /**
6264
6375
  * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
6265
6376
  * an `ixfx-vertical-list` internally.
@@ -6387,8 +6498,7 @@ function createVerticalListAdapter(renderItem, options) {
6387
6498
  });
6388
6499
  return adapter;
6389
6500
  }
6390
- //#endregion
6391
- //#region src/hyperbolic-tree/child-preview.ts
6501
+ // src/hyperbolic-tree/child-preview.ts
6392
6502
  /** Lucide `arrow-up`. */
6393
6503
  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>`;
6394
6504
  /** Picks the popover's side for a node anchored at `anchor` in a `width` x `height` host. */
@@ -6497,8 +6607,7 @@ function createChildPreviewTiming(host) {
6497
6607
  }
6498
6608
  };
6499
6609
  }
6500
- //#endregion
6501
- //#region src/hyperbolic-tree/poincare-math.ts
6610
+ // src/hyperbolic-tree/poincare-math.ts
6502
6611
  const EPSILON = 1e-9;
6503
6612
  function complexMul(a, b) {
6504
6613
  return {
@@ -6697,8 +6806,7 @@ function geodesicPath(p, q, scale = 1) {
6697
6806
  if (segment.kind === `line` || segment.radius * scale > 1e6) return `${start} L${fmt(q.x)},${fmt(q.y)}`;
6698
6807
  return `${start} A${fmt(segment.radius)},${fmt(segment.radius)} 0 0 ${segment.sweep} ${fmt(q.x)},${fmt(q.y)}`;
6699
6808
  }
6700
- //#endregion
6701
- //#region src/hyperbolic-tree/view-motion.ts
6809
+ // src/hyperbolic-tree/view-motion.ts
6702
6810
  /** Wrap an angle into `(-π, π]`. */
6703
6811
  function wrapAngle(theta) {
6704
6812
  return Math.atan2(Math.sin(theta), Math.cos(theta));
@@ -6744,8 +6852,7 @@ function focusTransition(from) {
6744
6852
  }
6745
6853
  };
6746
6854
  }
6747
- //#endregion
6748
- //#region src/hyperbolic-tree/gestures.ts
6855
+ // src/hyperbolic-tree/gestures.ts
6749
6856
  const MIN_ZOOM = .5;
6750
6857
  /**
6751
6858
  * Keep the view center over the disk (so you can't zoom off into empty
@@ -6774,7 +6881,7 @@ function clampZoomState(state) {
6774
6881
  * Zoom by `factor` keeping the disk point under `screenPoint` fixed on
6775
6882
  * screen — the "zoom where I'm pointing" behaviour of maps and image viewers.
6776
6883
  */
6777
- function zoomAt(state, screenPoint, factor) {
6884
+ function zoomAt$1(state, screenPoint, factor) {
6778
6885
  const zoom = Math.min(8, Math.max(MIN_ZOOM, state.zoom * factor));
6779
6886
  const disk = screenToDisk(screenPoint, state);
6780
6887
  return clampZoomState({
@@ -6916,7 +7023,7 @@ function createGestureHandlers(host) {
6916
7023
  event.preventDefault();
6917
7024
  const delta = event.deltaMode === 1 ? event.deltaY * 16 : event.deltaY;
6918
7025
  const factor = Math.exp(-delta * (modified ? .01 : .002));
6919
- host.setZoomState(zoomAt(host.zoomState(), screen, factor));
7026
+ host.setZoomState(zoomAt$1(host.zoomState(), screen, factor));
6920
7027
  },
6921
7028
  /** Whether the view is being dragged right now. */
6922
7029
  isDragging() {
@@ -6934,8 +7041,7 @@ function createGestureHandlers(host) {
6934
7041
  }
6935
7042
  };
6936
7043
  }
6937
- //#endregion
6938
- //#region src/hyperbolic-tree/layout.ts
7044
+ // src/hyperbolic-tree/layout.ts
6939
7045
  const ID_SEPARATOR = `\u001F`;
6940
7046
  /**
6941
7047
  * Path-derived ids for `children` of the node with id `parentId`. `TreeItem.key`
@@ -7348,8 +7454,7 @@ function computeHyperbolicLayout(root, options = {}) {
7348
7454
  edges
7349
7455
  };
7350
7456
  }
7351
- //#endregion
7352
- //#region src/hyperbolic-tree/hyperbolic-view-state.ts
7457
+ // src/hyperbolic-tree/hyperbolic-view-state.ts
7353
7458
  function indexHyperbolicKeys(root) {
7354
7459
  const byKey = /* @__PURE__ */ new Map();
7355
7460
  const nodes = /* @__PURE__ */ new Set();
@@ -7491,8 +7596,7 @@ function reconcileHyperbolicViewState(input) {
7491
7596
  function zoomFromJson(value) {
7492
7597
  return typeof value === `number` && Number.isFinite(value) && value > 0 ? value : void 0;
7493
7598
  }
7494
- //#endregion
7495
- //#region src/hyperbolic-tree/hyperbolic-view-state-binding.ts
7599
+ // src/hyperbolic-tree/hyperbolic-view-state-binding.ts
7496
7600
  function createHyperbolicViewState(host) {
7497
7601
  const { controller } = host;
7498
7602
  /** Key path of the centre as last seen — what goes pending if it leaves the tree. */
@@ -7643,8 +7747,7 @@ function createHyperbolicViewState(host) {
7643
7747
  }
7644
7748
  };
7645
7749
  }
7646
- //#endregion
7647
- //#region src/hyperbolic-tree/hyperbolictree-styles.ts
7750
+ // src/hyperbolic-tree/hyperbolictree-styles.ts
7648
7751
  /** Shadow-DOM styles for `ixfx-hyperbolictree-list`. */
7649
7752
  const hyperbolicTreeStyles = css`
7650
7753
  :host {
@@ -7906,8 +8009,7 @@ const hyperbolicTreeStyles = css`
7906
8009
  color: var(--surface-muted-text);
7907
8010
  }
7908
8011
  `;
7909
- //#endregion
7910
- //#region src/hyperbolic-tree/keyboard.ts
8012
+ // src/hyperbolic-tree/keyboard.ts
7911
8013
  const unhandled = {
7912
8014
  action: { kind: `none` },
7913
8015
  handled: false
@@ -7969,8 +8071,7 @@ function resolveKeyboardAction(key, root, focusId, visibleNodes) {
7969
8071
  default: return unhandled;
7970
8072
  }
7971
8073
  }
7972
- //#endregion
7973
- //#region src/hyperbolic-tree/lazy-children.ts
8074
+ // src/hyperbolic-tree/lazy-children.ts
7974
8075
  function createLazyChildLoader(source, onChange) {
7975
8076
  const pending = /* @__PURE__ */ new Set();
7976
8077
  const aborters = /* @__PURE__ */ new Map();
@@ -8018,8 +8119,7 @@ function createLazyChildLoader(source, onChange) {
8018
8119
  }
8019
8120
  };
8020
8121
  }
8021
- //#endregion
8022
- //#region src/hyperbolic-tree/render-utils.ts
8122
+ // src/hyperbolic-tree/render-utils.ts
8023
8123
  /**
8024
8124
  * The Poincaré disk's conformal factor relative to the origin, `1 − |p|²`:
8025
8125
  * how much a shape of fixed hyperbolic size shrinks (in Euclidean terms) when
@@ -8217,8 +8317,7 @@ function boxGeometry(n, options) {
8217
8317
  function boxLabelShape(id, center, geometry, angle = 0) {
8218
8318
  return orientedRect(id, center, geometry.width * geometry.scale / 2, geometry.height * geometry.scale / 2, angle);
8219
8319
  }
8220
- //#endregion
8221
- //#region src/hyperbolic-tree/render-context.ts
8320
+ // src/hyperbolic-tree/render-context.ts
8222
8321
  const HORIZONTAL = {
8223
8322
  direction: 0,
8224
8323
  textAngle: 0,
@@ -8380,8 +8479,7 @@ function paintOrder(nodes, ctx, isTickled) {
8380
8479
  const distance = (n) => n.position.x ** 2 + n.position.y ** 2;
8381
8480
  return [...nodes].sort((a, b) => layer(a) - layer(b) || distance(b) - distance(a));
8382
8481
  }
8383
- //#endregion
8384
- //#region src/hyperbolic-tree/render-templates.ts
8482
+ // src/hyperbolic-tree/render-templates.ts
8385
8483
  /**
8386
8484
  * Sanitizes a node key into a token safe to use inside a `part` attribute /
8387
8485
  * `::part()` selector — arbitrary key characters (spaces, quotes, etc.)
@@ -8502,8 +8600,7 @@ function renderEdges(edges, byId, branches, edgeRenderer) {
8502
8600
  return renderDefaultEdge(edge, branches);
8503
8601
  });
8504
8602
  }
8505
- //#endregion
8506
- //#region src/hyperbolic-tree/hyperbolictree-list.ts
8603
+ // src/hyperbolic-tree/hyperbolictree-list.ts
8507
8604
  let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitElement {
8508
8605
  constructor(..._args) {
8509
8606
  super(..._args);
@@ -9334,8 +9431,7 @@ __decorate([state()], HyperbolicTreeListElement.prototype, "_zoomOffset", void 0
9334
9431
  __decorate([state()], HyperbolicTreeListElement.prototype, "_previewId", void 0);
9335
9432
  __decorate([state()], HyperbolicTreeListElement.prototype, "_hostSize", void 0);
9336
9433
  HyperbolicTreeListElement = __decorate([safeCustomElement(`ixfx-hyperbolictree-list`)], HyperbolicTreeListElement);
9337
- //#endregion
9338
- //#region src/icicle-tree/layout.ts
9434
+ // src/icicle-tree/layout.ts
9339
9435
  /** Coerce a raw accessor result to a non-negative finite weight. */
9340
9436
  function normaliseValue(raw) {
9341
9437
  return typeof raw === `number` && Number.isFinite(raw) && raw > 0 ? raw : 0;
@@ -9438,8 +9534,7 @@ function computeIcicleLayout(root, options = {}) {
9438
9534
  layoutLevel(siblings, zoomDepth + 1, 0, 0, 1, zoomNode.item.key);
9439
9535
  return rects;
9440
9536
  }
9441
- //#endregion
9442
- //#region src/icicle-tree/icicle-view-state.ts
9537
+ // src/icicle-tree/icicle-view-state.ts
9443
9538
  /**
9444
9539
  * - `found` — every key matched: `nodes[i]` is the node for `keys[i]`.
9445
9540
  * - `load` — `node` (at `depth`; root's children are `0`) must load its
@@ -9480,8 +9575,7 @@ function applyHostScroll(el, scroll) {
9480
9575
  const left = scroll.left === void 0 || scrollToOffset(el, scroll.left, `horizontal`);
9481
9576
  return top && left;
9482
9577
  }
9483
- //#endregion
9484
- //#region src/icicle-tree/keyboard.ts
9578
+ // src/icicle-tree/keyboard.ts
9485
9579
  /**
9486
9580
  * Rect the cursor moves to for `key`, or `undefined` when the key isn't a
9487
9581
  * navigation key or there's nowhere to go. With no current rect, any
@@ -9496,7 +9590,7 @@ function icicleKeyTarget(rects, current, key) {
9496
9590
  `ArrowRight`,
9497
9591
  `ArrowUp`,
9498
9592
  `ArrowDown`
9499
- ].includes(key)) return void 0;
9593
+ ].includes(key)) return;
9500
9594
  if (!current) return rects[0];
9501
9595
  switch (key) {
9502
9596
  case `ArrowLeft`:
@@ -9509,8 +9603,7 @@ function icicleKeyTarget(rects, current, key) {
9509
9603
  default: return rects.find((r) => r.parentKey === current.node.item.key);
9510
9604
  }
9511
9605
  }
9512
- //#endregion
9513
- //#region src/icicle-tree/styles.ts
9606
+ // src/icicle-tree/styles.ts
9514
9607
  /** Shadow-DOM styles for `ixfx-icicletree-list`. */
9515
9608
  const icicleTreeStyles = css`
9516
9609
  :host {
@@ -9691,8 +9784,7 @@ const icicleTreeStyles = css`
9691
9784
  font-size: var(--text-s);
9692
9785
  }
9693
9786
  `;
9694
- //#endregion
9695
- //#region src/icicle-tree/icicletree-list.ts
9787
+ // src/icicle-tree/icicletree-list.ts
9696
9788
  let IcicleTreeListElement = class IcicleTreeListElement extends LitElement {
9697
9789
  constructor(..._args) {
9698
9790
  super(..._args);
@@ -10508,8 +10600,7 @@ __decorate([state()], IcicleTreeListElement.prototype, "_zoomKey", void 0);
10508
10600
  __decorate([property({ attribute: false })], IcicleTreeListElement.prototype, "restoreLoads", void 0);
10509
10601
  __decorate([query(`#icicle-tooltip`)], IcicleTreeListElement.prototype, "_tooltipEl", void 0);
10510
10602
  IcicleTreeListElement = __decorate([safeCustomElement(`ixfx-icicletree-list`)], IcicleTreeListElement);
10511
- //#endregion
10512
- //#region src/multicol-list/categories.ts
10603
+ // src/multicol-list/categories.ts
10513
10604
  /** A group node only organises the picker menu; it is not a selectable category. */
10514
10605
  function isGroup(category) {
10515
10606
  return category.children !== void 0 && category.children.length > 0;
@@ -10530,8 +10621,7 @@ function findCategory(categories, key) {
10530
10621
  function findLeafCategory(categories, key) {
10531
10622
  return flattenCategories(categories).find((c) => c.key === key);
10532
10623
  }
10533
- //#endregion
10534
- //#region src/multicol-list/multicol-view-state.ts
10624
+ // src/multicol-list/multicol-view-state.ts
10535
10625
  /**
10536
10626
  * Pure helpers for `ixfx-multicol-list` view state. The element runs these
10537
10627
  * when a state is restored, when `categories` change (so saved columns whose
@@ -10660,11 +10750,9 @@ function restoreColumnScroll(host, scroll) {
10660
10750
  if (!row) return false;
10661
10751
  return restoreElementScroll(host, row, anchor.offset);
10662
10752
  }
10663
- //#endregion
10664
- //#region src/multicol-list/types.ts
10753
+ // src/multicol-list/types.ts
10665
10754
  const ALL_KEY = `__all__`;
10666
- //#endregion
10667
- //#region src/multicol-list/column.ts
10755
+ // src/multicol-list/column.ts
10668
10756
  /** Sorts by label, honouring direction. 'All' lives outside the list, so it is not special-cased. */
10669
10757
  function sortItems(items, direction) {
10670
10758
  const dir = direction === `desc` ? -1 : 1;
@@ -11278,8 +11366,7 @@ const multicolListStyles = css`
11278
11366
  font-size: var(--text-s);
11279
11367
  }
11280
11368
  `;
11281
- //#endregion
11282
- //#region src/multicol-list/multicol-list.ts
11369
+ // src/multicol-list/multicol-list.ts
11283
11370
  registerIcon(`menu`, `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg>`);
11284
11371
  const DRAG_THRESHOLD = 5;
11285
11372
  let MulticolListElement = class MulticolListElement extends LitElement {
@@ -11997,8 +12084,7 @@ function withoutKey(map, key) {
11997
12084
  next.delete(key);
11998
12085
  return next;
11999
12086
  }
12000
- //#endregion
12001
- //#region src/notifier/pill-renderer.ts
12087
+ // src/notifier/pill-renderer.ts
12002
12088
  const ROW_SPACING = 8;
12003
12089
  const DEFAULT_ROW_HEIGHT = 40;
12004
12090
  const STACK_OFFSET_STEP = 4;
@@ -12189,8 +12275,7 @@ function createPillRenderer(options = {}) {
12189
12275
  setNotifications
12190
12276
  };
12191
12277
  }
12192
- //#endregion
12193
- //#region src/notifier/manager.ts
12278
+ // src/notifier/manager.ts
12194
12279
  const options = {
12195
12280
  renderer: void 0,
12196
12281
  timeout: 4e3,
@@ -12313,10 +12398,9 @@ function dismiss(id) {
12313
12398
  ensureFrontTimer();
12314
12399
  syncRenderer();
12315
12400
  }
12316
- //#endregion
12317
- //#region src/panel/panel-group.ts
12401
+ // src/panel/panel-group.ts
12318
12402
  /** Pointer movement threshold (px) before a press becomes a drag. */
12319
- const DRAG_THRESHOLD_PX$1 = 5;
12403
+ const DRAG_THRESHOLD_PX$2 = 5;
12320
12404
  /**
12321
12405
  * Pure helper: nearest gap index for a pointer position along one axis.
12322
12406
  * `edges` are the [start, end] of each sibling (excluding the drag source),
@@ -12426,7 +12510,7 @@ let PanelGroupElement = class PanelGroupElement extends LitElement {
12426
12510
  if (!state || event.pointerId !== state.pointerId) return;
12427
12511
  const distance = Math.hypot(event.clientX - state.startX, event.clientY - state.startY);
12428
12512
  if (!state.active) {
12429
- if (distance < DRAG_THRESHOLD_PX$1) return;
12513
+ if (distance < DRAG_THRESHOLD_PX$2) return;
12430
12514
  this._beginDrag(event);
12431
12515
  }
12432
12516
  state.ghost?.move(event.clientX, event.clientY);
@@ -12742,8 +12826,7 @@ __decorate([property({
12742
12826
  __decorate([property()], PanelGroupElement.prototype, "gap", void 0);
12743
12827
  __decorate([queryAssignedElements({ slot: `` })], PanelGroupElement.prototype, "_panels", void 0);
12744
12828
  PanelGroupElement = __decorate([safeCustomElement(`ixfx-panel-group`)], PanelGroupElement);
12745
- //#endregion
12746
- //#region src/util/drag.ts
12829
+ // src/util/drag.ts
12747
12830
  function getCoordinates(event) {
12748
12831
  return {
12749
12832
  client: {
@@ -12769,15 +12852,13 @@ function dragLogicStart(downEvent, handler) {
12769
12852
  document.addEventListener(`pointermove`, onMove);
12770
12853
  document.addEventListener(`pointerup`, onUp);
12771
12854
  }
12772
- //#endregion
12773
- //#region src/util/near.ts
12855
+ // src/util/near.ts
12774
12856
  function near(target, range) {
12775
12857
  const min = target - range;
12776
12858
  const max = target + range;
12777
12859
  return (v) => v >= min && v <= max;
12778
12860
  }
12779
- //#endregion
12780
- //#region src/range/range-multi.ts
12861
+ // src/range/range-multi.ts
12781
12862
  let RangeMultiElement = class RangeMultiElement extends LitElement {
12782
12863
  constructor(..._args) {
12783
12864
  super(..._args);
@@ -13260,8 +13341,7 @@ __decorate([property({ type: Number })], RangeMultiElement.prototype, "min", nul
13260
13341
  __decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onInput", null);
13261
13342
  __decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onPointerDown", null);
13262
13343
  RangeMultiElement = __decorate([safeCustomElement(`ixfx-range-multi`)], RangeMultiElement);
13263
- //#endregion
13264
- //#region src/rating/rating.ts
13344
+ // src/rating/rating.ts
13265
13345
  let RatingElement = class RatingElement extends LitElement {
13266
13346
  constructor(..._args) {
13267
13347
  super(..._args);
@@ -13423,19 +13503,16 @@ __decorate([property({
13423
13503
  __decorate([property({ type: String })], RatingElement.prototype, "variant", void 0);
13424
13504
  __decorate([state()], RatingElement.prototype, "_preview", void 0);
13425
13505
  RatingElement = __decorate([safeCustomElement(`ixfx-rating`)], RatingElement);
13426
- //#endregion
13427
- //#region src/util/clamp.ts
13506
+ // src/util/clamp.ts
13428
13507
  function clampValue(v, min, max) {
13429
13508
  return Math.min(Math.max(v, min), max);
13430
13509
  }
13431
- //#endregion
13432
- //#region src/util/geometry.ts
13510
+ // src/util/geometry.ts
13433
13511
  function scale(v, fromMin, fromMax, toMin, toMax) {
13434
13512
  if (fromMax === fromMin) return toMin;
13435
13513
  return toMin + (v - fromMin) / (fromMax - fromMin) * (toMax - toMin);
13436
13514
  }
13437
- //#endregion
13438
- //#region src/shapefill-value/shapefill-value.ts
13515
+ // src/shapefill-value/shapefill-value.ts
13439
13516
  let ShapefillValueElement = class ShapefillValueElement extends WheelNudgeMixin(LitElement) {
13440
13517
  constructor(..._args) {
13441
13518
  super(..._args);
@@ -13720,8 +13797,7 @@ __decorate([property({
13720
13797
  reflect: true
13721
13798
  })], ShapefillValueElement.prototype, "disabled", void 0);
13722
13799
  ShapefillValueElement = __decorate([safeCustomElement(`ixfx-shapefill-value`)], ShapefillValueElement);
13723
- //#endregion
13724
- //#region src/sliding-number/sliding-number.ts
13800
+ // src/sliding-number/sliding-number.ts
13725
13801
  const REEL_DIGITS = Array.from({ length: 30 }, (_, index) => index % 10);
13726
13802
  const SECTION_RANK = {
13727
13803
  lead: 0,
@@ -14145,8 +14221,7 @@ __decorate([property({
14145
14221
  })], SlidingNumberElement.prototype, "respectMotionPreference", void 0);
14146
14222
  __decorate([state()], SlidingNumberElement.prototype, "_cells", void 0);
14147
14223
  SlidingNumberElement = __decorate([safeCustomElement(`ixfx-sliding-number`)], SlidingNumberElement);
14148
- //#endregion
14149
- //#region src/tabs/tab-panel.ts
14224
+ // src/tabs/tab-panel.ts
14150
14225
  let TabPanelElement = class TabPanelElement extends LitElement {
14151
14226
  render() {
14152
14227
  return html`<slot></slot>`;
@@ -14167,8 +14242,7 @@ let TabPanelElement = class TabPanelElement extends LitElement {
14167
14242
  }
14168
14243
  };
14169
14244
  TabPanelElement = __decorate([safeCustomElement(`ixfx-tab-panel`)], TabPanelElement);
14170
- //#endregion
14171
- //#region src/tabs/tab-controller.ts
14245
+ // src/tabs/tab-controller.ts
14172
14246
  /**
14173
14247
  * Connects an `ixfx-tab-list` to an `ixfx-tab-panels` container, handling the
14174
14248
  * wiring between them (header clicks show the matching panel, closing a tab
@@ -14473,8 +14547,7 @@ var TabController = class {
14473
14547
  });
14474
14548
  }
14475
14549
  };
14476
- //#endregion
14477
- //#region src/tabs/tab-panels.ts
14550
+ // src/tabs/tab-panels.ts
14478
14551
  let TabPanelsElement = class TabPanelsElement extends LitElement {
14479
14552
  /**
14480
14553
  * The `ixfx-tab-list` this panels element is associated with, established by
@@ -14573,8 +14646,7 @@ let TabPanelsElement = class TabPanelsElement extends LitElement {
14573
14646
  };
14574
14647
  __decorate([queryAssignedElements()], TabPanelsElement.prototype, "_listItems", void 0);
14575
14648
  TabPanelsElement = __decorate([safeCustomElement(`ixfx-tab-panels`)], TabPanelsElement);
14576
- //#endregion
14577
- //#region src/text-shimmer/text-shimmer.ts
14649
+ // src/text-shimmer/text-shimmer.ts
14578
14650
  let TextShimmerElement = class TextShimmerElement extends LitElement {
14579
14651
  constructor(..._args) {
14580
14652
  super(..._args);
@@ -14650,8 +14722,7 @@ __decorate([property({
14650
14722
  reflect: true
14651
14723
  })], TextShimmerElement.prototype, "paused", void 0);
14652
14724
  TextShimmerElement = __decorate([safeCustomElement(`ixfx-text-shimmer`)], TextShimmerElement);
14653
- //#endregion
14654
- //#region src/toolbar/toolbar-group.ts
14725
+ // src/toolbar/toolbar-group.ts
14655
14726
  let ToolbarGroupElement = class ToolbarGroupElement extends LitElement {
14656
14727
  constructor(..._args) {
14657
14728
  super(..._args);
@@ -14756,11 +14827,10 @@ __decorate([property({
14756
14827
  reflect: true
14757
14828
  })], ToolbarGroupElement.prototype, "reorderable", void 0);
14758
14829
  ToolbarGroupElement = __decorate([safeCustomElement(`ixfx-toolbar-group`)], ToolbarGroupElement);
14759
- //#endregion
14760
- //#region src/toolbar/toolbar.ts
14830
+ // src/toolbar/toolbar.ts
14761
14831
  var _ToolbarElement;
14762
14832
  /** Pointer movement threshold (px) before a press becomes a drag. */
14763
- const DRAG_THRESHOLD_PX = 5;
14833
+ const DRAG_THRESHOLD_PX$1 = 5;
14764
14834
  /**
14765
14835
  * Pure helper: nearest gap index for a pointer position along one axis.
14766
14836
  * `edges` are the [start, end] of each sibling (excluding the drag source),
@@ -14871,7 +14941,7 @@ let ToolbarElement = class ToolbarElement extends LitElement {
14871
14941
  if (!state || event.pointerId !== state.pointerId) return;
14872
14942
  const distance = Math.hypot(event.clientX - state.startX, event.clientY - state.startY);
14873
14943
  if (!state.active) {
14874
- if (distance < DRAG_THRESHOLD_PX) return;
14944
+ if (distance < DRAG_THRESHOLD_PX$1) return;
14875
14945
  this._beginDrag(event);
14876
14946
  }
14877
14947
  state.ghost?.move(event.clientX, event.clientY);
@@ -15408,8 +15478,7 @@ __decorate([query(`.inner`)], ToolbarElement.prototype, "_inner", void 0);
15408
15478
  __decorate([query(`.overflow-popover`)], ToolbarElement.prototype, "_popover", void 0);
15409
15479
  __decorate([query(`slot`)], ToolbarElement.prototype, "_slot", void 0);
15410
15480
  ToolbarElement = _ToolbarElement = __decorate([safeCustomElement(`ixfx-toolbar`)], ToolbarElement);
15411
- //#endregion
15412
- //#region src/treemap/layout.ts
15481
+ // src/treemap/layout.ts
15413
15482
  /** Coerce a raw accessor result to a non-negative finite weight. */
15414
15483
  function normaliseValue$1(raw) {
15415
15484
  return typeof raw === `number` && Number.isFinite(raw) && raw > 0 ? raw : 0;
@@ -15658,8 +15727,7 @@ function computeTreemapLayout(root, options = {}) {
15658
15727
  }, zoomDepth + 1, 0, zoomNode.item.key);
15659
15728
  return rects;
15660
15729
  }
15661
- //#endregion
15662
- //#region src/treemap/treemap-view-state.ts
15730
+ // src/treemap/treemap-view-state.ts
15663
15731
  function indexTreemapKeys(root) {
15664
15732
  const out = /* @__PURE__ */ new Map();
15665
15733
  if (!root) return out;
@@ -15756,8 +15824,7 @@ function reconcileTreemapViewState(input) {
15756
15824
  function samePath(a, b) {
15757
15825
  return a.length === b.length && a.every((k, i) => k === b[i]);
15758
15826
  }
15759
- //#endregion
15760
- //#region src/treemap/treemap-view-state-binding.ts
15827
+ // src/treemap/treemap-view-state-binding.ts
15761
15828
  function createTreemapViewState(host) {
15762
15829
  const { controller } = host;
15763
15830
  /** Key path of the zoom root as last seen — what goes pending if it leaves the tree. */
@@ -15894,8 +15961,7 @@ function createTreemapViewState(host) {
15894
15961
  }
15895
15962
  };
15896
15963
  }
15897
- //#endregion
15898
- //#region src/treemap/treemap-list.ts
15964
+ // src/treemap/treemap-list.ts
15899
15965
  let TreemapListElement = class TreemapListElement extends LitElement {
15900
15966
  constructor(..._args) {
15901
15967
  super(..._args);
@@ -17063,8 +17129,7 @@ __decorate([property({
17063
17129
  __decorate([state()], TreemapListElement.prototype, "_zoomKey", void 0);
17064
17130
  __decorate([property({ attribute: false })], TreemapListElement.prototype, "restoreLoads", void 0);
17065
17131
  TreemapListElement = __decorate([safeCustomElement(`ixfx-treemap-list`)], TreemapListElement);
17066
- //#endregion
17067
- //#region src/twosplit-layout/split-layout.ts
17132
+ // src/twosplit-layout/split-layout.ts
17068
17133
  let TwoSplitLayoutElement = class TwoSplitLayoutElement extends LitElement {
17069
17134
  constructor(..._args) {
17070
17135
  super(..._args);
@@ -17687,8 +17752,7 @@ function sideState(size, collapsed) {
17687
17752
  collapsed
17688
17753
  } : { size };
17689
17754
  }
17690
- //#endregion
17691
- //#region src/util/checkbox.ts
17755
+ // src/util/checkbox.ts
17692
17756
  function isCheckboxLike(el) {
17693
17757
  if (!(el instanceof HTMLElement)) return false;
17694
17758
  return `checked` in el;
@@ -17696,7 +17760,7 @@ function isCheckboxLike(el) {
17696
17760
  function resolveElement(elOrQuery) {
17697
17761
  if (typeof elOrQuery === `string`) {
17698
17762
  const found = document.querySelector(elOrQuery);
17699
- if (!(found instanceof HTMLElement)) throw new Error(`Element not found or not HTMLElement: ${elOrQuery}`);
17763
+ if (!(found instanceof HTMLElement)) throw new TypeError(`Element not found or not HTMLElement: ${elOrQuery}`);
17700
17764
  return found;
17701
17765
  }
17702
17766
  return elOrQuery;
@@ -17739,10 +17803,8 @@ function monitorIndeterminate(targetElOrQuery, watchedElsOrQueries) {
17739
17803
  for (const el of watched) el.removeEventListener(`change`, handleChange);
17740
17804
  };
17741
17805
  }
17742
- //#endregion
17743
- //#region src/index.ts
17806
+ // src/index.ts
17744
17807
  function init() {
17745
17808
  console.log(`Init`);
17746
17809
  }
17747
- //#endregion
17748
- export { AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, CheckedSelect, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DEFAULT_SIBLING_SPACING, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DetailListElement, DockHostElement, DockPanelElement, EMPTY_FLAGS, EMPTY_GROUP_LABEL, EMPTY_KEYS, EditableLabel, EditableNumber, FlatListElement, FormElement, FormGroupElement, FormOptionsElement, FormPartElement, FormRowElement, GridListElement, GroupedItemListerElement, HyperbolicTreeListElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListGroupHeaderElement, ListNativeDragController, ListSearchController, ListSelectionController, MAX_PENDING_KEYS, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NarrowedTextElement, NotificationManager, NotificationPillElement, PARTIAL_DESCRIPTION, PanTextElement, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SCROLL_HOVER_SUPPRESS_ATTR, SUNBURST_PATH_SEPARATOR, SelectHorizElement, ShapefillValueElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SunburstTreeListElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, VIEW_STATE_CHANGE, VIEW_STATE_VERSION, VerticalListElement, ViewStateController, XyPad, addPanelToStack, anchorFromRow, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applyPartialAttributes, applySnapshot, applyTreeDrop, attachTimelineInteractions, bindViewState, bottomDrawerCommandId, buildHighlightTargets, buildModel, capFlags, capKeys, captionForEntry, captureElementScroll, clampToDisk, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, composeIsometry, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeSunburstLayout, computeTreemapLayout, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createScrollHoverGuard, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createValueResolver, createVerticalListAdapter, decomposeViewIsometry, defaultGroupLabel, defaultSunburstValueAccessor, distribute, dropTargetFor, euclideanRadiusForHyperbolicDistance, extractStack, findEmptiedStacks, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleKeyPath, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findStackOf, findStackPathByName, findSunburstId, findSunburstNodeById, findTreemapNode, findTreemapPath, flagsFromRecord, flagsToRecord, geodesicInterpolate, geodesicPath, geodesicSegment, gestureOf, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hyperbolicBranchId, hyperbolicChildIds, hyperbolicDistanceForEuclideanRadius, hyperbolicIdDepth, hyperbolicRelativeFrame, iconBus, identityIsometry, init, insertBeside, invertIsometry, isDragging, isHyperbolicDescendantId, isMultiMode, isPartialKey, isSplit, isStack, isSunburstAncestorId, isViewStateful, keyForElement, keysAsFlags, keysToArray, listItemFadeKeyframes, listSearchStyles, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, norm, normalise, normaliseValue, normalize, onUserScrollIntent, panelGapIndex, parseColourScaleAttr, parseLayout, partitionByGroup, partitionFlags, partitionKeys, poincareDistance, pointerOverAnyHost, prefersReducedMotion, preserveRestoreWeights, pruneDraggedDescendants, readBaseColour, registerFontIcon, registerIcon, registerListSearchCommands, removePanelFromStack, resolveCssVars, resolveGrid, resolveGroupKey, resolveIcicleKeyPath, resolveLeafPath, resolveTracks, restoreElementScroll, rotationIsometry, sameKeySet, scrollToOffset, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, snapshotNonEmptyStacks, startListItemOutAnimation, sunburstChildId, sunburstHasChildren, sunburstIdToPath, sunburstParentId, sunburstPathToId, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toGroupKey, toSnapshot, toggleInSet, toolbarGapIndex, translationFromOrigin, viewIsometry, walk, withoutFlag, wrapRoot };
17810
+ export { AGE_UNITS, AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, CheckedSelect, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DEFAULT_FORCE_OPTIONS, DEFAULT_SIBLING_SPACING, DRAG_THRESHOLD_PX, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DateInputElement, DetailListElement, DockHostElement, DockPanelElement, EASY_CONNECT_MARGIN, EDGE_CORNER_RADIUS, EMPTY_FLAGS, EMPTY_GROUP_LABEL, EMPTY_KEYS, EditableLabel, EditableNumber, FlatListElement, FormElement, FormGroupElement, FormOptionsElement, FormPartElement, FormRowElement, GraphNodeElement, GraphPortElement, GridListElement, GroupedItemListerElement, HyperbolicTreeListElement, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IcicleTreeListElement, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, KeyedElementIndex, LIST_ITEM_MOTION_MS, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LedElement, ListDragSelectController, ListGroupHeaderElement, ListNativeDragController, ListSearchController, ListSelectionController, MARQUEE_THRESHOLD_PX, MAX_BLINK_HZ, MAX_FLOW_SPEED, MAX_PENDING_KEYS, MarqueeController, menu_exports as Menu, MillerBaseElement, MillerListElement, MillerTreeController, MulticolListElement, NODE_SHAPES, NarrowedTextElement, NodeDragController, NodeGraphElement, NotificationManager, NotificationPillElement, PARTIAL_DESCRIPTION, PanTextElement, PanZoomController, PanelElement, PanelGroupElement, PlotDataSeries, PlotHistogram, PlotMultiAxis, PlotSingleAxis, PlotXyAxis, PolarPad, RESIZE_HANDLES, RadialInputElement, RadioGroup, RangeElement, RangeInput, RangeMultiElement, RatingElement, SCROLL_HOVER_SUPPRESS_ATTR, SIZE_UNITS, SUNBURST_PATH_SEPARATOR, SelectHorizElement, ShapefillValueElement, SliderInputElement, SlidingNumberElement, SnackbarElement, SnapContainer, SplitButton, SplitLayoutElement, SplitPanelElement, SunburstTreeListElement, SwipeElement, TabController, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TextShimmerElement, TickledController, TimelineController, TimelineTrackTabElement, TitlebarElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TransitoryLabelElement, TreeBaseElement, TreeController, TreeDataModel, TreeDropController, TreeKeyboardNavController, TreeListElement, TreemapListElement, TwoSplitLayoutElement, UnitInputElement, VIEW_STATE_CHANGE, VIEW_STATE_VERSION, VerticalListElement, ViewStateController, WireDragController, XyPad, addPanelToStack, addWire, anchorFromRow, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applyPartialAttributes, applySnapshot, applyTreeDrop, attachTimelineInteractions, bestUnit, bindViewState, blinkPeriodSeconds, bottomDrawerCommandId, boundsOf, buildHighlightTargets, buildModel, canConnect, capFlags, capKeys, captionForEntry, captureElementScroll, clampToDisk, clampZoom, clearHighlights, collapsedOffset, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, combineSelection, composeIsometry, computeCanonicalPositions, computeColour, computeHyperbolicLayout, computeIcicleLayout, computeLeafGeoms, computeSunburstLayout, computeTreemapLayout, connectContext, createAcCompletionProvider, createDataListSearchAdapter, createDefaultListDragPreview, createElementIncrSearch, createElementListSearchAdapter, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createScrollHoverGuard, createSplit, createStack, createTreeListAdapter, createTreeListSearchAdapter, createValueResolver, createVerticalListAdapter, cycleBlockedNodes, decomposeViewIsometry, defaultGroupLabel, defaultSide, defaultSunburstValueAccessor, distribute, dropTargetFor, edgeId, edgeMidpoint, edgePath, edgeShape, ensurePort, euclideanRadiusForHyperbolicDistance, extendFromSide, extractStack, findEmptiedStacks, findHyperbolicIdOf, findHyperbolicKeyPath, findHyperbolicNode, findHyperbolicPath, findHyperbolicPathById, findIcicleKeyPath, findIcicleNode, findIciclePath, findNode, findPanelNode, findParentOf, findProximityConnection, findSnapTarget, findStackOf, findStackPathByName, findSunburstId, findSunburstNodeById, findTreemapNode, findTreemapPath, findValidWire, fitBounds, fitRects, flagsFromRecord, flagsToRecord, flowToScreen, forceMovement, forcePin, forcePositions, forceState, forceStep, formatDateInput, fromEdges, geodesicInterpolate, geodesicPath, geodesicSegment, gestureOf, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, hasWire, hyperbolicBranchId, hyperbolicChildIds, hyperbolicDistanceForEuclideanRadius, hyperbolicIdDepth, hyperbolicRelativeFrame, iconBus, identityIsometry, inDegreeOf, inEasyConnectZone, incomingEdge, incomingEdges, init, insertBeside, invertIsometry, isDragging, isEditableTarget, isHyperbolicDescendantId, isMultiMode, isNodeShape, isPartialKey, isResizeHandle, isSplit, isStack, isSunburstAncestorId, isViewStateful, keyForElement, keysAsFlags, keysToArray, listItemFadeKeyframes, listSearchStyles, marqueeStyle, measureNode, mobiusAdd, mobiusFromOrigin, mobiusToOrigin, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, nodeGraphStyles, nodesInRect, norm, normalise, normaliseConnection, normaliseValue, normalize, onUserScrollIntent, outDegreeOf, panBy, panelGapIndex, parseColourScaleAttr, parseDateInput, parseLayout, parsePortId, partitionByGroup, partitionFlags, partitionKeys, pickStartPort, poincareDistance, pointerOverAnyHost, polylineMidpoint, polylinePath, polylineShape, portId, prefersReducedMotion, preserveRestoreWeights, proximityFactor, pruneDraggedDescendants, readBaseColour, rectFromPoints, rectGap, rectsIntersect, registerFontIcon, registerIcon, registerListSearchCommands, removeNode, removeNodes, removePanelFromStack, removeWire, renderWires, resizeRect, resolveConnection, resolveCssVars, resolveGrid, resolveGroupKey, resolveIcicleKeyPath, resolveLeafPath, resolveTracks, restoreElementScroll, rotationIsometry, sameKeySet, sanitizeFlowSpeed, screenToFlow, scrollToOffset, selectionAfterEdgeClick, selectionAfterNodePress, serializeLayout, setActive, setIconFont, setPanelRestoreWeight, settled, shapeSpec, smoothStep, snapshotNonEmptyStacks, startListItemOutAnimation, stepPoints, sunburstChildId, sunburstHasChildren, sunburstIdToPath, sunburstParentId, sunburstPathToId, svgToDataUri, swapLeaves, tickledItemStyles, tickledStyles, timelineStyles, toBase, toEdges, toGroupKey, toNodeGraph, toSnapshot, toggleInSet, toolbarGapIndex, translationFromOrigin, typesCompatible, viewIsometry, walk, wantsMarquee, withEntry, withWireFlow, withoutFlag, wrapRoot, zoomAt };