@contraagent/ui 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 (1037) hide show
  1. package/README.md +130 -2
  2. package/custom-elements.json +7084 -0
  3. package/dist/adapters/check-rows.d.ts +18 -0
  4. package/dist/adapters/check-rows.d.ts.map +1 -0
  5. package/dist/adapters/check-rows.js +75 -0
  6. package/dist/adapters/check-rows.js.map +1 -0
  7. package/dist/adapters/filters.d.ts +29 -0
  8. package/dist/adapters/filters.d.ts.map +1 -0
  9. package/dist/adapters/filters.js +74 -0
  10. package/dist/adapters/filters.js.map +1 -0
  11. package/dist/adapters/graph/compound.d.ts +93 -0
  12. package/dist/adapters/graph/compound.d.ts.map +1 -0
  13. package/dist/adapters/graph/compound.js +322 -0
  14. package/dist/adapters/graph/compound.js.map +1 -0
  15. package/dist/adapters/graph/flow-index.d.ts +54 -0
  16. package/dist/adapters/graph/flow-index.d.ts.map +1 -0
  17. package/dist/adapters/graph/flow-index.js +129 -0
  18. package/dist/adapters/graph/flow-index.js.map +1 -0
  19. package/dist/adapters/graph/highlight.d.ts +14 -0
  20. package/dist/adapters/graph/highlight.d.ts.map +1 -0
  21. package/dist/adapters/graph/highlight.js +33 -0
  22. package/dist/adapters/graph/highlight.js.map +1 -0
  23. package/dist/adapters/graph/input.d.ts +50 -0
  24. package/dist/adapters/graph/input.d.ts.map +1 -0
  25. package/dist/adapters/graph/input.js +201 -0
  26. package/dist/adapters/graph/input.js.map +1 -0
  27. package/dist/adapters/graph/layer.d.ts +33 -0
  28. package/dist/adapters/graph/layer.d.ts.map +1 -0
  29. package/dist/adapters/graph/layer.js +94 -0
  30. package/dist/adapters/graph/layer.js.map +1 -0
  31. package/dist/adapters/graph/matrix.d.ts +62 -0
  32. package/dist/adapters/graph/matrix.d.ts.map +1 -0
  33. package/dist/adapters/graph/matrix.js +96 -0
  34. package/dist/adapters/graph/matrix.js.map +1 -0
  35. package/dist/adapters/graph/project.d.ts +49 -0
  36. package/dist/adapters/graph/project.d.ts.map +1 -0
  37. package/dist/adapters/graph/project.js +319 -0
  38. package/dist/adapters/graph/project.js.map +1 -0
  39. package/dist/adapters/graph/selection.d.ts +31 -0
  40. package/dist/adapters/graph/selection.d.ts.map +1 -0
  41. package/dist/adapters/graph/selection.js +48 -0
  42. package/dist/adapters/graph/selection.js.map +1 -0
  43. package/dist/adapters/graph/states.d.ts +6 -0
  44. package/dist/adapters/graph/states.d.ts.map +1 -0
  45. package/dist/adapters/graph/states.js +5 -0
  46. package/dist/adapters/graph/states.js.map +1 -0
  47. package/dist/adapters/graph/types.d.ts +141 -0
  48. package/dist/adapters/graph/types.d.ts.map +1 -0
  49. package/dist/adapters/graph/types.js +3 -0
  50. package/dist/adapters/graph/types.js.map +1 -0
  51. package/dist/adapters/graph/words.d.ts +48 -0
  52. package/dist/adapters/graph/words.d.ts.map +1 -0
  53. package/dist/adapters/graph/words.js +128 -0
  54. package/dist/adapters/graph/words.js.map +1 -0
  55. package/dist/adapters/index.d.ts +18 -0
  56. package/dist/adapters/index.d.ts.map +1 -0
  57. package/dist/adapters/index.js +23 -0
  58. package/dist/adapters/index.js.map +1 -0
  59. package/dist/adapters/journal-columns.d.ts +21 -0
  60. package/dist/adapters/journal-columns.d.ts.map +1 -0
  61. package/dist/adapters/journal-columns.js +179 -0
  62. package/dist/adapters/journal-columns.js.map +1 -0
  63. package/dist/adapters/kpi-tiles.d.ts +47 -0
  64. package/dist/adapters/kpi-tiles.d.ts.map +1 -0
  65. package/dist/adapters/kpi-tiles.js +173 -0
  66. package/dist/adapters/kpi-tiles.js.map +1 -0
  67. package/dist/adapters/lanes.d.ts +31 -0
  68. package/dist/adapters/lanes.d.ts.map +1 -0
  69. package/dist/adapters/lanes.js +75 -0
  70. package/dist/adapters/lanes.js.map +1 -0
  71. package/dist/adapters/model-shares.d.ts +27 -0
  72. package/dist/adapters/model-shares.d.ts.map +1 -0
  73. package/dist/adapters/model-shares.js +52 -0
  74. package/dist/adapters/model-shares.js.map +1 -0
  75. package/dist/adapters/panel-body.d.ts +20 -0
  76. package/dist/adapters/panel-body.d.ts.map +1 -0
  77. package/dist/adapters/panel-body.js +63 -0
  78. package/dist/adapters/panel-body.js.map +1 -0
  79. package/dist/adapters/preflight.d.ts +12 -0
  80. package/dist/adapters/preflight.d.ts.map +1 -0
  81. package/dist/adapters/preflight.js +15 -0
  82. package/dist/adapters/preflight.js.map +1 -0
  83. package/dist/adapters/task-columns.d.ts +19 -0
  84. package/dist/adapters/task-columns.d.ts.map +1 -0
  85. package/dist/adapters/task-columns.js +107 -0
  86. package/dist/adapters/task-columns.js.map +1 -0
  87. package/dist/adapters/transcript/index.d.ts +6 -0
  88. package/dist/adapters/transcript/index.d.ts.map +1 -0
  89. package/dist/adapters/transcript/index.js +8 -0
  90. package/dist/adapters/transcript/index.js.map +1 -0
  91. package/dist/adapters/transcript/model.d.ts +42 -0
  92. package/dist/adapters/transcript/model.d.ts.map +1 -0
  93. package/dist/adapters/transcript/model.js +128 -0
  94. package/dist/adapters/transcript/model.js.map +1 -0
  95. package/dist/adapters/transcript/rounds.d.ts +15 -0
  96. package/dist/adapters/transcript/rounds.d.ts.map +1 -0
  97. package/dist/adapters/transcript/rounds.js +74 -0
  98. package/dist/adapters/transcript/rounds.js.map +1 -0
  99. package/dist/adapters/transcript/sections.d.ts +18 -0
  100. package/dist/adapters/transcript/sections.d.ts.map +1 -0
  101. package/dist/adapters/transcript/sections.js +69 -0
  102. package/dist/adapters/transcript/sections.js.map +1 -0
  103. package/dist/adapters/transcript/web.d.ts +12 -0
  104. package/dist/adapters/transcript/web.d.ts.map +1 -0
  105. package/dist/adapters/transcript/web.js +39 -0
  106. package/dist/adapters/transcript/web.js.map +1 -0
  107. package/dist/adapters/transcript/who.d.ts +15 -0
  108. package/dist/adapters/transcript/who.d.ts.map +1 -0
  109. package/dist/adapters/transcript/who.js +42 -0
  110. package/dist/adapters/transcript/who.js.map +1 -0
  111. package/dist/adapters/trends.d.ts +11 -0
  112. package/dist/adapters/trends.d.ts.map +1 -0
  113. package/dist/adapters/trends.js +316 -0
  114. package/dist/adapters/trends.js.map +1 -0
  115. package/dist/contraagent-ui.js +985 -0
  116. package/dist/controllers/locale.d.ts +25 -0
  117. package/dist/controllers/locale.d.ts.map +1 -0
  118. package/dist/controllers/locale.js +33 -0
  119. package/dist/controllers/locale.js.map +1 -0
  120. package/dist/controllers/shortcuts.d.ts +29 -0
  121. package/dist/controllers/shortcuts.d.ts.map +1 -0
  122. package/dist/controllers/shortcuts.js +51 -0
  123. package/dist/controllers/shortcuts.js.map +1 -0
  124. package/dist/controllers/stream.d.ts +41 -0
  125. package/dist/controllers/stream.d.ts.map +1 -0
  126. package/dist/controllers/stream.js +90 -0
  127. package/dist/controllers/stream.js.map +1 -0
  128. package/dist/controllers/task-detail.d.ts +22 -0
  129. package/dist/controllers/task-detail.d.ts.map +1 -0
  130. package/dist/controllers/task-detail.js +50 -0
  131. package/dist/controllers/task-detail.js.map +1 -0
  132. package/dist/controllers/theme.d.ts +32 -0
  133. package/dist/controllers/theme.d.ts.map +1 -0
  134. package/dist/controllers/theme.js +56 -0
  135. package/dist/controllers/theme.js.map +1 -0
  136. package/dist/core/clock.d.ts +20 -0
  137. package/dist/core/clock.d.ts.map +1 -0
  138. package/dist/core/clock.js +45 -0
  139. package/dist/core/clock.js.map +1 -0
  140. package/dist/core/events.d.ts +107 -0
  141. package/dist/core/events.d.ts.map +1 -0
  142. package/dist/core/events.js +5 -0
  143. package/dist/core/events.js.map +1 -0
  144. package/dist/core/i18n.d.ts +21 -0
  145. package/dist/core/i18n.d.ts.map +1 -0
  146. package/dist/core/i18n.js +71 -0
  147. package/dist/core/i18n.js.map +1 -0
  148. package/dist/core/index.d.ts +5 -0
  149. package/dist/core/index.d.ts.map +1 -0
  150. package/dist/core/index.js +7 -0
  151. package/dist/core/index.js.map +1 -0
  152. package/dist/core/memory.d.ts +51 -0
  153. package/dist/core/memory.d.ts.map +1 -0
  154. package/dist/core/memory.js +174 -0
  155. package/dist/core/memory.js.map +1 -0
  156. package/dist/core/route.d.ts +62 -0
  157. package/dist/core/route.d.ts.map +1 -0
  158. package/dist/core/route.js +143 -0
  159. package/dist/core/route.js.map +1 -0
  160. package/dist/core/router.d.ts +27 -0
  161. package/dist/core/router.d.ts.map +1 -0
  162. package/dist/core/router.js +57 -0
  163. package/dist/core/router.js.map +1 -0
  164. package/dist/core/scroll.d.ts +21 -0
  165. package/dist/core/scroll.d.ts.map +1 -0
  166. package/dist/core/scroll.js +74 -0
  167. package/dist/core/scroll.js.map +1 -0
  168. package/dist/core/view-route.d.ts +62 -0
  169. package/dist/core/view-route.d.ts.map +1 -0
  170. package/dist/core/view-route.js +143 -0
  171. package/dist/core/view-route.js.map +1 -0
  172. package/dist/core/view-router.d.ts +27 -0
  173. package/dist/core/view-router.d.ts.map +1 -0
  174. package/dist/core/view-router.js +57 -0
  175. package/dist/core/view-router.js.map +1 -0
  176. package/dist/define/all.d.ts +13 -0
  177. package/dist/define/all.d.ts.map +1 -0
  178. package/dist/define/all.js +14 -0
  179. package/dist/define/all.js.map +1 -0
  180. package/dist/define/contracts.d.ts +2 -0
  181. package/dist/define/contracts.d.ts.map +1 -0
  182. package/dist/define/contracts.js +3 -0
  183. package/dist/define/contracts.js.map +1 -0
  184. package/dist/define/definitions.d.ts +3 -0
  185. package/dist/define/definitions.d.ts.map +1 -0
  186. package/dist/define/definitions.js +4 -0
  187. package/dist/define/definitions.js.map +1 -0
  188. package/dist/define/journal-table.d.ts +2 -0
  189. package/dist/define/journal-table.d.ts.map +1 -0
  190. package/dist/define/journal-table.js +3 -0
  191. package/dist/define/journal-table.js.map +1 -0
  192. package/dist/define/kpis.d.ts +2 -0
  193. package/dist/define/kpis.d.ts.map +1 -0
  194. package/dist/define/kpis.js +3 -0
  195. package/dist/define/kpis.js.map +1 -0
  196. package/dist/define/monitor.d.ts +2 -0
  197. package/dist/define/monitor.d.ts.map +1 -0
  198. package/dist/define/monitor.js +3 -0
  199. package/dist/define/monitor.js.map +1 -0
  200. package/dist/define/overview.d.ts +2 -0
  201. package/dist/define/overview.d.ts.map +1 -0
  202. package/dist/define/overview.js +3 -0
  203. package/dist/define/overview.js.map +1 -0
  204. package/dist/define/pipeline-graph.d.ts +2 -0
  205. package/dist/define/pipeline-graph.d.ts.map +1 -0
  206. package/dist/define/pipeline-graph.js +3 -0
  207. package/dist/define/pipeline-graph.js.map +1 -0
  208. package/dist/define/procs.d.ts +3 -0
  209. package/dist/define/procs.d.ts.map +1 -0
  210. package/dist/define/procs.js +4 -0
  211. package/dist/define/procs.js.map +1 -0
  212. package/dist/define/task-table.d.ts +2 -0
  213. package/dist/define/task-table.d.ts.map +1 -0
  214. package/dist/define/task-table.js +3 -0
  215. package/dist/define/task-table.js.map +1 -0
  216. package/dist/define/task-view.d.ts +2 -0
  217. package/dist/define/task-view.d.ts.map +1 -0
  218. package/dist/define/task-view.js +3 -0
  219. package/dist/define/task-view.js.map +1 -0
  220. package/dist/define/timeline.d.ts +2 -0
  221. package/dist/define/timeline.d.ts.map +1 -0
  222. package/dist/define/timeline.js +3 -0
  223. package/dist/define/timeline.js.map +1 -0
  224. package/dist/define/transcript.d.ts +2 -0
  225. package/dist/define/transcript.d.ts.map +1 -0
  226. package/dist/define/transcript.js +3 -0
  227. package/dist/define/transcript.js.map +1 -0
  228. package/dist/elements/lists/ca-contracts.d.ts +46 -0
  229. package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
  230. package/dist/elements/lists/ca-contracts.js +199 -0
  231. package/dist/elements/lists/ca-contracts.js.map +1 -0
  232. package/dist/elements/lists/ca-definitions.d.ts +41 -0
  233. package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
  234. package/dist/elements/lists/ca-definitions.js +182 -0
  235. package/dist/elements/lists/ca-definitions.js.map +1 -0
  236. package/dist/elements/lists/ca-journal-table.d.ts +37 -0
  237. package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
  238. package/dist/elements/lists/ca-journal-table.js +170 -0
  239. package/dist/elements/lists/ca-journal-table.js.map +1 -0
  240. package/dist/elements/lists/ca-panel-body.d.ts +29 -0
  241. package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
  242. package/dist/elements/lists/ca-panel-body.js +144 -0
  243. package/dist/elements/lists/ca-panel-body.js.map +1 -0
  244. package/dist/elements/lists/ca-panel-view.d.ts +21 -0
  245. package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
  246. package/dist/elements/lists/ca-panel-view.js +59 -0
  247. package/dist/elements/lists/ca-panel-view.js.map +1 -0
  248. package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
  249. package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
  250. package/dist/elements/lists/ca-proc-tree.js +63 -0
  251. package/dist/elements/lists/ca-proc-tree.js.map +1 -0
  252. package/dist/elements/lists/ca-procs-view.d.ts +27 -0
  253. package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
  254. package/dist/elements/lists/ca-procs-view.js +91 -0
  255. package/dist/elements/lists/ca-procs-view.js.map +1 -0
  256. package/dist/elements/lists/ca-task-table.d.ts +33 -0
  257. package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
  258. package/dist/elements/lists/ca-task-table.js +115 -0
  259. package/dist/elements/lists/ca-task-table.js.map +1 -0
  260. package/dist/elements/lists/filters.d.ts +28 -0
  261. package/dist/elements/lists/filters.d.ts.map +1 -0
  262. package/dist/elements/lists/filters.js +71 -0
  263. package/dist/elements/lists/filters.js.map +1 -0
  264. package/dist/elements/lists/index.d.ts +9 -0
  265. package/dist/elements/lists/index.d.ts.map +1 -0
  266. package/dist/elements/lists/index.js +9 -0
  267. package/dist/elements/lists/index.js.map +1 -0
  268. package/dist/elements/overview/ca-kpis.d.ts +32 -0
  269. package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
  270. package/dist/elements/overview/ca-kpis.js +62 -0
  271. package/dist/elements/overview/ca-kpis.js.map +1 -0
  272. package/dist/elements/overview/ca-model-usage.d.ts +25 -0
  273. package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
  274. package/dist/elements/overview/ca-model-usage.js +118 -0
  275. package/dist/elements/overview/ca-model-usage.js.map +1 -0
  276. package/dist/elements/overview/ca-overview.d.ts +66 -0
  277. package/dist/elements/overview/ca-overview.d.ts.map +1 -0
  278. package/dist/elements/overview/ca-overview.js +456 -0
  279. package/dist/elements/overview/ca-overview.js.map +1 -0
  280. package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
  281. package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
  282. package/dist/elements/overview/ca-pipeline-graph.js +616 -0
  283. package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
  284. package/dist/elements/overview/ca-pipeline-progress.d.ts +17 -0
  285. package/dist/elements/overview/ca-pipeline-progress.d.ts.map +1 -0
  286. package/dist/elements/overview/ca-pipeline-progress.js +119 -0
  287. package/dist/elements/overview/ca-pipeline-progress.js.map +1 -0
  288. package/dist/elements/overview/ca-plan-matrix.d.ts +27 -0
  289. package/dist/elements/overview/ca-plan-matrix.d.ts.map +1 -0
  290. package/dist/elements/overview/ca-plan-matrix.js +113 -0
  291. package/dist/elements/overview/ca-plan-matrix.js.map +1 -0
  292. package/dist/elements/overview/ca-quota.d.ts +42 -0
  293. package/dist/elements/overview/ca-quota.d.ts.map +1 -0
  294. package/dist/elements/overview/ca-quota.js +179 -0
  295. package/dist/elements/overview/ca-quota.js.map +1 -0
  296. package/dist/elements/overview/ca-run-driver.d.ts +33 -0
  297. package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
  298. package/dist/elements/overview/ca-run-driver.js +146 -0
  299. package/dist/elements/overview/ca-run-driver.js.map +1 -0
  300. package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
  301. package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
  302. package/dist/elements/overview/ca-spend-breakdown.js +108 -0
  303. package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
  304. package/dist/elements/overview/ca-timeline.d.ts +28 -0
  305. package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
  306. package/dist/elements/overview/ca-timeline.js +72 -0
  307. package/dist/elements/overview/ca-timeline.js.map +1 -0
  308. package/dist/elements/overview/ca-workers.d.ts +23 -0
  309. package/dist/elements/overview/ca-workers.d.ts.map +1 -0
  310. package/dist/elements/overview/ca-workers.js +86 -0
  311. package/dist/elements/overview/ca-workers.js.map +1 -0
  312. package/dist/elements/overview/flow-types.d.ts +2 -0
  313. package/dist/elements/overview/flow-types.d.ts.map +1 -0
  314. package/dist/elements/overview/flow-types.js +2 -0
  315. package/dist/elements/overview/flow-types.js.map +1 -0
  316. package/dist/elements/overview/graph/arrange.d.ts +16 -0
  317. package/dist/elements/overview/graph/arrange.d.ts.map +1 -0
  318. package/dist/elements/overview/graph/arrange.js +152 -0
  319. package/dist/elements/overview/graph/arrange.js.map +1 -0
  320. package/dist/elements/overview/graph/card.d.ts +64 -0
  321. package/dist/elements/overview/graph/card.d.ts.map +1 -0
  322. package/dist/elements/overview/graph/card.js +160 -0
  323. package/dist/elements/overview/graph/card.js.map +1 -0
  324. package/dist/elements/overview/graph/flow-index.d.ts +52 -0
  325. package/dist/elements/overview/graph/flow-index.d.ts.map +1 -0
  326. package/dist/elements/overview/graph/flow-index.js +121 -0
  327. package/dist/elements/overview/graph/flow-index.js.map +1 -0
  328. package/dist/elements/overview/graph/highlight.d.ts +14 -0
  329. package/dist/elements/overview/graph/highlight.d.ts.map +1 -0
  330. package/dist/elements/overview/graph/highlight.js +33 -0
  331. package/dist/elements/overview/graph/highlight.js.map +1 -0
  332. package/dist/elements/overview/graph/layer.d.ts +32 -0
  333. package/dist/elements/overview/graph/layer.d.ts.map +1 -0
  334. package/dist/elements/overview/graph/layer.js +92 -0
  335. package/dist/elements/overview/graph/layer.js.map +1 -0
  336. package/dist/elements/overview/graph/layout.d.ts +80 -0
  337. package/dist/elements/overview/graph/layout.d.ts.map +1 -0
  338. package/dist/elements/overview/graph/layout.js +261 -0
  339. package/dist/elements/overview/graph/layout.js.map +1 -0
  340. package/dist/elements/overview/graph/marks.d.ts +18 -0
  341. package/dist/elements/overview/graph/marks.d.ts.map +1 -0
  342. package/dist/elements/overview/graph/marks.js +17 -0
  343. package/dist/elements/overview/graph/marks.js.map +1 -0
  344. package/dist/elements/overview/graph/matrix.d.ts +58 -0
  345. package/dist/elements/overview/graph/matrix.d.ts.map +1 -0
  346. package/dist/elements/overview/graph/matrix.js +93 -0
  347. package/dist/elements/overview/graph/matrix.js.map +1 -0
  348. package/dist/elements/overview/graph/nav.d.ts +15 -0
  349. package/dist/elements/overview/graph/nav.d.ts.map +1 -0
  350. package/dist/elements/overview/graph/nav.js +80 -0
  351. package/dist/elements/overview/graph/nav.js.map +1 -0
  352. package/dist/elements/overview/graph/pan-zoom.d.ts +83 -0
  353. package/dist/elements/overview/graph/pan-zoom.d.ts.map +1 -0
  354. package/dist/elements/overview/graph/pan-zoom.js +189 -0
  355. package/dist/elements/overview/graph/pan-zoom.js.map +1 -0
  356. package/dist/elements/overview/graph/paths.d.ts +9 -0
  357. package/dist/elements/overview/graph/paths.d.ts.map +1 -0
  358. package/dist/elements/overview/graph/paths.js +44 -0
  359. package/dist/elements/overview/graph/paths.js.map +1 -0
  360. package/dist/elements/overview/graph/place-card.d.ts +36 -0
  361. package/dist/elements/overview/graph/place-card.d.ts.map +1 -0
  362. package/dist/elements/overview/graph/place-card.js +68 -0
  363. package/dist/elements/overview/graph/place-card.js.map +1 -0
  364. package/dist/elements/overview/graph/project.d.ts +31 -0
  365. package/dist/elements/overview/graph/project.d.ts.map +1 -0
  366. package/dist/elements/overview/graph/project.js +455 -0
  367. package/dist/elements/overview/graph/project.js.map +1 -0
  368. package/dist/elements/overview/graph/selection.d.ts +31 -0
  369. package/dist/elements/overview/graph/selection.d.ts.map +1 -0
  370. package/dist/elements/overview/graph/selection.js +44 -0
  371. package/dist/elements/overview/graph/selection.js.map +1 -0
  372. package/dist/elements/overview/graph/states.d.ts +6 -0
  373. package/dist/elements/overview/graph/states.d.ts.map +1 -0
  374. package/dist/elements/overview/graph/states.js +5 -0
  375. package/dist/elements/overview/graph/states.js.map +1 -0
  376. package/dist/elements/overview/graph/types.d.ts +124 -0
  377. package/dist/elements/overview/graph/types.d.ts.map +1 -0
  378. package/dist/elements/overview/graph/types.js +3 -0
  379. package/dist/elements/overview/graph/types.js.map +1 -0
  380. package/dist/elements/overview/graph/view.d.ts +16 -0
  381. package/dist/elements/overview/graph/view.d.ts.map +1 -0
  382. package/dist/elements/overview/graph/view.js +20 -0
  383. package/dist/elements/overview/graph/view.js.map +1 -0
  384. package/dist/elements/overview/index.d.ts +10 -0
  385. package/dist/elements/overview/index.d.ts.map +1 -0
  386. package/dist/elements/overview/index.js +10 -0
  387. package/dist/elements/overview/index.js.map +1 -0
  388. package/dist/elements/overview/kpis-model.d.ts +31 -0
  389. package/dist/elements/overview/kpis-model.d.ts.map +1 -0
  390. package/dist/elements/overview/kpis-model.js +30 -0
  391. package/dist/elements/overview/kpis-model.js.map +1 -0
  392. package/dist/elements/overview/logic.d.ts +442 -0
  393. package/dist/elements/overview/logic.d.ts.map +1 -0
  394. package/dist/elements/overview/logic.js +1431 -0
  395. package/dist/elements/overview/logic.js.map +1 -0
  396. package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
  397. package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
  398. package/dist/elements/overview/pipeline-graph/actions.js +42 -0
  399. package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
  400. package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
  401. package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
  402. package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
  403. package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
  404. package/dist/elements/overview/pipeline-graph/dag.d.ts +4 -0
  405. package/dist/elements/overview/pipeline-graph/dag.d.ts.map +1 -0
  406. package/dist/elements/overview/pipeline-graph/dag.js +259 -0
  407. package/dist/elements/overview/pipeline-graph/dag.js.map +1 -0
  408. package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
  409. package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
  410. package/dist/elements/overview/pipeline-graph/host.js +2 -0
  411. package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
  412. package/dist/elements/overview/pipeline-graph/icons.d.ts +5 -0
  413. package/dist/elements/overview/pipeline-graph/icons.d.ts.map +1 -0
  414. package/dist/elements/overview/pipeline-graph/icons.js +13 -0
  415. package/dist/elements/overview/pipeline-graph/icons.js.map +1 -0
  416. package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
  417. package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
  418. package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
  419. package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
  420. package/dist/elements/overview/pipeline-graph/legend.d.ts +9 -0
  421. package/dist/elements/overview/pipeline-graph/legend.d.ts.map +1 -0
  422. package/dist/elements/overview/pipeline-graph/legend.js +59 -0
  423. package/dist/elements/overview/pipeline-graph/legend.js.map +1 -0
  424. package/dist/elements/overview/pipeline-graph/matrix.d.ts +4 -0
  425. package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +1 -0
  426. package/dist/elements/overview/pipeline-graph/matrix.js +193 -0
  427. package/dist/elements/overview/pipeline-graph/matrix.js.map +1 -0
  428. package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
  429. package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
  430. package/dist/elements/overview/pipeline-graph/outline.js +111 -0
  431. package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
  432. package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
  433. package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
  434. package/dist/elements/overview/pipeline-graph/strings.js +49 -0
  435. package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
  436. package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
  437. package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
  438. package/dist/elements/overview/pipeline-graph/styles.js +96 -0
  439. package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
  440. package/dist/elements/overview/pipeline-graph/table.d.ts +11 -0
  441. package/dist/elements/overview/pipeline-graph/table.d.ts.map +1 -0
  442. package/dist/elements/overview/pipeline-graph/table.js +74 -0
  443. package/dist/elements/overview/pipeline-graph/table.js.map +1 -0
  444. package/dist/elements/overview/pipeline-graph/tools.d.ts +5 -0
  445. package/dist/elements/overview/pipeline-graph/tools.d.ts.map +1 -0
  446. package/dist/elements/overview/pipeline-graph/tools.js +48 -0
  447. package/dist/elements/overview/pipeline-graph/tools.js.map +1 -0
  448. package/dist/elements/overview/pipeline-graph/words.d.ts +45 -0
  449. package/dist/elements/overview/pipeline-graph/words.d.ts.map +1 -0
  450. package/dist/elements/overview/pipeline-graph/words.js +108 -0
  451. package/dist/elements/overview/pipeline-graph/words.js.map +1 -0
  452. package/dist/elements/overview/place-card.d.ts +36 -0
  453. package/dist/elements/overview/place-card.d.ts.map +1 -0
  454. package/dist/elements/overview/place-card.js +68 -0
  455. package/dist/elements/overview/place-card.js.map +1 -0
  456. package/dist/elements/overview/timeline-model.d.ts +44 -0
  457. package/dist/elements/overview/timeline-model.d.ts.map +1 -0
  458. package/dist/elements/overview/timeline-model.js +53 -0
  459. package/dist/elements/overview/timeline-model.js.map +1 -0
  460. package/dist/elements/shared/ca-count.d.ts +17 -0
  461. package/dist/elements/shared/ca-count.d.ts.map +1 -0
  462. package/dist/elements/shared/ca-count.js +59 -0
  463. package/dist/elements/shared/ca-count.js.map +1 -0
  464. package/dist/elements/shared/ca-definition.d.ts +26 -0
  465. package/dist/elements/shared/ca-definition.d.ts.map +1 -0
  466. package/dist/elements/shared/ca-definition.js +202 -0
  467. package/dist/elements/shared/ca-definition.js.map +1 -0
  468. package/dist/elements/shared/ca-elapsed.d.ts +14 -0
  469. package/dist/elements/shared/ca-elapsed.d.ts.map +1 -0
  470. package/dist/elements/shared/ca-elapsed.js +33 -0
  471. package/dist/elements/shared/ca-elapsed.js.map +1 -0
  472. package/dist/elements/shared/ca-json-tree.d.ts +16 -0
  473. package/dist/elements/shared/ca-json-tree.d.ts.map +1 -0
  474. package/dist/elements/shared/ca-json-tree.js +52 -0
  475. package/dist/elements/shared/ca-json-tree.js.map +1 -0
  476. package/dist/elements/shared/ca-markdown.d.ts +19 -0
  477. package/dist/elements/shared/ca-markdown.d.ts.map +1 -0
  478. package/dist/elements/shared/ca-markdown.js +59 -0
  479. package/dist/elements/shared/ca-markdown.js.map +1 -0
  480. package/dist/elements/shared/contract-parts.d.ts +35 -0
  481. package/dist/elements/shared/contract-parts.d.ts.map +1 -0
  482. package/dist/elements/shared/contract-parts.js +151 -0
  483. package/dist/elements/shared/contract-parts.js.map +1 -0
  484. package/dist/elements/shared/fact-line.d.ts +4 -0
  485. package/dist/elements/shared/fact-line.d.ts.map +1 -0
  486. package/dist/elements/shared/fact-line.js +8 -0
  487. package/dist/elements/shared/fact-line.js.map +1 -0
  488. package/dist/elements/shared/file-card.d.ts +17 -0
  489. package/dist/elements/shared/file-card.d.ts.map +1 -0
  490. package/dist/elements/shared/file-card.js +37 -0
  491. package/dist/elements/shared/file-card.js.map +1 -0
  492. package/dist/elements/shared/prompt-text.d.ts +5 -0
  493. package/dist/elements/shared/prompt-text.d.ts.map +1 -0
  494. package/dist/elements/shared/prompt-text.js +13 -0
  495. package/dist/elements/shared/prompt-text.js.map +1 -0
  496. package/dist/elements/shared/task-chip.d.ts +10 -0
  497. package/dist/elements/shared/task-chip.d.ts.map +1 -0
  498. package/dist/elements/shared/task-chip.js +19 -0
  499. package/dist/elements/shared/task-chip.js.map +1 -0
  500. package/dist/elements/shell/ca-clock.d.ts +13 -0
  501. package/dist/elements/shell/ca-clock.d.ts.map +1 -0
  502. package/dist/elements/shell/ca-clock.js +30 -0
  503. package/dist/elements/shell/ca-clock.js.map +1 -0
  504. package/dist/elements/shell/ca-hosts.d.ts +21 -0
  505. package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
  506. package/dist/elements/shell/ca-hosts.js +97 -0
  507. package/dist/elements/shell/ca-hosts.js.map +1 -0
  508. package/dist/elements/shell/ca-monitor.d.ts +180 -0
  509. package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
  510. package/dist/elements/shell/ca-monitor.js +547 -0
  511. package/dist/elements/shell/ca-monitor.js.map +1 -0
  512. package/dist/elements/shell/ca-run-picker.d.ts +71 -0
  513. package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
  514. package/dist/elements/shell/ca-run-picker.js +313 -0
  515. package/dist/elements/shell/ca-run-picker.js.map +1 -0
  516. package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
  517. package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
  518. package/dist/elements/shell/ca-theme-switch.js +186 -0
  519. package/dist/elements/shell/ca-theme-switch.js.map +1 -0
  520. package/dist/elements/shell/ca-toasts.d.ts +23 -0
  521. package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
  522. package/dist/elements/shell/ca-toasts.js +88 -0
  523. package/dist/elements/shell/ca-toasts.js.map +1 -0
  524. package/dist/elements/shell/header.d.ts +13 -0
  525. package/dist/elements/shell/header.d.ts.map +1 -0
  526. package/dist/elements/shell/header.js +38 -0
  527. package/dist/elements/shell/header.js.map +1 -0
  528. package/dist/elements/shell/styles.d.ts +2 -0
  529. package/dist/elements/shell/styles.d.ts.map +1 -0
  530. package/dist/elements/shell/styles.js +72 -0
  531. package/dist/elements/shell/styles.js.map +1 -0
  532. package/dist/elements/shell/tabs.d.ts +32 -0
  533. package/dist/elements/shell/tabs.d.ts.map +1 -0
  534. package/dist/elements/shell/tabs.js +125 -0
  535. package/dist/elements/shell/tabs.js.map +1 -0
  536. package/dist/elements/shell/views.d.ts +27 -0
  537. package/dist/elements/shell/views.d.ts.map +1 -0
  538. package/dist/elements/shell/views.js +55 -0
  539. package/dist/elements/shell/views.js.map +1 -0
  540. package/dist/elements/task/ca-task-view.d.ts +55 -0
  541. package/dist/elements/task/ca-task-view.d.ts.map +1 -0
  542. package/dist/elements/task/ca-task-view.js +199 -0
  543. package/dist/elements/task/ca-task-view.js.map +1 -0
  544. package/dist/elements/task/ca-transcript.d.ts +74 -0
  545. package/dist/elements/task/ca-transcript.d.ts.map +1 -0
  546. package/dist/elements/task/ca-transcript.js +241 -0
  547. package/dist/elements/task/ca-transcript.js.map +1 -0
  548. package/dist/elements/task/context.d.ts +57 -0
  549. package/dist/elements/task/context.d.ts.map +1 -0
  550. package/dist/elements/task/context.js +61 -0
  551. package/dist/elements/task/context.js.map +1 -0
  552. package/dist/elements/task/header.d.ts +9 -0
  553. package/dist/elements/task/header.d.ts.map +1 -0
  554. package/dist/elements/task/header.js +287 -0
  555. package/dist/elements/task/header.js.map +1 -0
  556. package/dist/elements/task/index.d.ts +3 -0
  557. package/dist/elements/task/index.d.ts.map +1 -0
  558. package/dist/elements/task/index.js +3 -0
  559. package/dist/elements/task/index.js.map +1 -0
  560. package/dist/elements/task/inputs.d.ts +28 -0
  561. package/dist/elements/task/inputs.d.ts.map +1 -0
  562. package/dist/elements/task/inputs.js +27 -0
  563. package/dist/elements/task/inputs.js.map +1 -0
  564. package/dist/elements/task/panes/definition.d.ts +5 -0
  565. package/dist/elements/task/panes/definition.d.ts.map +1 -0
  566. package/dist/elements/task/panes/definition.js +5 -0
  567. package/dist/elements/task/panes/definition.js.map +1 -0
  568. package/dist/elements/task/panes/io.d.ts +8 -0
  569. package/dist/elements/task/panes/io.d.ts.map +1 -0
  570. package/dist/elements/task/panes/io.js +184 -0
  571. package/dist/elements/task/panes/io.js.map +1 -0
  572. package/dist/elements/task/panes/transcript.d.ts +5 -0
  573. package/dist/elements/task/panes/transcript.d.ts.map +1 -0
  574. package/dist/elements/task/panes/transcript.js +29 -0
  575. package/dist/elements/task/panes/transcript.js.map +1 -0
  576. package/dist/elements/task/rounds.d.ts +14 -0
  577. package/dist/elements/task/rounds.d.ts.map +1 -0
  578. package/dist/elements/task/rounds.js +59 -0
  579. package/dist/elements/task/rounds.js.map +1 -0
  580. package/dist/elements/task/styles.d.ts +2 -0
  581. package/dist/elements/task/styles.d.ts.map +1 -0
  582. package/dist/elements/task/styles.js +66 -0
  583. package/dist/elements/task/styles.js.map +1 -0
  584. package/dist/elements/task/transcript-model.d.ts +106 -0
  585. package/dist/elements/task/transcript-model.d.ts.map +1 -0
  586. package/dist/elements/task/transcript-model.js +280 -0
  587. package/dist/elements/task/transcript-model.js.map +1 -0
  588. package/dist/elements/task/who.d.ts +5 -0
  589. package/dist/elements/task/who.d.ts.map +1 -0
  590. package/dist/elements/task/who.js +30 -0
  591. package/dist/elements/task/who.js.map +1 -0
  592. package/dist/elements/trends/ca-trends.d.ts +55 -0
  593. package/dist/elements/trends/ca-trends.d.ts.map +1 -0
  594. package/dist/elements/trends/ca-trends.js +213 -0
  595. package/dist/elements/trends/ca-trends.js.map +1 -0
  596. package/dist/events.d.ts +107 -0
  597. package/dist/events.d.ts.map +1 -0
  598. package/dist/events.js +5 -0
  599. package/dist/events.js.map +1 -0
  600. package/dist/i18n.d.ts +16 -0
  601. package/dist/i18n.d.ts.map +1 -0
  602. package/dist/i18n.js +48 -0
  603. package/dist/i18n.js.map +1 -0
  604. package/dist/index.d.ts +14 -0
  605. package/dist/index.d.ts.map +1 -0
  606. package/dist/index.js +22 -0
  607. package/dist/index.js.map +1 -0
  608. package/dist/lib/clock.d.ts +20 -0
  609. package/dist/lib/clock.d.ts.map +1 -0
  610. package/dist/lib/clock.js +45 -0
  611. package/dist/lib/clock.js.map +1 -0
  612. package/dist/lib/format.d.ts +35 -0
  613. package/dist/lib/format.d.ts.map +1 -0
  614. package/dist/lib/format.js +117 -0
  615. package/dist/lib/format.js.map +1 -0
  616. package/dist/lib/highlight.d.ts +5 -0
  617. package/dist/lib/highlight.d.ts.map +1 -0
  618. package/dist/lib/highlight.js +86 -0
  619. package/dist/lib/highlight.js.map +1 -0
  620. package/dist/lib/labels.d.ts +103 -0
  621. package/dist/lib/labels.d.ts.map +1 -0
  622. package/dist/lib/labels.js +249 -0
  623. package/dist/lib/labels.js.map +1 -0
  624. package/dist/lib/markdown.d.ts +13 -0
  625. package/dist/lib/markdown.d.ts.map +1 -0
  626. package/dist/lib/markdown.js +118 -0
  627. package/dist/lib/markdown.js.map +1 -0
  628. package/dist/lib/memory.d.ts +27 -0
  629. package/dist/lib/memory.d.ts.map +1 -0
  630. package/dist/lib/memory.js +117 -0
  631. package/dist/lib/memory.js.map +1 -0
  632. package/dist/lib/quota-format.d.ts +28 -0
  633. package/dist/lib/quota-format.d.ts.map +1 -0
  634. package/dist/lib/quota-format.js +67 -0
  635. package/dist/lib/quota-format.js.map +1 -0
  636. package/dist/lib/scroll.d.ts +16 -0
  637. package/dist/lib/scroll.d.ts.map +1 -0
  638. package/dist/lib/scroll.js +70 -0
  639. package/dist/lib/scroll.js.map +1 -0
  640. package/dist/lib/status.d.ts +25 -0
  641. package/dist/lib/status.d.ts.map +1 -0
  642. package/dist/lib/status.js +40 -0
  643. package/dist/lib/status.js.map +1 -0
  644. package/dist/lib/tone.d.ts +29 -0
  645. package/dist/lib/tone.d.ts.map +1 -0
  646. package/dist/lib/tone.js +97 -0
  647. package/dist/lib/tone.js.map +1 -0
  648. package/dist/lib/trends.d.ts +15 -0
  649. package/dist/lib/trends.d.ts.map +1 -0
  650. package/dist/lib/trends.js +36 -0
  651. package/dist/lib/trends.js.map +1 -0
  652. package/dist/locales/codes.d.ts +14 -0
  653. package/dist/locales/codes.d.ts.map +1 -0
  654. package/dist/locales/codes.js +21 -0
  655. package/dist/locales/codes.js.map +1 -0
  656. package/dist/locales/ja.d.ts +761 -0
  657. package/dist/locales/ja.d.ts.map +1 -0
  658. package/dist/locales/ja.js +767 -0
  659. package/dist/locales/ja.js.map +1 -0
  660. package/dist/route.d.ts +46 -0
  661. package/dist/route.d.ts.map +1 -0
  662. package/dist/route.js +102 -0
  663. package/dist/route.js.map +1 -0
  664. package/dist/router.d.ts +23 -0
  665. package/dist/router.d.ts.map +1 -0
  666. package/dist/router.js +55 -0
  667. package/dist/router.js.map +1 -0
  668. package/dist/styles/base.d.ts +11 -0
  669. package/dist/styles/base.d.ts.map +1 -0
  670. package/dist/styles/base.js +241 -0
  671. package/dist/styles/base.js.map +1 -0
  672. package/dist/styles/chips.d.ts +2 -0
  673. package/dist/styles/chips.d.ts.map +1 -0
  674. package/dist/styles/chips.js +18 -0
  675. package/dist/styles/chips.js.map +1 -0
  676. package/dist/styles/executor-icon.d.ts +3 -0
  677. package/dist/styles/executor-icon.d.ts.map +1 -0
  678. package/dist/styles/executor-icon.js +9 -0
  679. package/dist/styles/executor-icon.js.map +1 -0
  680. package/dist/styles/facts.d.ts +2 -0
  681. package/dist/styles/facts.d.ts.map +1 -0
  682. package/dist/styles/facts.js +7 -0
  683. package/dist/styles/facts.js.map +1 -0
  684. package/dist/styles/index.d.ts +17 -0
  685. package/dist/styles/index.d.ts.map +1 -0
  686. package/dist/styles/index.js +16 -0
  687. package/dist/styles/index.js.map +1 -0
  688. package/dist/styles/layout.d.ts +2 -0
  689. package/dist/styles/layout.d.ts.map +1 -0
  690. package/dist/styles/layout.js +30 -0
  691. package/dist/styles/layout.js.map +1 -0
  692. package/dist/styles/legend.d.ts +2 -0
  693. package/dist/styles/legend.d.ts.map +1 -0
  694. package/dist/styles/legend.js +8 -0
  695. package/dist/styles/legend.js.map +1 -0
  696. package/dist/styles/meter.d.ts +3 -0
  697. package/dist/styles/meter.d.ts.map +1 -0
  698. package/dist/styles/meter.js +9 -0
  699. package/dist/styles/meter.js.map +1 -0
  700. package/dist/styles/motion.d.ts +2 -0
  701. package/dist/styles/motion.d.ts.map +1 -0
  702. package/dist/styles/motion.js +27 -0
  703. package/dist/styles/motion.js.map +1 -0
  704. package/dist/styles/prose.d.ts +3 -0
  705. package/dist/styles/prose.d.ts.map +1 -0
  706. package/dist/styles/prose.js +59 -0
  707. package/dist/styles/prose.js.map +1 -0
  708. package/dist/styles/reset.d.ts +2 -0
  709. package/dist/styles/reset.d.ts.map +1 -0
  710. package/dist/styles/reset.js +13 -0
  711. package/dist/styles/reset.js.map +1 -0
  712. package/dist/styles/status.d.ts +2 -0
  713. package/dist/styles/status.d.ts.map +1 -0
  714. package/dist/styles/status.js +52 -0
  715. package/dist/styles/status.js.map +1 -0
  716. package/dist/styles/text.d.ts +2 -0
  717. package/dist/styles/text.d.ts.map +1 -0
  718. package/dist/styles/text.js +21 -0
  719. package/dist/styles/text.js.map +1 -0
  720. package/dist/styles/theme-sheet.d.ts +12 -0
  721. package/dist/styles/theme-sheet.d.ts.map +1 -0
  722. package/dist/styles/theme-sheet.js +24 -0
  723. package/dist/styles/theme-sheet.js.map +1 -0
  724. package/dist/styles/themes.d.ts +75 -0
  725. package/dist/styles/themes.d.ts.map +1 -0
  726. package/dist/styles/themes.js +452 -0
  727. package/dist/styles/themes.js.map +1 -0
  728. package/dist/styles/tokens.d.ts +8 -0
  729. package/dist/styles/tokens.d.ts.map +1 -0
  730. package/dist/styles/tokens.js +32 -0
  731. package/dist/styles/tokens.js.map +1 -0
  732. package/dist/themes/boot.d.ts +7 -0
  733. package/dist/themes/boot.d.ts.map +1 -0
  734. package/dist/themes/boot.js +14 -0
  735. package/dist/themes/boot.js.map +1 -0
  736. package/dist/themes/choice.d.ts +16 -0
  737. package/dist/themes/choice.d.ts.map +1 -0
  738. package/dist/themes/choice.js +45 -0
  739. package/dist/themes/choice.js.map +1 -0
  740. package/dist/themes/data.d.ts +42 -0
  741. package/dist/themes/data.d.ts.map +1 -0
  742. package/dist/themes/data.js +356 -0
  743. package/dist/themes/data.js.map +1 -0
  744. package/dist/themes/index.d.ts +5 -0
  745. package/dist/themes/index.d.ts.map +1 -0
  746. package/dist/themes/index.js +8 -0
  747. package/dist/themes/index.js.map +1 -0
  748. package/dist/themes/sheet.d.ts +12 -0
  749. package/dist/themes/sheet.d.ts.map +1 -0
  750. package/dist/themes/sheet.js +24 -0
  751. package/dist/themes/sheet.js.map +1 -0
  752. package/dist/themes/tokens-list.d.ts +15 -0
  753. package/dist/themes/tokens-list.d.ts.map +1 -0
  754. package/dist/themes/tokens-list.js +62 -0
  755. package/dist/themes/tokens-list.js.map +1 -0
  756. package/dist/words/api-error.d.ts +4 -0
  757. package/dist/words/api-error.d.ts.map +1 -0
  758. package/dist/words/api-error.js +13 -0
  759. package/dist/words/api-error.js.map +1 -0
  760. package/dist/words/attempts.d.ts +17 -0
  761. package/dist/words/attempts.d.ts.map +1 -0
  762. package/dist/words/attempts.js +26 -0
  763. package/dist/words/attempts.js.map +1 -0
  764. package/dist/words/causes.d.ts +33 -0
  765. package/dist/words/causes.d.ts.map +1 -0
  766. package/dist/words/causes.js +58 -0
  767. package/dist/words/causes.js.map +1 -0
  768. package/dist/words/changes.d.ts +9 -0
  769. package/dist/words/changes.d.ts.map +1 -0
  770. package/dist/words/changes.js +21 -0
  771. package/dist/words/changes.js.map +1 -0
  772. package/dist/words/claims.d.ts +9 -0
  773. package/dist/words/claims.d.ts.map +1 -0
  774. package/dist/words/claims.js +12 -0
  775. package/dist/words/claims.js.map +1 -0
  776. package/dist/words/context.d.ts +18 -0
  777. package/dist/words/context.d.ts.map +1 -0
  778. package/dist/words/context.js +39 -0
  779. package/dist/words/context.js.map +1 -0
  780. package/dist/words/contract.d.ts +25 -0
  781. package/dist/words/contract.d.ts.map +1 -0
  782. package/dist/words/contract.js +52 -0
  783. package/dist/words/contract.js.map +1 -0
  784. package/dist/words/credential.d.ts +5 -0
  785. package/dist/words/credential.d.ts.map +1 -0
  786. package/dist/words/credential.js +7 -0
  787. package/dist/words/credential.js.map +1 -0
  788. package/dist/words/executor.d.ts +12 -0
  789. package/dist/words/executor.d.ts.map +1 -0
  790. package/dist/words/executor.js +20 -0
  791. package/dist/words/executor.js.map +1 -0
  792. package/dist/words/export.d.ts +8 -0
  793. package/dist/words/export.d.ts.map +1 -0
  794. package/dist/words/export.js +17 -0
  795. package/dist/words/export.js.map +1 -0
  796. package/dist/words/format.d.ts +36 -0
  797. package/dist/words/format.d.ts.map +1 -0
  798. package/dist/words/format.js +109 -0
  799. package/dist/words/format.js.map +1 -0
  800. package/dist/words/hops.d.ts +12 -0
  801. package/dist/words/hops.d.ts.map +1 -0
  802. package/dist/words/hops.js +27 -0
  803. package/dist/words/hops.js.map +1 -0
  804. package/dist/words/hosts.d.ts +18 -0
  805. package/dist/words/hosts.d.ts.map +1 -0
  806. package/dist/words/hosts.js +22 -0
  807. package/dist/words/hosts.js.map +1 -0
  808. package/dist/words/index.d.ts +27 -0
  809. package/dist/words/index.d.ts.map +1 -0
  810. package/dist/words/index.js +31 -0
  811. package/dist/words/index.js.map +1 -0
  812. package/dist/words/models.d.ts +10 -0
  813. package/dist/words/models.d.ts.map +1 -0
  814. package/dist/words/models.js +45 -0
  815. package/dist/words/models.js.map +1 -0
  816. package/dist/words/outcome.d.ts +14 -0
  817. package/dist/words/outcome.d.ts.map +1 -0
  818. package/dist/words/outcome.js +58 -0
  819. package/dist/words/outcome.js.map +1 -0
  820. package/dist/words/panels.d.ts +11 -0
  821. package/dist/words/panels.d.ts.map +1 -0
  822. package/dist/words/panels.js +50 -0
  823. package/dist/words/panels.js.map +1 -0
  824. package/dist/words/passes.d.ts +11 -0
  825. package/dist/words/passes.d.ts.map +1 -0
  826. package/dist/words/passes.js +13 -0
  827. package/dist/words/passes.js.map +1 -0
  828. package/dist/words/preflight.d.ts +28 -0
  829. package/dist/words/preflight.d.ts.map +1 -0
  830. package/dist/words/preflight.js +30 -0
  831. package/dist/words/preflight.js.map +1 -0
  832. package/dist/words/priority.d.ts +5 -0
  833. package/dist/words/priority.d.ts.map +1 -0
  834. package/dist/words/priority.js +7 -0
  835. package/dist/words/priority.js.map +1 -0
  836. package/dist/words/prompt.d.ts +10 -0
  837. package/dist/words/prompt.d.ts.map +1 -0
  838. package/dist/words/prompt.js +17 -0
  839. package/dist/words/prompt.js.map +1 -0
  840. package/dist/words/quota.d.ts +35 -0
  841. package/dist/words/quota.d.ts.map +1 -0
  842. package/dist/words/quota.js +102 -0
  843. package/dist/words/quota.js.map +1 -0
  844. package/dist/words/rests.d.ts +26 -0
  845. package/dist/words/rests.d.ts.map +1 -0
  846. package/dist/words/rests.js +77 -0
  847. package/dist/words/rests.js.map +1 -0
  848. package/dist/words/rounds.d.ts +14 -0
  849. package/dist/words/rounds.d.ts.map +1 -0
  850. package/dist/words/rounds.js +60 -0
  851. package/dist/words/rounds.js.map +1 -0
  852. package/dist/words/row-extras.d.ts +7 -0
  853. package/dist/words/row-extras.d.ts.map +1 -0
  854. package/dist/words/row-extras.js +26 -0
  855. package/dist/words/row-extras.js.map +1 -0
  856. package/dist/words/run-line.d.ts +40 -0
  857. package/dist/words/run-line.d.ts.map +1 -0
  858. package/dist/words/run-line.js +66 -0
  859. package/dist/words/run-line.js.map +1 -0
  860. package/dist/words/stop.d.ts +6 -0
  861. package/dist/words/stop.d.ts.map +1 -0
  862. package/dist/words/stop.js +69 -0
  863. package/dist/words/stop.js.map +1 -0
  864. package/dist/words/table.d.ts +4 -0
  865. package/dist/words/table.d.ts.map +1 -0
  866. package/dist/words/table.js +8 -0
  867. package/dist/words/table.js.map +1 -0
  868. package/dist/words/task-definition.d.ts +23 -0
  869. package/dist/words/task-definition.d.ts.map +1 -0
  870. package/dist/words/task-definition.js +27 -0
  871. package/dist/words/task-definition.js.map +1 -0
  872. package/dist/words/time-box.d.ts +8 -0
  873. package/dist/words/time-box.d.ts.map +1 -0
  874. package/dist/words/time-box.js +12 -0
  875. package/dist/words/time-box.js.map +1 -0
  876. package/dist/words/trends.d.ts +86 -0
  877. package/dist/words/trends.d.ts.map +1 -0
  878. package/dist/words/trends.js +104 -0
  879. package/dist/words/trends.js.map +1 -0
  880. package/dist/words/units.d.ts +9 -0
  881. package/dist/words/units.d.ts.map +1 -0
  882. package/dist/words/units.js +12 -0
  883. package/dist/words/units.js.map +1 -0
  884. package/docs/embed.md +118 -0
  885. package/docs/events.md +38 -0
  886. package/docs/examples/embed.html +31 -0
  887. package/docs/examples/journal.ts +32 -0
  888. package/docs/examples/live-transcript.ts +22 -0
  889. package/docs/examples/vite/index.html +30 -0
  890. package/docs/examples/vite/main.ts +23 -0
  891. package/docs/languages.md +48 -0
  892. package/docs/live-data.md +17 -0
  893. package/docs/theming.md +21 -0
  894. package/docs/tsconfig.json +14 -0
  895. package/package.json +131 -4
  896. package/src/adapters/check-rows.ts +78 -0
  897. package/src/adapters/filters.ts +76 -0
  898. package/src/adapters/graph/compound.ts +359 -0
  899. package/src/adapters/graph/flow-index.ts +154 -0
  900. package/src/adapters/graph/highlight.ts +40 -0
  901. package/src/adapters/graph/input.ts +236 -0
  902. package/src/adapters/graph/layer.ts +92 -0
  903. package/src/adapters/graph/matrix.ts +133 -0
  904. package/src/adapters/graph/plans.fixture.ts +194 -0
  905. package/src/adapters/graph/project.ts +358 -0
  906. package/src/adapters/graph/selection.ts +54 -0
  907. package/src/adapters/graph/states.ts +10 -0
  908. package/src/adapters/graph/types.ts +148 -0
  909. package/src/adapters/graph/words.ts +146 -0
  910. package/src/adapters/index.ts +22 -0
  911. package/src/adapters/journal-columns.ts +200 -0
  912. package/src/adapters/kpi-tiles.ts +211 -0
  913. package/src/adapters/lanes.ts +98 -0
  914. package/src/adapters/model-shares.ts +62 -0
  915. package/src/adapters/panel-body.ts +74 -0
  916. package/src/adapters/preflight.ts +27 -0
  917. package/src/adapters/task-columns.ts +120 -0
  918. package/src/adapters/transcript/index.ts +14 -0
  919. package/src/adapters/transcript/model.ts +156 -0
  920. package/src/adapters/transcript/rounds.ts +86 -0
  921. package/src/adapters/transcript/sections.ts +82 -0
  922. package/src/adapters/transcript/web.ts +40 -0
  923. package/src/adapters/transcript/who.ts +53 -0
  924. package/src/adapters/trends.ts +337 -0
  925. package/src/controllers/locale.ts +47 -0
  926. package/src/controllers/shortcuts.ts +69 -0
  927. package/src/controllers/stream.ts +103 -0
  928. package/src/controllers/task-detail.ts +54 -0
  929. package/src/controllers/theme.ts +73 -0
  930. package/src/core/events.ts +120 -0
  931. package/src/core/i18n.ts +76 -0
  932. package/src/core/index.ts +6 -0
  933. package/src/core/memory.ts +177 -0
  934. package/src/core/scroll.ts +73 -0
  935. package/src/core/view-route.ts +177 -0
  936. package/src/core/view-router.ts +66 -0
  937. package/src/define/all.ts +13 -0
  938. package/src/define/contracts.ts +2 -0
  939. package/src/define/definitions.ts +3 -0
  940. package/src/define/journal-table.ts +2 -0
  941. package/src/define/kpis.ts +2 -0
  942. package/src/define/monitor.ts +2 -0
  943. package/src/define/overview.ts +2 -0
  944. package/src/define/pipeline-graph.ts +2 -0
  945. package/src/define/procs.ts +3 -0
  946. package/src/define/task-table.ts +2 -0
  947. package/src/define/task-view.ts +2 -0
  948. package/src/define/timeline.ts +2 -0
  949. package/src/define/transcript.ts +2 -0
  950. package/src/elements/lists/ca-contracts.ts +204 -0
  951. package/src/elements/lists/ca-definitions.ts +170 -0
  952. package/src/elements/lists/ca-journal-table.ts +141 -0
  953. package/src/elements/lists/ca-panel-body.ts +139 -0
  954. package/src/elements/lists/ca-panel-view.ts +50 -0
  955. package/src/elements/lists/ca-proc-tree.ts +57 -0
  956. package/src/elements/lists/ca-procs-view.ts +89 -0
  957. package/src/elements/lists/ca-task-table.ts +94 -0
  958. package/src/elements/lists/index.ts +8 -0
  959. package/src/elements/overview/ca-kpis.ts +51 -0
  960. package/src/elements/overview/ca-model-usage.ts +113 -0
  961. package/src/elements/overview/ca-overview.ts +492 -0
  962. package/src/elements/overview/ca-pipeline-graph.ts +617 -0
  963. package/src/elements/overview/ca-quota.ts +164 -0
  964. package/src/elements/overview/ca-run-driver.ts +140 -0
  965. package/src/elements/overview/ca-spend-breakdown.ts +107 -0
  966. package/src/elements/overview/ca-timeline.ts +57 -0
  967. package/src/elements/overview/ca-workers.ts +82 -0
  968. package/src/elements/overview/index.ts +9 -0
  969. package/src/elements/overview/pipeline-graph/actions.ts +45 -0
  970. package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
  971. package/src/elements/overview/pipeline-graph/host.ts +26 -0
  972. package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
  973. package/src/elements/overview/pipeline-graph/outline.ts +150 -0
  974. package/src/elements/overview/pipeline-graph/strings.ts +53 -0
  975. package/src/elements/overview/pipeline-graph/styles.ts +97 -0
  976. package/src/elements/shared/ca-definition.ts +206 -0
  977. package/src/elements/shared/contract-parts.ts +158 -0
  978. package/src/elements/shared/file-card.ts +49 -0
  979. package/src/elements/shared/prompt-text.ts +13 -0
  980. package/src/elements/shared/task-chip.ts +18 -0
  981. package/src/elements/shell/ca-clock.ts +27 -0
  982. package/src/elements/shell/ca-hosts.ts +93 -0
  983. package/src/elements/shell/ca-monitor.ts +526 -0
  984. package/src/elements/shell/ca-run-picker.ts +284 -0
  985. package/src/elements/shell/ca-theme-switch.ts +170 -0
  986. package/src/elements/shell/ca-toasts.ts +100 -0
  987. package/src/elements/shell/header.ts +45 -0
  988. package/src/elements/shell/styles.ts +72 -0
  989. package/src/elements/shell/tabs.ts +143 -0
  990. package/src/elements/shell/views.ts +67 -0
  991. package/src/elements/task/ca-task-view.ts +157 -0
  992. package/src/elements/task/ca-transcript.ts +214 -0
  993. package/src/elements/task/context.ts +105 -0
  994. package/src/elements/task/header.ts +292 -0
  995. package/src/elements/task/index.ts +2 -0
  996. package/src/elements/task/inputs.ts +46 -0
  997. package/src/elements/task/panes/definition.ts +7 -0
  998. package/src/elements/task/panes/io.ts +190 -0
  999. package/src/elements/task/panes/transcript.ts +29 -0
  1000. package/src/elements/task/styles.ts +66 -0
  1001. package/src/elements/trends/ca-trends.ts +204 -0
  1002. package/src/index.ts +23 -0
  1003. package/src/lib/tone.ts +109 -0
  1004. package/src/lib/trends.ts +44 -0
  1005. package/src/locales/codes.ts +23 -0
  1006. package/src/locales/ja.ts +771 -0
  1007. package/src/words/api-error.ts +17 -0
  1008. package/src/words/attempts.ts +28 -0
  1009. package/src/words/causes.ts +67 -0
  1010. package/src/words/changes.ts +27 -0
  1011. package/src/words/claims.ts +16 -0
  1012. package/src/words/context.ts +47 -0
  1013. package/src/words/contract.ts +63 -0
  1014. package/src/words/credential.ts +8 -0
  1015. package/src/words/executor.ts +22 -0
  1016. package/src/words/export.ts +22 -0
  1017. package/src/words/format.ts +107 -0
  1018. package/src/words/hops.ts +30 -0
  1019. package/src/words/hosts.ts +37 -0
  1020. package/src/words/index.ts +30 -0
  1021. package/src/words/models.ts +50 -0
  1022. package/src/words/outcome.ts +61 -0
  1023. package/src/words/panels.ts +53 -0
  1024. package/src/words/passes.ts +18 -0
  1025. package/src/words/preflight.ts +53 -0
  1026. package/src/words/priority.ts +8 -0
  1027. package/src/words/prompt.ts +20 -0
  1028. package/src/words/quota.ts +108 -0
  1029. package/src/words/rests.ts +96 -0
  1030. package/src/words/rounds.ts +56 -0
  1031. package/src/words/row-extras.ts +24 -0
  1032. package/src/words/run-line.ts +77 -0
  1033. package/src/words/stop.ts +65 -0
  1034. package/src/words/table.ts +10 -0
  1035. package/src/words/task-definition.ts +37 -0
  1036. package/src/words/time-box.ts +21 -0
  1037. package/src/words/trends.ts +118 -0
@@ -0,0 +1,617 @@
1
+ import type { JournalRow, Plan } from '@contraagent/api';
2
+ import '@contraagent/elements/graph/define';
3
+ import { NARROW, arrange, extentOf, type CaeLayeredGraph, type GraphInput, type GraphOrder } from '@contraagent/elements/graph';
4
+ import type { MarkMatrixInput } from '@contraagent/elements/matrix';
5
+ import type { StateStyles } from '@contraagent/elements/primitives';
6
+ import { localized, msg } from '@lit/localize';
7
+ import { LitElement, html, nothing, type PropertyValueMap, type PropertyValues } from 'lit';
8
+ import { customElement } from 'lit/decorators.js';
9
+ import { compound, FLOW_BOX, IN_SEP, placeKey, placeStats, type PlaceStats } from '../../adapters/graph/compound.js';
10
+ import { indexOf, startsWith } from '../../adapters/graph/flow-index.js';
11
+ import { related, taskLinks, type TaskLinks } from '../../adapters/graph/highlight.js';
12
+ import { graphInput, matrixFromPlan } from '../../adapters/graph/input.js';
13
+ import { autoLayer, parentLayer, resolveLayer, splitLayer } from '../../adapters/graph/layer.js';
14
+ import type { MatrixSort, PassMatrix } from '../../adapters/graph/matrix.js';
15
+ import { arranged, project, type Projection } from '../../adapters/graph/project.js';
16
+ import { markSel, parseSelection } from '../../adapters/graph/selection.js';
17
+ import type { LayerGraph, LayerMark } from '../../adapters/graph/types.js';
18
+ import { taskStateStyles } from '../../adapters/graph/words.js';
19
+ import { emit } from '../../core/events.js';
20
+ import { getLocale } from '../../core/i18n.js';
21
+ import { flushMemory, RememberedSet } from '../../core/memory.js';
22
+ import { executorIcon } from '../../words/executor.js';
23
+ import { go, leavePasses, open, primary, select, tasksOf } from './pipeline-graph/actions.js';
24
+ import { crumbs, missingLine, openControls, type OpenMode } from './pipeline-graph/crumbs.js';
25
+ import type { PipelineHost } from './pipeline-graph/host.js';
26
+ import { inspector } from './pipeline-graph/inspector.js';
27
+ import { outline, outlineTree, type OutlineHost, type OutlineItem } from './pipeline-graph/outline.js';
28
+ import { graphStrings, matrixStrings } from './pipeline-graph/strings.js';
29
+ import { graphStyles, iconStyles } from './pipeline-graph/styles.js';
30
+
31
+ /** The changes `willUpdate` reads: the properties, and the private `down`, `sort`, `rev` and `budget`. */
32
+ type Changed = PropertyValues<CaPipelineGraph> & PropertyValueMap<{ down: boolean; sort: MatrixSort; rev: number; budget: number }>;
33
+
34
+ /** The most nodes the drawing holds before it stops opening functions on its own, for a frame `w` px wide. */
35
+ export const budgetFor = (w: number): number => Math.max(14, Math.min(60, Math.round(w / 34)));
36
+
37
+ /** The most layers the drawing spans before it closes again what it opened on its own, for a frame `w` px wide: about one screen. */
38
+ export const spanFor = (w: number): number => Math.max(8, Math.min(16, Math.round(w / 105)));
39
+
40
+ /**
41
+ * A drawing `span` layers long, left to right in a frame `w` px wide, would be scaled below
42
+ * this to fit: it is drawn top to bottom instead, where the frame grows with it. About
43
+ * a node and the gap after it, per layer.
44
+ */
45
+ const LEGIBLE = 0.6;
46
+ const LAYER_PX = 180;
47
+ export const tooWide = (span: number, w: number): boolean => w > 0 && w / (span * LAYER_PX) < LEGIBLE;
48
+
49
+ /** From this width the outline is a column beside the graph (about this wide, with its gap); below it, a part above it that opens. */
50
+ const OUTLINE_WIDE = 1500;
51
+ const OUTLINE_COLUMN = 300;
52
+
53
+ /** The entries of the opened set that are a mode, not a place. */
54
+ const MODE_ALL = '*all';
55
+ const MODE_NONE = '*none';
56
+
57
+ const EMPTY_LAYER: LayerGraph = {
58
+ ...arrange({ nodes: [], clusters: [], edges: [], stubs: [] }),
59
+ path: [],
60
+ nodes: [],
61
+ boxes: [],
62
+ fns: [],
63
+ edges: [],
64
+ stubs: [],
65
+ units: [],
66
+ };
67
+
68
+ /**
69
+ * The run as a graph of its flow, one layer at a time (`<cae-layered-graph>` draws
70
+ * it). A layer shows the kinds of the tasks its function created (a kind node each,
71
+ * joined to the ones it waits for) and the functions it called (a function node each,
72
+ * holding their tasks); nodes created in one loop are drawn in a loop box, with its
73
+ * last pass ("up to 3 passes") and, when its units ran different numbers of passes,
74
+ * how many ran each ("1 pass: 4 | 2 passes: 1"); a nested loop's box is inside it, and
75
+ * a dotted edge inside each box, from its last layer back to its first, is the return
76
+ * to its next pass. A kind node names who runs its tasks (✦ and an accent: an agent
77
+ * task; ⚙: a Python task); a function node and a loop box carry the mark of an inner
78
+ * view (their layer, their passes). Inside a node, one mark per unit, at the same place
79
+ * in every node, so a unit can be followed across the layer: a task in a kind node, a
80
+ * flow call in a function node; in a loop box, the unit's latest pass, with the number
81
+ * of passes it ran when more than 1. A mark of several tasks shows the most severe
82
+ * state among them (failed, running, not started, waiting, skipped, done); a flow
83
+ * call's mark counts every task of it and of the flow calls it started, and its own
84
+ * error (raised or closed) as failed. A node's count is its tasks done of its tasks,
85
+ * with the others by state, and a function node names its flow calls that stopped
86
+ * with an error. A problem has a square mark (failed: red; not started: hatched),
87
+ * every other state a round one. Above 200 marks, a node shows a bar of its counts and
88
+ * names its failed marks. A solid edge waits for an output; a dashed edge was created
89
+ * after a result; an edge from outside the layer starts at a named stub.
90
+ *
91
+ * A click selects a mark, a node or a loop box (`sel`); the card beside it shows its
92
+ * facts and links to where it leads: a mark to its task detail, a kind node to its
93
+ * tasks, a function node to its layer, a loop box to its passes. A double click, or
94
+ * Enter, follows the first of them. Hovering or focusing a mark highlights its unit
95
+ * and the tasks joined to it, as the selected mark does. The graph opens on the first
96
+ * layer with more than one node (a static flow's kinds), or on a single function node
97
+ * whose flow call raised; a layer the run does not have opens that one, with a line
98
+ * naming it, and the view route is set right in place (a function named by its qualified
99
+ * name alone opens its layer when the run reaches it by one flow path). A loop's
100
+ * passes are a row per unit and a column per node and pass, a nested loop's passes as
101
+ * a group of columns inside each pass of the outer one, the units sortable by number
102
+ * of passes or by status (`<cae-mark-matrix>`). The breadcrumb, shown on every layer
103
+ * below the top (a loop named by its file and line), and Escape go back up. On a
104
+ * narrow screen the graph runs top to bottom. "Graph | Table" changes the view; in a
105
+ * loop's passes, "Graph" opens the layer the loop is in, with its box selected.
106
+ * A height set on the element (or given it by a flex or grid container) is the
107
+ * graph's, less the outline's line above it: the drawing fits in it.
108
+ *
109
+ * @fires ca-open-task - `{key, view?}`: a mark's task detail was opened (a task that did not start opens on its input, a Python task on its output)
110
+ * @fires ca-navigate - `{sel}`: a mark, a node, a table row or a loop box was selected, or the selection cleared; `{tab: 'tasks', kind}`: a kind node's tasks (`kind` '' for a node of several kinds); `{layer, unit?}`: a function's layer, a loop's passes, a flow call's function or the breadcrumb, or Escape; `{layer, unit, sel}`: "Graph" in a loop's passes, its box selected; `{layer, unit, sel, replace: true}`: the view route's layer set right
111
+ */
112
+ @customElement('ca-pipeline-graph')
113
+ @localized()
114
+ export class CaPipelineGraph extends LitElement {
115
+ static override styles = graphStyles;
116
+ static override properties = {
117
+ plan: { attribute: false },
118
+ journal: { attribute: false },
119
+ run: {},
120
+ live: { type: Boolean },
121
+ layer: {},
122
+ unit: {},
123
+ sel: {},
124
+ down: { state: true },
125
+ sort: { state: true },
126
+ missing: { state: true },
127
+ rev: { state: true },
128
+ budget: { state: true },
129
+ wide: { state: true },
130
+ };
131
+
132
+ plan: Plan = { nodes: [], groups: [] };
133
+ /** The finished attempts: they tell why a task did not start. */
134
+ journal: JournalRow[] = [];
135
+ /** The run id: paths in a cause are shown relative to it. */
136
+ run = '';
137
+ /** The run is running: tasks still pending are waiting; once it is over, they did not run. */
138
+ live = false;
139
+ /** The layer shown: its segments (function names, then `loop:<line>` for a loop's passes) joined by `/`; '' for the layer the graph opens on. */
140
+ layer = '';
141
+ /** The unit highlighted while nothing is hovered or focused. */
142
+ unit = '';
143
+ /** What is selected in the layer: a node or a loop box by its id, a mark by `markSel`; '' for nothing. */
144
+ sel = '';
145
+
146
+ /** Top to bottom: the frame is narrow. */
147
+ private down = false;
148
+ /** Top to bottom: the drawing is too long to read left to right in the frame. */
149
+ private tall = false;
150
+ /** A loop's passes: how its units are sorted. */
151
+ private sort: MatrixSort = 'order';
152
+ /** The layer the view route named that this run does not have (shown once the graph fell back to its opening layer). */
153
+ private missing = '';
154
+ /** The view route's layer to set right after this update, and that change, which is not the reader's. */
155
+ private fixLayer: string | null = null;
156
+ private replacing = false;
157
+
158
+ /** The layer the graph opens on, the one shown, and what it shows. */
159
+ private auto: string[] = [];
160
+ private segments: string[] = [];
161
+ /** The layer alone, for a loop's passes; null when the layer is drawn with its functions. */
162
+ private proj: Projection | null = null;
163
+ /** The layer as it is drawn: alone, or with its functions drawn open. */
164
+ private model: Projection['model'] | null = null;
165
+ private graph: LayerGraph = EMPTY_LAYER;
166
+ private input: GraphInput = { series: [], nodes: [], clusters: [], edges: [], stubs: [] };
167
+ /** The order the layer was last drawn in, before this update: the graph keeps it. */
168
+ private prevOrder: GraphOrder | undefined = undefined;
169
+ private matrix: PassMatrix | null = null;
170
+ private matrixIn: MarkMatrixInput | null = null;
171
+ /** Each layer's order, so nodes stay where they are while the plan grows. */
172
+ private orders = new Map<string, GraphOrder>();
173
+ private links: TaskLinks = taskLinks([]);
174
+ private states: StateStyles = taskStateStyles(false);
175
+ /** The locale the words were last made in. */
176
+ private locale = '';
177
+ /** The functions the reader opened and closed (and the mode: all or none opened), kept per run in the page's memory. */
178
+ private opened: RememberedSet | null = null;
179
+ private closed: RememberedSet | null = null;
180
+ private memRun: string | null = null;
181
+ /** A change to them: the layer is drawn again. */
182
+ private rev = 0;
183
+ /** The most nodes the drawing holds before it stops opening functions on its own (`budgetFor` the frame). */
184
+ private budget = 40;
185
+ /** The places drawn open, and what each place holds. */
186
+ private shownOpen = new Set<string>();
187
+ private stats = new Map<string, PlaceStats>();
188
+ /** After this update, the focus goes on this item's open or close control. */
189
+ private focusToggle = '';
190
+ /** The outline: the flow's places from its top, as a tree; the items the reader folded or unfolded. */
191
+ private flowStats = new Map<string, PlaceStats>();
192
+ private tree: OutlineItem[] = [];
193
+ private folds = new Map<string, boolean>();
194
+ /** The frame is wide enough for the outline as a column. */
195
+ private wide = true;
196
+ private readonly oh: OutlineHost = this.outlineHost();
197
+ /** What a hovered or selected mark lights, for this layer. */
198
+ private lights: (key: string) => ReadonlySet<string> = () => new Set();
199
+ /** After this update, the focus goes into the new layer: on the item it came from (`cameFrom`), else the first. */
200
+ private refocus = false;
201
+ private cameFrom = '';
202
+ private resize?: ResizeObserver;
203
+
204
+ private readonly h: PipelineHost = this.partsHost();
205
+
206
+ protected override willUpdate(changed: Changed): void {
207
+ if (changed.has('run')) this.orders.clear();
208
+ if (changed.has('layer') && changed.get('layer') !== undefined) {
209
+ // The focus stays where it is on the view switch; elsewhere it goes to the new layer.
210
+ const at = this.renderRoot instanceof ShadowRoot ? this.renderRoot.activeElement : null;
211
+ const inner = at?.shadowRoot?.activeElement;
212
+ this.refocus = at !== null && !inner?.closest('.views');
213
+ if (this.replacing) this.replacing = false;
214
+ else this.missing = '';
215
+ }
216
+ if (changed.has('run') && changed.get('run') !== undefined) this.missing = '';
217
+ if (changed.has('plan')) this.links = taskLinks(this.plan.nodes);
218
+ if (changed.has('plan') || changed.has('live')) {
219
+ this.flowStats = placeStats(indexOf(this.plan), [], this.live);
220
+ this.tree = outlineTree(this.flowStats);
221
+ }
222
+ if (changed.has('run')) this.folds.clear();
223
+ // A selection the drawing does not show (an outline's item, a link) opens the functions around it.
224
+ const hidden = changed.has('sel') && !!this.sel && !splitLayer(this.segments).loop && !parseSelection(this.graph, this.matrix, this.sel);
225
+ const structure =
226
+ changed.has('plan') || changed.has('layer') || changed.has('run') || changed.has('down') || changed.has('rev') || changed.has('budget') || hidden;
227
+ if (structure) {
228
+ this.auto = autoLayer(this.plan);
229
+ this.segments = this.layer ? this.layer.split('/') : this.auto;
230
+ // A layer the plan does not have (a stale link, a typo): the one it names when that is
231
+ // unique, else the opening layer; either way the view route is set right in place, once this update is done.
232
+ if (this.layer && this.plan.nodes.length) {
233
+ const found = resolveLayer(this.plan, this.segments);
234
+ if (!found) {
235
+ this.missing = this.layer;
236
+ this.segments = this.auto;
237
+ this.fixLayer = '';
238
+ } else if (found.join('/') !== this.layer) {
239
+ this.segments = found;
240
+ this.fixLayer = found.join('/') === this.auto.join('/') ? '' : found.join('/');
241
+ }
242
+ }
243
+ const { path, loop } = splitLayer(this.segments);
244
+ if (loop) {
245
+ // A loop's passes: its layer drawn alone.
246
+ this.proj = project(this.plan, path);
247
+ this.model = this.proj.model;
248
+ } else {
249
+ const mem = this.memory();
250
+ const mode = this.openMode();
251
+ const c = compound(this.plan, path, {
252
+ open: new Set(mem.opened.values().filter((k) => !k.startsWith('*'))),
253
+ closed: new Set(mem.closed.values()),
254
+ all: mode === 'all',
255
+ budget: mode === 'none' ? 0 : this.budget,
256
+ maxSpan: spanFor(this.graphWidth()),
257
+ sel: this.sel,
258
+ live: this.live,
259
+ });
260
+ this.proj = null;
261
+ this.model = c.model;
262
+ this.shownOpen = c.open;
263
+ this.stats = c.stats;
264
+ }
265
+ this.prevOrder = this.orders.get(path.join('/'));
266
+ }
267
+ const locale = getLocale();
268
+ const words = structure || changed.has('journal') || changed.has('live') || locale !== this.locale;
269
+ if (words || changed.has('sort')) this.build(words, locale);
270
+ }
271
+
272
+ /** The generic graph's model of the layer (`words`: its words changed), its arrangement, and a loop's passes. */
273
+ private build(words: boolean, locale: string): void {
274
+ const model = this.model;
275
+ if (!model) return;
276
+ const proj = this.proj;
277
+ const { path, loop } = splitLayer(this.segments);
278
+ const x = { plan: this.plan, journal: this.journal, run: this.run, live: this.live, links: this.links };
279
+ if (words) {
280
+ this.locale = locale;
281
+ this.states = taskStateStyles(this.live);
282
+ this.input = graphInput(model, x, !loop);
283
+ let a = arrange(this.input, this.prevOrder, this.down);
284
+ // Too long to read left to right in this frame: top to bottom.
285
+ this.tall = !this.down && !loop && tooWide(extentOf(a).span, this.graphWidth());
286
+ if (this.tall) a = arrange(this.input, this.prevOrder, true);
287
+ this.graph = arranged(model, a);
288
+ this.orders.set(path.join('/'), a.order);
289
+ this.lights = lightsOf(this.plan, this.links, this.graph);
290
+ }
291
+ const m = loop && proj ? matrixFromPlan(this.plan, path, loop, this.graph.order, this.sort, x, proj) : null;
292
+ this.matrix = m?.matrix ?? null;
293
+ this.matrixIn = m?.input ?? null;
294
+ }
295
+
296
+ override connectedCallback(): void {
297
+ super.connectedCallback();
298
+ this.addEventListener('keydown', this.onEscape);
299
+ // Top to bottom on a narrow screen.
300
+ this.resize = new ResizeObserver(() => {
301
+ const w = this.clientWidth;
302
+ const down = w > 0 && w < NARROW;
303
+ if (down !== this.down) this.down = down;
304
+ const budget = w > 0 ? budgetFor(this.graphWidth()) : this.budget;
305
+ if (budget !== this.budget) this.budget = budget;
306
+ const wide = w === 0 || w >= OUTLINE_WIDE;
307
+ if (wide !== this.wide) this.wide = wide;
308
+ });
309
+ this.resize.observe(this);
310
+ }
311
+
312
+ override disconnectedCallback(): void {
313
+ super.disconnectedCallback();
314
+ this.removeEventListener('keydown', this.onEscape);
315
+ this.resize?.disconnect();
316
+ }
317
+
318
+ /** The reader's opens and closes of this run's functions. */
319
+ private memory(): { opened: RememberedSet; closed: RememberedSet } {
320
+ if (!this.opened || !this.closed || this.memRun !== this.run) {
321
+ this.memRun = this.run;
322
+ this.opened = new RememberedSet(`graph-open:${this.run}`, this);
323
+ this.closed = new RememberedSet(`graph-closed:${this.run}`, this);
324
+ }
325
+ return { opened: this.opened, closed: this.closed };
326
+ }
327
+
328
+ /** Which functions are drawn open: those chosen (`auto`), every one, or only those the reader opened. */
329
+ private openMode(): OpenMode {
330
+ const { opened } = this.memory();
331
+ return opened.has(MODE_ALL) ? 'all' : opened.has(MODE_NONE) ? 'none' : 'auto';
332
+ }
333
+
334
+ private setMode(mode: OpenMode): void {
335
+ const { opened, closed } = this.memory();
336
+ opened.clear();
337
+ closed.clear();
338
+ if (mode === 'all') opened.set(MODE_ALL, true);
339
+ if (mode === 'none') opened.set(MODE_NONE, true);
340
+ // The reader's choice is written at once: a reload right after keeps it.
341
+ flushMemory();
342
+ this.rev++;
343
+ }
344
+
345
+ /** A function node's place, by its id in the drawing. */
346
+ private placeOfNode(id: string): string | null {
347
+ const n = this.graph.nodes.find((x) => x.id === id);
348
+ if (!n || n.type !== 'flow') return null;
349
+ const local = id.includes(IN_SEP) ? id.slice(id.lastIndexOf(IN_SEP) + IN_SEP.length) : id;
350
+ return placeKey(n.layer, local);
351
+ }
352
+
353
+ /** Open or close a function: `id` is its node (to open) or its cluster (to close). */
354
+ private toggle(id: string, open: boolean): void {
355
+ const key = id.startsWith(FLOW_BOX) ? id.slice(FLOW_BOX.length) : this.placeOfNode(id);
356
+ if (!key) return;
357
+ const { opened, closed } = this.memory();
358
+ opened.set(key, open);
359
+ closed.set(key, !open);
360
+ flushMemory();
361
+ // The focus stays on the control: the cluster's once open, the node's once closed.
362
+ this.focusToggle = open ? `${FLOW_BOX}${key}` : this.nodeIdOf(key);
363
+ this.rev++;
364
+ }
365
+
366
+ /** The id a place's node will have once drawn closed. */
367
+ private nodeIdOf(key: string): string {
368
+ const s = this.stats.get(key);
369
+ if (!s) return '';
370
+ const parent = s.parent;
371
+ return parent === null || !this.shownOpen.has(parent) ? s.id : `${parent}${IN_SEP}${s.id}`;
372
+ }
373
+
374
+ private readonly onToggle = (e: CustomEvent<{ id: string; open: boolean }>): void => this.toggle(e.detail.id, e.detail.open);
375
+
376
+ protected override updated(): void {
377
+ if (this.focusToggle) {
378
+ const id = this.focusToggle;
379
+ this.focusToggle = '';
380
+ const el = this.renderRoot.querySelector<CaeLayeredGraph>('cae-layered-graph');
381
+ if (el) void el.updateComplete.then(() => el.focusToggle(id));
382
+ }
383
+ if (this.fixLayer !== null) {
384
+ // Set the view route's layer right, in place: the reader did not go anywhere.
385
+ const layer = this.fixLayer;
386
+ this.fixLayer = null;
387
+ this.replacing = true;
388
+ emit(this, 'ca-navigate', { layer, unit: this.unit, sel: this.sel, replace: true });
389
+ }
390
+ if (this.refocus || this.cameFrom) {
391
+ const from = this.cameFrom;
392
+ this.refocus = false;
393
+ this.cameFrom = '';
394
+ // The node (or loop box) it came from, else the first item; it does not select.
395
+ const id = from.startsWith('loop:') ? from : (this.graph.nodes.find((n) => n.type === 'flow' && n.name === from)?.id ?? null);
396
+ const el = this.renderRoot.querySelector<CaeLayeredGraph>('cae-layered-graph');
397
+ if (el) void el.updateComplete.then(() => el.focusItem(from ? id : null));
398
+ }
399
+ }
400
+
401
+ private readonly onEscape = (e: KeyboardEvent): void => {
402
+ if (e.key !== 'Escape' || e.defaultPrevented) return;
403
+ const up = parentLayer(this.segments, this.auto);
404
+ if (!up) return;
405
+ e.preventDefault();
406
+ this.refocus = true;
407
+ this.cameFrom = this.segments[this.segments.length - 1] ?? '';
408
+ go(this.h, up);
409
+ };
410
+
411
+ private readonly onSelect = (e: CustomEvent<{ id: string | null }>): void => select(this.h, e.detail.id ?? '');
412
+
413
+ private readonly onActivate = (e: CustomEvent<{ id: string }>): void => {
414
+ const s = parseSelection(this.graph, this.matrix, e.detail.id);
415
+ if (s?.type === 'mark') open(this.h, s.mark, s.node);
416
+ else if (s?.type === 'node') tasksOf(this.h, s.node);
417
+ };
418
+
419
+ private readonly onDrill = (e: CustomEvent<{ id: string }>): void => {
420
+ const s = parseSelection(this.graph, this.matrix, e.detail.id);
421
+ if (s) primary(this.h, s);
422
+ };
423
+
424
+ private readonly onView = (e: CustomEvent<{ view: 'graph' | 'table' }>): void => {
425
+ if (e.detail.view === 'graph' && this.matrix) leavePasses(this.h);
426
+ };
427
+
428
+ override render() {
429
+ if (!this.plan.nodes.length) {
430
+ return html`<div class="blank" style="padding:24px">${this.live ? msg('No tasks scheduled yet') : msg('No tasks scheduled')}</div>`;
431
+ }
432
+ const graph = this.renderGraph();
433
+ if (!this.tree.length) return graph;
434
+ // The outline: a column beside the graph, or, on a narrow frame, a part above it that opens.
435
+ return this.wide
436
+ ? html`<div class="whole">${outline(this.oh, this.tree)}<div class="g">${graph}</div></div>`
437
+ : html`<details class="odet"><summary>${msg('Outline of the flow')}</summary>${outline(this.oh, this.tree)}</details>${graph}`;
438
+ }
439
+
440
+ private renderGraph() {
441
+ const s = parseSelection(this.graph, this.matrix, this.sel);
442
+ const functions = this.graph.nodes.some((n) => n.type === 'flow');
443
+ return html`<cae-layered-graph .graph=${this.input} .states=${this.states} .selected=${this.sel || null} .highlight=${this.unit || null}
444
+ .order=${this.prevOrder} key=${this.segments.join('/')} direction=${this.down || this.tall ? 'down' : 'across'} .matrix=${this.matrixIn}
445
+ .related=${this.lights} .strings=${graphStrings(!!parentLayer(this.segments, this.auto), functions)} .matrixStrings=${matrixStrings()}
446
+ .renderIcon=${renderIcon} .iconStyles=${iconStyles}
447
+ @cae-select=${this.onSelect} @cae-activate=${this.onActivate} @cae-drill=${this.onDrill} @cae-view-change=${this.onView} @cae-toggle=${this.onToggle}
448
+ @cae-sort=${(e: CustomEvent<{ id: string }>) => (this.sort = e.detail.id as MatrixSort)}>
449
+ <div slot="crumbs">${crumbs(this.h, splitLayer(this.segments).loop ? null : openControls(this.openMode(), (m) => this.setMode(m)))}${missingLine(this.missing)}</div>
450
+ ${s ? inspector(this.h, s) : nothing}
451
+ </cae-layered-graph>`;
452
+ }
453
+
454
+ /** The graph's own width: the element's, less the outline's column beside it. */
455
+ private graphWidth(): number {
456
+ const w = this.clientWidth || 1200;
457
+ return this.tree.length && w >= OUTLINE_WIDE ? w - OUTLINE_COLUMN : w;
458
+ }
459
+
460
+ /** The place keys on the way to the layer shown (the functions of its path). */
461
+ private currentKeys(): Set<string> {
462
+ const { path } = splitLayer(this.segments);
463
+ const out = new Set<string>();
464
+ for (const s of this.flowStats.values()) {
465
+ const d = s.layer.length;
466
+ if (d < path.length && startsWith(path, s.layer) && path[d] === s.name) out.add(s.key);
467
+ }
468
+ return out;
469
+ }
470
+
471
+ /** The place (or loop item) the selection is, or is in: '' for none. */
472
+ private selectedItem(): string {
473
+ const sel = this.sel;
474
+ if (!sel) return '';
475
+ if (sel.startsWith(FLOW_BOX)) return sel.slice(FLOW_BOX.length);
476
+ const id = sel.split('#')[0] ?? '';
477
+ const node = this.graph.nodes.find((n) => n.id === id);
478
+ if (node?.type === 'flow') return this.placeOfNode(id) ?? '';
479
+ const box = this.graph.boxes.find((b) => b.id === id);
480
+ return box ? `${box.layer.join('/')}|${box.local}` : '';
481
+ }
482
+
483
+ /** The id an outline item is drawn with, once its places are open; and those places. */
484
+ private drawnId(item: OutlineItem): { id: string; open: string[] } | null {
485
+ const { path } = splitLayer(this.segments);
486
+ if (item.layer.length < path.length || !startsWith(item.layer, path)) return null;
487
+ // The place whose layer the item is in, and every place around it, down from the layer shown.
488
+ const places: string[] = [];
489
+ for (let s = this.flowStats.get(item.type === 'fn' ? (this.flowStats.get(item.id)?.parent ?? '') : this.containerKey(item) ?? ''); s && s.layer.length >= path.length; s = this.flowStats.get(s.parent ?? '')) places.unshift(s.key);
490
+ const inner = places[places.length - 1] ?? '';
491
+ if (item.type === 'fn') {
492
+ const s = this.flowStats.get(item.id);
493
+ if (!s) return null;
494
+ if (this.shownOpen.has(item.id)) return { id: `${FLOW_BOX}${item.id}`, open: places };
495
+ return { id: inner ? `${inner}${IN_SEP}${s.id}` : s.id, open: places };
496
+ }
497
+ return { id: inner ? `${inner}${IN_SEP}${item.name}` : item.name, open: places };
498
+ }
499
+
500
+ /** The place whose layer a loop item is in ('' when it is the layer shown, null when none is known). */
501
+ private containerKey(item: OutlineItem): string | null {
502
+ const { path } = splitLayer(this.segments);
503
+ if (item.layer.length === path.length) return '';
504
+ for (const s of this.flowStats.values()) if ([...s.layer, s.name].join('/') === item.layer.join('/')) return s.key;
505
+ return null;
506
+ }
507
+
508
+ private outlineHost(): OutlineHost {
509
+ // eslint-disable-next-line @typescript-eslint/no-this-alias -- the methods below read the element
510
+ const el = this;
511
+ return {
512
+ get live() { return el.live; },
513
+ expanded(id) {
514
+ const own = el.folds.get(id);
515
+ if (own !== undefined) return own;
516
+ // Unfolded by default: the top items, and those on the way to the layer shown, to what is open and to the selection.
517
+ const want = new Set([...el.currentKeys(), ...el.shownOpen, el.selectedItem()]);
518
+ const has = (it: OutlineItem): boolean => want.has(it.id) || it.kids.some(has);
519
+ const it = findItem(el.tree, id);
520
+ return !!it && (el.tree.includes(it) || has(it));
521
+ },
522
+ expand(id, on) {
523
+ el.folds.set(id, on);
524
+ el.requestUpdate();
525
+ },
526
+ current: (id) => el.currentKeys().has(id),
527
+ here: (id) => {
528
+ const { path } = splitLayer(el.segments);
529
+ const s = el.flowStats.get(id);
530
+ return !!s && s.layer.length === path.length - 1 && startsWith(path, [...s.layer, s.name]);
531
+ },
532
+ selected: (id) => !!id && el.selectedItem() === id,
533
+ pick(item) {
534
+ const at = el.drawnId(item);
535
+ if (!at) {
536
+ // Outside the layer shown: its layer, with it selected.
537
+ const local = item.type === 'fn' ? (el.flowStats.get(item.id)?.id ?? '') : item.name;
538
+ emit(el, 'ca-navigate', { layer: item.layer.join('/') === el.auto.join('/') ? '' : item.layer.join('/'), unit: el.unit, sel: local });
539
+ return;
540
+ }
541
+ const { opened, closed } = el.memory();
542
+ let more = false;
543
+ for (const k of at.open) {
544
+ if (!el.shownOpen.has(k)) more = true;
545
+ opened.set(k, true);
546
+ closed.set(k, false);
547
+ }
548
+ if (more) el.rev++;
549
+ select(el.h, at.id);
550
+ },
551
+ enter(item) {
552
+ // A chain: the layer of its last function, where its content is.
553
+ const last = item.parts[item.parts.length - 1] ?? item;
554
+ go(el.h, [...last.layer, last.name]);
555
+ },
556
+ };
557
+ }
558
+
559
+ /** This element as its parts see it (`pipeline-graph/host.ts`), its private members included. */
560
+ private partsHost(): PipelineHost {
561
+ // eslint-disable-next-line @typescript-eslint/no-this-alias -- the getters below read the element, not the object they are on
562
+ const el = this;
563
+ return {
564
+ el,
565
+ get plan() { return el.plan; },
566
+ get journal() { return el.journal; },
567
+ get run() { return el.run; },
568
+ get live() { return el.live; },
569
+ get sel() { return el.sel; },
570
+ get unit() { return el.unit; },
571
+ get segments() { return el.segments; },
572
+ get auto() { return el.auto; },
573
+ get graph() { return el.graph; },
574
+ get matrix() { return el.matrix; },
575
+ get links() { return el.links; },
576
+ };
577
+ }
578
+ }
579
+
580
+ /** An executor's icon: `agent` or `python`. */
581
+ const renderIcon = (name: string) => executorIcon(name === 'python');
582
+
583
+ /**
584
+ * What a hovered or selected mark lights in a layer: for a unit (or the key of a mark
585
+ * without one), the marks of the tasks joined to its tasks upstream or downstream.
586
+ */
587
+ function lightsOf(plan: Plan, links: TaskLinks, g: LayerGraph): (key: string) => ReadonlySet<string> {
588
+ const marks: [string, LayerMark][] = g.nodes.flatMap((n) =>
589
+ [...n.units, ...n.single].filter((m): m is LayerMark => m !== null).map((m): [string, LayerMark] => [markSel(n.id, m), m]),
590
+ );
591
+ const keyOf = new Map(marks.map(([id, m]) => [id, m.key]));
592
+ const memo = new Map<string, ReadonlySet<string>>();
593
+ return (key) => {
594
+ const had = memo.get(key);
595
+ if (had) return had;
596
+ const on = related(plan.nodes, links, keyOf.get(key) ?? key);
597
+ const lit = new Set(marks.filter(([, m]) => m.keys.some((k) => on.has(k))).map(([id]) => id));
598
+ memo.set(key, lit);
599
+ return lit;
600
+ };
601
+ }
602
+
603
+ /** The outline item `id`, wherever it is in the tree. */
604
+ function findItem(items: readonly OutlineItem[], id: string): OutlineItem | undefined {
605
+ for (const it of items) {
606
+ if (it.id === id) return it;
607
+ const k = findItem(it.kids, id);
608
+ if (k) return k;
609
+ }
610
+ return undefined;
611
+ }
612
+
613
+ declare global {
614
+ interface HTMLElementTagNameMap {
615
+ 'ca-pipeline-graph': CaPipelineGraph;
616
+ }
617
+ }