@ixfx/components 0.4.3 → 0.5.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 (239) hide show
  1. package/bundle/index.d.ts +518 -1176
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +4861 -17274
  4. package/bundle/index.js.map +1 -1
  5. package/bundle/style.css +1 -1
  6. package/dist/ac-text.d.ts +12 -7
  7. package/dist/ac-text.d.ts.map +1 -1
  8. package/dist/ac-text.js +2 -3
  9. package/dist/ac-text.js.map +1 -1
  10. package/dist/{button-C3fLMKUv.js → button-DxYee1ZH.js} +2 -2
  11. package/dist/{button-C3fLMKUv.js.map → button-DxYee1ZH.js.map} +1 -1
  12. package/dist/button.d.ts +1 -2
  13. package/dist/button.d.ts.map +1 -1
  14. package/dist/button.js +1 -2
  15. package/dist/checkbox.d.ts +0 -1
  16. package/dist/checkbox.d.ts.map +1 -1
  17. package/dist/checkbox.js +1 -1
  18. package/dist/checkbox.js.map +1 -1
  19. package/dist/{colour-picker-0sgAha1T.js → colour-picker-C3Ag4uh-.js} +15 -17
  20. package/dist/colour-picker-C3Ag4uh-.js.map +1 -0
  21. package/dist/colour-picker.d.ts +1 -1
  22. package/dist/colour-picker.js +1 -1
  23. package/dist/crumbs.d.ts +5 -2
  24. package/dist/crumbs.d.ts.map +1 -1
  25. package/dist/crumbs.js +45 -20
  26. package/dist/crumbs.js.map +1 -1
  27. package/dist/data-display.d.ts +1 -2
  28. package/dist/data-display.d.ts.map +1 -1
  29. package/dist/data-display.js +25 -23
  30. package/dist/data-display.js.map +1 -1
  31. package/dist/{data-provider-DgI909FP.js → data-provider-35TyWclX.js} +2 -2
  32. package/dist/data-provider-35TyWclX.js.map +1 -0
  33. package/dist/{decorate-DdjvVHS-.js → decorate-VRK8rslU.js} +2 -2
  34. package/dist/{decorate-DdjvVHS-.js.map → decorate-VRK8rslU.js.map} +1 -1
  35. package/dist/{defaults-C3b9OWJD.js → defaults-DcE8RQJc.js} +19 -1
  36. package/dist/defaults-DcE8RQJc.js.map +1 -0
  37. package/dist/editable-label.d.ts +1 -2
  38. package/dist/editable-label.d.ts.map +1 -1
  39. package/dist/editable-label.js +1 -1
  40. package/dist/editable-label.js.map +1 -1
  41. package/dist/{hex-editor-WZrjRtvL.js → hex-editor-Bk6rxhfg.js} +9 -11
  42. package/dist/hex-editor-Bk6rxhfg.js.map +1 -0
  43. package/dist/{hex-editor-CMIxtNgT.d.ts → hex-editor-Caq8vNQk.d.ts} +2 -3
  44. package/dist/hex-editor-Caq8vNQk.d.ts.map +1 -0
  45. package/dist/hex.d.ts +1 -1
  46. package/dist/hex.js +1 -1
  47. package/dist/highlight-B-eQrhhb.js.map +1 -1
  48. package/dist/{icon-Ndo40kNO.js → icon-B22XVlCt.js} +6 -4
  49. package/dist/{icon-Ndo40kNO.js.map → icon-B22XVlCt.js.map} +1 -1
  50. package/dist/{icon-Bd5BiU4b.d.ts → icon-DpA9x2Ve.d.ts} +2 -3
  51. package/dist/icon-DpA9x2Ve.d.ts.map +1 -0
  52. package/dist/icons.d.ts +2 -2
  53. package/dist/icons.js +2 -2
  54. package/dist/{incr-search-CeERfijK.js → incr-search-2pz21xtR.js} +9 -6
  55. package/dist/incr-search-2pz21xtR.js.map +1 -0
  56. package/dist/incr-search.d.ts +1 -1
  57. package/dist/incr-search.js +1 -1
  58. package/dist/{index-CowKi2mo.d.ts → index-BeuCXtiO.d.ts} +3 -4
  59. package/dist/index-BeuCXtiO.d.ts.map +1 -0
  60. package/dist/{index-D87kRcEs.d.ts → index-BtGFYfaK.d.ts} +2 -1
  61. package/dist/index-BtGFYfaK.d.ts.map +1 -0
  62. package/dist/{index-s_IhSnwc.d.ts → index-CoqtMSd9.d.ts} +6 -4
  63. package/dist/index-CoqtMSd9.d.ts.map +1 -0
  64. package/dist/{index-9fGVAg1d.d.ts → index-Cxwxtj6g.d.ts} +3 -3
  65. package/dist/index-Cxwxtj6g.d.ts.map +1 -0
  66. package/dist/index-D_ftz_IT.d.ts +184 -0
  67. package/dist/index-D_ftz_IT.d.ts.map +1 -0
  68. package/dist/{index-_RTQSKHi.d.ts → index-DfEkTGvT.d.ts} +11 -11
  69. package/dist/index-DfEkTGvT.d.ts.map +1 -0
  70. package/dist/index.d.ts +167 -29
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +712 -2970
  73. package/dist/index.js.map +1 -1
  74. package/dist/keyboard-B5xD7Fz-.js +36 -0
  75. package/dist/keyboard-B5xD7Fz-.js.map +1 -0
  76. package/dist/{labelled-input-base-ORb1rGq6.d.ts → labelled-input-base-DiTme1JO.d.ts} +1 -2
  77. package/dist/labelled-input-base-DiTme1JO.d.ts.map +1 -0
  78. package/dist/{labelled-input-base-9K_w3oLj.js → labelled-input-base-hoKGwyKT.js} +2 -2
  79. package/dist/{labelled-input-base-9K_w3oLj.js.map → labelled-input-base-hoKGwyKT.js.map} +1 -1
  80. package/dist/labelled-radial-input.d.ts +5 -4
  81. package/dist/labelled-radial-input.d.ts.map +1 -1
  82. package/dist/labelled-radial-input.js +7 -3
  83. package/dist/labelled-radial-input.js.map +1 -1
  84. package/dist/labelled-range-input.d.ts +1 -1
  85. package/dist/labelled-range-input.js +27 -3
  86. package/dist/labelled-range-input.js.map +1 -1
  87. package/dist/led.d.ts +1 -2
  88. package/dist/led.d.ts.map +1 -1
  89. package/dist/led.js +1 -1
  90. package/dist/led.js.map +1 -1
  91. package/dist/{menu-vjoiHZ13.js → menu-g6yd7ddN.js} +8 -9
  92. package/dist/menu-g6yd7ddN.js.map +1 -0
  93. package/dist/{menu-item-COx-Azgj.d.ts → menu-item-DSyf9f_L.d.ts} +4 -4
  94. package/dist/menu-item-DSyf9f_L.d.ts.map +1 -0
  95. package/dist/{menu-item-BrIuORYD.js → menu-item-NUKwJ4s5.js} +3 -4
  96. package/dist/{menu-item-BrIuORYD.js.map → menu-item-NUKwJ4s5.js.map} +1 -1
  97. package/dist/menu.d.ts +2 -2
  98. package/dist/menu.js +2 -2
  99. package/dist/miller.d.ts +8 -5
  100. package/dist/miller.d.ts.map +1 -1
  101. package/dist/miller.js +22 -24
  102. package/dist/miller.js.map +1 -1
  103. package/dist/narrowed-text.d.ts +7 -3
  104. package/dist/narrowed-text.d.ts.map +1 -1
  105. package/dist/narrowed-text.js +73 -47
  106. package/dist/narrowed-text.js.map +1 -1
  107. package/dist/panel.d.ts +1 -1
  108. package/dist/panel.d.ts.map +1 -1
  109. package/dist/panel.js +2 -2
  110. package/dist/panel.js.map +1 -1
  111. package/dist/plots.d.ts +2 -2
  112. package/dist/plots.js +1 -1
  113. package/dist/polar-pad.d.ts +15 -3
  114. package/dist/polar-pad.d.ts.map +1 -1
  115. package/dist/polar-pad.js +64 -11
  116. package/dist/polar-pad.js.map +1 -1
  117. package/dist/{radial-input-CpQPs1Mp.d.ts → radial-input-BhZeyyP-.d.ts} +6 -4
  118. package/dist/radial-input-BhZeyyP-.d.ts.map +1 -0
  119. package/dist/{radial-input-DZ7eQCcM.js → radial-input-DxCrt_NE.js} +41 -19
  120. package/dist/radial-input-DxCrt_NE.js.map +1 -0
  121. package/dist/radial-input.d.ts +1 -1
  122. package/dist/radial-input.js +1 -1
  123. package/dist/range-input.d.ts +15 -4
  124. package/dist/range-input.d.ts.map +1 -1
  125. package/dist/range-input.js +23 -2
  126. package/dist/range-input.js.map +1 -1
  127. package/dist/range.d.ts +15 -4
  128. package/dist/range.d.ts.map +1 -1
  129. package/dist/range.js +23 -2
  130. package/dist/range.js.map +1 -1
  131. package/dist/selecthorizontal.d.ts +1 -2
  132. package/dist/selecthorizontal.d.ts.map +1 -1
  133. package/dist/selecthorizontal.js +1 -1
  134. package/dist/selecthorizontal.js.map +1 -1
  135. package/dist/slider-input-DFpG23bS.js +1592 -0
  136. package/dist/slider-input-DFpG23bS.js.map +1 -0
  137. package/dist/slider-input-TidGhvXt.d.ts +160 -0
  138. package/dist/slider-input-TidGhvXt.d.ts.map +1 -0
  139. package/dist/slider-input.d.ts +2 -0
  140. package/dist/slider-input.js +2 -0
  141. package/dist/snap-container.d.ts +1 -2
  142. package/dist/snap-container.d.ts.map +1 -1
  143. package/dist/snap-container.js +6 -5
  144. package/dist/snap-container.js.map +1 -1
  145. package/dist/split-layout.d.ts +1 -2
  146. package/dist/split-layout.d.ts.map +1 -1
  147. package/dist/split-layout.js +6 -4
  148. package/dist/split-layout.js.map +1 -1
  149. package/dist/style.css +1 -1
  150. package/dist/swipe.d.ts +12 -2
  151. package/dist/swipe.d.ts.map +1 -1
  152. package/dist/swipe.js +22 -3
  153. package/dist/swipe.js.map +1 -1
  154. package/dist/{tab-list-DLzb-m-I.d.ts → tab-list-BohmbvqF.d.ts} +14 -5
  155. package/dist/tab-list-BohmbvqF.d.ts.map +1 -0
  156. package/dist/tab-list-DhkVhRQc.js +597 -0
  157. package/dist/tab-list-DhkVhRQc.js.map +1 -0
  158. package/dist/tabs.d.ts +2 -2
  159. package/dist/tabs.js +1 -208
  160. package/dist/{tickled-controller-BjYCzGrU.d.ts → tickled-controller-BF2Ea0DE.d.ts} +2 -31
  161. package/dist/tickled-controller-BF2Ea0DE.d.ts.map +1 -0
  162. package/dist/tickled-styles-fNDdqf6l.js.map +1 -1
  163. package/dist/{timeline-2OFtN4Ta.js → timeline-B2fgDL4U.js} +37 -1438
  164. package/dist/timeline-B2fgDL4U.js.map +1 -0
  165. package/dist/timeline.d.ts +1 -1
  166. package/dist/timeline.js +1 -1
  167. package/dist/{tooltip-RGVIwHrZ.d.ts → tooltip-BlvBUQxx.d.ts} +3 -3
  168. package/dist/tooltip-BlvBUQxx.d.ts.map +1 -0
  169. package/dist/{tree-D84RUgFC.js → tree-BnvzhsAw.js} +8 -9
  170. package/dist/tree-BnvzhsAw.js.map +1 -0
  171. package/dist/{tree-component-BaCSPWg1.d.ts → tree-component-DCmmKZ4j.d.ts} +8 -124
  172. package/dist/tree-component-DCmmKZ4j.d.ts.map +1 -0
  173. package/dist/tree.d.ts +10 -4
  174. package/dist/tree.d.ts.map +1 -1
  175. package/dist/tree.js +1 -1
  176. package/dist/types-DO3gt5vg.d.ts +130 -0
  177. package/dist/types-DO3gt5vg.d.ts.map +1 -0
  178. package/dist/wheel-nudge-BlSCe_hD.js +86 -0
  179. package/dist/wheel-nudge-BlSCe_hD.js.map +1 -0
  180. package/dist/wheel-nudge-DgMTRYlh.d.ts +29 -0
  181. package/dist/wheel-nudge-DgMTRYlh.d.ts.map +1 -0
  182. package/dist/{xy-axis-BeWRMmbo.d.ts → xy-axis-5KhVTNoX.d.ts} +30 -7
  183. package/dist/xy-axis-5KhVTNoX.d.ts.map +1 -0
  184. package/dist/xy-axis-CxHC8z5E.js +1849 -0
  185. package/dist/xy-axis-CxHC8z5E.js.map +1 -0
  186. package/dist/xy-pad.d.ts +13 -2
  187. package/dist/xy-pad.d.ts.map +1 -1
  188. package/dist/xy-pad.js +47 -6
  189. package/dist/xy-pad.js.map +1 -1
  190. package/docs-user/README.md +2 -0
  191. package/docs-user/button.md +48 -0
  192. package/docs-user/narrowed-text.md +33 -1
  193. package/docs-user/notifier.md +131 -0
  194. package/docs-user/plots.md +61 -1
  195. package/docs-user/radial-input.md +2 -2
  196. package/docs-user/slider-input.md +673 -0
  197. package/docs-user/tabs.md +12 -14
  198. package/docs-user/user-catalog.md +69 -4
  199. package/docs-user/vertical-list.md +75 -7
  200. package/package.json +23 -20
  201. package/dist/colour-C3MQIjFJ-vRCdr8W-.js +0 -3732
  202. package/dist/colour-C3MQIjFJ-vRCdr8W-.js.map +0 -1
  203. package/dist/colour-picker-0sgAha1T.js.map +0 -1
  204. package/dist/data-provider-DgI909FP.js.map +0 -1
  205. package/dist/defaults-C3b9OWJD.js.map +0 -1
  206. package/dist/dist-CA13FvMn.js +0 -980
  207. package/dist/dist-CA13FvMn.js.map +0 -1
  208. package/dist/hex-editor-CMIxtNgT.d.ts.map +0 -1
  209. package/dist/hex-editor-WZrjRtvL.js.map +0 -1
  210. package/dist/icon-Bd5BiU4b.d.ts.map +0 -1
  211. package/dist/incr-search-CeERfijK.js.map +0 -1
  212. package/dist/index-9fGVAg1d.d.ts.map +0 -1
  213. package/dist/index-CowKi2mo.d.ts.map +0 -1
  214. package/dist/index-D87kRcEs.d.ts.map +0 -1
  215. package/dist/index-DgXpCg_G.d.ts +0 -1244
  216. package/dist/index-DgXpCg_G.d.ts.map +0 -1
  217. package/dist/index-_RTQSKHi.d.ts.map +0 -1
  218. package/dist/index-s_IhSnwc.d.ts.map +0 -1
  219. package/dist/keyboard-CimiEskD.js +0 -20
  220. package/dist/keyboard-CimiEskD.js.map +0 -1
  221. package/dist/labelled-input-base-ORb1rGq6.d.ts.map +0 -1
  222. package/dist/menu-item-COx-Azgj.d.ts.map +0 -1
  223. package/dist/menu-vjoiHZ13.js.map +0 -1
  224. package/dist/radial-input-CpQPs1Mp.d.ts.map +0 -1
  225. package/dist/radial-input-DZ7eQCcM.js.map +0 -1
  226. package/dist/tab-list-DLzb-m-I.d.ts.map +0 -1
  227. package/dist/tabs.js.map +0 -1
  228. package/dist/tickled-controller-BjYCzGrU.d.ts.map +0 -1
  229. package/dist/timeline-2OFtN4Ta.js.map +0 -1
  230. package/dist/tooltip-RGVIwHrZ.d.ts.map +0 -1
  231. package/dist/tree-D84RUgFC.js.map +0 -1
  232. package/dist/tree-component-BaCSPWg1.d.ts.map +0 -1
  233. package/dist/types-DSfbtHs3.d.ts +0 -8
  234. package/dist/types-DSfbtHs3.d.ts.map +0 -1
  235. package/dist/xy-axis-BeWRMmbo.d.ts.map +0 -1
  236. package/dist/xy-axis-no0OL_O1.js +0 -7893
  237. package/dist/xy-axis-no0OL_O1.js.map +0 -1
  238. /package/bundle/{chunk-D7D4PA-g.js → rolldown-runtime-D7D4PA-g.js} +0 -0
  239. /package/dist/{chunk-D7D4PA-g.js → rolldown-runtime-D7D4PA-g.js} +0 -0
package/bundle/index.d.ts CHANGED
@@ -1,12 +1,9 @@
1
1
  import { FzfOptions } from "fzf";
2
+ import { Colour } from "@ixfx/visual";
2
3
  import { CommandId, CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
3
-
4
+ import { TraversableTree } from "@ixfx/collections";
5
+ import "@clinth/vcanvas";
4
6
  //#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/css-tag.d.ts
5
- /**
6
- * @license
7
- * Copyright 2019 Google LLC
8
- * SPDX-License-Identifier: BSD-3-Clause
9
- */
10
7
  /**
11
8
  * A CSSResult or native CSSStyleSheet.
12
9
  *
@@ -1029,8 +1026,6 @@ declare class LitElement extends ReactiveElement {
1029
1026
  protected render(): unknown;
1030
1027
  }
1031
1028
  //#endregion
1032
- //#region node_modules/.pnpm/lit@3.3.3/node_modules/lit/development/index.d.ts
1033
- //#endregion
1034
1029
  //#region src/icons/icon.d.ts
1035
1030
  /**
1036
1031
  * Renders an icon from the icon registry by name.
@@ -1052,7 +1047,7 @@ declare class IxfxIconElement extends LitElement {
1052
1047
  rotate: string;
1053
1048
  connectedCallback(): void;
1054
1049
  disconnectedCallback(): void;
1055
- protected render(): TemplateResult<1> | typeof nothing;
1050
+ protected render(): typeof nothing | TemplateResult<1>;
1056
1051
  protected updated(changed: Map<string, unknown>): void;
1057
1052
  static styles: CSSResult[];
1058
1053
  }
@@ -1060,7 +1055,7 @@ declare global {
1060
1055
  interface HTMLElementTagNameMap {
1061
1056
  'ixfx-icon': IxfxIconElement;
1062
1057
  }
1063
- } //# sourceMappingURL=icon.d.ts.map
1058
+ }
1064
1059
  //#endregion
1065
1060
  //#region src/ac-text/ac-text.d.ts
1066
1061
  type AcTextItem = {
@@ -1068,8 +1063,10 @@ type AcTextItem = {
1068
1063
  readonly subLabel?: string;
1069
1064
  readonly icon?: string;
1070
1065
  readonly key?: string;
1071
- readonly data?: unknown; /** When true, Tab-accept will not append `tabSuffix`. */
1072
- readonly isLeaf?: boolean; /** Character positions within label that matched the query, used for CSS highlight rendering. */
1066
+ readonly data?: unknown;
1067
+ /** When true, Tab-accept will not append `tabSuffix`. */
1068
+ readonly isLeaf?: boolean;
1069
+ /** Character positions within label that matched the query, used for CSS highlight rendering. */
1073
1070
  readonly positions?: ReadonlySet<number>;
1074
1071
  };
1075
1072
  type AcTextSelectDetail = {
@@ -1082,13 +1079,16 @@ type AcTextSelectEvent = CustomEvent<AcTextSelectDetail>;
1082
1079
  * or by selecting an item from the autocomplete popup (keyboard or click).
1083
1080
  */
1084
1081
  type AcTextChangeDetail = {
1085
- /** The committed text value (typed text, or the selected item's label). */readonly value: string;
1082
+ /** The committed text value (typed text, or the selected item's label). */
1083
+ readonly value: string;
1086
1084
  /**
1087
1085
  * The item key. For autocomplete items: `item.key ?? item.label`.
1088
1086
  * For plain typed text: the text itself.
1089
1087
  */
1090
- readonly key: string; /** The item's `data` payload. Only present for autocomplete selections. */
1091
- readonly data?: unknown; /** Whether the commit came from plain typed text or an autocomplete selection. */
1088
+ readonly key: string;
1089
+ /** The item's `data` payload. Only present for autocomplete selections. */
1090
+ readonly data?: unknown;
1091
+ /** Whether the commit came from plain typed text or an autocomplete selection. */
1092
1092
  readonly source: `text` | `autocomplete`;
1093
1093
  };
1094
1094
  type AcTextChangeEvent = CustomEvent<AcTextChangeDetail>;
@@ -1152,7 +1152,7 @@ declare global {
1152
1152
  interface HTMLElementTagNameMap {
1153
1153
  'ixfx-ac-text': AcTextElement;
1154
1154
  }
1155
- } //# sourceMappingURL=ac-text.d.ts.map
1155
+ }
1156
1156
  //#endregion
1157
1157
  //#region src/common/data-provider.d.ts
1158
1158
  /**
@@ -1168,7 +1168,8 @@ declare global {
1168
1168
  * DataBatch internally — you only need this type when writing a streaming provider.
1169
1169
  */
1170
1170
  type DataBatch<T> = {
1171
- /** Items delivered in this batch. */readonly items: readonly T[];
1171
+ /** Items delivered in this batch. */
1172
+ readonly items: readonly T[];
1172
1173
  /**
1173
1174
  * When true, replace all previously accumulated items with this batch instead
1174
1175
  * of appending. Useful for re-ranked or filtered results mid-stream.
@@ -1313,7 +1314,7 @@ declare class ButtonElement extends LitElement {
1313
1314
  icon?: string;
1314
1315
  hideIcon: boolean;
1315
1316
  hideLabel: boolean;
1316
- protected _renderIcon(): TemplateResult<1> | typeof nothing;
1317
+ protected _renderIcon(): typeof nothing | TemplateResult<1>;
1317
1318
  protected render(): TemplateResult<1>;
1318
1319
  static styles: CSSResult[];
1319
1320
  }
@@ -1321,7 +1322,7 @@ declare global {
1321
1322
  interface HTMLElementTagNameMap {
1322
1323
  "ixfx-button": ButtonElement;
1323
1324
  }
1324
- } //# sourceMappingURL=button.d.ts.map
1325
+ }
1325
1326
  //#endregion
1326
1327
  //#region src/button/radio-group.d.ts
1327
1328
  type RadioGroupMode = `compact` | `max`;
@@ -1363,7 +1364,7 @@ declare global {
1363
1364
  interface HTMLElementTagNameMap {
1364
1365
  'ixfx-radio-group': RadioGroup;
1365
1366
  }
1366
- } //# sourceMappingURL=radio-group.d.ts.map
1367
+ }
1367
1368
  //#endregion
1368
1369
  //#region src/button/types.d.ts
1369
1370
  type SplitButtonSelectDetail = {
@@ -1417,7 +1418,7 @@ declare global {
1417
1418
  interface HTMLElementTagNameMap {
1418
1419
  'ixfx-menu-container': MenuContainer;
1419
1420
  }
1420
- } //# sourceMappingURL=menu-container.d.ts.map
1421
+ }
1421
1422
  //#endregion
1422
1423
  //#region src/menu/menu-trigger.d.ts
1423
1424
  type MenuMode = `trigger` | `dropdown` | `context`;
@@ -1504,7 +1505,7 @@ declare global {
1504
1505
  interface HTMLElementTagNameMap {
1505
1506
  'ixfx-menu-item': MenuItem;
1506
1507
  }
1507
- } //# sourceMappingURL=menu-item.d.ts.map
1508
+ }
1508
1509
  //#endregion
1509
1510
  //#region src/button/split-button.d.ts
1510
1511
  type SplitButtonMode = `default` | `switcher`;
@@ -1557,7 +1558,7 @@ declare global {
1557
1558
  interface HTMLElementTagNameMap {
1558
1559
  'ixfx-split-button': SplitButton;
1559
1560
  }
1560
- } //# sourceMappingURL=split-button.d.ts.map
1561
+ }
1561
1562
  //#endregion
1562
1563
  //#region src/checkbox/checkbox.d.ts
1563
1564
  declare class Checkbox extends LitElement {
@@ -1615,1096 +1616,7 @@ declare global {
1615
1616
  interface HTMLElementTagNameMap {
1616
1617
  'ixfx-colour-picker': ColourPicker;
1617
1618
  }
1618
- } //# sourceMappingURL=types.d.ts.map
1619
- //#endregion
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
1652
- /**
1653
- * Traversable Tree.
1654
- *
1655
- * Creatable from:
1656
- * {@link Trees.FromObject.asDynamicTraversable}: Create based on dynamic reading of an object
1657
- * {@link Trees.TraversableTree}: Create based on an {@link Trees.TreeNode}, a {@link Trees.TraversableTree} or an object (same as calling asDynamicTraversable).
1658
- * Use {@link Trees.isTraversable} to check if an object is this type.
1659
- */
1660
- type TraversableTree<TValue> = {
1661
- /**
1662
- * Direct children of node
1663
- */
1664
- children: () => IterableIterator<TraversableTree<TValue>>;
1665
- /**
1666
- * Direct parent of node
1667
- */
1668
- getParent: () => TraversableTree<TValue> | undefined;
1669
- /**
1670
- * Value of node
1671
- */
1672
- getValue: () => TValue;
1673
- /**
1674
- * Object reference that acts as the identity of the node
1675
- */
1676
- getIdentity: () => any;
1677
- };
1678
- //#endregion
1679
- //#region node_modules/.pnpm/@ixfx+random@0.56.13/node_modules/@ixfx/random/dist/index.d.ts
1680
- //#region src/types.d.ts
1681
- /**
1682
- * A random source.
1683
- *
1684
- * Predefined sources: Math.random, {@link gaussianSource}, {@link weightedSource}
1685
- */
1686
- type RandomSource = () => number;
1687
- //#endregion
1688
- //#region node_modules/.pnpm/@ixfx+visual@0.56.13/node_modules/@ixfx/visual/dist/index-a3KMyMEu.d.ts
1689
- //#region src/colour/types.d.ts
1690
- type HslBase = {
1691
- /**
1692
- * Hue
1693
- */
1694
- h: number;
1695
- /**
1696
- * Saturation
1697
- */
1698
- s: number;
1699
- /**
1700
- * Lightness
1701
- */
1702
- l: number;
1703
- /**
1704
- * Opacity
1705
- */
1706
- opacity?: number;
1707
- space?: `hsl`;
1708
- };
1709
- /**
1710
- * [YCbCr format](https://en.wikipedia.org/wiki/YCbCr)
1711
- */
1712
- type YCbCrBase = {
1713
- /**
1714
- * Luma
1715
- */
1716
- y: number;
1717
- /**
1718
- * Blue difference
1719
- */
1720
- cb: number;
1721
- /**
1722
- * Red difference
1723
- */
1724
- cr: number;
1725
- /**
1726
- * Opacity
1727
- */
1728
- opacity?: number;
1729
- space?: `ycbcr`;
1730
- };
1731
- /**
1732
- * Scalar values use 0..1 for each field
1733
- */
1734
- type YCbCrScalar = YCbCrBase & {
1735
- unit: `scalar`;
1736
- };
1737
- /**
1738
- * Absolute colour use 0..255 for each field
1739
- */
1740
- type YCbCr8bit = YCbCrBase & {
1741
- unit: `8bit`;
1742
- };
1743
- /**
1744
- * [YCbCr format](https://en.wikipedia.org/wiki/YCbCr).
1745
- *
1746
- * By default assumes scalar coordinates (0..1) for each field.
1747
- * Use '8bit' unit for 0..255 ranged values.
1748
- */
1749
- type YCbCr = YCbCrScalar | YCbCr8bit;
1750
- type ColourSpaces = `srgb` | `hsl` | `oklch` | `ycbcr`;
1751
- /**
1752
- * Scalar values use 0..1 for each field
1753
- */
1754
- type HslScalar = HslBase & {
1755
- unit: `scalar`;
1756
- };
1757
- /**
1758
- * Absolute values use hue:0..360, all other fields 0..100
1759
- */
1760
- type HslAbsolute = HslBase & {
1761
- unit: `absolute`;
1762
- };
1763
- /**
1764
- * HSL value.
1765
- * By default assumes scalar coordinates (0..1) for each field.
1766
- * Use 'absolute' unit for hue:0...360, all other fields on 0..100 scale.
1767
- */
1768
- type Hsl = HslScalar | HslAbsolute;
1769
- /**
1770
- * Rgb.
1771
- * Units determine how to interperet rgb values.
1772
- * 'scalar': 0..1 range for RGB & opacity
1773
- * '8bit': 0..255 range for RGB & opacity
1774
- */
1775
- type RgbBase = {
1776
- r: number;
1777
- g: number;
1778
- b: number;
1779
- opacity?: number;
1780
- space?: `srgb`;
1781
- };
1782
- type RgbScalar = RgbBase & {
1783
- unit: `scalar`;
1784
- };
1785
- /**
1786
- * RGB in 0...255 range, including opacity.
1787
- */
1788
- type Rgb8Bit = RgbBase & {
1789
- unit: `8bit`;
1790
- };
1791
- /**
1792
- * Rgb.
1793
- * Units determine how to interperet rgb values.
1794
- * 'scalar': 0..1 range for RGB & opacity
1795
- * '8bit': 0..255 range for RGB & opacity
1796
- */
1797
- type Rgb = RgbScalar | Rgb8Bit;
1798
- type LchBase = {
1799
- /**
1800
- * Lightness/perceived brightnes
1801
- */
1802
- l: number;
1803
- /**
1804
- * Chroma ('amount of colour')
1805
- */
1806
- c: number;
1807
- /**
1808
- * Hue
1809
- */
1810
- h: number;
1811
- /**
1812
- * Opacity on 0..1 scale
1813
- */
1814
- opacity?: number;
1815
- space: `lch` | `oklch`;
1816
- };
1817
- type ColourInterpolator<T extends Colour> = (amount: number) => T;
1818
- type OkLchBase = LchBase & {
1819
- space: `oklch`;
1820
- };
1821
- /**
1822
- * Oklch colour expressed in 0..1 scalar values for LCH & opacity
1823
- */
1824
- type OkLchScalar = OkLchBase & {
1825
- unit: `scalar`;
1826
- };
1827
- /**
1828
- * Oklch colour expressed with:
1829
- * l: 0..1
1830
- * c: 0..4
1831
- * h: 0..360 degrees
1832
- * opacity: 0..1
1833
- */
1834
- type OkLchAbsolute = OkLchBase & {
1835
- unit: `absolute`;
1836
- };
1837
- type OkLch = OkLchAbsolute | OkLchScalar;
1838
- type Colour = {
1839
- opacity?: number;
1840
- } & (Hsl | OkLch | Rgb | YCbCr);
1841
- /**
1842
- * A representation of colour. Eg: `blue`, `rgb(255,0,0)`, `hsl(20,100%,50%)`
1843
- */
1844
- type Colourish = Colour | string;
1845
- /**
1846
- * Options for interpolation
1847
- */
1848
- type ColourInterpolationOpts = {
1849
- direction: `longer` | `shorter`;
1850
- /**
1851
- * Space to do calculations in
1852
- */
1853
- space: ColourSpaces;
1854
- /**
1855
- * Destination of calculated colour
1856
- */
1857
- destination: ConvertDestinations;
1858
- };
1859
- type ColourStepOpts = ColourInterpolationOpts & {
1860
- /**
1861
- * If set, determines total number of steps, including colour stops.
1862
- * Use this _or_ `stepsBetween`.
1863
- */
1864
- stepsTotal?: number;
1865
- /**
1866
- * If set, determines number of steps between colour stops.
1867
- * Use this _or_ `stepsTotal`.
1868
- */
1869
- stepsBetween?: number;
1870
- };
1871
- type ParsingOptions<T> = Partial<{
1872
- scalar: boolean;
1873
- ensureSafe: boolean;
1874
- /**
1875
- * Value to use if input is invalid
1876
- */
1877
- fallbackString: string;
1878
- /**
1879
- * Fallback colour to use if value cannot be parsed
1880
- */
1881
- fallbackColour: T;
1882
- }>;
1883
- type ConvertDestinations = `hsl-scalar` | `hsl-absolute` | `oklch-scalar` | `oklch-absolute` | `srgb-8bit` | `srgb-scalar` | `ycbcr-scalar` | `ycbcr-8bit`; //#endregion
1884
- //#region ../../node_modules/.pnpm/colorizr@4.0.1/node_modules/colorizr/dist/index.d.mts
1885
- type ColorType = 'hex' | 'hsl' | 'oklab' | 'oklch' | 'rgb';
1886
- type HEX = `#${string}`;
1887
- interface Analysis {
1888
- brightnessDifference: number;
1889
- colorDifference: number;
1890
- compliant: number;
1891
- contrast: number;
1892
- largeAA: boolean;
1893
- largeAAA: boolean;
1894
- normalAA: boolean;
1895
- normalAAA: boolean;
1896
- }
1897
- interface HSL {
1898
- /** The alpha/opacity value (0-1). */
1899
- alpha?: number;
1900
- h: number;
1901
- l: number;
1902
- s: number;
1903
- }
1904
- interface LAB {
1905
- a: number;
1906
- /** The alpha/opacity value (0-1). */
1907
- alpha?: number;
1908
- b: number;
1909
- l: number;
1910
- }
1911
- interface LCH {
1912
- /** The alpha/opacity value (0-1). */
1913
- alpha?: number;
1914
- c: number;
1915
- h: number;
1916
- l: number;
1917
- }
1918
- interface RGB {
1919
- /** The alpha/opacity value (0-1). */
1920
- alpha?: number;
1921
- b: number;
1922
- g: number;
1923
- r: number;
1924
- }
1925
- interface ColorizrOptions {
1926
- /**
1927
- * Output color format.
1928
- *
1929
- * If not specified, the output will use the same format as the input color.
1930
- */
1931
- format?: ColorType;
1932
- }
1933
- declare class Colorizr {
1934
- /** The alpha/opacity value (0-1). */
1935
- alpha: number;
1936
- hex: HEX;
1937
- hsl: HSL;
1938
- oklab: LAB;
1939
- oklch: LCH;
1940
- rgb: RGB;
1941
- type: ColorType;
1942
- constructor(color: string | HSL | LAB | LCH | RGB, options?: ColorizrOptions);
1943
- /**
1944
- * Get CSS string
1945
- */
1946
- get css(): string;
1947
- /**
1948
- * Get the red value
1949
- */
1950
- get red(): number;
1951
- /**
1952
- * Get the green value
1953
- */
1954
- get green(): number;
1955
- /**
1956
- * Get the blue value
1957
- */
1958
- get blue(): number;
1959
- /**
1960
- * Get the hue value
1961
- */
1962
- get hue(): number;
1963
- /**
1964
- * Get the saturation value
1965
- */
1966
- get saturation(): number;
1967
- /**
1968
- * Get the lightness value
1969
- */
1970
- get lightness(): number;
1971
- /**
1972
- * Get the luminance value
1973
- */
1974
- get luminance(): number;
1975
- /**
1976
- * Get the chroma value
1977
- */
1978
- get chroma(): number;
1979
- get opacity(): number;
1980
- /**
1981
- * Get the most readable color (light or dark) for this color as a background.
1982
- */
1983
- get readableColor(): string;
1984
- private get currentColor();
1985
- /**
1986
- * Get the brightness difference between this color and another.
1987
- *
1988
- * @param input - The color to compare against.
1989
- * @returns The brightness difference value.
1990
- */
1991
- brightnessDifference(input: string): number;
1992
- /**
1993
- * Get the color difference between this color and another.
1994
- *
1995
- * @param input - The color to compare against.
1996
- * @returns The color difference value.
1997
- */
1998
- colorDifference(input: string): number;
1999
- /**
2000
- * Test 2 colors for WCAG compliance.
2001
- *
2002
- * @param input - The color to compare against.
2003
- * @returns Analysis object with compliance information.
2004
- */
2005
- compare(input: string): Analysis;
2006
- /**
2007
- * Get the contrast ratio between this color and another.
2008
- *
2009
- * @param input - The color to compare against.
2010
- * @returns The contrast ratio.
2011
- */
2012
- contrast(input: string): number;
2013
- /**
2014
- * Format the color to a specific type.
2015
- *
2016
- * @param type - The color format to convert to.
2017
- * @param precision - The decimal precision for the output.
2018
- * @returns The formatted color string.
2019
- */
2020
- format(type: ColorType, precision?: number): string;
2021
- /**
2022
- * Increase lightness.
2023
- *
2024
- * @param amount - A number between 0 and 100.
2025
- * @returns The lightened color string.
2026
- */
2027
- lighten(amount: number): string;
2028
- /**
2029
- * Decrease lightness.
2030
- *
2031
- * @param amount - A number between 0 and 100.
2032
- * @returns The darkened color string.
2033
- */
2034
- darken(amount: number): string;
2035
- /**
2036
- * Increase saturation.
2037
- *
2038
- * @param amount - A number between 0 and 100.
2039
- * @returns The saturated color string.
2040
- */
2041
- saturate(amount: number): string;
2042
- /**
2043
- * Decrease saturation.
2044
- *
2045
- * @param amount - A number between 0 and 100.
2046
- * @returns The desaturated color string.
2047
- */
2048
- desaturate(amount: number): string;
2049
- /**
2050
- * Convert to grayscale.
2051
- *
2052
- * @returns The grayscale color string.
2053
- */
2054
- grayscale(): string;
2055
- /**
2056
- * Invert color.
2057
- *
2058
- * @returns The inverted color string.
2059
- */
2060
- invert(): string;
2061
- /**
2062
- * Mix with another color.
2063
- *
2064
- * @param color - The color to mix with.
2065
- * @param ratio - A number between 0 and 1 (0 = this color, 1 = input color).
2066
- * @returns The mixed color string.
2067
- */
2068
- mix(color: string, ratio?: number): string;
2069
- /**
2070
- * Add opacity to the color.
2071
- *
2072
- * @param alpha - A number between 0 and 1.
2073
- * @returns The opacified color string.
2074
- */
2075
- opacify(alpha?: number): string;
2076
- /**
2077
- * Rotate color hue.
2078
- *
2079
- * @param degrees - A number between -360 and 360.
2080
- * @returns The rotated color string.
2081
- */
2082
- rotate(degrees: number): string;
2083
- /**
2084
- * Make the color more transparent.
2085
- *
2086
- * @param alpha - A number between -1 and 1.
2087
- * @returns The transparentized color string.
2088
- */
2089
- transparentize(alpha?: number): string;
2090
- }
2091
- /**
2092
- * Check 2 colors for WCAG compliance.
2093
- *
2094
- * @param left - The first color string.
2095
- * @param right - The second color string.
2096
- * @returns Analysis object with WCAG compliance information.
2097
- */
2098
- //#endregion
2099
- //#region src/colour/conversion.d.ts
2100
- declare function convert<T extends ConvertDestinations>(colour: Colourish, destination: T): T extends `oklch-absolute` ? OkLchAbsolute : T extends `oklch-scalar` ? OkLchScalar : T extends `srgb-8bit` ? Rgb8Bit : T extends `srgb-scalar` ? RgbScalar : T extends `hsl-scalar` ? HslScalar : T extends `hsl-absolute` ? HslAbsolute : never;
2101
- /**
2102
- * Like {@link convert}, but result is a CSS colour string
2103
- * @param colour
2104
- * @param destination
2105
- */
2106
- declare function convertToString(colour: Colourish, destination: ConvertDestinations): string;
2107
- /**
2108
- * Converts some kind of colour into a scalar representation. Supports oklch, hsl and srgb.
2109
- * @param colour Colour to convert
2110
- * @param destination Destination colour format
2111
- */
2112
- declare function convertScalar<T extends ColourSpaces>(colour: Colourish, destination: T): T extends `oklch` ? OkLchScalar : T extends `hsl` ? HslScalar : T extends `srgb` ? RgbScalar : never;
2113
- declare function toCssColour(colour: Colourish | object): string;
2114
- declare function toHexColour(colour: Colourish | object): string;
2115
- declare function toLibraryColour(colour: Colourish): Colorizr;
2116
- declare function guard$4(colour: Colour): void;
2117
- declare function toColour(colourish: any): Colour;
2118
- /**
2119
- * Returns a CSS-ready string
2120
- * representation.
2121
- * ```js
2122
- * element.style.backgroundColor = resolveToString(`red`);
2123
- * ```
2124
- *
2125
- * Tries each parameter in turn, returning the value
2126
- * for the first that resolves. This can be useful for
2127
- * having fallback values.
2128
- *
2129
- * ```js
2130
- * // Try a CSS variable, a object property or finally fallback to red.
2131
- * element.style.backgroundColor = toStringFirst('--some-var', opts.background, `red`);
2132
- * ```
2133
- * @param colours Array of colours to resolve
2134
- */
2135
- declare function toStringFirst(...colours: Array<Colourish | undefined>): string;
2136
- declare function rgbToHsl(rgb: Rgb, scalarResult: true): HslScalar;
2137
- declare function rgbToHsl(rgb: Rgb, scalarResult: false): HslAbsolute; //#endregion
2138
- //#region src/colour/css-colours.d.ts
2139
- /**
2140
- * Converts from some kind of colour that is legal in CSS
2141
- * into a structured Colour type.
2142
- *
2143
- * Handles: hex format, CSS variables, colour names
2144
- * ```js
2145
- * fromCssColour(`#ffffff`);
2146
- * fromCssColour(`blue`);
2147
- * fromCssColour(`--some-variable`);
2148
- * fromCssColour(`hsl(50, 50%, 50%)`);
2149
- * fromCssColour(`rgb(50, 100, 100)`);
2150
- * ```
2151
- * @param colour
2152
- * @returns
2153
- */
2154
- declare const fromCssColour: (colour: string) => Colour;
2155
- /**
2156
- * Resolves a named colour to a colour string.
2157
- *
2158
- * ```js
2159
- * resolveCss(`red`);
2160
- * ```
2161
- * @param colour CSS named colour
2162
- * @returns
2163
- */
2164
- declare function resolveCss(colour: CssColourNames): string;
2165
- type CssColourNames = keyof typeof cssDefinedHexColours;
2166
- declare const cssDefinedHexColours: Record<string, string>; //#endregion
2167
- //#region src/colour/generate.d.ts
2168
- /**
2169
- * Returns a full HSL colour string (eg `hsl(20,50%,75%)`) based on a index.
2170
- * It's useful for generating perceptually different shades as the index increments.
2171
- *
2172
- * ```
2173
- * el.style.backgroundColor = goldenAgeColour(10);
2174
- * ```
2175
- *
2176
- * Saturation and lightness can be specified, as numeric ranges of 0-1.
2177
- *
2178
- * @param saturation Saturation (0-1), defaults to 0.5
2179
- * @param lightness Lightness (0-1), defaults to 0.75
2180
- * @param alpha Opacity (0-1), defaults to 1.0
2181
- * @returns HSL colour string eg `hsl(20,50%,75%)`
2182
- */
2183
- declare const goldenAngleColour: (index: number, saturation?: number, lightness?: number, alpha?: number) => string;
2184
- /**
2185
- * Returns a random hue component (0..359)
2186
- *
2187
- * ```
2188
- * // Generate hue
2189
- * const h = randomHue(); // 0-359
2190
- *
2191
- * // Generate hue and assign as part of a HSL string
2192
- * el.style.backgroundColor = `hsl(${randomHue(), 50%, 75%})`;
2193
- * ```
2194
- * @param rand
2195
- * @returns
2196
- */
2197
- declare const randomHue: (rand?: RandomSource) => number; //#endregion
2198
- //#region src/colour/guards.d.ts
2199
- declare function isHsl(v: any): v is Hsl;
2200
- declare function isRgb(v: any): v is Rgb;
2201
- /**
2202
- * If the input object has r,g&b properties, it will return a fully-
2203
- * formed Rgb type with `unit` and `space` properties.
2204
- *
2205
- * If it lacks these basic three properties or they are out of range,
2206
- * _undefined_ is returned.
2207
- *
2208
- * If RGB values are less than 1 assumes unit:scalar. Otherwise unit:8bit.
2209
- * If RGB values exceed 255, _undefined_ returned.
2210
- * @param v
2211
- * @returns
2212
- */
2213
- declare function tryParseObjectToRgb(v: any): Rgb | undefined;
2214
- declare function tryParseObjectToHsl(v: any): Hsl | undefined;
2215
- declare function isOkLch(v: any): v is OkLch;
2216
- declare function isColourish(v: any): v is Colourish;
2217
- declare namespace hsl_d_exports {
2218
- export { absolute$1 as absolute, changeLightness$1 as changeLightness, fromCss$3 as fromCss, fromHexString$3 as fromHexString, generateScalar$1 as generateScalar, guard$3 as guard, interpolator$3 as interpolator, parseCssHslFunction, scalar$3 as scalar, toAbsolute$1 as toAbsolute, toCssString$2 as toCssString, toHexString$3 as toHexString, toLibraryRgb, toScalar$3 as toScalar, withOpacity$3 as withOpacity };
2219
- }
2220
- /**
2221
- * Scales the opacity value of an input HSL value
2222
- * ```js
2223
- * withOpacity()
2224
- * ```
2225
- * @param value Colour
2226
- * @param fn Function that calcules opacity based on input scalar value
2227
- */
2228
- declare function withOpacity$3<T extends Hsl>(value: T, fn: (opacityScalar: number, value: T) => number): T;
2229
- /**
2230
- * Increases or decreases lightness by this percentage, returning new colour
2231
- *
2232
- * Amount to change:
2233
- * 'fixed': a fixed amount
2234
- * 'delta': increase/decrease by this amount
2235
- * 'pdelta': proportion of current value to change by ('percentage delta')
2236
- *
2237
- * ```
2238
- * const colour = { h: 0.5, s: 0.5, l: 0.5, space: `hsl`, unit: `scalar` };
2239
- * changeLightness(colour, { pdelta: 0.1 }); // l: 0.55
2240
- * changeLightness(colour, { delta: 0.1 }); // l: 0.6
2241
- * changeLightness(colour, { fixed: 0.5 }); // l: 0.5
2242
- * ```
2243
- *
2244
- * Keep in mind the numerical value will depend on the unit of `value`. If it's scalar,
2245
- * lightness is 0..1 scale, otherwise 0..100 scale.
2246
- *
2247
- * Use negative values to decrease (does not apply to 'fixed')
2248
- * @param value Hsl colour
2249
- * @param amount Amount to change
2250
- */
2251
- declare function changeLightness$1(value: Hsl, amount: Partial<{
2252
- pdelta: number;
2253
- delta: number;
2254
- fixed: number;
2255
- }>): Hsl;
2256
- declare function fromHexString$3<T extends ParsingOptions<Hsl>>(hexString: string, scalar: T): T extends {
2257
- scalar: true;
2258
- } ? HslScalar : HslAbsolute;
2259
- declare function fromCss$3<T extends ParsingOptions<Hsl>>(value: string, options?: T): T extends {
2260
- scalar: true;
2261
- } ? HslScalar : HslAbsolute;
2262
- declare function toCssString$2(hsl: Hsl): string;
2263
- declare function toHexString$3(hsl: Hsl): string;
2264
- declare function toAbsolute$1(hslOrString: Hsl | Rgb | string): HslAbsolute;
2265
- /**
2266
- * Generates a {@link HslScalar} value.
2267
- *
2268
- * ```js
2269
- * generateScaler(10); // 10deg, default to full saturation, half lightness and full opacity
2270
- *
2271
- * // Generate HSL value from radian angle and 50% saturation
2272
- * generateScalar(`10rad`, 0.5);
2273
- *
2274
- * // Generate from numeric CSS variable
2275
- * generateScalar(`--hue`);
2276
- * ```
2277
- * @param absoluteHslOrVariable Hue angle or CSS variable
2278
- * @param saturation
2279
- * @param lightness
2280
- * @param opacity
2281
- */
2282
- declare function generateScalar$1(absoluteHslOrVariable: string | number | Angle, saturation?: number, lightness?: number, opacity?: number): HslScalar;
2283
- /**
2284
- * Converts a {@link Hsl} value to scalar units, or parses a colour string
2285
- * and converts it.
2286
- *
2287
- * ```js
2288
- * toScalar({ h: 100, s: 50, l: 100, unit: `absolute` });
2289
- * toScalar(`red`);
2290
- * ```
2291
- * @param colour
2292
- */
2293
- declare function toScalar$3(colour: Rgb | Hsl | string): HslScalar;
2294
- declare function guard$3(hsl: Hsl): void;
2295
- declare function interpolator$3(a: Hsl | string, b: Hsl | string, direction?: `longer` | `shorter`): (amount: number) => HslScalar;
2296
- /**
2297
- * Creates a HslScalar value from scalar (0..1) values
2298
- * @param hue
2299
- * @param sat
2300
- * @param lightness
2301
- * @param opacity
2302
- */
2303
- declare function scalar$3(hue?: number, sat?: number, lightness?: number, opacity?: number): HslScalar;
2304
- declare function absolute$1(hue?: number, sat?: number, lightness?: number, opacity?: number): HslAbsolute;
2305
- /**
2306
- * It seems Colorizr can't handle 'deg' units
2307
- * @param value
2308
- */
2309
- declare function parseCssHslFunction(value: string): Hsl;
2310
- /**
2311
- * Converts a Hsl structure (or CSS string) to Colorizr's RGB format
2312
- * @param hsl HSL colour
2313
- */
2314
- declare function toLibraryRgb(hsl: Hsl | string): RGB; //#endregion
2315
- //#region src/colour/interpolate.d.ts
2316
- /**
2317
- * Returns a function to interpolate between colours, with results as a structured {@link Colour} object.
2318
- * ```js
2319
- * const i = interpolator([`orange`, `yellow`, `red`]);
2320
- *
2321
- * // Get a random colour on the above spectrum
2322
- * i(Math.random());
2323
- * ```
2324
- *
2325
- * Results will vary depending on the colour space used, play with the options.
2326
- * When using a hue-based colour space, the `hue` option sets the logic for how hue values wrap.
2327
- *
2328
- * ```js
2329
- * interpolator([`orange`, `yellow`, `red`], { space: `hsl`, hue: `longer })
2330
- * ```
2331
- *
2332
- * Example: Draw the interpolation as a spectrum on a canvas, where each pixel is one step
2333
- * ```js
2334
- * let v = 0;
2335
- * let incrementBy = 0.01;
2336
- * while (v <= 1) {
2337
- * // Get colour at this interpolation point 0..1
2338
- * const colour = fn(v);
2339
- * // Convert to a CSS string
2340
- * ctx.fillStyle = Colour.toCssColour(colour);
2341
- * // Draw a 1px wide rect, and shuffle along to the next x position
2342
- * ctx.fillRect(x, y, 1, h);
2343
- * x += 1;
2344
- * v += incrementBy;
2345
- * }
2346
- * ```
2347
- * @param colours Colours to interpolate between
2348
- * @param opts Options for interpolation
2349
- * @returns Function that interpolates based on an amount, returning a structured Colour
2350
- */
2351
- declare function interpolator$2(colours: Colourish[], opts?: Partial<ColourInterpolationOpts>): (amt: number) => Colour;
2352
- /**
2353
- * Returns a CSS `linear-gradient` with stops corresponding to the given list of `colours`.
2354
- * ```js
2355
- * element.style.background = Colour.cssLinearGradient(['red','green','blue']);
2356
- * ```
2357
- * @param colours
2358
- * @returns A 'linear-gradient' string for use in CSS, eg for background.
2359
- */
2360
- declare function cssLinearGradient(colours: Colourish[]): string;
2361
- /**
2362
- * Returns a function that interpolates between two colours. Returns string colour values.
2363
- * If you want the result as a structured colour, use {@link interpolatorDual} instead.
2364
- *
2365
- * By default takes a shorter direction and uses the OkLCH colourspace.
2366
- * ```js
2367
- * const i = interpolator(`blue`, `red`);
2368
- * i(0.5); // Get the colour at 50%, as a string.
2369
- * ```
2370
- *
2371
- * To work with structured colour values, use one of the space's `interpolate` functions.
2372
- *
2373
- * If you want to create discrete steps, consider {@link createSteps} or {@link scale}.
2374
- *
2375
- * @param colourA First colour
2376
- * @param colourB Second colour
2377
- * @param options Interpolation options. By default uses shorter direction and OkLCH colour space.
2378
- */
2379
- declare function interpolatorDualToString(colourA: Colourish, colourB: Colourish, options?: Partial<ColourInterpolationOpts>): ((amount: number) => string);
2380
- /**
2381
- * Returns a function that interpolates between two colours. Returns structured colour values.
2382
- * If you want the result as a ready-to-use CSS string, use {@link interpolatorDualToString} instead.
2383
- *
2384
- * By default takes a shorter direction and uses the OkLCH colourspace.
2385
- * ```js
2386
- * const i = interpolator(`blue`, `red`);
2387
- * i(0.5); // Get the colour at 50%, as a Colour structure.
2388
- * ```
2389
- *
2390
- * If you want to create discrete steps, consider {@link createSteps} or {@link scale}.
2391
- * @param colourA First colour
2392
- * @param colourB Second colour
2393
- * @param options Interpolation options. By default uses shorter direction and OkLCH colour space.
2394
- * @returns Function that interpolates between two colours, returning a structured Colour
2395
- */
2396
- declare function interpolatorDual(colourA: Colourish, colourB: Colourish, options?: Partial<ColourInterpolationOpts>): (amount: number) => Colour;
2397
- /**
2398
- * Produces a stepped scale of colours.
2399
- *
2400
- * Builds off {@link createSteps} which can only step between two colours.
2401
- *
2402
- * ```js
2403
- * // A scale of from red to green, with three colours in-between
2404
- * const steps = Colour.scale([ `red`, `green` ], { stepsBetween: 3 });
2405
- * for (const step of steps) {
2406
- * // A CSS colour string
2407
- * }
2408
- * ```
2409
- *
2410
- * {@link cssLinearGradient} can produce a smooth gradient in CSS on the basis
2411
- * of the stepped colours.
2412
- * @param colours
2413
- * @param opts
2414
- * @returns Array of colours in string form
2415
- */
2416
- declare function scale(colours: Colourish[], opts?: Partial<ColourStepOpts>): string[];
2417
- type CreateStepsOptions = Partial<{
2418
- space: ColourSpaces;
2419
- steps: number;
2420
- direction: `longer` | `shorter`;
2421
- exclusive: boolean;
2422
- }>;
2423
- /**
2424
- * Creates discrete colour steps between two colours.
2425
- *
2426
- * Use {@link scale} to create steps between any number of colours.
2427
- *
2428
- * Start and end colours are included (and counted as a step) unless `exclusive` is set to _true_
2429
- *
2430
- * ```js
2431
- * // Array of five HslScalar
2432
- * createSteps(`red`,`blue`, { steps: 5 });
2433
- * ```
2434
- *
2435
- * Defaults to the oklch colour space, 5 steps and non-exclusive.
2436
- * @param a Start colour
2437
- * @param b End colour
2438
- * @param options
2439
- * @returns Colour steps
2440
- */
2441
- declare function createSteps<T extends CreateStepsOptions>(a: Colourish | string, b: Colourish, options: T): T extends {
2442
- space: `oklch`;
2443
- } ? OkLchScalar[] : T extends {
2444
- space: `srgb`;
2445
- } ? RgbScalar[] : T extends {
2446
- space: `hsl`;
2447
- } ? HslScalar[] : OkLchScalar[]; //#endregion
2448
- //#region src/colour/math.d.ts
2449
- declare function multiplyOpacity<T extends Colourish>(colourish: T, amount: number): T extends string ? string : T extends Hsl ? Hsl : T extends OkLch ? OkLch : T extends Rgb ? Rgb : never;
2450
- /**
2451
- * Does a computation with the opacity of a colour, returning colour string
2452
- * @param colourish Colour
2453
- * @param fn Function that takes original opacity as input and returns output opacity
2454
- */
2455
- /**
2456
- * Does a computation with the opacity of a colour in a HSL structure
2457
- * @param hsl Colour
2458
- * @param fn Function that takes original opacity as input and returns output opacity
2459
- */
2460
- /**
2461
- * Does a computation with the opacity of a colour in a RGB structure
2462
- * @param colourish Colour
2463
- * @param fn Function that takes original opacity as input and returns output opacity
2464
- */
2465
- declare function withOpacity$2<T extends Colourish>(colourish: T, fn: (scalarOpacity: number) => number): T extends string ? string : T extends Hsl ? Hsl : T extends OkLch ? OkLch : T extends Rgb ? Rgb : never;
2466
- declare function setOpacity<T extends Colourish>(colourish: T, amount: number): T extends string ? string : T extends Hsl ? Hsl : T extends OkLch ? OkLch : T extends Rgb ? Rgb : never;
2467
- declare namespace oklch_d_exports {
2468
- export { OKLCH_CHROMA_MAX, absolute, fromCss$2 as fromCss, fromHexString$2 as fromHexString, fromLibrary, generateScalar, guard$2 as guard, interpolator$1 as interpolator, scalar$2 as scalar, toAbsolute, toCssString$1 as toCssString, toHexString$2 as toHexString, toScalar$2 as toScalar, withOpacity$1 as withOpacity };
2469
- }
2470
- declare const OKLCH_CHROMA_MAX = .4;
2471
- declare function guard$2(lch: OkLch): void;
2472
- /**
2473
- * Coverts from the Colorizr library
2474
- * Tests ranges:
2475
- * l: 0..1
2476
- * c: 0..1
2477
- * h: 0..360
2478
- * alpha: 0..1
2479
- *
2480
- * Default option: { scalar: true }
2481
- * @param lch LCH value
2482
- * @param parsingOptions Options for parsing
2483
- */
2484
- declare function fromLibrary<T extends ParsingOptions<OkLch>>(lch: LCH, parsingOptions: T): T extends {
2485
- scalar: true;
2486
- } ? OkLchScalar : OkLchAbsolute;
2487
- /**
2488
- * Parse a HEX-formatted colour into OkLch structured format
2489
- * @param hexString
2490
- * @param options
2491
- */
2492
- declare function fromHexString$2(hexString: string, options?: ParsingOptions<OkLch>): OkLch;
2493
- /**
2494
- * Converts from some CSS-representation of colour to a structured OkLch format.
2495
- *
2496
- * ```js
2497
- * fromCss(`yellow`);
2498
- * fromCss(`rgb(100,200,90)`);
2499
- * fromCss(`#ff00ff`);
2500
- * ```
2501
- *
2502
- * By default returns a {@link OkLchScalar} (relative) representation. Use the flag 'scalar:true' to get back
2503
- * {@link OkLchAbsolute}.
2504
- * @param value
2505
- * @param options
2506
- */
2507
- declare function fromCss$2<T extends ParsingOptions<OkLch>>(value: string, options: T): T extends {
2508
- scalar: true;
2509
- } ? OkLchScalar : OkLchAbsolute;
2510
- /**
2511
- * Returns a string or {@link OkLch} value to absolute form.
2512
- *
2513
- * This means ranges are:
2514
- * lightness: 0..1
2515
- * chroma: 0...CHROMA_MAX (0.4)
2516
- * hue: 0..360
2517
- * @param lchOrString
2518
- */
2519
- declare function toAbsolute(lchOrString: OkLch | string): OkLchAbsolute;
2520
- declare function toScalar$2(lchOrString: OkLch | string): OkLchScalar;
2521
- /**
2522
- * Returns the colour as a CSS colour string: `oklch(l c h / opacity)`.
2523
- *
2524
- * @param lch Colour
2525
- * @param precision Set precision of numbers, defaults to 3
2526
- * @returns CSS colour string
2527
- */
2528
- declare function toCssString$1(lch: OkLch, precision?: number): string;
2529
- declare function toHexString$2(lch: OkLch): string;
2530
- declare function generateScalar(absoluteHslOrVariable: string | number | Angle, chroma?: number, lightness?: number, opacity?: number): OkLchScalar;
2531
- /**
2532
- * Scales the opacity value of an input Oklch value
2533
- * ```js
2534
- * withOpacity()
2535
- * ```
2536
- * @param value
2537
- * @param fn
2538
- */
2539
- declare function withOpacity$1<T extends OkLch>(value: T, fn: (opacityScalar: number, value: T) => number): T;
2540
- declare function interpolator$1(a: OkLch | string, b: OkLch | string, direction?: `longer` | `shorter`): (amount: number) => OkLchScalar;
2541
- declare function scalar$2(lightness?: number, chroma?: number, hue?: number, opacity?: number): OkLchScalar;
2542
- /**
2543
- * Create an LCH colour using absolute hue
2544
- * @param l Lightness 0..1
2545
- * @param c Chroma 0..4
2546
- * @param h Hue 0..360
2547
- * @param opacity
2548
- */
2549
- declare function absolute(l: number, c: number, h: number, opacity?: number): OkLchAbsolute;
2550
- declare namespace srgb_d_exports {
2551
- export { changeLightness, eightBit$1 as eightBit, fromCss$1 as fromCss, fromHexString$1 as fromHexString, guard$1 as guard, interpolator, lightness, parseCssRgbFunction, scalar$1 as scalar, to8bit$1 as to8bit, toCssString, toHexString$1 as toHexString, toLibraryHsl, toScalar$1 as toScalar, withOpacity };
2552
- }
2553
- declare function withOpacity<T extends Rgb>(value: T, fn: (opacityScalar: number, value: T) => number): T;
2554
- declare function fromHexString$1<T extends boolean>(hexString: string, scalar: T): T extends true ? RgbScalar : Rgb8Bit;
2555
- declare function fromCss$1<T extends ParsingOptions<Rgb>>(value: string, options: T): T extends {
2556
- scalar: true;
2557
- } ? RgbScalar : Rgb8Bit;
2558
- declare function toHexString$1(rgb: Rgb): string;
2559
- declare function toCssString(rgb: Rgb): string;
2560
- declare function to8bit$1(rgbOrString: Rgb | string): Rgb8Bit;
2561
- declare function toScalar$1(rgbOrString: Rgb | Hsl | string): RgbScalar;
2562
- declare function guard$1(rgb: Rgb): void;
2563
- /**
2564
- * Sets the lightness value.
2565
- *
2566
- * Amount to change:
2567
- * 'fixed': a fixed amount
2568
- * 'delta': increase/decrease by this amount
2569
- * 'pdelta': proportion of current value to change by ('percentage delta')
2570
- *
2571
- * Use negative values to decrease
2572
- * @param rgb Colour
2573
- * @param amount Amount to change
2574
- */
2575
- declare function changeLightness(rgb: Rgb, amount: Partial<{
2576
- pdelta: number;
2577
- delta: number;
2578
- fixed: number;
2579
- }>): Rgb;
2580
- /**
2581
- * Returns a lightness value (0..1) for an RGB input
2582
- *
2583
- * Calculates lightness by converting to Oklab and using the 'L' value
2584
- * @param rgb
2585
- */
2586
- declare function lightness(rgb: Rgb): number;
2587
- /**
2588
- * Creates a Rgb8Bit value from 8bit (0..255) values
2589
- * @param red
2590
- * @param green
2591
- * @param blue
2592
- * @param opacity
2593
- */
2594
- declare function eightBit$1(red?: number, green?: number, blue?: number, opacity?: number): Rgb8Bit;
2595
- /**
2596
- * Creates a RgbScalar value from scalar (0..1) values
2597
- * @param red
2598
- * @param green
2599
- * @param blue
2600
- * @param opacity
2601
- */
2602
- declare function scalar$1(red?: number, green?: number, blue?: number, opacity?: number): RgbScalar;
2603
- /**
2604
- * It seems Colorizr can't handle % values properly :'(
2605
- * @param value
2606
- */
2607
- declare function parseCssRgbFunction(value: string): Rgb;
2608
- /**
2609
- * Interpolates colours in Srgb space. Probably
2610
- * really ugly, use OkLch space isntead.
2611
- *
2612
- * ```js
2613
- * const i = interpolator(`red`, `blue`);
2614
- * i(0.5); // Get 50% between these colours
2615
- * ```
2616
- * @param colourA
2617
- * @param colourB
2618
- */
2619
- declare function interpolator(colourA: Rgb | string, colourB: Rgb | string): (amount: number) => RgbScalar;
2620
- /**
2621
- * Converts a Rgb structure (or CSS string) to Colorizr's HSL format
2622
- * @param rgb
2623
- */
2624
- declare function toLibraryHsl(rgb: Rgb | string): HSL; //#endregion
2625
- //#region src/colour/to-integer.d.ts
2626
- /**
2627
- * Encode 8-bit RGB values into a 24-bit value (0...16_777_215)
2628
- *
2629
- * Assumes RGB values are within 0..255 range
2630
- * @param rgb
2631
- * @returns
2632
- */
2633
- declare function encodeRgbTo24Bit(rgb: Rgb8Bit | RgbBase): number;
2634
- /**
2635
- * Decode a 24-bit number (0...16_777_215) into 8-bit RGB
2636
- * @param colour
2637
- * @returns
2638
- */
2639
- declare function decodeRgbFrom24Bit(colour: number): Rgb8Bit;
2640
- /**
2641
- * Encodes 8-bit RGB value into 16-bit RGB565 (0..65_535)
2642
- * 5-bit are used for R & B channels, 6 bits for G
2643
- *
2644
- * Read more: https://rgbcolorpicker.com/565
2645
- * @param rgb
2646
- * @returns
2647
- */
2648
- declare function encodeRgbTo16Bit565(rgb: Rgb8Bit | RgbBase): number;
2649
- /**
2650
- * Decodes 8-bit RGB value from a 16-bit RGB565 value (0...65_535)
2651
- * Read more: https://rgbcolorpicker.com/565
2652
- * @param colour
2653
- * @returns
2654
- */
2655
- declare function decodeRgbFrom16Bit565(colour: number): Rgb8Bit;
2656
- declare namespace ycbcr_d_exports {
2657
- export { eightBit, fromCss, fromHexString, fromSrgTo8bit, guard, scalar, to8bit, toHexString, toScalar, toSrgb8bit };
2658
1619
  }
2659
- /**
2660
- * Creates a YCbCr8bit value from 8bit (0..255) values
2661
- * @param y Luma 0..255
2662
- * @param cb Chroma blue 0..255
2663
- * @param cr Chroma red 0..255
2664
- * @param opacity 0..255
2665
- * @returns YCbCr8bit
2666
- */
2667
- declare function eightBit(y?: number, cb?: number, cr?: number, opacity?: number): YCbCr8bit;
2668
- /**
2669
- * Creates a YCbCr8bit value from scalar (0..1) values
2670
- * @param y Luma 0..1
2671
- * @param cb Chroma blue 0..1
2672
- * @param cr Chroma red 0..1
2673
- * @param opacity 0..1
2674
- * @returns YCbCrScalar
2675
- */
2676
- declare function scalar(y?: number, cb?: number, cr?: number, opacity?: number): YCbCrScalar;
2677
- /**
2678
- * Converts from scalar or 8bit RGB to YCbCr8bit
2679
- * @param rgb
2680
- * @returns
2681
- */
2682
- declare function fromSrgTo8bit(rgb: Rgb): YCbCr8bit;
2683
- declare function toSrgb8bit(ycbcr: YCbCr): Rgb8Bit;
2684
- /**
2685
- * Returns a YCbCr8bit format from either scalar or 8bit.
2686
- * If the input is already 8bit, it is returned as-is.
2687
- * @param ycbcr 8bit or scalar YCbCr value
2688
- * @returns YCbCr8bit
2689
- */
2690
- declare function to8bit(ycbcr: YCbCr): YCbCr8bit;
2691
- declare function fromHexString<T extends ParsingOptions<YCbCr>>(hexString: string, scalar: T): T extends {
2692
- scalar: true;
2693
- } ? YCbCrScalar : YCbCr8bit;
2694
- declare function fromCss<T extends ParsingOptions<YCbCr>>(value: string, options: T): T extends {
2695
- scalar: true;
2696
- } ? YCbCrScalar : YCbCr8bit;
2697
- declare function toScalar(colour: YCbCr | Rgb | string): YCbCrScalar;
2698
- declare function guard(rgb: YCbCr): void;
2699
- /**
2700
- * Converts a YCbCr colour to a RGB hex string.
2701
- * @param ycbcr
2702
- * @returns
2703
- */
2704
- declare function toHexString(ycbcr: YCbCr): string;
2705
- declare namespace index_d_exports$1 {
2706
- export { Colour, ColourInterpolationOpts, ColourInterpolator, ColourSpaces, ColourStepOpts, Colourish, ConvertDestinations, CreateStepsOptions, CssColourNames, Hsl, HslAbsolute, HslBase, HslScalar, hsl_d_exports as HslSpace, LchBase, OkLch, OkLchAbsolute, OkLchBase, OkLchScalar, oklch_d_exports as OklchSpace, ParsingOptions, Rgb, Rgb8Bit, RgbBase, RgbScalar, srgb_d_exports as SrgbSpace, YCbCr, YCbCr8bit, YCbCrBase, YCbCrScalar, ycbcr_d_exports as YCbCrSpace, convert, convertScalar, convertToString, createSteps, cssDefinedHexColours, cssLinearGradient, decodeRgbFrom16Bit565, decodeRgbFrom24Bit, encodeRgbTo16Bit565, encodeRgbTo24Bit, fromCssColour, goldenAngleColour, guard$4 as guard, interpolator$2 as interpolator, interpolatorDual, interpolatorDualToString, isColourish, isHsl, isOkLch, isRgb, multiplyOpacity, randomHue, resolveCss, rgbToHsl, scale, setOpacity, toColour, toCssColour, toHexColour, toLibraryColour, toStringFirst, tryParseObjectToHsl, tryParseObjectToRgb, withOpacity$2 as withOpacity };
2707
- } //#endregion
2708
1620
  //#endregion
2709
1621
  //#region src/mixins/labelled-input-base.d.ts
2710
1622
  declare abstract class LabelledInputBase extends LitElement {
@@ -2740,7 +1652,7 @@ declare abstract class LabelledInputBase extends LitElement {
2740
1652
  value: number;
2741
1653
  }>) => void;
2742
1654
  protected _syncValue(v: number): void;
2743
- protected _renderEditableNumber(): TemplateResult<1> | typeof nothing;
1655
+ protected _renderEditableNumber(): typeof nothing | TemplateResult<1>;
2744
1656
  updated(changedProperties: Map<string, unknown>): void;
2745
1657
  }
2746
1658
  //#endregion
@@ -2751,7 +1663,10 @@ declare class LabelledRangeInput extends LabelledInputBase {
2751
1663
  tooltip: boolean;
2752
1664
  noTooltip: boolean;
2753
1665
  tooltipOrientation: `top` | `right`;
1666
+ /** Pass-through: enables wheel-on-hover for the inner slider and editable-number. */
1667
+ lighttouch: boolean;
2754
1668
  switchHeight: number;
1669
+ protected _renderEditableNumber(): TemplateResult<1>;
2755
1670
  render(): TemplateResult<1>;
2756
1671
  static styles: CSSResultGroup;
2757
1672
  }
@@ -2759,7 +1674,7 @@ declare global {
2759
1674
  interface HTMLElementTagNameMap {
2760
1675
  'ixfx-labelled-range-input': LabelledRangeInput;
2761
1676
  }
2762
- } //# sourceMappingURL=labelled-range-input.d.ts.map
1677
+ }
2763
1678
  //#endregion
2764
1679
  //#region src/colour-picker/colour-picker.d.ts
2765
1680
  declare class ColourPicker extends LitElement {
@@ -2798,7 +1713,7 @@ declare class ColourPicker extends LitElement {
2798
1713
  * HSL object, etc.). Also updates the double-click reset defaults for all
2799
1714
  * sliders.
2800
1715
  */
2801
- setColour(colour: index_d_exports$1.Colourish): void;
1716
+ setColour(colour: Colour.Colourish): void;
2802
1717
  get rangeL(): Range;
2803
1718
  set rangeL(range: RangeInput$1);
2804
1719
  get rangeC(): Range;
@@ -2834,7 +1749,7 @@ declare global {
2834
1749
  interface HTMLElementTagNameMap {
2835
1750
  'ixfx-colour-picker': ColourPicker;
2836
1751
  }
2837
- } //# sourceMappingURL=colour-picker.d.ts.map
1752
+ }
2838
1753
  //#endregion
2839
1754
  //#region src/colour-picker/colour-picker-popup.d.ts
2840
1755
  declare const PICKER_SIZES: {
@@ -2889,7 +1804,7 @@ declare class ColourPickerPopup extends LitElement {
2889
1804
  get value(): string;
2890
1805
  private get _innerHidePreview();
2891
1806
  private get _pickerDimensions();
2892
- setColour(colour: index_d_exports$1.Colourish): void;
1807
+ setColour(colour: Colour.Colourish): void;
2893
1808
  firstUpdated(changedProperties: PropertyValues): void;
2894
1809
  updated(changedProperties: PropertyValues): void;
2895
1810
  private _applyAnchorPositioning;
@@ -2986,12 +1901,19 @@ declare class DataController<TQuery, TItem> implements ReactiveController {
2986
1901
  //#endregion
2987
1902
  //#region src/common/types.d.ts
2988
1903
  type TreeItem = {
2989
- /** Unique identifier within the tree. */key: string; /** Visible label text. */
2990
- label: string; /** When true the node cannot have children and will not show an expand affordance. */
2991
- isLeaf?: boolean; /** Arbitrary application data associated with this node. */
2992
- data?: unknown; /** Icon name passed to an icon component, if icons are enabled. */
2993
- icon?: string; /** Tooltip text shown on hover. */
2994
- tooltip?: string; /** Optional string value, e.g. for use as a command/route. */
1904
+ /** Unique identifier within the tree. */
1905
+ key: string;
1906
+ /** Visible label text. */
1907
+ label: string;
1908
+ /** When true the node cannot have children and will not show an expand affordance. */
1909
+ isLeaf?: boolean;
1910
+ /** Arbitrary application data associated with this node. */
1911
+ data?: unknown;
1912
+ /** Icon name passed to an icon component, if icons are enabled. */
1913
+ icon?: string;
1914
+ /** Tooltip text shown on hover. */
1915
+ tooltip?: string;
1916
+ /** Optional string value, e.g. for use as a command/route. */
2995
1917
  value?: string;
2996
1918
  };
2997
1919
  /** A node in the tree, potentially containing lazily-loaded children. */
@@ -3058,7 +1980,8 @@ type RootEvent = {
3058
1980
  type ModelEvent = InvalidateEvent | RootEvent;
3059
1981
  type ModelSubscriber = (event: ModelEvent) => void;
3060
1982
  type TreeDataModelOptions = {
3061
- /** The initial root node. Required. */root: TreeNode;
1983
+ /** The initial root node. Required. */
1984
+ root: TreeNode;
3062
1985
  /**
3063
1986
  * Optional callback for lazily loading children.
3064
1987
  * If omitted, nodes with `children === undefined` are treated as empty branches.
@@ -3150,7 +2073,9 @@ declare class TreeDataModel {
3150
2073
  * Event name: `select`
3151
2074
  */
3152
2075
  type TreeSelectDetail = {
3153
- /** The new selection set. */readonly selected: ReadonlySet<TreeNode>; /** The previous selection set (empty set if there was no prior selection). */
2076
+ /** The new selection set. */
2077
+ readonly selected: ReadonlySet<TreeNode>;
2078
+ /** The previous selection set (empty set if there was no prior selection). */
3154
2079
  readonly previous: ReadonlySet<TreeNode>;
3155
2080
  };
3156
2081
  /**
@@ -3321,7 +2246,7 @@ type NarrowedTextItem = Readonly<{
3321
2246
  iconName?: string;
3322
2247
  }>;
3323
2248
  type NarrowedTextChangeDetail = {
3324
- readonly item: NarrowedTextItem;
2249
+ readonly item: NarrowedTextItem | undefined;
3325
2250
  readonly query: string;
3326
2251
  readonly selected: readonly NarrowedTextItem[];
3327
2252
  };
@@ -3346,18 +2271,22 @@ declare class NarrowedTextElement extends LitElement {
3346
2271
  height: string | undefined;
3347
2272
  preserveFilter: boolean;
3348
2273
  value: string;
2274
+ registry: CommandRegistry<unknown> | undefined;
3349
2275
  private _query;
3350
2276
  private _computedItems;
3351
2277
  private _filteredItems;
3352
2278
  private _isFocused;
3353
2279
  private _slot;
3354
2280
  private _selectedValues;
2281
+ private _ownedRegistry;
3355
2282
  private _search;
3356
2283
  private _searchState;
3357
2284
  private _unsubSearch;
3358
2285
  private tickled;
3359
2286
  get selected(): string | string[];
3360
2287
  set selected(value: string | string[]);
2288
+ selectAll(): void;
2289
+ deselectAll(): void;
3361
2290
  connectedCallback(): void;
3362
2291
  disconnectedCallback(): void;
3363
2292
  protected firstUpdated(): void;
@@ -3378,7 +2307,7 @@ declare global {
3378
2307
  interface HTMLElementTagNameMap {
3379
2308
  'ixfx-narrowed-text': NarrowedTextElement;
3380
2309
  }
3381
- } //# sourceMappingURL=narrowed-text.d.ts.map
2310
+ }
3382
2311
  //#endregion
3383
2312
  //#region src/crumbs/crumb-navigation.d.ts
3384
2313
  /** @deprecated Use TreeSelectDetail from src/common/tree-component.ts */
@@ -3441,6 +2370,7 @@ declare class CrumbNavigationElement extends LitElement implements TreeComponent
3441
2370
  depth: number;
3442
2371
  }>;
3443
2372
  updated(changedProps: PropertyValues): void;
2373
+ connectedCallback(): void;
3444
2374
  disconnectedCallback(): void;
3445
2375
  /** Navigate to a node by key path. Returns false if any key is not found in already-loaded children. */
3446
2376
  navigateTo(keys: readonly string[]): boolean;
@@ -3570,7 +2500,7 @@ declare global {
3570
2500
  interface HTMLElementTagNameMap {
3571
2501
  'ixfx-data-display': DataDisplayComponent;
3572
2502
  }
3573
- } //# sourceMappingURL=data-display.d.ts.map
2503
+ }
3574
2504
  //#endregion
3575
2505
  //#region src/editable-label/editable-label.d.ts
3576
2506
  type EditableMode = `label` | `editor`;
@@ -3642,14 +2572,43 @@ declare global {
3642
2572
  interface HTMLElementTagNameMap {
3643
2573
  'ixfx-editable-label': EditableLabel;
3644
2574
  }
3645
- } //# sourceMappingURL=editable-label.d.ts.map
2575
+ }
2576
+ //#endregion
2577
+ //#region src/mixins/wheel-nudge.d.ts
2578
+ /**
2579
+ * Direction of a wheel tick. `+1` for `deltaY < 0` (wheel up/away), `-1` for
2580
+ * `deltaY > 0` (wheel down/toward).
2581
+ */
2582
+ type WheelDirection = 1 | -1;
2583
+ /**
2584
+ * Abstract surface a consumer of {@link WheelNudgeMixin} must implement.
2585
+ *
2586
+ * `_applyWheelDelta` is called once per handled wheel tick. The consumer is
2587
+ * expected to reuse its existing arrow-key step math (typically a shared
2588
+ * `_stepByDelta(direction, effectiveStep)` private method) and call it here.
2589
+ *
2590
+ * `_shouldHandleWheel` may be overridden to restrict when the wheel acts
2591
+ * (e.g. editable-number rejects while the user is typing).
2592
+ */
2593
+ interface WheelNudgeConsumer {
2594
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
2595
+ _shouldHandleWheel(): boolean;
2596
+ }
2597
+ /**
2598
+ * Internal: the surface a {@link WheelNudgeMixin}-decorated class exposes to
2599
+ * TypeScript — its own members plus the consumer contract.
2600
+ */
2601
+ type WheelNudgeConsumerType<TBase> = TBase & WheelNudgeConsumer;
3646
2602
  //#endregion
3647
2603
  //#region src/editable-label/editable-number.d.ts
3648
- declare class EditableNumber extends EditableLabel {
2604
+ declare const EditableNumber_base: (new (...args: any[]) => WheelNudgeConsumerType<EditableLabel>) & typeof EditableLabel;
2605
+ declare class EditableNumber extends EditableNumber_base {
3649
2606
  #private;
3650
2607
  min?: number;
3651
2608
  max?: number;
3652
2609
  step?: number;
2610
+ /** Quantised stops for keyboard nudging. Overrides `step` when > 1. */
2611
+ stops?: number;
3653
2612
  dragSensitivity: number;
3654
2613
  fillStyle?: `linear` | `circular`;
3655
2614
  linearStyle?: `range` | `bipolar` | `unipolar`;
@@ -3680,6 +2639,13 @@ declare class EditableNumber extends EditableLabel {
3680
2639
  protected _handleKeydown: (e: KeyboardEvent) => void;
3681
2640
  private _onKeyDown;
3682
2641
  private _handleArrowKey;
2642
+ /**
2643
+ * Apply a signed delta to the current value, clamp/snap/format, and fire
2644
+ * `input`/`change`. Shared between arrow-key handler and the wheel handler.
2645
+ */
2646
+ private _applyDelta;
2647
+ _shouldHandleWheel(): boolean;
2648
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
3683
2649
  private _onPointerDown;
3684
2650
  private _onPointerMove;
3685
2651
  private _onPointerUp;
@@ -3703,7 +2669,7 @@ declare global {
3703
2669
  interface HTMLElementTagNameMap {
3704
2670
  'ixfx-editable-number': EditableNumber;
3705
2671
  }
3706
- } //# sourceMappingURL=editable-number.d.ts.map
2672
+ }
3707
2673
  //#endregion
3708
2674
  //#region src/vertical-list/types.d.ts
3709
2675
  type ListSelectionMode = `none` | `single` | `multiple`;
@@ -3884,7 +2850,7 @@ declare class GroupedItemListerElement<T = unknown> extends LitElement {
3884
2850
  connectedCallback(): void;
3885
2851
  disconnectedCallback(): void;
3886
2852
  protected updated(changed: PropertyValues): void;
3887
- protected render(): TemplateResult<1> | typeof nothing;
2853
+ protected render(): typeof nothing | TemplateResult<1>;
3888
2854
  }
3889
2855
  declare global {
3890
2856
  interface HTMLElementTagNameMap {
@@ -4167,7 +3133,8 @@ type TreeListAdapterOptions<T> = {
4167
3133
  * Returns the direct children of an item to build the tree hierarchy.
4168
3134
  * Omit for flat item lists — all items become leaf nodes at the root level.
4169
3135
  */
4170
- getChildren?: (item: T) => readonly T[]; /** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
3136
+ getChildren?: (item: T) => readonly T[];
3137
+ /** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
4171
3138
  interactionMode?: TreeInteractionMode;
4172
3139
  /**
4173
3140
  * Controls which node types are selectable.
@@ -4225,6 +3192,25 @@ declare class VerticalListElement extends LitElement {
4225
3192
  selectionMode: ListSelectionMode;
4226
3193
  interactionMode: ListInteractionMode;
4227
3194
  filterPredicate: ((el: Element) => boolean) | undefined;
3195
+ /**
3196
+ * Optional renderer for the checkbox shown in `checked` interactionMode.
3197
+ * Receives the current `checked` state and returns a Lit template result.
3198
+ *
3199
+ * When set, the per-row checkbox becomes a `<span role="checkbox">` whose
3200
+ * contents are whatever this returns (rendered with `lit`'s `render()`).
3201
+ * When unset, a native `<input type="checkbox">` is used.
3202
+ *
3203
+ * @example
3204
+ * list.checkboxRenderer = (checked) => checked
3205
+ * ? html`<svg viewBox="0 0 16 16" width="14" height="14"
3206
+ * fill="none" stroke="currentColor" stroke-width="2"
3207
+ * stroke-linecap="round" stroke-linejoin="round"
3208
+ * style="opacity:0.5">
3209
+ * <polyline points="3,8 7,12 13,4" />
3210
+ * </svg>`
3211
+ * : html``;
3212
+ */
3213
+ checkboxRenderer: ((checked: boolean) => unknown) | undefined;
4228
3214
  private _selectedItems;
4229
3215
  private _searchVisible;
4230
3216
  private _searchQuery;
@@ -4268,6 +3254,18 @@ declare class VerticalListElement extends LitElement {
4268
3254
  private _getVisibleItems;
4269
3255
  private _syncItemStates;
4270
3256
  private _syncCheckboxes;
3257
+ /**
3258
+ * Native checkbox cell: a span that stretches to the row's full cross-axis
3259
+ * (so the entire column height is a click target) with a real `<input>`
3260
+ * centred inside. The span owns the click; the input is purely visual and
3261
+ * has `pointer-events:none` so a single click produces one toggle.
3262
+ */
3263
+ private _createNativeCheckboxCell;
3264
+ /**
3265
+ * Custom checkbox cell: same shape as the native cell (a stretching span)
3266
+ * so behaviour is identical. The renderer's content goes inside.
3267
+ */
3268
+ private _createCustomCheckbox;
4271
3269
  private _findListItem;
4272
3270
  private _dispatch;
4273
3271
  private _openSearch;
@@ -4288,11 +3286,13 @@ declare global {
4288
3286
  'ixfx-vertical-list': VerticalListElement;
4289
3287
  }
4290
3288
  interface HTMLElementEventMap extends ListElementEventMap {}
4291
- } //# sourceMappingURL=vertical-list.d.ts.map
3289
+ }
4292
3290
  //#endregion
4293
3291
  //#region src/grouped-item-lister/vertical-list-adapter.d.ts
4294
3292
  type VerticalListAdapterOptions = {
4295
- /** 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'`. */
3293
+ /** Initial selection mode forwarded to the inner ixfx-vertical-list. Default: `'single'`. */
3294
+ selectionMode?: ListSelectionMode;
3295
+ /** Interaction mode forwarded to the inner ixfx-vertical-list. Default: `'standard'`. */
4296
3296
  interactionMode?: ListInteractionMode;
4297
3297
  /**
4298
3298
  * Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
@@ -4462,7 +3462,7 @@ declare global {
4462
3462
  interface HTMLElementTagNameMap {
4463
3463
  'ixfx-hex-editor': IxfxHexEditorElement;
4464
3464
  }
4465
- } //# sourceMappingURL=hex-editor.d.ts.map
3465
+ }
4466
3466
  //#endregion
4467
3467
  //#region src/icons/defaults.d.ts
4468
3468
  /**
@@ -4680,7 +3680,8 @@ type RadialInputInputEvent = CustomEvent<RadialInputInputDetail>;
4680
3680
  type RadialInputChangeEvent = CustomEvent<RadialInputChangeDetail>;
4681
3681
  //#endregion
4682
3682
  //#region src/radial-input/radial-input.d.ts
4683
- declare class RadialInputElement extends LitElement {
3683
+ declare const RadialInputElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
3684
+ declare class RadialInputElement extends RadialInputElement_base {
4684
3685
  #private;
4685
3686
  get radius(): number;
4686
3687
  set radius(v: number);
@@ -4705,6 +3706,7 @@ declare class RadialInputElement extends LitElement {
4705
3706
  removeLane(key: string): void;
4706
3707
  getLanes(): ReadonlyMap<string, LaneData>;
4707
3708
  getLane(key: string): LaneData | undefined;
3709
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
4708
3710
  protected willUpdate(changed: PropertyValues): void;
4709
3711
  render(): unknown;
4710
3712
  protected updated(changed: PropertyValues): void;
@@ -4716,7 +3718,7 @@ declare global {
4716
3718
  interface HTMLElementTagNameMap {
4717
3719
  'ixfx-radial-input': RadialInputElement;
4718
3720
  }
4719
- } //# sourceMappingURL=radial-input.d.ts.map
3721
+ }
4720
3722
  //#endregion
4721
3723
  //#region src/labelled-radial-input/labelled-radial-input.d.ts
4722
3724
  declare class LabelledRadialInput extends LabelledInputBase {
@@ -4731,10 +3733,12 @@ declare class LabelledRadialInput extends LabelledInputBase {
4731
3733
  tooltip: boolean;
4732
3734
  flip: boolean;
4733
3735
  aspectRatioThreshold: number;
3736
+ /** Pass-through: enables wheel-on-hover for the inner dial and editable-number. */
3737
+ lighttouch: boolean;
4734
3738
  private _isWide;
4735
3739
  private _getEffectivePrecision;
4736
3740
  protected _handleResize(entries: ResizeObserverEntry[]): void;
4737
- protected _renderEditableNumber(): TemplateResult<1> | typeof nothing;
3741
+ protected _renderEditableNumber(): typeof nothing | TemplateResult<1>;
4738
3742
  render(): TemplateResult<1>;
4739
3743
  private _getTooltipValue;
4740
3744
  static styles: CSSResultGroup;
@@ -4743,7 +3747,7 @@ declare global {
4743
3747
  interface HTMLElementTagNameMap {
4744
3748
  'ixfx-labelled-radial-input': LabelledRadialInput;
4745
3749
  }
4746
- } //# sourceMappingURL=labelled-radial-input.d.ts.map
3750
+ }
4747
3751
  //#endregion
4748
3752
  //#region src/led/led.d.ts
4749
3753
  declare class LedElement extends LitElement {
@@ -4763,7 +3767,7 @@ declare global {
4763
3767
  interface HTMLElementTagNameMap {
4764
3768
  "ixfx-led": LedElement;
4765
3769
  }
4766
- } //# sourceMappingURL=led.d.ts.map
3770
+ }
4767
3771
  //#endregion
4768
3772
  //#region src/menu/menu-bar.d.ts
4769
3773
  declare class MenuBar extends LitElement {
@@ -4785,7 +3789,7 @@ declare global {
4785
3789
  interface HTMLElementTagNameMap {
4786
3790
  'ixfx-menu-bar': MenuBar;
4787
3791
  }
4788
- } //# sourceMappingURL=menu-bar.d.ts.map
3792
+ }
4789
3793
  //#endregion
4790
3794
  //#region src/menu/menu-check-item.d.ts
4791
3795
  declare class MenuCheckItem extends LitElement {
@@ -4810,7 +3814,7 @@ declare global {
4810
3814
  interface HTMLElementTagNameMap {
4811
3815
  'ixfx-menu-check-item': MenuCheckItem;
4812
3816
  }
4813
- } //# sourceMappingURL=menu-check-item.d.ts.map
3817
+ }
4814
3818
  //#endregion
4815
3819
  //#region src/menu/menu-command-controller.d.ts
4816
3820
  declare class MenuCommandController {
@@ -4868,7 +3872,7 @@ declare global {
4868
3872
  interface HTMLElementTagNameMap {
4869
3873
  'ixfx-menu-sub-trigger': MenuSubTrigger;
4870
3874
  }
4871
- } //# sourceMappingURL=menu-sub-trigger.d.ts.map
3875
+ }
4872
3876
  //#endregion
4873
3877
  //#region src/menu/menu-separator.d.ts
4874
3878
  declare class MenuSeparator extends LitElement {
@@ -4879,7 +3883,7 @@ declare global {
4879
3883
  interface HTMLElementTagNameMap {
4880
3884
  'ixfx-menu-separator': MenuSeparator;
4881
3885
  }
4882
- } //# sourceMappingURL=menu-separator.d.ts.map
3886
+ }
4883
3887
  //#endregion
4884
3888
  //#region src/menu/menu-header.d.ts
4885
3889
  declare class MenuHeader extends LitElement {
@@ -4891,7 +3895,7 @@ declare global {
4891
3895
  interface HTMLElementTagNameMap {
4892
3896
  'ixfx-menu-header': MenuHeader;
4893
3897
  }
4894
- } //# sourceMappingURL=menu-header.d.ts.map
3898
+ }
4895
3899
  //#endregion
4896
3900
  //#region src/menu/menu-from-tree.d.ts
4897
3901
  type MenuFromTreeOptions = {
@@ -4917,7 +3921,7 @@ declare global {
4917
3921
  interface HTMLElementTagNameMap {
4918
3922
  'ixfx-menu-radio-item': MenuRadioItem;
4919
3923
  }
4920
- } //# sourceMappingURL=menu-radio-item.d.ts.map
3924
+ }
4921
3925
  //#endregion
4922
3926
  //#region src/menu/menu-radio-group.d.ts
4923
3927
  declare class MenuRadioGroup extends LitElement {
@@ -4935,7 +3939,7 @@ declare global {
4935
3939
  interface HTMLElementTagNameMap {
4936
3940
  'ixfx-menu-radio-group': MenuRadioGroup;
4937
3941
  }
4938
- } //# sourceMappingURL=menu-radio-group.d.ts.map
3942
+ }
4939
3943
  declare namespace index_d_exports {
4940
3944
  export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
4941
3945
  }
@@ -4947,7 +3951,9 @@ type MillerConfig = {
4947
3951
  };
4948
3952
  /** Detail for the `header-click` event fired when a column header is clicked. */
4949
3953
  type MillerHeaderClickDetail = {
4950
- /** Zero-based column index whose header was clicked. */depth: number; /** The header text (label of the column's parent node). */
3954
+ /** Zero-based column index whose header was clicked. */
3955
+ depth: number;
3956
+ /** The header text (label of the column's parent node). */
4951
3957
  label: string;
4952
3958
  /**
4953
3959
  * Ancestry chain from the root node down to (and including) the node
@@ -5197,7 +4203,7 @@ declare global {
5197
4203
  interface HTMLElementTagNameMap {
5198
4204
  'ixfx-miller-list': MillerListElement;
5199
4205
  }
5200
- } //# sourceMappingURL=miller-list.d.ts.map
4206
+ }
5201
4207
  //#endregion
5202
4208
  //#region src/miller/miller-tree-controller.d.ts
5203
4209
  type MillerTreeControllerOptions<T> = {
@@ -5255,6 +4261,98 @@ declare class MillerTreeController<T> {
5255
4261
  navigateToValue(predicate: (value: T) => boolean): boolean;
5256
4262
  }
5257
4263
  //#endregion
4264
+ //#region src/notifier/types.d.ts
4265
+ type NotificationType = `info` | `warning` | `error`;
4266
+ type NotificationContent = {
4267
+ readonly type: NotificationType;
4268
+ readonly message: string;
4269
+ readonly icon?: string;
4270
+ readonly onTap?: (id: string) => void;
4271
+ };
4272
+ type Notification = NotificationContent & {
4273
+ readonly id: string;
4274
+ readonly createdAt: number;
4275
+ readonly updatedAt: number;
4276
+ };
4277
+ interface NotificationRendererHooks {
4278
+ onTap: (id: string) => void;
4279
+ }
4280
+ interface NotificationRenderer {
4281
+ /** Called once when this renderer becomes active. */
4282
+ attach: (hooks: NotificationRendererHooks) => void;
4283
+ /** Called once if this renderer is swapped out for another at runtime. */
4284
+ detach?: () => void;
4285
+ /**
4286
+ * The manager's full, ranked view of currently-visible notifications
4287
+ * (index 0 = oldest/first, the one closest to eviction/dismissal).
4288
+ * Never longer than `queueSize`, since the manager evicts overflow itself.
4289
+ */
4290
+ setNotifications: (notifications: Notification[], queueSize: number) => void;
4291
+ }
4292
+ type NotifierOptions = {
4293
+ renderer?: NotificationRenderer;
4294
+ timeout?: number;
4295
+ timeoutError?: number;
4296
+ queue?: boolean;
4297
+ queueSize?: number;
4298
+ tapBehaviour?: `none` | `dismiss`;
4299
+ tapHandlerDefault?: (notification: Notification) => void;
4300
+ };
4301
+ //#endregion
4302
+ //#region src/notifier/notification-pill.d.ts
4303
+ type PillTapDetail = {
4304
+ readonly id: string;
4305
+ };
4306
+ type PillTapEvent = CustomEvent<PillTapDetail>;
4307
+ interface NotificationPillElementEventMap {
4308
+ 'pill-tap': PillTapEvent;
4309
+ }
4310
+ declare class NotificationPillElement extends LitElement {
4311
+ #private;
4312
+ notificationType: NotificationType;
4313
+ message: string;
4314
+ icon?: string;
4315
+ dismissing: boolean;
4316
+ notificationId: string;
4317
+ protected render(): TemplateResult<1>;
4318
+ static styles: CSSResult[];
4319
+ }
4320
+ declare global {
4321
+ interface HTMLElementTagNameMap {
4322
+ 'ixfx-notification-pill': NotificationPillElement;
4323
+ }
4324
+ }
4325
+ interface NotificationPillElement {
4326
+ addEventListener: (<K extends keyof NotificationPillElementEventMap>(type: K, listener: (this: NotificationPillElement, event: NotificationPillElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
4327
+ }
4328
+ //#endregion
4329
+ //#region src/notifier/manager.d.ts
4330
+ declare const NotificationManager: {
4331
+ configure(opts: NotifierOptions): void;
4332
+ notify(content: NotificationContent): string;
4333
+ update(id: string, content: Partial<NotificationContent>): void;
4334
+ dismiss(id: string): void;
4335
+ dismissAll(): void;
4336
+ };
4337
+ //#endregion
4338
+ //#region src/notifier/pill-renderer.d.ts
4339
+ type PillPosition = `top-left` | `top-middle` | `top-right` | `bottom-left` | `bottom-middle` | `bottom-right`;
4340
+ type PillQueueDisplay = `list` | `stack`;
4341
+ interface PillSafeArea {
4342
+ readonly top?: number;
4343
+ readonly right?: number;
4344
+ readonly bottom?: number;
4345
+ readonly left?: number;
4346
+ }
4347
+ interface PillRendererOptions {
4348
+ position?: PillPosition;
4349
+ /** `list`: one row per message, oldest nearest the anchor edge. `stack`: only the front message is fully shown, the rest peek out behind it. Default `list`. */
4350
+ queueDisplay?: PillQueueDisplay;
4351
+ /** Extra margin (px) added to the default spacing on each side, letting pills avoid eg. a fixed header/footer/notch. */
4352
+ safeArea?: PillSafeArea;
4353
+ }
4354
+ declare function createPillRenderer(options?: PillRendererOptions): NotificationRenderer;
4355
+ //#endregion
5258
4356
  //#region src/panel/panel-group.d.ts
5259
4357
  type PanelGroupOrientation = `horizontal` | `vertical`;
5260
4358
  declare class PanelGroupElement extends LitElement {
@@ -5275,14 +4373,17 @@ declare global {
5275
4373
  interface HTMLElementTagNameMap {
5276
4374
  'ixfx-panel-group': PanelGroupElement;
5277
4375
  }
5278
- } //# sourceMappingURL=panel-group.d.ts.map
4376
+ }
5279
4377
  //#endregion
5280
4378
  //#region src/plots/colour-map.d.ts
5281
4379
  type ColourMode = `fixed` | `opacity` | `hue` | `saturation` | `lightness` | `scale`;
5282
4380
  type ColourMapConfig = {
5283
- mode: ColourMode; /** Parsed colours for 'scale' mode. Must have ≥ 2 entries. */
5284
- palette: string[]; /** ixfx easing name applied before the colour mode mapping. Takes precedence over valueMap. */
5285
- easingName: string; /** Custom value mapping fn (0..1 → 0..1). Used when easingName is empty. */
4381
+ mode: ColourMode;
4382
+ /** Parsed colours for 'scale' mode. Must have 2 entries. */
4383
+ palette: string[];
4384
+ /** ixfx easing name — applied before the colour mode mapping. Takes precedence over valueMap. */
4385
+ easingName: string;
4386
+ /** Custom value mapping fn (0..1 → 0..1). Used when easingName is empty. */
5286
4387
  valueMap: ((v: number) => number) | null;
5287
4388
  };
5288
4389
  type ColourResult = {
@@ -5560,6 +4661,12 @@ interface PlotMultiAxis {
5560
4661
  //#endregion
5561
4662
  //#region src/plots/plot-histogram.d.ts
5562
4663
  type PlotHistogramOrientation = `horizontal` | `vertical`;
4664
+ /**
4665
+ * - `hover`: floating `ixfx-tooltip` bubble, shown/hidden with a debounce delay.
4666
+ * - `inline`: the title overlay-text switches to the hovered bucket's value, instantly.
4667
+ * - `none`: no hover feedback.
4668
+ */
4669
+ type PlotHistogramValueTooltips = `hover` | `inline` | `none`;
5563
4670
  type PlotHistogramBucketClickDetail = {
5564
4671
  readonly bucketIndex: number;
5565
4672
  readonly valueMin: number;
@@ -5577,15 +4684,30 @@ declare class PlotHistogram extends LitElement {
5577
4684
  min?: number;
5578
4685
  max?: number;
5579
4686
  capacity: number;
4687
+ /**
4688
+ * Fallback overlay-text, shown when nothing is hovered.
4689
+ * Not reflected to the native `title` attribute, so the browser's own hover tooltip doesn't show.
4690
+ */
5580
4691
  title: string;
5581
4692
  paused: boolean;
4693
+ /** How hovering a bucket is communicated: a floating tooltip, the inline overlay-text, or nothing. */
4694
+ valueTooltips: PlotHistogramValueTooltips;
4695
+ /** Delay (ms) before the `hover` tooltip appears/disappears. Switching directly between buckets is instant. */
4696
+ tooltipDelay: number;
4697
+ /** Max rate (ms) at which an already-shown value display refreshes to match live-changing bucket data. */
4698
+ valueUpdateInterval: number;
4699
+ /** Override to customize the value/frequency label used by the tooltip and overlay text. */
4700
+ valueFormat: (valueMin: number, valueMax: number, frequency: number) => string;
5582
4701
  private _width;
5583
4702
  private _height;
4703
+ private _hoveredIndex;
4704
+ private _inlineOverlayText;
5584
4705
  add(v: number): void;
5585
4706
  set(values: number[]): void;
5586
4707
  clear(): void;
5587
4708
  protected firstUpdated(_changed: PropertyValues): void;
5588
4709
  protected updated(changed: PropertyValues): void;
4710
+ disconnectedCallback(): void;
5589
4711
  render(): TemplateResult<1>;
5590
4712
  static styles: CSSResult;
5591
4713
  }
@@ -5636,10 +4758,11 @@ declare global {
5636
4758
  interface HTMLElementTagNameMap {
5637
4759
  'ixfx-plot-xy-axis': PlotXyAxis;
5638
4760
  }
5639
- } //# sourceMappingURL=xy-axis.d.ts.map
4761
+ }
5640
4762
  //#endregion
5641
4763
  //#region src/polar-pad/polar-pad.d.ts
5642
- declare class PolarPad extends LitElement {
4764
+ declare const PolarPad_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
4765
+ declare class PolarPad extends PolarPad_base {
5643
4766
  static styles: CSSResult[];
5644
4767
  /** Current angle in degrees. 0 = right, increases clockwise. */
5645
4768
  angle: number;
@@ -5665,6 +4788,10 @@ declare class PolarPad extends LitElement {
5665
4788
  stopsAngle?: number;
5666
4789
  /** Number of quantised stops for radius. If set, overrides the stops setting for radius. */
5667
4790
  stopsRadius?: number;
4791
+ /** Explicit keyboard nudge step for angle (degrees). Overrides the 10% default. */
4792
+ stepAngle?: number;
4793
+ /** Explicit keyboard nudge step for radius (0..1 units). Overrides the 10% default. */
4794
+ stepRadius?: number;
5668
4795
  private _dragging;
5669
4796
  private _dragStartAngle;
5670
4797
  private _dragStartRadius;
@@ -5678,6 +4805,13 @@ declare class PolarPad extends LitElement {
5678
4805
  private _onKeyDown;
5679
4806
  private _onKeyUp;
5680
4807
  private _handleKeyboardMove;
4808
+ /**
4809
+ * Apply a radius nudge by direction. Wheel affects radius only (matches the
4810
+ * keyboard `ArrowUp`/`ArrowDown` semantic per `plans/mousewheel.md`); the
4811
+ * angle is unchanged.
4812
+ */
4813
+ private _stepRadiusByDelta;
4814
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
5681
4815
  private _setCssVars;
5682
4816
  updated(_changed: PropertyValues): void;
5683
4817
  disconnectedCallback(): void;
@@ -5698,13 +4832,14 @@ declare global {
5698
4832
  interface HTMLElementTagNameMap {
5699
4833
  'ixfx-polar-pad': PolarPad;
5700
4834
  }
5701
- } //# sourceMappingURL=polar-pad.d.ts.map
4835
+ }
5702
4836
  //#endregion
5703
4837
  //#region src/util/tooltip.d.ts
5704
4838
  type FormatValueForHuman = (v: unknown) => string;
5705
4839
  type TooltipOrientations = `top` | `right` | `bottom` | `left`;
5706
4840
  declare class TooltipElement extends LitElement {
5707
4841
  #private;
4842
+ connectedCallback(): void;
5708
4843
  static numberFormatter: (v: number) => string;
5709
4844
  static defaultFormatter: FormatValueForHuman;
5710
4845
  valueFormatTooltip: FormatValueForHuman;
@@ -5719,10 +4854,11 @@ declare global {
5719
4854
  interface HTMLElementTagNameMap {
5720
4855
  "ixfx-tooltip": TooltipElement;
5721
4856
  }
5722
- } //# sourceMappingURL=tooltip.d.ts.map
4857
+ }
5723
4858
  //#endregion
5724
4859
  //#region src/range-input/range-input.d.ts
5725
- declare class RangeInput extends LitElement {
4860
+ declare const RangeInput_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
4861
+ declare class RangeInput extends RangeInput_base {
5726
4862
  min: number;
5727
4863
  max: number;
5728
4864
  value: number;
@@ -5749,6 +4885,16 @@ declare class RangeInput extends LitElement {
5749
4885
  _handleInput: (e: Event) => void;
5750
4886
  _formatTooltipLabel(): string;
5751
4887
  _handleChange: () => void;
4888
+ /**
4889
+ * Wheel handler — installed by WheelNudgeMixin on the host. Synthesises a
4890
+ * value change by writing to the inner `<input type="range">` and dispatching
4891
+ * `input` + `change`, so the existing `_handleInput` and `_handleChange`
4892
+ * handlers run unchanged and re-bubble the events to listeners.
4893
+ *
4894
+ * Native wheel handling is left intact for the focused-inner-input case;
4895
+ * the host listener fires under `lighttouch` or when focus is on the host.
4896
+ */
4897
+ _applyWheelDelta(direction: WheelDirection, _event: WheelEvent): void;
5752
4898
  render(): TemplateResult<1>;
5753
4899
  static styles: CSSResultGroup;
5754
4900
  }
@@ -5756,7 +4902,7 @@ declare global {
5756
4902
  interface HTMLElementTagNameMap {
5757
4903
  'ixfx-range-input': RangeInput;
5758
4904
  }
5759
- } //# sourceMappingURL=range-input.d.ts.map
4905
+ }
5760
4906
  //#endregion
5761
4907
  //#region src/range/range-multi.d.ts
5762
4908
  type Endpoints = `a` | `b`;
@@ -5816,10 +4962,11 @@ declare global {
5816
4962
  interface HTMLElementTagNameMap {
5817
4963
  "ixfx-range-multi": RangeMultiElement;
5818
4964
  }
5819
- } //# sourceMappingURL=range-multi.d.ts.map
4965
+ }
5820
4966
  //#endregion
5821
4967
  //#region src/range/range.d.ts
5822
- declare class RangeElement extends LitElement {
4968
+ declare const RangeElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
4969
+ declare class RangeElement extends RangeElement_base {
5823
4970
  #private;
5824
4971
  tooltip: boolean;
5825
4972
  tooltipOrientation: TooltipOrientations;
@@ -5831,6 +4978,16 @@ declare class RangeElement extends LitElement {
5831
4978
  get value(): number;
5832
4979
  step: number;
5833
4980
  onRangeInput(event: InputEvent): void;
4981
+ /**
4982
+ * Wheel handler — installed by WheelNudgeMixin on the host. Synthesises a
4983
+ * value change by writing to the inner `<input type="range">` and dispatching
4984
+ * `input` + `change`, so the existing `onRangeInput` handler runs unchanged.
4985
+ *
4986
+ * The native input still responds to wheel when focused (focus rule wins by
4987
+ * default). The host handler fires when `lighttouch` is set or when the host
4988
+ * itself has focus, ensuring Shift-aware step math and consistent event firing.
4989
+ */
4990
+ _applyWheelDelta(direction: WheelDirection, _event: WheelEvent): void;
5834
4991
  protected render(): unknown;
5835
4992
  static styles: CSSResult[];
5836
4993
  }
@@ -5838,7 +4995,7 @@ declare global {
5838
4995
  interface HTMLElementMap {
5839
4996
  "ixfx-range": RangeElement;
5840
4997
  }
5841
- } //# sourceMappingURL=range.d.ts.map
4998
+ }
5842
4999
  //#endregion
5843
5000
  //#region src/selecthorizontal.d.ts
5844
5001
  declare class SelectHorizontalElement extends LitElement {
@@ -5850,7 +5007,163 @@ declare global {
5850
5007
  interface HTMLElementTagNameMap {
5851
5008
  "ixfx-selecthorizontal-element": SelectHorizontalElement;
5852
5009
  }
5853
- } //# sourceMappingURL=selecthorizontal.d.ts.map
5010
+ }
5011
+ //#endregion
5012
+ //#region src/slider-input/types.d.ts
5013
+ /**
5014
+ * Type definitions for slider-input component
5015
+ */
5016
+ type SliderOrientation = `horizontal` | `vertical`;
5017
+ type SliderMarkerStyle = `needle` | `dot` | `triangle` | `none`;
5018
+ type SliderSingleStyle = `range` | `bipolar` | `unipolar`;
5019
+ type SliderValueMode = `single` | `dual` | `triple`;
5020
+ type SliderCrossover = `none` | `allow`;
5021
+ type SliderValueDrag = `none` | `stop` | `flex`;
5022
+ /**
5023
+ * Behaviour for the middle (C) handle in triple mode when the A/B span
5024
+ * changes. `none` (default) keeps C in place and only clamps it when it
5025
+ * falls outside the new [A, B] band. `proportional` keeps C at the same
5026
+ * fractional position within the band as the band moves or resizes.
5027
+ */
5028
+ type SliderValueCFollow = `none` | `proportional`;
5029
+ type SliderLaneType = `value` | `fixed` | `anchored`;
5030
+ type SliderHandleKey = `a` | `b` | `c`;
5031
+ /**
5032
+ * Per-lane data. Mirrors radial-input's shape with the difference that
5033
+ * `type: 'value'` lanes track a *range* (valueMin/valueMax) rather than a
5034
+ * single value, while `type: 'anchored'` lanes keep a single value (0..1
5035
+ * length).
5036
+ */
5037
+ interface SliderLaneData {
5038
+ key: string;
5039
+ type: SliderLaneType;
5040
+ /**
5041
+ * Used when type === 'anchored': length (0..1) of the lane symmetrically
5042
+ * centered on the current value.
5043
+ */
5044
+ value?: number;
5045
+ /** Used when type === 'value': lower end of the lane band (0..1). */
5046
+ valueMin?: number;
5047
+ /** Used when type === 'value': upper end of the lane band (0..1). */
5048
+ valueMax?: number;
5049
+ /** Perpendicular offset from the track centreline (-1..1 scale relative to CROSS). */
5050
+ offset: number;
5051
+ /** Stroke thickness as a fraction of the CROSS dimension (0..1). */
5052
+ width: number;
5053
+ }
5054
+ /**
5055
+ * Identifies which field(s) of a dual/triple-mode detail changed.
5056
+ * `both` is reserved for length-drag (value-drag) gestures.
5057
+ */
5058
+ type SliderChangedField = `min` | `max` | `c` | `both`;
5059
+ /**
5060
+ * In single mode, `value` is the single handle's value and the min/max/c
5061
+ * fields are undefined. In dual/triple mode, `value` is set to `valueMax`
5062
+ * (the "B"/upper handle) for parity with native `<input type="range">`
5063
+ * two-thumb patterns where a single `value` is ambiguous — consumers
5064
+ * wanting min/max should use `valueMin`/`valueMax` directly.
5065
+ */
5066
+ interface SliderInputInputDetail {
5067
+ readonly value: number;
5068
+ readonly valueRelative: number;
5069
+ /** Lower handle value (dual/triple modes only). */
5070
+ readonly valueMin?: number;
5071
+ /** Upper handle value (dual/triple modes only). */
5072
+ readonly valueMax?: number;
5073
+ readonly valueMinRelative?: number;
5074
+ readonly valueMaxRelative?: number;
5075
+ /** Triple-mode middle handle value. */
5076
+ readonly valueC?: number;
5077
+ readonly valueCRelative?: number;
5078
+ /** Which field this particular event resulted from. */
5079
+ readonly changed?: SliderChangedField;
5080
+ }
5081
+ interface SliderInputChangeDetail {
5082
+ readonly value: number;
5083
+ readonly valueRelative: number;
5084
+ readonly previousValue: number;
5085
+ readonly valueMin?: number;
5086
+ readonly valueMax?: number;
5087
+ readonly previousValueMin?: number;
5088
+ readonly previousValueMax?: number;
5089
+ readonly valueC?: number;
5090
+ readonly previousValueC?: number;
5091
+ readonly changed?: SliderChangedField;
5092
+ }
5093
+ type SliderInputInputEvent = CustomEvent<SliderInputInputDetail>;
5094
+ type SliderInputChangeEvent = CustomEvent<SliderInputChangeDetail>;
5095
+ interface SliderInputElementEventMap {
5096
+ input: SliderInputInputEvent;
5097
+ change: SliderInputChangeEvent;
5098
+ }
5099
+ //#endregion
5100
+ //#region src/slider-input/slider-input.d.ts
5101
+ declare const SliderInputElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
5102
+ declare class SliderInputElement extends SliderInputElement_base {
5103
+ #private;
5104
+ valueA: number;
5105
+ valueB: number;
5106
+ /**
5107
+ * Triple-mode middle handle. `undefined` until first willUpdate, then
5108
+ * defaulted to the midpoint of valueA/valueB (matching radial-input's
5109
+ * deferred lane-correction pattern).
5110
+ */
5111
+ valueC: number | undefined;
5112
+ min: number;
5113
+ max: number;
5114
+ step: number | undefined;
5115
+ stops: number | undefined;
5116
+ valueMode: SliderValueMode;
5117
+ singleStyle: SliderSingleStyle;
5118
+ orientation: SliderOrientation;
5119
+ markerStyle: SliderMarkerStyle;
5120
+ /**
5121
+ * Optional marker-style override for the C handle in triple mode. Lets
5122
+ * consumers give C a different shape (e.g. dot) from the global
5123
+ * `markerStyle` applied to A/B.
5124
+ */
5125
+ markerStyleC: SliderMarkerStyle | undefined;
5126
+ crossover: SliderCrossover;
5127
+ valueDrag: SliderValueDrag;
5128
+ /**
5129
+ * In triple mode, how the C handle reacts when A or B moves the [A, B]
5130
+ * band. `none` (default): C keeps its value unless pushed outside the
5131
+ * new band. `proportional`: C is re-anchored at the same fractional
5132
+ * position it had within the *old* band, so it moves with A/B.
5133
+ */
5134
+ valueCFollow: SliderValueCFollow;
5135
+ valueMin: number;
5136
+ disabled: boolean;
5137
+ constructor();
5138
+ connectedCallback(): void;
5139
+ addLane(key: string, options?: {
5140
+ value?: number;
5141
+ valueMin?: number;
5142
+ valueMax?: number;
5143
+ type?: SliderLaneType;
5144
+ offset?: number;
5145
+ width?: number;
5146
+ }): void;
5147
+ setLaneValue(key: string, value: number): void;
5148
+ setLaneRange(key: string, valueMin: number, valueMax: number): void;
5149
+ removeLane(key: string): void;
5150
+ getLanes(): ReadonlyMap<string, SliderLaneData>;
5151
+ getLane(key: string): SliderLaneData | undefined;
5152
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
5153
+ protected willUpdate(changed: PropertyValues): void;
5154
+ render(): unknown;
5155
+ protected updated(changed: PropertyValues): void;
5156
+ disconnectedCallback(): void;
5157
+ static styles: CSSResult[];
5158
+ }
5159
+ declare global {
5160
+ interface HTMLElementTagNameMap {
5161
+ 'ixfx-slider-input': SliderInputElement;
5162
+ }
5163
+ }
5164
+ interface SliderInputElement {
5165
+ addEventListener: (<K extends keyof SliderInputElementEventMap>(type: K, listener: (this: SliderInputElement, event: SliderInputElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
5166
+ }
5854
5167
  //#endregion
5855
5168
  //#region src/snap-container/snap-container.d.ts
5856
5169
  type SnapLogic = `centre` | `balanced`;
@@ -5895,7 +5208,7 @@ declare global {
5895
5208
  interface HTMLElementTagNameMap {
5896
5209
  'ixfx-snap-container': SnapContainer;
5897
5210
  }
5898
- } //# sourceMappingURL=snap-container.d.ts.map
5211
+ }
5899
5212
  //#endregion
5900
5213
  //#region src/split-layout/split-layout.d.ts
5901
5214
  /**
@@ -5946,7 +5259,7 @@ declare global {
5946
5259
  interface HTMLElementTagNameMap {
5947
5260
  "ixfx-split-layout": SplitLayoutElement;
5948
5261
  }
5949
- } //# sourceMappingURL=split-layout.d.ts.map
5262
+ }
5950
5263
  //#endregion
5951
5264
  //#region src/swipe/swipe.d.ts
5952
5265
  type SwipeInputDetail = {
@@ -5964,7 +5277,8 @@ declare global {
5964
5277
  'ixfx-swipe': SwipeElement;
5965
5278
  }
5966
5279
  }
5967
- declare class SwipeElement extends LitElement {
5280
+ declare const SwipeElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
5281
+ declare class SwipeElement extends SwipeElement_base {
5968
5282
  #private;
5969
5283
  barSpacing: number;
5970
5284
  barWidth: number;
@@ -5983,6 +5297,15 @@ declare class SwipeElement extends LitElement {
5983
5297
  private _animStartOffset;
5984
5298
  private _animStartTime;
5985
5299
  private _resizeObserver;
5300
+ /**
5301
+ * Wheel handler — installed by WheelNudgeMixin on the host. Emits `input`
5302
+ * synchronously on each tick (matching the user-confirmed "mirror drag"
5303
+ * semantic) and schedules the same retraction animation the drag releases
5304
+ * with, so the visual resets after a short idle.
5305
+ *
5306
+ * Step size: 10% of the [-1, 1] value range (= 0.1). Shift halves to 0.05.
5307
+ */
5308
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
5986
5309
  connectedCallback(): void;
5987
5310
  disconnectedCallback(): void;
5988
5311
  private _onPointerDown;
@@ -6020,12 +5343,13 @@ declare global {
6020
5343
  interface HTMLElementTagNameMap {
6021
5344
  "ixfx-tab-list-item": TabListItemElement;
6022
5345
  }
6023
- } //# sourceMappingURL=tab-list-item.d.ts.map
5346
+ }
6024
5347
  //#endregion
6025
5348
  //#region src/tabs/tab-list.d.ts
6026
5349
  /**
6027
5350
  * Events
6028
5351
  * 'change' - new tab selected { previous:string, selected:string, for:string }
5352
+ * 'reorder' - tab moved within the list { id:string, fromIndex:number, toIndex:number }
6029
5353
  */
6030
5354
  type TabListChangeDetail = {
6031
5355
  readonly previous: string | undefined;
@@ -6033,11 +5357,19 @@ type TabListChangeDetail = {
6033
5357
  readonly for: string;
6034
5358
  };
6035
5359
  type TabListChangeEvent = CustomEvent<TabListChangeDetail>;
5360
+ type TabListReorderDetail = {
5361
+ readonly id: string;
5362
+ readonly fromIndex: number;
5363
+ readonly toIndex: number;
5364
+ };
5365
+ type TabListReorderEvent = CustomEvent<TabListReorderDetail>;
5366
+ type TabListDragMode = `off` | `reorder`;
6036
5367
  declare class TabListElement extends LitElement {
6037
5368
  #private;
6038
5369
  orientation: `horizontal` | `vertical-stack` | `vertical-side`;
6039
5370
  flip: boolean;
6040
5371
  scrollable: boolean;
5372
+ dragMode: TabListDragMode;
6041
5373
  render(): TemplateResult<1>;
6042
5374
  firstUpdated(): void;
6043
5375
  updated(changedProperties: PropertyValues): void;
@@ -6049,7 +5381,7 @@ declare global {
6049
5381
  interface HTMLElementTagNameMap {
6050
5382
  "ixfx-tab-list": TabListElement;
6051
5383
  }
6052
- } //# sourceMappingURL=tab-list.d.ts.map
5384
+ }
6053
5385
  //#endregion
6054
5386
  //#region src/tabs/tab-panel.d.ts
6055
5387
  declare class TabPanelElement extends LitElement {
@@ -6060,7 +5392,7 @@ declare global {
6060
5392
  interface HTMLElementTagNameMap {
6061
5393
  "ixfx-tab-panel": TabPanelElement;
6062
5394
  }
6063
- } //# sourceMappingURL=tab-panel.d.ts.map
5395
+ }
6064
5396
  //#endregion
6065
5397
  //#region src/tabs/tab-panels.d.ts
6066
5398
  declare class TabPanelsElement extends LitElement {
@@ -6088,7 +5420,7 @@ declare global {
6088
5420
  interface HTMLElementTagNameMap {
6089
5421
  "ixfx-tab-panels": TabPanelsElement;
6090
5422
  }
6091
- } //# sourceMappingURL=tab-panels.d.ts.map
5423
+ }
6092
5424
  //#endregion
6093
5425
  //#region src/timeline/types.d.ts
6094
5426
  type TimelineTrack = {
@@ -6324,7 +5656,7 @@ declare global {
6324
5656
  interface HTMLElementTagNameMap {
6325
5657
  'ixfx-timeline-track-tab': TimelineTrackTabElement;
6326
5658
  }
6327
- } //# sourceMappingURL=timeline-track-tabs.d.ts.map
5659
+ }
6328
5660
  //#endregion
6329
5661
  //#region src/timeline/timeline-element.d.ts
6330
5662
  type VCanvasElement$1 = HTMLElement & {
@@ -6472,7 +5804,6 @@ type VCanvasElement = HTMLElement & {
6472
5804
  invalidateAll: () => void;
6473
5805
  invalidateRegion: (x: number, y: number, w: number, h: number) => void;
6474
5806
  };
6475
- /** Total pointer movement (px) before an axis drag activates */
6476
5807
  /**
6477
5808
  * Attaches pointer and keyboard interaction handlers to the timeline.
6478
5809
  * Returns a cleanup function.
@@ -6507,7 +5838,7 @@ declare global {
6507
5838
  interface HTMLElementTagNameMap {
6508
5839
  'ixfx-transitory-label': TransitoryLabelElement;
6509
5840
  }
6510
- } //# sourceMappingURL=transitory-label.d.ts.map
5841
+ }
6511
5842
  //#endregion
6512
5843
  //#region src/tree/tree-controller.d.ts
6513
5844
  type TreeControllerOptions<T> = {
@@ -6525,7 +5856,8 @@ declare class TreeController<T> {
6525
5856
  declare function monitorIndeterminate(targetElOrQuery: string | HTMLElement, watchedElsOrQueries: Array<string | HTMLElement>): () => void;
6526
5857
  //#endregion
6527
5858
  //#region src/xy-pad/xy-pad.d.ts
6528
- declare class XyPad extends LitElement {
5859
+ declare const XyPad_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
5860
+ declare class XyPad extends XyPad_base {
6529
5861
  static styles: CSSResult[];
6530
5862
  xMin: number;
6531
5863
  xMax: number;
@@ -6537,6 +5869,10 @@ declare class XyPad extends LitElement {
6537
5869
  yScale: string;
6538
5870
  xSnapStep?: number;
6539
5871
  ySnapStep?: number;
5872
+ /** Explicit keyboard nudge step for X axis (absolute units). Overrides the 10% default. */
5873
+ stepX?: number;
5874
+ /** Explicit keyboard nudge step for Y axis (absolute units). Overrides the 10% default. */
5875
+ stepY?: number;
6540
5876
  xLabel: string;
6541
5877
  yLabel: string;
6542
5878
  showCrosshairs: boolean;
@@ -6556,6 +5892,12 @@ declare class XyPad extends LitElement {
6556
5892
  private _onKeyDown;
6557
5893
  private _onKeyUp;
6558
5894
  private _handleKeyboardMove;
5895
+ /**
5896
+ * Apply a Y-axis nudge by direction. Wheel affects Y only (matches the
5897
+ * keyboard `ArrowUp`/`ArrowDown` semantic per `plans/mousewheel.md`).
5898
+ */
5899
+ private _stepYByDelta;
5900
+ _applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
6559
5901
  private _onPointerDown;
6560
5902
  private _onPointerMove;
6561
5903
  private _onPointerUp;
@@ -6603,5 +5945,5 @@ interface XyPad {
6603
5945
  //#region src/index.d.ts
6604
5946
  declare function init(): void;
6605
5947
  //#endregion
6606
- 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 };
5948
+ 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, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, 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, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, 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, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
6607
5949
  //# sourceMappingURL=index.d.ts.map