@ixfx/components 0.2.4 → 0.2.6

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 (718) hide show
  1. package/bundle/index.d.ts +285 -159
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +3291 -2485
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +96 -0
  6. package/dist/ac-text.d.ts.map +1 -0
  7. package/dist/ac-text.js +484 -0
  8. package/dist/ac-text.js.map +1 -0
  9. package/dist/{button/button-styles.js → button-B9ztaKyl.js} +49 -3
  10. package/dist/button-B9ztaKyl.js.map +1 -0
  11. package/dist/button.d.ts +20 -0
  12. package/dist/button.d.ts.map +1 -0
  13. package/dist/button.js +3 -0
  14. package/dist/checkbox.d.ts +26 -57
  15. package/dist/checkbox.d.ts.map +1 -1
  16. package/dist/checkbox.js +74 -88
  17. package/dist/checkbox.js.map +1 -1
  18. package/dist/chunk-pbuEa-1d.js +13 -0
  19. package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
  20. package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
  21. package/dist/colour-picker-BNqDz4wK.js +922 -0
  22. package/dist/colour-picker-BNqDz4wK.js.map +1 -0
  23. package/dist/colour-picker.d.ts +2 -0
  24. package/dist/colour-picker.js +2 -0
  25. package/dist/crumbs.d.ts +91 -0
  26. package/dist/crumbs.d.ts.map +1 -0
  27. package/dist/crumbs.js +789 -0
  28. package/dist/crumbs.js.map +1 -0
  29. package/dist/data-display.d.ts +22 -18
  30. package/dist/data-display.d.ts.map +1 -1
  31. package/dist/data-display.js +81 -108
  32. package/dist/data-display.js.map +1 -1
  33. package/dist/decorate-O4m1U4l3.js +25 -0
  34. package/dist/decorate-O4m1U4l3.js.map +1 -0
  35. package/dist/defaults-FEZaGiYZ.js +38 -0
  36. package/dist/defaults-FEZaGiYZ.js.map +1 -0
  37. package/dist/dist-By5URG0Y.js +1290 -0
  38. package/dist/dist-By5URG0Y.js.map +1 -0
  39. package/dist/dist-D7kJgnSE.js +1039 -0
  40. package/dist/dist-D7kJgnSE.js.map +1 -0
  41. package/dist/editable-label.d.ts +71 -0
  42. package/dist/editable-label.d.ts.map +1 -0
  43. package/dist/editable-label.js +279 -0
  44. package/dist/editable-label.js.map +1 -0
  45. package/dist/hex-editor-2_s0Ua5t.d.ts +130 -0
  46. package/dist/hex-editor-2_s0Ua5t.d.ts.map +1 -0
  47. package/dist/hex-editor-gH3mteMr.js +1147 -0
  48. package/dist/hex-editor-gH3mteMr.js.map +1 -0
  49. package/dist/hex.d.ts +2 -0
  50. package/dist/hex.js +2 -0
  51. package/dist/highlight-CAjwQ4GE.js +50 -0
  52. package/dist/highlight-CAjwQ4GE.js.map +1 -0
  53. package/dist/icon-CYACf6o8.js +100 -0
  54. package/dist/icon-CYACf6o8.js.map +1 -0
  55. package/dist/icon-CeTDJhC7.d.ts +35 -0
  56. package/dist/icon-CeTDJhC7.d.ts.map +1 -0
  57. package/dist/icons.d.ts +3 -0
  58. package/dist/icons.js +9 -0
  59. package/dist/icons.js.map +1 -0
  60. package/dist/incr-search-BZawvrfl.js +311 -0
  61. package/dist/incr-search-BZawvrfl.js.map +1 -0
  62. package/dist/incr-search.d.ts +2 -0
  63. package/dist/incr-search.js +3 -0
  64. package/dist/index-B1hNR7Z9.d.ts +36 -0
  65. package/dist/index-B1hNR7Z9.d.ts.map +1 -0
  66. package/dist/index-CnL9krsH.d.ts +1238 -0
  67. package/dist/index-CnL9krsH.d.ts.map +1 -0
  68. package/dist/index-CwGkb9s1.d.ts +395 -0
  69. package/dist/index-CwGkb9s1.d.ts.map +1 -0
  70. package/dist/index-DrQjA8Gs.d.ts +22 -0
  71. package/dist/index-DrQjA8Gs.d.ts.map +1 -0
  72. package/dist/index-V2cJorlA.d.ts +160 -0
  73. package/dist/index-V2cJorlA.d.ts.map +1 -0
  74. package/dist/index-kY5gxbkI.d.ts +182 -0
  75. package/dist/index-kY5gxbkI.d.ts.map +1 -0
  76. package/dist/index.d.ts +540 -53
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +6519 -54
  79. package/dist/index.js.map +1 -1
  80. package/dist/interaction-CQDQJf2Q.js +1 -0
  81. package/dist/keyboard-De_vOHLg.js +20 -0
  82. package/dist/keyboard-De_vOHLg.js.map +1 -0
  83. package/dist/labelled-input-base-BvgH7ldm.js +155 -0
  84. package/dist/labelled-input-base-BvgH7ldm.js.map +1 -0
  85. package/dist/labelled-input-base-D-Y7agky.d.ts +42 -0
  86. package/dist/labelled-input-base-D-Y7agky.d.ts.map +1 -0
  87. package/dist/labelled-radial-input.d.ts +33 -0
  88. package/dist/labelled-radial-input.d.ts.map +1 -0
  89. package/dist/labelled-radial-input.js +188 -0
  90. package/dist/labelled-radial-input.js.map +1 -0
  91. package/dist/labelled-range-input.d.ts +2 -0
  92. package/dist/{labelled-range-input/labelled-range-input.js → labelled-range-input.js} +40 -45
  93. package/dist/labelled-range-input.js.map +1 -0
  94. package/dist/led.d.ts +20 -16
  95. package/dist/led.d.ts.map +1 -1
  96. package/dist/led.js +71 -79
  97. package/dist/led.js.map +1 -1
  98. package/dist/menu-C3eANB5M.js +813 -0
  99. package/dist/menu-C3eANB5M.js.map +1 -0
  100. package/dist/menu-item-6IU5weHi.js +766 -0
  101. package/dist/menu-item-6IU5weHi.js.map +1 -0
  102. package/dist/menu-item-ClQF2DKN.d.ts +127 -0
  103. package/dist/menu-item-ClQF2DKN.d.ts.map +1 -0
  104. package/dist/menu.d.ts +3 -0
  105. package/dist/menu.js +3 -0
  106. package/dist/miller.d.ts +323 -0
  107. package/dist/miller.d.ts.map +1 -0
  108. package/dist/miller.js +1343 -0
  109. package/dist/miller.js.map +1 -0
  110. package/dist/narrowed-text.d.ts +71 -0
  111. package/dist/narrowed-text.d.ts.map +1 -0
  112. package/dist/narrowed-text.js +571 -0
  113. package/dist/narrowed-text.js.map +1 -0
  114. package/dist/panel.d.ts +42 -0
  115. package/dist/panel.d.ts.map +1 -0
  116. package/dist/{panel/panel.js → panel.js} +82 -91
  117. package/dist/panel.js.map +1 -0
  118. package/dist/plots.d.ts +2 -0
  119. package/dist/plots.js +2 -0
  120. package/dist/polar-pad.d.ts +66 -0
  121. package/dist/polar-pad.d.ts.map +1 -0
  122. package/dist/polar-pad.js +537 -0
  123. package/dist/polar-pad.js.map +1 -0
  124. package/dist/popup-Ddx9LCzY.js +24 -0
  125. package/dist/popup-Ddx9LCzY.js.map +1 -0
  126. package/dist/prominence-CreDBdCs.js +98 -0
  127. package/dist/prominence-CreDBdCs.js.map +1 -0
  128. package/dist/radial-input-Dbc6fgCK.js +849 -0
  129. package/dist/radial-input-Dbc6fgCK.js.map +1 -0
  130. package/dist/radial-input-LUSBEycd.d.ts +69 -0
  131. package/dist/radial-input-LUSBEycd.d.ts.map +1 -0
  132. package/dist/radial-input.d.ts +2 -0
  133. package/dist/radial-input.js +2 -0
  134. package/dist/range-input.d.ts +42 -0
  135. package/dist/range-input.d.ts.map +1 -0
  136. package/dist/{range-input/range-input.js → range-input.js} +155 -168
  137. package/dist/range-input.js.map +1 -0
  138. package/dist/range.d.ts +27 -0
  139. package/dist/range.d.ts.map +1 -0
  140. package/dist/range.js +136 -0
  141. package/dist/range.js.map +1 -0
  142. package/dist/registry-CZEB1YI9.js +21 -0
  143. package/dist/registry-CZEB1YI9.js.map +1 -0
  144. package/dist/selecthorizontal.d.ts +12 -8
  145. package/dist/selecthorizontal.d.ts.map +1 -1
  146. package/dist/selecthorizontal.js +20 -24
  147. package/dist/selecthorizontal.js.map +1 -1
  148. package/dist/snap-container.d.ts +49 -0
  149. package/dist/snap-container.d.ts.map +1 -0
  150. package/dist/snap-container.js +297 -0
  151. package/dist/snap-container.js.map +1 -0
  152. package/dist/{split-layout/split-layout.d.ts → split-layout.d.ts} +29 -25
  153. package/dist/split-layout.d.ts.map +1 -0
  154. package/dist/split-layout.js +545 -0
  155. package/dist/split-layout.js.map +1 -0
  156. package/dist/style.css +133 -0
  157. package/dist/swipe.d.ts +48 -0
  158. package/dist/swipe.d.ts.map +1 -0
  159. package/dist/swipe.js +204 -0
  160. package/dist/swipe.js.map +1 -0
  161. package/dist/tab-list-BnqISNvO.d.ts +65 -0
  162. package/dist/tab-list-BnqISNvO.d.ts.map +1 -0
  163. package/dist/tabs.d.ts +2 -0
  164. package/dist/tabs.js +203 -0
  165. package/dist/tabs.js.map +1 -0
  166. package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
  167. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
  168. package/dist/tickled-styles-Bg3QbcrD.js +327 -0
  169. package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
  170. package/dist/timeline-B62Sz6J_.js +1748 -0
  171. package/dist/timeline-B62Sz6J_.js.map +1 -0
  172. package/dist/timeline.d.ts +2 -0
  173. package/dist/timeline.js +2 -0
  174. package/dist/tooltip-CwGfb4lp.d.ts +25 -0
  175. package/dist/tooltip-CwGfb4lp.d.ts.map +1 -0
  176. package/dist/{styles/tooltip.js → tooltip-DMxmBNky.js} +6 -2
  177. package/dist/tooltip-DMxmBNky.js.map +1 -0
  178. package/dist/tree-component-CQpoPo4s.d.ts +326 -0
  179. package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
  180. package/dist/tree-data-model-DGvRVOFY.js +190 -0
  181. package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
  182. package/dist/tree.d.ts +99 -0
  183. package/dist/tree.d.ts.map +1 -0
  184. package/dist/tree.js +1144 -0
  185. package/dist/tree.js.map +1 -0
  186. package/dist/types-BKaqnpwx.d.ts +8 -0
  187. package/dist/types-BKaqnpwx.d.ts.map +1 -0
  188. package/dist/xy-axis-C7fNxDwY.js +6243 -0
  189. package/dist/xy-axis-C7fNxDwY.js.map +1 -0
  190. package/dist/xy-axis-D9uwpGTT.d.ts +140 -0
  191. package/dist/xy-axis-D9uwpGTT.d.ts.map +1 -0
  192. package/dist/xy-pad.d.ts +73 -110
  193. package/dist/xy-pad.d.ts.map +1 -1
  194. package/dist/xy-pad.js +300 -320
  195. package/dist/xy-pad.js.map +1 -1
  196. package/package.json +24 -28
  197. package/dist/ac-text/ac-text.d.ts +0 -99
  198. package/dist/ac-text/ac-text.d.ts.map +0 -1
  199. package/dist/ac-text/ac-text.js +0 -571
  200. package/dist/ac-text/ac-text.js.map +0 -1
  201. package/dist/button/button-styles.d.ts +0 -2
  202. package/dist/button/button-styles.d.ts.map +0 -1
  203. package/dist/button/button-styles.js.map +0 -1
  204. package/dist/button/button.d.ts +0 -16
  205. package/dist/button/button.d.ts.map +0 -1
  206. package/dist/button/button.js +0 -58
  207. package/dist/button/button.js.map +0 -1
  208. package/dist/button/radio-group.d.ts +0 -44
  209. package/dist/button/radio-group.d.ts.map +0 -1
  210. package/dist/button/radio-group.js +0 -385
  211. package/dist/button/radio-group.js.map +0 -1
  212. package/dist/button/split-button.d.ts +0 -59
  213. package/dist/button/split-button.d.ts.map +0 -1
  214. package/dist/button/split-button.js +0 -480
  215. package/dist/button/split-button.js.map +0 -1
  216. package/dist/button/types.d.ts +0 -18
  217. package/dist/button/types.d.ts.map +0 -1
  218. package/dist/button/types.js +0 -2
  219. package/dist/button/types.js.map +0 -1
  220. package/dist/colour-picker/colour-picker-popup.d.ts +0 -102
  221. package/dist/colour-picker/colour-picker-popup.d.ts.map +0 -1
  222. package/dist/colour-picker/colour-picker-popup.js +0 -399
  223. package/dist/colour-picker/colour-picker-popup.js.map +0 -1
  224. package/dist/colour-picker/colour-picker.d.ts +0 -100
  225. package/dist/colour-picker/colour-picker.d.ts.map +0 -1
  226. package/dist/colour-picker/colour-picker.js +0 -567
  227. package/dist/colour-picker/colour-picker.js.map +0 -1
  228. package/dist/colour-picker/index.d.ts +0 -4
  229. package/dist/colour-picker/index.d.ts.map +0 -1
  230. package/dist/colour-picker/index.js +0 -3
  231. package/dist/colour-picker/index.js.map +0 -1
  232. package/dist/colour-picker/styles.d.ts +0 -2
  233. package/dist/colour-picker/styles.d.ts.map +0 -1
  234. package/dist/colour-picker/styles.js +0 -139
  235. package/dist/colour-picker/styles.js.map +0 -1
  236. package/dist/colour-picker/types.d.ts +0 -33
  237. package/dist/colour-picker/types.d.ts.map +0 -1
  238. package/dist/colour-picker/types.js +0 -2
  239. package/dist/colour-picker/types.js.map +0 -1
  240. package/dist/colour-picker/util.d.ts +0 -15
  241. package/dist/colour-picker/util.d.ts.map +0 -1
  242. package/dist/colour-picker/util.js +0 -35
  243. package/dist/colour-picker/util.js.map +0 -1
  244. package/dist/common/searchable.d.ts +0 -9
  245. package/dist/common/searchable.d.ts.map +0 -1
  246. package/dist/common/searchable.js +0 -9
  247. package/dist/common/searchable.js.map +0 -1
  248. package/dist/common/tree-component.d.ts +0 -172
  249. package/dist/common/tree-component.d.ts.map +0 -1
  250. package/dist/common/tree-component.js +0 -8
  251. package/dist/common/tree-component.js.map +0 -1
  252. package/dist/common/tree-data-model.d.ts +0 -100
  253. package/dist/common/tree-data-model.d.ts.map +0 -1
  254. package/dist/common/tree-data-model.js +0 -207
  255. package/dist/common/tree-data-model.js.map +0 -1
  256. package/dist/common/tree-item.d.ts +0 -7
  257. package/dist/common/tree-item.d.ts.map +0 -1
  258. package/dist/common/tree-item.js +0 -2
  259. package/dist/common/tree-item.js.map +0 -1
  260. package/dist/common/types.d.ts +0 -69
  261. package/dist/common/types.d.ts.map +0 -1
  262. package/dist/common/types.js +0 -6
  263. package/dist/common/types.js.map +0 -1
  264. package/dist/crumbs/crumb-navigation.d.ts +0 -96
  265. package/dist/crumbs/crumb-navigation.d.ts.map +0 -1
  266. package/dist/crumbs/crumb-navigation.js +0 -911
  267. package/dist/crumbs/crumb-navigation.js.map +0 -1
  268. package/dist/crumbs/crumb-path-controller.d.ts +0 -18
  269. package/dist/crumbs/crumb-path-controller.d.ts.map +0 -1
  270. package/dist/crumbs/crumb-path-controller.js +0 -81
  271. package/dist/crumbs/crumb-path-controller.js.map +0 -1
  272. package/dist/crumbs/crumb-path.d.ts +0 -65
  273. package/dist/crumbs/crumb-path.d.ts.map +0 -1
  274. package/dist/crumbs/crumb-path.js +0 -691
  275. package/dist/crumbs/crumb-path.js.map +0 -1
  276. package/dist/editable-label/editable-label.d.ts +0 -98
  277. package/dist/editable-label/editable-label.d.ts.map +0 -1
  278. package/dist/editable-label/editable-label.js +0 -348
  279. package/dist/editable-label/editable-label.js.map +0 -1
  280. package/dist/editable-label/editable-number.d.ts +0 -96
  281. package/dist/editable-label/editable-number.d.ts.map +0 -1
  282. package/dist/editable-label/editable-number.js +0 -702
  283. package/dist/editable-label/editable-number.js.map +0 -1
  284. package/dist/hex/colour.d.ts +0 -6
  285. package/dist/hex/colour.d.ts.map +0 -1
  286. package/dist/hex/colour.js +0 -33
  287. package/dist/hex/colour.js.map +0 -1
  288. package/dist/hex/data.d.ts +0 -18
  289. package/dist/hex/data.d.ts.map +0 -1
  290. package/dist/hex/data.js +0 -61
  291. package/dist/hex/data.js.map +0 -1
  292. package/dist/hex/diff.d.ts +0 -14
  293. package/dist/hex/diff.d.ts.map +0 -1
  294. package/dist/hex/diff.js +0 -31
  295. package/dist/hex/diff.js.map +0 -1
  296. package/dist/hex/hex-editor.d.ts +0 -101
  297. package/dist/hex/hex-editor.d.ts.map +0 -1
  298. package/dist/hex/hex-editor.js +0 -894
  299. package/dist/hex/hex-editor.js.map +0 -1
  300. package/dist/hex/selection.d.ts +0 -11
  301. package/dist/hex/selection.d.ts.map +0 -1
  302. package/dist/hex/selection.js +0 -218
  303. package/dist/hex/selection.js.map +0 -1
  304. package/dist/hex/types.d.ts +0 -34
  305. package/dist/hex/types.d.ts.map +0 -1
  306. package/dist/hex/types.js +0 -4
  307. package/dist/hex/types.js.map +0 -1
  308. package/dist/icons/defaults.d.ts +0 -27
  309. package/dist/icons/defaults.d.ts.map +0 -1
  310. package/dist/icons/defaults.js +0 -34
  311. package/dist/icons/defaults.js.map +0 -1
  312. package/dist/icons/icon.d.ts +0 -31
  313. package/dist/icons/icon.d.ts.map +0 -1
  314. package/dist/icons/icon.js +0 -125
  315. package/dist/icons/icon.js.map +0 -1
  316. package/dist/icons/index.d.ts +0 -5
  317. package/dist/icons/index.d.ts.map +0 -1
  318. package/dist/icons/index.js +0 -6
  319. package/dist/icons/index.js.map +0 -1
  320. package/dist/icons/registry.d.ts +0 -11
  321. package/dist/icons/registry.d.ts.map +0 -1
  322. package/dist/icons/registry.js +0 -17
  323. package/dist/icons/registry.js.map +0 -1
  324. package/dist/incr-search/ac-adapter.d.ts +0 -18
  325. package/dist/incr-search/ac-adapter.d.ts.map +0 -1
  326. package/dist/incr-search/ac-adapter.js +0 -29
  327. package/dist/incr-search/ac-adapter.js.map +0 -1
  328. package/dist/incr-search/controller-miller.d.ts +0 -9
  329. package/dist/incr-search/controller-miller.d.ts.map +0 -1
  330. package/dist/incr-search/controller-miller.js +0 -8
  331. package/dist/incr-search/controller-miller.js.map +0 -1
  332. package/dist/incr-search/controller-tree.d.ts +0 -55
  333. package/dist/incr-search/controller-tree.d.ts.map +0 -1
  334. package/dist/incr-search/controller-tree.js +0 -106
  335. package/dist/incr-search/controller-tree.js.map +0 -1
  336. package/dist/incr-search/element-search.d.ts +0 -15
  337. package/dist/incr-search/element-search.d.ts.map +0 -1
  338. package/dist/incr-search/element-search.js +0 -82
  339. package/dist/incr-search/element-search.js.map +0 -1
  340. package/dist/incr-search/fuzzy.d.ts +0 -3
  341. package/dist/incr-search/fuzzy.d.ts.map +0 -1
  342. package/dist/incr-search/fuzzy.js +0 -37
  343. package/dist/incr-search/fuzzy.js.map +0 -1
  344. package/dist/incr-search/highlight.d.ts +0 -5
  345. package/dist/incr-search/highlight.d.ts.map +0 -1
  346. package/dist/incr-search/highlight.js +0 -54
  347. package/dist/incr-search/highlight.js.map +0 -1
  348. package/dist/incr-search/incr-search.d.ts +0 -3
  349. package/dist/incr-search/incr-search.d.ts.map +0 -1
  350. package/dist/incr-search/incr-search.js +0 -73
  351. package/dist/incr-search/incr-search.js.map +0 -1
  352. package/dist/incr-search/index.d.ts +0 -12
  353. package/dist/incr-search/index.d.ts.map +0 -1
  354. package/dist/incr-search/index.js +0 -8
  355. package/dist/incr-search/index.js.map +0 -1
  356. package/dist/incr-search/types.d.ts +0 -59
  357. package/dist/incr-search/types.d.ts.map +0 -1
  358. package/dist/incr-search/types.js +0 -2
  359. package/dist/incr-search/types.js.map +0 -1
  360. package/dist/interaction/index.d.ts +0 -10
  361. package/dist/interaction/index.d.ts.map +0 -1
  362. package/dist/interaction/index.js +0 -10
  363. package/dist/interaction/index.js.map +0 -1
  364. package/dist/interaction/tickled-controller.d.ts +0 -186
  365. package/dist/interaction/tickled-controller.d.ts.map +0 -1
  366. package/dist/interaction/tickled-controller.js +0 -256
  367. package/dist/interaction/tickled-controller.js.map +0 -1
  368. package/dist/interaction/tickled-styles.d.ts +0 -53
  369. package/dist/interaction/tickled-styles.d.ts.map +0 -1
  370. package/dist/interaction/tickled-styles.js +0 -106
  371. package/dist/interaction/tickled-styles.js.map +0 -1
  372. package/dist/interaction/tree-keyboard-controller.d.ts +0 -30
  373. package/dist/interaction/tree-keyboard-controller.d.ts.map +0 -1
  374. package/dist/interaction/tree-keyboard-controller.js +0 -105
  375. package/dist/interaction/tree-keyboard-controller.js.map +0 -1
  376. package/dist/keyboard.d.ts +0 -16
  377. package/dist/keyboard.d.ts.map +0 -1
  378. package/dist/keyboard.js +0 -22
  379. package/dist/keyboard.js.map +0 -1
  380. package/dist/labelled-radial-input/index.d.ts +0 -2
  381. package/dist/labelled-radial-input/index.d.ts.map +0 -1
  382. package/dist/labelled-radial-input/index.js +0 -2
  383. package/dist/labelled-radial-input/index.js.map +0 -1
  384. package/dist/labelled-radial-input/labelled-radial-input.d.ts +0 -77
  385. package/dist/labelled-radial-input/labelled-radial-input.d.ts.map +0 -1
  386. package/dist/labelled-radial-input/labelled-radial-input.js +0 -214
  387. package/dist/labelled-radial-input/labelled-radial-input.js.map +0 -1
  388. package/dist/labelled-range-input/index.d.ts +0 -2
  389. package/dist/labelled-range-input/index.d.ts.map +0 -1
  390. package/dist/labelled-range-input/index.js +0 -2
  391. package/dist/labelled-range-input/index.js.map +0 -1
  392. package/dist/labelled-range-input/labelled-range-input.d.ts +0 -80
  393. package/dist/labelled-range-input/labelled-range-input.d.ts.map +0 -1
  394. package/dist/labelled-range-input/labelled-range-input.js.map +0 -1
  395. package/dist/menu/index.d.ts +0 -14
  396. package/dist/menu/index.d.ts.map +0 -1
  397. package/dist/menu/index.js +0 -13
  398. package/dist/menu/index.js.map +0 -1
  399. package/dist/menu/menu-bar.d.ts +0 -23
  400. package/dist/menu/menu-bar.d.ts.map +0 -1
  401. package/dist/menu/menu-bar.js +0 -110
  402. package/dist/menu/menu-bar.js.map +0 -1
  403. package/dist/menu/menu-check-item.d.ts +0 -33
  404. package/dist/menu/menu-check-item.d.ts.map +0 -1
  405. package/dist/menu/menu-check-item.js +0 -175
  406. package/dist/menu/menu-check-item.js.map +0 -1
  407. package/dist/menu/menu-command-controller.d.ts +0 -14
  408. package/dist/menu/menu-command-controller.d.ts.map +0 -1
  409. package/dist/menu/menu-command-controller.js +0 -22
  410. package/dist/menu/menu-command-controller.js.map +0 -1
  411. package/dist/menu/menu-container.d.ts +0 -36
  412. package/dist/menu/menu-container.d.ts.map +0 -1
  413. package/dist/menu/menu-container.js +0 -351
  414. package/dist/menu/menu-container.js.map +0 -1
  415. package/dist/menu/menu-from-tree.d.ts +0 -17
  416. package/dist/menu/menu-from-tree.d.ts.map +0 -1
  417. package/dist/menu/menu-from-tree.js +0 -103
  418. package/dist/menu/menu-from-tree.js.map +0 -1
  419. package/dist/menu/menu-header.d.ts +0 -12
  420. package/dist/menu/menu-header.d.ts.map +0 -1
  421. package/dist/menu/menu-header.js +0 -36
  422. package/dist/menu/menu-header.js.map +0 -1
  423. package/dist/menu/menu-item.d.ts +0 -41
  424. package/dist/menu/menu-item.d.ts.map +0 -1
  425. package/dist/menu/menu-item.js +0 -240
  426. package/dist/menu/menu-item.js.map +0 -1
  427. package/dist/menu/menu-radio-group.d.ts +0 -24
  428. package/dist/menu/menu-radio-group.d.ts.map +0 -1
  429. package/dist/menu/menu-radio-group.js +0 -71
  430. package/dist/menu/menu-radio-group.js.map +0 -1
  431. package/dist/menu/menu-radio-item.d.ts +0 -22
  432. package/dist/menu/menu-radio-item.d.ts.map +0 -1
  433. package/dist/menu/menu-radio-item.js +0 -116
  434. package/dist/menu/menu-radio-item.js.map +0 -1
  435. package/dist/menu/menu-separator.d.ts +0 -11
  436. package/dist/menu/menu-separator.d.ts.map +0 -1
  437. package/dist/menu/menu-separator.js +0 -29
  438. package/dist/menu/menu-separator.js.map +0 -1
  439. package/dist/menu/menu-sub-trigger.d.ts +0 -46
  440. package/dist/menu/menu-sub-trigger.d.ts.map +0 -1
  441. package/dist/menu/menu-sub-trigger.js +0 -302
  442. package/dist/menu/menu-sub-trigger.js.map +0 -1
  443. package/dist/menu/menu-trigger.d.ts +0 -57
  444. package/dist/menu/menu-trigger.d.ts.map +0 -1
  445. package/dist/menu/menu-trigger.js +0 -351
  446. package/dist/menu/menu-trigger.js.map +0 -1
  447. package/dist/miller/index.d.ts +0 -5
  448. package/dist/miller/index.d.ts.map +0 -1
  449. package/dist/miller/index.js +0 -5
  450. package/dist/miller/index.js.map +0 -1
  451. package/dist/miller/miller-base.d.ts +0 -184
  452. package/dist/miller/miller-base.d.ts.map +0 -1
  453. package/dist/miller/miller-base.js +0 -1249
  454. package/dist/miller/miller-base.js.map +0 -1
  455. package/dist/miller/miller-list.d.ts +0 -30
  456. package/dist/miller/miller-list.d.ts.map +0 -1
  457. package/dist/miller/miller-list.js +0 -192
  458. package/dist/miller/miller-list.js.map +0 -1
  459. package/dist/miller/miller-tree-controller.d.ts +0 -58
  460. package/dist/miller/miller-tree-controller.d.ts.map +0 -1
  461. package/dist/miller/miller-tree-controller.js +0 -134
  462. package/dist/miller/miller-tree-controller.js.map +0 -1
  463. package/dist/miller/types.d.ts +0 -63
  464. package/dist/miller/types.d.ts.map +0 -1
  465. package/dist/miller/types.js +0 -6
  466. package/dist/miller/types.js.map +0 -1
  467. package/dist/mixins/labelled-input-base.d.ts +0 -38
  468. package/dist/mixins/labelled-input-base.d.ts.map +0 -1
  469. package/dist/mixins/labelled-input-base.js +0 -171
  470. package/dist/mixins/labelled-input-base.js.map +0 -1
  471. package/dist/mixins/labelled-input-util.d.ts +0 -3
  472. package/dist/mixins/labelled-input-util.d.ts.map +0 -1
  473. package/dist/mixins/labelled-input-util.js +0 -10
  474. package/dist/mixins/labelled-input-util.js.map +0 -1
  475. package/dist/my-element.d.ts +0 -14
  476. package/dist/my-element.d.ts.map +0 -1
  477. package/dist/my-element.js +0 -44
  478. package/dist/my-element.js.map +0 -1
  479. package/dist/narrowed-text/index.d.ts +0 -3
  480. package/dist/narrowed-text/index.d.ts.map +0 -1
  481. package/dist/narrowed-text/index.js +0 -3
  482. package/dist/narrowed-text/index.js.map +0 -1
  483. package/dist/narrowed-text/narrowed-text.d.ts +0 -48
  484. package/dist/narrowed-text/narrowed-text.d.ts.map +0 -1
  485. package/dist/narrowed-text/narrowed-text.js +0 -668
  486. package/dist/narrowed-text/narrowed-text.js.map +0 -1
  487. package/dist/narrowed-text/types.d.ts +0 -20
  488. package/dist/narrowed-text/types.d.ts.map +0 -1
  489. package/dist/narrowed-text/types.js +0 -2
  490. package/dist/narrowed-text/types.js.map +0 -1
  491. package/dist/panel/panel-group.d.ts +0 -23
  492. package/dist/panel/panel-group.d.ts.map +0 -1
  493. package/dist/panel/panel-group.js +0 -109
  494. package/dist/panel/panel-group.js.map +0 -1
  495. package/dist/panel/panel.d.ts +0 -39
  496. package/dist/panel/panel.d.ts.map +0 -1
  497. package/dist/panel/panel.js.map +0 -1
  498. package/dist/plots/colour-map.d.ts +0 -31
  499. package/dist/plots/colour-map.d.ts.map +0 -1
  500. package/dist/plots/colour-map.js +0 -133
  501. package/dist/plots/colour-map.js.map +0 -1
  502. package/dist/plots/data.d.ts +0 -27
  503. package/dist/plots/data.d.ts.map +0 -1
  504. package/dist/plots/data.js +0 -47
  505. package/dist/plots/data.js.map +0 -1
  506. package/dist/plots/single-axis.d.ts +0 -41
  507. package/dist/plots/single-axis.d.ts.map +0 -1
  508. package/dist/plots/single-axis.js +0 -428
  509. package/dist/plots/single-axis.js.map +0 -1
  510. package/dist/plots/svg-utils.d.ts +0 -12
  511. package/dist/plots/svg-utils.d.ts.map +0 -1
  512. package/dist/plots/svg-utils.js +0 -64
  513. package/dist/plots/svg-utils.js.map +0 -1
  514. package/dist/plots/xy-axis.d.ts +0 -42
  515. package/dist/plots/xy-axis.d.ts.map +0 -1
  516. package/dist/plots/xy-axis.js +0 -307
  517. package/dist/plots/xy-axis.js.map +0 -1
  518. package/dist/polar-pad/polar-pad.d.ts +0 -132
  519. package/dist/polar-pad/polar-pad.d.ts.map +0 -1
  520. package/dist/polar-pad/polar-pad.js +0 -598
  521. package/dist/polar-pad/polar-pad.js.map +0 -1
  522. package/dist/radial-input/radial-input.d.ts +0 -45
  523. package/dist/radial-input/radial-input.d.ts.map +0 -1
  524. package/dist/radial-input/radial-input.js +0 -692
  525. package/dist/radial-input/radial-input.js.map +0 -1
  526. package/dist/radial-input/svg-utils.d.ts +0 -147
  527. package/dist/radial-input/svg-utils.d.ts.map +0 -1
  528. package/dist/radial-input/svg-utils.js +0 -346
  529. package/dist/radial-input/svg-utils.js.map +0 -1
  530. package/dist/radial-input/types.d.ts +0 -25
  531. package/dist/radial-input/types.d.ts.map +0 -1
  532. package/dist/radial-input/types.js +0 -5
  533. package/dist/radial-input/types.js.map +0 -1
  534. package/dist/range/range-multi.d.ts +0 -62
  535. package/dist/range/range-multi.d.ts.map +0 -1
  536. package/dist/range/range-multi.js +0 -652
  537. package/dist/range/range-multi.js.map +0 -1
  538. package/dist/range/range.d.ts +0 -23
  539. package/dist/range/range.d.ts.map +0 -1
  540. package/dist/range/range.js +0 -153
  541. package/dist/range/range.js.map +0 -1
  542. package/dist/range-input/index.d.ts +0 -2
  543. package/dist/range-input/index.d.ts.map +0 -1
  544. package/dist/range-input/index.js +0 -2
  545. package/dist/range-input/index.js.map +0 -1
  546. package/dist/range-input/range-input.d.ts +0 -92
  547. package/dist/range-input/range-input.d.ts.map +0 -1
  548. package/dist/range-input/range-input.js.map +0 -1
  549. package/dist/snap-container/snap-container.d.ts +0 -45
  550. package/dist/snap-container/snap-container.d.ts.map +0 -1
  551. package/dist/snap-container/snap-container.js +0 -352
  552. package/dist/snap-container/snap-container.js.map +0 -1
  553. package/dist/split-layout/split-layout.d.ts.map +0 -1
  554. package/dist/split-layout/split-layout.js +0 -674
  555. package/dist/split-layout/split-layout.js.map +0 -1
  556. package/dist/styles/popup.d.ts +0 -11
  557. package/dist/styles/popup.d.ts.map +0 -1
  558. package/dist/styles/popup.js +0 -20
  559. package/dist/styles/popup.js.map +0 -1
  560. package/dist/styles/prominence.d.ts +0 -58
  561. package/dist/styles/prominence.d.ts.map +0 -1
  562. package/dist/styles/prominence.js +0 -94
  563. package/dist/styles/prominence.js.map +0 -1
  564. package/dist/styles/tooltip.d.ts +0 -2
  565. package/dist/styles/tooltip.d.ts.map +0 -1
  566. package/dist/styles/tooltip.js.map +0 -1
  567. package/dist/svg-edit-label.d.ts +0 -2
  568. package/dist/svg-edit-label.d.ts.map +0 -1
  569. package/dist/svg-edit-label.js +0 -110
  570. package/dist/svg-edit-label.js.map +0 -1
  571. package/dist/swipe/index.d.ts +0 -2
  572. package/dist/swipe/index.d.ts.map +0 -1
  573. package/dist/swipe/index.js +0 -2
  574. package/dist/swipe/index.js.map +0 -1
  575. package/dist/swipe/swipe.d.ts +0 -65
  576. package/dist/swipe/swipe.d.ts.map +0 -1
  577. package/dist/swipe/swipe.js +0 -229
  578. package/dist/swipe/swipe.js.map +0 -1
  579. package/dist/tabs/tab-layout-item.d.ts +0 -10
  580. package/dist/tabs/tab-layout-item.d.ts.map +0 -1
  581. package/dist/tabs/tab-layout-item.js +0 -20
  582. package/dist/tabs/tab-layout-item.js.map +0 -1
  583. package/dist/tabs/tab-layout.d.ts +0 -10
  584. package/dist/tabs/tab-layout.d.ts.map +0 -1
  585. package/dist/tabs/tab-layout.js +0 -25
  586. package/dist/tabs/tab-layout.js.map +0 -1
  587. package/dist/tabs/tab-list-item.d.ts +0 -34
  588. package/dist/tabs/tab-list-item.d.ts.map +0 -1
  589. package/dist/tabs/tab-list-item.js +0 -195
  590. package/dist/tabs/tab-list-item.js.map +0 -1
  591. package/dist/tabs/tab-list.d.ts +0 -31
  592. package/dist/tabs/tab-list.d.ts.map +0 -1
  593. package/dist/tabs/tab-list.js +0 -257
  594. package/dist/tabs/tab-list.js.map +0 -1
  595. package/dist/tabs/tab-panel.d.ts +0 -11
  596. package/dist/tabs/tab-panel.d.ts.map +0 -1
  597. package/dist/tabs/tab-panel.js +0 -30
  598. package/dist/tabs/tab-panel.js.map +0 -1
  599. package/dist/tabs/tab-panels.d.ts +0 -30
  600. package/dist/tabs/tab-panels.d.ts.map +0 -1
  601. package/dist/tabs/tab-panels.js +0 -80
  602. package/dist/tabs/tab-panels.js.map +0 -1
  603. package/dist/timeline/index.d.ts +0 -9
  604. package/dist/timeline/index.d.ts.map +0 -1
  605. package/dist/timeline/index.js +0 -8
  606. package/dist/timeline/index.js.map +0 -1
  607. package/dist/timeline/timeline-controller.d.ts +0 -48
  608. package/dist/timeline/timeline-controller.d.ts.map +0 -1
  609. package/dist/timeline/timeline-controller.js +0 -81
  610. package/dist/timeline/timeline-controller.js.map +0 -1
  611. package/dist/timeline/timeline-draw.d.ts +0 -28
  612. package/dist/timeline/timeline-draw.d.ts.map +0 -1
  613. package/dist/timeline/timeline-draw.js +0 -330
  614. package/dist/timeline/timeline-draw.js.map +0 -1
  615. package/dist/timeline/timeline-element.d.ts +0 -140
  616. package/dist/timeline/timeline-element.d.ts.map +0 -1
  617. package/dist/timeline/timeline-element.js +0 -888
  618. package/dist/timeline/timeline-element.js.map +0 -1
  619. package/dist/timeline/timeline-interactions.d.ts +0 -40
  620. package/dist/timeline/timeline-interactions.d.ts.map +0 -1
  621. package/dist/timeline/timeline-interactions.js +0 -393
  622. package/dist/timeline/timeline-interactions.js.map +0 -1
  623. package/dist/timeline/timeline-styles.d.ts +0 -2
  624. package/dist/timeline/timeline-styles.d.ts.map +0 -1
  625. package/dist/timeline/timeline-styles.js +0 -153
  626. package/dist/timeline/timeline-styles.js.map +0 -1
  627. package/dist/timeline/timeline-track-tabs.d.ts +0 -30
  628. package/dist/timeline/timeline-track-tabs.d.ts.map +0 -1
  629. package/dist/timeline/timeline-track-tabs.js +0 -204
  630. package/dist/timeline/timeline-track-tabs.js.map +0 -1
  631. package/dist/timeline/types.d.ts +0 -144
  632. package/dist/timeline/types.d.ts.map +0 -1
  633. package/dist/timeline/types.js +0 -3
  634. package/dist/timeline/types.js.map +0 -1
  635. package/dist/tree/index.d.ts +0 -5
  636. package/dist/tree/index.d.ts.map +0 -1
  637. package/dist/tree/index.js +0 -5
  638. package/dist/tree/index.js.map +0 -1
  639. package/dist/tree/tree-base.d.ts +0 -70
  640. package/dist/tree/tree-base.d.ts.map +0 -1
  641. package/dist/tree/tree-base.js +0 -1028
  642. package/dist/tree/tree-base.js.map +0 -1
  643. package/dist/tree/tree-controller.d.ts +0 -14
  644. package/dist/tree/tree-controller.d.ts.map +0 -1
  645. package/dist/tree/tree-controller.js +0 -96
  646. package/dist/tree/tree-controller.js.map +0 -1
  647. package/dist/tree/tree-list.d.ts +0 -20
  648. package/dist/tree/tree-list.d.ts.map +0 -1
  649. package/dist/tree/tree-list.js +0 -174
  650. package/dist/tree/tree-list.js.map +0 -1
  651. package/dist/tree/types.d.ts +0 -14
  652. package/dist/tree/types.d.ts.map +0 -1
  653. package/dist/tree/types.js +0 -7
  654. package/dist/tree/types.js.map +0 -1
  655. package/dist/util/checkbox.d.ts +0 -2
  656. package/dist/util/checkbox.d.ts.map +0 -1
  657. package/dist/util/checkbox.js +0 -69
  658. package/dist/util/checkbox.js.map +0 -1
  659. package/dist/util/circle-arc.d.ts +0 -34
  660. package/dist/util/circle-arc.d.ts.map +0 -1
  661. package/dist/util/circle-arc.js +0 -85
  662. package/dist/util/circle-arc.js.map +0 -1
  663. package/dist/util/clamp.d.ts +0 -4
  664. package/dist/util/clamp.d.ts.map +0 -1
  665. package/dist/util/clamp.js +0 -23
  666. package/dist/util/clamp.js.map +0 -1
  667. package/dist/util/compare.d.ts +0 -53
  668. package/dist/util/compare.d.ts.map +0 -1
  669. package/dist/util/compare.js +0 -91
  670. package/dist/util/compare.js.map +0 -1
  671. package/dist/util/content-editable.d.ts +0 -2
  672. package/dist/util/content-editable.d.ts.map +0 -1
  673. package/dist/util/content-editable.js +0 -13
  674. package/dist/util/content-editable.js.map +0 -1
  675. package/dist/util/coordinates.d.ts +0 -3
  676. package/dist/util/coordinates.d.ts.map +0 -1
  677. package/dist/util/coordinates.js +0 -11
  678. package/dist/util/coordinates.js.map +0 -1
  679. package/dist/util/drag.d.ts +0 -16
  680. package/dist/util/drag.d.ts.map +0 -1
  681. package/dist/util/drag.js +0 -20
  682. package/dist/util/drag.js.map +0 -1
  683. package/dist/util/is-numeric.d.ts +0 -2
  684. package/dist/util/is-numeric.d.ts.map +0 -1
  685. package/dist/util/is-numeric.js +0 -9
  686. package/dist/util/is-numeric.js.map +0 -1
  687. package/dist/util/key-value.d.ts +0 -5
  688. package/dist/util/key-value.d.ts.map +0 -1
  689. package/dist/util/key-value.js +0 -29
  690. package/dist/util/key-value.js.map +0 -1
  691. package/dist/util/near.d.ts +0 -2
  692. package/dist/util/near.d.ts.map +0 -1
  693. package/dist/util/near.js +0 -6
  694. package/dist/util/near.js.map +0 -1
  695. package/dist/util/primitive-types.d.ts +0 -6
  696. package/dist/util/primitive-types.d.ts.map +0 -1
  697. package/dist/util/primitive-types.js +0 -2
  698. package/dist/util/primitive-types.js.map +0 -1
  699. package/dist/util/svg-editable-text.d.ts +0 -26
  700. package/dist/util/svg-editable-text.d.ts.map +0 -1
  701. package/dist/util/svg-editable-text.js +0 -119
  702. package/dist/util/svg-editable-text.js.map +0 -1
  703. package/dist/util/time.d.ts +0 -2
  704. package/dist/util/time.d.ts.map +0 -1
  705. package/dist/util/time.js +0 -2
  706. package/dist/util/time.js.map +0 -1
  707. package/dist/util/tooltip-controller.d.ts +0 -10
  708. package/dist/util/tooltip-controller.d.ts.map +0 -1
  709. package/dist/util/tooltip-controller.js +0 -237
  710. package/dist/util/tooltip-controller.js.map +0 -1
  711. package/dist/util/tooltip.d.ts +0 -21
  712. package/dist/util/tooltip.d.ts.map +0 -1
  713. package/dist/util/tooltip.js +0 -98
  714. package/dist/util/tooltip.js.map +0 -1
  715. package/dist/util/value-drag.d.ts +0 -33
  716. package/dist/util/value-drag.d.ts.map +0 -1
  717. package/dist/util/value-drag.js +0 -154
  718. package/dist/util/value-drag.js.map +0 -1
@@ -0,0 +1,1039 @@
1
+ //#region node_modules/.pnpm/@ixfx+guards@0.56.12/node_modules/@ixfx/guards/dist/index.js
2
+ function getErrorMessage(ex) {
3
+ if (typeof ex === `string`) return ex;
4
+ if (ex instanceof Error) return ex.message;
5
+ return String(ex);
6
+ }
7
+ /**
8
+ * Throws an error if any result is a failure.
9
+ * Error message will be the combined from all errors.
10
+ * @param results
11
+ */
12
+ function throwIfFailed(...results) {
13
+ const failed = results.filter((r) => resultIsError(r));
14
+ if (failed.length === 0) return;
15
+ const messages = failed.map((f) => resultErrorToString(f));
16
+ throw new Error(messages.join(`, `));
17
+ }
18
+ /**
19
+ * If any of `results` is an error, throws it, otherwise ignored.
20
+ * @param results
21
+ * @returns _true_ or throws
22
+ */
23
+ function resultThrow$1(...results) {
24
+ for (const r of results) {
25
+ if (r === void 0) continue;
26
+ if (typeof r === `boolean`) if (!r) throw IxfxError$1.fromString(`Guard failed: false result`);
27
+ else continue;
28
+ const rr = typeof r === `object` ? r : r();
29
+ if (rr === void 0) continue;
30
+ if (rr.success) continue;
31
+ throw resultToError$1(rr);
32
+ }
33
+ return true;
34
+ }
35
+ /**
36
+ * Returns _true_ if `result` is an error
37
+ * @param result
38
+ */
39
+ function resultIsError(result) {
40
+ if (typeof result !== `object` || result === null) return false;
41
+ return !result.success;
42
+ }
43
+ var IxfxError$1 = class IxfxError extends Error {
44
+ cause;
45
+ constructor(message, cause) {
46
+ super(message);
47
+ this.cause = cause;
48
+ }
49
+ static fromError(error, cause) {
50
+ const message = error.message;
51
+ const stack = error.stack;
52
+ const name = error.name;
53
+ const newError = new IxfxError(message, cause);
54
+ newError.stack = stack;
55
+ newError.name = `IxfxError(${name})`;
56
+ return newError;
57
+ }
58
+ static fromString(message, cause) {
59
+ const newError = new IxfxError(message, cause);
60
+ newError.name = `IxfxError`;
61
+ return newError;
62
+ }
63
+ };
64
+ /**
65
+ * Gets the result as an Error
66
+ * @param result
67
+ */
68
+ function resultToError$1(result) {
69
+ if (typeof result.error === `string`) return IxfxError$1.fromString(result.error, result.info);
70
+ if (result.error instanceof Error) return IxfxError$1.fromError(result.error, result.info);
71
+ return IxfxError$1.fromString(JSON.stringify(result.error), result.info);
72
+ }
73
+ /**
74
+ * Returns the error as a string.
75
+ * @param result
76
+ */
77
+ function resultErrorToString(result) {
78
+ if (result.error instanceof Error) return getErrorMessage(result.error);
79
+ if (typeof result.error === `string`) return result.error;
80
+ return JSON.stringify(result.error);
81
+ }
82
+ /**
83
+ * Returns a {@link ResultError} using 'error' as the message.
84
+ * @param error
85
+ * @param info
86
+ */
87
+ function errorResult(error, info) {
88
+ return {
89
+ success: false,
90
+ error,
91
+ info
92
+ };
93
+ }
94
+ /**
95
+ * Returns first failed result or final value.
96
+ * @param results
97
+ */
98
+ function resultsCollate(...results) {
99
+ let rr;
100
+ for (const r of results) {
101
+ if (typeof r === `boolean`) {
102
+ if (r) continue;
103
+ return {
104
+ success: false,
105
+ error: `Guard failed: false result`
106
+ };
107
+ }
108
+ rr = typeof r === `object` ? r : r();
109
+ if (rr === void 0) continue;
110
+ if (!rr.success) return rr;
111
+ }
112
+ if (!rr) throw new Error(`No results`);
113
+ return rr;
114
+ }
115
+ /**
116
+ * Checks if `t` is not a number or within specified range.
117
+ * Returns `[false, reason:string]` if invalid or `[true]` if valid.
118
+ *
119
+ * Alternatives: {@link integerTest} for additional integer check, {@link percentTest} for percentage-range.
120
+ *
121
+ * * (empty, default): must be a number type and not NaN.
122
+ * * finite: must be a number, not NaN and not infinite
123
+ * * positive: must be at least zero
124
+ * * negative: must be zero or lower
125
+ * * aboveZero: must be above zero
126
+ * * belowZero: must be below zero
127
+ * * percentage: must be within 0-1, inclusive
128
+ * * nonZero: can be anything except zero
129
+ * * bipolar: can be -1 to 1, inclusive
130
+ * @param value Value to check
131
+ * @param parameterName Name of parameter (for more helpful exception messages)
132
+ * @param range Range to enforce
133
+ * @returns
134
+ */
135
+ const numberTest = (value, range = ``, parameterName = `?`, info) => {
136
+ if (value === null) return {
137
+ success: false,
138
+ error: `Parameter '${parameterName}' is null`,
139
+ info
140
+ };
141
+ if (typeof value === `undefined`) return {
142
+ success: false,
143
+ error: `Parameter '${parameterName}' is undefined`,
144
+ info
145
+ };
146
+ if (Number.isNaN(value)) return {
147
+ success: false,
148
+ error: `Parameter '${parameterName}' is NaN`,
149
+ info
150
+ };
151
+ if (typeof value !== `number`) return {
152
+ success: false,
153
+ error: `Parameter '${parameterName}' is not a number (${JSON.stringify(value)})`,
154
+ info
155
+ };
156
+ switch (range) {
157
+ case `finite`:
158
+ if (!Number.isFinite(value)) return {
159
+ success: false,
160
+ error: `Parameter '${parameterName} must be finite (Got: ${value})`,
161
+ info
162
+ };
163
+ break;
164
+ case `positive`:
165
+ if (value < 0) return {
166
+ success: false,
167
+ error: `Parameter '${parameterName}' must be at least zero (${value})`,
168
+ info
169
+ };
170
+ break;
171
+ case `negative`:
172
+ if (value > 0) return {
173
+ success: false,
174
+ error: `Parameter '${parameterName}' must be zero or lower (${value})`,
175
+ info
176
+ };
177
+ break;
178
+ case `aboveZero`:
179
+ if (value <= 0) return {
180
+ success: false,
181
+ error: `Parameter '${parameterName}' must be above zero (${value})`,
182
+ info
183
+ };
184
+ break;
185
+ case `belowZero`:
186
+ if (value >= 0) return {
187
+ success: false,
188
+ error: `Parameter '${parameterName}' must be below zero (${value})`,
189
+ info
190
+ };
191
+ break;
192
+ case `percentage`:
193
+ if (value > 1 || value < 0) return {
194
+ success: false,
195
+ error: `Parameter '${parameterName}' must be in percentage range (0 to 1). (${value})`,
196
+ info
197
+ };
198
+ break;
199
+ case `nonZero`:
200
+ if (value === 0) return {
201
+ success: false,
202
+ error: `Parameter '${parameterName}' must non-zero. (${value})`,
203
+ info
204
+ };
205
+ break;
206
+ case `bipolar`:
207
+ if (value > 1 || value < -1) return {
208
+ success: false,
209
+ error: `Parameter '${parameterName}' must be in bipolar percentage range (-1 to 1). (${value})`,
210
+ info
211
+ };
212
+ break;
213
+ }
214
+ return {
215
+ success: true,
216
+ value,
217
+ info
218
+ };
219
+ };
220
+ /**
221
+ * Returns test of `value` being in the range of 0-1.
222
+ * Equiv to `number(value, `percentage`);`
223
+ *
224
+ * This is the same as calling ```number(t, `percentage`)```
225
+ * @param value Value to check
226
+ * @param parameterName Param name for customising exception message
227
+ * @returns
228
+ */
229
+ const percentTest = (value, parameterName = `?`, info) => numberTest(value, `percentage`, parameterName, info);
230
+ /**
231
+ * Checks if `value` an integer and meets additional criteria.
232
+ * See {@link numberTest} for guard details, or use that if integer checking is not required.
233
+ *
234
+ * Note:
235
+ * * `bipolar` will mean -1, 0 or 1.
236
+ * * positive: must be at least zero
237
+ * * negative: must be zero or lower
238
+ * * aboveZero: must be above zero
239
+ * * belowZero: must be below zero
240
+ * * percentage: must be within 0-1, inclusive
241
+ * * nonZero: can be anything except zero
242
+ * @param value Value to check
243
+ * @param parameterName Param name for customising exception message
244
+ * @param range Guard specifier.
245
+ */
246
+ const integerTest = (value, range = ``, parameterName = `?`) => {
247
+ return resultsCollate(numberTest(value, range, parameterName), () => {
248
+ if (!Number.isInteger(value)) return {
249
+ success: false,
250
+ error: `Param '${parameterName}' is not an integer`
251
+ };
252
+ return {
253
+ success: true,
254
+ value
255
+ };
256
+ });
257
+ };
258
+ const numberInclusiveRangeTest = (value, min, max, parameterName = `?`) => {
259
+ if (typeof value !== `number`) return {
260
+ success: false,
261
+ error: `Param '${parameterName}' is not a number type. Got type: '${typeof value}' value: '${JSON.stringify(value)}'`
262
+ };
263
+ if (Number.isNaN(value)) return {
264
+ success: false,
265
+ error: `Param '${parameterName}' is not within range ${min}-${max}. Got: NaN`
266
+ };
267
+ if (Number.isFinite(value)) {
268
+ if (value < min) return {
269
+ success: false,
270
+ error: `Param '${parameterName}' is below range ${min}-${max}. Got: ${value}`
271
+ };
272
+ else if (value > max) return {
273
+ success: false,
274
+ error: `Param '${parameterName}' is above range ${min}-${max}. Got: ${value}`
275
+ };
276
+ return {
277
+ success: true,
278
+ value
279
+ };
280
+ } else return {
281
+ success: false,
282
+ error: `Param '${parameterName}' is not within range ${min}-${max}. Got: infinite`
283
+ };
284
+ };
285
+ const nullUndefTest = (value, parameterName = `?`) => {
286
+ if (typeof value === `undefined`) return {
287
+ success: false,
288
+ error: `${parameterName} param is undefined`
289
+ };
290
+ if (value === null) return {
291
+ success: false,
292
+ error: `${parameterName} param is null`
293
+ };
294
+ return {
295
+ success: true,
296
+ value
297
+ };
298
+ };
299
+ const functionTest$1 = (value, parameterName = `?`) => {
300
+ if (value === void 0) return {
301
+ success: false,
302
+ error: `Param '${parameterName}' is undefined. Expected: function.`
303
+ };
304
+ if (value === null) return {
305
+ success: false,
306
+ error: `Param '${parameterName}' is null. Expected: function.`
307
+ };
308
+ if (typeof value !== `function`) return {
309
+ success: false,
310
+ error: `Param '${parameterName}' is type '${typeof value}'. Expected: function`
311
+ };
312
+ return {
313
+ success: true,
314
+ value
315
+ };
316
+ };
317
+ /**
318
+ * Tests_if `value` is a plain object
319
+ *
320
+ * ```js
321
+ * isPlainObject(`text`); // false
322
+ * isPlainObject(document); // false
323
+ * isPlainObject({ hello: `there` }); // true
324
+ * ```
325
+ * @param value
326
+ * @returns
327
+ */
328
+ const testPlainObject = (value) => {
329
+ if (typeof value !== `object` || value === null) return {
330
+ success: false,
331
+ error: `Value is null or not object type`
332
+ };
333
+ const prototype = Object.getPrototypeOf(value);
334
+ if ((prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value)) return {
335
+ success: true,
336
+ value
337
+ };
338
+ return {
339
+ success: false,
340
+ error: `Fancy object`
341
+ };
342
+ };
343
+ /**
344
+ * Tests if `value` is primitive value (bigint,number,string or boolean) or plain object
345
+ * @param value
346
+ * @returns
347
+ */
348
+ const testPlainObjectOrPrimitive = (value) => {
349
+ const t = typeof value;
350
+ if (t === `symbol`) return {
351
+ success: false,
352
+ error: `Symbol type`
353
+ };
354
+ if (t === `function`) return {
355
+ success: false,
356
+ error: `Function type`
357
+ };
358
+ if (t === `bigint`) return {
359
+ success: true,
360
+ value
361
+ };
362
+ if (t === `number`) return {
363
+ success: true,
364
+ value
365
+ };
366
+ if (t === `string`) return {
367
+ success: true,
368
+ value
369
+ };
370
+ if (t === `boolean`) return {
371
+ success: true,
372
+ value
373
+ };
374
+ return testPlainObject(value);
375
+ };
376
+ /**
377
+ * Throws an error if parameter is not an string
378
+ * @param value
379
+ * @param parameterName
380
+ */
381
+ const stringTest = (value, range = ``, parameterName = `?`) => {
382
+ if (typeof value !== `string`) return {
383
+ success: false,
384
+ error: `Param '${parameterName} is not type string. Got: ${typeof value}`
385
+ };
386
+ switch (range) {
387
+ case `non-empty`:
388
+ if (value.length === 0) return {
389
+ success: false,
390
+ error: `Param '${parameterName} is empty`
391
+ };
392
+ break;
393
+ }
394
+ return {
395
+ success: true,
396
+ value
397
+ };
398
+ };
399
+ //#endregion
400
+ //#region node_modules/.pnpm/@ixfx+arrays@0.56.12/node_modules/@ixfx/arrays/dist/index.js
401
+ /**
402
+ * If any of `results` is an error, throws it, otherwise ignored.
403
+ * @param results
404
+ * @returns _true_ or throws
405
+ */
406
+ function resultThrow(...results) {
407
+ for (const r of results) {
408
+ if (r === void 0) continue;
409
+ if (typeof r === `boolean`) if (!r) throw IxfxError.fromString(`Guard failed: false result`);
410
+ else continue;
411
+ const rr = typeof r === `object` ? r : r();
412
+ if (rr === void 0) continue;
413
+ if (rr.success) continue;
414
+ throw resultToError(rr);
415
+ }
416
+ return true;
417
+ }
418
+ var IxfxError = class IxfxError extends Error {
419
+ cause;
420
+ constructor(message, cause) {
421
+ super(message);
422
+ this.cause = cause;
423
+ }
424
+ static fromError(error, cause) {
425
+ const message = error.message;
426
+ const stack = error.stack;
427
+ const name = error.name;
428
+ const newError = new IxfxError(message, cause);
429
+ newError.stack = stack;
430
+ newError.name = `IxfxError(${name})`;
431
+ return newError;
432
+ }
433
+ static fromString(message, cause) {
434
+ const newError = new IxfxError(message, cause);
435
+ newError.name = `IxfxError`;
436
+ return newError;
437
+ }
438
+ };
439
+ /**
440
+ * Gets the result as an Error
441
+ * @param result
442
+ */
443
+ function resultToError(result) {
444
+ if (typeof result.error === `string`) return IxfxError.fromString(result.error, result.info);
445
+ if (result.error instanceof Error) return IxfxError.fromError(result.error, result.info);
446
+ return IxfxError.fromString(JSON.stringify(result.error), result.info);
447
+ }
448
+ /**
449
+ * Throws an error if parameter is not an array
450
+ * @param value
451
+ * @param parameterName
452
+ */
453
+ const arrayTest = (value, parameterName = `?`) => {
454
+ if (!Array.isArray(value)) return {
455
+ success: false,
456
+ error: `Parameter '${parameterName}' is expected to be an array'`
457
+ };
458
+ return {
459
+ success: true,
460
+ value
461
+ };
462
+ };
463
+ const functionTest = (value, parameterName = `?`) => {
464
+ if (value === void 0) return {
465
+ success: false,
466
+ error: `Param '${parameterName}' is undefined. Expected: function.`
467
+ };
468
+ if (value === null) return {
469
+ success: false,
470
+ error: `Param '${parameterName}' is null. Expected: function.`
471
+ };
472
+ if (typeof value !== `function`) return {
473
+ success: false,
474
+ error: `Param '${parameterName}' is type '${typeof value}'. Expected: function`
475
+ };
476
+ return {
477
+ success: true,
478
+ value
479
+ };
480
+ };
481
+ /**
482
+ * If input is a string, it is returned.
483
+ * Otherwise, it returns the result of JSON.stringify() with fields ordered.
484
+ *
485
+ * This allows for more consistent comparisons when object field orders are different but values the same.
486
+ * @param itemToMakeStringFor
487
+ * @returns
488
+ */
489
+ /**
490
+ * Default comparer function is equiv to checking `a === b`.
491
+ * Use {@link isEqualValueDefault} to compare by value, via comparing JSON string representation.
492
+ */
493
+ const isEqualDefault = (a, b) => a === b;
494
+ /**
495
+ * Returns _true_ if array contains duplicate instances based on `===` equality checking.
496
+ *
497
+ * ```js
498
+ * const o1 = { hello: `there` };
499
+ * const o2 = { hello: `there` };
500
+ * containsDuplicateInstances([ o1, o2 ]); // False
501
+ * containsDuplicateInstances([ o1, o1 ]); // True
502
+ * ```
503
+ *
504
+ * Primitive values are compared by value:
505
+ * ```js
506
+ * containsDuplicateInstances([ 1, 2, 1 ]); // True
507
+ * containsDuplicateInstances([ `a`, `b`, `a` ]); // True
508
+ * ```
509
+ *
510
+ * Use {@link containsDuplicateValues} if you'd rather compare by value.
511
+ * @param array
512
+ * @throws {TypeError} If `array` parameter is not an array
513
+ * @returns
514
+ */
515
+ const containsDuplicateInstances = (array) => {
516
+ resultThrow(arrayTest(array, `array`));
517
+ for (let index = 0; index < array.length; index++) for (let x = 0; x < array.length; x++) {
518
+ if (index === x) continue;
519
+ if (array[index] === array[x]) return true;
520
+ }
521
+ return false;
522
+ };
523
+ /**
524
+ * Yields pairs made up of overlapping items from the input array.
525
+ *
526
+ * Throws an error if there are less than two entries.
527
+ *
528
+ * ```js
529
+ * pairwise([1, 2, 3, 4, 5]);
530
+ * Yields:
531
+ * [ [1,2], [2,3], [3,4], [4,5] ]
532
+ * ```
533
+ * @param values
534
+ */
535
+ function* pairwise(values) {
536
+ resultThrow(arrayTest(values, `values`));
537
+ if (values.length < 2) throw new Error(`Array needs to have at least two entries. Length: ${values.length}`);
538
+ for (let index = 1; index < values.length; index++) yield [values[index - 1], values[index]];
539
+ }
540
+ /**
541
+ * Returns an array with value(s) omitted.
542
+ *
543
+ * If value is not found, result will be a copy of input.
544
+ * Value checking is completed via the provided `comparer` function.
545
+ * By default checking whether `a === b`. To compare based on value, use the `isEqualValueDefault` comparer.
546
+ *
547
+ * @example
548
+ * ```js
549
+ * const data = [100, 20, 40];
550
+ * const filtered = without(data, 20); // [100, 40]
551
+ * ```
552
+ *
553
+ * @example Using value-based comparison
554
+ * ```js
555
+ * const data = [{ name: `Alice` }, { name:`Sam` }];
556
+ *
557
+ * // This wouldn't work as expected, because the default comparer uses instance,
558
+ * // not value:
559
+ * without(data, { name: `Alice` });
560
+ *
561
+ * // So instead we can use a value comparer:
562
+ * without(data, { name:`Alice` }, isEqualValueDefault);
563
+ * ```
564
+ *
565
+ * @example Use a function
566
+ * ```js
567
+ * const data = [ { name: `Alice` }, { name:`Sam` }];
568
+ * without(data, { name:`ALICE` }, (a, b) => {
569
+ * return (a.name.toLowerCase() === b.name.toLowerCase());
570
+ * });
571
+ * ```
572
+ *
573
+ * Consider {@link remove} to remove an item by index.
574
+ *
575
+ * @typeParam V - Type of array items
576
+ * @param sourceArray Source array
577
+ * @param toRemove Value(s) to remove
578
+ * @param comparer Comparison function. If not provided `isEqualDefault` is used, which compares using `===`
579
+ * @throws {TypeError} If `sourceArray` is not an array, or compare function is not a function
580
+ * @return Copy of array without value.
581
+ */
582
+ const without = (sourceArray, toRemove, comparer = isEqualDefault) => {
583
+ resultThrow(arrayTest(sourceArray, `sourceArray`), functionTest(comparer, `comparer`));
584
+ if (Array.isArray(toRemove)) {
585
+ const returnArray = [];
586
+ for (const source of sourceArray) if (!toRemove.some((v) => comparer(source, v))) returnArray.push(source);
587
+ return returnArray;
588
+ } else return sourceArray.filter((v) => !comparer(v, toRemove));
589
+ };
590
+ //#endregion
591
+ //#region node_modules/.pnpm/@ixfx+numbers@0.56.12/node_modules/@ixfx/numbers/dist/index.js
592
+ /**
593
+ * Returns the dot product of arbitrary-sized arrays. Assumed they are of the same length.
594
+ * @param values
595
+ * @param nonNumber What to do if array contains an invalid number. Error: throw an exception, 'treat-as-zero' use as 0 instead, 'ignore', let math run with invalid number
596
+ * @returns
597
+ */
598
+ const dotProduct = (values, nonNumber = `ignore`) => {
599
+ let r = 0;
600
+ const length = values[0].length;
601
+ for (let index = 0; index < length; index++) {
602
+ let t = 0;
603
+ for (const [p, value] of values.entries()) {
604
+ let v = value[index];
605
+ if (Number.isNaN(v) || !Number.isFinite(v)) {
606
+ if (nonNumber === `treat-as-zero`) v = 0;
607
+ else if (nonNumber === `error`) throw new TypeError(`Invalid number at index ${index},${p}`);
608
+ }
609
+ if (p === 0) t = v;
610
+ else t *= v;
611
+ }
612
+ r += t;
613
+ }
614
+ return r;
615
+ };
616
+ /**
617
+ * Clamps a value between min and max (both inclusive)
618
+ * Defaults to a 0-1 range, useful for percentages.
619
+ *
620
+ * @example Usage
621
+ * ```js
622
+ * // 0.5 - just fine, within default of 0 to 1
623
+ * clamp(0.5);
624
+ * // 1 - above default max of 1
625
+ * clamp(1.5);
626
+ * // 0 - below range
627
+ * clamp(-50, 0, 100);
628
+ * // 50 - within range
629
+ * clamp(50, 0, 50);
630
+ * ```
631
+ *
632
+ * For clamping integer ranges, consider {@link clampIndex }
633
+ * For clamping `{ x, y }` points, consider {@link https://api.ixfx.fun/_ixfx/geometry/Points/clamp/ @ixfx/geometry/Points.clamp}.
634
+ * For clamping bipolar values: {@link Bipolar.clamp}
635
+ * @param value Value to clamp
636
+ * @param min value (inclusive)
637
+ * @param max value (inclusive)
638
+ * @returns Clamped value
639
+ */
640
+ function clamp(value, min = 0, max = 1) {
641
+ if (Number.isNaN(value)) throw new Error(`Param 'value' is NaN`);
642
+ if (Number.isNaN(min)) throw new Error(`Param 'min' is NaN`);
643
+ if (Number.isNaN(max)) throw new Error(`Param 'max' is NaN`);
644
+ if (value < min) return min;
645
+ if (value > max) return max;
646
+ return value;
647
+ }
648
+ /**
649
+ * Returns a function that clamps values.
650
+ *
651
+ * ```js
652
+ * const c = clamper(0,100);
653
+ * c(50); // 50
654
+ * c(101); // 100
655
+ * c(-5); // 0
656
+ * ```
657
+ * @param min Minimum value. Default: 0
658
+ * @param max Maximum value. Default: 1
659
+ */
660
+ function clamper(min = 0, max = 1) {
661
+ if (Number.isNaN(min)) throw new Error(`Param 'min' is NaN`);
662
+ if (Number.isNaN(max)) throw new Error(`Param 'max' is NaN`);
663
+ return (v) => {
664
+ if (v > max) return max;
665
+ if (v < min) return min;
666
+ return v;
667
+ };
668
+ }
669
+ /**
670
+ * Wraps floating point numbers to be within a range (default: 0..1). Use {@link wrapInteger} if you want to wrap integer values.
671
+ *
672
+ * This logic makes sense for some things like rotation angle.
673
+ *
674
+ * If you just want to lock values to a range without wrapping, consider {@link clamp}.
675
+ *
676
+ * ```js
677
+ * wrap(1.2); // 0.2
678
+ * wrap(2); // 1.0
679
+ * wrap(-0.2); // 0.8
680
+ * ```
681
+ *
682
+ * A range can be provided too:
683
+ * ```js
684
+ * wrap(30, 20, 50); // 30
685
+ * wrap(60, 20, 50); // 30
686
+ * ```
687
+ * @param v
688
+ * @param min
689
+ * @param max
690
+ * @returns
691
+ */
692
+ const wrap = (v, min = 0, max = 1) => {
693
+ resultThrow$1(numberTest(v, ``, `min`), numberTest(min, ``, `min`), numberTest(max, ``, `max`));
694
+ if (v === min) return min;
695
+ if (v === max) return min;
696
+ while (v <= min || v >= max) {
697
+ if (v === max) break;
698
+ if (v === min) break;
699
+ if (v > max) v = min + (v - max);
700
+ else if (v < min) v = max - (min - v);
701
+ }
702
+ return v;
703
+ };
704
+ Math.PI * 2;
705
+ /**
706
+ * Interpolates between `a` and `b` by `amount`. Aka `lerp`.
707
+ *
708
+ * [ixfx Guide on Interpolation](https://ixfx.fun/data/interpolation/overview/)
709
+ *
710
+ * @example Get the halfway point between 30 and 60
711
+ * ```js
712
+ * interpolate(0.5, 30, 60);
713
+ * ```
714
+ *
715
+ * See also {@link interpolatorStepped} and {@link https://api.ixfx.fun/_ixfx/modulation/interpolatorInterval/} for functions
716
+ * which help to manage progression from A->B over steps or interval.
717
+ *
718
+ * Usually interpolation amount is on a 0...1 scale, inclusive. What is the interpolation result
719
+ * if this scale is exceeded? By default it is clamped to 0..1, so the return value is always between `a` and `b` (inclusive).
720
+ *
721
+ * Alternatively, set the `limits` option to process `amount`:
722
+ * * 'wrap': wrap amount, eg 1.5 is the same as 0.5, 2 is the same as 1
723
+ * * 'ignore': allow exceeding values. eg 1.5 will yield b*1.5.
724
+ * * 'clamp': default behaviour of clamping interpolation amount to 0..1
725
+ *
726
+ * Interpolation can be non-linear using 'easing' option or 'transform' funciton.
727
+ * ```js
728
+ * interpolate(0.1, 0, 100, { easing: `quadIn` });
729
+ * ```
730
+ * There are a few variations when calling `interpolate`, depending on what parameters are fixed.
731
+ * * `interpolate(amount)`: returns a function that needs a & b
732
+ * * `interpolate(a, b)`: returns a function that needs the interpolation amount
733
+ */
734
+ function interpolate(pos1, pos2, pos3, pos4) {
735
+ let amountProcess;
736
+ let limits = `clamp`;
737
+ const handleAmount = (amount) => {
738
+ if (amountProcess) amount = amountProcess(amount);
739
+ if (limits === void 0 || limits === `clamp`) amount = clamp(amount);
740
+ else if (limits === `wrap`) {
741
+ if (amount > 1) amount = amount % 1;
742
+ else if (amount < 0) amount = 1 + amount % 1;
743
+ }
744
+ return amount;
745
+ };
746
+ const doTheEase = (_amt, _a, _b) => {
747
+ resultThrow$1(numberTest(_a, ``, `a`), numberTest(_b, ``, `b`), numberTest(_amt, ``, `amount`));
748
+ _amt = handleAmount(_amt);
749
+ return (1 - _amt) * _a + _amt * _b;
750
+ };
751
+ const readOpts = (o = {}) => {
752
+ if (o.transform !== void 0) {
753
+ if (typeof o.transform !== `function`) throw new Error(`Param 'transform' is expected to be a function. Got: ${typeof o.transform}`);
754
+ amountProcess = o.transform;
755
+ }
756
+ limits = o.limits ?? `clamp`;
757
+ };
758
+ const rawEase = (_amt, _a, _b) => (1 - _amt) * _a + _amt * _b;
759
+ if (typeof pos1 !== `number`) throw new TypeError(`First param is expected to be a number. Got: ${typeof pos1}`);
760
+ if (typeof pos2 === `number`) {
761
+ let a;
762
+ let b;
763
+ if (pos3 === void 0 || typeof pos3 === `object`) {
764
+ a = pos1;
765
+ b = pos2;
766
+ readOpts(pos3);
767
+ return (amount) => doTheEase(amount, a, b);
768
+ } else if (typeof pos3 === `number`) {
769
+ a = pos2;
770
+ b = pos3;
771
+ readOpts(pos4);
772
+ return doTheEase(pos1, a, b);
773
+ } else throw new Error(`Values for 'a' and 'b' not defined`);
774
+ } else if (pos2 === void 0 || typeof pos2 === `object`) {
775
+ const amount = handleAmount(pos1);
776
+ readOpts(pos2);
777
+ resultThrow$1(numberTest(amount, ``, `amount`));
778
+ return (aValue, bValue) => rawEase(amount, aValue, bValue);
779
+ }
780
+ }
781
+ /**
782
+ * Rounds a number.
783
+ *
784
+ * If one parameter is given, it's the decimal places,
785
+ * and a rounding function is returned:
786
+ * ```js
787
+ * const r = round(2);
788
+ * r(10.12355); // 10.12
789
+ * ```
790
+ *
791
+ * If two parameters are given, the first is decimal places,
792
+ * the second the value to round.
793
+ * ```js
794
+ * round(2, 10.12355); // 10.12
795
+ * ```
796
+ * @param decimalPlaces
797
+ * @returns
798
+ */
799
+ function round(a, b, roundUp) {
800
+ resultThrow$1(integerTest(a, `positive`, `decimalPlaces`));
801
+ const up = typeof b === `boolean` ? b : roundUp ?? false;
802
+ let rounder;
803
+ if (a === 0) rounder = Math.round;
804
+ else {
805
+ const p = Math.pow(10, a);
806
+ if (up) rounder = (v) => Math.ceil(v * p) / p;
807
+ else rounder = (v) => Math.floor(v * p) / p;
808
+ }
809
+ if (typeof b === `number`) return rounder(b);
810
+ return rounder;
811
+ }
812
+ Math.PI * 2;
813
+ /**
814
+ * A moving average calculator (exponential weighted moving average) which does not keep track of
815
+ * previous samples. Less accurate, but uses less system resources.
816
+ *
817
+ * The `scaling` parameter determines smoothing. A value of `1` means that
818
+ * the latest value is used as the average - that is, no smoothing. Higher numbers
819
+ * introduce progressively more smoothing by weighting the accumulated prior average more heavily.
820
+ *
821
+ * ```
822
+ * const ma = movingAverageLight(); // default scaling of 3
823
+ * ma(50); // 50
824
+ * ma(100); // 75
825
+ * ma(75); // 75
826
+ * ma(0); // 50
827
+ * ```
828
+ *
829
+ * Note that the final average of 50 is pretty far from the last value of 0. To make it more responsive,
830
+ * we could use a lower scaling factor: `movingAverageLight(2)`. This yields a final average of `37.5` instead.
831
+ *
832
+ * @param scaling Scaling factor. 1 is no smoothing. Default: 3
833
+ * @returns Function that adds to average.
834
+ */
835
+ const movingAverageLight = (scaling = 3) => {
836
+ resultThrow$1(numberTest(scaling, `aboveZero`, `scaling`));
837
+ let average = 0;
838
+ let count = 0;
839
+ return (v) => {
840
+ if (numberTest(v, ``, `v`).success && v !== void 0) {
841
+ count++;
842
+ average = average + (v - average) / Math.min(count, scaling);
843
+ }
844
+ return average;
845
+ };
846
+ };
847
+ /**
848
+ * Rounds `v` by `every`. Middle values are rounded up by default.
849
+ *
850
+ * ```js
851
+ * quantiseEvery(11, 10); // 10
852
+ * quantiseEvery(25, 10); // 30
853
+ * quantiseEvery(0, 10); // 0
854
+ * quantiseEvery(4, 10); // 0
855
+ * quantiseEvery(100, 10); // 100
856
+ * ```
857
+ *
858
+ * Also works with decimals
859
+ * ```js
860
+ * quantiseEvery(1.123, 0.1); // 1.1
861
+ * quantiseEvery(1.21, 0.1); // 1.2
862
+ * ```
863
+ *
864
+ * @param v Value to quantise
865
+ * @param every Number to quantise to
866
+ * @param middleRoundsUp If _true_ (default), the exact middle rounds up to next step.
867
+ * @returns
868
+ */
869
+ const quantiseEvery = (v, every, middleRoundsUp = true) => {
870
+ const everyString = every.toString();
871
+ const decimal = everyString.indexOf(`.`);
872
+ let multiplier = 1;
873
+ if (decimal >= 0) {
874
+ multiplier = 10 * everyString.substring(decimal + 1).length;
875
+ every = Math.floor(multiplier * every);
876
+ v = v * multiplier;
877
+ }
878
+ resultThrow$1(numberTest(v, ``, `v`), integerTest(every, ``, `every`));
879
+ let div = v / every;
880
+ const divModule = div % 1;
881
+ div = Math.floor(div);
882
+ if (divModule === .5 && middleRoundsUp || divModule > .5) div++;
883
+ return every * div / multiplier;
884
+ };
885
+ /**
886
+ * Scales `v` from an input range to an output range (aka `map`)
887
+ *
888
+ * For example, if a sensor's useful range is 100-500, scale it to a percentage:
889
+ *
890
+ * ```js
891
+ *
892
+ * scale(sensorReading, 100, 500, 0, 1);
893
+ * ```
894
+ *
895
+ * `scale` defaults to a percentage-range output, so you can get away with:
896
+ * ```js
897
+ * scale(sensorReading, 100, 500);
898
+ * ```
899
+ *
900
+ * If `v` is outside of the input range, it will likewise be outside of the output range.
901
+ * Use {@link scaleClamped} to clip value to range.
902
+ *
903
+ * If inMin and inMax are equal, outMax will be returned.
904
+ *
905
+ * An easing function can be provided for non-linear scaling. In this case
906
+ * the input value is 'pre scaled' using the function before it is applied to the
907
+ * output range.
908
+ *
909
+ * ```js
910
+ * scale(sensorReading, 100, 500, 0, 1, Easings.gaussian());
911
+ * ```
912
+ * @param v Value to scale
913
+ * @param inMin Input minimum
914
+ * @param inMax Input maximum
915
+ * @param outMin Output minimum. If not specified, 0
916
+ * @param outMax Output maximum. If not specified, 1
917
+ * @param easing Easing function
918
+ * @returns Scaled value
919
+ */
920
+ const scale = (v, inMin, inMax, outMin, outMax, easing) => scaler(inMin, inMax, outMin, outMax, easing)(v);
921
+ /**
922
+ * Returns a scaling function
923
+ * @param inMin Input minimum
924
+ * @param inMax Input maximum
925
+ * @param outMin Output minimum. If not specified, 0
926
+ * @param outMax Output maximum. If not specified, 1
927
+ * @param easing Easing function
928
+ * @param clamped If true, value is clamped. Default: false
929
+ * @returns
930
+ */
931
+ const scaler = (inMin, inMax, outMin, outMax, easing, clamped) => {
932
+ resultThrow$1(numberTest(inMin, `finite`, `inMin`), numberTest(inMax, `finite`, `inMax`));
933
+ const oMax = outMax ?? 1;
934
+ const oMin = outMin ?? 0;
935
+ const clampFunction = clamped ? clamper(outMin, outMax) : void 0;
936
+ return (v) => {
937
+ if (inMin === inMax) return oMax;
938
+ let a = (v - inMin) / (inMax - inMin);
939
+ if (easing !== void 0) a = easing(a);
940
+ const x = a * (oMax - oMin) + oMin;
941
+ if (clampFunction) return clampFunction(x);
942
+ return x;
943
+ };
944
+ };
945
+ /**
946
+ * As {@link scale}, but result is clamped to be
947
+ * within `outMin` and `outMax`. Useful if you can't be sure
948
+ * that `v` is in 0..1 range.
949
+ *
950
+ * @param value
951
+ * @param inMin
952
+ * @param inMax
953
+ * @param outMin 1 by default
954
+ * @param outMax 0 by default d
955
+ * @param easing
956
+ * @returns
957
+ */
958
+ const scaleClamped = (value, inMin, inMax, outMin, outMax, easing) => {
959
+ if (typeof outMax === `undefined`) outMax = 1;
960
+ if (typeof outMin === `undefined`) outMin = 0;
961
+ if (inMin === inMax) return outMax;
962
+ return clamp(scale(value, inMin, inMax, outMin, outMax, easing), outMin, outMax);
963
+ };
964
+ /**
965
+ * Returns an empty range:
966
+ * ```js
967
+ * {
968
+ * min: Number.MAX_SAFE_INTEGER,
969
+ * max: Number.MIN_SAFE_INTEGER
970
+ * }
971
+ * ```
972
+ * @returns
973
+ */
974
+ const rangeInit = () => ({
975
+ min: Number.MAX_SAFE_INTEGER,
976
+ max: Number.MIN_SAFE_INTEGER
977
+ });
978
+ /**
979
+ * Keeps track of min/max values.
980
+ *
981
+ * ```js
982
+ * const s = rangeStream();
983
+ * s.seen(10); // { min: 10, max: 10 }
984
+ * s.seen(5); // { min: 5, max: 10 }
985
+ * ```
986
+ *
987
+ * When calling `seen()`, non-numbers, or non-finite numbers are silently ignored.
988
+ *
989
+ * ```js
990
+ * s.reset(); // Reset
991
+ * s.min/s.max; // Current min/max
992
+ * s.range; // Current { min, max }
993
+ * ```
994
+ * @param initWith
995
+ * @returns
996
+ */
997
+ const rangeStream = (initWith = rangeInit()) => {
998
+ let { min, max } = initWith;
999
+ const seen = (v) => {
1000
+ if (typeof v === `number`) {
1001
+ if (!Number.isNaN(v) && Number.isFinite(v)) {
1002
+ min = Math.min(min, v);
1003
+ max = Math.max(max, v);
1004
+ }
1005
+ }
1006
+ return {
1007
+ min,
1008
+ max
1009
+ };
1010
+ };
1011
+ const reset = () => {
1012
+ min = Number.MAX_SAFE_INTEGER;
1013
+ max = Number.MIN_SAFE_INTEGER;
1014
+ return {
1015
+ min,
1016
+ max
1017
+ };
1018
+ };
1019
+ return {
1020
+ seen,
1021
+ reset,
1022
+ get range() {
1023
+ return {
1024
+ min,
1025
+ max
1026
+ };
1027
+ },
1028
+ get min() {
1029
+ return min;
1030
+ },
1031
+ get max() {
1032
+ return max;
1033
+ }
1034
+ };
1035
+ };
1036
+ //#endregion
1037
+ export { resultThrow$1 as C, throwIfFailed as E, percentTest as S, testPlainObjectOrPrimitive as T, functionTest$1 as _, movingAverageLight as a, numberInclusiveRangeTest as b, round as c, scaler as d, wrap as f, errorResult as g, without as h, interpolate as i, scale as l, pairwise as m, clamper as n, quantiseEvery as o, containsDuplicateInstances as p, dotProduct as r, rangeStream as s, clamp as t, scaleClamped as u, integerTest as v, stringTest as w, numberTest as x, nullUndefTest as y };
1038
+
1039
+ //# sourceMappingURL=dist-D7kJgnSE.js.map