@contraagent/elements 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/README.md +72 -2
  2. package/custom-elements.json +4260 -0
  3. package/dist/charts/bar-chart.d.ts +32 -0
  4. package/dist/charts/bar-chart.d.ts.map +1 -0
  5. package/dist/charts/bar-chart.js +70 -0
  6. package/dist/charts/bar-chart.js.map +1 -0
  7. package/dist/charts/base.d.ts +48 -0
  8. package/dist/charts/base.d.ts.map +1 -0
  9. package/dist/charts/base.js +203 -0
  10. package/dist/charts/base.js.map +1 -0
  11. package/dist/charts/column-chart.d.ts +42 -0
  12. package/dist/charts/column-chart.d.ts.map +1 -0
  13. package/dist/charts/column-chart.js +146 -0
  14. package/dist/charts/column-chart.js.map +1 -0
  15. package/dist/charts/heatmap.d.ts +42 -0
  16. package/dist/charts/heatmap.d.ts.map +1 -0
  17. package/dist/charts/heatmap.js +124 -0
  18. package/dist/charts/heatmap.js.map +1 -0
  19. package/dist/charts/index.d.ts +9 -0
  20. package/dist/charts/index.d.ts.map +1 -0
  21. package/dist/charts/index.js +11 -0
  22. package/dist/charts/index.js.map +1 -0
  23. package/dist/charts/line-chart.d.ts +36 -0
  24. package/dist/charts/line-chart.d.ts.map +1 -0
  25. package/dist/charts/line-chart.js +118 -0
  26. package/dist/charts/line-chart.js.map +1 -0
  27. package/dist/charts/scale.d.ts +32 -0
  28. package/dist/charts/scale.d.ts.map +1 -0
  29. package/dist/charts/scale.js +50 -0
  30. package/dist/charts/scale.js.map +1 -0
  31. package/dist/charts/state-grid.d.ts +64 -0
  32. package/dist/charts/state-grid.d.ts.map +1 -0
  33. package/dist/charts/state-grid.js +223 -0
  34. package/dist/charts/state-grid.js.map +1 -0
  35. package/dist/charts/types.d.ts +34 -0
  36. package/dist/charts/types.d.ts.map +1 -0
  37. package/dist/charts/types.js +11 -0
  38. package/dist/charts/types.js.map +1 -0
  39. package/dist/checks/check-table.d.ts +32 -0
  40. package/dist/checks/check-table.d.ts.map +1 -0
  41. package/dist/checks/check-table.js +94 -0
  42. package/dist/checks/check-table.js.map +1 -0
  43. package/dist/checks/index.d.ts +4 -0
  44. package/dist/checks/index.d.ts.map +1 -0
  45. package/dist/checks/index.js +6 -0
  46. package/dist/checks/index.js.map +1 -0
  47. package/dist/checks/styles.d.ts +5 -0
  48. package/dist/checks/styles.d.ts.map +1 -0
  49. package/dist/checks/styles.js +30 -0
  50. package/dist/checks/styles.js.map +1 -0
  51. package/dist/checks/types.d.ts +35 -0
  52. package/dist/checks/types.d.ts.map +1 -0
  53. package/dist/checks/types.js +12 -0
  54. package/dist/checks/types.js.map +1 -0
  55. package/dist/core/clock.d.ts +20 -0
  56. package/dist/core/clock.d.ts.map +1 -0
  57. package/dist/core/clock.js +45 -0
  58. package/dist/core/clock.js.map +1 -0
  59. package/dist/core/define.d.ts +3 -0
  60. package/dist/core/define.d.ts.map +1 -0
  61. package/dist/core/define.js +8 -0
  62. package/dist/core/define.js.map +1 -0
  63. package/dist/core/events.d.ts +78 -0
  64. package/dist/core/events.d.ts.map +1 -0
  65. package/dist/core/events.js +8 -0
  66. package/dist/core/events.js.map +1 -0
  67. package/dist/core/format.d.ts +8 -0
  68. package/dist/core/format.d.ts.map +1 -0
  69. package/dist/core/format.js +28 -0
  70. package/dist/core/format.js.map +1 -0
  71. package/dist/core/frame.d.ts +4 -0
  72. package/dist/core/frame.d.ts.map +1 -0
  73. package/dist/core/frame.js +5 -0
  74. package/dist/core/frame.js.map +1 -0
  75. package/dist/core/strings.d.ts +3 -0
  76. package/dist/core/strings.d.ts.map +1 -0
  77. package/dist/core/strings.js +14 -0
  78. package/dist/core/strings.js.map +1 -0
  79. package/dist/core/tone.d.ts +8 -0
  80. package/dist/core/tone.d.ts.map +1 -0
  81. package/dist/core/tone.js +9 -0
  82. package/dist/core/tone.js.map +1 -0
  83. package/dist/count/count.d.ts +22 -0
  84. package/dist/count/count.d.ts.map +1 -0
  85. package/dist/count/count.js +60 -0
  86. package/dist/count/count.js.map +1 -0
  87. package/dist/count/elapsed.d.ts +18 -0
  88. package/dist/count/elapsed.d.ts.map +1 -0
  89. package/dist/count/elapsed.js +33 -0
  90. package/dist/count/elapsed.js.map +1 -0
  91. package/dist/count/index.d.ts +3 -0
  92. package/dist/count/index.d.ts.map +1 -0
  93. package/dist/count/index.js +5 -0
  94. package/dist/count/index.js.map +1 -0
  95. package/dist/define/all.d.ts +13 -0
  96. package/dist/define/all.d.ts.map +1 -0
  97. package/dist/define/all.js +14 -0
  98. package/dist/define/all.js.map +1 -0
  99. package/dist/define/charts.d.ts +8 -0
  100. package/dist/define/charts.d.ts.map +1 -0
  101. package/dist/define/charts.js +15 -0
  102. package/dist/define/charts.js.map +1 -0
  103. package/dist/define/check-table.d.ts +4 -0
  104. package/dist/define/check-table.d.ts.map +1 -0
  105. package/dist/define/check-table.js +7 -0
  106. package/dist/define/check-table.js.map +1 -0
  107. package/dist/define/count.d.ts +5 -0
  108. package/dist/define/count.d.ts.map +1 -0
  109. package/dist/define/count.js +9 -0
  110. package/dist/define/count.js.map +1 -0
  111. package/dist/define/data-table.d.ts +4 -0
  112. package/dist/define/data-table.d.ts.map +1 -0
  113. package/dist/define/data-table.js +7 -0
  114. package/dist/define/data-table.js.map +1 -0
  115. package/dist/define/graph.d.ts +6 -0
  116. package/dist/define/graph.d.ts.map +1 -0
  117. package/dist/define/graph.js +9 -0
  118. package/dist/define/graph.js.map +1 -0
  119. package/dist/define/json-tree.d.ts +4 -0
  120. package/dist/define/json-tree.d.ts.map +1 -0
  121. package/dist/define/json-tree.js +7 -0
  122. package/dist/define/json-tree.js.map +1 -0
  123. package/dist/define/lanes.d.ts +4 -0
  124. package/dist/define/lanes.d.ts.map +1 -0
  125. package/dist/define/lanes.js +7 -0
  126. package/dist/define/lanes.js.map +1 -0
  127. package/dist/define/markdown.d.ts +4 -0
  128. package/dist/define/markdown.d.ts.map +1 -0
  129. package/dist/define/markdown.js +7 -0
  130. package/dist/define/markdown.js.map +1 -0
  131. package/dist/define/matrix.d.ts +4 -0
  132. package/dist/define/matrix.d.ts.map +1 -0
  133. package/dist/define/matrix.js +7 -0
  134. package/dist/define/matrix.js.map +1 -0
  135. package/dist/define/segmented.d.ts +4 -0
  136. package/dist/define/segmented.d.ts.map +1 -0
  137. package/dist/define/segmented.js +7 -0
  138. package/dist/define/segmented.js.map +1 -0
  139. package/dist/define/tiles.d.ts +5 -0
  140. package/dist/define/tiles.d.ts.map +1 -0
  141. package/dist/define/tiles.js +9 -0
  142. package/dist/define/tiles.js.map +1 -0
  143. package/dist/define/transcript.d.ts +4 -0
  144. package/dist/define/transcript.d.ts.map +1 -0
  145. package/dist/define/transcript.js +7 -0
  146. package/dist/define/transcript.js.map +1 -0
  147. package/dist/graph/arrange.d.ts +43 -0
  148. package/dist/graph/arrange.d.ts.map +1 -0
  149. package/dist/graph/arrange.js +390 -0
  150. package/dist/graph/arrange.js.map +1 -0
  151. package/dist/graph/card.d.ts +71 -0
  152. package/dist/graph/card.d.ts.map +1 -0
  153. package/dist/graph/card.js +185 -0
  154. package/dist/graph/card.js.map +1 -0
  155. package/dist/graph/host.d.ts +82 -0
  156. package/dist/graph/host.d.ts.map +1 -0
  157. package/dist/graph/host.js +21 -0
  158. package/dist/graph/host.js.map +1 -0
  159. package/dist/graph/icons.d.ts +7 -0
  160. package/dist/graph/icons.d.ts.map +1 -0
  161. package/dist/graph/icons.js +18 -0
  162. package/dist/graph/icons.js.map +1 -0
  163. package/dist/graph/index.d.ts +15 -0
  164. package/dist/graph/index.d.ts.map +1 -0
  165. package/dist/graph/index.js +17 -0
  166. package/dist/graph/index.js.map +1 -0
  167. package/dist/graph/layered-graph.d.ts +226 -0
  168. package/dist/graph/layered-graph.d.ts.map +1 -0
  169. package/dist/graph/layered-graph.js +396 -0
  170. package/dist/graph/layered-graph.js.map +1 -0
  171. package/dist/graph/layout.d.ts +80 -0
  172. package/dist/graph/layout.d.ts.map +1 -0
  173. package/dist/graph/layout.js +264 -0
  174. package/dist/graph/layout.js.map +1 -0
  175. package/dist/graph/marks.d.ts +24 -0
  176. package/dist/graph/marks.d.ts.map +1 -0
  177. package/dist/graph/marks.js +38 -0
  178. package/dist/graph/marks.js.map +1 -0
  179. package/dist/graph/nav.d.ts +14 -0
  180. package/dist/graph/nav.d.ts.map +1 -0
  181. package/dist/graph/nav.js +14 -0
  182. package/dist/graph/nav.js.map +1 -0
  183. package/dist/graph/pan-zoom.d.ts +80 -0
  184. package/dist/graph/pan-zoom.d.ts.map +1 -0
  185. package/dist/graph/pan-zoom.js +191 -0
  186. package/dist/graph/pan-zoom.js.map +1 -0
  187. package/dist/graph/paths.d.ts +9 -0
  188. package/dist/graph/paths.d.ts.map +1 -0
  189. package/dist/graph/paths.js +44 -0
  190. package/dist/graph/paths.js.map +1 -0
  191. package/dist/graph/place-card.d.ts +36 -0
  192. package/dist/graph/place-card.d.ts.map +1 -0
  193. package/dist/graph/place-card.js +68 -0
  194. package/dist/graph/place-card.js.map +1 -0
  195. package/dist/graph/strings.d.ts +50 -0
  196. package/dist/graph/strings.d.ts.map +1 -0
  197. package/dist/graph/strings.js +37 -0
  198. package/dist/graph/strings.js.map +1 -0
  199. package/dist/graph/styles.d.ts +2 -0
  200. package/dist/graph/styles.d.ts.map +1 -0
  201. package/dist/graph/styles.js +203 -0
  202. package/dist/graph/styles.js.map +1 -0
  203. package/dist/graph/types.d.ts +184 -0
  204. package/dist/graph/types.d.ts.map +1 -0
  205. package/dist/graph/types.js +2 -0
  206. package/dist/graph/types.js.map +1 -0
  207. package/dist/graph/view.d.ts +17 -0
  208. package/dist/graph/view.d.ts.map +1 -0
  209. package/dist/graph/view.js +21 -0
  210. package/dist/graph/view.js.map +1 -0
  211. package/dist/graph/views/dag.d.ts +10 -0
  212. package/dist/graph/views/dag.d.ts.map +1 -0
  213. package/dist/graph/views/dag.js +292 -0
  214. package/dist/graph/views/dag.js.map +1 -0
  215. package/dist/graph/views/foot.d.ts +8 -0
  216. package/dist/graph/views/foot.d.ts.map +1 -0
  217. package/dist/graph/views/foot.js +103 -0
  218. package/dist/graph/views/foot.js.map +1 -0
  219. package/dist/graph/views/node-table.d.ts +17 -0
  220. package/dist/graph/views/node-table.d.ts.map +1 -0
  221. package/dist/graph/views/node-table.js +80 -0
  222. package/dist/graph/views/node-table.js.map +1 -0
  223. package/dist/index.d.ts +22 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +26 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/json/index.d.ts +2 -0
  228. package/dist/json/index.d.ts.map +1 -0
  229. package/dist/json/index.js +3 -0
  230. package/dist/json/index.js.map +1 -0
  231. package/dist/json/json-tree.d.ts +21 -0
  232. package/dist/json/json-tree.d.ts.map +1 -0
  233. package/dist/json/json-tree.js +51 -0
  234. package/dist/json/json-tree.js.map +1 -0
  235. package/dist/lanes/index.d.ts +5 -0
  236. package/dist/lanes/index.d.ts.map +1 -0
  237. package/dist/lanes/index.js +7 -0
  238. package/dist/lanes/index.js.map +1 -0
  239. package/dist/lanes/lanes.d.ts +56 -0
  240. package/dist/lanes/lanes.d.ts.map +1 -0
  241. package/dist/lanes/lanes.js +160 -0
  242. package/dist/lanes/lanes.js.map +1 -0
  243. package/dist/lanes/stack.d.ts +26 -0
  244. package/dist/lanes/stack.d.ts.map +1 -0
  245. package/dist/lanes/stack.js +43 -0
  246. package/dist/lanes/stack.js.map +1 -0
  247. package/dist/lanes/styles.d.ts +2 -0
  248. package/dist/lanes/styles.d.ts.map +1 -0
  249. package/dist/lanes/styles.js +30 -0
  250. package/dist/lanes/styles.js.map +1 -0
  251. package/dist/lanes/types.d.ts +41 -0
  252. package/dist/lanes/types.d.ts.map +1 -0
  253. package/dist/lanes/types.js +6 -0
  254. package/dist/lanes/types.js.map +1 -0
  255. package/dist/markdown/cae-markdown.d.ts +37 -0
  256. package/dist/markdown/cae-markdown.d.ts.map +1 -0
  257. package/dist/markdown/cae-markdown.js +68 -0
  258. package/dist/markdown/cae-markdown.js.map +1 -0
  259. package/dist/markdown/highlight.d.ts +5 -0
  260. package/dist/markdown/highlight.d.ts.map +1 -0
  261. package/dist/markdown/highlight.js +86 -0
  262. package/dist/markdown/highlight.js.map +1 -0
  263. package/dist/markdown/index.d.ts +4 -0
  264. package/dist/markdown/index.d.ts.map +1 -0
  265. package/dist/markdown/index.js +6 -0
  266. package/dist/markdown/index.js.map +1 -0
  267. package/dist/markdown/markdown.d.ts +4 -0
  268. package/dist/markdown/markdown.d.ts.map +1 -0
  269. package/dist/markdown/markdown.js +105 -0
  270. package/dist/markdown/markdown.js.map +1 -0
  271. package/dist/matrix/grid-step.d.ts +8 -0
  272. package/dist/matrix/grid-step.d.ts.map +1 -0
  273. package/dist/matrix/grid-step.js +69 -0
  274. package/dist/matrix/grid-step.js.map +1 -0
  275. package/dist/matrix/index.d.ts +5 -0
  276. package/dist/matrix/index.d.ts.map +1 -0
  277. package/dist/matrix/index.js +7 -0
  278. package/dist/matrix/index.js.map +1 -0
  279. package/dist/matrix/mark-matrix.d.ts +97 -0
  280. package/dist/matrix/mark-matrix.d.ts.map +1 -0
  281. package/dist/matrix/mark-matrix.js +272 -0
  282. package/dist/matrix/mark-matrix.js.map +1 -0
  283. package/dist/matrix/styles.d.ts +4 -0
  284. package/dist/matrix/styles.d.ts.map +1 -0
  285. package/dist/matrix/styles.js +47 -0
  286. package/dist/matrix/styles.js.map +1 -0
  287. package/dist/matrix/types.d.ts +79 -0
  288. package/dist/matrix/types.d.ts.map +1 -0
  289. package/dist/matrix/types.js +5 -0
  290. package/dist/matrix/types.js.map +1 -0
  291. package/dist/primitives/fact-line.d.ts +14 -0
  292. package/dist/primitives/fact-line.d.ts.map +1 -0
  293. package/dist/primitives/fact-line.js +18 -0
  294. package/dist/primitives/fact-line.js.map +1 -0
  295. package/dist/primitives/icon.d.ts +14 -0
  296. package/dist/primitives/icon.d.ts.map +1 -0
  297. package/dist/primitives/icon.js +19 -0
  298. package/dist/primitives/icon.js.map +1 -0
  299. package/dist/primitives/index.d.ts +10 -0
  300. package/dist/primitives/index.d.ts.map +1 -0
  301. package/dist/primitives/index.js +13 -0
  302. package/dist/primitives/index.js.map +1 -0
  303. package/dist/primitives/legend.d.ts +28 -0
  304. package/dist/primitives/legend.d.ts.map +1 -0
  305. package/dist/primitives/legend.js +28 -0
  306. package/dist/primitives/legend.js.map +1 -0
  307. package/dist/primitives/pill.d.ts +23 -0
  308. package/dist/primitives/pill.d.ts.map +1 -0
  309. package/dist/primitives/pill.js +40 -0
  310. package/dist/primitives/pill.js.map +1 -0
  311. package/dist/primitives/roving-focus.d.ts +47 -0
  312. package/dist/primitives/roving-focus.d.ts.map +1 -0
  313. package/dist/primitives/roving-focus.js +111 -0
  314. package/dist/primitives/roving-focus.js.map +1 -0
  315. package/dist/primitives/segmented.d.ts +41 -0
  316. package/dist/primitives/segmented.d.ts.map +1 -0
  317. package/dist/primitives/segmented.js +88 -0
  318. package/dist/primitives/segmented.js.map +1 -0
  319. package/dist/primitives/share-bar.d.ts +37 -0
  320. package/dist/primitives/share-bar.d.ts.map +1 -0
  321. package/dist/primitives/share-bar.js +69 -0
  322. package/dist/primitives/share-bar.js.map +1 -0
  323. package/dist/primitives/states.d.ts +19 -0
  324. package/dist/primitives/states.d.ts.map +1 -0
  325. package/dist/primitives/states.js +11 -0
  326. package/dist/primitives/states.js.map +1 -0
  327. package/dist/primitives/window.d.ts +24 -0
  328. package/dist/primitives/window.d.ts.map +1 -0
  329. package/dist/primitives/window.js +56 -0
  330. package/dist/primitives/window.js.map +1 -0
  331. package/dist/styles/chips.d.ts +2 -0
  332. package/dist/styles/chips.d.ts.map +1 -0
  333. package/dist/styles/chips.js +18 -0
  334. package/dist/styles/chips.js.map +1 -0
  335. package/dist/styles/facts.d.ts +2 -0
  336. package/dist/styles/facts.d.ts.map +1 -0
  337. package/dist/styles/facts.js +7 -0
  338. package/dist/styles/facts.js.map +1 -0
  339. package/dist/styles/index.d.ts +16 -0
  340. package/dist/styles/index.d.ts.map +1 -0
  341. package/dist/styles/index.js +15 -0
  342. package/dist/styles/index.js.map +1 -0
  343. package/dist/styles/layout.d.ts +2 -0
  344. package/dist/styles/layout.d.ts.map +1 -0
  345. package/dist/styles/layout.js +33 -0
  346. package/dist/styles/layout.js.map +1 -0
  347. package/dist/styles/marks.d.ts +2 -0
  348. package/dist/styles/marks.d.ts.map +1 -0
  349. package/dist/styles/marks.js +30 -0
  350. package/dist/styles/marks.js.map +1 -0
  351. package/dist/styles/meter.d.ts +3 -0
  352. package/dist/styles/meter.d.ts.map +1 -0
  353. package/dist/styles/meter.js +9 -0
  354. package/dist/styles/meter.js.map +1 -0
  355. package/dist/styles/motion.d.ts +2 -0
  356. package/dist/styles/motion.d.ts.map +1 -0
  357. package/dist/styles/motion.js +27 -0
  358. package/dist/styles/motion.js.map +1 -0
  359. package/dist/styles/prose.d.ts +3 -0
  360. package/dist/styles/prose.d.ts.map +1 -0
  361. package/dist/styles/prose.js +59 -0
  362. package/dist/styles/prose.js.map +1 -0
  363. package/dist/styles/reset.d.ts +2 -0
  364. package/dist/styles/reset.d.ts.map +1 -0
  365. package/dist/styles/reset.js +13 -0
  366. package/dist/styles/reset.js.map +1 -0
  367. package/dist/styles/status.d.ts +2 -0
  368. package/dist/styles/status.d.ts.map +1 -0
  369. package/dist/styles/status.js +52 -0
  370. package/dist/styles/status.js.map +1 -0
  371. package/dist/styles/text.d.ts +2 -0
  372. package/dist/styles/text.d.ts.map +1 -0
  373. package/dist/styles/text.js +21 -0
  374. package/dist/styles/text.js.map +1 -0
  375. package/dist/styles/tokens.d.ts +8 -0
  376. package/dist/styles/tokens.d.ts.map +1 -0
  377. package/dist/styles/tokens.js +32 -0
  378. package/dist/styles/tokens.js.map +1 -0
  379. package/dist/table/data-table.d.ts +106 -0
  380. package/dist/table/data-table.d.ts.map +1 -0
  381. package/dist/table/data-table.js +408 -0
  382. package/dist/table/data-table.js.map +1 -0
  383. package/dist/table/index.d.ts +4 -0
  384. package/dist/table/index.d.ts.map +1 -0
  385. package/dist/table/index.js +6 -0
  386. package/dist/table/index.js.map +1 -0
  387. package/dist/table/styles.d.ts +2 -0
  388. package/dist/table/styles.d.ts.map +1 -0
  389. package/dist/table/styles.js +32 -0
  390. package/dist/table/styles.js.map +1 -0
  391. package/dist/table/types.d.ts +48 -0
  392. package/dist/table/types.d.ts.map +1 -0
  393. package/dist/table/types.js +30 -0
  394. package/dist/table/types.js.map +1 -0
  395. package/dist/themes/boot.d.ts +7 -0
  396. package/dist/themes/boot.d.ts.map +1 -0
  397. package/dist/themes/boot.js +14 -0
  398. package/dist/themes/boot.js.map +1 -0
  399. package/dist/themes/choice.d.ts +16 -0
  400. package/dist/themes/choice.d.ts.map +1 -0
  401. package/dist/themes/choice.js +45 -0
  402. package/dist/themes/choice.js.map +1 -0
  403. package/dist/themes/data.d.ts +43 -0
  404. package/dist/themes/data.d.ts.map +1 -0
  405. package/dist/themes/data.js +408 -0
  406. package/dist/themes/data.js.map +1 -0
  407. package/dist/themes/index.d.ts +7 -0
  408. package/dist/themes/index.d.ts.map +1 -0
  409. package/dist/themes/index.js +11 -0
  410. package/dist/themes/index.js.map +1 -0
  411. package/dist/themes/sheet.d.ts +16 -0
  412. package/dist/themes/sheet.d.ts.map +1 -0
  413. package/dist/themes/sheet.js +28 -0
  414. package/dist/themes/sheet.js.map +1 -0
  415. package/dist/themes/token-meanings.d.ts +3 -0
  416. package/dist/themes/token-meanings.d.ts.map +1 -0
  417. package/dist/themes/token-meanings.js +67 -0
  418. package/dist/themes/token-meanings.js.map +1 -0
  419. package/dist/themes/tokens-list.d.ts +14 -0
  420. package/dist/themes/tokens-list.d.ts.map +1 -0
  421. package/dist/themes/tokens-list.js +69 -0
  422. package/dist/themes/tokens-list.js.map +1 -0
  423. package/dist/tiles/index.d.ts +4 -0
  424. package/dist/tiles/index.d.ts.map +1 -0
  425. package/dist/tiles/index.js +6 -0
  426. package/dist/tiles/index.js.map +1 -0
  427. package/dist/tiles/stat-tiles.d.ts +40 -0
  428. package/dist/tiles/stat-tiles.d.ts.map +1 -0
  429. package/dist/tiles/stat-tiles.js +99 -0
  430. package/dist/tiles/stat-tiles.js.map +1 -0
  431. package/dist/tiles/styles.d.ts +2 -0
  432. package/dist/tiles/styles.d.ts.map +1 -0
  433. package/dist/tiles/styles.js +23 -0
  434. package/dist/tiles/styles.js.map +1 -0
  435. package/dist/tiles/types.d.ts +22 -0
  436. package/dist/tiles/types.d.ts.map +1 -0
  437. package/dist/tiles/types.js +2 -0
  438. package/dist/tiles/types.js.map +1 -0
  439. package/dist/transcript/follow-scroll.d.ts +21 -0
  440. package/dist/transcript/follow-scroll.d.ts.map +1 -0
  441. package/dist/transcript/follow-scroll.js +76 -0
  442. package/dist/transcript/follow-scroll.js.map +1 -0
  443. package/dist/transcript/index.d.ts +5 -0
  444. package/dist/transcript/index.d.ts.map +1 -0
  445. package/dist/transcript/index.js +7 -0
  446. package/dist/transcript/index.js.map +1 -0
  447. package/dist/transcript/styles.d.ts +2 -0
  448. package/dist/transcript/styles.d.ts.map +1 -0
  449. package/dist/transcript/styles.js +114 -0
  450. package/dist/transcript/styles.js.map +1 -0
  451. package/dist/transcript/tags.d.ts +6 -0
  452. package/dist/transcript/tags.d.ts.map +1 -0
  453. package/dist/transcript/tags.js +13 -0
  454. package/dist/transcript/tags.js.map +1 -0
  455. package/dist/transcript/tool-card.d.ts +16 -0
  456. package/dist/transcript/tool-card.d.ts.map +1 -0
  457. package/dist/transcript/tool-card.js +87 -0
  458. package/dist/transcript/tool-card.js.map +1 -0
  459. package/dist/transcript/transcript.d.ts +103 -0
  460. package/dist/transcript/transcript.d.ts.map +1 -0
  461. package/dist/transcript/transcript.js +397 -0
  462. package/dist/transcript/transcript.js.map +1 -0
  463. package/dist/transcript/types.d.ts +161 -0
  464. package/dist/transcript/types.d.ts.map +1 -0
  465. package/dist/transcript/types.js +25 -0
  466. package/dist/transcript/types.js.map +1 -0
  467. package/docs/charts.md +58 -0
  468. package/docs/check-table.md +40 -0
  469. package/docs/data-table.md +57 -0
  470. package/docs/examples/charts.ts +61 -0
  471. package/docs/examples/check-table.ts +19 -0
  472. package/docs/examples/ci-pipeline.ts +271 -0
  473. package/docs/examples/data-table.ts +39 -0
  474. package/docs/examples/graph.ts +57 -0
  475. package/docs/examples/lanes.ts +40 -0
  476. package/docs/examples/matrix.ts +56 -0
  477. package/docs/examples/page.css +34 -0
  478. package/docs/examples/segmented.ts +18 -0
  479. package/docs/examples/status.ts +30 -0
  480. package/docs/examples/theme.css +54 -0
  481. package/docs/examples/tiles.ts +27 -0
  482. package/docs/examples/transcript.ts +59 -0
  483. package/docs/graph.md +112 -0
  484. package/docs/lanes.md +48 -0
  485. package/docs/matrix.md +34 -0
  486. package/docs/page.md +87 -0
  487. package/docs/primitives.md +57 -0
  488. package/docs/strings.md +16 -0
  489. package/docs/theming.md +147 -0
  490. package/docs/tiles.md +40 -0
  491. package/docs/transcript.md +73 -0
  492. package/docs/tsconfig.json +20 -0
  493. package/package.json +161 -4
  494. package/src/charts/bar-chart.ts +74 -0
  495. package/src/charts/base.ts +188 -0
  496. package/src/charts/column-chart.ts +153 -0
  497. package/src/charts/heatmap.ts +129 -0
  498. package/src/charts/index.ts +10 -0
  499. package/src/charts/line-chart.ts +128 -0
  500. package/src/charts/scale.ts +61 -0
  501. package/src/charts/state-grid.ts +245 -0
  502. package/src/charts/types.ts +48 -0
  503. package/src/checks/check-table.ts +85 -0
  504. package/src/checks/index.ts +5 -0
  505. package/src/checks/styles.ts +31 -0
  506. package/src/checks/types.ts +48 -0
  507. package/src/core/clock.ts +46 -0
  508. package/src/core/define.ts +7 -0
  509. package/src/core/events.ts +89 -0
  510. package/src/core/format.ts +25 -0
  511. package/src/core/frame.ts +5 -0
  512. package/src/core/strings.ts +11 -0
  513. package/src/core/tone.ts +14 -0
  514. package/src/count/count.ts +54 -0
  515. package/src/count/elapsed.ts +33 -0
  516. package/src/count/index.ts +4 -0
  517. package/src/define/all.ts +13 -0
  518. package/src/define/charts.ts +17 -0
  519. package/src/define/check-table.ts +9 -0
  520. package/src/define/count.ts +11 -0
  521. package/src/define/data-table.ts +9 -0
  522. package/src/define/graph.ts +11 -0
  523. package/src/define/json-tree.ts +9 -0
  524. package/src/define/lanes.ts +9 -0
  525. package/src/define/markdown.ts +9 -0
  526. package/src/define/matrix.ts +9 -0
  527. package/src/define/segmented.ts +9 -0
  528. package/src/define/tiles.ts +11 -0
  529. package/src/define/transcript.ts +9 -0
  530. package/src/graph/arrange.ts +399 -0
  531. package/src/graph/card.ts +209 -0
  532. package/src/graph/host.ts +100 -0
  533. package/src/graph/icons.ts +23 -0
  534. package/src/graph/index.ts +16 -0
  535. package/src/graph/layered-graph.ts +417 -0
  536. package/src/graph/layout.ts +331 -0
  537. package/src/graph/marks.ts +42 -0
  538. package/src/graph/nav.ts +19 -0
  539. package/src/graph/pan-zoom.ts +219 -0
  540. package/src/graph/paths.ts +41 -0
  541. package/src/graph/place-card.ts +93 -0
  542. package/src/graph/strings.ts +86 -0
  543. package/src/graph/styles.ts +204 -0
  544. package/src/graph/types.ts +202 -0
  545. package/src/graph/view.ts +28 -0
  546. package/src/graph/views/dag.ts +294 -0
  547. package/src/graph/views/foot.ts +109 -0
  548. package/src/graph/views/node-table.ts +90 -0
  549. package/src/index.ts +25 -0
  550. package/src/json/index.ts +2 -0
  551. package/src/json/json-tree.ts +49 -0
  552. package/src/lanes/index.ts +6 -0
  553. package/src/lanes/lanes.ts +143 -0
  554. package/src/lanes/stack.ts +51 -0
  555. package/src/lanes/styles.ts +30 -0
  556. package/src/lanes/types.ts +51 -0
  557. package/src/markdown/cae-markdown.ts +64 -0
  558. package/src/markdown/highlight.ts +94 -0
  559. package/src/markdown/index.ts +5 -0
  560. package/src/markdown/markdown.ts +110 -0
  561. package/src/matrix/grid-step.ts +58 -0
  562. package/src/matrix/index.ts +6 -0
  563. package/src/matrix/mark-matrix.ts +285 -0
  564. package/src/matrix/styles.ts +48 -0
  565. package/src/matrix/types.ts +83 -0
  566. package/src/primitives/fact-line.ts +26 -0
  567. package/src/primitives/icon.ts +26 -0
  568. package/src/primitives/index.ts +12 -0
  569. package/src/primitives/legend.ts +56 -0
  570. package/src/primitives/pill.ts +58 -0
  571. package/src/primitives/roving-focus.ts +138 -0
  572. package/src/primitives/segmented.ts +92 -0
  573. package/src/primitives/share-bar.ts +94 -0
  574. package/src/primitives/states.ts +28 -0
  575. package/src/primitives/window.ts +65 -0
  576. package/src/styles/chips.ts +18 -0
  577. package/src/styles/facts.ts +7 -0
  578. package/src/styles/index.ts +19 -0
  579. package/src/styles/layout.ts +33 -0
  580. package/src/styles/marks.ts +30 -0
  581. package/src/styles/meter.ts +9 -0
  582. package/src/styles/motion.ts +27 -0
  583. package/src/styles/prose.ts +59 -0
  584. package/src/styles/reset.ts +13 -0
  585. package/src/styles/status.ts +52 -0
  586. package/src/styles/text.ts +21 -0
  587. package/src/styles/tokens.ts +35 -0
  588. package/src/table/data-table.ts +367 -0
  589. package/src/table/index.ts +5 -0
  590. package/src/table/styles.ts +32 -0
  591. package/src/table/types.ts +73 -0
  592. package/src/themes/boot.ts +14 -0
  593. package/src/themes/choice.ts +47 -0
  594. package/src/themes/data.ts +433 -0
  595. package/src/themes/index.ts +10 -0
  596. package/src/themes/sheet.ts +29 -0
  597. package/src/themes/token-meanings.ts +67 -0
  598. package/src/themes/tokens-list.ts +82 -0
  599. package/src/tiles/index.ts +5 -0
  600. package/src/tiles/stat-tiles.ts +92 -0
  601. package/src/tiles/styles.ts +23 -0
  602. package/src/tiles/types.ts +20 -0
  603. package/src/transcript/follow-scroll.ts +72 -0
  604. package/src/transcript/index.ts +6 -0
  605. package/src/transcript/styles.ts +114 -0
  606. package/src/transcript/tags.ts +18 -0
  607. package/src/transcript/tool-card.ts +103 -0
  608. package/src/transcript/transcript.ts +358 -0
  609. package/src/transcript/types.ts +167 -0
@@ -0,0 +1,292 @@
1
+ // The graph in the frame that pans and zooms: clusters, nodes with their marks,
2
+ // stubs and edges; and the keys that move between marks and along edges.
3
+ import { html, nothing, svg } from 'lit';
4
+ import { repeat } from 'lit/directives/repeat.js';
5
+ import { toneAttr } from '../../core/tone.js';
6
+ import { stateCount } from '../../primitives/states.js';
7
+ import { isPoint } from '../arrange.js';
8
+ import { BAR_LIST, firstMark, gridOf, hlKeyOf, slotsOf } from '../host.js';
9
+ import { cycleIcon, innerIcon, toggleIcon } from '../icons.js';
10
+ import { asBar, barParts } from '../marks.js';
11
+ import { alongEdge } from '../nav.js';
12
+ import { edgePath, returnPath } from '../paths.js';
13
+ /** A note's class by its tone: failed, attention, running, muted. */
14
+ export const NOTE_CLASS = { failed: 'err', attention: 'warn', running: 'live', muted: 'mut' };
15
+ /** The graph in its frame: dragging pans, a click on the frame clears the selection. */
16
+ export function dag(h) {
17
+ const pz = h.pz;
18
+ return html `<div class="frame gframe ${h.down ? 'down' : ''}" part="frame" style="height:${Math.round(pz.frameH)}px"
19
+ @pointerdown=${pz.onPointerDown} @pointermove=${pz.onPointerMove} @pointerup=${pz.onPointerUp} @pointercancel=${pz.onPointerUp}
20
+ @click=${(e) => !e.target.closest('.node, .cluster, .stub, .tools') && h.select(null)}>
21
+ <div class="stage view" part="stage" style="transform:${pz.transform}">${graphView(h)}</div>
22
+ </div>`;
23
+ }
24
+ /** Where an item is drawn, from its parent's corner (a cluster's, inside its border), or hidden until laid out. */
25
+ function at(h, id, parent) {
26
+ const r = h.lay?.at[id];
27
+ if (!r)
28
+ return 'left:0;top:0';
29
+ const dx = parent ? parent.x + 1 : 0;
30
+ const dy = parent ? parent.y + 1 : 0;
31
+ return `left:${r.x - dx}px;top:${r.y - dy}px`;
32
+ }
33
+ function graphView(h) {
34
+ const { on } = h.lit();
35
+ const g = h.drawn;
36
+ const lay = h.lay;
37
+ const stubs = new Map(g.stubs.map((s) => [s.id, s]));
38
+ const items = (container) => (h.arr.slots[container] ?? []).flat().filter((id) => !isPoint(id));
39
+ const item = (id, parent) => {
40
+ const b = h.clusters.get(id);
41
+ if (b)
42
+ return cluster(h, b, parent, (x, r) => item(x, r));
43
+ const s = stubs.get(id);
44
+ if (s)
45
+ return html `<span class="stub" part="stub" data-id=${s.id} style=${at(h, s.id, parent)} title=${h.words.stubTip}>${s.label}</span>`;
46
+ const n = h.nodes.get(id);
47
+ return n ? node(h, n, parent) : nothing;
48
+ };
49
+ // Unplaced until a layout of this structure exists: the first render only measures.
50
+ const placed = !!lay && g.nodes.every((n) => lay.at[n.id]);
51
+ const w = lay?.w ?? 0;
52
+ const ht = lay?.h ?? 0;
53
+ return html `<div class="dag ${h.down ? 'down' : ''} ${on ? 'hl' : ''} ${placed ? '' : 'unplaced'}" style="width:${w}px;height:${ht}px"
54
+ @mouseleave=${() => (h.hover = null)}>
55
+ <svg class="edges" aria-hidden="true" width=${w} height=${ht}>
56
+ <defs>
57
+ <marker id="arr" viewBox="0 0 8 8" refX="8" refY="4" markerWidth="8" markerHeight="8" markerUnits="userSpaceOnUse" orient="auto">
58
+ <path d="M0,0.5 L8,4 L0,7.5 z" fill="var(--line2)" stroke="none"></path>
59
+ </marker>
60
+ <marker id="arr-ret" viewBox="0 0 8 8" refX="7" refY="4" markerWidth="8" markerHeight="8" markerUnits="userSpaceOnUse" orient="auto">
61
+ <path class="ret-tip" d="M0,0.5 L8,4 L0,7.5 z"></path>
62
+ </marker>
63
+ </defs>
64
+ ${(lay?.edges ?? []).map((e) => svg `<path class=${e.style} part="edge" d=${edgePath(e.runs, lay?.down)} marker-end="url(#arr)"></path>`)}
65
+ ${(lay?.returns ?? []).map((r) => svg `<path class="ret" data-cluster=${r.box} d=${returnPath(r, lay?.down)} marker-end="url(#arr-ret)"></path>`)}
66
+ </svg>
67
+ ${repeat(items(''), (id) => id, (id) => item(id, null))}
68
+ </div>`;
69
+ }
70
+ /** A click on a node or a cluster, not on one of its marks or on a node inside it: selects it. */
71
+ function onItemClick(h, e, id) {
72
+ const own = e.target.closest('.mark, .taskchip, .node, .cluster');
73
+ if (own !== e.currentTarget)
74
+ return;
75
+ e.stopPropagation();
76
+ if (e.detail >= 2)
77
+ return; // the second click of a double click
78
+ h.select(id);
79
+ }
80
+ function onItemDblClick(h, e, id) {
81
+ const own = e.target.closest('.mark, .taskchip, .node, .cluster');
82
+ if (own !== e.currentTarget)
83
+ return;
84
+ e.stopPropagation();
85
+ h.act(id);
86
+ }
87
+ /** Enter on a node's or a cluster's name: its action (Space selects it, as a click does). */
88
+ function onNameKey(h, e, id) {
89
+ if (e.key !== 'Enter')
90
+ return;
91
+ e.preventDefault();
92
+ h.act(id);
93
+ }
94
+ /** The control that opens or closes an item drawn closed or open (`toggle`), named with the item. */
95
+ function toggleControl(h, id, label, open) {
96
+ const word = open ? h.words.close : h.words.open;
97
+ return html `<button type="button" class="tog" part="toggle" aria-expanded=${open} aria-label=${`${word}: ${label}`} title=${word}
98
+ @click=${(e) => {
99
+ e.stopPropagation();
100
+ h.toggle(id, !open);
101
+ }}
102
+ @dblclick=${(e) => e.stopPropagation()}>${toggleIcon(open)}</button>`;
103
+ }
104
+ /** A cluster's name: its label, or the parts of its path, each after the first a link to its own inner view. */
105
+ function clusterName(h, b, sel) {
106
+ const first = b.path?.[0];
107
+ const name = html `<button type="button" class="name" title=${(first?.tip ?? b.tip) || nothing} aria-pressed=${sel}
108
+ @focus=${() => h.focusSelect(b.id)} @keydown=${(e) => onNameKey(h, e, b.id)}>${b.cycle ? cycleIcon() : nothing}${first?.label ?? b.label}</button>`;
109
+ if (!b.path || b.path.length < 2)
110
+ return name;
111
+ return html `${name}${b.path.slice(1).map((p) => html `<span class="psep" aria-hidden="true">›</span><button type="button" class="part" title=${p.tip || nothing}
112
+ @click=${(e) => {
113
+ e.stopPropagation();
114
+ h.drill(p.id);
115
+ }}
116
+ @dblclick=${(e) => e.stopPropagation()}>${p.label}</button>`)}`;
117
+ }
118
+ function cluster(h, b, parent, item) {
119
+ const r = h.lay?.at[b.id] ?? null;
120
+ const kids = (h.arr.slots[b.id] ?? []).flat().filter((id) => !isPoint(id));
121
+ const size = r ? `;width:${r.w}px;height:${r.h}px` : '';
122
+ const sel = h.selected === b.id;
123
+ return html `<section class="cluster ${sel ? 'sel' : ''}" part="cluster" role="group" data-cluster=${b.id} style=${at(h, b.id, parent) + size}
124
+ aria-label=${b.summary ?? b.label}
125
+ @click=${(e) => onItemClick(h, e, b.id)} @dblclick=${(e) => onItemDblClick(h, e, b.id)}>
126
+ <div class="hd" part="cluster-label" data-id=${`lbl:${b.id}`}>
127
+ <span class="line">
128
+ ${clusterName(h, b, sel)}
129
+ ${b.note ? html `<span class="count">${b.note}</span>` : nothing}
130
+ </span>
131
+ ${b.detail ? html `<span class="spread" title=${b.detailTip ?? nothing}>${b.detail}</span>` : nothing}
132
+ </div>
133
+ ${b.toggle
134
+ ? html `<span class="cue">${toggleControl(h, b.id, b.path?.map((p) => p.label).join(' › ') ?? b.label, true)}</span>`
135
+ : b.drill
136
+ ? html `<span class="cue" aria-hidden="true">${innerIcon()}</span>`
137
+ : nothing}
138
+ <div class="in">${repeat(kids, (id) => id, (id) => item(id, r))}</div>
139
+ </section>`;
140
+ }
141
+ /** A node's notes ("1 failed | 1 not started"), each in its tone's class. */
142
+ export const notes = (n, tag = 'span') => (n.notes ?? []).map((f) => (tag === 'span' ? html `<span class=${NOTE_CLASS[f.tone ?? 'neutral'] ?? ''}>${f.text}</span>` : html `<div class=${NOTE_CLASS[f.tone ?? 'neutral'] ?? ''}>${f.text}</div>`));
143
+ function node(h, n, parent) {
144
+ const series = h.drawn.series;
145
+ const bar = asBar(n, h.barAt);
146
+ const all = slotsOf(n, series);
147
+ const failed = (s) => !!s && h.states[s.m.state]?.tone === 'failed';
148
+ const group = bar
149
+ ? { id: n.id, slots: all.filter(failed), grid: { cols: BAR_LIST, size: 12, gap: 4 } }
150
+ : { id: n.id, slots: all, grid: gridOf(n, series.length) };
151
+ const sel = h.selected === n.id;
152
+ const icons = (n.icons ?? []).map((x) => h.renderIcon(x));
153
+ return html `<section class="node ${n.drill ? 'drill' : ''} ${n.accent ? 'accent' : ''} ${sel ? 'sel' : ''}" part="node" role="group" data-id=${n.id}
154
+ data-look=${n.look && n.look !== 'neutral' ? n.look : nothing} aria-label=${n.summary ?? n.label}
155
+ style="${at(h, n.id, parent)};--cols:${group.grid.cols};--m:${group.grid.size}px;--g:${group.grid.gap}px"
156
+ @click=${(e) => onItemClick(h, e, n.id)} @dblclick=${(e) => onItemDblClick(h, e, n.id)}>
157
+ <div class="hd" part="node-header">
158
+ <span class="nm">${icons}<button type="button" class="name" part="node-name" title=${n.tip ?? nothing} aria-pressed=${sel}
159
+ @focus=${() => h.focusSelect(n.id)} @keydown=${(e) => onNameKey(h, e, n.id)}>${n.label}</button></span>
160
+ <span class="right"><span class="count" aria-hidden="true" title=${n.progress.label}>${n.progress.done}/${n.progress.total}</span>${n.toggle
161
+ ? toggleControl(h, n.id, n.label, false)
162
+ : n.drill
163
+ ? html `<span class="cue" aria-hidden="true">${innerIcon()}</span>`
164
+ : nothing}</span>
165
+ </div>
166
+ ${bar ? statusBar(h, n, group) : marks(h, group)}
167
+ ${n.notes?.length ? html `<div class="ex" aria-hidden="true">${notes(n)}</div>` : nothing}
168
+ </section>`;
169
+ }
170
+ /** A node with too many marks to draw: a bar of its counts, and its failed marks by name. */
171
+ function statusBar(h, n, g) {
172
+ const order = Object.keys(h.states);
173
+ const parts = barParts(n.counts, order);
174
+ const shown = g.slots.slice(0, BAR_LIST);
175
+ const more = g.slots.length - shown.length;
176
+ const active = Math.min(h.active.get(g.id) ?? 0, Math.max(0, shown.length - 1));
177
+ const words = order.filter((s) => n.counts[s]).map((s) => stateCount(h.states, s, n.counts[s] ?? 0));
178
+ return html `<div class="sbar" role="img" aria-label=${words.join(' | ')}>
179
+ ${parts.map((p) => {
180
+ const look = h.states[p.state];
181
+ return html `<i data-tone=${toneAttr(look?.tone)} data-shape=${look?.shape ?? nothing} style="width:${p.pct}%" title=${stateCount(h.states, p.state, p.n)}></i>`;
182
+ })}
183
+ </div>
184
+ ${shown.length
185
+ ? html `<div class="fails" @keydown=${(e) => onKey(h, e, { ...g, slots: shown, grid: { ...g.grid, cols: shown.length } })}>
186
+ ${shown.map((s, i) => (s ? mark(h, g, s, i, i === active, true) : nothing))}
187
+ ${more > 0 ? html `<span>${h.words.more(more)}</span>` : nothing}
188
+ </div>`
189
+ : nothing}`;
190
+ }
191
+ /** A group's marks, with one tab stop. */
192
+ function marks(h, g) {
193
+ const active = Math.min(h.active.get(g.id) ?? firstMark(g.slots), g.slots.length - 1);
194
+ return html `<div class="marks ${g.grid.size >= 10 ? 'big' : ''}" @keydown=${(e) => onKey(h, e, g)}>
195
+ ${g.slots.map((s, i) => (s ? mark(h, g, s, i, i === active) : html `<span class="slot"></span>`))}
196
+ </div>`;
197
+ }
198
+ function mark(h, g, s, i, tabStop, chip = false) {
199
+ const { m } = s;
200
+ const { key, on } = h.lit();
201
+ const hlKey = hlKeyOf(s);
202
+ const lit = on !== null && ((s.series !== '' && s.series === key) || on.has(m.id));
203
+ const sel = h.selected === m.id ? 'sel' : '';
204
+ const focus = (e) => {
205
+ h.hover = hlKey;
206
+ h.active.set(g.id, i);
207
+ h.pz.reveal(e.currentTarget);
208
+ h.focusSelect(m.id);
209
+ };
210
+ if (chip) {
211
+ return html `<button type="button" class="taskchip ${lit ? 'on' : ''} ${sel}" part="mark" data-i=${i} tabindex=${tabStop ? 0 : -1}
212
+ title=${m.tip ?? nothing} aria-label=${m.label} aria-pressed=${!!sel}
213
+ @mouseenter=${() => (h.hover = hlKey)} @focus=${focus} @blur=${() => (h.hover = null)}
214
+ @click=${() => h.select(m.id)} @dblclick=${() => h.act(m.id)}>${m.name ?? (s.series || m.id)}</button>`;
215
+ }
216
+ const look = h.states[m.state];
217
+ return html `<button type="button" class="mark ${lit ? 'on' : ''} ${sel}" part="mark" data-tone=${toneAttr(look?.tone)} data-shape=${look?.shape ?? nothing}
218
+ data-i=${i} data-n=${m.badge ?? nothing} tabindex=${tabStop ? 0 : -1}
219
+ title=${m.tip ?? nothing}
220
+ aria-label=${m.label} aria-pressed=${!!sel}
221
+ @mouseenter=${() => (h.hover = hlKey)}
222
+ @focus=${focus}
223
+ @blur=${() => (h.hover = null)}
224
+ @click=${() => h.select(m.id)}
225
+ @dblclick=${() => h.act(m.id)}></button>`;
226
+ }
227
+ /** Arrow keys, Home and End within a group's marks, skipping empty slots; Shift and an arrow key along an edge to another node. */
228
+ function onKey(h, e, g) {
229
+ const target = e.target;
230
+ if (!target.classList.contains('mark') && !target.classList.contains('taskchip'))
231
+ return;
232
+ if (e.shiftKey && e.key.startsWith('Arrow'))
233
+ return toEdge(h, e, g);
234
+ const { slots } = g;
235
+ if (e.key === 'Enter') {
236
+ const s = slots[Number(target.dataset['i'])];
237
+ e.preventDefault();
238
+ if (s)
239
+ h.act(s.m.id);
240
+ return;
241
+ }
242
+ const cur = h.active.get(g.id) ?? firstMark(slots);
243
+ const step = { ArrowRight: 1, ArrowLeft: -1, ArrowDown: g.grid.cols, ArrowUp: -g.grid.cols };
244
+ let next;
245
+ if (e.key === 'Home')
246
+ next = firstMark(slots);
247
+ else if (e.key === 'End')
248
+ next = slots.length - 1 - [...slots].reverse().findIndex((m) => m !== null);
249
+ else if (step[e.key] !== undefined) {
250
+ const d = step[e.key];
251
+ next = cur + d;
252
+ while (next >= 0 && next < slots.length && !slots[next])
253
+ next += Math.sign(d);
254
+ if (next < 0 || next >= slots.length)
255
+ return;
256
+ }
257
+ else
258
+ return;
259
+ e.preventDefault();
260
+ h.active.set(g.id, next);
261
+ h.requestUpdate();
262
+ const group = e.currentTarget;
263
+ void h.updateComplete.then(() => group.querySelector(`[data-i="${next}"]`)?.focus());
264
+ }
265
+ /** To the node an edge joins: a later one (Shift and → or ↓) or an earlier one (Shift and ← or ↑), on the same series when it has a mark there. */
266
+ function toEdge(h, e, g) {
267
+ const dir = e.key === 'ArrowRight' || e.key === 'ArrowDown' ? 'later' : 'earlier';
268
+ const lay = h.lay;
269
+ const across = (id) => {
270
+ const r = lay?.at[id];
271
+ return !r ? 0 : lay?.down ? r.x + r.w / 2 : r.y + r.h / 2;
272
+ };
273
+ const to = alongEdge({ drawn: h.arr.drawn, edges: h.drawn.edges, back: h.arr.back }, g.id, dir, across);
274
+ e.preventDefault();
275
+ if (!to)
276
+ return;
277
+ const n = h.nodes.get(to);
278
+ if (!n)
279
+ return;
280
+ const series = g.slots[h.active.get(g.id) ?? firstMark(g.slots)]?.series ?? '';
281
+ const all = slotsOf(n, h.drawn.series);
282
+ const slots = asBar(n, h.barAt) ? all.filter((s) => !!s && h.states[s.m.state]?.tone === 'failed') : all;
283
+ const same = series ? slots.findIndex((s) => s?.series === series) : -1;
284
+ const i = same >= 0 ? same : (h.active.get(n.id) ?? firstMark(slots));
285
+ h.active.set(n.id, i);
286
+ h.requestUpdate();
287
+ void h.updateComplete.then(() => {
288
+ const el = h.renderRoot.querySelector(`.node[data-id="${CSS.escape(to)}"]`);
289
+ (el?.querySelector(`[data-i="${i}"]`) ?? el?.querySelector('.name'))?.focus();
290
+ });
291
+ }
292
+ //# sourceMappingURL=dag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag.js","sourceRoot":"","sources":["../../../src/graph/views/dag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { MarkMatrixInput } from '../../matrix/types.js';
2
+ import { type GraphHost } from '../host.js';
3
+ /**
4
+ * The legend on the left, the tools at the right end of the first line, and the keys
5
+ * under them: their line keeps its room, and shows its words while the graph has the focus.
6
+ */
7
+ export declare function foot(h: GraphHost, matrix: MarkMatrixInput | null): import("lit").TemplateResult<1>;
8
+ //# sourceMappingURL=foot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foot.d.ts","sourceRoot":"","sources":["../../../src/graph/views/foot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,mCAOhE"}
@@ -0,0 +1,103 @@
1
+ // The row under the frame: the legend, the zoom buttons and the view switch, and the keys of the view shown.
2
+ import { html, nothing, svg } from 'lit';
3
+ import { toneAttr } from '../../core/tone.js';
4
+ import { legend as legendRow } from '../../primitives/legend.js';
5
+ import { asBar } from '../marks.js';
6
+ import { slotsOf } from '../host.js';
7
+ import { innerIcon } from '../icons.js';
8
+ /**
9
+ * The legend on the left, the tools at the right end of the first line, and the keys
10
+ * under them: their line keeps its room, and shows its words while the graph has the focus.
11
+ */
12
+ export function foot(h, matrix) {
13
+ const table = !!matrix || h.asTable;
14
+ return html `<div class="foot">
15
+ ${legend(h, matrix)}
16
+ <div class="tools">${table ? nothing : zoomTools(h)}${viewSwitch(h, table)}</div>
17
+ <div class="keys" part="keys">${keyHints(h, matrix).map((k, i) => html `${i ? ' | ' : ''}<span>${k}</span>`)}</div>
18
+ </div>`;
19
+ }
20
+ /** Zoom out, zoom in, and back to the whole drawing (which does nothing while the whole drawing shows at its own size). */
21
+ function zoomTools(h) {
22
+ const pz = h.pz;
23
+ const w = h.words;
24
+ const whole = !pz.moved && pz.fitK >= 1;
25
+ return html `<button type="button" aria-label=${w.zoomOut} title=${w.zoomOutTip} @click=${() => pz.zoomBy(1 / 1.25)}>−</button>
26
+ <button type="button" aria-label=${w.zoomIn} title=${w.zoomInTip} @click=${() => pz.zoomBy(1.25)}>+</button>
27
+ <button type="button" ?disabled=${whole} @click=${() => pz.showAll()}>${w.showAll}</button>`;
28
+ }
29
+ /** The two views, at the same place in each: the drawing, and the table (a mark matrix, or a row per node). */
30
+ function viewSwitch(h, table) {
31
+ const options = [
32
+ { value: 'graph', label: h.words.graph },
33
+ { value: 'table', label: h.words.table },
34
+ ];
35
+ return html `<cae-segmented class="views" .options=${options} .value=${table ? 'table' : 'graph'} label=${h.words.view}
36
+ @cae-change=${(e) => {
37
+ e.stopPropagation();
38
+ h.showView(e.detail.value === 'table' ? 'table' : 'graph');
39
+ }}></cae-segmented>`;
40
+ }
41
+ /** The keys of the view shown. */
42
+ function keyHints(h, matrix) {
43
+ const w = h.words;
44
+ const esc = h.selected ? w.clearKey : w.upKey;
45
+ const keys = matrix ? w.matrixKeys : h.asTable ? w.tableKeys : w.graphKeys;
46
+ return [...keys, esc].filter(Boolean);
47
+ }
48
+ /** A status mark in a state's look, as the legend shows it. */
49
+ const legendMark = (h, state, badge) => {
50
+ const look = h.states[state];
51
+ return html `<i class="mark" data-tone=${toneAttr(look?.tone)} data-shape=${look?.shape ?? nothing} data-n=${badge ?? nothing}></i>`;
52
+ };
53
+ /**
54
+ * What the view shows that needs a word: the states of the marks shown, a badge when a
55
+ * mark shows one, the icons the host names, the edge styles when both are drawn, a
56
+ * cluster's return, and the mark of an item with an inner view.
57
+ */
58
+ function legend(h, mx) {
59
+ const g = h.drawn;
60
+ const flat = h.asTable && !mx;
61
+ // The marks drawn: a node with a bar draws its failed marks only (its badges none); the table draws none.
62
+ const marks = flat
63
+ ? []
64
+ : mx
65
+ ? mx.rows.flatMap((r) => r.cells).map((m) => m && { state: m.state, badge: undefined })
66
+ : g.nodes.flatMap((n) => slotsOf(n, g.series).map((s) => s && { state: s.m.state, badge: asBar(n, h.barAt) ? undefined : s.m.badge }));
67
+ const shown = marks.filter((m) => m !== null);
68
+ const present = new Set(shown.map((m) => m.state));
69
+ const badge = shown.some((m) => m.badge);
70
+ const dashed = !mx && !flat && [...g.edges, ...g.stubs].some((e) => e.style === 'dashed');
71
+ const icons = new Set(mx ? mx.head.flat().flatMap((c) => c.icons ?? []) : g.nodes.flatMap((n) => n.icons ?? []));
72
+ const cycles = !mx && !flat && g.clusters.some((c) => c.cycle);
73
+ const inner = !mx && ((!flat && g.clusters.some((c) => c.drill)) || g.nodes.some((n) => n.drill));
74
+ const first = Object.keys(h.states)[0] ?? '';
75
+ const line = (dash) => svg `<svg width="22" height="8" aria-hidden="true"><path d="M1,4 H21" stroke-dasharray=${dash ? '5 4' : 'none'}></path></svg>`;
76
+ const items = [
77
+ ...Object.entries(h.states)
78
+ .filter(([s]) => present.has(s))
79
+ .map(([s, look]) => ({ label: look.label, icon: legendMark(h, s), decorative: true })),
80
+ ...(badge ? [{ label: h.words.badge, icon: legendMark(h, first, '2'), decorative: true }] : []),
81
+ ...Object.entries(h.words.iconNames)
82
+ .filter(([name]) => icons.has(name))
83
+ .map(([name, label]) => ({ label, icon: h.renderIcon(name) })),
84
+ ...(dashed
85
+ ? [
86
+ { label: h.words.solidEdge, icon: line(false) },
87
+ { label: h.words.dashedEdge, icon: line(true) },
88
+ ]
89
+ : []),
90
+ ...(cycles
91
+ ? [
92
+ {
93
+ label: h.words.cycle,
94
+ icon: html `<svg width="24" height="12" aria-hidden="true"><path class="ret" d="M20,1.5 V5.5 Q20,9.5 16,9.5 H8 Q4,9.5 4,5.5 V5"></path>
95
+ <path class="ret-head" d="M4,0.8 L1.4,5 L6.6,5 z"></path></svg>`,
96
+ },
97
+ ]
98
+ : []),
99
+ ...(inner ? [{ label: h.words.drill, icon: innerIcon() }] : []),
100
+ ];
101
+ return legendRow(items, { cls: 'big' });
102
+ }
103
+ //# sourceMappingURL=foot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foot.js","sourceRoot":"","sources":["../../../src/graph/views/foot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { GraphHost } from '../host.js';
2
+ import type { GraphInput, GraphNode } from '../types.js';
3
+ /** The names of the nodes `n` is joined to: by a solid edge, by a dashed one, and the later ones. */
4
+ export declare function neighbours(n: GraphNode, g: Pick<GraphInput, 'edges' | 'stubs'>, nodes: ReadonlyMap<string, GraphNode>, inCluster: (label: string) => string): {
5
+ solid: string[];
6
+ dashed: string[];
7
+ later: string[];
8
+ };
9
+ /**
10
+ * The graph as a table, in its frame: a row per node with its status (the node's
11
+ * count and notes) and the nodes it is joined to. A row is selected as a node is,
12
+ * with the same card.
13
+ */
14
+ export declare function nodeTable(h: GraphHost): import("lit").TemplateResult<1>;
15
+ /** A node's status in one row, as its node in the graph says it: "28/30 | 1 failed | 1 not started". */
16
+ export declare function statusLine(n: GraphNode): import("lit").TemplateResult<1>;
17
+ //# sourceMappingURL=node-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-table.d.ts","sourceRoot":"","sources":["../../../src/graph/views/node-table.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EAAa,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGpE,qGAAqG;AACrG,wBAAgB,UAAU,CACxB,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,EACtC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GACnC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAUxD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,mCAiDrC;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,mCAKtC"}
@@ -0,0 +1,80 @@
1
+ // The graph as a table, in its frame: a row per node.
2
+ import { html, nothing } from 'lit';
3
+ import { repeat } from 'lit/directives/repeat.js';
4
+ import { FRAME_MIN, FRAME_SHARE } from '../../core/frame.js';
5
+ import { cycleIcon, innerIcon } from '../icons.js';
6
+ import { notes } from './dag.js';
7
+ /** The names of the nodes `n` is joined to: by a solid edge, by a dashed one, and the later ones. */
8
+ export function neighbours(n, g, nodes, inCluster) {
9
+ const label = (id) => {
10
+ const x = nodes.get(id);
11
+ return !x ? id : x.cluster ? inCluster(x.label) : x.label;
12
+ };
13
+ const into = (style) => [
14
+ ...g.stubs.filter((s) => s.to === n.id && s.style === style).map((s) => s.label),
15
+ ...g.edges.filter((e) => e.to === n.id && e.style === style).map((e) => label(e.from)),
16
+ ];
17
+ return { solid: into('solid'), dashed: into('dashed'), later: [...new Set(g.edges.filter((e) => e.from === n.id).map((e) => label(e.to)))] };
18
+ }
19
+ /**
20
+ * The graph as a table, in its frame: a row per node with its status (the node's
21
+ * count and notes) and the nodes it is joined to. A row is selected as a node is,
22
+ * with the same card.
23
+ */
24
+ export function nodeTable(h) {
25
+ const g = h.drawn;
26
+ const w = h.words;
27
+ const dashed = [...g.edges, ...g.stubs].some((e) => e.style === 'dashed');
28
+ const list = (xs) => w.list(xs) || w.none;
29
+ // The frame keeps the drawing's height when the drawing of this graph was laid out (left to right); else the table's own, up to the frame's limit.
30
+ const height = !h.down && h.laidOut && h.pz.frameH > 0 ? `height:${Math.round(h.pz.frameH)}px` : `max-height:max(${FRAME_MIN}px, ${FRAME_SHARE * 100}vh)`;
31
+ const rows = h.arr.drawn.map((id) => h.nodes.get(id)).filter((n) => !!n);
32
+ return html `<div class="frame tframe" part="frame" data-scroll="x" style=${height} @scroll=${() => h.card.place()}
33
+ @click=${(e) => !e.target.closest('tbody tr') && h.select(null)}>
34
+ <table class="list view" part="table">
35
+ <thead>
36
+ <tr>
37
+ <th scope="col" class="fit">${w.nameHeader}</th>
38
+ <th scope="col" class="fit">${w.statusHeader}</th>
39
+ <th scope="col">${w.solidHeader}</th>
40
+ ${dashed ? html `<th scope="col">${w.dashedHeader}</th>` : nothing}
41
+ <th scope="col">${w.laterHeader}</th>
42
+ </tr>
43
+ </thead>
44
+ <tbody>
45
+ ${repeat(rows, (n) => n.id, (n) => {
46
+ const nb = neighbours(n, g, h.nodes, w.inCluster);
47
+ const box = n.cluster ? h.clusters.get(n.cluster) : undefined;
48
+ const on = h.selected === n.id;
49
+ const icons = html `${(n.icons ?? []).map((x) => h.renderIcon(x))}${n.drill ? innerIcon() : nothing}`;
50
+ return html `<tr class=${on ? 'sel' : ''} part="row" data-id=${n.id}
51
+ @click=${(e) => !e.target.closest('.loopchip') && e.detail < 2 && h.select(n.id)}
52
+ @dblclick=${(e) => !e.target.closest('.loopchip') && h.act(n.id)}>
53
+ <th scope="row" class="fit">
54
+ <span class="nm">${icons}<button type="button" class="name" title=${n.tip ?? nothing} aria-pressed=${on}
55
+ @focus=${() => h.focusSelect(n.id)} @keydown=${(e) => {
56
+ if (e.key !== 'Enter')
57
+ return;
58
+ e.preventDefault();
59
+ h.act(n.id);
60
+ }}>${n.label}</button>${box?.drill
61
+ ? html `<button type="button" class="taskchip loopchip" title=${box.chipTip ?? nothing} aria-label=${box.chipLabel ?? nothing}
62
+ @click=${() => h.drill(box.id)}>${box.cycle ? cycleIcon(12) : nothing}${box.note ?? box.label}</button>`
63
+ : nothing}</span>
64
+ </th>
65
+ <td class="fit st">${statusLine(n)}</td>
66
+ <td class="rel"><span>${list(nb.solid)}</span></td>
67
+ ${dashed ? html `<td class="rel"><span>${list(nb.dashed)}</span></td>` : nothing}
68
+ <td class="rel"><span>${list(nb.later)}</span></td>
69
+ </tr>`;
70
+ })}
71
+ </tbody>
72
+ </table>
73
+ </div>`;
74
+ }
75
+ /** A node's status in one row, as its node in the graph says it: "28/30 | 1 failed | 1 not started". */
76
+ export function statusLine(n) {
77
+ const sep = html `<span class="sep" aria-hidden="true"> | </span>`;
78
+ return html `<span class="n" aria-hidden="true" title=${n.progress.label}>${n.progress.done}/${n.progress.total}</span><span class="sr">${n.progress.label}</span>${notes(n).map((x) => html `${sep}${x}`)}`;
79
+ }
80
+ //# sourceMappingURL=node-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-table.js","sourceRoot":"","sources":["../../../src/graph/views/node-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export * from './core/tone.js';
2
+ export * from './core/events.js';
3
+ export * from './core/strings.js';
4
+ export * from './core/define.js';
5
+ export * from './core/format.js';
6
+ export * from './core/clock.js';
7
+ export * from './styles/index.js';
8
+ export * from './themes/index.js';
9
+ export * from './primitives/index.js';
10
+ export * from './json/index.js';
11
+ export * from './markdown/index.js';
12
+ export * from './count/index.js';
13
+ export * from './table/index.js';
14
+ export * from './tiles/index.js';
15
+ export * from './lanes/index.js';
16
+ export * from './charts/index.js';
17
+ export * from './checks/index.js';
18
+ export * from './matrix/index.js';
19
+ export * from './graph/index.js';
20
+ export * from './core/frame.js';
21
+ export * from './transcript/index.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ // @contraagent/elements: generic web components and the parts they are built
2
+ // from. Importing this module registers nothing: each class is registered by its
3
+ // `define` entry (`@contraagent/elements/define` registers every `cae-*`), or by
4
+ // the host under a tag name of its own.
5
+ export * from './core/tone.js';
6
+ export * from './core/events.js';
7
+ export * from './core/strings.js';
8
+ export * from './core/define.js';
9
+ export * from './core/format.js';
10
+ export * from './core/clock.js';
11
+ export * from './styles/index.js';
12
+ export * from './themes/index.js';
13
+ export * from './primitives/index.js';
14
+ export * from './json/index.js';
15
+ export * from './markdown/index.js';
16
+ export * from './count/index.js';
17
+ export * from './table/index.js';
18
+ export * from './tiles/index.js';
19
+ export * from './lanes/index.js';
20
+ export * from './charts/index.js';
21
+ export * from './checks/index.js';
22
+ export * from './matrix/index.js';
23
+ export * from './graph/index.js';
24
+ export * from './core/frame.js';
25
+ export * from './transcript/index.js';
26
+ //# sourceMappingURL=index.js.map