@ixfx/components 0.3.2 → 0.4.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 (256) hide show
  1. package/bundle/index.d.ts +1086 -603
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +16153 -15296
  4. package/bundle/index.js.map +1 -1
  5. package/bundle/style.css +14 -4
  6. package/dist/ac-text.d.ts.map +1 -1
  7. package/dist/ac-text.js +11 -6
  8. package/dist/ac-text.js.map +1 -1
  9. package/dist/{button-DMt5XWUK.js → button-C3fLMKUv.js} +4 -4
  10. package/dist/{button-DMt5XWUK.js.map → button-C3fLMKUv.js.map} +1 -1
  11. package/dist/button.d.ts +1 -1
  12. package/dist/button.d.ts.map +1 -1
  13. package/dist/button.js +1 -1
  14. package/dist/checkbox.d.ts +2 -2
  15. package/dist/checkbox.d.ts.map +1 -1
  16. package/dist/checkbox.js +14 -8
  17. package/dist/checkbox.js.map +1 -1
  18. package/dist/{colour-C3MQIjFJ-BLXg8W3U.js → colour-C3MQIjFJ-vRCdr8W-.js} +146 -552
  19. package/dist/colour-C3MQIjFJ-vRCdr8W-.js.map +1 -0
  20. package/dist/{colour-picker-K6zu82lm.js → colour-picker-0sgAha1T.js} +14 -9
  21. package/dist/colour-picker-0sgAha1T.js.map +1 -0
  22. package/dist/colour-picker.d.ts +1 -1
  23. package/dist/colour-picker.js +1 -1
  24. package/dist/crumbs.d.ts +1 -1
  25. package/dist/crumbs.d.ts.map +1 -1
  26. package/dist/crumbs.js +11 -6
  27. package/dist/crumbs.js.map +1 -1
  28. package/dist/data-display.d.ts +9 -4
  29. package/dist/data-display.d.ts.map +1 -1
  30. package/dist/data-display.js +270 -43
  31. package/dist/data-display.js.map +1 -1
  32. package/dist/data-provider-DgI909FP.js +23 -0
  33. package/dist/data-provider-DgI909FP.js.map +1 -0
  34. package/dist/{decorate-D7rC1gLP.js → decorate-DdjvVHS-.js} +2 -2
  35. package/dist/{decorate-D7rC1gLP.js.map → decorate-DdjvVHS-.js.map} +1 -1
  36. package/dist/{defaults-C7elhuyJ.js → defaults-C3b9OWJD.js} +2 -2
  37. package/dist/{defaults-C7elhuyJ.js.map → defaults-C3b9OWJD.js.map} +1 -1
  38. package/dist/{dist-TAGYwaju.js → dist-CA13FvMn.js} +7 -66
  39. package/dist/dist-CA13FvMn.js.map +1 -0
  40. package/dist/editable-label.d.ts.map +1 -1
  41. package/dist/editable-label.js +3 -2
  42. package/dist/editable-label.js.map +1 -1
  43. package/dist/fallbacks-pNMOMx38.js +168 -0
  44. package/dist/fallbacks-pNMOMx38.js.map +1 -0
  45. package/dist/{hex-editor-DlfoA65y.d.ts → hex-editor-CMIxtNgT.d.ts} +1 -1
  46. package/dist/hex-editor-CMIxtNgT.d.ts.map +1 -0
  47. package/dist/{hex-editor-CsN_ySkH.js → hex-editor-WZrjRtvL.js} +3 -3
  48. package/dist/{hex-editor-CsN_ySkH.js.map → hex-editor-WZrjRtvL.js.map} +1 -1
  49. package/dist/hex.d.ts +1 -1
  50. package/dist/hex.js +1 -1
  51. package/dist/{highlight-TPbSHruI.js → highlight-B-eQrhhb.js} +1 -1
  52. package/dist/{highlight-TPbSHruI.js.map → highlight-B-eQrhhb.js.map} +1 -1
  53. package/dist/{icon-Dm_DHDz6.d.ts → icon-Bd5BiU4b.d.ts} +3 -3
  54. package/dist/icon-Bd5BiU4b.d.ts.map +1 -0
  55. package/dist/{icon-9NWTXtE1.js → icon-Ndo40kNO.js} +6 -5
  56. package/dist/icon-Ndo40kNO.js.map +1 -0
  57. package/dist/icons.d.ts +2 -2
  58. package/dist/icons.js +3 -3
  59. package/dist/{incr-search-DSKKsk6w.js → incr-search-CeERfijK.js} +2 -2
  60. package/dist/{incr-search-DSKKsk6w.js.map → incr-search-CeERfijK.js.map} +1 -1
  61. package/dist/incr-search.d.ts +1 -1
  62. package/dist/incr-search.js +2 -2
  63. package/dist/{index-hXFn14tM.d.ts → index-BMjri2-S.d.ts} +2 -2
  64. package/dist/{index-hXFn14tM.d.ts.map → index-BMjri2-S.d.ts.map} +1 -1
  65. package/dist/{index-DSlPeWLK.d.ts → index-CWpNcQKE.d.ts} +5 -5
  66. package/dist/index-CWpNcQKE.d.ts.map +1 -0
  67. package/dist/{index-DLkSKL4T.d.ts → index-CowKi2mo.d.ts} +1 -1
  68. package/dist/index-CowKi2mo.d.ts.map +1 -0
  69. package/dist/{index-B1hNR7Z9.d.ts → index-D87kRcEs.d.ts} +1 -1
  70. package/dist/{index-B1hNR7Z9.d.ts.map → index-D87kRcEs.d.ts.map} +1 -1
  71. package/dist/{index-CnL9krsH.d.ts → index-DgXpCg_G.d.ts} +32 -26
  72. package/dist/index-DgXpCg_G.d.ts.map +1 -0
  73. package/dist/{index-iZLld8Ca.d.ts → index-s_IhSnwc.d.ts} +2 -2
  74. package/dist/index-s_IhSnwc.d.ts.map +1 -0
  75. package/dist/index.d.ts +432 -121
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +2369 -1706
  78. package/dist/index.js.map +1 -1
  79. package/dist/interaction-D6efrBLo.js +1 -0
  80. package/dist/{keyboard-De_vOHLg.js → keyboard-CimiEskD.js} +1 -1
  81. package/dist/{keyboard-De_vOHLg.js.map → keyboard-CimiEskD.js.map} +1 -1
  82. package/dist/{labelled-input-base-CqPL5rKm.js → labelled-input-base-9K_w3oLj.js} +2 -2
  83. package/dist/{labelled-input-base-CqPL5rKm.js.map → labelled-input-base-9K_w3oLj.js.map} +1 -1
  84. package/dist/{labelled-input-base-BVvNeb5R.d.ts → labelled-input-base-ORb1rGq6.d.ts} +2 -2
  85. package/dist/labelled-input-base-ORb1rGq6.d.ts.map +1 -0
  86. package/dist/labelled-radial-input.d.ts +3 -3
  87. package/dist/labelled-radial-input.d.ts.map +1 -1
  88. package/dist/labelled-radial-input.js +7 -6
  89. package/dist/labelled-radial-input.js.map +1 -1
  90. package/dist/labelled-range-input.d.ts +1 -1
  91. package/dist/labelled-range-input.js +2 -2
  92. package/dist/led.d.ts +1 -1
  93. package/dist/led.d.ts.map +1 -1
  94. package/dist/led.js +2 -2
  95. package/dist/led.js.map +1 -1
  96. package/dist/{menu-item-CKRfP0pN.js → menu-item-BrIuORYD.js} +20 -10
  97. package/dist/menu-item-BrIuORYD.js.map +1 -0
  98. package/dist/{menu-item-ClQF2DKN.d.ts → menu-item-COx-Azgj.d.ts} +1 -1
  99. package/dist/menu-item-COx-Azgj.d.ts.map +1 -0
  100. package/dist/{menu-DJJuCm-5.js → menu-vjoiHZ13.js} +30 -17
  101. package/dist/menu-vjoiHZ13.js.map +1 -0
  102. package/dist/menu.d.ts +2 -2
  103. package/dist/menu.js +2 -2
  104. package/dist/miller.d.ts +2 -2
  105. package/dist/miller.d.ts.map +1 -1
  106. package/dist/miller.js +18 -11
  107. package/dist/miller.js.map +1 -1
  108. package/dist/narrowed-text.d.ts.map +1 -1
  109. package/dist/narrowed-text.js +7 -5
  110. package/dist/narrowed-text.js.map +1 -1
  111. package/dist/panel.d.ts +1 -1
  112. package/dist/panel.d.ts.map +1 -1
  113. package/dist/panel.js +5 -4
  114. package/dist/panel.js.map +1 -1
  115. package/dist/plots.d.ts +2 -2
  116. package/dist/plots.js +2 -2
  117. package/dist/polar-pad.d.ts +1 -1
  118. package/dist/polar-pad.d.ts.map +1 -1
  119. package/dist/polar-pad.js +10 -4
  120. package/dist/polar-pad.js.map +1 -1
  121. package/dist/{popup-ImtS9KnS.js → popup-DiWMxsWj.js} +1 -1
  122. package/dist/{popup-ImtS9KnS.js.map → popup-DiWMxsWj.js.map} +1 -1
  123. package/dist/prominence-DlFShic3.js +104 -0
  124. package/dist/prominence-DlFShic3.js.map +1 -0
  125. package/dist/{radial-input-LUSBEycd.d.ts → radial-input-CpQPs1Mp.d.ts} +1 -1
  126. package/dist/radial-input-CpQPs1Mp.d.ts.map +1 -0
  127. package/dist/{radial-input-DZA6WaFu.js → radial-input-DZ7eQCcM.js} +11 -6
  128. package/dist/radial-input-DZ7eQCcM.js.map +1 -0
  129. package/dist/radial-input.d.ts +1 -1
  130. package/dist/radial-input.js +1 -1
  131. package/dist/range-input.d.ts +1 -1
  132. package/dist/range-input.d.ts.map +1 -1
  133. package/dist/range-input.js +9 -4
  134. package/dist/range-input.js.map +1 -1
  135. package/dist/range.d.ts +1 -1
  136. package/dist/range.d.ts.map +1 -1
  137. package/dist/range.js +5 -3
  138. package/dist/range.js.map +1 -1
  139. package/dist/{registry-Q2gYQCHM.js → registry-CkW7q09Q.js} +1 -1
  140. package/dist/{registry-Q2gYQCHM.js.map → registry-CkW7q09Q.js.map} +1 -1
  141. package/dist/selecthorizontal.d.ts +1 -1
  142. package/dist/selecthorizontal.d.ts.map +1 -1
  143. package/dist/selecthorizontal.js +4 -3
  144. package/dist/selecthorizontal.js.map +1 -1
  145. package/dist/snap-container.d.ts.map +1 -1
  146. package/dist/snap-container.js +1 -1
  147. package/dist/split-layout.d.ts +1 -1
  148. package/dist/split-layout.d.ts.map +1 -1
  149. package/dist/split-layout.js +6 -5
  150. package/dist/split-layout.js.map +1 -1
  151. package/dist/style.css +14 -4
  152. package/dist/swipe.d.ts.map +1 -1
  153. package/dist/swipe.js +9 -4
  154. package/dist/swipe.js.map +1 -1
  155. package/dist/{tab-list-BnqISNvO.d.ts → tab-list-DLzb-m-I.d.ts} +2 -2
  156. package/dist/tab-list-DLzb-m-I.d.ts.map +1 -0
  157. package/dist/tabs.d.ts +1 -1
  158. package/dist/tabs.js +10 -4
  159. package/dist/tabs.js.map +1 -1
  160. package/dist/{tickled-controller-Cq1Va0rR.d.ts → tickled-controller-BjYCzGrU.d.ts} +2 -2
  161. package/dist/tickled-controller-BjYCzGrU.d.ts.map +1 -0
  162. package/dist/{tickled-styles-Bg3QbcrD.js → tickled-styles-fNDdqf6l.js} +1 -17
  163. package/dist/{tickled-styles-Bg3QbcrD.js.map → tickled-styles-fNDdqf6l.js.map} +1 -1
  164. package/dist/{timeline-Bh0PhlKW.js → timeline-2OFtN4Ta.js} +2 -2
  165. package/dist/{timeline-Bh0PhlKW.js.map → timeline-2OFtN4Ta.js.map} +1 -1
  166. package/dist/timeline.d.ts +1 -1
  167. package/dist/timeline.js +1 -1
  168. package/dist/{tooltip-DMxmBNky.js → tooltip-CJt3WLmN.js} +1 -1
  169. package/dist/{tooltip-DMxmBNky.js.map → tooltip-CJt3WLmN.js.map} +1 -1
  170. package/dist/{tooltip-CwGfb4lp.d.ts → tooltip-RGVIwHrZ.d.ts} +1 -1
  171. package/dist/{tooltip-CwGfb4lp.d.ts.map → tooltip-RGVIwHrZ.d.ts.map} +1 -1
  172. package/dist/{tree-CvvKbO-f.js → tree-CJWpMUvD.js} +113 -103
  173. package/dist/tree-CJWpMUvD.js.map +1 -0
  174. package/dist/{tree-component-D8Bg48tt.d.ts → tree-component-BcO26Xvt.d.ts} +65 -3
  175. package/dist/tree-component-BcO26Xvt.d.ts.map +1 -0
  176. package/dist/tree.d.ts +15 -15
  177. package/dist/tree.d.ts.map +1 -1
  178. package/dist/tree.js +1 -1
  179. package/dist/{types-BKaqnpwx.d.ts → types-DSfbtHs3.d.ts} +1 -1
  180. package/dist/types-DSfbtHs3.d.ts.map +1 -0
  181. package/dist/{xy-axis-DL0tfJDr.js → xy-axis-CK64haaK.js} +1831 -359
  182. package/dist/xy-axis-CK64haaK.js.map +1 -0
  183. package/dist/{xy-axis-D9uwpGTT.d.ts → xy-axis-McdUpcYr.d.ts} +102 -3
  184. package/dist/xy-axis-McdUpcYr.d.ts.map +1 -0
  185. package/dist/xy-pad.d.ts +1 -1
  186. package/dist/xy-pad.d.ts.map +1 -1
  187. package/dist/xy-pad.js +11 -6
  188. package/dist/xy-pad.js.map +1 -1
  189. package/docs-user/README.md +45 -0
  190. package/docs-user/ac-text.md +67 -0
  191. package/docs-user/ac-token.md +187 -0
  192. package/docs-user/button.md +355 -0
  193. package/docs-user/checkbox.md +62 -0
  194. package/docs-user/colour-picker.md +237 -0
  195. package/docs-user/crumbs.md +66 -0
  196. package/docs-user/data-display.md +98 -0
  197. package/docs-user/editable-label.md +244 -0
  198. package/docs-user/grouped-item-lister.md +424 -0
  199. package/docs-user/icons.md +191 -0
  200. package/docs-user/incr-search.md +94 -0
  201. package/docs-user/labelled-radial-input.md +204 -0
  202. package/docs-user/labelled-range-input.md +194 -0
  203. package/docs-user/led.md +40 -0
  204. package/docs-user/menu.md +319 -0
  205. package/docs-user/miller.md +453 -0
  206. package/docs-user/narrowed-text.md +72 -0
  207. package/docs-user/panel.md +250 -0
  208. package/docs-user/plots.md +361 -0
  209. package/docs-user/polar-pad.md +228 -0
  210. package/docs-user/radial-input.md +559 -0
  211. package/docs-user/range-input.md +264 -0
  212. package/docs-user/range.md +12 -0
  213. package/docs-user/selecthorizontal.md +32 -0
  214. package/docs-user/snap-container.md +132 -0
  215. package/docs-user/split-layout.md +232 -0
  216. package/docs-user/swipe.md +44 -0
  217. package/docs-user/tabs.md +217 -0
  218. package/docs-user/timeline.md +116 -0
  219. package/docs-user/transitory-label.md +120 -0
  220. package/docs-user/tree.md +592 -0
  221. package/docs-user/user-catalog.md +165 -0
  222. package/docs-user/user-theming.md +379 -0
  223. package/docs-user/util.md +122 -0
  224. package/docs-user/vertical-list.md +351 -0
  225. package/docs-user/xy-pad.md +94 -0
  226. package/package.json +18 -17
  227. package/dist/colour-C3MQIjFJ-BLXg8W3U.js.map +0 -1
  228. package/dist/colour-picker-K6zu82lm.js.map +0 -1
  229. package/dist/dist-BX0OVIm7.js +0 -1290
  230. package/dist/dist-BX0OVIm7.js.map +0 -1
  231. package/dist/dist-TAGYwaju.js.map +0 -1
  232. package/dist/hex-editor-DlfoA65y.d.ts.map +0 -1
  233. package/dist/icon-9NWTXtE1.js.map +0 -1
  234. package/dist/icon-Dm_DHDz6.d.ts.map +0 -1
  235. package/dist/index-CnL9krsH.d.ts.map +0 -1
  236. package/dist/index-DLkSKL4T.d.ts.map +0 -1
  237. package/dist/index-DSlPeWLK.d.ts.map +0 -1
  238. package/dist/index-iZLld8Ca.d.ts.map +0 -1
  239. package/dist/interaction-DG7X1rhI.js +0 -1
  240. package/dist/labelled-input-base-BVvNeb5R.d.ts.map +0 -1
  241. package/dist/menu-DJJuCm-5.js.map +0 -1
  242. package/dist/menu-item-CKRfP0pN.js.map +0 -1
  243. package/dist/menu-item-ClQF2DKN.d.ts.map +0 -1
  244. package/dist/prominence--ic9uWBl.js +0 -98
  245. package/dist/prominence--ic9uWBl.js.map +0 -1
  246. package/dist/radial-input-DZA6WaFu.js.map +0 -1
  247. package/dist/radial-input-LUSBEycd.d.ts.map +0 -1
  248. package/dist/tab-list-BnqISNvO.d.ts.map +0 -1
  249. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +0 -1
  250. package/dist/tree-CvvKbO-f.js.map +0 -1
  251. package/dist/tree-component-D8Bg48tt.d.ts.map +0 -1
  252. package/dist/types-BKaqnpwx.d.ts.map +0 -1
  253. package/dist/xy-axis-D9uwpGTT.d.ts.map +0 -1
  254. package/dist/xy-axis-DL0tfJDr.js.map +0 -1
  255. /package/bundle/{chunk-pbuEa-1d.js → chunk-D7D4PA-g.js} +0 -0
  256. /package/dist/{chunk-pbuEa-1d.js → chunk-D7D4PA-g.js} +0 -0
package/bundle/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FzfOptions } from "fzf";
2
- import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
2
+ import { CommandId, CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
3
3
 
4
4
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/css-tag.d.ts
5
5
  /**
@@ -1054,7 +1054,7 @@ declare class IxfxIconElement extends LitElement {
1054
1054
  disconnectedCallback(): void;
1055
1055
  protected render(): typeof nothing | TemplateResult<1>;
1056
1056
  protected updated(changed: Map<string, unknown>): void;
1057
- static styles: CSSResult;
1057
+ static styles: CSSResult[];
1058
1058
  }
1059
1059
  declare global {
1060
1060
  interface HTMLElementTagNameMap {
@@ -1163,7 +1163,6 @@ type AcTokenItem = {
1163
1163
  readonly data?: unknown;
1164
1164
  readonly positions?: ReadonlySet<number>;
1165
1165
  };
1166
- type AcTokenCompletionProvider = (token: string, signal: AbortSignal) => Promise<AcTokenItem[]> | AcTokenItem[];
1167
1166
  type AcTokenizerFn = (text: string) => string[];
1168
1167
  type AcTokensChangeDetail = {
1169
1168
  readonly tokens: readonly AcTokenItem[];
@@ -1185,6 +1184,64 @@ interface AcTokenElementEventMap {
1185
1184
  'ac-token-remove': AcTokenRemoveEvent;
1186
1185
  }
1187
1186
  //#endregion
1187
+ //#region src/common/data-provider.d.ts
1188
+ /**
1189
+ * Shared data-provider contract used by components that render a list of items.
1190
+ *
1191
+ * A provider is a simple callable — the consuming component (via DataController)
1192
+ * manages the request lifecycle, cancellation, and reactive state.
1193
+ */
1194
+ /**
1195
+ * One batch of items within a streaming provider response.
1196
+ *
1197
+ * For sync and async one-shot providers, the DataController synthesises a single
1198
+ * DataBatch internally — you only need this type when writing a streaming provider.
1199
+ */
1200
+ type DataBatch<T> = {
1201
+ /** Items delivered in this batch. */readonly items: readonly T[];
1202
+ /**
1203
+ * When true, replace all previously accumulated items with this batch instead
1204
+ * of appending. Useful for re-ranked or filtered results mid-stream.
1205
+ * Default: false (append).
1206
+ */
1207
+ replace?: boolean;
1208
+ /**
1209
+ * Provider's current estimate of the total number of items that will be
1210
+ * delivered across all batches. Enables progress percentage in the consumer.
1211
+ * May be refined in subsequent batches as the estimate improves.
1212
+ * Omit when the total is unknown.
1213
+ */
1214
+ total?: number;
1215
+ };
1216
+ /**
1217
+ * The three return modes a provider may use.
1218
+ * DataController normalises all three — callers can mix modes freely.
1219
+ *
1220
+ * - `readonly T[]` — sync, items available immediately
1221
+ * - `Promise<readonly T[]>` — async one-shot, resolves to the full result
1222
+ * - `AsyncIterable<DataBatch<T>>` — streaming, batches arrive over time
1223
+ */
1224
+ type DataProviderResult<T> = readonly T[] | Promise<readonly T[]> | AsyncIterable<DataBatch<T>>;
1225
+ /**
1226
+ * A data provider callable.
1227
+ *
1228
+ * @typeParam TQuery - The input that scopes the request (e.g. `string` for
1229
+ * autocomplete, `{ node, depth }` for a tree branch, `void` for a plain list).
1230
+ * @typeParam TItem - The item type produced.
1231
+ *
1232
+ * The AbortSignal is cancelled when the consumer supersedes the request (e.g.
1233
+ * a new query arrives before the previous one completes). Streaming providers
1234
+ * should check `signal.aborted` between yields or pass the signal to their
1235
+ * underlying fetch calls.
1236
+ */
1237
+ type IDataProvider<TQuery, TItem> = (query: TQuery, signal: AbortSignal) => DataProviderResult<TItem>;
1238
+ /**
1239
+ * Collects all items from any DataProviderResult into a flat array.
1240
+ * Useful for components that need a complete list before rendering (e.g. tree branches).
1241
+ * Respects the AbortSignal — stops accumulating if cancelled mid-stream.
1242
+ */
1243
+ declare function collectDataResult<T>(result: DataProviderResult<T>, signal: AbortSignal): Promise<readonly T[]>;
1244
+ //#endregion
1188
1245
  //#region src/ac-token/ac-token.d.ts
1189
1246
  /**
1190
1247
  * Token/tag input with per-token autocomplete suggestions.
@@ -1205,7 +1262,7 @@ interface AcTokenElementEventMap {
1205
1262
  declare class AcTokenElement extends LitElement {
1206
1263
  #private;
1207
1264
  /** Provides completion results for the current draft token. */
1208
- completionProvider: AcTokenCompletionProvider | undefined;
1265
+ completionProvider: IDataProvider<string, AcTokenItem> | undefined;
1209
1266
  /** Custom tokenizer — defaults to splitting on space, comma, semicolon. */
1210
1267
  tokenizer: AcTokenizerFn | undefined;
1211
1268
  /** Placeholder text shown when no tokens or draft text are present. */
@@ -1219,12 +1276,16 @@ declare class AcTokenElement extends LitElement {
1219
1276
  * When false (default), typing text and pressing Enter commits it as-is.
1220
1277
  */
1221
1278
  strict: boolean;
1279
+ /**
1280
+ * When false (default), tokens that have already been committed are
1281
+ * filtered out of the suggestion list. Set to true to show all
1282
+ * suggestions including duplicates.
1283
+ */
1284
+ allowDuplicates: boolean;
1222
1285
  private _tokens;
1223
1286
  private _draft;
1224
1287
  private _selectedTokenIndex;
1225
- private _suggestions;
1226
1288
  private _isOpen;
1227
- private _isLoading;
1228
1289
  private _tickled;
1229
1290
  constructor();
1230
1291
  get tokens(): readonly AcTokenItem[];
@@ -1498,10 +1559,10 @@ declare global {
1498
1559
  }
1499
1560
  } //# sourceMappingURL=split-button.d.ts.map
1500
1561
  //#endregion
1501
- //#region src/checkbox.d.ts
1562
+ //#region src/checkbox/checkbox.d.ts
1502
1563
  declare class Checkbox extends LitElement {
1503
1564
  #private;
1504
- static styles: CSSResult;
1565
+ static styles: CSSResult[];
1505
1566
  checked: boolean;
1506
1567
  disabled: boolean;
1507
1568
  indeterminate: boolean;
@@ -1556,7 +1617,38 @@ declare global {
1556
1617
  }
1557
1618
  } //# sourceMappingURL=types.d.ts.map
1558
1619
  //#endregion
1559
- //#region node_modules/.pnpm/@ixfx+collections@0.56.12/node_modules/@ixfx/collections/dist/index-rrpZOWbs.d.ts
1620
+ //#region node_modules/.pnpm/@ixfx+geometry@0.56.13/node_modules/@ixfx/geometry/dist/angles.d.ts
1621
+ /**
1622
+ * A angle with unit.
1623
+ * - [Degrees](https://en.wikipedia.org/wiki/Degree_(angle)): 0..360
1624
+ * - [Radians](https://en.wikipedia.org/wiki/Radian): 0...2Pi
1625
+ * - [Gradians](https://en.wikipedia.org/wiki/Gradian): 0..400
1626
+ * - [Turns](https://en.wikipedia.org/wiki/Turn_(angle)): 0..1
1627
+ *
1628
+ *
1629
+ * ```
1630
+ * 100 grad
1631
+ * 1/4 turn
1632
+ * 90 deg
1633
+ * PI/2 rad
1634
+ * |
1635
+ * Pi rad | 0 or 2PI rad
1636
+ * 180deg -------+------- 0 or 360 deg
1637
+ * 1/2 turn | 0 or 1 turn
1638
+ * 200 grad | 0 or 400 grad
1639
+ * |
1640
+ * 270 deg
1641
+ * 3PI/2 rad
1642
+ * 3/4 turn
1643
+ * 300 grad
1644
+ * ```
1645
+ */
1646
+ type Angle = {
1647
+ value: number;
1648
+ unit: `deg` | `rad` | `turn` | `grad`;
1649
+ };
1650
+ //#endregion
1651
+ //#region node_modules/.pnpm/@ixfx+collections@0.56.13/node_modules/@ixfx/collections/dist/index-rrpZOWbs.d.ts
1560
1652
  /**
1561
1653
  * Traversable Tree.
1562
1654
  *
@@ -1584,7 +1676,7 @@ type TraversableTree<TValue> = {
1584
1676
  getIdentity: () => any;
1585
1677
  };
1586
1678
  //#endregion
1587
- //#region node_modules/.pnpm/@ixfx+random@0.56.12/node_modules/@ixfx/random/dist/index.d.ts
1679
+ //#region node_modules/.pnpm/@ixfx+random@0.56.13/node_modules/@ixfx/random/dist/index.d.ts
1588
1680
  //#region src/types.d.ts
1589
1681
  /**
1590
1682
  * A random source.
@@ -1593,32 +1685,7 @@ type TraversableTree<TValue> = {
1593
1685
  */
1594
1686
  type RandomSource = () => number;
1595
1687
  //#endregion
1596
- //#region node_modules/.pnpm/@ixfx+geometry@0.56.12/node_modules/@ixfx/geometry/dist/index.d.ts
1597
- type Angle = {
1598
- value: number;
1599
- unit: `deg` | `rad` | `turn` | `grad`;
1600
- };
1601
- /**
1602
- * Parses CSS-style angle strings into an 'Angle' type. By default assumes degrees.
1603
- *
1604
- * ```js
1605
- * angleParse(`100`); // { value: 100, unit: `deg` }
1606
- * angleParse(100); // { value: 100, unit: `deg` }
1607
- * angleParse(`100deg`); // { value: 100, unit: `deg` }
1608
- *
1609
- * // More exotic units:
1610
- * angleParse(`100rad`); // { value: 100, unit: `rad` }
1611
- * angleParse(`100turn`); // { value: 100, unit: `turn` }
1612
- * angleParse(`100grad`); // { value: 100, unit: `grad` }
1613
- * ```
1614
- *
1615
- * Once parsed in this format, use {@link angleConvert} to convert to
1616
- * a different unit.
1617
- * @param value
1618
- * @returns
1619
- */
1620
- //#endregion
1621
- //#region node_modules/.pnpm/@ixfx+visual@0.56.12/node_modules/@ixfx/visual/dist/index-a3KMyMEu.d.ts
1688
+ //#region node_modules/.pnpm/@ixfx+visual@0.56.13/node_modules/@ixfx/visual/dist/index-a3KMyMEu.d.ts
1622
1689
  //#region src/colour/types.d.ts
1623
1690
  type HslBase = {
1624
1691
  /**
@@ -2843,6 +2910,80 @@ declare global {
2843
2910
  }
2844
2911
  }
2845
2912
  //#endregion
2913
+ //#region src/common/data-controller.d.ts
2914
+ type DataControllerOptions = {
2915
+ /**
2916
+ * Clear accumulated items immediately when request() is called.
2917
+ * When false, stale items remain visible while the new request is in-flight
2918
+ * (useful for re-query-on-keystroke patterns — avoids a blank flash).
2919
+ * Default: true.
2920
+ */
2921
+ clearOnRequest?: boolean;
2922
+ /**
2923
+ * Called when the provider throws or rejects. Useful for logging without
2924
+ * coupling the error to render logic.
2925
+ */
2926
+ onError?: (err: unknown) => void;
2927
+ };
2928
+ /**
2929
+ * Lit ReactiveController that manages one active data provider request at a time.
2930
+ *
2931
+ * Handles all three provider return modes (sync, async one-shot, streaming),
2932
+ * tracks progress, and cancels in-flight requests when a new one starts.
2933
+ * Calls host.requestUpdate() on every state change so the component re-renders
2934
+ * automatically.
2935
+ *
2936
+ * @typeParam TQuery - The query/scope type passed to the provider.
2937
+ * @typeParam TItem - The item type produced by the provider.
2938
+ *
2939
+ * @example
2940
+ * ```ts
2941
+ * class MyList extends LitElement {
2942
+ * #data = new DataController<string, MyItem>(this, myProvider);
2943
+ *
2944
+ * protected override render() {
2945
+ * return html`
2946
+ * ${this.#data.loading ? html`<span>Loading…</span>` : nothing}
2947
+ * ${this.#data.items.map(item => html`<div>${item.label}</div>`)}
2948
+ * `;
2949
+ * }
2950
+ * }
2951
+ * ```
2952
+ */
2953
+ declare class DataController<TQuery, TItem> implements ReactiveController {
2954
+ #private;
2955
+ constructor(host: ReactiveControllerHost, provider?: IDataProvider<TQuery, TItem>, options?: DataControllerOptions);
2956
+ hostConnected(): void;
2957
+ hostDisconnected(): void;
2958
+ get provider(): IDataProvider<TQuery, TItem> | undefined;
2959
+ set provider(value: IDataProvider<TQuery, TItem> | undefined);
2960
+ /** The currently accumulated items. */
2961
+ get items(): readonly TItem[];
2962
+ /** True while a provider call is pending or a stream is still open. */
2963
+ get loading(): boolean;
2964
+ /** Number of items accumulated so far in the current request. */
2965
+ get loaded(): number;
2966
+ /**
2967
+ * Provider's latest estimate of the total number of items expected.
2968
+ * Undefined when the provider has not reported a total.
2969
+ */
2970
+ get total(): number | undefined;
2971
+ /**
2972
+ * Progress as a 0–1 value, or undefined when total is unknown.
2973
+ * Derived from loaded / total.
2974
+ */
2975
+ get progress(): number | undefined;
2976
+ /** The last error thrown by the provider, or undefined if the last request succeeded. */
2977
+ get error(): unknown;
2978
+ /**
2979
+ * Cancel any in-flight request and start a new one.
2980
+ * Clears items immediately unless clearOnRequest was set to false.
2981
+ */
2982
+ request(query: TQuery): void;
2983
+ /** Abort any in-flight request without issuing a new one. */
2984
+ cancel(): void;
2985
+ }
2986
+ //#endregion
2846
2987
  //#region src/common/types.d.ts
2847
2988
  /**
2848
2989
  * Canonical shared types for all tree-like components (ixfx-tree-list, ixfx-miller-list,
@@ -2872,8 +3013,12 @@ type TreeNode = {
2872
3013
  /**
2873
3014
  * Callback invoked when a node's children need to be loaded.
2874
3015
  * The AbortSignal is cancelled if the request is superseded (e.g. node collapsed before load completes).
3016
+ * May return children synchronously, as a promise, or as a streaming async iterable of batches.
2875
3017
  */
2876
- type LoadChildrenCallback = (node: TreeNode, depth: number, signal: AbortSignal) => TreeNode[] | Promise<TreeNode[]>;
3018
+ type LoadChildrenCallback = IDataProvider<{
3019
+ node: TreeNode;
3020
+ depth: number;
3021
+ }, TreeNode>;
2877
3022
  /**
2878
3023
  * Predicate used by search/filter controllers to determine whether a node should be visible.
2879
3024
  * Receives depth so column-scoped filtering (e.g. in ixfx-miller-list) is possible.
@@ -3405,21 +3550,26 @@ declare class CrumbPathController {
3405
3550
  disconnect(): void;
3406
3551
  }
3407
3552
  //#endregion
3408
- //#region src/data-display.d.ts
3553
+ //#region src/data-display/data-display.d.ts
3554
+ type RendererStyle = `led` | `plot` | `plot-xy` | `plot-heat` | `plot-histogram` | `time-elapsed` | `hide`;
3555
+ type ConfigEntry = readonly [path: string, style: RendererStyle, options?: Record<string, unknown>];
3409
3556
  type FormattingOptions = {
3410
3557
  readonly precision?: number;
3411
3558
  readonly roundNumbers?: number;
3412
3559
  };
3413
3560
  declare class DataDisplayComponent extends LitElement {
3414
- static styles: CSSResult;
3561
+ #private;
3562
+ static styles: CSSResult[];
3563
+ automap: boolean;
3415
3564
  previousValue: Record<string, unknown> | undefined;
3416
3565
  _container: HTMLElement;
3417
3566
  constructor();
3418
3567
  connectedCallback(): void;
3568
+ configure(config: ConfigEntry[]): void;
3419
3569
  formatValue(v: unknown, options?: FormattingOptions): string;
3420
3570
  displayData(o: Record<string, unknown> | unknown[]): void;
3421
- getOrCreate(path: string, init?: (parent: HTMLElement) => void): HTMLElement;
3422
3571
  updateData(value: Record<string, unknown>): void;
3572
+ getOrCreate(path: string, init?: (parent: HTMLElement) => void): HTMLElement;
3423
3573
  }
3424
3574
  declare global {
3425
3575
  interface HTMLElementTagNameMap {
@@ -3560,146 +3710,781 @@ declare global {
3560
3710
  }
3561
3711
  } //# sourceMappingURL=editable-number.d.ts.map
3562
3712
  //#endregion
3563
- //#region src/hex/types.d.ts
3564
- type BytePos = number;
3565
- type SingleSelection = {
3566
- readonly kind: `single`;
3567
- readonly pos: BytePos;
3713
+ //#region src/vertical-list/types.d.ts
3714
+ type ListSelectionMode = `none` | `single` | `multiple`;
3715
+ /**
3716
+ * Controls how pointer and keyboard gestures map to selection changes.
3717
+ *
3718
+ * - `implicit` — click always replaces selection (no modifier support)
3719
+ * - `standard` — click replaces; Ctrl/Cmd+click toggles; Shift+click range-selects (multiple only)
3720
+ * - `manual` — no auto-selection; drive state via select()/deselect()/clearSelection()
3721
+ * - `checked` — every click toggles; implies multiple selection regardless of selectionMode
3722
+ * - `vscode` — like standard for clicks; Shift+Arrow extends range from the keyboard anchor
3723
+ *
3724
+ * Switching interactionMode clears the current selection.
3725
+ */
3726
+ type ListInteractionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
3727
+ type ListSelectDetail = {
3728
+ readonly selected: ReadonlySet<Element>;
3729
+ readonly previous: ReadonlySet<Element>;
3568
3730
  };
3569
- type ContiguousSelection = {
3570
- readonly kind: `contiguous`;
3571
- readonly start: BytePos;
3572
- readonly end: BytePos;
3731
+ type ListTickleDetail = {
3732
+ readonly item: Element;
3573
3733
  };
3574
- type RectangularSelection = {
3575
- readonly kind: `rectangular`;
3576
- readonly x: number;
3577
- readonly y: number;
3578
- readonly width: number;
3579
- readonly height: number;
3734
+ type ListActivateDetail = {
3735
+ readonly item: Element;
3580
3736
  };
3581
- type Selection = SingleSelection | ContiguousSelection | RectangularSelection | null;
3582
- type DiffEntry = {
3583
- readonly before: number;
3584
- readonly after: number;
3737
+ type ListItemClickDetail = {
3738
+ readonly item: Element;
3585
3739
  };
3586
- type Diff = ReadonlyMap<BytePos, DiffEntry>;
3587
- type ColourScheme = `ascii` | `shade`;
3588
- //#endregion
3589
- //#region src/hex/hex-editor.d.ts
3590
- declare class IxfxHexEditorElement extends LitElement {
3591
- columns: number;
3592
- colourScheme: ColourScheme;
3593
- showChangeset: boolean;
3594
- hideOffsetCol: boolean;
3595
- hideHexCol: boolean;
3596
- hideTextCol: boolean;
3597
- private _selection;
3598
- private _scrollTop;
3599
- private _editState;
3600
- private _containerH;
3601
- private _shadeMap;
3602
- private _focusSide;
3603
- private _store;
3604
- private _undoStack;
3605
- private _copyBuffer;
3606
- private _rowHeight;
3607
- private _dragStart;
3608
- private _dragAnchor;
3609
- private _rectAnchorX;
3610
- private _rectAnchorY;
3611
- private _rectAnchorXFromKeyboard;
3612
- private _rectAnchorYFromKeyboard;
3613
- private _initialSelectionPoint;
3614
- private _currentCursorPoint;
3615
- private _pointerMode;
3616
- private _currentDragDiff;
3617
- private _shiftClickTarget;
3618
- static styles: CSSResult;
3619
- setData(data: Uint8Array): void;
3620
- undo(): void;
3621
- redo(): void;
3622
- recomputeColours(): void;
3623
- selectedBytes(): Generator<{
3624
- selection_index: number;
3625
- array_index: number;
3626
- value: number;
3627
- }>;
3628
- containsPosition(pos: number): boolean;
3629
- selectSingle(position: number): void;
3630
- selectContiguous(start: number, end: number): void;
3631
- selectRectangular(x: number, y: number, width: number, height: number): void;
3632
- clearSelection(): void;
3633
- getSelection(): Selection;
3634
- protected firstUpdated(): void;
3635
- private _onScroll;
3636
- private _onPointerDown;
3637
- private _onPointerMove;
3638
- private _onPointerUp;
3639
- private _onKeyDown;
3640
- private _handleBackspace;
3641
- private _handleValueEntry;
3642
- private _commitDecimalValue;
3643
- private _advanceCursor;
3644
- private _dispatchChangeEvent;
3645
- private _dispatchSelectEvent;
3646
- private _copy;
3647
- private _paste;
3648
- private _parseHexString;
3649
- private _getColHeaders;
3650
- private _isRowShaded;
3651
- private _isHexShaded;
3652
- private _isTextShaded;
3653
- protected render(): TemplateResult<1>;
3654
- private _renderRow;
3655
- private _renderColumn;
3656
- private _renderHexCell;
3657
- private _renderTextChar;
3740
+ type ListSelectEvent = CustomEvent<ListSelectDetail>;
3741
+ type ListTickleEvent = CustomEvent<ListTickleDetail>;
3742
+ type ListActivateEvent = CustomEvent<ListActivateDetail>;
3743
+ type ListItemClickEvent = CustomEvent<ListItemClickDetail>;
3744
+ interface ListElementEventMap {
3745
+ 'list-select': ListSelectEvent;
3746
+ 'list-tickle': ListTickleEvent;
3747
+ 'list-activate': ListActivateEvent;
3748
+ 'list-item-click': ListItemClickEvent;
3658
3749
  }
3659
- type HexChangeDetail = {
3660
- readonly diff: Diff;
3661
- };
3662
- type HexChangeEvent = CustomEvent<HexChangeDetail>;
3663
- type SingleSelectEventDetail = {
3664
- readonly type: `single`;
3665
- readonly position: number;
3666
- };
3667
- type ContiguousSelectEventDetail = {
3668
- readonly type: `contiguous`;
3669
- readonly start: number;
3670
- readonly end: number;
3671
- };
3672
- type RectangularSelectEventDetail = {
3673
- readonly type: `rectangular`;
3674
- readonly x: number;
3675
- readonly y: number;
3676
- readonly width: number;
3677
- readonly height: number;
3678
- };
3679
- type NoneSelectEventDetail = {
3680
- readonly type: `none`;
3681
- };
3682
- type SelectEventDetail = SingleSelectEventDetail | ContiguousSelectEventDetail | RectangularSelectEventDetail | NoneSelectEventDetail;
3683
- declare global {
3684
- interface HTMLElementTagNameMap {
3685
- 'ixfx-hex-editor': IxfxHexEditorElement;
3686
- }
3687
- } //# sourceMappingURL=hex-editor.d.ts.map
3688
3750
  //#endregion
3689
- //#region src/icons/defaults.d.ts
3751
+ //#region src/grouped-item-lister/types.d.ts
3690
3752
  /**
3691
- * Chevron pointing down. Used for split-button dropdown toggle.
3692
- * fill="currentColor" so it inherits CSS color.
3753
+ * Fired when the selection set changes by any means.
3754
+ * Event name: `select`
3693
3755
  */
3694
- declare const ICON_CHEVRON_DOWN = "<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"/></svg>";
3756
+ type SubComponentSelectDetail<T> = {
3757
+ readonly selected: ReadonlySet<T>;
3758
+ readonly previous: ReadonlySet<T>;
3759
+ };
3695
3760
  /**
3696
- * Caret pointing right. Used for tree-basic expand indicator as a CSS mask.
3697
- * fill="black" is correct for CSS mask-image use (shape only, color comes from background-color).
3761
+ * Fired when an item is explicitly activated (double-click or Enter key).
3762
+ * Event name: `activate`
3698
3763
  */
3699
- declare const ICON_CARET_RIGHT = "<svg viewBox=\"0 0 24 24\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 7l6 5-6 5V7z\"/></svg>";
3764
+ type SubComponentActivateDetail<T> = {
3765
+ readonly item: T;
3766
+ };
3700
3767
  /**
3701
- * Checkmark. Useful for menu-check-item or confirmation states.
3702
- * fill="currentColor" so it inherits CSS color.
3768
+ * Fired on a raw pointer click before any selection change.
3769
+ * Event name: `item-click`
3770
+ */
3771
+ type SubComponentItemClickDetail<T> = {
3772
+ readonly item: T;
3773
+ };
3774
+ /**
3775
+ * Fired when the pointer hovers over an item or the keyboard cursor moves to it.
3776
+ * Event name: `tickle`
3777
+ */
3778
+ type SubComponentTickleDetail<T> = {
3779
+ readonly item: T;
3780
+ };
3781
+ type SubComponentSelectEvent<T> = CustomEvent<SubComponentSelectDetail<T>>;
3782
+ type SubComponentActivateEvent<T> = CustomEvent<SubComponentActivateDetail<T>>;
3783
+ type SubComponentItemClickEvent<T> = CustomEvent<SubComponentItemClickDetail<T>>;
3784
+ type SubComponentTickleEvent<T> = CustomEvent<SubComponentTickleDetail<T>>;
3785
+ interface IGroupedSubComponentEventMap<T> {
3786
+ 'select': SubComponentSelectEvent<T>;
3787
+ 'activate': SubComponentActivateEvent<T>;
3788
+ 'item-click': SubComponentItemClickEvent<T>;
3789
+ 'tickle': SubComponentTickleEvent<T>;
3790
+ }
3791
+ /**
3792
+ * Contract that sub-components passed to `ixfx-grouped-item-lister` must satisfy.
3793
+ *
3794
+ * All four events (`select`, `activate`, `item-click`, `tickle`) must bubble and be composed
3795
+ * so they propagate through the lister's light DOM to external listeners.
3796
+ */
3797
+ interface IGroupedSubComponent<T> extends HTMLElement {
3798
+ /** Replace the full item list. Called whenever the lister's items or grouping changes. */
3799
+ setItems(items: readonly T[]): void;
3800
+ /** Clear the current selection without firing a `select` event (avoids re-entrant loops). */
3801
+ clearSelection(): void;
3802
+ /** The current selection set. */
3803
+ readonly selectedItems: ReadonlySet<T>;
3804
+ /** Controls how many items can be selected simultaneously. */
3805
+ selectionMode: ListSelectionMode;
3806
+ /**
3807
+ * Forward a command (e.g. sort-order change) to this sub-component.
3808
+ * Uses `CommandId` from `@clinth/ui-commands` for interoperability.
3809
+ */
3810
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3811
+ addEventListener<K extends keyof IGroupedSubComponentEventMap<T>>(type: K, listener: (event: IGroupedSubComponentEventMap<T>[K]) => void, options?: boolean | AddEventListenerOptions): void;
3812
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3813
+ }
3814
+ /**
3815
+ * Factory that creates a sub-component for a given group.
3816
+ * Called once per group (or once with `undefined` in ungrouped mode).
3817
+ */
3818
+ type SubComponentFactory<T> = (groupKey: string | undefined) => HTMLElement & IGroupedSubComponent<T>;
3819
+ /**
3820
+ * Fired by `ixfx-grouped-item-lister` after any sub-component fires `select`.
3821
+ * Carries the full cross-group selection union and the key of the group whose
3822
+ * selection just changed (or `undefined` in ungrouped mode).
3823
+ */
3824
+ type GroupedSelectDetail<T> = {
3825
+ readonly selected: ReadonlySet<T>;
3826
+ readonly groupKey: string | undefined;
3827
+ };
3828
+ type GroupedSelectEvent<T> = CustomEvent<GroupedSelectDetail<T>>;
3829
+ interface GroupedItemListerElementEventMap<T> {
3830
+ 'grouped-select': GroupedSelectEvent<T>;
3831
+ }
3832
+ //#endregion
3833
+ //#region src/panel/panel.d.ts
3834
+ type PanelOrientation = `horizontal` | `vertical`;
3835
+ type PanelVariant = `titlebar` | `midline`;
3836
+ type PanelToggleInteraction = `implicit` | `explicit` | `disabled`;
3837
+ interface PanelToggleDetail {
3838
+ readonly collapsed: boolean;
3839
+ }
3840
+ type PanelToggleEvent = CustomEvent<PanelToggleDetail>;
3841
+ type PanelCloseEvent = CustomEvent<void>;
3842
+ interface PanelElementEventMap {
3843
+ toggle: PanelToggleEvent;
3844
+ close: PanelCloseEvent;
3845
+ }
3846
+ declare class PanelElement extends LitElement {
3847
+ collapsed: boolean;
3848
+ orientation: PanelOrientation;
3849
+ closable: boolean;
3850
+ title: string;
3851
+ iconName: string;
3852
+ toggleInteraction: PanelToggleInteraction;
3853
+ variant: PanelVariant;
3854
+ private _isVertical;
3855
+ private _onToggleClick;
3856
+ private _onCloseClick;
3857
+ private _getCaretIcon;
3858
+ protected updated(changed: Map<string, unknown>): void;
3859
+ protected render(): TemplateResult<1>;
3860
+ static styles: CSSResult[];
3861
+ }
3862
+ declare global {
3863
+ interface HTMLElementTagNameMap {
3864
+ 'ixfx-panel': PanelElement;
3865
+ }
3866
+ }
3867
+ interface PanelElement {
3868
+ addEventListener: (<K extends keyof PanelElementEventMap>(type: K, listener: (this: PanelElement, event: PanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
3869
+ }
3870
+ //#endregion
3871
+ //#region src/grouped-item-lister/grouped-item-lister.d.ts
3872
+ declare class GroupedItemListerElement<T = unknown> extends LitElement {
3873
+ #private;
3874
+ grouped: boolean;
3875
+ crossGroupSelection: boolean;
3876
+ get groupBy(): ((item: T) => string) | undefined;
3877
+ set groupBy(value: ((item: T) => string) | undefined);
3878
+ get factory(): SubComponentFactory<T> | undefined;
3879
+ set factory(value: SubComponentFactory<T> | undefined);
3880
+ get provider(): IDataProvider<void, T> | undefined;
3881
+ set provider(value: IDataProvider<void, T> | undefined);
3882
+ /** The union of all selected items across every sub-component. */
3883
+ get selectedItems(): ReadonlySet<T>;
3884
+ /**
3885
+ * Forward a command to all live sub-components.
3886
+ * Use this to propagate changes like sort order, filter state, or view mode.
3887
+ */
3888
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
3889
+ protected createRenderRoot(): this;
3890
+ connectedCallback(): void;
3891
+ disconnectedCallback(): void;
3892
+ protected updated(changed: PropertyValues): void;
3893
+ protected render(): typeof nothing | TemplateResult<1>;
3894
+ }
3895
+ declare global {
3896
+ interface HTMLElementTagNameMap {
3897
+ 'ixfx-grouped-item-lister': GroupedItemListerElement;
3898
+ }
3899
+ }
3900
+ interface GroupedItemListerElement<T> {
3901
+ addEventListener<K extends keyof GroupedItemListerElementEventMap<T>>(type: K, listener: (this: GroupedItemListerElement<T>, event: GroupedItemListerElementEventMap<T>[K]) => void, options?: boolean | AddEventListenerOptions): void;
3902
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3903
+ }
3904
+ //#endregion
3905
+ //#region src/interaction/tickled-controller.d.ts
3906
+ /**
3907
+ * Represents an item that can be tickled (highlighted via hover or keyboard navigation)
3908
+ */
3909
+ type TickledItem<T = unknown> = {
3910
+ /**
3911
+ * Unique identifier for the item (e.g., index, id, path)
3912
+ */
3913
+ readonly id: T;
3914
+ /**
3915
+ * Whether the item is currently enabled/interactive
3916
+ */
3917
+ readonly enabled?: boolean;
3918
+ };
3919
+ /**
3920
+ * Input mode determines which mechanism controls the tickled state
3921
+ */
3922
+ type InputMode = `keyboard` | `mouse`;
3923
+ /**
3924
+ * Configuration for TickledController
3925
+ */
3926
+ type TickledControllerConfig<T> = {
3927
+ /**
3928
+ * Function to retrieve all items that can be tickled
3929
+ */
3930
+ getItems: () => ReadonlyArray<TickledItem<T>>;
3931
+ /**
3932
+ * Optional callback when an item becomes tickled
3933
+ * Use this for side effects like opening submenus
3934
+ * @param id - The id of the newly tickled item, or undefined if nothing is tickled
3935
+ */
3936
+ onTickle?: (id: T | undefined) => void;
3937
+ /**
3938
+ * Optional callback fired after any state change (tickled id or input mode)
3939
+ * Use this to sync DOM attributes for slotted content that can't use reactive rendering
3940
+ *
3941
+ * For components that render items directly, this is usually not needed as
3942
+ * Lit's reactive rendering will handle updates automatically via requestUpdate()
3943
+ *
3944
+ * @example
3945
+ * ```ts
3946
+ * onStateChange: () => {
3947
+ * // Sync data-tickled attributes for slotted items
3948
+ * const items = this.getItems();
3949
+ * items.forEach((item, i) => {
3950
+ * if (this.tickled.isTickled(i)) {
3951
+ * item.setAttribute('data-tickled', '');
3952
+ * } else {
3953
+ * item.removeAttribute('data-tickled');
3954
+ * }
3955
+ * });
3956
+ * }
3957
+ * ```
3958
+ */
3959
+ onStateChange?: () => void;
3960
+ /**
3961
+ * Optional initial input mode (defaults to 'mouse')
3962
+ */
3963
+ initialInputMode?: InputMode;
3964
+ };
3965
+ /**
3966
+ * ReactiveController that manages "tickled" state for interactive lists.
3967
+ *
3968
+ * A "tickled" item is one that is under active attention via hover (mouse mode)
3969
+ * or keyboard focus (keyboard mode). Only one item can be tickled at a time.
3970
+ *
3971
+ * The input mode determines which mechanism controls tickled state:
3972
+ * - Mouse mode: hover controls tickled, keyboard navigation ignored
3973
+ * - Keyboard mode: keyboard navigation controls tickled, hover ignored
3974
+ *
3975
+ * Last interaction wins - any mouse hover switches to mouse mode, any keyboard
3976
+ * navigation switches to keyboard mode.
3977
+ *
3978
+ * ## Global Mouse Tracking
3979
+ *
3980
+ * This controller uses a singleton global `pointermove` listener to track actual
3981
+ * mouse movement. This prevents `pointerenter` events caused by content scrolling
3982
+ * from incorrectly switching to mouse mode when the user is actually using keyboard
3983
+ * navigation.
3984
+ *
3985
+ * @example
3986
+ * ```ts
3987
+ * class MyList extends LitElement {
3988
+ * private tickled = new TickledController(this, {
3989
+ * getItems: () => this.items.map((item, i) => ({ id: i, enabled: !item.disabled })),
3990
+ * onTickle: (id) => {
3991
+ * // Optional: perform side effect when item is tickled
3992
+ * console.log('Tickled item:', id);
3993
+ * }
3994
+ * });
3995
+ *
3996
+ * render() {
3997
+ * return html`
3998
+ * <ul @pointerleave=${(e) => this.tickled.handlePointerLeave(e)}>
3999
+ * ${this.items.map((item, i) => html`
4000
+ * <li
4001
+ * class="item ${this.tickled.isTickled(i) ? 'tickled' : ''}"
4002
+ * @pointerenter=${() => this.tickled.handlePointerEnter(i)}
4003
+ * >${item.label}</li>
4004
+ * `)}
4005
+ * </ul>
4006
+ * `;
4007
+ * }
4008
+ *
4009
+ * private handleKeyDown(e: KeyboardEvent) {
4010
+ * if (e.key === 'ArrowDown') {
4011
+ * this.tickled.handleKeyboardNavigation('next');
4012
+ * } else if (e.key === 'ArrowUp') {
4013
+ * this.tickled.handleKeyboardNavigation('previous');
4014
+ * }
4015
+ * }
4016
+ * }
4017
+ * ```
4018
+ */
4019
+ declare class TickledController<T = number> implements ReactiveController {
4020
+ private host;
4021
+ private config;
4022
+ private _tickledId;
4023
+ private _inputMode;
4024
+ private static _lastMouseClientX;
4025
+ private static _lastMouseClientY;
4026
+ private static _mouseMovedSinceKeyboard;
4027
+ private static _globalListenerAttached;
4028
+ constructor(host: ReactiveControllerHost, config: TickledControllerConfig<T>);
4029
+ hostConnected(): void;
4030
+ hostDisconnected(): void;
4031
+ /**
4032
+ * Get the current input mode
4033
+ */
4034
+ get inputMode(): InputMode;
4035
+ /**
4036
+ * Get the currently tickled item id
4037
+ */
4038
+ get tickledId(): T | undefined;
4039
+ /**
4040
+ * Check if a specific item is tickled
4041
+ */
4042
+ isTickled(id: T): boolean;
4043
+ /**
4044
+ * Handle global pointer move event.
4045
+ * Called automatically by the global listener.
4046
+ * Tracks mouse movement to distinguish real hover from content scrolling.
4047
+ */
4048
+ private static handleGlobalPointerMove;
4049
+ /**
4050
+ * Check if actual mouse movement has occurred since last keyboard interaction.
4051
+ * Used to distinguish real hover/leave from content-scrolling-induced events.
4052
+ */
4053
+ static get hasMouseMovedSinceKeyboard(): boolean;
4054
+ /**
4055
+ * Handle pointer enter event on an item (mouse hover).
4056
+ * Only processes if actual mouse movement is detected (not content scrolling).
4057
+ * Switches to mouse mode and tickles the item.
4058
+ */
4059
+ handlePointerEnter(id: T): void;
4060
+ /**
4061
+ * Handle pointer leave event on an item.
4062
+ * Only clears tickled state if actual mouse movement is detected.
4063
+ * @param _e The pointer event (not used, but kept for API compatibility)
4064
+ */
4065
+ handlePointerLeave(_e: PointerEvent): void;
4066
+ /**
4067
+ * Handle keyboard navigation.
4068
+ * Switches to keyboard mode and moves tickled state.
4069
+ *
4070
+ * @param direction - 'next', 'previous', 'first', 'last', or specific id
4071
+ */
4072
+ handleKeyboardNavigation(direction: `next` | `previous` | `first` | `last` | T): void;
4073
+ /**
4074
+ * Manually set the tickled item (useful for programmatic control).
4075
+ * Does NOT change input mode.
4076
+ */
4077
+ setTickled(id: T | undefined): void;
4078
+ /**
4079
+ * Clear the tickled state (e.g., on pointer leave).
4080
+ * Note: For pointer leave events, prefer using handlePointerLeave() which
4081
+ * checks for actual mouse movement.
4082
+ */
4083
+ clearTickled(): void;
4084
+ /**
4085
+ * Manually set the input mode.
4086
+ * When switching to keyboard mode, resets the mouse movement tracking.
4087
+ */
4088
+ setInputMode(mode: InputMode): void;
4089
+ }
4090
+ //#endregion
4091
+ //#region src/tree/tree-base.d.ts
4092
+ declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
4093
+ #private;
4094
+ root: TreeNode | undefined;
4095
+ model: TreeDataModel | undefined;
4096
+ /** Callback to lazily load children for a node. Superseded by `model` when both are set. */
4097
+ loadChildren: LoadChildrenCallback | undefined;
4098
+ exclusivity: TreeExclusivity;
4099
+ selectionFilter: TreeSelectionFilter;
4100
+ /** Controls how pointer/keyboard gestures map to selection changes. Default: `'standard'`. */
4101
+ interactionMode: TreeInteractionMode;
4102
+ selectedNode: TreeNode | undefined;
4103
+ protected _selectedNodes: Set<TreeNode>;
4104
+ get selectedNodes(): ReadonlySet<TreeNode>;
4105
+ filterPredicate: TreeFilterPredicate | undefined;
4106
+ disableKeyboardNavigation: boolean;
4107
+ protected _expandedKeys: Set<string>;
4108
+ protected tickled: TickledController<string>;
4109
+ protected _focusedDepth: number;
4110
+ updated(changedProps: PropertyValues): void;
4111
+ connectedCallback(): void;
4112
+ disconnectedCallback(): void;
4113
+ getConfig(): TreeConfig;
4114
+ setConfig(config: Partial<TreeConfig>): void;
4115
+ select(node: TreeNode): void;
4116
+ deselect(node: TreeNode): void;
4117
+ clearSelection(): void;
4118
+ navigateTo(keys: readonly string[]): boolean;
4119
+ navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
4120
+ getNodes(): ReadonlyArray<{
4121
+ node: TreeNode;
4122
+ depth: number;
4123
+ }>;
4124
+ protected renderNodeContent(node: TreeNode, _depth: number): TemplateResult | typeof nothing;
4125
+ protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
4126
+ protected _handleCheckboxClick(event: MouseEvent, node: TreeNode, _depth: number): void;
4127
+ protected _isSelected(node: TreeNode): boolean;
4128
+ protected _isFocused(node: TreeNode): boolean;
4129
+ protected _isExpanded(node: TreeNode): boolean;
4130
+ protected get _pendingNode(): TreeNode | undefined;
4131
+ protected renderLoadingIndicator(): TemplateResult | typeof nothing;
4132
+ protected render(): TemplateResult<1>;
4133
+ protected _renderNode(node: TreeNode, depth: number): TemplateResult;
4134
+ static styles: CSSResult[];
4135
+ }
4136
+ declare global {
4137
+ interface HTMLElementTagNameMap {
4138
+ 'ixfx-tree-base': TreeBaseElement;
4139
+ }
4140
+ }
4141
+ interface TreeBaseElementEventMap extends TreeComponentEventMap {
4142
+ 'item-click': TreeItemClickEvent;
4143
+ 'expand': TreeExpandEvent;
4144
+ 'collapse': TreeCollapseEvent;
4145
+ 'select': TreeSelectEvent;
4146
+ 'tickle': TreeTickleEvent;
4147
+ 'activate': TreeActivateEvent;
4148
+ }
4149
+ interface TreeBaseElement {
4150
+ 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);
4151
+ 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);
4152
+ }
4153
+ //#endregion
4154
+ //#region src/tree/tree-list.d.ts
4155
+ declare class TreeListElement extends TreeBaseElement {
4156
+ #private;
4157
+ protected render(): TemplateResult<1>;
4158
+ protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
4159
+ protected _renderNode(node: TreeNode, depth: number): TemplateResult;
4160
+ static styles: CSSResult[];
4161
+ }
4162
+ declare global {
4163
+ interface HTMLElementTagNameMap {
4164
+ 'ixfx-tree-list': TreeListElement;
4165
+ }
4166
+ }
4167
+ interface TreeListElement {
4168
+ 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);
4169
+ }
4170
+ //#endregion
4171
+ //#region src/grouped-item-lister/tree-list-adapter.d.ts
4172
+ type TreeListAdapterOptions<T> = {
4173
+ /**
4174
+ * Returns the direct children of an item to build the tree hierarchy.
4175
+ * Omit for flat item lists — all items become leaf nodes at the root level.
4176
+ */
4177
+ getChildren?: (item: T) => readonly T[]; /** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
4178
+ interactionMode?: TreeInteractionMode;
4179
+ /**
4180
+ * Controls which node types are selectable.
4181
+ * Forwarded to the inner ixfx-tree-list. Default: `'all'`.
4182
+ */
4183
+ selectionFilter?: TreeSelectionFilter;
4184
+ /**
4185
+ * Controls how expanding one node affects its siblings.
4186
+ * Forwarded to the inner ixfx-tree-list. Default: `'none'`.
4187
+ */
4188
+ exclusivity?: TreeExclusivity;
4189
+ /**
4190
+ * Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
4191
+ * Receives the inner `TreeBaseElement` (undefined until the first `setItems()` call)
4192
+ * so the handler can sort, filter, or otherwise manipulate the tree directly.
4193
+ */
4194
+ onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, tree: TreeBaseElement | undefined) => void;
4195
+ };
4196
+ /**
4197
+ * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
4198
+ * an `ixfx-tree-list` internally.
4199
+ *
4200
+ * `toTreeItem` converts each item `T` to display metadata (`key`, `label`, etc).
4201
+ * The adapter stores the original `T` in `TreeItem.data` and uses it to map
4202
+ * tree-node selections back to typed values.
4203
+ *
4204
+ * Unlike `createVerticalListAdapter`, items can be hierarchical: provide
4205
+ * `options.getChildren` to return each item's children and the adapter will
4206
+ * recursively build the `TreeNode` tree. Omit it for a flat list of leaf nodes.
4207
+ *
4208
+ * The four interface events (`select`, `activate`, `item-click`, `tickle`) are
4209
+ * intercepted at the tree level, re-typed from `TreeNode` → `T`, and re-dispatched
4210
+ * on the adapter element so `ixfx-grouped-item-lister` can identify the source.
4211
+ *
4212
+ * @example Flat item list:
4213
+ * ```ts
4214
+ * lister.factory = () =>
4215
+ * createTreeListAdapter<FileItem>(item => ({ key: item.id, label: item.name, isLeaf: true }));
4216
+ * ```
4217
+ *
4218
+ * @example Hierarchical items:
4219
+ * ```ts
4220
+ * lister.factory = () =>
4221
+ * createTreeListAdapter<Category>(
4222
+ * cat => ({ key: cat.id, label: cat.name }),
4223
+ * { getChildren: cat => cat.subCategories },
4224
+ * );
4225
+ * ```
4226
+ */
4227
+ declare function createTreeListAdapter<T>(toTreeItem: (item: T) => Omit<TreeItem, 'data'>, options?: TreeListAdapterOptions<T>): HTMLElement & IGroupedSubComponent<T>;
4228
+ //#endregion
4229
+ //#region src/vertical-list/vertical-list.d.ts
4230
+ declare class VerticalListElement extends LitElement {
4231
+ #private;
4232
+ selectionMode: ListSelectionMode;
4233
+ interactionMode: ListInteractionMode;
4234
+ filterPredicate: ((el: Element) => boolean) | undefined;
4235
+ private _selectedItems;
4236
+ private _searchVisible;
4237
+ private _searchQuery;
4238
+ private _searchInputEl;
4239
+ private tickled;
4240
+ connectedCallback(): void;
4241
+ disconnectedCallback(): void;
4242
+ firstUpdated(): void;
4243
+ updated(changed: PropertyValues): void;
4244
+ /** The most recently selected item, or `undefined` if nothing is selected. */
4245
+ get selectedItem(): Element | undefined;
4246
+ /** The full current selection set (read-only). */
4247
+ get selectedItems(): ReadonlySet<Element>;
4248
+ addItem(item: Element | string): void;
4249
+ removeItem(item: Element): void;
4250
+ clearItems(): void;
4251
+ /**
4252
+ * Replace the entire item list in one call.
4253
+ * Equivalent to `clearItems()` followed by `addItem()` for each element.
4254
+ * Preserves `interactionMode` checkbox wrapping.
4255
+ */
4256
+ setItems(items: readonly Element[]): void;
4257
+ /**
4258
+ * Dispatch a command to this list. No-op by default.
4259
+ * Intended for use with `ixfx-grouped-item-lister`'s `dispatch()` method,
4260
+ * which forwards commands to all sub-components.
4261
+ */
4262
+ dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
4263
+ select(item: Element): void;
4264
+ selectMany(items: Iterable<Element>): void;
4265
+ deselect(item: Element): void;
4266
+ clearSelection(): void;
4267
+ selectAll(): void;
4268
+ private _replaceSelection;
4269
+ private _toggleItem;
4270
+ private _rangeSelectTo;
4271
+ private _clearSelection;
4272
+ private _selectAll;
4273
+ private _handleClickSelection;
4274
+ private _handleSpaceKey;
4275
+ private _getVisibleItems;
4276
+ private _syncItemStates;
4277
+ private _syncCheckboxes;
4278
+ private _findListItem;
4279
+ private _dispatch;
4280
+ private _openSearch;
4281
+ private _closeSearch;
4282
+ private _onPointerOver;
4283
+ private _onPointerLeave;
4284
+ private _onKeyDown;
4285
+ private _onClick;
4286
+ private _onDblClick;
4287
+ private _activateItem;
4288
+ private _onSearchInput;
4289
+ private _onSearchKeydown;
4290
+ static styles: CSSResult[];
4291
+ render(): TemplateResult<1>;
4292
+ }
4293
+ declare global {
4294
+ interface HTMLElementTagNameMap {
4295
+ 'ixfx-vertical-list': VerticalListElement;
4296
+ }
4297
+ interface HTMLElementEventMap extends ListElementEventMap {}
4298
+ } //# sourceMappingURL=vertical-list.d.ts.map
4299
+ //#endregion
4300
+ //#region src/grouped-item-lister/vertical-list-adapter.d.ts
4301
+ type VerticalListAdapterOptions = {
4302
+ /** Initial selection mode forwarded to the inner ixfx-vertical-list. Default: `'single'`. */selectionMode?: ListSelectionMode; /** Interaction mode forwarded to the inner ixfx-vertical-list. Default: `'standard'`. */
4303
+ interactionMode?: ListInteractionMode;
4304
+ /**
4305
+ * Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
4306
+ *
4307
+ * Receives the current inner `VerticalListElement` (undefined until the first
4308
+ * `setItems()` call) so the handler can sort, filter, or otherwise mutate the
4309
+ * list directly.
4310
+ *
4311
+ * @example Sort items alphabetically by text content:
4312
+ * ```ts
4313
+ * onDispatch: (id, _args, list) => {
4314
+ * if (id !== 'sort-alpha' || !list) return;
4315
+ * const rows = [...list.querySelectorAll<HTMLElement>('li')];
4316
+ * rows.sort((a, b) => (a.textContent ?? '').localeCompare(b.textContent ?? ''));
4317
+ * for (const row of rows) list.appendChild(row);
4318
+ * }
4319
+ * ```
4320
+ */
4321
+ onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, list: VerticalListElement | undefined) => void;
4322
+ };
4323
+ /**
4324
+ * Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
4325
+ * an `ixfx-vertical-list` internally.
4326
+ *
4327
+ * Items are typed as `T`. The `renderItem` function converts each item to a DOM
4328
+ * element (typically an `<li>`) that `ixfx-vertical-list` renders and handles
4329
+ * pointer/keyboard interaction for.
4330
+ *
4331
+ * The returned element bridges the `list-*` event names fired by
4332
+ * `ixfx-vertical-list` to the `select / activate / item-click / tickle` names
4333
+ * required by `IGroupedSubComponent`, and maps element-based selection sets back
4334
+ * to typed `T` values.
4335
+ *
4336
+ * @example Basic usage with ixfx-grouped-item-lister:
4337
+ * ```ts
4338
+ * lister.factory = () =>
4339
+ * createVerticalListAdapter<MyItem>(item => {
4340
+ * const li = document.createElement('li');
4341
+ * li.textContent = item.label;
4342
+ * return li;
4343
+ * });
4344
+ * ```
4345
+ */
4346
+ declare function createVerticalListAdapter<T>(renderItem: (item: T) => Element, options?: VerticalListAdapterOptions): HTMLElement & IGroupedSubComponent<T>;
4347
+ //#endregion
4348
+ //#region src/hex/types.d.ts
4349
+ type BytePos = number;
4350
+ type SingleSelection = {
4351
+ readonly kind: `single`;
4352
+ readonly pos: BytePos;
4353
+ };
4354
+ type ContiguousSelection = {
4355
+ readonly kind: `contiguous`;
4356
+ readonly start: BytePos;
4357
+ readonly end: BytePos;
4358
+ };
4359
+ type RectangularSelection = {
4360
+ readonly kind: `rectangular`;
4361
+ readonly x: number;
4362
+ readonly y: number;
4363
+ readonly width: number;
4364
+ readonly height: number;
4365
+ };
4366
+ type Selection = SingleSelection | ContiguousSelection | RectangularSelection | null;
4367
+ type DiffEntry = {
4368
+ readonly before: number;
4369
+ readonly after: number;
4370
+ };
4371
+ type Diff = ReadonlyMap<BytePos, DiffEntry>;
4372
+ type ColourScheme = `ascii` | `shade`;
4373
+ //#endregion
4374
+ //#region src/hex/hex-editor.d.ts
4375
+ declare class IxfxHexEditorElement extends LitElement {
4376
+ columns: number;
4377
+ colourScheme: ColourScheme;
4378
+ showChangeset: boolean;
4379
+ hideOffsetCol: boolean;
4380
+ hideHexCol: boolean;
4381
+ hideTextCol: boolean;
4382
+ private _selection;
4383
+ private _scrollTop;
4384
+ private _editState;
4385
+ private _containerH;
4386
+ private _shadeMap;
4387
+ private _focusSide;
4388
+ private _store;
4389
+ private _undoStack;
4390
+ private _copyBuffer;
4391
+ private _rowHeight;
4392
+ private _dragStart;
4393
+ private _dragAnchor;
4394
+ private _rectAnchorX;
4395
+ private _rectAnchorY;
4396
+ private _rectAnchorXFromKeyboard;
4397
+ private _rectAnchorYFromKeyboard;
4398
+ private _initialSelectionPoint;
4399
+ private _currentCursorPoint;
4400
+ private _pointerMode;
4401
+ private _currentDragDiff;
4402
+ private _shiftClickTarget;
4403
+ static styles: CSSResult;
4404
+ setData(data: Uint8Array): void;
4405
+ undo(): void;
4406
+ redo(): void;
4407
+ recomputeColours(): void;
4408
+ selectedBytes(): Generator<{
4409
+ selection_index: number;
4410
+ array_index: number;
4411
+ value: number;
4412
+ }>;
4413
+ containsPosition(pos: number): boolean;
4414
+ selectSingle(position: number): void;
4415
+ selectContiguous(start: number, end: number): void;
4416
+ selectRectangular(x: number, y: number, width: number, height: number): void;
4417
+ clearSelection(): void;
4418
+ getSelection(): Selection;
4419
+ protected firstUpdated(): void;
4420
+ private _onScroll;
4421
+ private _onPointerDown;
4422
+ private _onPointerMove;
4423
+ private _onPointerUp;
4424
+ private _onKeyDown;
4425
+ private _handleBackspace;
4426
+ private _handleValueEntry;
4427
+ private _commitDecimalValue;
4428
+ private _advanceCursor;
4429
+ private _dispatchChangeEvent;
4430
+ private _dispatchSelectEvent;
4431
+ private _copy;
4432
+ private _paste;
4433
+ private _parseHexString;
4434
+ private _getColHeaders;
4435
+ private _isRowShaded;
4436
+ private _isHexShaded;
4437
+ private _isTextShaded;
4438
+ protected render(): TemplateResult<1>;
4439
+ private _renderRow;
4440
+ private _renderColumn;
4441
+ private _renderHexCell;
4442
+ private _renderTextChar;
4443
+ }
4444
+ type HexChangeDetail = {
4445
+ readonly diff: Diff;
4446
+ };
4447
+ type HexChangeEvent = CustomEvent<HexChangeDetail>;
4448
+ type SingleSelectEventDetail = {
4449
+ readonly type: `single`;
4450
+ readonly position: number;
4451
+ };
4452
+ type ContiguousSelectEventDetail = {
4453
+ readonly type: `contiguous`;
4454
+ readonly start: number;
4455
+ readonly end: number;
4456
+ };
4457
+ type RectangularSelectEventDetail = {
4458
+ readonly type: `rectangular`;
4459
+ readonly x: number;
4460
+ readonly y: number;
4461
+ readonly width: number;
4462
+ readonly height: number;
4463
+ };
4464
+ type NoneSelectEventDetail = {
4465
+ readonly type: `none`;
4466
+ };
4467
+ type SelectEventDetail = SingleSelectEventDetail | ContiguousSelectEventDetail | RectangularSelectEventDetail | NoneSelectEventDetail;
4468
+ declare global {
4469
+ interface HTMLElementTagNameMap {
4470
+ 'ixfx-hex-editor': IxfxHexEditorElement;
4471
+ }
4472
+ } //# sourceMappingURL=hex-editor.d.ts.map
4473
+ //#endregion
4474
+ //#region src/icons/defaults.d.ts
4475
+ /**
4476
+ * Chevron pointing down. Used for split-button dropdown toggle.
4477
+ * fill="currentColor" so it inherits CSS color.
4478
+ */
4479
+ declare const ICON_CHEVRON_DOWN = "<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"/></svg>";
4480
+ /**
4481
+ * Caret pointing right. Used for tree-basic expand indicator as a CSS mask.
4482
+ * fill="black" is correct for CSS mask-image use (shape only, color comes from background-color).
4483
+ */
4484
+ declare const ICON_CARET_RIGHT = "<svg viewBox=\"0 0 24 24\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 7l6 5-6 5V7z\"/></svg>";
4485
+ /**
4486
+ * Checkmark. Useful for menu-check-item or confirmation states.
4487
+ * fill="currentColor" so it inherits CSS color.
3703
4488
  */
3704
4489
  declare const ICON_CHECK = "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"/></svg>";
3705
4490
  /**
@@ -3967,7 +4752,7 @@ declare global {
3967
4752
  }
3968
4753
  } //# sourceMappingURL=labelled-radial-input.d.ts.map
3969
4754
  //#endregion
3970
- //#region src/led.d.ts
4755
+ //#region src/led/led.d.ts
3971
4756
  declare class LedElement extends LitElement {
3972
4757
  #private;
3973
4758
  value: number;
@@ -4094,7 +4879,7 @@ declare global {
4094
4879
  //#endregion
4095
4880
  //#region src/menu/menu-separator.d.ts
4096
4881
  declare class MenuSeparator extends LitElement {
4097
- static styles: CSSResult;
4882
+ static styles: CSSResult[];
4098
4883
  render(): TemplateResult<1>;
4099
4884
  }
4100
4885
  declare global {
@@ -4106,7 +4891,7 @@ declare global {
4106
4891
  //#region src/menu/menu-header.d.ts
4107
4892
  declare class MenuHeader extends LitElement {
4108
4893
  label: string;
4109
- static styles: CSSResult;
4894
+ static styles: CSSResult[];
4110
4895
  render(): TemplateResult<1>;
4111
4896
  }
4112
4897
  declare global {
@@ -4218,192 +5003,6 @@ type MillerItemState = {
4218
5003
  isLeaf: boolean;
4219
5004
  };
4220
5005
  //#endregion
4221
- //#region src/interaction/tickled-controller.d.ts
4222
- /**
4223
- * Represents an item that can be tickled (highlighted via hover or keyboard navigation)
4224
- */
4225
- type TickledItem<T = unknown> = {
4226
- /**
4227
- * Unique identifier for the item (e.g., index, id, path)
4228
- */
4229
- readonly id: T;
4230
- /**
4231
- * Whether the item is currently enabled/interactive
4232
- */
4233
- readonly enabled?: boolean;
4234
- };
4235
- /**
4236
- * Input mode determines which mechanism controls the tickled state
4237
- */
4238
- type InputMode = `keyboard` | `mouse`;
4239
- /**
4240
- * Configuration for TickledController
4241
- */
4242
- type TickledControllerConfig<T> = {
4243
- /**
4244
- * Function to retrieve all items that can be tickled
4245
- */
4246
- getItems: () => ReadonlyArray<TickledItem<T>>;
4247
- /**
4248
- * Optional callback when an item becomes tickled
4249
- * Use this for side effects like opening submenus
4250
- * @param id - The id of the newly tickled item, or undefined if nothing is tickled
4251
- */
4252
- onTickle?: (id: T | undefined) => void;
4253
- /**
4254
- * Optional callback fired after any state change (tickled id or input mode)
4255
- * Use this to sync DOM attributes for slotted content that can't use reactive rendering
4256
- *
4257
- * For components that render items directly, this is usually not needed as
4258
- * Lit's reactive rendering will handle updates automatically via requestUpdate()
4259
- *
4260
- * @example
4261
- * ```ts
4262
- * onStateChange: () => {
4263
- * // Sync data-tickled attributes for slotted items
4264
- * const items = this.getItems();
4265
- * items.forEach((item, i) => {
4266
- * if (this.tickled.isTickled(i)) {
4267
- * item.setAttribute('data-tickled', '');
4268
- * } else {
4269
- * item.removeAttribute('data-tickled');
4270
- * }
4271
- * });
4272
- * }
4273
- * ```
4274
- */
4275
- onStateChange?: () => void;
4276
- /**
4277
- * Optional initial input mode (defaults to 'mouse')
4278
- */
4279
- initialInputMode?: InputMode;
4280
- };
4281
- /**
4282
- * ReactiveController that manages "tickled" state for interactive lists.
4283
- *
4284
- * A "tickled" item is one that is under active attention via hover (mouse mode)
4285
- * or keyboard focus (keyboard mode). Only one item can be tickled at a time.
4286
- *
4287
- * The input mode determines which mechanism controls tickled state:
4288
- * - Mouse mode: hover controls tickled, keyboard navigation ignored
4289
- * - Keyboard mode: keyboard navigation controls tickled, hover ignored
4290
- *
4291
- * Last interaction wins - any mouse hover switches to mouse mode, any keyboard
4292
- * navigation switches to keyboard mode.
4293
- *
4294
- * ## Global Mouse Tracking
4295
- *
4296
- * This controller uses a singleton global `pointermove` listener to track actual
4297
- * mouse movement. This prevents `pointerenter` events caused by content scrolling
4298
- * from incorrectly switching to mouse mode when the user is actually using keyboard
4299
- * navigation.
4300
- *
4301
- * @example
4302
- * ```ts
4303
- * class MyList extends LitElement {
4304
- * private tickled = new TickledController(this, {
4305
- * getItems: () => this.items.map((item, i) => ({ id: i, enabled: !item.disabled })),
4306
- * onTickle: (id) => {
4307
- * // Optional: perform side effect when item is tickled
4308
- * console.log('Tickled item:', id);
4309
- * }
4310
- * });
4311
- *
4312
- * render() {
4313
- * return html`
4314
- * <ul @pointerleave=${(e) => this.tickled.handlePointerLeave(e)}>
4315
- * ${this.items.map((item, i) => html`
4316
- * <li
4317
- * class="item ${this.tickled.isTickled(i) ? 'tickled' : ''}"
4318
- * @pointerenter=${() => this.tickled.handlePointerEnter(i)}
4319
- * >${item.label}</li>
4320
- * `)}
4321
- * </ul>
4322
- * `;
4323
- * }
4324
- *
4325
- * private handleKeyDown(e: KeyboardEvent) {
4326
- * if (e.key === 'ArrowDown') {
4327
- * this.tickled.handleKeyboardNavigation('next');
4328
- * } else if (e.key === 'ArrowUp') {
4329
- * this.tickled.handleKeyboardNavigation('previous');
4330
- * }
4331
- * }
4332
- * }
4333
- * ```
4334
- */
4335
- declare class TickledController<T = number> implements ReactiveController {
4336
- private host;
4337
- private config;
4338
- private _tickledId;
4339
- private _inputMode;
4340
- private static _lastMouseClientX;
4341
- private static _lastMouseClientY;
4342
- private static _mouseMovedSinceKeyboard;
4343
- private static _globalListenerAttached;
4344
- constructor(host: ReactiveControllerHost, config: TickledControllerConfig<T>);
4345
- hostConnected(): void;
4346
- hostDisconnected(): void;
4347
- /**
4348
- * Get the current input mode
4349
- */
4350
- get inputMode(): InputMode;
4351
- /**
4352
- * Get the currently tickled item id
4353
- */
4354
- get tickledId(): T | undefined;
4355
- /**
4356
- * Check if a specific item is tickled
4357
- */
4358
- isTickled(id: T): boolean;
4359
- /**
4360
- * Handle global pointer move event.
4361
- * Called automatically by the global listener.
4362
- * Tracks mouse movement to distinguish real hover from content scrolling.
4363
- */
4364
- private static handleGlobalPointerMove;
4365
- /**
4366
- * Check if actual mouse movement has occurred since last keyboard interaction.
4367
- * Used to distinguish real hover/leave from content-scrolling-induced events.
4368
- */
4369
- static get hasMouseMovedSinceKeyboard(): boolean;
4370
- /**
4371
- * Handle pointer enter event on an item (mouse hover).
4372
- * Only processes if actual mouse movement is detected (not content scrolling).
4373
- * Switches to mouse mode and tickles the item.
4374
- */
4375
- handlePointerEnter(id: T): void;
4376
- /**
4377
- * Handle pointer leave event on an item.
4378
- * Only clears tickled state if actual mouse movement is detected.
4379
- * @param _e The pointer event (not used, but kept for API compatibility)
4380
- */
4381
- handlePointerLeave(_e: PointerEvent): void;
4382
- /**
4383
- * Handle keyboard navigation.
4384
- * Switches to keyboard mode and moves tickled state.
4385
- *
4386
- * @param direction - 'next', 'previous', 'first', 'last', or specific id
4387
- */
4388
- handleKeyboardNavigation(direction: `next` | `previous` | `first` | `last` | T): void;
4389
- /**
4390
- * Manually set the tickled item (useful for programmatic control).
4391
- * Does NOT change input mode.
4392
- */
4393
- setTickled(id: T | undefined): void;
4394
- /**
4395
- * Clear the tickled state (e.g., on pointer leave).
4396
- * Note: For pointer leave events, prefer using handlePointerLeave() which
4397
- * checks for actual mouse movement.
4398
- */
4399
- clearTickled(): void;
4400
- /**
4401
- * Manually set the input mode.
4402
- * When switching to keyboard mode, resets the mouse movement tracking.
4403
- */
4404
- setInputMode(mode: InputMode): void;
4405
- }
4406
- //#endregion
4407
5006
  //#region src/miller/miller-base.d.ts
4408
5007
  /**
4409
5008
  * Base class for Miller column components. Handles column lifecycle,
@@ -4639,66 +5238,28 @@ type MillerTreeControllerOptions<T> = {
4639
5238
  * Children are populated lazily: the controller provides a `loadChildren`
4640
5239
  * callback that synchronously reads from the underlying tree.
4641
5240
  *
4642
- * Call `disconnect()` to remove all event listeners and release resources.
4643
- */
4644
- declare class MillerTreeController<T> {
4645
- #private;
4646
- constructor(root: TraversableTree<T>, element: MillerBaseElement, options: MillerTreeControllerOptions<T>);
4647
- /**
4648
- * Wire up the controller: sets `element.root` and provides `loadChildren` callback.
4649
- * Safe to call again after `disconnect()`.
4650
- */
4651
- connect(): void;
4652
- /** Remove all event listeners and release internal state. */
4653
- disconnect(): void;
4654
- /**
4655
- * Navigate the component to the first node (depth-first) in the ixfx tree
4656
- * whose value satisfies `predicate`.
4657
- *
4658
- * Any ancestor `MillerNode`s with unloaded children are populated
4659
- * synchronously before calling `element.navigateTo()`.
4660
- *
4661
- * Returns `false` if no matching node is found.
4662
- */
4663
- navigateToValue(predicate: (value: T) => boolean): boolean;
4664
- }
4665
- //#endregion
4666
- //#region src/panel/panel.d.ts
4667
- type PanelOrientation = `horizontal` | `vertical`;
4668
- type PanelVariant = `titlebar` | `midline`;
4669
- type PanelToggleInteraction = `implicit` | `explicit` | `disabled`;
4670
- interface PanelToggleDetail {
4671
- readonly collapsed: boolean;
4672
- }
4673
- type PanelToggleEvent = CustomEvent<PanelToggleDetail>;
4674
- type PanelCloseEvent = CustomEvent<void>;
4675
- interface PanelElementEventMap {
4676
- toggle: PanelToggleEvent;
4677
- close: PanelCloseEvent;
4678
- }
4679
- declare class PanelElement extends LitElement {
4680
- collapsed: boolean;
4681
- orientation: PanelOrientation;
4682
- closable: boolean;
4683
- title: string;
4684
- iconName: string;
4685
- toggleInteraction: PanelToggleInteraction;
4686
- variant: PanelVariant;
4687
- private _isVertical;
4688
- private _onToggleClick;
4689
- private _onCloseClick;
4690
- private _getCaretIcon;
4691
- protected updated(changed: Map<string, unknown>): void;
4692
- protected render(): TemplateResult<1>;
4693
- static styles: CSSResult;
4694
- }
4695
- declare global {
4696
- interface HTMLElementTagNameMap {
4697
- 'ixfx-panel': PanelElement;
4698
- }
4699
- }
4700
- interface PanelElement {
4701
- addEventListener: (<K extends keyof PanelElementEventMap>(type: K, listener: (this: PanelElement, event: PanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
5241
+ * Call `disconnect()` to remove all event listeners and release resources.
5242
+ */
5243
+ declare class MillerTreeController<T> {
5244
+ #private;
5245
+ constructor(root: TraversableTree<T>, element: MillerBaseElement, options: MillerTreeControllerOptions<T>);
5246
+ /**
5247
+ * Wire up the controller: sets `element.root` and provides `loadChildren` callback.
5248
+ * Safe to call again after `disconnect()`.
5249
+ */
5250
+ connect(): void;
5251
+ /** Remove all event listeners and release internal state. */
5252
+ disconnect(): void;
5253
+ /**
5254
+ * Navigate the component to the first node (depth-first) in the ixfx tree
5255
+ * whose value satisfies `predicate`.
5256
+ *
5257
+ * Any ancestor `MillerNode`s with unloaded children are populated
5258
+ * synchronously before calling `element.navigateTo()`.
5259
+ *
5260
+ * Returns `false` if no matching node is found.
5261
+ */
5262
+ navigateToValue(predicate: (value: T) => boolean): boolean;
4702
5263
  }
4703
5264
  //#endregion
4704
5265
  //#region src/panel/panel-group.d.ts
@@ -4780,6 +5341,85 @@ declare class PlotDataSeries {
4780
5341
  clear(): void;
4781
5342
  }
4782
5343
  //#endregion
5344
+ //#region src/plots/multi-axis.d.ts
5345
+ type PlotMultiAxisLayout = `overlap` | `horizontal` | `vertical` | `grid`;
5346
+ type PlotMultiAxisDataPointClickDetail = {
5347
+ readonly value: number;
5348
+ readonly index: number;
5349
+ readonly series: string;
5350
+ };
5351
+ type PlotMultiAxisDataPointClickEvent = CustomEvent<PlotMultiAxisDataPointClickDetail>;
5352
+ interface PlotMultiAxisElementEventMap {
5353
+ 'plot-datapoint-click': PlotMultiAxisDataPointClickEvent;
5354
+ }
5355
+ declare class PlotMultiAxis extends LitElement {
5356
+ #private;
5357
+ layout: PlotMultiAxisLayout;
5358
+ gridMinWidth: number;
5359
+ /** Override to customize tooltip value display. */
5360
+ valueFormat: (v: number | undefined) => string;
5361
+ addData(data: Record<string, number>): void;
5362
+ addData(name: string, value: number): void;
5363
+ styleSeries(name: string, styles: Record<string, string>): void;
5364
+ clear(): void;
5365
+ clearSeries(name: string): void;
5366
+ get series(): string[];
5367
+ protected render(): TemplateResult<1>;
5368
+ static styles: CSSResult;
5369
+ }
5370
+ declare global {
5371
+ interface HTMLElementTagNameMap {
5372
+ 'ixfx-plot-multi-axis': PlotMultiAxis;
5373
+ }
5374
+ }
5375
+ interface PlotMultiAxis {
5376
+ addEventListener: {
5377
+ <K extends keyof PlotMultiAxisElementEventMap>(type: K, listener: (this: PlotMultiAxis, event: PlotMultiAxisElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
5378
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
5379
+ };
5380
+ }
5381
+ //#endregion
5382
+ //#region src/plots/plot-histogram.d.ts
5383
+ type PlotHistogramOrientation = 'horizontal' | 'vertical';
5384
+ type PlotHistogramBucketClickDetail = {
5385
+ readonly bucketIndex: number;
5386
+ readonly valueMin: number;
5387
+ readonly valueMax: number;
5388
+ readonly relativeValue: number;
5389
+ };
5390
+ type PlotHistogramBucketClickEvent = CustomEvent<PlotHistogramBucketClickDetail>;
5391
+ interface PlotHistogramElementEventMap {
5392
+ 'plot-bucket-click': PlotHistogramBucketClickEvent;
5393
+ }
5394
+ declare class PlotHistogram extends LitElement {
5395
+ #private;
5396
+ orientation: PlotHistogramOrientation;
5397
+ resolution: number;
5398
+ min?: number;
5399
+ max?: number;
5400
+ capacity: number;
5401
+ title: string;
5402
+ paused: boolean;
5403
+ private _width;
5404
+ private _height;
5405
+ add(v: number): void;
5406
+ set(values: number[]): void;
5407
+ clear(): void;
5408
+ protected firstUpdated(_changed: PropertyValues): void;
5409
+ protected updated(changed: PropertyValues): void;
5410
+ render(): TemplateResult<1>;
5411
+ static styles: CSSResult;
5412
+ }
5413
+ declare global {
5414
+ interface HTMLElementTagNameMap {
5415
+ 'ixfx-plot-histogram': PlotHistogram;
5416
+ }
5417
+ }
5418
+ interface PlotHistogram {
5419
+ addEventListener<K extends keyof PlotHistogramElementEventMap>(type: K, listener: (this: PlotHistogram, event: PlotHistogramElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
5420
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
5421
+ }
5422
+ //#endregion
4783
5423
  //#region src/plots/single-axis.d.ts
4784
5424
  type SingleAxisDrawStyle = `line-sharp` | `line-round` | `circles` | `squares` | `vbar` | `hbar` | `hist-bottom` | `hist-top` | `hist-middle`;
4785
5425
  type SingleAxisAgeStyle = `none` | `opacity` | `desaturation` | `size`;
@@ -4805,6 +5445,10 @@ declare class PlotSingleAxis extends LitElement {
4805
5445
  private _height;
4806
5446
  /** Override to customize tooltip label. */
4807
5447
  valueFormat: (v: number | undefined) => string;
5448
+ get values(): readonly number[];
5449
+ get dataCount(): number;
5450
+ getValueAt(index: number): number | undefined;
5451
+ getIndexFromClientX(clientX: number): number;
4808
5452
  add(v: number): void;
4809
5453
  set(values: number[]): void;
4810
5454
  clear(): void;
@@ -4813,11 +5457,27 @@ declare class PlotSingleAxis extends LitElement {
4813
5457
  render(): TemplateResult<1>;
4814
5458
  static styles: CSSResult;
4815
5459
  }
5460
+ type PlotSingleAxisPointerMoveDetail = {
5461
+ readonly clientX: number;
5462
+ readonly clientY: number;
5463
+ readonly index: number;
5464
+ };
5465
+ type PlotSingleAxisPointerMoveEvent = CustomEvent<PlotSingleAxisPointerMoveDetail>;
5466
+ interface PlotSingleAxisElementEventMap {
5467
+ 'plot-pointer-move': PlotSingleAxisPointerMoveEvent;
5468
+ 'plot-pointer-leave': Event;
5469
+ }
4816
5470
  declare global {
4817
5471
  interface HTMLElementTagNameMap {
4818
5472
  'ixfx-plot-single-axis': PlotSingleAxis;
4819
5473
  }
4820
- } //# sourceMappingURL=single-axis.d.ts.map
5474
+ }
5475
+ interface PlotSingleAxis {
5476
+ addEventListener: {
5477
+ <K extends keyof PlotSingleAxisElementEventMap>(type: K, listener: (this: PlotSingleAxis, event: PlotSingleAxisElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
5478
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
5479
+ };
5480
+ }
4821
5481
  //#endregion
4822
5482
  //#region src/plots/xy-axis.d.ts
4823
5483
  type XyDrawStyle = `circles` | `squares`;
@@ -4861,7 +5521,7 @@ declare global {
4861
5521
  //#endregion
4862
5522
  //#region src/polar-pad/polar-pad.d.ts
4863
5523
  declare class PolarPad extends LitElement {
4864
- static styles: CSSResult;
5524
+ static styles: CSSResult[];
4865
5525
  /** Current angle in degrees. 0 = right, increases clockwise. */
4866
5526
  angle: number;
4867
5527
  /** Current radius 0–1. 0 = origin, 1 = edge. */
@@ -5065,7 +5725,7 @@ declare global {
5065
5725
  declare class SelectHorizontalElement extends LitElement {
5066
5726
  editMode: boolean;
5067
5727
  render(): TemplateResult<1>;
5068
- static styles: CSSResult;
5728
+ static styles: CSSResult[];
5069
5729
  }
5070
5730
  declare global {
5071
5731
  interface HTMLElementTagNameMap {
@@ -5161,7 +5821,7 @@ declare class SplitLayoutElement extends LitElement {
5161
5821
  updated(changedProperties: Map<string, unknown>): void;
5162
5822
  getZone(): HTMLElement | undefined;
5163
5823
  render(): TemplateResult<1>;
5164
- static styles: CSSResult;
5824
+ static styles: CSSResult[];
5165
5825
  }
5166
5826
  declare global {
5167
5827
  interface HTMLElementTagNameMap {
@@ -5264,7 +5924,7 @@ declare class TabListElement extends LitElement {
5264
5924
  updated(changedProperties: PropertyValues): void;
5265
5925
  getSelectedElement(): TabListItemElement | undefined;
5266
5926
  selectElement(el: HTMLElement): void;
5267
- static styles: CSSResult;
5927
+ static styles: CSSResult[];
5268
5928
  }
5269
5929
  declare global {
5270
5930
  interface HTMLElementTagNameMap {
@@ -5275,7 +5935,7 @@ declare global {
5275
5935
  //#region src/tabs/tab-panel.d.ts
5276
5936
  declare class TabPanelElement extends LitElement {
5277
5937
  render(): TemplateResult<1>;
5278
- static styles: CSSResult;
5938
+ static styles: CSSResult[];
5279
5939
  }
5280
5940
  declare global {
5281
5941
  interface HTMLElementTagNameMap {
@@ -5730,69 +6390,6 @@ declare global {
5730
6390
  }
5731
6391
  } //# sourceMappingURL=transitory-label.d.ts.map
5732
6392
  //#endregion
5733
- //#region src/tree/tree-base.d.ts
5734
- declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
5735
- #private;
5736
- root: TreeNode | undefined;
5737
- model: TreeDataModel | undefined;
5738
- /** Callback to lazily load children for a node. Superseded by `model` when both are set. */
5739
- loadChildren: LoadChildrenCallback | undefined;
5740
- exclusivity: TreeExclusivity;
5741
- selectionFilter: TreeSelectionFilter;
5742
- /** Controls how pointer/keyboard gestures map to selection changes. Default: `'standard'`. */
5743
- interactionMode: TreeInteractionMode;
5744
- selectedNode: TreeNode | undefined;
5745
- protected _selectedNodes: Set<TreeNode>;
5746
- get selectedNodes(): ReadonlySet<TreeNode>;
5747
- filterPredicate: TreeFilterPredicate | undefined;
5748
- disableKeyboardNavigation: boolean;
5749
- protected _expandedKeys: Set<string>;
5750
- protected tickled: TickledController<string>;
5751
- protected _focusedDepth: number;
5752
- updated(changedProps: PropertyValues): void;
5753
- connectedCallback(): void;
5754
- disconnectedCallback(): void;
5755
- getConfig(): TreeConfig;
5756
- setConfig(config: Partial<TreeConfig>): void;
5757
- select(node: TreeNode): void;
5758
- deselect(node: TreeNode): void;
5759
- clearSelection(): void;
5760
- navigateTo(keys: readonly string[]): boolean;
5761
- navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
5762
- getNodes(): ReadonlyArray<{
5763
- node: TreeNode;
5764
- depth: number;
5765
- }>;
5766
- protected renderNodeContent(node: TreeNode, _depth: number): TemplateResult | typeof nothing;
5767
- protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
5768
- protected _handleCheckboxClick(event: MouseEvent, node: TreeNode, _depth: number): void;
5769
- protected _isSelected(node: TreeNode): boolean;
5770
- protected _isFocused(node: TreeNode): boolean;
5771
- protected _isExpanded(node: TreeNode): boolean;
5772
- protected get _pendingNode(): TreeNode | undefined;
5773
- protected renderLoadingIndicator(): TemplateResult | typeof nothing;
5774
- protected render(): TemplateResult<1>;
5775
- protected _renderNode(node: TreeNode, depth: number): TemplateResult;
5776
- static styles: CSSResult[];
5777
- }
5778
- declare global {
5779
- interface HTMLElementTagNameMap {
5780
- 'ixfx-tree-base': TreeBaseElement;
5781
- }
5782
- }
5783
- interface TreeBaseElementEventMap extends TreeComponentEventMap {
5784
- 'item-click': TreeItemClickEvent;
5785
- 'expand': TreeExpandEvent;
5786
- 'collapse': TreeCollapseEvent;
5787
- 'select': TreeSelectEvent;
5788
- 'tickle': TreeTickleEvent;
5789
- 'activate': TreeActivateEvent;
5790
- }
5791
- interface TreeBaseElement {
5792
- 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);
5793
- 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);
5794
- }
5795
- //#endregion
5796
6393
  //#region src/tree/tree-controller.d.ts
5797
6394
  type TreeControllerOptions<T> = {
5798
6395
  valueToItem: (value: T, node: TraversableTree<T>) => TreeItem;
@@ -5805,124 +6402,10 @@ declare class TreeController<T> {
5805
6402
  navigateToValue(predicate: (value: T) => boolean): boolean;
5806
6403
  }
5807
6404
  //#endregion
5808
- //#region src/tree/tree-list.d.ts
5809
- declare class TreeListElement extends TreeBaseElement {
5810
- #private;
5811
- protected render(): TemplateResult<1>;
5812
- protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
5813
- protected _renderNode(node: TreeNode, depth: number): TemplateResult;
5814
- static styles: CSSResult[];
5815
- }
5816
- declare global {
5817
- interface HTMLElementTagNameMap {
5818
- 'ixfx-tree-list': TreeListElement;
5819
- }
5820
- }
5821
- interface TreeListElement {
5822
- 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);
5823
- }
5824
- //#endregion
5825
6405
  //#region src/util/checkbox.d.ts
5826
6406
  declare function monitorIndeterminate(targetElOrQuery: string | HTMLElement, watchedElsOrQueries: Array<string | HTMLElement>): () => void;
5827
6407
  //#endregion
5828
- //#region src/vertical-list/types.d.ts
5829
- type ListSelectionMode = `none` | `single` | `multiple`;
5830
- /**
5831
- * Controls how pointer and keyboard gestures map to selection changes.
5832
- *
5833
- * - `implicit` — click always replaces selection (no modifier support)
5834
- * - `standard` — click replaces; Ctrl/Cmd+click toggles; Shift+click range-selects (multiple only)
5835
- * - `manual` — no auto-selection; drive state via select()/deselect()/clearSelection()
5836
- * - `checked` — every click toggles; implies multiple selection regardless of selectionMode
5837
- * - `vscode` — like standard for clicks; Shift+Arrow extends range from the keyboard anchor
5838
- *
5839
- * Switching interactionMode clears the current selection.
5840
- */
5841
- type ListInteractionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
5842
- type ListSelectDetail = {
5843
- readonly selected: ReadonlySet<Element>;
5844
- readonly previous: ReadonlySet<Element>;
5845
- };
5846
- type ListTickleDetail = {
5847
- readonly item: Element;
5848
- };
5849
- type ListActivateDetail = {
5850
- readonly item: Element;
5851
- };
5852
- type ListItemClickDetail = {
5853
- readonly item: Element;
5854
- };
5855
- type ListSelectEvent = CustomEvent<ListSelectDetail>;
5856
- type ListTickleEvent = CustomEvent<ListTickleDetail>;
5857
- type ListActivateEvent = CustomEvent<ListActivateDetail>;
5858
- type ListItemClickEvent = CustomEvent<ListItemClickDetail>;
5859
- interface ListElementEventMap {
5860
- 'list-select': ListSelectEvent;
5861
- 'list-tickle': ListTickleEvent;
5862
- 'list-activate': ListActivateEvent;
5863
- 'list-item-click': ListItemClickEvent;
5864
- }
5865
- //#endregion
5866
- //#region src/vertical-list/vertical-list.d.ts
5867
- declare class VerticalListElement extends LitElement {
5868
- #private;
5869
- selectionMode: ListSelectionMode;
5870
- interactionMode: ListInteractionMode;
5871
- filterPredicate: ((el: Element) => boolean) | undefined;
5872
- private _selectedItems;
5873
- private _searchVisible;
5874
- private _searchQuery;
5875
- private _searchInputEl;
5876
- private tickled;
5877
- connectedCallback(): void;
5878
- disconnectedCallback(): void;
5879
- firstUpdated(): void;
5880
- updated(changed: PropertyValues): void;
5881
- /** The most recently selected item, or `undefined` if nothing is selected. */
5882
- get selectedItem(): Element | undefined;
5883
- /** The full current selection set (read-only). */
5884
- get selectedItems(): ReadonlySet<Element>;
5885
- addItem(item: Element | string): void;
5886
- removeItem(item: Element): void;
5887
- clearItems(): void;
5888
- select(item: Element): void;
5889
- selectMany(items: Iterable<Element>): void;
5890
- deselect(item: Element): void;
5891
- clearSelection(): void;
5892
- selectAll(): void;
5893
- private _replaceSelection;
5894
- private _toggleItem;
5895
- private _rangeSelectTo;
5896
- private _clearSelection;
5897
- private _selectAll;
5898
- private _handleClickSelection;
5899
- private _handleSpaceKey;
5900
- private _getVisibleItems;
5901
- private _syncItemStates;
5902
- private _syncCheckboxes;
5903
- private _findListItem;
5904
- private _dispatch;
5905
- private _openSearch;
5906
- private _closeSearch;
5907
- private _onPointerOver;
5908
- private _onPointerLeave;
5909
- private _onKeyDown;
5910
- private _onClick;
5911
- private _onDblClick;
5912
- private _activateItem;
5913
- private _onSearchInput;
5914
- private _onSearchKeydown;
5915
- static styles: CSSResult;
5916
- render(): TemplateResult<1>;
5917
- }
5918
- declare global {
5919
- interface HTMLElementTagNameMap {
5920
- 'ixfx-vertical-list': VerticalListElement;
5921
- }
5922
- interface HTMLElementEventMap extends ListElementEventMap {}
5923
- } //# sourceMappingURL=vertical-list.d.ts.map
5924
- //#endregion
5925
- //#region src/xy-pad.d.ts
6408
+ //#region src/xy-pad/xy-pad.d.ts
5926
6409
  declare class XyPad extends LitElement {
5927
6410
  static styles: CSSResult[];
5928
6411
  xMin: number;
@@ -6001,5 +6484,5 @@ interface XyPad {
6001
6484
  //#region src/index.d.ts
6002
6485
  declare function init(): void;
6003
6486
  //#endregion
6004
- export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, type AcTokenCompletionProvider, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, DataDisplayComponent, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, type IconChangedDetail, type IconChangedEvent, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LaneData, LaneType, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PlotDataSeries, PlotDataSeriesOptions, PlotSingleAxis, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, type Rect, RectangularSelectEventDetail, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitLayoutElement, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, TabListChangeDetail, TabListChangeEvent, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListElement, TreeSearchHost, TreeSelectionFilter, UserScale, ValueMode, VerticalListElement, ViewRange, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
6487
+ export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataProviderResult, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LaneData, LaneType, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitLayoutElement, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, TabListChangeDetail, TabListChangeEvent, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
6005
6488
  //# sourceMappingURL=index.d.ts.map