@ixfx/components 0.16.5 → 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 (217) hide show
  1. package/bundle/index.d.ts +4043 -1746
  2. package/bundle/index.js +1061 -204
  3. package/bundle/rolldown-runtime-CAoDHAWh.js +1 -0
  4. package/dist/ac-text.d.ts +11 -14
  5. package/dist/ac-text.js +8 -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 +9 -12
  36. package/dist/date-input.js +3 -4
  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 +364 -491
  90. package/dist/index.js +139 -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 +11 -14
  197. package/dist/unit-input.js +3 -4
  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 +1 -0
  210. package/docs-user/index.json +7 -2
  211. package/docs-user/llms.txt +1 -0
  212. package/docs-user/node-graph.md +376 -0
  213. package/llms.txt +1 -0
  214. package/package.json +39 -24
  215. package/bundle/rolldown-runtime-CEoa-xHZ.js +0 -1
  216. package/dist/interaction-E-uMGHkJ.js +0 -3
  217. package/dist/rolldown-runtime-D7D4PA-g.js +0 -13
package/dist/index.js CHANGED
@@ -1,78 +1,79 @@
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";
30
+ import { t as DataGridElement } from "./data-grid-BcO3SMac.js";
31
+ import "./interaction-8Kbbf6xN.js";
42
32
  import { DateInputElement, formatDateInput, parseDateInput } from "./date-input.js";
43
- import { t as DetailListElement } from "./detail-list-w3GXKO2k.js";
44
- import { ListGroupHeaderElement } from "./list-group-header.js";
45
- 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";
46
- import { t as TabListElement } from "./tab-list-R_bGbDvO.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";
47
37
  import { EditableLabel } from "./editable-label.js";
48
- import { t as resolveAxisStep } from "./keyboard-B5xD7Fz-.js";
49
- import { t as WheelNudgeMixin } from "./wheel-nudge-D5rmht3v.js";
50
- import { n as EditableNumber, t as LabelledSliderInput } from "./labelled-slider-input-FdCRi6st.js";
51
- import { t as VerticalListElement } from "./vertical-list-o5hfqH87.js";
38
+ import { n as EditableNumber, t as LabelledSliderInput } from "./labelled-slider-input-CfRKd5kC.js";
52
39
  import { FlatListElement } from "./flat-list.js";
53
- import { n as formStyles, r as adoptLightDomStyles, t as FormElement } from "./form-CY0nibZ5.js";
54
- import { t as GridListElement } from "./grid-list-Cz2tKcNZ.js";
55
- 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";
56
42
  import { GroupedItemListerElement } from "./grouped-item-lister.js";
57
- import { a as resolveKeyPath, i as reconcileSelection$1, n as reconcileCursor, t as pathFromJson } from "./tree-CftHwtEb.js";
58
- import { t as IxfxHexEditorElement } from "./hex-editor-DiYpgIKs.js";
59
- 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";
60
50
  import { LabelledRadialInput } from "./labelled-radial-input.js";
61
- import { t as SliderInputElement } from "./slider-input-ByHdotzp.js";
51
+ import { LabelledRangeInput } from "./labelled-range-input.js";
62
52
  import { LedElement } from "./led.js";
63
- 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";
64
59
  import { NotificationPillElement } from "./notifier.js";
65
- 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";
66
63
  import { PolarPad } from "./polar-pad.js";
67
- import { t as tooltipValueStyles } from "./tooltip-CJt3WLmN.js";
64
+ import { t as RadialInputElement } from "./radial-input-Cxys4TOG.js";
68
65
  import { RangeInput } from "./range-input.js";
66
+ import { t as tooltipValueStyles } from "./tooltip-B7t_u6EY.js";
69
67
  import { RangeElement } from "./range.js";
70
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";
71
72
  import { SnackbarElement } from "./snackbar.js";
72
73
  import { SnapContainer } from "./snap-container.js";
73
- 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";
74
75
  import { SwipeElement } from "./swipe.js";
75
- 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";
76
77
  import { TransitoryLabelElement } from "./transitory-label.js";
77
78
  import { AGE_UNITS, SIZE_UNITS, UnitInputElement, bestUnit, toBase } from "./unit-input.js";
78
79
  import { XyPad } from "./xy-pad.js";
@@ -84,7 +85,7 @@ import { repeat } from "lit/directives/repeat.js";
84
85
  import { Trees } from "@ixfx/collections";
85
86
  import { clamp, clamper, scaler } from "@ixfx/numbers";
86
87
  import { live } from "lit/directives/live.js";
87
- //#region src/bottom-drawer/bottom-drawer.ts
88
+ // src/bottom-drawer/bottom-drawer.ts
88
89
  /** Builds the command id for a named drawer's command, e.g. `inspector.expand`. */
89
90
  function bottomDrawerCommandId(name, command) {
90
91
  return `${name.trim()}.${command}`;
@@ -576,8 +577,7 @@ __decorate([property({ type: String })], BottomDrawerElement.prototype, "name",
576
577
  __decorate([property({ attribute: false })], BottomDrawerElement.prototype, "registry", void 0);
577
578
  __decorate([state()], BottomDrawerElement.prototype, "_dragHeight", void 0);
578
579
  BottomDrawerElement = __decorate([safeCustomElement(`ixfx-bottom-drawer`)], BottomDrawerElement);
579
- //#endregion
580
- //#region src/button/radio-group.ts
580
+ // src/button/radio-group.ts
581
581
  let RadioGroup = class RadioGroup extends LitElement {
582
582
  constructor(..._args) {
583
583
  super(..._args);
@@ -916,8 +916,7 @@ __decorate([state()], RadioGroup.prototype, "_computedItems", void 0);
916
916
  __decorate([state()], RadioGroup.prototype, "_icons", void 0);
917
917
  __decorate([query(`slot`)], RadioGroup.prototype, "_slot", void 0);
918
918
  RadioGroup = __decorate([safeCustomElement(`ixfx-radio-group`)], RadioGroup);
919
- //#endregion
920
- //#region src/interaction/tree-keyboard-controller.ts
919
+ // src/interaction/tree-keyboard-controller.ts
921
920
  var TreeKeyboardNavController = class {
922
921
  constructor(host, tickled, config) {
923
922
  this.handleKeyDown = (event) => {
@@ -1009,8 +1008,7 @@ var TreeKeyboardNavController = class {
1009
1008
  this.callbacks.onSelect?.(currentId);
1010
1009
  }
1011
1010
  };
1012
- //#endregion
1013
- //#region src/button/split-button.ts
1011
+ // src/button/split-button.ts
1014
1012
  let SplitButton = class SplitButton extends ButtonElement {
1015
1013
  constructor(..._args) {
1016
1014
  super(..._args);
@@ -1414,8 +1412,7 @@ __decorate([state()], SplitButton.prototype, "_dynamicItems", void 0);
1414
1412
  __decorate([state()], SplitButton.prototype, "_loadingItems", void 0);
1415
1413
  __decorate([state()], SplitButton.prototype, "_menuHasItems", void 0);
1416
1414
  SplitButton = __decorate([safeCustomElement(`ixfx-split-button`)], SplitButton);
1417
- //#endregion
1418
- //#region src/common/view-state/bind.ts
1415
+ // src/common/view-state/bind.ts
1419
1416
  /** Whether `el` implements the view-state API. */
1420
1417
  function isViewStateful(el) {
1421
1418
  return typeof el === `object` && el !== null && typeof el.getViewState === `function` && typeof el.setViewState === `function`;
@@ -1454,8 +1451,7 @@ function bindViewState(el, binding) {
1454
1451
  globalThis.removeEventListener?.(`pagehide`, onHide);
1455
1452
  };
1456
1453
  }
1457
- //#endregion
1458
- //#region src/crumbs/crumb-path-controller.ts
1454
+ // src/crumbs/crumb-path-controller.ts
1459
1455
  var CrumbPathController = class {
1460
1456
  #element = null;
1461
1457
  #pathed;
@@ -1540,8 +1536,7 @@ var CrumbPathController = class {
1540
1536
  return [];
1541
1537
  }
1542
1538
  };
1543
- //#endregion
1544
- //#region src/crumbs/crumb-path.ts
1539
+ // src/crumbs/crumb-path.ts
1545
1540
  const INVALID_ANCHOR_CHARS_RE = /[^\w-]/g;
1546
1541
  let CrumbPathElement = class CrumbPathElement extends LitElement {
1547
1542
  constructor(..._args) {
@@ -2481,8 +2476,7 @@ __decorate([state()], CrumbPathElement.prototype, "_dragCumPath", void 0);
2481
2476
  __decorate([state()], CrumbPathElement.prototype, "_dropCumPath", void 0);
2482
2477
  __decorate([state()], CrumbPathElement.prototype, "_hintSegments", void 0);
2483
2478
  CrumbPathElement = __decorate([safeCustomElement(`ixfx-crumb-path`)], CrumbPathElement);
2484
- //#endregion
2485
- //#region src/data-table/data-table.ts
2479
+ // src/data-table/data-table.ts
2486
2480
  let DataTableElement = class DataTableElement extends LitElement {
2487
2481
  constructor(..._args) {
2488
2482
  super(..._args);
@@ -2746,8 +2740,7 @@ __decorate([state()], DataTableElement.prototype, "_tickled", void 0);
2746
2740
  __decorate([state()], DataTableElement.prototype, "_detailIndex", void 0);
2747
2741
  __decorate([state()], DataTableElement.prototype, "_stacked", void 0);
2748
2742
  DataTableElement = __decorate([safeCustomElement(`ixfx-data-table`)], DataTableElement);
2749
- //#endregion
2750
- //#region src/dock/dock-drag.ts
2743
+ // src/dock/dock-drag.ts
2751
2744
  let activeDrag = null;
2752
2745
  const dragHosts = /* @__PURE__ */ new Set();
2753
2746
  function registerDockHost(host) {
@@ -2913,8 +2906,7 @@ function isDragging() {
2913
2906
  function getActiveDragPanelId() {
2914
2907
  return activeDrag?.panelId ?? null;
2915
2908
  }
2916
- //#endregion
2917
- //#region src/dock/dock-maximize.ts
2909
+ // src/dock/dock-maximize.ts
2918
2910
  const MAXIMIZED_ATTR = `data-dock-maximized`;
2919
2911
  /** Position `leaf` over `hostRect` (viewport coordinates). */
2920
2912
  function placeOverHost(leaf, hostRect) {
@@ -2970,8 +2962,7 @@ const maximizeCss = `
2970
2962
  background: transparent;
2971
2963
  }
2972
2964
  `;
2973
- //#endregion
2974
- //#region src/dock/dock-model.ts
2965
+ // src/dock/dock-model.ts
2975
2966
  /**
2976
2967
  * The dock model is a plain mutable tree owned exclusively by the host
2977
2968
  * element. Mutators below change the tree in place; the host calls
@@ -3618,8 +3609,7 @@ function findEmptiedStacks(before, after) {
3618
3609
  }
3619
3610
  return emptied;
3620
3611
  }
3621
- //#endregion
3622
- //#region src/dock/dock-view-state.ts
3612
+ // src/dock/dock-view-state.ts
3623
3613
  /**
3624
3614
  * Pure helpers for `ixfx-dock-host` view state. The dock's layout is close to
3625
3615
  * structure, so the saved state is the layout tree itself; these helpers
@@ -3658,8 +3648,7 @@ function withoutAbsentPanels(layout, isPresent) {
3658
3648
  root: normalize(root)
3659
3649
  };
3660
3650
  }
3661
- //#endregion
3662
- //#region src/tabs/tab-list-item.ts
3651
+ // src/tabs/tab-list-item.ts
3663
3652
  const resizeHandlers = /* @__PURE__ */ new WeakMap();
3664
3653
  let resizeObserver;
3665
3654
  function sharedResizeObserver() {
@@ -4088,10 +4077,9 @@ __decorate([state()], TabListItemElement.prototype, "_compact", void 0);
4088
4077
  __decorate([state()], TabListItemElement.prototype, "_hasToolbarContent", void 0);
4089
4078
  __decorate([state()], TabListItemElement.prototype, "_hasStatusContent", void 0);
4090
4079
  TabListItemElement = __decorate([safeCustomElement(`ixfx-tab-list-item`)], TabListItemElement);
4091
- //#endregion
4092
- //#region src/dock/dock-panel.ts
4080
+ // src/dock/dock-panel.ts
4093
4081
  /** Pointer movement threshold before a titlebar press becomes a dock drag. */
4094
- const DRAG_THRESHOLD_PX$4 = 5;
4082
+ const DRAG_THRESHOLD_PX$5 = 5;
4095
4083
  let DockPanelElement = class DockPanelElement extends LitElement {
4096
4084
  constructor(..._args) {
4097
4085
  super(..._args);
@@ -4123,7 +4111,7 @@ let DockPanelElement = class DockPanelElement extends LitElement {
4123
4111
  this._onPointerMove = (event) => {
4124
4112
  if (this._dragPointerId === null || event.pointerId !== this._dragPointerId) return;
4125
4113
  if (!this._dragStarted) {
4126
- 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;
4127
4115
  this._dragStarted = true;
4128
4116
  const pointerId = this._dragPointerId;
4129
4117
  this._teardownDragListeners();
@@ -4273,12 +4261,11 @@ __decorate([property({
4273
4261
  })], DockPanelElement.prototype, "presentation", void 0);
4274
4262
  __decorate([state()], DockPanelElement.prototype, "_collapsed", void 0);
4275
4263
  DockPanelElement = __decorate([safeCustomElement(`ixfx-dock-panel`)], DockPanelElement);
4276
- //#endregion
4277
- //#region src/dock/dock-host.ts
4264
+ // src/dock/dock-host.ts
4278
4265
  /** Fraction of the leaf rect (from each edge) that forms the split bands. */
4279
4266
  const BAND = .25;
4280
4267
  /** Pointer movement threshold before a press becomes a dock drag (matches tab-list). */
4281
- const DRAG_THRESHOLD_PX$3 = 5;
4268
+ const DRAG_THRESHOLD_PX$4 = 5;
4282
4269
  /** Tab items of a strip, or the stand-in tab of a hidden strip's drop hint. */
4283
4270
  const STRIP_ITEMS = `ixfx-tab-list-item, .ghost-tab`;
4284
4271
  /** Tolerance (px) when matching a child gutter endpoint to a parent gutter line. */
@@ -4416,7 +4403,7 @@ let DockHostElement = class DockHostElement extends LitElement {
4416
4403
  this._onTabDragMove = (event) => {
4417
4404
  const pending = this._tabDragPending;
4418
4405
  if (pending === null || event.pointerId !== pending.pointerId) return;
4419
- 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;
4420
4407
  this._tabDragPending = null;
4421
4408
  this._teardownTabDragListeners();
4422
4409
  this._suppressNextClick();
@@ -6072,8 +6059,7 @@ function computeStripGapIndex(strip, clientX, _clientY) {
6072
6059
  }
6073
6060
  return items.length;
6074
6061
  }
6075
- //#endregion
6076
- //#region src/form/form-group.ts
6062
+ // src/form/form-group.ts
6077
6063
  let FormGroupElement = class FormGroupElement extends LitElement {
6078
6064
  constructor(..._args) {
6079
6065
  super(..._args);
@@ -6129,8 +6115,7 @@ __decorate([property({
6129
6115
  reflect: true
6130
6116
  })], FormGroupElement.prototype, "labelAlign", void 0);
6131
6117
  FormGroupElement = __decorate([safeCustomElement(`ixfx-form-group`)], FormGroupElement);
6132
- //#endregion
6133
- //#region src/form/form-options.ts
6118
+ // src/form/form-options.ts
6134
6119
  let idCounter$1 = 0;
6135
6120
  let FormOptionsElement = class FormOptionsElement extends LitElement {
6136
6121
  constructor(..._args) {
@@ -6172,8 +6157,7 @@ __decorate([property({
6172
6157
  reflect: true
6173
6158
  })], FormOptionsElement.prototype, "orientation", void 0);
6174
6159
  FormOptionsElement = __decorate([safeCustomElement(`ixfx-form-options`)], FormOptionsElement);
6175
- //#endregion
6176
- //#region src/form/form-part.ts
6160
+ // src/form/form-part.ts
6177
6161
  let idCounter = 0;
6178
6162
  let FormPartElement = class FormPartElement extends LitElement {
6179
6163
  constructor(..._args) {
@@ -6203,8 +6187,7 @@ let FormPartElement = class FormPartElement extends LitElement {
6203
6187
  };
6204
6188
  __decorate([property({ type: String })], FormPartElement.prototype, "label", void 0);
6205
6189
  FormPartElement = __decorate([safeCustomElement(`ixfx-form-part`)], FormPartElement);
6206
- //#endregion
6207
- //#region src/form/form-row.ts
6190
+ // src/form/form-row.ts
6208
6191
  let FormRowElement = class FormRowElement extends LitElement {
6209
6192
  createRenderRoot() {
6210
6193
  return this;
@@ -6227,8 +6210,7 @@ let FormRowElement = class FormRowElement extends LitElement {
6227
6210
  }
6228
6211
  };
6229
6212
  FormRowElement = __decorate([safeCustomElement(`ixfx-form-row`)], FormRowElement);
6230
- //#endregion
6231
- //#region src/grouped-item-lister/tree-list-adapter.ts
6213
+ // src/grouped-item-lister/tree-list-adapter.ts
6232
6214
  /**
6233
6215
  * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
6234
6216
  * an `ixfx-tree-list` internally.
@@ -6388,8 +6370,7 @@ function createTreeListAdapter(toTreeItem, options) {
6388
6370
  });
6389
6371
  return adapter;
6390
6372
  }
6391
- //#endregion
6392
- //#region src/grouped-item-lister/vertical-list-adapter.ts
6373
+ // src/grouped-item-lister/vertical-list-adapter.ts
6393
6374
  /**
6394
6375
  * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
6395
6376
  * an `ixfx-vertical-list` internally.
@@ -6517,8 +6498,7 @@ function createVerticalListAdapter(renderItem, options) {
6517
6498
  });
6518
6499
  return adapter;
6519
6500
  }
6520
- //#endregion
6521
- //#region src/hyperbolic-tree/child-preview.ts
6501
+ // src/hyperbolic-tree/child-preview.ts
6522
6502
  /** Lucide `arrow-up`. */
6523
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>`;
6524
6504
  /** Picks the popover's side for a node anchored at `anchor` in a `width` x `height` host. */
@@ -6627,8 +6607,7 @@ function createChildPreviewTiming(host) {
6627
6607
  }
6628
6608
  };
6629
6609
  }
6630
- //#endregion
6631
- //#region src/hyperbolic-tree/poincare-math.ts
6610
+ // src/hyperbolic-tree/poincare-math.ts
6632
6611
  const EPSILON = 1e-9;
6633
6612
  function complexMul(a, b) {
6634
6613
  return {
@@ -6827,8 +6806,7 @@ function geodesicPath(p, q, scale = 1) {
6827
6806
  if (segment.kind === `line` || segment.radius * scale > 1e6) return `${start} L${fmt(q.x)},${fmt(q.y)}`;
6828
6807
  return `${start} A${fmt(segment.radius)},${fmt(segment.radius)} 0 0 ${segment.sweep} ${fmt(q.x)},${fmt(q.y)}`;
6829
6808
  }
6830
- //#endregion
6831
- //#region src/hyperbolic-tree/view-motion.ts
6809
+ // src/hyperbolic-tree/view-motion.ts
6832
6810
  /** Wrap an angle into `(-π, π]`. */
6833
6811
  function wrapAngle(theta) {
6834
6812
  return Math.atan2(Math.sin(theta), Math.cos(theta));
@@ -6874,8 +6852,7 @@ function focusTransition(from) {
6874
6852
  }
6875
6853
  };
6876
6854
  }
6877
- //#endregion
6878
- //#region src/hyperbolic-tree/gestures.ts
6855
+ // src/hyperbolic-tree/gestures.ts
6879
6856
  const MIN_ZOOM = .5;
6880
6857
  /**
6881
6858
  * Keep the view center over the disk (so you can't zoom off into empty
@@ -6904,7 +6881,7 @@ function clampZoomState(state) {
6904
6881
  * Zoom by `factor` keeping the disk point under `screenPoint` fixed on
6905
6882
  * screen — the "zoom where I'm pointing" behaviour of maps and image viewers.
6906
6883
  */
6907
- function zoomAt(state, screenPoint, factor) {
6884
+ function zoomAt$1(state, screenPoint, factor) {
6908
6885
  const zoom = Math.min(8, Math.max(MIN_ZOOM, state.zoom * factor));
6909
6886
  const disk = screenToDisk(screenPoint, state);
6910
6887
  return clampZoomState({
@@ -7046,7 +7023,7 @@ function createGestureHandlers(host) {
7046
7023
  event.preventDefault();
7047
7024
  const delta = event.deltaMode === 1 ? event.deltaY * 16 : event.deltaY;
7048
7025
  const factor = Math.exp(-delta * (modified ? .01 : .002));
7049
- host.setZoomState(zoomAt(host.zoomState(), screen, factor));
7026
+ host.setZoomState(zoomAt$1(host.zoomState(), screen, factor));
7050
7027
  },
7051
7028
  /** Whether the view is being dragged right now. */
7052
7029
  isDragging() {
@@ -7064,8 +7041,7 @@ function createGestureHandlers(host) {
7064
7041
  }
7065
7042
  };
7066
7043
  }
7067
- //#endregion
7068
- //#region src/hyperbolic-tree/layout.ts
7044
+ // src/hyperbolic-tree/layout.ts
7069
7045
  const ID_SEPARATOR = `\u001F`;
7070
7046
  /**
7071
7047
  * Path-derived ids for `children` of the node with id `parentId`. `TreeItem.key`
@@ -7478,8 +7454,7 @@ function computeHyperbolicLayout(root, options = {}) {
7478
7454
  edges
7479
7455
  };
7480
7456
  }
7481
- //#endregion
7482
- //#region src/hyperbolic-tree/hyperbolic-view-state.ts
7457
+ // src/hyperbolic-tree/hyperbolic-view-state.ts
7483
7458
  function indexHyperbolicKeys(root) {
7484
7459
  const byKey = /* @__PURE__ */ new Map();
7485
7460
  const nodes = /* @__PURE__ */ new Set();
@@ -7621,8 +7596,7 @@ function reconcileHyperbolicViewState(input) {
7621
7596
  function zoomFromJson(value) {
7622
7597
  return typeof value === `number` && Number.isFinite(value) && value > 0 ? value : void 0;
7623
7598
  }
7624
- //#endregion
7625
- //#region src/hyperbolic-tree/hyperbolic-view-state-binding.ts
7599
+ // src/hyperbolic-tree/hyperbolic-view-state-binding.ts
7626
7600
  function createHyperbolicViewState(host) {
7627
7601
  const { controller } = host;
7628
7602
  /** Key path of the centre as last seen — what goes pending if it leaves the tree. */
@@ -7773,8 +7747,7 @@ function createHyperbolicViewState(host) {
7773
7747
  }
7774
7748
  };
7775
7749
  }
7776
- //#endregion
7777
- //#region src/hyperbolic-tree/hyperbolictree-styles.ts
7750
+ // src/hyperbolic-tree/hyperbolictree-styles.ts
7778
7751
  /** Shadow-DOM styles for `ixfx-hyperbolictree-list`. */
7779
7752
  const hyperbolicTreeStyles = css`
7780
7753
  :host {
@@ -8036,8 +8009,7 @@ const hyperbolicTreeStyles = css`
8036
8009
  color: var(--surface-muted-text);
8037
8010
  }
8038
8011
  `;
8039
- //#endregion
8040
- //#region src/hyperbolic-tree/keyboard.ts
8012
+ // src/hyperbolic-tree/keyboard.ts
8041
8013
  const unhandled = {
8042
8014
  action: { kind: `none` },
8043
8015
  handled: false
@@ -8099,8 +8071,7 @@ function resolveKeyboardAction(key, root, focusId, visibleNodes) {
8099
8071
  default: return unhandled;
8100
8072
  }
8101
8073
  }
8102
- //#endregion
8103
- //#region src/hyperbolic-tree/lazy-children.ts
8074
+ // src/hyperbolic-tree/lazy-children.ts
8104
8075
  function createLazyChildLoader(source, onChange) {
8105
8076
  const pending = /* @__PURE__ */ new Set();
8106
8077
  const aborters = /* @__PURE__ */ new Map();
@@ -8148,8 +8119,7 @@ function createLazyChildLoader(source, onChange) {
8148
8119
  }
8149
8120
  };
8150
8121
  }
8151
- //#endregion
8152
- //#region src/hyperbolic-tree/render-utils.ts
8122
+ // src/hyperbolic-tree/render-utils.ts
8153
8123
  /**
8154
8124
  * The Poincaré disk's conformal factor relative to the origin, `1 − |p|²`:
8155
8125
  * how much a shape of fixed hyperbolic size shrinks (in Euclidean terms) when
@@ -8347,8 +8317,7 @@ function boxGeometry(n, options) {
8347
8317
  function boxLabelShape(id, center, geometry, angle = 0) {
8348
8318
  return orientedRect(id, center, geometry.width * geometry.scale / 2, geometry.height * geometry.scale / 2, angle);
8349
8319
  }
8350
- //#endregion
8351
- //#region src/hyperbolic-tree/render-context.ts
8320
+ // src/hyperbolic-tree/render-context.ts
8352
8321
  const HORIZONTAL = {
8353
8322
  direction: 0,
8354
8323
  textAngle: 0,
@@ -8510,8 +8479,7 @@ function paintOrder(nodes, ctx, isTickled) {
8510
8479
  const distance = (n) => n.position.x ** 2 + n.position.y ** 2;
8511
8480
  return [...nodes].sort((a, b) => layer(a) - layer(b) || distance(b) - distance(a));
8512
8481
  }
8513
- //#endregion
8514
- //#region src/hyperbolic-tree/render-templates.ts
8482
+ // src/hyperbolic-tree/render-templates.ts
8515
8483
  /**
8516
8484
  * Sanitizes a node key into a token safe to use inside a `part` attribute /
8517
8485
  * `::part()` selector — arbitrary key characters (spaces, quotes, etc.)
@@ -8632,8 +8600,7 @@ function renderEdges(edges, byId, branches, edgeRenderer) {
8632
8600
  return renderDefaultEdge(edge, branches);
8633
8601
  });
8634
8602
  }
8635
- //#endregion
8636
- //#region src/hyperbolic-tree/hyperbolictree-list.ts
8603
+ // src/hyperbolic-tree/hyperbolictree-list.ts
8637
8604
  let HyperbolicTreeListElement = class HyperbolicTreeListElement extends LitElement {
8638
8605
  constructor(..._args) {
8639
8606
  super(..._args);
@@ -9464,8 +9431,7 @@ __decorate([state()], HyperbolicTreeListElement.prototype, "_zoomOffset", void 0
9464
9431
  __decorate([state()], HyperbolicTreeListElement.prototype, "_previewId", void 0);
9465
9432
  __decorate([state()], HyperbolicTreeListElement.prototype, "_hostSize", void 0);
9466
9433
  HyperbolicTreeListElement = __decorate([safeCustomElement(`ixfx-hyperbolictree-list`)], HyperbolicTreeListElement);
9467
- //#endregion
9468
- //#region src/icicle-tree/layout.ts
9434
+ // src/icicle-tree/layout.ts
9469
9435
  /** Coerce a raw accessor result to a non-negative finite weight. */
9470
9436
  function normaliseValue(raw) {
9471
9437
  return typeof raw === `number` && Number.isFinite(raw) && raw > 0 ? raw : 0;
@@ -9568,8 +9534,7 @@ function computeIcicleLayout(root, options = {}) {
9568
9534
  layoutLevel(siblings, zoomDepth + 1, 0, 0, 1, zoomNode.item.key);
9569
9535
  return rects;
9570
9536
  }
9571
- //#endregion
9572
- //#region src/icicle-tree/icicle-view-state.ts
9537
+ // src/icicle-tree/icicle-view-state.ts
9573
9538
  /**
9574
9539
  * - `found` — every key matched: `nodes[i]` is the node for `keys[i]`.
9575
9540
  * - `load` — `node` (at `depth`; root's children are `0`) must load its
@@ -9610,8 +9575,7 @@ function applyHostScroll(el, scroll) {
9610
9575
  const left = scroll.left === void 0 || scrollToOffset(el, scroll.left, `horizontal`);
9611
9576
  return top && left;
9612
9577
  }
9613
- //#endregion
9614
- //#region src/icicle-tree/keyboard.ts
9578
+ // src/icicle-tree/keyboard.ts
9615
9579
  /**
9616
9580
  * Rect the cursor moves to for `key`, or `undefined` when the key isn't a
9617
9581
  * navigation key or there's nowhere to go. With no current rect, any
@@ -9626,7 +9590,7 @@ function icicleKeyTarget(rects, current, key) {
9626
9590
  `ArrowRight`,
9627
9591
  `ArrowUp`,
9628
9592
  `ArrowDown`
9629
- ].includes(key)) return void 0;
9593
+ ].includes(key)) return;
9630
9594
  if (!current) return rects[0];
9631
9595
  switch (key) {
9632
9596
  case `ArrowLeft`:
@@ -9639,8 +9603,7 @@ function icicleKeyTarget(rects, current, key) {
9639
9603
  default: return rects.find((r) => r.parentKey === current.node.item.key);
9640
9604
  }
9641
9605
  }
9642
- //#endregion
9643
- //#region src/icicle-tree/styles.ts
9606
+ // src/icicle-tree/styles.ts
9644
9607
  /** Shadow-DOM styles for `ixfx-icicletree-list`. */
9645
9608
  const icicleTreeStyles = css`
9646
9609
  :host {
@@ -9821,8 +9784,7 @@ const icicleTreeStyles = css`
9821
9784
  font-size: var(--text-s);
9822
9785
  }
9823
9786
  `;
9824
- //#endregion
9825
- //#region src/icicle-tree/icicletree-list.ts
9787
+ // src/icicle-tree/icicletree-list.ts
9826
9788
  let IcicleTreeListElement = class IcicleTreeListElement extends LitElement {
9827
9789
  constructor(..._args) {
9828
9790
  super(..._args);
@@ -10638,8 +10600,7 @@ __decorate([state()], IcicleTreeListElement.prototype, "_zoomKey", void 0);
10638
10600
  __decorate([property({ attribute: false })], IcicleTreeListElement.prototype, "restoreLoads", void 0);
10639
10601
  __decorate([query(`#icicle-tooltip`)], IcicleTreeListElement.prototype, "_tooltipEl", void 0);
10640
10602
  IcicleTreeListElement = __decorate([safeCustomElement(`ixfx-icicletree-list`)], IcicleTreeListElement);
10641
- //#endregion
10642
- //#region src/multicol-list/categories.ts
10603
+ // src/multicol-list/categories.ts
10643
10604
  /** A group node only organises the picker menu; it is not a selectable category. */
10644
10605
  function isGroup(category) {
10645
10606
  return category.children !== void 0 && category.children.length > 0;
@@ -10660,8 +10621,7 @@ function findCategory(categories, key) {
10660
10621
  function findLeafCategory(categories, key) {
10661
10622
  return flattenCategories(categories).find((c) => c.key === key);
10662
10623
  }
10663
- //#endregion
10664
- //#region src/multicol-list/multicol-view-state.ts
10624
+ // src/multicol-list/multicol-view-state.ts
10665
10625
  /**
10666
10626
  * Pure helpers for `ixfx-multicol-list` view state. The element runs these
10667
10627
  * when a state is restored, when `categories` change (so saved columns whose
@@ -10790,11 +10750,9 @@ function restoreColumnScroll(host, scroll) {
10790
10750
  if (!row) return false;
10791
10751
  return restoreElementScroll(host, row, anchor.offset);
10792
10752
  }
10793
- //#endregion
10794
- //#region src/multicol-list/types.ts
10753
+ // src/multicol-list/types.ts
10795
10754
  const ALL_KEY = `__all__`;
10796
- //#endregion
10797
- //#region src/multicol-list/column.ts
10755
+ // src/multicol-list/column.ts
10798
10756
  /** Sorts by label, honouring direction. 'All' lives outside the list, so it is not special-cased. */
10799
10757
  function sortItems(items, direction) {
10800
10758
  const dir = direction === `desc` ? -1 : 1;
@@ -11408,8 +11366,7 @@ const multicolListStyles = css`
11408
11366
  font-size: var(--text-s);
11409
11367
  }
11410
11368
  `;
11411
- //#endregion
11412
- //#region src/multicol-list/multicol-list.ts
11369
+ // src/multicol-list/multicol-list.ts
11413
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>`);
11414
11371
  const DRAG_THRESHOLD = 5;
11415
11372
  let MulticolListElement = class MulticolListElement extends LitElement {
@@ -12127,8 +12084,7 @@ function withoutKey(map, key) {
12127
12084
  next.delete(key);
12128
12085
  return next;
12129
12086
  }
12130
- //#endregion
12131
- //#region src/notifier/pill-renderer.ts
12087
+ // src/notifier/pill-renderer.ts
12132
12088
  const ROW_SPACING = 8;
12133
12089
  const DEFAULT_ROW_HEIGHT = 40;
12134
12090
  const STACK_OFFSET_STEP = 4;
@@ -12319,8 +12275,7 @@ function createPillRenderer(options = {}) {
12319
12275
  setNotifications
12320
12276
  };
12321
12277
  }
12322
- //#endregion
12323
- //#region src/notifier/manager.ts
12278
+ // src/notifier/manager.ts
12324
12279
  const options = {
12325
12280
  renderer: void 0,
12326
12281
  timeout: 4e3,
@@ -12443,10 +12398,9 @@ function dismiss(id) {
12443
12398
  ensureFrontTimer();
12444
12399
  syncRenderer();
12445
12400
  }
12446
- //#endregion
12447
- //#region src/panel/panel-group.ts
12401
+ // src/panel/panel-group.ts
12448
12402
  /** Pointer movement threshold (px) before a press becomes a drag. */
12449
- const DRAG_THRESHOLD_PX$1 = 5;
12403
+ const DRAG_THRESHOLD_PX$2 = 5;
12450
12404
  /**
12451
12405
  * Pure helper: nearest gap index for a pointer position along one axis.
12452
12406
  * `edges` are the [start, end] of each sibling (excluding the drag source),
@@ -12556,7 +12510,7 @@ let PanelGroupElement = class PanelGroupElement extends LitElement {
12556
12510
  if (!state || event.pointerId !== state.pointerId) return;
12557
12511
  const distance = Math.hypot(event.clientX - state.startX, event.clientY - state.startY);
12558
12512
  if (!state.active) {
12559
- if (distance < DRAG_THRESHOLD_PX$1) return;
12513
+ if (distance < DRAG_THRESHOLD_PX$2) return;
12560
12514
  this._beginDrag(event);
12561
12515
  }
12562
12516
  state.ghost?.move(event.clientX, event.clientY);
@@ -12872,8 +12826,7 @@ __decorate([property({
12872
12826
  __decorate([property()], PanelGroupElement.prototype, "gap", void 0);
12873
12827
  __decorate([queryAssignedElements({ slot: `` })], PanelGroupElement.prototype, "_panels", void 0);
12874
12828
  PanelGroupElement = __decorate([safeCustomElement(`ixfx-panel-group`)], PanelGroupElement);
12875
- //#endregion
12876
- //#region src/util/drag.ts
12829
+ // src/util/drag.ts
12877
12830
  function getCoordinates(event) {
12878
12831
  return {
12879
12832
  client: {
@@ -12899,15 +12852,13 @@ function dragLogicStart(downEvent, handler) {
12899
12852
  document.addEventListener(`pointermove`, onMove);
12900
12853
  document.addEventListener(`pointerup`, onUp);
12901
12854
  }
12902
- //#endregion
12903
- //#region src/util/near.ts
12855
+ // src/util/near.ts
12904
12856
  function near(target, range) {
12905
12857
  const min = target - range;
12906
12858
  const max = target + range;
12907
12859
  return (v) => v >= min && v <= max;
12908
12860
  }
12909
- //#endregion
12910
- //#region src/range/range-multi.ts
12861
+ // src/range/range-multi.ts
12911
12862
  let RangeMultiElement = class RangeMultiElement extends LitElement {
12912
12863
  constructor(..._args) {
12913
12864
  super(..._args);
@@ -13390,8 +13341,7 @@ __decorate([property({ type: Number })], RangeMultiElement.prototype, "min", nul
13390
13341
  __decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onInput", null);
13391
13342
  __decorate([eventOptions({ capture: true })], RangeMultiElement.prototype, "_onPointerDown", null);
13392
13343
  RangeMultiElement = __decorate([safeCustomElement(`ixfx-range-multi`)], RangeMultiElement);
13393
- //#endregion
13394
- //#region src/rating/rating.ts
13344
+ // src/rating/rating.ts
13395
13345
  let RatingElement = class RatingElement extends LitElement {
13396
13346
  constructor(..._args) {
13397
13347
  super(..._args);
@@ -13553,19 +13503,16 @@ __decorate([property({
13553
13503
  __decorate([property({ type: String })], RatingElement.prototype, "variant", void 0);
13554
13504
  __decorate([state()], RatingElement.prototype, "_preview", void 0);
13555
13505
  RatingElement = __decorate([safeCustomElement(`ixfx-rating`)], RatingElement);
13556
- //#endregion
13557
- //#region src/util/clamp.ts
13506
+ // src/util/clamp.ts
13558
13507
  function clampValue(v, min, max) {
13559
13508
  return Math.min(Math.max(v, min), max);
13560
13509
  }
13561
- //#endregion
13562
- //#region src/util/geometry.ts
13510
+ // src/util/geometry.ts
13563
13511
  function scale(v, fromMin, fromMax, toMin, toMax) {
13564
13512
  if (fromMax === fromMin) return toMin;
13565
13513
  return toMin + (v - fromMin) / (fromMax - fromMin) * (toMax - toMin);
13566
13514
  }
13567
- //#endregion
13568
- //#region src/shapefill-value/shapefill-value.ts
13515
+ // src/shapefill-value/shapefill-value.ts
13569
13516
  let ShapefillValueElement = class ShapefillValueElement extends WheelNudgeMixin(LitElement) {
13570
13517
  constructor(..._args) {
13571
13518
  super(..._args);
@@ -13850,8 +13797,7 @@ __decorate([property({
13850
13797
  reflect: true
13851
13798
  })], ShapefillValueElement.prototype, "disabled", void 0);
13852
13799
  ShapefillValueElement = __decorate([safeCustomElement(`ixfx-shapefill-value`)], ShapefillValueElement);
13853
- //#endregion
13854
- //#region src/sliding-number/sliding-number.ts
13800
+ // src/sliding-number/sliding-number.ts
13855
13801
  const REEL_DIGITS = Array.from({ length: 30 }, (_, index) => index % 10);
13856
13802
  const SECTION_RANK = {
13857
13803
  lead: 0,
@@ -14275,8 +14221,7 @@ __decorate([property({
14275
14221
  })], SlidingNumberElement.prototype, "respectMotionPreference", void 0);
14276
14222
  __decorate([state()], SlidingNumberElement.prototype, "_cells", void 0);
14277
14223
  SlidingNumberElement = __decorate([safeCustomElement(`ixfx-sliding-number`)], SlidingNumberElement);
14278
- //#endregion
14279
- //#region src/tabs/tab-panel.ts
14224
+ // src/tabs/tab-panel.ts
14280
14225
  let TabPanelElement = class TabPanelElement extends LitElement {
14281
14226
  render() {
14282
14227
  return html`<slot></slot>`;
@@ -14297,8 +14242,7 @@ let TabPanelElement = class TabPanelElement extends LitElement {
14297
14242
  }
14298
14243
  };
14299
14244
  TabPanelElement = __decorate([safeCustomElement(`ixfx-tab-panel`)], TabPanelElement);
14300
- //#endregion
14301
- //#region src/tabs/tab-controller.ts
14245
+ // src/tabs/tab-controller.ts
14302
14246
  /**
14303
14247
  * Connects an `ixfx-tab-list` to an `ixfx-tab-panels` container, handling the
14304
14248
  * wiring between them (header clicks show the matching panel, closing a tab
@@ -14603,8 +14547,7 @@ var TabController = class {
14603
14547
  });
14604
14548
  }
14605
14549
  };
14606
- //#endregion
14607
- //#region src/tabs/tab-panels.ts
14550
+ // src/tabs/tab-panels.ts
14608
14551
  let TabPanelsElement = class TabPanelsElement extends LitElement {
14609
14552
  /**
14610
14553
  * The `ixfx-tab-list` this panels element is associated with, established by
@@ -14703,8 +14646,7 @@ let TabPanelsElement = class TabPanelsElement extends LitElement {
14703
14646
  };
14704
14647
  __decorate([queryAssignedElements()], TabPanelsElement.prototype, "_listItems", void 0);
14705
14648
  TabPanelsElement = __decorate([safeCustomElement(`ixfx-tab-panels`)], TabPanelsElement);
14706
- //#endregion
14707
- //#region src/text-shimmer/text-shimmer.ts
14649
+ // src/text-shimmer/text-shimmer.ts
14708
14650
  let TextShimmerElement = class TextShimmerElement extends LitElement {
14709
14651
  constructor(..._args) {
14710
14652
  super(..._args);
@@ -14780,8 +14722,7 @@ __decorate([property({
14780
14722
  reflect: true
14781
14723
  })], TextShimmerElement.prototype, "paused", void 0);
14782
14724
  TextShimmerElement = __decorate([safeCustomElement(`ixfx-text-shimmer`)], TextShimmerElement);
14783
- //#endregion
14784
- //#region src/toolbar/toolbar-group.ts
14725
+ // src/toolbar/toolbar-group.ts
14785
14726
  let ToolbarGroupElement = class ToolbarGroupElement extends LitElement {
14786
14727
  constructor(..._args) {
14787
14728
  super(..._args);
@@ -14886,11 +14827,10 @@ __decorate([property({
14886
14827
  reflect: true
14887
14828
  })], ToolbarGroupElement.prototype, "reorderable", void 0);
14888
14829
  ToolbarGroupElement = __decorate([safeCustomElement(`ixfx-toolbar-group`)], ToolbarGroupElement);
14889
- //#endregion
14890
- //#region src/toolbar/toolbar.ts
14830
+ // src/toolbar/toolbar.ts
14891
14831
  var _ToolbarElement;
14892
14832
  /** Pointer movement threshold (px) before a press becomes a drag. */
14893
- const DRAG_THRESHOLD_PX = 5;
14833
+ const DRAG_THRESHOLD_PX$1 = 5;
14894
14834
  /**
14895
14835
  * Pure helper: nearest gap index for a pointer position along one axis.
14896
14836
  * `edges` are the [start, end] of each sibling (excluding the drag source),
@@ -15001,7 +14941,7 @@ let ToolbarElement = class ToolbarElement extends LitElement {
15001
14941
  if (!state || event.pointerId !== state.pointerId) return;
15002
14942
  const distance = Math.hypot(event.clientX - state.startX, event.clientY - state.startY);
15003
14943
  if (!state.active) {
15004
- if (distance < DRAG_THRESHOLD_PX) return;
14944
+ if (distance < DRAG_THRESHOLD_PX$1) return;
15005
14945
  this._beginDrag(event);
15006
14946
  }
15007
14947
  state.ghost?.move(event.clientX, event.clientY);
@@ -15538,8 +15478,7 @@ __decorate([query(`.inner`)], ToolbarElement.prototype, "_inner", void 0);
15538
15478
  __decorate([query(`.overflow-popover`)], ToolbarElement.prototype, "_popover", void 0);
15539
15479
  __decorate([query(`slot`)], ToolbarElement.prototype, "_slot", void 0);
15540
15480
  ToolbarElement = _ToolbarElement = __decorate([safeCustomElement(`ixfx-toolbar`)], ToolbarElement);
15541
- //#endregion
15542
- //#region src/treemap/layout.ts
15481
+ // src/treemap/layout.ts
15543
15482
  /** Coerce a raw accessor result to a non-negative finite weight. */
15544
15483
  function normaliseValue$1(raw) {
15545
15484
  return typeof raw === `number` && Number.isFinite(raw) && raw > 0 ? raw : 0;
@@ -15788,8 +15727,7 @@ function computeTreemapLayout(root, options = {}) {
15788
15727
  }, zoomDepth + 1, 0, zoomNode.item.key);
15789
15728
  return rects;
15790
15729
  }
15791
- //#endregion
15792
- //#region src/treemap/treemap-view-state.ts
15730
+ // src/treemap/treemap-view-state.ts
15793
15731
  function indexTreemapKeys(root) {
15794
15732
  const out = /* @__PURE__ */ new Map();
15795
15733
  if (!root) return out;
@@ -15886,8 +15824,7 @@ function reconcileTreemapViewState(input) {
15886
15824
  function samePath(a, b) {
15887
15825
  return a.length === b.length && a.every((k, i) => k === b[i]);
15888
15826
  }
15889
- //#endregion
15890
- //#region src/treemap/treemap-view-state-binding.ts
15827
+ // src/treemap/treemap-view-state-binding.ts
15891
15828
  function createTreemapViewState(host) {
15892
15829
  const { controller } = host;
15893
15830
  /** Key path of the zoom root as last seen — what goes pending if it leaves the tree. */
@@ -16024,8 +15961,7 @@ function createTreemapViewState(host) {
16024
15961
  }
16025
15962
  };
16026
15963
  }
16027
- //#endregion
16028
- //#region src/treemap/treemap-list.ts
15964
+ // src/treemap/treemap-list.ts
16029
15965
  let TreemapListElement = class TreemapListElement extends LitElement {
16030
15966
  constructor(..._args) {
16031
15967
  super(..._args);
@@ -17193,8 +17129,7 @@ __decorate([property({
17193
17129
  __decorate([state()], TreemapListElement.prototype, "_zoomKey", void 0);
17194
17130
  __decorate([property({ attribute: false })], TreemapListElement.prototype, "restoreLoads", void 0);
17195
17131
  TreemapListElement = __decorate([safeCustomElement(`ixfx-treemap-list`)], TreemapListElement);
17196
- //#endregion
17197
- //#region src/twosplit-layout/split-layout.ts
17132
+ // src/twosplit-layout/split-layout.ts
17198
17133
  let TwoSplitLayoutElement = class TwoSplitLayoutElement extends LitElement {
17199
17134
  constructor(..._args) {
17200
17135
  super(..._args);
@@ -17817,8 +17752,7 @@ function sideState(size, collapsed) {
17817
17752
  collapsed
17818
17753
  } : { size };
17819
17754
  }
17820
- //#endregion
17821
- //#region src/util/checkbox.ts
17755
+ // src/util/checkbox.ts
17822
17756
  function isCheckboxLike(el) {
17823
17757
  if (!(el instanceof HTMLElement)) return false;
17824
17758
  return `checked` in el;
@@ -17826,7 +17760,7 @@ function isCheckboxLike(el) {
17826
17760
  function resolveElement(elOrQuery) {
17827
17761
  if (typeof elOrQuery === `string`) {
17828
17762
  const found = document.querySelector(elOrQuery);
17829
- 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}`);
17830
17764
  return found;
17831
17765
  }
17832
17766
  return elOrQuery;
@@ -17869,10 +17803,8 @@ function monitorIndeterminate(targetElOrQuery, watchedElsOrQueries) {
17869
17803
  for (const el of watched) el.removeEventListener(`change`, handleChange);
17870
17804
  };
17871
17805
  }
17872
- //#endregion
17873
- //#region src/index.ts
17806
+ // src/index.ts
17874
17807
  function init() {
17875
17808
  console.log(`Init`);
17876
17809
  }
17877
- //#endregion
17878
- export { AGE_UNITS, AcTextElement, AcTokenElement, BottomDrawerElement, ButtonElement, Checkbox, CheckedSelect, ColourPicker, ColourPickerPopup, CrumbNavigationElement, CrumbPathController, CrumbPathElement, DEFAULT_SIBLING_SPACING, DataController, DataDisplayComponent, DataGridElement, DataTableElement, DateInputElement, 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, 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, XyPad, addPanelToStack, anchorFromRow, animateListItemIn, animateListItemOut, applyAgeModification, applyHighlights, applyIsometry, applyPartialAttributes, applySnapshot, applyTreeDrop, attachTimelineInteractions, bestUnit, 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, formatDateInput, 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, parseDateInput, 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, toBase, 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 };