@diagrammo/dgmo 0.53.0 → 0.55.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 (212) hide show
  1. package/dist/advanced.d.ts +112 -9
  2. package/dist/advanced.js +188 -160
  3. package/dist/auto.js +147 -132
  4. package/dist/auto.mjs +2352 -746
  5. package/dist/block.js +65 -62
  6. package/dist/chart-meta.js +52 -49
  7. package/dist/{charts-d3-DH2XA45I.js → charts-d3-KZ6V4OP2.js} +10 -8
  8. package/dist/chunk-2CW5ZTNH.js +58 -0
  9. package/dist/{chunk-MA3HJZHB.js → chunk-2HX6ZGY7.js} +7 -7
  10. package/dist/{chunk-YG2BEIQU.js → chunk-2R6HG6D5.js} +11 -11
  11. package/dist/{chunk-65V6IRFN.js → chunk-2ZJXKJSI.js} +106 -60
  12. package/dist/{chunk-PYO4TJJ3.js → chunk-32HUNA33.js} +60 -18
  13. package/dist/{chunk-UK6DKJLD.js → chunk-3BFXELBL.js} +51 -4
  14. package/dist/{chunk-RW5PEJ7D.js → chunk-3BZJ5KD5.js} +7 -3
  15. package/dist/{chunk-FT7TPPZ5.js → chunk-3FUTFYSP.js} +65 -26
  16. package/dist/{chunk-QAALSCKI.js → chunk-4MZCJV4M.js} +12 -12
  17. package/dist/{chunk-ZXUAPTCK.js → chunk-4R5KIPNX.js} +2 -2
  18. package/dist/{chunk-QWIBT6DS.js → chunk-5D5VHDJM.js} +49 -14
  19. package/dist/{chunk-U7NKYLX2.js → chunk-5H5GWWA4.js} +55 -19
  20. package/dist/{chunk-P3H7QVDH.js → chunk-5K5XBEXT.js} +11 -6
  21. package/dist/{chunk-PT4SW76W.js → chunk-6NJWBMJV.js} +49 -14
  22. package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
  23. package/dist/{chunk-6DCOIN4W.js → chunk-A2ARDILY.js} +783 -3
  24. package/dist/{chunk-CK2GMDXD.js → chunk-A2PTRSAO.js} +2 -2
  25. package/dist/{chunk-APKUAJ2L.js → chunk-A2RUBBVT.js} +14 -1
  26. package/dist/{chunk-GMIJ35PW.js → chunk-A4UJP4IS.js} +68 -20
  27. package/dist/{chunk-LQHVDZYC.js → chunk-AKE6C2D7.js} +4 -4
  28. package/dist/{chunk-W5KMNC5U.js → chunk-ASPS5O6F.js} +9 -10
  29. package/dist/{chunk-FLDC7ZAK.js → chunk-AU75JHSR.js} +6 -3
  30. package/dist/chunk-BEOAKGNA.js +484 -0
  31. package/dist/{chunk-XY3UDKKH.js → chunk-COVYNAKJ.js} +4 -4
  32. package/dist/{chunk-4ASVFYB2.js → chunk-DS4MDEQ7.js} +5 -5
  33. package/dist/{chunk-7JDTNFAK.js → chunk-EFUQENO5.js} +76 -32
  34. package/dist/{chunk-BULHGPHK.js → chunk-EMSOFHEN.js} +2 -2
  35. package/dist/{chunk-3BEKKRH5.js → chunk-ETTDF3S2.js} +49 -11
  36. package/dist/{chunk-JHOAH4TI.js → chunk-ETYF5QZR.js} +2 -2
  37. package/dist/{chunk-AHXIMHDQ.js → chunk-F5ZNUMSY.js} +53 -14
  38. package/dist/{chunk-I64ECJX3.js → chunk-FBP33UM6.js} +3 -3
  39. package/dist/{chunk-VIRANCNY.js → chunk-FGAMFJNJ.js} +58 -20
  40. package/dist/{chunk-774C2FF3.js → chunk-GRXPFBYC.js} +24 -3
  41. package/dist/{chunk-NNYFQOTK.js → chunk-GTO5VCYG.js} +10 -8
  42. package/dist/{chunk-RJ5LBZ5U.js → chunk-HES4K6DV.js} +13 -13
  43. package/dist/{chunk-AZNXGWDC.js → chunk-HGKOVKAX.js} +7 -7
  44. package/dist/{chunk-DWUMPMV2.js → chunk-HLGOG44K.js} +2 -2
  45. package/dist/{chunk-VJHBSPGF.js → chunk-HUTP35XT.js} +5 -4
  46. package/dist/{chunk-3CZLWOCI.js → chunk-HX7QNHC6.js} +3 -3
  47. package/dist/{chunk-R5NH5BZG.js → chunk-IALX52TR.js} +6 -6
  48. package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
  49. package/dist/{chunk-27STWBOK.js → chunk-IF4KYSJZ.js} +10 -8
  50. package/dist/{chunk-HORZ5H2L.js → chunk-IG6J7JWH.js} +61 -22
  51. package/dist/{chunk-VRRDUYOK.js → chunk-IIUYKQ5J.js} +3 -3
  52. package/dist/{chunk-GMAH572Z.js → chunk-INTAQV2Y.js} +2 -2
  53. package/dist/{chunk-6AUZPPAV.js → chunk-ITXL2KU5.js} +2 -2
  54. package/dist/{chunk-KKHCNSKK.js → chunk-IWG2ECAO.js} +5 -5
  55. package/dist/{chunk-GQ644SPD.js → chunk-JGCEFKZP.js} +14 -14
  56. package/dist/{chunk-HNBY6CNV.js → chunk-JQLSFZZP.js} +2 -2
  57. package/dist/{chunk-CMVZWP32.js → chunk-JR7Q6GHE.js} +2 -2
  58. package/dist/{chunk-LHILKFDP.js → chunk-KC3WBBI7.js} +9 -9
  59. package/dist/{chunk-GABSL6TH.js → chunk-KK3L5NVK.js} +3 -3
  60. package/dist/{chunk-LC3FFD43.js → chunk-L2DIXZUT.js} +98 -48
  61. package/dist/{chunk-4WGMGKCZ.js → chunk-LCRPGGGS.js} +11 -11
  62. package/dist/{chunk-6KY7OCZC.js → chunk-LKGQ46P4.js} +3 -3
  63. package/dist/{chunk-HE5J53SZ.js → chunk-LW7STMYZ.js} +3 -3
  64. package/dist/{chunk-BD3WGY4T.js → chunk-M53MDBIW.js} +2 -2
  65. package/dist/{chunk-AN2DQB3G.js → chunk-MEH4TJEX.js} +12 -12
  66. package/dist/{chunk-SGPFVDUL.js → chunk-MNS2ENXF.js} +6 -6
  67. package/dist/{chunk-FXCB7H5O.js → chunk-MSWIBF6J.js} +2 -2
  68. package/dist/{chunk-BR7AYN76.js → chunk-NL7FUIVD.js} +12 -12
  69. package/dist/{chunk-AIMLCDAO.js → chunk-NN5TF4OV.js} +2 -2
  70. package/dist/{chunk-7GUF6SDR.js → chunk-NPPUZ4SK.js} +9 -9
  71. package/dist/{chunk-4K42RUGC.js → chunk-NYOOPQFD.js} +47 -12
  72. package/dist/{chunk-FFXCKZOU.js → chunk-O4CZDTQA.js} +3 -3
  73. package/dist/{chunk-6HTRCTAS.js → chunk-P5XXIVEU.js} +6 -4
  74. package/dist/{chunk-XEAQDIMF.js → chunk-PC4YLEKA.js} +6 -6
  75. package/dist/{chunk-Q7AH665U.js → chunk-PCVXXPYU.js} +121 -38
  76. package/dist/{chunk-W2DINCHL.js → chunk-PKUWYPI5.js} +207 -24
  77. package/dist/{chunk-PV2QO7QL.js → chunk-PSIDVCBA.js} +2 -2
  78. package/dist/{chunk-YR43LJT5.js → chunk-PV7ND5WL.js} +58 -15
  79. package/dist/{chunk-QI3BOLQB.js → chunk-Q5CMQVWF.js} +4 -4
  80. package/dist/{chunk-4RGZFA7H.js → chunk-Q5IHQ4NW.js} +11 -1
  81. package/dist/{chunk-SG4PRYO3.js → chunk-QQXFYTLC.js} +391 -60
  82. package/dist/{chunk-GWQJKTFS.js → chunk-QZYGRDMM.js} +118 -99
  83. package/dist/{chunk-CQFNIIQN.js → chunk-RKBCKCSF.js} +2 -2
  84. package/dist/{chunk-FUKNRLIJ.js → chunk-RSBH2C7O.js} +6 -6
  85. package/dist/{chunk-2QC4HXCY.js → chunk-RYNCWA5X.js} +11 -10
  86. package/dist/{chunk-NNUMX6WX.js → chunk-RZWIPDZ2.js} +40 -15
  87. package/dist/{chunk-VKNCC2GX.js → chunk-S52F62GW.js} +13 -13
  88. package/dist/{chunk-UQRIKAMH.js → chunk-SCOHNGPG.js} +59 -18
  89. package/dist/{chunk-VGNIDAPQ.js → chunk-SSHS42QG.js} +4 -4
  90. package/dist/chunk-TGOMHUOV.js +218 -0
  91. package/dist/{chunk-UKP5HWB5.js → chunk-UBQU2BY6.js} +4 -4
  92. package/dist/{chunk-IQJCVREL.js → chunk-UES4P7FN.js} +6 -6
  93. package/dist/chunk-US3P2DQO.js +87 -0
  94. package/dist/{chunk-GAWKIIPO.js → chunk-UXXLE6AH.js} +8 -8
  95. package/dist/{chunk-22OQWBWD.js → chunk-VMWSZCAK.js} +12 -11
  96. package/dist/{chunk-XG4NWFPY.js → chunk-VVIRAGID.js} +13 -13
  97. package/dist/{chunk-X3RXGSCZ.js → chunk-VXTUWXFB.js} +54 -15
  98. package/dist/{chunk-J7HI6G3G.js → chunk-W4TSD3IP.js} +6 -6
  99. package/dist/{chunk-FGDSTT3F.js → chunk-WB3NA3JJ.js} +2 -2
  100. package/dist/{chunk-KUSAVOWZ.js → chunk-WITOJZGL.js} +8 -4
  101. package/dist/{chunk-UVDCHR4E.js → chunk-WVGNXDEE.js} +2 -2
  102. package/dist/{chunk-HOXKNRON.js → chunk-X3X4LZDC.js} +2 -2
  103. package/dist/{chunk-SQCBSFT5.js → chunk-XKKH2DPG.js} +51 -263
  104. package/dist/{chunk-NR5HCAUD.js → chunk-XSVWUOUZ.js} +1 -1
  105. package/dist/{chunk-BFDVEO5R.js → chunk-Y4BBGFKY.js} +2 -2
  106. package/dist/{chunk-VAO6ANGC.js → chunk-YP2T5YUP.js} +14 -9
  107. package/dist/{chunk-PKNNHU7H.js → chunk-YXKNXIWA.js} +19 -11
  108. package/dist/{chunk-UFQJMOVZ.js → chunk-ZGIBV36U.js} +6 -6
  109. package/dist/{chunk-XQ4KN6JQ.js → chunk-ZP265ICS.js} +16 -15
  110. package/dist/{chunk-JTMSWEIW.js → chunk-ZWVKTWK6.js} +4 -4
  111. package/dist/{chunk-ALYZ3MAA.js → chunk-ZXNHHO6D.js} +8 -476
  112. package/dist/cli.cjs +166 -149
  113. package/dist/clock.js +34 -1
  114. package/dist/completion-registry.d.ts +129 -0
  115. package/dist/completion-registry.js +1278 -0
  116. package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
  117. package/dist/dgmo-router-T4HGLIGA.js +88 -0
  118. package/dist/{dimensions-K6PGYYGT.js → dimensions-3JINHSYK.js} +8 -8
  119. package/dist/editor.js +28 -1
  120. package/dist/element.js +148 -133
  121. package/dist/element.mjs +2352 -746
  122. package/dist/{flowchart-parser-LALR6J6F.js → flowchart-parser-M7KKTLX7.js} +5 -5
  123. package/dist/{flowchart-renderer-DXYB5YRF.js → flowchart-renderer-FFEQFQEU.js} +9 -9
  124. package/dist/highlight.js +28 -1
  125. package/dist/index.js +77 -64
  126. package/dist/{layout-ZE5DRJWX.js → layout-3ZZBKUQC.js} +4 -4
  127. package/dist/{layout-3BVDMKXI.js → layout-AUKTWGYL.js} +4 -4
  128. package/dist/{layout-4IHCMWZN.js → layout-CRLTSFYQ.js} +4 -4
  129. package/dist/{layout-WCAIKGZG.js → layout-FNZDJGKF.js} +5 -5
  130. package/dist/layout-GHWRJKZQ.js +15 -0
  131. package/dist/{layout-3V2A4MUE.js → layout-LGXOKUCD.js} +6 -5
  132. package/dist/{layout-WSMPBQ4Q.js → layout-NF4EWFLT.js} +3 -3
  133. package/dist/{layout-OL2XFJXA.js → layout-SP7HJWKA.js} +3 -3
  134. package/dist/{layout-E6HR6PXH.js → layout-UR7CYAHL.js} +3 -3
  135. package/dist/layout-UTMEVFHN.js +15 -0
  136. package/dist/{layout-search-34DPZD43.js → layout-search-U2H4ORFJ.js} +14 -7
  137. package/dist/{legend-constants-P5EQWRQQ.js → legend-constants-B77VKB3R.js} +7 -2
  138. package/dist/{parser-6PPHAXXH.js → parser-2AXPSKWB.js} +5 -5
  139. package/dist/{parser-5HQXCNOS.js → parser-2AZ2KQTO.js} +4 -4
  140. package/dist/{parser-3KIGEEJM.js → parser-2LF33IS2.js} +4 -4
  141. package/dist/{parser-NNIL3HXU.js → parser-3QJ2Z4H4.js} +3 -3
  142. package/dist/parser-5GCQFSTQ.js +13 -0
  143. package/dist/{parser-6B6SSZT7.js → parser-62OHBRU5.js} +3 -3
  144. package/dist/{parser-VOERD6XR.js → parser-7LYJFZCP.js} +4 -4
  145. package/dist/{parser-ZGNXYFPS.js → parser-BMOTF72G.js} +3 -3
  146. package/dist/{parser-IVGHXLZP.js → parser-CIFLYZYP.js} +4 -3
  147. package/dist/{parser-GN2MM5CC.js → parser-D2UL2G5U.js} +3 -3
  148. package/dist/{parser-GKP2MHHL.js → parser-DM2APTKB.js} +3 -3
  149. package/dist/{parser-27Z76SN3.js → parser-DYYTPLBL.js} +4 -4
  150. package/dist/{parser-5FGJSQNS.js → parser-GOUGUTPU.js} +4 -4
  151. package/dist/{parser-G26MTBFS.js → parser-HGVUVD6J.js} +3 -3
  152. package/dist/{parser-EXNBDNGY.js → parser-IEJD3CZB.js} +3 -3
  153. package/dist/{parser-ZQDQTB4X.js → parser-JBEWNLAV.js} +5 -5
  154. package/dist/{parser-5QPFOB5F.js → parser-JMXPHNZD.js} +4 -4
  155. package/dist/{parser-4E4I3GNT.js → parser-JMXSQY3K.js} +4 -4
  156. package/dist/{parser-FF4BMRSB.js → parser-LUXS7J32.js} +4 -4
  157. package/dist/{parser-3VSWEKBF.js → parser-M5BUHULF.js} +4 -4
  158. package/dist/{parser-IKWK2ZU3.js → parser-MESRHUS4.js} +4 -5
  159. package/dist/{parser-3CODK6RG.js → parser-OOYNI2UT.js} +4 -4
  160. package/dist/{parser-YSLNDFLV.js → parser-PVBUAVRR.js} +4 -5
  161. package/dist/{parser-CKA3QMAG.js → parser-QKRBSQLJ.js} +5 -5
  162. package/dist/{parser-UWRX52PC.js → parser-S6NWSIJO.js} +4 -4
  163. package/dist/{parser-RNLTBIJ6.js → parser-SFEK6Q7Z.js} +4 -4
  164. package/dist/{parser-7JVIDLLR.js → parser-SUV52NQW.js} +4 -4
  165. package/dist/{parser-CRKLXGW7.js → parser-SZHGLOOZ.js} +4 -4
  166. package/dist/{parser-275KP7JO.js → parser-TO7IENWL.js} +5 -6
  167. package/dist/{parser-XNKJCMMA.js → parser-TVAMC7CQ.js} +4 -4
  168. package/dist/{parser-FOOFEJQU.js → parser-VAW46R57.js} +4 -4
  169. package/dist/{parser-XVPTRWZ4.js → parser-XDSPOXSE.js} +4 -4
  170. package/dist/pert.d.ts +2 -0
  171. package/dist/{renderer-D3BRNOMV.js → renderer-3PWLOJPD.js} +11 -11
  172. package/dist/{renderer-7NQSTQMQ.js → renderer-5EMHIQL5.js} +4 -4
  173. package/dist/{renderer-ZBTEX2JK.js → renderer-5PODNLYP.js} +4 -4
  174. package/dist/{renderer-6WRYVM5R.js → renderer-AQJIQ2XU.js} +9 -8
  175. package/dist/{renderer-JCZG6AYU.js → renderer-BEW3AYFT.js} +10 -10
  176. package/dist/{renderer-YUKPS27O.js → renderer-C3UYAXA6.js} +10 -8
  177. package/dist/{renderer-AK2WO4EI.js → renderer-CENXCMWG.js} +4 -4
  178. package/dist/{renderer-HIFQVEJA.js → renderer-CXM3ARYN.js} +10 -9
  179. package/dist/{renderer-JTCX6PCG.js → renderer-DW6TEBLA.js} +10 -9
  180. package/dist/{renderer-VMH6L6CP.js → renderer-FE5M6SEZ.js} +10 -9
  181. package/dist/{renderer-TYHGXAVT.js → renderer-FXK6ZL3P.js} +4 -4
  182. package/dist/{renderer-UPF7NRTI.js → renderer-G5ESLCJB.js} +12 -11
  183. package/dist/{renderer-CWEFGEIC.js → renderer-HTDS4FED.js} +14 -13
  184. package/dist/{renderer-XTXSOK3L.js → renderer-IO4KCFVL.js} +10 -10
  185. package/dist/{renderer-SQ54MDSA.js → renderer-IRAFJNTK.js} +10 -9
  186. package/dist/{renderer-JWGQSTMR.js → renderer-MFTTFW32.js} +15 -14
  187. package/dist/{renderer-2C6DJRYN.js → renderer-MPXI4FVL.js} +8 -8
  188. package/dist/{renderer-5MPN7CXZ.js → renderer-NVBEMQ6L.js} +5 -5
  189. package/dist/{renderer-7ZNVOVFG.js → renderer-OOGDCR6K.js} +3 -3
  190. package/dist/{renderer-COLQFSFV.js → renderer-Q5P72O4A.js} +9 -9
  191. package/dist/{renderer-WCWI4I6A.js → renderer-QZESC66H.js} +2 -2
  192. package/dist/{renderer-NE5W7CQP.js → renderer-RDBUXW7P.js} +6 -5
  193. package/dist/{renderer-6EN5XXJZ.js → renderer-S4XB3JR2.js} +11 -11
  194. package/dist/{renderer-WFSUBKUL.js → renderer-SIWEEWJ5.js} +9 -8
  195. package/dist/{renderer-LVZAHRP6.js → renderer-TKTM2SL4.js} +12 -12
  196. package/dist/{renderer-QD2SJF2I.js → renderer-TXTTV4HA.js} +10 -9
  197. package/dist/{renderer-YUXGXGSW.js → renderer-UZIU4AHK.js} +10 -9
  198. package/dist/{renderer-RLMOTXZ6.js → renderer-V72VJIGG.js} +14 -13
  199. package/dist/{renderer-UKXW2QPE.js → renderer-VEGOEZOI.js} +10 -8
  200. package/dist/{renderer-WNFXYYGL.js → renderer-W6I6T2TA.js} +8 -8
  201. package/dist/{renderer-KARQF3F3.js → renderer-WSHJRR2T.js} +8 -8
  202. package/dist/{renderer-radial-WF6VOUOD.js → renderer-radial-AG75PBYD.js} +9 -9
  203. package/dist/{resolver-WFKZYBJ2.js → resolver-ZSFQQRTH.js} +3 -3
  204. package/dist/{state-parser-L7DHZIQO.js → state-parser-KIPZGIB4.js} +5 -5
  205. package/dist/{state-renderer-TFEUOP4H.js → state-renderer-U6OSJG52.js} +13 -12
  206. package/docs/language-reference.md +2 -1
  207. package/package.json +5 -1
  208. package/dist/chunk-YJVA3QUU.js +0 -734
  209. package/dist/dgmo-router-B4S23EBH.js +0 -86
  210. package/dist/layout-3M5UYJHY.js +0 -14
  211. package/dist/layout-KPQWJNAG.js +0 -14
  212. package/dist/parser-7JHWEWXM.js +0 -13
@@ -5,13 +5,18 @@ import {
5
5
  import {
6
6
  ScaleContext
7
7
  } from "./chunk-YYVTBZZC.js";
8
+ import {
9
+ INLINE_HEADER_PAD,
10
+ layoutInlineHeader
11
+ } from "./chunk-US3P2DQO.js";
8
12
  import {
9
13
  renderIntegratedLegend
10
- } from "./chunk-W5KMNC5U.js";
14
+ } from "./chunk-ASPS5O6F.js";
11
15
  import {
12
16
  controlsGroupCapsuleWidth,
17
+ getLegendExtent,
13
18
  getMaxLegendReservedHeight
14
- } from "./chunk-774C2FF3.js";
19
+ } from "./chunk-GRXPFBYC.js";
15
20
  import {
16
21
  TITLE_FONT_SIZE,
17
22
  TITLE_FONT_WEIGHT,
@@ -20,12 +25,6 @@ import {
20
25
  import {
21
26
  FONT_FAMILY
22
27
  } from "./chunk-6KFWC4CO.js";
23
- import {
24
- contrastText,
25
- getSeriesColors,
26
- mix,
27
- shapeFill
28
- } from "./chunk-JYDMBWRP.js";
29
28
  import {
30
29
  LEGEND_CAPSULE_PAD,
31
30
  LEGEND_DOT_R,
@@ -40,20 +39,26 @@ import {
40
39
  LEGEND_PILL_PAD,
41
40
  measureLegendText,
42
41
  truncateLegendText
43
- } from "./chunk-4RGZFA7H.js";
42
+ } from "./chunk-Q5IHQ4NW.js";
44
43
  import {
45
44
  CHAR_WIDTH_RATIO,
46
45
  measureText,
47
46
  truncateText
48
47
  } from "./chunk-4ASYQ347.js";
49
48
  import {
50
- resolveActiveTagGroup,
51
- resolveTagColor,
52
- tagAttrKey
53
- } from "./chunk-CMVZWP32.js";
49
+ contrastText,
50
+ getSeriesColors,
51
+ mix,
52
+ shapeFill
53
+ } from "./chunk-JYDMBWRP.js";
54
54
  import {
55
55
  normalizeName
56
56
  } from "./chunk-NOTA6TEI.js";
57
+ import {
58
+ resolveActiveTagGroup,
59
+ resolveTagColor,
60
+ tagAttrKey
61
+ } from "./chunk-JR7Q6GHE.js";
57
62
 
58
63
  // src/gantt/renderer.ts
59
64
  import * as d3Scale from "d3-scale";
@@ -217,12 +222,38 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
217
222
  const sSprintLabelReserve = ctx.structural(sprintLabelReserve);
218
223
  const sTitleHeight = ctx.aesthetic(titleHeight);
219
224
  const sTagLegendReserve = ctx.structural(tagLegendReserve);
225
+ const inlineRequested = resolved.options.legendInline === true && resolved.tagGroups.length > 0;
226
+ const legendExtent = inlineRequested ? getLegendExtent(
227
+ {
228
+ groups: resolved.tagGroups.map((tg) => ({
229
+ name: tg.name,
230
+ entries: tg.entries
231
+ })),
232
+ position: { placement: "top-center", titleRelation: "inline-with-title" },
233
+ mode: "preview",
234
+ capsulePillAddonWidth: LEGEND_ICON_W
235
+ },
236
+ { activeGroup: currentActiveGroup },
237
+ containerWidth
238
+ ) : { width: 0, height: 0 };
239
+ const header = layoutInlineHeader({
240
+ requested: inlineRequested,
241
+ title: title ?? "",
242
+ hasLegend: hasTagLegend,
243
+ legendWidth: legendExtent.width,
244
+ legendHeight: legendExtent.height,
245
+ containerWidth,
246
+ titleBandHeight: sTitleHeight,
247
+ legendReserve: sTagLegendReserve,
248
+ titleBaselineY: sTitleY,
249
+ titleFontSize: sTitleFontSize
250
+ });
220
251
  const sEraReserve = ctx.structural(eraReserve);
221
252
  const sMarkerReserve = ctx.structural(markerReserve);
222
253
  const sTodayReserve = ctx.structural(todayReserve);
223
254
  const sFont10 = ctx.text(10);
224
255
  const sFont11 = ctx.text(11);
225
- const sMarginTop = sTitleHeight + sTagLegendReserve + sEraReserve + sMarkerReserve + sTodayReserve + sTopDateLabelReserve + sSprintLabelReserve;
256
+ const sMarginTop = sTitleHeight + (header.inline ? 0 : sTagLegendReserve) + sEraReserve + sMarkerReserve + sTodayReserve + sTopDateLabelReserve + sSprintLabelReserve;
226
257
  const sTodayLabelY = sTodayReserve ? -(sTopDateLabelReserve + sHeaderRowH / 2) : 0;
227
258
  const sMarkerLabelY = sMarkerReserve ? -(sTopDateLabelReserve + sTodayReserve + sHeaderRowH / 2) : 0;
228
259
  const sEraLabelY = sEraReserve ? -(sTopDateLabelReserve + sTodayReserve + sMarkerReserve + sHeaderRowH / 2) : 0;
@@ -234,12 +265,12 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
234
265
  const svg = d3Selection.select(container).append("svg").attr("viewBox", `0 0 ${containerWidth} ${sOuterHeight}`).attr("width", exportDims ? containerWidth : "100%").attr("preserveAspectRatio", "xMidYMin meet").attr("font-family", FONT_FAMILY).style("overflow", "visible");
235
266
  const g = svg.append("g").attr("transform", `translate(${leftMargin}, ${sMarginTop})`);
236
267
  if (showTitle) {
237
- svg.append("text").attr("class", "chart-title").attr("x", containerWidth / 2).attr("y", sTitleY).attr("text-anchor", "middle").attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(title);
268
+ svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", sTitleY).attr("text-anchor", header.titleAnchor).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(title);
238
269
  }
239
270
  function drawLegend() {
240
271
  svg.selectAll(".gantt-tag-legend-container").remove();
241
272
  if (hasTagLegend) {
242
- const legendY = sTitleHeight;
273
+ const legendY = header.inline ? header.legendY : sTitleHeight;
243
274
  renderTagLegend(
244
275
  svg,
245
276
  g,
@@ -288,7 +319,8 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
288
319
  drawLegend();
289
320
  },
290
321
  options?.exportMode ?? false,
291
- controlsHost
322
+ controlsHost,
323
+ header.inline
292
324
  );
293
325
  }
294
326
  }
@@ -1116,7 +1148,7 @@ function buildControlsToggles(hasCriticalPath, criticalPathActive, hasDependenci
1116
1148
  }
1117
1149
  return toggles;
1118
1150
  }
1119
- function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargin, chartInnerWidth, legendY, palette, isDark, hasCriticalPath, criticalPathActive, _optionLineNumbers, onToggle, onToggleControlsExpand, currentSwimlaneGroup, onSwimlaneChange, legendViewMode, resolvedTasks, controlsExpanded = false, hasDependencies = false, dependenciesActive = false, onControlsToggle, exportMode = false, controlsHost = "inline") {
1151
+ function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargin, chartInnerWidth, legendY, palette, isDark, hasCriticalPath, criticalPathActive, _optionLineNumbers, onToggle, onToggleControlsExpand, currentSwimlaneGroup, onSwimlaneChange, legendViewMode, resolvedTasks, controlsExpanded = false, hasDependencies = false, dependenciesActive = false, onControlsToggle, exportMode = false, controlsHost = "inline", inlineHeader = false) {
1120
1152
  let visibleGroups;
1121
1153
  if (activeGroupName) {
1122
1154
  const activeGroup = tagGroups.filter(
@@ -1186,7 +1218,7 @@ function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargi
1186
1218
  totalW += controlsExpanded ? controlsGroupCapsuleWidth(controlsToggleLabels) : LEGEND_GEAR_PILL_W;
1187
1219
  }
1188
1220
  const containerWidth = chartLeftMargin + chartInnerWidth + RIGHT_MARGIN;
1189
- const legendX = (containerWidth - totalW) / 2;
1221
+ const legendX = inlineHeader ? containerWidth - INLINE_HEADER_PAD - totalW : (containerWidth - totalW) / 2;
1190
1222
  const legendRow = svg.append("g").attr("class", "gantt-tag-legend-container").attr("transform", `translate(${legendX}, ${legendY})`);
1191
1223
  if (visibleGroups.length > 0) {
1192
1224
  const showIcon = !legendViewMode && tagGroups.length > 0;
@@ -1294,6 +1326,12 @@ function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargi
1294
1326
  width: tagGroupsW,
1295
1327
  mode: exportMode ? "export" : "preview",
1296
1328
  capsulePillAddonWidth: iconReserve,
1329
+ ...inlineHeader && {
1330
+ position: {
1331
+ placement: "top-center",
1332
+ titleRelation: "inline-with-title"
1333
+ }
1334
+ },
1297
1335
  ...controlsToggles.length > 0 && {
1298
1336
  controlsGroup: { toggles: controlsToggles }
1299
1337
  },
@@ -2105,4 +2143,4 @@ export {
2105
2143
  renderGantt,
2106
2144
  buildTagLaneRowList
2107
2145
  };
2108
- //# sourceMappingURL=chunk-VIRANCNY.js.map
2146
+ //# sourceMappingURL=chunk-FGAMFJNJ.js.map
@@ -13,7 +13,7 @@ import {
13
13
  LEGEND_TOGGLE_DOT_R,
14
14
  measureLegendText,
15
15
  truncateLegendText
16
- } from "./chunk-4RGZFA7H.js";
16
+ } from "./chunk-Q5IHQ4NW.js";
17
17
 
18
18
  // src/utils/number-format.ts
19
19
  function compactNumber(n) {
@@ -537,12 +537,33 @@ function getMaxLegendReservedHeight(config, containerWidth) {
537
537
  }
538
538
  return max;
539
539
  }
540
+ function getLegendExtent(config, state, containerWidth) {
541
+ const layout = computeLegendLayout(config, state, containerWidth);
542
+ let left = Infinity;
543
+ let right = 0;
544
+ let bottom = 0;
545
+ const track = (x, y, w, h) => {
546
+ left = Math.min(left, x);
547
+ right = Math.max(right, x + w);
548
+ bottom = Math.max(bottom, y + h);
549
+ };
550
+ if (layout.activeCapsule) {
551
+ const c = layout.activeCapsule;
552
+ track(c.x, c.y, c.width, c.height);
553
+ }
554
+ for (const pill of layout.pills) track(pill.x, pill.y, pill.width, pill.height);
555
+ return {
556
+ width: right - (left === Infinity ? 0 : left),
557
+ height: bottom || LEGEND_HEIGHT
558
+ };
559
+ }
540
560
 
541
561
  export {
542
562
  compactNumber,
543
563
  controlsGroupCapsuleWidth,
544
564
  computeLegendLayout,
545
565
  getLegendReservedHeight,
546
- getMaxLegendReservedHeight
566
+ getMaxLegendReservedHeight,
567
+ getLegendExtent
547
568
  };
548
- //# sourceMappingURL=chunk-774C2FF3.js.map
569
+ //# sourceMappingURL=chunk-GRXPFBYC.js.map
@@ -13,23 +13,25 @@ import {
13
13
  FONT_FAMILY
14
14
  } from "./chunk-6KFWC4CO.js";
15
15
  import {
16
- VARIANTS,
17
16
  allTasks
18
- } from "./chunk-ALYZ3MAA.js";
17
+ } from "./chunk-ZXNHHO6D.js";
19
18
  import {
20
- contrastText,
21
- mix,
22
- themeBaseBg
23
- } from "./chunk-JYDMBWRP.js";
19
+ VARIANTS
20
+ } from "./chunk-BEOAKGNA.js";
24
21
  import {
25
22
  measureText,
26
23
  truncateText,
27
24
  wrapTextToWidth
28
25
  } from "./chunk-4ASYQ347.js";
26
+ import {
27
+ contrastText,
28
+ mix,
29
+ themeBaseBg
30
+ } from "./chunk-JYDMBWRP.js";
29
31
  import {
30
32
  fillModeFromOptions,
31
33
  legendSuppressed
32
- } from "./chunk-YJVA3QUU.js";
34
+ } from "./chunk-A2ARDILY.js";
33
35
 
34
36
  // src/raci/renderer.ts
35
37
  import * as d3Selection from "d3-selection";
@@ -787,4 +789,4 @@ export {
787
789
  renderRaci,
788
790
  renderRaciForExport
789
791
  };
790
- //# sourceMappingURL=chunk-NNYFQOTK.js.map
792
+ //# sourceMappingURL=chunk-GTO5VCYG.js.map
@@ -6,13 +6,14 @@ import {
6
6
  } from "./chunk-6KFWC4CO.js";
7
7
  import {
8
8
  fixedParts,
9
+ fixedTimeCells,
9
10
  formatTime,
10
11
  handAngles,
11
12
  rampColor,
12
13
  sunLine,
13
14
  workStatus,
14
15
  zoneParts
15
- } from "./chunk-APKUAJ2L.js";
16
+ } from "./chunk-A2RUBBVT.js";
16
17
  import {
17
18
  contrastText,
18
19
  mix,
@@ -307,12 +308,12 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
307
308
  const baseY = center + 16;
308
309
  const capTop = baseY - mainFont * 0.7;
309
310
  const sf = 20;
310
- const mainW = [...ts.main].reduce(
311
- (w, c) => w + mainFont * (c === ":" ? 0.334 : 0.6),
312
- 0
313
- );
314
- const stackX = contentLeft + mainW + 5;
315
- g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("x", contentLeft).attr("y", baseY).attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight", 600).attr("textLength", mainW).attr("lengthAdjust", "spacing").style("font-variant-numeric", "tabular-nums").text(ts.main);
311
+ const gap = 5;
312
+ const { cells, width: mainW } = fixedTimeCells(ts.main, contentLeft, mainFont);
313
+ const stackX = contentLeft + mainW + gap;
314
+ const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight", 600).attr("data-dgmo-clock-x0", contentLeft).attr("data-dgmo-clock-fs", mainFont).attr("data-dgmo-clock-gap", gap);
315
+ for (const c of cells)
316
+ mainText.append("tspan").attr("x", c.x).text(c.ch);
316
317
  g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", capTop + sf * 0.72).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 600).style("font-variant-numeric", "tabular-nums").text(`:${ts.sec}`);
317
318
  if (ts.ap)
318
319
  g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 600).text(ts.ap);
@@ -471,14 +472,13 @@ function drawColumns(body, parsed, now, top, geom, col) {
471
472
  const gap = 11;
472
473
  const cap = 0.7;
473
474
  const tf = fitFont(ts.main, 54, innerW - 30 - gap, 20);
474
- const mainW = [...ts.main].reduce(
475
- (w, c) => w + tf * (c === ":" ? 0.334 : 0.6),
476
- 0
477
- );
475
+ const mainW = fixedTimeCells(ts.main, 0, tf).width;
478
476
  const stackW = Math.max(estWidth(`:${ts.sec}`, sf), estWidth(ts.ap, sf));
479
477
  const gLeft = cx - (mainW + gap + stackW) / 2;
480
478
  const baseY = cy + tf * 0.34;
481
- g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("x", gLeft).attr("y", baseY).attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight", 600).attr("textLength", mainW).attr("lengthAdjust", "spacing").style("font-variant-numeric", "tabular-nums").text(ts.main);
479
+ const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight", 600).attr("data-dgmo-clock-x0", gLeft).attr("data-dgmo-clock-fs", tf).attr("data-dgmo-clock-gap", gap);
480
+ for (const c of fixedTimeCells(ts.main, gLeft, tf).cells)
481
+ mainText.append("tspan").attr("x", c.x).text(c.ch);
482
482
  const stackX = gLeft + mainW + gap;
483
483
  g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", baseY - tf * cap + sf * cap).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 500).text(`:${ts.sec}`);
484
484
  if (ts.ap)
@@ -558,4 +558,4 @@ export {
558
558
  renderClock,
559
559
  renderClockForExport
560
560
  };
561
- //# sourceMappingURL=chunk-RJ5LBZ5U.js.map
561
+ //# sourceMappingURL=chunk-HES4K6DV.js.map
@@ -31,18 +31,18 @@ import {
31
31
  FONT_FAMILY
32
32
  } from "./chunk-6KFWC4CO.js";
33
33
  import {
34
- contrastText,
35
- shapeFill
36
- } from "./chunk-JYDMBWRP.js";
34
+ parseFlowchart
35
+ } from "./chunk-ZWVKTWK6.js";
37
36
  import {
38
37
  measureText
39
38
  } from "./chunk-4ASYQ347.js";
40
39
  import {
41
- parseFlowchart
42
- } from "./chunk-JTMSWEIW.js";
40
+ contrastText,
41
+ shapeFill
42
+ } from "./chunk-JYDMBWRP.js";
43
43
  import {
44
44
  fillModeFromOptions
45
- } from "./chunk-YJVA3QUU.js";
45
+ } from "./chunk-A2ARDILY.js";
46
46
 
47
47
  // src/graph/flowchart-renderer.ts
48
48
  import * as d3Selection from "d3-selection";
@@ -582,4 +582,4 @@ export {
582
582
  renderFlowchart,
583
583
  renderFlowchartForExport
584
584
  };
585
- //# sourceMappingURL=chunk-AZNXGWDC.js.map
585
+ //# sourceMappingURL=chunk-HGKOVKAX.js.map
@@ -12,7 +12,7 @@ import {
12
12
  fillModeFromToken,
13
13
  measureIndent,
14
14
  parseFirstLine
15
- } from "./chunk-YJVA3QUU.js";
15
+ } from "./chunk-A2ARDILY.js";
16
16
  import {
17
17
  makeDgmoError,
18
18
  makeFail
@@ -546,4 +546,4 @@ export {
546
546
  targetToMs2 as targetToMs,
547
547
  parseCountdown
548
548
  };
549
- //# sourceMappingURL=chunk-DWUMPMV2.js.map
549
+ //# sourceMappingURL=chunk-HLGOG44K.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-CMVZWP32.js";
11
+ } from "./chunk-JR7Q6GHE.js";
12
12
  import {
13
13
  JOURNEY_MAP_REGISTRY,
14
14
  OPTION_NOCOLON_RE,
@@ -19,7 +19,7 @@ import {
19
19
  splitNameAndMeta,
20
20
  warnUnknownMetaKeys,
21
21
  withTagAliases
22
- } from "./chunk-YJVA3QUU.js";
22
+ } from "./chunk-A2ARDILY.js";
23
23
  import {
24
24
  resolveColorWithDiagnostic
25
25
  } from "./chunk-ZKPPI6BF.js";
@@ -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-VJHBSPGF.js.map
408
+ //# sourceMappingURL=chunk-HUTP35XT.js.map
@@ -10,7 +10,7 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-CMVZWP32.js";
13
+ } from "./chunk-JR7Q6GHE.js";
14
14
  import {
15
15
  MINDMAP_REGISTRY,
16
16
  OPTION_NOCOLON_RE,
@@ -22,7 +22,7 @@ import {
22
22
  tryParseSharedOption,
23
23
  warnUnknownMetaKeys,
24
24
  withTagAliases
25
- } from "./chunk-YJVA3QUU.js";
25
+ } from "./chunk-A2ARDILY.js";
26
26
  import {
27
27
  formatDgmoError,
28
28
  makeDgmoError,
@@ -323,4 +323,4 @@ function findMetadataParent(indent, indentStack) {
323
323
  export {
324
324
  parseMindmap
325
325
  };
326
- //# sourceMappingURL=chunk-3CZLWOCI.js.map
326
+ //# sourceMappingURL=chunk-HX7QNHC6.js.map
@@ -15,18 +15,18 @@ import {
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-6KFWC4CO.js";
18
+ import {
19
+ CHAR_WIDTH_RATIO,
20
+ measureText
21
+ } from "./chunk-4ASYQ347.js";
18
22
  import {
19
23
  contrastText,
20
24
  getSeriesColors,
21
25
  shapeFill
22
26
  } from "./chunk-JYDMBWRP.js";
23
- import {
24
- CHAR_WIDTH_RATIO,
25
- measureText
26
- } from "./chunk-4ASYQ347.js";
27
27
  import {
28
28
  fillModeFromOptions
29
- } from "./chunk-YJVA3QUU.js";
29
+ } from "./chunk-A2ARDILY.js";
30
30
  import {
31
31
  resolveColor
32
32
  } from "./chunk-ZKPPI6BF.js";
@@ -296,4 +296,4 @@ export {
296
296
  renderRing,
297
297
  renderRingForExport
298
298
  };
299
- //# sourceMappingURL=chunk-R5NH5BZG.js.map
299
+ //# sourceMappingURL=chunk-IALX52TR.js.map
@@ -387,6 +387,19 @@ function collapseGroups(parsed, collapsedIds, defaultLatencyMs = 0, defaultUptim
387
387
  }
388
388
  function resolveSplits(outbound, diagnostics) {
389
389
  if (outbound.length === 0) return [];
390
+ const async = outbound.filter((e) => e.async);
391
+ if (async.length > 0) {
392
+ const sync = outbound.filter((e) => !e.async);
393
+ const asyncResolved = async.map((e) => ({
394
+ edge: e,
395
+ split: e.split ?? 100
396
+ }));
397
+ const syncResolved = resolveSplits(sync, diagnostics);
398
+ const byEdge = /* @__PURE__ */ new Map();
399
+ for (const r of [...asyncResolved, ...syncResolved])
400
+ byEdge.set(r.edge, r.split);
401
+ return outbound.filter((e) => byEdge.has(e)).map((e) => ({ edge: e, split: byEdge.get(e) }));
402
+ }
390
403
  if (outbound.length === 1) {
391
404
  return [{ edge: outbound[0], split: 100 }];
392
405
  }
@@ -494,8 +507,9 @@ function computeInfra(parsed, params = {}) {
494
507
  const computedLatency = /* @__PURE__ */ new Map();
495
508
  const computedUptime = /* @__PURE__ */ new Map();
496
509
  const localAvailability = /* @__PURE__ */ new Map();
510
+ const defaultRps = parseFloat(parsed.options["default-rps"] ?? "") || 0;
497
511
  const edgeNode = effectiveParsed.nodes.find((n) => n.isEdge);
498
- const baseRps = params.rps ?? (edgeNode ? getNumProp(edgeNode, "rps", 0) : 0);
512
+ const baseRps = params.rps ?? (edgeNode ? getNumProp(edgeNode, "rps", defaultRps) : 0);
499
513
  if (edgeNode) {
500
514
  computedRps.set(edgeNode.id, baseRps);
501
515
  computedLatency.set(edgeNode.id, 0);
@@ -540,13 +554,14 @@ function computeInfra(parsed, params = {}) {
540
554
  } else {
541
555
  targetIds = [edge.targetId];
542
556
  }
557
+ const edgeDownstreamLatency = edge.async ? 0 : downstreamLatency;
543
558
  for (const targetId of targetIds) {
544
559
  const perTarget = fanoutedRps / targetIds.length;
545
560
  const existing = computedRps.get(targetId) ?? 0;
546
561
  computedRps.set(targetId, existing + perTarget);
547
562
  const prevLatency = computedLatency.get(targetId) ?? 0;
548
- if (downstreamLatency > prevLatency) {
549
- computedLatency.set(targetId, downstreamLatency);
563
+ if (edgeDownstreamLatency > prevLatency) {
564
+ computedLatency.set(targetId, edgeDownstreamLatency);
550
565
  }
551
566
  const prevUptime = computedUptime.get(targetId) ?? 1;
552
567
  if (cumulativeUptime < prevUptime) {
@@ -630,7 +645,8 @@ function computeInfra(parsed, params = {}) {
630
645
  const coldStartMs = isServerless(node) ? getNumProp(node, "cold-start-ms", 0) : 0;
631
646
  const coldLatency = nodeLatency + coldStartMs;
632
647
  const outbound = outboundMap.get(nodeId) ?? [];
633
- if (outbound.length === 0) {
648
+ const syncOutbound = outbound.filter((e) => !e.async);
649
+ if (syncOutbound.length === 0) {
634
650
  const rps = computedRps.get(nodeId) ?? 0;
635
651
  let result;
636
652
  if (rps <= 0) {
@@ -663,7 +679,7 @@ function computeInfra(parsed, params = {}) {
663
679
  nodeLeafCache.set(nodeId, result);
664
680
  return result;
665
681
  }
666
- const resolved = resolveSplits(outbound, []);
682
+ const resolved = resolveSplits(outbound, []).filter((r) => !r.edge.async);
667
683
  const paths = [];
668
684
  for (const { edge, split } of resolved) {
669
685
  const fanout = edge.fanout != null && edge.fanout >= 1 ? edge.fanout : 1;
@@ -879,17 +895,7 @@ function computeInfra(parsed, params = {}) {
879
895
  const edgeKey = `${edge.sourceId}->${edge.targetId}`;
880
896
  const rps = computedEdgeRps.get(edgeKey) ?? 0;
881
897
  const outbound = outboundMap.get(edge.sourceId) ?? [];
882
- let resolvedSplit = edge.split ?? 100;
883
- if (outbound.length > 1 && edge.split === null) {
884
- const declared = outbound.filter((e) => e.split !== null);
885
- if (declared.length === 0) {
886
- resolvedSplit = 100 / outbound.length;
887
- } else {
888
- const declaredSum = declared.reduce((s, e) => s + (e.split ?? 0), 0);
889
- const undeclared = outbound.filter((e) => e.split === null);
890
- resolvedSplit = undeclared.length > 0 ? (100 - declaredSum) / undeclared.length : 0;
891
- }
892
- }
898
+ const resolvedSplit = resolveSplits(outbound, []).find((r) => r.edge === edge)?.split ?? edge.split ?? 100;
893
899
  return {
894
900
  sourceId: edge.sourceId,
895
901
  targetId: edge.targetId,
@@ -920,4 +926,4 @@ function computeInfra(parsed, params = {}) {
920
926
  export {
921
927
  computeInfra
922
928
  };
923
- //# sourceMappingURL=chunk-A44USUV7.js.map
929
+ //# sourceMappingURL=chunk-ICZ7M6IZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
- MAP_DIRECTIVE_KEY_SET
3
- } from "./chunk-6DCOIN4W.js";
2
+ parseInArrowLabel
3
+ } from "./chunk-WF64MW5G.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
6
  finalizeAutoTagColors,
@@ -8,18 +8,16 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-CMVZWP32.js";
12
- import {
13
- parseInArrowLabel
14
- } from "./chunk-WF64MW5G.js";
11
+ } from "./chunk-JR7Q6GHE.js";
15
12
  import {
13
+ MAP_DIRECTIVE_KEY_SET,
16
14
  MAP_REGISTRY,
17
15
  extractColor,
18
16
  measureIndent,
19
17
  peelRampColors,
20
18
  splitNameAndMeta,
21
19
  withTagAliases
22
- } from "./chunk-YJVA3QUU.js";
20
+ } from "./chunk-A2ARDILY.js";
23
21
  import {
24
22
  formatDgmoError,
25
23
  makeDgmoError
@@ -272,6 +270,10 @@ function parseMap(content, palette) {
272
270
  case "no-legend":
273
271
  d.noLegend = true;
274
272
  break;
273
+ // §1.9 universal — accepted so it doesn't parse as a region; map renders no
274
+ // one-line header, so render.ts emits the "not supported" warning.
275
+ case "legend-inline":
276
+ break;
275
277
  case "no-coastline":
276
278
  d.noCoastline = true;
277
279
  break;
@@ -635,4 +637,4 @@ export {
635
637
  looksLikeMap,
636
638
  parseMap
637
639
  };
638
- //# sourceMappingURL=chunk-27STWBOK.js.map
640
+ //# sourceMappingURL=chunk-IF4KYSJZ.js.map