@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
@@ -4,10 +4,6 @@ import {
4
4
  import {
5
5
  ScaleContext
6
6
  } from "./chunk-YYVTBZZC.js";
7
- import {
8
- VARIANTS,
9
- allTasks
10
- } from "./chunk-6MNGECP2.js";
11
7
  import {
12
8
  TITLE_FONT_SIZE,
13
9
  TITLE_FONT_WEIGHT,
@@ -17,15 +13,23 @@ import {
17
13
  FONT_FAMILY
18
14
  } from "./chunk-6KFWC4CO.js";
19
15
  import {
20
- measureText,
21
- truncateText,
22
- wrapTextToWidth
23
- } from "./chunk-WCT3NYCV.js";
16
+ VARIANTS,
17
+ allTasks
18
+ } from "./chunk-ALYZ3MAA.js";
24
19
  import {
25
20
  contrastText,
26
21
  mix,
27
22
  themeBaseBg
28
- } from "./chunk-P6T66CCZ.js";
23
+ } from "./chunk-JYDMBWRP.js";
24
+ import {
25
+ measureText,
26
+ truncateText,
27
+ wrapTextToWidth
28
+ } from "./chunk-4ASYQ347.js";
29
+ import {
30
+ fillModeFromOptions,
31
+ legendSuppressed
32
+ } from "./chunk-YJVA3QUU.js";
29
33
 
30
34
  // src/raci/renderer.ts
31
35
  import * as d3Selection from "d3-selection";
@@ -149,7 +153,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
149
153
  const opts = typeof handlers === "function" ? { onClickLine: handlers } : handlers ?? {};
150
154
  const onClickLine = opts.onClickLine;
151
155
  const onMarkerDragStart = opts.onMarkerDragStart;
152
- const hideLegend = opts.hideLegend ?? false;
156
+ const hideLegend = (opts.hideLegend ?? false) || legendSuppressed(parsed.options);
153
157
  const collapsedPhases = opts.collapsedPhases ?? /* @__PURE__ */ new Set();
154
158
  const hideTitle = (opts.hideTitle ?? false) || parsed.options["no-title"] === "on";
155
159
  d3Selection.select(container).selectAll(":not([data-d3-tooltip])").remove();
@@ -158,7 +162,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
158
162
  if (width <= 0 || height <= 0) return;
159
163
  const tasksAll = [...allTasks(parsed)];
160
164
  if (tasksAll.length === 0 && parsed.phases.length === 0) return;
161
- const solid = parsed.options["solid-fill"] === "on";
165
+ const fillMode = fillModeFromOptions(parsed.options);
162
166
  const surfaceBg = themeBaseBg(palette, isDark);
163
167
  const roleCount = Math.max(1, parsed.roles.length);
164
168
  const idealWidth = roleCount * ROLE_COL_MAX + TASK_LABEL_MAX + 2 * H_MARGIN;
@@ -312,7 +316,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
312
316
  legendChipW,
313
317
  palette,
314
318
  surfaceBg,
315
- solid,
319
+ fillMode,
316
320
  onMarkerDragStart,
317
321
  sLegendChipGap,
318
322
  sLegendHeight,
@@ -332,7 +336,14 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
332
336
  if (taskIdx < 0) return;
333
337
  const yTop = rowYs[i];
334
338
  const rh = taskRowContent.get(row.task.id)?.rowHeight ?? sRowHeight;
335
- bandsG.append("rect").attr("class", "raci-row-band").attr("data-task-id", row.task.id).attr("x", sHMargin).attr("y", yTop + 2).attr("width", innerWidth).attr("height", rh - 4).attr("rx", 6).attr("fill", mix(autoAccent(taskIdx, palette), surfaceBg, 12));
339
+ const bandAccent = autoAccent(taskIdx, palette);
340
+ const band = bandsG.append("rect").attr("class", "raci-row-band").attr("data-task-id", row.task.id).attr("x", sHMargin).attr("y", yTop + 2).attr("width", innerWidth).attr("height", rh - 4).attr("rx", 6).attr(
341
+ "fill",
342
+ fillMode === "outline" ? surfaceBg : mix(bandAccent, surfaceBg, 12)
343
+ );
344
+ if (fillMode === "outline") {
345
+ band.attr("stroke", bandAccent).attr("stroke-width", 1);
346
+ }
336
347
  });
337
348
  }
338
349
  const columnsG = svg.append("g").attr("class", "raci-columns");
@@ -340,14 +351,21 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
340
351
  const cx = roleX(i) + sColumnInset;
341
352
  const cw = roleColW - 2 * sColumnInset;
342
353
  const roleColor = parsed.roleColors[i] ?? autoAccent(i, palette);
343
- const bodyFill = mix(roleColor, themeBaseBg(palette, isDark), 16);
344
- const headerFill = mix(roleColor, themeBaseBg(palette, isDark), 30);
354
+ const outline = fillMode === "outline";
355
+ const bodyFill = outline ? surfaceBg : mix(roleColor, themeBaseBg(palette, isDark), 16);
356
+ const headerFill = outline ? surfaceBg : mix(roleColor, themeBaseBg(palette, isDark), 30);
345
357
  const colG = columnsG.append("g").attr("class", "raci-column").attr("data-role-id", roleId);
346
- colG.append("rect").attr("class", "raci-column-body").attr("x", cx).attr("y", headerY).attr("width", cw).attr("height", colTotalHeight).attr("rx", sColumnRadius).attr("fill", bodyFill);
347
- colG.append("path").attr("class", "raci-column-header").attr(
358
+ const bodyRect = colG.append("rect").attr("class", "raci-column-body").attr("x", cx).attr("y", headerY).attr("width", cw).attr("height", colTotalHeight).attr("rx", sColumnRadius).attr("fill", bodyFill);
359
+ if (outline) {
360
+ bodyRect.attr("stroke", roleColor).attr("stroke-width", 1);
361
+ }
362
+ const headerPath = colG.append("path").attr("class", "raci-column-header").attr(
348
363
  "d",
349
364
  topRoundedRectPath(cx, headerY, cw, sHeaderHeight, sColumnRadius)
350
365
  ).attr("fill", headerFill);
366
+ if (outline) {
367
+ headerPath.attr("stroke", roleColor).attr("stroke-width", 1);
368
+ }
351
369
  const cxText = roleX(i) + roleColW / 2;
352
370
  colG.append("text").attr("class", "raci-column-label").attr("x", cxText).attr("y", headerY + sHeaderHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sRoleHeaderFont).attr("font-weight", 600).attr("fill", palette.text).text(
353
371
  truncateText(
@@ -400,7 +418,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
400
418
  roleColW,
401
419
  parsed.variant,
402
420
  surfaceBg,
403
- solid,
421
+ fillMode,
404
422
  chartCanShowSummaries,
405
423
  sPhaseHeight,
406
424
  sPhaseFont,
@@ -419,7 +437,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
419
437
  roleColW,
420
438
  palette,
421
439
  surfaceBg,
422
- solid,
440
+ fillMode,
423
441
  taskDiagnostics,
424
442
  hasAnyDiagnostic,
425
443
  taskRowContent.get(row.task.id),
@@ -482,7 +500,7 @@ function setupColumnHover(svg) {
482
500
  svg.on("mouseover", (event) => set(findRole(event.target)));
483
501
  svg.on("mouseleave", () => set(null));
484
502
  }
485
- function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surfaceBg, solid, _onMarkerDragStart, sLegendChipGap, sLegendHeight, sNodeRadius, sNodeStrokeWidth, sLegendLetterFont, sLegendLabelFont) {
503
+ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surfaceBg, fillMode, _onMarkerDragStart, sLegendChipGap, sLegendHeight, sNodeRadius, sNodeStrokeWidth, sLegendLetterFont, sLegendLabelFont) {
486
504
  if (markers.length === 0) return;
487
505
  const labels = MARKER_LABELS[variant];
488
506
  const legendG = svg.append("g").attr("class", "raci-legend").attr("aria-label", `${variant.toUpperCase()} marker legend`);
@@ -492,12 +510,12 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
492
510
  const labelText = labels[marker];
493
511
  const chipG = legendG.append("g").attr("class", "raci-legend-chip").attr("data-marker", marker).style("cursor", "grab");
494
512
  if (mode === "letters") {
495
- const fill2 = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
496
- const stroke2 = solid ? mix(rawColor, surfaceBg, 70) : rawColor;
513
+ const fill2 = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
514
+ const stroke2 = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : rawColor;
497
515
  chipG.append("rect").attr("x", cx).attr("y", y).attr("width", chipW).attr("height", sLegendHeight).attr("rx", sNodeRadius).attr("fill", fill2).attr("stroke", stroke2).attr("stroke-width", sNodeStrokeWidth);
498
516
  chipG.append("text").attr("x", cx + chipW / 2).attr("y", y + sLegendHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sLegendLetterFont).attr("font-weight", 700).attr(
499
517
  "fill",
500
- solid ? contrastText(
518
+ fillMode === "solid" ? contrastText(
501
519
  fill2,
502
520
  palette.textOnFillLight,
503
521
  palette.textOnFillDark
@@ -505,16 +523,32 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
505
523
  ).text(marker);
506
524
  return;
507
525
  }
508
- const fill = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
509
- const stroke = mix(rawColor, surfaceBg, 70);
526
+ let fill;
527
+ if (fillMode === "outline") {
528
+ const gradId = `raci-legend-grad-${marker}`;
529
+ let defs = svg.select("defs");
530
+ if (defs.empty()) defs = svg.append("defs");
531
+ if (defs.select(`#${gradId}`).empty()) {
532
+ const grad = defs.append("linearGradient").attr("id", gradId).attr("x1", "0%").attr("y1", "0%").attr("x2", "0%").attr("y2", "100%");
533
+ grad.append("stop").attr("offset", "0%").attr("stop-color", mix(rawColor, surfaceBg, 38));
534
+ grad.append("stop").attr("offset", "100%").attr("stop-color", mix(rawColor, surfaceBg, 8));
535
+ }
536
+ fill = `url(#${gradId})`;
537
+ } else {
538
+ fill = fillMode === "solid" ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
539
+ }
540
+ const stroke = fillMode === "outline" ? rawColor : mix(rawColor, surfaceBg, 70);
510
541
  chipG.append("rect").attr("x", cx).attr("y", y).attr("width", chipW).attr("height", sLegendHeight).attr("rx", sNodeRadius).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", sNodeStrokeWidth);
511
542
  const slabPad = 4;
512
543
  const slabW = 24;
513
- const slabFill = solid ? mix(rawColor, surfaceBg, 70) : mix(rawColor, surfaceBg, 55);
514
- chipG.append("rect").attr("x", cx + slabPad).attr("y", y + slabPad).attr("width", slabW).attr("height", sLegendHeight - 2 * slabPad).attr("rx", 4).attr("fill", slabFill);
544
+ const slabFill = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, 55);
545
+ const slabRect = chipG.append("rect").attr("x", cx + slabPad).attr("y", y + slabPad).attr("width", slabW).attr("height", sLegendHeight - 2 * slabPad).attr("rx", 4).attr("fill", slabFill);
546
+ if (fillMode === "outline") {
547
+ slabRect.attr("stroke", rawColor).attr("stroke-width", 1);
548
+ }
515
549
  chipG.append("text").attr("x", cx + slabPad + slabW / 2).attr("y", y + sLegendHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sLegendLetterFont).attr("font-weight", 700).attr(
516
550
  "fill",
517
- solid ? contrastText(
551
+ fillMode === "solid" ? contrastText(
518
552
  slabFill,
519
553
  palette.textOnFillLight,
520
554
  palette.textOnFillDark
@@ -532,10 +566,16 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
532
566
  function renderRaciForExport(container, parsed, palette, isDark, exportDims) {
533
567
  renderRaci(container, parsed, palette, isDark, {}, exportDims);
534
568
  }
535
- function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg, solid, showSummary, sPhaseHeight, sPhaseFont, sColumnInset, sNodeRadius) {
569
+ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg, fillMode, showSummary, sPhaseHeight, sPhaseFont, sColumnInset, sNodeRadius) {
536
570
  const phaseG = svg.append("g").attr("class", "raci-phase").attr("data-section", `phase-${phase.id}`).attr("data-section-toggle", "").attr("data-line-number", String(phase.lineNumber)).attr("data-phase-id", phase.id).attr("data-collapsed", collapsed ? "1" : "0").style("cursor", "pointer");
537
- const phaseFill = mix(phase.color ?? autoColor, palette.bg, 30);
538
- phaseG.append("rect").attr("x", x).attr("y", y + 4).attr("width", width).attr("height", sPhaseHeight - 8).attr("fill", phaseFill).attr("rx", 4);
571
+ const phaseColor = phase.color ?? autoColor;
572
+ const phaseRect = phaseG.append("rect").attr("x", x).attr("y", y + 4).attr("width", width).attr("height", sPhaseHeight - 8).attr(
573
+ "fill",
574
+ fillMode === "outline" ? surfaceBg : mix(phaseColor, palette.bg, 30)
575
+ ).attr("rx", 4);
576
+ if (fillMode === "outline") {
577
+ phaseRect.attr("stroke", phaseColor).attr("stroke-width", 1.25);
578
+ }
539
579
  const chevX = x + 12;
540
580
  const chevY = y + sPhaseHeight / 2;
541
581
  phaseG.append("text").attr("x", chevX).attr("y", chevY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("fill", palette.text).attr("opacity", 0.6).text(collapsed ? "\u25B6" : "\u25BC");
@@ -568,13 +608,13 @@ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor,
568
608
  ordered.forEach((marker, i) => {
569
609
  const cx = startX + i * (sliceW + SLICE_GAP);
570
610
  const rawColor = markerColor(marker, palette);
571
- const fill = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
572
- const stroke = solid ? mix(rawColor, surfaceBg, 70) : rawColor;
611
+ const fill = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
612
+ const stroke = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : rawColor;
573
613
  const chipG = phaseG.append("g").attr("class", "raci-phase-summary");
574
614
  chipG.append("rect").attr("x", cx).attr("y", summaryY).attr("width", sliceW).attr("height", SUMMARY_CHIP_H).attr("rx", sNodeRadius).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", 1.25);
575
615
  chipG.append("text").attr("x", cx + sliceW / 2).attr("y", summaryY + SUMMARY_CHIP_H / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", SUMMARY_LETTER_FONT).attr("font-weight", 700).attr(
576
616
  "fill",
577
- solid ? contrastText(
617
+ fillMode === "solid" ? contrastText(
578
618
  fill,
579
619
  palette.textOnFillLight,
580
620
  palette.textOnFillDark
@@ -585,7 +625,7 @@ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor,
585
625
  }
586
626
  }
587
627
  var SLICE_GAP = 4;
588
- function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette, surfaceBg, solid, taskDiagnostics, _hasAnyDiagnostic, rowContent, onClickLine, _onMarkerDragStart, sLabelFont, sDescFont, sCellPad, sRowHeight, sColumnInset, sNodeRadius, sNodeStrokeWidth, sMarkerFont, sLegendLabelFont, sStackTopGap, sViolationLineHeight) {
628
+ function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette, surfaceBg, fillMode, taskDiagnostics, _hasAnyDiagnostic, rowContent, onClickLine, _onMarkerDragStart, sLabelFont, sDescFont, sCellPad, sRowHeight, sColumnInset, sNodeRadius, sNodeStrokeWidth, sMarkerFont, sLegendLabelFont, sStackTopGap, sViolationLineHeight) {
589
629
  const rowG = svg.append("g").attr("class", "raci-task-row").attr("data-task-id", task.id).attr("data-line-number", String(task.lineNumber));
590
630
  const labelX = x + 8;
591
631
  const labelMaxW = labelW - 16;
@@ -664,7 +704,7 @@ function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette
664
704
  const variantLabels = MARKER_LABELS[parsed.variant];
665
705
  markers.forEach((m, i) => {
666
706
  const rawColor = markerColor(m, palette);
667
- const fill = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
707
+ const fill = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
668
708
  const stroke = rawColor;
669
709
  const sliceX = cx + i * (sliceW + SLICE_GAP);
670
710
  const sliceG = cellG.append("g").attr("class", "raci-marker-slice").attr("data-marker", m).style("cursor", "grab");
@@ -676,7 +716,7 @@ function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette
676
716
  const textFont = showFullLabel ? sLegendLabelFont : sMarkerFont;
677
717
  sliceG.append("text").attr("x", sliceX + sliceW / 2).attr("y", cy + ch / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", textFont).attr("font-weight", MARKER_FONT_WEIGHT).attr(
678
718
  "fill",
679
- solid ? contrastText(
719
+ fillMode === "solid" ? contrastText(
680
720
  fill,
681
721
  palette.textOnFillLight,
682
722
  palette.textOnFillDark
@@ -747,4 +787,4 @@ export {
747
787
  renderRaci,
748
788
  renderRaciForExport
749
789
  };
750
- //# sourceMappingURL=chunk-7DYOELRK.js.map
790
+ //# sourceMappingURL=chunk-NNYFQOTK.js.map
@@ -6,4 +6,4 @@ function isBlockNode(cell) {
6
6
  export {
7
7
  isBlockNode
8
8
  };
9
- //# sourceMappingURL=chunk-NNAAJVBU.js.map
9
+ //# sourceMappingURL=chunk-NR5HCAUD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-WCT3NYCV.js";
3
+ } from "./chunk-4ASYQ347.js";
4
4
 
5
5
  // src/wireframe/layout.ts
6
6
  var DESKTOP_WIDTH = 1200;
@@ -302,4 +302,4 @@ function computeFieldAlignX(children) {
302
302
  export {
303
303
  layoutWireframe
304
304
  };
305
- //# sourceMappingURL=chunk-H6PI3KJT.js.map
305
+ //# sourceMappingURL=chunk-ODUT5WMC.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  formatLocalISODate
3
- } from "./chunk-7L4UJOY6.js";
3
+ } from "./chunk-3TYUXC7D.js";
4
4
  import {
5
5
  parseDuration
6
- } from "./chunk-USZW2HHU.js";
6
+ } from "./chunk-EQW6HOP4.js";
7
7
  import {
8
8
  parseDateToken,
9
9
  toInternal
10
- } from "./chunk-RBDIYLA5.js";
10
+ } from "./chunk-DAOFNU6J.js";
11
11
  import {
12
12
  AUTO_TAG_COLOR_SENTINEL,
13
13
  finalizeAutoTagColors,
@@ -17,7 +17,7 @@ import {
17
17
  tagAttrKey,
18
18
  validateTagGroupNames,
19
19
  validateTagValues
20
- } from "./chunk-467TVMQL.js";
20
+ } from "./chunk-CMVZWP32.js";
21
21
  import {
22
22
  normalizeName
23
23
  } from "./chunk-NOTA6TEI.js";
@@ -25,15 +25,16 @@ import {
25
25
  PERT_REGISTRY,
26
26
  extractColor,
27
27
  measureIndent,
28
+ peelTrailingCollapsedFlag,
28
29
  splitNameAndMeta,
29
30
  warnUnknownMetaKeys,
30
31
  withTagAliases
31
- } from "./chunk-LV4BETUU.js";
32
+ } from "./chunk-YJVA3QUU.js";
32
33
  import {
33
34
  emit,
34
35
  makeDgmoError,
35
36
  suggest
36
- } from "./chunk-CXK4DZH3.js";
37
+ } from "./chunk-4W2PE66Q.js";
37
38
 
38
39
  // src/pert/diagnostics.ts
39
40
  var PERT_DX = {
@@ -129,7 +130,11 @@ var PERT_DIAGNOSTICS = Object.values(PERT_DX);
129
130
  var DIRECTIVE_KEYS = /* @__PURE__ */ new Set([
130
131
  "time-unit",
131
132
  "default-confidence",
133
+ // Canonical booleans (§1.9, last one wins); key+value `direction LR|TB`
134
+ // accepted legacy.
132
135
  "direction",
136
+ "direction-lr",
137
+ "direction-tb",
133
138
  "node-detail",
134
139
  "no-analysis",
135
140
  "trials",
@@ -138,7 +143,10 @@ var DIRECTIVE_KEYS = /* @__PURE__ */ new Set([
138
143
  "start-date",
139
144
  "end-date",
140
145
  "no-title",
141
- "solid-fill",
146
+ "no-legend",
147
+ "fill-tint",
148
+ "fill-solid",
149
+ "fill-outline",
142
150
  "sprint-length",
143
151
  "sprint-number",
144
152
  "sprint-start",
@@ -173,7 +181,7 @@ var NEAR_DIRECTIVE_HINTS = [
173
181
  {
174
182
  stem: "time",
175
183
  canonical: "time-unit",
176
- matches: /^(d|w|m|q|y|h|min|bd|s)$/i
184
+ matches: /^(d|w|m|q|y|h|min|bd|sp|s)$/i
177
185
  }
178
186
  ];
179
187
  var GROUP_HEADER_RE = /^\[([^\]]+)\]\s*(.*)$/;
@@ -195,7 +203,8 @@ function parseEdgeLabel(label, defaultUnit) {
195
203
  if (numRaw) {
196
204
  const amount = parseFloat(numRaw);
197
205
  if (amount !== 0) {
198
- const unit = unitRaw ? unitRaw.toLowerCase() : defaultUnit;
206
+ const unitLow = unitRaw?.toLowerCase();
207
+ const unit = unitLow ? unitLow === "sp" ? "s" : unitLow : defaultUnit;
199
208
  if (!isValidDurationUnit(unit)) return null;
200
209
  lag = { amount, unit };
201
210
  }
@@ -217,7 +226,7 @@ function isValidDurationUnit(u) {
217
226
  return VALID_DURATION_UNITS.has(u);
218
227
  }
219
228
  var ALIAS_SUFFIX_RE = /\s+as\s+([A-Za-z][A-Za-z0-9_]{0,11})\s*$/;
220
- var ESTIMATE_TOKEN_RE = /^(\d+(?:\.\d+)?)(min|bd|d|w|m|q|y|h|s)?$/;
229
+ var ESTIMATE_TOKEN_RE = /^(\d+(?:\.\d+)?)(min|bd|sp|d|w|m|q|y|h|s)?$/;
221
230
  var DEFAULT_OPTIONS = {
222
231
  timeUnit: "d",
223
232
  direction: "LR",
@@ -322,7 +331,7 @@ function parseEstimateToken(token, defaultUnit) {
322
331
  if (!m) return null;
323
332
  const amount = parseFloat(m[1]);
324
333
  if (!Number.isFinite(amount)) return null;
325
- const unit = m[2] ?? defaultUnit;
334
+ const unit = (m[2] === "sp" ? "s" : m[2]) ?? defaultUnit;
326
335
  if (unit === "s") {
327
336
  return { amount, unit: defaultUnit };
328
337
  }
@@ -538,7 +547,13 @@ function parsePert(content, parseOpts = {}) {
538
547
  contentStarted = true;
539
548
  currentTagGroup = null;
540
549
  const name = groupMatch[1].trim();
541
- const tail = (groupMatch[2] ?? "").trim();
550
+ let tail = (groupMatch[2] ?? "").trim();
551
+ let bareCollapsed = false;
552
+ const barePeel = peelTrailingCollapsedFlag(tail);
553
+ if (barePeel.collapsed) {
554
+ bareCollapsed = true;
555
+ tail = barePeel.rest;
556
+ }
542
557
  const meta = tail ? parsePipeMetadata(tail, metaAliasMap) : {};
543
558
  const id = `[${normalizeName(name)}]`;
544
559
  const tags = {};
@@ -549,7 +564,7 @@ function parsePert(content, parseOpts = {}) {
549
564
  id,
550
565
  name,
551
566
  activityIds: [],
552
- collapsed: meta["collapsed"] === "true",
567
+ collapsed: bareCollapsed || meta["collapsed"] === "true",
553
568
  lineNumber,
554
569
  ...Object.keys(tags).length > 0 && { tags }
555
570
  });
@@ -953,6 +968,7 @@ function applyDirective(key, value, lineNumber, options, error, warn, dateCfg) {
953
968
  case "no-current-year":
954
969
  return;
955
970
  case "time-unit": {
971
+ const normalized = value === "sp" ? "s" : value;
956
972
  const valid = [
957
973
  "min",
958
974
  "h",
@@ -964,14 +980,15 @@ function applyDirective(key, value, lineNumber, options, error, warn, dateCfg) {
964
980
  "y",
965
981
  "s"
966
982
  ];
967
- if (!valid.includes(value)) {
983
+ if (!valid.includes(normalized)) {
984
+ const shown = valid.map((u) => u === "s" ? "sp" : u);
968
985
  error(
969
986
  lineNumber,
970
- `Unknown time-unit '${value}'. Expected one of ${valid.join(", ")}.`
987
+ `Unknown time-unit '${value}'. Expected one of ${shown.join(", ")}.`
971
988
  );
972
989
  return;
973
990
  }
974
- options.timeUnit = value;
991
+ options.timeUnit = normalized;
975
992
  return;
976
993
  }
977
994
  case "default-confidence": {
@@ -982,8 +999,20 @@ function applyDirective(key, value, lineNumber, options, error, warn, dateCfg) {
982
999
  options.noTitle = true;
983
1000
  return;
984
1001
  }
985
- case "solid-fill": {
986
- options.solidFill = true;
1002
+ case "no-legend": {
1003
+ options.noLegend = true;
1004
+ return;
1005
+ }
1006
+ case "fill-solid": {
1007
+ options.fillMode = "solid";
1008
+ return;
1009
+ }
1010
+ case "fill-outline": {
1011
+ options.fillMode = "outline";
1012
+ return;
1013
+ }
1014
+ case "fill-tint": {
1015
+ delete options.fillMode;
987
1016
  return;
988
1017
  }
989
1018
  case "active-tag": {
@@ -1051,6 +1080,14 @@ function applyDirective(key, value, lineNumber, options, error, warn, dateCfg) {
1051
1080
  options.direction = upper;
1052
1081
  return;
1053
1082
  }
1083
+ case "direction-lr": {
1084
+ options.direction = "LR";
1085
+ return;
1086
+ }
1087
+ case "direction-tb": {
1088
+ options.direction = "TB";
1089
+ return;
1090
+ }
1054
1091
  case "node-detail": {
1055
1092
  if (value !== "compact" && value !== "full") {
1056
1093
  error(
@@ -1214,4 +1251,4 @@ export {
1214
1251
  extractPertSymbols,
1215
1252
  looksLikePert
1216
1253
  };
1217
- //# sourceMappingURL=chunk-5PDTIBLV.js.map
1254
+ //# sourceMappingURL=chunk-P3H7QVDH.js.map