@ixfx/components 0.13.2 → 0.13.4

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 (306) hide show
  1. package/bundle/index.d.ts +1649 -128
  2. package/bundle/index.js +1595 -44437
  3. package/bundle/rolldown-runtime-CEoa-xHZ.js +1 -0
  4. package/dist/ac-text.d.ts +2 -3
  5. package/dist/ac-text.js +0 -2
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -3
  7. package/dist/ac-token.d.ts +1 -1
  8. package/dist/ac-token.js +1 -3
  9. package/dist/button-B7mgqtxR.js +0 -2
  10. package/dist/{button-CTL45aBl.d.ts → button-BYuf72aR.d.ts} +2 -3
  11. package/dist/button.d.ts +1 -1
  12. package/dist/checkbox.d.ts +1 -2
  13. package/dist/checkbox.js +0 -2
  14. package/dist/checked-select-CglRukbP.d.ts +1 -2
  15. package/dist/checked-select-lDgAQQ7v.js +0 -2
  16. package/dist/colour-picker-BCMU7W7R.js +0 -2
  17. package/dist/colour-picker.d.ts +1 -1
  18. package/dist/crumbs.d.ts +2 -3
  19. package/dist/crumbs.js +1 -3
  20. package/dist/data-controller-DOlmqNKb.js +0 -2
  21. package/dist/data-display.d.ts +1 -2
  22. package/dist/data-display.js +0 -2
  23. package/dist/{data-grid-Ck1Qx2H1.d.ts → data-grid-BtBZt8M1.d.ts} +10 -9
  24. package/dist/data-grid-FHr7wZ_k.js +2108 -0
  25. package/dist/data-grid.d.ts +1 -1
  26. package/dist/data-grid.js +1 -1923
  27. package/dist/data-provider-35TyWclX.js +0 -2
  28. package/dist/data-provider-BAn_-oR1.d.ts +1 -2
  29. package/dist/decorate-VRK8rslU.js +0 -2
  30. package/dist/defaults-B4ePs4LB.js +0 -2
  31. package/dist/detail-list-BfYHNh6B.js +1999 -0
  32. package/dist/{detail-list-C1xzr1z7.d.ts → detail-list-u2rWnAXQ.d.ts} +13 -5
  33. package/dist/detail-list.d.ts +2 -2
  34. package/dist/detail-list.js +1 -1680
  35. package/dist/drag-ghost-DtSDvjri.js +0 -2
  36. package/dist/editable-label-rzXkjf1H.d.ts +1 -2
  37. package/dist/editable-label.js +0 -2
  38. package/dist/fallbacks-DQ_5OsmR.js +0 -2
  39. package/dist/{flat-list-Ohxqsy0g.d.ts → flat-list-DNnTQ65v.d.ts} +3 -4
  40. package/dist/flat-list.d.ts +1 -1
  41. package/dist/flat-list.js +5 -3
  42. package/dist/form-CsXJX15p.js +0 -2
  43. package/dist/form.d.ts +1 -2
  44. package/dist/{grid-list-pefLORIr.d.ts → grid-list-BLnV9oZE.d.ts} +9 -3
  45. package/dist/{grid-list-DjIl910A.js → grid-list-CkU8gHCh.js} +189 -42
  46. package/dist/grid-list.d.ts +1 -1
  47. package/dist/grid-list.js +1 -1
  48. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +2 -3
  49. package/dist/grouped-item-lister.d.ts +1 -1
  50. package/dist/grouped-item-lister.js +0 -2
  51. package/dist/grouping-CUKgmkMm.d.ts +1 -2
  52. package/dist/grouping-RYPnHkrS.js +0 -2
  53. package/dist/handle-DAXs7kbJ.js +0 -2
  54. package/dist/hex-editor-Caq8vNQk.d.ts +1 -2
  55. package/dist/hex-editor-DiYpgIKs.js +0 -2
  56. package/dist/highlight-B-eQrhhb.js +0 -2
  57. package/dist/icon-1gpwtPx8.js +0 -2
  58. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -3
  59. package/dist/icons.d.ts +2 -2
  60. package/dist/icons.js +0 -2
  61. package/dist/{incr-search-D91M4Ozq.js → incr-search-JIhwB49y.js} +26 -6
  62. package/dist/incr-search.d.ts +1 -1
  63. package/dist/incr-search.js +1 -1
  64. package/dist/{index-Dq30pOnn.d.ts → index-B-hzcIP0.d.ts} +3 -4
  65. package/dist/{index-CxZ61DO1.d.ts → index-BYIRgv49.d.ts} +9 -3
  66. package/dist/index-CCC0G1nO.d.ts +324 -0
  67. package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -3
  68. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -3
  69. package/dist/index-DV3iaUBW.d.ts +1 -2
  70. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -3
  71. package/dist/index-o-CWDt11.d.ts +1 -2
  72. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -3
  73. package/dist/index.d.ts +21 -22
  74. package/dist/index.js +48 -29
  75. package/dist/item-appearance-BjcMyauw.js +0 -2
  76. package/dist/keyboard-B5xD7Fz-.js +0 -2
  77. package/dist/labelled-input-base-BFa4xlYV.js +0 -2
  78. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -3
  79. package/dist/labelled-radial-input.d.ts +3 -4
  80. package/dist/labelled-radial-input.js +0 -2
  81. package/dist/labelled-range-input.d.ts +1 -1
  82. package/dist/labelled-range-input.js +0 -2
  83. package/dist/labelled-slider-input-FdCRi6st.js +0 -2
  84. package/dist/labelled-slider-input.d.ts +1 -1
  85. package/dist/led.d.ts +1 -2
  86. package/dist/led.js +0 -2
  87. package/dist/list-group-header.d.ts +2 -3
  88. package/dist/list-group-header.js +0 -2
  89. package/dist/list-item-animation-BUoEKi5s.js +0 -2
  90. package/dist/list-native-drag-controller-B9xO0XWn.js +0 -2
  91. package/dist/list-native-drag-controller-ChIi3eK5.d.ts +1 -2
  92. package/dist/list-selection-controller-BeE70lbB.js +0 -2
  93. package/dist/list-selection-types-PjKdhF-a.d.ts +1 -2
  94. package/dist/list-viewport-types-BRZsLcvp.d.ts +1 -2
  95. package/dist/menu-CwcXXeLM.js +0 -2
  96. package/dist/menu-item-BDEekBVy.js +0 -2
  97. package/dist/{menu-item-B0zqw2xp.d.ts → menu-item-bF6narIz.d.ts} +2 -3
  98. package/dist/menu.d.ts +2 -2
  99. package/dist/miller.d.ts +2 -3
  100. package/dist/miller.js +146 -102
  101. package/dist/narrowed-text.js +1 -3
  102. package/dist/notification-pill-DyZydXoZ.d.ts +1 -2
  103. package/dist/notifier.js +0 -2
  104. package/dist/pan-text-CoYmt2qd.d.ts +1 -2
  105. package/dist/pan-text-CqtvjPyK.js +0 -2
  106. package/dist/panel.d.ts +2 -3
  107. package/dist/panel.js +0 -2
  108. package/dist/polar-pad.d.ts +1 -2
  109. package/dist/polar-pad.js +0 -2
  110. package/dist/popup-D80sj2QC.js +0 -2
  111. package/dist/prominence-DlFShic3.js +0 -2
  112. package/dist/radial-input-DU6t2hYO.d.ts +1 -2
  113. package/dist/radial-input-KMVltQfe.js +0 -2
  114. package/dist/range-input.d.ts +1 -2
  115. package/dist/range-input.js +0 -2
  116. package/dist/range.d.ts +1 -2
  117. package/dist/range.js +0 -2
  118. package/dist/registry-BEtb8_wB.js +0 -2
  119. package/dist/{scroll-fade-BrNUIYnm.js → scroll-fade-Xx28D7mH.js} +11 -7
  120. package/dist/select-horiz.d.ts +1 -2
  121. package/dist/select-horiz.js +1 -3
  122. package/dist/slider-input-BxURAAmD.d.ts +1 -2
  123. package/dist/slider-input-ByHdotzp.js +0 -2
  124. package/dist/snackbar.d.ts +1 -2
  125. package/dist/snackbar.js +0 -2
  126. package/dist/snap-container.d.ts +1 -2
  127. package/dist/snap-container.js +0 -2
  128. package/dist/{split-layout-CXotkdbx.js → split-layout-Deoxy47d.js} +5 -2
  129. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -3
  130. package/dist/split-layout.d.ts +1 -1
  131. package/dist/split-layout.js +1 -1
  132. package/dist/swipe.d.ts +1 -2
  133. package/dist/swipe.js +0 -2
  134. package/dist/{tab-list-v8mKX7Fu.d.ts → tab-list-CexFFg6O.d.ts} +3 -5
  135. package/dist/tabs.d.ts +1 -1
  136. package/dist/tabs.js +23 -3
  137. package/dist/tickled-controller-D-HZymaZ.js +0 -2
  138. package/dist/tickled-controller-DodxD3eQ.d.ts +1 -2
  139. package/dist/tickled-styles-BrAHEj1q.js +0 -2
  140. package/dist/timeline-BP1Ux2EV.js +0 -2
  141. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -3
  142. package/dist/titlebar.d.ts +1 -1
  143. package/dist/titlebar.js +0 -2
  144. package/dist/tooltip-BlvBUQxx.d.ts +1 -2
  145. package/dist/tooltip-CJt3WLmN.js +0 -2
  146. package/dist/transitory-label.d.ts +1 -2
  147. package/dist/transitory-label.js +0 -2
  148. package/dist/{tree-DGveys4K.js → tree-DD8OaqsK.js} +1009 -231
  149. package/dist/tree-component-Cj8V3uar.d.ts +1 -2
  150. package/dist/tree.d.ts +4 -267
  151. package/dist/tree.js +1 -1
  152. package/dist/types-DQ7KOUIj.d.ts +1 -2
  153. package/dist/{vertical-list-CqBc-t8w.d.ts → vertical-list-m7GJtXwv.d.ts} +3 -3
  154. package/dist/vertical-list.d.ts +1 -1
  155. package/dist/vertical-list.js +114 -27
  156. package/dist/wheel-nudge-By5s_ioH.d.ts +1 -2
  157. package/dist/wheel-nudge-D5rmht3v.js +0 -2
  158. package/dist/xy-axis-CyMd_Bn1.js +0 -2
  159. package/dist/xy-axis-DQqd2yXJ.d.ts +1 -2
  160. package/dist/xy-pad.d.ts +1 -2
  161. package/dist/xy-pad.js +0 -2
  162. package/docs-user/data-grid.md +74 -4
  163. package/docs-user/detail-list.md +65 -0
  164. package/docs-user/grid-list.md +81 -4
  165. package/docs-user/index.json +2 -2
  166. package/docs-user/miller.md +59 -3
  167. package/docs-user/tree.md +63 -2
  168. package/docs-user/vertical-list.md +9 -1
  169. package/package.json +6 -1
  170. package/bundle/index.d.ts.map +0 -1
  171. package/bundle/index.js.map +0 -1
  172. package/bundle/rolldown-runtime-D7D4PA-g.js +0 -13
  173. package/dist/ac-text.d.ts.map +0 -1
  174. package/dist/ac-text.js.map +0 -1
  175. package/dist/ac-token-TCLAZeVg.d.ts.map +0 -1
  176. package/dist/ac-token.js.map +0 -1
  177. package/dist/button-B7mgqtxR.js.map +0 -1
  178. package/dist/button-CTL45aBl.d.ts.map +0 -1
  179. package/dist/checkbox.d.ts.map +0 -1
  180. package/dist/checkbox.js.map +0 -1
  181. package/dist/checked-select-CglRukbP.d.ts.map +0 -1
  182. package/dist/checked-select-lDgAQQ7v.js.map +0 -1
  183. package/dist/colour-picker-BCMU7W7R.js.map +0 -1
  184. package/dist/crumbs.d.ts.map +0 -1
  185. package/dist/crumbs.js.map +0 -1
  186. package/dist/data-controller-DOlmqNKb.js.map +0 -1
  187. package/dist/data-display.d.ts.map +0 -1
  188. package/dist/data-display.js.map +0 -1
  189. package/dist/data-grid-Ck1Qx2H1.d.ts.map +0 -1
  190. package/dist/data-grid.js.map +0 -1
  191. package/dist/data-provider-35TyWclX.js.map +0 -1
  192. package/dist/data-provider-BAn_-oR1.d.ts.map +0 -1
  193. package/dist/decorate-VRK8rslU.js.map +0 -1
  194. package/dist/defaults-B4ePs4LB.js.map +0 -1
  195. package/dist/detail-list-C1xzr1z7.d.ts.map +0 -1
  196. package/dist/detail-list.js.map +0 -1
  197. package/dist/drag-ghost-DtSDvjri.js.map +0 -1
  198. package/dist/editable-label-rzXkjf1H.d.ts.map +0 -1
  199. package/dist/editable-label.js.map +0 -1
  200. package/dist/fallbacks-DQ_5OsmR.js.map +0 -1
  201. package/dist/flat-list-Ohxqsy0g.d.ts.map +0 -1
  202. package/dist/flat-list.js.map +0 -1
  203. package/dist/form-CsXJX15p.js.map +0 -1
  204. package/dist/form.d.ts.map +0 -1
  205. package/dist/grid-list-DjIl910A.js.map +0 -1
  206. package/dist/grid-list-pefLORIr.d.ts.map +0 -1
  207. package/dist/grouped-item-lister-Bhyo-dkH.d.ts.map +0 -1
  208. package/dist/grouped-item-lister.js.map +0 -1
  209. package/dist/grouping-CUKgmkMm.d.ts.map +0 -1
  210. package/dist/grouping-RYPnHkrS.js.map +0 -1
  211. package/dist/handle-DAXs7kbJ.js.map +0 -1
  212. package/dist/hex-editor-Caq8vNQk.d.ts.map +0 -1
  213. package/dist/hex-editor-DiYpgIKs.js.map +0 -1
  214. package/dist/highlight-B-eQrhhb.js.map +0 -1
  215. package/dist/icon-1gpwtPx8.js.map +0 -1
  216. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  217. package/dist/icons.js.map +0 -1
  218. package/dist/incr-search-D91M4Ozq.js.map +0 -1
  219. package/dist/index-BOUaDIW-.d.ts.map +0 -1
  220. package/dist/index-BUB5SICW.d.ts.map +0 -1
  221. package/dist/index-CJ5fshD3.d.ts.map +0 -1
  222. package/dist/index-CxZ61DO1.d.ts.map +0 -1
  223. package/dist/index-DV3iaUBW.d.ts.map +0 -1
  224. package/dist/index-Dq30pOnn.d.ts.map +0 -1
  225. package/dist/index-garxxqgV.d.ts.map +0 -1
  226. package/dist/index-o-CWDt11.d.ts.map +0 -1
  227. package/dist/index.d.ts.map +0 -1
  228. package/dist/index.js.map +0 -1
  229. package/dist/item-appearance-BjcMyauw.js.map +0 -1
  230. package/dist/keyboard-B5xD7Fz-.js.map +0 -1
  231. package/dist/labelled-input-base-BFa4xlYV.js.map +0 -1
  232. package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +0 -1
  233. package/dist/labelled-radial-input.d.ts.map +0 -1
  234. package/dist/labelled-radial-input.js.map +0 -1
  235. package/dist/labelled-range-input.js.map +0 -1
  236. package/dist/labelled-slider-input-FdCRi6st.js.map +0 -1
  237. package/dist/led.d.ts.map +0 -1
  238. package/dist/led.js.map +0 -1
  239. package/dist/list-group-header.d.ts.map +0 -1
  240. package/dist/list-group-header.js.map +0 -1
  241. package/dist/list-item-animation-BUoEKi5s.js.map +0 -1
  242. package/dist/list-native-drag-controller-B9xO0XWn.js.map +0 -1
  243. package/dist/list-native-drag-controller-ChIi3eK5.d.ts.map +0 -1
  244. package/dist/list-selection-controller-BeE70lbB.js.map +0 -1
  245. package/dist/list-selection-types-PjKdhF-a.d.ts.map +0 -1
  246. package/dist/list-viewport-types-BRZsLcvp.d.ts.map +0 -1
  247. package/dist/menu-CwcXXeLM.js.map +0 -1
  248. package/dist/menu-item-B0zqw2xp.d.ts.map +0 -1
  249. package/dist/menu-item-BDEekBVy.js.map +0 -1
  250. package/dist/miller.d.ts.map +0 -1
  251. package/dist/miller.js.map +0 -1
  252. package/dist/narrowed-text.js.map +0 -1
  253. package/dist/notification-pill-DyZydXoZ.d.ts.map +0 -1
  254. package/dist/notifier.js.map +0 -1
  255. package/dist/pan-text-CoYmt2qd.d.ts.map +0 -1
  256. package/dist/pan-text-CqtvjPyK.js.map +0 -1
  257. package/dist/panel.d.ts.map +0 -1
  258. package/dist/panel.js.map +0 -1
  259. package/dist/polar-pad.d.ts.map +0 -1
  260. package/dist/polar-pad.js.map +0 -1
  261. package/dist/popup-D80sj2QC.js.map +0 -1
  262. package/dist/prominence-DlFShic3.js.map +0 -1
  263. package/dist/radial-input-DU6t2hYO.d.ts.map +0 -1
  264. package/dist/radial-input-KMVltQfe.js.map +0 -1
  265. package/dist/range-input.d.ts.map +0 -1
  266. package/dist/range-input.js.map +0 -1
  267. package/dist/range.d.ts.map +0 -1
  268. package/dist/range.js.map +0 -1
  269. package/dist/registry-BEtb8_wB.js.map +0 -1
  270. package/dist/scroll-fade-BrNUIYnm.js.map +0 -1
  271. package/dist/select-horiz.d.ts.map +0 -1
  272. package/dist/select-horiz.js.map +0 -1
  273. package/dist/slider-input-BxURAAmD.d.ts.map +0 -1
  274. package/dist/slider-input-ByHdotzp.js.map +0 -1
  275. package/dist/snackbar.d.ts.map +0 -1
  276. package/dist/snackbar.js.map +0 -1
  277. package/dist/snap-container.d.ts.map +0 -1
  278. package/dist/snap-container.js.map +0 -1
  279. package/dist/split-layout-C5SYbDrq.d.ts.map +0 -1
  280. package/dist/split-layout-CXotkdbx.js.map +0 -1
  281. package/dist/swipe.d.ts.map +0 -1
  282. package/dist/swipe.js.map +0 -1
  283. package/dist/tab-list-v8mKX7Fu.d.ts.map +0 -1
  284. package/dist/tabs.js.map +0 -1
  285. package/dist/tickled-controller-D-HZymaZ.js.map +0 -1
  286. package/dist/tickled-controller-DodxD3eQ.d.ts.map +0 -1
  287. package/dist/tickled-styles-BrAHEj1q.js.map +0 -1
  288. package/dist/timeline-BP1Ux2EV.js.map +0 -1
  289. package/dist/titlebar-B5zSTZnF.d.ts.map +0 -1
  290. package/dist/titlebar.js.map +0 -1
  291. package/dist/tooltip-BlvBUQxx.d.ts.map +0 -1
  292. package/dist/tooltip-CJt3WLmN.js.map +0 -1
  293. package/dist/transitory-label.d.ts.map +0 -1
  294. package/dist/transitory-label.js.map +0 -1
  295. package/dist/tree-DGveys4K.js.map +0 -1
  296. package/dist/tree-component-Cj8V3uar.d.ts.map +0 -1
  297. package/dist/tree.d.ts.map +0 -1
  298. package/dist/types-DQ7KOUIj.d.ts.map +0 -1
  299. package/dist/vertical-list-CqBc-t8w.d.ts.map +0 -1
  300. package/dist/vertical-list.js.map +0 -1
  301. package/dist/wheel-nudge-By5s_ioH.d.ts.map +0 -1
  302. package/dist/wheel-nudge-D5rmht3v.js.map +0 -1
  303. package/dist/xy-axis-CyMd_Bn1.js.map +0 -1
  304. package/dist/xy-axis-DQqd2yXJ.d.ts.map +0 -1
  305. package/dist/xy-pad.d.ts.map +0 -1
  306. package/dist/xy-pad.js.map +0 -1
@@ -125,5 +125,4 @@ declare global {
125
125
  }
126
126
  }
127
127
  //#endregion
128
- export { NoneSelectEventDetail as a, SingleSelectEventDetail as c, IxfxHexEditorElement as i, HexChangeDetail as n, RectangularSelectEventDetail as o, HexChangeEvent as r, SelectEventDetail as s, ContiguousSelectEventDetail as t };
129
- //# sourceMappingURL=hex-editor-Caq8vNQk.d.ts.map
128
+ export { NoneSelectEventDetail as a, SingleSelectEventDetail as c, IxfxHexEditorElement as i, HexChangeDetail as n, RectangularSelectEventDetail as o, HexChangeEvent as r, SelectEventDetail as s, ContiguousSelectEventDetail as t };
@@ -1141,5 +1141,3 @@ __decorate([state()], IxfxHexEditorElement.prototype, "_focusSide", void 0);
1141
1141
  IxfxHexEditorElement = __decorate([safeCustomElement(`ixfx-hex-editor`)], IxfxHexEditorElement);
1142
1142
  //#endregion
1143
1143
  export { IxfxHexEditorElement as t };
1144
-
1145
- //# sourceMappingURL=hex-editor-DiYpgIKs.js.map
@@ -46,5 +46,3 @@ function findTextNode(element, expectedText) {
46
46
  }
47
47
  //#endregion
48
48
  export { buildHighlightTargets as n, clearHighlights as r, applyHighlights as t };
49
-
50
- //# sourceMappingURL=highlight-B-eQrhhb.js.map
@@ -136,5 +136,3 @@ __decorate([property({
136
136
  IxfxIconElement = __decorate([safeCustomElement(`ixfx-icon`)], IxfxIconElement);
137
137
  //#endregion
138
138
  export { IxfxIconElement as t };
139
-
140
- //# sourceMappingURL=icon-1gpwtPx8.js.map
@@ -9,7 +9,7 @@ declare class IxfxIconElement extends LitElement {
9
9
  rotate: string;
10
10
  connectedCallback(): void;
11
11
  disconnectedCallback(): void;
12
- protected render(): import("lit").TemplateResult<1> | typeof nothing;
12
+ protected render(): typeof nothing | import("lit").TemplateResult<1>;
13
13
  protected updated(changed: Map<string, unknown>): void;
14
14
  static styles: import("lit").CSSResult[];
15
15
  }
@@ -19,5 +19,4 @@ declare global {
19
19
  }
20
20
  }
21
21
  //#endregion
22
- export { IxfxIconElement as t };
23
- //# sourceMappingURL=icon-DR_3rSyZ.d.ts.map
22
+ export { IxfxIconElement as t };
package/dist/icons.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { t as IxfxIconElement } from "./icon-DR_3rSyZ.js";
2
- import { a as getIconEntry, c as iconBus, d as setIconFont, f as svgToDataUri, g as ICON_CLOSE, h as ICON_CHEVRON_DOWN, i as getIcon, l as registerFontIcon, m as ICON_CHECK, n as IconChangedEvent, o as getIconFont, p as ICON_CARET_RIGHT, r as IconEntry, s as hasIcon, t as IconChangedDetail, u as registerIcon } from "./index-garxxqgV.js";
1
+ import { t as IxfxIconElement } from "./icon-CDGprSdE.js";
2
+ import { a as getIconEntry, c as iconBus, d as setIconFont, f as svgToDataUri, g as ICON_CLOSE, h as ICON_CHEVRON_DOWN, i as getIcon, l as registerFontIcon, m as ICON_CHECK, n as IconChangedEvent, o as getIconFont, p as ICON_CARET_RIGHT, r as IconEntry, s as hasIcon, t as IconChangedDetail, u as registerIcon } from "./index-CYndvTWH.js";
3
3
  export { ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, type IconChangedDetail, type IconChangedEvent, type IconEntry, IxfxIconElement, getIcon, getIconEntry, getIconFont, hasIcon, iconBus, registerFontIcon, registerIcon, setIconFont, svgToDataUri };
package/dist/icons.js CHANGED
@@ -5,5 +5,3 @@ import { a as registerDefaults, i as ICON_CLOSE, n as ICON_CHECK, r as ICON_CHEV
5
5
  registerDefaults();
6
6
  //#endregion
7
7
  export { ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IxfxIconElement, getIcon, getIconEntry, getIconFont, hasIcon, iconBus, registerFontIcon, registerIcon, setIconFont, svgToDataUri };
8
-
9
- //# sourceMappingURL=icons.js.map
@@ -362,7 +362,11 @@ function createElementListSearchAdapter(host, options = {}) {
362
362
  const getLabel = options.getLabel ?? defaultLabel;
363
363
  const getKey = options.getKey ?? ((el) => keyForElement(el) ?? defaultLabel(el));
364
364
  const hidden = /* @__PURE__ */ new Set();
365
- const items = () => Array.from(host.querySelectorAll(itemSelector));
365
+ const observeContainer = options.observeContainer ?? true;
366
+ const items = () => {
367
+ if (options.getAllItems) return options.getAllItems();
368
+ return Array.from(host.querySelectorAll(itemSelector));
369
+ };
366
370
  return {
367
371
  getItems: items,
368
372
  getLabel,
@@ -371,7 +375,9 @@ function createElementListSearchAdapter(host, options = {}) {
371
375
  if (el) host.focusKey(getKey(el));
372
376
  },
373
377
  activateItem: (el) => {
374
- el.dispatchEvent(new MouseEvent(`click`, {
378
+ const key = getKey(el);
379
+ if (host.activateKey) host.activateKey(key);
380
+ else el.dispatchEvent(new MouseEvent(`click`, {
375
381
  bubbles: true,
376
382
  composed: true
377
383
  }));
@@ -397,7 +403,7 @@ function createElementListSearchAdapter(host, options = {}) {
397
403
  highlightKeyOf: (el) => getKey(el),
398
404
  highlightText: getLabel,
399
405
  highlightKey: options.highlightKey,
400
- container: () => host
406
+ container: observeContainer ? () => host : void 0
401
407
  };
402
408
  }
403
409
  //#endregion
@@ -716,6 +722,10 @@ var ListSearchController = class {
716
722
  }
717
723
  this.#search.setItems(items);
718
724
  }
725
+ /** Re-paint highlights without rebuilding the item set. Use when the rendered window changes. */
726
+ repaintHighlights() {
727
+ this.#applyHighlights();
728
+ }
719
729
  /** Popover markup. Pair with `listSearchStyles` in the host's `static styles`. */
720
730
  renderField() {
721
731
  if (!this.enabled) return nothing;
@@ -837,9 +847,10 @@ var ListSearchController = class {
837
847
  return;
838
848
  }
839
849
  const state = this.#search.state;
850
+ const itemByKey = new Map(state.results.map((r) => [r.item.key, r.item]));
840
851
  const targets = buildHighlightTargets(root, selector, state.positionsByItem, (el) => {
841
852
  const key = keyOf(el);
842
- return key === void 0 ? void 0 : state.results.find((r) => r.item.key === key)?.item;
853
+ return key === void 0 ? void 0 : itemByKey.get(key);
843
854
  }, this.#adapter.highlightText ?? ((el) => el.textContent ?? ``));
844
855
  try {
845
856
  applyHighlights(targets, { key: this.#highlightKey });
@@ -963,6 +974,16 @@ const listSearchStyles = css`
963
974
  //#endregion
964
975
  //#region src/incr-search/tree-list-search-adapter.ts
965
976
  /**
977
+ * The label's own text. Highlights are painted on one text node matched by its
978
+ * exact content, but a Lit-rendered label also holds template whitespace and
979
+ * sibling bindings (tooltips), so `textContent` is padded and never equals the
980
+ * node's content. Take the first non-blank text node instead.
981
+ */
982
+ function labelText(el) {
983
+ for (const node of el.childNodes) if (node.nodeType === Node.TEXT_NODE && (node.textContent ?? ``).trim().length > 0) return node.textContent ?? ``;
984
+ return el.textContent ?? ``;
985
+ }
986
+ /**
966
987
  * A {@link ListSearchAdapter} over any `TreeSearchHost` (`ixfx-tree-list`,
967
988
  * `ixfx-miller-list`, `ixfx-crumb-navigation`). Navigate reveals the match
968
989
  * (expands its ancestors, moves the cursor); select drives `selectMany`; filter
@@ -990,11 +1011,10 @@ function createTreeListSearchAdapter(host, options = {}) {
990
1011
  },
991
1012
  highlightRoot: () => host.shadowRoot,
992
1013
  highlightSelector: options.labelSelector ?? `.tree-label`,
1014
+ highlightText: labelText,
993
1015
  highlightKeyOf: (el) => el.closest(`[data-key]`)?.dataset.key,
994
1016
  highlightKey: options.highlightKey
995
1017
  };
996
1018
  }
997
1019
  //#endregion
998
1020
  export { LIST_SEARCH_COMMAND_IDS as a, createElementListSearchAdapter as c, createDataListSearchAdapter as d, IncrSearchTreeController as f, createFuzzySearch as h, ListSearchController as i, KeyedElementIndex as l, createAcCompletionProvider as m, listSearchStyles as n, registerListSearchCommands as o, createIncrSearch as p, LIST_SEARCH_MODES as r, createElementIncrSearch as s, createTreeListSearchAdapter as t, keyForElement as u };
999
-
1000
- //# sourceMappingURL=incr-search-D91M4Ozq.js.map
@@ -1,2 +1,2 @@
1
- import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CxZ61DO1.js";
1
+ import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-BYIRgv49.js";
2
2
  export { type DataListSearchAdapterOptions, type DataListSearchItem, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, type FuzzySearch, type FuzzySearchOptions, type HighlightOptions, type HighlightTarget, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type RegisterListSearchCommandsOptions, type TreeListSearchAdapterOptions, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createFuzzySearch, createIncrSearch, createTreeListSearchAdapter, listSearchStyles, registerListSearchCommands };
@@ -1,3 +1,3 @@
1
1
  import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-B-eQrhhb.js";
2
- import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, d as createDataListSearchAdapter, f as IncrSearchTreeController, h as createFuzzySearch, i as ListSearchController, m as createAcCompletionProvider, n as listSearchStyles, o as registerListSearchCommands, p as createIncrSearch, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter } from "./incr-search-D91M4Ozq.js";
2
+ import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, d as createDataListSearchAdapter, f as IncrSearchTreeController, h as createFuzzySearch, i as ListSearchController, m as createAcCompletionProvider, n as listSearchStyles, o as registerListSearchCommands, p as createIncrSearch, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter } from "./incr-search-JIhwB49y.js";
3
3
  export { IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, ListSearchController, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createFuzzySearch, createIncrSearch, createTreeListSearchAdapter, listSearchStyles, registerListSearchCommands };
@@ -1,6 +1,6 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  import { o as TreeNode } from "./types-DQ7KOUIj.js";
3
- import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-B0zqw2xp.js";
3
+ import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-bF6narIz.js";
4
4
  import { LitElement, TemplateResult } from "lit";
5
5
  import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
6
6
  //#region src/menu/menu-bar.d.ts
@@ -178,5 +178,4 @@ declare namespace index_d_exports {
178
178
  export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
179
179
  }
180
180
  //#endregion
181
- export { menuFromTree as a, MenuSeparator as c, MenuCheckItem as d, MenuBar as f, MenuFromTreeOptions as i, MenuSubTrigger as l, MenuRadioGroup as n, menuFromTreeToElements as o, MenuRadioItem as r, MenuHeader as s, index_d_exports as t, MenuCommandController as u };
182
- //# sourceMappingURL=index-Dq30pOnn.d.ts.map
181
+ export { menuFromTree as a, MenuSeparator as c, MenuCheckItem as d, MenuBar as f, MenuFromTreeOptions as i, MenuSubTrigger as l, MenuRadioGroup as n, menuFromTreeToElements as o, MenuRadioItem as r, MenuHeader as s, index_d_exports as t, MenuCommandController as u };
@@ -1,4 +1,4 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  import { w as TreeSearchHost } from "./tree-component-Cj8V3uar.js";
3
3
  import { o as TreeNode } from "./types-DQ7KOUIj.js";
4
4
  import { ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
@@ -242,6 +242,8 @@ declare class ListSearchController<TItem> implements ReactiveController {
242
242
  commit(): void;
243
243
  /** Rebuild the searchable item set from the adapter. Called on open and on container mutation. */
244
244
  refresh(): void;
245
+ /** Re-paint highlights without rebuilding the item set. Use when the rendered window changes. */
246
+ repaintHighlights(): void;
245
247
  /** Popover markup. Pair with `listSearchStyles` in the host's `static styles`. */
246
248
  renderField(): TemplateResult | typeof nothing;
247
249
  }
@@ -286,6 +288,7 @@ declare function createDataListSearchAdapter(host: {
286
288
  interface ElementListSearchHost extends HTMLElement {
287
289
  focusKey: (key: string) => void;
288
290
  selectKeys: (keys: Iterable<string>) => void;
291
+ activateKey?: (key: string) => void;
289
292
  }
290
293
  interface ElementListSearchAdapterOptions {
291
294
  /** Selector for item elements, relative to the host. Default `:scope > *`. */
@@ -294,6 +297,10 @@ interface ElementListSearchAdapterOptions {
294
297
  getKey?: (el: Element) => string;
295
298
  /** `CSS.highlights` registry key for matched-character highlights. */
296
299
  highlightKey?: string;
300
+ /** Full ordered item set, including rows not currently in the DOM (virtualised hosts). Defaults to querying `itemSelector`. */
301
+ getAllItems?: () => Element[];
302
+ /** Observe host child-list mutations to refresh the item set. Default true. */
303
+ observeContainer?: boolean;
297
304
  }
298
305
  /**
299
306
  * A {@link ListSearchAdapter} over the light-DOM item elements of a list
@@ -394,5 +401,4 @@ interface TreeListSearchAdapterOptions {
394
401
  */
395
402
  declare function createTreeListSearchAdapter(host: TreeSearchHost, options?: TreeListSearchAdapterOptions): ListSearchAdapter<TreeSearchItem>;
396
403
  //#endregion
397
- export { FuzzySearch as A, ListSearchControllerOptions as C, IncrSearchTreeOptions as D, IncrSearchTreeController as E, IncrSearchChangeCallback as F, IncrSearchOptions as I, IncrSearchResult as L, HighlightOptions as M, HighlightTarget as N, createAcCompletionProvider as O, IncrSearch as P, IncrSearchState as R, ListSearchController as S, ListSearchMode as T, DataListSearchAdapterOptions as _, RegisterListSearchCommandsOptions as a, LIST_SEARCH_MODES as b, applyHighlights as c, createFuzzySearch as d, ElementIncrSearch as f, createElementListSearchAdapter as g, ElementListSearchHost as h, LIST_SEARCH_COMMAND_IDS as i, FuzzySearchOptions as j, ElementIncrSearchOptions as k, buildHighlightTargets as l, ElementListSearchAdapterOptions as m, createTreeListSearchAdapter as n, registerListSearchCommands as o, createElementIncrSearch as p, listSearchStyles as r, createIncrSearch as s, TreeListSearchAdapterOptions as t, clearHighlights as u, DataListSearchItem as v, ListSearchHost as w, ListSearchAdapter as x, createDataListSearchAdapter as y };
398
- //# sourceMappingURL=index-CxZ61DO1.d.ts.map
404
+ export { FuzzySearch as A, ListSearchControllerOptions as C, IncrSearchTreeOptions as D, IncrSearchTreeController as E, IncrSearchChangeCallback as F, IncrSearchOptions as I, IncrSearchResult as L, HighlightOptions as M, HighlightTarget as N, createAcCompletionProvider as O, IncrSearch as P, IncrSearchState as R, ListSearchController as S, ListSearchMode as T, DataListSearchAdapterOptions as _, RegisterListSearchCommandsOptions as a, LIST_SEARCH_MODES as b, applyHighlights as c, createFuzzySearch as d, ElementIncrSearch as f, createElementListSearchAdapter as g, ElementListSearchHost as h, LIST_SEARCH_COMMAND_IDS as i, FuzzySearchOptions as j, ElementIncrSearchOptions as k, buildHighlightTargets as l, ElementListSearchAdapterOptions as m, createTreeListSearchAdapter as n, registerListSearchCommands as o, createElementIncrSearch as p, listSearchStyles as r, createIncrSearch as s, TreeListSearchAdapterOptions as t, clearHighlights as u, DataListSearchItem as v, ListSearchHost as w, ListSearchAdapter as x, createDataListSearchAdapter as y };
@@ -0,0 +1,324 @@
1
+ import { C as TreeItemDblClickEvent, E as TreeSelectEvent, F as ListDragPreviewSourceResolver, L as ListNativeDragStartDetail, O as TreeTickleEvent, P as ListDragPreviewRenderer, _ as TreeDropTarget, a as TreeComponent, c as TreeDragContext, d as TreeDragStartEvent, h as TreeDropEvent, i as TreeCollapseEvent, k as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, s as TreeDndMode, u as TreeDragOverEvent, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-Cj8V3uar.js";
2
+ import { a as TreeItem, i as TreeInteractionMode, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-DQ7KOUIj.js";
3
+ import { S as ListSearchController } from "./index-BYIRgv49.js";
4
+ import { t as ListNativeDragController } from "./list-native-drag-controller-ChIi3eK5.js";
5
+ import { n as TickledController } from "./tickled-controller-DodxD3eQ.js";
6
+ import { LitElement, PropertyValues, ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
7
+ import { CommandRegistry } from "@clinth/ui-commands";
8
+ import { TraversableTree } from "@ixfx/collections";
9
+ //#region src/tree/types.d.ts
10
+ /** Tree layout/display configuration (tree-specific, not shared). */
11
+ type TreeConfig = {
12
+ indent: number;
13
+ };
14
+ //#endregion
15
+ //#region src/tree/tree-base.d.ts
16
+ /**
17
+ * `auto` windows the list once it has more than `virtualizeThreshold` visible
18
+ * rows; `on` / `off` force it.
19
+ */
20
+ type TreeVirtualize = `auto` | `on` | `off`;
21
+ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
22
+ #private;
23
+ root: TreeNode | undefined;
24
+ model: TreeDataModel | undefined;
25
+ /** Callback to lazily load children for a node. Superseded by `model` when both are set. */
26
+ loadChildren: LoadChildrenCallback | undefined;
27
+ exclusivity: TreeExclusivity;
28
+ selectionFilter: TreeSelectionFilter;
29
+ /** Controls how pointer/keyboard gestures map to selection changes. Default: `'standard'`. */
30
+ interactionMode: TreeInteractionMode;
31
+ selectedNode: TreeNode | undefined;
32
+ protected _selectedNodes: Set<TreeNode>;
33
+ get selectedNodes(): ReadonlySet<TreeNode>;
34
+ filterPredicate: TreeFilterPredicate | undefined;
35
+ disableKeyboardNavigation: boolean;
36
+ registry: CommandRegistry<unknown> | undefined;
37
+ /**
38
+ * Space-separated subset of `navigate select filter` — limits which
39
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
40
+ * disabled. See `docs/infra-incremental.md`.
41
+ */
42
+ searchModes: string | undefined;
43
+ itemDnd: TreeDndMode;
44
+ acceptDropTypes: string | undefined;
45
+ dndExpandHoverMs: number;
46
+ /**
47
+ * Whether a drag that only reorders siblings (no dragged node changes parent)
48
+ * is honoured. Default `true`. Set `reorderable="false"` for models with no
49
+ * meaningful child order (e.g. a filesystem) — pure-reorder drags then get no
50
+ * drop indicator and emit no `tree-drop`. Reparenting is unaffected.
51
+ */
52
+ reorderable: boolean;
53
+ /**
54
+ * VS Code-style sticky headers: while scrolling vertically, the ancestors of
55
+ * the top-visible row stick to the top of the list. Clicking a stuck header
56
+ * selects that ancestor and scrolls it into view; clicking its caret toggles
57
+ * expansion. On by default — set `sticky-headers="false"` to opt out.
58
+ */
59
+ stickyHeaders: boolean;
60
+ /**
61
+ * Windowed rendering: only the rows near the viewport exist in the DOM, so a
62
+ * node with tens of thousands of children stays fast. `auto` (default)
63
+ * switches on above `virtualizeThreshold` visible rows; `on` / `off` force it.
64
+ * While windowed, rows are a fixed `--tree-item-height` tall and expand /
65
+ * collapse rows do not animate.
66
+ */
67
+ virtualize: TreeVirtualize;
68
+ /** Visible-row count above which `virtualize="auto"` windows the list. */
69
+ virtualizeThreshold: number;
70
+ dragPreviewRenderer: ListDragPreviewRenderer<TreeNode> | undefined;
71
+ dragPreviewSource: ListDragPreviewSourceResolver<TreeNode> | undefined;
72
+ canDrag: ((ctx: TreeDragContext) => boolean) | undefined;
73
+ canDrop: ((ctx: TreeDropContext) => boolean) | undefined;
74
+ parseExternalDrop: ((dt: DataTransfer) => TreeNode[] | undefined) | undefined;
75
+ applyInternalDrop: boolean;
76
+ /** Immutable: replace via `#setExpanded` so the flat-row cache is invalidated. */
77
+ protected _expandedKeys: ReadonlySet<string>;
78
+ /** Bumped whenever `_selectedNodes` content may have changed. */
79
+ protected _selectionVersion: number;
80
+ /**
81
+ * Call after editing `node.children` / `node.item` in place (outside
82
+ * `TreeDataModel`). Drops the cached whole-tree indexes and re-renders.
83
+ */
84
+ invalidateStructure(): void;
85
+ /** Scroll offset used for the last render; kept in sync with the container's. */
86
+ private _scrollTop;
87
+ /** Structure version for cache keys in subclasses (bumped on root / model change and lazy loads). */
88
+ protected get _structureVersion(): number;
89
+ /** Depths at which any loaded node carries an icon (stable across expansion). */
90
+ protected get _depthsWithIcons(): ReadonlySet<number>;
91
+ protected tickled: TickledController<string>;
92
+ protected _focusedDepth: number;
93
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
94
+ readonly search: ListSearchController<{
95
+ node: TreeNode;
96
+ depth: number;
97
+ }>;
98
+ /**
99
+ * Ancestor keys currently stuck to the top of the list (root-ward order).
100
+ * Recomputed on scroll and structural updates; empty when nothing is stuck.
101
+ */
102
+ protected _stickyKeys: string[];
103
+ protected get nativeDrag(): ListNativeDragController<TreeNode>;
104
+ protected get dropState(): TreeDropTarget | undefined;
105
+ /** Keys of the nodes currently being dragged out of this tree. */
106
+ protected get nativeDragKeys(): ReadonlySet<string>;
107
+ willUpdate(changedProps: PropertyValues): void;
108
+ /** True while `node` is a fading ghost row (removed / collapsed, still animating out). */
109
+ protected _isLeaving(node: TreeNode): boolean;
110
+ /**
111
+ * Kept for subclass compatibility. Filtered-out rows are no longer rendered
112
+ * at all (they are omitted from the flat list), so this is `false` for every
113
+ * rendered row.
114
+ */
115
+ protected _isFilteredOut(_node: TreeNode, _depth: number): boolean;
116
+ updated(changedProps: PropertyValues): void;
117
+ connectedCallback(): void;
118
+ disconnectedCallback(): void;
119
+ getConfig(): TreeConfig;
120
+ setConfig(config: Partial<TreeConfig>): void;
121
+ select(node: TreeNode): void;
122
+ deselect(node: TreeNode): void;
123
+ clearSelection(): void;
124
+ selectAll(): void;
125
+ deselectAll(): void;
126
+ navigateTo(keys: readonly string[]): boolean;
127
+ navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
128
+ /** Expand ancestors + move the cursor to `key`, without touching the selection (search "navigate" mode). */
129
+ revealKey(key: string): boolean;
130
+ /** Replace the selection with `nodes` (subject to `selectionFilter`) — search "select" mode. */
131
+ selectMany(nodes: Iterable<TreeNode>): void;
132
+ getNodes(): ReadonlyArray<{
133
+ node: TreeNode;
134
+ depth: number;
135
+ }>;
136
+ protected renderNodeContent(node: TreeNode, depth: number): TemplateResult | typeof nothing;
137
+ protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
138
+ protected _handleCheckboxClick(event: MouseEvent, node: TreeNode, _depth: number): void;
139
+ protected _isSelected(node: TreeNode): boolean;
140
+ protected _isFocused(node: TreeNode): boolean;
141
+ protected _isExpanded(node: TreeNode, _depth?: number): boolean;
142
+ protected get _pendingNode(): TreeNode | undefined;
143
+ protected renderLoadingIndicator(): TemplateResult | typeof nothing;
144
+ protected render(): TemplateResult<1>;
145
+ /**
146
+ * `{ posinset, setsize }` for `aria-posinset` / `aria-setsize`. A windowed
147
+ * list has most siblings out of the DOM, so assistive tech cannot count them.
148
+ */
149
+ protected _ariaSetInfo(node: TreeNode): {
150
+ posInSet: number;
151
+ setSize: number;
152
+ } | undefined;
153
+ /** Shared drag-and-drop render state for a row, used by every `_renderNode` variant. */
154
+ protected _dndRowState(node: TreeNode): {
155
+ draggable: boolean;
156
+ dragging: boolean;
157
+ dropTarget: boolean;
158
+ dropPosition?: TreeDropTarget[`position`];
159
+ dropDepth?: number;
160
+ };
161
+ protected _renderNode(node: TreeNode, depth: number): TemplateResult;
162
+ static styles: import("lit").CSSResult[];
163
+ }
164
+ declare global {
165
+ interface HTMLElementTagNameMap {
166
+ 'ixfx-tree-base': TreeBaseElement;
167
+ }
168
+ }
169
+ interface TreeBaseElementEventMap extends TreeComponentEventMap {
170
+ 'item-click': TreeItemClickEvent;
171
+ 'item-dblclick': TreeItemDblClickEvent;
172
+ 'expand': TreeExpandEvent;
173
+ 'collapse': TreeCollapseEvent;
174
+ 'select': TreeSelectEvent;
175
+ 'tickle': TreeTickleEvent;
176
+ 'activate': TreeActivateEvent;
177
+ 'list-native-drag-start': CustomEvent<ListNativeDragStartDetail<TreeNode>>;
178
+ 'tree-drag-start': TreeDragStartEvent;
179
+ 'tree-drag-over': TreeDragOverEvent;
180
+ 'tree-drop': TreeDropEvent;
181
+ 'tree-drag-end': TreeDragEndEvent;
182
+ }
183
+ interface TreeBaseElement {
184
+ addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
185
+ removeEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
186
+ }
187
+ //#endregion
188
+ //#region src/tree/tree-flat.d.ts
189
+ /** Checkbox tri-state in `checked` interactionMode: a branch node is `indeterminate` when some but not all of its descendants are selected. */
190
+ type TreeCheckboxState = `checked` | `unchecked` | `indeterminate`;
191
+ //#endregion
192
+ //#region src/tree/tree-list.d.ts
193
+ declare class TreeListElement extends TreeBaseElement {
194
+ #private;
195
+ /**
196
+ * Optional renderer for the checkbox shown in `checked` interactionMode.
197
+ * Receives the node's current tri-state (`checked` / `unchecked` / `indeterminate`,
198
+ * the latter when some but not all descendants are selected) and returns a Lit
199
+ * template.
200
+ *
201
+ * When set, the checkbox becomes a `<span role="checkbox">` whose contents are
202
+ * whatever this returns. When unset, a native `<input type="checkbox">` is used.
203
+ *
204
+ * @example
205
+ * list.checkboxRenderer = (state) => state === `unchecked`
206
+ * ? html``
207
+ * : html`<svg viewBox="0 0 16 16" width="14" height="14"
208
+ * fill="none" stroke="currentColor" stroke-width="2"
209
+ * stroke-linecap="round" stroke-linejoin="round"
210
+ * style="opacity:${state === `indeterminate` ? 0.35 : 0.6}">
211
+ * <polyline points="3,8 7,12 13,4" />
212
+ * </svg>`;
213
+ */
214
+ checkboxRenderer: ((state: TreeCheckboxState) => unknown) | undefined;
215
+ willUpdate(changedProps: PropertyValues): void;
216
+ protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
217
+ protected _renderNode(node: TreeNode, depth: number): TemplateResult;
218
+ static styles: import("lit").CSSResult[];
219
+ }
220
+ declare global {
221
+ interface HTMLElementTagNameMap {
222
+ 'ixfx-tree-list': TreeListElement;
223
+ }
224
+ }
225
+ interface TreeListElement {
226
+ addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeListElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
227
+ }
228
+ //#endregion
229
+ //#region src/tree/tree-controller.d.ts
230
+ type TreeControllerOptions<T> = {
231
+ valueToItem: (value: T, node: TraversableTree<T>) => TreeItem;
232
+ };
233
+ declare class TreeController<T> {
234
+ #private;
235
+ constructor(root: TraversableTree<T>, element: TreeBaseElement, options: TreeControllerOptions<T>);
236
+ connect(): void;
237
+ disconnect(): void;
238
+ navigateToValue(predicate: (value: T) => boolean): boolean;
239
+ }
240
+ //#endregion
241
+ //#region src/tree/tree-drop-controller.d.ts
242
+ interface TreeDropVisibleRow {
243
+ readonly key: string;
244
+ readonly node: TreeNode;
245
+ readonly depth: number;
246
+ /** Index of this row in the full flat (visible) list — not in the `rows` array. */
247
+ readonly index: number;
248
+ readonly rect: DOMRect;
249
+ }
250
+ /** Structural facts about a visible row, independent of geometry. */
251
+ interface TreeDropRowInfo {
252
+ readonly node: TreeNode;
253
+ readonly depth: number;
254
+ /** Parent key, or `undefined` for a root-level row. */
255
+ readonly parentKey: string | undefined;
256
+ }
257
+ /** What a `dragover` / `drop` DataTransfer resolved to for this tree. */
258
+ interface TreeDropResolvedDrag {
259
+ readonly source: `internal` | `external`;
260
+ /** Keys of the dragged nodes (empty for external). */
261
+ readonly keys: readonly string[];
262
+ /** The dragged nodes — live nodes for internal, parsed payload for external. */
263
+ readonly nodes: readonly TreeNode[];
264
+ }
265
+ type TreeDropControllerConfig = {
266
+ getDndMode: () => `none` | `internal` | `external` | `both`;
267
+ getExpandHoverMs: () => number;
268
+ /**
269
+ * Measured rows in display order, each with a fresh viewport rect. May be
270
+ * limited to the rows intersecting the scroll container — ancestors and
271
+ * siblings are resolved through `getRowInfo` / `getChildren`, not from here.
272
+ * Host may cache.
273
+ */
274
+ getVisibleRows: () => TreeDropVisibleRow[];
275
+ /** Flat-list info for a visible key (no geometry), or `undefined` if not visible. */
276
+ getRowInfo: (key: string) => TreeDropRowInfo | undefined;
277
+ /** Children of `parentKey`, or the root's children when undefined. */
278
+ getChildren: (parentKey: string | undefined) => readonly TreeNode[];
279
+ getIndentPx: () => number;
280
+ getScrollContainer: () => HTMLElement | undefined;
281
+ /** True when `key` is `ancestorKey` or a descendant of it. */
282
+ isSelfOrDescendant: (ancestorKey: string, key: string) => boolean;
283
+ /** True when the node is currently expanded in the UI. */
284
+ isExpanded: (key: string) => boolean;
285
+ /**
286
+ * When `false`, an internal drop that would not change any dragged node's
287
+ * parent (pure sibling reorder, or dropping back into the current parent) is
288
+ * rejected outright — no indicator, no `tree-drop`.
289
+ */
290
+ isReorderAllowed: () => boolean;
291
+ /** Current parent key of `key`, or `undefined` for a root-level node. */
292
+ getParentKey: (key: string) => string | undefined;
293
+ /**
294
+ * Decide whether this DataTransfer is acceptable and resolve the dragged set.
295
+ * `phase` is `hover` during dragenter/dragover (DataTransfer is read-protected —
296
+ * resolve internal drags from the drag registry) and `drop` during drop
297
+ * (getData is readable; external payloads may be parsed here). Return
298
+ * `undefined` to reject (the tree will not become a drop target).
299
+ */
300
+ resolveDrag: (dataTransfer: DataTransfer, phase: `hover` | `drop`) => TreeDropResolvedDrag | undefined;
301
+ vet: (ctx: TreeDropContext) => boolean;
302
+ expandKey: (key: string) => void;
303
+ /** Fired whenever the resolved drop target changes (undefined = none / rejected). */
304
+ onDropStateChange: (state: TreeDropTarget | undefined) => void;
305
+ /** Fired when a drag enters / leaves this tree. */
306
+ onActiveChange: (active: boolean) => void;
307
+ commitDrop: (detail: TreeDropDetail) => boolean;
308
+ onDragEnd: (dropped: boolean) => void;
309
+ };
310
+ declare class TreeDropController implements ReactiveController {
311
+ #private;
312
+ constructor(host: ReactiveControllerHost & HTMLElement, config: TreeDropControllerConfig);
313
+ /** A drag is currently over this tree. */
314
+ get isDragging(): boolean;
315
+ /** A drag is over this tree but the current position is not a valid drop. */
316
+ get isRejected(): boolean;
317
+ get dropState(): TreeDropTarget | undefined;
318
+ hostConnected(): void;
319
+ /** Bind once the shadow `#container` exists (it does not yet at `hostConnected`). */
320
+ hostUpdated(): void;
321
+ hostDisconnected(): void;
322
+ }
323
+ //#endregion
324
+ export { TreeDropVisibleRow as a, TreeListElement as c, TreeBaseElementEventMap as d, TreeVirtualize as f, TreeDropRowInfo as i, TreeCheckboxState as l, TreeDropControllerConfig as n, TreeController as o, TreeConfig as p, TreeDropResolvedDrag as r, TreeControllerOptions as s, TreeDropController as t, TreeBaseElement as u };
@@ -1,4 +1,4 @@
1
- import "./icon-DR_3rSyZ.js";
1
+ import "./icon-CDGprSdE.js";
2
2
  //#region src/icons/defaults.d.ts
3
3
  /** Chevron pointing down (Lucide `chevron-down`). Used for split-button dropdown toggle. */
4
4
  declare const ICON_CHEVRON_DOWN = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"/></svg>";
@@ -34,5 +34,4 @@ declare function setIconFont(fontFamily: string): void;
34
34
  declare function getIconFont(): string | undefined;
35
35
  declare function svgToDataUri(svg: string): string;
36
36
  //#endregion
37
- export { getIconEntry as a, iconBus as c, setIconFont as d, svgToDataUri as f, ICON_CLOSE as g, ICON_CHEVRON_DOWN as h, getIcon as i, registerFontIcon as l, ICON_CHECK as m, IconChangedEvent as n, getIconFont as o, ICON_CARET_RIGHT as p, IconEntry as r, hasIcon as s, IconChangedDetail as t, registerIcon as u };
38
- //# sourceMappingURL=index-garxxqgV.d.ts.map
37
+ export { getIconEntry as a, iconBus as c, setIconFont as d, svgToDataUri as f, ICON_CLOSE as g, ICON_CHEVRON_DOWN as h, getIcon as i, registerFontIcon as l, ICON_CHECK as m, IconChangedEvent as n, getIconFont as o, ICON_CARET_RIGHT as p, IconEntry as r, hasIcon as s, IconChangedDetail as t, registerIcon as u };
@@ -1,4 +1,4 @@
1
- import { t as LabelledInputBase } from "./labelled-input-base-Dp_9KP0G.js";
1
+ import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
2
2
  import { CSSResultGroup } from "lit";
3
3
  //#region src/labelled-range-input/labelled-range-input.d.ts
4
4
  declare class LabelledRangeInput extends LabelledInputBase {
@@ -20,5 +20,4 @@ declare global {
20
20
  }
21
21
  }
22
22
  //#endregion
23
- export { LabelledRangeInput as t };
24
- //# sourceMappingURL=index-BUB5SICW.d.ts.map
23
+ export { LabelledRangeInput as t };
@@ -391,5 +391,4 @@ declare function attachTimelineInteractions(host: IxfxTimelineElement, vcanvasEl
391
391
  //#region src/timeline/timeline-styles.d.ts
392
392
  declare const timelineStyles: import("lit").CSSResult;
393
393
  //#endregion
394
- export { TimelineTrackReorderEvent as A, TimelineEventResizeEvent as C, TimelineTickleChangeEvent as D, TimelineTickleChangeDetail as E, TrackHeightMode as F, TrackLayout as I, UserScale as L, TimelineTrackResizeEvent as M, TimelineTrackSelectDetail as N, TimelineTrack as O, TimelineTrackSelectEvent as P, ViewRange as R, TimelineEventResizeDetail as S, TimelineSelectionChangeEvent as T, TimelineDraggingEvent as _, CssVars as a, TimelineEventMoveDetail as b, resolveGrid as c, DragSnappingFn as d, DragTarget as f, TimelineDraggingDetail as g, TimelineDraggingCallbackDetail as h, TimelineTrackTabElement as i, TimelineTrackResizeDetail as j, TimelineTrackReorderDetail as k, TimelineController as l, GridResolution as m, attachTimelineInteractions as n, Rect as o, GridMode as p, IxfxTimelineElement as r, resolveCssVars as s, timelineStyles as t, TimelineControllerConfig as u, TimelineElementEventMap as v, TimelineSelectionChangeDetail as w, TimelineEventMoveEvent as x, TimelineEvent as y };
395
- //# sourceMappingURL=index-DV3iaUBW.d.ts.map
394
+ export { TimelineTrackReorderEvent as A, TimelineEventResizeEvent as C, TimelineTickleChangeEvent as D, TimelineTickleChangeDetail as E, TrackHeightMode as F, TrackLayout as I, UserScale as L, TimelineTrackResizeEvent as M, TimelineTrackSelectDetail as N, TimelineTrack as O, TimelineTrackSelectEvent as P, ViewRange as R, TimelineEventResizeDetail as S, TimelineSelectionChangeEvent as T, TimelineDraggingEvent as _, CssVars as a, TimelineEventMoveDetail as b, resolveGrid as c, DragSnappingFn as d, DragTarget as f, TimelineDraggingDetail as g, TimelineDraggingCallbackDetail as h, TimelineTrackTabElement as i, TimelineTrackResizeDetail as j, TimelineTrackReorderDetail as k, TimelineController as l, GridResolution as m, attachTimelineInteractions as n, Rect as o, GridMode as p, IxfxTimelineElement as r, resolveCssVars as s, timelineStyles as t, TimelineControllerConfig as u, TimelineElementEventMap as v, TimelineSelectionChangeDetail as w, TimelineEventMoveEvent as x, TimelineEvent as y };
@@ -1,4 +1,4 @@
1
- import { t as LabelledInputBase } from "./labelled-input-base-Dp_9KP0G.js";
1
+ import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
2
2
  import { n as EditableLabel } from "./editable-label-rzXkjf1H.js";
3
3
  import { n as WheelNudgeConsumer, t as WheelDirection } from "./wheel-nudge-By5s_ioH.js";
4
4
  import { f as SliderMarkerStyle, m as SliderSingleStyle } from "./slider-input-BxURAAmD.js";
@@ -97,5 +97,4 @@ declare global {
97
97
  }
98
98
  }
99
99
  //#endregion
100
- export { EditableNumber as n, LabelledSliderInput as t };
101
- //# sourceMappingURL=index-CJ5fshD3.d.ts.map
100
+ export { EditableNumber as n, LabelledSliderInput as t };
@@ -74,5 +74,4 @@ declare global {
74
74
  }
75
75
  }
76
76
  //#endregion
77
- export { NarrowedTextItem as a, NarrowedTextChangeEvent as i, FuzzySearchResult as n, Orientation as o, NarrowedTextChangeDetail as r, SelectionMode as s, NarrowedTextElement as t };
78
- //# sourceMappingURL=index-o-CWDt11.d.ts.map
77
+ export { NarrowedTextItem as a, NarrowedTextChangeEvent as i, FuzzySearchResult as n, Orientation as o, NarrowedTextChangeDetail as r, SelectionMode as s, NarrowedTextElement as t };
@@ -1,4 +1,4 @@
1
- import "./index-BUB5SICW.js";
1
+ import "./index-CoqtMSd9.js";
2
2
  import { CSSResultGroup, LitElement, PropertyValues } from "lit";
3
3
  import { Colour } from "@ixfx/visual";
4
4
  //#region src/colour-picker/types.d.ts
@@ -183,5 +183,4 @@ declare global {
183
183
  }
184
184
  }
185
185
  //#endregion
186
- export { ColourPickerInputEvent as a, ColourPickerEventDetail as i, ColourPicker as n, OklchValue as o, ColourPickerChangeEvent as r, ColourPickerPopup as t };
187
- //# sourceMappingURL=index-BOUaDIW-.d.ts.map
186
+ export { ColourPickerInputEvent as a, ColourPickerEventDetail as i, ColourPicker as n, OklchValue as o, ColourPickerChangeEvent as r, ColourPickerPopup as t };