@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,330 @@
1
+ // ── Grid resolution ───────────────────────────────────────────────────
2
+ const NICE_STEPS = [1, 2, 5, 10];
3
+ /**
4
+ * Dispatch to adaptive or fixed grid mode.
5
+ */
6
+ export const resolveGrid = (viewRange, userScale, viewportWidth, mode = `adaptive`, fixedMinorStep, ppu) => {
7
+ if (mode === `fixed` && fixedMinorStep !== undefined && ppu !== undefined) {
8
+ return resolveFixedGrid(fixedMinorStep, ppu);
9
+ }
10
+ return resolveAdaptiveGrid(viewRange, userScale, viewportWidth);
11
+ };
12
+ /**
13
+ * Compute a nice major/minor grid resolution for the current view.
14
+ * Uses a 1-2-5-10 "nice number" algorithm.
15
+ */
16
+ const resolveAdaptiveGrid = (viewRange, userScale, viewportWidth) => {
17
+ const span = viewRange.max - viewRange.min;
18
+ if (span <= 0 || viewportWidth <= 0) {
19
+ return { majorStep: 100, minorDivisions: 4, minorStep: 25 };
20
+ }
21
+ // Target ~60-120px between major gridlines
22
+ const densityMultiplier = scaleMultiplier(userScale);
23
+ const targetPx = 80 * densityMultiplier;
24
+ const targetMajors = Math.max(2, Math.floor(viewportWidth / targetPx));
25
+ const rawStep = span / targetMajors;
26
+ // Find nearest "nice" step
27
+ const magnitude = Math.pow(10, Math.floor(Math.log10(rawStep)));
28
+ let bestStep = magnitude;
29
+ for (const n of NICE_STEPS) {
30
+ const candidate = n * magnitude;
31
+ if (candidate >= rawStep * 0.8) {
32
+ bestStep = candidate;
33
+ break;
34
+ }
35
+ }
36
+ // Minor divisions: 4 for most, 5 for steps of 5/10
37
+ const normalised = bestStep / magnitude;
38
+ const minorDivisions = normalised === 5 || normalised === 10 ? 5 : 4;
39
+ const minorStep = bestStep / minorDivisions;
40
+ return { majorStep: bestStep, minorDivisions, minorStep };
41
+ };
42
+ /**
43
+ * Fixed grid: user specifies a base minor step in logical units.
44
+ * If the minor step at current zoom would produce lines < 5px apart,
45
+ * double the effective step until they're >= 5px.
46
+ * Major = 4× effective minor.
47
+ */
48
+ const resolveFixedGrid = (baseMinorStep, ppu) => {
49
+ const MIN_PX_BETWEEN = 5;
50
+ let effectiveMinor = baseMinorStep;
51
+ // Double until minor gridlines are at least MIN_PX_BETWEEN apart
52
+ while (effectiveMinor * ppu < MIN_PX_BETWEEN && effectiveMinor < 1e12) {
53
+ effectiveMinor *= 2;
54
+ }
55
+ const minorDivisions = 4;
56
+ const majorStep = effectiveMinor * minorDivisions;
57
+ return { majorStep, minorDivisions, minorStep: effectiveMinor };
58
+ };
59
+ const scaleMultiplier = (scale) => {
60
+ switch (scale) {
61
+ case `x-wide`: return 2.0;
62
+ case `wide`: return 1.5;
63
+ case `normal`: return 1.0;
64
+ case `slim`: return 0.7;
65
+ case `x-slim`: return 0.5;
66
+ default: return 1.0;
67
+ }
68
+ };
69
+ // ── Draw: major/minor grid ────────────────────────────────────────────
70
+ export const drawMajorMinorGrid = (ctx, region, resolution, altMajorBg, vars, ppu) => {
71
+ const { majorStep, minorStep } = resolution;
72
+ if (majorStep <= 0)
73
+ return;
74
+ const regionEnd = region.x + region.width;
75
+ // Draw alternating major background tints
76
+ if (altMajorBg) {
77
+ const altColor = vars[`--timeline-alt-major-bg`] ?? `rgba(255,255,255,0.03)`;
78
+ ctx.fillStyle = altColor;
79
+ const firstMajor = Math.floor(region.x / majorStep);
80
+ for (let i = firstMajor; i * majorStep < regionEnd; i++) {
81
+ if (i % 2 !== 0) {
82
+ const x = i * majorStep * ppu;
83
+ ctx.fillRect(x, region.y, majorStep * ppu, region.height);
84
+ }
85
+ }
86
+ }
87
+ // Minor gridlines
88
+ if (minorStep > 0) {
89
+ ctx.strokeStyle = vars[`--timeline-grid-minor-color`] ?? `rgba(255,255,255,0.05)`;
90
+ ctx.lineWidth = parseFloat(vars[`--timeline-grid-minor-width`] ?? `0.5`);
91
+ ctx.beginPath();
92
+ const firstMinor = Math.floor(region.x / minorStep) * minorStep;
93
+ for (let val = firstMinor; val < regionEnd; val += minorStep) {
94
+ // Skip positions that are major gridlines
95
+ if (Math.abs(val % majorStep) < minorStep * 0.01)
96
+ continue;
97
+ const px = val * ppu;
98
+ ctx.moveTo(px, region.y);
99
+ ctx.lineTo(px, region.y + region.height);
100
+ }
101
+ ctx.stroke();
102
+ }
103
+ // Major gridlines
104
+ ctx.strokeStyle = vars[`--timeline-grid-major-color`] ?? `rgba(255,255,255,0.12)`;
105
+ ctx.lineWidth = parseFloat(vars[`--timeline-grid-major-width`] ?? `1`);
106
+ ctx.beginPath();
107
+ const firstMajor = Math.floor(region.x / majorStep) * majorStep;
108
+ for (let val = firstMajor; val < regionEnd; val += majorStep) {
109
+ const px = val * ppu;
110
+ ctx.moveTo(px, region.y);
111
+ ctx.lineTo(px, region.y + region.height);
112
+ }
113
+ ctx.stroke();
114
+ };
115
+ // ── Draw: axis labels ─────────────────────────────────────────────────
116
+ /**
117
+ * Draw the axis header band. With 2D virtualization the axis is "sticky" —
118
+ * it is always drawn at the current vertical scroll position (`scrollTop`)
119
+ * so it appears fixed at the viewport top.
120
+ */
121
+ export const drawAxis = (ctx, region, resolution, axisHeight, formatLabel, vars, ppu, scrollTop = 0) => {
122
+ const { majorStep } = resolution;
123
+ if (majorStep <= 0 || axisHeight <= 0)
124
+ return;
125
+ // Axis band occupies [scrollTop, scrollTop + axisHeight] in logical Y
126
+ const axisTop = scrollTop;
127
+ const axisBottom = scrollTop + axisHeight;
128
+ // Only draw if this tile's region overlaps the axis band
129
+ if (region.y + region.height < axisTop || region.y > axisBottom)
130
+ return;
131
+ const regionEnd = region.x + region.width;
132
+ // How far major gridlines extend into the axis band (from the bottom)
133
+ const tickHeight = 6;
134
+ const bgHeight = axisHeight - tickHeight;
135
+ // 1. Solid background covers upper portion; leaves bottom strip for gridline ticks.
136
+ const bgColor = vars[`--timeline-bg`] ?? `#111`;
137
+ ctx.fillStyle = bgColor;
138
+ const bgLeft = region.x * ppu;
139
+ ctx.fillRect(bgLeft, axisTop, region.width * ppu, bgHeight);
140
+ // 2. Major gridline ticks extending into the axis band
141
+ ctx.strokeStyle = vars[`--timeline-grid-major-color`] ?? `rgba(255,255,255,0.12)`;
142
+ ctx.lineWidth = parseFloat(vars[`--timeline-grid-major-width`] ?? `1`);
143
+ ctx.beginPath();
144
+ const firstMajor = Math.ceil(region.x / majorStep) * majorStep;
145
+ for (let val = firstMajor; val < regionEnd; val += majorStep) {
146
+ const px = val * ppu;
147
+ ctx.moveTo(px, axisTop + bgHeight);
148
+ ctx.lineTo(px, axisBottom);
149
+ }
150
+ ctx.stroke();
151
+ // 3. Bottom border
152
+ ctx.strokeStyle = vars[`--timeline-grid-major-color`] ?? `rgba(255,255,255,0.12)`;
153
+ ctx.lineWidth = 1;
154
+ ctx.beginPath();
155
+ ctx.moveTo(bgLeft, axisBottom);
156
+ ctx.lineTo(bgLeft + region.width * ppu, axisBottom);
157
+ ctx.stroke();
158
+ // 4. Labels to the right of each major gridline
159
+ const labelColor = vars[`--timeline-axis-label-color`] ?? `rgba(255,255,255,0.5)`;
160
+ ctx.fillStyle = labelColor;
161
+ ctx.font = `11px system-ui, sans-serif`;
162
+ ctx.textBaseline = `middle`;
163
+ ctx.textAlign = `left`;
164
+ const labelPadding = 4;
165
+ for (let val = firstMajor; val < regionEnd; val += majorStep) {
166
+ const px = val * ppu;
167
+ ctx.fillText(formatLabel(val), px + labelPadding, axisTop + bgHeight / 2);
168
+ }
169
+ // Reset textAlign for subsequent draw calls
170
+ ctx.textAlign = `start`;
171
+ };
172
+ export const drawTrackBackgrounds = (ctx, region, trackLayout, tracks, vars, ppu) => {
173
+ const bgDefault = vars[`--timeline-track-bg`] ?? `#1a1a1a`;
174
+ const bgAlt = vars[`--timeline-track-bg-alt`] ?? `#1e1e1e`;
175
+ for (let i = 0; i < trackLayout.length; i++) {
176
+ const layout = trackLayout[i];
177
+ // Skip if entirely outside the drawn region vertically
178
+ if (layout.y + layout.height < region.y)
179
+ continue;
180
+ if (layout.y > region.y + region.height)
181
+ break;
182
+ const track = tracks.find(t => t.key === layout.trackKey);
183
+ const bg = track?.color ? track.color + `22` : (i % 2 === 0 ? bgDefault : bgAlt);
184
+ ctx.fillStyle = bg;
185
+ ctx.fillRect(region.x * ppu, layout.y, region.width * ppu, layout.height);
186
+ // Subtle separator line between tracks
187
+ ctx.strokeStyle = vars[`--timeline-grid-major-color`] ?? `rgba(255,255,255,0.12)`;
188
+ ctx.lineWidth = 0.5;
189
+ ctx.beginPath();
190
+ ctx.moveTo(region.x * ppu, layout.y + layout.height);
191
+ ctx.lineTo((region.x + region.width) * ppu, layout.y + layout.height);
192
+ ctx.stroke();
193
+ }
194
+ };
195
+ // ── Draw: event rectangles ────────────────────────────────────────────
196
+ export const drawEventRects = (ctx, region, events, trackLayout, selectedIds, tickledId, drag, vars, ppu) => {
197
+ const eventBg = vars[`--timeline-event-bg`] ?? `#3498db`;
198
+ const eventSelectedBg = vars[`--timeline-event-selected-bg`] ?? `#5dade2`;
199
+ const eventTickledBg = vars[`--timeline-event-tickled-bg`] ?? `#444`;
200
+ const eventLabelColor = vars[`--timeline-event-label-color`] ?? `#fff`;
201
+ const radius = parseFloat(vars[`--timeline-event-radius`] ?? `4`);
202
+ const regionEnd = region.x + region.width;
203
+ const padding = 3; // vertical padding inside track
204
+ for (const evt of events) {
205
+ // Skip events outside horizontal view
206
+ if (evt.end < region.x || evt.start > regionEnd)
207
+ continue;
208
+ const layout = trackLayout.find(l => l.trackKey === evt.trackKey);
209
+ if (!layout)
210
+ continue;
211
+ // Skip events outside vertical region
212
+ if (layout.y + layout.height < region.y)
213
+ continue;
214
+ if (layout.y > region.y + region.height)
215
+ continue;
216
+ // Compute provisional position during drag
217
+ let isDragging = false;
218
+ if (drag.kind === `event-move` && drag.eventId === evt.id) {
219
+ isDragging = true;
220
+ }
221
+ else if (drag.kind === `event-start` && drag.eventId === evt.id) {
222
+ isDragging = true;
223
+ }
224
+ else if (drag.kind === `event-end` && drag.eventId === evt.id) {
225
+ isDragging = true;
226
+ }
227
+ const x = evt.start * ppu;
228
+ const w = (evt.end - evt.start) * ppu;
229
+ const y = layout.y + padding;
230
+ const h = layout.height - padding * 2;
231
+ if (w < 1)
232
+ continue;
233
+ // Choose fill color
234
+ const isSelected = selectedIds.has(evt.id);
235
+ const isTickled = tickledId === evt.id;
236
+ let fill;
237
+ if (isSelected) {
238
+ fill = eventSelectedBg;
239
+ }
240
+ else if (isTickled) {
241
+ fill = eventTickledBg;
242
+ }
243
+ else {
244
+ fill = evt.color ?? eventBg;
245
+ }
246
+ // Draw rounded rect
247
+ ctx.fillStyle = fill;
248
+ ctx.beginPath();
249
+ drawRoundRect(ctx, x, y, w, h, Math.min(radius, w / 2, h / 2));
250
+ ctx.fill();
251
+ // Drag outline
252
+ if (isDragging) {
253
+ ctx.strokeStyle = `#fff`;
254
+ ctx.lineWidth = 1.5;
255
+ ctx.beginPath();
256
+ drawRoundRect(ctx, x, y, w, h, Math.min(radius, w / 2, h / 2));
257
+ ctx.stroke();
258
+ }
259
+ // Selection outline
260
+ if (isSelected && !isDragging) {
261
+ ctx.strokeStyle = eventSelectedBg;
262
+ ctx.lineWidth = 1;
263
+ ctx.beginPath();
264
+ drawRoundRect(ctx, x, y, w, h, Math.min(radius, w / 2, h / 2));
265
+ ctx.stroke();
266
+ }
267
+ // Label (only if wide enough in pixels)
268
+ if (w >= 40 && evt.label) {
269
+ ctx.fillStyle = eventLabelColor;
270
+ ctx.font = `11px system-ui, sans-serif`;
271
+ ctx.textBaseline = `middle`;
272
+ ctx.save();
273
+ ctx.beginPath();
274
+ ctx.rect(x + 4, y, w - 8, h);
275
+ ctx.clip();
276
+ ctx.fillText(evt.label, x + 6, y + h / 2);
277
+ ctx.restore();
278
+ }
279
+ }
280
+ };
281
+ // ── Draw: marquee selection rectangle ─────────────────────────────────
282
+ export const drawMarquee = (ctx, drag, ppu) => {
283
+ if (drag.kind !== `marquee`)
284
+ return;
285
+ const x1 = Math.min(drag.startLogicalX, drag.currentLogicalX) * ppu;
286
+ const x2 = Math.max(drag.startLogicalX, drag.currentLogicalX) * ppu;
287
+ const y1 = Math.min(drag.startY, drag.currentY);
288
+ const y2 = Math.max(drag.startY, drag.currentY);
289
+ ctx.fillStyle = `rgba(100, 150, 255, 0.15)`;
290
+ ctx.fillRect(x1, y1, x2 - x1, y2 - y1);
291
+ ctx.strokeStyle = `rgba(100, 150, 255, 0.6)`;
292
+ ctx.lineWidth = 1;
293
+ ctx.strokeRect(x1, y1, x2 - x1, y2 - y1);
294
+ };
295
+ // ── Helpers ───────────────────────────────────────────────────────────
296
+ const drawRoundRect = (ctx, x, y, w, h, r) => {
297
+ r = Math.max(0, r);
298
+ ctx.moveTo(x + r, y);
299
+ ctx.arcTo(x + w, y, x + w, y + h, r);
300
+ ctx.arcTo(x + w, y + h, x, y + h, r);
301
+ ctx.arcTo(x, y + h, x, y, r);
302
+ ctx.arcTo(x, y, x + w, y, r);
303
+ ctx.closePath();
304
+ };
305
+ // ── CSS variable resolution helper ────────────────────────────────────
306
+ const TIMELINE_CSS_VARS = [
307
+ `--timeline-bg`,
308
+ `--timeline-track-bg`,
309
+ `--timeline-track-bg-alt`,
310
+ `--timeline-alt-major-bg`,
311
+ `--timeline-grid-major-color`,
312
+ `--timeline-grid-minor-color`,
313
+ `--timeline-grid-major-width`,
314
+ `--timeline-grid-minor-width`,
315
+ `--timeline-event-bg`,
316
+ `--timeline-event-selected-bg`,
317
+ `--timeline-event-tickled-bg`,
318
+ `--timeline-event-label-color`,
319
+ `--timeline-event-radius`,
320
+ `--timeline-axis-label-color`,
321
+ ];
322
+ export const resolveCssVars = (host) => {
323
+ const computed = getComputedStyle(host);
324
+ const vars = {};
325
+ for (const v of TIMELINE_CSS_VARS) {
326
+ vars[v] = computed.getPropertyValue(v).trim();
327
+ }
328
+ return vars;
329
+ };
330
+ //# sourceMappingURL=timeline-draw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-draw.js","sourceRoot":"","sources":["../../src/timeline/timeline-draw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ import type { PropertyValues } from 'lit';
2
+ import type { Rect } from './timeline-draw.js';
3
+ import type { DragSnappingFn, DragTarget, GridMode, GridResolution, TimelineElementEventMap, TimelineEvent, TimelineTrack, TrackHeightMode, TrackLayout, UserScale, ViewRange } from './types.js';
4
+ import { LitElement } from 'lit';
5
+ import './timeline-track-tabs.js';
6
+ import '@clinth/vcanvas';
7
+ type VCanvasElement = HTMLElement & {
8
+ logicalWidth: number;
9
+ logicalHeight: number;
10
+ logicalScrollLeft: number;
11
+ logicalScrollTop: number;
12
+ viewportWidth: number;
13
+ viewportHeight: number;
14
+ drawCallback: ((ctx: CanvasRenderingContext2D, region: Rect, signal: AbortSignal) => void) | null;
15
+ invalidateAll: () => void;
16
+ invalidateRegion: (x: number, y: number, w: number, h: number) => void;
17
+ convertFromViewportToCanvas: (x: number, y: number) => {
18
+ x: number;
19
+ y: number;
20
+ };
21
+ convertFromCanvasToViewport: (x: number, y: number) => {
22
+ x: number;
23
+ y: number;
24
+ };
25
+ };
26
+ export declare class IxfxTimelineElement extends LitElement {
27
+ #private;
28
+ static styles: import("lit").CSSResult[];
29
+ tracks: TimelineTrack[];
30
+ events: TimelineEvent[];
31
+ min: number;
32
+ max: number;
33
+ trackHeight: TrackHeightMode;
34
+ userScale: UserScale;
35
+ reorderable: boolean;
36
+ metaEnabled: boolean;
37
+ altMajorBg: boolean;
38
+ defaultTrackHeight: number;
39
+ gridMode: GridMode;
40
+ minorStep: number;
41
+ onDragging: DragSnappingFn | null;
42
+ /** Set by TimelineController — formats logical value to label string */
43
+ formatLabel: (v: number) => string;
44
+ /**
45
+ * _ppu (pixels per unit) is the PRIMARY horizontal zoom state.
46
+ * _viewRange.min is the PRIMARY horizontal pan state.
47
+ * _viewRange.max is DERIVED: min + viewportWidth / _ppu.
48
+ */
49
+ _ppu: number;
50
+ _viewRange: ViewRange;
51
+ /**
52
+ * Vertical zoom/pan state. Analogous to horizontal:
53
+ * - _vViewRange is in "base height units" (pre-scale track pixels).
54
+ * - _vScale = viewportHeight / (b - a). When range spans all base height, all tracks fit.
55
+ * - _vScrollOffset = _vViewRange.min * _vScale — the pixel offset applied to content.
56
+ */
57
+ _vViewRange: ViewRange;
58
+ _vScale: number;
59
+ _selectedIds: Set<string>;
60
+ _tickledId: string | undefined;
61
+ _drag: DragTarget;
62
+ _metaHeight: number;
63
+ _trackHeightOverrides: Map<string, number>;
64
+ _trackLayout: TrackLayout[];
65
+ _internalEvents: TimelineEvent[];
66
+ _internalTracks: TimelineTrack[];
67
+ /** Pixels per logical unit — the zoom level */
68
+ get pxPerUnit(): number;
69
+ /** Height of the axis header band in pixels */
70
+ get axisHeight(): number;
71
+ /** Width of the track tab area in pixels (from --timeline-tab-width CSS var) */
72
+ get tabWidth(): number;
73
+ /** Set the zoom level (pixels per logical unit) */
74
+ setPpu(ppu: number): void;
75
+ /**
76
+ * Set the view range. ppu is back-computed from the span.
77
+ * Use for programmatic view changes (e.g. TimelineController).
78
+ */
79
+ setViewRange(range: ViewRange): void;
80
+ /**
81
+ * Set zoom + pan atomically. Used by axis-zoom interaction.
82
+ * viewMin is the left edge in timeline units; ppu is the new zoom level.
83
+ */
84
+ setZoomPan(viewMin: number, ppu: number): void;
85
+ /**
86
+ * Set vertical zoom + pan atomically. Used by v-axis-zoom interaction.
87
+ * vMin/vMax define the vertical view range in base-height units.
88
+ */
89
+ setVerticalZoomPan(vMin: number, vMax: number): void;
90
+ selectAll(): void;
91
+ deselectAll(): void;
92
+ getTrackEvents(trackKey: string): TimelineEvent[];
93
+ get selectedIds(): readonly string[];
94
+ set selectedIds(ids: readonly string[]);
95
+ selectTrack(key: string, shiftKey?: boolean): void;
96
+ /** Resets all track height overrides to the default height and resets vertical zoom. */
97
+ resetTrackHeights(): void;
98
+ /** Default no-op snapping - no modification of drag values */
99
+ static defaultDragSnapping: DragSnappingFn;
100
+ /** Grid-snapping - snaps start/end to nearest minor gridline */
101
+ static gridSnapping: DragSnappingFn;
102
+ /**
103
+ * Called by timeline-interactions during drag.
104
+ * Applies onDragging callback if set, then fires 'dragging' event.
105
+ * Returns constrained values.
106
+ */
107
+ processDrag(eventId: string, rawLogicalX: number, rawY: number, currentStart: number, currentEnd: number, currentTrackKey: string, originTrackKey: string, gridResolution: GridResolution): {
108
+ start: number;
109
+ end: number;
110
+ trackKey: string;
111
+ };
112
+ /** Returns the vcanvas element (for timeline-interactions) */
113
+ getVCanvas(): VCanvasElement | null;
114
+ /** Returns the currently hovered (tickled) event, or null if none. */
115
+ get tickledEvent(): TimelineEvent | null;
116
+ protected firstUpdated(): void;
117
+ disconnectedCallback(): void;
118
+ /**
119
+ * willUpdate runs before render — safe to set @state() properties here
120
+ * without triggering an additional update cycle. All state derivation
121
+ * (internal copies, track layout, vertical zoom) happens here.
122
+ */
123
+ protected willUpdate(changedProps: PropertyValues): void;
124
+ /**
125
+ * updated runs after render — for DOM side-effects only (syncing vcanvas,
126
+ * scrolling, invalidating canvas, dispatching events).
127
+ */
128
+ protected updated(changedProps: PropertyValues): void;
129
+ protected render(): import("lit").TemplateResult<1>;
130
+ }
131
+ declare global {
132
+ interface HTMLElementTagNameMap {
133
+ 'ixfx-timeline': IxfxTimelineElement;
134
+ }
135
+ }
136
+ export interface IxfxTimelineElement {
137
+ addEventListener: (<K extends keyof TimelineElementEventMap>(type: K, listener: (this: IxfxTimelineElement, event: TimelineElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
138
+ }
139
+ export {};
140
+ //# sourceMappingURL=timeline-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-element.d.ts","sourceRoot":"","sources":["../../src/timeline/timeline-element.ts"],"names":[],"mappings":"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"}