@diagrammo/dgmo 0.51.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/.cursorrules +74 -77
  2. package/.github/copilot-instructions.md +74 -77
  3. package/.windsurfrules +74 -77
  4. package/SKILL.md +74 -77
  5. package/dist/advanced.d.ts +109 -246
  6. package/dist/advanced.js +296 -633
  7. package/dist/analyzer-TDN5KJFP.js +15 -0
  8. package/dist/auto.css +14 -6
  9. package/dist/auto.js +141 -129
  10. package/dist/auto.mjs +2062 -937
  11. package/dist/block.css +14 -6
  12. package/dist/block.js +123 -73
  13. package/dist/calculator-VBIT6GQF.js +11 -0
  14. package/dist/chart-meta-CPNVUZ5J.d.ts +232 -0
  15. package/dist/chart-meta.d.ts +2 -0
  16. package/dist/chart-meta.js +105 -0
  17. package/dist/charts-d3-DH2XA45I.js +26 -0
  18. package/dist/{chunk-RLFVAKEO.js → chunk-22OQWBWD.js} +25 -8
  19. package/dist/{chunk-I2QZFCS2.js → chunk-27STWBOK.js} +10 -8
  20. package/dist/{chunk-5PZT4DQG.js → chunk-2QC4HXCY.js} +41 -21
  21. package/dist/{chunk-HFMYN6N2.js → chunk-3B2GXZCX.js} +4 -3
  22. package/dist/{chunk-F3FYUFUH.js → chunk-3BEKKRH5.js} +18 -17
  23. package/dist/{chunk-2UJSV2VT.js → chunk-3CZLWOCI.js} +17 -7
  24. package/dist/{chunk-JEUJOX5X.js → chunk-3IUHKMJI.js} +2 -2
  25. package/dist/{chunk-7L4UJOY6.js → chunk-3TYUXC7D.js} +2 -2
  26. package/dist/{chunk-Y2ZE3MSG.js → chunk-43E26CDA.js} +2 -2
  27. package/dist/{chunk-ZO27FGJS.js → chunk-4ASVFYB2.js} +10 -7
  28. package/dist/{chunk-WCT3NYCV.js → chunk-4ASYQ347.js} +33 -8
  29. package/dist/{chunk-2ILHQOL3.js → chunk-4K42RUGC.js} +41 -13
  30. package/dist/{chunk-I5IGB56C.js → chunk-4QV26TEG.js} +41 -1
  31. package/dist/{chunk-QOOUC2J5.js → chunk-4RGZFA7H.js} +2 -2
  32. package/dist/{chunk-CXK4DZH3.js → chunk-4W2PE66Q.js} +12 -2
  33. package/dist/{chunk-EXOQP75F.js → chunk-4WGMGKCZ.js} +53 -33
  34. package/dist/{chunk-JED6ZDEE.js → chunk-5HWPEYWB.js} +2 -2
  35. package/dist/{chunk-3YSQZ75W.js → chunk-65V6IRFN.js} +46 -33
  36. package/dist/{chunk-TMACGPW5.js → chunk-6AUZPPAV.js} +4 -4
  37. package/dist/{chunk-6H7O2OPM.js → chunk-6DCOIN4W.js} +36 -6
  38. package/dist/{chunk-GTWKD3QT.js → chunk-6HTRCTAS.js} +7 -6
  39. package/dist/{chunk-VB4UJ3H2.js → chunk-6KY7OCZC.js} +21 -11
  40. package/dist/{chunk-YAA6IID3.js → chunk-774C2FF3.js} +2 -2
  41. package/dist/{chunk-WJ7RW65H.js → chunk-7GUF6SDR.js} +22 -20
  42. package/dist/{chunk-QYTPPDAO.js → chunk-7JDTNFAK.js} +3 -3
  43. package/dist/{chunk-U6EQI3U6.js → chunk-ADYKAKE3.js} +3 -3
  44. package/dist/{chunk-VNSXLA6G.js → chunk-AHXIMHDQ.js} +84 -20
  45. package/dist/chunk-AIMLCDAO.js +404 -0
  46. package/dist/{chunk-6MNGECP2.js → chunk-ALYZ3MAA.js} +4 -4
  47. package/dist/{chunk-5F5ELR3V.js → chunk-AN2DQB3G.js} +151 -20
  48. package/dist/{chunk-IEWG6J7C.js → chunk-AZNXGWDC.js} +91 -36
  49. package/dist/{chunk-4XFBQT5O.js → chunk-B4XS2AF2.js} +3 -3
  50. package/dist/{chunk-CC4YRBWV.js → chunk-BD3WGY4T.js} +18 -8
  51. package/dist/{chunk-RAHVMKBG.js → chunk-BFDVEO5R.js} +2 -2
  52. package/dist/{chunk-332ZR4QU.js → chunk-BR7AYN76.js} +8 -8
  53. package/dist/{chunk-P3NRSSUU.js → chunk-BULHGPHK.js} +3 -3
  54. package/dist/{chunk-PZDBOK2Q.js → chunk-CK2GMDXD.js} +11 -5
  55. package/dist/{chunk-467TVMQL.js → chunk-CMVZWP32.js} +3 -3
  56. package/dist/{chunk-GNSFLJAA.js → chunk-CQFNIIQN.js} +7 -7
  57. package/dist/{chunk-RBDIYLA5.js → chunk-DAOFNU6J.js} +17 -1
  58. package/dist/{chunk-AFIEPDLX.js → chunk-DWUMPMV2.js} +23 -11
  59. package/dist/{chunk-USZW2HHU.js → chunk-EQW6HOP4.js} +4 -3
  60. package/dist/{chunk-6BQFET7X.js → chunk-FFXCKZOU.js} +12 -4
  61. package/dist/{chunk-WRNFDFPU.js → chunk-FGDSTT3F.js} +2 -2
  62. package/dist/{chunk-6NFYEQDX.js → chunk-FLDC7ZAK.js} +34 -7
  63. package/dist/{chunk-IUJODQKX.js → chunk-FT7TPPZ5.js} +25 -23
  64. package/dist/{chunk-IEDMFNU7.js → chunk-FUKNRLIJ.js} +19 -7
  65. package/dist/{chunk-JJXGQIRV.js → chunk-FXCB7H5O.js} +4 -4
  66. package/dist/{chunk-GGHRAITI.js → chunk-GABSL6TH.js} +4 -4
  67. package/dist/{chunk-RXKTSFDL.js → chunk-GAWKIIPO.js} +35 -43
  68. package/dist/{chunk-ZJ3LS7DW.js → chunk-GMAH572Z.js} +6 -6
  69. package/dist/{chunk-TRM2J7ZN.js → chunk-GMIJ35PW.js} +28 -29
  70. package/dist/{chunk-AB7INMR5.js → chunk-GQ644SPD.js} +26 -25
  71. package/dist/{chunk-5QKQSSPO.js → chunk-GRM2A4BG.js} +4 -4
  72. package/dist/{chunk-3ODS2VGL.js → chunk-GWQJKTFS.js} +161 -704
  73. package/dist/{chunk-OTOHI4JO.js → chunk-H3HFC3SQ.js} +2 -2
  74. package/dist/{chunk-JSSX2SX4.js → chunk-HE5J53SZ.js} +4 -4
  75. package/dist/{chunk-2EQMXBBQ.js → chunk-HNBY6CNV.js} +3 -3
  76. package/dist/{chunk-J76PIKAT.js → chunk-HO3RCNF6.js} +3 -3
  77. package/dist/{chunk-OJTXTQA2.js → chunk-HORZ5H2L.js} +38 -31
  78. package/dist/{chunk-MX2EY5Y7.js → chunk-HOXKNRON.js} +2 -2
  79. package/dist/{chunk-E7Y3SYKW.js → chunk-I64ECJX3.js} +18 -8
  80. package/dist/{chunk-JM4LEPY3.js → chunk-IQJCVREL.js} +11 -8
  81. package/dist/{chunk-3JLKYGBQ.js → chunk-J7HI6G3G.js} +9 -6
  82. package/dist/{chunk-Q62FEYK3.js → chunk-JHOAH4TI.js} +3 -3
  83. package/dist/{chunk-OZPBJM5Q.js → chunk-JTMSWEIW.js} +11 -8
  84. package/dist/{chunk-P6T66CCZ.js → chunk-JYDMBWRP.js} +37 -19
  85. package/dist/{chunk-7DF4J4RL.js → chunk-KKHCNSKK.js} +17 -11
  86. package/dist/{chunk-ENRS56GC.js → chunk-KUSAVOWZ.js} +11 -8
  87. package/dist/{chunk-BYJBIALT.js → chunk-LC3FFD43.js} +23 -18
  88. package/dist/{chunk-65WJYYKJ.js → chunk-LHILKFDP.js} +16 -11
  89. package/dist/{chunk-NEQ6GJXB.js → chunk-LQHVDZYC.js} +52 -16
  90. package/dist/{chunk-5WPNFSXP.js → chunk-MA3HJZHB.js} +5 -5
  91. package/dist/{chunk-Z6XJQ6KO.js → chunk-MEQYZZFR.js} +3 -3
  92. package/dist/{chunk-MVN25IF6.js → chunk-NNUMX6WX.js} +42 -12
  93. package/dist/{chunk-7DYOELRK.js → chunk-NNYFQOTK.js} +78 -38
  94. package/dist/{chunk-NNAAJVBU.js → chunk-NR5HCAUD.js} +1 -1
  95. package/dist/{chunk-H6PI3KJT.js → chunk-ODUT5WMC.js} +2 -2
  96. package/dist/{chunk-5PDTIBLV.js → chunk-P3H7QVDH.js} +56 -19
  97. package/dist/{chunk-ND76YJCN.js → chunk-PIXZTCKH.js} +84 -117
  98. package/dist/{chunk-3LV2NCB6.js → chunk-PKNNHU7H.js} +22 -9
  99. package/dist/{chunk-TK2VQQX2.js → chunk-PT4SW76W.js} +20 -18
  100. package/dist/{chunk-AE7II3E3.js → chunk-PV2QO7QL.js} +4 -4
  101. package/dist/{chunk-FTBZV6NE.js → chunk-PYO4TJJ3.js} +34 -26
  102. package/dist/{chunk-QZPEGJOM.js → chunk-Q7AH665U.js} +28 -14
  103. package/dist/{chunk-QHI5XVUJ.js → chunk-QAALSCKI.js} +27 -26
  104. package/dist/{chunk-GD6L76WD.js → chunk-QI3BOLQB.js} +23 -11
  105. package/dist/{chunk-Y6GBQTBK.js → chunk-QWIBT6DS.js} +50 -28
  106. package/dist/{chunk-GU46PPT3.js → chunk-QXGACPS2.js} +5 -5
  107. package/dist/{chunk-FMDSF3OV.js → chunk-QZAW5SFH.js} +2 -2
  108. package/dist/{chunk-YGJZWZTY.js → chunk-R5NH5BZG.js} +12 -9
  109. package/dist/{chunk-U5SI5NIM.js → chunk-RJ5LBZ5U.js} +43 -26
  110. package/dist/{chunk-XHVV4NVW.js → chunk-RT7ACF77.js} +12 -2
  111. package/dist/{chunk-XEQXCIBC.js → chunk-RW5PEJ7D.js} +18 -6
  112. package/dist/{chunk-4VWJ4LW2.js → chunk-SG4PRYO3.js} +61 -49
  113. package/dist/{chunk-RBHWPDBB.js → chunk-SGPFVDUL.js} +18 -7
  114. package/dist/{chunk-KJGG2JKQ.js → chunk-SQCBSFT5.js} +84 -79
  115. package/dist/{chunk-5X6YQA2J.js → chunk-U7NKYLX2.js} +18 -16
  116. package/dist/chunk-U7VO6JAA.js +566 -0
  117. package/dist/{chunk-32XPAAET.js → chunk-UFQJMOVZ.js} +10 -10
  118. package/dist/{chunk-Z72XRXD4.js → chunk-UJRTPOHH.js} +3 -3
  119. package/dist/{chunk-EDA6C7MV.js → chunk-UK6DKJLD.js} +34 -14
  120. package/dist/{chunk-GROLTAWZ.js → chunk-UKP5HWB5.js} +149 -89
  121. package/dist/{chunk-DY7XLRHK.js → chunk-UQRIKAMH.js} +28 -27
  122. package/dist/{chunk-TYS6CSS5.js → chunk-UU6LUYUH.js} +2 -2
  123. package/dist/{chunk-NI3XQBPB.js → chunk-UVDCHR4E.js} +18 -6
  124. package/dist/{chunk-6K2M4VSR.js → chunk-VAO6ANGC.js} +23 -10
  125. package/dist/{chunk-6NYWYNBI.js → chunk-VGNIDAPQ.js} +4 -4
  126. package/dist/{chunk-VL2O2F3W.js → chunk-VHO3YBTB.js} +2 -2
  127. package/dist/{chunk-IUO34HKW.js → chunk-VIRANCNY.js} +36 -32
  128. package/dist/{chunk-4QZ43D7I.js → chunk-VJHBSPGF.js} +12 -14
  129. package/dist/{chunk-BGP54HVR.js → chunk-VKNCC2GX.js} +12 -8
  130. package/dist/{chunk-FC5I2KXV.js → chunk-VRRDUYOK.js} +7 -7
  131. package/dist/{chunk-G3PF3S7P.js → chunk-W2DINCHL.js} +15 -15
  132. package/dist/{chunk-OU7HLO7I.js → chunk-W5KMNC5U.js} +8 -8
  133. package/dist/{chunk-FFUN5D66.js → chunk-WF64MW5G.js} +2 -2
  134. package/dist/{chunk-X7EC3L2H.js → chunk-X3RXGSCZ.js} +48 -30
  135. package/dist/{chunk-KFNWFNAA.js → chunk-XEAQDIMF.js} +7 -6
  136. package/dist/{chunk-AXW3M6OQ.js → chunk-XG4NWFPY.js} +38 -27
  137. package/dist/{chunk-B63YB7X3.js → chunk-XQ4KN6JQ.js} +127 -65
  138. package/dist/{chunk-WBRZJOEC.js → chunk-XY3UDKKH.js} +4 -4
  139. package/dist/{chunk-IE477RQZ.js → chunk-YG2BEIQU.js} +14 -13
  140. package/dist/{chunk-LV4BETUU.js → chunk-YJVA3QUU.js} +55 -5
  141. package/dist/{chunk-5SVOCD5W.js → chunk-YR43LJT5.js} +20 -16
  142. package/dist/{chunk-TLVIHFRO.js → chunk-ZKPPI6BF.js} +2 -2
  143. package/dist/{chunk-WQLMU7VG.js → chunk-ZXUAPTCK.js} +3 -3
  144. package/dist/cli.cjs +158 -155
  145. package/dist/clock.js +25 -23
  146. package/dist/countdown.js +4 -3
  147. package/dist/dgmo-router-B4S23EBH.js +86 -0
  148. package/dist/dimensions-K6PGYYGT.js +22 -0
  149. package/dist/editor.js +36 -6
  150. package/dist/element.js +143 -131
  151. package/dist/element.mjs +2062 -937
  152. package/dist/flowchart-parser-LALR6J6F.js +21 -0
  153. package/dist/{flowchart-renderer-AQSMEMYF.js → flowchart-renderer-DXYB5YRF.js} +14 -14
  154. package/dist/highlight.d.ts +21 -1
  155. package/dist/highlight.js +129 -8
  156. package/dist/index.d.ts +4 -2
  157. package/dist/index.js +80 -75
  158. package/dist/layout-3BVDMKXI.js +15 -0
  159. package/dist/layout-3M5UYJHY.js +14 -0
  160. package/dist/{layout-JDJAEQ3P.js → layout-3V2A4MUE.js} +8 -8
  161. package/dist/layout-4IHCMWZN.js +19 -0
  162. package/dist/layout-5XGYNYVT.js +9 -0
  163. package/dist/layout-AZUPXWSK.js +15 -0
  164. package/dist/{layout-F4WO357A.js → layout-CAAKQX4W.js} +3 -3
  165. package/dist/layout-CB3XWCOI.js +10 -0
  166. package/dist/{layout-OAC4PEAC.js → layout-E6HR6PXH.js} +7 -7
  167. package/dist/{layout-7QXCNOVS.js → layout-HBWT2G23.js} +3 -3
  168. package/dist/layout-KPQWJNAG.js +14 -0
  169. package/dist/layout-OL2XFJXA.js +17 -0
  170. package/dist/layout-WCAIKGZG.js +19 -0
  171. package/dist/layout-WSMPBQ4Q.js +17 -0
  172. package/dist/layout-ZE5DRJWX.js +20 -0
  173. package/dist/{layout-search-55FU6HD3.js → layout-search-34DPZD43.js} +51 -35
  174. package/dist/legend-constants-P5EQWRQQ.js +49 -0
  175. package/dist/{palettes-PRJ2RI6D.js → palettes-FGTNFARW.js} +4 -4
  176. package/dist/{parser-KKTJ6M3Y.js → parser-275KP7JO.js} +8 -8
  177. package/dist/parser-27Z76SN3.js +22 -0
  178. package/dist/parser-3CODK6RG.js +15 -0
  179. package/dist/{parser-EH5VE7ZN.js → parser-3KIGEEJM.js} +6 -6
  180. package/dist/parser-3VSWEKBF.js +15 -0
  181. package/dist/parser-4E4I3GNT.js +13 -0
  182. package/dist/parser-5FGJSQNS.js +12 -0
  183. package/dist/parser-5HQXCNOS.js +12 -0
  184. package/dist/parser-5QPFOB5F.js +12 -0
  185. package/dist/parser-6B6SSZT7.js +11 -0
  186. package/dist/parser-6PPHAXXH.js +14 -0
  187. package/dist/parser-7JHWEWXM.js +13 -0
  188. package/dist/{parser-5PDYJGWA.js → parser-7JVIDLLR.js} +7 -7
  189. package/dist/parser-CKA3QMAG.js +18 -0
  190. package/dist/parser-CRKLXGW7.js +13 -0
  191. package/dist/parser-EXNBDNGY.js +11 -0
  192. package/dist/parser-FF4BMRSB.js +16 -0
  193. package/dist/parser-FOOFEJQU.js +13 -0
  194. package/dist/parser-G26MTBFS.js +11 -0
  195. package/dist/parser-GKP2MHHL.js +11 -0
  196. package/dist/parser-GN2MM5CC.js +11 -0
  197. package/dist/parser-IKWK2ZU3.js +18 -0
  198. package/dist/parser-IVGHXLZP.js +14 -0
  199. package/dist/parser-NNIL3HXU.js +11 -0
  200. package/dist/parser-RNLTBIJ6.js +19 -0
  201. package/dist/parser-UWRX52PC.js +16 -0
  202. package/dist/parser-VOERD6XR.js +14 -0
  203. package/dist/parser-XNKJCMMA.js +13 -0
  204. package/dist/parser-XVPTRWZ4.js +15 -0
  205. package/dist/parser-YSLNDFLV.js +22 -0
  206. package/dist/parser-ZGNXYFPS.js +15 -0
  207. package/dist/parser-ZQDQTB4X.js +20 -0
  208. package/dist/pert.d.ts +4 -2
  209. package/dist/registry-CaSw0PSH.d.ts +350 -0
  210. package/dist/renderer-2C6DJRYN.js +24 -0
  211. package/dist/renderer-5MPN7CXZ.js +19 -0
  212. package/dist/renderer-6EN5XXJZ.js +27 -0
  213. package/dist/renderer-6WRYVM5R.js +24 -0
  214. package/dist/renderer-7NQSTQMQ.js +16 -0
  215. package/dist/renderer-7ZNVOVFG.js +16 -0
  216. package/dist/{renderer-KQB7UGDS.js → renderer-AK2WO4EI.js} +7 -6
  217. package/dist/renderer-COLQFSFV.js +26 -0
  218. package/dist/renderer-CWEFGEIC.js +36 -0
  219. package/dist/renderer-D3BRNOMV.js +29 -0
  220. package/dist/renderer-HIFQVEJA.js +22 -0
  221. package/dist/renderer-JCZG6AYU.js +28 -0
  222. package/dist/{renderer-6RKQPNJI.js → renderer-JTCX6PCG.js} +13 -13
  223. package/dist/renderer-JWGQSTMR.js +37 -0
  224. package/dist/{renderer-3YPZHMOU.js → renderer-K7XLVPH5.js} +6 -6
  225. package/dist/renderer-KARQF3F3.js +22 -0
  226. package/dist/renderer-LVZAHRP6.js +34 -0
  227. package/dist/{renderer-QXGN5H3A.js → renderer-NE5W7CQP.js} +8 -8
  228. package/dist/renderer-QD2SJF2I.js +34 -0
  229. package/dist/renderer-RLMOTXZ6.js +37 -0
  230. package/dist/renderer-SQ54MDSA.js +26 -0
  231. package/dist/{renderer-UV6MI64M.js → renderer-TYHGXAVT.js} +7 -6
  232. package/dist/renderer-UKXW2QPE.js +23 -0
  233. package/dist/renderer-UPF7NRTI.js +28 -0
  234. package/dist/renderer-VMH6L6CP.js +24 -0
  235. package/dist/{renderer-GHPZMFU2.js → renderer-WCWI4I6A.js} +5 -5
  236. package/dist/renderer-WFSUBKUL.js +25 -0
  237. package/dist/renderer-WNFXYYGL.js +21 -0
  238. package/dist/{renderer-RGIYOTKJ.js → renderer-XTXSOK3L.js} +14 -14
  239. package/dist/renderer-YUKPS27O.js +24 -0
  240. package/dist/renderer-YUXGXGSW.js +27 -0
  241. package/dist/renderer-ZBTEX2JK.js +16 -0
  242. package/dist/renderer-radial-WF6VOUOD.js +21 -0
  243. package/dist/{resolver-EMTGNR3D.js → resolver-WFKZYBJ2.js} +4 -4
  244. package/dist/state-parser-L7DHZIQO.js +19 -0
  245. package/dist/state-renderer-TFEUOP4H.js +38 -0
  246. package/dist/{themes-32xj5ZTW.d.ts → themes-tbBkIVsn.d.ts} +2 -349
  247. package/docs/ai-integration.md +74 -77
  248. package/docs/language-reference.md +329 -290
  249. package/fonts/Inter-Bold.woff2 +0 -0
  250. package/fonts/Inter-Regular.woff2 +0 -0
  251. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +1 -2
  252. package/gallery/fixtures/boxes-and-lines.dgmo +1 -1
  253. package/gallery/fixtures/clock.dgmo +1 -1
  254. package/gallery/fixtures/event-line.dgmo +1 -1
  255. package/gallery/fixtures/gantt-full.dgmo +1 -1
  256. package/gallery/fixtures/gantt-sprints.dgmo +9 -9
  257. package/gallery/fixtures/gantt.dgmo +1 -1
  258. package/gallery/fixtures/legacy-syntax-backcompat.dgmo +16 -0
  259. package/gallery/fixtures/state-tags.dgmo +40 -0
  260. package/gallery/fixtures/swimlane.dgmo +1 -1
  261. package/gallery/fixtures/timeline-intraday.dgmo +1 -1
  262. package/package.json +5 -1
  263. package/dist/analyzer-BJ54GIFB.js +0 -15
  264. package/dist/calculator-LDYQCDDY.js +0 -11
  265. package/dist/charts-d3-7E4B4IMW.js +0 -26
  266. package/dist/dgmo-router-Y2VEX46B.js +0 -86
  267. package/dist/dimensions-F7B5C4BJ.js +0 -22
  268. package/dist/flowchart-parser-MY53QWTZ.js +0 -21
  269. package/dist/layout-46366KBT.js +0 -10
  270. package/dist/layout-46N4JJYK.js +0 -17
  271. package/dist/layout-4DIUOX2T.js +0 -14
  272. package/dist/layout-AM2JWW3X.js +0 -15
  273. package/dist/layout-CBCLPMSG.js +0 -15
  274. package/dist/layout-EE6GE46Y.js +0 -17
  275. package/dist/layout-G23F7LDH.js +0 -9
  276. package/dist/layout-HYZPWAK5.js +0 -18
  277. package/dist/layout-MUPRALE5.js +0 -14
  278. package/dist/layout-YVTNOTN4.js +0 -20
  279. package/dist/layout-ZDOSXL5G.js +0 -19
  280. package/dist/parser-2Q2T4C3B.js +0 -22
  281. package/dist/parser-3A42DZ72.js +0 -11
  282. package/dist/parser-4RFTKAQX.js +0 -15
  283. package/dist/parser-57ILIFZ2.js +0 -20
  284. package/dist/parser-5A2UWU6B.js +0 -11
  285. package/dist/parser-6BJEXUFX.js +0 -13
  286. package/dist/parser-6ZKABF5S.js +0 -22
  287. package/dist/parser-AIMHGJRR.js +0 -19
  288. package/dist/parser-AZJ25OKK.js +0 -13
  289. package/dist/parser-B77S5SZM.js +0 -11
  290. package/dist/parser-BEPSWJAD.js +0 -11
  291. package/dist/parser-BKI42XBQ.js +0 -16
  292. package/dist/parser-C3D7MVXY.js +0 -11
  293. package/dist/parser-CDG7CHV5.js +0 -14
  294. package/dist/parser-CZOJ7XQ6.js +0 -15
  295. package/dist/parser-E2RL6JYF.js +0 -18
  296. package/dist/parser-FQ6GZFMR.js +0 -13
  297. package/dist/parser-GKLZKEIK.js +0 -13
  298. package/dist/parser-H6ABKHZZ.js +0 -12
  299. package/dist/parser-I6GGFKOQ.js +0 -12
  300. package/dist/parser-JA7JQ7NF.js +0 -15
  301. package/dist/parser-OK22AC6Y.js +0 -14
  302. package/dist/parser-OK2ILHRT.js +0 -16
  303. package/dist/parser-OUTPNJWC.js +0 -11
  304. package/dist/parser-PORDUX5E.js +0 -15
  305. package/dist/parser-SRVFR7PM.js +0 -13
  306. package/dist/parser-UKFFZCFJ.js +0 -14
  307. package/dist/parser-UMWPLORP.js +0 -18
  308. package/dist/parser-Z4TZV2CB.js +0 -12
  309. package/dist/renderer-2AUFT3E2.js +0 -24
  310. package/dist/renderer-2HTNBIF2.js +0 -34
  311. package/dist/renderer-3K3IB7D5.js +0 -22
  312. package/dist/renderer-3YNIWF5I.js +0 -16
  313. package/dist/renderer-4WR6WMVF.js +0 -26
  314. package/dist/renderer-66MERVQ2.js +0 -24
  315. package/dist/renderer-ARMJBP6C.js +0 -28
  316. package/dist/renderer-CO2DW7S7.js +0 -37
  317. package/dist/renderer-EDJ2O4S5.js +0 -34
  318. package/dist/renderer-F7U3MFCV.js +0 -22
  319. package/dist/renderer-GD2COXVL.js +0 -16
  320. package/dist/renderer-GQIESYEM.js +0 -25
  321. package/dist/renderer-HCKJDFXD.js +0 -37
  322. package/dist/renderer-HYGHO4SJ.js +0 -28
  323. package/dist/renderer-JC3RDUT7.js +0 -23
  324. package/dist/renderer-NKJ24TEA.js +0 -19
  325. package/dist/renderer-OYO67VZK.js +0 -26
  326. package/dist/renderer-QIWVHWZO.js +0 -15
  327. package/dist/renderer-QRWACQRI.js +0 -21
  328. package/dist/renderer-QXPP4TA2.js +0 -27
  329. package/dist/renderer-RHT4MHFU.js +0 -24
  330. package/dist/renderer-RYR3TJ46.js +0 -36
  331. package/dist/renderer-SRKDNDFB.js +0 -27
  332. package/dist/renderer-TGTUABCI.js +0 -24
  333. package/dist/renderer-TXJFKPOG.js +0 -29
  334. package/dist/renderer-radial-FWABAZHB.js +0 -21
  335. package/dist/state-parser-6T6CNMPX.js +0 -18
  336. package/dist/state-renderer-AWZ3ECAX.js +0 -34
@@ -0,0 +1,21 @@
1
+ import {
2
+ extractSymbols,
3
+ looksLikeFlowchart,
4
+ parseFlowchart
5
+ } from "./chunk-JTMSWEIW.js";
6
+ import "./chunk-I46X5VUA.js";
7
+ import "./chunk-NXMESY4J.js";
8
+ import "./chunk-ZXUAPTCK.js";
9
+ import "./chunk-QZAW5SFH.js";
10
+ import "./chunk-WF64MW5G.js";
11
+ import "./chunk-NOTA6TEI.js";
12
+ import "./chunk-YJVA3QUU.js";
13
+ import "./chunk-ZKPPI6BF.js";
14
+ import "./chunk-4W2PE66Q.js";
15
+ import "./chunk-5WRI5ZAA.js";
16
+ export {
17
+ extractSymbols,
18
+ looksLikeFlowchart,
19
+ parseFlowchart
20
+ };
21
+ //# sourceMappingURL=flowchart-parser-LALR6J6F.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderFlowchart,
3
3
  renderFlowchartForExport
4
- } from "./chunk-IEWG6J7C.js";
4
+ } from "./chunk-AZNXGWDC.js";
5
5
  import "./chunk-PDKUANDZ.js";
6
- import "./chunk-HFMYN6N2.js";
6
+ import "./chunk-3B2GXZCX.js";
7
7
  import "./chunk-LP7EC4MI.js";
8
- import "./chunk-JEUJOX5X.js";
8
+ import "./chunk-3IUHKMJI.js";
9
9
  import "./chunk-6EK55ART.js";
10
- import "./chunk-TYS6CSS5.js";
10
+ import "./chunk-UU6LUYUH.js";
11
11
  import "./chunk-5DH3KYFH.js";
12
12
  import "./chunk-3HDBAXF5.js";
13
13
  import "./chunk-BMR4CIEO.js";
@@ -15,21 +15,21 @@ import "./chunk-3CIOJ5YJ.js";
15
15
  import "./chunk-YYVTBZZC.js";
16
16
  import "./chunk-A4GOY3PE.js";
17
17
  import "./chunk-6KFWC4CO.js";
18
- import "./chunk-WCT3NYCV.js";
19
- import "./chunk-P6T66CCZ.js";
20
- import "./chunk-OZPBJM5Q.js";
18
+ import "./chunk-JYDMBWRP.js";
19
+ import "./chunk-4ASYQ347.js";
20
+ import "./chunk-JTMSWEIW.js";
21
21
  import "./chunk-I46X5VUA.js";
22
22
  import "./chunk-NXMESY4J.js";
23
- import "./chunk-WQLMU7VG.js";
24
- import "./chunk-FMDSF3OV.js";
25
- import "./chunk-FFUN5D66.js";
23
+ import "./chunk-ZXUAPTCK.js";
24
+ import "./chunk-QZAW5SFH.js";
25
+ import "./chunk-WF64MW5G.js";
26
26
  import "./chunk-NOTA6TEI.js";
27
- import "./chunk-LV4BETUU.js";
28
- import "./chunk-TLVIHFRO.js";
29
- import "./chunk-CXK4DZH3.js";
27
+ import "./chunk-YJVA3QUU.js";
28
+ import "./chunk-ZKPPI6BF.js";
29
+ import "./chunk-4W2PE66Q.js";
30
30
  import "./chunk-5WRI5ZAA.js";
31
31
  export {
32
32
  renderFlowchart,
33
33
  renderFlowchartForExport
34
34
  };
35
- //# sourceMappingURL=flowchart-renderer-AQSMEMYF.js.map
35
+ //# sourceMappingURL=flowchart-renderer-DXYB5YRF.js.map
@@ -1,3 +1,22 @@
1
+ /**
2
+ * Find every month-name date literal in `line` (`Jan 3`, `3 January`,
3
+ * `Jan 3, 2026`, `3 Jan 2026`) and return the char-offset span of each whole
4
+ * literal, left-to-right and non-overlapping.
5
+ *
6
+ * The Lezer grammar already tokenizes numeric/ISO/slash dates as `DateLiteral`,
7
+ * but it cannot join a month word and its day across a space — this powers a
8
+ * highlight post-pass that colors them like numeric dates. It mirrors the
9
+ * MONTH_D / D_MONTH parser arms exactly — same regex shape plus the
10
+ * `monthNameToNum` guard — so highlighting matches parser acceptance, including
11
+ * its month-prefix over-acceptance (e.g. `Marina` → March). It is intentionally
12
+ * liberal about position (matches anywhere in the line, not just the front) so
13
+ * a date mid-label (`Task Jan 3`) still highlights.
14
+ */
15
+ declare function scanMonthNameDates(line: string): Array<{
16
+ start: number;
17
+ end: number;
18
+ }>;
19
+
1
20
  /**
2
21
  * Standalone DGMO syntax highlighter — no CodeMirror dependency.
3
22
  *
@@ -11,6 +30,7 @@
11
30
  *
12
31
  * @module @diagrammo/dgmo/highlight
13
32
  */
33
+
14
34
  interface HighlightToken {
15
35
  text: string;
16
36
  role: string;
@@ -62,4 +82,4 @@ declare const ROLE_TO_ANSI: Record<string, string>;
62
82
  */
63
83
  declare function renderAnsi(tokens: HighlightToken[], useColor: boolean): string;
64
84
 
65
- export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, type RecurrenceSpan, classifyRecurrenceLine, highlightDgmo, renderAnsi };
85
+ export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, type RecurrenceSpan, classifyRecurrenceLine, highlightDgmo, renderAnsi, scanMonthNameDates };
package/dist/highlight.js CHANGED
@@ -75,7 +75,9 @@ var DIRECTIVES_REGISTRY = [
75
75
  { token: "sprint-length", category: "directive", gantt: ["option"] },
76
76
  { token: "sprint-number", category: "directive", gantt: ["option"] },
77
77
  { token: "sprint-start", category: "directive", gantt: ["option"] },
78
- { token: "solid-fill", category: "directive", gantt: ["boolean"] },
78
+ { token: "fill-tint", category: "directive", gantt: ["boolean"] },
79
+ { token: "fill-solid", category: "directive", gantt: ["boolean"] },
80
+ { token: "fill-outline", category: "directive", gantt: ["boolean"] },
79
81
  // `chart` is a wireframe element keyword (CONTROL); gantt also accepts it as
80
82
  // an option. Highlight family is control.
81
83
  { token: "chart", category: "control", gantt: ["option"] },
@@ -93,7 +95,6 @@ var DIRECTIVES_REGISTRY = [
93
95
  { token: "flow-width", category: "directive", map: true },
94
96
  { token: "locale", category: "directive", map: true },
95
97
  { token: "caption", category: "directive", map: true },
96
- { token: "no-legend", category: "directive", map: true },
97
98
  { token: "no-coastline", category: "directive", map: true },
98
99
  { token: "no-relief", category: "directive", map: true },
99
100
  { token: "no-context-labels", category: "directive", map: true },
@@ -111,6 +112,9 @@ var DIRECTIVES_REGISTRY = [
111
112
  { token: "days", category: "directive", map: true },
112
113
  // ── Shared across types ──────────────────────────────────
113
114
  // `active-tag`: infra top-level option + gantt option + map directive.
115
+ // Treemap also accepts it (§24C.6, decision #48) — validated inline in its
116
+ // parser, so no chart-scoped Set is derived for it; highlighting comes from
117
+ // the global directive category here.
114
118
  {
115
119
  token: "active-tag",
116
120
  category: "directive",
@@ -118,7 +122,9 @@ var DIRECTIVES_REGISTRY = [
118
122
  gantt: ["option"],
119
123
  map: true
120
124
  },
121
- // `title`: gantt option (also a general data-chart directive, hand-listed).
125
+ // `title`: gantt option. (The data-chart `title` directive was removed in
126
+ // decision #48 — it now raises E_TITLE_DIRECTIVE; the token stays here for
127
+ // gantt.)
122
128
  { token: "title", category: "directive", gantt: ["option"] },
123
129
  // `sort`: gantt option (also general, hand-listed).
124
130
  { token: "sort", category: "directive", gantt: ["option"] },
@@ -127,6 +133,11 @@ var DIRECTIVES_REGISTRY = [
127
133
  { token: "lane-by", category: "directive", gantt: ["option"] },
128
134
  // `no-title`: gantt boolean + map directive (also general, hand-listed).
129
135
  { token: "no-title", category: "directive", gantt: ["boolean"], map: true },
136
+ // `no-legend`: universal (decision #48) — every chart that renders a legend
137
+ // accepts it, and charts without one take it as a harmless no-op. Parsed for
138
+ // most types via GLOBAL_BOOLEANS in utils/parsing; gantt derives its boolean
139
+ // Set from here, and map from `map: true`.
140
+ { token: "no-legend", category: "directive", gantt: ["boolean"], map: true },
130
141
  // ══════════════════════════════════════════════════════════
131
142
  // Highlight-only vocab (no extractable parser Set).
132
143
  // ══════════════════════════════════════════════════════════
@@ -138,10 +149,15 @@ var DIRECTIVES_REGISTRY = [
138
149
  { token: "era", category: "directive" },
139
150
  { token: "marker", category: "directive" },
140
151
  { token: "holiday", category: "directive" },
141
- { token: "workweek", category: "directive" },
152
+ // `workweek` is also the canonical weekday-window directive on clock and map
153
+ // clock-cards (decision #48; `days` stays as the legacy alias).
154
+ { token: "workweek", category: "directive", map: true },
142
155
  { token: "no-dependencies", category: "directive" },
143
156
  // ── Tech-radar ───────────────────────────────────────────
144
157
  { token: "rings", category: "directive" },
158
+ // Blip listing is default-on everywhere (decision #48): `no-blip-legend`
159
+ // suppresses it; `show-blip-legend` stays as the parse-accepted legacy no-op.
160
+ { token: "no-blip-legend", category: "directive" },
145
161
  { token: "show-blip-legend", category: "directive" },
146
162
  { token: "trend", category: "directive" },
147
163
  // ── Tags / shared directives ─────────────────────────────
@@ -167,7 +183,13 @@ var DIRECTIVES_REGISTRY = [
167
183
  // ATTRIBUTE_KEYS colon-gate from reclassifying `heat:` as a propertyName. So
168
184
  // `heat` lives only in the reserved-key registry + ATTRIBUTE_KEYS and highlights
169
185
  // as a property in both positions — exactly the treemap `heat` precedent.
186
+ // Box values render by default since decision #48; `show-values` stays as
187
+ // the parse-accepted legacy no-op (suppress with the shared `no-value`).
170
188
  { token: "show-values", category: "directive" },
189
+ // Treemap's legacy plural spelling of the same suppression (decision #48
190
+ // made the shared singular `no-value` canonical). Registered so a legacy
191
+ // document still highlights it as a directive rather than plain text.
192
+ { token: "no-values", category: "directive" },
171
193
  // ── Swimlane ─────────────────────────────────────────────
172
194
  { token: "lane", category: "directive" },
173
195
  // ── ER ───────────────────────────────────────────────────
@@ -250,7 +272,9 @@ var DIRECTIVES_REGISTRY = [
250
272
  { token: "trials", category: "directive" },
251
273
  { token: "seed", category: "directive" },
252
274
  { token: "scrubber-trials", category: "directive" },
253
- { token: "start-date", category: "directive" },
275
+ // `start-date` is also gantt's canonical project-start option (decision #48;
276
+ // bare `start` above stays as the legacy alias).
277
+ { token: "start-date", category: "directive", gantt: ["option"] },
254
278
  { token: "end-date", category: "directive" },
255
279
  // ── Goal ─────────────────────────────────────────────────
256
280
  // Mode flags, value-key leaders, and opt-outs. `now`/`target` collide with
@@ -288,6 +312,12 @@ var DIRECTIVES_REGISTRY = [
288
312
  { token: "backlog", category: "status" },
289
313
  { token: "ready", category: "status" },
290
314
  // ── Modifiers + ER column types/modifiers (MODIFIER) ─────
315
+ // `collapsed` is the bare trailing group-line flag made canonical by
316
+ // decision #48 (`[Fulfillment] collapsed`). It is deliberately a bare
317
+ // MODIFIER rather than a colon key: the legacy `collapsed: true` form still
318
+ // parses and still highlights (as `modifier` instead of `propertyName`),
319
+ // whereas leaving it colon-only left the canonical bare form as plain text.
320
+ { token: "collapsed", category: "modifier" },
291
321
  { token: "as", category: "modifier" },
292
322
  { token: "alias", category: "modifier" },
293
323
  { token: "aka", category: "modifier" },
@@ -439,7 +469,7 @@ var parser = LRParser.deserialize({
439
469
  maxTerm: 40,
440
470
  skippedNodes: [0],
441
471
  repeatNodeCount: 2,
442
- tokenData: "={~RzOX#uXY#zYZ$VZp#upq#zqr#urs$[st#uux#uxy%eyz%lz{%s{|%z|}&R}!O&Y!O!P#u!P!Q&i!Q!['Y![!]1Q!]!^#u!^!_1X!_!`1`!`!a1m!a!b1t!b!c#u!c!}1{!}#O5R#O#P#u#P#Q5W#Q#R#u#R#S1{#S#T#u#T#[1{#[#]5_#]#o1{#o#p#u#p#q=_#q#r#u#r#s=f#s;'S#u;'S;=`=u<%lO#u~#zOq~~$PQv~XY#zpq#z~$[Ow~~$aUq~OY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~$vUOY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~%_Oo~~%bP;=`<%l$s~%lOc~q~~%sOd~q~~%zOm~q~~&ROj~q~~&YOi~q~~&aPk~q~!`!a&d~&iOX~~&nPq~!P!Q&q~&vSV~OY&qZ;'S&q;'S;=`'S<%lO&q~'VP;=`<%l&q~'a^^~q~uv(]|}(b!O!P)_!P!Q+O!Q![,Y#R#S0l#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~(bO]~~(eP!Q![(h~(kP!Q![(n~(qP!Q![(t~(yQ^~|}(b!O!P)P~)SP!Q![)V~)[P^~!Q![)V~)bP!Q![)e~)jY^~uv(]!Q![)e#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~*]P#W#X*`~*ePZ~!a!b*h~*mOZ~~*rQZ~!a!b*h#]#^*x~*{P#b#c*`~+RP!Q![+U~+ZQ[~!P!Q+a!Q![,Q~+dP!Q![+g~+jP!Q![+m~+rP[~!Q![+u~+xP!Q![+{~,QO[~~,VP[~!P!Q+a~,_^^~uv(]|}(b!O!P)_!P!Q+O!Q![-Z#R#S0l#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~-`]^~uv(]|}(b!O!P)_!Q![.X#R#S0l#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~.^]^~uv(]}!O/V!O!P)_!Q![/q#R#S0l#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~/YP!Q![/]~/`P!Q![/c~/hP[~}!O/k~/nP!Q![+u~/v[^~uv(]!O!P)_!Q![/q#R#S0l#U#V*Y#W#X*`#[#]*`#a#b*m#e#f*`#g#h*`#k#l*`#m#n*`~0oP!Q![0r~0wR^~!O!P)P!Q![0r#R#S0l~1XOh~q~~1`Oe~q~~1ePq~!_!`1h~1mO_~~1tOf~q~~1{On~q~~2S_p~q~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#o3R~3W_p~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#o3R~4Y]qr3Rst3Rvw3Rwx3R{|3R!O!P3R!P!Q3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#o3R~5WOa~~5_Ob~q~~5fap~q~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#h3R#h#i6k#i#o3R~6pap~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#h3R#h#i7u#i#o3R~7zap~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#d3R#d#e9P#e#o3R~9Ubp~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R![!]:^!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#g3R#g#h<W#h#o3R~:aP!P!Q:d~:gP!P!Q:j~:mYOX;]Zp;]qy;]z|;]}!`;]!a#P;]#Q#p;]#q;'S;];'S;=`<Q<%lO;]~;bY`~OX;]Zp;]qy;]z|;]}!`;]!a#P;]#Q#p;]#q;'S;];'S;=`<Q<%lO;]~<TP;=`<%l;]~<]`p~qr3Rst3Rvw3Rwx3R{|3R}!O4V!O!P3R!P!Q3R!Q![3R![!]:^!_!`3R!a!b3R!b!c3R!c!}3R#R#S3R#T#o3R~=fOg~q~~=mPl~q~!`!a=p~=uOY~~=xP;=`<%l#u",
472
+ tokenData: ">w~RzOX#uXY#zYZ$VZp#upq#zqr#urs$[st#uux#uxy%eyz%lz{%s{|%z|}&R}!O&Y!O!P#u!P!Q&i!Q!['Y![!]1|!]!^#u!^!_2T!_!`2[!`!a2i!a!b2p!b!c#u!c!}2w!}#O5}#O#P#u#P#Q6S#Q#R#u#R#S2w#S#T#u#T#[2w#[#]6Z#]#o2w#o#p#u#p#q>Z#q#r#u#r#s>b#s;'S#u;'S;=`>q<%lO#u~#zOq~~$PQv~XY#zpq#z~$[Ow~~$aUq~OY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~$vUOY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~%_Oo~~%bP;=`<%l$s~%lOc~q~~%sOd~q~~%zOm~q~~&ROj~q~~&YOi~q~~&aPk~q~!`!a&d~&iOX~~&nPq~!P!Q&q~&vSV~OY&qZ;'S&q;'S;=`'S<%lO&q~'VP;=`<%l&q~'a_^~q~uv(`|}(e}!O)b!O!P*l!P!Q,h!Q![-R#R#S1h#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~(eO]~~(hP!Q![(k~(nP!Q![(q~(tP!Q![(w~(|Q^~|}(e!O!P)S~)VP!Q![)Y~)_P^~!Q![)Y~)eP!Q![)h~)mQ[~}!O)s!Q![*d~)vP!Q![)y~)|P!Q![*P~*UP[~!Q![*X~*[P!Q![*_~*dO[~~*iP[~}!O)s~*oP!Q![*r~*wY^~uv(`!Q![*r#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~+jP#W#X+m~+rPZ~!a!b+u~+zOZ~~,PQZ~!a!b+u#]#^,V~,YP#b#c+m~,bQZ~!a!b+u#d#e+m~,kP!Q![,n~,sQ[~!P!Q)s!Q![,y~-OP[~!P!Q)s~-W_^~uv(`|}(e}!O)b!O!P*l!P!Q,h!Q![.V#R#S1h#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~.[]^~uv(`|}(e!O!P*l!Q![/T#R#S1h#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~/Y]^~uv(`}!O0R!O!P*l!Q![0m#R#S1h#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~0UP!Q![0X~0[P!Q![0_~0dP[~}!O0g~0jP!Q![*X~0r[^~uv(`!O!P*l!Q![0m#R#S1h#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h,]#k#l+m#m#n+m~1kP!Q![1n~1sR^~!O!P)S!Q![1n#R#S1h~2TOh~q~~2[Oe~q~~2aPq~!_!`2d~2iO_~~2pOf~q~~2wOn~q~~3O_p~q~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#o3}~4S_p~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#o3}~5U]qr3}st3}vw3}wx3}{|3}!O!P3}!P!Q3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#o3}~6SOa~~6ZOb~q~~6bap~q~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#h3}#h#i7g#i#o3}~7lap~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#h3}#h#i8q#i#o3}~8vap~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#d3}#d#e9{#e#o3}~:Qbp~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}![!];Y!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#g3}#g#h=S#h#o3}~;]P!P!Q;`~;cP!P!Q;f~;iYOX<XZp<Xqy<Xz|<X}!`<X!a#P<X#Q#p<X#q;'S<X;'S;=`<|<%lO<X~<^Y`~OX<XZp<Xqy<Xz|<X}!`<X!a#P<X#Q#p<X#q;'S<X;'S;=`<|<%lO<X~=PP;=`<%l<X~=X`p~qr3}st3}vw3}wx3}{|3}}!O5R!O!P3}!P!Q3}!Q![3}![!];Y!_!`3}!a!b3}!b!c3}!c!}3}#R#S3}#T#o3}~>bOg~q~~>iPl~q~!`!a>l~>qOY~~>tP;=`<%l#u",
443
473
  tokenizers: [0],
444
474
  topRules: { "Document": [0, 6] },
445
475
  specialized: [{ term: 32, get: (value, stack) => specializeKeyword(value, stack) << 1, external: specializeKeyword }],
@@ -473,6 +503,58 @@ function weekdayIndex(token) {
473
503
  return i < 0 ? null : i;
474
504
  }
475
505
 
506
+ // src/utils/date.ts
507
+ var MONTHS_FULL = [
508
+ "january",
509
+ "february",
510
+ "march",
511
+ "april",
512
+ "may",
513
+ "june",
514
+ "july",
515
+ "august",
516
+ "september",
517
+ "october",
518
+ "november",
519
+ "december"
520
+ ];
521
+ var MONTHS_ABBR = [
522
+ "jan",
523
+ "feb",
524
+ "mar",
525
+ "apr",
526
+ "may",
527
+ "jun",
528
+ "jul",
529
+ "aug",
530
+ "sep",
531
+ "oct",
532
+ "nov",
533
+ "dec"
534
+ ];
535
+ function monthNameToNum(raw) {
536
+ const t = raw.toLowerCase().replace(/\.$/, "");
537
+ let i = MONTHS_FULL.indexOf(t);
538
+ if (i >= 0) return i + 1;
539
+ i = MONTHS_ABBR.indexOf(t.slice(0, 3));
540
+ return i >= 0 ? i + 1 : 0;
541
+ }
542
+ var MONTH_NAME_SCAN_RE = /\b(\d{1,2})\s+([A-Za-z]{3,9})\.?(?:\s+\d{4})?|\b([A-Za-z]{3,9})\.?\s+(\d{1,2})(?:,?\s+\d{4})?/g;
543
+ function scanMonthNameDates(line) {
544
+ const spans = [];
545
+ const re = new RegExp(MONTH_NAME_SCAN_RE.source, "g");
546
+ let m;
547
+ while ((m = re.exec(line)) !== null) {
548
+ const month = m[2] ?? m[3] ?? "";
549
+ if (monthNameToNum(month) <= 0) {
550
+ re.lastIndex = m.index + 1;
551
+ continue;
552
+ }
553
+ spans.push({ start: m.index, end: m.index + m[0].length });
554
+ }
555
+ return spans;
556
+ }
557
+
476
558
  // src/editor/highlight-api.ts
477
559
  var NODE_TO_ROLE = {
478
560
  Comment: "comment",
@@ -577,6 +659,7 @@ function highlightDgmo(source) {
577
659
  applyLabelOverrides(tokens);
578
660
  applyNoteContent(tokens);
579
661
  applyRecurringLine(tokens);
662
+ applyMonthNameDates(tokens);
580
663
  return tokens;
581
664
  }
582
665
  var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
@@ -601,7 +684,10 @@ var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
601
684
  "pain",
602
685
  "opportunity",
603
686
  "thought",
604
- "collapsed",
687
+ // `collapsed` moved to the registry as a bare MODIFIER keyword (decision
688
+ // #48 made the bare flag canonical). It must NOT be listed here too: the
689
+ // ATTRIBUTE_KEYS colon gate only fires on `default` tokens, so a bare
690
+ // keyword classification wins and a duplicate entry would be dead weight.
605
691
  "tech",
606
692
  "span",
607
693
  "split",
@@ -811,6 +897,40 @@ function applyRecurringLine(tokens) {
811
897
  offset += lineText.length + 1;
812
898
  }
813
899
  }
900
+ var DATE_BEARING_CHARTS = /* @__PURE__ */ new Set([
901
+ "gantt",
902
+ "pert",
903
+ "countdown",
904
+ "timeline",
905
+ "event-line"
906
+ ]);
907
+ function applyMonthNameDates(tokens) {
908
+ const fullText = tokens.map((t) => t.text).join("");
909
+ const lines = fullText.split("\n");
910
+ const firstContent = lines.find((l) => {
911
+ const t = l.trim();
912
+ return t.length > 0 && !t.startsWith("//");
913
+ });
914
+ const chartType = firstContent?.trim().split(/\s+/)[0]?.toLowerCase();
915
+ if (!chartType || !DATE_BEARING_CHARTS.has(chartType)) return;
916
+ let offset = 0;
917
+ for (const lineText of lines) {
918
+ for (const sp of scanMonthNameDates(lineText)) {
919
+ markDateSpan(tokens, offset + sp.start, offset + sp.end);
920
+ }
921
+ offset += lineText.length + 1;
922
+ }
923
+ }
924
+ function markDateSpan(tokens, from, to) {
925
+ let pos = 0;
926
+ for (const token of tokens) {
927
+ const tokenEnd = pos + token.text.length;
928
+ if (tokenEnd > from && pos < to && token.text.trim().length > 0 && (token.role === "default" || token.role === "number")) {
929
+ token.role = "number";
930
+ }
931
+ pos = tokenEnd;
932
+ }
933
+ }
814
934
  var NOTE_HEAD_RE = /^note(\s|$)/i;
815
935
  function applyNoteContent(tokens) {
816
936
  const fullText = tokens.map((t) => t.text).join("");
@@ -984,6 +1104,7 @@ export {
984
1104
  ROLE_TO_ANSI,
985
1105
  classifyRecurrenceLine,
986
1106
  highlightDgmo,
987
- renderAnsi
1107
+ renderAnsi,
1108
+ scanMonthNameDates
988
1109
  };
989
1110
  //# sourceMappingURL=highlight.js.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- import { ab as DiagnosticSpec, a as PaletteConfig, J as Theme, C as CompactViewState, D as DgmoError } from './themes-32xj5ZTW.js';
2
- export { f as ChartTypeMeta, h as DgmoSeverity, ac as DiagnosticParams, ad as EmitOptions, j as Gazetteer, k as GazetteerEntry, l as MapCompletionOptions, M as MapData, o as MapLocationMatch, p as MapPlaceCompletion, s as MapRegionCompletion, P as PaletteColors, w as RegionName, x as RegionNames, N as chartTypes, O as completeMapPlaces, Q as completeMapRegions, ae as emit, X as formatDgmoError, _ as getPalette, a4 as palettes, af as resolvePaletteOrFallback, a8 as searchMapLocations, aa as themes, a5 as validate } from './themes-32xj5ZTW.js';
1
+ import { a as DiagnosticSpec, P as PaletteConfig, C as CompactViewState, D as DgmoError } from './registry-CaSw0PSH.js';
2
+ export { b as ChartTypeMeta, c as DgmoSeverity, d as DiagnosticParams, E as EmitOptions, e as PaletteColors, f as chartTypes, g as emit, h as formatDgmoError, i as getPalette, r as resolvePaletteOrFallback, p as validate } from './registry-CaSw0PSH.js';
3
+ import { T as Theme } from './themes-tbBkIVsn.js';
4
+ export { G as Gazetteer, a as GazetteerEntry, M as MapCompletionOptions, b as MapData, c as MapLocationMatch, d as MapPlaceCompletion, e as MapRegionCompletion, R as RegionName, f as RegionNames, g as completeMapPlaces, h as completeMapRegions, p as palettes, s as searchMapLocations, t as themes } from './themes-tbBkIVsn.js';
3
5
 
4
6
  declare function getMinDimensions(content: string): {
5
7
  width: number;
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  getEmbedSvgViewBox,
4
4
  normalizeSvgForEmbed,
5
5
  renderErrorCard
6
- } from "./chunk-GNSFLJAA.js";
6
+ } from "./chunk-CQFNIIQN.js";
7
7
  import {
8
8
  completeMapPlaces,
9
9
  completeMapRegions,
@@ -14,122 +14,125 @@ import {
14
14
  MAP_DIAGNOSTICS
15
15
  } from "./chunk-4B5YISOR.js";
16
16
  import {
17
- decodeDiagramUrl,
18
- encodeDiagramUrl,
19
17
  render
20
- } from "./chunk-3ODS2VGL.js";
21
- import "./chunk-B63YB7X3.js";
18
+ } from "./chunk-GWQJKTFS.js";
19
+ import {
20
+ D3_DATA_CHART_TYPES,
21
+ renderDataChartD3,
22
+ supportsD3DataChart
23
+ } from "./chunk-SG4PRYO3.js";
24
+ import "./chunk-VHO3YBTB.js";
25
+ import "./chunk-XQ4KN6JQ.js";
22
26
  import "./chunk-YRYKTYMQ.js";
27
+ import "./chunk-ADYKAKE3.js";
23
28
  import "./chunk-YYVTBZZC.js";
24
- import "./chunk-OU7HLO7I.js";
29
+ import "./chunk-W5KMNC5U.js";
30
+ import "./chunk-774C2FF3.js";
31
+ import "./chunk-A4GOY3PE.js";
32
+ import "./chunk-6KFWC4CO.js";
33
+ import {
34
+ decodeDiagramUrl,
35
+ encodeDiagramUrl
36
+ } from "./chunk-U7VO6JAA.js";
25
37
  import {
26
38
  REGISTRY_BY_ID,
27
39
  chartTypes,
28
40
  parseDgmo
29
- } from "./chunk-KJGG2JKQ.js";
30
- import "./chunk-GTWKD3QT.js";
31
- import "./chunk-AFIEPDLX.js";
41
+ } from "./chunk-SQCBSFT5.js";
42
+ import "./chunk-Q7AH665U.js";
43
+ import {
44
+ TREEMAP_DIAGNOSTICS
45
+ } from "./chunk-4K42RUGC.js";
46
+ import "./chunk-KUSAVOWZ.js";
47
+ import "./chunk-NR5HCAUD.js";
48
+ import "./chunk-6HTRCTAS.js";
49
+ import "./chunk-DWUMPMV2.js";
32
50
  import "./chunk-OQKP2X3D.js";
33
- import "./chunk-6NFYEQDX.js";
51
+ import "./chunk-FLDC7ZAK.js";
34
52
  import "./chunk-APKUAJ2L.js";
35
- import "./chunk-XEQXCIBC.js";
53
+ import "./chunk-RW5PEJ7D.js";
36
54
  import {
37
55
  RACI_DIAGNOSTICS
38
- } from "./chunk-6MNGECP2.js";
56
+ } from "./chunk-ALYZ3MAA.js";
39
57
  import {
40
58
  BODY_DIAGNOSTICS
41
- } from "./chunk-6BQFET7X.js";
59
+ } from "./chunk-FFXCKZOU.js";
42
60
  import "./chunk-BDXC7MDK.js";
43
61
  import {
44
- D3_DATA_CHART_TYPES,
45
- renderDataChartD3,
46
- supportsD3DataChart
47
- } from "./chunk-4VWJ4LW2.js";
48
- import "./chunk-VL2O2F3W.js";
49
- import "./chunk-U6EQI3U6.js";
50
- import "./chunk-YAA6IID3.js";
51
- import "./chunk-A4GOY3PE.js";
52
- import "./chunk-6KFWC4CO.js";
53
- import "./chunk-QOOUC2J5.js";
54
- import "./chunk-WCT3NYCV.js";
55
- import "./chunk-QZPEGJOM.js";
56
- import "./chunk-GGHRAITI.js";
57
- import "./chunk-PZDBOK2Q.js";
58
- import "./chunk-2EQMXBBQ.js";
59
- import "./chunk-4QZ43D7I.js";
60
- import "./chunk-Q62FEYK3.js";
61
- import "./chunk-AE7II3E3.js";
62
- import {
63
- TREEMAP_DIAGNOSTICS
64
- } from "./chunk-2ILHQOL3.js";
65
- import "./chunk-ENRS56GC.js";
66
- import "./chunk-NNAAJVBU.js";
67
- import "./chunk-MVN25IF6.js";
68
- import "./chunk-5PZT4DQG.js";
69
- import "./chunk-I2QZFCS2.js";
70
- import "./chunk-6H7O2OPM.js";
71
- import "./chunk-BGP54HVR.js";
72
- import "./chunk-6K2M4VSR.js";
62
+ FAMILY_DIAGNOSTICS
63
+ } from "./chunk-MA3HJZHB.js";
64
+ import "./chunk-QQJUTGQH.js";
65
+ import "./chunk-3CZLWOCI.js";
66
+ import "./chunk-GABSL6TH.js";
67
+ import "./chunk-CK2GMDXD.js";
68
+ import "./chunk-HNBY6CNV.js";
69
+ import "./chunk-VJHBSPGF.js";
70
+ import "./chunk-JHOAH4TI.js";
71
+ import "./chunk-PV2QO7QL.js";
72
+ import "./chunk-FUKNRLIJ.js";
73
+ import "./chunk-PKNNHU7H.js";
74
+ import "./chunk-NNUMX6WX.js";
75
+ import "./chunk-2QC4HXCY.js";
76
+ import "./chunk-27STWBOK.js";
77
+ import "./chunk-6DCOIN4W.js";
78
+ import "./chunk-VKNCC2GX.js";
79
+ import "./chunk-VAO6ANGC.js";
73
80
  import {
74
81
  SKETCH_DIAGNOSTICS
75
- } from "./chunk-XHVV4NVW.js";
82
+ } from "./chunk-RT7ACF77.js";
76
83
  import {
77
84
  SWIMLANE_DIAGNOSTICS
78
- } from "./chunk-E7Y3SYKW.js";
79
- import {
80
- FAMILY_DIAGNOSTICS
81
- } from "./chunk-5WPNFSXP.js";
82
- import "./chunk-QQJUTGQH.js";
83
- import "./chunk-2UJSV2VT.js";
84
- import "./chunk-332ZR4QU.js";
85
- import "./chunk-RBHWPDBB.js";
86
- import "./chunk-KFNWFNAA.js";
85
+ } from "./chunk-I64ECJX3.js";
86
+ import "./chunk-AN2DQB3G.js";
87
+ import "./chunk-VRRDUYOK.js";
88
+ import "./chunk-BR7AYN76.js";
89
+ import "./chunk-SGPFVDUL.js";
90
+ import "./chunk-XEAQDIMF.js";
91
+ import "./chunk-IYULMRBE.js";
87
92
  import {
88
93
  PERT_DIAGNOSTICS
89
- } from "./chunk-5PDTIBLV.js";
90
- import "./chunk-7L4UJOY6.js";
91
- import "./chunk-USZW2HHU.js";
94
+ } from "./chunk-P3H7QVDH.js";
95
+ import "./chunk-3TYUXC7D.js";
96
+ import "./chunk-EQW6HOP4.js";
92
97
  import {
93
98
  EVENT_LINE_DIAGNOSTICS
94
- } from "./chunk-EDA6C7MV.js";
95
- import "./chunk-TMACGPW5.js";
96
- import "./chunk-RBDIYLA5.js";
99
+ } from "./chunk-UK6DKJLD.js";
100
+ import "./chunk-6AUZPPAV.js";
101
+ import "./chunk-DAOFNU6J.js";
97
102
  import {
98
103
  VERSION_CONTROL_DIAGNOSTICS
99
- } from "./chunk-JJXGQIRV.js";
100
- import "./chunk-IEDMFNU7.js";
101
- import "./chunk-3LV2NCB6.js";
102
- import "./chunk-IYULMRBE.js";
104
+ } from "./chunk-FXCB7H5O.js";
103
105
  import {
104
106
  getPalette,
105
107
  palettes,
106
108
  resolvePaletteOrFallback
107
109
  } from "./chunk-R3XI2VC7.js";
108
- import "./chunk-P6T66CCZ.js";
109
- import "./chunk-RLFVAKEO.js";
110
+ import "./chunk-JYDMBWRP.js";
111
+ import "./chunk-4RGZFA7H.js";
112
+ import "./chunk-4ASYQ347.js";
113
+ import "./chunk-22OQWBWD.js";
110
114
  import "./chunk-C3Z4DX3V.js";
111
- import "./chunk-467TVMQL.js";
112
- import "./chunk-OZPBJM5Q.js";
115
+ import "./chunk-CMVZWP32.js";
116
+ import "./chunk-JTMSWEIW.js";
113
117
  import {
114
118
  GRAPH_DIAGNOSTICS
115
119
  } from "./chunk-I46X5VUA.js";
116
- import "./chunk-5F5ELR3V.js";
117
120
  import "./chunk-NXMESY4J.js";
118
- import "./chunk-FC5I2KXV.js";
119
- import "./chunk-WQLMU7VG.js";
120
- import "./chunk-FMDSF3OV.js";
121
+ import "./chunk-ZXUAPTCK.js";
122
+ import "./chunk-QZAW5SFH.js";
121
123
  import {
122
124
  ARROW_DIAGNOSTIC_CODES
123
- } from "./chunk-FFUN5D66.js";
125
+ } from "./chunk-WF64MW5G.js";
124
126
  import "./chunk-NOTA6TEI.js";
125
- import "./chunk-LV4BETUU.js";
126
- import "./chunk-TLVIHFRO.js";
127
+ import "./chunk-YJVA3QUU.js";
128
+ import "./chunk-ZKPPI6BF.js";
127
129
  import {
130
+ TITLE_DIRECTIVE_DX,
128
131
  emit,
129
132
  emptyMetadataValueMessage,
130
133
  formatDgmoError,
131
134
  nameMergedMessage
132
- } from "./chunk-CXK4DZH3.js";
135
+ } from "./chunk-4W2PE66Q.js";
133
136
  import "./chunk-5WRI5ZAA.js";
134
137
 
135
138
  // src/dimensions.ts
@@ -790,7 +793,9 @@ var UNIVERSAL_DIAGNOSTICS = [
790
793
  message: (p) => emptyMetadataValueMessage(String(p.key ?? "color")),
791
794
  hint: "Provide a value or remove the key.",
792
795
  example: "mindmap\nRoot color:\n Child"
793
- }
796
+ },
797
+ // ── Data-chart `title` directive (decision #48) ──
798
+ TITLE_DIRECTIVE_DX
794
799
  ];
795
800
  var REGISTRY = [
796
801
  ...UNIVERSAL_DIAGNOSTICS,
@@ -0,0 +1,15 @@
1
+ import {
2
+ layoutMindmap
3
+ } from "./chunk-GMAH572Z.js";
4
+ import "./chunk-YYVTBZZC.js";
5
+ import "./chunk-IYULMRBE.js";
6
+ import "./chunk-4ASYQ347.js";
7
+ import "./chunk-CMVZWP32.js";
8
+ import "./chunk-YJVA3QUU.js";
9
+ import "./chunk-ZKPPI6BF.js";
10
+ import "./chunk-4W2PE66Q.js";
11
+ import "./chunk-5WRI5ZAA.js";
12
+ export {
13
+ layoutMindmap
14
+ };
15
+ //# sourceMappingURL=layout-3BVDMKXI.js.map
@@ -0,0 +1,14 @@
1
+ import {
2
+ layoutOrg
3
+ } from "./chunk-UKP5HWB5.js";
4
+ import "./chunk-4RGZFA7H.js";
5
+ import "./chunk-4ASYQ347.js";
6
+ import "./chunk-CMVZWP32.js";
7
+ import "./chunk-YJVA3QUU.js";
8
+ import "./chunk-ZKPPI6BF.js";
9
+ import "./chunk-4W2PE66Q.js";
10
+ import "./chunk-5WRI5ZAA.js";
11
+ export {
12
+ layoutOrg
13
+ };
14
+ //# sourceMappingURL=layout-3M5UYJHY.js.map
@@ -6,13 +6,13 @@ import {
6
6
  layoutC4Context,
7
7
  layoutC4Deployment,
8
8
  rollUpContextRelationships
9
- } from "./chunk-NEQ6GJXB.js";
10
- import "./chunk-QOOUC2J5.js";
11
- import "./chunk-WCT3NYCV.js";
12
- import "./chunk-467TVMQL.js";
13
- import "./chunk-LV4BETUU.js";
14
- import "./chunk-TLVIHFRO.js";
15
- import "./chunk-CXK4DZH3.js";
9
+ } from "./chunk-LQHVDZYC.js";
10
+ import "./chunk-4RGZFA7H.js";
11
+ import "./chunk-4ASYQ347.js";
12
+ import "./chunk-CMVZWP32.js";
13
+ import "./chunk-YJVA3QUU.js";
14
+ import "./chunk-ZKPPI6BF.js";
15
+ import "./chunk-4W2PE66Q.js";
16
16
  import "./chunk-5WRI5ZAA.js";
17
17
  export {
18
18
  collectCardMetadata,
@@ -23,4 +23,4 @@ export {
23
23
  layoutC4Deployment,
24
24
  rollUpContextRelationships
25
25
  };
26
- //# sourceMappingURL=layout-JDJAEQ3P.js.map
26
+ //# sourceMappingURL=layout-3V2A4MUE.js.map