@contraagent/elements 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/README.md +72 -2
  2. package/custom-elements.json +4260 -0
  3. package/dist/charts/bar-chart.d.ts +32 -0
  4. package/dist/charts/bar-chart.d.ts.map +1 -0
  5. package/dist/charts/bar-chart.js +70 -0
  6. package/dist/charts/bar-chart.js.map +1 -0
  7. package/dist/charts/base.d.ts +48 -0
  8. package/dist/charts/base.d.ts.map +1 -0
  9. package/dist/charts/base.js +203 -0
  10. package/dist/charts/base.js.map +1 -0
  11. package/dist/charts/column-chart.d.ts +42 -0
  12. package/dist/charts/column-chart.d.ts.map +1 -0
  13. package/dist/charts/column-chart.js +146 -0
  14. package/dist/charts/column-chart.js.map +1 -0
  15. package/dist/charts/heatmap.d.ts +42 -0
  16. package/dist/charts/heatmap.d.ts.map +1 -0
  17. package/dist/charts/heatmap.js +124 -0
  18. package/dist/charts/heatmap.js.map +1 -0
  19. package/dist/charts/index.d.ts +9 -0
  20. package/dist/charts/index.d.ts.map +1 -0
  21. package/dist/charts/index.js +11 -0
  22. package/dist/charts/index.js.map +1 -0
  23. package/dist/charts/line-chart.d.ts +36 -0
  24. package/dist/charts/line-chart.d.ts.map +1 -0
  25. package/dist/charts/line-chart.js +118 -0
  26. package/dist/charts/line-chart.js.map +1 -0
  27. package/dist/charts/scale.d.ts +32 -0
  28. package/dist/charts/scale.d.ts.map +1 -0
  29. package/dist/charts/scale.js +50 -0
  30. package/dist/charts/scale.js.map +1 -0
  31. package/dist/charts/state-grid.d.ts +64 -0
  32. package/dist/charts/state-grid.d.ts.map +1 -0
  33. package/dist/charts/state-grid.js +223 -0
  34. package/dist/charts/state-grid.js.map +1 -0
  35. package/dist/charts/types.d.ts +34 -0
  36. package/dist/charts/types.d.ts.map +1 -0
  37. package/dist/charts/types.js +11 -0
  38. package/dist/charts/types.js.map +1 -0
  39. package/dist/checks/check-table.d.ts +32 -0
  40. package/dist/checks/check-table.d.ts.map +1 -0
  41. package/dist/checks/check-table.js +94 -0
  42. package/dist/checks/check-table.js.map +1 -0
  43. package/dist/checks/index.d.ts +4 -0
  44. package/dist/checks/index.d.ts.map +1 -0
  45. package/dist/checks/index.js +6 -0
  46. package/dist/checks/index.js.map +1 -0
  47. package/dist/checks/styles.d.ts +5 -0
  48. package/dist/checks/styles.d.ts.map +1 -0
  49. package/dist/checks/styles.js +30 -0
  50. package/dist/checks/styles.js.map +1 -0
  51. package/dist/checks/types.d.ts +35 -0
  52. package/dist/checks/types.d.ts.map +1 -0
  53. package/dist/checks/types.js +12 -0
  54. package/dist/checks/types.js.map +1 -0
  55. package/dist/core/clock.d.ts +20 -0
  56. package/dist/core/clock.d.ts.map +1 -0
  57. package/dist/core/clock.js +45 -0
  58. package/dist/core/clock.js.map +1 -0
  59. package/dist/core/define.d.ts +3 -0
  60. package/dist/core/define.d.ts.map +1 -0
  61. package/dist/core/define.js +8 -0
  62. package/dist/core/define.js.map +1 -0
  63. package/dist/core/events.d.ts +78 -0
  64. package/dist/core/events.d.ts.map +1 -0
  65. package/dist/core/events.js +8 -0
  66. package/dist/core/events.js.map +1 -0
  67. package/dist/core/format.d.ts +8 -0
  68. package/dist/core/format.d.ts.map +1 -0
  69. package/dist/core/format.js +28 -0
  70. package/dist/core/format.js.map +1 -0
  71. package/dist/core/frame.d.ts +4 -0
  72. package/dist/core/frame.d.ts.map +1 -0
  73. package/dist/core/frame.js +5 -0
  74. package/dist/core/frame.js.map +1 -0
  75. package/dist/core/strings.d.ts +3 -0
  76. package/dist/core/strings.d.ts.map +1 -0
  77. package/dist/core/strings.js +14 -0
  78. package/dist/core/strings.js.map +1 -0
  79. package/dist/core/tone.d.ts +8 -0
  80. package/dist/core/tone.d.ts.map +1 -0
  81. package/dist/core/tone.js +9 -0
  82. package/dist/core/tone.js.map +1 -0
  83. package/dist/count/count.d.ts +22 -0
  84. package/dist/count/count.d.ts.map +1 -0
  85. package/dist/count/count.js +60 -0
  86. package/dist/count/count.js.map +1 -0
  87. package/dist/count/elapsed.d.ts +18 -0
  88. package/dist/count/elapsed.d.ts.map +1 -0
  89. package/dist/count/elapsed.js +33 -0
  90. package/dist/count/elapsed.js.map +1 -0
  91. package/dist/count/index.d.ts +3 -0
  92. package/dist/count/index.d.ts.map +1 -0
  93. package/dist/count/index.js +5 -0
  94. package/dist/count/index.js.map +1 -0
  95. package/dist/define/all.d.ts +13 -0
  96. package/dist/define/all.d.ts.map +1 -0
  97. package/dist/define/all.js +14 -0
  98. package/dist/define/all.js.map +1 -0
  99. package/dist/define/charts.d.ts +8 -0
  100. package/dist/define/charts.d.ts.map +1 -0
  101. package/dist/define/charts.js +15 -0
  102. package/dist/define/charts.js.map +1 -0
  103. package/dist/define/check-table.d.ts +4 -0
  104. package/dist/define/check-table.d.ts.map +1 -0
  105. package/dist/define/check-table.js +7 -0
  106. package/dist/define/check-table.js.map +1 -0
  107. package/dist/define/count.d.ts +5 -0
  108. package/dist/define/count.d.ts.map +1 -0
  109. package/dist/define/count.js +9 -0
  110. package/dist/define/count.js.map +1 -0
  111. package/dist/define/data-table.d.ts +4 -0
  112. package/dist/define/data-table.d.ts.map +1 -0
  113. package/dist/define/data-table.js +7 -0
  114. package/dist/define/data-table.js.map +1 -0
  115. package/dist/define/graph.d.ts +6 -0
  116. package/dist/define/graph.d.ts.map +1 -0
  117. package/dist/define/graph.js +9 -0
  118. package/dist/define/graph.js.map +1 -0
  119. package/dist/define/json-tree.d.ts +4 -0
  120. package/dist/define/json-tree.d.ts.map +1 -0
  121. package/dist/define/json-tree.js +7 -0
  122. package/dist/define/json-tree.js.map +1 -0
  123. package/dist/define/lanes.d.ts +4 -0
  124. package/dist/define/lanes.d.ts.map +1 -0
  125. package/dist/define/lanes.js +7 -0
  126. package/dist/define/lanes.js.map +1 -0
  127. package/dist/define/markdown.d.ts +4 -0
  128. package/dist/define/markdown.d.ts.map +1 -0
  129. package/dist/define/markdown.js +7 -0
  130. package/dist/define/markdown.js.map +1 -0
  131. package/dist/define/matrix.d.ts +4 -0
  132. package/dist/define/matrix.d.ts.map +1 -0
  133. package/dist/define/matrix.js +7 -0
  134. package/dist/define/matrix.js.map +1 -0
  135. package/dist/define/segmented.d.ts +4 -0
  136. package/dist/define/segmented.d.ts.map +1 -0
  137. package/dist/define/segmented.js +7 -0
  138. package/dist/define/segmented.js.map +1 -0
  139. package/dist/define/tiles.d.ts +5 -0
  140. package/dist/define/tiles.d.ts.map +1 -0
  141. package/dist/define/tiles.js +9 -0
  142. package/dist/define/tiles.js.map +1 -0
  143. package/dist/define/transcript.d.ts +4 -0
  144. package/dist/define/transcript.d.ts.map +1 -0
  145. package/dist/define/transcript.js +7 -0
  146. package/dist/define/transcript.js.map +1 -0
  147. package/dist/graph/arrange.d.ts +43 -0
  148. package/dist/graph/arrange.d.ts.map +1 -0
  149. package/dist/graph/arrange.js +390 -0
  150. package/dist/graph/arrange.js.map +1 -0
  151. package/dist/graph/card.d.ts +71 -0
  152. package/dist/graph/card.d.ts.map +1 -0
  153. package/dist/graph/card.js +185 -0
  154. package/dist/graph/card.js.map +1 -0
  155. package/dist/graph/host.d.ts +82 -0
  156. package/dist/graph/host.d.ts.map +1 -0
  157. package/dist/graph/host.js +21 -0
  158. package/dist/graph/host.js.map +1 -0
  159. package/dist/graph/icons.d.ts +7 -0
  160. package/dist/graph/icons.d.ts.map +1 -0
  161. package/dist/graph/icons.js +18 -0
  162. package/dist/graph/icons.js.map +1 -0
  163. package/dist/graph/index.d.ts +15 -0
  164. package/dist/graph/index.d.ts.map +1 -0
  165. package/dist/graph/index.js +17 -0
  166. package/dist/graph/index.js.map +1 -0
  167. package/dist/graph/layered-graph.d.ts +226 -0
  168. package/dist/graph/layered-graph.d.ts.map +1 -0
  169. package/dist/graph/layered-graph.js +396 -0
  170. package/dist/graph/layered-graph.js.map +1 -0
  171. package/dist/graph/layout.d.ts +80 -0
  172. package/dist/graph/layout.d.ts.map +1 -0
  173. package/dist/graph/layout.js +264 -0
  174. package/dist/graph/layout.js.map +1 -0
  175. package/dist/graph/marks.d.ts +24 -0
  176. package/dist/graph/marks.d.ts.map +1 -0
  177. package/dist/graph/marks.js +38 -0
  178. package/dist/graph/marks.js.map +1 -0
  179. package/dist/graph/nav.d.ts +14 -0
  180. package/dist/graph/nav.d.ts.map +1 -0
  181. package/dist/graph/nav.js +14 -0
  182. package/dist/graph/nav.js.map +1 -0
  183. package/dist/graph/pan-zoom.d.ts +80 -0
  184. package/dist/graph/pan-zoom.d.ts.map +1 -0
  185. package/dist/graph/pan-zoom.js +191 -0
  186. package/dist/graph/pan-zoom.js.map +1 -0
  187. package/dist/graph/paths.d.ts +9 -0
  188. package/dist/graph/paths.d.ts.map +1 -0
  189. package/dist/graph/paths.js +44 -0
  190. package/dist/graph/paths.js.map +1 -0
  191. package/dist/graph/place-card.d.ts +36 -0
  192. package/dist/graph/place-card.d.ts.map +1 -0
  193. package/dist/graph/place-card.js +68 -0
  194. package/dist/graph/place-card.js.map +1 -0
  195. package/dist/graph/strings.d.ts +50 -0
  196. package/dist/graph/strings.d.ts.map +1 -0
  197. package/dist/graph/strings.js +37 -0
  198. package/dist/graph/strings.js.map +1 -0
  199. package/dist/graph/styles.d.ts +2 -0
  200. package/dist/graph/styles.d.ts.map +1 -0
  201. package/dist/graph/styles.js +203 -0
  202. package/dist/graph/styles.js.map +1 -0
  203. package/dist/graph/types.d.ts +184 -0
  204. package/dist/graph/types.d.ts.map +1 -0
  205. package/dist/graph/types.js +2 -0
  206. package/dist/graph/types.js.map +1 -0
  207. package/dist/graph/view.d.ts +17 -0
  208. package/dist/graph/view.d.ts.map +1 -0
  209. package/dist/graph/view.js +21 -0
  210. package/dist/graph/view.js.map +1 -0
  211. package/dist/graph/views/dag.d.ts +10 -0
  212. package/dist/graph/views/dag.d.ts.map +1 -0
  213. package/dist/graph/views/dag.js +292 -0
  214. package/dist/graph/views/dag.js.map +1 -0
  215. package/dist/graph/views/foot.d.ts +8 -0
  216. package/dist/graph/views/foot.d.ts.map +1 -0
  217. package/dist/graph/views/foot.js +103 -0
  218. package/dist/graph/views/foot.js.map +1 -0
  219. package/dist/graph/views/node-table.d.ts +17 -0
  220. package/dist/graph/views/node-table.d.ts.map +1 -0
  221. package/dist/graph/views/node-table.js +80 -0
  222. package/dist/graph/views/node-table.js.map +1 -0
  223. package/dist/index.d.ts +22 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +26 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/json/index.d.ts +2 -0
  228. package/dist/json/index.d.ts.map +1 -0
  229. package/dist/json/index.js +3 -0
  230. package/dist/json/index.js.map +1 -0
  231. package/dist/json/json-tree.d.ts +21 -0
  232. package/dist/json/json-tree.d.ts.map +1 -0
  233. package/dist/json/json-tree.js +51 -0
  234. package/dist/json/json-tree.js.map +1 -0
  235. package/dist/lanes/index.d.ts +5 -0
  236. package/dist/lanes/index.d.ts.map +1 -0
  237. package/dist/lanes/index.js +7 -0
  238. package/dist/lanes/index.js.map +1 -0
  239. package/dist/lanes/lanes.d.ts +56 -0
  240. package/dist/lanes/lanes.d.ts.map +1 -0
  241. package/dist/lanes/lanes.js +160 -0
  242. package/dist/lanes/lanes.js.map +1 -0
  243. package/dist/lanes/stack.d.ts +26 -0
  244. package/dist/lanes/stack.d.ts.map +1 -0
  245. package/dist/lanes/stack.js +43 -0
  246. package/dist/lanes/stack.js.map +1 -0
  247. package/dist/lanes/styles.d.ts +2 -0
  248. package/dist/lanes/styles.d.ts.map +1 -0
  249. package/dist/lanes/styles.js +30 -0
  250. package/dist/lanes/styles.js.map +1 -0
  251. package/dist/lanes/types.d.ts +41 -0
  252. package/dist/lanes/types.d.ts.map +1 -0
  253. package/dist/lanes/types.js +6 -0
  254. package/dist/lanes/types.js.map +1 -0
  255. package/dist/markdown/cae-markdown.d.ts +37 -0
  256. package/dist/markdown/cae-markdown.d.ts.map +1 -0
  257. package/dist/markdown/cae-markdown.js +68 -0
  258. package/dist/markdown/cae-markdown.js.map +1 -0
  259. package/dist/markdown/highlight.d.ts +5 -0
  260. package/dist/markdown/highlight.d.ts.map +1 -0
  261. package/dist/markdown/highlight.js +86 -0
  262. package/dist/markdown/highlight.js.map +1 -0
  263. package/dist/markdown/index.d.ts +4 -0
  264. package/dist/markdown/index.d.ts.map +1 -0
  265. package/dist/markdown/index.js +6 -0
  266. package/dist/markdown/index.js.map +1 -0
  267. package/dist/markdown/markdown.d.ts +4 -0
  268. package/dist/markdown/markdown.d.ts.map +1 -0
  269. package/dist/markdown/markdown.js +105 -0
  270. package/dist/markdown/markdown.js.map +1 -0
  271. package/dist/matrix/grid-step.d.ts +8 -0
  272. package/dist/matrix/grid-step.d.ts.map +1 -0
  273. package/dist/matrix/grid-step.js +69 -0
  274. package/dist/matrix/grid-step.js.map +1 -0
  275. package/dist/matrix/index.d.ts +5 -0
  276. package/dist/matrix/index.d.ts.map +1 -0
  277. package/dist/matrix/index.js +7 -0
  278. package/dist/matrix/index.js.map +1 -0
  279. package/dist/matrix/mark-matrix.d.ts +97 -0
  280. package/dist/matrix/mark-matrix.d.ts.map +1 -0
  281. package/dist/matrix/mark-matrix.js +272 -0
  282. package/dist/matrix/mark-matrix.js.map +1 -0
  283. package/dist/matrix/styles.d.ts +4 -0
  284. package/dist/matrix/styles.d.ts.map +1 -0
  285. package/dist/matrix/styles.js +47 -0
  286. package/dist/matrix/styles.js.map +1 -0
  287. package/dist/matrix/types.d.ts +79 -0
  288. package/dist/matrix/types.d.ts.map +1 -0
  289. package/dist/matrix/types.js +5 -0
  290. package/dist/matrix/types.js.map +1 -0
  291. package/dist/primitives/fact-line.d.ts +14 -0
  292. package/dist/primitives/fact-line.d.ts.map +1 -0
  293. package/dist/primitives/fact-line.js +18 -0
  294. package/dist/primitives/fact-line.js.map +1 -0
  295. package/dist/primitives/icon.d.ts +14 -0
  296. package/dist/primitives/icon.d.ts.map +1 -0
  297. package/dist/primitives/icon.js +19 -0
  298. package/dist/primitives/icon.js.map +1 -0
  299. package/dist/primitives/index.d.ts +10 -0
  300. package/dist/primitives/index.d.ts.map +1 -0
  301. package/dist/primitives/index.js +13 -0
  302. package/dist/primitives/index.js.map +1 -0
  303. package/dist/primitives/legend.d.ts +28 -0
  304. package/dist/primitives/legend.d.ts.map +1 -0
  305. package/dist/primitives/legend.js +28 -0
  306. package/dist/primitives/legend.js.map +1 -0
  307. package/dist/primitives/pill.d.ts +23 -0
  308. package/dist/primitives/pill.d.ts.map +1 -0
  309. package/dist/primitives/pill.js +40 -0
  310. package/dist/primitives/pill.js.map +1 -0
  311. package/dist/primitives/roving-focus.d.ts +47 -0
  312. package/dist/primitives/roving-focus.d.ts.map +1 -0
  313. package/dist/primitives/roving-focus.js +111 -0
  314. package/dist/primitives/roving-focus.js.map +1 -0
  315. package/dist/primitives/segmented.d.ts +41 -0
  316. package/dist/primitives/segmented.d.ts.map +1 -0
  317. package/dist/primitives/segmented.js +88 -0
  318. package/dist/primitives/segmented.js.map +1 -0
  319. package/dist/primitives/share-bar.d.ts +37 -0
  320. package/dist/primitives/share-bar.d.ts.map +1 -0
  321. package/dist/primitives/share-bar.js +69 -0
  322. package/dist/primitives/share-bar.js.map +1 -0
  323. package/dist/primitives/states.d.ts +19 -0
  324. package/dist/primitives/states.d.ts.map +1 -0
  325. package/dist/primitives/states.js +11 -0
  326. package/dist/primitives/states.js.map +1 -0
  327. package/dist/primitives/window.d.ts +24 -0
  328. package/dist/primitives/window.d.ts.map +1 -0
  329. package/dist/primitives/window.js +56 -0
  330. package/dist/primitives/window.js.map +1 -0
  331. package/dist/styles/chips.d.ts +2 -0
  332. package/dist/styles/chips.d.ts.map +1 -0
  333. package/dist/styles/chips.js +18 -0
  334. package/dist/styles/chips.js.map +1 -0
  335. package/dist/styles/facts.d.ts +2 -0
  336. package/dist/styles/facts.d.ts.map +1 -0
  337. package/dist/styles/facts.js +7 -0
  338. package/dist/styles/facts.js.map +1 -0
  339. package/dist/styles/index.d.ts +16 -0
  340. package/dist/styles/index.d.ts.map +1 -0
  341. package/dist/styles/index.js +15 -0
  342. package/dist/styles/index.js.map +1 -0
  343. package/dist/styles/layout.d.ts +2 -0
  344. package/dist/styles/layout.d.ts.map +1 -0
  345. package/dist/styles/layout.js +33 -0
  346. package/dist/styles/layout.js.map +1 -0
  347. package/dist/styles/marks.d.ts +2 -0
  348. package/dist/styles/marks.d.ts.map +1 -0
  349. package/dist/styles/marks.js +30 -0
  350. package/dist/styles/marks.js.map +1 -0
  351. package/dist/styles/meter.d.ts +3 -0
  352. package/dist/styles/meter.d.ts.map +1 -0
  353. package/dist/styles/meter.js +9 -0
  354. package/dist/styles/meter.js.map +1 -0
  355. package/dist/styles/motion.d.ts +2 -0
  356. package/dist/styles/motion.d.ts.map +1 -0
  357. package/dist/styles/motion.js +27 -0
  358. package/dist/styles/motion.js.map +1 -0
  359. package/dist/styles/prose.d.ts +3 -0
  360. package/dist/styles/prose.d.ts.map +1 -0
  361. package/dist/styles/prose.js +59 -0
  362. package/dist/styles/prose.js.map +1 -0
  363. package/dist/styles/reset.d.ts +2 -0
  364. package/dist/styles/reset.d.ts.map +1 -0
  365. package/dist/styles/reset.js +13 -0
  366. package/dist/styles/reset.js.map +1 -0
  367. package/dist/styles/status.d.ts +2 -0
  368. package/dist/styles/status.d.ts.map +1 -0
  369. package/dist/styles/status.js +52 -0
  370. package/dist/styles/status.js.map +1 -0
  371. package/dist/styles/text.d.ts +2 -0
  372. package/dist/styles/text.d.ts.map +1 -0
  373. package/dist/styles/text.js +21 -0
  374. package/dist/styles/text.js.map +1 -0
  375. package/dist/styles/tokens.d.ts +8 -0
  376. package/dist/styles/tokens.d.ts.map +1 -0
  377. package/dist/styles/tokens.js +32 -0
  378. package/dist/styles/tokens.js.map +1 -0
  379. package/dist/table/data-table.d.ts +106 -0
  380. package/dist/table/data-table.d.ts.map +1 -0
  381. package/dist/table/data-table.js +408 -0
  382. package/dist/table/data-table.js.map +1 -0
  383. package/dist/table/index.d.ts +4 -0
  384. package/dist/table/index.d.ts.map +1 -0
  385. package/dist/table/index.js +6 -0
  386. package/dist/table/index.js.map +1 -0
  387. package/dist/table/styles.d.ts +2 -0
  388. package/dist/table/styles.d.ts.map +1 -0
  389. package/dist/table/styles.js +32 -0
  390. package/dist/table/styles.js.map +1 -0
  391. package/dist/table/types.d.ts +48 -0
  392. package/dist/table/types.d.ts.map +1 -0
  393. package/dist/table/types.js +30 -0
  394. package/dist/table/types.js.map +1 -0
  395. package/dist/themes/boot.d.ts +7 -0
  396. package/dist/themes/boot.d.ts.map +1 -0
  397. package/dist/themes/boot.js +14 -0
  398. package/dist/themes/boot.js.map +1 -0
  399. package/dist/themes/choice.d.ts +16 -0
  400. package/dist/themes/choice.d.ts.map +1 -0
  401. package/dist/themes/choice.js +45 -0
  402. package/dist/themes/choice.js.map +1 -0
  403. package/dist/themes/data.d.ts +43 -0
  404. package/dist/themes/data.d.ts.map +1 -0
  405. package/dist/themes/data.js +408 -0
  406. package/dist/themes/data.js.map +1 -0
  407. package/dist/themes/index.d.ts +7 -0
  408. package/dist/themes/index.d.ts.map +1 -0
  409. package/dist/themes/index.js +11 -0
  410. package/dist/themes/index.js.map +1 -0
  411. package/dist/themes/sheet.d.ts +16 -0
  412. package/dist/themes/sheet.d.ts.map +1 -0
  413. package/dist/themes/sheet.js +28 -0
  414. package/dist/themes/sheet.js.map +1 -0
  415. package/dist/themes/token-meanings.d.ts +3 -0
  416. package/dist/themes/token-meanings.d.ts.map +1 -0
  417. package/dist/themes/token-meanings.js +67 -0
  418. package/dist/themes/token-meanings.js.map +1 -0
  419. package/dist/themes/tokens-list.d.ts +14 -0
  420. package/dist/themes/tokens-list.d.ts.map +1 -0
  421. package/dist/themes/tokens-list.js +69 -0
  422. package/dist/themes/tokens-list.js.map +1 -0
  423. package/dist/tiles/index.d.ts +4 -0
  424. package/dist/tiles/index.d.ts.map +1 -0
  425. package/dist/tiles/index.js +6 -0
  426. package/dist/tiles/index.js.map +1 -0
  427. package/dist/tiles/stat-tiles.d.ts +40 -0
  428. package/dist/tiles/stat-tiles.d.ts.map +1 -0
  429. package/dist/tiles/stat-tiles.js +99 -0
  430. package/dist/tiles/stat-tiles.js.map +1 -0
  431. package/dist/tiles/styles.d.ts +2 -0
  432. package/dist/tiles/styles.d.ts.map +1 -0
  433. package/dist/tiles/styles.js +23 -0
  434. package/dist/tiles/styles.js.map +1 -0
  435. package/dist/tiles/types.d.ts +22 -0
  436. package/dist/tiles/types.d.ts.map +1 -0
  437. package/dist/tiles/types.js +2 -0
  438. package/dist/tiles/types.js.map +1 -0
  439. package/dist/transcript/follow-scroll.d.ts +21 -0
  440. package/dist/transcript/follow-scroll.d.ts.map +1 -0
  441. package/dist/transcript/follow-scroll.js +76 -0
  442. package/dist/transcript/follow-scroll.js.map +1 -0
  443. package/dist/transcript/index.d.ts +5 -0
  444. package/dist/transcript/index.d.ts.map +1 -0
  445. package/dist/transcript/index.js +7 -0
  446. package/dist/transcript/index.js.map +1 -0
  447. package/dist/transcript/styles.d.ts +2 -0
  448. package/dist/transcript/styles.d.ts.map +1 -0
  449. package/dist/transcript/styles.js +114 -0
  450. package/dist/transcript/styles.js.map +1 -0
  451. package/dist/transcript/tags.d.ts +6 -0
  452. package/dist/transcript/tags.d.ts.map +1 -0
  453. package/dist/transcript/tags.js +13 -0
  454. package/dist/transcript/tags.js.map +1 -0
  455. package/dist/transcript/tool-card.d.ts +16 -0
  456. package/dist/transcript/tool-card.d.ts.map +1 -0
  457. package/dist/transcript/tool-card.js +87 -0
  458. package/dist/transcript/tool-card.js.map +1 -0
  459. package/dist/transcript/transcript.d.ts +103 -0
  460. package/dist/transcript/transcript.d.ts.map +1 -0
  461. package/dist/transcript/transcript.js +397 -0
  462. package/dist/transcript/transcript.js.map +1 -0
  463. package/dist/transcript/types.d.ts +161 -0
  464. package/dist/transcript/types.d.ts.map +1 -0
  465. package/dist/transcript/types.js +25 -0
  466. package/dist/transcript/types.js.map +1 -0
  467. package/docs/charts.md +58 -0
  468. package/docs/check-table.md +40 -0
  469. package/docs/data-table.md +57 -0
  470. package/docs/examples/charts.ts +61 -0
  471. package/docs/examples/check-table.ts +19 -0
  472. package/docs/examples/ci-pipeline.ts +271 -0
  473. package/docs/examples/data-table.ts +39 -0
  474. package/docs/examples/graph.ts +57 -0
  475. package/docs/examples/lanes.ts +40 -0
  476. package/docs/examples/matrix.ts +56 -0
  477. package/docs/examples/page.css +34 -0
  478. package/docs/examples/segmented.ts +18 -0
  479. package/docs/examples/status.ts +30 -0
  480. package/docs/examples/theme.css +54 -0
  481. package/docs/examples/tiles.ts +27 -0
  482. package/docs/examples/transcript.ts +59 -0
  483. package/docs/graph.md +112 -0
  484. package/docs/lanes.md +48 -0
  485. package/docs/matrix.md +34 -0
  486. package/docs/page.md +87 -0
  487. package/docs/primitives.md +57 -0
  488. package/docs/strings.md +16 -0
  489. package/docs/theming.md +147 -0
  490. package/docs/tiles.md +40 -0
  491. package/docs/transcript.md +73 -0
  492. package/docs/tsconfig.json +20 -0
  493. package/package.json +161 -4
  494. package/src/charts/bar-chart.ts +74 -0
  495. package/src/charts/base.ts +188 -0
  496. package/src/charts/column-chart.ts +153 -0
  497. package/src/charts/heatmap.ts +129 -0
  498. package/src/charts/index.ts +10 -0
  499. package/src/charts/line-chart.ts +128 -0
  500. package/src/charts/scale.ts +61 -0
  501. package/src/charts/state-grid.ts +245 -0
  502. package/src/charts/types.ts +48 -0
  503. package/src/checks/check-table.ts +85 -0
  504. package/src/checks/index.ts +5 -0
  505. package/src/checks/styles.ts +31 -0
  506. package/src/checks/types.ts +48 -0
  507. package/src/core/clock.ts +46 -0
  508. package/src/core/define.ts +7 -0
  509. package/src/core/events.ts +89 -0
  510. package/src/core/format.ts +25 -0
  511. package/src/core/frame.ts +5 -0
  512. package/src/core/strings.ts +11 -0
  513. package/src/core/tone.ts +14 -0
  514. package/src/count/count.ts +54 -0
  515. package/src/count/elapsed.ts +33 -0
  516. package/src/count/index.ts +4 -0
  517. package/src/define/all.ts +13 -0
  518. package/src/define/charts.ts +17 -0
  519. package/src/define/check-table.ts +9 -0
  520. package/src/define/count.ts +11 -0
  521. package/src/define/data-table.ts +9 -0
  522. package/src/define/graph.ts +11 -0
  523. package/src/define/json-tree.ts +9 -0
  524. package/src/define/lanes.ts +9 -0
  525. package/src/define/markdown.ts +9 -0
  526. package/src/define/matrix.ts +9 -0
  527. package/src/define/segmented.ts +9 -0
  528. package/src/define/tiles.ts +11 -0
  529. package/src/define/transcript.ts +9 -0
  530. package/src/graph/arrange.ts +399 -0
  531. package/src/graph/card.ts +209 -0
  532. package/src/graph/host.ts +100 -0
  533. package/src/graph/icons.ts +23 -0
  534. package/src/graph/index.ts +16 -0
  535. package/src/graph/layered-graph.ts +417 -0
  536. package/src/graph/layout.ts +331 -0
  537. package/src/graph/marks.ts +42 -0
  538. package/src/graph/nav.ts +19 -0
  539. package/src/graph/pan-zoom.ts +219 -0
  540. package/src/graph/paths.ts +41 -0
  541. package/src/graph/place-card.ts +93 -0
  542. package/src/graph/strings.ts +86 -0
  543. package/src/graph/styles.ts +204 -0
  544. package/src/graph/types.ts +202 -0
  545. package/src/graph/view.ts +28 -0
  546. package/src/graph/views/dag.ts +294 -0
  547. package/src/graph/views/foot.ts +109 -0
  548. package/src/graph/views/node-table.ts +90 -0
  549. package/src/index.ts +25 -0
  550. package/src/json/index.ts +2 -0
  551. package/src/json/json-tree.ts +49 -0
  552. package/src/lanes/index.ts +6 -0
  553. package/src/lanes/lanes.ts +143 -0
  554. package/src/lanes/stack.ts +51 -0
  555. package/src/lanes/styles.ts +30 -0
  556. package/src/lanes/types.ts +51 -0
  557. package/src/markdown/cae-markdown.ts +64 -0
  558. package/src/markdown/highlight.ts +94 -0
  559. package/src/markdown/index.ts +5 -0
  560. package/src/markdown/markdown.ts +110 -0
  561. package/src/matrix/grid-step.ts +58 -0
  562. package/src/matrix/index.ts +6 -0
  563. package/src/matrix/mark-matrix.ts +285 -0
  564. package/src/matrix/styles.ts +48 -0
  565. package/src/matrix/types.ts +83 -0
  566. package/src/primitives/fact-line.ts +26 -0
  567. package/src/primitives/icon.ts +26 -0
  568. package/src/primitives/index.ts +12 -0
  569. package/src/primitives/legend.ts +56 -0
  570. package/src/primitives/pill.ts +58 -0
  571. package/src/primitives/roving-focus.ts +138 -0
  572. package/src/primitives/segmented.ts +92 -0
  573. package/src/primitives/share-bar.ts +94 -0
  574. package/src/primitives/states.ts +28 -0
  575. package/src/primitives/window.ts +65 -0
  576. package/src/styles/chips.ts +18 -0
  577. package/src/styles/facts.ts +7 -0
  578. package/src/styles/index.ts +19 -0
  579. package/src/styles/layout.ts +33 -0
  580. package/src/styles/marks.ts +30 -0
  581. package/src/styles/meter.ts +9 -0
  582. package/src/styles/motion.ts +27 -0
  583. package/src/styles/prose.ts +59 -0
  584. package/src/styles/reset.ts +13 -0
  585. package/src/styles/status.ts +52 -0
  586. package/src/styles/text.ts +21 -0
  587. package/src/styles/tokens.ts +35 -0
  588. package/src/table/data-table.ts +367 -0
  589. package/src/table/index.ts +5 -0
  590. package/src/table/styles.ts +32 -0
  591. package/src/table/types.ts +73 -0
  592. package/src/themes/boot.ts +14 -0
  593. package/src/themes/choice.ts +47 -0
  594. package/src/themes/data.ts +433 -0
  595. package/src/themes/index.ts +10 -0
  596. package/src/themes/sheet.ts +29 -0
  597. package/src/themes/token-meanings.ts +67 -0
  598. package/src/themes/tokens-list.ts +82 -0
  599. package/src/tiles/index.ts +5 -0
  600. package/src/tiles/stat-tiles.ts +92 -0
  601. package/src/tiles/styles.ts +23 -0
  602. package/src/tiles/types.ts +20 -0
  603. package/src/transcript/follow-scroll.ts +72 -0
  604. package/src/transcript/index.ts +6 -0
  605. package/src/transcript/styles.ts +114 -0
  606. package/src/transcript/tags.ts +18 -0
  607. package/src/transcript/tool-card.ts +103 -0
  608. package/src/transcript/transcript.ts +358 -0
  609. package/src/transcript/types.ts +167 -0
@@ -0,0 +1,76 @@
1
+ /** Within this many pixels of the bottom, the list follows new content. */
2
+ const STICK_PX = 60;
3
+ /** How long a restored position waits for the content to grow tall enough. */
4
+ const RESTORE_GIVE_UP_MS = 4000;
5
+ export class FollowScroll {
6
+ constructor(scroller) {
7
+ this.scroller = scroller;
8
+ /** The reader is at the bottom: new content scrolls into view. */
9
+ this.stick = true;
10
+ /** The position was restored (or there was none to restore): from now on it is remembered. */
11
+ this.restored = false;
12
+ /** The last position, kept while the list is hidden. */
13
+ this.lastTop = 0;
14
+ /** A smooth scroll to the end is under way: its steps are not the reader leaving the end. */
15
+ this.gliding = false;
16
+ }
17
+ toBottom(smooth = false) {
18
+ const sc = this.scroller();
19
+ if (!sc)
20
+ return;
21
+ this.gliding = smooth;
22
+ if (smooth)
23
+ sc.scrollTo({ top: sc.scrollHeight, behavior: 'smooth' });
24
+ else
25
+ sc.scrollTop = sc.scrollHeight;
26
+ }
27
+ /** Reads the reader's position after a scroll; the position to remember, or null when there is none (hidden). */
28
+ read() {
29
+ const sc = this.scroller();
30
+ if (!sc || !sc.clientHeight)
31
+ return null; // hidden: no position to keep
32
+ const atEnd = sc.scrollHeight - sc.scrollTop - sc.clientHeight < STICK_PX;
33
+ // While gliding to the end, only a move up is the reader's; the glide ends at the end.
34
+ if (this.gliding && (sc.scrollTop < this.lastTop - 1 || atEnd))
35
+ this.gliding = false;
36
+ this.stick = atEnd || this.gliding;
37
+ this.lastTop = sc.scrollTop;
38
+ return { stick: this.stick, top: Math.round(sc.scrollTop) };
39
+ }
40
+ /** Puts the reader back at `saved` (the end when undefined), waiting while the content is still shorter; `stale` stops it. */
41
+ async restore(saved, stale) {
42
+ const sc = this.scroller();
43
+ if (!saved || saved.stick || !sc) {
44
+ this.stick = true;
45
+ this.toBottom();
46
+ }
47
+ else {
48
+ this.stick = false;
49
+ const until = performance.now() + RESTORE_GIVE_UP_MS;
50
+ await new Promise((done) => {
51
+ const step = () => {
52
+ const max = sc.scrollHeight - sc.clientHeight;
53
+ sc.scrollTop = Math.min(saved.top, max);
54
+ if (max >= saved.top || performance.now() > until || stale())
55
+ done();
56
+ else
57
+ requestAnimationFrame(step);
58
+ };
59
+ step();
60
+ });
61
+ this.lastTop = sc.scrollTop;
62
+ }
63
+ this.restored = true;
64
+ }
65
+ /** Shown again after being hidden: back at the end, or where the reader was. */
66
+ reshow() {
67
+ const sc = this.scroller();
68
+ if (!sc)
69
+ return;
70
+ if (this.stick)
71
+ this.toBottom();
72
+ else
73
+ sc.scrollTop = this.lastTop;
74
+ }
75
+ }
76
+ //# sourceMappingURL=follow-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-scroll.js","sourceRoot":"","sources":["../../src/transcript/follow-scroll.ts"],"names":[],"mappings":"AAIA,2EAA2E;AAC3E,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,OAAO,YAAY;IAUvB,YAA6B,QAA8C;QAA9C,aAAQ,GAAR,QAAQ,CAAsC;QAT3E,kEAAkE;QAClE,UAAK,GAAG,IAAI,CAAC;QACb,8FAA8F;QAC9F,aAAQ,GAAG,KAAK,CAAC;QACjB,wDAAwD;QACxD,YAAO,GAAG,CAAC,CAAC;QACZ,6FAA6F;QACrF,YAAO,GAAG,KAAK,CAAC;IAEsD,CAAC;IAE/E,QAAQ,CAAC,MAAM,GAAG,KAAK;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,MAAM;YAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;;YACjE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC;IACtC,CAAC;IAED,iHAAiH;IACjH,IAAI;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,CAAC,8BAA8B;QACxE,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC1E,uFAAuF;QACvF,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrF,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,8HAA8H;IAC9H,KAAK,CAAC,OAAO,CAAC,KAAmC,EAAE,KAAoB;QACrE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;YACrD,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,GAAG,GAAG,EAAE;oBAChB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;oBAC9C,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACxC,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE;wBAAE,IAAI,EAAE,CAAC;;wBAChE,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC,CAAC;gBACF,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,gFAAgF;IAChF,MAAM;QACJ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;;YAC3B,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './styles.js';
3
+ export * from './tags.js';
4
+ export * from './transcript.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transcript/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ // A conversation with an agent: `@contraagent/elements/transcript`.
2
+ // `CaeTranscript` is registered by `@contraagent/elements/transcript/define`.
3
+ export * from './types.js';
4
+ export * from './styles.js';
5
+ export * from './tags.js';
6
+ export * from './transcript.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transcript/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,8EAA8E;AAC9E,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const transcriptStyles: import("lit").CSSResult;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/transcript/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBA+G5B,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { css } from 'lit';
2
+ export const transcriptStyles = css `
3
+ :host { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; position: relative; }
4
+ :host([mode='none']) { display: none; }
5
+ :host([mode='tabs']) { flex: none; }
6
+ :host([mode='tabs']) .scroller, :host([mode='tabs']) .newpill { display: none; }
7
+
8
+ .rounds { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 10px; padding-left: 2px; }
9
+ .rounds-lbl { color: var(--text-muted); font-size: 11.5px; font-weight: 600; margin-right: 4px; cursor: help; }
10
+ .stab { padding: 3px 11px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--text-muted);
11
+ cursor: pointer; font-size: 12px; display: inline-flex; align-items: center; }
12
+ .stab:hover { border-color: var(--accent); }
13
+ .stab.sel { background: var(--accent-bg); border-color: var(--accent); color: var(--text); }
14
+ .stab-m { font-family: var(--mono); font-size: 10.5px; color: var(--text-muted); margin-left: 4px; }
15
+ /* on the selected tab's tint, the secondary words take the secondary text colour, which reads on it */
16
+ .stab.sel .stab-m { color: var(--text-2); }
17
+ .stab .dot { width: 6px; height: 6px; margin-left: 4px; }
18
+ .stab .mk { margin-right: 4px; }
19
+ .stab .mk.ok { color: var(--status-done); }
20
+ .stab .mk.bad { color: var(--status-failed); }
21
+ .verdict { margin: 6px 10px 4px 41px; padding: 7px 11px; border-radius: 10px; border: 1px solid; font-size: 12px; }
22
+ .verdict[data-tone] { background: var(--tone-bg); color: var(--text); }
23
+ .verdict[data-tone='attention'] { border-color: color-mix(in srgb, var(--tone) 40%, transparent); }
24
+ .verdict[data-tone='failed'] { border-color: color-mix(in srgb, var(--tone) 45%, transparent); }
25
+ .verdict b { display: block; margin-bottom: 2px; }
26
+ .verdict ul { margin: 2px 0 0; padding-left: 18px; font-family: var(--mono); font-size: 11.5px; }
27
+
28
+ .scroller { flex: 1 1 auto; min-height: 0; overflow: auto; border: 1px solid var(--line); border-radius: 14px;
29
+ background: linear-gradient(180deg, var(--panel), var(--well)); padding: 4px 2px 8px; font-size: 12.5px; }
30
+ .back { margin: 6px 10px; background: var(--raise); border: 1px solid var(--line2); border-radius: 8px; padding: 3px 10px; cursor: pointer; color: var(--text-2); }
31
+ .back:hover { border-color: var(--accent); }
32
+
33
+ .inv-body { display: flex; flex-direction: column; gap: 10px; }
34
+ .inv-head { border: 1px solid var(--line2); border-radius: 12px; background: var(--raise); padding: 8px 10px; margin: 4px 8px 6px; }
35
+ .inv-who { display: flex; flex-wrap: wrap; gap: 6px; }
36
+ .inv-cmdbox { margin-top: 6px; }
37
+ .inv-cmdbox summary, .inv-prompt summary { cursor: pointer; font-size: 11px; color: var(--text-muted); }
38
+ .inv-prompt summary { font-size: 11.5px; }
39
+ .inv-prompt summary:hover { color: var(--accent); }
40
+ .inv-cmd { font-family: var(--mono); font-size: 11.5px; white-space: pre-wrap; word-break: break-all; margin: 4px 0 6px; max-height: 160px; overflow: auto; color: var(--text); }
41
+ .inv-ptext { margin-top: 6px; max-height: 360px; overflow: auto; }
42
+
43
+ .msg { display: flex; gap: 9px; padding: 3px 10px; }
44
+ .av { width: 22px; height: 22px; flex: 0 0 22px; border-radius: 7px; line-height: 22px; font-size: 11px; text-align: center; font-weight: 700; }
45
+ .av-a { background: var(--agent-bg); color: var(--agent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--agent) 35%, transparent); }
46
+ .av-l { background: var(--raise); color: var(--text-2); }
47
+ .av-t { background: var(--raise); color: var(--text-muted); }
48
+ .bd { flex: 1; min-width: 0; background: color-mix(in srgb, var(--text) 2.5%, transparent); border: 1px solid var(--line); border-radius: 3px 10px 10px 10px; padding: 5px 10px; }
49
+ .hd { font-size: 11px; font-weight: 600; color: var(--text-muted); margin-bottom: 1px; }
50
+ .tx { color: var(--text); line-height: 1.5; word-break: break-word; }
51
+ .tx pre, .tx code { white-space: pre-wrap; }
52
+ .tx pre { margin: 0 0 4px; }
53
+
54
+ .toolcard, .typing { margin-left: 41px; margin-right: 10px; }
55
+ .toolcard { border: 1px solid var(--line); border-left: 3px solid var(--line2); border-radius: 10px; margin-top: 3px; margin-bottom: 3px;
56
+ overflow: hidden; background: var(--well); transition: border-color 0.3s; }
57
+ .toolcard.run { border-left-color: var(--status-running); }
58
+ .toolcard.err { border-left-color: var(--status-failed); }
59
+ .th { display: flex; gap: 9px; align-items: baseline; padding: 4px 9px; cursor: pointer; }
60
+ .th:hover { background: color-mix(in srgb, var(--text) 4%, transparent); }
61
+ .tn { font-family: var(--mono); font-weight: 600; flex: none; display: inline-flex; align-items: center; }
62
+ .tn::before { content: '⚒'; display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 7px;
63
+ border-radius: 6px; background: var(--raise); color: var(--text-2); font-size: 11px; }
64
+ /* a tool's icon: its shape tells the tool; the colour stays neutral (a colour is a status) */
65
+ .toolcard[data-tool='bash'] .tn::before { content: '❯'; }
66
+ .toolcard[data-tool='read'] .tn::before { content: '▤'; }
67
+ .toolcard[data-tool='grep'] .tn::before, .toolcard[data-tool='glob'] .tn::before { content: '⌕'; }
68
+ .toolcard[data-tool='edit'] .tn::before, .toolcard[data-tool='write'] .tn::before { content: '✎'; }
69
+ .toolcard[data-tool='task'] .tn::before, .toolcard[data-tool='agent'] .tn::before { content: '✦'; color: var(--agent); }
70
+ .toolcard[data-tool='web-search'] .tn::before { content: '◍'; }
71
+ .toolcard[data-tool='web-fetch'] .tn::before { content: '⇣'; }
72
+ .toolcard.revealed { box-shadow: 0 0 0 1px var(--accent); }
73
+ .tp { font-family: var(--mono); font-size: 11.5px; color: var(--text); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
74
+ .ti { color: var(--text-muted); font-size: 11px; flex: none; max-width: 35%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
75
+ .st-run, .st-ok, .st-err, .st-int { flex: none; white-space: nowrap; }
76
+ .st-run { color: var(--status-running); display: inline-flex; align-items: center; gap: 6px; }
77
+ .st-ok { color: var(--text-muted); }
78
+ .st-ok > [aria-hidden] { color: var(--status-done); font-weight: 700; }
79
+ .st-err { color: var(--status-failed); }
80
+ .st-int { color: var(--status-attention); }
81
+ .pdot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--status-running); animation: breathe 1.8s ease-in-out infinite; }
82
+ .tb { padding: 6px 9px; border-top: 1px solid var(--line); background: var(--bg); }
83
+ .tb pre { white-space: pre-wrap; word-break: break-word; margin: 4px 0; font-family: var(--mono); font-size: 12px; }
84
+ .fold { max-height: 220px; overflow: hidden; position: relative; }
85
+ .fold.open { max-height: none; }
86
+ .foldbtn { cursor: pointer; color: var(--accent); font-size: 11px; background: none; border: 0; padding: 0; font-family: inherit; }
87
+ .wq { font-size: 12px; margin: 2px 0 6px; }
88
+ .wq b { font-family: var(--mono); font-weight: 600; }
89
+ .wl { color: var(--text-muted); font-size: 11px; margin-right: 6px; }
90
+ .links { margin: 0 0 6px; padding-left: 30px; font-size: 12px; }
91
+ .links li { margin: 2px 0; overflow-wrap: anywhere; }
92
+ .links a { color: var(--accent); text-decoration: none; }
93
+ .links a:hover { text-decoration: underline; }
94
+ .rawfold > summary { cursor: pointer; color: var(--text-muted); font-size: 11px; }
95
+ .plink { color: var(--accent); text-decoration: none; font-family: var(--mono); overflow-wrap: anywhere; }
96
+ .plink:hover { text-decoration: underline; }
97
+ .host { color: var(--text-muted); font-family: var(--mono); font-size: 11px; margin-left: 6px; }
98
+
99
+ .sysline { display: flex; gap: 8px; align-items: baseline; padding: 2px 10px 2px 41px; font-size: 11px; color: var(--text-muted); font-family: var(--mono); }
100
+ .sysline .tx { color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
101
+ .typing { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
102
+ .typing .av { width: 26px; height: 26px; flex: 0 0 26px; border-radius: 9px; display: grid; place-items: center; font-size: 12px; }
103
+ .dots { display: inline-flex; gap: 4px; padding: 8px 12px; border-radius: 12px; background: var(--agent-bg); }
104
+ .dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--agent); animation: bounce 1.2s infinite ease-in-out; }
105
+ .dots i:nth-child(2) { animation-delay: 0.15s; }
106
+ .dots i:nth-child(3) { animation-delay: 0.3s; }
107
+ .scroller:not(.bulk) .msg, .scroller:not(.bulk) .toolcard { animation: enter 0.35s var(--ease) both; }
108
+
109
+ .newpill { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 5; cursor: pointer; padding: 6px 14px;
110
+ border-radius: 999px; border: 1px solid var(--accent); background: color-mix(in srgb, var(--panel) 92%, transparent); color: var(--accent);
111
+ font-size: 12px; font-weight: 600; box-shadow: 0 10px 28px color-mix(in srgb, var(--shadow) 50%, transparent); backdrop-filter: blur(6px); animation: toast-in 0.3s var(--ease) both; }
112
+ .newpill:hover { background: var(--accent-bg); }
113
+ `;
114
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/transcript/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GlC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import type { TranscriptTag } from './types.js';
3
+ /** `tags` as chips (`tagStyles`). */
4
+ export declare const tagChips: (tags: readonly TranscriptTag[]) => TemplateResult;
5
+ export declare const tagStyles: import("lit").CSSResult;
6
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/transcript/tags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qCAAqC;AACrC,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,aAAa,EAAE,KAAG,cAGrD,CAAC;AAEN,eAAO,MAAM,SAAS,yBAMrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Labelled values as chips (who ran a session): facts, not statuses, so they
2
+ // are neutral; the label is muted and the value in the text colour.
3
+ import { css, html, nothing } from 'lit';
4
+ /** `tags` as chips (`tagStyles`). */
5
+ export const tagChips = (tags) => html `${tags.map((t) => html `<span class="tag ${t.look ?? ''}" part="tag" title=${t.tip ?? nothing}><span class="tag-l">${t.label}</span>${t.value}</span>`)}`;
6
+ export const tagStyles = css `
7
+ .tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; padding: 2px 9px;
8
+ border-radius: 7px; border: 1px solid var(--line2); white-space: nowrap; color: var(--text); background: var(--raise); }
9
+ .tag-l { font-size: 10px; font-weight: 400; color: var(--text-muted); font-family: var(--sans); }
10
+ .tag.mono, .tag.quiet { font-family: var(--mono); }
11
+ .tag.quiet { color: var(--text-2); font-weight: 500; background: none; }
12
+ `;
13
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/transcript/tags.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,oEAAoE;AACpE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AAG9D,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAA8B,EAAkB,EAAE,CACzE,IAAI,CAAA,GAAG,IAAI,CAAC,GAAG,CACb,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,oBAAoB,CAAC,CAAC,IAAI,IAAI,EAAE,sBAAsB,CAAC,CAAC,GAAG,IAAI,OAAO,wBAAwB,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,KAAK,SAAS,CAC3I,EAAE,CAAC;AAEN,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;CAM3B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import type { ToolCard, TranscriptStrings } from './types.js';
3
+ /** What a card needs of the element that draws it. */
4
+ export interface CardHost {
5
+ s: TranscriptStrings;
6
+ live: boolean;
7
+ /** The card scrolled to by `reveal`. */
8
+ revealed: string;
9
+ isOpen(id: string): boolean;
10
+ toggle(id: string): void;
11
+ /** The folded code blocks that are unfolded. */
12
+ folds: Set<string>;
13
+ requestUpdate(): void;
14
+ }
15
+ export declare function toolCard(h: CardHost, c: ToolCard): TemplateResult;
16
+ //# sourceMappingURL=tool-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-card.d.ts","sourceRoot":"","sources":["../../src/transcript/tool-card.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO9D,sDAAsD;AACtD,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,iBAAiB,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gDAAgD;IAChD,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,aAAa,IAAI,IAAI,CAAC;CACvB;AAuDD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,cAAc,CAyBjE"}
@@ -0,0 +1,87 @@
1
+ // A tool call as a card: its name, summary and status on one line; open, its
2
+ // command and output (long ones folded), or a web search's query and the pages
3
+ // it returned, or a page's URL.
4
+ import { html, nothing } from 'lit';
5
+ /** Tool output longer than this is folded. */
6
+ const FOLD_AT = 1200;
7
+ /** A tool card shows at most this much of a command or an output. */
8
+ const SHOW_MAX = 4000;
9
+ /** The host of a URL, for the line under a result; '' when it does not parse. */
10
+ function hostOf(url) {
11
+ try {
12
+ return new URL(url).host;
13
+ }
14
+ catch {
15
+ return '';
16
+ }
17
+ }
18
+ function codeBlock(h, text, id) {
19
+ const pre = html `<pre><code>${text.slice(0, SHOW_MAX)}</code></pre>`;
20
+ if (text.length <= FOLD_AT)
21
+ return pre;
22
+ const open = h.folds.has(id);
23
+ return html `<div>
24
+ <div class="fold ${open ? 'open' : ''}">${pre}</div>
25
+ <button type="button" class="foldbtn" @click=${() => {
26
+ if (open)
27
+ h.folds.delete(id);
28
+ else
29
+ h.folds.add(id);
30
+ h.requestUpdate();
31
+ }}>${open ? h.s.showLess : h.s.showAll(text.length)}</button>
32
+ </div>`;
33
+ }
34
+ /** The open card's body: a web search's query and its links, or a page's URL, or the command; then the output. */
35
+ function cardBody(h, c) {
36
+ const out = c.output;
37
+ const links = c.links ?? [];
38
+ const subject = c.query || c.page;
39
+ if (!subject) {
40
+ return out === null
41
+ ? codeBlock(h, c.body ?? '', `${c.id}:cmd`)
42
+ : html `${c.body ? codeBlock(h, c.body, `${c.id}:cmd`) : nothing}${codeBlock(h, out, `${c.id}:out`)}`;
43
+ }
44
+ const url = !c.query && /^https?:\/\//.test(subject);
45
+ return html `<div class="wq">
46
+ <span class="wl">${c.query ? h.s.query : h.s.page}</span>${url
47
+ ? html `<a class="plink" href=${subject} target="_blank" rel="noopener noreferrer">${subject}</a>`
48
+ : html `<b>${subject}</b>`}
49
+ </div>
50
+ ${links.length
51
+ ? html `<ol class="links">
52
+ ${links.map((r) => html `<li><a href=${r.url} target="_blank" rel="noopener noreferrer">${r.title}</a><span class="host">${hostOf(r.url)}</span></li>`)}
53
+ </ol>`
54
+ : nothing}
55
+ ${out === null
56
+ ? nothing
57
+ : links.length
58
+ ? html `<details class="rawfold"><summary>${h.s.fullText}</summary>${codeBlock(h, out, `${c.id}:out`)}</details>`
59
+ : codeBlock(h, out, `${c.id}:out`)}`;
60
+ }
61
+ export function toolCard(h, c) {
62
+ const { s } = h;
63
+ const open = h.isOpen(c.id);
64
+ const n = c.links?.length ?? 0;
65
+ const status = c.status === 'ok'
66
+ ? html `<span class="st-ok"><span aria-hidden="true">✓</span> ${s.done}</span>`
67
+ : c.status === 'error'
68
+ ? html `<span class="st-err"><span aria-hidden="true">✕</span> ${s.failed}</span>`
69
+ : h.live
70
+ ? html `<span class="st-run"><i class="pdot"></i>${s.running}</span>`
71
+ : html `<span class="st-int" title=${s.interruptedTip}><span aria-hidden="true">◌</span> ${s.interrupted}</span>`;
72
+ const cls = c.status === 'running' ? 'run' : c.status === 'error' ? 'err' : 'ok';
73
+ return html `<div class="toolcard ${cls} ${h.revealed === c.id ? 'revealed' : ''}" part="tool" data-tool=${c.query ? 'web-search' : c.page ? 'web-fetch' : c.icon} data-card=${c.id}>
74
+ <div class="th" role="button" tabindex="0" aria-expanded=${open ? 'true' : 'false'} @click=${() => h.toggle(c.id)} @keydown=${(e) => {
75
+ if (e.key !== 'Enter' && e.key !== ' ')
76
+ return;
77
+ e.preventDefault();
78
+ e.currentTarget.click();
79
+ }}>
80
+ <span class="tn">${c.name || s.tool}</span><span class="tp">${c.summary}</span><span class="ti"
81
+ >${n ? s.results(n) : c.intent}</span
82
+ >${status}
83
+ </div>
84
+ ${open ? html `<div class="tb" part="tool-body">${cardBody(h, c)}</div>` : nothing}
85
+ </div>`;
86
+ }
87
+ //# sourceMappingURL=tool-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-card.js","sourceRoot":"","sources":["../../src/transcript/tool-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
2
+ import { type TranscriptDetail, type TranscriptMemory, type TranscriptSection, type TranscriptStrings } from './types.js';
3
+ /**
4
+ * A conversation with an agent, in sections (one session each): chat bubbles,
5
+ * reasoning, notices and collapsible tool cards (a web search lists the pages
6
+ * it returned as links). Above two sections, a picker shows one at a time;
7
+ * the latest is followed unless `shown` names another. While the reader is at
8
+ * the bottom, new content scrolls into view; once they scroll up, it stays,
9
+ * and a button counts what arrived below. A new section that starts while
10
+ * they read the latest one keeps the one they read on screen.
11
+ *
12
+ * Give it a new element (or set `loading` until the content arrives) for
13
+ * another transcript: what the reader opened and where they were belong to one
14
+ * transcript, kept in `memory`.
15
+ *
16
+ * @tagname cae-transcript
17
+ * @fires cae-section-change - `{index}`: the reader picked a section (null: the latest)
18
+ * @fires cae-section-shown - `{index}`: the section on screen changed (-1: none)
19
+ * @fires cae-load-earlier - the reader asked for the content before `earlier`
20
+ * @csspart picker - the section picker
21
+ * @csspart section - the section shown
22
+ * @csspart tag - a chip at the head of the section
23
+ * @csspart bubble - a prompt, an answer, reasoning or an event
24
+ * @csspart notice - a line of the agent's log
25
+ * @csspart tool - a tool card
26
+ * @csspart tool-body - an open tool card's body
27
+ * @csspart verdict - the box after the items (`footer`)
28
+ */
29
+ export declare class CaeTranscript extends LitElement {
30
+ static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
31
+ sections: readonly TranscriptSection[];
32
+ /** The section to show, 0-based; null follows the latest. */
33
+ shown: number | null;
34
+ /** The transcript is still being written: it shows the agent working; a tool call with no result is running, not interrupted. */
35
+ live: boolean;
36
+ /** Lines before the content that are not loaded: above 0, a button asks for them (`cae-load-earlier`). */
37
+ earlier: number;
38
+ /** The content has not arrived yet: the reader's position is restored once it has. */
39
+ loading: boolean;
40
+ /** How much the transcript holds, for the count of what arrived below; by default its sections and items. */
41
+ count: number | null;
42
+ /** `full`; `tabs`: only the section picker; `none`: hidden. */
43
+ mode: 'full' | 'tabs' | 'none';
44
+ /** Where the open tool cards and the scroll position are kept. */
45
+ memory: TranscriptMemory | null;
46
+ /** Markdown to safe HTML (the text escaped), for answers and reasoning; without it they show as plain text. */
47
+ markdown: ((text: string) => string) | null;
48
+ /** Draws an open prose detail (a prompt); by default as `markdown`. */
49
+ renderDetail: ((detail: TranscriptDetail) => unknown) | null;
50
+ strings: Partial<TranscriptStrings>;
51
+ private bulk;
52
+ private unseen;
53
+ /** A section kept on screen while the reader reads it and a new one starts (`shown` still says "latest"). */
54
+ private pinned;
55
+ /** The card `reveal` asked for: scrolled to once it is drawn. */
56
+ private revealed;
57
+ private revealPending;
58
+ private scroller?;
59
+ private readonly follow;
60
+ private started;
61
+ private total;
62
+ /** The next `sections` is the content again, from further back (`cae-load-earlier`). */
63
+ private reloading;
64
+ private lastShown;
65
+ private readonly opened;
66
+ private readonly folds;
67
+ private readonly openDetails;
68
+ private readonly mdCache;
69
+ /** The section on screen, 0-based; -1 with none. */
70
+ get shownIndex(): number;
71
+ /**
72
+ * Opens the tool card `id` and scrolls it into view once its section is shown.
73
+ * Returns that section's index (the host shows it), or -1 when no section has the card.
74
+ */
75
+ reveal(id: string): number;
76
+ private onLatest;
77
+ private isOpen;
78
+ private setOpen;
79
+ protected willUpdate(changed: PropertyValues<this>): void;
80
+ /** The first content is drawn without entry animations, then the reader is put back where they were. */
81
+ private afterFirst;
82
+ private onScroll;
83
+ protected updated(changed: PropertyValues<this>): void;
84
+ private pick;
85
+ private toLatest;
86
+ private loadEarlier;
87
+ render(): TemplateResult<1>;
88
+ private renderPicker;
89
+ private renderSection;
90
+ private renderHead;
91
+ /** A prose detail is drawn only while it is open. */
92
+ private renderProse;
93
+ private md;
94
+ private bubble;
95
+ private renderItem;
96
+ private typing;
97
+ }
98
+ declare global {
99
+ interface HTMLElementTagNameMap {
100
+ 'cae-transcript': CaeTranscript;
101
+ }
102
+ }
103
+ //# sourceMappingURL=transcript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/transcript/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAa1F,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,0DAA8C;IAEpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAM;IAC5E,6DAA6D;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5D,iIAAiI;IACpG,IAAI,UAAS;IAC1C,0GAA0G;IAC9E,OAAO,SAAK;IACxC,sFAAsF;IACzD,OAAO,UAAS;IAC7C,6GAA6G;IAC7E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5D,+DAA+D;IAClC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IACrE,kEAAkE;IAClC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACvE,+GAA+G;IAC/E,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAQ;IACnF,uEAAuE;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;IACpE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAM;IAEhE,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,MAAM,CAAK;IAC5B,6GAA6G;IACpG,OAAO,CAAC,MAAM,CAAuB;IAC9C,iEAAiE;IACxD,OAAO,CAAC,QAAQ,CAAM;IAC/B,OAAO,CAAC,aAAa,CAAS;IAEV,OAAO,CAAC,QAAQ,CAAC,CAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAK;IAClB,wFAAwF;IACxF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAE5E,oDAAoD;IACpD,IAAI,UAAU,IAAI,MAAM,CAKvB;IAED;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAW1B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;cAMI,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA8BlE,wGAAwG;YAC1F,UAAU;IAMxB,OAAO,CAAC,QAAQ;cAOG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAyB/D,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;IAKV,MAAM;IAgCf,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,UAAU;IAOlB,qDAAqD;IACrD,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,EAAE;IASV,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}