@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,39 +1,53 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-ARGMQ3H4.js";
3
+ } from "./chunk-WWHECSYZ.js";
4
4
  import {
5
5
  resolveNotes
6
- } from "./chunk-FMDSF3OV.js";
6
+ } from "./chunk-QZAW5SFH.js";
7
7
  import {
8
8
  parseInArrowLabel
9
- } from "./chunk-FFUN5D66.js";
9
+ } from "./chunk-WF64MW5G.js";
10
10
  import {
11
11
  displayName,
12
12
  normalizeName
13
13
  } from "./chunk-NOTA6TEI.js";
14
+ import {
15
+ AUTO_TAG_COLOR_SENTINEL,
16
+ finalizeAutoTagColors,
17
+ matchTagBlockHeading,
18
+ stripDefaultModifier,
19
+ tagAttrKey,
20
+ validateTagGroupNames,
21
+ validateTagValues
22
+ } from "./chunk-AHTTKERF.js";
14
23
  import {
15
24
  ALL_CHART_TYPES,
16
25
  FILL_FAMILY_TOKENS,
17
26
  OPTION_NOCOLON_RE,
27
+ STATE_REGISTRY,
28
+ cutUnionMetadata,
29
+ extractColor,
18
30
  measureIndent,
19
31
  parseFirstLine,
20
- tryParseSharedOption
21
- } from "./chunk-BRENJ2BQ.js";
32
+ parseMetadataRegion,
33
+ tryParseSharedOption,
34
+ withTagAliases
35
+ } from "./chunk-3FRO35WW.js";
22
36
  import {
23
37
  resolveColorWithDiagnostic
24
- } from "./chunk-TLVIHFRO.js";
38
+ } from "./chunk-ZKPPI6BF.js";
25
39
  import {
26
40
  NAME_DIAGNOSTIC_CODES,
27
41
  formatDgmoError,
28
42
  makeDgmoError,
29
43
  nameMergedMessage,
30
44
  suggest
31
- } from "./chunk-CXK4DZH3.js";
45
+ } from "./chunk-4W2PE66Q.js";
32
46
 
33
47
  // src/graph/state-parser.ts
34
48
  var PSEUDOSTATE_ID = "pseudostate:[*]";
35
49
  var PSEUDOSTATE_LABEL = "[*]";
36
- var GROUP_BRACKET_RE = /^\[([^\]]+)\](?:\s+(red|orange|yellow|green|blue|purple|teal|cyan|gray|black|white))?(?:,?\s+collapsed:\s*(\S+))?\s*$/;
50
+ var GROUP_BRACKET_RE = /^\[([^\]]+)\](?:\s+(red|orange|yellow|green|blue|purple|teal|cyan|gray|black|white))?(?:,?\s+(collapsed)(?::\s*(\S+))?)?\s*$/;
37
51
  function splitArrows(line) {
38
52
  const segments = [];
39
53
  const arrowPositions = [];
@@ -126,6 +140,7 @@ function parseState(content, palette) {
126
140
  direction: "LR",
127
141
  nodes: [],
128
142
  edges: [],
143
+ tagGroups: [],
129
144
  options,
130
145
  diagnostics: [],
131
146
  error: null
@@ -144,6 +159,22 @@ function parseState(content, palette) {
144
159
  const groups = [];
145
160
  let contentStarted = false;
146
161
  let firstLineParsed = false;
162
+ const tagGroups = result.tagGroups;
163
+ let currentTagGroup = null;
164
+ const metaAliasMap = /* @__PURE__ */ new Map();
165
+ let registry = STATE_REGISTRY;
166
+ const refreshRegistry = () => {
167
+ registry = withTagAliases(STATE_REGISTRY, new Set(metaAliasMap.keys()));
168
+ };
169
+ function peelStateMeta(text) {
170
+ if (metaAliasMap.size === 0) return { text, meta: {} };
171
+ const cut = cutUnionMetadata(text, registry);
172
+ if (cut === -1) return { text, meta: {} };
173
+ return {
174
+ text: text.substring(0, cut).trimEnd(),
175
+ meta: parseMetadataRegion(text.substring(cut), metaAliasMap)
176
+ };
177
+ }
147
178
  const nameAliasMap = /* @__PURE__ */ new Map();
148
179
  function peelAlias(seg) {
149
180
  const trimmed = seg.trim();
@@ -151,10 +182,13 @@ function parseState(content, palette) {
151
182
  if (!m) return { seg: trimmed };
152
183
  return { seg: m[1].trim(), alias: m[2] };
153
184
  }
154
- function getOrCreateNode(ref, lineNumber) {
185
+ function getOrCreateNode(ref, lineNumber, meta) {
155
186
  const key = ref.id;
156
187
  const existing = nodeMap.get(key);
157
188
  if (existing) {
189
+ if (meta && Object.keys(meta).length > 0) {
190
+ existing.metadata = { ...existing.metadata ?? {}, ...meta };
191
+ }
158
192
  const incomingDisplay = displayName(ref.label);
159
193
  const existingDisplay = displayName(existing.label);
160
194
  if (incomingDisplay !== existingDisplay) {
@@ -180,7 +214,8 @@ function parseState(content, palette) {
180
214
  shape: ref.shape,
181
215
  lineNumber,
182
216
  ...ref.color && { color: ref.color },
183
- ...currentGroup && { group: currentGroup.id }
217
+ ...currentGroup && { group: currentGroup.id },
218
+ ...meta && Object.keys(meta).length > 0 && { metadata: { ...meta } }
184
219
  };
185
220
  nodeMap.set(key, node);
186
221
  result.nodes.push(node);
@@ -202,7 +237,10 @@ function parseState(content, palette) {
202
237
  const trimmed = raw.trim();
203
238
  const lineNumber = i + 1;
204
239
  const indent = measureIndent(raw);
205
- if (!trimmed) continue;
240
+ if (!trimmed) {
241
+ currentTagGroup = null;
242
+ continue;
243
+ }
206
244
  if (trimmed.startsWith("//")) continue;
207
245
  if (!firstLineParsed && !contentStarted) {
208
246
  const firstLineResult = parseFirstLine(trimmed);
@@ -222,6 +260,53 @@ function parseState(content, palette) {
222
260
  continue;
223
261
  }
224
262
  }
263
+ if (!contentStarted) {
264
+ const tagBlockMatch = matchTagBlockHeading(trimmed);
265
+ if (tagBlockMatch) {
266
+ currentTagGroup = {
267
+ name: tagBlockMatch.name,
268
+ ...tagBlockMatch.alias !== void 0 && {
269
+ alias: tagBlockMatch.alias
270
+ },
271
+ entries: [],
272
+ lineNumber
273
+ };
274
+ if (tagBlockMatch.alias) {
275
+ metaAliasMap.set(
276
+ normalizeName(tagBlockMatch.alias),
277
+ tagAttrKey(tagBlockMatch.name)
278
+ );
279
+ }
280
+ metaAliasMap.set(
281
+ normalizeName(tagBlockMatch.name),
282
+ tagAttrKey(tagBlockMatch.name)
283
+ );
284
+ refreshRegistry();
285
+ tagGroups.push(currentTagGroup);
286
+ continue;
287
+ }
288
+ if (currentTagGroup && indent > 0) {
289
+ const { text: cleanEntry, isDefault } = stripDefaultModifier(trimmed);
290
+ const { label, color } = extractColor(
291
+ cleanEntry,
292
+ palette,
293
+ result.diagnostics,
294
+ lineNumber
295
+ );
296
+ if (isDefault || currentTagGroup.entries.length === 0) {
297
+ currentTagGroup.defaultValue = label;
298
+ }
299
+ currentTagGroup.entries.push({
300
+ value: label,
301
+ // Bare value → sentinel; finalizeAutoTagColors assigns a
302
+ // deterministic palette color after the parse.
303
+ color: color ?? AUTO_TAG_COLOR_SENTINEL,
304
+ lineNumber
305
+ });
306
+ continue;
307
+ }
308
+ currentTagGroup = null;
309
+ }
225
310
  const noteResult = tryCollectNote(
226
311
  lines,
227
312
  i,
@@ -244,7 +329,7 @@ function parseState(content, palette) {
244
329
  result.diagnostics,
245
330
  palette
246
331
  ) : void 0;
247
- const groupCollapsed = groupMatch[3]?.toLowerCase() === "true";
332
+ const groupCollapsed = groupMatch[3] !== void 0 && (groupMatch[4] === void 0 || groupMatch[4].toLowerCase() === "true");
248
333
  currentGroup = {
249
334
  id: `group:${groupLabel.toLowerCase()}`,
250
335
  label: groupLabel,
@@ -258,8 +343,9 @@ function parseState(content, palette) {
258
343
  continue;
259
344
  }
260
345
  if (!contentStarted) {
261
- if (/^direction-tb$/i.test(trimmed)) {
262
- result.direction = "TB";
346
+ const dirBool = trimmed.match(/^direction-(lr|tb)$/i);
347
+ if (dirBool) {
348
+ result.direction = dirBool[1].toUpperCase();
263
349
  continue;
264
350
  }
265
351
  if (FILL_FAMILY_TOKENS.has(trimmed.toLowerCase())) {
@@ -278,7 +364,8 @@ function parseState(content, palette) {
278
364
  continue;
279
365
  }
280
366
  const optMatch = trimmed.match(OPTION_NOCOLON_RE);
281
- if (optMatch && !trimmed.includes("->")) {
367
+ const carriesTagMeta = metaAliasMap.size > 0 && cutUnionMetadata(trimmed, registry) !== -1;
368
+ if (optMatch && !trimmed.includes("->") && !carriesTagMeta) {
282
369
  const key = optMatch[1].toLowerCase();
283
370
  const value = optMatch[2].trim();
284
371
  if (key === "no-color") {
@@ -314,10 +401,11 @@ function parseState(content, palette) {
314
401
  ) : null;
315
402
  const segments = splitArrows(trimmed);
316
403
  if (segments.length === 1) {
317
- const peeled = peelAlias(segments[0]);
404
+ const withMeta = peelStateMeta(segments[0]);
405
+ const peeled = peelAlias(withMeta.text);
318
406
  const ref = parseStateNodeRef(peeled.seg);
319
407
  if (ref) {
320
- const node = getOrCreateNode(ref, lineNumber);
408
+ const node = getOrCreateNode(ref, lineNumber, withMeta.meta);
321
409
  if (peeled.alias) nameAliasMap.set(peeled.alias, node.id);
322
410
  node.lineNumber = lineNumber;
323
411
  indentStack.push({ nodeId: node.id, indent });
@@ -374,6 +462,46 @@ function parseState(content, palette) {
374
462
  indentStack.push({ nodeId: lastNodeId, indent });
375
463
  }
376
464
  }
465
+ if (tagGroups.length > 0) {
466
+ finalizeAutoTagColors(tagGroups, palette);
467
+ const defaults = [];
468
+ for (const group of tagGroups) {
469
+ if (group.defaultValue) {
470
+ defaults.push({
471
+ key: tagAttrKey(group.name),
472
+ value: group.defaultValue
473
+ });
474
+ }
475
+ }
476
+ const taggable = result.nodes.filter(
477
+ (n) => n.shape !== "pseudostate"
478
+ );
479
+ for (const node of taggable) {
480
+ const meta = { ...node.metadata ?? {} };
481
+ for (const { key, value } of defaults) {
482
+ if (!(key in meta)) meta[key] = value;
483
+ }
484
+ node.metadata = meta;
485
+ }
486
+ validateTagValues(
487
+ taggable.map((n) => ({
488
+ metadata: n.metadata ?? {},
489
+ lineNumber: n.lineNumber
490
+ })),
491
+ tagGroups,
492
+ (line, message) => result.diagnostics.push(makeDgmoError(line, message, "warning")),
493
+ suggest
494
+ );
495
+ validateTagGroupNames(
496
+ tagGroups,
497
+ (line, message) => result.diagnostics.push(makeDgmoError(line, message, "warning")),
498
+ (line, message) => {
499
+ const diag = makeDgmoError(line, message);
500
+ result.diagnostics.push(diag);
501
+ if (!result.error) result.error = formatDgmoError(diag);
502
+ }
503
+ );
504
+ }
377
505
  if (groups.length > 0) result.groups = groups;
378
506
  if (notes.length > 0) {
379
507
  result.notes = notes;
@@ -415,4 +543,4 @@ export {
415
543
  parseState,
416
544
  looksLikeState
417
545
  };
418
- //# sourceMappingURL=chunk-ROOE4R4Y.js.map
546
+ //# sourceMappingURL=chunk-T7Y554OK.js.map
@@ -0,0 +1,218 @@
1
+ // src/chart-types.ts
2
+ var chartTypes = [
3
+ // ── Tier 1 — Narrative / architecture diagrams ────────────
4
+ {
5
+ id: "journey-map",
6
+ description: "User experience flow with emotion scores, phases, and annotations"
7
+ },
8
+ {
9
+ id: "c4",
10
+ description: "System architecture (context, container, component, deployment)"
11
+ },
12
+ {
13
+ id: "er",
14
+ description: "Database schemas and relationships"
15
+ },
16
+ {
17
+ id: "class",
18
+ description: "UML class hierarchies"
19
+ },
20
+ {
21
+ id: "sequence",
22
+ description: "Message request and response interaction flows",
23
+ fallback: true
24
+ },
25
+ {
26
+ id: "state",
27
+ description: "State machine / lifecycle transitions"
28
+ },
29
+ {
30
+ id: "infra",
31
+ description: "Infrastructure traffic flow with RPS computation"
32
+ },
33
+ {
34
+ id: "gantt",
35
+ description: "Project scheduling with task dependencies and milestones"
36
+ },
37
+ {
38
+ id: "pert",
39
+ description: "Project network with three-point estimates, critical path, and uncertainty (Beta-PERT, Monte Carlo)"
40
+ },
41
+ {
42
+ id: "swimlane",
43
+ description: "Cross-functional process flow with lanes, phases and gateways (BPMN-style)"
44
+ },
45
+ {
46
+ id: "version-control",
47
+ description: "Git / version-control branch-and-merge graph: commits, branches, merges, rebase, HEAD and remote-tracking (gitGraph-style)"
48
+ },
49
+ // ── Tier 2 — Specialized structural diagrams ──────────────
50
+ {
51
+ id: "timeline",
52
+ description: "Events, eras, and date ranges"
53
+ },
54
+ {
55
+ id: "event-line",
56
+ description: "Annotated narrative timeline \u2014 events on a horizontal line with descriptions (not the date-scaled timeline)"
57
+ },
58
+ {
59
+ id: "body",
60
+ description: "Human anatomy figure annotated by muscle/bone/joint name \u2014 for medical, exercise, and educational diagrams"
61
+ },
62
+ {
63
+ id: "org",
64
+ description: "Reporting hierarchy"
65
+ },
66
+ {
67
+ id: "family",
68
+ description: "Family tree / genealogy: unions (couples), children, remarriage, adoption, and GEDCOM-style metadata"
69
+ },
70
+ {
71
+ id: "sitemap",
72
+ description: "Site / app navigation structure"
73
+ },
74
+ {
75
+ id: "bracket",
76
+ description: "Single-elimination tournament bracket: winners auto-advance up a tree; seed the field for a day-0 skeleton or list results for a casual bracket, with two sides mirroring inward to a championship"
77
+ },
78
+ {
79
+ id: "kanban",
80
+ description: "Task board columns"
81
+ },
82
+ {
83
+ id: "raci",
84
+ description: "Tasks \xD7 roles responsibility matrix with constraint linting"
85
+ },
86
+ {
87
+ id: "tech-radar",
88
+ description: "Technology adoption quadrants (adopt/trial/assess/hold)"
89
+ },
90
+ {
91
+ id: "mindmap",
92
+ description: "Radial hierarchy of ideas branching from a central topic"
93
+ },
94
+ {
95
+ id: "wireframe",
96
+ description: "Low-fidelity UI layout with panels, controls, and annotations"
97
+ },
98
+ {
99
+ id: "cycle",
100
+ description: "Cyclical process visualization (PDCA, OODA, DevOps loops)"
101
+ },
102
+ {
103
+ id: "pyramid",
104
+ description: "Stacked hierarchy of layers with descriptions (Maslow, DIKW)"
105
+ },
106
+ {
107
+ id: "ring",
108
+ description: "Concentric rings showing nested or hierarchical categories (read core-out)"
109
+ },
110
+ {
111
+ id: "treemap",
112
+ description: "Nested rectangles sized by value \u2014 show a hierarchy\u2019s proportions (budgets, disk usage, portfolios) with color by category, value heatmap, or branch"
113
+ },
114
+ {
115
+ id: "block",
116
+ description: "Block diagram: an author-controlled grid of rectangular blocks with nested, collapsible containers \u2014 system/hardware/architecture layouts where the 2-D arrangement is the meaning"
117
+ },
118
+ {
119
+ id: "sketch",
120
+ description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor"
121
+ },
122
+ {
123
+ id: "goal",
124
+ description: "Single progress-toward-a-target value (now vs target) as a progress bar, thermometer, or gauge \u2014 KPIs, fundraising, quotas, completion"
125
+ },
126
+ {
127
+ id: "countdown",
128
+ description: 'Live "N days until X" that ticks every second and is accurate on every load \u2014 trip dates, launches, deadlines; the only dynamic chart type'
129
+ },
130
+ {
131
+ id: "clock",
132
+ description: "Live world-clock board: current time for people/places across time zones, ticking every second, with optional working-hours status and sundown line"
133
+ },
134
+ {
135
+ id: "map",
136
+ description: "Geographic concept map: highlight/score regions, drop points of interest, connect with routes or edges"
137
+ },
138
+ // ── Tier 3 — Specialized analytical charts ────────────────
139
+ {
140
+ id: "quadrant",
141
+ description: "2x2 positioning matrix"
142
+ },
143
+ {
144
+ id: "venn",
145
+ description: "Set overlaps"
146
+ },
147
+ {
148
+ id: "funnel",
149
+ description: "Conversion pipeline"
150
+ },
151
+ {
152
+ id: "slope",
153
+ description: "Change between 2 time periods"
154
+ },
155
+ {
156
+ id: "sankey",
157
+ description: "Flow / allocation visualization"
158
+ },
159
+ {
160
+ id: "arc",
161
+ description: "Network relationships (linear or circular via `layout`)"
162
+ },
163
+ {
164
+ id: "wordcloud",
165
+ description: "Term frequency visualization"
166
+ },
167
+ {
168
+ id: "heatmap",
169
+ description: "Matrix intensity visualization"
170
+ },
171
+ {
172
+ id: "function",
173
+ description: "Mathematical expressions"
174
+ },
175
+ // ── Tier 4 — General-purpose data charts ──────────────────
176
+ {
177
+ id: "bar",
178
+ description: "Categorical comparisons for 3 - 5 figures",
179
+ fallback: true
180
+ },
181
+ {
182
+ id: "line",
183
+ description: "Trends over time",
184
+ fallback: true
185
+ },
186
+ {
187
+ id: "pie",
188
+ description: "Part-to-whole proportions"
189
+ },
190
+ {
191
+ id: "radar",
192
+ description: "Multi-dimensional metrics"
193
+ },
194
+ {
195
+ id: "polar-area",
196
+ description: "Radial bar chart"
197
+ },
198
+ {
199
+ id: "scatter",
200
+ description: "2D data points or bubble chart"
201
+ },
202
+ // ── Tier 5 — Generic catch-alls (listed last on purpose) ──
203
+ {
204
+ id: "flowchart",
205
+ description: "Decision trees and process flows",
206
+ fallback: true
207
+ },
208
+ {
209
+ id: "boxes-and-lines",
210
+ description: "General-purpose node-edge diagrams with groups and tags",
211
+ fallback: true
212
+ }
213
+ ];
214
+
215
+ export {
216
+ chartTypes
217
+ };
218
+ //# sourceMappingURL=chunk-TGOMHUOV.js.map
@@ -1,12 +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
- wrapDescriptionLines
6
- } from "./chunk-BMR4CIEO.js";
7
- import {
8
- renderNodeCard
9
- } from "./chunk-OTOHI4JO.js";
10
7
  import {
11
8
  CARD_RADIUS,
12
9
  HEADER_HEIGHT,
@@ -14,12 +11,15 @@ import {
14
11
  NODE_STROKE_WIDTH,
15
12
  SEPARATOR_GAP
16
13
  } from "./chunk-3CIOJ5YJ.js";
14
+ import {
15
+ wrapDescriptionLines
16
+ } from "./chunk-BMR4CIEO.js";
17
17
  import {
18
18
  formatDateLabel
19
- } from "./chunk-7KINELPI.js";
19
+ } from "./chunk-4ZIKWVSQ.js";
20
20
  import {
21
21
  renderIntegratedLegend
22
- } from "./chunk-AUIM2NVH.js";
22
+ } from "./chunk-2NZOHEP4.js";
23
23
  import {
24
24
  TITLE_FONT_SIZE,
25
25
  TITLE_FONT_WEIGHT,
@@ -31,21 +31,21 @@ import {
31
31
  import {
32
32
  CHAR_WIDTH_RATIO,
33
33
  wrapTextToWidth
34
- } from "./chunk-WCT3NYCV.js";
34
+ } from "./chunk-4ASYQ347.js";
35
35
  import {
36
36
  contrastText,
37
37
  getSeriesColors,
38
38
  mix,
39
39
  shapeFill,
40
40
  themeBaseBg
41
- } from "./chunk-WBM7ZNDI.js";
41
+ } from "./chunk-JYDMBWRP.js";
42
42
  import {
43
43
  resolveActiveTagGroup,
44
44
  resolveTagColor
45
- } from "./chunk-HHKO6SKY.js";
45
+ } from "./chunk-AHTTKERF.js";
46
46
  import {
47
47
  resolveColor
48
- } from "./chunk-TLVIHFRO.js";
48
+ } from "./chunk-ZKPPI6BF.js";
49
49
 
50
50
  // src/event-line/renderer.ts
51
51
  import * as d3Selection from "d3-selection";
@@ -71,6 +71,8 @@ var DATE_SUBTITLE_H = 15;
71
71
  var DATE_SUBTITLE_FONT = 10;
72
72
  var SHELF_TINT = 13;
73
73
  var SHELF_EDGE = 4;
74
+ var SHELF_EDGE_STYLE = "spine";
75
+ var SHELF_LIP = 2;
74
76
  var ERA_BLOCK = 30;
75
77
  var ERA_BRACKET_CAP = 8;
76
78
  var ERA_BRACKET_PAD = 14;
@@ -535,8 +537,21 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
535
537
  "fill",
536
538
  parsed.options.fillMode ? p.color : mix(p.color, themeBaseBg(palette, isDark), SHELF_TINT)
537
539
  );
538
- const edgeY = titleNearTop ? shelfTop : shelfTop + shelfH - SHELF_EDGE;
539
- cardG.append("rect").attr("x", 0).attr("y", edgeY).attr("width", CARD_W).attr("height", SHELF_EDGE).attr("clip-path", `url(#${clipId})`).attr("fill", p.color).attr("fill-opacity", p.future ? 0.4 : 1);
540
+ if (SHELF_EDGE_STYLE !== "none" && !parsed.options.fillMode) {
541
+ const lip = SHELF_EDGE_STYLE === "left" ? {
542
+ // vertical lip on the spine-relative leading edge
543
+ x: 0,
544
+ y: shelfTop,
545
+ width: SHELF_LIP,
546
+ height: shelfH
547
+ } : {
548
+ x: 0,
549
+ y: titleNearTop ? shelfTop : shelfTop + shelfH - SHELF_LIP,
550
+ width: CARD_W,
551
+ height: SHELF_LIP
552
+ };
553
+ cardG.append("rect").attr("x", lip.x).attr("y", lip.y).attr("width", lip.width).attr("height", lip.height).attr("clip-path", `url(#${clipId})`).attr("fill", p.color).attr("fill-opacity", p.future ? 0.4 : 1);
554
+ }
540
555
  const shelfText = parsed.options.fillMode ? contrastText(p.color, palette.textOnFillLight, palette.textOnFillDark) : p.color;
541
556
  const titleMid = headBandTop + p.headerH / 2;
542
557
  const titleTop = titleMid - (p.titleLines.length - 1) * TITLE_LINE_H / 2;
@@ -982,4 +997,4 @@ export {
982
997
  focusEventLine,
983
998
  renderEventLineForExport
984
999
  };
985
- //# sourceMappingURL=chunk-K2I2XOZD.js.map
1000
+ //# sourceMappingURL=chunk-TJN2OIVG.js.map
@@ -5,12 +5,12 @@ import {
5
5
  parseFirstLine,
6
6
  splitNameAndMeta,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-BRENJ2BQ.js";
8
+ } from "./chunk-3FRO35WW.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail,
12
12
  suggest
13
- } from "./chunk-CXK4DZH3.js";
13
+ } from "./chunk-4W2PE66Q.js";
14
14
 
15
15
  // src/tech-radar/parser.ts
16
16
  var VALID_POSITIONS = [
@@ -28,11 +28,15 @@ var POSITION_ORDER = [
28
28
  ];
29
29
  var KNOWN_OPTIONS = /* @__PURE__ */ new Set([]);
30
30
  var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
31
+ // Blip listing is default-on (decision #48): `no-blip-legend` suppresses it;
32
+ // `show-blip-legend` is the parse-accepted legacy no-op.
33
+ "no-blip-legend",
31
34
  "show-blip-legend",
32
35
  "fill-tint",
33
36
  "fill-solid",
34
37
  "fill-outline",
35
- "no-title"
38
+ "no-title",
39
+ "no-legend"
36
40
  ]);
37
41
  function parseTechRadar(content) {
38
42
  const result = {
@@ -334,4 +338,4 @@ function assignGlobalNumbers(result) {
334
338
  export {
335
339
  parseTechRadar
336
340
  };
337
- //# sourceMappingURL=chunk-VILVLS7P.js.map
341
+ //# sourceMappingURL=chunk-TLNVYWPA.js.map
@@ -1,16 +1,16 @@
1
+ import {
2
+ FONT_FAMILY
3
+ } from "./chunk-6KFWC4CO.js";
1
4
  import {
2
5
  encodeDiagramUrl
3
- } from "./chunk-J7KJR3R6.js";
6
+ } from "./chunk-U7VO6JAA.js";
4
7
  import {
5
8
  parseDgmoChartType
6
- } from "./chunk-ZEF5M5MB.js";
7
- import {
8
- FONT_FAMILY
9
- } from "./chunk-6KFWC4CO.js";
9
+ } from "./chunk-SBOAZ7YK.js";
10
10
  import {
11
11
  measureText,
12
12
  truncateText
13
- } from "./chunk-WCT3NYCV.js";
13
+ } from "./chunk-4ASYQ347.js";
14
14
 
15
15
  // src/error-card.ts
16
16
  var DOCS_BASE = "https://diagrammo.app/docs";
@@ -428,4 +428,4 @@ export {
428
428
  defaultEmbedBackground,
429
429
  getEmbedSvgViewBox
430
430
  };
431
- //# sourceMappingURL=chunk-GJFAMOGK.js.map
431
+ //# sourceMappingURL=chunk-U4IN6AHE.js.map