@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
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-RT7ACF77.js";
4
4
  import {
5
5
  parseInArrowLabel
6
- } from "./chunk-WF64MW5G.js";
6
+ } from "./chunk-RRX4Z4TH.js";
7
7
  import {
8
8
  normalizeName
9
9
  } from "./chunk-NOTA6TEI.js";
@@ -16,7 +16,7 @@ import {
16
16
  tagAttrKey,
17
17
  validateTagGroupNames,
18
18
  validateTagValues
19
- } from "./chunk-AHTTKERF.js";
19
+ } from "./chunk-D5FANMSG.js";
20
20
  import {
21
21
  SKETCH_REGISTRY,
22
22
  extractColor,
@@ -27,7 +27,7 @@ import {
27
27
  stripQuotes,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-3FRO35WW.js";
30
+ } from "./chunk-3KOPPSUQ.js";
31
31
  import {
32
32
  NAME_DIAGNOSTIC_CODES,
33
33
  formatDgmoError,
@@ -35,7 +35,7 @@ import {
35
35
  makeFail,
36
36
  nameMergedMessage,
37
37
  suggest
38
- } from "./chunk-4W2PE66Q.js";
38
+ } from "./chunk-OLMWTJVU.js";
39
39
 
40
40
  // src/sketch/types.ts
41
41
  var SKETCH_SHAPE_KINDS = [
@@ -74,6 +74,7 @@ var SKETCH_AT_MAX = 2e3;
74
74
  function parseSketch(content, palette) {
75
75
  const options = {
76
76
  noLegend: false,
77
+ legendInline: false,
77
78
  fillMode: void 0,
78
79
  noDescriptions: false
79
80
  };
@@ -454,6 +455,10 @@ function parseSketch(content, palette) {
454
455
  continue;
455
456
  }
456
457
  currentTagGroup = null;
458
+ if (indent === 0 && /^legend-inline\s*$/i.test(trimmed)) {
459
+ options.legendInline = true;
460
+ continue;
461
+ }
457
462
  if (indent === 0 && /^no-legend\s*$/i.test(trimmed)) {
458
463
  options.noLegend = true;
459
464
  continue;
@@ -627,4 +632,4 @@ export {
627
632
  isSketchShapeKind,
628
633
  parseSketch
629
634
  };
630
- //# sourceMappingURL=chunk-YENNFS5F.js.map
635
+ //# sourceMappingURL=chunk-USFZQPJ2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-6OYDOQ2Q.js";
3
+ } from "./chunk-2UZVMWSQ.js";
4
4
  import {
5
5
  parseInlineMarkdown
6
6
  } from "./chunk-3HDBAXF5.js";
@@ -15,10 +15,10 @@ import {
15
15
  mix,
16
16
  shapeFill,
17
17
  themeBaseBg
18
- } from "./chunk-JYDMBWRP.js";
18
+ } from "./chunk-42IT4BG2.js";
19
19
  import {
20
20
  resolveColor
21
- } from "./chunk-ZKPPI6BF.js";
21
+ } from "./chunk-EXNKNJ65.js";
22
22
 
23
23
  // src/goal/renderer.ts
24
24
  import * as d3Selection from "d3-selection";
@@ -361,4 +361,4 @@ export {
361
361
  renderGoal,
362
362
  renderGoalForExport
363
363
  };
364
- //# sourceMappingURL=chunk-OR3R27CU.js.map
364
+ //# sourceMappingURL=chunk-UZ6L5VQJ.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,6 +22,9 @@ import {
22
22
  import {
23
23
  ScaleContext
24
24
  } from "./chunk-YYVTBZZC.js";
25
+ import {
26
+ serializeSvg
27
+ } from "./chunk-NZ5QVASG.js";
25
28
  import {
26
29
  TITLE_FONT_SIZE,
27
30
  TITLE_FONT_WEIGHT,
@@ -32,17 +35,17 @@ import {
32
35
  } from "./chunk-6KFWC4CO.js";
33
36
  import {
34
37
  parseFlowchart
35
- } from "./chunk-DLU643TF.js";
38
+ } from "./chunk-LV5BFA24.js";
36
39
  import {
37
40
  measureText
38
41
  } from "./chunk-4ASYQ347.js";
39
42
  import {
40
43
  contrastText,
41
44
  shapeFill
42
- } from "./chunk-JYDMBWRP.js";
45
+ } from "./chunk-42IT4BG2.js";
43
46
  import {
44
47
  fillModeFromOptions
45
- } from "./chunk-3FRO35WW.js";
48
+ } from "./chunk-3KOPPSUQ.js";
46
49
 
47
50
  // src/graph/flowchart-renderer.ts
48
51
  import * as d3Selection from "d3-selection";
@@ -572,7 +575,7 @@ function renderFlowchartForExport(content, theme, palette) {
572
575
  }
573
576
  svgEl.setAttribute("xmlns", "http://www.w3.org/2000/svg");
574
577
  svgEl.style.fontFamily = FONT_FAMILY;
575
- return svgEl.outerHTML;
578
+ return serializeSvg(svgEl);
576
579
  } finally {
577
580
  document.body.removeChild(container);
578
581
  }
@@ -582,4 +585,4 @@ export {
582
585
  renderFlowchart,
583
586
  renderFlowchartForExport
584
587
  };
585
- //# sourceMappingURL=chunk-ADCHLNWT.js.map
588
+ //# sourceMappingURL=chunk-VKN7YW4Q.js.map
@@ -7,7 +7,7 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-AHTTKERF.js";
10
+ } from "./chunk-D5FANMSG.js";
11
11
  import {
12
12
  TREEMAP_REGISTRY,
13
13
  extractColor,
@@ -20,14 +20,14 @@ import {
20
20
  stripQuotes,
21
21
  warnUnknownMetaKeys,
22
22
  withTagAliases
23
- } from "./chunk-3FRO35WW.js";
23
+ } from "./chunk-3KOPPSUQ.js";
24
24
  import {
25
25
  emit,
26
26
  formatDgmoError,
27
27
  makeDgmoError,
28
28
  makeFail,
29
29
  suggest
30
- } from "./chunk-4W2PE66Q.js";
30
+ } from "./chunk-OLMWTJVU.js";
31
31
 
32
32
  // src/treemap/diagnostics.ts
33
33
  var TREEMAP_DX = {
@@ -317,6 +317,10 @@ function handleDirective(trimmed, options, result, pushWarning, lineNumber) {
317
317
  else if (key === "legend") options.noLegend = true;
318
318
  return true;
319
319
  }
320
+ if (/^legend-inline\s*$/i.test(trimmed)) {
321
+ options.legendInline = true;
322
+ return true;
323
+ }
320
324
  {
321
325
  const fm = fillModeFromToken(trimmed);
322
326
  if (fm !== null) {
@@ -436,4 +440,4 @@ export {
436
440
  TREEMAP_DIAGNOSTICS,
437
441
  parseTreemap
438
442
  };
439
- //# sourceMappingURL=chunk-XWODFBHJ.js.map
443
+ //# sourceMappingURL=chunk-VSFAJUEF.js.map
@@ -5,10 +5,10 @@ import {
5
5
  import {
6
6
  mix,
7
7
  shapeFill
8
- } from "./chunk-JYDMBWRP.js";
8
+ } from "./chunk-42IT4BG2.js";
9
9
  import {
10
10
  fillModeFromOptions
11
- } from "./chunk-3FRO35WW.js";
11
+ } from "./chunk-3KOPPSUQ.js";
12
12
 
13
13
  // src/journey-map/layout.ts
14
14
  var PADDING = 24;
@@ -290,4 +290,4 @@ export {
290
290
  scoreToCurveY,
291
291
  layoutJourneyMap
292
292
  };
293
- //# sourceMappingURL=chunk-HFEOOQ46.js.map
293
+ //# sourceMappingURL=chunk-VU3DOZ6C.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
@@ -16,16 +16,16 @@ import {
16
16
  measureIndent,
17
17
  parseFirstLine,
18
18
  tryParseSharedOption
19
- } from "./chunk-3FRO35WW.js";
19
+ } from "./chunk-3KOPPSUQ.js";
20
20
  import {
21
21
  resolveColorWithDiagnostic
22
- } from "./chunk-ZKPPI6BF.js";
22
+ } from "./chunk-EXNKNJ65.js";
23
23
  import {
24
24
  NAME_DIAGNOSTIC_CODES,
25
25
  formatDgmoError,
26
26
  makeDgmoError,
27
27
  nameMergedMessage
28
- } from "./chunk-4W2PE66Q.js";
28
+ } from "./chunk-OLMWTJVU.js";
29
29
 
30
30
  // src/class/parser.ts
31
31
  function classId(name) {
@@ -445,4 +445,4 @@ export {
445
445
  looksLikeClassDiagram,
446
446
  extractSymbols
447
447
  };
448
- //# sourceMappingURL=chunk-M24VXUFG.js.map
448
+ //# sourceMappingURL=chunk-VYEQPPS6.js.map
@@ -23,12 +23,19 @@ import {
23
23
  import {
24
24
  ScaleContext
25
25
  } from "./chunk-YYVTBZZC.js";
26
+ import {
27
+ layoutInlineHeader
28
+ } from "./chunk-6VJCURWU.js";
29
+ import {
30
+ serializeSvg
31
+ } from "./chunk-NZ5QVASG.js";
26
32
  import {
27
33
  renderIntegratedLegend
28
- } from "./chunk-2NZOHEP4.js";
34
+ } from "./chunk-QDOYT6UW.js";
29
35
  import {
36
+ getLegendExtent,
30
37
  getMaxLegendReservedHeight
31
- } from "./chunk-J7HQPVYH.js";
38
+ } from "./chunk-ES66QH6J.js";
32
39
  import {
33
40
  TITLE_FONT_SIZE,
34
41
  TITLE_FONT_WEIGHT
@@ -46,7 +53,7 @@ import {
46
53
  LEGEND_EYE_SIZE,
47
54
  LEGEND_GROUP_GAP,
48
55
  LEGEND_HEIGHT
49
- } from "./chunk-Q5IHQ4NW.js";
56
+ } from "./chunk-SCJ7CAJF.js";
50
57
  import {
51
58
  measureText
52
59
  } from "./chunk-4ASYQ347.js";
@@ -55,14 +62,15 @@ import {
55
62
  mix,
56
63
  shapeFill,
57
64
  themeBaseBg
58
- } from "./chunk-JYDMBWRP.js";
65
+ } from "./chunk-42IT4BG2.js";
59
66
  import {
60
67
  tagAttrKey
61
- } from "./chunk-AHTTKERF.js";
68
+ } from "./chunk-D5FANMSG.js";
62
69
  import {
63
70
  fillModeFromOptions,
71
+ legendInlineRequested,
64
72
  legendSuppressed
65
- } from "./chunk-3FRO35WW.js";
73
+ } from "./chunk-3KOPPSUQ.js";
66
74
 
67
75
  // src/sitemap/renderer.ts
68
76
  import * as d3Selection from "d3-selection";
@@ -138,7 +146,33 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
138
146
  ) : LEGEND_HEIGHT
139
147
  );
140
148
  const legendReserveH = fixedLegend ? sLegendHeight + sLegendFixedGap : 0;
141
- const fixedReserveTop = fixedTitleH + legendReserveH;
149
+ const inlineRequested = legendInlineRequested(parsed.options);
150
+ const legendExtent = inlineRequested && fixedTitle ? getLegendExtent(
151
+ {
152
+ groups: parsed.tagGroups,
153
+ position: {
154
+ placement: "top-center",
155
+ titleRelation: "inline-with-title"
156
+ },
157
+ mode: exportMode ? "export" : "preview",
158
+ capsulePillAddonWidth: LEGEND_EYE_SIZE + LEGEND_EYE_GAP
159
+ },
160
+ { activeGroup: activeTagGroup ?? null },
161
+ width
162
+ ) : { width: 0, height: 0 };
163
+ const header = layoutInlineHeader({
164
+ requested: inlineRequested,
165
+ title: parsed.title ?? "",
166
+ hasLegend: fixedTitle,
167
+ legendWidth: legendExtent.width,
168
+ legendHeight: legendExtent.height,
169
+ containerWidth: width,
170
+ titleBandHeight: fixedTitleH,
171
+ legendReserve: legendReserveH,
172
+ titleBaselineY: sDiagramPadding + sTitleFontSize,
173
+ titleFontSize: sTitleFontSize
174
+ });
175
+ const fixedReserveTop = header.inline ? fixedTitleH : fixedTitleH + legendReserveH;
142
176
  const fixedReserveBottom = 0;
143
177
  const titleOffset = !fixedTitle && showTitle ? sTitleHeight : 0;
144
178
  const diagramW = layout.width;
@@ -340,7 +374,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
340
374
  );
341
375
  }
342
376
  if (fixedTitle) {
343
- const titleEl = svg.append("text").attr("x", width / 2).attr("y", sDiagramPadding + sTitleFontSize).attr("text-anchor", "middle").attr("fill", palette.text).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("class", "sitemap-title chart-title").style("font-family", FONT_FAMILY);
377
+ const titleEl = svg.append("text").attr("x", header.titleX).attr("y", sDiagramPadding + sTitleFontSize).attr("text-anchor", header.titleAnchor).attr("fill", palette.text).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("class", "sitemap-title chart-title").style("font-family", FONT_FAMILY);
344
378
  if (parsed.titleLineNumber) {
345
379
  titleEl.attr("data-line-number", parsed.titleLineNumber);
346
380
  if (onClickItem) {
@@ -350,7 +384,10 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
350
384
  titleEl.text(parsed.title);
351
385
  }
352
386
  if (fixedLegend) {
353
- const legendParent = svg.append("g").attr("class", "sitemap-legend-fixed").attr("transform", `translate(0, ${sDiagramPadding + fixedTitleH})`);
387
+ const legendParent = svg.append("g").attr("class", "sitemap-legend-fixed").attr(
388
+ "transform",
389
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${sDiagramPadding + fixedTitleH})`
390
+ );
354
391
  if (activeTagGroup) {
355
392
  legendParent.attr("data-legend-active", tagAttrKey(activeTagGroup));
356
393
  }
@@ -362,11 +399,12 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
362
399
  activeTagGroup,
363
400
  width,
364
401
  hiddenAttributes,
365
- exportMode
402
+ exportMode,
403
+ header.inline
366
404
  );
367
405
  }
368
406
  }
369
- function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fixedWidth, hiddenAttributes, exportMode) {
407
+ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fixedWidth, hiddenAttributes, exportMode, inlineHeader) {
370
408
  if (legendGroups.length === 0) return;
371
409
  const groups = legendGroups.map((g) => ({
372
410
  name: g.name,
@@ -382,6 +420,10 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
382
420
  groups,
383
421
  activeGroup: activeTagGroup ?? null,
384
422
  mode: exportMode ? "export" : "preview",
423
+ position: {
424
+ placement: "top-center",
425
+ titleRelation: inlineHeader ? "inline-with-title" : "below-title"
426
+ },
385
427
  capsulePillAddonWidth: eyeAddonWidth,
386
428
  palette,
387
429
  isDark,
@@ -407,9 +449,9 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
407
449
  }
408
450
  }
409
451
  async function renderSitemapForExport(content, theme, palette) {
410
- const { parseSitemap } = await import("./parser-CCNJKDDA.js");
411
- const { layoutSitemap } = await import("./layout-4SPLI4HG.js");
412
- const { getPalette } = await import("./palettes-FGTNFARW.js");
452
+ const { parseSitemap } = await import("./parser-5UZWYSIV.js");
453
+ const { layoutSitemap } = await import("./layout-A5UVXINF.js");
454
+ const { getPalette } = await import("./palettes-WO3VA6NU.js");
413
455
  const isDark = theme === "dark";
414
456
  const effectivePalette = palette ?? (isDark ? getPalette("nord").dark : getPalette("nord").light);
415
457
  const parsed = parseSitemap(content, effectivePalette);
@@ -449,7 +491,7 @@ async function renderSitemapForExport(content, theme, palette) {
449
491
  }
450
492
  svgEl.setAttribute("xmlns", "http://www.w3.org/2000/svg");
451
493
  svgEl.style.fontFamily = FONT_FAMILY;
452
- const svgHtml = svgEl.outerHTML;
494
+ const svgHtml = serializeSvg(svgEl);
453
495
  document.body.removeChild(container);
454
496
  return svgHtml;
455
497
  }
@@ -458,4 +500,4 @@ export {
458
500
  renderSitemap,
459
501
  renderSitemapForExport
460
502
  };
461
- //# sourceMappingURL=chunk-5XSNLXU5.js.map
503
+ //# sourceMappingURL=chunk-W2I2EXSC.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  NODE_HEIGHT,
3
3
  NODE_WIDTH
4
- } from "./chunk-I47VHSPS.js";
4
+ } from "./chunk-WTTIODDV.js";
5
5
 
6
6
  // src/boxes-and-lines/layout-grouped.ts
7
7
  var NODESEP = 50;
@@ -689,4 +689,4 @@ export {
689
689
  acyclicOrient,
690
690
  groupedTierCandidates
691
691
  };
692
- //# sourceMappingURL=chunk-7U4OR7CD.js.map
692
+ //# sourceMappingURL=chunk-W4EKQ2P6.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractDatePrefix,
3
3
  parseTimelineDate
4
- } from "./chunk-3KHJJP3J.js";
4
+ } from "./chunk-4MJOBVY7.js";
5
5
  import {
6
6
  makeYearContext,
7
7
  parseDateToken,
@@ -16,7 +16,7 @@ import {
16
16
  tagAttrKey,
17
17
  validateTagGroupNames,
18
18
  validateTagValues
19
- } from "./chunk-AHTTKERF.js";
19
+ } from "./chunk-D5FANMSG.js";
20
20
  import {
21
21
  EVENT_LINE_REGISTRY,
22
22
  extractColor,
@@ -27,14 +27,14 @@ import {
27
27
  tryParseSharedOption,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-3FRO35WW.js";
30
+ } from "./chunk-3KOPPSUQ.js";
31
31
  import {
32
32
  emit,
33
33
  formatDgmoError,
34
34
  makeDgmoError,
35
35
  makeFail,
36
36
  suggest
37
- } from "./chunk-4W2PE66Q.js";
37
+ } from "./chunk-OLMWTJVU.js";
38
38
 
39
39
  // src/event-line/diagnostics.ts
40
40
  var EVENT_LINE_DX = {
@@ -133,6 +133,7 @@ var TBD_RE = /^TBD\b/i;
133
133
  var SIDE_RE = /^side\s+(above|below|alternate)\b/i;
134
134
  var ERA_RE = /^\[([^\]]+)\]\s*(.*)$/;
135
135
  var ERA_COLLAPSED_RE = /\bcollapsed:\s*(true|false)\b/i;
136
+ var NOW_RE = /^now\b\s*(.*)$/i;
136
137
  var SECTION_SEAM_RE = /^section\b/i;
137
138
  var DIRECTION_RE = /^direction\s+(\w+)/i;
138
139
  function parseEventLine(content, palette) {
@@ -150,6 +151,7 @@ function parseEventLine(content, palette) {
150
151
  titleLineNumber: null,
151
152
  events: [],
152
153
  eras: [],
154
+ now: null,
153
155
  tagGroups: [],
154
156
  options,
155
157
  diagnostics: [],
@@ -344,6 +346,44 @@ function parseEventLine(content, palette) {
344
346
  options.noLegend = true;
345
347
  continue;
346
348
  }
349
+ if (trimmed.toLowerCase() === "legend-inline") {
350
+ options.legendInline = true;
351
+ continue;
352
+ }
353
+ {
354
+ const nowMatch = trimmed.match(NOW_RE);
355
+ if (nowMatch) {
356
+ const rest = nowMatch[1].trim();
357
+ if (!rest) {
358
+ result.now = {
359
+ computed: true,
360
+ date: null,
361
+ dateValue: null,
362
+ label: "now",
363
+ lineNumber
364
+ };
365
+ } else {
366
+ const prefix = extractDatePrefix(rest, dateCtx);
367
+ if (prefix) {
368
+ const label = prefix.remainder?.trim() || "now";
369
+ result.now = {
370
+ computed: false,
371
+ date: prefix.startDate,
372
+ dateValue: parseTimelineDate(prefix.startDate),
373
+ label,
374
+ lineNumber
375
+ };
376
+ } else {
377
+ result.diagnostics.push(
378
+ emit(EVENT_LINE_DX.BAD_DATE, lineNumber, {
379
+ token: rest.split(/\s+/)[0]
380
+ })
381
+ );
382
+ }
383
+ }
384
+ continue;
385
+ }
386
+ }
347
387
  {
348
388
  const fm = fillModeFromToken(trimmed);
349
389
  if (fm !== null) {
@@ -419,6 +459,13 @@ function parseEventLine(content, palette) {
419
459
  });
420
460
  }
421
461
  validateEventDateOrder(result.events, eraFlaggedLines, result.diagnostics);
462
+ if (result.now && !options.scale) {
463
+ result.diagnostics.push(
464
+ emit(EVENT_LINE_DX.UNSUPPORTED, result.now.lineNumber, {
465
+ reason: "the `now` marker needs a to-scale axis; it is ignored under `no-scale`."
466
+ })
467
+ );
468
+ }
422
469
  return result;
423
470
  }
424
471
  function resolveFutureEvents(events) {
@@ -618,4 +665,4 @@ export {
618
665
  EVENT_LINE_DIAGNOSTICS,
619
666
  parseEventLine
620
667
  };
621
- //# sourceMappingURL=chunk-UIT7E6UF.js.map
668
+ //# sourceMappingURL=chunk-WFX6AUQO.js.map
@@ -12,12 +12,16 @@ import {
12
12
  NODE_STROKE_WIDTH,
13
13
  SEPARATOR_GAP
14
14
  } from "./chunk-3CIOJ5YJ.js";
15
+ import {
16
+ layoutInlineHeader
17
+ } from "./chunk-6VJCURWU.js";
15
18
  import {
16
19
  renderIntegratedLegend
17
- } from "./chunk-2NZOHEP4.js";
20
+ } from "./chunk-QDOYT6UW.js";
18
21
  import {
22
+ getLegendExtent,
19
23
  getMaxLegendReservedHeight
20
- } from "./chunk-J7HQPVYH.js";
24
+ } from "./chunk-ES66QH6J.js";
21
25
  import {
22
26
  TITLE_FONT_SIZE,
23
27
  TITLE_FONT_WEIGHT,
@@ -31,7 +35,7 @@ import {
31
35
  } from "./chunk-2CW5ZTNH.js";
32
36
  import {
33
37
  LEGEND_GROUP_GAP
34
- } from "./chunk-Q5IHQ4NW.js";
38
+ } from "./chunk-SCJ7CAJF.js";
35
39
  import {
36
40
  measureText
37
41
  } from "./chunk-4ASYQ347.js";
@@ -40,18 +44,19 @@ import {
40
44
  mix,
41
45
  shapeFill,
42
46
  themeBaseBg
43
- } from "./chunk-JYDMBWRP.js";
47
+ } from "./chunk-42IT4BG2.js";
44
48
  import {
45
49
  resolveTagColor,
46
50
  tagAttrKey
47
- } from "./chunk-AHTTKERF.js";
51
+ } from "./chunk-D5FANMSG.js";
48
52
  import {
49
53
  fillModeFromOptions,
54
+ legendInlineRequested,
50
55
  legendSuppressed
51
- } from "./chunk-3FRO35WW.js";
56
+ } from "./chunk-3KOPPSUQ.js";
52
57
  import {
53
58
  resolveColor
54
- } from "./chunk-ZKPPI6BF.js";
59
+ } from "./chunk-EXNKNJ65.js";
55
60
 
56
61
  // src/family/renderer.ts
57
62
  import * as d3Selection from "d3-selection";
@@ -116,7 +121,33 @@ function renderFamilyForExport(container, parsed, layout, palette, isDark, opts
116
121
  const contentH = layout.height;
117
122
  const W = opts.fit?.width ?? opts.exportDims?.width ?? contentW + PAD * 2;
118
123
  const legendReserve = hasLegend ? getMaxLegendReservedHeight(legendConfig, W) + LEGEND_GROUP_GAP : 0;
119
- const chrome = titleReserve + legendReserve;
124
+ const inlineRequested = legendInlineRequested(parsed.options);
125
+ const legendExtent = inlineRequested && hasLegend ? getLegendExtent(
126
+ {
127
+ groups: legendGroups,
128
+ position: {
129
+ placement: "top-center",
130
+ titleRelation: "inline-with-title"
131
+ },
132
+ mode: opts.exportMode ? "export" : "preview",
133
+ showInactivePills: true
134
+ },
135
+ { activeGroup: activeTagGroup },
136
+ W
137
+ ) : { width: 0, height: 0 };
138
+ const header = layoutInlineHeader({
139
+ requested: inlineRequested,
140
+ title: parsed.title ?? "",
141
+ hasLegend,
142
+ legendWidth: legendExtent.width,
143
+ legendHeight: legendExtent.height,
144
+ containerWidth: W,
145
+ titleBandHeight: titleReserve,
146
+ legendReserve,
147
+ titleBaselineY: TITLE_Y,
148
+ titleFontSize: TITLE_FONT_SIZE
149
+ });
150
+ const chrome = titleReserve + (header.inline ? 0 : legendReserve);
120
151
  let scale = 1;
121
152
  let H;
122
153
  if (opts.fit) {
@@ -133,12 +164,21 @@ function renderFamilyForExport(container, parsed, layout, palette, isDark, opts
133
164
  ".family-focus-icon{opacity:0;transition:opacity .15s ease;pointer-events:none}.family-card:hover .family-focus-icon{opacity:.6;pointer-events:all}.family-focus-icon:hover{opacity:1}"
134
165
  );
135
166
  if (parsed.title) {
136
- svg.append("text").attr("x", W / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(parsed.title);
167
+ svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", TITLE_Y).attr("text-anchor", header.titleAnchor).attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(parsed.title);
137
168
  }
138
169
  if (hasLegend) {
139
- const legendParent = svg.append("g").attr("transform", `translate(0, ${titleReserve})`);
170
+ const legendParent = svg.append("g").attr(
171
+ "transform",
172
+ header.inline ? `translate(${header.legendX}, ${header.legendY})` : `translate(0, ${titleReserve})`
173
+ );
140
174
  renderIntegratedLegend(legendParent, {
141
175
  ...legendConfig,
176
+ // Inline → left-origin so the wrapper's right-flush translate lands the
177
+ // legend at the chart's right edge; stacked → centered below the title.
178
+ position: {
179
+ placement: "top-center",
180
+ titleRelation: header.inline ? "inline-with-title" : "below-title"
181
+ },
142
182
  palette,
143
183
  isDark,
144
184
  width: W,
@@ -277,4 +317,4 @@ export {
277
317
  renderFamilyForExport,
278
318
  renderFamily
279
319
  };
280
- //# sourceMappingURL=chunk-RIEAN4D5.js.map
320
+ //# sourceMappingURL=chunk-WK3UFCZC.js.map