@diagrammo/dgmo 0.95.0 → 0.97.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 +1 -1
  2. package/dist/advanced.d.ts +190 -568
  3. package/dist/advanced.js +259 -470
  4. package/dist/block.d.ts +8 -0
  5. package/dist/block.js +144 -73
  6. package/dist/{calculator-BNH3GSJE.js → calculator-CIGGTURF.js} +2 -2
  7. package/dist/{chart-meta-BbjsRY7o.d.ts → chart-meta-B7niEd52.d.ts} +3 -1
  8. package/dist/chart-meta.d.ts +2 -2
  9. package/dist/chart-meta.js +19 -19
  10. package/dist/{chart-types-Cppnp31G.d.ts → chart-types-Dxtv4XSz.d.ts} +4 -5
  11. package/dist/{charts-d3-SZV2SFTM.js → charts-d3-INWEGMSD.js} +14 -14
  12. package/dist/{chunk-P5XA627W.js → chunk-2FMOLWX4.js} +73 -65
  13. package/dist/{chunk-MLY5ALOV.js → chunk-2SZILMQT.js} +57 -15
  14. package/dist/chunk-35A3J4Z5.js +14 -0
  15. package/dist/{chunk-UXNA2H2V.js → chunk-3C4OXVZJ.js} +2 -2
  16. package/dist/{chunk-IZHGT5HD.js → chunk-3HL6NSSQ.js} +63 -18
  17. package/dist/{chunk-2WQ3YZMN.js → chunk-3IUMSK72.js} +2 -2
  18. package/dist/{chunk-LAXMUSGW.js → chunk-44RLIAYC.js} +17 -10
  19. package/dist/{chunk-H7AXCRO7.js → chunk-453IWXZ3.js} +0 -11
  20. package/dist/{chunk-2I4UQG7W.js → chunk-47INRTZ6.js} +2 -2
  21. package/dist/{chunk-IN7XI6NO.js → chunk-4NMRS6HW.js} +1 -1
  22. package/dist/{chunk-KLBTJEIK.js → chunk-4TK26YHH.js} +2 -2
  23. package/dist/{chunk-CN4RDJDV.js → chunk-5TGZBHEJ.js} +1 -1
  24. package/dist/{chunk-IXHWS2HI.js → chunk-5WZYJC2P.js} +2 -2
  25. package/dist/{chunk-KBDMEOLI.js → chunk-65JFUANT.js} +1 -1
  26. package/dist/{chunk-D3K4U3ZM.js → chunk-6K2W3FH7.js} +8 -5
  27. package/dist/{chunk-NXU4N5WT.js → chunk-6OUMYNAJ.js} +1 -1
  28. package/dist/{chunk-KRPLP5LP.js → chunk-6PUBFB6D.js} +24 -3
  29. package/dist/{chunk-EXHXTMVR.js → chunk-6S2H6EKN.js} +3 -3
  30. package/dist/{chunk-KSZB7TIY.js → chunk-6SDEXSJY.js} +42 -22
  31. package/dist/{chunk-IQN2NGEU.js → chunk-6YBZFOTA.js} +13 -13
  32. package/dist/{chunk-IHN6WDEY.js → chunk-74XR7Z3I.js} +13 -13
  33. package/dist/{chunk-2J2CWWWK.js → chunk-7ASVGFW3.js} +1 -1
  34. package/dist/{chunk-BH2SF4TT.js → chunk-7QKWU7FX.js} +3 -3
  35. package/dist/{chunk-A6YINTY6.js → chunk-7RACGVUY.js} +1 -1
  36. package/dist/{chunk-VB4VMB2I.js → chunk-7TEAFIEJ.js} +9 -5
  37. package/dist/{chunk-UNCCZ3NU.js → chunk-A3V72YIL.js} +14 -1
  38. package/dist/{chunk-BCV2VJTM.js → chunk-A5LFM62B.js} +3 -3
  39. package/dist/{chunk-U6VS3T2M.js → chunk-AULFF7L2.js} +4 -4
  40. package/dist/{chunk-LKZCUFOW.js → chunk-B7ZH5EQ2.js} +2 -2
  41. package/dist/{chunk-VGAMBOOC.js → chunk-C6ME2L4T.js} +2 -2
  42. package/dist/{chunk-3PP746YM.js → chunk-CGP7RGLJ.js} +1 -1
  43. package/dist/{chunk-67N26CER.js → chunk-CLW45YKE.js} +2 -1
  44. package/dist/{chunk-VTESGA5F.js → chunk-CUOMNKYW.js} +4 -4
  45. package/dist/{chunk-CDM6XMOT.js → chunk-CUTEHGXO.js} +2 -2
  46. package/dist/{chunk-NERQSSYD.js → chunk-D67YE4LR.js} +1 -1
  47. package/dist/{chunk-XOMIYMQ3.js → chunk-D7KZE2XJ.js} +39 -17
  48. package/dist/{chunk-NMS5XSLX.js → chunk-DFEVFLEG.js} +3 -3
  49. package/dist/{chunk-EBVVMUAA.js → chunk-DKMZ4VMV.js} +1 -1
  50. package/dist/{chunk-V5D6GDNK.js → chunk-DRY4W4W6.js} +36 -15
  51. package/dist/{chunk-XJQ6Z3FO.js → chunk-E6GHXMH2.js} +8 -8
  52. package/dist/{chunk-KBEWVCK3.js → chunk-EBJLT7PH.js} +1 -1
  53. package/dist/{chunk-TASRGDYP.js → chunk-EEIGHOJR.js} +92 -23
  54. package/dist/{chunk-AQQUJEDN.js → chunk-EUPUVYWO.js} +1 -1
  55. package/dist/{chunk-7IALGIOI.js → chunk-F2OAZHOX.js} +10 -5
  56. package/dist/{chunk-JXGSTBW6.js → chunk-FK6HZYGK.js} +4 -14
  57. package/dist/{chunk-OSSTOSXU.js → chunk-FTW2E2YH.js} +7 -10
  58. package/dist/{chunk-5P2L5QXE.js → chunk-FZVCS2XY.js} +4 -2
  59. package/dist/chunk-G24NSISJ.js +69 -0
  60. package/dist/{chunk-EBIDNRSR.js → chunk-GFQFLLP3.js} +2 -2
  61. package/dist/{chunk-RQTDUZUH.js → chunk-GLLYHYGT.js} +27 -17
  62. package/dist/{chunk-VLC6WNRD.js → chunk-GULGSH2Z.js} +4 -0
  63. package/dist/{chunk-H5NVCOEJ.js → chunk-GXBH7WNN.js} +2 -2
  64. package/dist/{chunk-C6G36F5S.js → chunk-H242TVAE.js} +9 -9
  65. package/dist/{chunk-5XBYLYYI.js → chunk-H7DZYHQF.js} +3 -3
  66. package/dist/{chunk-GLCMUTO5.js → chunk-HQNZJMNS.js} +1 -1
  67. package/dist/{chunk-IY62DXT2.js → chunk-IAM3IDL4.js} +2 -2
  68. package/dist/{chunk-IGJEKO2P.js → chunk-II6D6NWX.js} +8 -8
  69. package/dist/{chunk-AULZD45V.js → chunk-IUFTAFGN.js} +2 -2
  70. package/dist/{chunk-FWVE373X.js → chunk-IZEKHIV6.js} +3 -3
  71. package/dist/{chunk-BQMHJ6OW.js → chunk-J3YM6RA5.js} +22 -14
  72. package/dist/{chunk-R6EGUTIV.js → chunk-J467QBZF.js} +23 -3
  73. package/dist/{chunk-JJ7RGTAU.js → chunk-J7JF4QKA.js} +40 -30
  74. package/dist/{chunk-E7F76M3U.js → chunk-JULBDTNU.js} +61 -9
  75. package/dist/{chunk-EPDBWATV.js → chunk-K7RRXZHS.js} +4 -2
  76. package/dist/{chunk-ZECJ7Q6C.js → chunk-KMB754DO.js} +33 -6
  77. package/dist/chunk-KNKZGRRB.js +439 -0
  78. package/dist/{chunk-XIUGSUE4.js → chunk-KTGJQJB3.js} +6 -2
  79. package/dist/{chunk-4SACN2C5.js → chunk-KW3CC7SB.js} +1 -1
  80. package/dist/{chunk-3GUEYQGL.js → chunk-L3K5O3Z5.js} +3 -3
  81. package/dist/chunk-LRTSTDJ6.js +126 -0
  82. package/dist/{chunk-NBAAIRFP.js → chunk-LZATSXAA.js} +5 -2
  83. package/dist/{chunk-USE6HIOZ.js → chunk-MJ725XHD.js} +1156 -330
  84. package/dist/{chunk-3KVUFHUJ.js → chunk-NBISN6FH.js} +2 -2
  85. package/dist/{chunk-RITTLIDJ.js → chunk-NN5RUHXV.js} +84 -16
  86. package/dist/{chunk-62GLKE6Q.js → chunk-NOZMRPXI.js} +112 -157
  87. package/dist/{chunk-4XYZJTFO.js → chunk-NQFZ7LXC.js} +14 -6
  88. package/dist/chunk-NTDWVTEY.js +12 -0
  89. package/dist/{chunk-BQO24BDM.js → chunk-O3HRF25Z.js} +1 -1
  90. package/dist/{chunk-ZD3QCNB7.js → chunk-OSSA5UWA.js} +3 -3
  91. package/dist/{chunk-UOCWYLYT.js → chunk-OZXKW5NA.js} +1 -1
  92. package/dist/{chunk-NPDVWFAQ.js → chunk-PLQZJZ2K.js} +1 -1
  93. package/dist/chunk-PRG7NIUU.js +272 -0
  94. package/dist/{chunk-S4SJ4LLY.js → chunk-PSNRB75I.js} +3 -3
  95. package/dist/{chunk-QPQWY5RU.js → chunk-PT5VFY3B.js} +38 -14
  96. package/dist/{chunk-KAO7JL4I.js → chunk-PU5X3P3T.js} +6 -5
  97. package/dist/{chunk-J7Q4AB23.js → chunk-PZ5LAAO3.js} +2 -2
  98. package/dist/{chunk-TOHTKLKE.js → chunk-Q5Q5JLRT.js} +1 -1
  99. package/dist/{chunk-Y3SIQN4J.js → chunk-Q6V342WS.js} +17 -5
  100. package/dist/{chunk-RBVFNUAL.js → chunk-QDPTOIG7.js} +5 -5
  101. package/dist/{chunk-ERT7XDQW.js → chunk-QIITSGI5.js} +1 -1
  102. package/dist/{chunk-NM5V5EKY.js → chunk-QLIZ7SB7.js} +1 -1
  103. package/dist/chunk-QLNLRZ37.js +181 -0
  104. package/dist/{chunk-HHVIE45A.js → chunk-QOLRTPGH.js} +6 -6
  105. package/dist/{chunk-2ZW4NBYX.js → chunk-R4SXMBGF.js} +1 -1
  106. package/dist/chunk-R4U7IIRX.js +178 -0
  107. package/dist/{chunk-BRGRIZQB.js → chunk-RC6PISCK.js} +4 -2
  108. package/dist/{chunk-UIEKW4SG.js → chunk-REKLKGR6.js} +3 -4
  109. package/dist/{chunk-TIIZIAGS.js → chunk-RFGQDIOI.js} +843 -233
  110. package/dist/{chunk-FVTYJUXR.js → chunk-ROFSIFSY.js} +4 -4
  111. package/dist/{chunk-VSAKEMDD.js → chunk-ROH4LYBL.js} +71 -21
  112. package/dist/{chunk-4UVCTLRH.js → chunk-SNDCXT5R.js} +9 -7
  113. package/dist/{chunk-R46N5KR4.js → chunk-SQBCNEJB.js} +2 -1
  114. package/dist/{chunk-66JTY4AN.js → chunk-TDUBTDXS.js} +1 -1
  115. package/dist/{chunk-PGSGJLUR.js → chunk-TMB4YY3J.js} +34 -4
  116. package/dist/{chunk-UZ7EZW3B.js → chunk-TO53KK2P.js} +6 -1
  117. package/dist/{chunk-5KKZXA44.js → chunk-V3ICBS2O.js} +7 -5
  118. package/dist/{chunk-GWQRTA5W.js → chunk-V65EDV6S.js} +3 -3
  119. package/dist/{chunk-VF7IKIRS.js → chunk-VKT3BVRO.js} +35 -11
  120. package/dist/{chunk-L5S32VZJ.js → chunk-VOO65FKC.js} +12 -12
  121. package/dist/{chunk-PVWIBKV2.js → chunk-VQWLASDC.js} +2 -2
  122. package/dist/{chunk-JILEYZ2V.js → chunk-VVL2KKG4.js} +1 -1
  123. package/dist/{chunk-GI5R5B3S.js → chunk-VVZDBUHA.js} +2 -2
  124. package/dist/{chunk-PGBTUGDB.js → chunk-W46OMHOK.js} +23 -27
  125. package/dist/{chunk-XCKNFFKM.js → chunk-WH6E6SHC.js} +2 -4
  126. package/dist/{chunk-H6BT45SN.js → chunk-WPYJAHRP.js} +1 -1
  127. package/dist/{chunk-LJGE43SG.js → chunk-WXGFB2O2.js} +3 -3
  128. package/dist/{chunk-YQMIKX54.js → chunk-XCYGOCMS.js} +102 -52
  129. package/dist/{chunk-BTP2BMWN.js → chunk-XEMCNQQW.js} +15 -15
  130. package/dist/{chunk-NVZ7R4EK.js → chunk-XMUFXJI2.js} +6 -6
  131. package/dist/{chunk-AM42TLSZ.js → chunk-XZGXVN4T.js} +5 -5
  132. package/dist/{chunk-5OTA2PUH.js → chunk-YCIBBVI2.js} +2 -2
  133. package/dist/{chunk-V2NQV7VL.js → chunk-YFIDR7JH.js} +2 -2
  134. package/dist/{chunk-USZLHYEQ.js → chunk-YFWIFKRQ.js} +3 -3
  135. package/dist/{chunk-6XLMTAEX.js → chunk-YIHRLY55.js} +33 -6
  136. package/dist/{chunk-CYRB2JTN.js → chunk-YLKPRT6U.js} +1 -1
  137. package/dist/{chunk-KMU65FYM.js → chunk-YSDSFXQD.js} +1 -1
  138. package/dist/{chunk-ZI6WC24V.js → chunk-ZBJV4KNU.js} +1 -1
  139. package/dist/{chunk-4EX4OKGZ.js → chunk-ZCKVTZHD.js} +41 -19
  140. package/dist/{chunk-7PJBJ2DU.js → chunk-ZMVMGZAJ.js} +1 -1
  141. package/dist/{chunk-6EFCOES2.js → chunk-ZRW4B4KF.js} +48 -14
  142. package/dist/{chunk-A2A2I4Z4.js → chunk-ZTKO2RD4.js} +5 -5
  143. package/dist/collapse-6IGH2B24.js +31 -0
  144. package/dist/{collapse-BSPH3BFM.js → collapse-6X5S2S3G.js} +2 -1
  145. package/dist/collapse-GOWNCVHZ.js +7 -0
  146. package/dist/collapse-HNTPLB2Q.js +11 -0
  147. package/dist/collapse-NUM7DPJA.js +10 -0
  148. package/dist/completion-registry.js +28 -39
  149. package/dist/countdown.js +1 -1
  150. package/dist/dgmo-router-RSYWR5IS.js +101 -0
  151. package/dist/dimensions-KXAI7U2B.js +21 -0
  152. package/dist/editor.js +884 -222
  153. package/dist/{flowchart-parser-J3VWIFWB.js → flowchart-parser-UI5VZNGJ.js} +5 -5
  154. package/dist/{flowchart-renderer-FECH5KK5.js → flowchart-renderer-IYWPKPCF.js} +18 -18
  155. package/dist/fold-at-line-DmSAa1eU.d.ts +11 -0
  156. package/dist/highlight.js +886 -224
  157. package/dist/index.d.ts +89 -6
  158. package/dist/index.js +91 -70
  159. package/dist/{layout-TIBRMWHL.js → layout-6VY3DHYD.js} +6 -6
  160. package/dist/{layout-5SZ5A64I.js → layout-7C2QZCEZ.js} +10 -10
  161. package/dist/{layout-2WESJYRE.js → layout-7E7BNOGO.js} +3 -2
  162. package/dist/layout-BSK374N6.js +11 -0
  163. package/dist/{layout-RH3N46HP.js → layout-FJDBY3WG.js} +6 -5
  164. package/dist/{layout-YBMT74MG.js → layout-G3RVKEC4.js} +10 -10
  165. package/dist/{layout-KV27UW25.js → layout-GC5XX2RH.js} +2 -2
  166. package/dist/{layout-JTIRCKAW.js → layout-R6ULGQJK.js} +6 -6
  167. package/dist/{layout-HFBK5UEG.js → layout-ROI5KVSO.js} +3 -3
  168. package/dist/{layout-3TSVAGWH.js → layout-SPPS225I.js} +3 -3
  169. package/dist/{layout-HF3PMI4H.js → layout-VTGOYGRC.js} +2 -2
  170. package/dist/{layout-EWXHEXNS.js → layout-WBH5IHYK.js} +10 -10
  171. package/dist/layout-WTHBGTH2.js +15 -0
  172. package/dist/layout-ZCCABSV7.js +15 -0
  173. package/dist/{layout-search-AWPJWBKT.js → layout-search-DSIDKKQO.js} +8 -8
  174. package/dist/{legend-constants-55MFBXYF.js → legend-constants-KF3MKWL2.js} +2 -2
  175. package/dist/{parser-NUU3DVW4.js → parser-3PMYAVFL.js} +2 -2
  176. package/dist/{parser-KJPPUN4D.js → parser-5KVFS4RN.js} +2 -2
  177. package/dist/{parser-6TDWUKM5.js → parser-BA43YPIQ.js} +3 -3
  178. package/dist/{parser-EFF22GYO.js → parser-CFAYEWLF.js} +3 -3
  179. package/dist/{parser-A3AN76RQ.js → parser-DRFEX6OX.js} +3 -3
  180. package/dist/{parser-H5OODY5N.js → parser-DWVBRBB2.js} +3 -3
  181. package/dist/{parser-BJ7RJNUM.js → parser-E4B7HJT2.js} +3 -3
  182. package/dist/{parser-5UZV32ZI.js → parser-FWQY3HJX.js} +2 -2
  183. package/dist/{parser-RTWPFKXG.js → parser-GMCXCJSP.js} +3 -3
  184. package/dist/{parser-NL73FSFI.js → parser-IHFHPFL7.js} +3 -3
  185. package/dist/{parser-BTSTKY5G.js → parser-IU6425JW.js} +6 -6
  186. package/dist/{parser-ZRIZFDZY.js → parser-IZYIXDJX.js} +6 -6
  187. package/dist/{parser-4TBSWULQ.js → parser-JQGUTDSX.js} +3 -3
  188. package/dist/{parser-TUAEX6ML.js → parser-JRKPOO2Z.js} +3 -3
  189. package/dist/{parser-KMKVFET2.js → parser-KI2XYB2R.js} +2 -2
  190. package/dist/parser-LDVVBP7S.js +12 -0
  191. package/dist/{parser-YG625J5H.js → parser-MAGFK6OK.js} +4 -4
  192. package/dist/{parser-AR2GON37.js → parser-MH5BDN7X.js} +4 -4
  193. package/dist/{parser-EAQPZX2B.js → parser-MUHFEM4G.js} +3 -3
  194. package/dist/{parser-RCIEKN7Y.js → parser-P375HO7Q.js} +2 -2
  195. package/dist/{parser-GMQJISZ6.js → parser-PYY5BRLQ.js} +2 -2
  196. package/dist/parser-QEMFMVF5.js +12 -0
  197. package/dist/{parser-GDLKUBTO.js → parser-QIPDBT5M.js} +2 -2
  198. package/dist/{parser-BT4NI6JY.js → parser-RNBDDEGL.js} +3 -3
  199. package/dist/{parser-MA7L3XND.js → parser-RSWZGQA7.js} +6 -6
  200. package/dist/{parser-K2DI26SC.js → parser-SGX2PVR5.js} +2 -2
  201. package/dist/{parser-KKF6Y5MM.js → parser-SJUEFKNM.js} +4 -3
  202. package/dist/{parser-3QIFY5IN.js → parser-UMNBPXG2.js} +2 -2
  203. package/dist/{parser-F7NDRPMA.js → parser-WE4VSBBY.js} +3 -3
  204. package/dist/{parser-4Y6PODW6.js → parser-WKEYS7N3.js} +3 -3
  205. package/dist/{parser-KLCSFQ3J.js → parser-WPXUUNA2.js} +3 -3
  206. package/dist/{parser-LTRQASGB.js → parser-XP3RCOTN.js} +3 -3
  207. package/dist/{parser-2IKPQVKX.js → parser-YV4RBHG7.js} +3 -3
  208. package/dist/{parser-3LT3ZUUC.js → parser-YZ3J542U.js} +2 -2
  209. package/dist/{redraw-AHW7EUUF.js → redraw-BZ4GI6IC.js} +6 -4
  210. package/dist/{redraw-STZ4WJAI.js → redraw-LEOXS7C6.js} +3 -3
  211. package/dist/{renderer-IGSHD3OT.js → renderer-2V5NVI3V.js} +16 -16
  212. package/dist/renderer-4PKYVOYL.js +39 -0
  213. package/dist/{renderer-IVHD7ENY.js → renderer-66SCERH7.js} +14 -12
  214. package/dist/renderer-6IAXRZLK.js +85 -0
  215. package/dist/{renderer-XCLARXCK.js → renderer-6O5SV5YE.js} +10 -10
  216. package/dist/{renderer-IXBOT6DU.js → renderer-7OXMSF4R.js} +4 -4
  217. package/dist/{renderer-AM7P4LN7.js → renderer-A36NL2SS.js} +8 -8
  218. package/dist/{renderer-ACQQ2JXA.js → renderer-ASPBBACI.js} +13 -11
  219. package/dist/{renderer-W4MUMXJE.js → renderer-BXVTYE27.js} +7 -6
  220. package/dist/renderer-CC6O6GQK.js +18 -0
  221. package/dist/{renderer-Y47EM337.js → renderer-CNDB4JTZ.js} +17 -17
  222. package/dist/renderer-COV2DXTM.js +41 -0
  223. package/dist/renderer-DXCATVLO.js +30 -0
  224. package/dist/{renderer-JYHA6R2D.js → renderer-E5E3OJ42.js} +12 -11
  225. package/dist/{renderer-DAZWHNLI.js → renderer-E7LC7HCU.js} +5 -5
  226. package/dist/{renderer-RUSQJFFC.js → renderer-F3JYZERE.js} +4 -4
  227. package/dist/{renderer-7OGGV327.js → renderer-FAFSRFGR.js} +9 -9
  228. package/dist/renderer-HIB6LZWZ.js +26 -0
  229. package/dist/renderer-HLDRRFZB.js +28 -0
  230. package/dist/renderer-INQMQPNN.js +22 -0
  231. package/dist/renderer-ITJ67HXO.js +27 -0
  232. package/dist/{renderer-UTEEJDGB.js → renderer-JLOKFKOZ.js} +14 -13
  233. package/dist/{renderer-2LYX6NHN.js → renderer-KOPJ76GS.js} +10 -10
  234. package/dist/{renderer-MWZC7TMD.js → renderer-M2467III.js} +14 -13
  235. package/dist/{renderer-HX6ICPDX.js → renderer-MYKL6VG6.js} +6 -6
  236. package/dist/{renderer-BXD5KVSR.js → renderer-S6L3JR6C.js} +11 -11
  237. package/dist/{renderer-NOYLNVTI.js → renderer-SYWVZ4CY.js} +3 -3
  238. package/dist/renderer-TCTZZ5Y6.js +32 -0
  239. package/dist/{renderer-QTPWRRJ7.js → renderer-UIHCYXBY.js} +12 -12
  240. package/dist/{renderer-36446HSH.js → renderer-WIBVOPRC.js} +6 -4
  241. package/dist/{renderer-2QPHDBZY.js → renderer-XMJ6XZGL.js} +12 -11
  242. package/dist/{renderer-TINHO2IO.js → renderer-ZTHXOBXW.js} +8 -8
  243. package/dist/{renderer-radial-WFUX3Z3C.js → renderer-radial-FC25BDCZ.js} +8 -8
  244. package/dist/{state-parser-PMNHLHLE.js → state-parser-2PQRH5JE.js} +6 -6
  245. package/dist/state-renderer-YP6HWLJR.js +43 -0
  246. package/dist/{themes-DzIH3Hjv.d.ts → themes-DoLdhUXV.d.ts} +1 -1
  247. package/docs/ai-integration.md +4 -4
  248. package/docs/language-reference.md +154 -104
  249. package/gallery/fixtures/swot-relabel.dgmo +19 -0
  250. package/gallery/fixtures/swot-tags.dgmo +16 -0
  251. package/gallery/fixtures/swot.dgmo +13 -0
  252. package/gallery/fixtures/whiteboard.dgmo +1 -0
  253. package/package.json +1 -1
  254. package/dist/chunk-6BQSDF77.js +0 -734
  255. package/dist/chunk-NWSPPGIE.js +0 -60
  256. package/dist/chunk-R2K5L4UA.js +0 -49
  257. package/dist/chunk-VBMRZCMQ.js +0 -1465
  258. package/dist/chunk-WZBZXZ6T.js +0 -636
  259. package/dist/collapse-TCVK3RPO.js +0 -8
  260. package/dist/dgmo-router-6YLKM6WU.js +0 -101
  261. package/dist/dimensions-DS6FWLRY.js +0 -21
  262. package/dist/layout-D4L44NRG.js +0 -11
  263. package/dist/layout-MXHR3P35.js +0 -15
  264. package/dist/layout-ND26WVX2.js +0 -15
  265. package/dist/layout-VDCJOZSH.js +0 -11
  266. package/dist/parser-PEZ7RN43.js +0 -14
  267. package/dist/parser-YHDGKPZI.js +0 -14
  268. package/dist/renderer-4VGO27EE.js +0 -41
  269. package/dist/renderer-6BDK47V6.js +0 -30
  270. package/dist/renderer-ISQJ2ELA.js +0 -25
  271. package/dist/renderer-KJ3V5BYP.js +0 -26
  272. package/dist/renderer-O6RP52CQ.js +0 -22
  273. package/dist/renderer-P3WR7TKD.js +0 -39
  274. package/dist/renderer-UGW4N2W5.js +0 -28
  275. package/dist/renderer-WPN2SXGT.js +0 -29
  276. package/dist/renderer-XDX6S7OV.js +0 -30
  277. package/dist/renderer-ZV6KCLCL.js +0 -85
  278. package/dist/state-renderer-JQ5DS66J.js +0 -42
  279. package/gallery/fixtures/sketch.dgmo +0 -22
@@ -6,130 +6,131 @@ import {
6
6
  parseHeatmap,
7
7
  parseSankey,
8
8
  parseScatter
9
- } from "./chunk-H6BT45SN.js";
9
+ } from "./chunk-WPYJAHRP.js";
10
+ import {
11
+ MAP_DIAGNOSTICS
12
+ } from "./chunk-EOYPX6SF.js";
13
+ import {
14
+ parseTechRadar
15
+ } from "./chunk-DKMZ4VMV.js";
10
16
  import {
11
17
  parsePyramid
12
- } from "./chunk-3PP746YM.js";
18
+ } from "./chunk-CGP7RGLJ.js";
13
19
  import {
14
20
  parseRing
15
- } from "./chunk-NM5V5EKY.js";
21
+ } from "./chunk-QLIZ7SB7.js";
16
22
  import {
17
23
  TREEMAP_DIAGNOSTICS,
18
24
  parseTreemap
19
- } from "./chunk-3KVUFHUJ.js";
25
+ } from "./chunk-NBISN6FH.js";
20
26
  import {
21
- MAP_DIAGNOSTICS
22
- } from "./chunk-EOYPX6SF.js";
27
+ SWOT_DIAGNOSTICS,
28
+ parseSwot
29
+ } from "./chunk-KNKZGRRB.js";
23
30
  import {
24
31
  VERSION_CONTROL_DIAGNOSTICS,
25
32
  parseVersionControl
26
- } from "./chunk-2ZW4NBYX.js";
33
+ } from "./chunk-R4SXMBGF.js";
27
34
  import {
28
35
  parseMap
29
- } from "./chunk-AULZD45V.js";
30
- import {
31
- parseSketch
32
- } from "./chunk-WZBZXZ6T.js";
33
- import {
34
- SKETCH_DIAGNOSTICS
35
- } from "./chunk-NWSPPGIE.js";
36
+ } from "./chunk-IUFTAFGN.js";
36
37
  import {
37
38
  WHITEBOARD_DIAGNOSTICS,
38
39
  parseWhiteboard
39
- } from "./chunk-U6VS3T2M.js";
40
+ } from "./chunk-AULFF7L2.js";
40
41
  import {
41
42
  SWIMLANE_DIAGNOSTICS,
42
43
  parseSwimlane
43
- } from "./chunk-J7Q4AB23.js";
44
+ } from "./chunk-PZ5LAAO3.js";
44
45
  import {
45
46
  parseMindmap
46
- } from "./chunk-XIUGSUE4.js";
47
- import {
48
- parseTechRadar
49
- } from "./chunk-EBVVMUAA.js";
47
+ } from "./chunk-KTGJQJB3.js";
50
48
  import {
51
49
  parseKanban
52
- } from "./chunk-LKZCUFOW.js";
50
+ } from "./chunk-B7ZH5EQ2.js";
53
51
  import {
54
52
  parseInfra
55
- } from "./chunk-UXNA2H2V.js";
53
+ } from "./chunk-3C4OXVZJ.js";
56
54
  import {
57
55
  parseJourneyMap
58
- } from "./chunk-PGSGJLUR.js";
56
+ } from "./chunk-TMB4YY3J.js";
57
+ import {
58
+ parseGantt
59
+ } from "./chunk-VQWLASDC.js";
59
60
  import {
60
61
  parseGoal
61
- } from "./chunk-7PJBJ2DU.js";
62
+ } from "./chunk-ZMVMGZAJ.js";
62
63
  import {
63
64
  EVENT_LINE_DIAGNOSTICS,
64
65
  parseEventLine
65
- } from "./chunk-3GUEYQGL.js";
66
+ } from "./chunk-L3K5O3Z5.js";
66
67
  import {
67
68
  parseTimelineEventLine
68
- } from "./chunk-BQO24BDM.js";
69
+ } from "./chunk-O3HRF25Z.js";
69
70
  import {
70
71
  FAMILY_DIAGNOSTICS,
71
72
  parseFamily
72
- } from "./chunk-R6EGUTIV.js";
73
- import {
74
- parseGantt
75
- } from "./chunk-PVWIBKV2.js";
73
+ } from "./chunk-J467QBZF.js";
76
74
  import {
77
75
  parseClock
78
- } from "./chunk-NXU4N5WT.js";
76
+ } from "./chunk-6OUMYNAJ.js";
79
77
  import {
80
78
  parseCountdown
81
- } from "./chunk-KBEWVCK3.js";
79
+ } from "./chunk-EBJLT7PH.js";
82
80
  import {
83
81
  parseCycle
84
- } from "./chunk-NPDVWFAQ.js";
82
+ } from "./chunk-PLQZJZ2K.js";
85
83
  import {
86
84
  parseBracket
87
- } from "./chunk-2WQ3YZMN.js";
85
+ } from "./chunk-3IUMSK72.js";
88
86
  import {
89
87
  parseC4
90
- } from "./chunk-IXHWS2HI.js";
88
+ } from "./chunk-5WZYJC2P.js";
91
89
  import {
92
90
  parseBlock
93
- } from "./chunk-BRGRIZQB.js";
91
+ } from "./chunk-RC6PISCK.js";
94
92
  import {
95
93
  BODY_DIAGNOSTICS,
96
94
  parseBody
97
- } from "./chunk-JXGSTBW6.js";
95
+ } from "./chunk-FK6HZYGK.js";
98
96
  import {
99
97
  parseBoxesAndLines
100
- } from "./chunk-4UVCTLRH.js";
98
+ } from "./chunk-SNDCXT5R.js";
101
99
  import {
102
100
  parseDgmoChartType
103
- } from "./chunk-BTP2BMWN.js";
101
+ } from "./chunk-XEMCNQQW.js";
104
102
  import {
105
103
  parseRaci
106
- } from "./chunk-KRPLP5LP.js";
104
+ } from "./chunk-6PUBFB6D.js";
105
+ import {
106
+ parseSitemap
107
+ } from "./chunk-KMB754DO.js";
108
+ import {
109
+ PERT_DIAGNOSTICS,
110
+ parsePert
111
+ } from "./chunk-CUTEHGXO.js";
107
112
  import {
108
113
  parseLiveLink
109
- } from "./chunk-KBDMEOLI.js";
114
+ } from "./chunk-65JFUANT.js";
110
115
  import {
111
116
  SEQUENCE_DIAGNOSTICS,
112
117
  parseSequenceDgmo
113
- } from "./chunk-VSAKEMDD.js";
118
+ } from "./chunk-ROH4LYBL.js";
114
119
  import {
115
120
  parseOrg
116
- } from "./chunk-5OTA2PUH.js";
121
+ } from "./chunk-YCIBBVI2.js";
117
122
  import {
118
- parseSitemap
119
- } from "./chunk-ZECJ7Q6C.js";
120
- import {
121
- PERT_DIAGNOSTICS,
122
- parsePert
123
- } from "./chunk-CDM6XMOT.js";
123
+ parseState
124
+ } from "./chunk-WXGFB2O2.js";
124
125
  import {
125
126
  parseFlowchart
126
- } from "./chunk-IY62DXT2.js";
127
+ } from "./chunk-IAM3IDL4.js";
127
128
  import {
128
129
  GRAPH_DIAGNOSTICS
129
130
  } from "./chunk-TIVMAITN.js";
130
131
  import {
131
- parseState
132
- } from "./chunk-LJGE43SG.js";
132
+ parseERDiagram
133
+ } from "./chunk-PSNRB75I.js";
133
134
  import {
134
135
  makeYearContext,
135
136
  parseDateToken,
@@ -139,18 +140,15 @@ import {
139
140
  import {
140
141
  extractPaletteDirective
141
142
  } from "./chunk-CYTFO2LF.js";
142
- import {
143
- parseERDiagram
144
- } from "./chunk-S4SJ4LLY.js";
145
143
  import {
146
144
  parseClassDiagram
147
- } from "./chunk-5XBYLYYI.js";
145
+ } from "./chunk-H7DZYHQF.js";
148
146
  import {
149
147
  ARROW_DIAGNOSTIC_CODES
150
148
  } from "./chunk-N7VMGZCU.js";
151
149
  import {
152
150
  parseWireframe
153
- } from "./chunk-GI5R5B3S.js";
151
+ } from "./chunk-VVZDBUHA.js";
154
152
  import {
155
153
  RACI_DIAGNOSTICS
156
154
  } from "./chunk-4WW3SGMH.js";
@@ -160,9 +158,10 @@ import {
160
158
  tagAttrKey,
161
159
  validateTagGroupNames,
162
160
  validateTagValues
163
- } from "./chunk-4SACN2C5.js";
161
+ } from "./chunk-KW3CC7SB.js";
164
162
  import {
165
163
  ALIAS_DIAGNOSTICS,
164
+ RETIRED_CHART_TYPES,
166
165
  TIMELINE_REGISTRY,
167
166
  chartTypes,
168
167
  collectIndentedValues,
@@ -171,10 +170,11 @@ import {
171
170
  measureIndent,
172
171
  normalizeNumericToken,
173
172
  parseFirstLine,
173
+ peelTrailingCollapsedFlag,
174
174
  peelTrailingColorName,
175
175
  splitNameAndMeta,
176
176
  withTagAliases
177
- } from "./chunk-TIIZIAGS.js";
177
+ } from "./chunk-RFGQDIOI.js";
178
178
  import {
179
179
  resolveColorWithDiagnostic
180
180
  } from "./chunk-3J7O3CU6.js";
@@ -415,7 +415,9 @@ function parseVisualizationFull(content, palette) {
415
415
  const tlGroupMatch = line.match(/^\[(.+?)\]\s*(.*?)\s*$/);
416
416
  if (tlGroupMatch) {
417
417
  const name = tlGroupMatch[1].trim();
418
- const trailing = tlGroupMatch[2] ?? "";
418
+ const lanePeel = peelTrailingCollapsedFlag(tlGroupMatch[2] ?? "");
419
+ const trailing = lanePeel.rest;
420
+ let collapsed = lanePeel.collapsed;
419
421
  let color = null;
420
422
  let groupMeta = {};
421
423
  if (trailing) {
@@ -462,11 +464,16 @@ function parseVisualizationFull(content, palette) {
462
464
  }
463
465
  }
464
466
  }
467
+ if (groupMeta["collapsed"] !== void 0) {
468
+ if (groupMeta["collapsed"].toLowerCase() === "true") collapsed = true;
469
+ delete groupMeta["collapsed"];
470
+ }
465
471
  result.timelineGroups.push({
466
472
  name,
467
473
  color,
468
474
  metadata: groupMeta,
469
- lineNumber
475
+ lineNumber,
476
+ ...collapsed && { collapsed: true }
470
477
  });
471
478
  currentTimelineGroup = name;
472
479
  currentTimelineGroupMeta = groupMeta;
@@ -1181,7 +1188,8 @@ function parseVisualizationFull(content, palette) {
1181
1188
  if (!result.type) {
1182
1189
  const firstNonEmpty = lines.find((l) => l.trim() && !l.trim().startsWith("//"))?.trim() ?? "";
1183
1190
  const word = firstNonEmpty.split(/\s/)[0];
1184
- const hint = suggest(word.toLowerCase(), allChartTypeIds);
1191
+ const successor = RETIRED_CHART_TYPES[word.toLowerCase()];
1192
+ const hint = successor ? `Did you mean '${successor}'?` : suggest(word.toLowerCase(), allChartTypeIds);
1185
1193
  let msg = `'${word}' is not a chart type`;
1186
1194
  msg += hint ? `. ${hint}` : ` \u2014 line 1 names the chart type, e.g. \`bar Sales\` or \`flowchart Deploy\`.`;
1187
1195
  const diag = makeDgmoError(1, msg);
@@ -1633,6 +1641,7 @@ var REGISTRY = [
1633
1641
  ...UNIVERSAL_DIAGNOSTICS,
1634
1642
  ...SWIMLANE_DIAGNOSTICS,
1635
1643
  ...RACI_DIAGNOSTICS,
1644
+ ...SWOT_DIAGNOSTICS,
1636
1645
  ...TREEMAP_DIAGNOSTICS,
1637
1646
  ...EVENT_LINE_DIAGNOSTICS,
1638
1647
  ...BODY_DIAGNOSTICS,
@@ -1643,7 +1652,6 @@ var REGISTRY = [
1643
1652
  ...GRAPH_DIAGNOSTICS,
1644
1653
  ...COLOR_DIAGNOSTICS,
1645
1654
  ...SEQUENCE_DIAGNOSTICS,
1646
- ...SKETCH_DIAGNOSTICS,
1647
1655
  ...WHITEBOARD_DIAGNOSTICS,
1648
1656
  ...FAMILY_DIAGNOSTICS,
1649
1657
  ...ALIAS_DIAGNOSTICS
@@ -1708,7 +1716,6 @@ var REGISTRY2 = {
1708
1716
  gantt: { category: "diagram", parse: parseGantt },
1709
1717
  pert: { category: "diagram", parse: parsePert },
1710
1718
  "boxes-and-lines": { category: "diagram", parse: parseBoxesAndLines },
1711
- sketch: { category: "diagram", parse: parseSketch },
1712
1719
  whiteboard: { category: "diagram", parse: parseWhiteboard },
1713
1720
  swimlane: { category: "diagram", parse: parseSwimlane },
1714
1721
  family: { category: "diagram", parse: parseFamily },
@@ -1717,6 +1724,7 @@ var REGISTRY2 = {
1717
1724
  wireframe: { category: "diagram", parse: parseWireframe },
1718
1725
  "journey-map": { category: "diagram", parse: parseJourneyMap },
1719
1726
  raci: { category: "diagram", parse: parseRaci },
1727
+ swot: { category: "diagram", parse: parseSwot },
1720
1728
  // ── Standard ECharts charts (parseChart) ──────────────────
1721
1729
  bar: { category: "data-chart", parse: parseChart },
1722
1730
  line: { category: "data-chart", parse: parseChart },
@@ -1855,7 +1863,7 @@ function detectMistypedChartType(content, resolved) {
1855
1863
  if (!match) return null;
1856
1864
  const word = match[1];
1857
1865
  if (ALL_KNOWN_TYPES.has(word)) return null;
1858
- const alias = MERMAID_FIRST_WORDS[word];
1866
+ const alias = MERMAID_FIRST_WORDS[word] ?? RETIRED_CHART_TYPES[word];
1859
1867
  const suggestion = alias ? `Did you mean '${alias}'?` : suggest(word, [...ALL_KNOWN_TYPES]);
1860
1868
  if (!suggestion) return null;
1861
1869
  return emit(MISTYPED_CHART_TYPE_DX, i + 1, { word, resolved, suggestion });
@@ -1,17 +1,20 @@
1
1
  import {
2
2
  ScaleContext
3
3
  } from "./chunk-24YPR5EH.js";
4
+ import {
5
+ renderCollapseBar
6
+ } from "./chunk-LRTSTDJ6.js";
4
7
  import {
5
8
  TITLE_FONT_SIZE,
6
9
  TITLE_FONT_WEIGHT,
7
10
  TITLE_Y
8
- } from "./chunk-VLC6WNRD.js";
11
+ } from "./chunk-GULGSH2Z.js";
9
12
  import {
10
13
  NODE_STROKE_WIDTH
11
- } from "./chunk-XCKNFFKM.js";
14
+ } from "./chunk-WH6E6SHC.js";
12
15
  import {
13
16
  allTasks
14
- } from "./chunk-KRPLP5LP.js";
17
+ } from "./chunk-6PUBFB6D.js";
15
18
  import {
16
19
  FONT_FAMILY
17
20
  } from "./chunk-ICLB27PZ.js";
@@ -21,12 +24,12 @@ import {
21
24
  import {
22
25
  fillModeFromOptions,
23
26
  legendSuppressed
24
- } from "./chunk-TIIZIAGS.js";
27
+ } from "./chunk-RFGQDIOI.js";
25
28
  import {
26
29
  measureText,
27
30
  truncateText,
28
31
  wrapTextToWidth
29
- } from "./chunk-KAO7JL4I.js";
32
+ } from "./chunk-PU5X3P3T.js";
30
33
  import {
31
34
  contrastText,
32
35
  mix,
@@ -35,6 +38,18 @@ import {
35
38
 
36
39
  // src/raci/renderer.ts
37
40
  import * as d3Selection from "d3-selection";
41
+
42
+ // src/raci/collapse.ts
43
+ function collapsedRaciPhasesFromSource(parsed, interactiveLines) {
44
+ const lines = new Set(interactiveLines ?? []);
45
+ const ids = /* @__PURE__ */ new Set();
46
+ for (const phase of parsed.phases) {
47
+ if (phase.collapsed || lines.has(phase.lineNumber)) ids.add(phase.id);
48
+ }
49
+ return ids;
50
+ }
51
+
52
+ // src/raci/renderer.ts
38
53
  function groupDiagnosticsByTask(parsed) {
39
54
  const map = /* @__PURE__ */ new Map();
40
55
  if (parsed.diagnostics.length === 0) return map;
@@ -429,7 +444,8 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
429
444
  sPhaseHeight,
430
445
  sPhaseFont,
431
446
  sColumnInset,
432
- sNodeRadius
447
+ sNodeRadius,
448
+ ctx
433
449
  );
434
450
  } else {
435
451
  renderTaskRow(
@@ -570,11 +586,25 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
570
586
  );
571
587
  });
572
588
  }
573
- function renderRaciForExport(container, parsed, palette, isDark, exportDims) {
574
- renderRaci(container, parsed, palette, isDark, {}, exportDims);
589
+ function renderRaciForExport(container, parsed, palette, isDark, exportDims, interactiveCollapsedLines) {
590
+ const collapsedPhases = collapsedRaciPhasesFromSource(
591
+ parsed,
592
+ interactiveCollapsedLines
593
+ );
594
+ renderRaci(
595
+ container,
596
+ parsed,
597
+ palette,
598
+ isDark,
599
+ { collapsedPhases },
600
+ exportDims
601
+ );
575
602
  }
576
- function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg, fillMode, showSummary, sPhaseHeight, sPhaseFont, sColumnInset, sNodeRadius) {
577
- const phaseG = svg.append("g").attr("class", "raci-phase").attr("data-section", `phase-${phase.id}`).attr("data-section-toggle", "").attr("data-line-number", String(phase.lineNumber)).attr("data-phase-id", phase.id).attr("data-collapsed", collapsed ? "1" : "0").style("cursor", "pointer");
603
+ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg, fillMode, showSummary, sPhaseHeight, sPhaseFont, sColumnInset, sNodeRadius, scale) {
604
+ const phaseG = svg.append("g").attr("class", "raci-phase").attr("data-section", `phase-${phase.id}`).attr("data-line-number", String(phase.lineNumber)).attr("data-phase-id", phase.id).attr("data-collapsed", collapsed ? "1" : "0").style("cursor", "pointer");
605
+ if (phase.tasks.length > 0) {
606
+ phaseG.attr("data-group-toggle", phase.id).attr("aria-expanded", String(!collapsed)).attr("role", "button").attr("aria-label", phase.displayName);
607
+ }
578
608
  const phaseColor = phase.color ?? autoColor;
579
609
  const phaseRect = phaseG.append("rect").attr("x", x).attr("y", y + 4).attr("width", width).attr("height", sPhaseHeight - 8).attr(
580
610
  "fill",
@@ -583,17 +613,28 @@ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor,
583
613
  if (fillMode === "outline") {
584
614
  phaseRect.attr("stroke", phaseColor).attr("stroke-width", 1.25);
585
615
  }
586
- const chevX = x + 12;
587
- const chevY = y + sPhaseHeight / 2;
588
- phaseG.append("text").attr("x", chevX).attr("y", chevY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("fill", palette.text).attr("opacity", 0.6).text(collapsed ? "\u25B6" : "\u25BC");
589
- phaseG.append("text").attr("x", x + 26).attr("y", y + (sPhaseHeight - 4) / 2 + 2).attr("dominant-baseline", "central").attr("font-size", sPhaseFont).attr("font-weight", "bold").attr("fill", palette.text).text(phase.displayName);
616
+ if (phase.tasks.length > 0) {
617
+ renderCollapseBar(phaseG, {
618
+ expanded: !collapsed,
619
+ x,
620
+ y: y + 4,
621
+ width,
622
+ height: sPhaseHeight - 8,
623
+ rx: 4,
624
+ fill: phaseColor,
625
+ clipId: `raci-phase-clip-${phase.id.replace(/[^A-Za-z0-9_-]/g, "_")}`,
626
+ prefix: "raci",
627
+ scale
628
+ });
629
+ }
630
+ phaseG.append("text").attr("x", x + 12).attr("y", y + (sPhaseHeight - 4) / 2 + 2).attr("dominant-baseline", "central").attr("font-size", sPhaseFont).attr("font-weight", "bold").attr("fill", palette.text).text(phase.displayName);
590
631
  if (collapsed) {
591
632
  const taskCount = phase.tasks.length;
592
633
  if (taskCount > 0) {
593
634
  const labelTextWidth = measureText(phase.displayName, sPhaseFont, {
594
635
  bold: true
595
636
  });
596
- phaseG.append("text").attr("x", x + 26 + labelTextWidth + 10).attr("y", y + (sPhaseHeight - 4) / 2 + 2).attr("dominant-baseline", "central").attr("font-size", sPhaseFont - 1).attr("font-weight", "normal").attr("fill", palette.textMuted).text(`${taskCount} ${taskCount === 1 ? "task" : "tasks"}`);
637
+ phaseG.append("text").attr("x", x + 12 + labelTextWidth + 10).attr("y", y + (sPhaseHeight - 4) / 2 + 2).attr("dominant-baseline", "central").attr("font-size", sPhaseFont - 1).attr("font-weight", "normal").attr("fill", palette.textMuted).text(`${taskCount} ${taskCount === 1 ? "task" : "tasks"}`);
597
638
  }
598
639
  if (!showSummary) return;
599
640
  const alphabet = VARIANTS[variant].alphabet;
@@ -855,6 +896,7 @@ function parseQuotedSegments(message) {
855
896
  }
856
897
 
857
898
  export {
899
+ collapsedRaciPhasesFromSource,
858
900
  MARKER_LABELS,
859
901
  renderRaci,
860
902
  renderRaciForExport
@@ -0,0 +1,14 @@
1
+ // src/mindmap/title-root.ts
2
+ var TITLE_ROOT = /* @__PURE__ */ Symbol("mindmap.titleRoot");
3
+ function markTitleRoot(node) {
4
+ node[TITLE_ROOT] = true;
5
+ return node;
6
+ }
7
+ function isTitleRoot(node) {
8
+ return node[TITLE_ROOT] === true;
9
+ }
10
+
11
+ export {
12
+ markTitleRoot,
13
+ isTitleRoot
14
+ };
@@ -17,7 +17,7 @@ import {
17
17
  stripDefaultModifier,
18
18
  tagAttrKey,
19
19
  validateTagGroupNames
20
- } from "./chunk-4SACN2C5.js";
20
+ } from "./chunk-KW3CC7SB.js";
21
21
  import {
22
22
  AliasRegistry,
23
23
  INFRA_BEHAVIOR_KEY_SET,
@@ -31,7 +31,7 @@ import {
31
31
  tryParseSharedOption,
32
32
  warnUnknownMetaKeys,
33
33
  withTagAliases
34
- } from "./chunk-TIIZIAGS.js";
34
+ } from "./chunk-RFGQDIOI.js";
35
35
  import {
36
36
  isRecognizedColorName
37
37
  } from "./chunk-3J7O3CU6.js";
@@ -3,34 +3,37 @@ import {
3
3
  capLabelColumn,
4
4
  computeTimeTicks,
5
5
  showFullOnHover
6
- } from "./chunk-NERQSSYD.js";
6
+ } from "./chunk-D67YE4LR.js";
7
7
  import {
8
8
  ScaleContext
9
9
  } from "./chunk-24YPR5EH.js";
10
+ import {
11
+ renderCollapseBar
12
+ } from "./chunk-LRTSTDJ6.js";
10
13
  import {
11
14
  INLINE_HEADER_PAD,
12
15
  layoutInlineHeader
13
- } from "./chunk-UIEKW4SG.js";
16
+ } from "./chunk-REKLKGR6.js";
14
17
  import {
15
18
  TITLE_FONT_SIZE,
16
19
  TITLE_FONT_WEIGHT,
17
20
  TITLE_Y
18
- } from "./chunk-VLC6WNRD.js";
21
+ } from "./chunk-GULGSH2Z.js";
19
22
  import {
20
23
  EDGE_DASH,
21
24
  GRID_DASH,
22
25
  HAIRLINE_DASH
23
- } from "./chunk-XCKNFFKM.js";
26
+ } from "./chunk-WH6E6SHC.js";
24
27
  import {
25
28
  keepSwimlaneToggleFocus,
26
29
  renderIntegratedLegend,
27
30
  wireSwimlaneToggle
28
- } from "./chunk-NMS5XSLX.js";
31
+ } from "./chunk-DFEVFLEG.js";
29
32
  import {
30
33
  controlsGroupCapsuleWidth,
31
34
  getLegendExtent,
32
35
  getMaxLegendReservedHeight
33
- } from "./chunk-JILEYZ2V.js";
36
+ } from "./chunk-VVL2KKG4.js";
34
37
  import {
35
38
  normalizeName
36
39
  } from "./chunk-NOTA6TEI.js";
@@ -42,7 +45,7 @@ import {
42
45
  resolveActiveTagGroup,
43
46
  resolveTagColor,
44
47
  tagAttrKey
45
- } from "./chunk-4SACN2C5.js";
48
+ } from "./chunk-KW3CC7SB.js";
46
49
  import {
47
50
  LEGEND_CAPSULE_PAD,
48
51
  LEGEND_DOT_R,
@@ -57,12 +60,12 @@ import {
57
60
  LEGEND_PILL_PAD,
58
61
  measureLegendText,
59
62
  truncateLegendText
60
- } from "./chunk-UOCWYLYT.js";
63
+ } from "./chunk-OZXKW5NA.js";
61
64
  import {
62
65
  CHAR_WIDTH_RATIO,
63
66
  measureText,
64
67
  truncateText
65
- } from "./chunk-KAO7JL4I.js";
68
+ } from "./chunk-PU5X3P3T.js";
66
69
  import {
67
70
  contrastText,
68
71
  getEraColors,
@@ -116,7 +119,7 @@ function computeBarLabel(label, x1, barWidth, innerWidth, textColor, onFillColor
116
119
  var BAND_ACCENT_W = 4;
117
120
  var BAND_RADIUS = 4;
118
121
  var bandClipCounter = 0;
119
- function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr, fillMode, barH = BAR_H, bandRadius = BAND_RADIUS, bandAccentW = BAND_ACCENT_W) {
122
+ function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr, fillMode, barH = BAR_H, bandRadius = BAND_RADIUS, bandAccentW = BAND_ACCENT_W, collapsed = false, scale) {
120
123
  const bandX = 5;
121
124
  const bandW = leftMargin - 7;
122
125
  const bandY = y - barH / 2;
@@ -128,6 +131,45 @@ function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix,
128
131
  tint.attr(dataAttr.key, dataAttr.value);
129
132
  accent.attr(dataAttr.key, dataAttr.value);
130
133
  }
134
+ if (collapsed) {
135
+ renderCollapseBar(svg, {
136
+ x: bandX,
137
+ y: bandY,
138
+ width: bandW,
139
+ height: barH,
140
+ rx: bandRadius,
141
+ fill: color,
142
+ clipId: `${clipId}-bar`,
143
+ prefix: "gantt",
144
+ ...scale && { scale }
145
+ }).style("pointer-events", "none");
146
+ }
147
+ return {
148
+ x: bandX,
149
+ y: bandY,
150
+ width: bandW,
151
+ height: barH,
152
+ rx: bandRadius,
153
+ color,
154
+ clipId
155
+ };
156
+ }
157
+ function renderBandToggleTarget(toggle, band, collapsed, scale) {
158
+ toggle.append("rect").attr("class", "gantt-group-label-hit").attr("x", band.x).attr("y", band.y).attr("width", band.width).attr("height", band.height).attr("rx", band.rx).attr("fill", "transparent");
159
+ if (!collapsed) {
160
+ renderCollapseBar(toggle, {
161
+ expanded: true,
162
+ x: band.x,
163
+ y: band.y,
164
+ width: band.width,
165
+ height: band.height,
166
+ rx: band.rx,
167
+ fill: band.color,
168
+ clipId: `${band.clipId}-bar`,
169
+ prefix: "gantt",
170
+ ...scale && { scale }
171
+ });
172
+ }
131
173
  }
132
174
  function appendTaskIcon(textEl, label, isMilestone, iconColor, textColor) {
133
175
  const icon = isMilestone ? "\u25C6" : "\u25CF";
@@ -453,7 +495,6 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
453
495
  for (const row of rows) {
454
496
  if (row.type === "lane-header") {
455
497
  const laneColor = row.laneColor === UNTAGGED_TAG_COLOR ? palette.textMuted : row.laneColor;
456
- const toggleIcon = row.isCollapsed ? "\u25B6" : "\u25BC";
457
498
  const labelX = 10;
458
499
  let lx1 = 0;
459
500
  let lx2 = innerWidth;
@@ -480,7 +521,9 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
480
521
  fillMode,
481
522
  sBarH,
482
523
  sBandRadius,
483
- sBandAccentW
524
+ sBandAccentW,
525
+ row.isCollapsed,
526
+ ctx
484
527
  );
485
528
  const labelG = svg.append("g").attr("class", "gantt-lane-header").attr(`data-tag-${tagAttrKey(row.tagKey)}`, row.laneName.toLowerCase()).attr("data-lane", row.laneName).style("cursor", onToggleLane ? "pointer" : "default").on("click", () => {
486
529
  if (onToggleLane) onToggleLane(row.laneName);
@@ -500,7 +543,7 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
500
543
  restoreHighlight();
501
544
  hideGanttDateIndicators(g);
502
545
  });
503
- const laneFullText = toggleIcon + " " + row.laneName + (row.aggregateProgress !== null ? ` ${Math.round(row.aggregateProgress)}%` : "");
546
+ const laneFullText = row.laneName + (row.aggregateProgress !== null ? ` ${Math.round(row.aggregateProgress)}%` : "");
504
547
  const laneText = labelG.append("text").attr("x", labelX).attr("y", sMarginTop + yOffset + sBarH / 2).attr("dy", "0.35em").attr("text-anchor", "start").attr("font-size", sFont11).attr("font-weight", "bold").attr("fill", laneColor);
505
548
  showFullOnHover(
506
549
  labelG,
@@ -541,7 +584,6 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
541
584
  } else if (row.type === "group") {
542
585
  const group = row.group;
543
586
  const isCollapsed = collapsedGroups?.has(group.name) ?? false;
544
- const toggleIcon = isCollapsed ? "\u25B6" : "\u25BC";
545
587
  const tagColor = resolveTagColor(
546
588
  group.metadata,
547
589
  resolved.tagGroups,
@@ -549,7 +591,7 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
549
591
  true
550
592
  );
551
593
  const groupColor = tagColor && tagColor !== UNTAGGED_TAG_COLOR ? tagColor : group.color ?? palette.textMuted;
552
- renderLabelBand(
594
+ const groupBand = renderLabelBand(
553
595
  svg,
554
596
  sMarginTop + yOffset + sBarH / 2,
555
597
  leftMargin,
@@ -561,9 +603,11 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
561
603
  fillMode,
562
604
  sBarH,
563
605
  sBandRadius,
564
- sBandAccentW
606
+ sBandAccentW,
607
+ isCollapsed,
608
+ ctx
565
609
  );
566
- const labelG = svg.append("g").attr("class", "gantt-group-label").attr("data-group", group.name).attr("data-line-number", String(group.lineNumber)).style("cursor", onToggleGroup ? "pointer" : "default").on("click", () => {
610
+ const labelG = svg.append("g").attr("class", "gantt-group-label").attr("data-group", group.name).attr("data-line-number", String(group.lineNumber)).attr("data-group-toggle", group.name).attr("role", "button").attr("aria-expanded", String(!isCollapsed)).attr("aria-label", group.name).style("cursor", "pointer").on("click", () => {
567
611
  if (onToggleGroup) onToggleGroup(group.name);
568
612
  }).on("mouseenter", () => {
569
613
  highlightGroup(g, svg, group.name);
@@ -579,9 +623,10 @@ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
579
623
  resetHighlight(g, svg);
580
624
  hideGanttDateIndicators(g);
581
625
  });
626
+ renderBandToggleTarget(labelG, groupBand, isCollapsed, ctx);
582
627
  const groupIndent = group.depth <= 2 ? group.depth * 14 : 2 * 14 + (group.depth - 2) * 8;
583
628
  const labelX = 10 + groupIndent;
584
- const groupFullText = toggleIcon + " " + group.name + (group.progress !== null ? ` ${Math.round(group.progress)}%` : "");
629
+ const groupFullText = group.name + (group.progress !== null ? ` ${Math.round(group.progress)}%` : "");
585
630
  const groupText = labelG.append("text").attr("x", labelX).attr("y", sMarginTop + yOffset + sBarH / 2).attr("dy", "0.35em").attr("text-anchor", "start").attr("font-size", sFont11).attr("font-weight", "bold").attr("fill", palette.text);
586
631
  showFullOnHover(
587
632
  labelG,