@diagrammo/dgmo 0.79.0 → 0.81.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 (279) hide show
  1. package/README.md +2 -2
  2. package/dist/advanced.d.ts +95 -21
  3. package/dist/advanced.js +187 -185
  4. package/dist/{analyzer-QTDQEMS5.js → analyzer-R5UBTRO2.js} +3 -3
  5. package/dist/block.d.ts +2 -2
  6. package/dist/block.js +66 -65
  7. package/dist/calculator-35YVW4QO.js +13 -0
  8. package/dist/{chart-meta-B7lSmrzg.d.ts → chart-meta-BnVwoPaA.d.ts} +11 -3
  9. package/dist/chart-meta.d.ts +3 -3
  10. package/dist/chart-meta.js +21 -56
  11. package/dist/{dgmo-router-zWf4Uxxg.d.ts → chart-types-CsUlmuiY.d.ts} +2 -60
  12. package/dist/{charts-d3-EST3Z5VG.js → charts-d3-KNAXWYX5.js} +14 -14
  13. package/dist/{chunk-XOGQY4EC.js → chunk-2M4IGSCY.js} +2 -2
  14. package/dist/{chunk-DGPFFRLS.js → chunk-3AX6MCI6.js} +2 -2
  15. package/dist/{chunk-7SHL2WME.js → chunk-3C2FWS2J.js} +4 -4
  16. package/dist/{chunk-MDUCF376.js → chunk-3PRG6ZQ4.js} +7 -7
  17. package/dist/{chunk-ZZZJVDIL.js → chunk-3RYBTEF5.js} +5 -5
  18. package/dist/{chunk-QDHOIBHZ.js → chunk-3TC2V76V.js} +12 -12
  19. package/dist/{chunk-253E5ISJ.js → chunk-3URBJ3MT.js} +5 -5
  20. package/dist/{chunk-3BN3WCUD.js → chunk-3XTIBO4O.js} +2 -2
  21. package/dist/{chunk-4CA7TJ44.js → chunk-44GP7PD5.js} +238 -238
  22. package/dist/{chunk-WC72PTV4.js → chunk-47E5UTXE.js} +5 -5
  23. package/dist/{chunk-KYK6PMB5.js → chunk-4QS2K7ON.js} +6 -6
  24. package/dist/{chunk-MSVQ2YCY.js → chunk-4WW3SGMH.js} +2 -2
  25. package/dist/{chunk-CSTYDCKB.js → chunk-4XAB672K.js} +4 -4
  26. package/dist/{chunk-CRBW2WS7.js → chunk-566WTT4S.js} +3 -3
  27. package/dist/{chunk-37NDM5NW.js → chunk-5JO443MB.js} +2 -2
  28. package/dist/{chunk-OMN4F42L.js → chunk-64NQHRHZ.js} +9 -9
  29. package/dist/{chunk-S7ZJEQPW.js → chunk-66YFDTT6.js} +8 -8
  30. package/dist/{chunk-YPVP6I62.js → chunk-67USWFFE.js} +4 -4
  31. package/dist/{chunk-55DMCFGM.js → chunk-6EV2F6W7.js} +5 -5
  32. package/dist/{chunk-6775W3UW.js → chunk-6HOVLE3H.js} +6 -6
  33. package/dist/{chunk-RPP3NHKV.js → chunk-6K7RODXG.js} +3 -3
  34. package/dist/{chunk-2RAH6GVR.js → chunk-6ZL5A5MQ.js} +16 -35
  35. package/dist/{chunk-AMQFJ7P7.js → chunk-7HWY4QAJ.js} +2 -2
  36. package/dist/{chunk-Y3OLUMJH.js → chunk-7TH4ELXZ.js} +9 -9
  37. package/dist/{chunk-Z4COUG7H.js → chunk-7UDAIP6W.js} +13 -5
  38. package/dist/{chunk-OM6XZAKM.js → chunk-7VX3KBF5.js} +9 -10
  39. package/dist/{chunk-Z5ZCTCX4.js → chunk-A4XPI4YN.js} +7 -7
  40. package/dist/{chunk-LLZVRWVS.js → chunk-A77XE4DY.js} +2 -2
  41. package/dist/{chunk-7EUTTKNU.js → chunk-AERZPALT.js} +11 -11
  42. package/dist/{chunk-4L43NPSQ.js → chunk-AYOVY75O.js} +8 -8
  43. package/dist/{chunk-HJZ4OET2.js → chunk-AZC23UWQ.js} +4 -4
  44. package/dist/{chunk-CFYTCBRH.js → chunk-BAZT6CIF.js} +5 -5
  45. package/dist/{chunk-MQAD75AY.js → chunk-BOO24UMJ.js} +3 -3
  46. package/dist/{chunk-XWC4RQ7T.js → chunk-BOQXIURQ.js} +64 -10
  47. package/dist/{chunk-5SI6T5A5.js → chunk-BYU54C3S.js} +41 -11
  48. package/dist/{chunk-ZH3BWGTE.js → chunk-C7QRRTAW.js} +12 -12
  49. package/dist/{chunk-EOG4QKKV.js → chunk-CUX5UNSX.js} +11 -11
  50. package/dist/{chunk-QGXH64FT.js → chunk-D6ACM5T3.js} +9 -9
  51. package/dist/{chunk-Y2KFQX5K.js → chunk-DTTCDQNZ.js} +12 -11
  52. package/dist/{chunk-EGY3TS62.js → chunk-DV2VEJCC.js} +2 -2
  53. package/dist/{chunk-PKW4TLJC.js → chunk-DW5X4NRC.js} +13 -13
  54. package/dist/chunk-ECIXBEG2.js +86 -0
  55. package/dist/{chunk-K3K7JHZI.js → chunk-ERNCPKD4.js} +3 -3
  56. package/dist/{chunk-AFOHIR2O.js → chunk-FJNXXGTR.js} +4 -4
  57. package/dist/{chunk-XNAMWOPJ.js → chunk-FKZ2Y3Q5.js} +5 -5
  58. package/dist/{chunk-W4MC3KP6.js → chunk-FPXMCGS5.js} +3 -3
  59. package/dist/{chunk-KIF4UFD2.js → chunk-GBHWYUAE.js} +7 -7
  60. package/dist/{chunk-XXLAZQ5E.js → chunk-GDJW64XE.js} +3 -3
  61. package/dist/{chunk-6JIMYPXR.js → chunk-GJFDPDPM.js} +3 -3
  62. package/dist/{chunk-CCETDPLV.js → chunk-GOPWP2LR.js} +5 -5
  63. package/dist/{chunk-IEK2FUWO.js → chunk-GSYZZFI5.js} +5 -5
  64. package/dist/{chunk-O5QG5IFV.js → chunk-GUTZCRBT.js} +6 -6
  65. package/dist/{chunk-TPQ6Q7JP.js → chunk-GUYVKGFN.js} +5 -5
  66. package/dist/{chunk-5BV5MXLY.js → chunk-HEYGGSNQ.js} +7 -7
  67. package/dist/{chunk-DN6K6QCF.js → chunk-HMWZQ53A.js} +3 -3
  68. package/dist/{chunk-IZK2H4KU.js → chunk-HSRQDWV7.js} +4 -4
  69. package/dist/{chunk-ALVK3TBO.js → chunk-HTWH2XQL.js} +5 -5
  70. package/dist/{chunk-GWA6UGNX.js → chunk-ITDRR5JA.js} +10 -10
  71. package/dist/{chunk-7I6NWTPE.js → chunk-J64NZ6NF.js} +3 -3
  72. package/dist/{chunk-XND5JIJA.js → chunk-JIPUBFAM.js} +3 -3
  73. package/dist/{chunk-W4EKQ2P6.js → chunk-JLGN6S4B.js} +56 -7
  74. package/dist/{chunk-LXTMP3VT.js → chunk-JQ57AWDL.js} +3 -3
  75. package/dist/{chunk-3KNA7OIO.js → chunk-JRUEIRJB.js} +6 -6
  76. package/dist/{chunk-P4U5GST7.js → chunk-JS2THRCB.js} +2 -2
  77. package/dist/{chunk-EBEFYSVZ.js → chunk-KABGWUND.js} +286 -118
  78. package/dist/{chunk-YQIZIKCK.js → chunk-KMOFMIMN.js} +12 -12
  79. package/dist/{chunk-O2HU4AQN.js → chunk-L5AFONQU.js} +4 -4
  80. package/dist/{chunk-HJ5DKZPO.js → chunk-LCAFKUGB.js} +4 -4
  81. package/dist/{chunk-PQR7E3LY.js → chunk-LCJURK7L.js} +3 -3
  82. package/dist/{chunk-VTWUHX4H.js → chunk-LNO3ASX5.js} +4 -4
  83. package/dist/{chunk-6FUIPWTS.js → chunk-LWWEQPJU.js} +3 -3
  84. package/dist/{chunk-HIOJSYDA.js → chunk-LZO4KL2O.js} +2 -2
  85. package/dist/{chunk-3SQJZMPO.js → chunk-MGBV4JEI.js} +2 -2
  86. package/dist/{chunk-XDEEYDPQ.js → chunk-MHAYUS65.js} +7 -7
  87. package/dist/{chunk-2F7AG7LA.js → chunk-MV4NT6ZS.js} +3 -3
  88. package/dist/{chunk-SEOM2BGQ.js → chunk-MY6GUH26.js} +4 -4
  89. package/dist/{chunk-7AEMAUDF.js → chunk-N6LCD676.js} +11 -11
  90. package/dist/{chunk-IHOFUR74.js → chunk-N7VMGZCU.js} +3 -3
  91. package/dist/{chunk-6EMJRAEY.js → chunk-NF5YKFRH.js} +5 -5
  92. package/dist/{chunk-ZASX45SU.js → chunk-NGC3IZRY.js} +4 -4
  93. package/dist/{chunk-DG5IQW74.js → chunk-NOKFJY5L.js} +16 -16
  94. package/dist/{chunk-Y3RYIGHZ.js → chunk-NWY4HVY6.js} +7 -7
  95. package/dist/{chunk-E6PNTYRK.js → chunk-O753JUEZ.js} +2 -2
  96. package/dist/{chunk-DQOCYWB6.js → chunk-OB34QYW2.js} +10 -10
  97. package/dist/{chunk-ULUZBEFO.js → chunk-OEQANTLL.js} +5 -5
  98. package/dist/{chunk-4T6V7JJA.js → chunk-P3SKSKJI.js} +4 -4
  99. package/dist/{chunk-S6GPBJWG.js → chunk-PIXJL77H.js} +3 -3
  100. package/dist/{chunk-I6DFQQER.js → chunk-PVJ2MQHP.js} +10 -10
  101. package/dist/{chunk-FFDHZVEL.js → chunk-QFHWYWQL.js} +8 -12
  102. package/dist/{chunk-RVWWCQAB.js → chunk-QLCER2HF.js} +4 -4
  103. package/dist/{chunk-4YSWUQKZ.js → chunk-RE6TVIAV.js} +4 -4
  104. package/dist/{chunk-UNYOWKEC.js → chunk-RU725VCJ.js} +7 -7
  105. package/dist/{chunk-S6QDCFEU.js → chunk-RYZNNXUV.js} +2 -2
  106. package/dist/{chunk-54JYWS7D.js → chunk-SLMETI5B.js} +8 -8
  107. package/dist/{chunk-OLRVGPJ3.js → chunk-STXGE3A7.js} +11 -11
  108. package/dist/{chunk-HLTVEXML.js → chunk-TPCGA3W3.js} +13 -13
  109. package/dist/{chunk-Y22BJKMK.js → chunk-UG2XG57E.js} +4 -4
  110. package/dist/{chunk-AI7TZQ2R.js → chunk-UNNJCSSQ.js} +4 -4
  111. package/dist/{chunk-CKDYRVOC.js → chunk-USSW5NJX.js} +2 -2
  112. package/dist/{chunk-NVI5G57O.js → chunk-UYCBJKE6.js} +12 -12
  113. package/dist/{chunk-3KFGPXHD.js → chunk-VABKWCTJ.js} +110 -110
  114. package/dist/{chunk-RWF7TCGT.js → chunk-VEPIAUSK.js} +3 -3
  115. package/dist/{chunk-CE654SL2.js → chunk-VIRDI7QP.js} +11 -11
  116. package/dist/{chunk-5DWF3N3V.js → chunk-VJ5RRUZO.js} +2 -2
  117. package/dist/{chunk-VSPNH7LC.js → chunk-VLC6WNRD.js} +3 -1
  118. package/dist/{chunk-QDTFFVLT.js → chunk-VMCT77PY.js} +19 -19
  119. package/dist/{chunk-JTLLQT34.js → chunk-VRV4C47J.js} +6 -6
  120. package/dist/{chunk-RN3DOUOU.js → chunk-WGOFIJUP.js} +13 -13
  121. package/dist/{chunk-LJ7X6ZNV.js → chunk-WKYBA5PC.js} +10 -10
  122. package/dist/{chunk-Q5KGGW7Z.js → chunk-WP2RLGDI.js} +3 -3
  123. package/dist/{chunk-LLYHYPYG.js → chunk-WPL5PFXE.js} +8 -8
  124. package/dist/{chunk-JOG6W3VS.js → chunk-WQ6G6FFM.js} +3 -3
  125. package/dist/{chunk-MUTZSF2A.js → chunk-XJJEHHEH.js} +5 -5
  126. package/dist/{chunk-CREALBZL.js → chunk-YKLN4VG5.js} +3 -3
  127. package/dist/{chunk-WY4L675I.js → chunk-ZGKVBVSQ.js} +20 -12
  128. package/dist/{chunk-T3EW35M2.js → chunk-ZUCXFXLD.js} +4 -4
  129. package/dist/completion-registry.js +8 -8
  130. package/dist/{d3-Bje6Mla1.d.ts → d3-CTGUvjsH.d.ts} +1 -1
  131. package/dist/dgmo-router-YW4SBNYB.js +93 -0
  132. package/dist/dimensions-IXTFLFDM.js +22 -0
  133. package/dist/flowchart-parser-GG7XBLQH.js +21 -0
  134. package/dist/{flowchart-renderer-IGSKJFMF.js → flowchart-renderer-2VQ4WOFU.js} +13 -13
  135. package/dist/index.d.ts +7 -8
  136. package/dist/index.js +72 -253
  137. package/dist/{layout-WASEHV3S.js → layout-2JDDT4E2.js} +4 -4
  138. package/dist/layout-FGGUKDE7.js +16 -0
  139. package/dist/{layout-OHAIIXBC.js → layout-JQ3IPJYR.js} +3 -3
  140. package/dist/{layout-YPRXVCW5.js → layout-K6OAQFKC.js} +4 -4
  141. package/dist/{layout-6APS2RRG.js → layout-KN2ZREUM.js} +8 -8
  142. package/dist/{layout-74HDWQYG.js → layout-KSJAARD4.js} +6 -6
  143. package/dist/{layout-ZJOWB27N.js → layout-MBQL6DJX.js} +7 -7
  144. package/dist/{layout-5AYAYUJH.js → layout-MSSHF45T.js} +4 -4
  145. package/dist/{layout-FCIYZV63.js → layout-N67E4MXG.js} +3 -3
  146. package/dist/{layout-OPF6KTOH.js → layout-QK3USIZ5.js} +6 -6
  147. package/dist/{layout-6VUNAH6F.js → layout-SE2EHP5T.js} +4 -4
  148. package/dist/layout-ZND4EET5.js +16 -0
  149. package/dist/{layout-search-3JKNSUTJ.js → layout-search-LPVJJ6E3.js} +48 -12
  150. package/dist/{legend-constants-RSWFR3L6.js → legend-constants-6CHRIU5T.js} +5 -5
  151. package/dist/{palettes-IAF6WVL4.js → palettes-BIV54XLS.js} +4 -4
  152. package/dist/parser-256EIWB2.js +12 -0
  153. package/dist/parser-5655XSOR.js +13 -0
  154. package/dist/{parser-56UEMRXS.js → parser-6PHQJO42.js} +7 -7
  155. package/dist/{parser-YQ5F7ATB.js → parser-6TXNMXNB.js} +5 -5
  156. package/dist/parser-7OEE7QT6.js +11 -0
  157. package/dist/parser-ACW6C6OY.js +13 -0
  158. package/dist/parser-AKBVJHMK.js +15 -0
  159. package/dist/parser-AN3MGHRL.js +12 -0
  160. package/dist/parser-C327BBE3.js +13 -0
  161. package/dist/{parser-H33OKBUB.js → parser-DGF3ZEO6.js} +7 -7
  162. package/dist/parser-DHSFIUPU.js +13 -0
  163. package/dist/parser-GEKPWSSK.js +17 -0
  164. package/dist/parser-GPW4ZHPQ.js +19 -0
  165. package/dist/parser-GZ3LVF72.js +11 -0
  166. package/dist/{parser-JIPG576H.js → parser-HCGXNHHL.js} +6 -6
  167. package/dist/parser-J4DVNL4W.js +20 -0
  168. package/dist/parser-JOOAVBJI.js +17 -0
  169. package/dist/{parser-ZUH2G7J2.js → parser-JXS4426S.js} +6 -6
  170. package/dist/parser-KFYRTGTC.js +14 -0
  171. package/dist/parser-KYPP2DX6.js +18 -0
  172. package/dist/parser-KZMALSB2.js +15 -0
  173. package/dist/parser-KZMJNKDW.js +11 -0
  174. package/dist/parser-LANGKWRG.js +15 -0
  175. package/dist/{parser-DQKZDA2J.js → parser-LGS65QPN.js} +5 -5
  176. package/dist/parser-NGHQQGD2.js +13 -0
  177. package/dist/parser-NOANDFJ4.js +11 -0
  178. package/dist/parser-NPXPJHWN.js +14 -0
  179. package/dist/parser-OKB64MMN.js +16 -0
  180. package/dist/parser-OVQTTTUJ.js +11 -0
  181. package/dist/parser-SA3RAJFS.js +11 -0
  182. package/dist/parser-WEVTMBJ5.js +16 -0
  183. package/dist/{parser-COPCQEHV.js → parser-WUK6CP5X.js} +7 -7
  184. package/dist/parser-ZLKYDFI5.js +12 -0
  185. package/dist/pert.d.ts +11 -0
  186. package/dist/renderer-3BD6RNEA.js +25 -0
  187. package/dist/{renderer-DV44AS75.js → renderer-3HZYAP5F.js} +12 -12
  188. package/dist/{renderer-33AB7UAZ.js → renderer-57IYUDQG.js} +14 -14
  189. package/dist/{renderer-YLIICO4R.js → renderer-5O5YV6QI.js} +9 -9
  190. package/dist/{renderer-TKWW45LZ.js → renderer-5RVERY6X.js} +14 -14
  191. package/dist/renderer-6BE3KOQ7.js +27 -0
  192. package/dist/renderer-6Q6H44XU.js +21 -0
  193. package/dist/renderer-BUOBHUL6.js +27 -0
  194. package/dist/renderer-FF2KKA63.js +25 -0
  195. package/dist/renderer-FJRHXL6G.js +29 -0
  196. package/dist/renderer-HC4GRKWG.js +26 -0
  197. package/dist/{renderer-RW446FGL.js → renderer-HWEGM72C.js} +6 -6
  198. package/dist/{renderer-4HFT4HJG.js → renderer-I2VM3N6S.js} +15 -15
  199. package/dist/renderer-JHKU3GRN.js +20 -0
  200. package/dist/renderer-KRQ2IP34.js +39 -0
  201. package/dist/{renderer-63MHARNI.js → renderer-LYZB32G7.js} +7 -7
  202. package/dist/renderer-MAFBZSLO.js +23 -0
  203. package/dist/{renderer-N5CRYFBI.js → renderer-MB3W3TEB.js} +13 -13
  204. package/dist/{renderer-UHLTPQTW.js → renderer-ML2CLU25.js} +5 -5
  205. package/dist/renderer-N6FPRVGH.js +30 -0
  206. package/dist/renderer-P7LQBDU2.js +17 -0
  207. package/dist/{renderer-IIN3RY4F.js → renderer-PQYO2HCE.js} +7 -7
  208. package/dist/renderer-SFYSXUUY.js +28 -0
  209. package/dist/renderer-UPLSSNQF.js +16 -0
  210. package/dist/renderer-VNHD4I5H.js +27 -0
  211. package/dist/renderer-VSS5HVOC.js +39 -0
  212. package/dist/{renderer-REHVBQ57.js → renderer-WMCMFUJM.js} +14 -14
  213. package/dist/{renderer-O3O6A3RY.js → renderer-X2IIJS7X.js} +14 -14
  214. package/dist/renderer-XHC5YBU6.js +79 -0
  215. package/dist/renderer-XSR2D7OT.js +23 -0
  216. package/dist/renderer-XWWL6RJH.js +25 -0
  217. package/dist/{renderer-BVJ3NVRB.js → renderer-YO4YVEEU.js} +7 -7
  218. package/dist/{renderer-FLLVGYUY.js → renderer-YQSUUU3W.js} +12 -12
  219. package/dist/renderer-radial-HG5WGKW3.js +21 -0
  220. package/dist/{resolver-H5E6V7LJ.js → resolver-XSXE2TRX.js} +3 -3
  221. package/dist/state-parser-FE3RF6XY.js +19 -0
  222. package/dist/{state-renderer-6TVII5ZJ.js → state-renderer-YRNO6ADY.js} +18 -18
  223. package/dist/{tag-groups-DIJV_50B.d.ts → tag-groups-CFxENdtP.d.ts} +11 -0
  224. package/dist/{themes-Bgkyh6gh.d.ts → themes-WjudZgda.d.ts} +53 -3
  225. package/docs/language-reference.md +1 -1
  226. package/package.json +3 -4
  227. package/dist/calculator-OHTCZSBW.js +0 -13
  228. package/dist/dgmo-router-OXFV43XX.js +0 -90
  229. package/dist/dimensions-AN34SPVX.js +0 -22
  230. package/dist/flowchart-parser-MRNAVG35.js +0 -21
  231. package/dist/layout-LELNMRM5.js +0 -16
  232. package/dist/layout-XY45TFJ4.js +0 -16
  233. package/dist/parser-2Y7LWKNO.js +0 -17
  234. package/dist/parser-4GUQUDAC.js +0 -20
  235. package/dist/parser-4OXANARZ.js +0 -18
  236. package/dist/parser-66QZQYGE.js +0 -16
  237. package/dist/parser-6SS7DKVW.js +0 -14
  238. package/dist/parser-AYURCBDZ.js +0 -15
  239. package/dist/parser-DEWJM5PX.js +0 -12
  240. package/dist/parser-EMPM3V35.js +0 -11
  241. package/dist/parser-EP2JQJNV.js +0 -13
  242. package/dist/parser-FDDHTBRV.js +0 -19
  243. package/dist/parser-FDESUQ32.js +0 -11
  244. package/dist/parser-GK6CMK4P.js +0 -13
  245. package/dist/parser-HJBSWTDY.js +0 -13
  246. package/dist/parser-HRIKI5O3.js +0 -14
  247. package/dist/parser-I77632XB.js +0 -15
  248. package/dist/parser-JGMQE7FS.js +0 -16
  249. package/dist/parser-JNJ2IFSO.js +0 -12
  250. package/dist/parser-LCUQTABE.js +0 -13
  251. package/dist/parser-LXU3MGG6.js +0 -11
  252. package/dist/parser-N4YB5EIZ.js +0 -15
  253. package/dist/parser-NC36PRBR.js +0 -11
  254. package/dist/parser-O6WYAXTS.js +0 -12
  255. package/dist/parser-UHABNZBC.js +0 -11
  256. package/dist/parser-V6HULGXW.js +0 -17
  257. package/dist/parser-VVWZIMYS.js +0 -13
  258. package/dist/parser-YJGTPT7A.js +0 -11
  259. package/dist/renderer-2ZGZSSCV.js +0 -39
  260. package/dist/renderer-43KEDLTQ.js +0 -23
  261. package/dist/renderer-4E6NNPNU.js +0 -29
  262. package/dist/renderer-6HPV7BMG.js +0 -23
  263. package/dist/renderer-FSV7MTW3.js +0 -17
  264. package/dist/renderer-H6XEVHKH.js +0 -27
  265. package/dist/renderer-HNEMQJXT.js +0 -21
  266. package/dist/renderer-K2OWHNBV.js +0 -25
  267. package/dist/renderer-M6UIXQHH.js +0 -27
  268. package/dist/renderer-OVRX36WE.js +0 -39
  269. package/dist/renderer-PLKMHBAB.js +0 -30
  270. package/dist/renderer-SJV75NUI.js +0 -28
  271. package/dist/renderer-UNYFAMFE.js +0 -16
  272. package/dist/renderer-URXHBQOF.js +0 -26
  273. package/dist/renderer-VBAQQWDB.js +0 -25
  274. package/dist/renderer-VI72MVFW.js +0 -77
  275. package/dist/renderer-XGJIACBV.js +0 -25
  276. package/dist/renderer-XVTKGPYT.js +0 -20
  277. package/dist/renderer-ZG6GPWZF.js +0 -27
  278. package/dist/renderer-radial-7UHFYOOL.js +0 -21
  279. package/dist/state-parser-XT4ZPQAF.js +0 -19
@@ -1,15 +1,16 @@
1
+ import {
2
+ MAP_DIAGNOSTICS
3
+ } from "./chunk-EOYPX6SF.js";
1
4
  import {
2
5
  parseClock
3
- } from "./chunk-Q5KGGW7Z.js";
6
+ } from "./chunk-WP2RLGDI.js";
4
7
  import {
5
8
  parseBracket
6
- } from "./chunk-T3EW35M2.js";
7
- import {
8
- parseRaci
9
- } from "./chunk-ZZZJVDIL.js";
9
+ } from "./chunk-ZUCXFXLD.js";
10
10
  import {
11
+ BODY_DIAGNOSTICS,
11
12
  parseBody
12
- } from "./chunk-WC72PTV4.js";
13
+ } from "./chunk-47E5UTXE.js";
13
14
  import {
14
15
  EXTENDED_CHART_DOORS,
15
16
  parseChart,
@@ -18,81 +19,94 @@ import {
18
19
  parseHeatmap,
19
20
  parseSankey,
20
21
  parseScatter
21
- } from "./chunk-Z4COUG7H.js";
22
+ } from "./chunk-7UDAIP6W.js";
22
23
  import {
23
24
  parseCycle
24
- } from "./chunk-JOG6W3VS.js";
25
+ } from "./chunk-WQ6G6FFM.js";
25
26
  import {
26
27
  parseJourneyMap
27
- } from "./chunk-6EMJRAEY.js";
28
+ } from "./chunk-NF5YKFRH.js";
28
29
  import {
29
30
  parsePyramid
30
- } from "./chunk-S6GPBJWG.js";
31
+ } from "./chunk-PIXJL77H.js";
31
32
  import {
32
33
  parseRing
33
- } from "./chunk-7SHL2WME.js";
34
+ } from "./chunk-3C2FWS2J.js";
34
35
  import {
36
+ TREEMAP_DIAGNOSTICS,
35
37
  parseTreemap
36
- } from "./chunk-4T6V7JJA.js";
38
+ } from "./chunk-P3SKSKJI.js";
37
39
  import {
38
40
  parseBlock
39
- } from "./chunk-SEOM2BGQ.js";
41
+ } from "./chunk-MY6GUH26.js";
40
42
  import {
41
43
  parseGoal
42
- } from "./chunk-MQAD75AY.js";
44
+ } from "./chunk-BOO24UMJ.js";
43
45
  import {
44
46
  parseCountdown
45
- } from "./chunk-LXTMP3VT.js";
47
+ } from "./chunk-JQ57AWDL.js";
46
48
  import {
47
49
  parseMap
48
- } from "./chunk-ALVK3TBO.js";
50
+ } from "./chunk-HTWH2XQL.js";
49
51
  import {
50
52
  parseBoxesAndLines
51
- } from "./chunk-XDEEYDPQ.js";
53
+ } from "./chunk-MHAYUS65.js";
52
54
  import {
53
55
  parseSketch
54
- } from "./chunk-UNYOWKEC.js";
56
+ } from "./chunk-RU725VCJ.js";
57
+ import {
58
+ SKETCH_DIAGNOSTICS
59
+ } from "./chunk-DV2VEJCC.js";
55
60
  import {
61
+ SWIMLANE_DIAGNOSTICS,
56
62
  parseSwimlane
57
- } from "./chunk-ZH3BWGTE.js";
63
+ } from "./chunk-C7QRRTAW.js";
58
64
  import {
65
+ FAMILY_DIAGNOSTICS,
59
66
  parseFamily
60
- } from "./chunk-XNAMWOPJ.js";
67
+ } from "./chunk-FKZ2Y3Q5.js";
61
68
  import {
62
69
  parseMindmap
63
- } from "./chunk-ZASX45SU.js";
70
+ } from "./chunk-NGC3IZRY.js";
64
71
  import {
65
72
  parseTechRadar
66
- } from "./chunk-RPP3NHKV.js";
67
- import {
68
- looksLikePert,
69
- parsePert
70
- } from "./chunk-AI7TZQ2R.js";
71
- import {
72
- isLiveLinkLine,
73
- parseLiveLink
74
- } from "./chunk-DN6K6QCF.js";
73
+ } from "./chunk-6K7RODXG.js";
75
74
  import {
75
+ EVENT_LINE_DIAGNOSTICS,
76
76
  parseEventLine
77
- } from "./chunk-S7ZJEQPW.js";
77
+ } from "./chunk-66YFDTT6.js";
78
78
  import {
79
79
  parseTimelineEventLine
80
- } from "./chunk-XXLAZQ5E.js";
80
+ } from "./chunk-GDJW64XE.js";
81
81
  import {
82
+ VERSION_CONTROL_DIAGNOSTICS,
82
83
  parseVersionControl
83
- } from "./chunk-FFDHZVEL.js";
84
+ } from "./chunk-QFHWYWQL.js";
84
85
  import {
85
86
  parseKanban
86
- } from "./chunk-TPQ6Q7JP.js";
87
+ } from "./chunk-GUYVKGFN.js";
87
88
  import {
88
89
  parseC4
89
- } from "./chunk-IEK2FUWO.js";
90
+ } from "./chunk-GSYZZFI5.js";
90
91
  import {
91
92
  parseInfra
92
- } from "./chunk-O5QG5IFV.js";
93
+ } from "./chunk-GUTZCRBT.js";
93
94
  import {
94
95
  parseGantt
95
- } from "./chunk-CFYTCBRH.js";
96
+ } from "./chunk-BAZT6CIF.js";
97
+ import {
98
+ parseDgmoChartType
99
+ } from "./chunk-ECIXBEG2.js";
100
+ import {
101
+ parseRaci
102
+ } from "./chunk-3RYBTEF5.js";
103
+ import {
104
+ PERT_DIAGNOSTICS,
105
+ parsePert
106
+ } from "./chunk-UNNJCSSQ.js";
107
+ import {
108
+ parseLiveLink
109
+ } from "./chunk-HMWZQ53A.js";
96
110
  import {
97
111
  makeYearContext,
98
112
  parseDateToken,
@@ -100,44 +114,47 @@ import {
100
114
  toInternal
101
115
  } from "./chunk-DAOFNU6J.js";
102
116
  import {
103
- looksLikeSequence,
104
117
  parseSequenceDgmo
105
- } from "./chunk-55DMCFGM.js";
118
+ } from "./chunk-6EV2F6W7.js";
106
119
  import {
107
- looksLikeFlowchart,
108
120
  parseFlowchart
109
- } from "./chunk-3KNA7OIO.js";
121
+ } from "./chunk-JRUEIRJB.js";
122
+ import {
123
+ GRAPH_DIAGNOSTICS
124
+ } from "./chunk-7TF3QOOD.js";
110
125
  import {
111
- looksLikeState,
112
126
  parseState
113
- } from "./chunk-4L43NPSQ.js";
127
+ } from "./chunk-AYOVY75O.js";
114
128
  import {
115
- looksLikeClassDiagram,
116
129
  parseClassDiagram
117
- } from "./chunk-Z5ZCTCX4.js";
130
+ } from "./chunk-A4XPI4YN.js";
118
131
  import {
119
- looksLikeERDiagram,
120
132
  parseERDiagram
121
- } from "./chunk-LLYHYPYG.js";
133
+ } from "./chunk-WPL5PFXE.js";
134
+ import {
135
+ ARROW_DIAGNOSTIC_CODES
136
+ } from "./chunk-N7VMGZCU.js";
122
137
  import {
123
- looksLikeOrg,
124
138
  parseOrg
125
- } from "./chunk-AFOHIR2O.js";
139
+ } from "./chunk-FJNXXGTR.js";
126
140
  import {
127
- looksLikeSitemap,
128
141
  parseSitemap
129
- } from "./chunk-Y22BJKMK.js";
142
+ } from "./chunk-UG2XG57E.js";
130
143
  import {
131
144
  parseWireframe
132
- } from "./chunk-IZK2H4KU.js";
145
+ } from "./chunk-HSRQDWV7.js";
146
+ import {
147
+ RACI_DIAGNOSTICS
148
+ } from "./chunk-4WW3SGMH.js";
133
149
  import {
134
150
  matchTagBlockHeading,
135
151
  stripDefaultModifier,
136
152
  tagAttrKey,
137
153
  validateTagGroupNames,
138
154
  validateTagValues
139
- } from "./chunk-O2HU4AQN.js";
155
+ } from "./chunk-L5AFONQU.js";
140
156
  import {
157
+ ALIAS_DIAGNOSTICS,
141
158
  TIMELINE_REGISTRY,
142
159
  chartTypes,
143
160
  collectIndentedValues,
@@ -149,19 +166,22 @@ import {
149
166
  peelTrailingColorName,
150
167
  splitNameAndMeta,
151
168
  withTagAliases
152
- } from "./chunk-4CA7TJ44.js";
169
+ } from "./chunk-44GP7PD5.js";
153
170
  import {
154
171
  resolveColorWithDiagnostic
155
- } from "./chunk-XOGQY4EC.js";
172
+ } from "./chunk-2M4IGSCY.js";
156
173
  import {
174
+ MISTYPED_CHART_TYPE_DX,
157
175
  NEGATIVE_VALUE_DX,
158
176
  TITLE_DIRECTIVE_DX,
159
177
  dedupeDiagnostics,
160
178
  emit,
179
+ emptyMetadataValueMessage,
161
180
  formatDgmoError,
162
181
  makeDgmoError,
182
+ nameMergedMessage,
163
183
  suggest
164
- } from "./chunk-5SI6T5A5.js";
184
+ } from "./chunk-BYU54C3S.js";
165
185
 
166
186
  // src/visualizations/types.ts
167
187
  var DEFAULT_CLOUD_OPTIONS = {
@@ -172,6 +192,7 @@ var DEFAULT_CLOUD_OPTIONS = {
172
192
  };
173
193
 
174
194
  // src/visualizations/parse.ts
195
+ var allChartTypeIds = chartTypes.map((c) => c.id);
175
196
  function parseVisualization(content, palette) {
176
197
  return parseVisualizationFull(content, palette);
177
198
  }
@@ -1150,15 +1171,15 @@ function parseVisualizationFull(content, palette) {
1150
1171
  }
1151
1172
  }
1152
1173
  if (!result.type) {
1153
- const validD3Types = [...VALID_D3_TYPES];
1154
1174
  const firstNonEmpty = lines.find((l) => l.trim() && !l.trim().startsWith("//"))?.trim() ?? "";
1155
- const hint = suggest(
1156
- firstNonEmpty.split(/\s/)[0].toLowerCase(),
1157
- validD3Types
1158
- );
1159
- let msg = `Unsupported chart type: "${firstNonEmpty.split(/\s/)[0]}". Supported types: ${validD3Types.join(", ")}`;
1160
- if (hint) msg += `. ${hint}`;
1161
- return fail(1, msg);
1175
+ const word = firstNonEmpty.split(/\s/)[0];
1176
+ const hint = suggest(word.toLowerCase(), allChartTypeIds);
1177
+ let msg = `'${word}' is not a chart type`;
1178
+ msg += hint ? `. ${hint}` : ` \u2014 line 1 names the chart type, e.g. \`bar Sales\` or \`flowchart Deploy\`.`;
1179
+ const diag = makeDgmoError(1, msg);
1180
+ result.diagnostics.unshift(diag);
1181
+ result.error = formatDgmoError(diag);
1182
+ return result;
1162
1183
  }
1163
1184
  if (result.type === "sequence") {
1164
1185
  return result;
@@ -1435,6 +1456,176 @@ function tokenizeFreeformText(text) {
1435
1456
  return Array.from(counts.entries()).map(([text2, count]) => ({ text: text2, weight: count, lineNumber: 0 })).sort((a, b) => b.weight - a.weight);
1436
1457
  }
1437
1458
 
1459
+ // src/utils/arrows-diagnostics.ts
1460
+ var ARROW_DIAGNOSTICS = [
1461
+ // --- ACTIVE (TD-13): emitted by validateLabelCharacters ---
1462
+ {
1463
+ code: ARROW_DIAGNOSTIC_CODES.ARROW_SUBSTRING_IN_LABEL,
1464
+ // 'E_ARROW_SUBSTRING_IN_LABEL'
1465
+ severity: "error",
1466
+ chartType: null,
1467
+ title: "Arrow symbol inside label",
1468
+ // Verbatim from validateLabelCharacters (arrows.ts, TD-13).
1469
+ message: 'Arrow symbols (-> or ~>) are not allowed inside a label. Reword the label without them \u2014 e.g. "A -chains to-> B". See "In-Arrow Message Labels" \u2192 Forbidden.',
1470
+ // 🔴 This said `A -> B: uses -> to chain` until 2026-09-01 — it recommended
1471
+ // the one syntax that breaks silently. In a sequence diagram the colon form
1472
+ // is a hard error; in boxes-and-lines it parses clean and invents a node
1473
+ // literally named "B: uses to chain" (verified: nodes come back
1474
+ // `["A","B: uses to chain"]` with zero diagnostics). The label belongs
1475
+ // BETWEEN the dashes, and it can never contain an arrow, so the repair is
1476
+ // to reword it rather than move it.
1477
+ hint: 'The label goes between the dashes \u2014 `A -chains to-> B` \u2014 and cannot contain an arrow at all, so reword it rather than move it. Do not use `A -> B: label`: outside sequence diagrams that silently creates a node named "B: label".',
1478
+ // End-to-end trigger via a symbolic parser (class), whose label is
1479
+ // everything after the target name, so the inner `~>` survives to the
1480
+ // validator instead of being absorbed as a second arrow token.
1481
+ example: "class\nFoo\n --|> Bar uses ~> chain"
1482
+ },
1483
+ // --- ACTIVE (TD-14): emitted by validateLabelCharacters ---
1484
+ {
1485
+ code: ARROW_DIAGNOSTIC_CODES.CONTROL_CHAR_IN_LABEL,
1486
+ // 'E_CONTROL_CHAR_IN_LABEL'
1487
+ severity: "error",
1488
+ chartType: null,
1489
+ title: "Control character in label",
1490
+ // Verbatim from validateLabelCharacters (arrows.ts, TD-14). The emitter
1491
+ // interpolates the offending codepoint as a 4-digit upper-hex string
1492
+ // (e.g. '0000'); tolerate `{}` for the param-less catalog view.
1493
+ message: (p) => `Label contains a control character (U+${typeof p.hex === "string" ? p.hex : "XXXX"}). Remove it and use plain text.`,
1494
+ hint: "Delete the control character (C0 U+0000\u2013U+001F except tab, or U+007F); use plain text.",
1495
+ // `\u0000` is a literal NUL inside the label, which triggers
1496
+ // E_CONTROL_CHAR_IN_LABEL end-to-end on any chain-tokenizing chart.
1497
+ // (Escaped, not a raw NUL byte, to keep the source file text-safe.)
1498
+ example: "sequence\nA -has\0nul-> B"
1499
+ }
1500
+ ];
1501
+
1502
+ // src/colors-diagnostics.ts
1503
+ var COLOR_DIAGNOSTICS = [
1504
+ {
1505
+ // src/colors.ts:317/347/359 — makeDgmoError(..., 'warning', INVALID_COLOR_CODE='E_INVALID_COLOR')
1506
+ // Runtime: emitted as warning despite E_ prefix
1507
+ code: "E_INVALID_COLOR",
1508
+ severity: "warning",
1509
+ chartType: null,
1510
+ title: "Invalid DGMO color",
1511
+ message: (p) => `Color "${String(
1512
+ p.token ?? p.color ?? ""
1513
+ )}" is not a valid DGMO color \u2014 DGMO accepts only these 11 named colors: <names> (no hex, no CSS color names).`,
1514
+ hint: "Use one of the 11 named palette colors instead of a hex/rgb()/hsl() or CSS color name.",
1515
+ example: `version-control
1516
+ main
1517
+ Initial commit
1518
+ develop from main crimson
1519
+ Set up CI
1520
+ `
1521
+ }
1522
+ ];
1523
+
1524
+ // src/diagnostics-registry.ts
1525
+ var UNIVERSAL_DIAGNOSTICS = [
1526
+ // ── Universal name handling ──
1527
+ {
1528
+ code: "I_NAME_MERGED",
1529
+ severity: "warning",
1530
+ chartType: null,
1531
+ title: "Names merged (case/whitespace)",
1532
+ message: (p) => nameMergedMessage({
1533
+ incomingDisplay: String(p.incomingDisplay ?? "Backend"),
1534
+ incomingLine: Number(p.incomingLine ?? 2),
1535
+ existingDisplay: String(p.existingDisplay ?? "backend"),
1536
+ existingLine: Number(p.existingLine ?? 1)
1537
+ }),
1538
+ hint: "Use one consistent spelling, or add `# allow-merge` on the line if the merge is intentional.",
1539
+ example: "infra\ninternet\n -> gw\ngw\n -> svc\nGW\n -> svc\n"
1540
+ },
1541
+ // ── Unified metadata grammar (0.18.0) ──
1542
+ {
1543
+ code: "E_TAG_DECLARED_AFTER_CONTENT",
1544
+ severity: "error",
1545
+ chartType: null,
1546
+ title: "Tag declared after content",
1547
+ message: "A `tag` declaration appears after the first content line \u2014 declare all tags before any content.",
1548
+ hint: "Move `tag` declarations to the top of the diagram.",
1549
+ example: "block\n[A]\ntag warn red"
1550
+ },
1551
+ {
1552
+ code: "W_ACTIVE_TAG_NO_MATCH",
1553
+ severity: "warning",
1554
+ chartType: null,
1555
+ title: "Active tag group not found",
1556
+ message: "`active-tag` names a group the diagram does not declare, so nothing is coloured.",
1557
+ hint: "Check the spelling against the declared `tag` groups, or use `active-tag none` to colour nothing on purpose.",
1558
+ // The group name in this example is misspelled on purpose — showing a name
1559
+ // that matches no declared group is the example's whole job. Ignored for
1560
+ // this file rather than added to cspell.json, which would excuse the same
1561
+ // typo anywhere in the library. cspell:ignore Rnak
1562
+ example: "org Crew\nactive-tag Rnak\n\ntag Rank as r\n Captain red\n\nBlackbeard r: Captain\n"
1563
+ },
1564
+ {
1565
+ code: "W_EMPTY_METADATA_VALUE",
1566
+ severity: "warning",
1567
+ chartType: null,
1568
+ title: "Empty metadata value",
1569
+ message: (p) => emptyMetadataValueMessage(String(p.key ?? "color")),
1570
+ hint: "Provide a value or remove the key.",
1571
+ example: "mindmap\nRoot color:\n Child"
1572
+ },
1573
+ {
1574
+ code: "W_LEGEND_INLINE_UNSUPPORTED",
1575
+ severity: "warning",
1576
+ chartType: null,
1577
+ title: "legend-inline not supported",
1578
+ message: () => "'legend-inline' isn't supported for this chart type \u2014 the title and legend render stacked.",
1579
+ hint: "Remove legend-inline, or use a chart type with a top-center capsule legend (e.g. bar, line, state, treemap, sequence, gantt).",
1580
+ example: "pie Share\nApples 30\nPears 70"
1581
+ },
1582
+ {
1583
+ code: "W_CANVAS_WIDTH_IGNORED",
1584
+ severity: "warning",
1585
+ chartType: null,
1586
+ title: "Requested width not applied",
1587
+ message: () => "This chart type sizes itself from its content, so the canvas came out wider than the width that was requested.",
1588
+ hint: "The width is a maximum for chart types that fit their content to it; one that lays out from its own nodes (org, sitemap, class, er, infra, and the rest of the structured family) is as wide as its content needs. Remove the width, or give the diagram less to draw.",
1589
+ example: "org Team\nJane\n Sam"
1590
+ },
1591
+ // ── Data-chart `title` directive (decision #48) ──
1592
+ MISTYPED_CHART_TYPE_DX,
1593
+ TITLE_DIRECTIVE_DX,
1594
+ // ── Negative value on a magnitude channel (pie/polar-area/radar/funnel/
1595
+ // sankey/arc/wordcloud/treemap size/map size:/width:) ──
1596
+ NEGATIVE_VALUE_DX
1597
+ ];
1598
+ var REGISTRY = [
1599
+ ...UNIVERSAL_DIAGNOSTICS,
1600
+ ...SWIMLANE_DIAGNOSTICS,
1601
+ ...RACI_DIAGNOSTICS,
1602
+ ...TREEMAP_DIAGNOSTICS,
1603
+ ...EVENT_LINE_DIAGNOSTICS,
1604
+ ...BODY_DIAGNOSTICS,
1605
+ ...VERSION_CONTROL_DIAGNOSTICS,
1606
+ ...ARROW_DIAGNOSTICS,
1607
+ ...MAP_DIAGNOSTICS,
1608
+ ...PERT_DIAGNOSTICS,
1609
+ ...GRAPH_DIAGNOSTICS,
1610
+ ...COLOR_DIAGNOSTICS,
1611
+ ...SKETCH_DIAGNOSTICS,
1612
+ ...FAMILY_DIAGNOSTICS,
1613
+ ...ALIAS_DIAGNOSTICS
1614
+ ];
1615
+ function listDiagnosticCodes() {
1616
+ return [...REGISTRY].sort((a, b) => a.code.localeCompare(b.code));
1617
+ }
1618
+ function attachHints(diagnostics) {
1619
+ return diagnostics.map((d) => {
1620
+ if (d.hint !== void 0 || d.code === void 0) return d;
1621
+ const hint = getDiagnosticSpec(d.code)?.hint;
1622
+ return hint === void 0 ? d : { ...d, hint };
1623
+ });
1624
+ }
1625
+ function getDiagnosticSpec(code) {
1626
+ return REGISTRY.find((s) => s.code === code);
1627
+ }
1628
+
1438
1629
  // src/slope/parser.ts
1439
1630
  function parseSlope(content, palette) {
1440
1631
  return parseVisualization(content, palette);
@@ -1466,7 +1657,7 @@ function parseQuadrant(content, palette) {
1466
1657
  }
1467
1658
 
1468
1659
  // src/chart-type-registry.ts
1469
- var REGISTRY = {
1660
+ var REGISTRY2 = {
1470
1661
  // ── Structured diagrams ───────────────────────────────────
1471
1662
  sequence: { category: "diagram", parse: parseSequenceDgmo },
1472
1663
  flowchart: { category: "diagram", parse: parseFlowchart },
@@ -1541,7 +1732,7 @@ var REGISTRY = {
1541
1732
  // card sizes to its own text and scales to fit.
1542
1733
  "live-link": { category: "diagram", parse: parseLiveLink }
1543
1734
  };
1544
- var CHART_TYPE_REGISTRY = Object.entries(REGISTRY).map(([id, d]) => ({ id, ...d }));
1735
+ var CHART_TYPE_REGISTRY = Object.entries(REGISTRY2).map(([id, d]) => ({ id, ...d }));
1545
1736
  var REGISTRY_BY_ID = new Map(
1546
1737
  CHART_TYPE_REGISTRY.map((d) => [d.id, d])
1547
1738
  );
@@ -1550,53 +1741,6 @@ function isExtendedChartParser(parse) {
1550
1741
  }
1551
1742
 
1552
1743
  // src/dgmo-router.ts
1553
- var GANTT_DURATION_RE = /^\d+(?:\.\d+)?(?:min|bd|sp|d|w|m|q|y|h)(?:\?)?\s+/;
1554
- var GANTT_DATE_RE = /^\d{4}-\d{2}-\d{2}(?:\s\d{2}:\d{2})?\s+/;
1555
- function looksLikeGantt(content) {
1556
- const lines = content.split("\n");
1557
- for (const line of lines) {
1558
- const trimmed = line.trim();
1559
- if (!trimmed || trimmed.startsWith("//")) continue;
1560
- if (GANTT_DURATION_RE.test(trimmed) || GANTT_DATE_RE.test(trimmed)) {
1561
- return true;
1562
- }
1563
- }
1564
- return false;
1565
- }
1566
- var C4_TYPE_RE = /\bis\s+an?\s+(person|system|container|component)\b/i;
1567
- function looksLikeC4(content) {
1568
- const lines = content.split("\n");
1569
- for (const line of lines) {
1570
- const trimmed = line.trim();
1571
- if (!trimmed || trimmed.startsWith("//")) continue;
1572
- if (C4_TYPE_RE.test(trimmed)) {
1573
- return true;
1574
- }
1575
- }
1576
- return false;
1577
- }
1578
- function parseDgmoChartType(content) {
1579
- const lines = content.split("\n");
1580
- for (const line of lines) {
1581
- const trimmed = line.trim();
1582
- if (!trimmed || trimmed.startsWith("//")) continue;
1583
- const firstLineResult = parseFirstLine(trimmed);
1584
- if (firstLineResult) return firstLineResult.chartType;
1585
- if (isLiveLinkLine(trimmed)) return "live-link";
1586
- break;
1587
- }
1588
- if (looksLikeSequence(content)) return "sequence";
1589
- if (looksLikeFlowchart(content)) return "flowchart";
1590
- if (looksLikeClassDiagram(content)) return "class";
1591
- if (looksLikeERDiagram(content)) return "er";
1592
- if (looksLikeState(content)) return "state";
1593
- if (looksLikeSitemap(content)) return "sitemap";
1594
- if (looksLikeOrg(content)) return "org";
1595
- if (looksLikeC4(content)) return "c4";
1596
- if (looksLikeGantt(content)) return "gantt";
1597
- if (looksLikePert(content)) return "pert";
1598
- return null;
1599
- }
1600
1744
  function getRenderCategory(chartType) {
1601
1745
  return REGISTRY_BY_ID.get(chartType.toLowerCase())?.category ?? null;
1602
1746
  }
@@ -1617,7 +1761,9 @@ var ALL_KNOWN_TYPES = new Set(knownChartTypeIds);
1617
1761
  function parseDgmo(content) {
1618
1762
  const result = parseDgmoUndeduped(content);
1619
1763
  return {
1620
- diagnostics: dedupeDiagnostics(result.diagnostics),
1764
+ // `attachHints` backfills the registry's repair sentence by code, so the
1765
+ // hint travels however the diagnostic was constructed. See its own comment.
1766
+ diagnostics: attachHints(dedupeDiagnostics(result.diagnostics)),
1621
1767
  chartType: result.chartType
1622
1768
  };
1623
1769
  }
@@ -1637,8 +1783,10 @@ function parseDgmoUndeduped(content) {
1637
1783
  const parser = PARSER_BY_ID.get(chartType);
1638
1784
  if (parser) {
1639
1785
  const result2 = parser(content);
1786
+ const mistyped = detectMistypedChartType(content, chartType);
1640
1787
  return {
1641
1788
  diagnostics: [
1789
+ ...mistyped ? [mistyped] : [],
1642
1790
  ...result2.diagnostics,
1643
1791
  ...detectEmptyContent(content, chartType)
1644
1792
  ],
@@ -1654,6 +1802,27 @@ function parseDgmoUndeduped(content) {
1654
1802
  chartType
1655
1803
  };
1656
1804
  }
1805
+ var MERMAID_FIRST_WORDS = {
1806
+ graph: "flowchart",
1807
+ journey: "journey-map"
1808
+ };
1809
+ function detectMistypedChartType(content, resolved) {
1810
+ const lines = content.split("\n");
1811
+ for (let i = 0; i < lines.length; i++) {
1812
+ const trimmed = lines[i].trim();
1813
+ if (!trimmed || trimmed.startsWith("#") || trimmed.startsWith("//"))
1814
+ continue;
1815
+ const match = trimmed.match(/^([a-z][a-z0-9-]*)(?:\s|$)/);
1816
+ if (!match) return null;
1817
+ const word = match[1];
1818
+ if (ALL_KNOWN_TYPES.has(word)) return null;
1819
+ const alias = MERMAID_FIRST_WORDS[word];
1820
+ const suggestion = alias ? `Did you mean '${alias}'?` : suggest(word, [...ALL_KNOWN_TYPES]);
1821
+ if (!suggestion) return null;
1822
+ return emit(MISTYPED_CHART_TYPE_DX, i + 1, { word, resolved, suggestion });
1823
+ }
1824
+ return null;
1825
+ }
1657
1826
  function detectColonChartType(content) {
1658
1827
  const lines = content.split("\n");
1659
1828
  for (let i = 0; i < lines.length; i++) {
@@ -1705,9 +1874,8 @@ export {
1705
1874
  parseWordcloud,
1706
1875
  parseVenn,
1707
1876
  parseQuadrant,
1708
- looksLikeGantt,
1709
- looksLikeC4,
1710
- parseDgmoChartType,
1877
+ listDiagnosticCodes,
1878
+ getDiagnosticSpec,
1711
1879
  getRenderCategory,
1712
1880
  isExtendedChartType,
1713
1881
  getAllChartTypes,
@@ -1716,4 +1884,4 @@ export {
1716
1884
  knownChartTypeIds,
1717
1885
  parseDgmo
1718
1886
  };
1719
- //# sourceMappingURL=chunk-EBEFYSVZ.js.map
1887
+ //# sourceMappingURL=chunk-KABGWUND.js.map
@@ -28,21 +28,21 @@ import {
28
28
  } from "./chunk-IIEI7VK5.js";
29
29
  import {
30
30
  layoutInlineHeader
31
- } from "./chunk-2F7AG7LA.js";
31
+ } from "./chunk-MV4NT6ZS.js";
32
32
  import {
33
33
  serializeSvg
34
34
  } from "./chunk-LD2JSKU3.js";
35
35
  import {
36
36
  TITLE_FONT_SIZE,
37
37
  TITLE_FONT_WEIGHT
38
- } from "./chunk-VSPNH7LC.js";
38
+ } from "./chunk-VLC6WNRD.js";
39
39
  import {
40
40
  renderIntegratedLegend
41
- } from "./chunk-253E5ISJ.js";
41
+ } from "./chunk-3URBJ3MT.js";
42
42
  import {
43
43
  getLegendExtent,
44
44
  getMaxLegendReservedHeight
45
- } from "./chunk-LLZVRWVS.js";
45
+ } from "./chunk-A77XE4DY.js";
46
46
  import {
47
47
  FONT_FAMILY
48
48
  } from "./chunk-ICLB27PZ.js";
@@ -53,7 +53,7 @@ import {
53
53
  LEGEND_EYE_SIZE,
54
54
  LEGEND_GROUP_GAP,
55
55
  LEGEND_HEIGHT
56
- } from "./chunk-CKDYRVOC.js";
56
+ } from "./chunk-USSW5NJX.js";
57
57
  import {
58
58
  measureText
59
59
  } from "./chunk-YC6GVLTI.js";
@@ -62,18 +62,18 @@ import {
62
62
  } from "./chunk-IYULMRBE.js";
63
63
  import {
64
64
  tagAttrKey
65
- } from "./chunk-O2HU4AQN.js";
65
+ } from "./chunk-L5AFONQU.js";
66
66
  import {
67
67
  fillModeFromOptions,
68
68
  legendInlineRequested,
69
69
  legendSuppressed
70
- } from "./chunk-4CA7TJ44.js";
70
+ } from "./chunk-44GP7PD5.js";
71
71
  import {
72
72
  contrastText,
73
73
  mix,
74
74
  shapeFill,
75
75
  themeBaseBg
76
- } from "./chunk-AMQFJ7P7.js";
76
+ } from "./chunk-7HWY4QAJ.js";
77
77
 
78
78
  // src/sitemap/renderer.ts
79
79
  import * as d3Selection from "d3-selection";
@@ -456,9 +456,9 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
456
456
  }
457
457
  }
458
458
  async function renderSitemapForExport(content, theme, palette) {
459
- const { parseSitemap } = await import("./parser-66QZQYGE.js");
460
- const { layoutSitemap } = await import("./layout-LELNMRM5.js");
461
- const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-IAF6WVL4.js");
459
+ const { parseSitemap } = await import("./parser-OKB64MMN.js");
460
+ const { layoutSitemap } = await import("./layout-FGGUKDE7.js");
461
+ const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-BIV54XLS.js");
462
462
  const isDark = theme === "dark";
463
463
  const defaultCfg = getPalette(DEFAULT_PALETTE_ID);
464
464
  const effectivePalette = palette ?? (isDark ? defaultCfg.dark : defaultCfg.light);
@@ -508,4 +508,4 @@ export {
508
508
  renderSitemap,
509
509
  renderSitemapForExport
510
510
  };
511
- //# sourceMappingURL=chunk-YQIZIKCK.js.map
511
+ //# sourceMappingURL=chunk-KMOFMIMN.js.map
@@ -2,15 +2,15 @@ import {
2
2
  peelQuotedName,
3
3
  stripQuotes,
4
4
  tokenizeQuoteAware
5
- } from "./chunk-4CA7TJ44.js";
5
+ } from "./chunk-44GP7PD5.js";
6
6
  import {
7
7
  CATEGORICAL_COLOR_ORDER,
8
8
  RECOGNIZED_COLOR_NAMES,
9
9
  resolveColor
10
- } from "./chunk-XOGQY4EC.js";
10
+ } from "./chunk-2M4IGSCY.js";
11
11
  import {
12
12
  suggest
13
- } from "./chunk-5SI6T5A5.js";
13
+ } from "./chunk-BYU54C3S.js";
14
14
 
15
15
  // src/utils/tag-groups.ts
16
16
  function tagAttrKey(name) {
@@ -319,4 +319,4 @@ export {
319
319
  activeTagNoMatchMessage,
320
320
  matchTagBlockHeading
321
321
  };
322
- //# sourceMappingURL=chunk-O2HU4AQN.js.map
322
+ //# sourceMappingURL=chunk-L5AFONQU.js.map