@diagrammo/dgmo 0.52.0 → 0.54.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 (339) hide show
  1. package/.cursorrules +59 -58
  2. package/.github/copilot-instructions.md +59 -58
  3. package/.windsurfrules +59 -58
  4. package/SKILL.md +59 -58
  5. package/dist/advanced.d.ts +101 -230
  6. package/dist/advanced.js +330 -658
  7. package/dist/analyzer-TDN5KJFP.js +15 -0
  8. package/dist/auto.css +14 -6
  9. package/dist/auto.js +163 -139
  10. package/dist/auto.mjs +1859 -885
  11. package/dist/block.css +14 -6
  12. package/dist/block.js +96 -81
  13. package/dist/calculator-VBIT6GQF.js +11 -0
  14. package/dist/chart-meta-CPNVUZ5J.d.ts +232 -0
  15. package/dist/chart-meta.d.ts +2 -0
  16. package/dist/chart-meta.js +108 -0
  17. package/dist/charts-d3-25E4VWXO.js +27 -0
  18. package/dist/chunk-2CW5ZTNH.js +58 -0
  19. package/dist/{chunk-BPY242XU.js → chunk-2NYXI35Z.js} +32 -14
  20. package/dist/{chunk-AUIM2NVH.js → chunk-2NZOHEP4.js} +7 -8
  21. package/dist/{chunk-HFMYN6N2.js → chunk-3B2GXZCX.js} +4 -3
  22. package/dist/chunk-3FRO35WW.js +1158 -0
  23. package/dist/{chunk-J7TLCB2Q.js → chunk-3IUHKMJI.js} +2 -2
  24. package/dist/{chunk-R3YSD62R.js → chunk-3KHJJP3J.js} +3 -3
  25. package/dist/{chunk-6LBQ7ELG.js → chunk-3SBHODJ4.js} +36 -17
  26. package/dist/{chunk-4UNQ6X24.js → chunk-3SEEP2JM.js} +4 -4
  27. package/dist/{chunk-7L4UJOY6.js → chunk-3TYUXC7D.js} +2 -2
  28. package/dist/{chunk-Y2ZE3MSG.js → chunk-43E26CDA.js} +2 -2
  29. package/dist/{chunk-CCNDLW7Z.js → chunk-47JNEKJA.js} +9 -9
  30. package/dist/{chunk-WCT3NYCV.js → chunk-4ASYQ347.js} +33 -8
  31. package/dist/{chunk-I5IGB56C.js → chunk-4QV26TEG.js} +41 -1
  32. package/dist/{chunk-INE5YJBZ.js → chunk-4T6OCSJ2.js} +8 -8
  33. package/dist/{chunk-CXK4DZH3.js → chunk-4W2PE66Q.js} +12 -2
  34. package/dist/{chunk-7KINELPI.js → chunk-4ZIKWVSQ.js} +17 -16
  35. package/dist/{chunk-JED6ZDEE.js → chunk-5HWPEYWB.js} +2 -2
  36. package/dist/{chunk-HWX6ZHF3.js → chunk-5VXU6MND.js} +6 -6
  37. package/dist/{chunk-44VCIPHF.js → chunk-5XSNLXU5.js} +23 -20
  38. package/dist/{chunk-4AQRFDXL.js → chunk-62Y27T4C.js} +2 -2
  39. package/dist/{chunk-QHXCAEMX.js → chunk-6KL7TFLS.js} +5 -5
  40. package/dist/{chunk-5BHJZH62.js → chunk-6OYDOQ2Q.js} +18 -6
  41. package/dist/{chunk-5HILBT7X.js → chunk-7JDTNFAK.js} +3 -3
  42. package/dist/{chunk-JRCOYRRH.js → chunk-7K6NDSXH.js} +9 -9
  43. package/dist/{chunk-5NGAO4QK.js → chunk-7SP4C6EV.js} +11 -11
  44. package/dist/{chunk-I46X5VUA.js → chunk-7TF3QOOD.js} +25 -1
  45. package/dist/{chunk-WRNFDFPU.js → chunk-7U4OR7CD.js} +2 -2
  46. package/dist/{chunk-5RP7JRVP.js → chunk-7UPFTBOW.js} +21 -17
  47. package/dist/{chunk-AAXZDUOV.js → chunk-A3BDLDYG.js} +17 -16
  48. package/dist/{chunk-GCYTI3DE.js → chunk-ADCHLNWT.js} +56 -10
  49. package/dist/{chunk-QBZYACOG.js → chunk-ADYKAKE3.js} +3 -3
  50. package/dist/{chunk-HHKO6SKY.js → chunk-AHTTKERF.js} +3 -3
  51. package/dist/{chunk-BKVOYV6I.js → chunk-AJFHNS67.js} +15 -15
  52. package/dist/{chunk-EMLPOL77.js → chunk-AQEYUVGJ.js} +124 -41
  53. package/dist/{chunk-3LK5DNED.js → chunk-B4XS2AF2.js} +3 -3
  54. package/dist/{chunk-REJAIQ5S.js → chunk-B7N5KYXQ.js} +16 -16
  55. package/dist/chunk-BEOAKGNA.js +484 -0
  56. package/dist/{chunk-SMRFPVLQ.js → chunk-BM7MG6HT.js} +4 -4
  57. package/dist/{chunk-P3NRSSUU.js → chunk-BULHGPHK.js} +3 -3
  58. package/dist/{chunk-QZX5S6R3.js → chunk-BWYFIVZF.js} +149 -89
  59. package/dist/{chunk-UBLHQTLV.js → chunk-BZJIITYM.js} +11 -10
  60. package/dist/{chunk-PRI2OD4E.js → chunk-C2UORMIA.js} +11 -6
  61. package/dist/{chunk-3YRPZ7ZZ.js → chunk-CCGWX6AO.js} +4 -4
  62. package/dist/{chunk-H7KENAZO.js → chunk-COJW2NEY.js} +73 -13
  63. package/dist/{chunk-WBRZJOEC.js → chunk-COVYNAKJ.js} +6 -6
  64. package/dist/{chunk-7QE3XMRK.js → chunk-CSHFU6LT.js} +13 -13
  65. package/dist/{chunk-6EJITS44.js → chunk-DLU643TF.js} +7 -7
  66. package/dist/{chunk-LBMS4AW6.js → chunk-DPGQ5UMO.js} +14 -14
  67. package/dist/{chunk-LTXOLDUZ.js → chunk-EAI6XJ7D.js} +12 -5
  68. package/dist/{chunk-FT3ZYWET.js → chunk-EPRF3ZRV.js} +11 -10
  69. package/dist/chunk-EQOMY4PY.js +404 -0
  70. package/dist/{chunk-USZW2HHU.js → chunk-EQW6HOP4.js} +4 -3
  71. package/dist/{chunk-HBPDFCQY.js → chunk-F7XM366V.js} +10 -9
  72. package/dist/{chunk-DYWQFQJP.js → chunk-FFVFZLRT.js} +57 -24
  73. package/dist/{chunk-77FGAVZC.js → chunk-FR6UFVSV.js} +19 -17
  74. package/dist/{chunk-MUE65OTD.js → chunk-FVMKCZHF.js} +8 -6
  75. package/dist/{chunk-3QD7VP3U.js → chunk-GK32ZFZY.js} +17 -10
  76. package/dist/{chunk-TJVLKNGR.js → chunk-GKYHWJXI.js} +5 -5
  77. package/dist/{chunk-FQMUHRVC.js → chunk-GQ5ECRP4.js} +13 -10
  78. package/dist/{chunk-5QKQSSPO.js → chunk-GRM2A4BG.js} +4 -4
  79. package/dist/{chunk-OTOHI4JO.js → chunk-H3HFC3SQ.js} +2 -2
  80. package/dist/{chunk-BPIZNB5O.js → chunk-HAA25PLC.js} +10 -10
  81. package/dist/{chunk-YIBAWQGJ.js → chunk-HFEOOQ46.js} +4 -4
  82. package/dist/{chunk-J76PIKAT.js → chunk-HO3RCNF6.js} +3 -3
  83. package/dist/{chunk-7DF4J4RL.js → chunk-I47VHSPS.js} +19 -13
  84. package/dist/{chunk-5SEVICBT.js → chunk-ICKXIMBA.js} +10 -9
  85. package/dist/{chunk-A44USUV7.js → chunk-ICZ7M6IZ.js} +23 -17
  86. package/dist/{chunk-SWSIKFEB.js → chunk-IOIMQHQ6.js} +4 -4
  87. package/dist/{chunk-6HQH6JZE.js → chunk-IYNKLCAZ.js} +7 -7
  88. package/dist/{chunk-YAA6IID3.js → chunk-J7HQPVYH.js} +2 -2
  89. package/dist/{chunk-WBM7ZNDI.js → chunk-JYDMBWRP.js} +35 -18
  90. package/dist/{chunk-ZJV7GYR4.js → chunk-KBVOVDYP.js} +8 -8
  91. package/dist/{chunk-ICPJPQ5C.js → chunk-KDK5EKUR.js} +3 -3
  92. package/dist/{chunk-FHGVORFO.js → chunk-KINOX74I.js} +12 -12
  93. package/dist/{chunk-XD6ZYURY.js → chunk-KQ3FNRGR.js} +7 -14
  94. package/dist/{chunk-3HGU63UY.js → chunk-KQYQECWQ.js} +17 -16
  95. package/dist/{chunk-MUVJ57EP.js → chunk-KS5ZSM5T.js} +20 -17
  96. package/dist/{chunk-FY5MSZAP.js → chunk-KV4HLIJE.js} +21 -6
  97. package/dist/{chunk-LGT3PZCJ.js → chunk-LPJ6H5X4.js} +17 -17
  98. package/dist/{chunk-ONU3U4GL.js → chunk-LRSW4JLE.js} +52 -16
  99. package/dist/{chunk-TPFKKXCB.js → chunk-M24VXUFG.js} +7 -7
  100. package/dist/{chunk-QJMKPUYK.js → chunk-M3H7ZE6C.js} +21 -14
  101. package/dist/{chunk-QVENJMNX.js → chunk-MEQYZZFR.js} +2 -2
  102. package/dist/{chunk-75G3Q4DK.js → chunk-MTZOXISJ.js} +9 -9
  103. package/dist/{chunk-J7KJR3R6.js → chunk-N7BSBAVP.js} +133 -696
  104. package/dist/{chunk-VQOCMUWI.js → chunk-NUTWTV6G.js} +13 -11
  105. package/dist/{chunk-7BIZCTAX.js → chunk-O576GYAP.js} +3 -3
  106. package/dist/{chunk-H6PI3KJT.js → chunk-ODUT5WMC.js} +2 -2
  107. package/dist/{chunk-AL672HNE.js → chunk-OJ435DQZ.js} +17 -7
  108. package/dist/{chunk-3HF5YEFJ.js → chunk-OR3R27CU.js} +4 -4
  109. package/dist/{chunk-QGATPIPX.js → chunk-OSXQKC3S.js} +35 -23
  110. package/dist/{chunk-FUPF2UYQ.js → chunk-PIXZTCKH.js} +51 -108
  111. package/dist/{chunk-QOOUC2J5.js → chunk-Q5IHQ4NW.js} +12 -2
  112. package/dist/{chunk-4IHAV6O7.js → chunk-QBYP2FBZ.js} +10 -478
  113. package/dist/{chunk-GU46PPT3.js → chunk-QXGACPS2.js} +5 -5
  114. package/dist/{chunk-FMDSF3OV.js → chunk-QZAW5SFH.js} +2 -2
  115. package/dist/{chunk-YTMTPUH4.js → chunk-R5BGGBFF.js} +4 -4
  116. package/dist/{chunk-KGVZ5VGH.js → chunk-RIEAN4D5.js} +16 -12
  117. package/dist/{chunk-5223KXFD.js → chunk-RJ5LBZ5U.js} +7 -7
  118. package/dist/{chunk-K4EOKJA6.js → chunk-RRGKMJYL.js} +45 -18
  119. package/dist/{chunk-TTIM6YTT.js → chunk-S7FOIURR.js} +14 -13
  120. package/dist/{chunk-IM6PDDCE.js → chunk-S7YFT3PO.js} +78 -23
  121. package/dist/{chunk-ZEF5M5MB.js → chunk-SBOAZ7YK.js} +82 -296
  122. package/dist/{chunk-6NYWYNBI.js → chunk-SSHS42QG.js} +6 -6
  123. package/dist/{chunk-NNS4E7CW.js → chunk-T3FAJAJT.js} +18 -9
  124. package/dist/{chunk-ROOE4R4Y.js → chunk-T7Y554OK.js} +146 -18
  125. package/dist/chunk-TGOMHUOV.js +218 -0
  126. package/dist/{chunk-K2I2XOZD.js → chunk-TJN2OIVG.js} +30 -15
  127. package/dist/{chunk-VILVLS7P.js → chunk-TLNVYWPA.js} +8 -4
  128. package/dist/{chunk-GJFAMOGK.js → chunk-U4IN6AHE.js} +7 -7
  129. package/dist/chunk-U7VO6JAA.js +566 -0
  130. package/dist/{chunk-MX2EY5Y7.js → chunk-UEU6IYKY.js} +2 -2
  131. package/dist/{chunk-J6QROYDA.js → chunk-UIT7E6UF.js} +26 -10
  132. package/dist/{chunk-Z72XRXD4.js → chunk-UJRTPOHH.js} +3 -3
  133. package/dist/{chunk-TYS6CSS5.js → chunk-UU6LUYUH.js} +2 -2
  134. package/dist/{chunk-VL2O2F3W.js → chunk-VHO3YBTB.js} +2 -2
  135. package/dist/{chunk-4YFKQ5WT.js → chunk-VMSBMIHW.js} +5 -5
  136. package/dist/{chunk-Z5QVYKR7.js → chunk-VQFDBNYF.js} +4 -4
  137. package/dist/{chunk-UNURMIQO.js → chunk-W6PCFRPL.js} +4 -4
  138. package/dist/{chunk-FFUN5D66.js → chunk-WF64MW5G.js} +2 -2
  139. package/dist/{chunk-T4A4TSTJ.js → chunk-WKNAJ4BR.js} +20 -18
  140. package/dist/{chunk-CIRFIL4M.js → chunk-WW4BQ744.js} +11 -11
  141. package/dist/{chunk-ARGMQ3H4.js → chunk-WWHECSYZ.js} +3 -3
  142. package/dist/{chunk-ZNWAYU6N.js → chunk-XWODFBHJ.js} +73 -18
  143. package/dist/{chunk-HQQNCY7W.js → chunk-YENNFS5F.js} +10 -10
  144. package/dist/{chunk-TLVIHFRO.js → chunk-ZKPPI6BF.js} +2 -2
  145. package/dist/cli.cjs +173 -157
  146. package/dist/clock.js +9 -1
  147. package/dist/completion-registry.d.ts +129 -0
  148. package/dist/completion-registry.js +1270 -0
  149. package/dist/{compute-G55RG53N.js → compute-JAP5E2E4.js} +2 -2
  150. package/dist/countdown.js +4 -3
  151. package/dist/dgmo-router-TGZWFIZO.js +88 -0
  152. package/dist/dimensions-L6BXQXXL.js +22 -0
  153. package/dist/editor.js +51 -5
  154. package/dist/element.js +163 -139
  155. package/dist/element.mjs +1859 -885
  156. package/dist/flowchart-parser-UKYOW3VM.js +21 -0
  157. package/dist/{flowchart-renderer-MNCDS7MV.js → flowchart-renderer-DCFKUDDR.js} +16 -16
  158. package/dist/highlight.js +55 -6
  159. package/dist/index.d.ts +4 -2
  160. package/dist/index.js +89 -81
  161. package/dist/layout-25Y3VDYF.js +19 -0
  162. package/dist/layout-4SPLI4HG.js +15 -0
  163. package/dist/layout-5XGYNYVT.js +9 -0
  164. package/dist/{layout-OAC4PEAC.js → layout-A6OIGZN2.js} +7 -7
  165. package/dist/layout-AZUPXWSK.js +15 -0
  166. package/dist/{layout-F4WO357A.js → layout-CAAKQX4W.js} +3 -3
  167. package/dist/{layout-A5UHRWVH.js → layout-CB3XWCOI.js} +3 -3
  168. package/dist/layout-CH4HFFRD.js +15 -0
  169. package/dist/layout-G2ABQJQZ.js +20 -0
  170. package/dist/{layout-7QXCNOVS.js → layout-HBWT2G23.js} +3 -3
  171. package/dist/{layout-2L3WMRYU.js → layout-ITLPDG6M.js} +9 -8
  172. package/dist/layout-NF4EWFLT.js +17 -0
  173. package/dist/layout-NY7MHJCL.js +15 -0
  174. package/dist/layout-QBNAMEOA.js +19 -0
  175. package/dist/layout-SP7HJWKA.js +17 -0
  176. package/dist/{layout-search-55FU6HD3.js → layout-search-LUI475P3.js} +56 -35
  177. package/dist/legend-constants-B77VKB3R.js +54 -0
  178. package/dist/{palettes-UDLZ2SA4.js → palettes-FGTNFARW.js} +4 -4
  179. package/dist/parser-2UWWNTFL.js +12 -0
  180. package/dist/parser-3RXYQSA7.js +18 -0
  181. package/dist/parser-5C3PEZK3.js +11 -0
  182. package/dist/parser-66RYGJRB.js +20 -0
  183. package/dist/parser-6GN5YJBJ.js +13 -0
  184. package/dist/parser-6MQM7WT3.js +15 -0
  185. package/dist/{parser-DQAFLUJB.js → parser-7UI6UQ7B.js} +7 -7
  186. package/dist/parser-B2A7XOAK.js +12 -0
  187. package/dist/parser-CCNJKDDA.js +16 -0
  188. package/dist/parser-ESHNUFME.js +13 -0
  189. package/dist/parser-F4FEU57T.js +11 -0
  190. package/dist/parser-FHRMFUNX.js +15 -0
  191. package/dist/parser-FPCWDYQV.js +13 -0
  192. package/dist/parser-FY3YFFBS.js +20 -0
  193. package/dist/parser-GML6V2KZ.js +14 -0
  194. package/dist/parser-HA3PF5FL.js +15 -0
  195. package/dist/parser-KTYF6WO5.js +11 -0
  196. package/dist/{parser-ZL5QUFVH.js → parser-LTA2BOZO.js} +5 -5
  197. package/dist/parser-LU7UAKNB.js +13 -0
  198. package/dist/parser-MHKYQPC2.js +11 -0
  199. package/dist/parser-MVSYFK63.js +17 -0
  200. package/dist/parser-O7YQYFEN.js +15 -0
  201. package/dist/parser-OPIXXUY4.js +21 -0
  202. package/dist/parser-S4EJPNVN.js +19 -0
  203. package/dist/parser-T3D7BV6O.js +11 -0
  204. package/dist/{parser-YKYMQG3B.js → parser-VVE4THG3.js} +6 -6
  205. package/dist/parser-WPPJGB4R.js +12 -0
  206. package/dist/parser-X5XLFY4Z.js +22 -0
  207. package/dist/parser-XCPMEB2Z.js +11 -0
  208. package/dist/parser-XRDUX2AR.js +14 -0
  209. package/dist/parser-YPWYT46P.js +16 -0
  210. package/dist/parser-YULS5MLD.js +13 -0
  211. package/dist/pert.d.ts +2 -0
  212. package/dist/registry-CaSw0PSH.d.ts +350 -0
  213. package/dist/renderer-2DME63VZ.js +16 -0
  214. package/dist/renderer-3VY3VXJE.js +37 -0
  215. package/dist/renderer-4A32DX5L.js +24 -0
  216. package/dist/renderer-4K5YYX5R.js +28 -0
  217. package/dist/renderer-6CFML5G3.js +22 -0
  218. package/dist/renderer-7HMZ5OCJ.js +16 -0
  219. package/dist/renderer-7ZNVOVFG.js +16 -0
  220. package/dist/{renderer-CQY6ATOS.js → renderer-B7Y6I7JX.js} +9 -8
  221. package/dist/renderer-C3RI4OPJ.js +33 -0
  222. package/dist/renderer-CJ56SUMF.js +26 -0
  223. package/dist/renderer-COJZZ4F6.js +25 -0
  224. package/dist/renderer-FXMGCSRP.js +26 -0
  225. package/dist/{renderer-HSHHVYWF.js → renderer-G4UOW3RH.js} +7 -7
  226. package/dist/renderer-HQ4JFZOV.js +27 -0
  227. package/dist/{renderer-NHO46CT2.js → renderer-K7XLVPH5.js} +6 -6
  228. package/dist/{renderer-ZWIH4WDW.js → renderer-LHVCKEWF.js} +13 -13
  229. package/dist/renderer-OZX5KGQM.js +21 -0
  230. package/dist/{renderer-3F7OS2AX.js → renderer-P3YQES7B.js} +16 -16
  231. package/dist/renderer-PLVIARM7.js +24 -0
  232. package/dist/renderer-RA4PTAMF.js +19 -0
  233. package/dist/renderer-RMAM2SOJ.js +28 -0
  234. package/dist/renderer-SES7QZYL.js +37 -0
  235. package/dist/renderer-TQ5QDZOE.js +22 -0
  236. package/dist/renderer-V5SNTPAM.js +27 -0
  237. package/dist/{renderer-5DAKMIU2.js → renderer-WCWI4I6A.js} +5 -5
  238. package/dist/renderer-WVD6G2TS.js +34 -0
  239. package/dist/{renderer-DT4XRFEP.js → renderer-X2LYSMLU.js} +7 -7
  240. package/dist/renderer-Y3NXZINM.js +24 -0
  241. package/dist/{renderer-KNFTTOBL.js → renderer-YEFOOULC.js} +14 -14
  242. package/dist/renderer-YP3P6UVT.js +24 -0
  243. package/dist/renderer-YVMETH6V.js +29 -0
  244. package/dist/renderer-Z4GNKNXO.js +24 -0
  245. package/dist/renderer-radial-VYBZAXXE.js +21 -0
  246. package/dist/{resolver-EMTGNR3D.js → resolver-WFKZYBJ2.js} +4 -4
  247. package/dist/state-parser-VIW2WNA5.js +19 -0
  248. package/dist/state-renderer-H22AQD3U.js +38 -0
  249. package/dist/{themes-32xj5ZTW.d.ts → themes-tbBkIVsn.d.ts} +2 -349
  250. package/docs/ai-integration.md +59 -58
  251. package/docs/language-reference.md +323 -286
  252. package/fonts/Inter-Bold.woff2 +0 -0
  253. package/fonts/Inter-Regular.woff2 +0 -0
  254. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +1 -2
  255. package/gallery/fixtures/boxes-and-lines.dgmo +1 -1
  256. package/gallery/fixtures/clock.dgmo +1 -1
  257. package/gallery/fixtures/event-line.dgmo +1 -1
  258. package/gallery/fixtures/gantt-full.dgmo +1 -1
  259. package/gallery/fixtures/gantt-sprints.dgmo +9 -9
  260. package/gallery/fixtures/gantt.dgmo +1 -1
  261. package/gallery/fixtures/legacy-syntax-backcompat.dgmo +16 -0
  262. package/gallery/fixtures/state-tags.dgmo +40 -0
  263. package/gallery/fixtures/swimlane.dgmo +1 -1
  264. package/gallery/fixtures/timeline-intraday.dgmo +1 -1
  265. package/package.json +9 -1
  266. package/dist/analyzer-BJ54GIFB.js +0 -15
  267. package/dist/calculator-LDYQCDDY.js +0 -11
  268. package/dist/charts-d3-MXEP6BNP.js +0 -26
  269. package/dist/chunk-BRENJ2BQ.js +0 -714
  270. package/dist/chunk-FQ7HTV52.js +0 -364
  271. package/dist/dgmo-router-X7ZGAPIE.js +0 -86
  272. package/dist/dimensions-45H6JQEY.js +0 -22
  273. package/dist/flowchart-parser-UKELHBSB.js +0 -21
  274. package/dist/layout-46N4JJYK.js +0 -17
  275. package/dist/layout-A4XWNVID.js +0 -14
  276. package/dist/layout-AM2JWW3X.js +0 -15
  277. package/dist/layout-EE6GE46Y.js +0 -17
  278. package/dist/layout-G23F7LDH.js +0 -9
  279. package/dist/layout-GM4UGR7B.js +0 -19
  280. package/dist/layout-GQQJXNYH.js +0 -15
  281. package/dist/layout-IIE2S5FK.js +0 -20
  282. package/dist/layout-VMCRX66I.js +0 -14
  283. package/dist/layout-ZDOSXL5G.js +0 -19
  284. package/dist/parser-2ECN6JA2.js +0 -16
  285. package/dist/parser-4WTIHM5J.js +0 -11
  286. package/dist/parser-5H2BTSJQ.js +0 -11
  287. package/dist/parser-75KVXUNS.js +0 -16
  288. package/dist/parser-774AC53T.js +0 -13
  289. package/dist/parser-BE4YCSRU.js +0 -11
  290. package/dist/parser-CNGUQUQI.js +0 -11
  291. package/dist/parser-DEUUSQIN.js +0 -22
  292. package/dist/parser-EYCKNKQA.js +0 -21
  293. package/dist/parser-FXISIU6A.js +0 -14
  294. package/dist/parser-GTB4XC7P.js +0 -18
  295. package/dist/parser-GVEPAUSD.js +0 -12
  296. package/dist/parser-HSQGTY4G.js +0 -19
  297. package/dist/parser-HVKRINUS.js +0 -11
  298. package/dist/parser-J5MIEYO4.js +0 -15
  299. package/dist/parser-KMZIXLDZ.js +0 -13
  300. package/dist/parser-LJHXWSXU.js +0 -14
  301. package/dist/parser-PT3W72G5.js +0 -15
  302. package/dist/parser-SBJQDPHL.js +0 -15
  303. package/dist/parser-SUWWWCMX.js +0 -12
  304. package/dist/parser-SXDRNZOA.js +0 -13
  305. package/dist/parser-UMILOW3M.js +0 -14
  306. package/dist/parser-UP3AZ367.js +0 -13
  307. package/dist/parser-WHPRV3X5.js +0 -20
  308. package/dist/parser-WX3UODSJ.js +0 -12
  309. package/dist/parser-XCIEN3KN.js +0 -13
  310. package/dist/parser-XIRTUMVN.js +0 -18
  311. package/dist/parser-YKCGIG45.js +0 -11
  312. package/dist/parser-ZGM2OJ6Y.js +0 -22
  313. package/dist/renderer-4QB4K7Q3.js +0 -24
  314. package/dist/renderer-5H4SY7YY.js +0 -22
  315. package/dist/renderer-5PIQPFOX.js +0 -16
  316. package/dist/renderer-6MU37QF5.js +0 -19
  317. package/dist/renderer-AQVMWJ4M.js +0 -27
  318. package/dist/renderer-BDDW6K7N.js +0 -24
  319. package/dist/renderer-BNB3VIDY.js +0 -26
  320. package/dist/renderer-CVW75CXL.js +0 -37
  321. package/dist/renderer-ERHBSTQT.js +0 -25
  322. package/dist/renderer-IDPVUFNB.js +0 -28
  323. package/dist/renderer-ILX6BGKR.js +0 -21
  324. package/dist/renderer-JP663HKG.js +0 -22
  325. package/dist/renderer-MVUZBESR.js +0 -16
  326. package/dist/renderer-N4EBR2FV.js +0 -28
  327. package/dist/renderer-NO2QJ5LZ.js +0 -27
  328. package/dist/renderer-OGFV5RXX.js +0 -34
  329. package/dist/renderer-PDLESJMS.js +0 -37
  330. package/dist/renderer-T4MTNINC.js +0 -24
  331. package/dist/renderer-TOUGFGTM.js +0 -24
  332. package/dist/renderer-U3KPD43Y.js +0 -34
  333. package/dist/renderer-X334IJU2.js +0 -26
  334. package/dist/renderer-Y5OAMOCR.js +0 -23
  335. package/dist/renderer-YONAKAJU.js +0 -16
  336. package/dist/renderer-YWMI6Y2U.js +0 -29
  337. package/dist/renderer-radial-7CGZMVMS.js +0 -21
  338. package/dist/state-parser-BATWAID2.js +0 -18
  339. package/dist/state-renderer-3FKZJ3LP.js +0 -34
@@ -1,9 +1,9 @@
1
+ import {
2
+ renderNodeCard
3
+ } from "./chunk-H3HFC3SQ.js";
1
4
  import {
2
5
  renderInlineText
3
6
  } from "./chunk-3HDBAXF5.js";
4
- import {
5
- renderNodeCard
6
- } from "./chunk-OTOHI4JO.js";
7
7
  import {
8
8
  CARD_RADIUS,
9
9
  COLLAPSE_BAR_HEIGHT,
@@ -25,10 +25,10 @@ import {
25
25
  } from "./chunk-YYVTBZZC.js";
26
26
  import {
27
27
  renderIntegratedLegend
28
- } from "./chunk-AUIM2NVH.js";
28
+ } from "./chunk-2NZOHEP4.js";
29
29
  import {
30
30
  getMaxLegendReservedHeight
31
- } from "./chunk-YAA6IID3.js";
31
+ } from "./chunk-J7HQPVYH.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
@@ -36,6 +36,9 @@ import {
36
36
  import {
37
37
  FONT_FAMILY
38
38
  } from "./chunk-6KFWC4CO.js";
39
+ import {
40
+ preprocessDescriptionLine
41
+ } from "./chunk-IYULMRBE.js";
39
42
  import {
40
43
  EYE_CLOSED_PATH,
41
44
  EYE_OPEN_PATH,
@@ -43,25 +46,23 @@ import {
43
46
  LEGEND_EYE_SIZE,
44
47
  LEGEND_GROUP_GAP,
45
48
  LEGEND_HEIGHT
46
- } from "./chunk-QOOUC2J5.js";
49
+ } from "./chunk-Q5IHQ4NW.js";
47
50
  import {
48
51
  measureText
49
- } from "./chunk-WCT3NYCV.js";
50
- import {
51
- preprocessDescriptionLine
52
- } from "./chunk-IYULMRBE.js";
52
+ } from "./chunk-4ASYQ347.js";
53
53
  import {
54
54
  contrastText,
55
55
  mix,
56
56
  shapeFill,
57
57
  themeBaseBg
58
- } from "./chunk-WBM7ZNDI.js";
58
+ } from "./chunk-JYDMBWRP.js";
59
59
  import {
60
60
  tagAttrKey
61
- } from "./chunk-HHKO6SKY.js";
61
+ } from "./chunk-AHTTKERF.js";
62
62
  import {
63
- fillModeFromOptions
64
- } from "./chunk-BRENJ2BQ.js";
63
+ fillModeFromOptions,
64
+ legendSuppressed
65
+ } from "./chunk-3FRO35WW.js";
65
66
 
66
67
  // src/sitemap/renderer.ts
67
68
  import * as d3Selection from "d3-selection";
@@ -114,7 +115,9 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
114
115
  const sTitleHeight = ctx.structural(TITLE_HEIGHT);
115
116
  const sCollapseBarHeight = ctx.structural(COLLAPSE_BAR_HEIGHT);
116
117
  const sLegendFixedGap = ctx.aesthetic(LEGEND_FIXED_GAP);
117
- const hasLegend = layout.legend.length > 0;
118
+ const noLegend = legendSuppressed(parsed.options);
119
+ const hasLegend = layout.legend.length > 0 && !noLegend;
120
+ const suppressedLegendBand = layout.legend.length > 0 && noLegend;
118
121
  const layoutLegendShift = LEGEND_HEIGHT + LEGEND_GROUP_GAP;
119
122
  const showTitle = !!parsed.title && parsed.options["no-title"] !== "on";
120
123
  const fixedLegend = !exportDims && hasLegend;
@@ -140,7 +143,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
140
143
  const titleOffset = !fixedTitle && showTitle ? sTitleHeight : 0;
141
144
  const diagramW = layout.width;
142
145
  let diagramH = layout.height + titleOffset;
143
- if (fixedLegend) {
146
+ if (fixedLegend || suppressedLegendBand) {
144
147
  diagramH -= layoutLegendShift;
145
148
  }
146
149
  const availH = height - sDiagramPadding * 2 - fixedReserveTop - fixedReserveBottom;
@@ -404,9 +407,9 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
404
407
  }
405
408
  }
406
409
  async function renderSitemapForExport(content, theme, palette) {
407
- const { parseSitemap } = await import("./parser-2ECN6JA2.js");
408
- const { layoutSitemap } = await import("./layout-A4XWNVID.js");
409
- const { getPalette } = await import("./palettes-UDLZ2SA4.js");
410
+ const { parseSitemap } = await import("./parser-CCNJKDDA.js");
411
+ const { layoutSitemap } = await import("./layout-4SPLI4HG.js");
412
+ const { getPalette } = await import("./palettes-FGTNFARW.js");
410
413
  const isDark = theme === "dark";
411
414
  const effectivePalette = palette ?? (isDark ? getPalette("nord").dark : getPalette("nord").light);
412
415
  const parsed = parseSitemap(content, effectivePalette);
@@ -455,4 +458,4 @@ export {
455
458
  renderSitemap,
456
459
  renderSitemapForExport
457
460
  };
458
- //# sourceMappingURL=chunk-44VCIPHF.js.map
461
+ //# sourceMappingURL=chunk-5XSNLXU5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildMapProjection
3
- } from "./chunk-ZJV7GYR4.js";
3
+ } from "./chunk-KBVOVDYP.js";
4
4
  import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_Y
@@ -51,4 +51,4 @@ export {
51
51
  mapContentAspect,
52
52
  mapExportDimensions
53
53
  };
54
- //# sourceMappingURL=chunk-4AQRFDXL.js.map
54
+ //# sourceMappingURL=chunk-62Y27T4C.js.map
@@ -18,18 +18,18 @@ import {
18
18
  import {
19
19
  CHAR_WIDTH_RATIO,
20
20
  measureText
21
- } from "./chunk-WCT3NYCV.js";
21
+ } from "./chunk-4ASYQ347.js";
22
22
  import {
23
23
  contrastText,
24
24
  getSeriesColors,
25
25
  shapeFill
26
- } from "./chunk-WBM7ZNDI.js";
26
+ } from "./chunk-JYDMBWRP.js";
27
27
  import {
28
28
  fillModeFromOptions
29
- } from "./chunk-BRENJ2BQ.js";
29
+ } from "./chunk-3FRO35WW.js";
30
30
  import {
31
31
  resolveColor
32
- } from "./chunk-TLVIHFRO.js";
32
+ } from "./chunk-ZKPPI6BF.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-QHXCAEMX.js.map
299
+ //# sourceMappingURL=chunk-6KL7TFLS.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  mix
3
- } from "./chunk-WBM7ZNDI.js";
3
+ } from "./chunk-JYDMBWRP.js";
4
4
  import {
5
5
  resolveTagColor,
6
6
  tagAttrKey
7
- } from "./chunk-HHKO6SKY.js";
7
+ } from "./chunk-AHTTKERF.js";
8
8
  import {
9
9
  resolveColor
10
- } from "./chunk-TLVIHFRO.js";
10
+ } from "./chunk-ZKPPI6BF.js";
11
11
 
12
12
  // src/treemap/treemap-shared.ts
13
13
  import { scaleLinear } from "d3-scale";
@@ -19,12 +19,23 @@ function depthTint(hue, depth, bg) {
19
19
  }
20
20
  function resolveColorMode(parsed, override) {
21
21
  let mode = override ?? parsed.defaultColorMode;
22
+ if (mode === "heat" && !parsed.hasHeat) {
23
+ mode = parsed.tagGroups.length > 0 ? "tag" : "branch";
24
+ }
22
25
  if (mode === "tag" && parsed.tagGroups.length === 0) {
23
26
  mode = parsed.hasHeat ? "heat" : "branch";
24
27
  }
25
- if (mode === "heat" && !parsed.hasHeat) mode = "branch";
26
28
  return mode;
27
29
  }
30
+ function activeTagGroupOf(parsed) {
31
+ if (parsed.tagGroups.length === 0) return null;
32
+ const at = parsed.activeTag?.trim().toLowerCase();
33
+ if (at) {
34
+ const g = parsed.tagGroups.find((x) => x.name.toLowerCase() === at);
35
+ if (g) return g;
36
+ }
37
+ return parsed.tagGroups[0];
38
+ }
28
39
  function resolveCellColor(cell, ctx) {
29
40
  if (ctx.mode === "heat") {
30
41
  return cell.heat !== void 0 && ctx.heat ? ctx.heat.scale(cell.heat) : MUTED_FILL;
@@ -112,7 +123,7 @@ function buildLegend(activeMode, parsed, heat, seriesColors, colorOffset) {
112
123
  const modeByName = /* @__PURE__ */ new Map();
113
124
  let activeGroup = null;
114
125
  if (parsed.tagGroups.length > 0) {
115
- const tg = parsed.tagGroups[0];
126
+ const tg = activeTagGroupOf(parsed);
116
127
  const used = /* @__PURE__ */ new Set();
117
128
  const collect = (nodes) => {
118
129
  for (const n of nodes) {
@@ -158,10 +169,11 @@ function buildLegend(activeMode, parsed, heat, seriesColors, colorOffset) {
158
169
 
159
170
  export {
160
171
  resolveColorMode,
172
+ activeTagGroupOf,
161
173
  resolveCellColor,
162
174
  buildHeatScale,
163
175
  compactNumber,
164
176
  formatPct,
165
177
  buildLegend
166
178
  };
167
- //# sourceMappingURL=chunk-5BHJZH62.js.map
179
+ //# sourceMappingURL=chunk-6OYDOQ2Q.js.map
@@ -8,10 +8,10 @@ import {
8
8
  } from "./chunk-6KFWC4CO.js";
9
9
  import {
10
10
  getSeriesColors
11
- } from "./chunk-WBM7ZNDI.js";
11
+ } from "./chunk-JYDMBWRP.js";
12
12
  import {
13
13
  resolveColor
14
- } from "./chunk-TLVIHFRO.js";
14
+ } from "./chunk-ZKPPI6BF.js";
15
15
 
16
16
  // src/version-control/renderer.ts
17
17
  import * as d3Selection from "d3-selection";
@@ -399,4 +399,4 @@ export {
399
399
  renderVersionControl,
400
400
  renderVersionControlForExport
401
401
  };
402
- //# sourceMappingURL=chunk-5HILBT7X.js.map
402
+ //# sourceMappingURL=chunk-7JDTNFAK.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  renderIntegratedLegend
3
- } from "./chunk-AUIM2NVH.js";
3
+ } from "./chunk-2NZOHEP4.js";
4
+ import {
5
+ FONT_FAMILY
6
+ } from "./chunk-6KFWC4CO.js";
4
7
  import {
5
8
  getFigure,
6
9
  getPartGeom,
7
10
  resolvePartKey
8
11
  } from "./chunk-BDXC7MDK.js";
9
- import {
10
- FONT_FAMILY
11
- } from "./chunk-6KFWC4CO.js";
12
12
  import {
13
13
  getSeriesColors,
14
14
  mix,
15
15
  themeBaseBg
16
- } from "./chunk-WBM7ZNDI.js";
16
+ } from "./chunk-JYDMBWRP.js";
17
17
  import {
18
18
  resolveActiveTagGroup,
19
19
  resolveTagColor,
20
20
  tagAttrKey
21
- } from "./chunk-HHKO6SKY.js";
21
+ } from "./chunk-AHTTKERF.js";
22
22
  import {
23
23
  resolveColor
24
- } from "./chunk-TLVIHFRO.js";
24
+ } from "./chunk-ZKPPI6BF.js";
25
25
 
26
26
  // src/body/renderer.ts
27
27
  import * as d3Selection from "d3-selection";
@@ -114,7 +114,7 @@ function renderFigureBody(fig, view, parts, partColor, emphKey, form, palette, i
114
114
  out += `<path${dataLine} d="${d}" fill="${color}" fill-opacity="0.5" stroke="${color}" stroke-width="1.5"/>`;
115
115
  }
116
116
  } else {
117
- const lightFill = mix(color, palette.bg, 70);
117
+ const lightFill = mix(color, themeBaseBg(palette, isDark), 25);
118
118
  for (const d of paths) {
119
119
  out += `<path${dataLine} d="${d}" fill="${lightFill}" stroke="${color}" stroke-width="1.5"/>`;
120
120
  }
@@ -334,4 +334,4 @@ export {
334
334
  renderBody,
335
335
  renderBodyForExport
336
336
  };
337
- //# sourceMappingURL=chunk-JRCOYRRH.js.map
337
+ //# sourceMappingURL=chunk-7K6NDSXH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
- MAP_DIRECTIVE_KEY_SET
3
- } from "./chunk-FQ7HTV52.js";
2
+ parseInArrowLabel
3
+ } from "./chunk-WF64MW5G.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
6
  finalizeAutoTagColors,
@@ -8,22 +8,20 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-HHKO6SKY.js";
12
- import {
13
- parseInArrowLabel
14
- } from "./chunk-FFUN5D66.js";
11
+ } from "./chunk-AHTTKERF.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-BRENJ2BQ.js";
20
+ } from "./chunk-3FRO35WW.js";
23
21
  import {
24
22
  formatDgmoError,
25
23
  makeDgmoError
26
- } from "./chunk-CXK4DZH3.js";
24
+ } from "./chunk-4W2PE66Q.js";
27
25
 
28
26
  // src/map/parser.ts
29
27
  var COORD_RE = /^[+-]?\d+(?:\.\d+)?\s+[+-]?\d+(?:\.\d+)?$/;
@@ -300,12 +298,14 @@ function parseMap(content, palette) {
300
298
  d.noClusterPois = true;
301
299
  break;
302
300
  // ── Clock channel (BL-122). Activation is the per-POI `clock` flag (see
303
- // handlePoi); `hours`/`days` are the global availability window, stored
304
- // raw and parsed at resolve. ──
301
+ // handlePoi); `hours`/`workweek` are the global availability window,
302
+ // stored raw and parsed at resolve. `days` is the legacy alias for
303
+ // `workweek` (decision #48). ──
305
304
  case "hours":
306
305
  dup(d.clockHours);
307
306
  d.clockHours = value;
308
307
  break;
308
+ case "workweek":
309
309
  case "days":
310
310
  dup(d.clockDays);
311
311
  d.clockDays = value;
@@ -633,4 +633,4 @@ export {
633
633
  looksLikeMap,
634
634
  parseMap
635
635
  };
636
- //# sourceMappingURL=chunk-5NGAO4QK.js.map
636
+ //# sourceMappingURL=chunk-7SP4C6EV.js.map
@@ -33,6 +33,30 @@ A
33
33
 
34
34
  Orphan
35
35
  latency-ms: 20
36
+ `
37
+ },
38
+ INFRA_SPLIT_SUM: {
39
+ // src/infra/parser.ts — makeDgmoError(..., 'warning', 'W_INFRA_SPLIT_SUM')
40
+ code: "W_INFRA_SPLIT_SUM",
41
+ severity: "warning",
42
+ chartType: "infra",
43
+ title: "Infra splits do not sum to 100%",
44
+ message: (p) => `Sync splits from '${String(p.label ?? "")}' sum to ${String(
45
+ p.sum ?? ""
46
+ )}%, not 100% \u2014 the traffic leaving a node must add up to the traffic entering it, so the computed downstream RPS will be wrong. Async ('~>') edges are derived streams and are excluded from this sum.`,
47
+ hint: "Adjust the split percentages so the sync edges from this node total 100%, or drop them and let dgmo split evenly.",
48
+ example: `infra
49
+
50
+ edge
51
+ rps: 1000
52
+ -> LB
53
+
54
+ LB
55
+ -> A split: 50%
56
+ -> B split: 30%
57
+
58
+ A
59
+ B
36
60
  `
37
61
  },
38
62
  FLOWCHART_NODE_SUFFIX: {
@@ -56,4 +80,4 @@ export {
56
80
  GRAPH_DX,
57
81
  GRAPH_DIAGNOSTICS
58
82
  };
59
- //# sourceMappingURL=chunk-I46X5VUA.js.map
83
+ //# sourceMappingURL=chunk-7TF3QOOD.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  NODE_HEIGHT,
3
3
  NODE_WIDTH
4
- } from "./chunk-7DF4J4RL.js";
4
+ } from "./chunk-I47VHSPS.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-WRNFDFPU.js.map
692
+ //# sourceMappingURL=chunk-7U4OR7CD.js.map
@@ -1,25 +1,25 @@
1
- import {
2
- AUTO_TAG_COLOR_SENTINEL,
3
- finalizeAutoTagColors,
4
- injectDefaultTagMetadata,
5
- matchTagBlockHeading,
6
- stripDefaultModifier,
7
- tagAttrKey,
8
- validateTagGroupNames,
9
- validateTagValues
10
- } from "./chunk-HHKO6SKY.js";
11
1
  import {
12
2
  tryCollectNote
13
- } from "./chunk-ARGMQ3H4.js";
3
+ } from "./chunk-WWHECSYZ.js";
14
4
  import {
15
5
  resolveNotes
16
- } from "./chunk-FMDSF3OV.js";
6
+ } from "./chunk-QZAW5SFH.js";
17
7
  import {
18
8
  parseInArrowLabel
19
- } from "./chunk-FFUN5D66.js";
9
+ } from "./chunk-WF64MW5G.js";
20
10
  import {
21
11
  normalizeName
22
12
  } from "./chunk-NOTA6TEI.js";
13
+ import {
14
+ AUTO_TAG_COLOR_SENTINEL,
15
+ finalizeAutoTagColors,
16
+ injectDefaultTagMetadata,
17
+ matchTagBlockHeading,
18
+ stripDefaultModifier,
19
+ tagAttrKey,
20
+ validateTagGroupNames,
21
+ validateTagValues
22
+ } from "./chunk-AHTTKERF.js";
23
23
  import {
24
24
  BOXES_AND_LINES_REGISTRY,
25
25
  OPTION_NOCOLON_RE,
@@ -30,11 +30,11 @@ import {
30
30
  tryParseSharedOption,
31
31
  warnUnknownMetaKeys,
32
32
  withTagAliases
33
- } from "./chunk-BRENJ2BQ.js";
33
+ } from "./chunk-3FRO35WW.js";
34
34
  import {
35
35
  makeDgmoError,
36
36
  suggest
37
- } from "./chunk-CXK4DZH3.js";
37
+ } from "./chunk-4W2PE66Q.js";
38
38
 
39
39
  // src/boxes-and-lines/parser.ts
40
40
  var MAX_GROUP_DEPTH = 2;
@@ -172,7 +172,7 @@ function parseBoxesAndLines(content, palette) {
172
172
  continue;
173
173
  }
174
174
  if (indent === 0) {
175
- const dirMatch = trimmed.match(/^direction\s+(TB|LR)$/i);
175
+ const dirMatch = trimmed.match(/^direction[-\s]+(TB|LR)$/i);
176
176
  if (dirMatch) {
177
177
  result.direction = dirMatch[1].toUpperCase();
178
178
  continue;
@@ -204,6 +204,10 @@ function parseBoxesAndLines(content, palette) {
204
204
  if (low !== void 0) result.boxMetricLowColor = low;
205
205
  continue;
206
206
  }
207
+ if (/^no-value$/i.test(trimmed)) {
208
+ result.showValues = false;
209
+ continue;
210
+ }
207
211
  if (/^show-values$/i.test(trimmed)) {
208
212
  result.showValues = true;
209
213
  continue;
@@ -829,4 +833,4 @@ export {
829
833
  looksLikeBoxesAndLines,
830
834
  parseBoxesAndLines
831
835
  };
832
- //# sourceMappingURL=chunk-5RP7JRVP.js.map
836
+ //# sourceMappingURL=chunk-7UPFTBOW.js.map
@@ -1,17 +1,17 @@
1
- import {
2
- layoutClassDiagram
3
- } from "./chunk-WBRZJOEC.js";
4
1
  import {
5
2
  NOTE_BADGE_RADIUS,
6
3
  noteConnectorPoints,
7
4
  renderNoteBadge,
8
5
  renderNoteBox,
9
6
  renderNoteConnector
10
- } from "./chunk-J7TLCB2Q.js";
7
+ } from "./chunk-3IUHKMJI.js";
11
8
  import {
12
9
  extractExportSvg,
13
10
  runInExportContainer
14
11
  } from "./chunk-JTSMEYIZ.js";
12
+ import {
13
+ layoutClassDiagram
14
+ } from "./chunk-COVYNAKJ.js";
15
15
  import {
16
16
  EDGE_STROKE_WIDTH,
17
17
  NODE_STROKE_WIDTH
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-YYVTBZZC.js";
22
22
  import {
23
23
  renderIntegratedLegend
24
- } from "./chunk-AUIM2NVH.js";
24
+ } from "./chunk-2NZOHEP4.js";
25
25
  import {
26
26
  TITLE_FONT_SIZE,
27
27
  TITLE_FONT_WEIGHT,
@@ -30,22 +30,23 @@ import {
30
30
  import {
31
31
  FONT_FAMILY
32
32
  } from "./chunk-6KFWC4CO.js";
33
+ import {
34
+ parseClassDiagram
35
+ } from "./chunk-M24VXUFG.js";
33
36
  import {
34
37
  LEGEND_HEIGHT
35
- } from "./chunk-QOOUC2J5.js";
38
+ } from "./chunk-Q5IHQ4NW.js";
36
39
  import {
37
40
  measureText
38
- } from "./chunk-WCT3NYCV.js";
41
+ } from "./chunk-4ASYQ347.js";
39
42
  import {
40
43
  contrastText,
41
44
  shapeFill
42
- } from "./chunk-WBM7ZNDI.js";
43
- import {
44
- parseClassDiagram
45
- } from "./chunk-TPFKKXCB.js";
45
+ } from "./chunk-JYDMBWRP.js";
46
46
  import {
47
- fillModeFromOptions
48
- } from "./chunk-BRENJ2BQ.js";
47
+ fillModeFromOptions,
48
+ legendSuppressed
49
+ } from "./chunk-3FRO35WW.js";
49
50
 
50
51
  // src/class/renderer.ts
51
52
  import * as d3Selection from "d3-selection";
@@ -152,7 +153,7 @@ function renderClassDiagram(container, parsed, layout, palette, isDark, onClickI
152
153
  const sTitleY = ctx.structural(TITLE_Y);
153
154
  const sLegendHeight = ctx.structural(LEGEND_HEIGHT);
154
155
  const legendEntries = collectClassTypes(parsed);
155
- const hasLegend = legendEntries.length > 1;
156
+ const hasLegend = legendEntries.length > 1 && !legendSuppressed(parsed.options);
156
157
  const showTitle = !!parsed.title && parsed.options["no-title"] !== "on";
157
158
  const titleHeight = showTitle ? 40 : 0;
158
159
  const LEGEND_FIXED_GAP = 8;
@@ -380,7 +381,7 @@ function renderClassDiagramForExport(content, theme, palette) {
380
381
  const isDark = theme === "dark";
381
382
  const legendEntries = collectClassTypes(parsed);
382
383
  const EXPORT_LEGEND_GAP = 8;
383
- const legendReserve = legendEntries.length > 1 ? LEGEND_HEIGHT + EXPORT_LEGEND_GAP : 0;
384
+ const legendReserve = legendEntries.length > 1 && !legendSuppressed(parsed.options) ? LEGEND_HEIGHT + EXPORT_LEGEND_GAP : 0;
384
385
  const exportWidth = layout.width + DIAGRAM_PADDING * 2;
385
386
  const exportHeight = layout.height + DIAGRAM_PADDING * 2 + (parsed.title ? 40 : 0) + legendReserve;
386
387
  return runInExportContainer(exportWidth, exportHeight, (container) => {
@@ -408,4 +409,4 @@ export {
408
409
  renderClassDiagram,
409
410
  renderClassDiagramForExport
410
411
  };
411
- //# sourceMappingURL=chunk-AAXZDUOV.js.map
412
+ //# sourceMappingURL=chunk-A3BDLDYG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-PDKUANDZ.js";
5
5
  import {
6
6
  layoutGraph
7
- } from "./chunk-HFMYN6N2.js";
7
+ } from "./chunk-3B2GXZCX.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-J7TLCB2Q.js";
17
+ } from "./chunk-3IUHKMJI.js";
18
18
  import {
19
19
  EDGE_STROKE_WIDTH,
20
20
  NODE_STROKE_WIDTH
@@ -30,19 +30,19 @@ import {
30
30
  import {
31
31
  FONT_FAMILY
32
32
  } from "./chunk-6KFWC4CO.js";
33
+ import {
34
+ parseFlowchart
35
+ } from "./chunk-DLU643TF.js";
33
36
  import {
34
37
  measureText
35
- } from "./chunk-WCT3NYCV.js";
38
+ } from "./chunk-4ASYQ347.js";
36
39
  import {
37
40
  contrastText,
38
41
  shapeFill
39
- } from "./chunk-WBM7ZNDI.js";
40
- import {
41
- parseFlowchart
42
- } from "./chunk-6EJITS44.js";
42
+ } from "./chunk-JYDMBWRP.js";
43
43
  import {
44
44
  fillModeFromOptions
45
- } from "./chunk-BRENJ2BQ.js";
45
+ } from "./chunk-3FRO35WW.js";
46
46
 
47
47
  // src/graph/flowchart-renderer.ts
48
48
  import * as d3Selection from "d3-selection";
@@ -55,6 +55,14 @@ var ARROWHEAD_H = 7;
55
55
  var IO_SKEW = 15;
56
56
  var SUBROUTINE_INSET = 8;
57
57
  var DOC_WAVE_HEIGHT = 10;
58
+ function clipPointToDiamond(cx, cy, halfW, halfH, towardX, towardY) {
59
+ const dx = towardX - cx;
60
+ const dy = towardY - cy;
61
+ const denom = Math.abs(dx) / halfW + Math.abs(dy) / halfH;
62
+ if (denom === 0) return { x: cx, y: cy };
63
+ const s = 1 / denom;
64
+ return { x: cx + dx * s, y: cy + dy * s };
65
+ }
58
66
  function shapeDefaultColor(shape, palette, isEndTerminal, colorOff) {
59
67
  if (colorOff) return palette.textMuted;
60
68
  switch (shape) {
@@ -392,13 +400,51 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
392
400
  }
393
401
  const labelPosMap = /* @__PURE__ */ new Map();
394
402
  for (const lp of labelPositions) labelPosMap.set(lp.edgeIdx, lp);
403
+ const nodeGeom = /* @__PURE__ */ new Map();
404
+ for (const n of layout.nodes) {
405
+ nodeGeom.set(n.id, {
406
+ x: n.x,
407
+ y: n.y,
408
+ halfW: n.width / 2,
409
+ halfH: n.height / 2,
410
+ shape: n.shape
411
+ });
412
+ }
395
413
  for (let ei = 0; ei < layout.edges.length; ei++) {
396
414
  const edge = layout.edges[ei];
397
415
  if (edge.points.length < 2) continue;
398
416
  const edgeG = contentG.append("g").attr("class", "fc-edge-group").attr("data-line-number", String(edge.lineNumber)).attr("data-source", edge.source).attr("data-target", edge.target);
399
417
  const edgeColor = palette.textMuted;
400
418
  const markerId = "fc-arrow";
401
- const pathD = edgeSplinePath(edge.points);
419
+ let drawPoints = edge.points;
420
+ const src = nodeGeom.get(edge.source);
421
+ const tgt = nodeGeom.get(edge.target);
422
+ if (src?.shape === "decision" || tgt?.shape === "decision") {
423
+ const pts = edge.points.map((p) => ({ x: p.x, y: p.y }));
424
+ const last = pts.length - 1;
425
+ if (tgt?.shape === "decision") {
426
+ pts[last] = clipPointToDiamond(
427
+ tgt.x,
428
+ tgt.y,
429
+ tgt.halfW,
430
+ tgt.halfH,
431
+ pts[last - 1].x,
432
+ pts[last - 1].y
433
+ );
434
+ }
435
+ if (src?.shape === "decision") {
436
+ pts[0] = clipPointToDiamond(
437
+ src.x,
438
+ src.y,
439
+ src.halfW,
440
+ src.halfH,
441
+ pts[1].x,
442
+ pts[1].y
443
+ );
444
+ }
445
+ drawPoints = pts;
446
+ }
447
+ const pathD = edgeSplinePath(drawPoints);
402
448
  if (pathD) {
403
449
  edgeG.append("path").attr("d", pathD).attr("fill", "none").attr("stroke", edgeColor).attr("stroke-width", sEdgeStrokeWidth).attr("marker-end", `url(#${markerId})`).attr("class", "fc-edge");
404
450
  }
@@ -536,4 +582,4 @@ export {
536
582
  renderFlowchart,
537
583
  renderFlowchartForExport
538
584
  };
539
- //# sourceMappingURL=chunk-GCYTI3DE.js.map
585
+ //# sourceMappingURL=chunk-ADCHLNWT.js.map