@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
@@ -11,15 +11,18 @@ import {
11
11
  LEGEND_PILL_FONT_SIZE,
12
12
  LEGEND_PILL_PAD,
13
13
  measureLegendText
14
- } from "./chunk-QOOUC2J5.js";
14
+ } from "./chunk-Q5IHQ4NW.js";
15
15
  import {
16
16
  measureText
17
- } from "./chunk-WCT3NYCV.js";
17
+ } from "./chunk-4ASYQ347.js";
18
18
  import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-HHKO6SKY.js";
22
+ } from "./chunk-AHTTKERF.js";
23
+ import {
24
+ legendSuppressed
25
+ } from "./chunk-3FRO35WW.js";
23
26
 
24
27
  // src/org/layout.ts
25
28
  import { hierarchy, tree } from "d3-hierarchy";
@@ -183,7 +186,10 @@ function injectDefaultMetadata(roots, tagGroups) {
183
186
  function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expandAllLegend) {
184
187
  if (parsed.roots.length === 0) {
185
188
  const showEyeIcons2 = hiddenAttributes !== void 0;
186
- const legendGroups2 = computeLegendGroups(parsed.tagGroups, showEyeIcons2);
189
+ const legendGroups2 = computeLegendGroups(
190
+ legendSuppressed(parsed.options) ? [] : parsed.tagGroups,
191
+ showEyeIcons2
192
+ );
187
193
  if (legendGroups2.length === 0) {
188
194
  return {
189
195
  nodes: [],
@@ -211,6 +217,11 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
211
217
  height: cy - LEGEND_GROUP_GAP + MARGIN
212
218
  };
213
219
  }
220
+ const isLR = parsed.direction === "LR";
221
+ const depthExtent = (tn) => isLR ? tn.width : tn.height;
222
+ const crossExtent = (tn) => isLR ? tn.height : tn.width;
223
+ const ptToScreen = (ax, ay) => isLR ? { x: ay, y: ax } : { x: ax, y: ay };
224
+ const screenTopLeft = (ax, ay, w, h2) => isLR ? { left: ay, top: ax - h2 / 2 } : { left: ax - w / 2, top: ay };
214
225
  injectDefaultMetadata(parsed.roots, parsed.tagGroups);
215
226
  const subNodeLabel = parsed.options["sub-node-label"] ?? void 0;
216
227
  const showSubNodeCount = ["yes", "on"].includes(
@@ -257,6 +268,10 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
257
268
  for (const tn of allTreeNodes) {
258
269
  tn.width = maxWidth;
259
270
  }
271
+ const maxDepthExtent = isLR ? maxWidth : maxHeight;
272
+ const maxCrossExtent = isLR ? maxHeight : maxWidth;
273
+ const depthGap = V_GAP;
274
+ const crossGap = H_GAP;
260
275
  const leafStacks = /* @__PURE__ */ new Map();
261
276
  const collapseLeafContainers = (tn) => {
262
277
  for (const child of tn.children) collapseLeafContainers(child);
@@ -270,7 +285,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
270
285
  for (const child of tn.children) {
271
286
  child.width = maxW;
272
287
  }
273
- const totalH = tn.children.reduce((s, c) => s + c.height, 0) + (tn.children.length - 1) * STACK_V_GAP;
288
+ const stackDepth = tn.children.reduce((s, c) => s + depthExtent(c), 0) + (tn.children.length - 1) * STACK_V_GAP;
289
+ const stackCross = Math.max(...tn.children.map((c) => crossExtent(c)));
274
290
  tn.children = [
275
291
  {
276
292
  orgNode: {
@@ -283,8 +299,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
283
299
  lineNumber: 0
284
300
  },
285
301
  children: [],
286
- width: maxW,
287
- height: totalH
302
+ width: isLR ? stackDepth : stackCross,
303
+ height: isLR ? stackCross : stackDepth
288
304
  }
289
305
  ];
290
306
  }
@@ -293,8 +309,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
293
309
  centerHeavyChildren(root);
294
310
  const h = hierarchy(root, (d) => d.children);
295
311
  const treeLayout = tree().nodeSize([
296
- maxWidth + H_GAP,
297
- maxHeight + V_GAP
312
+ maxCrossExtent + crossGap,
313
+ maxDepthExtent + depthGap
298
314
  ]);
299
315
  treeLayout(h);
300
316
  {
@@ -303,16 +319,17 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
303
319
  for (const d of descendants) {
304
320
  if (d.data.orgNode.id.startsWith("__stack_")) continue;
305
321
  const cur = levelMaxHeight.get(d.depth) ?? 0;
306
- if (d.data.height > cur) levelMaxHeight.set(d.depth, d.data.height);
322
+ const ext = depthExtent(d.data);
323
+ if (ext > cur) levelMaxHeight.set(d.depth, ext);
307
324
  }
308
325
  const maxDepth = Math.max(...levelMaxHeight.keys(), 0);
309
326
  const compactedY = /* @__PURE__ */ new Map();
310
327
  const rootDepth = treeNodes.length === 1 ? 0 : 1;
311
328
  compactedY.set(rootDepth, 0);
312
329
  for (let d = rootDepth + 1; d <= maxDepth; d++) {
313
- const parentH = levelMaxHeight.get(d - 1) ?? maxHeight;
330
+ const parentH = levelMaxHeight.get(d - 1) ?? maxDepthExtent;
314
331
  const prevY = compactedY.get(d - 1) ?? 0;
315
- compactedY.set(d, prevY + parentH + V_GAP);
332
+ compactedY.set(d, prevY + parentH + depthGap);
316
333
  }
317
334
  for (const d of h.descendants()) {
318
335
  if (d.data.orgNode.id === "__virtual_root__") continue;
@@ -327,7 +344,7 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
327
344
  const actualLevelGap = childY - d.y;
328
345
  const metaCount = Object.keys(d.data.orgNode.metadata).length;
329
346
  const headerHeight = CONTAINER_LABEL_HEIGHT + metaCount * CONTAINER_META_LINE_HEIGHT;
330
- const desiredGap = headerHeight + 15;
347
+ const desiredGap = isLR ? CONTAINER_PAD_X : headerHeight + 15;
331
348
  const shiftUp = actualLevelGap - desiredGap;
332
349
  if (shiftUp <= 0) continue;
333
350
  const shift = (node) => {
@@ -345,10 +362,10 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
345
362
  if (d.data.orgNode.isContainer) continue;
346
363
  if (!d.children || d.children.length === 0) continue;
347
364
  if (!d.children.every((c) => c.data.orgNode.isContainer)) continue;
348
- const parentBottomY = d.y + d.data.height;
365
+ const parentBottomY = d.y + depthExtent(d.data);
349
366
  const firstChildY = Math.min(...d.children.map((c) => c.y));
350
367
  const currentGap = firstChildY - parentBottomY;
351
- const desiredGap = V_GAP * 0.6;
368
+ const desiredGap = depthGap * 0.6;
352
369
  const shiftUp = currentGap - desiredGap;
353
370
  if (shiftUp <= 0) continue;
354
371
  const shiftDown = (node) => {
@@ -365,8 +382,8 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
365
382
  }
366
383
  {
367
384
  const subtreeExtent = (node) => {
368
- let min = node.x - node.data.width / 2;
369
- let max = node.x + node.data.width / 2;
385
+ let min = node.x - crossExtent(node.data) / 2;
386
+ let max = node.x + crossExtent(node.data) / 2;
370
387
  if (node.children) {
371
388
  for (const child of node.children) {
372
389
  const childExt = subtreeExtent(child);
@@ -377,6 +394,10 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
377
394
  if (node.data.orgNode.isContainer) {
378
395
  min -= CONTAINER_PAD_X;
379
396
  max += CONTAINER_PAD_X;
397
+ if (isLR) {
398
+ const metaCount = Object.keys(node.data.orgNode.metadata).length;
399
+ min -= CONTAINER_LABEL_HEIGHT + metaCount * CONTAINER_META_LINE_HEIGHT;
400
+ }
380
401
  }
381
402
  return { minX: min, maxX: max };
382
403
  };
@@ -398,7 +419,7 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
398
419
  const positions = [0];
399
420
  for (let i = 1; i < children.length; i++) {
400
421
  const prevRight = positions[i - 1] + extents[i - 1].relRight;
401
- positions[i] = prevRight + H_GAP - extents[i].relLeft;
422
+ positions[i] = prevRight + crossGap - extents[i].relLeft;
402
423
  }
403
424
  const newCenter = (positions[0] + positions[positions.length - 1]) / 2;
404
425
  const centerShift = currentCenter - newCenter;
@@ -443,29 +464,33 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
443
464
  cx: d.x,
444
465
  cy: currentY
445
466
  });
446
- currentY += child.height + STACK_V_GAP;
467
+ currentY += depthExtent(child) + STACK_V_GAP;
447
468
  }
448
469
  }
470
+ const screenRect = (ax, ay, w, h2) => {
471
+ const { left, top } = screenTopLeft(ax, ay, w, h2);
472
+ return { left, top, right: left + w, bottom: top + h2 };
473
+ };
474
+ const growBBox = (r) => {
475
+ if (r.left < minX) minX = r.left;
476
+ if (r.right > maxX) maxX = r.right;
477
+ if (r.top < minY) minY = r.top;
478
+ if (r.bottom > maxY) maxY = r.bottom;
479
+ };
449
480
  for (const d of h.descendants()) {
450
481
  if (d.data.orgNode.id === "__virtual_root__") continue;
451
482
  if (d.data.orgNode.id.startsWith("__stack_")) continue;
452
- const w = d.data.width;
453
- const ht = d.data.height;
454
- const cx = d.x;
455
- const cy = d.y;
456
- if (cx - w / 2 < minX) minX = cx - w / 2;
457
- if (cx + w / 2 > maxX) maxX = cx + w / 2;
458
- if (cy < minY) minY = cy;
459
- if (cy + ht > maxY) maxY = cy + ht;
483
+ growBBox(screenRect(d.x, d.y, d.data.width, d.data.height));
460
484
  }
461
485
  for (const ec of expandedChildren) {
462
- if (ec.cx - ec.width / 2 < minX) minX = ec.cx - ec.width / 2;
463
- if (ec.cx + ec.width / 2 > maxX) maxX = ec.cx + ec.width / 2;
464
- if (ec.cy < minY) minY = ec.cy;
465
- if (ec.cy + ec.height > maxY) maxY = ec.cy + ec.height;
486
+ growBBox(screenRect(ec.cx, ec.cy, ec.width, ec.height));
466
487
  }
467
488
  const offsetX = -minX + MARGIN;
468
489
  const offsetY = -minY + MARGIN;
490
+ const placeCard = (ax, ay, w, h2) => {
491
+ const r = screenRect(ax, ay, w, h2);
492
+ return { x: r.left + offsetX + w / 2, y: r.top + offsetY };
493
+ };
469
494
  const subNodeKey = subNodeLabel ?? "Sub-node Count";
470
495
  for (const ec of expandedChildren) {
471
496
  const hc = hiddenCounts?.get(ec.orgNode.id);
@@ -488,14 +513,17 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
488
513
  isContainer: ec.orgNode.isContainer,
489
514
  lineNumber: ec.orgNode.lineNumber,
490
515
  ...ecColor !== void 0 && { color: ecColor },
491
- x: ec.cx + offsetX,
492
- y: ec.cy + offsetY,
516
+ ...placeCard(ec.cx, ec.cy, ec.width, ec.height),
493
517
  width: ec.width,
494
518
  height: ec.height,
495
519
  ...hc !== void 0 && { hiddenCount: hc },
496
520
  ...ecHasChildren !== void 0 && { hasChildren: ecHasChildren }
497
521
  });
498
522
  }
523
+ const placePoint = (ax, ay) => {
524
+ const p = ptToScreen(ax, ay);
525
+ return { x: p.x + offsetX, y: p.y + offsetY };
526
+ };
499
527
  const busGroups = /* @__PURE__ */ new Map();
500
528
  for (const d of h.descendants()) {
501
529
  if (d.data.orgNode.id === "__virtual_root__") continue;
@@ -503,8 +531,7 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
503
531
  const orgNode = d.data.orgNode;
504
532
  const w = d.data.width;
505
533
  const ht = d.data.height;
506
- const x = d.x + offsetX;
507
- const y = d.y + offsetY;
534
+ const { x, y } = placeCard(d.x, d.y, w, ht);
508
535
  const hc = hiddenCounts?.get(orgNode.id);
509
536
  const nodeMeta = filterMetadata(orgNode.metadata, hiddenAttributes);
510
537
  if (!orgNode.isContainer && showSubNodeCount && !(hc != null && hc > 0)) {
@@ -536,19 +563,16 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
536
563
  if (d.parent && d.parent.data.orgNode.id !== "__virtual_root__" && !parentIsContainerBox) {
537
564
  const parentId = d.parent.data.orgNode.id;
538
565
  if (!busGroups.has(parentId)) {
539
- const px = d.parent.x + offsetX;
540
- const py = d.parent.y + offsetY;
541
- const parentH = d.parent.data.height;
542
566
  busGroups.set(parentId, {
543
- parentX: px,
544
- parentBottomY: py + parentH,
567
+ parentX: d.parent.x,
568
+ parentBottomY: d.parent.y + depthExtent(d.parent.data),
545
569
  children: []
546
570
  });
547
571
  }
548
572
  busGroups.get(parentId).children.push({
549
573
  id: orgNode.id,
550
- x,
551
- topY: y
574
+ x: d.x,
575
+ topY: d.y
552
576
  });
553
577
  }
554
578
  }
@@ -561,10 +585,10 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
561
585
  sourceId: parentId,
562
586
  targetId: child.id,
563
587
  points: [
564
- { x: parentX, y: parentBottomY },
565
- { x: parentX, y: midY },
566
- { x: child.x, y: midY },
567
- { x: child.x, y: child.topY }
588
+ placePoint(parentX, parentBottomY),
589
+ placePoint(parentX, midY),
590
+ placePoint(child.x, midY),
591
+ placePoint(child.x, child.topY)
568
592
  ]
569
593
  });
570
594
  } else {
@@ -575,27 +599,18 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
575
599
  layoutEdges.push({
576
600
  sourceId: parentId,
577
601
  targetId: parentId,
578
- points: [
579
- { x: parentX, y: parentBottomY },
580
- { x: parentX, y: midY }
581
- ]
602
+ points: [placePoint(parentX, parentBottomY), placePoint(parentX, midY)]
582
603
  });
583
604
  layoutEdges.push({
584
605
  sourceId: parentId,
585
606
  targetId: parentId,
586
- points: [
587
- { x: leftX, y: midY },
588
- { x: rightX, y: midY }
589
- ]
607
+ points: [placePoint(leftX, midY), placePoint(rightX, midY)]
590
608
  });
591
609
  for (const child of children) {
592
610
  layoutEdges.push({
593
611
  sourceId: parentId,
594
612
  targetId: child.id,
595
- points: [
596
- { x: child.x, y: midY },
597
- { x: child.x, y: child.topY }
598
- ]
613
+ points: [placePoint(child.x, midY), placePoint(child.x, child.topY)]
599
614
  });
600
615
  }
601
616
  }
@@ -608,8 +623,6 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
608
623
  const EMPTY_CONTAINER_MIN_HEIGHT = 60;
609
624
  for (const d of allContainerNodes) {
610
625
  if (d.children && d.children.length > 0) continue;
611
- const cx = d.x + offsetX;
612
- const cy = d.y + offsetY;
613
626
  const metaCount = Object.keys(d.data.orgNode.metadata).length;
614
627
  const labelHeight = CONTAINER_LABEL_HEIGHT + metaCount * CONTAINER_META_LINE_HEIGHT;
615
628
  const boxWidth = d.data.width;
@@ -617,8 +630,9 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
617
630
  labelHeight + CONTAINER_PAD_BOTTOM,
618
631
  EMPTY_CONTAINER_MIN_HEIGHT
619
632
  );
620
- const boxX = cx - boxWidth / 2;
621
- const boxY = cy;
633
+ const emptyTL = screenTopLeft(d.x, d.y, boxWidth, boxHeight);
634
+ const boxX = emptyTL.left + offsetX;
635
+ const boxY = emptyTL.top + offsetY;
622
636
  containerBoundsMap.set(d.data.orgNode.id, {
623
637
  minX: boxX,
624
638
  maxX: boxX + boxWidth,
@@ -667,46 +681,79 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
667
681
  if (allDesc.length === 0) continue;
668
682
  let descMinX = Infinity;
669
683
  let descMaxX = -Infinity;
684
+ let descMinY = Infinity;
670
685
  let descMaxY = -Infinity;
686
+ const growDesc = (left, top, right, bottom) => {
687
+ if (left < descMinX) descMinX = left;
688
+ if (right > descMaxX) descMaxX = right;
689
+ if (top < descMinY) descMinY = top;
690
+ if (bottom > descMaxY) descMaxY = bottom;
691
+ };
671
692
  for (const desc of allDesc) {
672
693
  const innerBounds = containerBoundsMap.get(desc.data.orgNode.id);
673
694
  if (innerBounds) {
674
- if (innerBounds.minX < descMinX) descMinX = innerBounds.minX;
675
- if (innerBounds.maxX > descMaxX) descMaxX = innerBounds.maxX;
676
- if (innerBounds.maxY > descMaxY) descMaxY = innerBounds.maxY;
695
+ growDesc(
696
+ innerBounds.minX,
697
+ innerBounds.minY,
698
+ innerBounds.maxX,
699
+ innerBounds.maxY
700
+ );
677
701
  } else if (desc.data.orgNode.id.startsWith("__stack_")) {
678
702
  const cid = desc.data.orgNode.id.replace("__stack_", "");
679
703
  const stack = leafStacks.get(cid);
680
704
  if (stack) {
681
705
  for (const ec of expandedChildren) {
682
706
  if (ec.orgNode.parentId !== cid) continue;
683
- const ex = ec.cx + offsetX;
684
- const ey = ec.cy + offsetY;
685
- if (ex - ec.width / 2 < descMinX) descMinX = ex - ec.width / 2;
686
- if (ex + ec.width / 2 > descMaxX) descMaxX = ex + ec.width / 2;
687
- if (ey + ec.height > descMaxY) descMaxY = ey + ec.height;
707
+ const r = screenRect(ec.cx, ec.cy, ec.width, ec.height);
708
+ growDesc(
709
+ r.left + offsetX,
710
+ r.top + offsetY,
711
+ r.right + offsetX,
712
+ r.bottom + offsetY
713
+ );
688
714
  }
689
715
  }
690
716
  } else {
691
- const dw = desc.data.width;
692
- const dh = desc.data.height;
693
- const dx = desc.x + offsetX;
694
- const dy = desc.y + offsetY;
695
- if (dx - dw / 2 < descMinX) descMinX = dx - dw / 2;
696
- if (dx + dw / 2 > descMaxX) descMaxX = dx + dw / 2;
697
- if (dy + dh > descMaxY) descMaxY = dy + dh;
717
+ const r = screenRect(
718
+ desc.x,
719
+ desc.y,
720
+ desc.data.width,
721
+ desc.data.height
722
+ );
723
+ growDesc(
724
+ r.left + offsetX,
725
+ r.top + offsetY,
726
+ r.right + offsetX,
727
+ r.bottom + offsetY
728
+ );
698
729
  }
699
730
  }
700
- const containerX = d.x + offsetX;
701
- const containerY = d.y + offsetY;
731
+ const ownTL = screenTopLeft(d.x, d.y, d.data.width, d.data.height);
732
+ const containerCenterX = ownTL.left + d.data.width / 2 + offsetX;
733
+ const containerLeftX = ownTL.left + offsetX;
734
+ const containerY = ownTL.top + offsetY;
702
735
  const metaCount = Object.keys(d.data.orgNode.metadata).length;
703
736
  const labelHeight = CONTAINER_LABEL_HEIGHT + metaCount * CONTAINER_META_LINE_HEIGHT;
704
- const boxY = containerY;
705
- const boxHeight = descMaxY - containerY + CONTAINER_PAD_BOTTOM;
706
- const boxX = descMinX - CONTAINER_PAD_X;
707
- const contentWidth = descMaxX - descMinX + CONTAINER_PAD_X * 2;
708
- const finalBoxWidth = Math.max(contentWidth, d.data.width);
709
- const centeredBoxX = finalBoxWidth > contentWidth ? containerX - finalBoxWidth / 2 : boxX;
737
+ let boxY;
738
+ let boxHeight;
739
+ let centeredBoxX;
740
+ let finalBoxWidth;
741
+ if (isLR) {
742
+ centeredBoxX = containerLeftX;
743
+ finalBoxWidth = Math.max(
744
+ descMaxX - containerLeftX + CONTAINER_PAD_X,
745
+ d.data.width
746
+ );
747
+ boxY = descMinY - labelHeight - CONTAINER_PAD_X;
748
+ boxHeight = descMaxY - boxY + CONTAINER_PAD_BOTTOM;
749
+ } else {
750
+ boxY = containerY;
751
+ boxHeight = descMaxY - containerY + CONTAINER_PAD_BOTTOM;
752
+ const boxX = descMinX - CONTAINER_PAD_X;
753
+ const contentWidth = descMaxX - descMinX + CONTAINER_PAD_X * 2;
754
+ finalBoxWidth = Math.max(contentWidth, d.data.width);
755
+ centeredBoxX = finalBoxWidth > contentWidth ? containerCenterX - finalBoxWidth / 2 : boxX;
756
+ }
710
757
  containerBoundsMap.set(d.data.orgNode.id, {
711
758
  minX: centeredBoxX,
712
759
  maxX: centeredBoxX + finalBoxWidth,
@@ -739,17 +786,30 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
739
786
  containers.reverse();
740
787
  let finalMinX = minX;
741
788
  let finalMaxX = maxX;
789
+ let finalMinY = minY;
742
790
  let finalMaxY = maxY;
743
791
  for (const c of containers) {
744
792
  const cLeft = c.x - offsetX;
745
793
  const cRight = cLeft + c.width;
746
- const cBottom = c.y - offsetY + c.height;
794
+ const cTop = c.y - offsetY;
795
+ const cBottom = cTop + c.height;
747
796
  if (cLeft < finalMinX) finalMinX = cLeft;
748
797
  if (cRight > finalMaxX) finalMaxX = cRight;
798
+ if (cTop < finalMinY) finalMinY = cTop;
749
799
  if (cBottom > finalMaxY) finalMaxY = cBottom;
750
800
  }
801
+ const topOvershoot = minY - finalMinY;
802
+ if (topOvershoot > 0) {
803
+ for (const n of layoutNodes) n.y += topOvershoot;
804
+ for (const c of containers) c.y += topOvershoot;
805
+ for (const e of layoutEdges) {
806
+ for (const p of e.points) {
807
+ p.y += topOvershoot;
808
+ }
809
+ }
810
+ }
751
811
  const totalWidth = finalMaxX - finalMinX + MARGIN * 2;
752
- const totalHeight = finalMaxY - minY + MARGIN * 2;
812
+ const totalHeight = finalMaxY - finalMinY + MARGIN * 2;
753
813
  const usedValuesByGroup = /* @__PURE__ */ new Map();
754
814
  for (const group of parsed.tagGroups) {
755
815
  const key = tagAttrKey(group.name);
@@ -765,7 +825,7 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
765
825
  }
766
826
  const showEyeIcons = hiddenAttributes !== void 0;
767
827
  const legendGroups = computeLegendGroups(
768
- parsed.tagGroups,
828
+ legendSuppressed(parsed.options) ? [] : parsed.tagGroups,
769
829
  showEyeIcons,
770
830
  usedValuesByGroup
771
831
  );
@@ -810,4 +870,4 @@ function layoutOrg(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, expan
810
870
  export {
811
871
  layoutOrg
812
872
  };
813
- //# sourceMappingURL=chunk-QZX5S6R3.js.map
873
+ //# sourceMappingURL=chunk-BWYFIVZF.js.map
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-YYVTBZZC.js";
8
8
  import {
9
9
  renderIntegratedLegend
10
- } from "./chunk-AUIM2NVH.js";
10
+ } from "./chunk-2NZOHEP4.js";
11
11
  import {
12
12
  getMaxLegendReservedHeight
13
- } from "./chunk-YAA6IID3.js";
13
+ } from "./chunk-J7HQPVYH.js";
14
14
  import {
15
15
  FONT_FAMILY
16
16
  } from "./chunk-6KFWC4CO.js";
@@ -18,15 +18,16 @@ import {
18
18
  measureText,
19
19
  truncateText,
20
20
  wrapTextToWidth
21
- } from "./chunk-WCT3NYCV.js";
21
+ } from "./chunk-4ASYQ347.js";
22
22
  import {
23
23
  contrastText,
24
24
  mix,
25
25
  shapeFill
26
- } from "./chunk-WBM7ZNDI.js";
26
+ } from "./chunk-JYDMBWRP.js";
27
27
  import {
28
- fillModeFromOptions
29
- } from "./chunk-BRENJ2BQ.js";
28
+ fillModeFromOptions,
29
+ legendSuppressed
30
+ } from "./chunk-3FRO35WW.js";
30
31
 
31
32
  // src/tech-radar/renderer.ts
32
33
  import * as d3Selection2 from "d3-selection";
@@ -935,8 +936,8 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
935
936
  );
936
937
  return;
937
938
  }
938
- const directiveOn = parsed.options["show-blip-legend"] === "on";
939
- const showListing = exportDims ? true : options?.showListing ?? directiveOn;
939
+ const directiveOff = parsed.options["no-blip-legend"] === "on";
940
+ const showListing = exportDims ? !directiveOff : options?.showListing ?? !directiveOff;
940
941
  const init = initRadarSvg(container, palette, exportDims);
941
942
  if (!init) return;
942
943
  const { svg, width, height, textColor, mutedColor } = init;
@@ -968,7 +969,7 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
968
969
  svg.append("text").attr("x", radarWidth / 2).attr("y", titleY).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sTitleFontSize).attr("font-weight", "bold").text(parsed.title);
969
970
  }
970
971
  let legendReservedHeight = 0;
971
- if (!exportDims && options?.onToggleListing) {
972
+ if (!exportDims && options?.onToggleListing && !legendSuppressed(parsed.options)) {
972
973
  const legendY = showTitle ? titleY + 8 : 4;
973
974
  const legendG = svg.append("g").attr("transform", `translate(0, ${legendY})`);
974
975
  const legendConfig = {
@@ -1602,4 +1603,4 @@ export {
1602
1603
  renderTechRadar,
1603
1604
  renderTechRadarForExport
1604
1605
  };
1605
- //# sourceMappingURL=chunk-UBLHQTLV.js.map
1606
+ //# sourceMappingURL=chunk-BZJIITYM.js.map
@@ -8,18 +8,18 @@ import {
8
8
  resolveActiveTagGroup,
9
9
  stripDefaultModifier,
10
10
  tagAttrKey
11
- } from "./chunk-HHKO6SKY.js";
11
+ } from "./chunk-AHTTKERF.js";
12
12
  import {
13
13
  extractColor,
14
14
  fillModeFromToken,
15
15
  measureIndent,
16
16
  parseFirstLine,
17
17
  splitNameAndMeta
18
- } from "./chunk-BRENJ2BQ.js";
18
+ } from "./chunk-3FRO35WW.js";
19
19
  import {
20
20
  makeDgmoError,
21
21
  makeFail
22
- } from "./chunk-CXK4DZH3.js";
22
+ } from "./chunk-4W2PE66Q.js";
23
23
 
24
24
  // src/bracket/parser.ts
25
25
  var BEATS_RE = /^(.+?)\s+beats\s+(.+)$/i;
@@ -101,6 +101,7 @@ function parseBracket(content, palette) {
101
101
  };
102
102
  const lines = content.split("\n");
103
103
  let headerParsed = false;
104
+ let accentFromTitle = false;
104
105
  let currentSide = null;
105
106
  let currentTagGroup = null;
106
107
  let commentaryTarget = null;
@@ -123,13 +124,17 @@ function parseBracket(content, palette) {
123
124
  return fail(lineNum, 'Expected "bracket [Title]" as the first line.');
124
125
  }
125
126
  if (first.title) {
126
- const { label } = extractColor(
127
+ const { label, color } = extractColor(
127
128
  first.title,
128
129
  palette,
129
130
  result.diagnostics,
130
131
  lineNum
131
132
  );
132
133
  result.title = label || null;
134
+ if (color !== void 0) {
135
+ result.accentColor = color;
136
+ accentFromTitle = true;
137
+ }
133
138
  }
134
139
  result.titleLineNumber = lineNum;
135
140
  headerParsed = true;
@@ -231,7 +236,7 @@ function parseBracket(content, palette) {
231
236
  result.diagnostics,
232
237
  lineNum
233
238
  );
234
- if (color !== void 0) result.accentColor = color;
239
+ if (color !== void 0 && !accentFromTitle) result.accentColor = color;
235
240
  continue;
236
241
  }
237
242
  const sideM = trimmed.match(/^\[(.+?)\](.*)$/);
@@ -383,4 +388,4 @@ function parseBracket(content, palette) {
383
388
  export {
384
389
  parseBracket
385
390
  };
386
- //# sourceMappingURL=chunk-PRI2OD4E.js.map
391
+ //# sourceMappingURL=chunk-C2UORMIA.js.map
@@ -2,13 +2,13 @@ import {
2
2
  extractColor,
3
3
  measureIndent,
4
4
  parseFirstLine
5
- } from "./chunk-BRENJ2BQ.js";
5
+ } from "./chunk-3FRO35WW.js";
6
6
  import {
7
7
  emit,
8
8
  formatDgmoError,
9
9
  makeFail,
10
10
  suggest
11
- } from "./chunk-CXK4DZH3.js";
11
+ } from "./chunk-4W2PE66Q.js";
12
12
 
13
13
  // src/version-control/diagnostics.ts
14
14
  var VERSION_CONTROL_DX = {
@@ -221,7 +221,7 @@ function parseVersionControl(content, palette) {
221
221
  if (hint) msg2 += ` ${hint}`;
222
222
  return fail(lineNumber, msg2);
223
223
  }
224
- const dir = /^direction\s+(LR|TB|BT)$/i.exec(trimmed);
224
+ const dir = /^direction[-\s]+(LR|TB)$/i.exec(trimmed);
225
225
  if (dir) {
226
226
  options.direction = dir[1].toUpperCase();
227
227
  continue;
@@ -507,4 +507,4 @@ export {
507
507
  VERSION_CONTROL_DIAGNOSTICS,
508
508
  parseVersionControl
509
509
  };
510
- //# sourceMappingURL=chunk-3YRPZ7ZZ.js.map
510
+ //# sourceMappingURL=chunk-CCGWX6AO.js.map