@diagrammo/dgmo 0.54.0 → 0.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/advanced.d.ts +138 -11
  2. package/dist/advanced.js +140 -115
  3. package/dist/{analyzer-TDN5KJFP.js → analyzer-HQUXKZ5J.js} +3 -3
  4. package/dist/auto.js +129 -126
  5. package/dist/auto.mjs +2731 -882
  6. package/dist/block.js +58 -56
  7. package/dist/{calculator-VBIT6GQF.js → calculator-BBKAAQGD.js} +3 -3
  8. package/dist/chart-meta.js +49 -49
  9. package/dist/charts-d3-D67V6KHE.js +29 -0
  10. package/dist/{chunk-5VXU6MND.js → chunk-23THM67F.js} +2 -2
  11. package/dist/{chunk-N7BSBAVP.js → chunk-2JMNOEAU.js} +117 -98
  12. package/dist/{chunk-6OYDOQ2Q.js → chunk-2UZVMWSQ.js} +4 -4
  13. package/dist/{chunk-3FRO35WW.js → chunk-3KOPPSUQ.js} +19 -5
  14. package/dist/{chunk-IYNKLCAZ.js → chunk-3R67RRPC.js} +126 -57
  15. package/dist/{chunk-JYDMBWRP.js → chunk-42IT4BG2.js} +2 -2
  16. package/dist/{chunk-O576GYAP.js → chunk-4MB4UOT5.js} +3 -3
  17. package/dist/{chunk-3KHJJP3J.js → chunk-4MJOBVY7.js} +3 -3
  18. package/dist/{chunk-3SEEP2JM.js → chunk-5J2RQGFG.js} +9 -5
  19. package/dist/{chunk-EAI6XJ7D.js → chunk-5VLUAAAE.js} +4 -4
  20. package/dist/{chunk-FVMKCZHF.js → chunk-5XMDSXZT.js} +3 -3
  21. package/dist/{chunk-LPJ6H5X4.js → chunk-5ZDHXS5N.js} +60 -15
  22. package/dist/{chunk-MEQYZZFR.js → chunk-6IVXRTXH.js} +96 -23
  23. package/dist/chunk-6VJCURWU.js +87 -0
  24. package/dist/{chunk-QZAW5SFH.js → chunk-7NK42OIB.js} +2 -2
  25. package/dist/{chunk-EQOMY4PY.js → chunk-7SXTD7L6.js} +3 -3
  26. package/dist/{chunk-APKUAJ2L.js → chunk-A2RUBBVT.js} +14 -1
  27. package/dist/{chunk-S7FOIURR.js → chunk-A4DAZO3U.js} +12 -9
  28. package/dist/{chunk-AJFHNS67.js → chunk-AIH6M5J6.js} +7 -7
  29. package/dist/{chunk-KS5ZSM5T.js → chunk-AMC2OGXF.js} +64 -16
  30. package/dist/{chunk-SSHS42QG.js → chunk-AN465MXC.js} +2 -2
  31. package/dist/{chunk-BZJIITYM.js → chunk-AOJJSGXE.js} +5 -5
  32. package/dist/{chunk-T7Y554OK.js → chunk-APD52YJV.js} +8 -8
  33. package/dist/{chunk-FFVFZLRT.js → chunk-BR2VSKHI.js} +377 -60
  34. package/dist/{chunk-7K6NDSXH.js → chunk-C3BWDEYN.js} +5 -5
  35. package/dist/{chunk-HO3RCNF6.js → chunk-CGLBK5Q4.js} +2 -2
  36. package/dist/{chunk-ADYKAKE3.js → chunk-CQ7Y3O67.js} +7 -4
  37. package/dist/{chunk-WKNAJ4BR.js → chunk-CQOC2MD6.js} +66 -13
  38. package/dist/{chunk-TLNVYWPA.js → chunk-CXI6X54X.js} +3 -3
  39. package/dist/{chunk-AQEYUVGJ.js → chunk-CY5KE2P5.js} +67 -10
  40. package/dist/{chunk-COVYNAKJ.js → chunk-D3WTEBGT.js} +2 -2
  41. package/dist/{chunk-AHTTKERF.js → chunk-D5FANMSG.js} +3 -3
  42. package/dist/{chunk-CCGWX6AO.js → chunk-D64FRGKU.js} +3 -3
  43. package/dist/{chunk-RRGKMJYL.js → chunk-DIKIHU52.js} +9 -4
  44. package/dist/{chunk-BULHGPHK.js → chunk-DNSEG6P2.js} +3 -3
  45. package/dist/{chunk-UJRTPOHH.js → chunk-DUI5SMFX.js} +2 -2
  46. package/dist/{chunk-VQFDBNYF.js → chunk-EEKGMS63.js} +4 -4
  47. package/dist/{chunk-MTZOXISJ.js → chunk-ES3MUYRX.js} +5 -5
  48. package/dist/{chunk-J7HQPVYH.js → chunk-ES66QH6J.js} +24 -3
  49. package/dist/{chunk-ZKPPI6BF.js → chunk-EXNKNJ65.js} +2 -2
  50. package/dist/{chunk-2NYXI35Z.js → chunk-FCA2UGJT.js} +7 -6
  51. package/dist/{chunk-M3H7ZE6C.js → chunk-FERE46TP.js} +7 -6
  52. package/dist/{chunk-B4XS2AF2.js → chunk-FWVKPEG3.js} +3 -3
  53. package/dist/{chunk-S7YFT3PO.js → chunk-FXVPSTDT.js} +6 -6
  54. package/dist/{chunk-BM7MG6HT.js → chunk-FZECLCCU.js} +4 -4
  55. package/dist/{chunk-SBOAZ7YK.js → chunk-GDGOVO2I.js} +60 -41
  56. package/dist/{chunk-QBYP2FBZ.js → chunk-GG7TK3IA.js} +5 -5
  57. package/dist/{chunk-GQ5ECRP4.js → chunk-GUVVQW3Y.js} +5 -5
  58. package/dist/{chunk-R5BGGBFF.js → chunk-HE57UQHL.js} +3 -3
  59. package/dist/{chunk-4ZIKWVSQ.js → chunk-HIMDUQT7.js} +7 -7
  60. package/dist/{chunk-CSHFU6LT.js → chunk-HKKPUUNK.js} +10 -10
  61. package/dist/{chunk-KINOX74I.js → chunk-HODUM6LY.js} +50 -12
  62. package/dist/{chunk-47JNEKJA.js → chunk-HOPTF3ZP.js} +47 -12
  63. package/dist/{chunk-WW4BQ744.js → chunk-HPJITTF7.js} +11 -8
  64. package/dist/{chunk-BEOAKGNA.js → chunk-I55PVEIX.js} +2 -2
  65. package/dist/{chunk-7JDTNFAK.js → chunk-IMXG673Y.js} +78 -34
  66. package/dist/{chunk-4T6OCSJ2.js → chunk-JE3SMHRZ.js} +6 -6
  67. package/dist/{chunk-KQYQECWQ.js → chunk-JXFB3APA.js} +52 -16
  68. package/dist/{chunk-OJ435DQZ.js → chunk-KF575IXC.js} +4 -4
  69. package/dist/{chunk-IOIMQHQ6.js → chunk-KIGV66SP.js} +3 -3
  70. package/dist/{chunk-ICKXIMBA.js → chunk-KSPCR75O.js} +7 -7
  71. package/dist/{chunk-JTSMEYIZ.js → chunk-L43KTQTW.js} +5 -2
  72. package/dist/{chunk-DLU643TF.js → chunk-LV5BFA24.js} +6 -6
  73. package/dist/{chunk-RJ5LBZ5U.js → chunk-MD2KWAXJ.js} +16 -16
  74. package/dist/{chunk-KDK5EKUR.js → chunk-MGLJA5TK.js} +3 -3
  75. package/dist/{chunk-FR6UFVSV.js → chunk-N2KO445N.js} +99 -46
  76. package/dist/{chunk-C2UORMIA.js → chunk-NFAHDPCG.js} +8 -4
  77. package/dist/{chunk-7UPFTBOW.js → chunk-NHZAYL2X.js} +7 -7
  78. package/dist/{chunk-PIXZTCKH.js → chunk-NVQXIDLE.js} +3 -3
  79. package/dist/chunk-NZ5QVASG.js +20 -0
  80. package/dist/{chunk-F7XM366V.js → chunk-OHBIN74X.js} +4 -4
  81. package/dist/{chunk-4W2PE66Q.js → chunk-OLMWTJVU.js} +11 -1
  82. package/dist/{chunk-HAA25PLC.js → chunk-OWLGERJL.js} +46 -11
  83. package/dist/{chunk-NUTWTV6G.js → chunk-P6XFQVYY.js} +103 -57
  84. package/dist/{chunk-GKYHWJXI.js → chunk-PECYPUJJ.js} +5 -5
  85. package/dist/{chunk-T3FAJAJT.js → chunk-PFG3EVRD.js} +4 -4
  86. package/dist/{chunk-2NZOHEP4.js → chunk-QDOYT6UW.js} +5 -5
  87. package/dist/{chunk-EPRF3ZRV.js → chunk-QWUYFUNO.js} +3 -3
  88. package/dist/{chunk-I47VHSPS.js → chunk-R7ECJQTB.js} +10 -8
  89. package/dist/{chunk-BWYFIVZF.js → chunk-RBIX3HQQ.js} +4 -4
  90. package/dist/{chunk-COJW2NEY.js → chunk-RK3Y4WMV.js} +57 -15
  91. package/dist/{chunk-KQ3FNRGR.js → chunk-RQGNELB3.js} +7 -6
  92. package/dist/{chunk-WF64MW5G.js → chunk-RRX4Z4TH.js} +2 -2
  93. package/dist/{chunk-W6PCFRPL.js → chunk-RV2N7COG.js} +4 -4
  94. package/dist/{chunk-UEU6IYKY.js → chunk-S6QDCFEU.js} +2 -2
  95. package/dist/{chunk-Q5IHQ4NW.js → chunk-SCJ7CAJF.js} +2 -2
  96. package/dist/{chunk-3B2GXZCX.js → chunk-SK7PCW4F.js} +2 -2
  97. package/dist/{chunk-6KL7TFLS.js → chunk-SOBGK35Z.js} +4 -4
  98. package/dist/{chunk-WWHECSYZ.js → chunk-ST3ZNEUQ.js} +3 -3
  99. package/dist/{chunk-3IUHKMJI.js → chunk-U2BKSEKU.js} +2 -2
  100. package/dist/{chunk-KBVOVDYP.js → chunk-U7ZQTUZT.js} +6 -6
  101. package/dist/{chunk-3SBHODJ4.js → chunk-ULONXAOD.js} +50 -11
  102. package/dist/{chunk-B7N5KYXQ.js → chunk-ULR3BVNH.js} +8 -8
  103. package/dist/{chunk-YENNFS5F.js → chunk-USFZQPJ2.js} +10 -5
  104. package/dist/{chunk-OR3R27CU.js → chunk-UZ6L5VQJ.js} +4 -4
  105. package/dist/{chunk-ADCHLNWT.js → chunk-VKN7YW4Q.js} +10 -7
  106. package/dist/{chunk-XWODFBHJ.js → chunk-VSFAJUEF.js} +8 -4
  107. package/dist/{chunk-HFEOOQ46.js → chunk-VU3DOZ6C.js} +3 -3
  108. package/dist/{chunk-M24VXUFG.js → chunk-VYEQPPS6.js} +7 -7
  109. package/dist/{chunk-5XSNLXU5.js → chunk-W2I2EXSC.js} +58 -16
  110. package/dist/{chunk-7U4OR7CD.js → chunk-W4EKQ2P6.js} +2 -2
  111. package/dist/{chunk-UIT7E6UF.js → chunk-WFX6AUQO.js} +52 -5
  112. package/dist/{chunk-RIEAN4D5.js → chunk-WK3UFCZC.js} +51 -11
  113. package/dist/{chunk-7SP4C6EV.js → chunk-WOMXS5R7.js} +24 -5
  114. package/dist/chunk-WTTIODDV.js +10 -0
  115. package/dist/{chunk-GK32ZFZY.js → chunk-X32RDWT5.js} +5 -5
  116. package/dist/{chunk-LRSW4JLE.js → chunk-XN4ZSACM.js} +4 -4
  117. package/dist/{chunk-NR5HCAUD.js → chunk-XSVWUOUZ.js} +1 -1
  118. package/dist/{chunk-OSXQKC3S.js → chunk-Y2L2LET6.js} +8 -5
  119. package/dist/{chunk-TJN2OIVG.js → chunk-YG5KQ55U.js} +182 -14
  120. package/dist/{chunk-DPGQ5UMO.js → chunk-YH62K5D4.js} +15 -12
  121. package/dist/{chunk-A3BDLDYG.js → chunk-YJUF2N3C.js} +62 -23
  122. package/dist/{chunk-VMSBMIHW.js → chunk-YM2ZQIVG.js} +4 -4
  123. package/dist/{chunk-KV4HLIJE.js → chunk-YNAHUNMA.js} +7 -4
  124. package/dist/{chunk-62Y27T4C.js → chunk-YWPWRR7W.js} +2 -2
  125. package/dist/{chunk-U4IN6AHE.js → chunk-ZMMYCERO.js} +2 -2
  126. package/dist/cli.cjs +155 -149
  127. package/dist/clock.js +34 -1
  128. package/dist/completion-registry.js +15 -7
  129. package/dist/dgmo-router-GSWUPLP2.js +88 -0
  130. package/dist/dimensions-PLECMFTR.js +22 -0
  131. package/dist/editor.js +10 -1
  132. package/dist/element.js +131 -128
  133. package/dist/element.mjs +2731 -882
  134. package/dist/flowchart-parser-DA3V2SLH.js +21 -0
  135. package/dist/{flowchart-renderer-DCFKUDDR.js → flowchart-renderer-UQVXOUW4.js} +13 -12
  136. package/dist/highlight.js +10 -1
  137. package/dist/index.js +72 -57
  138. package/dist/{layout-A6OIGZN2.js → layout-2BJDECLZ.js} +5 -8
  139. package/dist/{layout-NF4EWFLT.js → layout-3XFPPFXI.js} +4 -4
  140. package/dist/layout-A5UVXINF.js +15 -0
  141. package/dist/layout-HIK4ZJFQ.js +15 -0
  142. package/dist/{layout-CB3XWCOI.js → layout-NX37NSRY.js} +3 -3
  143. package/dist/layout-OHAIIXBC.js +10 -0
  144. package/dist/{layout-QBNAMEOA.js → layout-QRVYYYZ3.js} +6 -6
  145. package/dist/{layout-ITLPDG6M.js → layout-SNIEAZ2I.js} +8 -8
  146. package/dist/{layout-SP7HJWKA.js → layout-UFZQI6SX.js} +4 -4
  147. package/dist/{layout-G2ABQJQZ.js → layout-UXMNKETK.js} +7 -7
  148. package/dist/layout-WDXNSQQF.js +15 -0
  149. package/dist/{layout-search-LUI475P3.js → layout-search-I4VNIRGT.js} +320 -36
  150. package/dist/{legend-constants-B77VKB3R.js → legend-constants-QQU3QYBF.js} +5 -5
  151. package/dist/{palettes-FGTNFARW.js → palettes-WO3VA6NU.js} +4 -4
  152. package/dist/parser-4TX6U4ZU.js +11 -0
  153. package/dist/{parser-X5XLFY4Z.js → parser-4ZIJDGPG.js} +6 -6
  154. package/dist/parser-5UZWYSIV.js +16 -0
  155. package/dist/parser-6CM27UPA.js +14 -0
  156. package/dist/parser-73YUU35J.js +11 -0
  157. package/dist/parser-A6M25MLK.js +11 -0
  158. package/dist/parser-AYZTKZC3.js +11 -0
  159. package/dist/parser-CCAUZLYI.js +15 -0
  160. package/dist/parser-D7YZX3CH.js +12 -0
  161. package/dist/parser-DQ2DGDYO.js +11 -0
  162. package/dist/parser-GGCDY65M.js +14 -0
  163. package/dist/parser-HMQZPPOK.js +19 -0
  164. package/dist/parser-IPBEW2DG.js +13 -0
  165. package/dist/{parser-66RYGJRB.js → parser-JWAGGYLL.js} +7 -7
  166. package/dist/parser-KTVDCWHG.js +13 -0
  167. package/dist/{parser-OPIXXUY4.js → parser-LNEAHGXF.js} +7 -7
  168. package/dist/parser-LQDEU22S.js +15 -0
  169. package/dist/{parser-VVE4THG3.js → parser-MH62NYKM.js} +6 -6
  170. package/dist/parser-O5XCVGZG.js +11 -0
  171. package/dist/parser-OPOGIKFR.js +17 -0
  172. package/dist/parser-PEBXIOPX.js +12 -0
  173. package/dist/parser-PQXN6SBB.js +18 -0
  174. package/dist/parser-Q3KNFXQR.js +12 -0
  175. package/dist/parser-Q62VR2UJ.js +20 -0
  176. package/dist/parser-QEWSTNEJ.js +15 -0
  177. package/dist/{parser-7UI6UQ7B.js → parser-QL2LBPFE.js} +7 -7
  178. package/dist/{parser-LTA2BOZO.js → parser-QN3GJJ3J.js} +5 -5
  179. package/dist/parser-RBNOWHGM.js +15 -0
  180. package/dist/parser-SJ7ECFAP.js +13 -0
  181. package/dist/parser-VVTCMQWY.js +16 -0
  182. package/dist/parser-WT3DSNPQ.js +13 -0
  183. package/dist/parser-XWNSCDY6.js +13 -0
  184. package/dist/pert.d.ts +2 -0
  185. package/dist/{renderer-WVD6G2TS.js → renderer-2NU7M5PN.js} +14 -12
  186. package/dist/renderer-3IETIUZB.js +30 -0
  187. package/dist/renderer-4VLQKKTV.js +39 -0
  188. package/dist/{renderer-HQ4JFZOV.js → renderer-52S6JM5R.js} +12 -11
  189. package/dist/renderer-53FU55KK.js +19 -0
  190. package/dist/renderer-5CU6GYF2.js +27 -0
  191. package/dist/{renderer-LHVCKEWF.js → renderer-5G3PORFD.js} +13 -12
  192. package/dist/renderer-CB2DOQ2O.js +25 -0
  193. package/dist/{renderer-B7Y6I7JX.js → renderer-CL4SAUA5.js} +8 -8
  194. package/dist/{renderer-FXMGCSRP.js → renderer-CRAIC4ER.js} +12 -10
  195. package/dist/renderer-DZ5N6BHW.js +26 -0
  196. package/dist/renderer-FRBPMKPP.js +25 -0
  197. package/dist/renderer-HGWKAXS6.js +16 -0
  198. package/dist/renderer-I5MAFUKX.js +26 -0
  199. package/dist/{renderer-K7XLVPH5.js → renderer-IWNHBIZ6.js} +5 -5
  200. package/dist/renderer-J5MMVCGN.js +29 -0
  201. package/dist/renderer-J5TL5ZX4.js +39 -0
  202. package/dist/renderer-JNC6VJMN.js +24 -0
  203. package/dist/{renderer-X2LYSMLU.js → renderer-KUIZNLAQ.js} +6 -6
  204. package/dist/renderer-M6AFKVLS.js +21 -0
  205. package/dist/renderer-MLDGFZDW.js +23 -0
  206. package/dist/{renderer-YVMETH6V.js → renderer-O4ECS2BI.js} +13 -12
  207. package/dist/{renderer-YEFOOULC.js → renderer-OZIPP7VF.js} +14 -13
  208. package/dist/{renderer-C3RI4OPJ.js → renderer-P7O6OUYC.js} +13 -12
  209. package/dist/renderer-Q3A7572V.js +25 -0
  210. package/dist/renderer-QRX7Q2YN.js +22 -0
  211. package/dist/{renderer-WCWI4I6A.js → renderer-RJT3MOUU.js} +5 -5
  212. package/dist/{renderer-7HMZ5OCJ.js → renderer-SYT4L7GE.js} +6 -6
  213. package/dist/{renderer-G4UOW3RH.js → renderer-TOKGYFTG.js} +6 -6
  214. package/dist/renderer-WWC5VGHH.js +27 -0
  215. package/dist/{renderer-P3YQES7B.js → renderer-YVCD55ZX.js} +15 -13
  216. package/dist/renderer-YWYX6WAI.js +16 -0
  217. package/dist/renderer-radial-QG644QYY.js +21 -0
  218. package/dist/{resolver-WFKZYBJ2.js → resolver-W3WKLWDP.js} +4 -4
  219. package/dist/state-parser-NQGVYSM3.js +19 -0
  220. package/dist/state-renderer-NKV5B3KH.js +40 -0
  221. package/docs/language-reference.md +11 -2
  222. package/package.json +2 -2
  223. package/dist/charts-d3-25E4VWXO.js +0 -27
  224. package/dist/dgmo-router-TGZWFIZO.js +0 -88
  225. package/dist/dimensions-L6BXQXXL.js +0 -22
  226. package/dist/flowchart-parser-UKYOW3VM.js +0 -21
  227. package/dist/layout-25Y3VDYF.js +0 -19
  228. package/dist/layout-4SPLI4HG.js +0 -15
  229. package/dist/layout-CH4HFFRD.js +0 -15
  230. package/dist/layout-NY7MHJCL.js +0 -15
  231. package/dist/parser-2UWWNTFL.js +0 -12
  232. package/dist/parser-3RXYQSA7.js +0 -18
  233. package/dist/parser-5C3PEZK3.js +0 -11
  234. package/dist/parser-6GN5YJBJ.js +0 -13
  235. package/dist/parser-6MQM7WT3.js +0 -15
  236. package/dist/parser-B2A7XOAK.js +0 -12
  237. package/dist/parser-CCNJKDDA.js +0 -16
  238. package/dist/parser-ESHNUFME.js +0 -13
  239. package/dist/parser-F4FEU57T.js +0 -11
  240. package/dist/parser-FHRMFUNX.js +0 -15
  241. package/dist/parser-FPCWDYQV.js +0 -13
  242. package/dist/parser-FY3YFFBS.js +0 -20
  243. package/dist/parser-GML6V2KZ.js +0 -14
  244. package/dist/parser-HA3PF5FL.js +0 -15
  245. package/dist/parser-KTYF6WO5.js +0 -11
  246. package/dist/parser-LU7UAKNB.js +0 -13
  247. package/dist/parser-MHKYQPC2.js +0 -11
  248. package/dist/parser-MVSYFK63.js +0 -17
  249. package/dist/parser-O7YQYFEN.js +0 -15
  250. package/dist/parser-S4EJPNVN.js +0 -19
  251. package/dist/parser-T3D7BV6O.js +0 -11
  252. package/dist/parser-WPPJGB4R.js +0 -12
  253. package/dist/parser-XCPMEB2Z.js +0 -11
  254. package/dist/parser-XRDUX2AR.js +0 -14
  255. package/dist/parser-YPWYT46P.js +0 -16
  256. package/dist/parser-YULS5MLD.js +0 -13
  257. package/dist/renderer-2DME63VZ.js +0 -16
  258. package/dist/renderer-3VY3VXJE.js +0 -37
  259. package/dist/renderer-4A32DX5L.js +0 -24
  260. package/dist/renderer-4K5YYX5R.js +0 -28
  261. package/dist/renderer-6CFML5G3.js +0 -22
  262. package/dist/renderer-7ZNVOVFG.js +0 -16
  263. package/dist/renderer-CJ56SUMF.js +0 -26
  264. package/dist/renderer-COJZZ4F6.js +0 -25
  265. package/dist/renderer-OZX5KGQM.js +0 -21
  266. package/dist/renderer-PLVIARM7.js +0 -24
  267. package/dist/renderer-RA4PTAMF.js +0 -19
  268. package/dist/renderer-RMAM2SOJ.js +0 -28
  269. package/dist/renderer-SES7QZYL.js +0 -37
  270. package/dist/renderer-TQ5QDZOE.js +0 -22
  271. package/dist/renderer-V5SNTPAM.js +0 -27
  272. package/dist/renderer-Y3NXZINM.js +0 -24
  273. package/dist/renderer-YP3P6UVT.js +0 -24
  274. package/dist/renderer-Z4GNKNXO.js +0 -24
  275. package/dist/renderer-radial-VYBZAXXE.js +0 -21
  276. package/dist/state-parser-VIW2WNA5.js +0 -19
  277. package/dist/state-renderer-H22AQD3U.js +0 -38
@@ -8,18 +8,18 @@ import {
8
8
  resolveActiveTagGroup,
9
9
  stripDefaultModifier,
10
10
  tagAttrKey
11
- } from "./chunk-AHTTKERF.js";
11
+ } from "./chunk-D5FANMSG.js";
12
12
  import {
13
13
  extractColor,
14
14
  fillModeFromToken,
15
15
  measureIndent,
16
16
  parseFirstLine,
17
17
  splitNameAndMeta
18
- } from "./chunk-3FRO35WW.js";
18
+ } from "./chunk-3KOPPSUQ.js";
19
19
  import {
20
20
  makeDgmoError,
21
21
  makeFail
22
- } from "./chunk-4W2PE66Q.js";
22
+ } from "./chunk-OLMWTJVU.js";
23
23
 
24
24
  // src/bracket/parser.ts
25
25
  var BEATS_RE = /^(.+?)\s+beats\s+(.+)$/i;
@@ -214,6 +214,10 @@ function parseBracket(content, palette) {
214
214
  else result.mode = lower;
215
215
  continue;
216
216
  }
217
+ if (lower === "legend-inline") {
218
+ result.legendInline = true;
219
+ continue;
220
+ }
217
221
  if (lower === "no-legend") {
218
222
  result.noLegend = true;
219
223
  continue;
@@ -388,4 +392,4 @@ function parseBracket(content, palette) {
388
392
  export {
389
393
  parseBracket
390
394
  };
391
- //# sourceMappingURL=chunk-C2UORMIA.js.map
395
+ //# sourceMappingURL=chunk-NFAHDPCG.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-WWHECSYZ.js";
3
+ } from "./chunk-ST3ZNEUQ.js";
4
4
  import {
5
5
  resolveNotes
6
- } from "./chunk-QZAW5SFH.js";
6
+ } from "./chunk-7NK42OIB.js";
7
7
  import {
8
8
  parseInArrowLabel
9
- } from "./chunk-WF64MW5G.js";
9
+ } from "./chunk-RRX4Z4TH.js";
10
10
  import {
11
11
  normalizeName
12
12
  } from "./chunk-NOTA6TEI.js";
@@ -19,7 +19,7 @@ import {
19
19
  tagAttrKey,
20
20
  validateTagGroupNames,
21
21
  validateTagValues
22
- } from "./chunk-AHTTKERF.js";
22
+ } from "./chunk-D5FANMSG.js";
23
23
  import {
24
24
  BOXES_AND_LINES_REGISTRY,
25
25
  OPTION_NOCOLON_RE,
@@ -30,11 +30,11 @@ import {
30
30
  tryParseSharedOption,
31
31
  warnUnknownMetaKeys,
32
32
  withTagAliases
33
- } from "./chunk-3FRO35WW.js";
33
+ } from "./chunk-3KOPPSUQ.js";
34
34
  import {
35
35
  makeDgmoError,
36
36
  suggest
37
- } from "./chunk-4W2PE66Q.js";
37
+ } from "./chunk-OLMWTJVU.js";
38
38
 
39
39
  // src/boxes-and-lines/parser.ts
40
40
  var MAX_GROUP_DEPTH = 2;
@@ -833,4 +833,4 @@ export {
833
833
  looksLikeBoxesAndLines,
834
834
  parseBoxesAndLines
835
835
  };
836
- //# sourceMappingURL=chunk-7UPFTBOW.js.map
836
+ //# sourceMappingURL=chunk-NHZAYL2X.js.map
@@ -27,10 +27,10 @@ import {
27
27
  getSeriesColors,
28
28
  mix,
29
29
  themeBaseBg
30
- } from "./chunk-JYDMBWRP.js";
30
+ } from "./chunk-42IT4BG2.js";
31
31
  import {
32
32
  resolveColor
33
- } from "./chunk-ZKPPI6BF.js";
33
+ } from "./chunk-EXNKNJ65.js";
34
34
 
35
35
  // src/countdown/renderer.ts
36
36
  import * as d3Selection from "d3-selection";
@@ -1030,4 +1030,4 @@ export {
1030
1030
  renderCountdown,
1031
1031
  renderCountdownForExport
1032
1032
  };
1033
- //# sourceMappingURL=chunk-PIXZTCKH.js.map
1033
+ //# sourceMappingURL=chunk-NVQXIDLE.js.map
@@ -0,0 +1,20 @@
1
+ // src/utils/svg-serialize.ts
2
+ function escapeAttributeAngleBrackets(svg) {
3
+ return svg.replace(
4
+ // ` name="value"` / ` xlink:href="value"` — attribute names in SVG may carry
5
+ // a namespace prefix, a dot, or a dash.
6
+ /(\s[\w:.-]+=")([^"]*)"/g,
7
+ (match, prefix, value) => {
8
+ if (!value.includes("<") && !value.includes(">")) return match;
9
+ return `${prefix}${value.replace(/</g, "&lt;").replace(/>/g, "&gt;")}"`;
10
+ }
11
+ );
12
+ }
13
+ function serializeSvg(svgEl) {
14
+ return escapeAttributeAngleBrackets(svgEl.outerHTML);
15
+ }
16
+
17
+ export {
18
+ serializeSvg
19
+ };
20
+ //# sourceMappingURL=chunk-NZ5QVASG.js.map
@@ -13,7 +13,7 @@ import {
13
13
  tagAttrKey,
14
14
  validateTagGroupNames,
15
15
  validateTagValues
16
- } from "./chunk-AHTTKERF.js";
16
+ } from "./chunk-D5FANMSG.js";
17
17
  import {
18
18
  ALL_CHART_TYPES,
19
19
  OPTION_NOCOLON_RE,
@@ -25,13 +25,13 @@ import {
25
25
  tryParseSharedOption,
26
26
  warnUnknownMetaKeys,
27
27
  withTagAliases
28
- } from "./chunk-3FRO35WW.js";
28
+ } from "./chunk-3KOPPSUQ.js";
29
29
  import {
30
30
  formatDgmoError,
31
31
  makeDgmoError,
32
32
  makeFail,
33
33
  suggest
34
- } from "./chunk-4W2PE66Q.js";
34
+ } from "./chunk-OLMWTJVU.js";
35
35
 
36
36
  // src/sitemap/parser.ts
37
37
  var CONTAINER_RE = /^\[([^\]]+)\]\s*(.*)$/;
@@ -520,4 +520,4 @@ export {
520
520
  looksLikeSitemap,
521
521
  parseSitemap
522
522
  };
523
- //# sourceMappingURL=chunk-F7XM366V.js.map
523
+ //# sourceMappingURL=chunk-OHBIN74X.js.map
@@ -98,6 +98,15 @@ var METADATA_DIAGNOSTIC_CODES = {
98
98
  function emptyMetadataValueMessage(key) {
99
99
  return `Metadata key '${key}:' has no value \u2014 the pair is dropped. Provide a value or remove the key.`;
100
100
  }
101
+ var NEGATIVE_VALUE_DX = {
102
+ code: "E_VALUE_NEGATIVE",
103
+ severity: "error",
104
+ chartType: null,
105
+ title: "Negative value on a magnitude channel",
106
+ message: (p) => `Negative value ${p.value ?? -300} on "${p.label ?? "Refunds"}" \u2014 ${p.channel ?? "this chart's values"} encode magnitude and can't be negative.`,
107
+ hint: 'Restate the data as positive magnitudes (e.g. "decline %"). If direction matters, use a bar chart \u2014 bars support negative values.',
108
+ example: "pie Budget\nRent 1200\nRefunds -300"
109
+ };
101
110
  var TITLE_DIRECTIVE_DX = {
102
111
  code: "E_TITLE_DIRECTIVE",
103
112
  severity: "error",
@@ -119,6 +128,7 @@ export {
119
128
  nameMergedMessage,
120
129
  METADATA_DIAGNOSTIC_CODES,
121
130
  emptyMetadataValueMessage,
131
+ NEGATIVE_VALUE_DX,
122
132
  TITLE_DIRECTIVE_DX
123
133
  };
124
- //# sourceMappingURL=chunk-4W2PE66Q.js.map
134
+ //# sourceMappingURL=chunk-OLMWTJVU.js.map
@@ -1,9 +1,13 @@
1
+ import {
2
+ layoutInlineHeader
3
+ } from "./chunk-6VJCURWU.js";
1
4
  import {
2
5
  renderIntegratedLegend
3
- } from "./chunk-2NZOHEP4.js";
6
+ } from "./chunk-QDOYT6UW.js";
4
7
  import {
8
+ getLegendExtent,
5
9
  getMaxLegendReservedHeight
6
- } from "./chunk-J7HQPVYH.js";
10
+ } from "./chunk-ES66QH6J.js";
7
11
  import {
8
12
  TITLE_FONT_SIZE,
9
13
  TITLE_FONT_WEIGHT,
@@ -14,21 +18,21 @@ import {
14
18
  } from "./chunk-6KFWC4CO.js";
15
19
  import {
16
20
  isBlockNode
17
- } from "./chunk-NR5HCAUD.js";
21
+ } from "./chunk-XSVWUOUZ.js";
18
22
  import {
19
23
  LEGEND_GROUP_GAP
20
- } from "./chunk-Q5IHQ4NW.js";
24
+ } from "./chunk-SCJ7CAJF.js";
21
25
  import {
22
26
  measureText
23
27
  } from "./chunk-4ASYQ347.js";
24
28
  import {
25
29
  mix,
26
30
  themeBaseBg
27
- } from "./chunk-JYDMBWRP.js";
31
+ } from "./chunk-42IT4BG2.js";
28
32
  import {
29
33
  resolveTagColor,
30
34
  tagAttrKey
31
- } from "./chunk-AHTTKERF.js";
35
+ } from "./chunk-D5FANMSG.js";
32
36
 
33
37
  // src/block/renderer.ts
34
38
  import * as d3Selection from "d3-selection";
@@ -195,7 +199,32 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
195
199
  { groups: legend.groups, position: LEGEND_POSITION, mode: "preview" },
196
200
  width
197
201
  ) + LEGEND_GROUP_GAP : 0;
198
- const areaY = titleH + legendReserve + PADDING;
202
+ const inlineRequested = opts.legendInline === true;
203
+ const legendExtent = inlineRequested && legend ? getLegendExtent(
204
+ {
205
+ groups: legend.groups,
206
+ position: {
207
+ placement: "top-center",
208
+ titleRelation: "inline-with-title"
209
+ },
210
+ mode: options.exportMode ? "export" : "preview"
211
+ },
212
+ { activeGroup: legend.activeGroup ?? null },
213
+ width
214
+ ) : { width: 0, height: 0 };
215
+ const header = layoutInlineHeader({
216
+ requested: inlineRequested,
217
+ title: parsed.title ?? "",
218
+ hasLegend: !!legend,
219
+ legendWidth: legendExtent.width,
220
+ legendHeight: legendExtent.height,
221
+ containerWidth: width,
222
+ titleBandHeight: titleH,
223
+ legendReserve,
224
+ titleBaselineY: TITLE_Y,
225
+ titleFontSize: TITLE_FONT_SIZE
226
+ });
227
+ const areaY = (header.inline ? titleH : titleH + legendReserve) + PADDING;
199
228
  if (options.exportMode) {
200
229
  height = areaY + layout.height + PADDING;
201
230
  } else {
@@ -210,7 +239,7 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
210
239
  const offsetY = areaY;
211
240
  const svg = d3Selection.select(container).append("svg").attr("width", width).attr("height", height).attr("viewBox", `0 0 ${width} ${height}`).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").attr("class", "dgmo-block").style("font-family", FONT_FAMILY);
212
241
  if (showTitle) {
213
- const title = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
242
+ const title = svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", TITLE_Y).attr("text-anchor", header.titleAnchor).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).text(parsed.title);
214
243
  if (parsed.titleLineNumber !== null) {
215
244
  title.attr("data-line-number", parsed.titleLineNumber);
216
245
  }
@@ -229,7 +258,10 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
229
258
  onToggle: options.onToggle
230
259
  });
231
260
  if (legend) {
232
- const legendG = svg.append("g").attr("class", "dgmo-block-legend").attr("transform", `translate(0, ${titleH})`);
261
+ const legendG = svg.append("g").attr("class", "dgmo-block-legend").attr(
262
+ "transform",
263
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${titleH})`
264
+ );
233
265
  renderIntegratedLegend(legendG, {
234
266
  groups: legend.groups,
235
267
  palette: {
@@ -242,7 +274,10 @@ function renderBlock(container, parsed, palette, isDark, exportDims, options = {
242
274
  isDark,
243
275
  width,
244
276
  mode: options.exportMode ? "export" : "preview",
245
- position: LEGEND_POSITION,
277
+ position: {
278
+ placement: "top-center",
279
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
280
+ },
246
281
  activeGroup: legend.activeGroup
247
282
  });
248
283
  }
@@ -361,4 +396,4 @@ export {
361
396
  renderBlock,
362
397
  authoredCollapsedIds
363
398
  };
364
- //# sourceMappingURL=chunk-HAA25PLC.js.map
399
+ //# sourceMappingURL=chunk-OWLGERJL.js.map
@@ -7,12 +7,16 @@ import {
7
7
  import {
8
8
  ScaleContext
9
9
  } from "./chunk-YYVTBZZC.js";
10
+ import {
11
+ layoutInlineHeader
12
+ } from "./chunk-6VJCURWU.js";
10
13
  import {
11
14
  renderIntegratedLegend
12
- } from "./chunk-2NZOHEP4.js";
15
+ } from "./chunk-QDOYT6UW.js";
13
16
  import {
17
+ getLegendExtent,
14
18
  getMaxLegendReservedHeight
15
- } from "./chunk-J7HQPVYH.js";
19
+ } from "./chunk-ES66QH6J.js";
16
20
  import {
17
21
  TITLE_FONT_SIZE,
18
22
  TITLE_FONT_WEIGHT,
@@ -30,20 +34,21 @@ import {
30
34
  mix,
31
35
  shapeFill,
32
36
  themeBaseBg
33
- } from "./chunk-JYDMBWRP.js";
37
+ } from "./chunk-42IT4BG2.js";
34
38
  import {
35
39
  isSequenceBlock,
36
40
  isSequenceNote,
37
41
  isSequenceSection
38
- } from "./chunk-M3H7ZE6C.js";
42
+ } from "./chunk-FERE46TP.js";
39
43
  import {
40
44
  resolveActiveTagGroup,
41
45
  tagAttrKey
42
- } from "./chunk-AHTTKERF.js";
46
+ } from "./chunk-D5FANMSG.js";
43
47
  import {
44
48
  fillModeFromOptions,
49
+ legendInlineRequested,
45
50
  legendSuppressed
46
- } from "./chunk-3FRO35WW.js";
51
+ } from "./chunk-3KOPPSUQ.js";
47
52
 
48
53
  // src/sequence/renderer.ts
49
54
  import * as d3Selection from "d3-selection";
@@ -537,7 +542,6 @@ function applyPositionOverrides(participants) {
537
542
  return result;
538
543
  }
539
544
  function applyGroupOrdering(participants, groups, messages = []) {
540
- if (groups.length === 0) return [...participants];
541
545
  const idToGroup = /* @__PURE__ */ new Map();
542
546
  for (const group of groups) {
543
547
  for (const id of group.participantIds) {
@@ -1005,8 +1009,33 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1005
1009
  };
1006
1010
  const noLegend = legendSuppressed(parsedOptions);
1007
1011
  const legendTopSpace = parsed.tagGroups.length > 0 && !noLegend ? getMaxLegendReservedHeight(legendConfig, containerWidth) + LEGEND_FIXED_GAP : 0;
1012
+ const inlineRequested = legendInlineRequested(parsedOptions);
1013
+ const hasLegendForHeader = parsed.tagGroups.length > 0 && !noLegend;
1014
+ const legendExtent = inlineRequested && hasLegendForHeader ? getLegendExtent(
1015
+ {
1016
+ ...legendConfig,
1017
+ position: {
1018
+ placement: "top-center",
1019
+ titleRelation: "inline-with-title"
1020
+ }
1021
+ },
1022
+ { activeGroup: activeTagGroup ?? null },
1023
+ containerWidth
1024
+ ) : { width: 0, height: 0 };
1025
+ const header = layoutInlineHeader({
1026
+ requested: inlineRequested,
1027
+ title: title ?? "",
1028
+ hasLegend: hasLegendForHeader,
1029
+ legendWidth: legendExtent.width,
1030
+ legendHeight: legendExtent.height,
1031
+ containerWidth,
1032
+ titleBandHeight: titleOffset,
1033
+ legendReserve: legendTopSpace,
1034
+ titleBaselineY: ctx.structural(TITLE_Y),
1035
+ titleFontSize: ctx.text(TITLE_FONT_SIZE)
1036
+ });
1008
1037
  const groupOffset = parsed.groups.length > 0 ? GROUP_PADDING_TOP + GROUP_LABEL_SIZE : 0;
1009
- const participantStartY = sTopMargin + titleOffset + legendTopSpace + sParticipantYOffset + groupOffset;
1038
+ const participantStartY = sTopMargin + titleOffset + (header.inline ? 0 : legendTopSpace) + sParticipantYOffset + groupOffset;
1010
1039
  const lifelineStartY0 = participantStartY + sBoxH;
1011
1040
  const hasActors = participants.some((p) => p.type === "actor");
1012
1041
  const messageStartOffset = sMsgStartOffset + (hasActors ? 20 : 0) + (parsed.groups.length > 0 ? GROUP_PADDING_BOTTOM : 0);
@@ -1171,56 +1200,63 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1171
1200
  });
1172
1201
  };
1173
1202
  buildParticipantX();
1174
- let contentLeft = 0;
1175
- let contentRight = svgWidth;
1176
- for (const step of renderSteps) {
1177
- if (!step.label) continue;
1178
- const labelW = measureText(step.label, 12);
1179
- if (step.from === step.to) {
1180
- const px = participantX.get(step.from);
1181
- if (px !== void 0) {
1182
- const loopRight = px + sActivationWidth / 2 + sSelfCallWidth + 5 + labelW;
1183
- contentRight = Math.max(contentRight, loopRight);
1184
- }
1185
- } else {
1186
- const fromX = participantX.get(step.from);
1187
- const toX = participantX.get(step.to);
1188
- if (fromX !== void 0 && toX !== void 0) {
1189
- const midX = (fromX + toX) / 2;
1190
- contentLeft = Math.min(contentLeft, midX - labelW / 2);
1191
- contentRight = Math.max(contentRight, midX + labelW / 2);
1203
+ const labelSafety = sActivationWidth / 2 + 2;
1204
+ const scanNotes = (els, acc) => {
1205
+ for (const el of els) {
1206
+ if (isSequenceNote(el)) {
1207
+ const note = el;
1208
+ const pos = effectiveNotePosition(note);
1209
+ if (pos === "right") {
1210
+ const px = participantX.get(note.participantId);
1211
+ if (px !== void 0) {
1212
+ const sc = isNoteAfterSelfCall(note);
1213
+ const rOff = sc ? sActivationWidth / 2 + sSelfCallWidth + sNoteGap : sActivationWidth + sNoteGap;
1214
+ const maxW = noteEffectiveMaxW(note.participantId, pos, sc);
1215
+ acc.right = Math.max(acc.right, px + rOff + maxW);
1216
+ }
1217
+ }
1218
+ } else if (isSequenceBlock(el)) {
1219
+ scanNotes(el.children, acc);
1220
+ scanNotes(el.elseChildren, acc);
1221
+ if (el.elseIfBranches) {
1222
+ for (const b of el.elseIfBranches) scanNotes(b.children, acc);
1223
+ }
1192
1224
  }
1193
1225
  }
1194
- }
1195
- if (elements) {
1196
- const scanNotes = (els) => {
1197
- for (const el of els) {
1198
- if (isSequenceNote(el)) {
1199
- const note = el;
1200
- const pos = effectiveNotePosition(note);
1201
- if (pos === "right") {
1202
- const px = participantX.get(note.participantId);
1203
- if (px !== void 0) {
1204
- const sc = isNoteAfterSelfCall(note);
1205
- const rOff = sc ? sActivationWidth / 2 + sSelfCallWidth + sNoteGap : sActivationWidth + sNoteGap;
1206
- const maxW = noteEffectiveMaxW(note.participantId, pos, sc);
1207
- contentRight = Math.max(contentRight, px + rOff + maxW);
1208
- }
1209
- }
1210
- } else if (isSequenceBlock(el)) {
1211
- scanNotes(el.children);
1212
- scanNotes(el.elseChildren);
1213
- if (el.elseIfBranches) {
1214
- for (const b of el.elseIfBranches) scanNotes(b.children);
1215
- }
1226
+ };
1227
+ for (let pass = 0; pass < 4; pass++) {
1228
+ let contentLeft = 0;
1229
+ let contentRight = svgWidth;
1230
+ for (const step of renderSteps) {
1231
+ if (!step.label) continue;
1232
+ const labelW = measureText(step.label, 12);
1233
+ if (step.from === step.to) {
1234
+ const px = participantX.get(step.from);
1235
+ if (px !== void 0) {
1236
+ const loopRight = px + sActivationWidth / 2 + sSelfCallWidth + 5 + labelW + labelSafety;
1237
+ contentRight = Math.max(contentRight, loopRight);
1238
+ }
1239
+ } else {
1240
+ const fromX = participantX.get(step.from);
1241
+ const toX = participantX.get(step.to);
1242
+ if (fromX !== void 0 && toX !== void 0) {
1243
+ const midX = (fromX + toX) / 2;
1244
+ contentLeft = Math.min(contentLeft, midX - labelW / 2 - labelSafety);
1245
+ contentRight = Math.max(
1246
+ contentRight,
1247
+ midX + labelW / 2 + labelSafety
1248
+ );
1216
1249
  }
1217
1250
  }
1218
- };
1219
- scanNotes(elements);
1220
- }
1221
- const neededLeftPad = Math.max(0, -contentLeft);
1222
- const neededRightPad = Math.max(0, contentRight - svgWidth);
1223
- if (neededLeftPad > 0 || neededRightPad > 0) {
1251
+ }
1252
+ if (elements) {
1253
+ const acc = { right: contentRight };
1254
+ scanNotes(elements, acc);
1255
+ contentRight = acc.right;
1256
+ }
1257
+ const neededLeftPad = Math.max(0, -contentLeft);
1258
+ const neededRightPad = Math.max(0, contentRight - svgWidth);
1259
+ if (neededLeftPad <= 0.5 && neededRightPad <= 0.5) break;
1224
1260
  leftMargin += neededLeftPad;
1225
1261
  rightMargin += neededRightPad;
1226
1262
  totalWidth = Math.max(leftMargin + diagramWidth + rightMargin, sBoxW + 40);
@@ -1271,7 +1307,7 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1271
1307
  }
1272
1308
  };
1273
1309
  if (showTitle) {
1274
- const titleEl = svg.append("text").attr("class", "chart-title").attr("x", svgWidth / 2).attr("y", ctx.structural(TITLE_Y)).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-size", ctx.text(TITLE_FONT_SIZE)).attr("font-weight", TITLE_FONT_WEIGHT).text(title);
1310
+ const titleEl = svg.append("text").attr("class", "chart-title").attr("x", header.inline ? header.titleX : svgWidth / 2).attr("y", ctx.structural(TITLE_Y)).attr("text-anchor", header.inline ? header.titleAnchor : "middle").attr("fill", palette.text).attr("font-size", ctx.text(TITLE_FONT_SIZE)).attr("font-weight", TITLE_FONT_WEIGHT).text(title);
1275
1311
  if (parsed.titleLineNumber) {
1276
1312
  titleEl.attr("data-line-number", parsed.titleLineNumber);
1277
1313
  }
@@ -1757,9 +1793,19 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
1757
1793
  if (hasTagGroups) {
1758
1794
  const legendY = sTopMargin + titleOffset;
1759
1795
  const legendCallbacks = {};
1760
- const legendG = svg.append("g").attr("class", "sequence-legend").attr("transform", `translate(0,${legendY})`);
1796
+ const legendG = svg.append("g").attr("class", "sequence-legend").attr(
1797
+ "transform",
1798
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0,${legendY})`
1799
+ );
1761
1800
  renderIntegratedLegend(legendG, {
1762
1801
  ...legendConfig,
1802
+ // Inline → left-origin so the wrapper's right-flush translate lands the
1803
+ // legend at the header's right edge; stacked → centered below the title
1804
+ // (identical to legendConfig.position, so the stacked path is unchanged).
1805
+ position: {
1806
+ placement: "top-center",
1807
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
1808
+ },
1763
1809
  palette,
1764
1810
  isDark,
1765
1811
  width: svgWidth,
@@ -1861,4 +1907,4 @@ export {
1861
1907
  renderSequenceDiagram,
1862
1908
  buildNoteMessageMap
1863
1909
  };
1864
- //# sourceMappingURL=chunk-NUTWTV6G.js.map
1910
+ //# sourceMappingURL=chunk-P6XFQVYY.js.map
@@ -13,18 +13,18 @@ import {
13
13
  contrastText,
14
14
  mix,
15
15
  themeBaseBg
16
- } from "./chunk-JYDMBWRP.js";
16
+ } from "./chunk-42IT4BG2.js";
17
17
  import {
18
18
  resolveTagColor,
19
19
  tagAttrKey
20
- } from "./chunk-AHTTKERF.js";
20
+ } from "./chunk-D5FANMSG.js";
21
21
  import {
22
22
  fillModeFromOptions
23
- } from "./chunk-3FRO35WW.js";
23
+ } from "./chunk-3KOPPSUQ.js";
24
24
  import {
25
25
  CATEGORICAL_COLOR_ORDER,
26
26
  resolveColor
27
- } from "./chunk-ZKPPI6BF.js";
27
+ } from "./chunk-EXNKNJ65.js";
28
28
 
29
29
  // src/swimlane/renderer.ts
30
30
  import * as d3Selection from "d3-selection";
@@ -401,4 +401,4 @@ function drawCenteredLabel(g, label, cx, cy, fill, fontSize, tight = false, halo
401
401
  export {
402
402
  renderSwimlaneForExport
403
403
  };
404
- //# sourceMappingURL=chunk-GKYHWJXI.js.map
404
+ //# sourceMappingURL=chunk-PECYPUJJ.js.map
@@ -10,7 +10,7 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-AHTTKERF.js";
13
+ } from "./chunk-D5FANMSG.js";
14
14
  import {
15
15
  OPTION_NOCOLON_RE,
16
16
  ORG_REGISTRY,
@@ -20,13 +20,13 @@ import {
20
20
  splitNameAndMeta,
21
21
  warnUnknownMetaKeys,
22
22
  withTagAliases
23
- } from "./chunk-3FRO35WW.js";
23
+ } from "./chunk-3KOPPSUQ.js";
24
24
  import {
25
25
  formatDgmoError,
26
26
  makeDgmoError,
27
27
  makeFail,
28
28
  suggest
29
- } from "./chunk-4W2PE66Q.js";
29
+ } from "./chunk-OLMWTJVU.js";
30
30
 
31
31
  // src/org/parser.ts
32
32
  var CONTAINER_RE = /^\[([^\]]+)\]$/;
@@ -362,4 +362,4 @@ export {
362
362
  looksLikeOrg,
363
363
  parseOrg
364
364
  };
365
- //# sourceMappingURL=chunk-T3FAJAJT.js.map
365
+ //# sourceMappingURL=chunk-PFG3EVRD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  computeLegendLayout
3
- } from "./chunk-J7HQPVYH.js";
3
+ } from "./chunk-ES66QH6J.js";
4
4
  import {
5
5
  FONT_FAMILY
6
6
  } from "./chunk-6KFWC4CO.js";
@@ -15,13 +15,13 @@ import {
15
15
  LEGEND_TOGGLE_OFF_OPACITY,
16
16
  legendChromeColors,
17
17
  measureLegendText
18
- } from "./chunk-Q5IHQ4NW.js";
18
+ } from "./chunk-SCJ7CAJF.js";
19
19
  import {
20
20
  valueRampStops
21
- } from "./chunk-JYDMBWRP.js";
21
+ } from "./chunk-42IT4BG2.js";
22
22
  import {
23
23
  tagAttrKey
24
- } from "./chunk-AHTTKERF.js";
24
+ } from "./chunk-D5FANMSG.js";
25
25
 
26
26
  // src/utils/legend-d3.ts
27
27
  var LEGEND_TEXT_DY = "0.32em";
@@ -292,4 +292,4 @@ export {
292
292
  renderLegendD3,
293
293
  renderIntegratedLegend
294
294
  };
295
- //# sourceMappingURL=chunk-2NZOHEP4.js.map
295
+ //# sourceMappingURL=chunk-QDOYT6UW.js.map
@@ -12,11 +12,11 @@ import {
12
12
  fillModeFromToken,
13
13
  measureIndent,
14
14
  parseFirstLine
15
- } from "./chunk-3FRO35WW.js";
15
+ } from "./chunk-3KOPPSUQ.js";
16
16
  import {
17
17
  makeDgmoError,
18
18
  makeFail
19
- } from "./chunk-4W2PE66Q.js";
19
+ } from "./chunk-OLMWTJVU.js";
20
20
 
21
21
  // src/countdown/parser.ts
22
22
  var TIME_24H_RE = /^(\d{1,2}):(\d{2})$/;
@@ -546,4 +546,4 @@ export {
546
546
  targetToMs2 as targetToMs,
547
547
  parseCountdown
548
548
  };
549
- //# sourceMappingURL=chunk-EPRF3ZRV.js.map
549
+ //# sourceMappingURL=chunk-QWUYFUNO.js.map