pmx-canvas 0.11.0 → 0.12.1

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 (300) hide show
  1. package/.github/extensions/pmx-canvas/extension.mjs +4 -1
  2. package/.github/extensions/pmx-canvas/runtime.json +1 -1
  3. package/.github/extensions/pmx-canvas/tools.json +440 -18
  4. package/CHANGELOG.md +51 -0
  5. package/dist/amp-plugin/pmx-canvas/LICENSE +21 -0
  6. package/dist/amp-plugin/pmx-canvas/THIRD_PARTY_LICENSES.txt +331 -0
  7. package/dist/amp-plugin/pmx-canvas/index.js +5445 -0
  8. package/dist/amp-plugin/pmx-canvas/runtime.json +3 -0
  9. package/dist/amp-plugin/pmx-canvas/shared-runtime.mjs +194 -0
  10. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/SKILL.md +267 -0
  11. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/evals.json +1168 -0
  12. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/jwt.ts +17 -0
  13. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/login.ts +12 -0
  14. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/auth/middleware.ts +13 -0
  15. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/code-exploration/src/routes/auth.ts +13 -0
  16. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/evals/fixtures/investigation-board/src/handlers/users.ts +27 -0
  17. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/mcp.json +36 -0
  18. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/ax-html-control-surface.md +101 -0
  19. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/codex-app-adapter.md +151 -0
  20. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/excalidraw-diagram-authoring.md +150 -0
  21. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/full-reference.md +1839 -0
  22. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/github-copilot-app-adapter.md +223 -0
  23. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/html-primitives.md +139 -0
  24. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/importing-context.md +132 -0
  25. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/installing-pmx-canvas.md +301 -0
  26. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/tours-and-recording.md +117 -0
  27. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas/references/workbench-workflows.md +908 -0
  28. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-orchestration/SKILL.md +141 -0
  29. package/dist/amp-plugin/pmx-canvas/skills/pmx-canvas-testing/SKILL.md +266 -0
  30. package/dist/amp-plugin/pmx-canvas/start-mcp.mjs +14857 -0
  31. package/dist/amp-plugin/pmx-canvas/tools.json +10963 -0
  32. package/dist/canvas/chunks/{abnfDiagram-N423BO3Z-p8dtp6va.js → abnfDiagram-N423BO3Z-cwtsds5d.js} +1 -1
  33. package/dist/canvas/chunks/architecture-TIHT7OUA-x63cwejs.js +1 -0
  34. package/dist/canvas/chunks/{architectureDiagram-T3A2C74G-5jhmxrzf.js → architectureDiagram-T3A2C74G-b4xc9tpz.js} +3 -3
  35. package/dist/canvas/chunks/{blockDiagram-VBNYF7ZC-pw1fa9yb.js → blockDiagram-VBNYF7ZC-ahp3yxxs.js} +7 -7
  36. package/dist/canvas/chunks/{c4Diagram-5PPSVZJV-x07nq0tt.js → c4Diagram-5PPSVZJV-nappnay7.js} +4 -4
  37. package/dist/canvas/chunks/classDiagram-JCYQIIEL-k1j2xc1t.js +1 -0
  38. package/dist/canvas/chunks/classDiagram-v2-OCEON4UE-33x08xf2.js +1 -0
  39. package/dist/canvas/chunks/{cose-bilkent-JH36ORCC-nm39npq0.js → cose-bilkent-JH36ORCC-a428syda.js} +1 -1
  40. package/dist/canvas/chunks/cynefin-VYW2F7L2-8v6jxfz8.js +1 -0
  41. package/dist/canvas/chunks/{cynefinDiagram-MW4NZA55-vdxrwahz.js → cynefinDiagram-MW4NZA55-nspsqebj.js} +1 -1
  42. package/dist/canvas/chunks/{dagre-VZM6K2ZE-bqdm7wpd.js → dagre-VZM6K2ZE-8y6177fh.js} +2 -2
  43. package/dist/canvas/chunks/{diagram-7IWD3JNH-gs5gpr93.js → diagram-7IWD3JNH-vym028wn.js} +4 -4
  44. package/dist/canvas/chunks/{diagram-B4RE2ZJO-cgwjg47s.js → diagram-B4RE2ZJO-jddqb8sy.js} +1 -1
  45. package/dist/canvas/chunks/{diagram-LBJQPF4R-w3vahpav.js → diagram-LBJQPF4R-bjwbpkrn.js} +1 -1
  46. package/dist/canvas/chunks/{diagram-Q27KOJAE-42837z6h.js → diagram-Q27KOJAE-j6ph6hcx.js} +2 -2
  47. package/dist/canvas/chunks/{diagram-UB23O5K3-4fz83q59.js → diagram-UB23O5K3-p09w8jej.js} +1 -1
  48. package/dist/canvas/chunks/{ebnfDiagram-BXEA7PRR-zphtgegj.js → ebnfDiagram-BXEA7PRR-j975ycq5.js} +1 -1
  49. package/dist/canvas/chunks/{erDiagram-JOGREHBK-zvbbdxp4.js → erDiagram-JOGREHBK-sxp6hjn8.js} +5 -5
  50. package/dist/canvas/chunks/eventmodeling-45OFAUF4-xzfgn6xg.js +1 -0
  51. package/dist/canvas/chunks/flowDiagram-UKHOOZJN-2nsmkskb.js +1 -0
  52. package/dist/canvas/chunks/{ganttDiagram-PKOTCBZU-282jzycm.js → ganttDiagram-PKOTCBZU-4tv230y2.js} +2 -2
  53. package/dist/canvas/chunks/gitGraph-TEB2WS4Q-macbhand.js +1 -0
  54. package/dist/canvas/chunks/{gitGraphDiagram-DS77QQ5N-vqqy6p1b.js → gitGraphDiagram-DS77QQ5N-mqgmnw9g.js} +1 -1
  55. package/dist/canvas/chunks/{index-wgv7en21.js → index-037z5dz2.js} +2 -2
  56. package/dist/canvas/chunks/{index-w2mra17t.js → index-081n3har.js} +1 -1
  57. package/dist/canvas/chunks/{index-353m7b0p.js → index-5n03dmb9.js} +1 -1
  58. package/dist/canvas/chunks/{index-yw8h9vha.js → index-60pgzdqe.js} +1 -1
  59. package/dist/canvas/chunks/index-8g1vb57n.js +2 -0
  60. package/dist/canvas/chunks/{index-vv56h019.js → index-8rjes9r6.js} +1 -1
  61. package/dist/canvas/chunks/{index-nprm96xp.js → index-9022d1n9.js} +1 -1
  62. package/dist/canvas/chunks/{index-194m3hc3.js → index-9b02042t.js} +1 -1
  63. package/dist/canvas/chunks/{index-0rk4gp1g.js → index-ap4q4vez.js} +1 -1
  64. package/dist/canvas/chunks/{index-rh7nv68n.js → index-dyp2nhd3.js} +1 -1
  65. package/dist/canvas/chunks/index-frvta4tm.js +2 -0
  66. package/dist/canvas/chunks/{index-s4j678gj.js → index-h9ycj8n2.js} +1 -1
  67. package/dist/canvas/chunks/{index-fjtdggjn.js → index-mergmj97.js} +2 -2
  68. package/dist/canvas/chunks/index-nwsya6dj.js +301 -0
  69. package/dist/canvas/chunks/{index-3cy1bzwh.js → index-nz8qbd1p.js} +1 -1
  70. package/dist/canvas/chunks/{index-d3b3gqe9.js → index-qhfrazv3.js} +1 -1
  71. package/dist/canvas/chunks/{index-6qmsnxwy.js → index-v119nznk.js} +4 -4
  72. package/dist/canvas/chunks/{index-r2fyc9w1.js → index-vpt37m3d.js} +6 -6
  73. package/dist/canvas/chunks/{index-qj8fxwsf.js → index-y9ma6azy.js} +1 -1
  74. package/dist/canvas/chunks/{index-tb1wf525.js → index-zx0j3a2z.js} +26 -26
  75. package/dist/canvas/chunks/info-DKCQHKI2-a0ykzs9z.js +1 -0
  76. package/dist/canvas/chunks/{infoDiagram-6WML65LV-v1yvggqj.js → infoDiagram-6WML65LV-qv97qq6a.js} +2 -2
  77. package/dist/canvas/chunks/ishikawaDiagram-WSZJBQD7-p9306gh0.js +70 -0
  78. package/dist/canvas/chunks/{journeyDiagram-NVQOT4AX-zjcffveh.js → journeyDiagram-NVQOT4AX-sv67zats.js} +5 -5
  79. package/dist/canvas/chunks/{kanban-definition-27J2QSJJ-dakqtfp1.js → kanban-definition-27J2QSJJ-k2pfam6p.js} +1 -1
  80. package/dist/canvas/chunks/{mermaid.core-j2geswrd.js → mermaid.core-83r0fdce.js} +4 -4
  81. package/dist/canvas/chunks/{mindmap-definition-FAOFIHXS-142xhr3k.js → mindmap-definition-FAOFIHXS-vg2newm1.js} +1 -1
  82. package/dist/canvas/chunks/packet-7NZHBO7P-tqnabcdv.js +1 -0
  83. package/dist/canvas/chunks/{pegDiagram-VL7TDLO6-5wvk7vsd.js → pegDiagram-VL7TDLO6-k2h7zc5n.js} +1 -1
  84. package/dist/canvas/chunks/pie-RZYD4A2V-wke6gyhe.js +1 -0
  85. package/dist/canvas/chunks/{pieDiagram-7S7Q4E2Y-ztdhwycc.js → pieDiagram-7S7Q4E2Y-hg169p1v.js} +2 -2
  86. package/dist/canvas/chunks/{quadrantDiagram-CIZ2JOQS-c5p9gmg6.js → quadrantDiagram-CIZ2JOQS-bxtvsq0b.js} +5 -5
  87. package/dist/canvas/chunks/radar-I7S5WNFK-w7ka0drw.js +1 -0
  88. package/dist/canvas/chunks/railroad-3IZDKUUU-y3vg318x.js +1 -0
  89. package/dist/canvas/chunks/railroad-abnf-AHOZXSZD-6hqvcz3c.js +1 -0
  90. package/dist/canvas/chunks/railroad-ebnf-EBAXGLYW-vcae260m.js +1 -0
  91. package/dist/canvas/chunks/railroad-peg-LSFZ7HO6-0dbyme23.js +1 -0
  92. package/dist/canvas/chunks/{railroadDiagram-AXF67PYL-xkmqkjwf.js → railroadDiagram-AXF67PYL-njyhcp4p.js} +1 -1
  93. package/dist/canvas/chunks/{requirementDiagram-LRYGKXZP-9wm2dyaw.js → requirementDiagram-LRYGKXZP-2z6v09gm.js} +4 -4
  94. package/dist/canvas/chunks/{sankeyDiagram-W5VNT64P-2w19etgb.js → sankeyDiagram-W5VNT64P-15mzam0e.js} +1 -1
  95. package/dist/canvas/chunks/{sequenceDiagram-SI44F4Z6-0jn0vwmz.js → sequenceDiagram-SI44F4Z6-rbshyd2c.js} +12 -12
  96. package/dist/canvas/chunks/{sizeCapture-X5ZJPWSS-x75epwdq.js → sizeCapture-X5ZJPWSS-sg26xwts.js} +1 -1
  97. package/dist/canvas/chunks/{stateDiagram-OKZ733FA-schjpy6d.js → stateDiagram-OKZ733FA-6eahp98e.js} +1 -1
  98. package/dist/canvas/chunks/stateDiagram-v2-UEYNNEHI-tty0ggn5.js +1 -0
  99. package/dist/canvas/chunks/{swimlanes-SLNWSIFB-gkw4xce3.js → swimlanes-SLNWSIFB-ze5db10t.js} +1 -1
  100. package/dist/canvas/chunks/swimlanesDiagram-ULZ7WXOC-thze75gq.js +8 -0
  101. package/dist/canvas/chunks/{timeline-definition-Z64GVDOM-x7nkcy01.js → timeline-definition-Z64GVDOM-vnp7jyy8.js} +3 -3
  102. package/dist/canvas/chunks/treeView-QDETBFTQ-6ysffnm6.js +1 -0
  103. package/dist/canvas/chunks/treemap-6X3UGDF4-m3h9p066.js +1 -0
  104. package/dist/canvas/chunks/vennDiagram-T6HMQDX7-0qrnb7mj.js +34 -0
  105. package/dist/canvas/chunks/wardley-OPB4EBWU-dp37drwx.js +1 -0
  106. package/dist/canvas/chunks/{wardleyDiagram-T6FBY63Y-t1j52t9r.js → wardleyDiagram-T6FBY63Y-8nxg8wqt.js} +4 -4
  107. package/dist/canvas/chunks/{xychartDiagram-ELKLHX3M-38t16pme.js → xychartDiagram-ELKLHX3M-nj921e7s.js} +5 -5
  108. package/dist/canvas/global.css +94 -1
  109. package/dist/canvas/index.js +154 -145
  110. package/dist/canvas/mcp-app.html +600 -498
  111. package/dist/json-render/index.css +1 -1
  112. package/dist/types/client/canvas/BoardMoveDialog.d.ts +2 -0
  113. package/dist/types/client/canvas/EdgeEditor.d.ts +19 -0
  114. package/dist/types/client/canvas/GroupNavigation.d.ts +2 -0
  115. package/dist/types/client/canvas/TextPrompt.d.ts +4 -0
  116. package/dist/types/client/nodes/PromptNode.d.ts +1 -0
  117. package/dist/types/client/nodes/ViewerFrame.d.ts +1 -1
  118. package/dist/types/client/nodes/WorkCard.d.ts +7 -0
  119. package/dist/types/client/nodes/use-ax-surface-bridge.d.ts +1 -0
  120. package/dist/types/client/state/canvas-store.d.ts +15 -0
  121. package/dist/types/client/state/human-store.d.ts +2 -0
  122. package/dist/types/client/state/intent-bridge.d.ts +4 -2
  123. package/dist/types/client/state/relation-store.d.ts +11 -0
  124. package/dist/types/client/types.d.ts +1 -1
  125. package/dist/types/json-render/catalog.d.ts +2 -2
  126. package/dist/types/server/agent-presence.d.ts +1 -0
  127. package/dist/types/server/ax-interaction.d.ts +1 -0
  128. package/dist/types/server/ax-state-manager.d.ts +10 -2
  129. package/dist/types/server/board-local.d.ts +4 -0
  130. package/dist/types/server/board-move.d.ts +38 -0
  131. package/dist/types/server/canvas-db.d.ts +12 -2
  132. package/dist/types/server/canvas-operations.d.ts +5 -6
  133. package/dist/types/server/canvas-provenance.d.ts +1 -1
  134. package/dist/types/server/canvas-serialization.d.ts +1 -0
  135. package/dist/types/server/canvas-state.d.ts +84 -20
  136. package/dist/types/server/card-relocation.d.ts +6 -0
  137. package/dist/types/server/context-reads.d.ts +3 -1
  138. package/dist/types/server/human-presence.d.ts +1 -1
  139. package/dist/types/server/index.d.ts +16 -5
  140. package/dist/types/server/intent-registry.d.ts +8 -4
  141. package/dist/types/server/knowledge-lifecycle.d.ts +4 -2
  142. package/dist/types/server/mutation-history.d.ts +7 -5
  143. package/dist/types/server/operations/registry.d.ts +2 -0
  144. package/dist/types/server/trace-manager.d.ts +1 -0
  145. package/dist/types/shared/ax-kinds.d.ts +6 -0
  146. package/dist/types/shared/ax-surface-protocol.d.ts +8 -0
  147. package/dist/types/shared/human-presence.d.ts +1 -0
  148. package/dist/types/shared/lifecycle-status.d.ts +2 -0
  149. package/docs/RELEASE.md +21 -14
  150. package/docs/agent-plugin.md +22 -2
  151. package/docs/amp-plugin.md +270 -0
  152. package/docs/cli.md +42 -3
  153. package/docs/design/GuestName.dc.html +50 -0
  154. package/docs/design/PluginLogo.svg +7 -0
  155. package/docs/design/WorkCards.dc.html +39 -0
  156. package/docs/design/canvas.json +16 -0
  157. package/docs/design/plugin-logo.png +0 -0
  158. package/docs/design.md +111 -8
  159. package/docs/evals/agents-md-sections.md +38 -0
  160. package/docs/http-api.md +128 -10
  161. package/docs/mcp.md +61 -9
  162. package/docs/node-types.md +71 -1
  163. package/docs/plans/plan-009-tech-debt-backlog.md +1 -1
  164. package/docs/plans/plan-019-post-0.9-roadmap.md +44 -20
  165. package/docs/plans/plan-020-wave-5-work-planning.md +553 -0
  166. package/docs/product-vision-2026-09.md +33 -17
  167. package/docs/sdk.md +18 -0
  168. package/package.json +6 -3
  169. package/plugins/pmx-canvas/assets/preview.png +0 -0
  170. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/extension.mjs +4 -1
  171. package/plugins/pmx-canvas/com.github.copilot/extensions/pmx-canvas/runtime.json +1 -1
  172. package/plugins/pmx-canvas/plugin.json +2 -2
  173. package/plugins/pmx-canvas/runtime.json +1 -1
  174. package/plugins/pmx-canvas/tools.json +440 -18
  175. package/skills/data-analysis/SKILL.md +13 -26
  176. package/skills/frontend-design/LICENSE.txt +177 -0
  177. package/skills/frontend-design/SKILL.md +3 -0
  178. package/skills/pmx-canvas/SKILL.md +248 -842
  179. package/skills/pmx-canvas/evals/evals.json +110 -5
  180. package/skills/pmx-canvas/references/full-reference.md +142 -28
  181. package/skills/pmx-canvas/references/html-primitives.md +7 -0
  182. package/skills/pmx-canvas/references/installing-pmx-canvas.md +61 -11
  183. package/skills/pmx-canvas/references/tours-and-recording.md +39 -6
  184. package/skills/pmx-canvas/references/workbench-workflows.md +908 -0
  185. package/skills/pmx-canvas-testing/SKILL.md +7 -5
  186. package/skills/published-consumer-e2e/SKILL.md +25 -8
  187. package/skills/published-consumer-e2e/scripts/run-published-consumer-e2e.sh +51 -75
  188. package/skills/web-artifacts-builder/LICENSE.txt +202 -0
  189. package/skills/web-artifacts-builder/SKILL.md +6 -0
  190. package/skills/web-artifacts-builder/scripts/bundle-artifact.sh +2 -2
  191. package/skills/web-artifacts-builder/scripts/init-artifact.sh +8 -8
  192. package/src/cli/commands/apps.ts +1 -0
  193. package/src/cli/commands/boards.ts +30 -0
  194. package/src/client/App.tsx +20 -4
  195. package/src/client/canvas/AttentionHistory.tsx +10 -2
  196. package/src/client/canvas/BoardMoveDialog.tsx +225 -0
  197. package/src/client/canvas/CanvasNode.tsx +45 -2
  198. package/src/client/canvas/CanvasViewport.tsx +38 -9
  199. package/src/client/canvas/ContextMenu.tsx +34 -12
  200. package/src/client/canvas/EdgeEditor.tsx +149 -0
  201. package/src/client/canvas/EdgeLayer.tsx +87 -16
  202. package/src/client/canvas/ExpandedNodeOverlay.tsx +4 -0
  203. package/src/client/canvas/GroupNavigation.tsx +85 -0
  204. package/src/client/canvas/RelationsPanel.tsx +9 -0
  205. package/src/client/canvas/SelectionBar.tsx +21 -0
  206. package/src/client/canvas/SessionPanel.tsx +35 -1
  207. package/src/client/canvas/TextPrompt.tsx +18 -1
  208. package/src/client/canvas/TopBar.tsx +30 -0
  209. package/src/client/canvas/canvas-area.ts +1 -1
  210. package/src/client/nodes/ExtAppFrame.tsx +26 -10
  211. package/src/client/nodes/MarkdownNode.tsx +6 -7
  212. package/src/client/nodes/PromptNode.tsx +32 -3
  213. package/src/client/nodes/StatusNode.tsx +12 -0
  214. package/src/client/nodes/StatusSummary.tsx +11 -0
  215. package/src/client/nodes/ViewerFrame.tsx +21 -10
  216. package/src/client/nodes/WorkCard.tsx +175 -0
  217. package/src/client/nodes/use-ax-surface-bridge.ts +18 -14
  218. package/src/client/state/attention-bridge.ts +5 -0
  219. package/src/client/state/attention-store.ts +1 -0
  220. package/src/client/state/canvas-store.ts +185 -15
  221. package/src/client/state/human-store.ts +22 -2
  222. package/src/client/state/intent-bridge.ts +19 -5
  223. package/src/client/state/relation-store.ts +127 -1
  224. package/src/client/theme/global.css +94 -1
  225. package/src/client/types.ts +1 -0
  226. package/src/mcp/server.ts +13 -3
  227. package/src/server/agent-presence.ts +43 -23
  228. package/src/server/ax-flow-loop.ts +6 -0
  229. package/src/server/ax-gate-ttl.ts +8 -1
  230. package/src/server/ax-interaction.ts +16 -10
  231. package/src/server/ax-state-manager.ts +17 -4
  232. package/src/server/ax-wait.ts +20 -6
  233. package/src/server/board-export.ts +19 -6
  234. package/src/server/board-local.ts +20 -0
  235. package/src/server/board-move.ts +297 -0
  236. package/src/server/canvas-db.ts +262 -160
  237. package/src/server/canvas-operations.ts +139 -109
  238. package/src/server/canvas-schema.ts +21 -0
  239. package/src/server/canvas-serialization.ts +2 -0
  240. package/src/server/canvas-state.ts +792 -159
  241. package/src/server/card-relocation.ts +53 -0
  242. package/src/server/code-graph.ts +4 -3
  243. package/src/server/context-reads.ts +83 -55
  244. package/src/server/demo-state.json +35 -15
  245. package/src/server/file-watcher.ts +30 -10
  246. package/src/server/human-presence.ts +18 -5
  247. package/src/server/index.ts +35 -15
  248. package/src/server/intent-registry.ts +43 -5
  249. package/src/server/knowledge-lifecycle.ts +32 -9
  250. package/src/server/lifecycle-status.ts +29 -1
  251. package/src/server/mcp-app-runtime.ts +26 -7
  252. package/src/server/mutation-history.ts +37 -8
  253. package/src/server/operations/composites.ts +6 -3
  254. package/src/server/operations/mcp-contracts.ts +15 -0
  255. package/src/server/operations/mcp.ts +36 -9
  256. package/src/server/operations/ops/annotation.ts +22 -1
  257. package/src/server/operations/ops/ax-await.ts +1 -0
  258. package/src/server/operations/ops/ax-timeline.ts +28 -2
  259. package/src/server/operations/ops/batch.ts +25 -11
  260. package/src/server/operations/ops/boards.ts +44 -3
  261. package/src/server/operations/ops/nodes.ts +70 -0
  262. package/src/server/operations/ops/query.ts +32 -3
  263. package/src/server/operations/ops/snapshots.ts +1 -0
  264. package/src/server/operations/registry.ts +49 -4
  265. package/src/server/server.ts +62 -16
  266. package/src/server/tour-control.ts +37 -12
  267. package/src/server/trace-manager.ts +4 -0
  268. package/src/server/web-artifacts/scripts/bundle-artifact.sh +2 -2
  269. package/src/server/web-artifacts/scripts/init-artifact.sh +8 -8
  270. package/src/shared/agent-context.ts +7 -1
  271. package/src/shared/auto-arrange.ts +5 -4
  272. package/src/shared/ax-kinds.ts +13 -0
  273. package/src/shared/ax-surface-protocol.ts +22 -0
  274. package/src/shared/human-presence.ts +1 -0
  275. package/src/shared/lifecycle-status.ts +2 -0
  276. package/dist/canvas/chunks/architecture-TIHT7OUA-9tffvpsv.js +0 -1
  277. package/dist/canvas/chunks/classDiagram-JCYQIIEL-nc6g5x1r.js +0 -1
  278. package/dist/canvas/chunks/classDiagram-v2-OCEON4UE-0qnbpwvh.js +0 -1
  279. package/dist/canvas/chunks/cynefin-VYW2F7L2-ys8p46ts.js +0 -1
  280. package/dist/canvas/chunks/eventmodeling-45OFAUF4-v9q6dn4c.js +0 -1
  281. package/dist/canvas/chunks/flowDiagram-UKHOOZJN-yrr5z8tc.js +0 -1
  282. package/dist/canvas/chunks/gitGraph-TEB2WS4Q-kdwb8m0a.js +0 -1
  283. package/dist/canvas/chunks/index-1r72hdzb.js +0 -301
  284. package/dist/canvas/chunks/index-g3pwnqeb.js +0 -2
  285. package/dist/canvas/chunks/index-rft2hcz5.js +0 -2
  286. package/dist/canvas/chunks/info-DKCQHKI2-wpzs6sz3.js +0 -1
  287. package/dist/canvas/chunks/ishikawaDiagram-WSZJBQD7-5hnq1a9p.js +0 -70
  288. package/dist/canvas/chunks/packet-7NZHBO7P-xn439f0s.js +0 -1
  289. package/dist/canvas/chunks/pie-RZYD4A2V-0kf16rwh.js +0 -1
  290. package/dist/canvas/chunks/radar-I7S5WNFK-0g2pz36t.js +0 -1
  291. package/dist/canvas/chunks/railroad-3IZDKUUU-fcaran6j.js +0 -1
  292. package/dist/canvas/chunks/railroad-abnf-AHOZXSZD-wgdya41q.js +0 -1
  293. package/dist/canvas/chunks/railroad-ebnf-EBAXGLYW-gy07a4ka.js +0 -1
  294. package/dist/canvas/chunks/railroad-peg-LSFZ7HO6-ewk6wtkh.js +0 -1
  295. package/dist/canvas/chunks/stateDiagram-v2-UEYNNEHI-k8sfp2e7.js +0 -1
  296. package/dist/canvas/chunks/swimlanesDiagram-ULZ7WXOC-nqysw67j.js +0 -8
  297. package/dist/canvas/chunks/treeView-QDETBFTQ-cesw6gp0.js +0 -1
  298. package/dist/canvas/chunks/treemap-6X3UGDF4-zdv4knp9.js +0 -1
  299. package/dist/canvas/chunks/vennDiagram-T6HMQDX7-x8dqn9yf.js +0 -34
  300. package/dist/canvas/chunks/wardley-OPB4EBWU-44pdddez.js +0 -1
@@ -1,7 +1,7 @@
1
- import{e,t,j,x,u,w,k,d,f,p,m,g,b,v,Le,A,E,Ei}from"./index-1r72hdzb.js";import"./index-6qmsnxwy.js";import"./index-5tv8v1hk.js";import{pe}from"./index-gf4e0et4.js";import{Oe}from"./index-194m3hc3.js";import{Ue}from"./index-hj99nz1f.js";function vt(i,s,a){i=+i,s=+s,a=(o=arguments.length)<2?(s=i,i=0,1):o<3?1:+a;var n=-1,o=Math.max(0,Math.ceil((s-i)/a))|0,c=Array(o);while(++n<o)c[n]=i+n*a;return c}function dt(){var i=pe().unknown(void 0),{domain:s,range:a}=i,n=0,o=1,c,y,T=!1,V=0,F=0,N=0.5;delete i.unknown;function O(){var L=s().length,G=o<n,Y=G?o:n,H=G?n:o;if(c=(H-Y)/Math.max(1,L-V+F*2),T)c=Math.floor(c);if(Y+=(H-Y-c*(L-V))*N,y=c*(1-V),T)Y=Math.round(Y),y=Math.round(y);var Q=vt(L).map(function(st){return Y+c*st});return a(G?Q.reverse():Q)}return i.domain=function(L){return arguments.length?(s(L),O()):s()},i.range=function(L){return arguments.length?([n,o]=L,n=+n,o=+o,O()):[n,o]},i.rangeRound=function(L){return[n,o]=L,n=+n,o=+o,T=!0,O()},i.bandwidth=function(){return y},i.step=function(){return c},i.round=function(L){return arguments.length?(T=!!L,O()):T},i.padding=function(L){return arguments.length?(V=Math.min(1,F=+L),O()):V},i.paddingInner=function(L){return arguments.length?(V=Math.min(1,L),O()):V},i.paddingOuter=function(L){return arguments.length?(F=+L,O()):F},i.align=function(L){return arguments.length?(N=Math.max(0,Math.min(1,L)),O()):N},i.copy=function(){return dt(s(),[n,o]).round(T).paddingInner(V).paddingOuter(F).align(N)},Ue.apply(O(),arguments)}var Lt=function(){var i=e(function(tt,h,l,S){for(l=l||{},S=tt.length;S--;l[tt[S]]=h);return l},"o"),s=[1,10,12,14,16,18,19,21,23],a=[2,6],n=[1,3],o=[1,5],c=[1,6],y=[1,7],T=[1,5,10,12,14,16,18,19,21,23,36,37,38],V=[1,25],F=[1,26],N=[1,28],O=[1,29],L=[1,30],G=[1,31],Y=[1,32],H=[1,33],Q=[1,34],st=[1,35],nt=[1,36],P=[1,37],Z=[1,43],C=[1,42],K=[1,47],J=[1,50],M=[1,10,12,14,16,18,19,21,23,36,37,38],rt=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],ut=[1,65],W=[26,28],I={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:e(function(h,l,S,R,z,r,ht){var _=r.length-1;switch(z){case 5:R.setOrientation(r[_]);break;case 9:R.setDiagramTitle(r[_].text.trim());break;case 12:R.setLineData({text:"",type:"text"},r[_]);break;case 13:R.setLineData(r[_-1],r[_]);break;case 14:R.setBarData({text:"",type:"text"},r[_]);break;case 15:R.setBarData(r[_-1],r[_]);break;case 16:this.$=r[_].trim(),R.setAccTitle(this.$);break;case 17:case 18:this.$=r[_].trim(),R.setAccDescription(this.$);break;case 19:this.$=r[_-1];break;case 20:case 30:this.$=[r[_-2],...r[_]];break;case 21:case 31:this.$=[r[_]];break;case 22:this.$={value:Number(r[_-1]),label:r[_]};break;case 23:this.$={value:Number(r[_]),label:""};break;case 24:R.setXAxisTitle(r[_]);break;case 25:R.setXAxisTitle(r[_-1]);break;case 26:R.setXAxisTitle({type:"text",text:""});break;case 27:R.setXAxisBand(r[_]);break;case 28:R.setXAxisRangeData(Number(r[_-2]),Number(r[_]));break;case 29:this.$=r[_-1];break;case 32:R.setYAxisTitle(r[_]);break;case 33:R.setYAxisTitle(r[_-1]);break;case 34:R.setYAxisTitle({type:"text",text:""});break;case 35:R.setYAxisRangeData(Number(r[_-2]),Number(r[_]));break;case 39:this.$={text:r[_],type:"text"};break;case 40:this.$={text:r[_],type:"text"};break;case 41:this.$={text:r[_],type:"markdown"};break;case 42:this.$=r[_];break;case 43:this.$=r[_-1]+""+r[_];break}},"anonymous"),table:[i(s,a,{3:1,4:2,7:4,5:n,36:o,37:c,38:y}),{1:[3]},i(s,a,{4:2,7:4,3:8,5:n,36:o,37:c,38:y}),i(s,a,{4:2,7:4,6:9,3:10,5:n,8:[1,11],36:o,37:c,38:y}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(T,[2,36]),i(T,[2,37]),i(T,[2,38]),{1:[2,1]},i(s,a,{4:2,7:4,3:21,5:n,36:o,37:c,38:y}),{1:[2,3]},i(T,[2,5]),i(s,[2,7],{4:22,36:o,37:c,38:y}),{11:23,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:39,13:38,24:Z,29:C,30:V,31:40,32:41,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:45,15:44,29:K,30:V,35:46,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:49,17:48,24:J,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:52,17:51,24:J,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{20:[1,53]},{22:[1,54]},i(M,[2,18]),{1:[2,2]},i(M,[2,8]),i(M,[2,9]),i(rt,[2,39],{41:55,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P}),i(rt,[2,40]),i(rt,[2,41]),i(U,[2,42]),i(U,[2,44]),i(U,[2,45]),i(U,[2,46]),i(U,[2,47]),i(U,[2,48]),i(U,[2,49]),i(U,[2,50]),i(U,[2,51]),i(U,[2,52]),i(U,[2,53]),i(M,[2,10]),i(M,[2,24],{32:41,31:56,24:Z,29:C}),i(M,[2,26]),i(M,[2,27]),{33:[1,57]},{11:59,30:V,34:58,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},i(M,[2,11]),i(M,[2,32],{35:60,29:K}),i(M,[2,34]),{33:[1,61]},i(M,[2,12]),{17:62,24:J},{25:63,27:64,29:ut},i(M,[2,14]),{17:66,24:J},i(M,[2,16]),i(M,[2,17]),i(U,[2,43]),i(M,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},i(M,[2,33]),{29:[1,70]},i(M,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},i(W,[2,23],{30:[1,73]}),i(M,[2,15]),i(M,[2,28]),i(M,[2,29]),{11:59,30:V,34:74,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},i(M,[2,35]),i(M,[2,19]),{25:75,27:64,29:ut},i(W,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:e(function(h,l){if(l.recoverable)this.trace(h);else{var S=Error(h);throw S.hash=l,S}},"parseError"),parse:e(function(h){var l=this,S=[0],R=[],z=[null],r=[],ht=this.table,_="",yt=0,Xt=0,Yt=0,ge=2,Nt=1,xe=r.slice.call(arguments,1),X=Object.create(this.lexer),lt={yy:{}};for(var St in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,St))lt.yy[St]=this.yy[St];if(X.setInput(h,lt.yy),lt.yy.lexer=X,lt.yy.parser=this,typeof X.yylloc>"u")X.yylloc={};var Rt=X.yylloc;r.push(Rt);var de=X.options&&X.options.ranges;if(typeof lt.yy.parseError==="function")this.parseError=lt.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function fe(it){S.length=S.length-2*it,z.length=z.length-it,r.length=r.length-it}e(fe,"popStack");function Ht(){var it=R.pop()||X.lex()||Nt;if(typeof it!=="number"){if(it instanceof Array)R=it,it=R.pop();it=l.symbols_[it]||it}return it}e(Ht,"lex");var q,_t,ct,et,Pe,Tt,gt={},At,ot,$t,kt;while(!0){if(ct=S[S.length-1],this.defaultActions[ct])et=this.defaultActions[ct];else{if(q===null||typeof q>"u")q=Ht();et=ht[ct]&&ht[ct][q]}if(typeof et>"u"||!et.length||!et[0]){var Dt="";kt=[];for(At in ht[ct])if(this.terminals_[At]&&At>ge)kt.push("'"+this.terminals_[At]+"'");if(X.showPosition)Dt="Parse error on line "+(yt+1)+`:
1
+ import{e,t,j,x,u,w,T,d,f,p,m,g,b,v,Le,A,E,Ei}from"./index-nwsya6dj.js";import"./index-v119nznk.js";import"./index-5tv8v1hk.js";import{pe}from"./index-gf4e0et4.js";import{Oe}from"./index-9b02042t.js";import{Ue}from"./index-hj99nz1f.js";function vt(i,s,a){i=+i,s=+s,a=(o=arguments.length)<2?(s=i,i=0,1):o<3?1:+a;var n=-1,o=Math.max(0,Math.ceil((s-i)/a))|0,c=Array(o);while(++n<o)c[n]=i+n*a;return c}function dt(){var i=pe().unknown(void 0),{domain:s,range:a}=i,n=0,o=1,c,y,_=!1,V=0,F=0,N=0.5;delete i.unknown;function O(){var L=s().length,G=o<n,Y=G?o:n,H=G?n:o;if(c=(H-Y)/Math.max(1,L-V+F*2),_)c=Math.floor(c);if(Y+=(H-Y-c*(L-V))*N,y=c*(1-V),_)Y=Math.round(Y),y=Math.round(y);var Q=vt(L).map(function(st){return Y+c*st});return a(G?Q.reverse():Q)}return i.domain=function(L){return arguments.length?(s(L),O()):s()},i.range=function(L){return arguments.length?([n,o]=L,n=+n,o=+o,O()):[n,o]},i.rangeRound=function(L){return[n,o]=L,n=+n,o=+o,_=!0,O()},i.bandwidth=function(){return y},i.step=function(){return c},i.round=function(L){return arguments.length?(_=!!L,O()):_},i.padding=function(L){return arguments.length?(V=Math.min(1,F=+L),O()):V},i.paddingInner=function(L){return arguments.length?(V=Math.min(1,L),O()):V},i.paddingOuter=function(L){return arguments.length?(F=+L,O()):F},i.align=function(L){return arguments.length?(N=Math.max(0,Math.min(1,L)),O()):N},i.copy=function(){return dt(s(),[n,o]).round(_).paddingInner(V).paddingOuter(F).align(N)},Ue.apply(O(),arguments)}var Lt=function(){var i=e(function(tt,h,l,C){for(l=l||{},C=tt.length;C--;l[tt[C]]=h);return l},"o"),s=[1,10,12,14,16,18,19,21,23],a=[2,6],n=[1,3],o=[1,5],c=[1,6],y=[1,7],_=[1,5,10,12,14,16,18,19,21,23,36,37,38],V=[1,25],F=[1,26],N=[1,28],O=[1,29],L=[1,30],G=[1,31],Y=[1,32],H=[1,33],Q=[1,34],st=[1,35],nt=[1,36],P=[1,37],Z=[1,43],k=[1,42],K=[1,47],J=[1,50],M=[1,10,12,14,16,18,19,21,23,36,37,38],rt=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],ut=[1,65],W=[26,28],I={trace:e(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:e(function(h,l,C,S,z,r,ht){var R=r.length-1;switch(z){case 5:S.setOrientation(r[R]);break;case 9:S.setDiagramTitle(r[R].text.trim());break;case 12:S.setLineData({text:"",type:"text"},r[R]);break;case 13:S.setLineData(r[R-1],r[R]);break;case 14:S.setBarData({text:"",type:"text"},r[R]);break;case 15:S.setBarData(r[R-1],r[R]);break;case 16:this.$=r[R].trim(),S.setAccTitle(this.$);break;case 17:case 18:this.$=r[R].trim(),S.setAccDescription(this.$);break;case 19:this.$=r[R-1];break;case 20:case 30:this.$=[r[R-2],...r[R]];break;case 21:case 31:this.$=[r[R]];break;case 22:this.$={value:Number(r[R-1]),label:r[R]};break;case 23:this.$={value:Number(r[R]),label:""};break;case 24:S.setXAxisTitle(r[R]);break;case 25:S.setXAxisTitle(r[R-1]);break;case 26:S.setXAxisTitle({type:"text",text:""});break;case 27:S.setXAxisBand(r[R]);break;case 28:S.setXAxisRangeData(Number(r[R-2]),Number(r[R]));break;case 29:this.$=r[R-1];break;case 32:S.setYAxisTitle(r[R]);break;case 33:S.setYAxisTitle(r[R-1]);break;case 34:S.setYAxisTitle({type:"text",text:""});break;case 35:S.setYAxisRangeData(Number(r[R-2]),Number(r[R]));break;case 39:this.$={text:r[R],type:"text"};break;case 40:this.$={text:r[R],type:"text"};break;case 41:this.$={text:r[R],type:"markdown"};break;case 42:this.$=r[R];break;case 43:this.$=r[R-1]+""+r[R];break}},"anonymous"),table:[i(s,a,{3:1,4:2,7:4,5:n,36:o,37:c,38:y}),{1:[3]},i(s,a,{4:2,7:4,3:8,5:n,36:o,37:c,38:y}),i(s,a,{4:2,7:4,6:9,3:10,5:n,8:[1,11],36:o,37:c,38:y}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(_,[2,36]),i(_,[2,37]),i(_,[2,38]),{1:[2,1]},i(s,a,{4:2,7:4,3:21,5:n,36:o,37:c,38:y}),{1:[2,3]},i(_,[2,5]),i(s,[2,7],{4:22,36:o,37:c,38:y}),{11:23,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:39,13:38,24:Z,29:k,30:V,31:40,32:41,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:45,15:44,29:K,30:V,35:46,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:49,17:48,24:J,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{11:52,17:51,24:J,30:V,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},{20:[1,53]},{22:[1,54]},i(M,[2,18]),{1:[2,2]},i(M,[2,8]),i(M,[2,9]),i(rt,[2,39],{41:55,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P}),i(rt,[2,40]),i(rt,[2,41]),i(U,[2,42]),i(U,[2,44]),i(U,[2,45]),i(U,[2,46]),i(U,[2,47]),i(U,[2,48]),i(U,[2,49]),i(U,[2,50]),i(U,[2,51]),i(U,[2,52]),i(U,[2,53]),i(M,[2,10]),i(M,[2,24],{32:41,31:56,24:Z,29:k}),i(M,[2,26]),i(M,[2,27]),{33:[1,57]},{11:59,30:V,34:58,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},i(M,[2,11]),i(M,[2,32],{35:60,29:K}),i(M,[2,34]),{33:[1,61]},i(M,[2,12]),{17:62,24:J},{25:63,27:64,29:ut},i(M,[2,14]),{17:66,24:J},i(M,[2,16]),i(M,[2,17]),i(U,[2,43]),i(M,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},i(M,[2,33]),{29:[1,70]},i(M,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},i(W,[2,23],{30:[1,73]}),i(M,[2,15]),i(M,[2,28]),i(M,[2,29]),{11:59,30:V,34:74,39:24,40:F,41:27,42:N,43:O,44:L,45:G,46:Y,47:H,48:Q,49:st,50:nt,51:P},i(M,[2,35]),i(M,[2,19]),{25:75,27:64,29:ut},i(W,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:e(function(h,l){if(l.recoverable)this.trace(h);else{var C=Error(h);throw C.hash=l,C}},"parseError"),parse:e(function(h){var l=this,C=[0],S=[],z=[null],r=[],ht=this.table,R="",yt=0,Xt=0,Yt=0,ge=2,Nt=1,xe=r.slice.call(arguments,1),X=Object.create(this.lexer),lt={yy:{}};for(var St in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,St))lt.yy[St]=this.yy[St];if(X.setInput(h,lt.yy),lt.yy.lexer=X,lt.yy.parser=this,typeof X.yylloc>"u")X.yylloc={};var Rt=X.yylloc;r.push(Rt);var de=X.options&&X.options.ranges;if(typeof lt.yy.parseError==="function")this.parseError=lt.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function fe(it){C.length=C.length-2*it,z.length=z.length-it,r.length=r.length-it}e(fe,"popStack");function Ht(){var it=S.pop()||X.lex()||Nt;if(typeof it!=="number"){if(it instanceof Array)S=it,it=S.pop();it=l.symbols_[it]||it}return it}e(Ht,"lex");var q,_t,ct,et,Pe,Tt,gt={},At,ot,$t,kt;while(!0){if(ct=C[C.length-1],this.defaultActions[ct])et=this.defaultActions[ct];else{if(q===null||typeof q>"u")q=Ht();et=ht[ct]&&ht[ct][q]}if(typeof et>"u"||!et.length||!et[0]){var Dt="";kt=[];for(At in ht[ct])if(this.terminals_[At]&&At>ge)kt.push("'"+this.terminals_[At]+"'");if(X.showPosition)Dt="Parse error on line "+(yt+1)+`:
2
2
  `+X.showPosition()+`
3
- Expecting `+kt.join(", ")+", got '"+(this.terminals_[q]||q)+"'";else Dt="Parse error on line "+(yt+1)+": Unexpected "+(q==Nt?"end of input":"'"+(this.terminals_[q]||q)+"'");this.parseError(Dt,{text:X.match,token:this.terminals_[q]||q,line:X.yylineno,loc:Rt,expected:kt})}if(et[0]instanceof Array&&et.length>1)throw Error("Parse Error: multiple actions possible at state: "+ct+", token: "+q);switch(et[0]){case 1:if(S.push(q),z.push(X.yytext),r.push(X.yylloc),S.push(et[1]),q=null,!_t){if(Xt=X.yyleng,_=X.yytext,yt=X.yylineno,Rt=X.yylloc,Yt>0)Yt--}else q=_t,_t=null;break;case 2:if(ot=this.productions_[et[1]][1],gt.$=z[z.length-ot],gt._$={first_line:r[r.length-(ot||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(ot||1)].first_column,last_column:r[r.length-1].last_column},de)gt._$.range=[r[r.length-(ot||1)].range[0],r[r.length-1].range[1]];if(Tt=this.performAction.apply(gt,[_,Xt,yt,lt.yy,et[1],z,r].concat(xe)),typeof Tt<"u")return Tt;if(ot)S=S.slice(0,-1*ot*2),z=z.slice(0,-1*ot),r=r.slice(0,-1*ot);S.push(this.productions_[et[1]][0]),z.push(gt.$),r.push(gt._$),$t=ht[S[S.length-2]][S[S.length-1]],S.push($t);break;case 3:return!0}}return!0},"parse")},at=function(){var tt={EOF:1,parseError:e(function(l,S){if(this.yy.parser)this.yy.parser.parseError(l,S);else throw Error(l)},"parseError"),setInput:e(function(h,l){if(this.yy=l||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var l=h.match(/(?:\r\n?|\n).*/g);if(l)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),h},"input"),unput:e(function(h){var l=h.length,S=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var R=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),S.length-1)this.yylineno-=S.length-1;var z=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:S?(S.length===R.length?this.yylloc.first_column:0)+R[R.length-S.length].length-S[0].length:this.yylloc.first_column-l},this.options.ranges)this.yylloc.range=[z[0],z[0]+this.yyleng-l];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
3
+ Expecting `+kt.join(", ")+", got '"+(this.terminals_[q]||q)+"'";else Dt="Parse error on line "+(yt+1)+": Unexpected "+(q==Nt?"end of input":"'"+(this.terminals_[q]||q)+"'");this.parseError(Dt,{text:X.match,token:this.terminals_[q]||q,line:X.yylineno,loc:Rt,expected:kt})}if(et[0]instanceof Array&&et.length>1)throw Error("Parse Error: multiple actions possible at state: "+ct+", token: "+q);switch(et[0]){case 1:if(C.push(q),z.push(X.yytext),r.push(X.yylloc),C.push(et[1]),q=null,!_t){if(Xt=X.yyleng,R=X.yytext,yt=X.yylineno,Rt=X.yylloc,Yt>0)Yt--}else q=_t,_t=null;break;case 2:if(ot=this.productions_[et[1]][1],gt.$=z[z.length-ot],gt._$={first_line:r[r.length-(ot||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(ot||1)].first_column,last_column:r[r.length-1].last_column},de)gt._$.range=[r[r.length-(ot||1)].range[0],r[r.length-1].range[1]];if(Tt=this.performAction.apply(gt,[R,Xt,yt,lt.yy,et[1],z,r].concat(xe)),typeof Tt<"u")return Tt;if(ot)C=C.slice(0,-1*ot*2),z=z.slice(0,-1*ot),r=r.slice(0,-1*ot);C.push(this.productions_[et[1]][0]),z.push(gt.$),r.push(gt._$),$t=ht[C[C.length-2]][C[C.length-1]],C.push($t);break;case 3:return!0}}return!0},"parse")},at=function(){var tt={EOF:1,parseError:e(function(l,C){if(this.yy.parser)this.yy.parser.parseError(l,C);else throw Error(l)},"parseError"),setInput:e(function(h,l){if(this.yy=l||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:e(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var l=h.match(/(?:\r\n?|\n).*/g);if(l)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),h},"input"),unput:e(function(h){var l=h.length,C=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var S=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),C.length-1)this.yylineno-=C.length-1;var z=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:C?(C.length===S.length?this.yylloc.first_column:0)+S[S.length-C.length].length-C[0].length:this.yylloc.first_column-l},this.options.ranges)this.yylloc.range=[z[0],z[0]+this.yyleng-l];return this.yyleng=this.yytext.length,this},"unput"),more:e(function(){return this._more=!0,this},"more"),reject:e(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:e(function(h){this.unput(this.match.slice(h))},"less"),pastInput:e(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:e(function(){var h=this.match;if(h.length<20)h+=this._input.substr(0,20-h.length);return(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:e(function(){var h=this.pastInput(),l=Array(h.length+1).join("-");return h+this.upcomingInput()+`
5
- `+l+"^"},"showPosition"),test_match:e(function(h,l){var S,R,z;if(this.options.backtrack_lexer){if(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)z.yylloc.range=this.yylloc.range.slice(0)}if(R=h[0].match(/(?:\r\n?|\n).*/g),R)this.yylineno+=R.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:R?R[R.length-1].length-R[R.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+h[0].length},this.yytext+=h[0],this.match+=h[0],this.matches=h,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(h[0].length),this.matched+=h[0],S=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(S)return S;else if(this._backtrack){for(var r in z)this[r]=z[r];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var h,l,S,R;if(!this._more)this.yytext="",this.match="";var z=this._currentRules();for(var r=0;r<z.length;r++)if(S=this._input.match(this.rules[z[r]]),S&&(!l||S[0].length>l[0].length)){if(l=S,R=r,this.options.backtrack_lexer)if(h=this.test_match(S,z[r]),h!==!1)return h;else if(this._backtrack){l=!1;continue}else return!1;else if(!this.options.flex)break}if(l){if(h=this.test_match(l,z[R]),h!==!1)return h;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
- `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var l=this.next();if(l)return l;else return this.lex()},"lex"),begin:e(function(l){this.conditionStack.push(l)},"begin"),popState:e(function(){var l=this.conditionStack.length-1;if(l>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(l){if(l=this.conditionStack.length-1-Math.abs(l||0),l>=0)return this.conditionStack[l];else return"INITIAL"},"topState"),pushState:e(function(l){this.begin(l)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(l,S,R,z){var r=z;switch(R){case 0:break;case 1:break;case 2:return this.popState(),36;break;case 3:return this.popState(),36;break;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 33;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 29;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return tt}();I.lexer=at;function B(){this.yy={}}return e(B,"Parser"),B.prototype=I,I.Parser=B,new B}();Lt.parser=Lt;var me=Lt;function Pt(i){return i.type==="bar"}e(Pt,"isBarPlot");function wt(i){return i.type==="band"}e(wt,"isBandAxisData");function xt(i){return i.type==="linear"}e(xt,"isLinearAxisData");var Gt=class{constructor(i){this.parentGroup=i}static{e(this,"TextDimensionCalculatorWithFont")}getMaxDimension(i,s){if(!this.parentGroup)return{width:i.reduce((o,c)=>Math.max(c.length,o),0)*s,height:s};let a={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",s);for(let o of i){let c=Ei(n,1,o),y=c?c.width:o.length*s,T=c?c.height:s;a.width=Math.max(a.width,y),a.height=Math.max(a.height,T)}return n.remove(),a}},Ut=0.7,qt=0.2,jt=class{constructor(i,s,a,n){this.axisConfig=i,this.title=s,this.textDimensionCalculator=a,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{e(this,"BaseAxis")}setRange(i){if(this.range=i,this.axisPosition==="left"||this.axisPosition==="right")this.boundingRect.height=i[1]-i[0];else this.boundingRect.width=i[1]-i[0];this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(i){this.axisPosition=i,this.setRange(this.range)}getTickDistance(){let i=this.getRange();return Math.abs(i[0]-i[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((i)=>i.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){if(Ut*this.getTickDistance()>this.outerPadding*2)this.outerPadding=Math.floor(Ut*this.getTickDistance()/2);this.recalculateScale()}calculateSpaceIfDrawnHorizontally(i){let s=i.height;if(this.axisConfig.showAxisLine&&s>this.axisConfig.axisLineWidth)s-=this.axisConfig.axisLineWidth,this.showAxisLine=!0;if(this.axisConfig.showLabel){let a=this.getLabelDimension(),n=qt*i.width;this.outerPadding=Math.min(a.width/2,n);let o=a.height;if(this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0)o=Math.max(o,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*a.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*a.height));if(o+=this.axisConfig.labelPadding*2,this.labelTextHeight=a.height,o<=s)s-=o,this.showLabel=!0}if(this.axisConfig.showTick&&s>=this.axisConfig.tickLength)this.showTick=!0,s-=this.axisConfig.tickLength;if(this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;if(this.titleTextHeight=a.height,n<=s)s-=n,this.showTitle=!0}this.boundingRect.width=i.width,this.boundingRect.height=i.height-s}calculateSpaceIfDrawnVertical(i){let s=i.width;if(this.axisConfig.showAxisLine&&s>this.axisConfig.axisLineWidth)s-=this.axisConfig.axisLineWidth,this.showAxisLine=!0;if(this.axisConfig.showLabel){let a=this.getLabelDimension(),n=qt*i.height;this.outerPadding=Math.min(a.height/2,n);let o=a.width+this.axisConfig.labelPadding*2;if(o<=s)s-=o,this.showLabel=!0}if(this.axisConfig.showTick&&s>=this.axisConfig.tickLength)this.showTick=!0,s-=this.axisConfig.tickLength;if(this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;if(this.titleTextHeight=a.height,n<=s)s-=n,this.showTitle=!0}this.boundingRect.width=i.width-s,this.boundingRect.height=i.height}calculateSpace(i){if(this.axisPosition==="left"||this.axisPosition==="right")this.calculateSpaceIfDrawnVertical(i);else this.calculateSpaceIfDrawnHorizontally(i);return this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateOffsetByRotation(i){let s=this.normalizedLabelRotationInRad;if(s===0)return 0;return Math.sin(s)*this.getLabelDimension()[i]/2}getDrawableElementsForLeftAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${s},${this.boundingRect.y} L ${s},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(s),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))});if(this.showTick){let s=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);i.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${s},${this.getScaleValue(a)} L ${s-this.axisConfig.tickLength},${this.getScaleValue(a)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElementsForBottomAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.y+this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${s} L ${this.boundingRect.x+this.boundingRect.width},${s}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.getScaleValue(s)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))});if(this.showTick){let s=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);i.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${this.getScaleValue(a)},${s} L ${this.getScaleValue(a)},${s+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElementsForTopAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${s} L ${this.boundingRect.x+this.boundingRect.width},${s}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.getScaleValue(s),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))});if(this.showTick){let s=this.boundingRect.y;i.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${this.getScaleValue(a)},${s+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(a)},${s+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");if(this.axisPosition==="bottom")return this.getDrawableElementsForBottomAxis();if(this.axisPosition==="top")return this.getDrawableElementsForTopAxis();return[]}},be=class extends jt{static{e(this,"BandAxis")}constructor(i,s,a,n,o){super(i,n,o,s);this.categories=a,this.scale=dt().domain(this.categories).range(this.getRange())}setRange(i){super.setRange(i)}recalculateScale(){this.scale=dt().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5),t.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(i){return this.scale(i)??this.getRange()[0]}},ye=class extends jt{static{e(this,"LinearAxis")}constructor(i,s,a,n,o){super(i,n,o,s);this.domain=a,this.scale=Oe().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let i=[...this.domain];if(this.axisPosition==="left")i.reverse();this.scale=Oe().domain(i).range(this.getRange())}getScaleValue(i){return this.scale(i)}};function Et(i,s,a,n){let o=new Gt(n);if(wt(i))return new be(s,a,i.categories,i.title,o);return new ye(s,a,[i.min,i.max],i.title,o)}e(Et,"getAxis");var Ae=class{constructor(i,s,a,n){this.textDimensionCalculator=i,this.chartConfig=s,this.chartData=a,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{e(this,"ChartTitle")}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateSpace(i){let s=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),a=Math.max(s.width,i.width),n=s.height+2*this.chartConfig.titlePadding;if(s.width<=a&&s.height<=n&&this.chartConfig.showTitle&&this.chartData.title)this.boundingRect.width=a,this.boundingRect.height=n,this.showChartTitle=!0;return{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let i=[];if(this.showChartTitle)i.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]});return i}};function Qt(i,s,a,n){let o=new Gt(n);return new Ae(o,i,s,a)}e(Qt,"getChartTitleComponent");var ke=class{constructor(i,s,a,n,o){this.plotData=i,this.xAxis=s,this.yAxis=a,this.orientation=n,this.plotIndex=o}static{e(this,"LinePlot")}getDrawableElement(){let i=this.plotData.data.map((n)=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),s;if(this.orientation==="horizontal")s=Le().y((n)=>n[0]).x((n)=>n[1])(i);else s=Le().x((n)=>n[0]).y((n)=>n[1])(i);if(!s)return[];let a=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:s,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let c=[];for(let[y,[T,V]]of i.entries()){let F=this.plotData.pointLabels[y];if(!F)continue;if(this.orientation==="horizontal")c.push({x:V+10,y:T,text:F,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0});else c.push({x:T,y:V-10,text:F,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0})}if(c.length>0)a.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:c})}return a}},we=class{constructor(i,s,a,n,o,c){this.barData=i,this.boundingRect=s,this.xAxis=a,this.yAxis=n,this.orientation=o,this.plotIndex=c}static{e(this,"BarPlot")}getDrawableElement(){let i=this.barData.data.map((o)=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=0.05,a=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*0.95,n=a/2;if(this.orientation==="horizontal")return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:i.map((o)=>({x:this.boundingRect.x,y:o[0]-n,height:a,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}];return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:i.map((o)=>({x:o[0]-n,y:o[1],width:a,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},Ce=class{constructor(i,s,a){this.chartConfig=i,this.chartData=s,this.chartThemeConfig=a,this.boundingRect={x:0,y:0,width:0,height:0}}static{e(this,"BasePlot")}setAxes(i,s){this.xAxis=i,this.yAxis=s}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateSpace(i){return this.boundingRect.width=i.width,this.boundingRect.height=i.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let i=[];for(let[s,a]of this.chartData.plots.entries())switch(a.type){case"line":{let n=new ke(a,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,s);i.push(...n.getDrawableElement())}break;case"bar":{let n=new we(a,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,s);i.push(...n.getDrawableElement())}break}return i}};function Kt(i,s,a){return new Ce(i,s,a)}e(Kt,"getPlotComponent");var Se=class{constructor(i,s,a,n){this.chartConfig=i,this.chartData=s,this.componentStore={title:Qt(i,s,a,n),plot:Kt(i,s,a),xAxis:Et(s.xAxis,i.xAxis,{titleColor:a.xAxisTitleColor,labelColor:a.xAxisLabelColor,tickColor:a.xAxisTickColor,axisLineColor:a.xAxisLineColor},n),yAxis:Et(s.yAxis,i.yAxis,{titleColor:a.yAxisTitleColor,labelColor:a.yAxisLabelColor,tickColor:a.yAxisTickColor,axisLineColor:a.yAxisLineColor},n)}}static{e(this,"Orchestrator")}calculateVerticalSpace(){let i=this.chartConfig.width,s=this.chartConfig.height,a=0,n=0,o=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(s*this.chartConfig.plotReservedSpacePercent/100),y=this.componentStore.plot.calculateSpace({width:o,height:c});if(i-=y.width,s-=y.height,y=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:s}),n=y.height,s-=y.height,this.componentStore.xAxis.setAxisPosition("bottom"),y=this.componentStore.xAxis.calculateSpace({width:i,height:s}),s-=y.height,this.componentStore.yAxis.setAxisPosition("left"),y=this.componentStore.yAxis.calculateSpace({width:i,height:s}),a=y.width,i-=y.width,i>0)o+=i,i=0;if(s>0)c+=s,s=0;if(this.componentStore.plot.calculateSpace({width:o,height:c}),this.componentStore.plot.setBoundingBoxXY({x:a,y:n}),this.componentStore.xAxis.setRange([a,a+o]),this.componentStore.xAxis.setBoundingBoxXY({x:a,y:n+c}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some((T)=>Pt(T)))this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let i=this.chartConfig.width,s=this.chartConfig.height,a=0,n=0,o=0,c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),y=Math.floor(s*this.chartConfig.plotReservedSpacePercent/100),T=this.componentStore.plot.calculateSpace({width:c,height:y});if(i-=T.width,s-=T.height,T=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:s}),a=T.height,s-=T.height,this.componentStore.xAxis.setAxisPosition("left"),T=this.componentStore.xAxis.calculateSpace({width:i,height:s}),i-=T.width,n=T.width,this.componentStore.yAxis.setAxisPosition("top"),T=this.componentStore.yAxis.calculateSpace({width:i,height:s}),s-=T.height,o=a+T.height,i>0)c+=i,i=0;if(s>0)y+=s,s=0;if(this.componentStore.plot.calculateSpace({width:c,height:y}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:a}),this.componentStore.xAxis.setRange([o,o+y]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some((V)=>Pt(V)))this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){if(this.chartConfig.chartOrientation==="horizontal")this.calculateHorizontalSpace();else this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let i=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let s of Object.values(this.componentStore))i.push(...s.getDrawableElements());return i}},Re=class{static{e(this,"XYChartBuilder")}static build(i,s,a,n){return new Se(i,s,a,n).getDrawableElement()}},ft=0,Zt,pt=Bt(),mt=zt(),D=Vt(),It=mt.plotColorPalette.split(",").map((i)=>i.trim()),Ct=!1,Mt=!1;function zt(){let i=j(),s=u();return E(i.xyChart,s.themeVariables.xyChart)}e(zt,"getChartDefaultThemeConfig");function Bt(){let i=u();return E(x.xyChart,i.xyChart)}e(Bt,"getChartDefaultConfig");function Vt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}e(Vt,"getChartDefaultData");function bt(i){let s=u();return w(i.trim(),s)}e(bt,"textSanitizer");function Jt(i){Zt=i}e(Jt,"setTmpSVGG");function te(i){if(i==="horizontal")pt.chartOrientation="horizontal";else pt.chartOrientation="vertical"}e(te,"setOrientation");function ee(i){D.xAxis.title=bt(i.text)}e(ee,"setXAxisTitle");function Ot(i,s){D.xAxis={type:"linear",title:D.xAxis.title,min:i,max:s},Ct=!0}e(Ot,"setXAxisRangeData");function ie(i){D.xAxis={type:"band",title:D.xAxis.title,categories:i.map((s)=>bt(s.text))},Ct=!0}e(ie,"setXAxisBand");function se(i){D.yAxis.title=bt(i.text)}e(se,"setYAxisTitle");function ae(i,s){D.yAxis={type:"linear",title:D.yAxis.title,min:i,max:s},Mt=!0}e(ae,"setYAxisRangeData");function ne(i){let s=Math.min(...i),a=Math.max(...i),n=xt(D.yAxis)?D.yAxis.min:1/0,o=xt(D.yAxis)?D.yAxis.max:-1/0;D.yAxis={type:"linear",title:D.yAxis.title,min:Math.min(n,s),max:Math.max(o,a)}}e(ne,"setYAxisRangeFromPlotData");function Wt(i){let s=[];if(i.length===0)return s;if(!Ct){let a=xt(D.xAxis)?D.xAxis.min:1/0,n=xt(D.xAxis)?D.xAxis.max:-1/0;Ot(Math.min(a,1),Math.max(n,i.length))}if(wt(D.xAxis)&&i.length>D.xAxis.categories.length)i=i.slice(0,D.xAxis.categories.length);if(!Mt)ne(i);if(wt(D.xAxis))s=D.xAxis.categories.map((a,n)=>[a,i[n]]);if(xt(D.xAxis)){let a=D.xAxis.min,n=D.xAxis.max;if(i.length===1)s=[[`${a}`,i[0]]];else{let o=(n-a)/(i.length-1);s=i.map((c,y)=>[`${a+y*o}`,c])}}return s}e(Wt,"transformDataWithoutCategory");function Ft(i){return It[i===0?0:i%It.length]}e(Ft,"getPlotColorFromPalette");function oe(i,s){let a=s.map((y)=>y.value),n=s.map((y)=>y.label?bt(y.label):""),o=Wt(a),c=n.some((y)=>y!=="");D.plots.push({type:"line",strokeFill:Ft(ft),strokeWidth:2,data:o,...c?{pointLabels:n}:{}}),ft++}e(oe,"setLineData");function re(i,s){let a=s.map((o)=>o.value),n=Wt(a);D.plots.push({type:"bar",fill:Ft(ft),data:n}),ft++}e(re,"setBarData");function he(){if(D.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return D.title=v(),Re.build(pt,D,mt,Zt)}e(he,"getDrawableElem");function le(){return mt}e(le,"getChartThemeConfig");function ce(){return pt}e(ce,"getChartConfig");function ue(){return D}e(ue,"getXYChartData");var _e=e(function(){d(),ft=0,pt=Bt(),D=Vt(),mt=zt(),It=mt.plotColorPalette.split(",").map((i)=>i.trim()),Ct=!1,Mt=!1},"clear"),Te={getDrawableElem:he,clear:_e,setAccTitle:f,getAccTitle:p,setDiagramTitle:b,getDiagramTitle:v,getAccDescription:g,setAccDescription:m,setOrientation:te,setXAxisTitle:ee,setXAxisRangeData:Ot,setXAxisBand:ie,setYAxisTitle:se,setYAxisRangeData:ae,setLineData:oe,setBarData:re,setTmpSVGG:Jt,getChartThemeConfig:le,getChartConfig:ce,getXYChartData:ue},De=e((i,s,a,n)=>{let o=n.db,c=o.getChartThemeConfig(),y=o.getChartConfig(),T=o.getXYChartData().plots[0].data.map((P)=>P[1]);function V(P){return P==="top"?"text-before-edge":"middle"}e(V,"getDominantBaseLine");function F(P){return P==="left"?"start":P==="right"?"end":"middle"}e(F,"getTextAnchor");function N(P){return`translate(${P.x}, ${P.y}) rotate(${P.rotation||0})`}e(N,"getTextTransformation"),t.debug(`Rendering xychart chart
7
- `+i);let O=A(s),L=O.append("g").attr("class","main"),G=L.append("rect").attr("width",y.width).attr("height",y.height).attr("class","background");k(O,y.height,y.width,!0),O.attr("viewBox",`0 0 ${y.width} ${y.height}`),G.attr("fill",c.backgroundColor),o.setTmpSVGG(O.append("g").attr("class","mermaid-tmp-group"));let Y=o.getDrawableElem(),H={};function Q(P){let Z=L,C="";for(let[K]of P.entries()){let J=L;if(K>0&&H[C])J=H[C];if(C+=P[K],Z=H[C],!Z)Z=H[C]=J.append("g").attr("class",P[K])}return Z}e(Q,"getGroup");for(let P of Y){if(P.data.length===0)continue;let Z=Q(P.groupTexts);switch(P.type){case"rect":if(Z.selectAll("rect").data(P.data).enter().append("rect").attr("x",(C)=>C.x).attr("y",(C)=>C.y).attr("width",(C)=>C.width).attr("height",(C)=>C.height).attr("fill",(C)=>C.fill).attr("stroke",(C)=>C.strokeFill).attr("stroke-width",(C)=>C.strokeWidth),y.showDataLabel){let C=y.showDataLabelOutsideBar;if(y.chartOrientation==="horizontal"){let K=function(I,at){let{data:B,label:tt}=I;return at*tt.length*J<=B.width-M};var st=K;e(K,"fitsHorizontally");let J=0.7,M=10,rt=P.data.map((I,at)=>({data:I,label:T[at].toString()})).filter((I)=>I.data.width>0&&I.data.height>0),U=rt.map((I)=>{let{data:at}=I,B=at.height*0.7;while(!K(I,B)&&B>0)B-=1;return B}),ut=Math.floor(Math.min(...U)),W=e((I)=>{if(C)return I.data.x+I.data.width+M;else return I.data.x+I.data.width-M},"determineLabelXPosition");Z.selectAll("text").data(rt).enter().append("text").attr("x",W).attr("y",(I)=>I.data.y+I.data.height/2).attr("text-anchor",C?"start":"end").attr("dominant-baseline","middle").attr("fill",c.dataLabelColor).attr("font-size",`${ut}px`).text((I)=>I.label)}else{let K=function(W,I,at){let{data:B,label:tt}=W,h=0.7,l=I*tt.length*0.7,S=B.x+B.width/2,R=S-l/2,z=S+l/2,r=R>=B.x&&z<=B.x+B.width,ht=B.y+at+I<=B.y+B.height;return r&&ht};var nt=K;e(K,"fitsInBar");let J=10,M=P.data.map((W,I)=>({data:W,label:T[I].toString()})).filter((W)=>W.data.width>0&&W.data.height>0),rt=M.map((W)=>{let{data:I,label:at}=W,B=I.width/(at.length*0.7);while(!K(W,B,J)&&B>0)B-=1;return B}),U=Math.floor(Math.min(...rt)),ut=e((W)=>{if(C)return W.data.y-J;else return W.data.y+J},"determineLabelYPosition");Z.selectAll("text").data(M).enter().append("text").attr("x",(W)=>W.data.x+W.data.width/2).attr("y",ut).attr("text-anchor","middle").attr("dominant-baseline",C?"auto":"hanging").attr("fill",c.dataLabelColor).attr("font-size",`${U}px`).text((W)=>W.label)}}break;case"text":Z.selectAll("text").data(P.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",(C)=>C.fill).attr("font-size",(C)=>C.fontSize).attr("dominant-baseline",(C)=>V(C.verticalPos)).attr("text-anchor",(C)=>F(C.horizontalPos)).attr("transform",(C)=>N(C)).text((C)=>C.text);break;case"path":Z.selectAll("path").data(P.data).enter().append("path").attr("d",(C)=>C.path).attr("fill",(C)=>C.fill?C.fill:"none").attr("stroke",(C)=>C.strokeFill).attr("stroke-width",(C)=>C.strokeWidth);break}}},"draw"),ve={draw:De},je={parser:me,db:Te,renderer:ve};export{je as diagram};
5
+ `+l+"^"},"showPosition"),test_match:e(function(h,l){var C,S,z;if(this.options.backtrack_lexer){if(z={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)z.yylloc.range=this.yylloc.range.slice(0)}if(S=h[0].match(/(?:\r\n?|\n).*/g),S)this.yylineno+=S.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:S?S[S.length-1].length-S[S.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+h[0].length},this.yytext+=h[0],this.match+=h[0],this.matches=h,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(h[0].length),this.matched+=h[0],C=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(C)return C;else if(this._backtrack){for(var r in z)this[r]=z[r];return!1}return!1},"test_match"),next:e(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var h,l,C,S;if(!this._more)this.yytext="",this.match="";var z=this._currentRules();for(var r=0;r<z.length;r++)if(C=this._input.match(this.rules[z[r]]),C&&(!l||C[0].length>l[0].length)){if(l=C,S=r,this.options.backtrack_lexer)if(h=this.test_match(C,z[r]),h!==!1)return h;else if(this._backtrack){l=!1;continue}else return!1;else if(!this.options.flex)break}if(l){if(h=this.test_match(l,z[S]),h!==!1)return h;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
+ `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:e(function(){var l=this.next();if(l)return l;else return this.lex()},"lex"),begin:e(function(l){this.conditionStack.push(l)},"begin"),popState:e(function(){var l=this.conditionStack.length-1;if(l>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:e(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:e(function(l){if(l=this.conditionStack.length-1-Math.abs(l||0),l>=0)return this.conditionStack[l];else return"INITIAL"},"topState"),pushState:e(function(l){this.begin(l)},"pushState"),stateStackSize:e(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:e(function(l,C,S,z){var r=z;switch(S){case 0:break;case 1:break;case 2:return this.popState(),36;break;case 3:return this.popState(),36;break;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";break;case 18:return this.pushState("axis_data"),"Y_AXIS";break;case 19:return this.pushState("axis_band_data"),24;break;case 20:return 33;case 21:return this.pushState("data"),16;break;case 22:return this.pushState("data"),18;break;case 23:return this.pushState("data_inner"),24;break;case 24:return 29;case 25:return this.popState(),26;break;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return tt}();I.lexer=at;function B(){this.yy={}}return e(B,"Parser"),B.prototype=I,I.Parser=B,new B}();Lt.parser=Lt;var me=Lt;function Pt(i){return i.type==="bar"}e(Pt,"isBarPlot");function wt(i){return i.type==="band"}e(wt,"isBandAxisData");function xt(i){return i.type==="linear"}e(xt,"isLinearAxisData");var Gt=class{constructor(i){this.parentGroup=i}static{e(this,"TextDimensionCalculatorWithFont")}getMaxDimension(i,s){if(!this.parentGroup)return{width:i.reduce((o,c)=>Math.max(c.length,o),0)*s,height:s};let a={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",s);for(let o of i){let c=Ei(n,1,o),y=c?c.width:o.length*s,_=c?c.height:s;a.width=Math.max(a.width,y),a.height=Math.max(a.height,_)}return n.remove(),a}},Ut=0.7,qt=0.2,jt=class{constructor(i,s,a,n){this.axisConfig=i,this.title=s,this.textDimensionCalculator=a,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{e(this,"BaseAxis")}setRange(i){if(this.range=i,this.axisPosition==="left"||this.axisPosition==="right")this.boundingRect.height=i[1]-i[0];else this.boundingRect.width=i[1]-i[0];this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(i){this.axisPosition=i,this.setRange(this.range)}getTickDistance(){let i=this.getRange();return Math.abs(i[0]-i[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map((i)=>i.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){if(Ut*this.getTickDistance()>this.outerPadding*2)this.outerPadding=Math.floor(Ut*this.getTickDistance()/2);this.recalculateScale()}calculateSpaceIfDrawnHorizontally(i){let s=i.height;if(this.axisConfig.showAxisLine&&s>this.axisConfig.axisLineWidth)s-=this.axisConfig.axisLineWidth,this.showAxisLine=!0;if(this.axisConfig.showLabel){let a=this.getLabelDimension(),n=qt*i.width;this.outerPadding=Math.min(a.width/2,n);let o=a.height;if(this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0)o=Math.max(o,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*a.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*a.height));if(o+=this.axisConfig.labelPadding*2,this.labelTextHeight=a.height,o<=s)s-=o,this.showLabel=!0}if(this.axisConfig.showTick&&s>=this.axisConfig.tickLength)this.showTick=!0,s-=this.axisConfig.tickLength;if(this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;if(this.titleTextHeight=a.height,n<=s)s-=n,this.showTitle=!0}this.boundingRect.width=i.width,this.boundingRect.height=i.height-s}calculateSpaceIfDrawnVertical(i){let s=i.width;if(this.axisConfig.showAxisLine&&s>this.axisConfig.axisLineWidth)s-=this.axisConfig.axisLineWidth,this.showAxisLine=!0;if(this.axisConfig.showLabel){let a=this.getLabelDimension(),n=qt*i.height;this.outerPadding=Math.min(a.height/2,n);let o=a.width+this.axisConfig.labelPadding*2;if(o<=s)s-=o,this.showLabel=!0}if(this.axisConfig.showTick&&s>=this.axisConfig.tickLength)this.showTick=!0,s-=this.axisConfig.tickLength;if(this.axisConfig.showTitle&&this.title){let a=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=a.height+this.axisConfig.titlePadding*2;if(this.titleTextHeight=a.height,n<=s)s-=n,this.showTitle=!0}this.boundingRect.width=i.width-s,this.boundingRect.height=i.height}calculateSpace(i){if(this.axisPosition==="left"||this.axisPosition==="right")this.calculateSpaceIfDrawnVertical(i);else this.calculateSpaceIfDrawnHorizontally(i);return this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateOffsetByRotation(i){let s=this.normalizedLabelRotationInRad;if(s===0)return 0;return Math.sin(s)*this.getLabelDimension()[i]/2}getDrawableElementsForLeftAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${s},${this.boundingRect.y} L ${s},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(s),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))});if(this.showTick){let s=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);i.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${s},${this.getScaleValue(a)} L ${s-this.axisConfig.tickLength},${this.getScaleValue(a)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElementsForBottomAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.y+this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${s} L ${this.boundingRect.x+this.boundingRect.width},${s}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.getScaleValue(s)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))});if(this.showTick){let s=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);i.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${this.getScaleValue(a)},${s} L ${this.getScaleValue(a)},${s+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElementsForTopAxis(){let i=[];if(this.showAxisLine){let s=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;i.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${s} L ${this.boundingRect.x+this.boundingRect.width},${s}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel)i.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map((s)=>({text:s.toString(),x:this.getScaleValue(s),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))});if(this.showTick){let s=this.boundingRect.y;i.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map((a)=>({path:`M ${this.getScaleValue(a)},${s+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(a)},${s+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}if(this.showTitle)i.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]});return i}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");if(this.axisPosition==="bottom")return this.getDrawableElementsForBottomAxis();if(this.axisPosition==="top")return this.getDrawableElementsForTopAxis();return[]}},be=class extends jt{static{e(this,"BandAxis")}constructor(i,s,a,n,o){super(i,n,o,s);this.categories=a,this.scale=dt().domain(this.categories).range(this.getRange())}setRange(i){super.setRange(i)}recalculateScale(){this.scale=dt().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(0.5),t.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(i){return this.scale(i)??this.getRange()[0]}},ye=class extends jt{static{e(this,"LinearAxis")}constructor(i,s,a,n,o){super(i,n,o,s);this.domain=a,this.scale=Oe().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let i=[...this.domain];if(this.axisPosition==="left")i.reverse();this.scale=Oe().domain(i).range(this.getRange())}getScaleValue(i){return this.scale(i)}};function Et(i,s,a,n){let o=new Gt(n);if(wt(i))return new be(s,a,i.categories,i.title,o);return new ye(s,a,[i.min,i.max],i.title,o)}e(Et,"getAxis");var Ae=class{constructor(i,s,a,n){this.textDimensionCalculator=i,this.chartConfig=s,this.chartData=a,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{e(this,"ChartTitle")}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateSpace(i){let s=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),a=Math.max(s.width,i.width),n=s.height+2*this.chartConfig.titlePadding;if(s.width<=a&&s.height<=n&&this.chartConfig.showTitle&&this.chartData.title)this.boundingRect.width=a,this.boundingRect.height=n,this.showChartTitle=!0;return{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let i=[];if(this.showChartTitle)i.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]});return i}};function Qt(i,s,a,n){let o=new Gt(n);return new Ae(o,i,s,a)}e(Qt,"getChartTitleComponent");var ke=class{constructor(i,s,a,n,o){this.plotData=i,this.xAxis=s,this.yAxis=a,this.orientation=n,this.plotIndex=o}static{e(this,"LinePlot")}getDrawableElement(){let i=this.plotData.data.map((n)=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),s;if(this.orientation==="horizontal")s=Le().y((n)=>n[0]).x((n)=>n[1])(i);else s=Le().x((n)=>n[0]).y((n)=>n[1])(i);if(!s)return[];let a=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:s,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let c=[];for(let[y,[_,V]]of i.entries()){let F=this.plotData.pointLabels[y];if(!F)continue;if(this.orientation==="horizontal")c.push({x:V+10,y:_,text:F,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0});else c.push({x:_,y:V-10,text:F,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0})}if(c.length>0)a.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:c})}return a}},we=class{constructor(i,s,a,n,o,c){this.barData=i,this.boundingRect=s,this.xAxis=a,this.yAxis=n,this.orientation=o,this.plotIndex=c}static{e(this,"BarPlot")}getDrawableElement(){let i=this.barData.data.map((o)=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=0.05,a=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*0.95,n=a/2;if(this.orientation==="horizontal")return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:i.map((o)=>({x:this.boundingRect.x,y:o[0]-n,height:a,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}];return[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:i.map((o)=>({x:o[0]-n,y:o[1],width:a,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},Ce=class{constructor(i,s,a){this.chartConfig=i,this.chartData=s,this.chartThemeConfig=a,this.boundingRect={x:0,y:0,width:0,height:0}}static{e(this,"BasePlot")}setAxes(i,s){this.xAxis=i,this.yAxis=s}setBoundingBoxXY(i){this.boundingRect.x=i.x,this.boundingRect.y=i.y}calculateSpace(i){return this.boundingRect.width=i.width,this.boundingRect.height=i.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let i=[];for(let[s,a]of this.chartData.plots.entries())switch(a.type){case"line":{let n=new ke(a,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,s);i.push(...n.getDrawableElement())}break;case"bar":{let n=new we(a,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,s);i.push(...n.getDrawableElement())}break}return i}};function Kt(i,s,a){return new Ce(i,s,a)}e(Kt,"getPlotComponent");var Se=class{constructor(i,s,a,n){this.chartConfig=i,this.chartData=s,this.componentStore={title:Qt(i,s,a,n),plot:Kt(i,s,a),xAxis:Et(s.xAxis,i.xAxis,{titleColor:a.xAxisTitleColor,labelColor:a.xAxisLabelColor,tickColor:a.xAxisTickColor,axisLineColor:a.xAxisLineColor},n),yAxis:Et(s.yAxis,i.yAxis,{titleColor:a.yAxisTitleColor,labelColor:a.yAxisLabelColor,tickColor:a.yAxisTickColor,axisLineColor:a.yAxisLineColor},n)}}static{e(this,"Orchestrator")}calculateVerticalSpace(){let i=this.chartConfig.width,s=this.chartConfig.height,a=0,n=0,o=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(s*this.chartConfig.plotReservedSpacePercent/100),y=this.componentStore.plot.calculateSpace({width:o,height:c});if(i-=y.width,s-=y.height,y=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:s}),n=y.height,s-=y.height,this.componentStore.xAxis.setAxisPosition("bottom"),y=this.componentStore.xAxis.calculateSpace({width:i,height:s}),s-=y.height,this.componentStore.yAxis.setAxisPosition("left"),y=this.componentStore.yAxis.calculateSpace({width:i,height:s}),a=y.width,i-=y.width,i>0)o+=i,i=0;if(s>0)c+=s,s=0;if(this.componentStore.plot.calculateSpace({width:o,height:c}),this.componentStore.plot.setBoundingBoxXY({x:a,y:n}),this.componentStore.xAxis.setRange([a,a+o]),this.componentStore.xAxis.setBoundingBoxXY({x:a,y:n+c}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some((_)=>Pt(_)))this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let i=this.chartConfig.width,s=this.chartConfig.height,a=0,n=0,o=0,c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),y=Math.floor(s*this.chartConfig.plotReservedSpacePercent/100),_=this.componentStore.plot.calculateSpace({width:c,height:y});if(i-=_.width,s-=_.height,_=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:s}),a=_.height,s-=_.height,this.componentStore.xAxis.setAxisPosition("left"),_=this.componentStore.xAxis.calculateSpace({width:i,height:s}),i-=_.width,n=_.width,this.componentStore.yAxis.setAxisPosition("top"),_=this.componentStore.yAxis.calculateSpace({width:i,height:s}),s-=_.height,o=a+_.height,i>0)c+=i,i=0;if(s>0)y+=s,s=0;if(this.componentStore.plot.calculateSpace({width:c,height:y}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:a}),this.componentStore.xAxis.setRange([o,o+y]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some((V)=>Pt(V)))this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){if(this.chartConfig.chartOrientation==="horizontal")this.calculateHorizontalSpace();else this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let i=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let s of Object.values(this.componentStore))i.push(...s.getDrawableElements());return i}},Re=class{static{e(this,"XYChartBuilder")}static build(i,s,a,n){return new Se(i,s,a,n).getDrawableElement()}},ft=0,Zt,pt=Bt(),mt=zt(),D=Vt(),It=mt.plotColorPalette.split(",").map((i)=>i.trim()),Ct=!1,Mt=!1;function zt(){let i=j(),s=u();return E(i.xyChart,s.themeVariables.xyChart)}e(zt,"getChartDefaultThemeConfig");function Bt(){let i=u();return E(x.xyChart,i.xyChart)}e(Bt,"getChartDefaultConfig");function Vt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}e(Vt,"getChartDefaultData");function bt(i){let s=u();return w(i.trim(),s)}e(bt,"textSanitizer");function Jt(i){Zt=i}e(Jt,"setTmpSVGG");function te(i){if(i==="horizontal")pt.chartOrientation="horizontal";else pt.chartOrientation="vertical"}e(te,"setOrientation");function ee(i){D.xAxis.title=bt(i.text)}e(ee,"setXAxisTitle");function Ot(i,s){D.xAxis={type:"linear",title:D.xAxis.title,min:i,max:s},Ct=!0}e(Ot,"setXAxisRangeData");function ie(i){D.xAxis={type:"band",title:D.xAxis.title,categories:i.map((s)=>bt(s.text))},Ct=!0}e(ie,"setXAxisBand");function se(i){D.yAxis.title=bt(i.text)}e(se,"setYAxisTitle");function ae(i,s){D.yAxis={type:"linear",title:D.yAxis.title,min:i,max:s},Mt=!0}e(ae,"setYAxisRangeData");function ne(i){let s=Math.min(...i),a=Math.max(...i),n=xt(D.yAxis)?D.yAxis.min:1/0,o=xt(D.yAxis)?D.yAxis.max:-1/0;D.yAxis={type:"linear",title:D.yAxis.title,min:Math.min(n,s),max:Math.max(o,a)}}e(ne,"setYAxisRangeFromPlotData");function Wt(i){let s=[];if(i.length===0)return s;if(!Ct){let a=xt(D.xAxis)?D.xAxis.min:1/0,n=xt(D.xAxis)?D.xAxis.max:-1/0;Ot(Math.min(a,1),Math.max(n,i.length))}if(wt(D.xAxis)&&i.length>D.xAxis.categories.length)i=i.slice(0,D.xAxis.categories.length);if(!Mt)ne(i);if(wt(D.xAxis))s=D.xAxis.categories.map((a,n)=>[a,i[n]]);if(xt(D.xAxis)){let a=D.xAxis.min,n=D.xAxis.max;if(i.length===1)s=[[`${a}`,i[0]]];else{let o=(n-a)/(i.length-1);s=i.map((c,y)=>[`${a+y*o}`,c])}}return s}e(Wt,"transformDataWithoutCategory");function Ft(i){return It[i===0?0:i%It.length]}e(Ft,"getPlotColorFromPalette");function oe(i,s){let a=s.map((y)=>y.value),n=s.map((y)=>y.label?bt(y.label):""),o=Wt(a),c=n.some((y)=>y!=="");D.plots.push({type:"line",strokeFill:Ft(ft),strokeWidth:2,data:o,...c?{pointLabels:n}:{}}),ft++}e(oe,"setLineData");function re(i,s){let a=s.map((o)=>o.value),n=Wt(a);D.plots.push({type:"bar",fill:Ft(ft),data:n}),ft++}e(re,"setBarData");function he(){if(D.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return D.title=v(),Re.build(pt,D,mt,Zt)}e(he,"getDrawableElem");function le(){return mt}e(le,"getChartThemeConfig");function ce(){return pt}e(ce,"getChartConfig");function ue(){return D}e(ue,"getXYChartData");var _e=e(function(){d(),ft=0,pt=Bt(),D=Vt(),mt=zt(),It=mt.plotColorPalette.split(",").map((i)=>i.trim()),Ct=!1,Mt=!1},"clear"),Te={getDrawableElem:he,clear:_e,setAccTitle:f,getAccTitle:p,setDiagramTitle:b,getDiagramTitle:v,getAccDescription:g,setAccDescription:m,setOrientation:te,setXAxisTitle:ee,setXAxisRangeData:Ot,setXAxisBand:ie,setYAxisTitle:se,setYAxisRangeData:ae,setLineData:oe,setBarData:re,setTmpSVGG:Jt,getChartThemeConfig:le,getChartConfig:ce,getXYChartData:ue},De=e((i,s,a,n)=>{let o=n.db,c=o.getChartThemeConfig(),y=o.getChartConfig(),_=o.getXYChartData().plots[0].data.map((P)=>P[1]);function V(P){return P==="top"?"text-before-edge":"middle"}e(V,"getDominantBaseLine");function F(P){return P==="left"?"start":P==="right"?"end":"middle"}e(F,"getTextAnchor");function N(P){return`translate(${P.x}, ${P.y}) rotate(${P.rotation||0})`}e(N,"getTextTransformation"),t.debug(`Rendering xychart chart
7
+ `+i);let O=A(s),L=O.append("g").attr("class","main"),G=L.append("rect").attr("width",y.width).attr("height",y.height).attr("class","background");T(O,y.height,y.width,!0),O.attr("viewBox",`0 0 ${y.width} ${y.height}`),G.attr("fill",c.backgroundColor),o.setTmpSVGG(O.append("g").attr("class","mermaid-tmp-group"));let Y=o.getDrawableElem(),H={};function Q(P){let Z=L,k="";for(let[K]of P.entries()){let J=L;if(K>0&&H[k])J=H[k];if(k+=P[K],Z=H[k],!Z)Z=H[k]=J.append("g").attr("class",P[K])}return Z}e(Q,"getGroup");for(let P of Y){if(P.data.length===0)continue;let Z=Q(P.groupTexts);switch(P.type){case"rect":if(Z.selectAll("rect").data(P.data).enter().append("rect").attr("x",(k)=>k.x).attr("y",(k)=>k.y).attr("width",(k)=>k.width).attr("height",(k)=>k.height).attr("fill",(k)=>k.fill).attr("stroke",(k)=>k.strokeFill).attr("stroke-width",(k)=>k.strokeWidth),y.showDataLabel){let k=y.showDataLabelOutsideBar;if(y.chartOrientation==="horizontal"){let K=function(I,at){let{data:B,label:tt}=I;return at*tt.length*J<=B.width-M};var st=K;e(K,"fitsHorizontally");let J=0.7,M=10,rt=P.data.map((I,at)=>({data:I,label:_[at].toString()})).filter((I)=>I.data.width>0&&I.data.height>0),U=rt.map((I)=>{let{data:at}=I,B=at.height*0.7;while(!K(I,B)&&B>0)B-=1;return B}),ut=Math.floor(Math.min(...U)),W=e((I)=>{if(k)return I.data.x+I.data.width+M;else return I.data.x+I.data.width-M},"determineLabelXPosition");Z.selectAll("text").data(rt).enter().append("text").attr("x",W).attr("y",(I)=>I.data.y+I.data.height/2).attr("text-anchor",k?"start":"end").attr("dominant-baseline","middle").attr("fill",c.dataLabelColor).attr("font-size",`${ut}px`).text((I)=>I.label)}else{let K=function(W,I,at){let{data:B,label:tt}=W,h=0.7,l=I*tt.length*0.7,C=B.x+B.width/2,S=C-l/2,z=C+l/2,r=S>=B.x&&z<=B.x+B.width,ht=B.y+at+I<=B.y+B.height;return r&&ht};var nt=K;e(K,"fitsInBar");let J=10,M=P.data.map((W,I)=>({data:W,label:_[I].toString()})).filter((W)=>W.data.width>0&&W.data.height>0),rt=M.map((W)=>{let{data:I,label:at}=W,B=I.width/(at.length*0.7);while(!K(W,B,J)&&B>0)B-=1;return B}),U=Math.floor(Math.min(...rt)),ut=e((W)=>{if(k)return W.data.y-J;else return W.data.y+J},"determineLabelYPosition");Z.selectAll("text").data(M).enter().append("text").attr("x",(W)=>W.data.x+W.data.width/2).attr("y",ut).attr("text-anchor","middle").attr("dominant-baseline",k?"auto":"hanging").attr("fill",c.dataLabelColor).attr("font-size",`${U}px`).text((W)=>W.label)}}break;case"text":Z.selectAll("text").data(P.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",(k)=>k.fill).attr("font-size",(k)=>k.fontSize).attr("dominant-baseline",(k)=>V(k.verticalPos)).attr("text-anchor",(k)=>F(k.horizontalPos)).attr("transform",(k)=>N(k)).text((k)=>k.text);break;case"path":Z.selectAll("path").data(P.data).enter().append("path").attr("d",(k)=>k.path).attr("fill",(k)=>k.fill?k.fill:"none").attr("stroke",(k)=>k.strokeFill).attr("stroke-width",(k)=>k.strokeWidth);break}}},"draw"),ve={draw:De},je={parser:me,db:Te,renderer:ve};export{je as diagram};
@@ -849,6 +849,31 @@ body,
849
849
  color: var(--c-text-soft);
850
850
  }
851
851
 
852
+ /* In-card editing is view state, never a persisted resize. */
853
+ .canvas-node:has(.work-card-editor) { height: auto !important; }
854
+ .canvas-node:has(.work-card-editor) .node-body { flex: none; overflow: visible; }
855
+ .work-card { display: flex; flex-direction: column; gap: 12px; }
856
+ .work-card-state { color: var(--c-text); font-weight: 600; }
857
+ .work-card-blocked .work-card-state, .work-card-state.work-card-blocked, .work-card-error { color: var(--c-warn); }
858
+ .work-card-done .work-card-state, .work-card-state.work-card-done { color: var(--c-ok); }
859
+ .work-card-cancelled .work-card-state, .work-card-state.work-card-cancelled { color: var(--c-muted); }
860
+ .work-card-detail { white-space: pre-wrap; overflow-wrap: anywhere; }
861
+ .work-card-live { color: var(--c-muted); font-size: var(--fs-meta); overflow-wrap: anywhere; }
862
+ .work-card-progress { color: var(--c-muted); font-size: var(--fs-meta); }
863
+ .work-card footer, .work-card-editor footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
864
+ .work-card button, .work-card-editor button, .work-card-editor input, .work-card-editor select, .work-card-editor textarea {
865
+ font: inherit; color: var(--c-text); background: var(--c-input-bg); border: 1px solid var(--c-line); border-radius: var(--r-control); padding: 8px;
866
+ }
867
+ .work-card button, .work-card-editor button { cursor: pointer; }
868
+ .work-card button:hover, .work-card-editor button:hover { border-color: var(--c-text-soft); }
869
+ .work-card-editor fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
870
+ .work-card-editor label { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
871
+ .work-card-editor input, .work-card-editor select, .work-card-editor textarea { width: 100%; box-sizing: border-box; }
872
+ .work-card-editor textarea { min-height: 80px; resize: vertical; }
873
+ .work-card-editor .work-card-save { background: var(--c-accent); color: var(--c-contrast-fg); }
874
+ .work-card-editor :disabled { cursor: wait; opacity: 0.65; }
875
+ .work-card-editor :focus-visible, .work-card button:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
876
+
852
877
  /* Markdown rendered content inside nodes */
853
878
  .canvas-node .node-body h1,
854
879
  .canvas-node .node-body h2,
@@ -1297,6 +1322,18 @@ body,
1297
1322
  border-color: var(--c-line);
1298
1323
  }
1299
1324
 
1325
+ .human-name-control { order: 4; flex-shrink: 0; }
1326
+ .human-name-button {
1327
+ width: 28px;
1328
+ height: 28px;
1329
+ padding: 0;
1330
+ border-color: var(--c-line);
1331
+ border-radius: var(--r-pill);
1332
+ background: var(--c-panel-soft);
1333
+ color: var(--c-text-soft);
1334
+ font: 600 12px var(--font-ui);
1335
+ }
1336
+
1300
1337
  .top-bar-zoom-label {
1301
1338
  min-width: 38px;
1302
1339
  text-align: center;
@@ -1852,6 +1889,19 @@ body,
1852
1889
  flex: 1;
1853
1890
  min-width: 0;
1854
1891
  }
1892
+ .session-show-work {
1893
+ margin-top: 8px;
1894
+ padding: 4px 8px;
1895
+ font: inherit;
1896
+ color: var(--c-text);
1897
+ background: var(--c-input-bg);
1898
+ border: 1px solid var(--c-line);
1899
+ border-radius: var(--r-control);
1900
+ cursor: pointer;
1901
+ }
1902
+ .session-show-work:hover { border-color: var(--c-text-soft); }
1903
+ .session-show-work:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
1904
+ .session-show-work:disabled { cursor: wait; opacity: 0.65; }
1855
1905
  .session-item-title {
1856
1906
  display: block;
1857
1907
  width: 100%;
@@ -4772,7 +4822,7 @@ html.is-node-resizing .ext-app-preview-catcher {
4772
4822
  background: var(--c-input-bg);
4773
4823
  color: var(--c-text);
4774
4824
  }
4775
- .relation-legend { position: absolute; top: 8px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; max-height: min(180px, 25%); overflow-x: hidden; overflow-y: auto; }
4825
+ .relation-legend { position: absolute; top: 8px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; max-height: min(180px, 25%); overflow-x: hidden; overflow-y: auto; pointer-events: none; }
4776
4826
  .lifecycle-filters ~ .relation-legend { top: 48px; }
4777
4827
  .relation-legend > * { pointer-events: auto; flex-shrink: 0; max-width: 100%; height: 24px; box-sizing: border-box; border: 1px solid var(--c-line); border-radius: var(--r-control); background: var(--c-panel); color: var(--c-text); font: 500 11px var(--font-ui); padding: 0 9px; cursor: pointer; }
4778
4828
  .relation-legend select { background: var(--c-panel-soft); font-weight: 600; padding: 0 10px; }
@@ -4780,6 +4830,31 @@ html.is-node-resizing .ext-app-preview-catcher {
4780
4830
  .relation-legend button[aria-pressed="true"] { border-color: var(--relation-ink); }
4781
4831
  .relation-swatch { width: 14px; height: 2.5px; border-radius: 2px; background: var(--relation-ink); }
4782
4832
  .relation-count { color: var(--c-muted); font-variant-numeric: tabular-nums; }
4833
+ .relation-legend > span { display: flex; align-items: center; cursor: default; }
4834
+ .relation-legend .relation-warning { color: var(--c-warn); }
4835
+ .edge-editor { position: fixed; z-index: 1000; box-sizing: border-box; padding: 3px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-panel); color: var(--c-text); box-shadow: var(--e-1); font: 500 11px var(--font-ui); }
4836
+ .edge-editor fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
4837
+ .edge-editor-tools { display: flex; gap: 3px; }
4838
+ .edge-editor-tools select { flex: 1; min-width: 0; }
4839
+ .edge-editor button, .edge-editor select, .relation-navigation button, .group-breadcrumbs button { min-height: 24px; border: 1px solid var(--c-line); border-radius: var(--r-control); padding: 3px 7px; background: var(--c-panel-soft); color: var(--c-text); font: inherit; cursor: pointer; }
4840
+ .edge-editor button:hover, .group-breadcrumbs button:hover, .relation-navigation button:hover { background: var(--c-hover); }
4841
+ .edge-editor-field { display: grid; gap: 8px; padding: 8px; }
4842
+ .edge-editor-field label { display: grid; gap: 4px; }
4843
+ .edge-editor input { box-sizing: border-box; width: 100%; min-width: 0; padding: 6px; border: 1px solid var(--c-line); border-radius: var(--r-control); color: var(--c-text); background: var(--c-input-bg); font: inherit; }
4844
+ .edge-editor p { margin: 6px; color: var(--c-warn); }
4845
+ .relation-navigation { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
4846
+ .group-breadcrumbs { position: absolute; top: 8px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; max-height: 64px; overflow: auto; pointer-events: auto; color: var(--c-muted); font: 500 11px var(--font-ui); }
4847
+ .group-breadcrumbs button[aria-current] { color: var(--c-text); cursor: default; }
4848
+ .group-breadcrumbs > button:last-child { margin-left: auto; }
4849
+ .canvas-region:has(.group-breadcrumbs) .relation-legend { top: 80px; }
4850
+ .canvas-region:has(.group-breadcrumbs) .lifecycle-filters { top: 80px; }
4851
+ .canvas-region:has(.group-breadcrumbs) .lifecycle-filters ~ .relation-legend { top: 120px; }
4852
+ .group-inside-frame { position: absolute; border: 1px dashed var(--c-line); border-radius: 12px; pointer-events: none; box-sizing: border-box; z-index: -6; }
4853
+ .group-inside-frame > span { position: absolute; top: -9px; left: 12px; padding: 0 6px; background: var(--c-bg); color: var(--c-muted); font: 500 12px var(--font-ui); }
4854
+ .group-outside-endpoint { position: absolute; width: 170px; height: 60px; z-index: 2; }
4855
+ .group-outside-label { position: absolute; top: -24px; color: var(--c-muted); font: 500 12px var(--font-ui); }
4856
+ .group-outside-stub { width: 100%; height: 100%; box-sizing: border-box; padding: 8px 12px; border: 1px dashed var(--c-line); border-radius: 10px; text-align: left; background: var(--c-panel); color: var(--c-text); font: 600 12px var(--font-ui); cursor: pointer; overflow: hidden; }
4857
+ .group-outside-stub span { display: block; margin-top: 4px; color: var(--c-muted); font: 11px var(--font-ui); }
4783
4858
  .expanded-content-row { display: flex; flex: 1; min-height: 0; }
4784
4859
  .expanded-content-row > .expanded-body { flex: 1; min-width: 0; }
4785
4860
  .relations-panel {
@@ -5294,6 +5369,11 @@ html.is-node-resizing .ext-app-preview-catcher {
5294
5369
  font-weight: 600;
5295
5370
  color: var(--c-text);
5296
5371
  }
5372
+ .text-prompt-description {
5373
+ font-size: 12px;
5374
+ line-height: 1.4;
5375
+ color: var(--c-muted);
5376
+ }
5297
5377
  .text-prompt-input {
5298
5378
  width: 100%;
5299
5379
  padding: 8px 10px;
@@ -8830,6 +8910,19 @@ html.is-node-dragging .intent-line-layer {
8830
8910
  cursor: pointer;
8831
8911
  }
8832
8912
  }
8913
+ .board-move-backdrop { padding: 20px 0; align-items: center; }
8914
+ .board-move-dialog {
8915
+ width: min(540px, calc(100% - 32px));
8916
+ max-height: calc(100% - 40px);
8917
+ overflow-y: auto;
8918
+ box-sizing: border-box;
8919
+ }
8920
+ .board-move-dialog form { display: flex; flex-direction: column; gap: 8px; }
8921
+ .board-move-dialog h2 { margin: 0 0 12px; font-size: 17px; }
8922
+ .board-move-dialog p { margin: 0; font-size: 12px; line-height: 1.5; color: var(--c-text-soft); }
8923
+ .board-move-dialog .board-move-warning { color: var(--c-warn); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
8924
+ .board-move-cards { margin: 0; max-height: 100px; overflow-y: auto; font-size: 12px; }
8925
+ .board-move-dialog .text-prompt-actions { margin-top: 8px; }
8833
8926
  .board-copy-dialog,
8834
8927
  .board-link-dialog {
8835
8928
  width: min(540px, calc(100vw - 32px));