@contraagent/elements 0.0.0-stage → 0.2.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 (648) hide show
  1. package/README.md +83 -2
  2. package/custom-elements.json +5022 -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/code/code.d.ts +83 -0
  56. package/dist/code/code.d.ts.map +1 -0
  57. package/dist/code/code.js +206 -0
  58. package/dist/code/code.js.map +1 -0
  59. package/dist/code/highlight.d.ts +25 -0
  60. package/dist/code/highlight.d.ts.map +1 -0
  61. package/dist/code/highlight.js +312 -0
  62. package/dist/code/highlight.js.map +1 -0
  63. package/dist/code/index.d.ts +3 -0
  64. package/dist/code/index.d.ts.map +1 -0
  65. package/dist/code/index.js +5 -0
  66. package/dist/code/index.js.map +1 -0
  67. package/dist/core/clock.d.ts +20 -0
  68. package/dist/core/clock.d.ts.map +1 -0
  69. package/dist/core/clock.js +45 -0
  70. package/dist/core/clock.js.map +1 -0
  71. package/dist/core/define.d.ts +3 -0
  72. package/dist/core/define.d.ts.map +1 -0
  73. package/dist/core/define.js +8 -0
  74. package/dist/core/define.js.map +1 -0
  75. package/dist/core/events.d.ts +78 -0
  76. package/dist/core/events.d.ts.map +1 -0
  77. package/dist/core/events.js +8 -0
  78. package/dist/core/events.js.map +1 -0
  79. package/dist/core/format.d.ts +8 -0
  80. package/dist/core/format.d.ts.map +1 -0
  81. package/dist/core/format.js +28 -0
  82. package/dist/core/format.js.map +1 -0
  83. package/dist/core/frame.d.ts +4 -0
  84. package/dist/core/frame.d.ts.map +1 -0
  85. package/dist/core/frame.js +5 -0
  86. package/dist/core/frame.js.map +1 -0
  87. package/dist/core/strings.d.ts +3 -0
  88. package/dist/core/strings.d.ts.map +1 -0
  89. package/dist/core/strings.js +14 -0
  90. package/dist/core/strings.js.map +1 -0
  91. package/dist/core/tone.d.ts +8 -0
  92. package/dist/core/tone.d.ts.map +1 -0
  93. package/dist/core/tone.js +9 -0
  94. package/dist/core/tone.js.map +1 -0
  95. package/dist/count/count.d.ts +22 -0
  96. package/dist/count/count.d.ts.map +1 -0
  97. package/dist/count/count.js +60 -0
  98. package/dist/count/count.js.map +1 -0
  99. package/dist/count/elapsed.d.ts +18 -0
  100. package/dist/count/elapsed.d.ts.map +1 -0
  101. package/dist/count/elapsed.js +33 -0
  102. package/dist/count/elapsed.js.map +1 -0
  103. package/dist/count/index.d.ts +3 -0
  104. package/dist/count/index.d.ts.map +1 -0
  105. package/dist/count/index.js +5 -0
  106. package/dist/count/index.js.map +1 -0
  107. package/dist/define/all.d.ts +15 -0
  108. package/dist/define/all.d.ts.map +1 -0
  109. package/dist/define/all.js +16 -0
  110. package/dist/define/all.js.map +1 -0
  111. package/dist/define/charts.d.ts +8 -0
  112. package/dist/define/charts.d.ts.map +1 -0
  113. package/dist/define/charts.js +15 -0
  114. package/dist/define/charts.js.map +1 -0
  115. package/dist/define/check-table.d.ts +4 -0
  116. package/dist/define/check-table.d.ts.map +1 -0
  117. package/dist/define/check-table.js +7 -0
  118. package/dist/define/check-table.js.map +1 -0
  119. package/dist/define/code.d.ts +4 -0
  120. package/dist/define/code.d.ts.map +1 -0
  121. package/dist/define/code.js +7 -0
  122. package/dist/define/code.js.map +1 -0
  123. package/dist/define/count.d.ts +5 -0
  124. package/dist/define/count.d.ts.map +1 -0
  125. package/dist/define/count.js +9 -0
  126. package/dist/define/count.js.map +1 -0
  127. package/dist/define/data-table.d.ts +4 -0
  128. package/dist/define/data-table.d.ts.map +1 -0
  129. package/dist/define/data-table.js +7 -0
  130. package/dist/define/data-table.js.map +1 -0
  131. package/dist/define/graph.d.ts +6 -0
  132. package/dist/define/graph.d.ts.map +1 -0
  133. package/dist/define/graph.js +9 -0
  134. package/dist/define/graph.js.map +1 -0
  135. package/dist/define/json-tree.d.ts +4 -0
  136. package/dist/define/json-tree.d.ts.map +1 -0
  137. package/dist/define/json-tree.js +7 -0
  138. package/dist/define/json-tree.js.map +1 -0
  139. package/dist/define/lanes.d.ts +4 -0
  140. package/dist/define/lanes.d.ts.map +1 -0
  141. package/dist/define/lanes.js +7 -0
  142. package/dist/define/lanes.js.map +1 -0
  143. package/dist/define/markdown.d.ts +4 -0
  144. package/dist/define/markdown.d.ts.map +1 -0
  145. package/dist/define/markdown.js +7 -0
  146. package/dist/define/markdown.js.map +1 -0
  147. package/dist/define/matrix.d.ts +4 -0
  148. package/dist/define/matrix.d.ts.map +1 -0
  149. package/dist/define/matrix.js +7 -0
  150. package/dist/define/matrix.js.map +1 -0
  151. package/dist/define/segmented.d.ts +4 -0
  152. package/dist/define/segmented.d.ts.map +1 -0
  153. package/dist/define/segmented.js +7 -0
  154. package/dist/define/segmented.js.map +1 -0
  155. package/dist/define/tiles.d.ts +5 -0
  156. package/dist/define/tiles.d.ts.map +1 -0
  157. package/dist/define/tiles.js +9 -0
  158. package/dist/define/tiles.js.map +1 -0
  159. package/dist/define/transcript.d.ts +4 -0
  160. package/dist/define/transcript.d.ts.map +1 -0
  161. package/dist/define/transcript.js +7 -0
  162. package/dist/define/transcript.js.map +1 -0
  163. package/dist/define/tree.d.ts +4 -0
  164. package/dist/define/tree.d.ts.map +1 -0
  165. package/dist/define/tree.js +7 -0
  166. package/dist/define/tree.js.map +1 -0
  167. package/dist/graph/arrange.d.ts +43 -0
  168. package/dist/graph/arrange.d.ts.map +1 -0
  169. package/dist/graph/arrange.js +390 -0
  170. package/dist/graph/arrange.js.map +1 -0
  171. package/dist/graph/card.d.ts +71 -0
  172. package/dist/graph/card.d.ts.map +1 -0
  173. package/dist/graph/card.js +185 -0
  174. package/dist/graph/card.js.map +1 -0
  175. package/dist/graph/host.d.ts +82 -0
  176. package/dist/graph/host.d.ts.map +1 -0
  177. package/dist/graph/host.js +21 -0
  178. package/dist/graph/host.js.map +1 -0
  179. package/dist/graph/icons.d.ts +7 -0
  180. package/dist/graph/icons.d.ts.map +1 -0
  181. package/dist/graph/icons.js +18 -0
  182. package/dist/graph/icons.js.map +1 -0
  183. package/dist/graph/index.d.ts +15 -0
  184. package/dist/graph/index.d.ts.map +1 -0
  185. package/dist/graph/index.js +17 -0
  186. package/dist/graph/index.js.map +1 -0
  187. package/dist/graph/layered-graph.d.ts +226 -0
  188. package/dist/graph/layered-graph.d.ts.map +1 -0
  189. package/dist/graph/layered-graph.js +396 -0
  190. package/dist/graph/layered-graph.js.map +1 -0
  191. package/dist/graph/layout.d.ts +80 -0
  192. package/dist/graph/layout.d.ts.map +1 -0
  193. package/dist/graph/layout.js +264 -0
  194. package/dist/graph/layout.js.map +1 -0
  195. package/dist/graph/marks.d.ts +24 -0
  196. package/dist/graph/marks.d.ts.map +1 -0
  197. package/dist/graph/marks.js +38 -0
  198. package/dist/graph/marks.js.map +1 -0
  199. package/dist/graph/nav.d.ts +14 -0
  200. package/dist/graph/nav.d.ts.map +1 -0
  201. package/dist/graph/nav.js +14 -0
  202. package/dist/graph/nav.js.map +1 -0
  203. package/dist/graph/pan-zoom.d.ts +80 -0
  204. package/dist/graph/pan-zoom.d.ts.map +1 -0
  205. package/dist/graph/pan-zoom.js +191 -0
  206. package/dist/graph/pan-zoom.js.map +1 -0
  207. package/dist/graph/paths.d.ts +9 -0
  208. package/dist/graph/paths.d.ts.map +1 -0
  209. package/dist/graph/paths.js +44 -0
  210. package/dist/graph/paths.js.map +1 -0
  211. package/dist/graph/place-card.d.ts +36 -0
  212. package/dist/graph/place-card.d.ts.map +1 -0
  213. package/dist/graph/place-card.js +68 -0
  214. package/dist/graph/place-card.js.map +1 -0
  215. package/dist/graph/strings.d.ts +50 -0
  216. package/dist/graph/strings.d.ts.map +1 -0
  217. package/dist/graph/strings.js +37 -0
  218. package/dist/graph/strings.js.map +1 -0
  219. package/dist/graph/styles.d.ts +2 -0
  220. package/dist/graph/styles.d.ts.map +1 -0
  221. package/dist/graph/styles.js +203 -0
  222. package/dist/graph/styles.js.map +1 -0
  223. package/dist/graph/types.d.ts +184 -0
  224. package/dist/graph/types.d.ts.map +1 -0
  225. package/dist/graph/types.js +2 -0
  226. package/dist/graph/types.js.map +1 -0
  227. package/dist/graph/view.d.ts +17 -0
  228. package/dist/graph/view.d.ts.map +1 -0
  229. package/dist/graph/view.js +21 -0
  230. package/dist/graph/view.js.map +1 -0
  231. package/dist/graph/views/dag.d.ts +10 -0
  232. package/dist/graph/views/dag.d.ts.map +1 -0
  233. package/dist/graph/views/dag.js +292 -0
  234. package/dist/graph/views/dag.js.map +1 -0
  235. package/dist/graph/views/foot.d.ts +8 -0
  236. package/dist/graph/views/foot.d.ts.map +1 -0
  237. package/dist/graph/views/foot.js +103 -0
  238. package/dist/graph/views/foot.js.map +1 -0
  239. package/dist/graph/views/node-table.d.ts +17 -0
  240. package/dist/graph/views/node-table.d.ts.map +1 -0
  241. package/dist/graph/views/node-table.js +80 -0
  242. package/dist/graph/views/node-table.js.map +1 -0
  243. package/dist/index.d.ts +24 -0
  244. package/dist/index.d.ts.map +1 -0
  245. package/dist/index.js +28 -0
  246. package/dist/index.js.map +1 -0
  247. package/dist/json/index.d.ts +2 -0
  248. package/dist/json/index.d.ts.map +1 -0
  249. package/dist/json/index.js +3 -0
  250. package/dist/json/index.js.map +1 -0
  251. package/dist/json/json-tree.d.ts +21 -0
  252. package/dist/json/json-tree.d.ts.map +1 -0
  253. package/dist/json/json-tree.js +51 -0
  254. package/dist/json/json-tree.js.map +1 -0
  255. package/dist/lanes/index.d.ts +5 -0
  256. package/dist/lanes/index.d.ts.map +1 -0
  257. package/dist/lanes/index.js +7 -0
  258. package/dist/lanes/index.js.map +1 -0
  259. package/dist/lanes/lanes.d.ts +56 -0
  260. package/dist/lanes/lanes.d.ts.map +1 -0
  261. package/dist/lanes/lanes.js +160 -0
  262. package/dist/lanes/lanes.js.map +1 -0
  263. package/dist/lanes/stack.d.ts +26 -0
  264. package/dist/lanes/stack.d.ts.map +1 -0
  265. package/dist/lanes/stack.js +43 -0
  266. package/dist/lanes/stack.js.map +1 -0
  267. package/dist/lanes/styles.d.ts +2 -0
  268. package/dist/lanes/styles.d.ts.map +1 -0
  269. package/dist/lanes/styles.js +30 -0
  270. package/dist/lanes/styles.js.map +1 -0
  271. package/dist/lanes/types.d.ts +41 -0
  272. package/dist/lanes/types.d.ts.map +1 -0
  273. package/dist/lanes/types.js +6 -0
  274. package/dist/lanes/types.js.map +1 -0
  275. package/dist/markdown/cae-markdown.d.ts +37 -0
  276. package/dist/markdown/cae-markdown.d.ts.map +1 -0
  277. package/dist/markdown/cae-markdown.js +68 -0
  278. package/dist/markdown/cae-markdown.js.map +1 -0
  279. package/dist/markdown/highlight.d.ts +2 -0
  280. package/dist/markdown/highlight.d.ts.map +1 -0
  281. package/dist/markdown/highlight.js +3 -0
  282. package/dist/markdown/highlight.js.map +1 -0
  283. package/dist/markdown/index.d.ts +4 -0
  284. package/dist/markdown/index.d.ts.map +1 -0
  285. package/dist/markdown/index.js +6 -0
  286. package/dist/markdown/index.js.map +1 -0
  287. package/dist/markdown/markdown.d.ts +4 -0
  288. package/dist/markdown/markdown.d.ts.map +1 -0
  289. package/dist/markdown/markdown.js +105 -0
  290. package/dist/markdown/markdown.js.map +1 -0
  291. package/dist/matrix/grid-step.d.ts +8 -0
  292. package/dist/matrix/grid-step.d.ts.map +1 -0
  293. package/dist/matrix/grid-step.js +69 -0
  294. package/dist/matrix/grid-step.js.map +1 -0
  295. package/dist/matrix/index.d.ts +5 -0
  296. package/dist/matrix/index.d.ts.map +1 -0
  297. package/dist/matrix/index.js +7 -0
  298. package/dist/matrix/index.js.map +1 -0
  299. package/dist/matrix/mark-matrix.d.ts +97 -0
  300. package/dist/matrix/mark-matrix.d.ts.map +1 -0
  301. package/dist/matrix/mark-matrix.js +272 -0
  302. package/dist/matrix/mark-matrix.js.map +1 -0
  303. package/dist/matrix/styles.d.ts +4 -0
  304. package/dist/matrix/styles.d.ts.map +1 -0
  305. package/dist/matrix/styles.js +47 -0
  306. package/dist/matrix/styles.js.map +1 -0
  307. package/dist/matrix/types.d.ts +79 -0
  308. package/dist/matrix/types.d.ts.map +1 -0
  309. package/dist/matrix/types.js +5 -0
  310. package/dist/matrix/types.js.map +1 -0
  311. package/dist/primitives/fact-line.d.ts +14 -0
  312. package/dist/primitives/fact-line.d.ts.map +1 -0
  313. package/dist/primitives/fact-line.js +18 -0
  314. package/dist/primitives/fact-line.js.map +1 -0
  315. package/dist/primitives/icon.d.ts +14 -0
  316. package/dist/primitives/icon.d.ts.map +1 -0
  317. package/dist/primitives/icon.js +19 -0
  318. package/dist/primitives/icon.js.map +1 -0
  319. package/dist/primitives/index.d.ts +10 -0
  320. package/dist/primitives/index.d.ts.map +1 -0
  321. package/dist/primitives/index.js +13 -0
  322. package/dist/primitives/index.js.map +1 -0
  323. package/dist/primitives/legend.d.ts +28 -0
  324. package/dist/primitives/legend.d.ts.map +1 -0
  325. package/dist/primitives/legend.js +28 -0
  326. package/dist/primitives/legend.js.map +1 -0
  327. package/dist/primitives/pill.d.ts +23 -0
  328. package/dist/primitives/pill.d.ts.map +1 -0
  329. package/dist/primitives/pill.js +40 -0
  330. package/dist/primitives/pill.js.map +1 -0
  331. package/dist/primitives/roving-focus.d.ts +47 -0
  332. package/dist/primitives/roving-focus.d.ts.map +1 -0
  333. package/dist/primitives/roving-focus.js +111 -0
  334. package/dist/primitives/roving-focus.js.map +1 -0
  335. package/dist/primitives/segmented.d.ts +41 -0
  336. package/dist/primitives/segmented.d.ts.map +1 -0
  337. package/dist/primitives/segmented.js +88 -0
  338. package/dist/primitives/segmented.js.map +1 -0
  339. package/dist/primitives/share-bar.d.ts +37 -0
  340. package/dist/primitives/share-bar.d.ts.map +1 -0
  341. package/dist/primitives/share-bar.js +69 -0
  342. package/dist/primitives/share-bar.js.map +1 -0
  343. package/dist/primitives/states.d.ts +19 -0
  344. package/dist/primitives/states.d.ts.map +1 -0
  345. package/dist/primitives/states.js +11 -0
  346. package/dist/primitives/states.js.map +1 -0
  347. package/dist/primitives/window.d.ts +24 -0
  348. package/dist/primitives/window.d.ts.map +1 -0
  349. package/dist/primitives/window.js +56 -0
  350. package/dist/primitives/window.js.map +1 -0
  351. package/dist/styles/chips.d.ts +2 -0
  352. package/dist/styles/chips.d.ts.map +1 -0
  353. package/dist/styles/chips.js +18 -0
  354. package/dist/styles/chips.js.map +1 -0
  355. package/dist/styles/facts.d.ts +2 -0
  356. package/dist/styles/facts.d.ts.map +1 -0
  357. package/dist/styles/facts.js +7 -0
  358. package/dist/styles/facts.js.map +1 -0
  359. package/dist/styles/index.d.ts +16 -0
  360. package/dist/styles/index.d.ts.map +1 -0
  361. package/dist/styles/index.js +15 -0
  362. package/dist/styles/index.js.map +1 -0
  363. package/dist/styles/layout.d.ts +2 -0
  364. package/dist/styles/layout.d.ts.map +1 -0
  365. package/dist/styles/layout.js +33 -0
  366. package/dist/styles/layout.js.map +1 -0
  367. package/dist/styles/marks.d.ts +2 -0
  368. package/dist/styles/marks.d.ts.map +1 -0
  369. package/dist/styles/marks.js +30 -0
  370. package/dist/styles/marks.js.map +1 -0
  371. package/dist/styles/meter.d.ts +3 -0
  372. package/dist/styles/meter.d.ts.map +1 -0
  373. package/dist/styles/meter.js +9 -0
  374. package/dist/styles/meter.js.map +1 -0
  375. package/dist/styles/motion.d.ts +2 -0
  376. package/dist/styles/motion.d.ts.map +1 -0
  377. package/dist/styles/motion.js +27 -0
  378. package/dist/styles/motion.js.map +1 -0
  379. package/dist/styles/prose.d.ts +3 -0
  380. package/dist/styles/prose.d.ts.map +1 -0
  381. package/dist/styles/prose.js +64 -0
  382. package/dist/styles/prose.js.map +1 -0
  383. package/dist/styles/reset.d.ts +2 -0
  384. package/dist/styles/reset.d.ts.map +1 -0
  385. package/dist/styles/reset.js +13 -0
  386. package/dist/styles/reset.js.map +1 -0
  387. package/dist/styles/status.d.ts +2 -0
  388. package/dist/styles/status.d.ts.map +1 -0
  389. package/dist/styles/status.js +52 -0
  390. package/dist/styles/status.js.map +1 -0
  391. package/dist/styles/text.d.ts +2 -0
  392. package/dist/styles/text.d.ts.map +1 -0
  393. package/dist/styles/text.js +21 -0
  394. package/dist/styles/text.js.map +1 -0
  395. package/dist/styles/tokens.d.ts +8 -0
  396. package/dist/styles/tokens.d.ts.map +1 -0
  397. package/dist/styles/tokens.js +32 -0
  398. package/dist/styles/tokens.js.map +1 -0
  399. package/dist/table/data-table.d.ts +106 -0
  400. package/dist/table/data-table.d.ts.map +1 -0
  401. package/dist/table/data-table.js +408 -0
  402. package/dist/table/data-table.js.map +1 -0
  403. package/dist/table/index.d.ts +4 -0
  404. package/dist/table/index.d.ts.map +1 -0
  405. package/dist/table/index.js +6 -0
  406. package/dist/table/index.js.map +1 -0
  407. package/dist/table/styles.d.ts +2 -0
  408. package/dist/table/styles.d.ts.map +1 -0
  409. package/dist/table/styles.js +32 -0
  410. package/dist/table/styles.js.map +1 -0
  411. package/dist/table/types.d.ts +48 -0
  412. package/dist/table/types.d.ts.map +1 -0
  413. package/dist/table/types.js +30 -0
  414. package/dist/table/types.js.map +1 -0
  415. package/dist/themes/boot.d.ts +7 -0
  416. package/dist/themes/boot.d.ts.map +1 -0
  417. package/dist/themes/boot.js +14 -0
  418. package/dist/themes/boot.js.map +1 -0
  419. package/dist/themes/choice.d.ts +16 -0
  420. package/dist/themes/choice.d.ts.map +1 -0
  421. package/dist/themes/choice.js +45 -0
  422. package/dist/themes/choice.js.map +1 -0
  423. package/dist/themes/data.d.ts +43 -0
  424. package/dist/themes/data.d.ts.map +1 -0
  425. package/dist/themes/data.js +408 -0
  426. package/dist/themes/data.js.map +1 -0
  427. package/dist/themes/index.d.ts +7 -0
  428. package/dist/themes/index.d.ts.map +1 -0
  429. package/dist/themes/index.js +11 -0
  430. package/dist/themes/index.js.map +1 -0
  431. package/dist/themes/sheet.d.ts +16 -0
  432. package/dist/themes/sheet.d.ts.map +1 -0
  433. package/dist/themes/sheet.js +28 -0
  434. package/dist/themes/sheet.js.map +1 -0
  435. package/dist/themes/token-meanings.d.ts +3 -0
  436. package/dist/themes/token-meanings.d.ts.map +1 -0
  437. package/dist/themes/token-meanings.js +67 -0
  438. package/dist/themes/token-meanings.js.map +1 -0
  439. package/dist/themes/tokens-list.d.ts +14 -0
  440. package/dist/themes/tokens-list.d.ts.map +1 -0
  441. package/dist/themes/tokens-list.js +69 -0
  442. package/dist/themes/tokens-list.js.map +1 -0
  443. package/dist/tiles/index.d.ts +4 -0
  444. package/dist/tiles/index.d.ts.map +1 -0
  445. package/dist/tiles/index.js +6 -0
  446. package/dist/tiles/index.js.map +1 -0
  447. package/dist/tiles/stat-tiles.d.ts +40 -0
  448. package/dist/tiles/stat-tiles.d.ts.map +1 -0
  449. package/dist/tiles/stat-tiles.js +99 -0
  450. package/dist/tiles/stat-tiles.js.map +1 -0
  451. package/dist/tiles/styles.d.ts +2 -0
  452. package/dist/tiles/styles.d.ts.map +1 -0
  453. package/dist/tiles/styles.js +23 -0
  454. package/dist/tiles/styles.js.map +1 -0
  455. package/dist/tiles/types.d.ts +22 -0
  456. package/dist/tiles/types.d.ts.map +1 -0
  457. package/dist/tiles/types.js +2 -0
  458. package/dist/tiles/types.js.map +1 -0
  459. package/dist/transcript/follow-scroll.d.ts +21 -0
  460. package/dist/transcript/follow-scroll.d.ts.map +1 -0
  461. package/dist/transcript/follow-scroll.js +76 -0
  462. package/dist/transcript/follow-scroll.js.map +1 -0
  463. package/dist/transcript/index.d.ts +5 -0
  464. package/dist/transcript/index.d.ts.map +1 -0
  465. package/dist/transcript/index.js +7 -0
  466. package/dist/transcript/index.js.map +1 -0
  467. package/dist/transcript/styles.d.ts +2 -0
  468. package/dist/transcript/styles.d.ts.map +1 -0
  469. package/dist/transcript/styles.js +114 -0
  470. package/dist/transcript/styles.js.map +1 -0
  471. package/dist/transcript/tags.d.ts +6 -0
  472. package/dist/transcript/tags.d.ts.map +1 -0
  473. package/dist/transcript/tags.js +13 -0
  474. package/dist/transcript/tags.js.map +1 -0
  475. package/dist/transcript/tool-card.d.ts +16 -0
  476. package/dist/transcript/tool-card.d.ts.map +1 -0
  477. package/dist/transcript/tool-card.js +87 -0
  478. package/dist/transcript/tool-card.js.map +1 -0
  479. package/dist/transcript/transcript.d.ts +103 -0
  480. package/dist/transcript/transcript.d.ts.map +1 -0
  481. package/dist/transcript/transcript.js +397 -0
  482. package/dist/transcript/transcript.js.map +1 -0
  483. package/dist/transcript/types.d.ts +161 -0
  484. package/dist/transcript/types.d.ts.map +1 -0
  485. package/dist/transcript/types.js +25 -0
  486. package/dist/transcript/types.js.map +1 -0
  487. package/dist/tree/index.d.ts +2 -0
  488. package/dist/tree/index.d.ts.map +1 -0
  489. package/dist/tree/index.js +4 -0
  490. package/dist/tree/index.js.map +1 -0
  491. package/dist/tree/tree.d.ts +83 -0
  492. package/dist/tree/tree.d.ts.map +1 -0
  493. package/dist/tree/tree.js +251 -0
  494. package/dist/tree/tree.js.map +1 -0
  495. package/docs/charts.md +58 -0
  496. package/docs/check-table.md +40 -0
  497. package/docs/code.md +55 -0
  498. package/docs/data-table.md +57 -0
  499. package/docs/examples/charts.ts +61 -0
  500. package/docs/examples/check-table.ts +19 -0
  501. package/docs/examples/ci-pipeline.ts +271 -0
  502. package/docs/examples/code.ts +28 -0
  503. package/docs/examples/data-table.ts +39 -0
  504. package/docs/examples/graph.ts +57 -0
  505. package/docs/examples/lanes.ts +40 -0
  506. package/docs/examples/matrix.ts +56 -0
  507. package/docs/examples/page.css +34 -0
  508. package/docs/examples/segmented.ts +18 -0
  509. package/docs/examples/status.ts +30 -0
  510. package/docs/examples/theme.css +54 -0
  511. package/docs/examples/tiles.ts +27 -0
  512. package/docs/examples/transcript.ts +59 -0
  513. package/docs/examples/tree.ts +44 -0
  514. package/docs/graph.md +112 -0
  515. package/docs/lanes.md +48 -0
  516. package/docs/matrix.md +34 -0
  517. package/docs/page.md +87 -0
  518. package/docs/primitives.md +57 -0
  519. package/docs/strings.md +16 -0
  520. package/docs/theming.md +147 -0
  521. package/docs/tiles.md +40 -0
  522. package/docs/transcript.md +73 -0
  523. package/docs/tree.md +44 -0
  524. package/docs/tsconfig.json +20 -0
  525. package/package.json +177 -4
  526. package/src/charts/bar-chart.ts +74 -0
  527. package/src/charts/base.ts +188 -0
  528. package/src/charts/column-chart.ts +153 -0
  529. package/src/charts/heatmap.ts +129 -0
  530. package/src/charts/index.ts +10 -0
  531. package/src/charts/line-chart.ts +128 -0
  532. package/src/charts/scale.ts +61 -0
  533. package/src/charts/state-grid.ts +245 -0
  534. package/src/charts/types.ts +48 -0
  535. package/src/checks/check-table.ts +85 -0
  536. package/src/checks/index.ts +5 -0
  537. package/src/checks/styles.ts +31 -0
  538. package/src/checks/types.ts +48 -0
  539. package/src/code/code.ts +199 -0
  540. package/src/code/highlight.ts +378 -0
  541. package/src/code/index.ts +4 -0
  542. package/src/core/clock.ts +46 -0
  543. package/src/core/define.ts +7 -0
  544. package/src/core/events.ts +89 -0
  545. package/src/core/format.ts +25 -0
  546. package/src/core/frame.ts +5 -0
  547. package/src/core/strings.ts +11 -0
  548. package/src/core/tone.ts +14 -0
  549. package/src/count/count.ts +54 -0
  550. package/src/count/elapsed.ts +33 -0
  551. package/src/count/index.ts +4 -0
  552. package/src/define/all.ts +15 -0
  553. package/src/define/charts.ts +17 -0
  554. package/src/define/check-table.ts +9 -0
  555. package/src/define/code.ts +9 -0
  556. package/src/define/count.ts +11 -0
  557. package/src/define/data-table.ts +9 -0
  558. package/src/define/graph.ts +11 -0
  559. package/src/define/json-tree.ts +9 -0
  560. package/src/define/lanes.ts +9 -0
  561. package/src/define/markdown.ts +9 -0
  562. package/src/define/matrix.ts +9 -0
  563. package/src/define/segmented.ts +9 -0
  564. package/src/define/tiles.ts +11 -0
  565. package/src/define/transcript.ts +9 -0
  566. package/src/define/tree.ts +9 -0
  567. package/src/graph/arrange.ts +399 -0
  568. package/src/graph/card.ts +209 -0
  569. package/src/graph/host.ts +100 -0
  570. package/src/graph/icons.ts +23 -0
  571. package/src/graph/index.ts +16 -0
  572. package/src/graph/layered-graph.ts +417 -0
  573. package/src/graph/layout.ts +331 -0
  574. package/src/graph/marks.ts +42 -0
  575. package/src/graph/nav.ts +19 -0
  576. package/src/graph/pan-zoom.ts +219 -0
  577. package/src/graph/paths.ts +41 -0
  578. package/src/graph/place-card.ts +93 -0
  579. package/src/graph/strings.ts +86 -0
  580. package/src/graph/styles.ts +204 -0
  581. package/src/graph/types.ts +202 -0
  582. package/src/graph/view.ts +28 -0
  583. package/src/graph/views/dag.ts +294 -0
  584. package/src/graph/views/foot.ts +109 -0
  585. package/src/graph/views/node-table.ts +90 -0
  586. package/src/index.ts +27 -0
  587. package/src/json/index.ts +2 -0
  588. package/src/json/json-tree.ts +49 -0
  589. package/src/lanes/index.ts +6 -0
  590. package/src/lanes/lanes.ts +143 -0
  591. package/src/lanes/stack.ts +51 -0
  592. package/src/lanes/styles.ts +30 -0
  593. package/src/lanes/types.ts +51 -0
  594. package/src/markdown/cae-markdown.ts +64 -0
  595. package/src/markdown/highlight.ts +2 -0
  596. package/src/markdown/index.ts +5 -0
  597. package/src/markdown/markdown.ts +110 -0
  598. package/src/matrix/grid-step.ts +58 -0
  599. package/src/matrix/index.ts +6 -0
  600. package/src/matrix/mark-matrix.ts +285 -0
  601. package/src/matrix/styles.ts +48 -0
  602. package/src/matrix/types.ts +83 -0
  603. package/src/primitives/fact-line.ts +26 -0
  604. package/src/primitives/icon.ts +26 -0
  605. package/src/primitives/index.ts +12 -0
  606. package/src/primitives/legend.ts +56 -0
  607. package/src/primitives/pill.ts +58 -0
  608. package/src/primitives/roving-focus.ts +138 -0
  609. package/src/primitives/segmented.ts +92 -0
  610. package/src/primitives/share-bar.ts +94 -0
  611. package/src/primitives/states.ts +28 -0
  612. package/src/primitives/window.ts +65 -0
  613. package/src/styles/chips.ts +18 -0
  614. package/src/styles/facts.ts +7 -0
  615. package/src/styles/index.ts +19 -0
  616. package/src/styles/layout.ts +33 -0
  617. package/src/styles/marks.ts +30 -0
  618. package/src/styles/meter.ts +9 -0
  619. package/src/styles/motion.ts +27 -0
  620. package/src/styles/prose.ts +64 -0
  621. package/src/styles/reset.ts +13 -0
  622. package/src/styles/status.ts +52 -0
  623. package/src/styles/text.ts +21 -0
  624. package/src/styles/tokens.ts +35 -0
  625. package/src/table/data-table.ts +367 -0
  626. package/src/table/index.ts +5 -0
  627. package/src/table/styles.ts +32 -0
  628. package/src/table/types.ts +73 -0
  629. package/src/themes/boot.ts +14 -0
  630. package/src/themes/choice.ts +47 -0
  631. package/src/themes/data.ts +433 -0
  632. package/src/themes/index.ts +10 -0
  633. package/src/themes/sheet.ts +29 -0
  634. package/src/themes/token-meanings.ts +67 -0
  635. package/src/themes/tokens-list.ts +82 -0
  636. package/src/tiles/index.ts +5 -0
  637. package/src/tiles/stat-tiles.ts +92 -0
  638. package/src/tiles/styles.ts +23 -0
  639. package/src/tiles/types.ts +20 -0
  640. package/src/transcript/follow-scroll.ts +72 -0
  641. package/src/transcript/index.ts +6 -0
  642. package/src/transcript/styles.ts +114 -0
  643. package/src/transcript/tags.ts +18 -0
  644. package/src/transcript/tool-card.ts +103 -0
  645. package/src/transcript/transcript.ts +358 -0
  646. package/src/transcript/types.ts +167 -0
  647. package/src/tree/index.ts +3 -0
  648. package/src/tree/tree.ts +263 -0
@@ -0,0 +1,185 @@
1
+ import { PAD, placeCard } from './place-card.js';
2
+ /** The focused element, inside the shadow roots it is in. */
3
+ function deepActive(root) {
4
+ let at = root?.activeElement ?? null;
5
+ while (at?.shadowRoot?.activeElement)
6
+ at = at.shadowRoot.activeElement;
7
+ return at;
8
+ }
9
+ /**
10
+ * The card (`.insp`) of the selected item in the host's frame (`.main > .frame`):
11
+ * a table row (`tr.sel > th`), a mark (`.mark.sel`, `.taskchip.sel`, in the frame or
12
+ * in the view of `inner`), a node (`.node.sel`) or a cluster (`.cluster.sel`). It
13
+ * runs after every draw, pan, zoom and scroll (`place`), and keeps Tab and Shift+Tab
14
+ * between the item and its card.
15
+ */
16
+ export class CardController {
17
+ constructor(host, o) {
18
+ this.host = host;
19
+ this.o = o;
20
+ /** The frame height the card needs (0 without one). */
21
+ this.room = 0;
22
+ /** Focus is being put back, not moved by the reader: it does not select. */
23
+ this.quiet = false;
24
+ /** Shift+Tab on the card's first action comes back to the item; Escape puts the focus back on the item first. */
25
+ this.onCardKey = (e) => {
26
+ if (e.key === 'Tab' && e.shiftKey && e.target === this.actions()[0]) {
27
+ const own = this.itemFocus();
28
+ if (!own)
29
+ return;
30
+ e.preventDefault();
31
+ this.focusQuietly(own);
32
+ }
33
+ else if (e.key === 'Escape') {
34
+ // The card goes with the selection: the focus goes back to the item first.
35
+ this.focusQuietly(this.itemFocus());
36
+ }
37
+ };
38
+ /** Tab on the selected item goes on to its card. */
39
+ this.onTabToCard = (e) => {
40
+ if (e.key !== 'Tab' || e.shiftKey || e.defaultPrevented)
41
+ return;
42
+ const own = this.itemFocus();
43
+ if (!own || this.focused !== own)
44
+ return;
45
+ const first = this.actions()[0];
46
+ if (!first)
47
+ return;
48
+ e.preventDefault();
49
+ first.focus();
50
+ };
51
+ host.addController(this);
52
+ }
53
+ hostConnected() {
54
+ this.host.addEventListener('keydown', this.onTabToCard);
55
+ }
56
+ hostDisconnected() {
57
+ this.host.removeEventListener('keydown', this.onTabToCard);
58
+ }
59
+ get root() {
60
+ return this.host.shadowRoot ?? this.host;
61
+ }
62
+ get focused() {
63
+ return deepActive(this.host.shadowRoot);
64
+ }
65
+ /** The card, when there is a selection. */
66
+ card() {
67
+ return this.root.querySelector('.insp');
68
+ }
69
+ /** The card's content: the elements the host put in the `inspector` slot. */
70
+ content() {
71
+ return this.card()?.querySelector('slot')?.assignedElements({ flatten: true }) ?? [];
72
+ }
73
+ /** The buttons and links of the card's content, in order. */
74
+ actions() {
75
+ return this.content().flatMap((el) => [...(el.matches('button, a[href]') ? [el] : []), ...el.querySelectorAll('button, a[href]')]);
76
+ }
77
+ /**
78
+ * The selected item as drawn (a mark, a node, a cluster's header), what the card keeps clear of
79
+ * (a mark's whole node), and the box it is shown in (the frame, or a mark matrix).
80
+ */
81
+ anchor() {
82
+ const frame = this.root.querySelector('.main > .frame');
83
+ const row = frame?.querySelector('tr.sel > th');
84
+ if (frame && row)
85
+ return { item: row, clear: row, frame };
86
+ const sel = frame?.querySelector('.mark.sel, .taskchip.sel, .node.sel, .cluster.sel') ?? this.o.inner()?.querySelector('.mark.sel');
87
+ if (!frame || !sel)
88
+ return null;
89
+ // A cluster: the card points at its header, where its name is, and keeps clear of the whole cluster when there is room.
90
+ const item = sel.classList.contains('cluster') ? (sel.querySelector(':scope > .hd') ?? sel) : sel;
91
+ return { item, clear: item.closest('.node') ?? sel, frame };
92
+ }
93
+ /** Put the card beside the selected item, inside the frame; hide it while the item is out of view. */
94
+ place() {
95
+ const card = this.card();
96
+ const docked = this.o.docked();
97
+ const room = card && !docked ? card.querySelector('.scroll').scrollHeight + 24 + 2 * PAD : 0;
98
+ if (room !== this.room && (room > this.o.frameH() || this.room > 0)) {
99
+ this.room = room;
100
+ this.o.grow();
101
+ }
102
+ if (!card || docked)
103
+ return;
104
+ const a = this.anchor();
105
+ const main = this.root.querySelector('.main');
106
+ if (!a || !main) {
107
+ card.classList.remove('placed');
108
+ return;
109
+ }
110
+ const m = main.getBoundingClientRect();
111
+ const rel = (r) => ({ left: r.left - m.left, top: r.top - m.top, width: r.width, height: r.height });
112
+ const item = rel(a.item.getBoundingClientRect());
113
+ const clear = rel(a.clear.getBoundingClientRect());
114
+ const f = rel(a.frame.getBoundingClientRect());
115
+ // A mark matrix scrolls: the item hides when scrolled out of it.
116
+ const port = a.frame.querySelector('.mx') ?? this.o.inner()?.querySelector('.mx');
117
+ const inView = placeCard(item, port ? rel(port.getBoundingClientRect()) : f, { width: 0, height: 0 }).shown;
118
+ const scroll = card.querySelector('.scroll');
119
+ if (scroll)
120
+ scroll.style.maxHeight = `${Math.max(120, f.height - 2 * PAD - 24)}px`;
121
+ const size = { width: card.offsetWidth, height: card.offsetHeight };
122
+ let p = placeCard(clear, f, size, item);
123
+ if (!p.fits && a.clear !== a.item && !a.clear.classList.contains('node'))
124
+ p = placeCard(item, f, size);
125
+ card.classList.toggle('placed', p.shown && inView);
126
+ card.dataset['side'] = p.side;
127
+ card.style.left = `${p.x}px`;
128
+ card.style.top = `${p.y}px`;
129
+ card.style.setProperty('--arrow', `${p.arrow}px`);
130
+ }
131
+ /** The focusable that stands for the selected item: the mark itself, or a node's or a cluster's name. */
132
+ itemFocus() {
133
+ const a = this.anchor();
134
+ if (!a)
135
+ return null;
136
+ return a.item.matches('button') ? a.item : a.item.querySelector('.name');
137
+ }
138
+ /**
139
+ * The selected item's focusable described by the card, and what a live region says
140
+ * of the item: its name and its status (the card content's first heading and its
141
+ * `[data-status]`), '' without a selection.
142
+ */
143
+ describe() {
144
+ const roots = [this.root, this.o.inner()].filter((r) => !!r);
145
+ for (const r of roots)
146
+ for (const el of r.querySelectorAll('[aria-describedby="insp"]'))
147
+ el.removeAttribute('aria-describedby');
148
+ const own = this.itemFocus();
149
+ const card = this.card();
150
+ if (own && card) {
151
+ // An item in the view of another element (a mark matrix) names the card by reference: an id does not cross shadow roots.
152
+ if (own.getRootNode() === card.getRootNode())
153
+ own.setAttribute('aria-describedby', 'insp');
154
+ else if ('ariaDescribedByElements' in own)
155
+ own.ariaDescribedByElements = [card];
156
+ }
157
+ const content = this.content();
158
+ const find = (sel) => content.map((el) => (el.matches(sel) ? el : el.querySelector(sel))).find(Boolean) ?? null;
159
+ return [find('h1, h2, h3, h4, h5, h6')?.textContent?.trim() ?? '', find('[data-status]')?.textContent?.trim() ?? ''];
160
+ }
161
+ /** Focus `el` without selecting what it is on. */
162
+ focusQuietly(el) {
163
+ this.quiet = true;
164
+ el?.focus();
165
+ this.quiet = false;
166
+ }
167
+ /** Run `f` now, or, while a pointer is down on the frame, once it is released (a scroll under a pressed pointer would move the click elsewhere). */
168
+ whenReleased(f) {
169
+ if (!this.o.pressed())
170
+ return f();
171
+ globalThis.addEventListener('pointerup', () => setTimeout(f), { once: true });
172
+ }
173
+ /** On a narrow screen: scroll the selected item into view when it is out of it or under the sheet. */
174
+ revealOverSheet() {
175
+ const item = this.anchor()?.item;
176
+ if (!item)
177
+ return;
178
+ const r = item.getBoundingClientRect();
179
+ const sheet = this.card()?.getBoundingClientRect();
180
+ const bottom = Math.min(globalThis.innerHeight, sheet?.top ?? Infinity);
181
+ if (r.top < 0 || r.bottom > bottom)
182
+ item.scrollIntoView({ block: 'center' });
183
+ }
184
+ }
185
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/graph/card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ReactiveControllerHost } from 'lit';
2
+ import type { StateStyles } from '../primitives/states.js';
3
+ import type { CardController } from './card.js';
4
+ import type { GraphLayout } from './layout.js';
5
+ import type { PanZoomController } from './pan-zoom.js';
6
+ import type { LayeredGraphStrings } from './strings.js';
7
+ import type { Arrangement, DrawnGraph, GraphClusterInput, GraphMark, GraphNode } from './types.js';
8
+ /** The failed marks a node drawn as a bar lists by name. */
9
+ export declare const BAR_LIST = 8;
10
+ /**
11
+ * The element as its views see it: what it shows, the state the views change
12
+ * (each change renders the element again), its controllers and what it sends.
13
+ */
14
+ export interface GraphHost extends ReactiveControllerHost, HTMLElement {
15
+ readonly renderRoot: ParentNode;
16
+ /** The graph, its nodes with their defaults. */
17
+ readonly drawn: DrawnGraph;
18
+ readonly arr: Arrangement;
19
+ readonly states: StateStyles;
20
+ readonly words: LayeredGraphStrings;
21
+ readonly selected: string | null;
22
+ readonly nodes: ReadonlyMap<string, GraphNode>;
23
+ readonly clusters: ReadonlyMap<string, GraphClusterInput>;
24
+ /** Where everything is drawn, and whether it was drawn for this graph (`key`). */
25
+ readonly lay: GraphLayout | null;
26
+ readonly laidOut: boolean;
27
+ /** Top to bottom. */
28
+ readonly down: boolean;
29
+ readonly barAt: number;
30
+ /** The node table is shown. */
31
+ readonly asTable: boolean;
32
+ /** The series (or a mark's id, for a mark outside any series) under the pointer or focus. */
33
+ hover: string | null;
34
+ /** Each group's focused mark (roving tabindex): one tab stop per group. */
35
+ readonly active: Map<string, number>;
36
+ readonly pz: PanZoomController;
37
+ readonly card: CardController;
38
+ renderIcon(name: string): unknown;
39
+ /** The series (or mark id) highlighted, and the marks it lights. */
40
+ lit(): {
41
+ key: string | null;
42
+ on: ReadonlySet<string> | null;
43
+ };
44
+ /** Select an item by its id (null: none). */
45
+ select(id: string | null): void;
46
+ /** Focus moved by the reader selects what it is on; focus put back does not. */
47
+ focusSelect(id: string): void;
48
+ /** An item's action: Enter, a double click, a card's first link. */
49
+ act(id: string): void;
50
+ /** Enter a cluster's inner view. */
51
+ drill(id: string): void;
52
+ /** Open (`open`) or close an item that can be drawn open. */
53
+ toggle(id: string, open: boolean): void;
54
+ /** The view switch. */
55
+ showView(view: 'graph' | 'table'): void;
56
+ }
57
+ /** A mark in a node, with its series id ('' outside any series). */
58
+ export interface Slot {
59
+ m: GraphMark;
60
+ series: string;
61
+ }
62
+ /** How a group of marks lays out. */
63
+ export interface Grid {
64
+ cols: number;
65
+ size: number;
66
+ gap: number;
67
+ }
68
+ /** A group of marks with one tab stop: a node's marks, or the failed marks a node drawn as a bar lists. */
69
+ export interface MarkGroup {
70
+ id: string;
71
+ slots: (Slot | null)[];
72
+ grid: Grid;
73
+ }
74
+ /** A node's marks in slot order: one per series (null where the series has none here), then those outside any series. */
75
+ export declare const slotsOf: (n: Pick<GraphNode, "marks" | "loose">, series: readonly string[]) => (Slot | null)[];
76
+ /** A group's grid: the graph's, so a series sits at one place in every node; a group without series lays out its own few marks. */
77
+ export declare function gridOf(n: Pick<GraphNode, 'marks' | 'loose'>, series: number): Grid;
78
+ /** The first slot that holds a mark. */
79
+ export declare function firstMark(slots: readonly (Slot | null)[]): number;
80
+ /** What a mark highlights: its series, or itself outside any series. */
81
+ export declare const hlKeyOf: (s: Slot) => string;
82
+ //# sourceMappingURL=host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/graph/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { markGrid } from './marks.js';
2
+ /** The failed marks a node drawn as a bar lists by name. */
3
+ export const BAR_LIST = 8;
4
+ /** A node's marks in slot order: one per series (null where the series has none here), then those outside any series. */
5
+ export const slotsOf = (n, series) => [
6
+ ...n.marks.map((m, i) => (m ? { m, series: series[i] ?? '' } : null)),
7
+ ...n.loose.map((m) => ({ m, series: '' })),
8
+ ];
9
+ /** A group's grid: the graph's, so a series sits at one place in every node; a group without series lays out its own few marks. */
10
+ export function gridOf(n, series) {
11
+ const slots = n.marks.length + n.loose.length;
12
+ const g = markGrid(n.marks.length ? series : slots);
13
+ return { cols: Math.min(g.cols, Math.max(1, slots)), size: g.size, gap: g.size >= 10 ? 4 : 2 };
14
+ }
15
+ /** The first slot that holds a mark. */
16
+ export function firstMark(slots) {
17
+ return Math.max(0, slots.findIndex((m) => m !== null));
18
+ }
19
+ /** What a mark highlights: its series, or itself outside any series. */
20
+ export const hlKeyOf = (s) => s.series || s.m.id;
21
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/graph/host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC;AAmE1B,yHAAyH;AACzH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAqC,EAAE,MAAyB,EAAmB,EAAE,CAAC;IAC5G,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;CAC3C,CAAC;AAEF,mIAAmI;AACnI,MAAM,UAAU,MAAM,CAAC,CAAqC,EAAE,MAAc;IAC1E,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,SAAS,CAAC,KAA+B;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** A cycle: a circle that comes back round to where it started, its head at the top right. */
2
+ export declare const cycleIcon: (size?: number) => import("lit").TemplateResult<1>;
3
+ /** Something with an inner view: two cards, one behind the other, as a node with one is drawn. */
4
+ export declare const innerIcon: () => import("lit").TemplateResult<1>;
5
+ /** Show inside (a plus) or hide inside (a minus), in a square: the control of an item that can be drawn open. */
6
+ export declare const toggleIcon: (open: boolean) => import("lit").TemplateResult<1>;
7
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/graph/icons.ts"],"names":[],"mappings":"AAGA,8FAA8F;AAC9F,eAAO,MAAM,SAAS,GAAI,aAAS,oCAI1B,CAAC;AAEV,kGAAkG;AAClG,eAAO,MAAM,SAAS,uCAIb,CAAC;AAEV,iHAAiH;AACjH,eAAO,MAAM,UAAU,GAAI,MAAM,OAAO,oCAI/B,CAAC"}
@@ -0,0 +1,18 @@
1
+ // The graph's own icons: a cluster that repeats, and an inner view.
2
+ import { html } from 'lit';
3
+ /** A cycle: a circle that comes back round to where it started, its head at the top right. */
4
+ export const cycleIcon = (size = 14) => html `<svg class="ic loop-ic" width=${size} height=${size} viewBox="0 0 16 16" aria-hidden="true" focusable="false">
5
+ <path d="M12.7,9.71 A5,5 0 1 1 11.21,4.17" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"></path>
6
+ <path d="M12.44,5.2 L9.15,5.06 L11.73,2 z" fill="currentColor"></path>
7
+ </svg>`;
8
+ /** Something with an inner view: two cards, one behind the other, as a node with one is drawn. */
9
+ export const innerIcon = () => html `<svg class="ic in-ic" width="12" height="12" viewBox="0 0 12 12" aria-hidden="true" focusable="false">
10
+ <rect x="3.4" y="0.7" width="7.9" height="7.9" rx="1.6" fill="none" stroke="currentColor" stroke-width="1.2"></rect>
11
+ <path d="M0.7,3.6 V9.7 Q0.7,11.3 2.3,11.3 H8.4" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path>
12
+ </svg>`;
13
+ /** Show inside (a plus) or hide inside (a minus), in a square: the control of an item that can be drawn open. */
14
+ export const toggleIcon = (open) => html `<svg class="ic tog-ic" width="12" height="12" viewBox="0 0 12 12" aria-hidden="true" focusable="false">
15
+ <rect x="0.7" y="0.7" width="10.6" height="10.6" rx="2.2" fill="none" stroke="currentColor" stroke-width="1.2"></rect>
16
+ <path d=${open ? 'M3.5,6 H8.5' : 'M3.5,6 H8.5 M6,3.5 V8.5'} fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"></path>
17
+ </svg>`;
18
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/graph/icons.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,8FAA8F;AAC9F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CACrC,IAAI,CAAA,iCAAiC,IAAI,WAAW,IAAI;;;SAGjD,CAAC;AAEV,kGAAkG;AAClG,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAC5B,IAAI,CAAA;;;SAGG,CAAC;AAEV,iHAAiH;AACjH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE,CAC1C,IAAI,CAAA;;cAEQ,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB;SACrD,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from './types.js';
2
+ export { arrange, extentOf, isPoint, orderRows, rankLayers, type GraphShape } from './arrange.js';
3
+ export * from './layout.js';
4
+ export * from './paths.js';
5
+ export * from './view.js';
6
+ export * from './nav.js';
7
+ export * from './marks.js';
8
+ export * from './place-card.js';
9
+ export * from './pan-zoom.js';
10
+ export * from './card.js';
11
+ export * from './icons.js';
12
+ export * from './strings.js';
13
+ export * from './styles.js';
14
+ export * from './layered-graph.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAClG,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,17 @@
1
+ // A layered graph: `@contraagent/elements/graph`. `CaeLayeredGraph` is registered
2
+ // by `@contraagent/elements/graph/define` (with the elements it renders).
3
+ export * from './types.js';
4
+ export { arrange, extentOf, isPoint, orderRows, rankLayers } from './arrange.js';
5
+ export * from './layout.js';
6
+ export * from './paths.js';
7
+ export * from './view.js';
8
+ export * from './nav.js';
9
+ export * from './marks.js';
10
+ export * from './place-card.js';
11
+ export * from './pan-zoom.js';
12
+ export * from './card.js';
13
+ export * from './icons.js';
14
+ export * from './strings.js';
15
+ export * from './styles.js';
16
+ export * from './layered-graph.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,0EAA0E;AAC1E,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAClG,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,226 @@
1
+ import { LitElement, type CSSResult, type PropertyValueMap, type PropertyValues } from 'lit';
2
+ import type { MarkMatrixInput, MarkMatrixStrings } from '../matrix/types.js';
3
+ import type { StateStyles } from '../primitives/states.js';
4
+ import { type LayeredGraphStrings } from './strings.js';
5
+ import type { GraphInput, GraphOrder } from './types.js';
6
+ /** Below this width, `direction: 'auto'` draws top to bottom, without zoom. */
7
+ export declare const NARROW = 640;
8
+ /** The changes `willUpdate` reads: the properties, and the private `down`. */
9
+ type Changed = PropertyValues<CaeLayeredGraph> & PropertyValueMap<{
10
+ down: boolean;
11
+ }>;
12
+ /**
13
+ * A layered graph: each node in a layer by the longest path to it, edges bending only
14
+ * in the gaps between layers and never passing a node or a cluster's label; a cluster
15
+ * of nodes in a box (a cluster in a cluster: a box in a box), with, when it `cycle`s,
16
+ * a dotted return from its last layer to its first; an edge from outside the graph
17
+ * from a named stub. Inside each node, one mark per series id, at the same place in
18
+ * every node, so a series can be followed across the graph; a mark is drawn in its
19
+ * state's look (`states`). Above `barAt` marks, a node shows a bar of its counts and
20
+ * lists its failed marks. The order depends on the structure only, and keeps a
21
+ * previous `order`: nodes that appear later are added at the end of their layer.
22
+ *
23
+ * A click selects a mark, a node or a cluster (`cae-select`); a card beside it (the
24
+ * host's content, in the `inspector` slot) moves with it as the graph pans and zooms,
25
+ * and hides while it is out of the frame; on a narrow screen it is a sheet under the
26
+ * frame. A double click or Enter is the item's action (`cae-activate`), or opens its
27
+ * inner view (`cae-drill`, for an item with `drill`). Hovering or focusing a mark
28
+ * highlights its series and what `related` names. The frame first shows the whole
29
+ * graph; Ctrl (or ⌘) and the wheel, or the buttons, zoom; dragging pans; "Show all"
30
+ * goes back. "Graph | Table" changes the view (`cae-view-change`): the table is a row
31
+ * per node, with its status and the nodes it is joined to. With `matrix`, the frame
32
+ * shows that `<cae-mark-matrix>` as the table instead.
33
+ *
34
+ * Size: the element is as wide as its container. Without a height set on it, the
35
+ * frame is as tall as the whole drawing at that width (never scaled up), up to 70% of
36
+ * the window's height or 360 px, whichever is more, and taller when the card needs
37
+ * it; top to bottom, as tall as the drawing. A height set on the element
38
+ * (or given it by a flex or grid container) is shared: the `crumbs` slot and the row
39
+ * under the frame keep theirs, and the frame takes the rest, the drawing fitted in it.
40
+ *
41
+ * Keyboard: Tab moves between nodes; the arrow keys, Home and End move between a
42
+ * node's marks, and a mark out of the frame is brought into it; Shift and an arrow
43
+ * key move along an edge to an earlier or a later node, on the same series; what has
44
+ * the focus is selected (Tab goes on to the card); Enter is the item's action; Escape
45
+ * clears the selection (and, with none, is left to the host).
46
+ *
47
+ * @tagname cae-layered-graph
48
+ * @fires cae-select - `{id}`: a mark, a node, a cluster or a table row was selected; `{id: null}`: the selection was cleared
49
+ * @fires cae-activate - `{id}`: an item's action (a double click or Enter)
50
+ * @fires cae-drill - `{id}`: an item's inner view (a double click or Enter on an item with `drill`, a cluster's chip in the table, a later part of a cluster's `path`)
51
+ * @fires cae-toggle - `{id, open}`: an item's open or close control (`toggle`) was used
52
+ * @fires cae-view-change - `{view}`: "Graph" or "Table" was chosen
53
+ * @slot inspector - the selected item's card: its first heading and its `[data-status]` name it to a screen reader
54
+ * @slot crumbs - a line above the frame (where the graph is)
55
+ * @csspart frame - the frame every view is drawn in
56
+ * @csspart stage - what pans and zooms
57
+ * @csspart node - each node
58
+ * @csspart node-header - a node's first line
59
+ * @csspart node-name - a node's name
60
+ * @csspart mark - each mark
61
+ * @csspart cluster - each cluster
62
+ * @csspart cluster-label - a cluster's header
63
+ * @csspart edge - each edge
64
+ * @csspart stub - each stub
65
+ * @csspart legend - the legend
66
+ * @csspart keys - the line of key hints under the legend
67
+ * @csspart inspector - the selected item's card
68
+ * @csspart table - the node table
69
+ * @csspart row - each row of the node table
70
+ */
71
+ export declare class CaeLayeredGraph extends LitElement {
72
+ static styles: (CSSResult | CSSResult[])[];
73
+ static properties: {
74
+ graph: {
75
+ attribute: boolean;
76
+ };
77
+ states: {
78
+ attribute: boolean;
79
+ };
80
+ selected: {
81
+ attribute: boolean;
82
+ };
83
+ highlight: {
84
+ attribute: boolean;
85
+ };
86
+ order: {
87
+ attribute: boolean;
88
+ };
89
+ key: {};
90
+ direction: {};
91
+ view: {};
92
+ matrix: {
93
+ attribute: boolean;
94
+ };
95
+ barAt: {
96
+ type: NumberConstructor;
97
+ };
98
+ related: {
99
+ attribute: boolean;
100
+ };
101
+ strings: {
102
+ attribute: boolean;
103
+ };
104
+ matrixStrings: {
105
+ attribute: boolean;
106
+ };
107
+ renderIcon: {
108
+ attribute: boolean;
109
+ };
110
+ iconStyles: {
111
+ attribute: boolean;
112
+ };
113
+ hover: {
114
+ state: boolean;
115
+ };
116
+ down: {
117
+ state: boolean;
118
+ };
119
+ lay: {
120
+ state: boolean;
121
+ };
122
+ announced: {
123
+ state: boolean;
124
+ };
125
+ };
126
+ graph: GraphInput;
127
+ states: StateStyles;
128
+ /** The selected item's id (a mark's, a node's or a cluster's), or null. */
129
+ selected: string | null;
130
+ /** The series highlighted while no mark is hovered, focused or selected. */
131
+ highlight: string | null;
132
+ /** The order of an earlier drawing of this graph (`arrange(...).order`): its items stay where they are. */
133
+ order: GraphOrder | undefined;
134
+ /** The graph's identity: a new key is a new graph (the frame shows all of it again); the same key while the graph changes keeps the zoom and pan. */
135
+ key: string;
136
+ /** Left to right, top to bottom, or by the width (`auto`: top to bottom below `NARROW` px). */
137
+ direction: 'auto' | 'across' | 'down';
138
+ /** The node table instead of the drawing. */
139
+ view: 'graph' | 'table';
140
+ /** A mark matrix shown in the frame as the table, or null. */
141
+ matrix: MarkMatrixInput | null;
142
+ /** Above this many marks, a node shows a bar of its counts. */
143
+ barAt: number;
144
+ /** The marks a hovered or selected series (or a mark's id, outside any series) lights; default: its own. */
145
+ related: ((key: string) => ReadonlySet<string>) | undefined;
146
+ strings: Partial<LayeredGraphStrings>;
147
+ matrixStrings: Partial<MarkMatrixStrings>;
148
+ /** Draws an icon of a node, a matrix header and the legend; default: `icon(name)`. */
149
+ renderIcon: (name: string) => unknown;
150
+ /** Styles for what `renderIcon` draws, added to the element's own. */
151
+ iconStyles: readonly CSSResult[];
152
+ /** The series (or a mark's id) under the pointer or focus. */
153
+ private hover;
154
+ /** Top to bottom. */
155
+ private down;
156
+ /** Where everything is drawn, from the sizes measured after the last render. */
157
+ private lay;
158
+ /** What the live region says: the item just selected, and its status. */
159
+ private announced;
160
+ private arr;
161
+ private words;
162
+ /** The graph, its nodes with their defaults. */
163
+ private drawn;
164
+ private nodes;
165
+ private clusters;
166
+ /** Each mark's series ('' outside any series), by its id. */
167
+ private markSeries;
168
+ /** Each group's focused mark (roving tabindex): one tab stop per group. */
169
+ private readonly active;
170
+ /** What the sizes were last measured for, what the layout was computed from, and the graph it is of. */
171
+ private measured;
172
+ private layKey;
173
+ private layFor;
174
+ private litCache;
175
+ private scrolled;
176
+ private readonly pz;
177
+ private readonly card;
178
+ /** This element as its views see it (`host.ts`), its private members included. */
179
+ private readonly h;
180
+ private matrixEl;
181
+ protected willUpdate(changed: Changed): void;
182
+ connectedCallback(): void;
183
+ disconnectedCallback(): void;
184
+ protected updated(changed: PropertyValues<this>): void;
185
+ /**
186
+ * Put the focus on an item without selecting it: a node (its focused mark, else its
187
+ * name) or a cluster (its name); with null, or when it is not drawn, on the first
188
+ * thing to focus (in the `crumbs` slot, else the first node).
189
+ */
190
+ /** Put the focus on an item's open or close control (`toggle`), else on the item: where it was after the item was drawn again. */
191
+ focusToggle(id: string, tries?: number): void;
192
+ focusItem(id: string | null): void;
193
+ /** After a new selection: the card describes the item, the live region names it, and on a narrow screen the item is scrolled into view. */
194
+ private selectionChanged;
195
+ /** Measure what was drawn when the graph or the width changed; lay it out again when the structure or a size changed. */
196
+ private place;
197
+ /** Top to bottom on a narrow screen (`auto`); otherwise the whole graph in a frame, until the reader zooms or pans. */
198
+ private fit;
199
+ private readonly onEscape;
200
+ private select;
201
+ /** An item's action: its inner view when it has one. */
202
+ protected act(id: string): void;
203
+ private findMark;
204
+ /** The series (or mark id) highlighted: the one hovered or focused, else the selected mark's, else `highlight`; and the marks it lights. */
205
+ protected lit(): {
206
+ key: string | null;
207
+ on: ReadonlySet<string> | null;
208
+ };
209
+ private known;
210
+ render(): import("lit").TemplateResult<1>;
211
+ /** A mark matrix in the frame, at least as tall as the drawing was (and as the card needs), centred in it. */
212
+ private matrixView;
213
+ protected get laidOut(): boolean;
214
+ protected get asTable(): boolean;
215
+ protected focusSelect(id: string): void;
216
+ protected drill(id: string): void;
217
+ protected toggle(id: string, open: boolean): void;
218
+ protected showView(v: 'graph' | 'table'): void;
219
+ }
220
+ declare global {
221
+ interface HTMLElementTagNameMap {
222
+ 'cae-layered-graph': CaeLayeredGraph;
223
+ }
224
+ }
225
+ export {};
226
+ //# sourceMappingURL=layered-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layered-graph.d.ts","sourceRoot":"","sources":["../../src/graph/layered-graph.ts"],"names":[],"mappings":"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"}