@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,598 @@
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
+ * <ixfx-polar-pad> — circular pad for setting polar coordinates (angle + radius).
9
+ *
10
+ * The user clicks or drags within a circle to position a marker. The marker's
11
+ * position encodes an angle (degrees, 0 = right, clockwise) and a radius (0–1).
12
+ *
13
+ * Properties / attributes
14
+ * angle – current angle in degrees (0 = right, clockwise). Default: 0
15
+ * radius – current radius 0–1 where 1 = edge. Default: 0.5
16
+ * rings – number of concentric rings to draw (0 = none). Default: 0
17
+ * rays – number of evenly-spaced radial spokes to draw (0 = none). Default: 0
18
+ * show-ray – draw a line from the origin to the marker
19
+ * show-origin – draw a dot at the centre
20
+ * hide-cursor – hide cursor during drag and hover (default: false)
21
+ * snap-value – when set, marker snaps to nearest ring/spoke depending on what's displayed
22
+ * disabled – disable all interaction (default: false)
23
+ *
24
+ * Customisable CSS variables:
25
+ *
26
+ * Pad background
27
+ * --pad-background – CSS `background` of the circular pad. Accepts any CSS background
28
+ * value: solid colour, conic-gradient(), radial-gradient(), etc.
29
+ * Dynamic CSS vars like --angle-deg / --radius-pct are available
30
+ * so the gradient can track the current marker position.
31
+ * Default: var(--surface-4)
32
+ * --pad-border-color – stroke of the outer circle (default: --surface-6)
33
+ * --pad-border-width – thickness of outer border (default: 1px)
34
+ *
35
+ * Marker
36
+ * --marker-size – diameter of the draggable marker (default: 10cqb)
37
+ * --marker-color – fill colour of the marker (default: --accent)
38
+ * --marker-opacity – opacity of the marker (default: 1)
39
+ * --marker-stroke – stroke colour of the marker (default: none)
40
+ * --marker-stroke-width – stroke thickness of the marker (default: 0)
41
+ *
42
+ * Origin dot (show-origin)
43
+ * --origin-size – diameter of the origin dot (default: 6cqb)
44
+ * --origin-color – fill colour of the origin dot (default: --accent)
45
+ * --origin-opacity – opacity of the origin dot (default: 1)
46
+ *
47
+ * Ray line (show-ray)
48
+ * --ray-color – stroke colour (default: --surface-6)
49
+ * --ray-width – thickness (default: 2px)
50
+ * --ray-opacity – opacity (default: 1)
51
+ * --ray-dash – stroke-dasharray value e.g. "4 2" (default: none)
52
+ *
53
+ * Concentric rings (rings > 0)
54
+ * --ring-color – stroke colour (default: --surface-6)
55
+ * --ring-width – thickness (default: 1px)
56
+ * --ring-opacity – opacity (default: 1)
57
+ * --ring-dash – stroke-dasharray e.g. "4 2" (default: none)
58
+ *
59
+ * Radial spokes (rays > 0)
60
+ * --spoke-color – stroke colour (default: --surface-6)
61
+ * --spoke-width – thickness (default: 1px)
62
+ * --spoke-opacity – opacity (default: 1)
63
+ * --spoke-dash – stroke-dasharray e.g. "4 2" (default: none)
64
+ *
65
+ * CSS variables set on host for external dynamic styling:
66
+ * --angle-deg – current angle as unitless number in degrees
67
+ * --angle-rad – current angle as unitless number in radians
68
+ * --radius-pct – current radius as unitless number 0–100
69
+ *
70
+ * Events
71
+ * input – CustomEvent<PolarPadInputDetail> { angle: number (deg), radius: number (0–1) }
72
+ * bubbles + composed, fires continuously during drag
73
+ * change – CustomEvent<PolarPadInputDetail> { angle: number (deg), radius: number (0–1) }
74
+ * bubbles + composed, fires when drag ends
75
+ */
76
+ import { css, html, LitElement, svg } from 'lit';
77
+ import { customElement, property } from 'lit/decorators.js';
78
+ import { KEY_STEP_DIVISOR } from '../keyboard.js';
79
+ // ---------------------------------------------------------------------------
80
+ // Geometry helpers
81
+ // ---------------------------------------------------------------------------
82
+ const DEG_TO_RAD = Math.PI / 180;
83
+ const RAD_TO_DEG = 180 / Math.PI;
84
+ /**
85
+ * Convert polar (angle in radians, radius 0-1) to SVG coordinates.
86
+ * SVG viewBox 0 0 100 100; origin at (50,50); full radius = 50.
87
+ * Convention: 0 rad = right (+x), increases CLOCKWISE (+y = downward in SVG).
88
+ */
89
+ function polarToSvg(angleRad, radius) {
90
+ const r = radius * 50;
91
+ return { x: 50 + Math.cos(angleRad) * r, y: 50 + Math.sin(angleRad) * r };
92
+ }
93
+ /**
94
+ * Convert SVG coordinates back to polar (angle in radians 0..2π, radius 0-1).
95
+ * SVG: Y increases downward. Convention: 0=right, CW positive.
96
+ */
97
+ function svgToPolar(svgX, svgY) {
98
+ const dx = svgX - 50;
99
+ const dy = svgY - 50; // +dy = downward = clockwise
100
+ const dist = Math.sqrt(dx * dx + dy * dy);
101
+ const radius = Math.min(1, dist / 50);
102
+ const raw = Math.atan2(dy, dx);
103
+ const angleRad = ((raw % (2 * Math.PI)) + 2 * Math.PI) % (2 * Math.PI);
104
+ return { angleRad, radius };
105
+ }
106
+ const clamp01 = (v) => Math.max(0, Math.min(1, v));
107
+ // ---------------------------------------------------------------------------
108
+ // Direction-aware snapping helpers
109
+ // ---------------------------------------------------------------------------
110
+ function snapAngle(angleDeg, prevAngleDeg, rays, snapEnabled) {
111
+ if (rays <= 0 || !snapEnabled)
112
+ return angleDeg;
113
+ const spokeDeg = 360 / rays;
114
+ const normalized = ((angleDeg % 360) + 360) % 360;
115
+ const nearest = Math.round(normalized / spokeDeg) * spokeDeg;
116
+ const remainder = normalized % spokeDeg;
117
+ const tie = Math.abs(remainder) < 0.0001 || Math.abs(spokeDeg - remainder) < 0.0001;
118
+ if (tie) {
119
+ let delta = angleDeg - prevAngleDeg;
120
+ if (delta > 180)
121
+ delta -= 360;
122
+ if (delta < -180)
123
+ delta += 360;
124
+ const direction = delta >= 0 ? 1 : -1;
125
+ return (nearest + direction * spokeDeg + 360) % 360;
126
+ }
127
+ return nearest;
128
+ }
129
+ function snapRadius(radius, prevRadius, rings, snapEnabled) {
130
+ if (rings <= 0 || !snapEnabled)
131
+ return radius;
132
+ const ringStep = 1 / rings;
133
+ const nearest = Math.round(radius / ringStep) * ringStep;
134
+ const remainder = radius % ringStep;
135
+ const tie = Math.abs(remainder) < 0.0001 || Math.abs(ringStep - remainder) < 0.0001;
136
+ if (tie) {
137
+ const direction = radius >= prevRadius ? 1 : -1;
138
+ return Math.max(0, Math.min(1, nearest + direction * ringStep));
139
+ }
140
+ return nearest;
141
+ }
142
+ function quantiseAngle(angleDeg, stops) {
143
+ if (!stops || stops <= 1)
144
+ return angleDeg;
145
+ const stepDeg = 360 / stops;
146
+ const normalized = ((angleDeg % 360) + 360) % 360;
147
+ return Math.round(normalized / stepDeg) * stepDeg;
148
+ }
149
+ function quantiseRadius(radius, stops) {
150
+ if (!stops || stops <= 1)
151
+ return radius;
152
+ const step = 1 / stops;
153
+ return Math.round(radius / step) * step;
154
+ }
155
+ // ---------------------------------------------------------------------------
156
+ // Component
157
+ // ---------------------------------------------------------------------------
158
+ let PolarPad = class PolarPad extends LitElement {
159
+ constructor() {
160
+ super(...arguments);
161
+ /** Current angle in degrees. 0 = right, increases clockwise. */
162
+ this.angle = 0;
163
+ /** Current radius 0–1. 0 = origin, 1 = edge. */
164
+ this.radius = 0.5;
165
+ /** Number of concentric rings to display. 0 = none. */
166
+ this.rings = 0;
167
+ /** Number of evenly-spaced radial spoke lines to display. 0 = none. */
168
+ this.rays = 0;
169
+ /** Show a line from origin to the marker. */
170
+ this.showRay = false;
171
+ /** Show a dot at the origin (centre). */
172
+ this.showOrigin = false;
173
+ /** Hide cursor during drag and hover. */
174
+ this.hideCursor = false;
175
+ /** When set, marker snaps to nearest ring/spoke depending on what's displayed. */
176
+ this.snapValue = false;
177
+ /** Disable all interaction (pointer and keyboard). */
178
+ this.disabled = false;
179
+ this._dragging = false;
180
+ this._dragStartAngle = 0;
181
+ this._dragStartRadius = 0;
182
+ this._pressedKeys = new Set();
183
+ this._prevAngle = 0;
184
+ this._prevRadius = 0;
185
+ // -------------------------------------------------------------------------
186
+ // Pointer handling
187
+ // -------------------------------------------------------------------------
188
+ this._onPointerDown = (e) => {
189
+ e.preventDefault();
190
+ const svg = this.renderRoot.querySelector(`svg`);
191
+ svg?.focus();
192
+ const area = this.renderRoot.querySelector(`.polar-pad-area`);
193
+ if (area)
194
+ area.setPointerCapture(e.pointerId);
195
+ this._dragging = true;
196
+ this._dragStartAngle = this.angle;
197
+ this._dragStartRadius = this.radius;
198
+ this.setAttribute(`dragging`, ``);
199
+ this._updateFromPointer(e);
200
+ globalThis.addEventListener(`pointermove`, this._onPointerMove);
201
+ globalThis.addEventListener(`pointerup`, this._onPointerUp);
202
+ };
203
+ this._onPointerMove = (e) => {
204
+ if (!this._dragging)
205
+ return;
206
+ e.preventDefault();
207
+ this._updateFromPointer(e);
208
+ };
209
+ this._onPointerUp = () => {
210
+ const hasChanged = this.angle !== this._dragStartAngle || this.radius !== this._dragStartRadius;
211
+ this._dragging = false;
212
+ this.removeAttribute(`dragging`);
213
+ globalThis.removeEventListener(`pointermove`, this._onPointerMove);
214
+ globalThis.removeEventListener(`pointerup`, this._onPointerUp);
215
+ if (hasChanged) {
216
+ this.dispatchEvent(new CustomEvent(`change`, {
217
+ detail: { angle: this.angle, radius: this.radius },
218
+ bubbles: true,
219
+ composed: true,
220
+ }));
221
+ }
222
+ };
223
+ // -------------------------------------------------------------------------
224
+ // Keyboard handling
225
+ // -------------------------------------------------------------------------
226
+ this._onKeyDown = (e) => {
227
+ if (this.disabled)
228
+ return;
229
+ if ([`ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`].includes(e.key)) {
230
+ e.preventDefault();
231
+ this._pressedKeys.add(e.key);
232
+ this._handleKeyboardMove(e.shiftKey);
233
+ }
234
+ };
235
+ this._onKeyUp = (e) => {
236
+ this._pressedKeys.delete(e.key);
237
+ };
238
+ this._handleKeyboardMove = (shiftKey) => {
239
+ const shiftDivisor = shiftKey ? KEY_STEP_DIVISOR : 1;
240
+ const effectiveStopsAngle = this.stopsAngle ?? this.stops;
241
+ const effectiveStopsRadius = this.stopsRadius ?? this.stops;
242
+ let angleStep;
243
+ if (effectiveStopsAngle && effectiveStopsAngle > 1) {
244
+ angleStep = 360 / effectiveStopsAngle;
245
+ }
246
+ else {
247
+ const angleRange = this.rays > 0 && this.snapValue ? this.rays : 20;
248
+ angleStep = 360 / angleRange;
249
+ }
250
+ let radiusStep;
251
+ if (effectiveStopsRadius && effectiveStopsRadius > 1) {
252
+ radiusStep = 1 / effectiveStopsRadius;
253
+ }
254
+ else {
255
+ radiusStep = 1 / 20;
256
+ }
257
+ angleStep /= shiftDivisor;
258
+ radiusStep /= shiftDivisor;
259
+ this._prevAngle = this.angle;
260
+ this._prevRadius = this.radius;
261
+ let newAngle = this.angle;
262
+ let newRadius = this.radius;
263
+ if (this._pressedKeys.has(`ArrowLeft`)) {
264
+ newAngle -= angleStep;
265
+ }
266
+ if (this._pressedKeys.has(`ArrowRight`)) {
267
+ newAngle += angleStep;
268
+ }
269
+ if (this._pressedKeys.has(`ArrowUp`)) {
270
+ newRadius = Math.min(1, newRadius + radiusStep);
271
+ }
272
+ if (this._pressedKeys.has(`ArrowDown`)) {
273
+ newRadius = Math.max(0, newRadius - radiusStep);
274
+ }
275
+ newAngle = ((newAngle % 360) + 360) % 360;
276
+ let finalAngle = snapAngle(newAngle, this._prevAngle, this.rays, this.snapValue);
277
+ let finalRadius = snapRadius(newRadius, this._prevRadius, this.rings, this.snapValue);
278
+ finalAngle = quantiseAngle(finalAngle, effectiveStopsAngle);
279
+ finalRadius = quantiseRadius(finalRadius, effectiveStopsRadius);
280
+ if (finalAngle !== this.angle || finalRadius !== this.radius) {
281
+ this.angle = finalAngle;
282
+ this.radius = finalRadius;
283
+ this.dispatchEvent(new CustomEvent(`input`, {
284
+ detail: { angle: this.angle, radius: this.radius },
285
+ bubbles: true,
286
+ composed: true,
287
+ }));
288
+ }
289
+ };
290
+ /** Stable per-instance uid for SVG clipPath IDs. */
291
+ this._uid = Math.random().toString(36).slice(2, 8);
292
+ }
293
+ static { this.styles = css `
294
+ :host {
295
+ display: block;
296
+ width: 200px;
297
+ height: 200px;
298
+ touch-action: none;
299
+ user-select: none;
300
+ container-type: size;
301
+
302
+ /* Pad background */
303
+ --pad-background: var(--surface-4, oklch(22% 0.02 240));
304
+ --pad-border-color: var(--surface-6, oklch(35% 0.02 240));
305
+ --pad-border-width: 1px;
306
+
307
+ /* Marker */
308
+ --marker-size: 10cqb;
309
+ --marker-color: var(--accent, oklch(60% 0.15 140));
310
+ --marker-opacity: 1;
311
+ --marker-stroke: none;
312
+ --marker-stroke-width: 0;
313
+
314
+ /* Origin dot */
315
+ --origin-size: 6cqb;
316
+ --origin-color: var(--accent, oklch(60% 0.15 140));
317
+ --origin-opacity: 1;
318
+
319
+ /* Ray line */
320
+ --ray-color: var(--surface-6, oklch(35% 0.02 240));
321
+ --ray-width: 2px;
322
+ --ray-opacity: 1;
323
+ --ray-dash: none;
324
+
325
+ /* Concentric rings */
326
+ --ring-color: var(--surface-6, oklch(35% 0.02 240));
327
+ --ring-width: 1px;
328
+ --ring-opacity: 1;
329
+ --ring-dash: none;
330
+
331
+ /* Radial spokes */
332
+ --spoke-color: var(--surface-6, oklch(35% 0.02 240));
333
+ --spoke-width: 1px;
334
+ --spoke-opacity: 1;
335
+ --spoke-dash: none;
336
+ }
337
+
338
+ :host([disabled]) {
339
+ opacity: 0.5;
340
+ pointer-events: none;
341
+ }
342
+
343
+ .polar-pad-area {
344
+ position: relative;
345
+ width: 100%;
346
+ height: 100%;
347
+ cursor: var(--cursor-display, crosshair);
348
+ }
349
+
350
+ :host([dragging]) .polar-pad-area {
351
+ cursor: none;
352
+ }
353
+
354
+ svg {
355
+ width: 100%;
356
+ height: 100%;
357
+ overflow: visible;
358
+ }
359
+
360
+ .pad-background {
361
+ /* Used on the foreignObject div — accepts any CSS background value */
362
+ width: 100%;
363
+ height: 100%;
364
+ background: var(--pad-background);
365
+ }
366
+
367
+ .pad-border {
368
+ fill: none;
369
+ stroke: var(--pad-border-color);
370
+ stroke-width: var(--pad-border-width);
371
+ vector-effect: non-scaling-stroke;
372
+ }
373
+
374
+ .ring {
375
+ fill: none;
376
+ stroke: var(--ring-color);
377
+ stroke-width: var(--ring-width);
378
+ stroke-dasharray: var(--ring-dash);
379
+ opacity: var(--ring-opacity);
380
+ vector-effect: non-scaling-stroke;
381
+ }
382
+
383
+ .spoke {
384
+ fill: none;
385
+ stroke: var(--spoke-color);
386
+ stroke-width: var(--spoke-width);
387
+ stroke-dasharray: var(--spoke-dash);
388
+ opacity: var(--spoke-opacity);
389
+ vector-effect: non-scaling-stroke;
390
+ }
391
+
392
+ .ray {
393
+ fill: none;
394
+ stroke: var(--ray-color);
395
+ stroke-width: var(--ray-width);
396
+ stroke-dasharray: var(--ray-dash);
397
+ opacity: var(--ray-opacity);
398
+ vector-effect: non-scaling-stroke;
399
+ }
400
+
401
+ .origin-dot {
402
+ fill: var(--origin-color);
403
+ opacity: var(--origin-opacity);
404
+ }
405
+
406
+ .marker {
407
+ fill: var(--marker-color);
408
+ opacity: var(--marker-opacity);
409
+ stroke: var(--marker-stroke);
410
+ stroke-width: var(--marker-stroke-width);
411
+ cursor: grab;
412
+ }
413
+
414
+ .marker:active {
415
+ cursor: grabbing;
416
+ }
417
+
418
+ svg:focus {
419
+ outline: none;
420
+ }
421
+
422
+ svg:focus-visible .pad-border {
423
+ stroke: var(--accent);
424
+ stroke-width: 3;
425
+ }
426
+ `; }
427
+ _updateFromPointer(e) {
428
+ const area = this.renderRoot.querySelector(`.polar-pad-area`);
429
+ if (!area)
430
+ return;
431
+ const rect = area.getBoundingClientRect();
432
+ const size = Math.min(rect.width, rect.height);
433
+ const svgX = ((e.clientX - rect.left) / size) * 100;
434
+ const svgY = ((e.clientY - rect.top) / size) * 100;
435
+ const { angleRad, radius } = svgToPolar(svgX, svgY);
436
+ const newAngleDeg = angleRad * RAD_TO_DEG;
437
+ const newRadius = clamp01(radius);
438
+ this._prevAngle = this.angle;
439
+ this._prevRadius = this.radius;
440
+ const snappedAngle = snapAngle(newAngleDeg, this._prevAngle, this.rays, this.snapValue);
441
+ const snappedRadius = snapRadius(newRadius, this._prevRadius, this.rings, this.snapValue);
442
+ const effectiveStopsAngle = this.stopsAngle ?? this.stops;
443
+ const effectiveStopsRadius = this.stopsRadius ?? this.stops;
444
+ this.angle = quantiseAngle(snappedAngle, effectiveStopsAngle);
445
+ this.radius = quantiseRadius(snappedRadius, effectiveStopsRadius);
446
+ this._prevAngle = newAngleDeg;
447
+ this._prevRadius = newRadius;
448
+ this.dispatchEvent(new CustomEvent(`input`, {
449
+ detail: { angle: this.angle, radius: this.radius },
450
+ bubbles: true,
451
+ composed: true,
452
+ }));
453
+ }
454
+ // -------------------------------------------------------------------------
455
+ // CSS variable sync
456
+ // -------------------------------------------------------------------------
457
+ _setCssVars() {
458
+ this.style.setProperty(`--angle-deg`, `${this.angle}`);
459
+ this.style.setProperty(`--angle-rad`, `${this.angle * DEG_TO_RAD}`);
460
+ this.style.setProperty(`--radius-pct`, `${clamp01(this.radius) * 100}`);
461
+ }
462
+ updated(_changed) {
463
+ super.updated(_changed);
464
+ this._setCssVars();
465
+ }
466
+ disconnectedCallback() {
467
+ super.disconnectedCallback();
468
+ this._onPointerUp();
469
+ this._pressedKeys.clear();
470
+ }
471
+ // -------------------------------------------------------------------------
472
+ // SVG helpers
473
+ // -------------------------------------------------------------------------
474
+ _renderRings() {
475
+ if (this.rings <= 0)
476
+ return ``;
477
+ const items = [];
478
+ for (let i = 1; i <= this.rings; i++) {
479
+ const r = (i / this.rings) * 50;
480
+ items.push(svg `<circle class="ring" cx="50" cy="50" r="${r}" />`);
481
+ }
482
+ return items;
483
+ }
484
+ _renderSpokes() {
485
+ if (this.rays <= 0)
486
+ return ``;
487
+ const items = [];
488
+ for (let i = 0; i < this.rays; i++) {
489
+ const angleRad = (i / this.rays) * 2 * Math.PI;
490
+ const cos = Math.cos(angleRad);
491
+ const sin = Math.sin(angleRad); // SVG +y downward matches CW convention directly
492
+ const x1 = 50 + cos * 50;
493
+ const y1 = 50 + sin * 50;
494
+ const x2 = 50 - cos * 50;
495
+ const y2 = 50 - sin * 50;
496
+ items.push(svg `<line class="spoke" x1="${x1}" y1="${y1}" x2="${x2}" y2="${y2}" />`);
497
+ }
498
+ return items;
499
+ }
500
+ _renderRay(markerX, markerY) {
501
+ if (!this.showRay)
502
+ return ``;
503
+ return svg `<line class="ray" x1="50" y1="50" x2="${markerX}" y2="${markerY}" />`;
504
+ }
505
+ _renderOrigin() {
506
+ if (!this.showOrigin)
507
+ return ``;
508
+ return svg `<circle class="origin-dot" cx="50" cy="50" r="3" style="r: calc(var(--origin-size) / 2)" />`;
509
+ }
510
+ // -------------------------------------------------------------------------
511
+ // Render
512
+ // -------------------------------------------------------------------------
513
+ render() {
514
+ const angleRad = this.angle * DEG_TO_RAD;
515
+ const { x: markerX, y: markerY } = polarToSvg(angleRad, clamp01(this.radius));
516
+ return html `
517
+ <div class="polar-pad-area"
518
+ @pointerdown=${this._onPointerDown}
519
+ @keydown=${this._onKeyDown}
520
+ @keyup=${this._onKeyUp}
521
+ @blur=${() => this._pressedKeys.clear()}>
522
+ <svg viewBox="0 0 100 100"
523
+ preserveAspectRatio="xMidYMid meet"
524
+ tabindex=${this.disabled ? -1 : 0}>
525
+ <defs>
526
+ <clipPath id="circle-clip-${this._uid}">
527
+ <circle cx="50" cy="50" r="50" />
528
+ </clipPath>
529
+ </defs>
530
+
531
+ <!-- clipped group: background + rings + spokes -->
532
+ <g clip-path="url(#circle-clip-${this._uid})">
533
+ <foreignObject x="0" y="0" width="100" height="100">
534
+ <div class="pad-background" xmlns="http://www.w3.org/1999/xhtml"></div>
535
+ </foreignObject>
536
+ ${this._renderRings()}
537
+ ${this._renderSpokes()}
538
+ </g>
539
+
540
+ <!-- border circle (on top of clip, non-scaling stroke) -->
541
+ <circle class="pad-border" cx="50" cy="50" r="49.75" />
542
+
543
+ <!-- ray + origin + marker -->
544
+ ${this._renderRay(markerX, markerY)}
545
+ ${this._renderOrigin()}
546
+ <circle
547
+ class="marker"
548
+ cx="${markerX}"
549
+ cy="${markerY}"
550
+ r="5"
551
+ style="r: calc(var(--marker-size) / 2)"
552
+ />
553
+ </svg>
554
+ </div>
555
+ `;
556
+ }
557
+ };
558
+ __decorate([
559
+ property({ type: Number })
560
+ ], PolarPad.prototype, "angle", void 0);
561
+ __decorate([
562
+ property({ type: Number })
563
+ ], PolarPad.prototype, "radius", void 0);
564
+ __decorate([
565
+ property({ type: Number })
566
+ ], PolarPad.prototype, "rings", void 0);
567
+ __decorate([
568
+ property({ type: Number })
569
+ ], PolarPad.prototype, "rays", void 0);
570
+ __decorate([
571
+ property({ type: Boolean, reflect: true, attribute: `show-ray` })
572
+ ], PolarPad.prototype, "showRay", void 0);
573
+ __decorate([
574
+ property({ type: Boolean, reflect: true, attribute: `show-origin` })
575
+ ], PolarPad.prototype, "showOrigin", void 0);
576
+ __decorate([
577
+ property({ type: Boolean, reflect: true, attribute: `hide-cursor` })
578
+ ], PolarPad.prototype, "hideCursor", void 0);
579
+ __decorate([
580
+ property({ type: Boolean, attribute: `snap-value`, reflect: true })
581
+ ], PolarPad.prototype, "snapValue", void 0);
582
+ __decorate([
583
+ property({ type: Boolean, reflect: true })
584
+ ], PolarPad.prototype, "disabled", void 0);
585
+ __decorate([
586
+ property({ type: Number })
587
+ ], PolarPad.prototype, "stops", void 0);
588
+ __decorate([
589
+ property({ type: Number, attribute: `stops-angle` })
590
+ ], PolarPad.prototype, "stopsAngle", void 0);
591
+ __decorate([
592
+ property({ type: Number, attribute: `stops-radius` })
593
+ ], PolarPad.prototype, "stopsRadius", void 0);
594
+ PolarPad = __decorate([
595
+ customElement(`ixfx-polar-pad`)
596
+ ], PolarPad);
597
+ export { PolarPad };
598
+ //# sourceMappingURL=polar-pad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polar-pad.js","sourceRoot":"","sources":["../../src/polar-pad/polar-pad.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Radial input component
3
+ * A rotary dial input inspired by Ableton Live and music production software
4
+ */
5
+ import type { PropertyValues } from 'lit';
6
+ import type { LaneData, LaneType, MarkerStyle, ValueMode } from './types.js';
7
+ import { LitElement } from 'lit';
8
+ export declare class RadialInputElement extends LitElement {
9
+ #private;
10
+ get radius(): number;
11
+ set radius(v: number);
12
+ value: number;
13
+ min: number;
14
+ max: number;
15
+ step: number | undefined;
16
+ stops?: number;
17
+ valueMode: ValueMode;
18
+ flatten: number;
19
+ markerStyle: MarkerStyle;
20
+ wedge: boolean;
21
+ disabled: boolean;
22
+ constructor();
23
+ addLane(key: string, options?: {
24
+ value?: number;
25
+ type?: LaneType;
26
+ offset?: number;
27
+ width?: number;
28
+ }): void;
29
+ setLaneValue(key: string, value: number): void;
30
+ removeLane(key: string): void;
31
+ getLanes(): ReadonlyMap<string, LaneData>;
32
+ getLane(key: string): LaneData | undefined;
33
+ protected willUpdate(changed: PropertyValues): void;
34
+ render(): unknown;
35
+ protected updated(changed: PropertyValues): void;
36
+ disconnectedCallback(): void;
37
+ firstUpdated(): void;
38
+ static styles: import("lit").CSSResult[];
39
+ }
40
+ declare global {
41
+ interface HTMLElementTagNameMap {
42
+ 'ixfx-radial-input': RadialInputElement;
43
+ }
44
+ }
45
+ //# sourceMappingURL=radial-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radial-input.d.ts","sourceRoot":"","sources":["../../src/radial-input/radial-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EAGX,SAAS,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAa,UAAU,EAAO,MAAM,KAAK,CAAC;AAmBjD,qBACa,kBAAmB,SAAQ,UAAU;;IAKhD,IACI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAID,KAAK,SAAK;IAGV,GAAG,SAAK;IAGR,GAAG,SAAO;IAGV,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,KAAK,CAAC,EAAE,MAAM,CAAC;IAIf,SAAS,EAAE,SAAS,CAAW;IAI/B,OAAO,SAAO;IAGd,WAAW,EAAE,WAAW,CAAY;IAGpC,KAAK,UAAS;IAId,QAAQ,UAAS;;IA+BjB,OAAO,CACL,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,IAAI;IAYP,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ9C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7B,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;cA4bvB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAanD,MAAM,IAAI,OAAO;cAgDP,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IA4BhD,oBAAoB,IAAI,IAAI;IAQ5B,YAAY,IAAI,IAAI;IAY7B,OAAgB,MAAM,4BAqHnB;CACJ;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,kBAAkB,CAAC;KACzC;CACF"}