@diagrammo/dgmo 0.52.0 → 0.53.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 (329) 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 +65 -230
  6. package/dist/advanced.js +278 -611
  7. package/dist/analyzer-TDN5KJFP.js +15 -0
  8. package/dist/auto.css +14 -6
  9. package/dist/auto.js +142 -132
  10. package/dist/auto.mjs +1117 -452
  11. package/dist/block.css +14 -6
  12. package/dist/block.js +85 -72
  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 +105 -0
  17. package/dist/charts-d3-DH2XA45I.js +26 -0
  18. package/dist/{chunk-QJMKPUYK.js → chunk-22OQWBWD.js} +14 -7
  19. package/dist/{chunk-5NGAO4QK.js → chunk-27STWBOK.js} +10 -8
  20. package/dist/{chunk-QGATPIPX.js → chunk-2QC4HXCY.js} +31 -17
  21. package/dist/{chunk-HFMYN6N2.js → chunk-3B2GXZCX.js} +4 -3
  22. package/dist/{chunk-6HQH6JZE.js → chunk-3BEKKRH5.js} +10 -10
  23. package/dist/{chunk-AL672HNE.js → chunk-3CZLWOCI.js} +17 -7
  24. package/dist/{chunk-J7TLCB2Q.js → chunk-3IUHKMJI.js} +2 -2
  25. package/dist/{chunk-7L4UJOY6.js → chunk-3TYUXC7D.js} +2 -2
  26. package/dist/{chunk-Y2ZE3MSG.js → chunk-43E26CDA.js} +2 -2
  27. package/dist/{chunk-YTMTPUH4.js → chunk-4ASVFYB2.js} +6 -6
  28. package/dist/{chunk-WCT3NYCV.js → chunk-4ASYQ347.js} +33 -8
  29. package/dist/{chunk-ZNWAYU6N.js → chunk-4K42RUGC.js} +33 -9
  30. package/dist/{chunk-I5IGB56C.js → chunk-4QV26TEG.js} +41 -1
  31. package/dist/{chunk-QOOUC2J5.js → chunk-4RGZFA7H.js} +2 -2
  32. package/dist/{chunk-CXK4DZH3.js → chunk-4W2PE66Q.js} +12 -2
  33. package/dist/{chunk-CIRFIL4M.js → chunk-4WGMGKCZ.js} +13 -13
  34. package/dist/{chunk-JED6ZDEE.js → chunk-5HWPEYWB.js} +2 -2
  35. package/dist/{chunk-VQOCMUWI.js → chunk-65V6IRFN.js} +16 -14
  36. package/dist/{chunk-R3YSD62R.js → chunk-6AUZPPAV.js} +3 -3
  37. package/dist/{chunk-FQ7HTV52.js → chunk-6DCOIN4W.js} +33 -5
  38. package/dist/{chunk-MUE65OTD.js → chunk-6HTRCTAS.js} +4 -4
  39. package/dist/{chunk-TJVLKNGR.js → chunk-6KY7OCZC.js} +5 -5
  40. package/dist/{chunk-YAA6IID3.js → chunk-774C2FF3.js} +2 -2
  41. package/dist/{chunk-UBLHQTLV.js → chunk-7GUF6SDR.js} +15 -14
  42. package/dist/{chunk-5HILBT7X.js → chunk-7JDTNFAK.js} +3 -3
  43. package/dist/{chunk-QBZYACOG.js → chunk-ADYKAKE3.js} +3 -3
  44. package/dist/{chunk-H7KENAZO.js → chunk-AHXIMHDQ.js} +74 -14
  45. package/dist/chunk-AIMLCDAO.js +404 -0
  46. package/dist/{chunk-4IHAV6O7.js → chunk-ALYZ3MAA.js} +4 -4
  47. package/dist/{chunk-ROOE4R4Y.js → chunk-AN2DQB3G.js} +146 -18
  48. package/dist/{chunk-GCYTI3DE.js → chunk-AZNXGWDC.js} +56 -10
  49. package/dist/{chunk-3LK5DNED.js → chunk-B4XS2AF2.js} +3 -3
  50. package/dist/{chunk-3HF5YEFJ.js → chunk-BD3WGY4T.js} +4 -4
  51. package/dist/{chunk-4AQRFDXL.js → chunk-BFDVEO5R.js} +2 -2
  52. package/dist/{chunk-REJAIQ5S.js → chunk-BR7AYN76.js} +8 -8
  53. package/dist/{chunk-P3NRSSUU.js → chunk-BULHGPHK.js} +3 -3
  54. package/dist/{chunk-VILVLS7P.js → chunk-CK2GMDXD.js} +8 -4
  55. package/dist/{chunk-HHKO6SKY.js → chunk-CMVZWP32.js} +3 -3
  56. package/dist/{chunk-GJFAMOGK.js → chunk-CQFNIIQN.js} +7 -7
  57. package/dist/{chunk-FT3ZYWET.js → chunk-DWUMPMV2.js} +11 -10
  58. package/dist/{chunk-USZW2HHU.js → chunk-EQW6HOP4.js} +4 -3
  59. package/dist/{chunk-Z5QVYKR7.js → chunk-FFXCKZOU.js} +4 -4
  60. package/dist/{chunk-WRNFDFPU.js → chunk-FGDSTT3F.js} +2 -2
  61. package/dist/{chunk-FY5MSZAP.js → chunk-FLDC7ZAK.js} +21 -6
  62. package/dist/{chunk-AAXZDUOV.js → chunk-FT7TPPZ5.js} +17 -16
  63. package/dist/{chunk-3QD7VP3U.js → chunk-FUKNRLIJ.js} +14 -7
  64. package/dist/{chunk-3YRPZ7ZZ.js → chunk-FXCB7H5O.js} +4 -4
  65. package/dist/{chunk-SMRFPVLQ.js → chunk-GABSL6TH.js} +4 -4
  66. package/dist/{chunk-BKVOYV6I.js → chunk-GAWKIIPO.js} +17 -17
  67. package/dist/{chunk-HWX6ZHF3.js → chunk-GMAH572Z.js} +6 -6
  68. package/dist/{chunk-MUVJ57EP.js → chunk-GMIJ35PW.js} +23 -20
  69. package/dist/{chunk-7QE3XMRK.js → chunk-GQ644SPD.js} +18 -18
  70. package/dist/{chunk-5QKQSSPO.js → chunk-GRM2A4BG.js} +4 -4
  71. package/dist/{chunk-J7KJR3R6.js → chunk-GWQJKTFS.js} +133 -696
  72. package/dist/{chunk-OTOHI4JO.js → chunk-H3HFC3SQ.js} +2 -2
  73. package/dist/{chunk-SWSIKFEB.js → chunk-HE5J53SZ.js} +4 -4
  74. package/dist/{chunk-7BIZCTAX.js → chunk-HNBY6CNV.js} +3 -3
  75. package/dist/{chunk-J76PIKAT.js → chunk-HO3RCNF6.js} +3 -3
  76. package/dist/{chunk-44VCIPHF.js → chunk-HORZ5H2L.js} +26 -23
  77. package/dist/{chunk-MX2EY5Y7.js → chunk-HOXKNRON.js} +2 -2
  78. package/dist/{chunk-LTXOLDUZ.js → chunk-I64ECJX3.js} +12 -5
  79. package/dist/{chunk-4YFKQ5WT.js → chunk-IQJCVREL.js} +8 -8
  80. package/dist/{chunk-YIBAWQGJ.js → chunk-J7HI6G3G.js} +7 -7
  81. package/dist/{chunk-ICPJPQ5C.js → chunk-JHOAH4TI.js} +3 -3
  82. package/dist/{chunk-6EJITS44.js → chunk-JTMSWEIW.js} +6 -6
  83. package/dist/{chunk-WBM7ZNDI.js → chunk-JYDMBWRP.js} +35 -18
  84. package/dist/{chunk-7DF4J4RL.js → chunk-KKHCNSKK.js} +17 -11
  85. package/dist/{chunk-4UNQ6X24.js → chunk-KUSAVOWZ.js} +4 -4
  86. package/dist/{chunk-77FGAVZC.js → chunk-LC3FFD43.js} +21 -19
  87. package/dist/{chunk-INE5YJBZ.js → chunk-LHILKFDP.js} +10 -10
  88. package/dist/{chunk-ONU3U4GL.js → chunk-LQHVDZYC.js} +52 -16
  89. package/dist/{chunk-75G3Q4DK.js → chunk-MA3HJZHB.js} +5 -5
  90. package/dist/{chunk-QVENJMNX.js → chunk-MEQYZZFR.js} +2 -2
  91. package/dist/{chunk-IM6PDDCE.js → chunk-NNUMX6WX.js} +42 -12
  92. package/dist/{chunk-FQMUHRVC.js → chunk-NNYFQOTK.js} +14 -13
  93. package/dist/{chunk-H6PI3KJT.js → chunk-ODUT5WMC.js} +2 -2
  94. package/dist/{chunk-K4EOKJA6.js → chunk-P3H7QVDH.js} +42 -15
  95. package/dist/{chunk-FUPF2UYQ.js → chunk-PIXZTCKH.js} +51 -108
  96. package/dist/{chunk-BPY242XU.js → chunk-PKNNHU7H.js} +19 -8
  97. package/dist/{chunk-BPIZNB5O.js → chunk-PT4SW76W.js} +11 -11
  98. package/dist/{chunk-UNURMIQO.js → chunk-PV2QO7QL.js} +4 -4
  99. package/dist/{chunk-LGT3PZCJ.js → chunk-PYO4TJJ3.js} +17 -17
  100. package/dist/{chunk-EMLPOL77.js → chunk-Q7AH665U.js} +15 -8
  101. package/dist/{chunk-LBMS4AW6.js → chunk-QAALSCKI.js} +14 -14
  102. package/dist/{chunk-JRCOYRRH.js → chunk-QI3BOLQB.js} +8 -8
  103. package/dist/{chunk-CCNDLW7Z.js → chunk-QWIBT6DS.js} +13 -13
  104. package/dist/{chunk-GU46PPT3.js → chunk-QXGACPS2.js} +5 -5
  105. package/dist/{chunk-FMDSF3OV.js → chunk-QZAW5SFH.js} +2 -2
  106. package/dist/{chunk-QHXCAEMX.js → chunk-R5NH5BZG.js} +8 -8
  107. package/dist/{chunk-5223KXFD.js → chunk-RJ5LBZ5U.js} +7 -7
  108. package/dist/{chunk-PRI2OD4E.js → chunk-RW5PEJ7D.js} +11 -6
  109. package/dist/{chunk-DYWQFQJP.js → chunk-SG4PRYO3.js} +22 -20
  110. package/dist/{chunk-NNS4E7CW.js → chunk-SGPFVDUL.js} +15 -6
  111. package/dist/{chunk-ZEF5M5MB.js → chunk-SQCBSFT5.js} +72 -74
  112. package/dist/{chunk-3HGU63UY.js → chunk-U7NKYLX2.js} +14 -13
  113. package/dist/chunk-U7VO6JAA.js +566 -0
  114. package/dist/{chunk-ZJV7GYR4.js → chunk-UFQJMOVZ.js} +10 -10
  115. package/dist/{chunk-Z72XRXD4.js → chunk-UJRTPOHH.js} +3 -3
  116. package/dist/{chunk-J6QROYDA.js → chunk-UK6DKJLD.js} +26 -10
  117. package/dist/{chunk-QZX5S6R3.js → chunk-UKP5HWB5.js} +149 -89
  118. package/dist/{chunk-T4A4TSTJ.js → chunk-UQRIKAMH.js} +21 -19
  119. package/dist/{chunk-TYS6CSS5.js → chunk-UU6LUYUH.js} +2 -2
  120. package/dist/{chunk-5BHJZH62.js → chunk-UVDCHR4E.js} +18 -6
  121. package/dist/{chunk-HQQNCY7W.js → chunk-VAO6ANGC.js} +5 -5
  122. package/dist/{chunk-6NYWYNBI.js → chunk-VGNIDAPQ.js} +4 -4
  123. package/dist/{chunk-VL2O2F3W.js → chunk-VHO3YBTB.js} +2 -2
  124. package/dist/{chunk-FHGVORFO.js → chunk-VIRANCNY.js} +14 -14
  125. package/dist/{chunk-XD6ZYURY.js → chunk-VJHBSPGF.js} +7 -14
  126. package/dist/{chunk-5RP7JRVP.js → chunk-VKNCC2GX.js} +12 -8
  127. package/dist/{chunk-TPFKKXCB.js → chunk-VRRDUYOK.js} +7 -7
  128. package/dist/{chunk-K2I2XOZD.js → chunk-W2DINCHL.js} +11 -11
  129. package/dist/{chunk-AUIM2NVH.js → chunk-W5KMNC5U.js} +8 -8
  130. package/dist/{chunk-FFUN5D66.js → chunk-WF64MW5G.js} +2 -2
  131. package/dist/{chunk-6LBQ7ELG.js → chunk-X3RXGSCZ.js} +40 -21
  132. package/dist/{chunk-HBPDFCQY.js → chunk-XEAQDIMF.js} +7 -6
  133. package/dist/{chunk-TTIM6YTT.js → chunk-XG4NWFPY.js} +17 -16
  134. package/dist/{chunk-7KINELPI.js → chunk-XQ4KN6JQ.js} +23 -23
  135. package/dist/{chunk-WBRZJOEC.js → chunk-XY3UDKKH.js} +4 -4
  136. package/dist/{chunk-5SEVICBT.js → chunk-YG2BEIQU.js} +14 -13
  137. package/dist/{chunk-BRENJ2BQ.js → chunk-YJVA3QUU.js} +24 -4
  138. package/dist/{chunk-KGVZ5VGH.js → chunk-YR43LJT5.js} +16 -15
  139. package/dist/{chunk-TLVIHFRO.js → chunk-ZKPPI6BF.js} +2 -2
  140. package/dist/{chunk-ARGMQ3H4.js → chunk-ZXUAPTCK.js} +3 -3
  141. package/dist/cli.cjs +156 -154
  142. package/dist/clock.js +9 -1
  143. package/dist/countdown.js +4 -3
  144. package/dist/dgmo-router-B4S23EBH.js +86 -0
  145. package/dist/dimensions-K6PGYYGT.js +22 -0
  146. package/dist/editor.js +33 -5
  147. package/dist/element.js +142 -132
  148. package/dist/element.mjs +1117 -452
  149. package/dist/flowchart-parser-LALR6J6F.js +21 -0
  150. package/dist/{flowchart-renderer-MNCDS7MV.js → flowchart-renderer-DXYB5YRF.js} +14 -14
  151. package/dist/highlight.js +37 -6
  152. package/dist/index.d.ts +4 -2
  153. package/dist/index.js +78 -73
  154. package/dist/layout-3BVDMKXI.js +15 -0
  155. package/dist/layout-3M5UYJHY.js +14 -0
  156. package/dist/{layout-2L3WMRYU.js → layout-3V2A4MUE.js} +8 -8
  157. package/dist/layout-4IHCMWZN.js +19 -0
  158. package/dist/layout-5XGYNYVT.js +9 -0
  159. package/dist/layout-AZUPXWSK.js +15 -0
  160. package/dist/{layout-F4WO357A.js → layout-CAAKQX4W.js} +3 -3
  161. package/dist/{layout-A5UHRWVH.js → layout-CB3XWCOI.js} +3 -3
  162. package/dist/{layout-OAC4PEAC.js → layout-E6HR6PXH.js} +7 -7
  163. package/dist/{layout-7QXCNOVS.js → layout-HBWT2G23.js} +3 -3
  164. package/dist/layout-KPQWJNAG.js +14 -0
  165. package/dist/layout-OL2XFJXA.js +17 -0
  166. package/dist/layout-WCAIKGZG.js +19 -0
  167. package/dist/layout-WSMPBQ4Q.js +17 -0
  168. package/dist/layout-ZE5DRJWX.js +20 -0
  169. package/dist/{layout-search-55FU6HD3.js → layout-search-34DPZD43.js} +51 -35
  170. package/dist/legend-constants-P5EQWRQQ.js +49 -0
  171. package/dist/{palettes-UDLZ2SA4.js → palettes-FGTNFARW.js} +4 -4
  172. package/dist/{parser-EYCKNKQA.js → parser-275KP7JO.js} +8 -8
  173. package/dist/parser-27Z76SN3.js +22 -0
  174. package/dist/parser-3CODK6RG.js +15 -0
  175. package/dist/{parser-YKYMQG3B.js → parser-3KIGEEJM.js} +6 -6
  176. package/dist/parser-3VSWEKBF.js +15 -0
  177. package/dist/parser-4E4I3GNT.js +13 -0
  178. package/dist/parser-5FGJSQNS.js +12 -0
  179. package/dist/parser-5HQXCNOS.js +12 -0
  180. package/dist/parser-5QPFOB5F.js +12 -0
  181. package/dist/parser-6B6SSZT7.js +11 -0
  182. package/dist/parser-6PPHAXXH.js +14 -0
  183. package/dist/parser-7JHWEWXM.js +13 -0
  184. package/dist/{parser-DQAFLUJB.js → parser-7JVIDLLR.js} +7 -7
  185. package/dist/parser-CKA3QMAG.js +18 -0
  186. package/dist/parser-CRKLXGW7.js +13 -0
  187. package/dist/parser-EXNBDNGY.js +11 -0
  188. package/dist/parser-FF4BMRSB.js +16 -0
  189. package/dist/parser-FOOFEJQU.js +13 -0
  190. package/dist/parser-G26MTBFS.js +11 -0
  191. package/dist/parser-GKP2MHHL.js +11 -0
  192. package/dist/parser-GN2MM5CC.js +11 -0
  193. package/dist/parser-IKWK2ZU3.js +18 -0
  194. package/dist/parser-IVGHXLZP.js +14 -0
  195. package/dist/parser-NNIL3HXU.js +11 -0
  196. package/dist/parser-RNLTBIJ6.js +19 -0
  197. package/dist/parser-UWRX52PC.js +16 -0
  198. package/dist/parser-VOERD6XR.js +14 -0
  199. package/dist/parser-XNKJCMMA.js +13 -0
  200. package/dist/parser-XVPTRWZ4.js +15 -0
  201. package/dist/parser-YSLNDFLV.js +22 -0
  202. package/dist/{parser-ZL5QUFVH.js → parser-ZGNXYFPS.js} +5 -5
  203. package/dist/parser-ZQDQTB4X.js +20 -0
  204. package/dist/pert.d.ts +2 -0
  205. package/dist/registry-CaSw0PSH.d.ts +350 -0
  206. package/dist/renderer-2C6DJRYN.js +24 -0
  207. package/dist/renderer-5MPN7CXZ.js +19 -0
  208. package/dist/renderer-6EN5XXJZ.js +27 -0
  209. package/dist/renderer-6WRYVM5R.js +24 -0
  210. package/dist/renderer-7NQSTQMQ.js +16 -0
  211. package/dist/renderer-7ZNVOVFG.js +16 -0
  212. package/dist/{renderer-DT4XRFEP.js → renderer-AK2WO4EI.js} +7 -7
  213. package/dist/renderer-COLQFSFV.js +26 -0
  214. package/dist/{renderer-3F7OS2AX.js → renderer-CWEFGEIC.js} +15 -15
  215. package/dist/renderer-D3BRNOMV.js +29 -0
  216. package/dist/renderer-HIFQVEJA.js +22 -0
  217. package/dist/renderer-JCZG6AYU.js +28 -0
  218. package/dist/{renderer-ZWIH4WDW.js → renderer-JTCX6PCG.js} +13 -13
  219. package/dist/renderer-JWGQSTMR.js +37 -0
  220. package/dist/{renderer-NHO46CT2.js → renderer-K7XLVPH5.js} +6 -6
  221. package/dist/renderer-KARQF3F3.js +22 -0
  222. package/dist/renderer-LVZAHRP6.js +34 -0
  223. package/dist/{renderer-CQY6ATOS.js → renderer-NE5W7CQP.js} +8 -8
  224. package/dist/renderer-QD2SJF2I.js +34 -0
  225. package/dist/renderer-RLMOTXZ6.js +37 -0
  226. package/dist/renderer-SQ54MDSA.js +26 -0
  227. package/dist/{renderer-HSHHVYWF.js → renderer-TYHGXAVT.js} +7 -7
  228. package/dist/renderer-UKXW2QPE.js +23 -0
  229. package/dist/renderer-UPF7NRTI.js +28 -0
  230. package/dist/renderer-VMH6L6CP.js +24 -0
  231. package/dist/{renderer-5DAKMIU2.js → renderer-WCWI4I6A.js} +5 -5
  232. package/dist/renderer-WFSUBKUL.js +25 -0
  233. package/dist/renderer-WNFXYYGL.js +21 -0
  234. package/dist/{renderer-KNFTTOBL.js → renderer-XTXSOK3L.js} +14 -14
  235. package/dist/renderer-YUKPS27O.js +24 -0
  236. package/dist/renderer-YUXGXGSW.js +27 -0
  237. package/dist/renderer-ZBTEX2JK.js +16 -0
  238. package/dist/renderer-radial-WF6VOUOD.js +21 -0
  239. package/dist/{resolver-EMTGNR3D.js → resolver-WFKZYBJ2.js} +4 -4
  240. package/dist/state-parser-L7DHZIQO.js +19 -0
  241. package/dist/state-renderer-TFEUOP4H.js +38 -0
  242. package/dist/{themes-32xj5ZTW.d.ts → themes-tbBkIVsn.d.ts} +2 -349
  243. package/docs/ai-integration.md +59 -58
  244. package/docs/language-reference.md +323 -286
  245. package/fonts/Inter-Bold.woff2 +0 -0
  246. package/fonts/Inter-Regular.woff2 +0 -0
  247. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +1 -2
  248. package/gallery/fixtures/boxes-and-lines.dgmo +1 -1
  249. package/gallery/fixtures/clock.dgmo +1 -1
  250. package/gallery/fixtures/event-line.dgmo +1 -1
  251. package/gallery/fixtures/gantt-full.dgmo +1 -1
  252. package/gallery/fixtures/gantt-sprints.dgmo +9 -9
  253. package/gallery/fixtures/gantt.dgmo +1 -1
  254. package/gallery/fixtures/legacy-syntax-backcompat.dgmo +16 -0
  255. package/gallery/fixtures/state-tags.dgmo +40 -0
  256. package/gallery/fixtures/swimlane.dgmo +1 -1
  257. package/gallery/fixtures/timeline-intraday.dgmo +1 -1
  258. package/package.json +5 -1
  259. package/dist/analyzer-BJ54GIFB.js +0 -15
  260. package/dist/calculator-LDYQCDDY.js +0 -11
  261. package/dist/charts-d3-MXEP6BNP.js +0 -26
  262. package/dist/dgmo-router-X7ZGAPIE.js +0 -86
  263. package/dist/dimensions-45H6JQEY.js +0 -22
  264. package/dist/flowchart-parser-UKELHBSB.js +0 -21
  265. package/dist/layout-46N4JJYK.js +0 -17
  266. package/dist/layout-A4XWNVID.js +0 -14
  267. package/dist/layout-AM2JWW3X.js +0 -15
  268. package/dist/layout-EE6GE46Y.js +0 -17
  269. package/dist/layout-G23F7LDH.js +0 -9
  270. package/dist/layout-GM4UGR7B.js +0 -19
  271. package/dist/layout-GQQJXNYH.js +0 -15
  272. package/dist/layout-IIE2S5FK.js +0 -20
  273. package/dist/layout-VMCRX66I.js +0 -14
  274. package/dist/layout-ZDOSXL5G.js +0 -19
  275. package/dist/parser-2ECN6JA2.js +0 -16
  276. package/dist/parser-4WTIHM5J.js +0 -11
  277. package/dist/parser-5H2BTSJQ.js +0 -11
  278. package/dist/parser-75KVXUNS.js +0 -16
  279. package/dist/parser-774AC53T.js +0 -13
  280. package/dist/parser-BE4YCSRU.js +0 -11
  281. package/dist/parser-CNGUQUQI.js +0 -11
  282. package/dist/parser-DEUUSQIN.js +0 -22
  283. package/dist/parser-FXISIU6A.js +0 -14
  284. package/dist/parser-GTB4XC7P.js +0 -18
  285. package/dist/parser-GVEPAUSD.js +0 -12
  286. package/dist/parser-HSQGTY4G.js +0 -19
  287. package/dist/parser-HVKRINUS.js +0 -11
  288. package/dist/parser-J5MIEYO4.js +0 -15
  289. package/dist/parser-KMZIXLDZ.js +0 -13
  290. package/dist/parser-LJHXWSXU.js +0 -14
  291. package/dist/parser-PT3W72G5.js +0 -15
  292. package/dist/parser-SBJQDPHL.js +0 -15
  293. package/dist/parser-SUWWWCMX.js +0 -12
  294. package/dist/parser-SXDRNZOA.js +0 -13
  295. package/dist/parser-UMILOW3M.js +0 -14
  296. package/dist/parser-UP3AZ367.js +0 -13
  297. package/dist/parser-WHPRV3X5.js +0 -20
  298. package/dist/parser-WX3UODSJ.js +0 -12
  299. package/dist/parser-XCIEN3KN.js +0 -13
  300. package/dist/parser-XIRTUMVN.js +0 -18
  301. package/dist/parser-YKCGIG45.js +0 -11
  302. package/dist/parser-ZGM2OJ6Y.js +0 -22
  303. package/dist/renderer-4QB4K7Q3.js +0 -24
  304. package/dist/renderer-5H4SY7YY.js +0 -22
  305. package/dist/renderer-5PIQPFOX.js +0 -16
  306. package/dist/renderer-6MU37QF5.js +0 -19
  307. package/dist/renderer-AQVMWJ4M.js +0 -27
  308. package/dist/renderer-BDDW6K7N.js +0 -24
  309. package/dist/renderer-BNB3VIDY.js +0 -26
  310. package/dist/renderer-CVW75CXL.js +0 -37
  311. package/dist/renderer-ERHBSTQT.js +0 -25
  312. package/dist/renderer-IDPVUFNB.js +0 -28
  313. package/dist/renderer-ILX6BGKR.js +0 -21
  314. package/dist/renderer-JP663HKG.js +0 -22
  315. package/dist/renderer-MVUZBESR.js +0 -16
  316. package/dist/renderer-N4EBR2FV.js +0 -28
  317. package/dist/renderer-NO2QJ5LZ.js +0 -27
  318. package/dist/renderer-OGFV5RXX.js +0 -34
  319. package/dist/renderer-PDLESJMS.js +0 -37
  320. package/dist/renderer-T4MTNINC.js +0 -24
  321. package/dist/renderer-TOUGFGTM.js +0 -24
  322. package/dist/renderer-U3KPD43Y.js +0 -34
  323. package/dist/renderer-X334IJU2.js +0 -26
  324. package/dist/renderer-Y5OAMOCR.js +0 -23
  325. package/dist/renderer-YONAKAJU.js +0 -16
  326. package/dist/renderer-YWMI6Y2U.js +0 -29
  327. package/dist/renderer-radial-7CGZMVMS.js +0 -21
  328. package/dist/state-parser-BATWAID2.js +0 -18
  329. package/dist/state-renderer-3FKZJ3LP.js +0 -34
@@ -5,6 +5,9 @@ import {
5
5
  import {
6
6
  wrapDescriptionLines
7
7
  } from "./chunk-BMR4CIEO.js";
8
+ import {
9
+ FONT_FAMILY
10
+ } from "./chunk-6KFWC4CO.js";
8
11
  import {
9
12
  DAY_MS,
10
13
  applyOrdinalTemplate,
@@ -19,18 +22,15 @@ import {
19
22
  sameDay,
20
23
  splitClockSeconds
21
24
  } from "./chunk-OQKP2X3D.js";
22
- import {
23
- FONT_FAMILY
24
- } from "./chunk-6KFWC4CO.js";
25
25
  import {
26
26
  contrastText,
27
27
  getSeriesColors,
28
28
  mix,
29
29
  themeBaseBg
30
- } from "./chunk-WBM7ZNDI.js";
30
+ } from "./chunk-JYDMBWRP.js";
31
31
  import {
32
32
  resolveColor
33
- } from "./chunk-TLVIHFRO.js";
33
+ } from "./chunk-ZKPPI6BF.js";
34
34
 
35
35
  // src/countdown/renderer.ts
36
36
  import * as d3Selection from "d3-selection";
@@ -43,8 +43,10 @@ function bakedHero(parsed, now) {
43
43
  if (parsed.expired !== null) return parsed.expired;
44
44
  const elapsed = -remaining;
45
45
  if (elapsed <= 0) return "Now!";
46
- if (parsed.units === "compound" || parsed.units === "human")
47
- return `${formatCompound(resolved, now, 2, tz)} ago`;
46
+ if (parsed.units === "compound" || parsed.units === "human") {
47
+ const [a, b] = parsed.hasTime ? [resolved, now] : [dayStart(resolved, tz), dayStart(now, tz)];
48
+ return `${formatCompound(a, b, 2, tz)} ago`;
49
+ }
48
50
  const bu = parsed.units === "full" || parsed.units === "clock" ? "days" : parsed.units;
49
51
  return `${formatCount(elapsed, { units: bu, round: parsed.round, fields: parsed.fields })} ago`;
50
52
  }
@@ -183,18 +185,20 @@ function haloRect(svg, x, y, w, h, rx, C) {
183
185
  function pickBand(nowMs, resolvedMs, hasTime) {
184
186
  const days = dayDelta(nowMs, resolvedMs);
185
187
  if (hasTime && days <= 0) return "clock";
186
- if (days > 3 * 365) return "years";
187
- if (days > 365) return "year";
188
- if (days > 92) return "months";
189
- if (days > 18) return "monthgrid";
190
- if (days >= 1) return "weekstrip";
191
188
  if (days === 0) return "today";
192
- return "after";
189
+ const mag = Math.abs(days);
190
+ if (mag > 3 * 365) return "years";
191
+ if (mag > 365) return "year";
192
+ if (mag > 92) return "months";
193
+ if (mag > 7) return "monthgrid";
194
+ return "weekstrip";
193
195
  }
194
196
  function monthSpan(nowMs, resolvedMs) {
195
197
  const n = new Date(nowMs);
196
198
  const t = new Date(resolvedMs);
197
- return (t.getFullYear() - n.getFullYear()) * 12 + (t.getMonth() - n.getMonth()) + 1;
199
+ return Math.abs(
200
+ (t.getFullYear() - n.getFullYear()) * 12 + (t.getMonth() - n.getMonth())
201
+ ) + 1;
198
202
  }
199
203
  var MONTH_TARGET_PX = 200;
200
204
  function monthGridLayout(nowMs, resolvedMs, contentW) {
@@ -205,21 +209,24 @@ function monthGridLayout(nowMs, resolvedMs, contentW) {
205
209
  const padBefore = Math.floor((shown - realSpan) / 2);
206
210
  const nowMk = now.getFullYear() * 12 + now.getMonth();
207
211
  const evMk = ev.getFullYear() * 12 + ev.getMonth();
212
+ const loMk = Math.min(nowMk, evMk);
213
+ const hiMk = Math.max(nowMk, evMk);
214
+ const startMk = loMk - padBefore;
208
215
  const months = [];
209
216
  const dim = [];
210
217
  for (let i = 0; i < shown; i++) {
211
- const d = new Date(now.getFullYear(), now.getMonth() - padBefore + i, 1);
218
+ const d = new Date(Math.floor(startMk / 12), startMk % 12 + i, 1);
212
219
  const mk = d.getFullYear() * 12 + d.getMonth();
213
220
  months.push(d);
214
- dim.push(mk < nowMk || mk > evMk);
221
+ dim.push(mk < loMk || mk > hiMk);
215
222
  }
216
223
  return { months, dim };
217
224
  }
218
225
  function yearsLayout(nowMs, resolvedMs) {
219
226
  const y0 = new Date(nowMs).getFullYear();
220
227
  const y1 = new Date(resolvedMs).getFullYear();
221
- const d0 = Math.floor(y0 / 10) * 10;
222
- const d1 = Math.floor(y1 / 10) * 10;
228
+ const d0 = Math.floor(Math.min(y0, y1) / 10) * 10;
229
+ const d1 = Math.floor(Math.max(y0, y1) / 10) * 10;
223
230
  return { d0, d1, rows: (d1 - d0) / 10 + 1 };
224
231
  }
225
232
  function bandHeightFor(kind, nowMs, resolvedMs, contentW) {
@@ -241,7 +248,9 @@ function bandHeightFor(kind, nowMs, resolvedMs, contentW) {
241
248
  return total;
242
249
  }
243
250
  case "year": {
244
- const R = new Date(resolvedMs).getFullYear() - new Date(nowMs).getFullYear() + 1;
251
+ const R = Math.abs(
252
+ new Date(resolvedMs).getFullYear() - new Date(nowMs).getFullYear()
253
+ ) + 1;
245
254
  const yearW = 66;
246
255
  const gap = 8;
247
256
  const cellW = (contentW - yearW - 11 * gap) / 12;
@@ -267,14 +276,13 @@ function bandHeightFor(kind, nowMs, resolvedMs, contentW) {
267
276
  return 26 + 6 * cellH + 8;
268
277
  }
269
278
  case "weekstrip": {
270
- const n = Math.max(7, dayDelta(nowMs, resolvedMs) + 1);
279
+ const n = Math.max(7, Math.abs(dayDelta(nowMs, resolvedMs)) + 1);
271
280
  const cw = (contentW - 10 * (n - 1)) / n;
272
281
  return clamp(cw * 1.5, 116, 170);
273
282
  }
274
283
  case "clock":
275
284
  return clamp(contentW * 0.26, 150, 205);
276
285
  case "today":
277
- case "after":
278
286
  return clamp(contentW * 0.22, 125, 170);
279
287
  }
280
288
  }
@@ -312,7 +320,7 @@ function vizYears(svg, g, nowMs, resolvedMs, C) {
312
320
  const before = yr < nowY;
313
321
  const isNow = yr === nowY;
314
322
  const isEv = yr === evY;
315
- const between = yr > nowY && yr < evY;
323
+ const between = (yr - nowY) * (yr - evY) < 0;
316
324
  const st = isEv ? roleStyle(C, "event") : isNow ? roleStyle(C, "today") : between ? gradStyle(C, (yr - nowY) / (evY - nowY)) : roleStyle(C, before ? "past" : "future");
317
325
  const x = g.left + labW + i * (cellW + gap);
318
326
  aRect(svg, x, ry, cellW, cellH, rx, st.fill, st.stroke, 1);
@@ -336,8 +344,8 @@ function vizYears(svg, g, nowMs, resolvedMs, C) {
336
344
  function vizYear(svg, g, nowMs, resolvedMs, C) {
337
345
  const now = new Date(nowMs);
338
346
  const ev = new Date(resolvedMs);
339
- const y0 = now.getFullYear();
340
- const y1 = ev.getFullYear();
347
+ const y0 = Math.min(now.getFullYear(), ev.getFullYear());
348
+ const y1 = Math.max(now.getFullYear(), ev.getFullYear());
341
349
  const years = [];
342
350
  for (let y = y0; y <= y1; y++) years.push(y);
343
351
  const R = years.length;
@@ -367,10 +375,11 @@ function vizYear(svg, g, nowMs, resolvedMs, C) {
367
375
  { "dominant-baseline": "central" }
368
376
  );
369
377
  for (let m = 0; m < 12; m++) {
370
- const before = yr < nowY || yr === nowY && m < nowM;
378
+ const mOrd = yr * 12 + m;
379
+ const before = mOrd < nowOrd;
371
380
  const isNow = yr === nowY && m === nowM;
372
381
  const isEv = yr === evY && m === evM;
373
- const between = (yr > nowY || yr === nowY && m > nowM) && (yr < evY || yr === evY && m < evM);
382
+ const between = (mOrd - nowOrd) * (mOrd - evOrd) < 0;
374
383
  const anchor = isEv || isNow;
375
384
  const st = isEv ? roleStyle(C, "event") : isNow ? roleStyle(C, "today") : between ? gradStyle(C, (yr * 12 + m - nowOrd) / (evOrd - nowOrd)) : roleStyle(C, before ? "past" : "future");
376
385
  const x = g.left + yearW + m * (cellW + gap);
@@ -434,19 +443,22 @@ function vizMonths(svg, g, nowMs, resolvedMs, C) {
434
443
  const cellH = (g.height - rowGap * (rows - 1)) / rows;
435
444
  const nowMk = now.getFullYear() * 12 + now.getMonth();
436
445
  const evMk = ev.getFullYear() * 12 + ev.getMonth();
446
+ const loMk = Math.min(nowMk, evMk);
447
+ const hiMk = Math.max(nowMk, evMk);
448
+ const startMk = loMk - padBefore;
437
449
  for (let i = 0; i < shown; i++) {
438
- const d = new Date(now.getFullYear(), now.getMonth() - padBefore + i, 1);
450
+ const d = new Date(Math.floor(startMk / 12), startMk % 12 + i, 1);
439
451
  const mk = d.getFullYear() * 12 + d.getMonth();
440
452
  const isNow = mk === nowMk;
441
453
  const isEv = mk === evMk;
442
- const isContext = mk < nowMk || mk > evMk;
454
+ const isContext = mk < loMk || mk > hiMk;
443
455
  const anchor = isNow || isEv;
444
456
  const col = i % perRow;
445
457
  const row = Math.floor(i / perRow);
446
458
  const x = g.left + col * (cellW + gap);
447
459
  const y = g.top + row * (cellH + rowGap);
448
460
  const mt = isContext ? svg.append("g").attr("opacity", 0.42) : svg;
449
- const st = isEv ? roleStyle(C, "event") : isNow ? roleStyle(C, "today") : mk > nowMk && mk < evMk ? gradStyle(C, (mk - nowMk) / (evMk - nowMk)) : roleStyle(C, mk < nowMk ? "past" : "future");
461
+ const st = isEv ? roleStyle(C, "event") : isNow ? roleStyle(C, "today") : (mk - nowMk) * (mk - evMk) < 0 ? gradStyle(C, (mk - nowMk) / (evMk - nowMk)) : roleStyle(C, mk < nowMk ? "past" : "future");
450
462
  const rxM = Math.min(12, cellH * 0.14);
451
463
  aRect(mt, x, y, cellW, cellH, rxM, st.fill, st.stroke, 1.25);
452
464
  if (isEv) haloRect(mt, x, y, cellW, cellH, rxM, C);
@@ -545,7 +557,7 @@ function vizMonthGrid(svg, g, nowMs, resolvedMs, C) {
545
557
  const cy = gy + wk * cellH;
546
558
  const isEvent = dk === evKey;
547
559
  const isToday = dk === todayKey;
548
- const between = dk > todayKey && dk < evKey;
560
+ const between = (dk - todayKey) * (dk - evKey) < 0;
549
561
  const anchor = isEvent || isToday;
550
562
  const dtMs = new Date(m.getFullYear(), m.getMonth(), day).getTime();
551
563
  const st = isEvent ? roleStyle(C, "event") : isToday ? roleStyle(C, "today") : between ? gradStyle(C, dayDelta(nowMs, dtMs) / dayDelta(nowMs, resolvedMs)) : roleStyle(C, dk < todayKey ? "past" : "future");
@@ -584,8 +596,7 @@ function vizMonthGrid(svg, g, nowMs, resolvedMs, C) {
584
596
  });
585
597
  }
586
598
  function vizWeekStrip(svg, g, nowMs, resolvedMs, C) {
587
- const now = new Date(nowMs);
588
- const nReal = dayDelta(nowMs, resolvedMs) + 1;
599
+ const nReal = Math.abs(dayDelta(nowMs, resolvedMs)) + 1;
589
600
  const n = Math.max(7, nReal);
590
601
  const padBefore = Math.floor((n - nReal) / 2);
591
602
  const gap = n <= 7 ? 14 : n <= 12 ? 10 : 7;
@@ -596,17 +607,20 @@ function vizWeekStrip(svg, g, nowMs, resolvedMs, C) {
596
607
  const showTag = cw >= 44;
597
608
  const nowOrd = DAY_START(nowMs);
598
609
  const evOrd = DAY_START(resolvedMs);
610
+ const loOrd = Math.min(nowOrd, evOrd);
611
+ const hiOrd = Math.max(nowOrd, evOrd);
612
+ const first = new Date(Math.min(nowMs, resolvedMs));
599
613
  for (let i = 0; i < n; i++) {
600
614
  const dt = new Date(
601
- now.getFullYear(),
602
- now.getMonth(),
603
- now.getDate() + i - padBefore
615
+ first.getFullYear(),
616
+ first.getMonth(),
617
+ first.getDate() + i - padBefore
604
618
  );
605
619
  const dtOrd = DAY_START(dt.getTime());
606
620
  const x = g.left + i * (cw + gap);
607
621
  const isToday = dtOrd === nowOrd;
608
622
  const isEvent = dtOrd === evOrd;
609
- const isContext = dtOrd < nowOrd || dtOrd > evOrd;
623
+ const isContext = dtOrd < loOrd || dtOrd > hiOrd;
610
624
  const st = isEvent ? roleStyle(C, "event") : isToday ? roleStyle(C, "today") : isContext ? roleStyle(C, dtOrd < nowOrd ? "past" : "future") : gradStyle(C, (dtOrd - nowOrd) / (evOrd - nowOrd));
611
625
  const ct = isContext ? svg.append("g").attr("opacity", 0.5) : svg;
612
626
  const sw = isToday || isEvent ? 2 : 1.25;
@@ -709,75 +723,6 @@ function vizToday(svg, g, resolvedMs, C) {
709
723
  { "letter-spacing": "0.12em" }
710
724
  );
711
725
  }
712
- function vizAfter(svg, g, nowMs, resolvedMs, C) {
713
- const ev = new Date(resolvedMs);
714
- const elapsed = dayDelta(resolvedMs, nowMs);
715
- const n = elapsed + 1;
716
- const gap = 10;
717
- const cw = (g.contentW - gap * (n - 1)) / n;
718
- const ch = Math.min(cw * 1.1, g.height * 0.62);
719
- const top = g.top + (g.height - ch) / 2 - 8;
720
- for (let i = 0; i < n; i++) {
721
- const dt = new Date(ev);
722
- dt.setDate(ev.getDate() + i);
723
- const x = g.left + i * (cw + gap);
724
- const isEvent = i === 0;
725
- const isToday = i === n - 1;
726
- const st = roleStyle(C, isEvent ? "event" : "past");
727
- const fill = st.fill;
728
- const stroke = st.stroke;
729
- const tcol = st.text;
730
- const sw = isEvent ? 2.5 : 1;
731
- aRect(svg, x, top, cw, ch, 12, fill, stroke, sw);
732
- if (isEvent) haloRect(svg, x, top, cw, ch, 12, C);
733
- aText(
734
- svg,
735
- x + cw / 2,
736
- top + ch * 0.46,
737
- Math.min(34, cw * 0.34),
738
- tcol,
739
- isEvent ? 750 : 500,
740
- "middle",
741
- String(dt.getDate())
742
- );
743
- aText(
744
- svg,
745
- x + cw / 2,
746
- top + ch * 0.72,
747
- 11,
748
- tcol,
749
- 600,
750
- "middle",
751
- MON_ABBR[dt.getMonth()]
752
- );
753
- if (isEvent)
754
- aText(
755
- svg,
756
- x + cw / 2,
757
- top - 8,
758
- 11,
759
- C.event,
760
- 700,
761
- "middle",
762
- "IT HAPPENED",
763
- { "letter-spacing": "0.05em" }
764
- );
765
- if (isToday)
766
- aText(svg, x + cw / 2, top - 8, 11, C.now, 700, "middle", "TODAY", {
767
- "letter-spacing": "0.05em"
768
- });
769
- }
770
- aText(
771
- svg,
772
- g.left,
773
- top + ch + 28,
774
- 14,
775
- C.muted,
776
- 400,
777
- "start",
778
- `${elapsed} day${elapsed === 1 ? "" : "s"} ago \u2014 the day has passed`
779
- );
780
- }
781
726
  function polar(cx, cy, r, deg) {
782
727
  const a = (deg - 90) * Math.PI / 180;
783
728
  return [cx + r * Math.cos(a), cy + r * Math.sin(a)];
@@ -864,8 +809,6 @@ function drawBand(svg, kind, g, nowMs, resolvedMs, C) {
864
809
  return vizWeekStrip(svg, g, nowMs, resolvedMs, C);
865
810
  case "today":
866
811
  return vizToday(svg, g, resolvedMs, C);
867
- case "after":
868
- return vizAfter(svg, g, nowMs, resolvedMs, C);
869
812
  case "clock":
870
813
  return vizClock(svg, g, nowMs, resolvedMs, C);
871
814
  }
@@ -1087,4 +1030,4 @@ export {
1087
1030
  renderCountdown,
1088
1031
  renderCountdownForExport
1089
1032
  };
1090
- //# sourceMappingURL=chunk-FUPF2UYQ.js.map
1033
+ //# sourceMappingURL=chunk-PIXZTCKH.js.map
@@ -11,10 +11,10 @@ import {
11
11
  stripDefaultModifier,
12
12
  tagAttrKey,
13
13
  validateTagGroupNames
14
- } from "./chunk-HHKO6SKY.js";
14
+ } from "./chunk-CMVZWP32.js";
15
15
  import {
16
16
  parseInArrowLabel
17
- } from "./chunk-FFUN5D66.js";
17
+ } from "./chunk-WF64MW5G.js";
18
18
  import {
19
19
  normalizeName
20
20
  } from "./chunk-NOTA6TEI.js";
@@ -27,16 +27,16 @@ import {
27
27
  splitNameAndMeta,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-BRENJ2BQ.js";
30
+ } from "./chunk-YJVA3QUU.js";
31
31
  import {
32
32
  formatDgmoError,
33
33
  makeDgmoError,
34
34
  makeFail,
35
35
  suggest
36
- } from "./chunk-CXK4DZH3.js";
36
+ } from "./chunk-4W2PE66Q.js";
37
37
 
38
38
  // src/c4/parser.ts
39
- var CONTAINER_RE = /^\[([^\]]+)\]$/;
39
+ var CONTAINER_RE = /^\[([^\]]+)\](?:\s+(collapsed)|\s+collapsed:\s*(\S+))?$/;
40
40
  var ELEMENT_RE = /^(person|system|container|component)\s+(.+)$/i;
41
41
  var IS_A_RE = /\s+is\s+a(?:n)?\s+(\w+)\s*$/i;
42
42
  var C4_IS_A_RE = /^([^:]+?)\s+is\s+an?\s+(person|system|container|component|external|database)\b(.*)$/i;
@@ -65,10 +65,12 @@ var VALID_SHAPES = /* @__PURE__ */ new Set([
65
65
  var KNOWN_C4_OPTIONS = /* @__PURE__ */ new Set(["layout", "active-tag"]);
66
66
  var KNOWN_C4_BOOLEANS = /* @__PURE__ */ new Set([
67
67
  "direction-tb",
68
+ "direction-lr",
68
69
  "fill-tint",
69
70
  "fill-solid",
70
71
  "fill-outline",
71
- "no-title"
72
+ "no-title",
73
+ "no-legend"
72
74
  ]);
73
75
  var ALL_CHART_TYPES = [
74
76
  "c4",
@@ -152,6 +154,7 @@ function parseC4(content, palette) {
152
154
  title: null,
153
155
  titleLineNumber: null,
154
156
  options,
157
+ direction: "TB",
155
158
  tagGroups: [],
156
159
  elements: [],
157
160
  relationships: [],
@@ -239,7 +242,12 @@ function parseC4(content, palette) {
239
242
  }
240
243
  if (!contentStarted && !currentTagGroup && measureIndent(line) === 0) {
241
244
  if (KNOWN_C4_BOOLEANS.has(trimmed.toLowerCase())) {
242
- options[trimmed.toLowerCase()] = "on";
245
+ const boolKey = trimmed.toLowerCase();
246
+ if (boolKey === "direction-lr" || boolKey === "direction-tb") {
247
+ delete options["direction-lr"];
248
+ delete options["direction-tb"];
249
+ }
250
+ options[boolKey] = "on";
243
251
  continue;
244
252
  }
245
253
  const optMatch = trimmed.match(OPTION_NOCOLON_RE);
@@ -369,11 +377,13 @@ function parseC4(content, palette) {
369
377
  const containerMatch = trimmed.match(CONTAINER_RE);
370
378
  if (containerMatch) {
371
379
  const groupName = containerMatch[1].trim();
380
+ const groupCollapsed = containerMatch[2] !== void 0 || containerMatch[3]?.toLowerCase() === "true";
372
381
  const parentEntry = findParentElement(indent, stack);
373
382
  if (parentEntry) {
374
383
  const group = {
375
384
  name: groupName,
376
385
  children: [],
386
+ ...groupCollapsed && { collapsed: true },
377
387
  lineNumber
378
388
  };
379
389
  parentEntry.element.groups.push(group);
@@ -711,6 +721,7 @@ function parseC4(content, palette) {
711
721
  result.tagGroups,
712
722
  (line, msg) => pushError(line, msg, "warning")
713
723
  );
724
+ result.direction = options["direction-lr"] ? "LR" : "TB";
714
725
  return result;
715
726
  }
716
727
  function findParentElement(indent, stack) {
@@ -806,4 +817,4 @@ function validateDeploymentRefs(result, knownNames, pushWarning) {
806
817
  export {
807
818
  parseC4
808
819
  };
809
- //# sourceMappingURL=chunk-BPY242XU.js.map
820
+ //# sourceMappingURL=chunk-PKNNHU7H.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderIntegratedLegend
3
- } from "./chunk-AUIM2NVH.js";
3
+ } from "./chunk-W5KMNC5U.js";
4
4
  import {
5
5
  getMaxLegendReservedHeight
6
- } from "./chunk-YAA6IID3.js";
6
+ } from "./chunk-774C2FF3.js";
7
7
  import {
8
8
  TITLE_FONT_SIZE,
9
9
  TITLE_FONT_WEIGHT,
@@ -12,23 +12,23 @@ import {
12
12
  import {
13
13
  FONT_FAMILY
14
14
  } from "./chunk-6KFWC4CO.js";
15
- import {
16
- LEGEND_GROUP_GAP
17
- } from "./chunk-QOOUC2J5.js";
18
- import {
19
- measureText
20
- } from "./chunk-WCT3NYCV.js";
21
15
  import {
22
16
  isBlockNode
23
17
  } from "./chunk-NR5HCAUD.js";
24
18
  import {
25
19
  mix,
26
20
  themeBaseBg
27
- } from "./chunk-WBM7ZNDI.js";
21
+ } from "./chunk-JYDMBWRP.js";
22
+ import {
23
+ LEGEND_GROUP_GAP
24
+ } from "./chunk-4RGZFA7H.js";
25
+ import {
26
+ measureText
27
+ } from "./chunk-4ASYQ347.js";
28
28
  import {
29
29
  resolveTagColor,
30
30
  tagAttrKey
31
- } from "./chunk-HHKO6SKY.js";
31
+ } from "./chunk-CMVZWP32.js";
32
32
 
33
33
  // src/block/renderer.ts
34
34
  import * as d3Selection from "d3-selection";
@@ -361,4 +361,4 @@ export {
361
361
  renderBlock,
362
362
  authoredCollapsedIds
363
363
  };
364
- //# sourceMappingURL=chunk-BPIZNB5O.js.map
364
+ //# sourceMappingURL=chunk-PT4SW76W.js.map
@@ -5,16 +5,16 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-BRENJ2BQ.js";
8
+ } from "./chunk-YJVA3QUU.js";
9
9
  import {
10
10
  RECOGNIZED_COLOR_NAMES,
11
11
  resolveColor
12
- } from "./chunk-TLVIHFRO.js";
12
+ } from "./chunk-ZKPPI6BF.js";
13
13
  import {
14
14
  makeDgmoError,
15
15
  makeFail,
16
16
  suggest
17
- } from "./chunk-CXK4DZH3.js";
17
+ } from "./chunk-4W2PE66Q.js";
18
18
 
19
19
  // src/ring/parser.ts
20
20
  var MAX_LAYERS = 15;
@@ -165,4 +165,4 @@ function parseRing(content) {
165
165
  export {
166
166
  parseRing
167
167
  };
168
- //# sourceMappingURL=chunk-UNURMIQO.js.map
168
+ //# sourceMappingURL=chunk-PV2QO7QL.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  analyzePert
3
- } from "./chunk-J76PIKAT.js";
3
+ } from "./chunk-HO3RCNF6.js";
4
4
  import {
5
5
  computeNodeSizing,
6
6
  layoutPert
7
- } from "./chunk-GU46PPT3.js";
7
+ } from "./chunk-QXGACPS2.js";
8
8
  import {
9
9
  COLLAPSE_BAR_HEIGHT,
10
10
  CONTAINER_HEADER_HEIGHT,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-YYVTBZZC.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-AUIM2NVH.js";
21
+ } from "./chunk-W5KMNC5U.js";
22
22
  import {
23
23
  CAPTION_BOX_PADDING_X,
24
24
  CAPTION_BOX_PADDING_Y,
@@ -33,34 +33,34 @@ import {
33
33
  import {
34
34
  FONT_FAMILY
35
35
  } from "./chunk-6KFWC4CO.js";
36
- import {
37
- LEGEND_HEIGHT
38
- } from "./chunk-QOOUC2J5.js";
39
- import {
40
- measureText,
41
- truncateText,
42
- wrapTextToWidth
43
- } from "./chunk-WCT3NYCV.js";
44
36
  import {
45
37
  parsePert
46
- } from "./chunk-K4EOKJA6.js";
38
+ } from "./chunk-P3H7QVDH.js";
47
39
  import {
48
40
  addCalendarDays,
49
41
  formatDuration,
50
42
  formatScheduleValue,
51
43
  formatSlackValue,
52
44
  formatSprintCell
53
- } from "./chunk-7L4UJOY6.js";
45
+ } from "./chunk-3TYUXC7D.js";
54
46
  import {
55
47
  contrastText,
56
48
  mix,
57
49
  shapeFill,
58
50
  themeBaseBg
59
- } from "./chunk-WBM7ZNDI.js";
51
+ } from "./chunk-JYDMBWRP.js";
52
+ import {
53
+ LEGEND_HEIGHT
54
+ } from "./chunk-4RGZFA7H.js";
55
+ import {
56
+ measureText,
57
+ truncateText,
58
+ wrapTextToWidth
59
+ } from "./chunk-4ASYQ347.js";
60
60
  import {
61
61
  resolveActiveTagGroup,
62
62
  resolveTagColor
63
- } from "./chunk-HHKO6SKY.js";
63
+ } from "./chunk-CMVZWP32.js";
64
64
 
65
65
  // src/pert/renderer.ts
66
66
  import * as d3Selection from "d3-selection";
@@ -185,7 +185,7 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
185
185
  resolved.options.activeTag,
186
186
  options.activeTagOverride
187
187
  );
188
- const showTagLegend = showLegend && resolved.tagGroups.length > 0;
188
+ const showTagLegend = showLegend && !resolved.options.noLegend && resolved.tagGroups.length > 0;
189
189
  const legendBlockHeight = showTagLegend ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
190
190
  const naturalChartWidth = layout.width + DIAGRAM_PADDING * 2;
191
191
  const minAnalysisRowW = analysisLayer.analysisHasContent ? analysisLayer.minContentWidth + 2 * DIAGRAM_PADDING : 0;
@@ -1823,4 +1823,4 @@ export {
1823
1823
  measurePertAnalysisBlock,
1824
1824
  renderPertAnalysisBlock
1825
1825
  };
1826
- //# sourceMappingURL=chunk-LGT3PZCJ.js.map
1826
+ //# sourceMappingURL=chunk-PYO4TJJ3.js.map
@@ -6,16 +6,18 @@ import {
6
6
  normalizeNumericToken,
7
7
  parseFirstLine,
8
8
  parseSeriesNames
9
- } from "./chunk-BRENJ2BQ.js";
9
+ } from "./chunk-YJVA3QUU.js";
10
10
  import {
11
11
  RECOGNIZED_COLOR_NAMES,
12
12
  resolveColorWithDiagnostic
13
- } from "./chunk-TLVIHFRO.js";
13
+ } from "./chunk-ZKPPI6BF.js";
14
14
  import {
15
+ TITLE_DIRECTIVE_DX,
16
+ emit,
15
17
  formatDgmoError,
16
18
  makeDgmoError,
17
19
  suggest
18
- } from "./chunk-CXK4DZH3.js";
20
+ } from "./chunk-4W2PE66Q.js";
19
21
 
20
22
  // src/chart.ts
21
23
  var VALID_TYPES = /* @__PURE__ */ new Set([
@@ -48,6 +50,7 @@ var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
48
50
  "fill-solid",
49
51
  "fill-outline",
50
52
  "no-title",
53
+ "no-legend",
51
54
  "no-auto-y",
52
55
  "fill",
53
56
  "hole"
@@ -182,6 +185,8 @@ function parseChart(content, palette) {
182
185
  else result.fillMode = fm;
183
186
  } else if (firstToken === "no-title") {
184
187
  result.noTitle = true;
188
+ } else if (firstToken === "no-legend") {
189
+ result.noLegend = true;
185
190
  } else if (firstToken === "no-auto-y") {
186
191
  result.noAutoY = true;
187
192
  } else if (firstToken === "fill") {
@@ -207,8 +212,7 @@ function parseChart(content, palette) {
207
212
  continue;
208
213
  }
209
214
  if (firstToken === "title") {
210
- result.title = value;
211
- result.titleLineNumber = lineNumber;
215
+ result.diagnostics.push(emit(TITLE_DIRECTIVE_DX, lineNumber));
212
216
  continue;
213
217
  }
214
218
  if (firstToken === "x-label") {
@@ -757,8 +761,7 @@ function parseExtendedChartFull(content, palette) {
757
761
  continue;
758
762
  }
759
763
  if (firstToken === "title") {
760
- result.title = value;
761
- result.titleLineNumber = lineNumber;
764
+ result.diagnostics.push(emit(TITLE_DIRECTIVE_DX, lineNumber));
762
765
  continue;
763
766
  }
764
767
  if (firstToken === "series") {
@@ -854,6 +857,10 @@ function parseExtendedChartFull(content, palette) {
854
857
  result.noTitle = true;
855
858
  continue;
856
859
  }
860
+ if (firstToken === "no-legend" && spaceIdx < 0) {
861
+ result.noLegend = true;
862
+ continue;
863
+ }
857
864
  if (firstToken.startsWith("no-") && spaceIdx < 0) {
858
865
  continue;
859
866
  }
@@ -1064,4 +1071,4 @@ export {
1064
1071
  getSimpleChartLegendGroups,
1065
1072
  getExtendedChartLegendGroups
1066
1073
  };
1067
- //# sourceMappingURL=chunk-EMLPOL77.js.map
1074
+ //# sourceMappingURL=chunk-Q7AH665U.js.map