@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
@@ -1,3 +1,7 @@
1
+ import {
2
+ NODE_HEIGHT,
3
+ NODE_WIDTH
4
+ } from "./chunk-WTTIODDV.js";
1
5
  import {
2
6
  buildPlacedNotes
3
7
  } from "./chunk-5HWPEYWB.js";
@@ -6,7 +10,7 @@ import {
6
10
  } from "./chunk-6EK55ART.js";
7
11
  import {
8
12
  resolveNotes
9
- } from "./chunk-QZAW5SFH.js";
13
+ } from "./chunk-7NK42OIB.js";
10
14
  import {
11
15
  measureText,
12
16
  truncateText,
@@ -226,9 +230,6 @@ function placeEdgeLabels(layout, opts) {
226
230
  var MARGIN = 40;
227
231
  var MAX_PARALLEL_EDGES = 5;
228
232
  var PARALLEL_SPACING = 22;
229
- var PHI = 1.618;
230
- var NODE_HEIGHT = 60;
231
- var NODE_WIDTH = Math.round(NODE_HEIGHT * PHI);
232
233
  var DESC_NODE_WIDTH = 140;
233
234
  var DESC_FONT_SIZE = 10;
234
235
  var DESC_LINE_HEIGHT = 1.4;
@@ -311,7 +312,7 @@ function computeNodeSize(node, reserveValueRow) {
311
312
  return { width: w, height: Math.max(NODE_HEIGHT, totalHeight) };
312
313
  }
313
314
  async function layoutBoxesAndLines(parsed, collapseInfo, layoutOptions) {
314
- const { layoutBoxesAndLinesSearch } = await import("./layout-search-LUI475P3.js");
315
+ const { layoutBoxesAndLinesSearch } = await import("./layout-search-I4VNIRGT.js");
315
316
  const searchOpts = {
316
317
  ...layoutOptions?.hideDescriptions !== void 0 && {
317
318
  hideDescriptions: layoutOptions.hideDescriptions
@@ -319,6 +320,9 @@ async function layoutBoxesAndLines(parsed, collapseInfo, layoutOptions) {
319
320
  ...layoutOptions?.previousPositions !== void 0 && {
320
321
  previousPositions: layoutOptions.previousPositions
321
322
  },
323
+ ...layoutOptions?.stableCollapse !== void 0 && {
324
+ stableCollapse: layoutOptions.stableCollapse
325
+ },
322
326
  ...layoutOptions?.onProgress !== void 0 && {
323
327
  onProgress: layoutOptions.onProgress
324
328
  }
@@ -461,9 +465,7 @@ function applyParallelEdgeOffsets(layout) {
461
465
  export {
462
466
  EDGE_LABEL_FONT_SIZE,
463
467
  measureEdgeLabel,
464
- NODE_HEIGHT,
465
- NODE_WIDTH,
466
468
  computeNodeSize,
467
469
  layoutBoxesAndLines
468
470
  };
469
- //# sourceMappingURL=chunk-I47VHSPS.js.map
471
+ //# sourceMappingURL=chunk-R7ECJQTB.js.map
@@ -11,7 +11,7 @@ import {
11
11
  LEGEND_PILL_FONT_SIZE,
12
12
  LEGEND_PILL_PAD,
13
13
  measureLegendText
14
- } from "./chunk-Q5IHQ4NW.js";
14
+ } from "./chunk-SCJ7CAJF.js";
15
15
  import {
16
16
  measureText
17
17
  } from "./chunk-4ASYQ347.js";
@@ -19,10 +19,10 @@ import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-AHTTKERF.js";
22
+ } from "./chunk-D5FANMSG.js";
23
23
  import {
24
24
  legendSuppressed
25
- } from "./chunk-3FRO35WW.js";
25
+ } from "./chunk-3KOPPSUQ.js";
26
26
 
27
27
  // src/org/layout.ts
28
28
  import { hierarchy, tree } from "d3-hierarchy";
@@ -870,4 +870,4 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
870
870
  export {
871
871
  layoutOrg
872
872
  };
873
- //# sourceMappingURL=chunk-BWYFIVZF.js.map
873
+ //# sourceMappingURL=chunk-RBIX3HQQ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-PDKUANDZ.js";
5
5
  import {
6
6
  layoutGraph
7
- } from "./chunk-3B2GXZCX.js";
7
+ } from "./chunk-SK7PCW4F.js";
8
8
  import {
9
9
  appendArrowheadMarkers
10
10
  } from "./chunk-LP7EC4MI.js";
@@ -14,7 +14,7 @@ import {
14
14
  renderNoteBadge,
15
15
  renderNoteBox,
16
16
  renderNoteConnector
17
- } from "./chunk-3IUHKMJI.js";
17
+ } from "./chunk-U2BKSEKU.js";
18
18
  import {
19
19
  EDGE_STROKE_WIDTH,
20
20
  NODE_STROKE_WIDTH
@@ -22,12 +22,19 @@ import {
22
22
  import {
23
23
  ScaleContext
24
24
  } from "./chunk-YYVTBZZC.js";
25
+ import {
26
+ layoutInlineHeader
27
+ } from "./chunk-6VJCURWU.js";
28
+ import {
29
+ serializeSvg
30
+ } from "./chunk-NZ5QVASG.js";
25
31
  import {
26
32
  renderIntegratedLegend
27
- } from "./chunk-2NZOHEP4.js";
33
+ } from "./chunk-QDOYT6UW.js";
28
34
  import {
35
+ getLegendExtent,
29
36
  getMaxLegendReservedHeight
30
- } from "./chunk-J7HQPVYH.js";
37
+ } from "./chunk-ES66QH6J.js";
31
38
  import {
32
39
  TITLE_FONT_SIZE,
33
40
  TITLE_FONT_WEIGHT,
@@ -38,7 +45,7 @@ import {
38
45
  } from "./chunk-6KFWC4CO.js";
39
46
  import {
40
47
  parseState
41
- } from "./chunk-T7Y554OK.js";
48
+ } from "./chunk-APD52YJV.js";
42
49
  import {
43
50
  measureText
44
51
  } from "./chunk-4ASYQ347.js";
@@ -47,16 +54,17 @@ import {
47
54
  mix,
48
55
  shapeFill,
49
56
  themeBaseBg
50
- } from "./chunk-JYDMBWRP.js";
57
+ } from "./chunk-42IT4BG2.js";
51
58
  import {
52
59
  resolveActiveTagGroup,
53
60
  resolveTagColor,
54
61
  tagAttrKey
55
- } from "./chunk-AHTTKERF.js";
62
+ } from "./chunk-D5FANMSG.js";
56
63
  import {
57
64
  fillModeFromOptions,
65
+ legendInlineRequested,
58
66
  legendSuppressed
59
- } from "./chunk-3FRO35WW.js";
67
+ } from "./chunk-3KOPPSUQ.js";
60
68
 
61
69
  // src/graph/state-renderer.ts
62
70
  import * as d3Selection from "d3-selection";
@@ -129,6 +137,32 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
129
137
  width
130
138
  )
131
139
  ) + 8 : 0;
140
+ const inlineRequested = legendInlineRequested(graph.options);
141
+ const legendExtent = inlineRequested && hasLegend ? getLegendExtent(
142
+ {
143
+ groups: legendGroups,
144
+ position: {
145
+ placement: "top-center",
146
+ titleRelation: "inline-with-title"
147
+ },
148
+ mode: exportDims ? "export" : "preview",
149
+ showInactivePills: true
150
+ },
151
+ { activeGroup: activeTagGroup },
152
+ width
153
+ ) : { width: 0, height: 0 };
154
+ const header = layoutInlineHeader({
155
+ requested: inlineRequested,
156
+ title: graph.title ?? "",
157
+ hasLegend,
158
+ legendWidth: legendExtent.width,
159
+ legendHeight: legendExtent.height,
160
+ containerWidth: width,
161
+ titleBandHeight: titleHeight,
162
+ legendReserve: legendH,
163
+ titleBaselineY: sTitleY,
164
+ titleFontSize: sTitleFontSize
165
+ });
132
166
  const diagramW = layout.width;
133
167
  const diagramH = layout.height;
134
168
  const { scale, offsetX, offsetY, canvasHeight } = fitDiagramToCanvas({
@@ -137,9 +171,8 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
137
171
  diagramW,
138
172
  diagramH,
139
173
  padding: sDiagramPadding,
140
- // The legend band sits directly under the title, so it reserves the same
141
- // top strip fitDiagramToCanvas already offsets the diagram by.
142
- titleHeight: titleHeight + legendH,
174
+ // Inline → one band (title only); stacked → title + legend band.
175
+ titleHeight: header.inline ? titleHeight : titleHeight + legendH,
143
176
  maxScale: MAX_SCALE,
144
177
  exportMode: !!exportDims
145
178
  });
@@ -157,7 +190,7 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
157
190
  colors: edgeColors
158
191
  });
159
192
  if (showTitle) {
160
- const titleEl = svg.append("text").attr("class", "chart-title").attr("x", width / 2).attr("y", sTitleY).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).style(
193
+ const titleEl = svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", sTitleY).attr("text-anchor", header.titleAnchor).attr("fill", palette.text).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).style(
161
194
  "cursor",
162
195
  onClickItem && graph.titleLineNumber ? "pointer" : "default"
163
196
  ).text(graph.title);
@@ -173,7 +206,10 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
173
206
  }
174
207
  }
175
208
  if (hasLegend) {
176
- const legendG = svg.append("g").attr("transform", `translate(0, ${titleHeight + 4})`);
209
+ const legendG = svg.append("g").attr(
210
+ "transform",
211
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${titleHeight + 4})`
212
+ );
177
213
  renderIntegratedLegend(legendG, {
178
214
  groups: legendGroups,
179
215
  activeGroup: activeTagGroup,
@@ -181,6 +217,12 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
181
217
  // Inactive sibling groups stay visible as collapsed pills so the user
182
218
  // can click one to flip the active colouring dimension (as in b&l).
183
219
  showInactivePills: true,
220
+ // Inline → left-origin so the wrapper's right-flush translate lands the
221
+ // legend at the chart's right edge; stacked → centered below the title.
222
+ position: {
223
+ placement: "top-center",
224
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
225
+ },
184
226
  palette,
185
227
  isDark,
186
228
  width
@@ -429,7 +471,7 @@ function renderStateForExport(content, theme, palette) {
429
471
  }
430
472
  svgEl.setAttribute("xmlns", "http://www.w3.org/2000/svg");
431
473
  svgEl.style.fontFamily = FONT_FAMILY;
432
- return svgEl.outerHTML;
474
+ return serializeSvg(svgEl);
433
475
  } finally {
434
476
  document.body.removeChild(container);
435
477
  }
@@ -439,4 +481,4 @@ export {
439
481
  renderState,
440
482
  renderStateForExport
441
483
  };
442
- //# sourceMappingURL=chunk-COJW2NEY.js.map
484
+ //# sourceMappingURL=chunk-RK3Y4WMV.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-AHTTKERF.js";
11
+ } from "./chunk-D5FANMSG.js";
12
12
  import {
13
13
  JOURNEY_MAP_REGISTRY,
14
14
  OPTION_NOCOLON_RE,
@@ -19,16 +19,16 @@ import {
19
19
  splitNameAndMeta,
20
20
  warnUnknownMetaKeys,
21
21
  withTagAliases
22
- } from "./chunk-3FRO35WW.js";
22
+ } from "./chunk-3KOPPSUQ.js";
23
23
  import {
24
24
  resolveColorWithDiagnostic
25
- } from "./chunk-ZKPPI6BF.js";
25
+ } from "./chunk-EXNKNJ65.js";
26
26
  import {
27
27
  formatDgmoError,
28
28
  makeDgmoError,
29
29
  makeFail,
30
30
  suggest
31
- } from "./chunk-4W2PE66Q.js";
31
+ } from "./chunk-OLMWTJVU.js";
32
32
 
33
33
  // src/journey-map/parser.ts
34
34
  var PHASE_RE = /^\[(.+?)\]$/;
@@ -39,7 +39,8 @@ var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
39
39
  "fill-solid",
40
40
  "fill-outline",
41
41
  "no-title",
42
- "no-legend"
42
+ "no-legend",
43
+ "legend-inline"
43
44
  ]);
44
45
  function parseJourneyMap(content, palette) {
45
46
  const options = {};
@@ -404,4 +405,4 @@ function parseStepLine(trimmed, lineNumber, counter, aliasMap, warn, diagnostics
404
405
  export {
405
406
  parseJourneyMap
406
407
  };
407
- //# sourceMappingURL=chunk-KQ3FNRGR.js.map
408
+ //# sourceMappingURL=chunk-RQGNELB3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeDgmoError
3
- } from "./chunk-4W2PE66Q.js";
3
+ } from "./chunk-OLMWTJVU.js";
4
4
 
5
5
  // src/utils/arrows.ts
6
6
  var ARROW_DIAGNOSTIC_CODES = {
@@ -94,4 +94,4 @@ export {
94
94
  parseInArrowLabel,
95
95
  parseArrow
96
96
  };
97
- //# sourceMappingURL=chunk-WF64MW5G.js.map
97
+ //# sourceMappingURL=chunk-RRX4Z4TH.js.map
@@ -5,16 +5,16 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-3FRO35WW.js";
8
+ } from "./chunk-3KOPPSUQ.js";
9
9
  import {
10
10
  RECOGNIZED_COLOR_NAMES,
11
11
  resolveColor
12
- } from "./chunk-ZKPPI6BF.js";
12
+ } from "./chunk-EXNKNJ65.js";
13
13
  import {
14
14
  makeDgmoError,
15
15
  makeFail,
16
16
  suggest
17
- } from "./chunk-4W2PE66Q.js";
17
+ } from "./chunk-OLMWTJVU.js";
18
18
 
19
19
  // src/ring/parser.ts
20
20
  var MAX_LAYERS = 15;
@@ -165,4 +165,4 @@ function parseRing(content) {
165
165
  export {
166
166
  parseRing
167
167
  };
168
- //# sourceMappingURL=chunk-W6PCFRPL.js.map
168
+ //# sourceMappingURL=chunk-RV2N7COG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  acyclicOrient
3
- } from "./chunk-7U4OR7CD.js";
3
+ } from "./chunk-W4EKQ2P6.js";
4
4
 
5
5
  // src/swimlane/layout.ts
6
6
  var MARGIN = 30;
@@ -419,4 +419,4 @@ function layoutSwimlane(parsed) {
419
419
  export {
420
420
  layoutSwimlane
421
421
  };
422
- //# sourceMappingURL=chunk-UEU6IYKY.js.map
422
+ //# sourceMappingURL=chunk-S6QDCFEU.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-4ASYQ347.js";
5
5
  import {
6
6
  mix
7
- } from "./chunk-JYDMBWRP.js";
7
+ } from "./chunk-42IT4BG2.js";
8
8
 
9
9
  // src/utils/legend-constants.ts
10
10
  var LEGEND_HEIGHT = 28;
@@ -59,4 +59,4 @@ export {
59
59
  LEGEND_TOGGLE_OFF_OPACITY,
60
60
  LEGEND_GEAR_PILL_W
61
61
  };
62
- //# sourceMappingURL=chunk-Q5IHQ4NW.js.map
62
+ //# sourceMappingURL=chunk-SCJ7CAJF.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-UU6LUYUH.js";
8
8
  import {
9
9
  resolveNotes
10
- } from "./chunk-QZAW5SFH.js";
10
+ } from "./chunk-7NK42OIB.js";
11
11
 
12
12
  // src/graph/layout.ts
13
13
  import dagre from "@dagrejs/dagre";
@@ -311,4 +311,4 @@ function layoutGraph(graph, options) {
311
311
  export {
312
312
  layoutGraph
313
313
  };
314
- //# sourceMappingURL=chunk-3B2GXZCX.js.map
314
+ //# sourceMappingURL=chunk-SK7PCW4F.js.map
@@ -23,13 +23,13 @@ import {
23
23
  contrastText,
24
24
  getSeriesColors,
25
25
  shapeFill
26
- } from "./chunk-JYDMBWRP.js";
26
+ } from "./chunk-42IT4BG2.js";
27
27
  import {
28
28
  fillModeFromOptions
29
- } from "./chunk-3FRO35WW.js";
29
+ } from "./chunk-3KOPPSUQ.js";
30
30
  import {
31
31
  resolveColor
32
- } from "./chunk-ZKPPI6BF.js";
32
+ } from "./chunk-EXNKNJ65.js";
33
33
 
34
34
  // src/ring/renderer.ts
35
35
  import * as d3Selection from "d3-selection";
@@ -296,4 +296,4 @@ export {
296
296
  renderRing,
297
297
  renderRingForExport
298
298
  };
299
- //# sourceMappingURL=chunk-6KL7TFLS.js.map
299
+ //# sourceMappingURL=chunk-SOBGK35Z.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  extractColor,
3
3
  measureIndent
4
- } from "./chunk-3FRO35WW.js";
4
+ } from "./chunk-3KOPPSUQ.js";
5
5
  import {
6
6
  makeDgmoError
7
- } from "./chunk-4W2PE66Q.js";
7
+ } from "./chunk-OLMWTJVU.js";
8
8
 
9
9
  // src/utils/notes/parse.ts
10
10
  function parseNoteHeader(rest) {
@@ -73,4 +73,4 @@ function tryCollectNote(lines, index, indent, palette, diagnostics) {
73
73
  export {
74
74
  tryCollectNote
75
75
  };
76
- //# sourceMappingURL=chunk-WWHECSYZ.js.map
76
+ //# sourceMappingURL=chunk-ST3ZNEUQ.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-3HDBAXF5.js";
12
12
  import {
13
13
  mix
14
- } from "./chunk-JYDMBWRP.js";
14
+ } from "./chunk-42IT4BG2.js";
15
15
 
16
16
  // src/utils/note-box/svg.ts
17
17
  var NOTE_STROKE_WIDTH = 0.6;
@@ -133,4 +133,4 @@ export {
133
133
  NOTE_BADGE_RADIUS,
134
134
  renderNoteBadge
135
135
  };
136
- //# sourceMappingURL=chunk-3IUHKMJI.js.map
136
+ //# sourceMappingURL=chunk-U2BKSEKU.js.map
@@ -12,27 +12,27 @@ import {
12
12
  import {
13
13
  compactNumber,
14
14
  computeLegendLayout
15
- } from "./chunk-J7HQPVYH.js";
15
+ } from "./chunk-ES66QH6J.js";
16
16
  import {
17
17
  TITLE_FONT_SIZE,
18
18
  TITLE_Y
19
19
  } from "./chunk-A4GOY3PE.js";
20
20
  import {
21
21
  measureLegendText
22
- } from "./chunk-Q5IHQ4NW.js";
22
+ } from "./chunk-SCJ7CAJF.js";
23
23
  import {
24
24
  contrastRatio,
25
25
  mix,
26
26
  politicalTints,
27
27
  relativeLuminance,
28
28
  valueRampColor
29
- } from "./chunk-JYDMBWRP.js";
29
+ } from "./chunk-42IT4BG2.js";
30
30
  import {
31
31
  tagAttrKey
32
- } from "./chunk-AHTTKERF.js";
32
+ } from "./chunk-D5FANMSG.js";
33
33
  import {
34
34
  resolveColor
35
- } from "./chunk-ZKPPI6BF.js";
35
+ } from "./chunk-EXNKNJ65.js";
36
36
 
37
37
  // src/map/legend-band.ts
38
38
  var LEGEND_TOP_GAP = 8;
@@ -3177,4 +3177,4 @@ export {
3177
3177
  albersSkewFallback,
3178
3178
  layoutMap
3179
3179
  };
3180
- //# sourceMappingURL=chunk-KBVOVDYP.js.map
3180
+ //# sourceMappingURL=chunk-U7ZQTUZT.js.map
@@ -6,13 +6,17 @@ import {
6
6
  formatPct,
7
7
  resolveCellColor,
8
8
  resolveColorMode
9
- } from "./chunk-6OYDOQ2Q.js";
9
+ } from "./chunk-2UZVMWSQ.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,
@@ -23,7 +27,7 @@ import {
23
27
  } from "./chunk-6KFWC4CO.js";
24
28
  import {
25
29
  LEGEND_GROUP_GAP
26
- } from "./chunk-Q5IHQ4NW.js";
30
+ } from "./chunk-SCJ7CAJF.js";
27
31
  import {
28
32
  measureText
29
33
  } from "./chunk-4ASYQ347.js";
@@ -32,10 +36,10 @@ import {
32
36
  getSeriesColors,
33
37
  mix,
34
38
  themeBaseBg
35
- } from "./chunk-JYDMBWRP.js";
39
+ } from "./chunk-42IT4BG2.js";
36
40
  import {
37
41
  tagAttrKey
38
- } from "./chunk-AHTTKERF.js";
42
+ } from "./chunk-D5FANMSG.js";
39
43
 
40
44
  // src/treemap/renderer.ts
41
45
  import * as d3Selection from "d3-selection";
@@ -175,9 +179,36 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
175
179
  { groups: legend.groups, position: LEGEND_POSITION, mode: "preview" },
176
180
  width
177
181
  ) + LEGEND_GROUP_GAP : 0;
182
+ const inlineRequested = parsed.options.legendInline === true;
183
+ const legendExtent = inlineRequested && legend ? getLegendExtent(
184
+ {
185
+ groups: legend.groups,
186
+ position: {
187
+ placement: "top-center",
188
+ titleRelation: "inline-with-title"
189
+ },
190
+ mode: exportMode ? "export" : "preview",
191
+ showInactivePills: !exportMode,
192
+ showEmptyGroups: !exportMode
193
+ },
194
+ { activeGroup: legend.activeGroup },
195
+ width
196
+ ) : { width: 0, height: 0 };
197
+ const header = layoutInlineHeader({
198
+ requested: inlineRequested,
199
+ title: parsed.title ?? "",
200
+ hasLegend: !!legend,
201
+ legendWidth: legendExtent.width,
202
+ legendHeight: legendExtent.height,
203
+ containerWidth: width,
204
+ titleBandHeight: titleH,
205
+ legendReserve,
206
+ titleBaselineY: TITLE_Y,
207
+ titleFontSize: TITLE_FONT_SIZE
208
+ });
178
209
  const headerH = opts.noHeaders ? 0 : HEADER_H;
179
210
  const areaX = PADDING;
180
- const areaY = titleH + legendReserve + PADDING;
211
+ const areaY = (header.inline ? titleH : titleH + legendReserve) + PADDING;
181
212
  const areaW = Math.max(1, width - PADDING * 2);
182
213
  const areaH = Math.max(1, height - areaY - PADDING);
183
214
  const layout = layoutTreemap(parsed.roots, {
@@ -192,7 +223,7 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
192
223
  );
193
224
  svg.append("rect").attr("width", width).attr("height", height).attr("fill", palette.bg);
194
225
  if (showTitle) {
195
- 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);
226
+ 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);
196
227
  if (parsed.titleLineNumber !== null) {
197
228
  title.attr("data-line-number", parsed.titleLineNumber);
198
229
  }
@@ -322,7 +353,10 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
322
353
  }
323
354
  }
324
355
  if (legend) {
325
- const legendG = svg.append("g").attr("class", "dgmo-treemap-legend").attr("transform", `translate(0, ${titleH})`);
356
+ const legendG = svg.append("g").attr("class", "dgmo-treemap-legend").attr(
357
+ "transform",
358
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${titleH})`
359
+ );
326
360
  renderIntegratedLegend(legendG, {
327
361
  groups: legend.groups,
328
362
  palette: {
@@ -335,7 +369,12 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
335
369
  isDark,
336
370
  width,
337
371
  mode: exportMode ? "export" : "preview",
338
- position: LEGEND_POSITION,
372
+ // Inline → left-origin so the wrapper's right-flush translate lands the
373
+ // legend at the chart's right edge; stacked → centered below the title.
374
+ position: {
375
+ placement: "top-center",
376
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
377
+ },
339
378
  activeGroup: legend.activeGroup,
340
379
  // The color-mode switcher is the legend itself: each applicable mode is a
341
380
  // group pill; the active one is the open capsule, the rest are clickable
@@ -399,4 +438,4 @@ export {
399
438
  renderTreemapForExport,
400
439
  renderTreemap
401
440
  };
402
- //# sourceMappingURL=chunk-3SBHODJ4.js.map
441
+ //# sourceMappingURL=chunk-ULONXAOD.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
  validateLabelCharacters
9
- } from "./chunk-WF64MW5G.js";
9
+ } from "./chunk-RRX4Z4TH.js";
10
10
  import {
11
11
  displayName,
12
12
  normalizeName
@@ -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
  ER_REGISTRY,
25
25
  OPTION_NOCOLON_RE,
@@ -32,17 +32,17 @@ import {
32
32
  tryParseSharedOption,
33
33
  warnUnknownMetaKeys,
34
34
  withTagAliases
35
- } from "./chunk-3FRO35WW.js";
35
+ } from "./chunk-3KOPPSUQ.js";
36
36
  import {
37
37
  resolveColorWithDiagnostic
38
- } from "./chunk-ZKPPI6BF.js";
38
+ } from "./chunk-EXNKNJ65.js";
39
39
  import {
40
40
  NAME_DIAGNOSTIC_CODES,
41
41
  formatDgmoError,
42
42
  makeDgmoError,
43
43
  nameMergedMessage,
44
44
  suggest
45
- } from "./chunk-4W2PE66Q.js";
45
+ } from "./chunk-OLMWTJVU.js";
46
46
 
47
47
  // src/er/parser.ts
48
48
  function tableId(name) {
@@ -521,4 +521,4 @@ export {
521
521
  looksLikeERDiagram,
522
522
  extractSymbols
523
523
  };
524
- //# sourceMappingURL=chunk-B7N5KYXQ.js.map
524
+ //# sourceMappingURL=chunk-ULR3BVNH.js.map