@ixfx/components 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. package/LICENSE +1 -1
  2. package/bundle/chunk-pbuEa-1d.js +13 -0
  3. package/bundle/index.d.ts +4702 -569
  4. package/bundle/index.d.ts.map +1 -1
  5. package/bundle/index.js +34929 -2800
  6. package/bundle/index.js.map +1 -1
  7. package/bundle/style.css +133 -0
  8. package/dist/ac-text/ac-text.d.ts +99 -0
  9. package/dist/ac-text/ac-text.d.ts.map +1 -0
  10. package/dist/ac-text/ac-text.js +571 -0
  11. package/dist/ac-text/ac-text.js.map +1 -0
  12. package/dist/button/button-styles.d.ts +2 -0
  13. package/dist/button/button-styles.d.ts.map +1 -0
  14. package/dist/button/button-styles.js +75 -0
  15. package/dist/button/button-styles.js.map +1 -0
  16. package/dist/button/button.d.ts +16 -0
  17. package/dist/button/button.d.ts.map +1 -0
  18. package/dist/button/button.js +58 -0
  19. package/dist/button/button.js.map +1 -0
  20. package/dist/button/radio-group.d.ts +44 -0
  21. package/dist/button/radio-group.d.ts.map +1 -0
  22. package/dist/button/radio-group.js +385 -0
  23. package/dist/button/radio-group.js.map +1 -0
  24. package/dist/button/split-button.d.ts +59 -0
  25. package/dist/button/split-button.d.ts.map +1 -0
  26. package/dist/button/split-button.js +480 -0
  27. package/dist/button/split-button.js.map +1 -0
  28. package/dist/button/types.d.ts +18 -0
  29. package/dist/button/types.d.ts.map +1 -0
  30. package/dist/button/types.js +2 -0
  31. package/dist/button/types.js.map +1 -0
  32. package/dist/checkbox.d.ts +64 -0
  33. package/dist/checkbox.d.ts.map +1 -0
  34. package/dist/checkbox.js +265 -0
  35. package/dist/checkbox.js.map +1 -0
  36. package/dist/colour-picker/colour-picker-popup.d.ts +102 -0
  37. package/dist/colour-picker/colour-picker-popup.d.ts.map +1 -0
  38. package/dist/colour-picker/colour-picker-popup.js +399 -0
  39. package/dist/colour-picker/colour-picker-popup.js.map +1 -0
  40. package/dist/colour-picker/colour-picker.d.ts +100 -0
  41. package/dist/colour-picker/colour-picker.d.ts.map +1 -0
  42. package/dist/colour-picker/colour-picker.js +567 -0
  43. package/dist/colour-picker/colour-picker.js.map +1 -0
  44. package/dist/colour-picker/index.d.ts +4 -0
  45. package/dist/colour-picker/index.d.ts.map +1 -0
  46. package/dist/colour-picker/index.js +3 -0
  47. package/dist/colour-picker/index.js.map +1 -0
  48. package/dist/colour-picker/styles.d.ts +2 -0
  49. package/dist/colour-picker/styles.d.ts.map +1 -0
  50. package/dist/colour-picker/styles.js +139 -0
  51. package/dist/colour-picker/styles.js.map +1 -0
  52. package/dist/colour-picker/types.d.ts +33 -0
  53. package/dist/colour-picker/types.d.ts.map +1 -0
  54. package/dist/colour-picker/types.js +2 -0
  55. package/dist/colour-picker/types.js.map +1 -0
  56. package/dist/colour-picker/util.d.ts +15 -0
  57. package/dist/colour-picker/util.d.ts.map +1 -0
  58. package/dist/colour-picker/util.js +35 -0
  59. package/dist/colour-picker/util.js.map +1 -0
  60. package/dist/common/searchable.d.ts +9 -0
  61. package/dist/common/searchable.d.ts.map +1 -0
  62. package/dist/common/searchable.js +9 -0
  63. package/dist/common/searchable.js.map +1 -0
  64. package/dist/common/tree-component.d.ts +172 -0
  65. package/dist/common/tree-component.d.ts.map +1 -0
  66. package/dist/common/tree-component.js +8 -0
  67. package/dist/common/tree-component.js.map +1 -0
  68. package/dist/common/tree-data-model.d.ts +100 -0
  69. package/dist/common/tree-data-model.d.ts.map +1 -0
  70. package/dist/common/tree-data-model.js +207 -0
  71. package/dist/common/tree-data-model.js.map +1 -0
  72. package/dist/common/tree-item.d.ts +7 -0
  73. package/dist/common/tree-item.d.ts.map +1 -0
  74. package/dist/common/tree-item.js +2 -0
  75. package/dist/common/tree-item.js.map +1 -0
  76. package/dist/common/types.d.ts +69 -0
  77. package/dist/common/types.d.ts.map +1 -0
  78. package/dist/common/types.js +6 -0
  79. package/dist/common/types.js.map +1 -0
  80. package/dist/crumbs/crumb-navigation.d.ts +96 -0
  81. package/dist/crumbs/crumb-navigation.d.ts.map +1 -0
  82. package/dist/crumbs/crumb-navigation.js +911 -0
  83. package/dist/crumbs/crumb-navigation.js.map +1 -0
  84. package/dist/crumbs/crumb-path-controller.d.ts +18 -0
  85. package/dist/crumbs/crumb-path-controller.d.ts.map +1 -0
  86. package/dist/crumbs/crumb-path-controller.js +81 -0
  87. package/dist/crumbs/crumb-path-controller.js.map +1 -0
  88. package/dist/crumbs/crumb-path.d.ts +65 -0
  89. package/dist/crumbs/crumb-path.d.ts.map +1 -0
  90. package/dist/crumbs/crumb-path.js +691 -0
  91. package/dist/crumbs/crumb-path.js.map +1 -0
  92. package/dist/data-display.d.ts +10 -3
  93. package/dist/data-display.d.ts.map +1 -1
  94. package/dist/data-display.js +45 -28
  95. package/dist/data-display.js.map +1 -1
  96. package/dist/editable-label/editable-label.d.ts +98 -0
  97. package/dist/editable-label/editable-label.d.ts.map +1 -0
  98. package/dist/editable-label/editable-label.js +348 -0
  99. package/dist/editable-label/editable-label.js.map +1 -0
  100. package/dist/editable-label/editable-number.d.ts +96 -0
  101. package/dist/editable-label/editable-number.d.ts.map +1 -0
  102. package/dist/editable-label/editable-number.js +702 -0
  103. package/dist/editable-label/editable-number.js.map +1 -0
  104. package/dist/hex/colour.d.ts +6 -0
  105. package/dist/hex/colour.d.ts.map +1 -0
  106. package/dist/hex/colour.js +33 -0
  107. package/dist/hex/colour.js.map +1 -0
  108. package/dist/hex/data.d.ts +18 -0
  109. package/dist/hex/data.d.ts.map +1 -0
  110. package/dist/hex/data.js +61 -0
  111. package/dist/hex/data.js.map +1 -0
  112. package/dist/hex/diff.d.ts +14 -0
  113. package/dist/hex/diff.d.ts.map +1 -0
  114. package/dist/hex/diff.js +31 -0
  115. package/dist/hex/diff.js.map +1 -0
  116. package/dist/hex/hex-editor.d.ts +101 -0
  117. package/dist/hex/hex-editor.d.ts.map +1 -0
  118. package/dist/hex/hex-editor.js +894 -0
  119. package/dist/hex/hex-editor.js.map +1 -0
  120. package/dist/hex/selection.d.ts +11 -0
  121. package/dist/hex/selection.d.ts.map +1 -0
  122. package/dist/hex/selection.js +218 -0
  123. package/dist/hex/selection.js.map +1 -0
  124. package/dist/hex/types.d.ts +34 -0
  125. package/dist/hex/types.d.ts.map +1 -0
  126. package/dist/hex/types.js +4 -0
  127. package/dist/hex/types.js.map +1 -0
  128. package/dist/icons/defaults.d.ts +27 -0
  129. package/dist/icons/defaults.d.ts.map +1 -0
  130. package/dist/icons/defaults.js +34 -0
  131. package/dist/icons/defaults.js.map +1 -0
  132. package/dist/icons/icon.d.ts +31 -0
  133. package/dist/icons/icon.d.ts.map +1 -0
  134. package/dist/icons/icon.js +125 -0
  135. package/dist/icons/icon.js.map +1 -0
  136. package/dist/icons/index.d.ts +5 -0
  137. package/dist/icons/index.d.ts.map +1 -0
  138. package/dist/icons/index.js +6 -0
  139. package/dist/icons/index.js.map +1 -0
  140. package/dist/icons/registry.d.ts +11 -0
  141. package/dist/icons/registry.d.ts.map +1 -0
  142. package/dist/icons/registry.js +17 -0
  143. package/dist/icons/registry.js.map +1 -0
  144. package/dist/incr-search/ac-adapter.d.ts +18 -0
  145. package/dist/incr-search/ac-adapter.d.ts.map +1 -0
  146. package/dist/incr-search/ac-adapter.js +29 -0
  147. package/dist/incr-search/ac-adapter.js.map +1 -0
  148. package/dist/incr-search/controller-miller.d.ts +9 -0
  149. package/dist/incr-search/controller-miller.d.ts.map +1 -0
  150. package/dist/incr-search/controller-miller.js +8 -0
  151. package/dist/incr-search/controller-miller.js.map +1 -0
  152. package/dist/incr-search/controller-tree.d.ts +55 -0
  153. package/dist/incr-search/controller-tree.d.ts.map +1 -0
  154. package/dist/incr-search/controller-tree.js +106 -0
  155. package/dist/incr-search/controller-tree.js.map +1 -0
  156. package/dist/incr-search/element-search.d.ts +15 -0
  157. package/dist/incr-search/element-search.d.ts.map +1 -0
  158. package/dist/incr-search/element-search.js +82 -0
  159. package/dist/incr-search/element-search.js.map +1 -0
  160. package/dist/incr-search/fuzzy.d.ts +3 -0
  161. package/dist/incr-search/fuzzy.d.ts.map +1 -0
  162. package/dist/incr-search/fuzzy.js +37 -0
  163. package/dist/incr-search/fuzzy.js.map +1 -0
  164. package/dist/incr-search/highlight.d.ts +5 -0
  165. package/dist/incr-search/highlight.d.ts.map +1 -0
  166. package/dist/incr-search/highlight.js +54 -0
  167. package/dist/incr-search/highlight.js.map +1 -0
  168. package/dist/incr-search/incr-search.d.ts +3 -0
  169. package/dist/incr-search/incr-search.d.ts.map +1 -0
  170. package/dist/incr-search/incr-search.js +73 -0
  171. package/dist/incr-search/incr-search.js.map +1 -0
  172. package/dist/incr-search/index.d.ts +12 -0
  173. package/dist/incr-search/index.d.ts.map +1 -0
  174. package/dist/incr-search/index.js +8 -0
  175. package/dist/incr-search/index.js.map +1 -0
  176. package/dist/incr-search/types.d.ts +59 -0
  177. package/dist/incr-search/types.d.ts.map +1 -0
  178. package/dist/incr-search/types.js +2 -0
  179. package/dist/incr-search/types.js.map +1 -0
  180. package/dist/index.d.ts +49 -9
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +50 -10
  183. package/dist/index.js.map +1 -1
  184. package/dist/interaction/index.d.ts +10 -0
  185. package/dist/interaction/index.d.ts.map +1 -0
  186. package/dist/interaction/index.js +10 -0
  187. package/dist/interaction/index.js.map +1 -0
  188. package/dist/interaction/tickled-controller.d.ts +186 -0
  189. package/dist/interaction/tickled-controller.d.ts.map +1 -0
  190. package/dist/interaction/tickled-controller.js +256 -0
  191. package/dist/interaction/tickled-controller.js.map +1 -0
  192. package/dist/interaction/tickled-styles.d.ts +53 -0
  193. package/dist/interaction/tickled-styles.d.ts.map +1 -0
  194. package/dist/interaction/tickled-styles.js +106 -0
  195. package/dist/interaction/tickled-styles.js.map +1 -0
  196. package/dist/interaction/tree-keyboard-controller.d.ts +30 -0
  197. package/dist/interaction/tree-keyboard-controller.d.ts.map +1 -0
  198. package/dist/interaction/tree-keyboard-controller.js +105 -0
  199. package/dist/interaction/tree-keyboard-controller.js.map +1 -0
  200. package/dist/keyboard.d.ts +16 -0
  201. package/dist/keyboard.d.ts.map +1 -0
  202. package/dist/keyboard.js +22 -0
  203. package/dist/keyboard.js.map +1 -0
  204. package/dist/labelled-radial-input/index.d.ts +2 -0
  205. package/dist/labelled-radial-input/index.d.ts.map +1 -0
  206. package/dist/labelled-radial-input/index.js +2 -0
  207. package/dist/labelled-radial-input/index.js.map +1 -0
  208. package/dist/labelled-radial-input/labelled-radial-input.d.ts +77 -0
  209. package/dist/labelled-radial-input/labelled-radial-input.d.ts.map +1 -0
  210. package/dist/labelled-radial-input/labelled-radial-input.js +214 -0
  211. package/dist/labelled-radial-input/labelled-radial-input.js.map +1 -0
  212. package/dist/labelled-range-input/index.d.ts +2 -0
  213. package/dist/labelled-range-input/index.d.ts.map +1 -0
  214. package/dist/labelled-range-input/index.js +2 -0
  215. package/dist/labelled-range-input/index.js.map +1 -0
  216. package/dist/labelled-range-input/labelled-range-input.d.ts +80 -0
  217. package/dist/labelled-range-input/labelled-range-input.d.ts.map +1 -0
  218. package/dist/labelled-range-input/labelled-range-input.js +137 -0
  219. package/dist/labelled-range-input/labelled-range-input.js.map +1 -0
  220. package/dist/led.d.ts +20 -0
  221. package/dist/led.d.ts.map +1 -0
  222. package/dist/led.js +100 -0
  223. package/dist/led.js.map +1 -0
  224. package/dist/menu/index.d.ts +14 -0
  225. package/dist/menu/index.d.ts.map +1 -0
  226. package/dist/menu/index.js +13 -0
  227. package/dist/menu/index.js.map +1 -0
  228. package/dist/menu/menu-bar.d.ts +23 -0
  229. package/dist/menu/menu-bar.d.ts.map +1 -0
  230. package/dist/menu/menu-bar.js +110 -0
  231. package/dist/menu/menu-bar.js.map +1 -0
  232. package/dist/menu/menu-check-item.d.ts +33 -0
  233. package/dist/menu/menu-check-item.d.ts.map +1 -0
  234. package/dist/menu/menu-check-item.js +175 -0
  235. package/dist/menu/menu-check-item.js.map +1 -0
  236. package/dist/menu/menu-command-controller.d.ts +14 -0
  237. package/dist/menu/menu-command-controller.d.ts.map +1 -0
  238. package/dist/menu/menu-command-controller.js +22 -0
  239. package/dist/menu/menu-command-controller.js.map +1 -0
  240. package/dist/menu/menu-container.d.ts +36 -0
  241. package/dist/menu/menu-container.d.ts.map +1 -0
  242. package/dist/menu/menu-container.js +351 -0
  243. package/dist/menu/menu-container.js.map +1 -0
  244. package/dist/menu/menu-from-tree.d.ts +17 -0
  245. package/dist/menu/menu-from-tree.d.ts.map +1 -0
  246. package/dist/menu/menu-from-tree.js +103 -0
  247. package/dist/menu/menu-from-tree.js.map +1 -0
  248. package/dist/menu/menu-header.d.ts +12 -0
  249. package/dist/menu/menu-header.d.ts.map +1 -0
  250. package/dist/menu/menu-header.js +36 -0
  251. package/dist/menu/menu-header.js.map +1 -0
  252. package/dist/menu/menu-item.d.ts +41 -0
  253. package/dist/menu/menu-item.d.ts.map +1 -0
  254. package/dist/menu/menu-item.js +240 -0
  255. package/dist/menu/menu-item.js.map +1 -0
  256. package/dist/menu/menu-radio-group.d.ts +24 -0
  257. package/dist/menu/menu-radio-group.d.ts.map +1 -0
  258. package/dist/menu/menu-radio-group.js +71 -0
  259. package/dist/menu/menu-radio-group.js.map +1 -0
  260. package/dist/menu/menu-radio-item.d.ts +22 -0
  261. package/dist/menu/menu-radio-item.d.ts.map +1 -0
  262. package/dist/menu/menu-radio-item.js +116 -0
  263. package/dist/menu/menu-radio-item.js.map +1 -0
  264. package/dist/menu/menu-separator.d.ts +11 -0
  265. package/dist/menu/menu-separator.d.ts.map +1 -0
  266. package/dist/menu/menu-separator.js +29 -0
  267. package/dist/menu/menu-separator.js.map +1 -0
  268. package/dist/menu/menu-sub-trigger.d.ts +46 -0
  269. package/dist/menu/menu-sub-trigger.d.ts.map +1 -0
  270. package/dist/menu/menu-sub-trigger.js +302 -0
  271. package/dist/menu/menu-sub-trigger.js.map +1 -0
  272. package/dist/menu/menu-trigger.d.ts +57 -0
  273. package/dist/menu/menu-trigger.d.ts.map +1 -0
  274. package/dist/menu/menu-trigger.js +351 -0
  275. package/dist/menu/menu-trigger.js.map +1 -0
  276. package/dist/miller/index.d.ts +5 -0
  277. package/dist/miller/index.d.ts.map +1 -0
  278. package/dist/miller/index.js +5 -0
  279. package/dist/miller/index.js.map +1 -0
  280. package/dist/miller/miller-base.d.ts +184 -0
  281. package/dist/miller/miller-base.d.ts.map +1 -0
  282. package/dist/miller/miller-base.js +1249 -0
  283. package/dist/miller/miller-base.js.map +1 -0
  284. package/dist/miller/miller-list.d.ts +30 -0
  285. package/dist/miller/miller-list.d.ts.map +1 -0
  286. package/dist/miller/miller-list.js +192 -0
  287. package/dist/miller/miller-list.js.map +1 -0
  288. package/dist/miller/miller-tree-controller.d.ts +58 -0
  289. package/dist/miller/miller-tree-controller.d.ts.map +1 -0
  290. package/dist/miller/miller-tree-controller.js +134 -0
  291. package/dist/miller/miller-tree-controller.js.map +1 -0
  292. package/dist/miller/types.d.ts +63 -0
  293. package/dist/miller/types.d.ts.map +1 -0
  294. package/dist/miller/types.js +6 -0
  295. package/dist/miller/types.js.map +1 -0
  296. package/dist/mixins/labelled-input-base.d.ts +38 -0
  297. package/dist/mixins/labelled-input-base.d.ts.map +1 -0
  298. package/dist/mixins/labelled-input-base.js +171 -0
  299. package/dist/mixins/labelled-input-base.js.map +1 -0
  300. package/dist/mixins/labelled-input-util.d.ts +3 -0
  301. package/dist/mixins/labelled-input-util.d.ts.map +1 -0
  302. package/dist/mixins/labelled-input-util.js +10 -0
  303. package/dist/mixins/labelled-input-util.js.map +1 -0
  304. package/dist/my-element.d.ts.map +1 -1
  305. package/dist/my-element.js +1 -1
  306. package/dist/my-element.js.map +1 -1
  307. package/dist/narrowed-text/index.d.ts +3 -0
  308. package/dist/narrowed-text/index.d.ts.map +1 -0
  309. package/dist/narrowed-text/index.js +3 -0
  310. package/dist/narrowed-text/index.js.map +1 -0
  311. package/dist/narrowed-text/narrowed-text.d.ts +48 -0
  312. package/dist/narrowed-text/narrowed-text.d.ts.map +1 -0
  313. package/dist/narrowed-text/narrowed-text.js +668 -0
  314. package/dist/narrowed-text/narrowed-text.js.map +1 -0
  315. package/dist/narrowed-text/types.d.ts +20 -0
  316. package/dist/narrowed-text/types.d.ts.map +1 -0
  317. package/dist/narrowed-text/types.js +2 -0
  318. package/dist/narrowed-text/types.js.map +1 -0
  319. package/dist/panel/panel-group.d.ts +23 -0
  320. package/dist/panel/panel-group.d.ts.map +1 -0
  321. package/dist/panel/panel-group.js +109 -0
  322. package/dist/panel/panel-group.js.map +1 -0
  323. package/dist/panel/panel.d.ts +39 -0
  324. package/dist/panel/panel.d.ts.map +1 -0
  325. package/dist/panel/panel.js +417 -0
  326. package/dist/panel/panel.js.map +1 -0
  327. package/dist/plots/colour-map.d.ts +31 -0
  328. package/dist/plots/colour-map.d.ts.map +1 -0
  329. package/dist/plots/colour-map.js +133 -0
  330. package/dist/plots/colour-map.js.map +1 -0
  331. package/dist/plots/data.d.ts +27 -0
  332. package/dist/plots/data.d.ts.map +1 -0
  333. package/dist/plots/data.js +47 -0
  334. package/dist/plots/data.js.map +1 -0
  335. package/dist/plots/single-axis.d.ts +41 -0
  336. package/dist/plots/single-axis.d.ts.map +1 -0
  337. package/dist/plots/single-axis.js +428 -0
  338. package/dist/plots/single-axis.js.map +1 -0
  339. package/dist/plots/svg-utils.d.ts +12 -0
  340. package/dist/plots/svg-utils.d.ts.map +1 -0
  341. package/dist/plots/svg-utils.js +64 -0
  342. package/dist/plots/svg-utils.js.map +1 -0
  343. package/dist/plots/xy-axis.d.ts +42 -0
  344. package/dist/plots/xy-axis.d.ts.map +1 -0
  345. package/dist/plots/xy-axis.js +307 -0
  346. package/dist/plots/xy-axis.js.map +1 -0
  347. package/dist/polar-pad/polar-pad.d.ts +132 -0
  348. package/dist/polar-pad/polar-pad.d.ts.map +1 -0
  349. package/dist/polar-pad/polar-pad.js +598 -0
  350. package/dist/polar-pad/polar-pad.js.map +1 -0
  351. package/dist/radial-input/radial-input.d.ts +45 -0
  352. package/dist/radial-input/radial-input.d.ts.map +1 -0
  353. package/dist/radial-input/radial-input.js +692 -0
  354. package/dist/radial-input/radial-input.js.map +1 -0
  355. package/dist/radial-input/svg-utils.d.ts +147 -0
  356. package/dist/radial-input/svg-utils.d.ts.map +1 -0
  357. package/dist/radial-input/svg-utils.js +346 -0
  358. package/dist/radial-input/svg-utils.js.map +1 -0
  359. package/dist/radial-input/types.d.ts +25 -0
  360. package/dist/radial-input/types.d.ts.map +1 -0
  361. package/dist/radial-input/types.js +5 -0
  362. package/dist/radial-input/types.js.map +1 -0
  363. package/dist/range/range-multi.d.ts +62 -0
  364. package/dist/range/range-multi.d.ts.map +1 -0
  365. package/dist/range/range-multi.js +652 -0
  366. package/dist/range/range-multi.js.map +1 -0
  367. package/dist/range/range.d.ts +23 -0
  368. package/dist/range/range.d.ts.map +1 -0
  369. package/dist/range/range.js +153 -0
  370. package/dist/range/range.js.map +1 -0
  371. package/dist/range-input/index.d.ts +2 -0
  372. package/dist/range-input/index.d.ts.map +1 -0
  373. package/dist/range-input/index.js +2 -0
  374. package/dist/range-input/index.js.map +1 -0
  375. package/dist/range-input/range-input.d.ts +92 -0
  376. package/dist/range-input/range-input.d.ts.map +1 -0
  377. package/dist/range-input/range-input.js +472 -0
  378. package/dist/range-input/range-input.js.map +1 -0
  379. package/dist/selecthorizontal.d.ts +1 -1
  380. package/dist/selecthorizontal.d.ts.map +1 -1
  381. package/dist/selecthorizontal.js +3 -3
  382. package/dist/selecthorizontal.js.map +1 -1
  383. package/dist/snap-container/snap-container.d.ts +45 -0
  384. package/dist/snap-container/snap-container.d.ts.map +1 -0
  385. package/dist/snap-container/snap-container.js +352 -0
  386. package/dist/snap-container/snap-container.js.map +1 -0
  387. package/dist/split-layout/split-layout.d.ts +25 -9
  388. package/dist/split-layout/split-layout.d.ts.map +1 -1
  389. package/dist/split-layout/split-layout.js +520 -66
  390. package/dist/split-layout/split-layout.js.map +1 -1
  391. package/dist/styles/popup.d.ts +11 -0
  392. package/dist/styles/popup.d.ts.map +1 -0
  393. package/dist/styles/popup.js +20 -0
  394. package/dist/styles/popup.js.map +1 -0
  395. package/dist/styles/prominence.d.ts +58 -0
  396. package/dist/styles/prominence.d.ts.map +1 -0
  397. package/dist/styles/prominence.js +94 -0
  398. package/dist/styles/prominence.js.map +1 -0
  399. package/dist/styles/tooltip.d.ts +2 -0
  400. package/dist/styles/tooltip.d.ts.map +1 -0
  401. package/dist/styles/tooltip.js +100 -0
  402. package/dist/styles/tooltip.js.map +1 -0
  403. package/dist/svg-edit-label.js +1 -1
  404. package/dist/svg-edit-label.js.map +1 -1
  405. package/dist/swipe/index.d.ts +2 -0
  406. package/dist/swipe/index.d.ts.map +1 -0
  407. package/dist/swipe/index.js +2 -0
  408. package/dist/swipe/index.js.map +1 -0
  409. package/dist/swipe/swipe.d.ts +65 -0
  410. package/dist/swipe/swipe.d.ts.map +1 -0
  411. package/dist/swipe/swipe.js +229 -0
  412. package/dist/swipe/swipe.js.map +1 -0
  413. package/dist/tabs/tab-layout-item.d.ts.map +1 -1
  414. package/dist/tabs/tab-layout-item.js +1 -1
  415. package/dist/tabs/tab-layout-item.js.map +1 -1
  416. package/dist/tabs/tab-layout.d.ts.map +1 -1
  417. package/dist/tabs/tab-layout.js +1 -1
  418. package/dist/tabs/tab-layout.js.map +1 -1
  419. package/dist/tabs/tab-list-item.d.ts +22 -6
  420. package/dist/tabs/tab-list-item.d.ts.map +1 -1
  421. package/dist/tabs/tab-list-item.js +174 -42
  422. package/dist/tabs/tab-list-item.js.map +1 -1
  423. package/dist/tabs/tab-list.d.ts +15 -5
  424. package/dist/tabs/tab-list.d.ts.map +1 -1
  425. package/dist/tabs/tab-list.js +159 -50
  426. package/dist/tabs/tab-list.js.map +1 -1
  427. package/dist/tabs/tab-panel.d.ts +1 -1
  428. package/dist/tabs/tab-panel.d.ts.map +1 -1
  429. package/dist/tabs/tab-panel.js +2 -2
  430. package/dist/tabs/tab-panel.js.map +1 -1
  431. package/dist/tabs/tab-panels.d.ts +3 -3
  432. package/dist/tabs/tab-panels.d.ts.map +1 -1
  433. package/dist/tabs/tab-panels.js +6 -6
  434. package/dist/tabs/tab-panels.js.map +1 -1
  435. package/dist/timeline/index.d.ts +9 -0
  436. package/dist/timeline/index.d.ts.map +1 -0
  437. package/dist/timeline/index.js +8 -0
  438. package/dist/timeline/index.js.map +1 -0
  439. package/dist/timeline/timeline-controller.d.ts +48 -0
  440. package/dist/timeline/timeline-controller.d.ts.map +1 -0
  441. package/dist/timeline/timeline-controller.js +81 -0
  442. package/dist/timeline/timeline-controller.js.map +1 -0
  443. package/dist/timeline/timeline-draw.d.ts +28 -0
  444. package/dist/timeline/timeline-draw.d.ts.map +1 -0
  445. package/dist/timeline/timeline-draw.js +330 -0
  446. package/dist/timeline/timeline-draw.js.map +1 -0
  447. package/dist/timeline/timeline-element.d.ts +140 -0
  448. package/dist/timeline/timeline-element.d.ts.map +1 -0
  449. package/dist/timeline/timeline-element.js +888 -0
  450. package/dist/timeline/timeline-element.js.map +1 -0
  451. package/dist/timeline/timeline-interactions.d.ts +40 -0
  452. package/dist/timeline/timeline-interactions.d.ts.map +1 -0
  453. package/dist/timeline/timeline-interactions.js +393 -0
  454. package/dist/timeline/timeline-interactions.js.map +1 -0
  455. package/dist/timeline/timeline-styles.d.ts +2 -0
  456. package/dist/timeline/timeline-styles.d.ts.map +1 -0
  457. package/dist/timeline/timeline-styles.js +153 -0
  458. package/dist/timeline/timeline-styles.js.map +1 -0
  459. package/dist/timeline/timeline-track-tabs.d.ts +30 -0
  460. package/dist/timeline/timeline-track-tabs.d.ts.map +1 -0
  461. package/dist/timeline/timeline-track-tabs.js +204 -0
  462. package/dist/timeline/timeline-track-tabs.js.map +1 -0
  463. package/dist/timeline/types.d.ts +144 -0
  464. package/dist/timeline/types.d.ts.map +1 -0
  465. package/dist/timeline/types.js +3 -0
  466. package/dist/timeline/types.js.map +1 -0
  467. package/dist/tree/index.d.ts +5 -0
  468. package/dist/tree/index.d.ts.map +1 -0
  469. package/dist/tree/index.js +5 -0
  470. package/dist/tree/index.js.map +1 -0
  471. package/dist/tree/tree-base.d.ts +70 -0
  472. package/dist/tree/tree-base.d.ts.map +1 -0
  473. package/dist/tree/tree-base.js +1028 -0
  474. package/dist/tree/tree-base.js.map +1 -0
  475. package/dist/tree/tree-controller.d.ts +14 -0
  476. package/dist/tree/tree-controller.d.ts.map +1 -0
  477. package/dist/tree/tree-controller.js +96 -0
  478. package/dist/tree/tree-controller.js.map +1 -0
  479. package/dist/tree/tree-list.d.ts +20 -0
  480. package/dist/tree/tree-list.d.ts.map +1 -0
  481. package/dist/tree/tree-list.js +174 -0
  482. package/dist/tree/tree-list.js.map +1 -0
  483. package/dist/tree/types.d.ts +14 -0
  484. package/dist/tree/types.d.ts.map +1 -0
  485. package/dist/tree/types.js +7 -0
  486. package/dist/tree/types.js.map +1 -0
  487. package/dist/util/checkbox.d.ts +2 -0
  488. package/dist/util/checkbox.d.ts.map +1 -0
  489. package/dist/util/checkbox.js +69 -0
  490. package/dist/util/checkbox.js.map +1 -0
  491. package/dist/util/circle-arc.d.ts +6 -6
  492. package/dist/util/circle-arc.d.ts.map +1 -1
  493. package/dist/util/circle-arc.js +28 -20
  494. package/dist/util/circle-arc.js.map +1 -1
  495. package/dist/util/clamp.d.ts +4 -0
  496. package/dist/util/clamp.d.ts.map +1 -0
  497. package/dist/util/clamp.js +23 -0
  498. package/dist/util/clamp.js.map +1 -0
  499. package/dist/util/compare.d.ts +8 -8
  500. package/dist/util/compare.d.ts.map +1 -1
  501. package/dist/util/compare.js +13 -13
  502. package/dist/util/compare.js.map +1 -1
  503. package/dist/util/content-editable.d.ts +1 -1
  504. package/dist/util/content-editable.d.ts.map +1 -1
  505. package/dist/util/content-editable.js +2 -2
  506. package/dist/util/content-editable.js.map +1 -1
  507. package/dist/util/coordinates.d.ts +3 -0
  508. package/dist/util/coordinates.d.ts.map +1 -0
  509. package/dist/util/coordinates.js +11 -0
  510. package/dist/util/coordinates.js.map +1 -0
  511. package/dist/util/drag.d.ts +16 -0
  512. package/dist/util/drag.d.ts.map +1 -0
  513. package/dist/util/drag.js +20 -0
  514. package/dist/util/drag.js.map +1 -0
  515. package/dist/util/is-numeric.d.ts +2 -0
  516. package/dist/util/is-numeric.d.ts.map +1 -0
  517. package/dist/util/is-numeric.js +9 -0
  518. package/dist/util/is-numeric.js.map +1 -0
  519. package/dist/util/key-value.d.ts +2 -2
  520. package/dist/util/key-value.d.ts.map +1 -1
  521. package/dist/util/key-value.js +4 -5
  522. package/dist/util/key-value.js.map +1 -1
  523. package/dist/util/near.d.ts +2 -0
  524. package/dist/util/near.d.ts.map +1 -0
  525. package/dist/util/near.js +6 -0
  526. package/dist/util/near.js.map +1 -0
  527. package/dist/util/svg-editable-text.d.ts +6 -2
  528. package/dist/util/svg-editable-text.d.ts.map +1 -1
  529. package/dist/util/svg-editable-text.js +5 -7
  530. package/dist/util/svg-editable-text.js.map +1 -1
  531. package/dist/util/time.d.ts.map +1 -1
  532. package/dist/util/time.js +1 -1
  533. package/dist/util/time.js.map +1 -1
  534. package/dist/util/tooltip-controller.d.ts +10 -0
  535. package/dist/util/tooltip-controller.d.ts.map +1 -0
  536. package/dist/util/tooltip-controller.js +237 -0
  537. package/dist/util/tooltip-controller.js.map +1 -0
  538. package/dist/util/tooltip.d.ts +21 -0
  539. package/dist/util/tooltip.d.ts.map +1 -0
  540. package/dist/util/tooltip.js +98 -0
  541. package/dist/util/tooltip.js.map +1 -0
  542. package/dist/util/value-drag.d.ts +33 -0
  543. package/dist/util/value-drag.d.ts.map +1 -0
  544. package/dist/util/value-drag.js +154 -0
  545. package/dist/util/value-drag.js.map +1 -0
  546. package/dist/xy-pad.d.ts +117 -0
  547. package/dist/xy-pad.d.ts.map +1 -0
  548. package/dist/xy-pad.js +455 -0
  549. package/dist/xy-pad.js.map +1 -0
  550. package/package.json +47 -30
  551. package/README.md +0 -14
  552. package/dist/charts/frequency-histogram-plot.d.ts +0 -33
  553. package/dist/charts/frequency-histogram-plot.d.ts.map +0 -1
  554. package/dist/charts/frequency-histogram-plot.js +0 -54
  555. package/dist/charts/frequency-histogram-plot.js.map +0 -1
  556. package/dist/charts/histogram-vis.d.ts +0 -57
  557. package/dist/charts/histogram-vis.d.ts.map +0 -1
  558. package/dist/charts/histogram-vis.js +0 -222
  559. package/dist/charts/histogram-vis.js.map +0 -1
  560. package/dist/charts/plot.d.ts +0 -199
  561. package/dist/charts/plot.d.ts.map +0 -1
  562. package/dist/charts/plot.js +0 -914
  563. package/dist/charts/plot.js.map +0 -1
  564. package/dist/crumb-nav.d.ts +0 -41
  565. package/dist/crumb-nav.d.ts.map +0 -1
  566. package/dist/crumb-nav.js +0 -198
  567. package/dist/crumb-nav.js.map +0 -1
  568. package/dist/crumb-navigation.d.ts +0 -30
  569. package/dist/crumb-navigation.d.ts.map +0 -1
  570. package/dist/crumb-navigation.js +0 -307
  571. package/dist/crumb-navigation.js.map +0 -1
  572. package/dist/dial.d.ts +0 -89
  573. package/dist/dial.d.ts.map +0 -1
  574. package/dist/dial.js +0 -506
  575. package/dist/dial.js.map +0 -1
  576. package/dist/util/drag-controller.d.ts +0 -13
  577. package/dist/util/drag-controller.d.ts.map +0 -1
  578. package/dist/util/drag-controller.js +0 -21
  579. package/dist/util/drag-controller.js.map +0 -1
@@ -0,0 +1,117 @@
1
+ import type { PropertyValues } from 'lit';
2
+ /**
3
+ * <x-xy-pad> — 2D touch-friendly XY pad for controlling two parameters.
4
+ *
5
+ * Generic pad that accepts min/max/value for both axes with configurable labels.
6
+ * Each axis can independently use logarithmic or linear scaling.
7
+ * Y axis is inverted (top = high value).
8
+ *
9
+ * Properties
10
+ * xMin, xMax, x – horizontal range and current value
11
+ * yMin, yMax, y – vertical range and current value
12
+ * xScale, yScale – 'log' (default) or 'linear'
13
+ * xSnapStep, ySnapStep – snap granularity for pointer and keyboard moves (defaults: 1 / 0.01)
14
+ * xLabel, yLabel – axis labels (displayed in corners)
15
+ * showCrosshairs – show X/Y axis lines (default: false)
16
+ * showGrid – show background grid (default: false)
17
+ *
18
+ * CSS variables:
19
+ * --marker-size – size of the position marker (default: 10cqb)
20
+ * --crosshair-color – colour of both crosshair lines (default: surface-hh)
21
+ * --crosshair-width – thickness of both crosshair lines (default: 2px)
22
+ * --crosshair-x-color – colour of the vertical (X) crosshair line; falls back to --crosshair-color
23
+ * --crosshair-x-width – thickness of the vertical (X) crosshair line; falls back to --crosshair-width
24
+ * --crosshair-y-color – colour of the horizontal (Y) crosshair line; falls back to --crosshair-color
25
+ * --crosshair-y-width – thickness of the horizontal (Y) crosshair line; falls back to --crosshair-width
26
+ * --grid-color – colour of grid lines (default: surface-hh)
27
+ * --grid-width – thickness of grid lines (default: 1px)
28
+ * --x-pct – current X position as unitless number (0–100), set on host so external styles can use it
29
+ * --y-pct – current Y position as unitless number (0–100), set on host so external styles can use it
30
+ * --radius-pct – distance from center as unitless number (0–100), set on host so external styles can use it
31
+ * hide-cursor – boolean, hide cursor during drag and hover (default: false)
32
+ *
33
+ * Events
34
+ * input – CustomEvent { detail: { x: number, y: number } }, bubbles + composed, fires continuously during drag
35
+ * change – CustomEvent { detail: { x: number, y: number } }, bubbles + composed, fires when drag ends
36
+ *
37
+ * Methods
38
+ * getRelativeX() – returns X position as 0–1 fraction
39
+ * getRelativeY() – returns Y position as 0–1 fraction
40
+ * getPolar() – returns { radius: number, angle: number } where radius is 0–1 and angle is in radians (0 to 2π, 0 = right, clockwise)
41
+ */
42
+ import { html, LitElement } from 'lit';
43
+ export declare class XyPad extends LitElement {
44
+ static styles: import("lit").CSSResult[];
45
+ xMin: number;
46
+ xMax: number;
47
+ x: number;
48
+ yMin: number;
49
+ yMax: number;
50
+ y: number;
51
+ xScale: string;
52
+ yScale: string;
53
+ xSnapStep?: number;
54
+ ySnapStep?: number;
55
+ xLabel: string;
56
+ yLabel: string;
57
+ showCrosshairs: boolean;
58
+ showGrid: boolean;
59
+ hideCursor: boolean;
60
+ disabled: boolean;
61
+ /** Number of quantised stops for both axes. Overridden by stops-x/stops-y if set. */
62
+ stops?: number;
63
+ /** Number of quantised stops for X axis. If set, overrides the stops setting for X. */
64
+ stopsX?: number;
65
+ /** Number of quantised stops for Y axis. If set, overrides the stops setting for Y. */
66
+ stopsY?: number;
67
+ private _dragging;
68
+ private _dragStartX;
69
+ private _dragStartY;
70
+ private _pressedKeys;
71
+ private _onKeyDown;
72
+ private _onKeyUp;
73
+ private _handleKeyboardMove;
74
+ private _onPointerDown;
75
+ private _onPointerMove;
76
+ private _onPointerUp;
77
+ private _updateFromPointer;
78
+ private _setPctVars;
79
+ /**
80
+ * Returns X position as a 0–1 fraction.
81
+ */
82
+ getRelativeX(): number;
83
+ /**
84
+ * Returns Y position as a 0–1 fraction.
85
+ */
86
+ getRelativeY(): number;
87
+ /**
88
+ * Returns polar coordinates.
89
+ * - radius: 0–1 distance from center
90
+ * - angle: radians, 0 = right, clockwise (0 to 2π)
91
+ */
92
+ getPolar(): {
93
+ radius: number;
94
+ angle: number;
95
+ };
96
+ updated(_changed: PropertyValues): void;
97
+ disconnectedCallback(): void;
98
+ render(): ReturnType<typeof html>;
99
+ }
100
+ export type XyPadInputDetail = {
101
+ readonly x: number;
102
+ readonly y: number;
103
+ };
104
+ export type XyPadInputEvent = CustomEvent<XyPadInputDetail>;
105
+ declare global {
106
+ interface HTMLElementTagNameMap {
107
+ 'ixfx-xy-pad': XyPad;
108
+ }
109
+ }
110
+ export interface XyPadEventMap {
111
+ input: XyPadInputEvent;
112
+ change: XyPadInputEvent;
113
+ }
114
+ export interface XyPad {
115
+ addEventListener: (<K extends keyof XyPadEventMap>(type: K, listener: (this: XyPad, event: XyPadEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
116
+ }
117
+ //# sourceMappingURL=xy-pad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xy-pad.d.ts","sourceRoot":"","sources":["../src/xy-pad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AA6B5C,qBACa,KAAM,SAAQ,UAAU;IACnC,OAAgB,MAAM,4BAkHnB;IAEyB,IAAI,SAAK;IACT,IAAI,SAAO;IACX,CAAC,SAAM;IAEP,IAAI,SAAK;IACT,IAAI,SAAO;IACX,CAAC,SAAM;IAEP,MAAM,SAAY;IAClB,MAAM,SAAY;IACQ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAE7C,MAAM,SAAO;IACb,MAAM,SAAO;IAEiC,cAAc,UAAS;IAC7B,QAAQ,UAAS;IACf,UAAU,UAAS;IAC7C,QAAQ,UAAS;IAE7D,qFAAqF;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IAE3C,uFAAuF;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAElE,uFAAuF;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAElE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,UAAU,CAqBhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,mBAAmB,CAyCzB;IAEF,OAAO,CAAC,cAAc,CAapB;IAEF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,YAAY,CAalB;IAEF,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;;;OAIG;IACH,QAAQ,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAUpC,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKvC,oBAAoB,IAAI,IAAI;IAM5B,MAAM,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC;CAe3C;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAE5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,KAAK,CAAC;KACtB;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,MAAM,aAAa,EAC/C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,KACxC,IAAI,CAAC,GAAG,CAAC,CACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,KACxC,IAAI,CAAC,CAAC;CACZ"}
package/dist/xy-pad.js ADDED
@@ -0,0 +1,455 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * <x-xy-pad> — 2D touch-friendly XY pad for controlling two parameters.
9
+ *
10
+ * Generic pad that accepts min/max/value for both axes with configurable labels.
11
+ * Each axis can independently use logarithmic or linear scaling.
12
+ * Y axis is inverted (top = high value).
13
+ *
14
+ * Properties
15
+ * xMin, xMax, x – horizontal range and current value
16
+ * yMin, yMax, y – vertical range and current value
17
+ * xScale, yScale – 'log' (default) or 'linear'
18
+ * xSnapStep, ySnapStep – snap granularity for pointer and keyboard moves (defaults: 1 / 0.01)
19
+ * xLabel, yLabel – axis labels (displayed in corners)
20
+ * showCrosshairs – show X/Y axis lines (default: false)
21
+ * showGrid – show background grid (default: false)
22
+ *
23
+ * CSS variables:
24
+ * --marker-size – size of the position marker (default: 10cqb)
25
+ * --crosshair-color – colour of both crosshair lines (default: surface-hh)
26
+ * --crosshair-width – thickness of both crosshair lines (default: 2px)
27
+ * --crosshair-x-color – colour of the vertical (X) crosshair line; falls back to --crosshair-color
28
+ * --crosshair-x-width – thickness of the vertical (X) crosshair line; falls back to --crosshair-width
29
+ * --crosshair-y-color – colour of the horizontal (Y) crosshair line; falls back to --crosshair-color
30
+ * --crosshair-y-width – thickness of the horizontal (Y) crosshair line; falls back to --crosshair-width
31
+ * --grid-color – colour of grid lines (default: surface-hh)
32
+ * --grid-width – thickness of grid lines (default: 1px)
33
+ * --x-pct – current X position as unitless number (0–100), set on host so external styles can use it
34
+ * --y-pct – current Y position as unitless number (0–100), set on host so external styles can use it
35
+ * --radius-pct – distance from center as unitless number (0–100), set on host so external styles can use it
36
+ * hide-cursor – boolean, hide cursor during drag and hover (default: false)
37
+ *
38
+ * Events
39
+ * input – CustomEvent { detail: { x: number, y: number } }, bubbles + composed, fires continuously during drag
40
+ * change – CustomEvent { detail: { x: number, y: number } }, bubbles + composed, fires when drag ends
41
+ *
42
+ * Methods
43
+ * getRelativeX() – returns X position as 0–1 fraction
44
+ * getRelativeY() – returns Y position as 0–1 fraction
45
+ * getPolar() – returns { radius: number, angle: number } where radius is 0–1 and angle is in radians (0 to 2π, 0 = right, clockwise)
46
+ */
47
+ import { css, html, LitElement } from 'lit';
48
+ import { customElement, property } from 'lit/decorators.js';
49
+ import { KEY_STEP_DIVISOR, resolveStep } from './keyboard.js';
50
+ import { prominenceStyles } from './styles/prominence.js';
51
+ // ---------------------------------------------------------------------------
52
+ // Scale helpers — log or linear, selected per-axis
53
+ // ---------------------------------------------------------------------------
54
+ function valueToFrac(value, min, max, scale) {
55
+ if (scale === `linear`)
56
+ return (value - min) / (max - min);
57
+ return Math.log(value / min) / Math.log(max / min);
58
+ }
59
+ function fracToValue(frac, min, max, scale) {
60
+ if (scale === `linear`)
61
+ return min + frac * (max - min);
62
+ return min * (max / min) ** frac;
63
+ }
64
+ function quantise(value, min, max, stops) {
65
+ if (!stops || stops <= 1)
66
+ return value;
67
+ const range = max - min;
68
+ const step = range / stops;
69
+ return Math.round((value - min) / step) * step + min;
70
+ }
71
+ let XyPad = class XyPad extends LitElement {
72
+ constructor() {
73
+ super(...arguments);
74
+ this.xMin = 1;
75
+ this.xMax = 100;
76
+ this.x = 50;
77
+ this.yMin = 1;
78
+ this.yMax = 100;
79
+ this.y = 50;
80
+ this.xScale = `linear`;
81
+ this.yScale = `linear`;
82
+ this.xLabel = `X`;
83
+ this.yLabel = `Y`;
84
+ this.showCrosshairs = false;
85
+ this.showGrid = false;
86
+ this.hideCursor = false;
87
+ this.disabled = false;
88
+ this._dragging = false;
89
+ this._dragStartX = 0;
90
+ this._dragStartY = 0;
91
+ this._pressedKeys = new Set();
92
+ this._onKeyDown = (e) => {
93
+ if (this.disabled)
94
+ return;
95
+ if ([`ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`].includes(e.key)) {
96
+ e.preventDefault();
97
+ this._pressedKeys.add(e.key);
98
+ this._handleKeyboardMove(e.shiftKey);
99
+ }
100
+ else if (e.key === `Home` || e.key === `End`) {
101
+ e.preventDefault();
102
+ const newX = e.key === `Home` ? this.xMin : this.xMax;
103
+ const newY = e.key === `Home` ? this.yMin : this.yMax;
104
+ if (newX !== this.x || newY !== this.y) {
105
+ this.x = newX;
106
+ this.y = newY;
107
+ this.dispatchEvent(new CustomEvent(`input`, {
108
+ detail: { x: this.x, y: this.y },
109
+ bubbles: true,
110
+ composed: true,
111
+ }));
112
+ }
113
+ }
114
+ };
115
+ this._onKeyUp = (e) => {
116
+ this._pressedKeys.delete(e.key);
117
+ };
118
+ this._handleKeyboardMove = (shiftKey) => {
119
+ const shiftDivisor = shiftKey ? KEY_STEP_DIVISOR : 1;
120
+ const xRange = this.xMax - this.xMin;
121
+ const yRange = this.yMax - this.yMin;
122
+ const effectiveStopsX = this.stopsX ?? this.stops;
123
+ const effectiveStopsY = this.stopsY ?? this.stops;
124
+ const xStep = resolveStep(xRange, effectiveStopsX, undefined) / shiftDivisor;
125
+ const yStep = resolveStep(yRange, effectiveStopsY, undefined) / shiftDivisor;
126
+ let newX = this.x;
127
+ let newY = this.y;
128
+ if (this._pressedKeys.has(`ArrowLeft`)) {
129
+ newX = Math.max(this.xMin, this.x - xStep);
130
+ }
131
+ if (this._pressedKeys.has(`ArrowRight`)) {
132
+ newX = Math.min(this.xMax, this.x + xStep);
133
+ }
134
+ if (this._pressedKeys.has(`ArrowUp`)) {
135
+ newY = Math.min(this.yMax, this.y + yStep);
136
+ }
137
+ if (this._pressedKeys.has(`ArrowDown`)) {
138
+ newY = Math.max(this.yMin, this.y - yStep);
139
+ }
140
+ if (newX !== this.x || newY !== this.y) {
141
+ let finalX = (this.xSnapStep && this.xSnapStep > 0) ? Math.round(newX / this.xSnapStep) * this.xSnapStep : newX;
142
+ let finalY = (this.ySnapStep && this.ySnapStep > 0) ? Math.round(newY / this.ySnapStep) * this.ySnapStep : newY;
143
+ finalX = quantise(finalX, this.xMin, this.xMax, effectiveStopsX);
144
+ finalY = quantise(finalY, this.yMin, this.yMax, effectiveStopsY);
145
+ this.x = finalX;
146
+ this.y = finalY;
147
+ this.dispatchEvent(new CustomEvent(`input`, {
148
+ detail: { x: this.x, y: this.y },
149
+ bubbles: true,
150
+ composed: true,
151
+ }));
152
+ }
153
+ };
154
+ this._onPointerDown = (e) => {
155
+ e.preventDefault();
156
+ const pad = this.renderRoot.querySelector(`.xy-pad-area`);
157
+ pad?.focus();
158
+ if (pad)
159
+ pad.setPointerCapture(e.pointerId);
160
+ this._dragging = true;
161
+ this._dragStartX = this.x;
162
+ this._dragStartY = this.y;
163
+ this.setAttribute(`dragging`, ``);
164
+ this._updateFromPointer(e);
165
+ globalThis.addEventListener(`pointermove`, this._onPointerMove);
166
+ globalThis.addEventListener(`pointerup`, this._onPointerUp);
167
+ };
168
+ this._onPointerMove = (e) => {
169
+ if (!this._dragging)
170
+ return;
171
+ e.preventDefault();
172
+ this._updateFromPointer(e);
173
+ };
174
+ this._onPointerUp = () => {
175
+ const hasChanged = this.x !== this._dragStartX || this.y !== this._dragStartY;
176
+ this._dragging = false;
177
+ this.removeAttribute(`dragging`);
178
+ globalThis.removeEventListener(`pointermove`, this._onPointerMove);
179
+ globalThis.removeEventListener(`pointerup`, this._onPointerUp);
180
+ if (hasChanged) {
181
+ this.dispatchEvent(new CustomEvent(`change`, {
182
+ detail: { x: this.x, y: this.y },
183
+ bubbles: true,
184
+ composed: true,
185
+ }));
186
+ }
187
+ };
188
+ }
189
+ static { this.styles = [prominenceStyles, css `
190
+ :host {
191
+ display: block;
192
+ width: 200px;
193
+ height: 200px;
194
+ touch-action: none;
195
+ user-select: none;
196
+ container-type: size;
197
+ --marker-size: 10cqb;
198
+ --crosshair-color: var(--surface-6);
199
+ --crosshair-width: 2px;
200
+ --crosshair-x-color: var(--crosshair-color);
201
+ --crosshair-x-width: var(--crosshair-width);
202
+ --crosshair-y-color: var(--crosshair-color);
203
+ --crosshair-y-width: var(--crosshair-width);
204
+ --grid-color: var(--surface-6);
205
+ --grid-width: 1px;
206
+ --_space-s: var(--space-s, 4px);
207
+ --_space-m: var(--space-m, 8px);
208
+ }
209
+ .xy-pad-area {
210
+ position: relative;
211
+ width: 100%;
212
+ height: 100%;
213
+ background: var(--xy-pad-bg, var(--surface-3));
214
+ border: var(--border);
215
+ border-radius: var(--radius-m);
216
+ overflow: hidden;
217
+ box-shadow: var(--deboss-3);
218
+ cursor: var(--cursor-display, crosshair);
219
+ }
220
+ :host([dragging]) .xy-pad-area {
221
+ cursor: none;
222
+ }
223
+
224
+ .xy-pad-area:focus {
225
+ outline: none;
226
+ }
227
+
228
+ .xy-pad-area:focus-visible {
229
+ outline: 2px solid var(--accent);
230
+ outline-offset: 2px;
231
+ }
232
+ .xy-pad-area::before,
233
+ .xy-pad-area::after {
234
+ content: '';
235
+ position: absolute;
236
+ pointer-events: none;
237
+ opacity: var(--show-crosshairs, 0);
238
+ }
239
+ :host([show-crosshairs]) {
240
+ --show-crosshairs: 1;
241
+ }
242
+ .xy-pad-area::before {
243
+ left: 0;
244
+ right: 0;
245
+ top: calc(100% - var(--y-pct, 50) * 1%);
246
+ height: var(--crosshair-y-width);
247
+ background: var(--crosshair-y-color);
248
+ }
249
+ .xy-pad-area::after {
250
+ top: 0;
251
+ bottom: 0;
252
+ left: calc(var(--x-pct, 50) * 1%);
253
+ width: var(--crosshair-x-width);
254
+ background: var(--crosshair-x-color);
255
+ }
256
+
257
+ .xy-pad-grid {
258
+ position: absolute;
259
+ inset: 0;
260
+ background-image:
261
+ linear-gradient(to right, var(--grid-color) var(--grid-width), transparent var(--grid-width)),
262
+ linear-gradient(to bottom, var(--grid-color) var(--grid-width), transparent var(--grid-width));
263
+ background-size: 10cqb 10cqb;
264
+ pointer-events: none;
265
+ opacity: var(--show-grid, 0);
266
+ }
267
+ :host([show-grid]) {
268
+ --show-grid: 1;
269
+ }
270
+
271
+ .xy-pad-marker {
272
+ position: absolute;
273
+ width: var(--marker-size, 10cqb);
274
+ height: var(--marker-size, 10cqb);
275
+ border-radius: 50%;
276
+ background: var(--surface-2-accent, var(--accent));
277
+ top: calc(100% - var(--y-pct, 50) * 1%);
278
+ left: calc(var(--x-pct, 50) * 1%);
279
+ transform: translate(-50%, -50%);
280
+ pointer-events: none;
281
+ z-index: 2;
282
+ }
283
+ .xy-pad-label-x {
284
+ position: absolute;
285
+ bottom: var(--_space-s);
286
+ color: var(--surface-muted-text);
287
+ font-size: var(--text-s, 12px);
288
+ pointer-events: none;
289
+ width: 100%;
290
+ text-align: center;
291
+ }
292
+ .xy-pad-label-y {
293
+ position: absolute;
294
+ top: var(--_space-s);
295
+ left: var(--_space-m);
296
+ color: var(--surface-muted-text);
297
+ font-size: var(--text-s, 12px);
298
+ pointer-events: none;
299
+ writing-mode: sideways-lr;
300
+ height:100%;
301
+ text-align:center;
302
+ }
303
+ `]; }
304
+ _updateFromPointer(e) {
305
+ const pad = this.renderRoot.querySelector(`.xy-pad-area`);
306
+ if (!pad)
307
+ return;
308
+ const rect = pad.getBoundingClientRect();
309
+ const xFrac = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));
310
+ const yFrac = Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height));
311
+ const newX = fracToValue(xFrac, this.xMin, this.xMax, this.xScale);
312
+ const newY = fracToValue(yFrac, this.yMin, this.yMax, this.yScale);
313
+ let finalX = (this.xSnapStep && this.xSnapStep > 0) ? Math.round(newX / this.xSnapStep) * this.xSnapStep : newX;
314
+ let finalY = (this.ySnapStep && this.ySnapStep > 0) ? Math.round(newY / this.ySnapStep) * this.ySnapStep : newY;
315
+ const effectiveStopsX = this.stopsX ?? this.stops;
316
+ const effectiveStopsY = this.stopsY ?? this.stops;
317
+ finalX = quantise(finalX, this.xMin, this.xMax, effectiveStopsX);
318
+ finalY = quantise(finalY, this.yMin, this.yMax, effectiveStopsY);
319
+ this.x = finalX;
320
+ this.y = finalY;
321
+ this.dispatchEvent(new CustomEvent(`input`, {
322
+ detail: { x: this.x, y: this.y },
323
+ bubbles: true,
324
+ composed: true,
325
+ }));
326
+ }
327
+ _setPctVars() {
328
+ const cx = Math.max(this.xMin, Math.min(this.xMax, this.x));
329
+ const cy = Math.max(this.yMin, Math.min(this.yMax, this.y));
330
+ const xPct = valueToFrac(cx, this.xMin, this.xMax, this.xScale) * 100;
331
+ const yPct = valueToFrac(cy, this.yMin, this.yMax, this.yScale) * 100;
332
+ this.style.setProperty(`--x-pct`, `${xPct}`);
333
+ this.style.setProperty(`--y-pct`, `${yPct}`);
334
+ // Calculate radius from center (50, 50) - distance as 0-100
335
+ const dx = xPct - 50;
336
+ const dy = yPct - 50;
337
+ const radiusPct = Math.sqrt(dx * dx + dy * dy);
338
+ this.style.setProperty(`--radius-pct`, `${radiusPct}`);
339
+ }
340
+ // ── Public API ─────────────────────────────────────────────────────────────
341
+ /**
342
+ * Returns X position as a 0–1 fraction.
343
+ */
344
+ getRelativeX() {
345
+ const cx = Math.max(this.xMin, Math.min(this.xMax, this.x));
346
+ return valueToFrac(cx, this.xMin, this.xMax, this.xScale);
347
+ }
348
+ /**
349
+ * Returns Y position as a 0–1 fraction.
350
+ */
351
+ getRelativeY() {
352
+ const cy = Math.max(this.yMin, Math.min(this.yMax, this.y));
353
+ return valueToFrac(cy, this.yMin, this.yMax, this.yScale);
354
+ }
355
+ /**
356
+ * Returns polar coordinates.
357
+ * - radius: 0–1 distance from center
358
+ * - angle: radians, 0 = right, clockwise (0 to 2π)
359
+ */
360
+ getPolar() {
361
+ const xRel = this.getRelativeX() - 0.5; // -0.5 to 0.5
362
+ const yRel = this.getRelativeY() - 0.5; // -0.5 to 0.5
363
+ const radius = Math.sqrt(xRel * xRel + yRel * yRel) * 2; // 0 to 1
364
+ let angle = Math.atan2(yRel, xRel); // -π to π
365
+ if (angle < 0)
366
+ angle += 2 * Math.PI; // 0 to 2π
367
+ return { radius, angle };
368
+ }
369
+ updated(_changed) {
370
+ super.updated(_changed);
371
+ this._setPctVars();
372
+ }
373
+ disconnectedCallback() {
374
+ super.disconnectedCallback();
375
+ this._onPointerUp();
376
+ this._pressedKeys.clear();
377
+ }
378
+ render() {
379
+ return html `
380
+ <div class="xy-pad-area"
381
+ tabindex=${this.disabled ? -1 : 0}
382
+ @pointerdown=${this._onPointerDown}
383
+ @keydown=${this._onKeyDown}
384
+ @keyup=${this._onKeyUp}
385
+ @blur=${() => this._pressedKeys.clear()}>
386
+ ${this.showGrid ? html `<div class="xy-pad-grid"></div>` : ``}
387
+ <div class="xy-pad-marker"></div>
388
+ <div class="xy-pad-label-x">${this.xLabel}</div>
389
+ <div class="xy-pad-label-y">${this.yLabel}</div>
390
+ </div>
391
+ `;
392
+ }
393
+ };
394
+ __decorate([
395
+ property({ type: Number })
396
+ ], XyPad.prototype, "xMin", void 0);
397
+ __decorate([
398
+ property({ type: Number })
399
+ ], XyPad.prototype, "xMax", void 0);
400
+ __decorate([
401
+ property({ type: Number })
402
+ ], XyPad.prototype, "x", void 0);
403
+ __decorate([
404
+ property({ type: Number })
405
+ ], XyPad.prototype, "yMin", void 0);
406
+ __decorate([
407
+ property({ type: Number })
408
+ ], XyPad.prototype, "yMax", void 0);
409
+ __decorate([
410
+ property({ type: Number })
411
+ ], XyPad.prototype, "y", void 0);
412
+ __decorate([
413
+ property({ type: String })
414
+ ], XyPad.prototype, "xScale", void 0);
415
+ __decorate([
416
+ property({ type: String })
417
+ ], XyPad.prototype, "yScale", void 0);
418
+ __decorate([
419
+ property({ type: Number, attribute: `x-snap-step` })
420
+ ], XyPad.prototype, "xSnapStep", void 0);
421
+ __decorate([
422
+ property({ type: Number, attribute: `y-snap-step` })
423
+ ], XyPad.prototype, "ySnapStep", void 0);
424
+ __decorate([
425
+ property({ type: String })
426
+ ], XyPad.prototype, "xLabel", void 0);
427
+ __decorate([
428
+ property({ type: String })
429
+ ], XyPad.prototype, "yLabel", void 0);
430
+ __decorate([
431
+ property({ type: Boolean, reflect: true, attribute: `show-crosshairs` })
432
+ ], XyPad.prototype, "showCrosshairs", void 0);
433
+ __decorate([
434
+ property({ type: Boolean, reflect: true, attribute: `show-grid` })
435
+ ], XyPad.prototype, "showGrid", void 0);
436
+ __decorate([
437
+ property({ type: Boolean, reflect: true, attribute: `hide-cursor` })
438
+ ], XyPad.prototype, "hideCursor", void 0);
439
+ __decorate([
440
+ property({ type: Boolean, reflect: true })
441
+ ], XyPad.prototype, "disabled", void 0);
442
+ __decorate([
443
+ property({ type: Number })
444
+ ], XyPad.prototype, "stops", void 0);
445
+ __decorate([
446
+ property({ type: Number, attribute: `stops-x` })
447
+ ], XyPad.prototype, "stopsX", void 0);
448
+ __decorate([
449
+ property({ type: Number, attribute: `stops-y` })
450
+ ], XyPad.prototype, "stopsY", void 0);
451
+ XyPad = __decorate([
452
+ customElement(`ixfx-xy-pad`)
453
+ ], XyPad);
454
+ export { XyPad };
455
+ //# sourceMappingURL=xy-pad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xy-pad.js","sourceRoot":"","sources":["../src/xy-pad.ts"],"names":[],"mappings":"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"}