@diagrammo/dgmo 0.96.0 → 0.98.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 (264) hide show
  1. package/dist/advanced.d.ts +178 -8
  2. package/dist/advanced.js +232 -246
  3. package/dist/block.d.ts +8 -0
  4. package/dist/block.js +138 -66
  5. package/dist/{calculator-GIB7POFX.js → calculator-CIGGTURF.js} +2 -2
  6. package/dist/{chart-meta-uImk4eTn.d.ts → chart-meta-B7niEd52.d.ts} +3 -1
  7. package/dist/chart-meta.d.ts +2 -2
  8. package/dist/chart-meta.js +19 -19
  9. package/dist/{chart-types-CBVYiLqy.d.ts → chart-types-Dxtv4XSz.d.ts} +3 -0
  10. package/dist/{charts-d3-IRP5VANE.js → charts-d3-INWEGMSD.js} +14 -14
  11. package/dist/{chunk-VLI6AWS3.js → chunk-3C4OXVZJ.js} +2 -2
  12. package/dist/{chunk-I3ZRIMR7.js → chunk-3EDV56HL.js} +15 -15
  13. package/dist/{chunk-OO4GUE4E.js → chunk-3F74NDUY.js} +63 -18
  14. package/dist/{chunk-RGFVHYDP.js → chunk-3IUMSK72.js} +2 -2
  15. package/dist/chunk-42AZPI2W.js +150 -0
  16. package/dist/{chunk-H7AXCRO7.js → chunk-453IWXZ3.js} +0 -11
  17. package/dist/{chunk-FHX373L5.js → chunk-47INRTZ6.js} +2 -2
  18. package/dist/{chunk-IN7XI6NO.js → chunk-4NMRS6HW.js} +1 -1
  19. package/dist/{chunk-JBAFAKGX.js → chunk-4PZP6URA.js} +41 -51
  20. package/dist/{chunk-5LG526X7.js → chunk-5TGZBHEJ.js} +1 -1
  21. package/dist/{chunk-BD4O4D2A.js → chunk-5WZYJC2P.js} +2 -2
  22. package/dist/{chunk-DPNSDCR3.js → chunk-65JFUANT.js} +1 -1
  23. package/dist/{chunk-EZ6BI5LL.js → chunk-6OUMYNAJ.js} +1 -1
  24. package/dist/{chunk-U6N547QA.js → chunk-6PUBFB6D.js} +24 -3
  25. package/dist/{chunk-IKXQ6NVR.js → chunk-6Q46GMKH.js} +21 -58
  26. package/dist/{chunk-DKCVAQU3.js → chunk-6YRTBI2F.js} +53 -75
  27. package/dist/{chunk-RTRORHSP.js → chunk-7QKWU7FX.js} +3 -3
  28. package/dist/{chunk-A6YINTY6.js → chunk-7RACGVUY.js} +1 -1
  29. package/dist/{chunk-H7RQG4PH.js → chunk-A3N4UHHL.js} +2 -2
  30. package/dist/{chunk-UNCCZ3NU.js → chunk-A3V72YIL.js} +14 -1
  31. package/dist/chunk-AHUBG6GR.js +188 -0
  32. package/dist/{chunk-P3PSLC2K.js → chunk-AULFF7L2.js} +2 -2
  33. package/dist/{chunk-SCYVGPLI.js → chunk-B7ZH5EQ2.js} +2 -2
  34. package/dist/{chunk-TUOZ6AXC.js → chunk-BTFB7W5Z.js} +16 -4
  35. package/dist/{chunk-THTYCJGF.js → chunk-BWVJTYTJ.js} +4 -4
  36. package/dist/{chunk-VGAMBOOC.js → chunk-C6ME2L4T.js} +2 -2
  37. package/dist/{chunk-H7JVKUA5.js → chunk-CES7REQM.js} +44 -60
  38. package/dist/{chunk-B2YVZ3QU.js → chunk-CGP7RGLJ.js} +1 -1
  39. package/dist/{chunk-34JOHSVE.js → chunk-CUTEHGXO.js} +2 -2
  40. package/dist/{chunk-NERQSSYD.js → chunk-D67YE4LR.js} +1 -1
  41. package/dist/{chunk-TPCP2UOI.js → chunk-D6XR22KO.js} +3 -3
  42. package/dist/{chunk-OAZ6BIIB.js → chunk-D7FHY6DO.js} +9 -7
  43. package/dist/{chunk-67N26CER.js → chunk-DA2GIHAY.js} +38 -5
  44. package/dist/{chunk-PGD6CNWO.js → chunk-DFEVFLEG.js} +3 -3
  45. package/dist/{chunk-VVTCUIPN.js → chunk-DKMZ4VMV.js} +1 -1
  46. package/dist/{chunk-VJ7NLYFE.js → chunk-DYI73PFY.js} +3 -3
  47. package/dist/{chunk-IQZSKWE5.js → chunk-E6GHXMH2.js} +8 -8
  48. package/dist/{chunk-I2I2FKAK.js → chunk-EBJLT7PH.js} +1 -1
  49. package/dist/{chunk-K2SFH3GJ.js → chunk-ENXENGW5.js} +3 -3
  50. package/dist/{chunk-FKJWZWNU.js → chunk-EUPUVYWO.js} +1 -1
  51. package/dist/{chunk-26EVL454.js → chunk-F4DGHT3F.js} +20 -0
  52. package/dist/{chunk-WLGOIMTI.js → chunk-FDVUD3PR.js} +4 -4
  53. package/dist/{chunk-IU7XKZA6.js → chunk-FK6HZYGK.js} +4 -14
  54. package/dist/{chunk-67RKJEKF.js → chunk-FTRW6YGU.js} +35 -11
  55. package/dist/{chunk-2M3K6GD2.js → chunk-FTW2E2YH.js} +6 -6
  56. package/dist/{chunk-5P2L5QXE.js → chunk-FZVCS2XY.js} +4 -2
  57. package/dist/chunk-G24NSISJ.js +69 -0
  58. package/dist/{chunk-4B45SNZH.js → chunk-G36XKXWT.js} +17 -15
  59. package/dist/{chunk-5H7SA5ZD.js → chunk-GFQFLLP3.js} +2 -2
  60. package/dist/{chunk-MAYTYF5S.js → chunk-GMJBBFKC.js} +3 -3
  61. package/dist/{chunk-5BG4OSWJ.js → chunk-GNQYARON.js} +20 -57
  62. package/dist/{chunk-RVOSA4RR.js → chunk-GNWCMWTO.js} +441 -267
  63. package/dist/{chunk-VLC6WNRD.js → chunk-GULGSH2Z.js} +4 -0
  64. package/dist/{chunk-H5NVCOEJ.js → chunk-GXBH7WNN.js} +2 -2
  65. package/dist/{chunk-7UWVHNPM.js → chunk-H242TVAE.js} +9 -9
  66. package/dist/{chunk-CD7VQCDL.js → chunk-H7XXQSYA.js} +63 -53
  67. package/dist/{chunk-GLCMUTO5.js → chunk-HQNZJMNS.js} +1 -1
  68. package/dist/{chunk-WTPS73RM.js → chunk-II6D6NWX.js} +8 -8
  69. package/dist/{chunk-3W73ZP6W.js → chunk-IMBFWXHF.js} +3 -3
  70. package/dist/{chunk-5ARANBIE.js → chunk-IUFTAFGN.js} +2 -2
  71. package/dist/{chunk-AQRSEQZV.js → chunk-IZEKHIV6.js} +3 -3
  72. package/dist/{chunk-WGNP5ND2.js → chunk-J3YM6RA5.js} +3 -3
  73. package/dist/{chunk-YFIUABSF.js → chunk-J467QBZF.js} +23 -3
  74. package/dist/{chunk-EPDBWATV.js → chunk-K7RRXZHS.js} +4 -2
  75. package/dist/{chunk-TIPNNOZC.js → chunk-KKJG3LBY.js} +41 -19
  76. package/dist/{chunk-YVIPJGFG.js → chunk-KMB754DO.js} +33 -6
  77. package/dist/chunk-KNKZGRRB.js +439 -0
  78. package/dist/{chunk-SIABEREK.js → chunk-KTGJQJB3.js} +2 -2
  79. package/dist/{chunk-LGUFJ7Y2.js → chunk-KW3CC7SB.js} +1 -1
  80. package/dist/{chunk-ITDF3MWD.js → chunk-L3K5O3Z5.js} +3 -3
  81. package/dist/{chunk-NI4L6HEU.js → chunk-LZATSXAA.js} +1 -1
  82. package/dist/{chunk-EPB3UEMD.js → chunk-NBISN6FH.js} +2 -2
  83. package/dist/{chunk-VNAPEZX2.js → chunk-NHN6GBG7.js} +1 -1
  84. package/dist/{chunk-EM5SA7NC.js → chunk-NQFZ7LXC.js} +4 -4
  85. package/dist/chunk-NTDWVTEY.js +12 -0
  86. package/dist/{chunk-ZBOIYC2G.js → chunk-NXOIH5JK.js} +8 -13
  87. package/dist/{chunk-AUXUNV73.js → chunk-O3HRF25Z.js} +1 -1
  88. package/dist/{chunk-KDWEOT54.js → chunk-O5APWRZN.js} +192 -230
  89. package/dist/{chunk-GLL237AP.js → chunk-OSSA5UWA.js} +3 -3
  90. package/dist/{chunk-UOCWYLYT.js → chunk-OZXKW5NA.js} +1 -1
  91. package/dist/{chunk-QEU6VM4O.js → chunk-PLQZJZ2K.js} +1 -1
  92. package/dist/chunk-PRG7NIUU.js +272 -0
  93. package/dist/{chunk-CP73WWLN.js → chunk-PRYAVMU6.js} +48 -14
  94. package/dist/{chunk-KAO7JL4I.js → chunk-PU5X3P3T.js} +6 -5
  95. package/dist/{chunk-B7BSRVNC.js → chunk-PZ5LAAO3.js} +2 -2
  96. package/dist/{chunk-TOHTKLKE.js → chunk-Q5Q5JLRT.js} +1 -1
  97. package/dist/{chunk-MVUNMJKO.js → chunk-Q6OKTHYL.js} +71 -57
  98. package/dist/{chunk-ZOKD5F7M.js → chunk-QDPTOIG7.js} +5 -5
  99. package/dist/{chunk-2BYFNZVM.js → chunk-QGSQ2LMB.js} +57 -15
  100. package/dist/{chunk-ERT7XDQW.js → chunk-QIITSGI5.js} +1 -1
  101. package/dist/{chunk-K2WXMXI2.js → chunk-QLIZ7SB7.js} +1 -1
  102. package/dist/{chunk-P6LKX3IQ.js → chunk-QOLRTPGH.js} +6 -6
  103. package/dist/{chunk-FBK32S4D.js → chunk-R4SXMBGF.js} +1 -1
  104. package/dist/chunk-R4U7IIRX.js +178 -0
  105. package/dist/{chunk-DWMQ24JR.js → chunk-RC6PISCK.js} +4 -2
  106. package/dist/{chunk-R5L5E3TC.js → chunk-REKLKGR6.js} +3 -3
  107. package/dist/{chunk-FUYEXLAN.js → chunk-RFGQDIOI.js} +837 -220
  108. package/dist/{chunk-W5MMPPGX.js → chunk-ROFSIFSY.js} +4 -4
  109. package/dist/{chunk-JCC3B2GS.js → chunk-ROH4LYBL.js} +65 -21
  110. package/dist/{chunk-MYHR3PMH.js → chunk-S5VZLZUQ.js} +7 -7
  111. package/dist/{chunk-JRN2CRXJ.js → chunk-TDUBTDXS.js} +1 -1
  112. package/dist/{chunk-IZFJZCF6.js → chunk-TGQQD2KC.js} +84 -16
  113. package/dist/{chunk-GM2SLMQW.js → chunk-TMB4YY3J.js} +34 -4
  114. package/dist/{chunk-HH3DHNQA.js → chunk-UWWQECLC.js} +2 -2
  115. package/dist/{chunk-HZX4QZGR.js → chunk-V65EDV6S.js} +3 -3
  116. package/dist/{chunk-OYGJZA24.js → chunk-VHVQT4EW.js} +39 -19
  117. package/dist/{chunk-KQAPFIYF.js → chunk-VQWLASDC.js} +2 -2
  118. package/dist/chunk-VTGGPBLW.js +14 -0
  119. package/dist/{chunk-LRHPBWOY.js → chunk-VUBCCY65.js} +32 -69
  120. package/dist/{chunk-JILEYZ2V.js → chunk-VVL2KKG4.js} +1 -1
  121. package/dist/{chunk-D7DGLJ7N.js → chunk-VVZDBUHA.js} +2 -2
  122. package/dist/{chunk-B5CEV7IR.js → chunk-VYEIMHL5.js} +38 -14
  123. package/dist/{chunk-XCKNFFKM.js → chunk-WH6E6SHC.js} +2 -4
  124. package/dist/{chunk-P2GNNEMN.js → chunk-WPYJAHRP.js} +1 -1
  125. package/dist/{chunk-RIK6WUMO.js → chunk-XCYGOCMS.js} +43 -26
  126. package/dist/{chunk-PWZEJNO6.js → chunk-XMUFXJI2.js} +6 -6
  127. package/dist/{chunk-5G4DOOX2.js → chunk-XPOEE2RW.js} +9 -5
  128. package/dist/{chunk-EMGNCG5C.js → chunk-XZGXVN4T.js} +5 -5
  129. package/dist/{chunk-BUVLLK3D.js → chunk-Y24QPREP.js} +27 -17
  130. package/dist/{chunk-GEHK4UD5.js → chunk-YCIOLYWL.js} +92 -23
  131. package/dist/{chunk-V2NQV7VL.js → chunk-YFIDR7JH.js} +2 -2
  132. package/dist/{chunk-6XLMTAEX.js → chunk-YIHRLY55.js} +33 -6
  133. package/dist/{chunk-CYRB2JTN.js → chunk-YLKPRT6U.js} +1 -1
  134. package/dist/{chunk-KMU65FYM.js → chunk-YSDSFXQD.js} +1 -1
  135. package/dist/{chunk-M4ZUIW3J.js → chunk-Z6V73LD6.js} +3 -3
  136. package/dist/{chunk-ZI6WC24V.js → chunk-ZBJV4KNU.js} +1 -1
  137. package/dist/{chunk-YSGOXZBB.js → chunk-ZMVMGZAJ.js} +1 -1
  138. package/dist/{chunk-O2HNVNKO.js → chunk-ZTKO2RD4.js} +5 -5
  139. package/dist/{chunk-5GU6C5WB.js → chunk-ZXPSNBZC.js} +3 -3
  140. package/dist/collapse-6IGH2B24.js +31 -0
  141. package/dist/collapse-GOWNCVHZ.js +7 -0
  142. package/dist/collapse-HNTPLB2Q.js +11 -0
  143. package/dist/collapse-NUM7DPJA.js +10 -0
  144. package/dist/completion-registry.js +27 -4
  145. package/dist/dgmo-router-RXV7BNPN.js +101 -0
  146. package/dist/dimensions-KXAI7U2B.js +21 -0
  147. package/dist/editor.js +882 -215
  148. package/dist/{flowchart-parser-SM5LHF2D.js → flowchart-parser-JAZRKKKJ.js} +5 -5
  149. package/dist/flowchart-renderer-JED3RESY.js +40 -0
  150. package/dist/fold-at-line-DmSAa1eU.d.ts +11 -0
  151. package/dist/highlight.js +883 -216
  152. package/dist/index.d.ts +52 -5
  153. package/dist/index.js +79 -63
  154. package/dist/{layout-LNVIH45F.js → layout-6QXAC2WA.js} +7 -6
  155. package/dist/{layout-2WESJYRE.js → layout-7E7BNOGO.js} +3 -2
  156. package/dist/layout-BSK374N6.js +11 -0
  157. package/dist/{layout-FCFUVCRI.js → layout-DJOZCSAP.js} +10 -10
  158. package/dist/{layout-R6G4MEO3.js → layout-FJDBY3WG.js} +5 -5
  159. package/dist/{layout-H2KP5A6M.js → layout-GC5XX2RH.js} +2 -2
  160. package/dist/{layout-KELSNWBD.js → layout-LCHMEGTV.js} +10 -10
  161. package/dist/{layout-PPIVGJXD.js → layout-ROI5KVSO.js} +3 -3
  162. package/dist/{layout-3TSVAGWH.js → layout-SPPS225I.js} +3 -3
  163. package/dist/{layout-AF4KA5B2.js → layout-VHBM32OD.js} +6 -6
  164. package/dist/{layout-HF3PMI4H.js → layout-VTGOYGRC.js} +2 -2
  165. package/dist/layout-WTHBGTH2.js +15 -0
  166. package/dist/layout-ZCCABSV7.js +15 -0
  167. package/dist/{layout-MPSH3YWE.js → layout-ZDMJL4KO.js} +10 -10
  168. package/dist/{layout-search-C2TYUH4L.js → layout-search-UZYZE4PR.js} +8 -8
  169. package/dist/{legend-constants-55MFBXYF.js → legend-constants-KF3MKWL2.js} +2 -2
  170. package/dist/{parser-6WURFLOB.js → parser-3KMY23A2.js} +3 -3
  171. package/dist/{parser-DGLKH4NT.js → parser-3PMYAVFL.js} +2 -2
  172. package/dist/{parser-OHBBDCG4.js → parser-5KVFS4RN.js} +2 -2
  173. package/dist/{parser-QWTECQEC.js → parser-ASXY2CPV.js} +6 -6
  174. package/dist/{parser-UHKROC7Z.js → parser-BA43YPIQ.js} +3 -3
  175. package/dist/{parser-F75WNYMK.js → parser-CFAYEWLF.js} +3 -3
  176. package/dist/{parser-MWINQNQW.js → parser-DRFEX6OX.js} +3 -3
  177. package/dist/{parser-W6NX3AIV.js → parser-DWVBRBB2.js} +3 -3
  178. package/dist/{parser-DRUGM3R6.js → parser-FWQY3HJX.js} +2 -2
  179. package/dist/{parser-4GHAYZKZ.js → parser-GBB5MYAN.js} +6 -6
  180. package/dist/{parser-GBQY3WOZ.js → parser-GMCXCJSP.js} +3 -3
  181. package/dist/{parser-BPYHIG24.js → parser-IHFHPFL7.js} +3 -3
  182. package/dist/{parser-TTGZYLYD.js → parser-JQGUTDSX.js} +3 -3
  183. package/dist/{parser-BNRX35NT.js → parser-JRKPOO2Z.js} +3 -3
  184. package/dist/{parser-B7SCN7FG.js → parser-KI2XYB2R.js} +2 -2
  185. package/dist/parser-LDVVBP7S.js +12 -0
  186. package/dist/{parser-L7SI3PW4.js → parser-MAGFK6OK.js} +4 -4
  187. package/dist/{parser-722KLLAQ.js → parser-MH5BDN7X.js} +3 -3
  188. package/dist/{parser-5RUD4A3X.js → parser-MUHFEM4G.js} +3 -3
  189. package/dist/{parser-Y7QXD2UR.js → parser-P375HO7Q.js} +2 -2
  190. package/dist/{parser-LUJX7AXO.js → parser-PYY5BRLQ.js} +2 -2
  191. package/dist/parser-QEMFMVF5.js +12 -0
  192. package/dist/{parser-WIKXZP4X.js → parser-QIPDBT5M.js} +2 -2
  193. package/dist/{parser-2AXU2MHJ.js → parser-RNBDDEGL.js} +3 -3
  194. package/dist/{parser-H6HT2WFQ.js → parser-SGX2PVR5.js} +2 -2
  195. package/dist/{parser-ZWWQZ4XZ.js → parser-SJUEFKNM.js} +3 -3
  196. package/dist/{parser-4BOP77CD.js → parser-UMNBPXG2.js} +2 -2
  197. package/dist/{parser-GM5B2EPW.js → parser-WE4VSBBY.js} +3 -3
  198. package/dist/{parser-XEJP37GQ.js → parser-WKEYS7N3.js} +3 -3
  199. package/dist/{parser-DWV2CYBS.js → parser-WPXUUNA2.js} +3 -3
  200. package/dist/{parser-5HQPPVHJ.js → parser-XP3RCOTN.js} +3 -3
  201. package/dist/{parser-F3JJNIFC.js → parser-YV4RBHG7.js} +3 -3
  202. package/dist/{parser-CRJYLOHA.js → parser-YZ3J542U.js} +2 -2
  203. package/dist/{parser-ZV756RMP.js → parser-ZSBMGGTD.js} +6 -6
  204. package/dist/renderer-37LMEGLD.js +26 -0
  205. package/dist/{renderer-TS5NHOQD.js → renderer-3EIZRVO3.js} +12 -11
  206. package/dist/renderer-4LK2RFHD.js +28 -0
  207. package/dist/{renderer-BYLQ37T2.js → renderer-4WD4ZIEH.js} +16 -15
  208. package/dist/renderer-67PNYODC.js +32 -0
  209. package/dist/{renderer-GKY55M4Z.js → renderer-6O5SV5YE.js} +10 -10
  210. package/dist/{renderer-VNJOZPSH.js → renderer-6VBL2DWH.js} +17 -17
  211. package/dist/{renderer-F7YGMEGQ.js → renderer-7OXMSF4R.js} +4 -4
  212. package/dist/{renderer-6HU44IGJ.js → renderer-A36NL2SS.js} +8 -8
  213. package/dist/renderer-CC6O6GQK.js +18 -0
  214. package/dist/renderer-CUEMI3PI.js +85 -0
  215. package/dist/{renderer-QZJZIAT3.js → renderer-D6BEC6LI.js} +6 -4
  216. package/dist/{renderer-5GP7YUS4.js → renderer-DT2PP7NJ.js} +7 -6
  217. package/dist/{renderer-MGF2NNGG.js → renderer-E7LC7HCU.js} +5 -5
  218. package/dist/{renderer-PEJF6R2I.js → renderer-F3JYZERE.js} +4 -4
  219. package/dist/{renderer-CVCCW7UT.js → renderer-FAFSRFGR.js} +9 -9
  220. package/dist/renderer-GHYW6Y3A.js +27 -0
  221. package/dist/{renderer-VUXAAGUG.js → renderer-HRUKL4T6.js} +12 -11
  222. package/dist/renderer-INQMQPNN.js +22 -0
  223. package/dist/{renderer-LJPUCG3U.js → renderer-KOPJ76GS.js} +10 -10
  224. package/dist/renderer-KVC7Z4T2.js +39 -0
  225. package/dist/{renderer-MVBAQP3M.js → renderer-MYKL6VG6.js} +6 -6
  226. package/dist/{renderer-D6EH5UQ6.js → renderer-QVUPRQ4L.js} +13 -12
  227. package/dist/{renderer-SYRH3B62.js → renderer-RBAMFLZQ.js} +14 -13
  228. package/dist/{renderer-YJVQT7QG.js → renderer-S6L3JR6C.js} +11 -11
  229. package/dist/{renderer-ONENGXFQ.js → renderer-SGRZKIMS.js} +14 -12
  230. package/dist/{renderer-NOYLNVTI.js → renderer-SYWVZ4CY.js} +3 -3
  231. package/dist/{renderer-66NCRXSC.js → renderer-TJPBVNVG.js} +14 -11
  232. package/dist/renderer-WK2BPXND.js +41 -0
  233. package/dist/renderer-ZG7WOBBN.js +30 -0
  234. package/dist/{renderer-N6PM5CSG.js → renderer-ZRPL5COW.js} +14 -13
  235. package/dist/{renderer-2V2XY2V7.js → renderer-ZTHXOBXW.js} +8 -8
  236. package/dist/{renderer-radial-4R7AKETK.js → renderer-radial-FC25BDCZ.js} +8 -8
  237. package/dist/{state-parser-EQBBEKHR.js → state-parser-LSFAJFMV.js} +6 -6
  238. package/dist/state-renderer-QTDBFB4F.js +43 -0
  239. package/dist/{themes-CbJL3w8L.d.ts → themes-DoLdhUXV.d.ts} +1 -1
  240. package/docs/ai-integration.md +4 -3
  241. package/docs/language-reference.md +100 -14
  242. package/gallery/fixtures/swot-relabel.dgmo +19 -0
  243. package/gallery/fixtures/swot-tags.dgmo +16 -0
  244. package/gallery/fixtures/swot.dgmo +13 -0
  245. package/package.json +1 -1
  246. package/dist/chunk-R2K5L4UA.js +0 -49
  247. package/dist/collapse-TCVK3RPO.js +0 -8
  248. package/dist/dgmo-router-EPBQKQW2.js +0 -100
  249. package/dist/dimensions-DBCRBZIU.js +0 -21
  250. package/dist/flowchart-renderer-PPS2GTTD.js +0 -40
  251. package/dist/layout-3J72UULM.js +0 -15
  252. package/dist/layout-IXQNVRBE.js +0 -15
  253. package/dist/layout-VDCJOZSH.js +0 -11
  254. package/dist/parser-HM6FEX5K.js +0 -14
  255. package/dist/renderer-2MCV75JQ.js +0 -41
  256. package/dist/renderer-5AEDVLAA.js +0 -31
  257. package/dist/renderer-7C76HP5W.js +0 -30
  258. package/dist/renderer-7RAMBMTH.js +0 -22
  259. package/dist/renderer-E3334XLT.js +0 -84
  260. package/dist/renderer-LFZKG2GR.js +0 -26
  261. package/dist/renderer-MZIWP55B.js +0 -28
  262. package/dist/renderer-N75E3UVY.js +0 -25
  263. package/dist/renderer-VNUDN6F5.js +0 -39
  264. package/dist/state-renderer-SOGZ2CNN.js +0 -42
@@ -94,6 +94,10 @@ var chartTypesData = [
94
94
  id: "kanban",
95
95
  description: "Task board columns"
96
96
  },
97
+ {
98
+ id: "swot",
99
+ description: "SWOT analysis: strengths, weaknesses, opportunities and threats in four fixed panels on helpful/harmful and internal/external axes"
100
+ },
97
101
  {
98
102
  id: "raci",
99
103
  description: "Tasks \xD7 roles responsibility matrix with constraint linting"
@@ -253,9 +257,21 @@ var DIRECTIVES_REGISTRY = [
253
257
  // Accepted in every date-bearing chart (gantt, pert, countdown, timeline,
254
258
  // event-line). Handled inline by each parser's prescan — no parser-Set
255
259
  // membership here — so they only contribute highlighting (DIRECTIVE_KEYWORDS).
256
- { token: "year", category: "directive" },
257
- { token: "date-order", category: "directive" },
258
- { token: "no-current-year", category: "directive" },
260
+ {
261
+ token: "year",
262
+ category: "directive",
263
+ chartTypes: ["countdown", "event-line", "gantt", "pert", "timeline"]
264
+ },
265
+ {
266
+ token: "date-order",
267
+ category: "directive",
268
+ chartTypes: ["countdown", "event-line", "gantt", "pert", "timeline"]
269
+ },
270
+ {
271
+ token: "no-current-year",
272
+ category: "directive",
273
+ chartTypes: ["countdown", "event-line", "gantt", "pert", "timeline"]
274
+ },
259
275
  // ── Infra ────────────────────────────────────────────────
260
276
  // Top-level SLO options that are ALSO accepted as node colon-properties
261
277
  // (dual membership). Highlight bare (kept in DIRECTIVE_KEYWORDS) — their
@@ -263,92 +279,413 @@ var DIRECTIVES_REGISTRY = [
263
279
  {
264
280
  token: "slo-availability",
265
281
  category: "directive",
266
- infra: ["top-level", "behavior"]
282
+ infra: ["top-level", "behavior"],
283
+ chartTypes: ["infra"]
267
284
  },
268
285
  {
269
286
  token: "slo-p90-latency-ms",
270
287
  category: "directive",
271
- infra: ["top-level", "behavior"]
288
+ infra: ["top-level", "behavior"],
289
+ chartTypes: ["infra"]
272
290
  },
273
291
  {
274
292
  token: "slo-warning-margin",
275
293
  category: "directive",
276
- infra: ["top-level", "behavior"]
294
+ infra: ["top-level", "behavior"],
295
+ chartTypes: ["infra"]
277
296
  },
278
297
  // Top-level-only options (space-separated, bare).
279
- { token: "default-latency-ms", category: "directive", infra: ["top-level"] },
280
- { token: "default-uptime", category: "directive", infra: ["top-level"] },
281
- { token: "default-rps", category: "directive", infra: ["top-level"] },
298
+ {
299
+ token: "default-latency-ms",
300
+ category: "directive",
301
+ infra: ["top-level"],
302
+ chartTypes: ["infra"]
303
+ },
304
+ {
305
+ token: "default-uptime",
306
+ category: "directive",
307
+ infra: ["top-level"],
308
+ chartTypes: ["infra"]
309
+ },
310
+ {
311
+ token: "default-rps",
312
+ category: "directive",
313
+ infra: ["top-level"],
314
+ chartTypes: ["infra"]
315
+ },
282
316
  // `active-tag` is shared with gantt + map (see below).
283
317
  // Node behavior colon-keys — highlight as propertyName.
284
- { token: "latency-ms", colonKey: true, infra: ["behavior"] },
285
- { token: "uptime", colonKey: true, infra: ["behavior"] },
286
- { token: "instances", colonKey: true, infra: ["behavior"] },
287
- { token: "max-rps", colonKey: true, infra: ["behavior"] },
288
- { token: "cache-hit", colonKey: true, infra: ["behavior"] },
289
- { token: "firewall-block", colonKey: true, infra: ["behavior"] },
290
- { token: "ratelimit-rps", colonKey: true, infra: ["behavior"] },
291
- { token: "buffer", colonKey: true, infra: ["behavior"] },
292
- { token: "drain-rate", colonKey: true, infra: ["behavior"] },
293
- { token: "retention-hours", colonKey: true, infra: ["behavior"] },
294
- { token: "partitions", colonKey: true, infra: ["behavior"] },
295
- { token: "concurrency", colonKey: true, infra: ["behavior"] },
296
- { token: "duration-ms", colonKey: true, infra: ["behavior"] },
297
- { token: "cold-start-ms", colonKey: true, infra: ["behavior"] },
298
- { token: "cb-error-threshold", colonKey: true, infra: ["behavior"] },
299
- { token: "cb-latency-threshold-ms", colonKey: true, infra: ["behavior"] },
318
+ {
319
+ token: "latency-ms",
320
+ colonKey: true,
321
+ infra: ["behavior"],
322
+ chartTypes: ["infra"]
323
+ },
324
+ {
325
+ token: "uptime",
326
+ colonKey: true,
327
+ infra: ["behavior"],
328
+ chartTypes: ["infra"]
329
+ },
330
+ {
331
+ token: "instances",
332
+ colonKey: true,
333
+ infra: ["behavior"],
334
+ chartTypes: ["infra"]
335
+ },
336
+ {
337
+ token: "max-rps",
338
+ colonKey: true,
339
+ infra: ["behavior"],
340
+ chartTypes: ["infra"]
341
+ },
342
+ {
343
+ token: "cache-hit",
344
+ colonKey: true,
345
+ infra: ["behavior"],
346
+ chartTypes: ["infra"]
347
+ },
348
+ {
349
+ token: "firewall-block",
350
+ colonKey: true,
351
+ infra: ["behavior"],
352
+ chartTypes: ["infra"]
353
+ },
354
+ {
355
+ token: "ratelimit-rps",
356
+ colonKey: true,
357
+ infra: ["behavior"],
358
+ chartTypes: ["infra"]
359
+ },
360
+ {
361
+ token: "buffer",
362
+ colonKey: true,
363
+ infra: ["behavior"],
364
+ chartTypes: ["infra"]
365
+ },
366
+ {
367
+ token: "drain-rate",
368
+ colonKey: true,
369
+ infra: ["behavior"],
370
+ chartTypes: ["infra"]
371
+ },
372
+ {
373
+ token: "retention-hours",
374
+ colonKey: true,
375
+ infra: ["behavior"],
376
+ chartTypes: ["infra"]
377
+ },
378
+ {
379
+ token: "partitions",
380
+ colonKey: true,
381
+ infra: ["behavior"],
382
+ chartTypes: ["infra"]
383
+ },
384
+ {
385
+ token: "concurrency",
386
+ colonKey: true,
387
+ infra: ["behavior"],
388
+ chartTypes: ["infra"]
389
+ },
390
+ {
391
+ token: "duration-ms",
392
+ colonKey: true,
393
+ infra: ["behavior"],
394
+ chartTypes: ["infra"]
395
+ },
396
+ {
397
+ token: "cold-start-ms",
398
+ colonKey: true,
399
+ infra: ["behavior"],
400
+ chartTypes: ["infra"]
401
+ },
402
+ {
403
+ token: "cb-error-threshold",
404
+ colonKey: true,
405
+ infra: ["behavior"],
406
+ chartTypes: ["infra"]
407
+ },
408
+ {
409
+ token: "cb-latency-threshold-ms",
410
+ colonKey: true,
411
+ infra: ["behavior"],
412
+ chartTypes: ["infra"]
413
+ },
300
414
  // Edge-only colon-key.
301
- { token: "rps", colonKey: true, infra: ["edge"] },
415
+ { token: "rps", colonKey: true, infra: ["edge"], chartTypes: ["infra"] },
302
416
  // ── Gantt ────────────────────────────────────────────────
303
- { token: "start", category: "directive", gantt: ["option"] },
417
+ {
418
+ token: "start",
419
+ category: "directive",
420
+ gantt: ["option"],
421
+ chartTypes: ["gantt"]
422
+ },
304
423
  {
305
424
  token: "today-marker",
306
425
  category: "directive",
307
- gantt: ["option", "boolean"]
426
+ gantt: ["option", "boolean"],
427
+ chartTypes: ["gantt"]
308
428
  },
309
429
  {
310
430
  token: "critical-path",
311
431
  category: "directive",
312
- gantt: ["option", "boolean"]
313
- },
314
- { token: "sprint-length", category: "directive", gantt: ["option"] },
315
- { token: "sprint-number", category: "directive", gantt: ["option"] },
316
- { token: "sprint-start", category: "directive", gantt: ["option"] },
317
- { token: "fill-tint", category: "directive", gantt: ["boolean"] },
318
- { token: "fill-solid", category: "directive", gantt: ["boolean"] },
319
- { token: "fill-outline", category: "directive", gantt: ["boolean"] },
432
+ gantt: ["option", "boolean"],
433
+ chartTypes: ["gantt"]
434
+ },
435
+ {
436
+ token: "sprint-length",
437
+ category: "directive",
438
+ gantt: ["option"],
439
+ chartTypes: ["gantt", "pert"]
440
+ },
441
+ {
442
+ token: "sprint-number",
443
+ category: "directive",
444
+ gantt: ["option"],
445
+ chartTypes: ["gantt", "pert"]
446
+ },
447
+ {
448
+ token: "sprint-start",
449
+ category: "directive",
450
+ gantt: ["option"],
451
+ chartTypes: ["gantt", "pert"]
452
+ },
453
+ {
454
+ token: "fill-tint",
455
+ category: "directive",
456
+ gantt: ["boolean"],
457
+ chartTypes: [
458
+ "arc",
459
+ "bar",
460
+ "block",
461
+ "body",
462
+ "boxes-and-lines",
463
+ "bracket",
464
+ "c4",
465
+ "class",
466
+ "clock",
467
+ "countdown",
468
+ "cycle",
469
+ "er",
470
+ "event-line",
471
+ "family",
472
+ "flowchart",
473
+ "funnel",
474
+ "gantt",
475
+ "goal",
476
+ "heatmap",
477
+ "journey-map",
478
+ "kanban",
479
+ "line",
480
+ "mindmap",
481
+ "org",
482
+ "pert",
483
+ "pie",
484
+ "polar-area",
485
+ "pyramid",
486
+ "quadrant",
487
+ "raci",
488
+ "radar",
489
+ "ring",
490
+ "scatter",
491
+ "sequence",
492
+ "sitemap",
493
+ "state",
494
+ "swimlane",
495
+ "timeline",
496
+ "treemap",
497
+ "venn",
498
+ "wireframe"
499
+ ]
500
+ },
501
+ {
502
+ token: "fill-solid",
503
+ category: "directive",
504
+ gantt: ["boolean"],
505
+ chartTypes: [
506
+ "arc",
507
+ "bar",
508
+ "block",
509
+ "body",
510
+ "boxes-and-lines",
511
+ "bracket",
512
+ "c4",
513
+ "class",
514
+ "clock",
515
+ "countdown",
516
+ "cycle",
517
+ "er",
518
+ "event-line",
519
+ "family",
520
+ "flowchart",
521
+ "funnel",
522
+ "gantt",
523
+ "goal",
524
+ "heatmap",
525
+ "journey-map",
526
+ "kanban",
527
+ "line",
528
+ "mindmap",
529
+ "org",
530
+ "pert",
531
+ "pie",
532
+ "polar-area",
533
+ "pyramid",
534
+ "quadrant",
535
+ "raci",
536
+ "radar",
537
+ "ring",
538
+ "scatter",
539
+ "sequence",
540
+ "sitemap",
541
+ "state",
542
+ "swimlane",
543
+ "timeline",
544
+ "treemap",
545
+ "venn",
546
+ "wireframe"
547
+ ]
548
+ },
549
+ {
550
+ token: "fill-outline",
551
+ category: "directive",
552
+ gantt: ["boolean"],
553
+ chartTypes: [
554
+ "arc",
555
+ "bar",
556
+ "block",
557
+ "body",
558
+ "boxes-and-lines",
559
+ "bracket",
560
+ "c4",
561
+ "class",
562
+ "clock",
563
+ "countdown",
564
+ "cycle",
565
+ "er",
566
+ "event-line",
567
+ "family",
568
+ "flowchart",
569
+ "funnel",
570
+ "gantt",
571
+ "goal",
572
+ "heatmap",
573
+ "journey-map",
574
+ "kanban",
575
+ "line",
576
+ "mindmap",
577
+ "org",
578
+ "pert",
579
+ "pie",
580
+ "polar-area",
581
+ "pyramid",
582
+ "quadrant",
583
+ "raci",
584
+ "radar",
585
+ "ring",
586
+ "scatter",
587
+ "sequence",
588
+ "sitemap",
589
+ "state",
590
+ "swimlane",
591
+ "timeline",
592
+ "treemap",
593
+ "venn",
594
+ "wireframe"
595
+ ]
596
+ },
320
597
  // `chart` is a wireframe element keyword (CONTROL); gantt also accepts it as
321
598
  // an option. Highlight family is control.
322
- { token: "chart", category: "control", gantt: ["option"] },
599
+ {
600
+ token: "chart",
601
+ category: "control",
602
+ gantt: ["option"],
603
+ chartTypes: ["gantt", "wireframe"]
604
+ },
323
605
  // `dependencies` is ON by default → almost never written bare (authors write
324
606
  // `no-dependencies`, which DOES highlight). Bare word collides with prose and
325
- // the specializer is context-free, so it stays plain. Present for parser
326
- // Set derivation only.
327
- { token: "dependencies", noHighlight: true, gantt: ["option", "boolean"] },
607
+ // it would colour in every gantt task name, so it stays plain. Present for
608
+ // parser Set derivation only.
609
+ {
610
+ token: "dependencies",
611
+ noHighlight: true,
612
+ gantt: ["option", "boolean"],
613
+ chartTypes: ["gantt"]
614
+ },
328
615
  // ── Map ──────────────────────────────────────────────────
329
616
  // Per-element value→channel ramps (decision #20): the directive names the
330
617
  // visual channel — `region-heat` (colour), `poi-size` (marker area),
331
618
  // `flow-width` (stroke). The per-element key mirrors it (`heat:`/`size:`/`width:`).
332
- { token: "region-heat", category: "directive", map: true },
333
- { token: "poi-size", category: "directive", map: true },
334
- { token: "flow-width", category: "directive", map: true },
335
- { token: "locale", category: "directive", map: true },
336
- { token: "caption", category: "directive", map: true },
337
- { token: "no-coastline", category: "directive", map: true },
338
- { token: "no-relief", category: "directive", map: true },
339
- { token: "no-context-labels", category: "directive", map: true },
340
- { token: "no-region-labels", category: "directive", map: true },
341
- { token: "no-region-heat-value", category: "directive", map: true },
342
- { token: "no-poi-labels", category: "directive", map: true },
343
- { token: "no-colorize", category: "directive", map: true },
344
- { token: "no-cities", category: "directive", map: true },
345
- { token: "no-cluster-pois", category: "directive", map: true },
619
+ {
620
+ token: "region-heat",
621
+ category: "directive",
622
+ map: true,
623
+ chartTypes: ["map"]
624
+ },
625
+ { token: "poi-size", category: "directive", map: true, chartTypes: ["map"] },
626
+ {
627
+ token: "flow-width",
628
+ category: "directive",
629
+ map: true,
630
+ chartTypes: ["map"]
631
+ },
632
+ { token: "locale", category: "directive", map: true, chartTypes: ["map"] },
633
+ { token: "caption", category: "directive", map: true, chartTypes: ["map"] },
634
+ {
635
+ token: "no-coastline",
636
+ category: "directive",
637
+ map: true,
638
+ chartTypes: ["map"]
639
+ },
640
+ { token: "no-relief", category: "directive", map: true, chartTypes: ["map"] },
641
+ {
642
+ token: "no-context-labels",
643
+ category: "directive",
644
+ map: true,
645
+ chartTypes: ["map"]
646
+ },
647
+ {
648
+ token: "no-region-labels",
649
+ category: "directive",
650
+ map: true,
651
+ chartTypes: ["map"]
652
+ },
653
+ {
654
+ token: "no-region-heat-value",
655
+ category: "directive",
656
+ map: true,
657
+ chartTypes: ["map"]
658
+ },
659
+ {
660
+ token: "no-poi-labels",
661
+ category: "directive",
662
+ map: true,
663
+ chartTypes: ["map"]
664
+ },
665
+ {
666
+ token: "no-colorize",
667
+ category: "directive",
668
+ map: true,
669
+ chartTypes: ["map"]
670
+ },
671
+ { token: "no-cities", category: "directive", map: true, chartTypes: ["map"] },
672
+ {
673
+ token: "no-cluster-pois",
674
+ category: "directive",
675
+ map: true,
676
+ chartTypes: ["map"]
677
+ },
346
678
  // ── Clock channel (BL-122): live local-time cards on POIs flagged `clock` ──
347
679
  // Activation is the per-POI `clock` flag (peeled in the map parser, not a
348
680
  // directive). `hours 9-17` / `days mon-fri` are the global availability
349
681
  // window (reused verbatim from the clock chart type).
350
- { token: "hours", category: "directive", map: true },
351
- { token: "days", category: "directive", map: true },
682
+ {
683
+ token: "hours",
684
+ category: "directive",
685
+ map: true,
686
+ chartTypes: ["clock", "map"]
687
+ },
688
+ { token: "days", category: "directive", map: true, chartTypes: ["map"] },
352
689
  // ── Shared across types ──────────────────────────────────
353
690
  // `active-tag`: infra top-level option + gantt option + map directive.
354
691
  // Treemap also accepts it (§24C.6, decision #48) — validated inline in its
@@ -359,24 +696,74 @@ var DIRECTIVES_REGISTRY = [
359
696
  category: "directive",
360
697
  infra: ["top-level"],
361
698
  gantt: ["option"],
362
- map: true
699
+ map: true,
700
+ chartTypes: [
701
+ "body",
702
+ "boxes-and-lines",
703
+ "c4",
704
+ "er",
705
+ "event-line",
706
+ "family",
707
+ "gantt",
708
+ "infra",
709
+ "journey-map",
710
+ "kanban",
711
+ "map",
712
+ "mindmap",
713
+ "org",
714
+ "pert",
715
+ "sequence",
716
+ "sitemap",
717
+ "state",
718
+ "swimlane",
719
+ "timeline",
720
+ "treemap",
721
+ "wireframe"
722
+ ]
363
723
  },
364
724
  // `title`: gantt option. (The data-chart `title` directive was removed in
365
725
  // decision #48 — it now raises E_TITLE_DIRECTIVE; the token stays here for
366
726
  // gantt.)
367
- { token: "title", category: "directive", gantt: ["option"] },
727
+ {
728
+ token: "title",
729
+ category: "directive",
730
+ gantt: ["option"],
731
+ chartTypes: ["gantt"]
732
+ },
368
733
  // `sort`: gantt option (also general, hand-listed).
369
- { token: "sort", category: "directive", gantt: ["option"] },
734
+ {
735
+ token: "sort",
736
+ category: "directive",
737
+ gantt: ["option"],
738
+ chartTypes: "all"
739
+ },
370
740
  // `lane-by <group>`: swimlane axis (view-state). NB not `swimlane` — that's a
371
741
  // chart type. Kanban reads it via its own KNOWN_OPTIONS; gantt via the switch.
372
- { token: "lane-by", category: "directive", gantt: ["option"] },
742
+ {
743
+ token: "lane-by",
744
+ category: "directive",
745
+ gantt: ["option"],
746
+ chartTypes: "all"
747
+ },
373
748
  // `no-title`: gantt boolean + map directive (also general, hand-listed).
374
- { token: "no-title", category: "directive", gantt: ["boolean"], map: true },
749
+ {
750
+ token: "no-title",
751
+ category: "directive",
752
+ gantt: ["boolean"],
753
+ map: true,
754
+ chartTypes: "all"
755
+ },
375
756
  // `no-legend`: universal (decision #48) — every chart that renders a legend
376
757
  // accepts it, and charts without one take it as a harmless no-op. Parsed for
377
758
  // most types via GLOBAL_BOOLEANS in utils/parsing; gantt derives its boolean
378
759
  // Set from here, and map from `map: true`.
379
- { token: "no-legend", category: "directive", gantt: ["boolean"], map: true },
760
+ {
761
+ token: "no-legend",
762
+ category: "directive",
763
+ gantt: ["boolean"],
764
+ map: true,
765
+ chartTypes: "all"
766
+ },
380
767
  // `legend-inline`: universal §1.9 boolean (decision #50) — the top-center-
381
768
  // legend data charts (bar/line/radar/scatter/function) render the title and
382
769
  // legend on one line; every other chart accepts it as a harmless no-op.
@@ -384,7 +771,8 @@ var DIRECTIVES_REGISTRY = [
384
771
  token: "legend-inline",
385
772
  category: "directive",
386
773
  gantt: ["boolean"],
387
- map: true
774
+ map: true,
775
+ chartTypes: "all"
388
776
  },
389
777
  // ══════════════════════════════════════════════════════════
390
778
  // Highlight-only vocab (no extractable parser Set).
@@ -394,40 +782,69 @@ var DIRECTIVES_REGISTRY = [
394
782
  // simply their single declaration site for highlighting. Grouped by chart
395
783
  // type. Categories route to the specializer-read sets in keywords.ts.
396
784
  // ── Gantt (extras beyond the option/boolean Sets) ────────
397
- { token: "era", category: "directive" },
398
- { token: "marker", category: "directive" },
399
- { token: "holiday", category: "directive" },
785
+ {
786
+ token: "era",
787
+ category: "directive",
788
+ chartTypes: [
789
+ "bar",
790
+ "gantt",
791
+ "line",
792
+ "pie",
793
+ "polar-area",
794
+ "radar",
795
+ "timeline"
796
+ ]
797
+ },
798
+ { token: "marker", category: "directive", chartTypes: ["gantt", "timeline"] },
799
+ { token: "holiday", category: "directive", chartTypes: ["gantt"] },
400
800
  // `workweek` is also the canonical weekday-window directive on clock and map
401
801
  // clock-cards (decision #48; `days` stays as the legacy alias).
402
- { token: "workweek", category: "directive", map: true },
403
- { token: "no-dependencies", category: "directive" },
802
+ {
803
+ token: "workweek",
804
+ category: "directive",
805
+ map: true,
806
+ chartTypes: ["clock", "gantt", "map"]
807
+ },
808
+ { token: "no-dependencies", category: "directive", chartTypes: ["gantt"] },
404
809
  // ── Tech-radar ───────────────────────────────────────────
405
- { token: "rings", category: "directive" },
810
+ { token: "rings", category: "directive", chartTypes: ["tech-radar"] },
406
811
  // Blip listing is default-on everywhere (decision #48): `no-blip-legend`
407
812
  // suppresses it; `show-blip-legend` stays as the parse-accepted legacy no-op.
408
- { token: "no-blip-legend", category: "directive" },
409
- { token: "show-blip-legend", category: "directive" },
410
- { token: "trend", category: "directive" },
813
+ {
814
+ token: "no-blip-legend",
815
+ category: "directive",
816
+ chartTypes: ["tech-radar"]
817
+ },
818
+ {
819
+ token: "show-blip-legend",
820
+ category: "directive",
821
+ chartTypes: ["tech-radar"]
822
+ },
823
+ { token: "trend", category: "directive", chartTypes: ["tech-radar"] },
411
824
  // ── Tags / shared directives ─────────────────────────────
412
- { token: "tags", category: "directive" },
413
- { token: "import", category: "directive" },
414
- { token: "hide", category: "directive" },
825
+ { token: "tags", category: "directive", chartTypes: "all" },
826
+ { token: "import", category: "directive", chartTypes: "all" },
827
+ {
828
+ token: "hide",
829
+ category: "directive",
830
+ chartTypes: ["boxes-and-lines", "kanban", "org"]
831
+ },
415
832
  // `focus <name>`: org subtree drill-down (view-state, source-backed) — the
416
833
  // export re-roots to that person/team with the ancestor breadcrumb trail.
417
834
  // Org reads it via its own KNOWN_OPTIONS; registered here for highlighting.
418
- { token: "focus", category: "directive" },
419
- { token: "direction", category: "directive" },
835
+ { token: "focus", category: "directive", chartTypes: ["org"] },
836
+ { token: "direction", category: "directive", chartTypes: "all" },
420
837
  // ── Clock ────────────────────────────────────────────────
421
838
  // The board's flat directives — highlight-only (the parser validates them
422
839
  // inline, no extractable Set). `no-title` + `direction` are already listed
423
840
  // above (shared). Values (analog is a bare flag; color-by's
424
841
  // place|work|daylight|time|none) highlight as plain tokens.
425
- { token: "analog", category: "directive" },
426
- { token: "hours", category: "directive" },
427
- { token: "days", category: "directive" },
428
- { token: "no-sun", category: "directive" },
429
- { token: "time-24", category: "directive" },
430
- { token: "color-by", category: "directive" },
842
+ { token: "analog", category: "directive", chartTypes: ["clock"] },
843
+ { token: "hours", category: "directive", chartTypes: ["clock"] },
844
+ { token: "days", category: "directive", chartTypes: ["clock"] },
845
+ { token: "no-sun", category: "directive", chartTypes: ["clock"] },
846
+ { token: "time-24", category: "directive", chartTypes: ["clock"] },
847
+ { token: "color-by", category: "directive", chartTypes: ["clock"] },
431
848
  // ── Boxes-and-lines ──────────────────────────────────────
432
849
  // `heat <Label> [low] [high]` is the value→colour ramp directive, but `heat`
433
850
  // is NOT registered as a directive keyword: it is dual-use with the `heat:`
@@ -437,72 +854,186 @@ var DIRECTIVES_REGISTRY = [
437
854
  // as a property in both positions — exactly the treemap `heat` precedent.
438
855
  // Box values render by default since decision #48; `show-values` stays as
439
856
  // the parse-accepted legacy no-op (suppress with the shared `no-value`).
440
- { token: "show-values", category: "directive" },
857
+ {
858
+ token: "show-values",
859
+ category: "directive",
860
+ chartTypes: ["boxes-and-lines"]
861
+ },
441
862
  // Treemap's legacy plural spelling of the same suppression (decision #48
442
863
  // made the shared singular `no-value` canonical). Registered so a legacy
443
864
  // document still highlights it as a directive rather than plain text.
444
- { token: "no-values", category: "directive" },
865
+ { token: "no-values", category: "directive", chartTypes: ["treemap"] },
445
866
  // ── Swimlane ─────────────────────────────────────────────
446
- { token: "lane", category: "directive" },
867
+ { token: "lane", category: "directive", chartTypes: ["swimlane"] },
447
868
  // ── ER ───────────────────────────────────────────────────
448
- { token: "notation", category: "directive" },
869
+ { token: "notation", category: "directive", chartTypes: ["er"] },
449
870
  // ── Class ────────────────────────────────────────────────
450
- { token: "extends", category: "directive" },
451
- { token: "implements", category: "directive" },
452
- { token: "abstract", category: "directive" },
453
- { token: "interface", category: "directive" },
454
- { token: "enum", category: "directive" },
871
+ { token: "extends", category: "directive", chartTypes: ["class"] },
872
+ { token: "implements", category: "directive", chartTypes: ["class"] },
873
+ { token: "abstract", category: "directive", chartTypes: ["class"] },
874
+ { token: "interface", category: "directive", chartTypes: ["class"] },
875
+ { token: "enum", category: "directive", chartTypes: ["class"] },
455
876
  // ── C4 ───────────────────────────────────────────────────
456
- { token: "containers", category: "directive" },
457
- { token: "components", category: "directive" },
458
- { token: "deployment", category: "directive" },
459
- { token: "technology", category: "directive" },
877
+ { token: "containers", category: "directive", chartTypes: ["c4"] },
878
+ { token: "components", category: "directive", chartTypes: ["c4"] },
879
+ { token: "deployment", category: "directive", chartTypes: ["c4"] },
880
+ { token: "technology", category: "directive", chartTypes: ["c4"] },
460
881
  // ── Infra (directives beyond the option/behavior Sets) ───
461
- { token: "sub-node-label", category: "directive" },
462
- { token: "show-sub-node-count", category: "directive" },
463
- { token: "animate", category: "directive" },
882
+ { token: "sub-node-label", category: "directive", chartTypes: ["org"] },
883
+ { token: "show-sub-node-count", category: "directive", chartTypes: ["org"] },
884
+ { token: "animate", category: "directive", chartTypes: ["infra"] },
464
885
  // ── Sequence ─────────────────────────────────────────────
465
- { token: "activations", category: "directive" },
466
- { token: "no-activations", category: "directive" },
467
- { token: "autonumber", category: "directive" },
886
+ { token: "activations", category: "directive", chartTypes: ["sequence"] },
887
+ { token: "no-activations", category: "directive", chartTypes: ["sequence"] },
888
+ { token: "autonumber", category: "directive", chartTypes: ["sequence"] },
468
889
  // ── Map element leaders (not in DIRECTIVE_SET) ───────────
469
- { token: "poi", category: "directive" },
470
- { token: "route", category: "directive" },
890
+ { token: "poi", category: "directive", chartTypes: ["map"] },
891
+ { token: "route", category: "directive", chartTypes: ["map"] },
471
892
  // ── Data charts ──────────────────────────────────────────
472
- { token: "stacked", category: "directive" },
473
- { token: "no-name", category: "directive" },
474
- { token: "no-value", category: "directive" },
475
- { token: "no-percent", category: "directive" },
476
- { token: "series", category: "directive" },
477
- { token: "orientation", category: "directive" },
478
- { token: "x-label", category: "directive" },
479
- { token: "y-label", category: "directive" },
480
- { token: "size-label", category: "directive" },
481
- { token: "columns", category: "directive" },
482
- { token: "rows", category: "directive" },
483
- { token: "labels", category: "directive" },
484
- { token: "rotate", category: "directive" },
485
- { token: "scale", category: "directive" },
486
- { token: "values", category: "directive" },
487
- { token: "orientation-horizontal", category: "directive" },
893
+ { token: "stacked", category: "directive", chartTypes: "all" },
894
+ {
895
+ token: "no-name",
896
+ category: "directive",
897
+ chartTypes: ["funnel", "pie", "polar-area", "scatter"]
898
+ },
899
+ {
900
+ token: "no-value",
901
+ category: "directive",
902
+ chartTypes: [
903
+ "bar",
904
+ "boxes-and-lines",
905
+ "funnel",
906
+ "goal",
907
+ "heatmap",
908
+ "line",
909
+ "pie",
910
+ "polar-area",
911
+ "radar",
912
+ "treemap"
913
+ ]
914
+ },
915
+ {
916
+ token: "no-percent",
917
+ category: "directive",
918
+ chartTypes: ["funnel", "goal", "pie", "polar-area", "treemap"]
919
+ },
920
+ {
921
+ token: "series",
922
+ category: "directive",
923
+ chartTypes: [
924
+ "bar",
925
+ "function",
926
+ "funnel",
927
+ "heatmap",
928
+ "line",
929
+ "pie",
930
+ "polar-area",
931
+ "radar",
932
+ "sankey",
933
+ "scatter"
934
+ ]
935
+ },
936
+ { token: "orientation", category: "directive", chartTypes: "all" },
937
+ {
938
+ token: "x-label",
939
+ category: "directive",
940
+ chartTypes: ["bar", "function", "line", "quadrant", "scatter"]
941
+ },
942
+ {
943
+ token: "y-label",
944
+ category: "directive",
945
+ chartTypes: ["bar", "function", "line", "quadrant", "scatter"]
946
+ },
947
+ { token: "size-label", category: "directive", chartTypes: ["scatter"] },
948
+ { token: "columns", category: "directive", chartTypes: ["block", "heatmap"] },
949
+ { token: "rows", category: "directive", chartTypes: "all" },
950
+ { token: "labels", category: "directive", chartTypes: "all" },
951
+ { token: "rotate", category: "directive", chartTypes: ["wordcloud"] },
952
+ { token: "scale", category: "directive", chartTypes: "all" },
953
+ {
954
+ token: "values",
955
+ category: "directive",
956
+ chartTypes: ["pert", "tech-radar"]
957
+ },
958
+ {
959
+ token: "orientation-horizontal",
960
+ category: "directive",
961
+ chartTypes: ["bar"]
962
+ },
488
963
  // ── Slope ────────────────────────────────────────────────
489
- { token: "period", category: "directive" },
964
+ { token: "period", category: "directive", chartTypes: "all" },
490
965
  // ── Quadrant ─────────────────────────────────────────────
491
- { token: "x-axis", category: "directive" },
492
- { token: "y-axis", category: "directive" },
493
- { token: "top-right", category: "directive" },
494
- { token: "top-left", category: "directive" },
495
- { token: "bottom-right", category: "directive" },
496
- { token: "bottom-left", category: "directive" },
966
+ { token: "x-axis", category: "directive", chartTypes: "all" },
967
+ { token: "y-axis", category: "directive", chartTypes: "all" },
968
+ {
969
+ token: "top-right",
970
+ category: "directive",
971
+ chartTypes: ["quadrant", "tech-radar"]
972
+ },
973
+ {
974
+ token: "top-left",
975
+ category: "directive",
976
+ chartTypes: ["quadrant", "tech-radar"]
977
+ },
978
+ {
979
+ token: "bottom-right",
980
+ category: "directive",
981
+ chartTypes: ["quadrant", "tech-radar"]
982
+ },
983
+ {
984
+ token: "bottom-left",
985
+ category: "directive",
986
+ chartTypes: ["quadrant", "tech-radar"]
987
+ },
497
988
  // ── Layout (cross-chart) ─────────────────────────────────
498
- { token: "direction-tb", category: "directive" },
499
- { token: "direction-lr", category: "directive" },
500
- { token: "orientation-vertical", category: "directive" },
989
+ {
990
+ token: "direction-tb",
991
+ category: "directive",
992
+ chartTypes: [
993
+ "boxes-and-lines",
994
+ "c4",
995
+ "clock",
996
+ "flowchart",
997
+ "infra",
998
+ "org",
999
+ "pert",
1000
+ "sitemap",
1001
+ "state",
1002
+ "swimlane",
1003
+ "version-control"
1004
+ ]
1005
+ },
1006
+ {
1007
+ token: "direction-lr",
1008
+ category: "directive",
1009
+ chartTypes: [
1010
+ "boxes-and-lines",
1011
+ "c4",
1012
+ "clock",
1013
+ "flowchart",
1014
+ "infra",
1015
+ "org",
1016
+ "pert",
1017
+ "sitemap",
1018
+ "state",
1019
+ "swimlane",
1020
+ "version-control"
1021
+ ]
1022
+ },
1023
+ { token: "orientation-vertical", category: "directive", chartTypes: "all" },
501
1024
  // ── Pyramid ──────────────────────────────────────────────
502
- { token: "inverted", category: "directive" },
1025
+ { token: "inverted", category: "directive", chartTypes: ["pyramid"] },
503
1026
  // ── Color / notes (cross-chart) ──────────────────────────
504
- { token: "color", category: "directive" },
505
- { token: "no-notes", category: "directive" },
1027
+ {
1028
+ token: "color",
1029
+ category: "directive",
1030
+ chartTypes: "all"
1031
+ },
1032
+ {
1033
+ token: "no-notes",
1034
+ category: "directive",
1035
+ chartTypes: ["flowchart", "goal", "state", "whiteboard"]
1036
+ },
506
1037
  // ── Emphasis family (§1.11, decision #49) ────────────────
507
1038
  // `highlight <Name>…` / `dim <Name>…` — the figure/ground axis, orthogonal
508
1039
  // to color (§1.5) and to the chart-wide `fill-*` family (§1.9). Both are
@@ -515,122 +1046,180 @@ var DIRECTIVES_REGISTRY = [
515
1046
  // tokens are registered together so the whole family lights up at once.
516
1047
  //
517
1048
  // Supported on `sankey` and `family` today; every further chart type is a
518
- // separate decision. Registering them globally is correct regardless: the
519
- // Lezer specializer is context-free (it cannot know the chart type), and the
520
- // same is already true of every other chart-scoped token here.
521
- { token: "highlight", category: "directive" },
522
- { token: "dim", category: "directive" },
1049
+ // separate decision, made by adding it to `chartTypes` below (#1734).
1050
+ {
1051
+ token: "highlight",
1052
+ category: "directive",
1053
+ chartTypes: ["family", "sankey"]
1054
+ },
1055
+ { token: "dim", category: "directive", chartTypes: ["family", "sankey"] },
523
1056
  // ── RACI ─────────────────────────────────────────────────
524
- { token: "roles", category: "directive" },
1057
+ { token: "roles", category: "directive", chartTypes: ["raci"] },
525
1058
  // ── Cycle ────────────────────────────────────────────────
526
- { token: "direction-counterclockwise", category: "directive" },
527
- { token: "circle-nodes", category: "directive" },
1059
+ {
1060
+ token: "direction-counterclockwise",
1061
+ category: "directive",
1062
+ chartTypes: ["cycle"]
1063
+ },
1064
+ { token: "circle-nodes", category: "directive", chartTypes: ["cycle"] },
528
1065
  // ── Journey-map ──────────────────────────────────────────
529
- { token: "persona", category: "directive" },
1066
+ { token: "persona", category: "directive", chartTypes: ["journey-map"] },
530
1067
  // ── Function ─────────────────────────────────────────────
531
- { token: "x", category: "directive" },
532
- { token: "fill", category: "directive" },
1068
+ { token: "x", category: "directive", chartTypes: ["function"] },
1069
+ {
1070
+ token: "fill",
1071
+ category: "directive",
1072
+ chartTypes: ["function", "line", "whiteboard"]
1073
+ },
533
1074
  // ── Wordcloud ────────────────────────────────────────────
534
- { token: "max", category: "directive" },
535
- { token: "size", category: "directive" },
1075
+ { token: "max", category: "directive", chartTypes: ["wordcloud"] },
1076
+ {
1077
+ token: "size",
1078
+ category: "directive",
1079
+ chartTypes: ["whiteboard", "wordcloud"]
1080
+ },
536
1081
  // ── Arc ──────────────────────────────────────────────────
537
- { token: "order", category: "directive" },
1082
+ { token: "order", category: "directive", chartTypes: ["arc"] },
538
1083
  // ── PERT ─────────────────────────────────────────────────
539
- { token: "time-unit", category: "directive" },
540
- { token: "default-confidence", category: "directive" },
541
- { token: "node-detail", category: "directive" },
542
- { token: "trials", category: "directive" },
543
- { token: "seed", category: "directive" },
544
- { token: "scrubber-trials", category: "directive" },
1084
+ { token: "time-unit", category: "directive", chartTypes: ["pert"] },
1085
+ { token: "default-confidence", category: "directive", chartTypes: ["pert"] },
1086
+ { token: "node-detail", category: "directive", chartTypes: ["pert"] },
1087
+ { token: "trials", category: "directive", chartTypes: ["pert"] },
1088
+ { token: "seed", category: "directive", chartTypes: ["bracket", "pert"] },
1089
+ { token: "scrubber-trials", category: "directive", chartTypes: ["pert"] },
545
1090
  // `start-date` is also gantt's canonical project-start option (decision #48;
546
1091
  // bare `start` above stays as the legacy alias).
547
- { token: "start-date", category: "directive", gantt: ["option"] },
548
- { token: "end-date", category: "directive" },
1092
+ {
1093
+ token: "start-date",
1094
+ category: "directive",
1095
+ gantt: ["option"],
1096
+ chartTypes: ["gantt", "pert"]
1097
+ },
1098
+ { token: "end-date", category: "directive", chartTypes: ["pert"] },
549
1099
  // ── Goal ─────────────────────────────────────────────────
550
1100
  // Mode flags, value-key leaders, and opt-outs. `now`/`target` collide with
551
1101
  // label prose ("start now", "on target"), but the arrow-label demotion pass
552
1102
  // (see highlight-api LABEL_WORD_NODES) treats any keyword-bearing label as
553
1103
  // text and demotes them, so they highlight only as line leaders.
554
- { token: "thermometer", category: "directive" },
555
- { token: "gauge", category: "directive" },
556
- { token: "now", category: "directive" },
557
- { token: "target", category: "directive" },
558
- { token: "no-note", category: "directive" },
559
- { token: "no-auto-color", category: "directive" },
1104
+ { token: "thermometer", category: "directive", chartTypes: ["goal"] },
1105
+ { token: "gauge", category: "directive", chartTypes: ["goal"] },
1106
+ {
1107
+ token: "now",
1108
+ category: "directive",
1109
+ chartTypes: ["event-line", "goal", "pert"]
1110
+ },
1111
+ { token: "target", category: "directive", chartTypes: ["countdown", "goal"] },
1112
+ { token: "no-note", category: "directive", chartTypes: ["goal"] },
1113
+ { token: "no-auto-color", category: "directive", chartTypes: ["goal"] },
560
1114
  // ── Control-flow + wireframe element keywords (CONTROL) ──
561
- { token: "if", category: "control" },
562
- { token: "else", category: "control" },
563
- { token: "loop", category: "control" },
564
- { token: "parallel", category: "control" },
565
- { token: "note", category: "control" },
566
- { token: "nav", category: "control" },
567
- { token: "tabs", category: "control" },
568
- { token: "table", category: "control" },
569
- { token: "image", category: "control" },
570
- { token: "modal", category: "control" },
571
- { token: "skeleton", category: "control" },
572
- { token: "alert", category: "control" },
573
- { token: "progress", category: "control" },
574
- { token: "mobile", category: "control" },
1115
+ { token: "if", category: "control", chartTypes: ["sequence"] },
1116
+ { token: "else", category: "control", chartTypes: ["sequence"] },
1117
+ { token: "loop", category: "control", chartTypes: ["sequence"] },
1118
+ { token: "parallel", category: "control", chartTypes: ["gantt", "sequence"] },
1119
+ {
1120
+ token: "note",
1121
+ category: "control",
1122
+ chartTypes: [
1123
+ "boxes-and-lines",
1124
+ "class",
1125
+ "countdown",
1126
+ "er",
1127
+ "flowchart",
1128
+ "goal",
1129
+ "sequence",
1130
+ "state",
1131
+ "swimlane",
1132
+ "version-control",
1133
+ "whiteboard"
1134
+ ]
1135
+ },
1136
+ { token: "nav", category: "control", chartTypes: ["wireframe"] },
1137
+ { token: "tabs", category: "control", chartTypes: ["wireframe"] },
1138
+ { token: "table", category: "control", chartTypes: ["wireframe"] },
1139
+ {
1140
+ token: "image",
1141
+ category: "control",
1142
+ chartTypes: ["whiteboard", "wireframe"]
1143
+ },
1144
+ { token: "modal", category: "control", chartTypes: ["wireframe"] },
1145
+ { token: "skeleton", category: "control", chartTypes: ["wireframe"] },
1146
+ { token: "alert", category: "control", chartTypes: ["wireframe"] },
1147
+ {
1148
+ token: "progress",
1149
+ category: "control",
1150
+ chartTypes: ["gantt", "wireframe"]
1151
+ },
1152
+ { token: "mobile", category: "control", chartTypes: ["wireframe"] },
575
1153
  // Whiteboard element leaders (§39). `image` is shared with wireframe above
576
1154
  // and `text` stays an ER modifier; `database` / `queue` are left plain
577
1155
  // because sequence uses them as values, not line leaders.
578
- { token: "rectangle", category: "control" },
579
- { token: "ellipse", category: "control" },
580
- { token: "arrow", category: "control" },
581
- { token: "ink", category: "control" },
1156
+ { token: "rectangle", category: "control", chartTypes: ["whiteboard"] },
1157
+ { token: "ellipse", category: "control", chartTypes: ["whiteboard"] },
1158
+ { token: "arrow", category: "control", chartTypes: ["whiteboard"] },
1159
+ { token: "ink", category: "control", chartTypes: ["whiteboard"] },
1160
+ // ── SWOT section keywords (CONTROL) ──────────────────────
1161
+ { token: "strengths", category: "control", chartTypes: ["swot"] },
1162
+ { token: "weaknesses", category: "control", chartTypes: ["swot"] },
1163
+ { token: "opportunities", category: "control", chartTypes: ["swot"] },
1164
+ { token: "threats", category: "control", chartTypes: ["swot"] },
1165
+ { token: "no-axes", category: "directive", chartTypes: ["swot"] },
1166
+ { token: "no-tint-items", category: "directive", chartTypes: ["swot"] },
582
1167
  // ── Kanban status keywords (STATUS) ──────────────────────
583
- { token: "na", category: "status" },
584
- { token: "todo", category: "status" },
585
- { token: "wip", category: "status" },
586
- { token: "done", category: "status" },
587
- { token: "blocked", category: "status" },
588
- { token: "in-progress", category: "status" },
589
- { token: "backlog", category: "status" },
590
- { token: "ready", category: "status" },
1168
+ { token: "na", category: "status", chartTypes: ["kanban"] },
1169
+ { token: "todo", category: "status", chartTypes: ["kanban"] },
1170
+ { token: "wip", category: "status", chartTypes: ["kanban"] },
1171
+ { token: "done", category: "status", chartTypes: ["kanban"] },
1172
+ { token: "blocked", category: "status", chartTypes: ["kanban"] },
1173
+ { token: "in-progress", category: "status", chartTypes: ["kanban"] },
1174
+ { token: "backlog", category: "status", chartTypes: ["kanban"] },
1175
+ { token: "ready", category: "status", chartTypes: ["kanban"] },
591
1176
  // ── Modifiers + ER column types/modifiers (MODIFIER) ─────
592
1177
  // `collapsed` is the bare trailing group-line flag made canonical by
593
1178
  // decision #48 (`[Fulfillment] collapsed`). It is deliberately a bare
594
1179
  // MODIFIER rather than a colon key: the legacy `collapsed: true` form still
595
1180
  // parses and still highlights (as `modifier` instead of `propertyName`),
596
1181
  // whereas leaving it colon-only left the canonical bare form as plain text.
597
- { token: "collapsed", category: "modifier" },
598
- { token: "as", category: "modifier" },
599
- { token: "alias", category: "modifier" },
600
- { token: "aka", category: "modifier" },
601
- { token: "position", category: "modifier" },
602
- { token: "default", category: "modifier" },
603
- { token: "pk", category: "modifier" },
604
- { token: "fk", category: "modifier" },
605
- { token: "nullable", category: "modifier" },
606
- { token: "unique", category: "modifier" },
607
- { token: "int", category: "modifier" },
608
- { token: "varchar", category: "modifier" },
609
- { token: "text", category: "modifier" },
610
- { token: "boolean", category: "modifier" },
611
- { token: "date", category: "modifier" },
612
- { token: "timestamp", category: "modifier" },
613
- { token: "float", category: "modifier" },
614
- { token: "decimal", category: "modifier" },
1182
+ { token: "collapsed", category: "modifier", chartTypes: "all" },
1183
+ { token: "as", category: "modifier", chartTypes: "all" },
1184
+ { token: "alias", category: "modifier", chartTypes: "all" },
1185
+ { token: "aka", category: "modifier", chartTypes: "all" },
1186
+ { token: "position", category: "modifier", chartTypes: "all" },
1187
+ { token: "default", category: "modifier", chartTypes: "all" },
1188
+ { token: "pk", category: "modifier", chartTypes: ["er"] },
1189
+ { token: "fk", category: "modifier", chartTypes: ["er"] },
1190
+ { token: "nullable", category: "modifier", chartTypes: ["er"] },
1191
+ { token: "unique", category: "modifier", chartTypes: ["er"] },
1192
+ { token: "int", category: "modifier", chartTypes: ["class", "er"] },
1193
+ { token: "varchar", category: "modifier", chartTypes: ["class", "er"] },
1194
+ {
1195
+ token: "text",
1196
+ category: "modifier",
1197
+ chartTypes: ["class", "er", "whiteboard"]
1198
+ },
1199
+ { token: "boolean", category: "modifier", chartTypes: ["class", "er"] },
1200
+ { token: "date", category: "modifier", chartTypes: ["class", "er"] },
1201
+ { token: "timestamp", category: "modifier", chartTypes: ["class", "er"] },
1202
+ { token: "float", category: "modifier", chartTypes: ["class", "er"] },
1203
+ { token: "decimal", category: "modifier", chartTypes: ["class", "er"] },
615
1204
  // ── Bracket ──────────────────────────────────────────────
616
1205
  // `beats` / `vs` are the infix match keywords; the rest are line directives.
617
1206
  // (`seed` and `no-legend` already appear above — shared, not re-listed.)
618
- { token: "beats", category: "control" },
619
- { token: "vs", category: "control" },
620
- { token: "rounds", category: "directive" },
621
- { token: "accent", category: "directive" },
622
- { token: "no-round", category: "modifier" },
623
- { token: "no-rounds", category: "modifier" },
624
- { token: "single-elim", category: "modifier" },
625
- { token: "double-elim", category: "modifier" },
626
- { token: "seeded", category: "modifier" },
1207
+ { token: "beats", category: "control", chartTypes: ["bracket"] },
1208
+ { token: "vs", category: "control", chartTypes: ["bracket"] },
1209
+ { token: "rounds", category: "directive", chartTypes: ["bracket"] },
1210
+ { token: "accent", category: "directive", chartTypes: "all" },
1211
+ { token: "no-round", category: "modifier", chartTypes: ["bracket"] },
1212
+ { token: "no-rounds", category: "modifier", chartTypes: ["bracket"] },
1213
+ { token: "single-elim", category: "modifier", chartTypes: ["bracket"] },
1214
+ { token: "double-elim", category: "modifier", chartTypes: ["bracket"] },
1215
+ { token: "seeded", category: "modifier", chartTypes: ["bracket"] },
627
1216
  // ── Live link (§38) ──────────────────────────────────────
628
1217
  // The pointer type's one directive. Registered so it highlights and
629
1218
  // autocompletes like `palette` does — §38 justifies the shape by calling it
630
1219
  // "the ordinary DGMO directive shape", and an unregistered `url` would make
631
1220
  // that sentence false in the editor: `editor/tokens.ts` specializes only
632
1221
  // against the keyword registries, so it would render as plain identifier text.
633
- { token: "url", category: "directive" }
1222
+ { token: "url", category: "directive", chartTypes: ["live-link"] }
634
1223
  ];
635
1224
  function tokensWhere(pred) {
636
1225
  const out = /* @__PURE__ */ new Set();
@@ -666,6 +1255,21 @@ var REGISTRY_STATUS_TOKENS = tokensWhere(
666
1255
  var REGISTRY_MODIFIER_TOKENS = tokensWhere(
667
1256
  (e) => e.category === "modifier" && !e.colonKey && !e.noHighlight
668
1257
  );
1258
+ var REGISTRY_TOKEN_CHART_TYPES = (() => {
1259
+ const out = /* @__PURE__ */ new Map();
1260
+ for (const e of DIRECTIVES_REGISTRY) {
1261
+ const prev = out.get(e.token);
1262
+ if (prev === "all") continue;
1263
+ if (e.chartTypes === "all") {
1264
+ out.set(e.token, "all");
1265
+ continue;
1266
+ }
1267
+ const set = prev ?? /* @__PURE__ */ new Set();
1268
+ for (const t of e.chartTypes) set.add(t);
1269
+ out.set(e.token, set);
1270
+ }
1271
+ return out;
1272
+ })();
669
1273
  var REGISTRY_COLON_KEY_TOKENS = tokensWhere((e) => !!e.colonKey);
670
1274
  var REGISTRY_NON_HIGHLIGHT_TOKENS = tokensWhere(
671
1275
  (e) => !!e.noHighlight
@@ -755,10 +1359,13 @@ var KANBAN_REGISTRY = staticRegistry([
755
1359
  "collapsed"
756
1360
  // `[Column] collapsed: true` view-state marker
757
1361
  ]);
1362
+ var SWOT_REGISTRY = staticRegistry([]);
758
1363
  var SITEMAP_REGISTRY = staticRegistry([
759
1364
  "color",
760
1365
  "description",
761
- "status"
1366
+ "status",
1367
+ "collapsed"
1368
+ // page / `[Container]` view-state marker (#1741)
762
1369
  ]);
763
1370
  var GANTT_REGISTRY = staticRegistry([
764
1371
  "color",
@@ -779,13 +1386,17 @@ var PERT_REGISTRY = staticRegistry([
779
1386
  var BOXES_AND_LINES_REGISTRY = staticRegistry([
780
1387
  "color",
781
1388
  "description",
782
- "heat"
1389
+ "heat",
1390
+ "collapsed"
1391
+ // `[Group] collapsed: true` view-state marker (#1741)
783
1392
  ]);
784
1393
  var STATE_REGISTRY = staticRegistry([]);
785
1394
  var TIMELINE_REGISTRY = staticRegistry([
786
1395
  "color",
787
1396
  "description",
788
- "duration"
1397
+ "duration",
1398
+ "collapsed"
1399
+ // `[Lane] collapsed: true` view-state marker (#1741)
789
1400
  ]);
790
1401
  var MINDMAP_REGISTRY = staticRegistry([
791
1402
  "color",
@@ -812,7 +1423,9 @@ var JOURNEY_MAP_REGISTRY = staticRegistry([
812
1423
  "emotion",
813
1424
  "pain",
814
1425
  "opportunity",
815
- "thought"
1426
+ "thought",
1427
+ "collapsed"
1428
+ // `[Phase] collapsed: true` view-state marker (#1741)
816
1429
  ]);
817
1430
  var PYRAMID_REGISTRY = staticRegistry([
818
1431
  "color",
@@ -825,7 +1438,9 @@ var RING_REGISTRY = staticRegistry([
825
1438
  var TREEMAP_REGISTRY = staticRegistry(["heat"]);
826
1439
  var RACI_REGISTRY = staticRegistry([
827
1440
  "color",
828
- "description"
1441
+ "description",
1442
+ "collapsed"
1443
+ // `[Phase] collapsed: true` view-state marker (#1741)
829
1444
  ]);
830
1445
  var FAMILY_PERSON_REGISTRY = staticRegistry([
831
1446
  "sex",
@@ -1599,6 +2214,7 @@ export {
1599
2214
  REGISTRY_CONTROL_TOKENS,
1600
2215
  REGISTRY_STATUS_TOKENS,
1601
2216
  REGISTRY_MODIFIER_TOKENS,
2217
+ REGISTRY_TOKEN_CHART_TYPES,
1602
2218
  REGISTRY_COLON_KEY_TOKENS,
1603
2219
  withTagAliases,
1604
2220
  isReservedKey,
@@ -1610,6 +2226,7 @@ export {
1610
2226
  ER_REGISTRY,
1611
2227
  EVENT_LINE_REGISTRY,
1612
2228
  KANBAN_REGISTRY,
2229
+ SWOT_REGISTRY,
1613
2230
  SITEMAP_REGISTRY,
1614
2231
  GANTT_REGISTRY,
1615
2232
  PERT_REGISTRY,