@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,7 +4,7 @@ import {
4
4
  renderNoteBadge,
5
5
  renderNoteBox,
6
6
  renderNoteConnector
7
- } from "./chunk-JEUJOX5X.js";
7
+ } from "./chunk-3IUHKMJI.js";
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
@@ -20,10 +20,10 @@ import {
20
20
  } from "./chunk-YYVTBZZC.js";
21
21
  import {
22
22
  renderIntegratedLegend
23
- } from "./chunk-OU7HLO7I.js";
23
+ } from "./chunk-W5KMNC5U.js";
24
24
  import {
25
25
  getMaxLegendReservedHeight
26
- } from "./chunk-YAA6IID3.js";
26
+ } from "./chunk-774C2FF3.js";
27
27
  import {
28
28
  TITLE_FONT_SIZE,
29
29
  TITLE_FONT_WEIGHT,
@@ -32,11 +32,6 @@ import {
32
32
  import {
33
33
  FONT_FAMILY
34
34
  } from "./chunk-6KFWC4CO.js";
35
- import {
36
- CHAR_WIDTH_RATIO,
37
- measureText,
38
- truncateText
39
- } from "./chunk-WCT3NYCV.js";
40
35
  import {
41
36
  contrastText,
42
37
  mix,
@@ -44,13 +39,22 @@ import {
44
39
  shapeFill,
45
40
  themeBaseBg,
46
41
  valueRampColor
47
- } from "./chunk-P6T66CCZ.js";
42
+ } from "./chunk-JYDMBWRP.js";
43
+ import {
44
+ CHAR_WIDTH_RATIO,
45
+ measureText,
46
+ truncateText
47
+ } from "./chunk-4ASYQ347.js";
48
48
  import {
49
49
  resolveTagColor
50
- } from "./chunk-467TVMQL.js";
50
+ } from "./chunk-CMVZWP32.js";
51
+ import {
52
+ fillModeFromOptions,
53
+ legendSuppressed
54
+ } from "./chunk-YJVA3QUU.js";
51
55
  import {
52
56
  resolveColor
53
- } from "./chunk-TLVIHFRO.js";
57
+ } from "./chunk-ZKPPI6BF.js";
54
58
 
55
59
  // src/boxes-and-lines/renderer.ts
56
60
  import * as d3Selection from "d3-selection";
@@ -137,7 +141,7 @@ function fitLabelToHeader(label, nodeWidth, maxLines) {
137
141
  const truncated = truncateText(label, MIN_NODE_FONT_SIZE, maxTextWidth);
138
142
  return { lines: [truncated], fontSize: MIN_NODE_FONT_SIZE };
139
143
  }
140
- function nodeColors(node, tagGroups, activeGroupName, palette, isDark, value, solid) {
144
+ function nodeColors(node, tagGroups, activeGroupName, palette, isDark, value, fillMode) {
141
145
  const neutralFill = mix(palette.bg, palette.text, isDark ? 90 : 95);
142
146
  if (value.active) {
143
147
  if (node.value === void 0) {
@@ -149,9 +153,7 @@ function nodeColors(node, tagGroups, activeGroupName, palette, isDark, value, so
149
153
  return { fill: neutralFill, stroke: value.hue, text: text3 };
150
154
  }
151
155
  const rampColor = value.fillForValue(node.value);
152
- const fill2 = shapeFill(palette, rampColor, isDark, {
153
- ...solid !== void 0 && { solid }
154
- });
156
+ const fill2 = shapeFill(palette, rampColor, isDark, { mode: fillMode });
155
157
  const stroke2 = value.twoColor ? rampColor : value.hue;
156
158
  const text2 = contrastText(
157
159
  fill2,
@@ -166,9 +168,7 @@ function nodeColors(node, tagGroups, activeGroupName, palette, isDark, value, so
166
168
  activeGroupName
167
169
  );
168
170
  if (tagColor) {
169
- const fill2 = shapeFill(palette, tagColor, isDark, {
170
- ...solid !== void 0 && { solid }
171
- });
171
+ const fill2 = shapeFill(palette, tagColor, isDark, { mode: fillMode });
172
172
  const stroke2 = tagColor;
173
173
  const text2 = contrastText(
174
174
  fill2,
@@ -291,7 +291,8 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
291
291
  const reserveHasDescriptions = parsed.nodes.some(
292
292
  (n) => n.description && n.description.length > 0
293
293
  );
294
- const willRenderLegend = legendGroups.length > 0 || reserveHasDescriptions && controlsHost !== "app";
294
+ const noLegend = legendSuppressed(parsed.options);
295
+ const willRenderLegend = (legendGroups.length > 0 || reserveHasDescriptions && controlsHost !== "app") && !noLegend;
295
296
  const sLegendHeight = willRenderLegend ? sctx.structural(
296
297
  getMaxLegendReservedHeight(
297
298
  {
@@ -312,7 +313,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
312
313
  const hasAnyDescriptions = parsed.nodes.some(
313
314
  (n) => n.description && n.description.length > 0
314
315
  );
315
- const needsLegend = legendGroups.length > 0 || hasAnyDescriptions && onToggleDescriptions;
316
+ const needsLegend = (legendGroups.length > 0 || hasAnyDescriptions && !!onToggleDescriptions) && !noLegend;
316
317
  const legendH = needsLegend ? sLegendHeight + 8 : 0;
317
318
  const groupLabelsSet = new Set(layout.groups.map((g) => g.label));
318
319
  let labelZoneExtension = 0;
@@ -480,7 +481,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
480
481
  }
481
482
  if (isHidden) continue;
482
483
  }
483
- const solid = parsed.options["solid-fill"] === "on";
484
+ const fillMode = fillModeFromOptions(parsed.options);
484
485
  const colors = nodeColors(
485
486
  node,
486
487
  parsed.tagGroups,
@@ -493,9 +494,9 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
493
494
  twoColor: rampLow !== void 0,
494
495
  fillForValue
495
496
  },
496
- solid
497
+ fillMode
497
498
  );
498
- const dividerStroke = solid ? colors.text : colors.stroke;
499
+ const dividerStroke = fillMode === "solid" ? colors.text : colors.stroke;
499
500
  const nodeG = diagramG.append("g").attr("class", "bl-node").attr("transform", `translate(${ln.x},${ln.y})`).attr("data-line-number", node.lineNumber).attr("data-node-id", node.label).style("cursor", onClickItem ? "pointer" : "default").style("--bl-node-stroke", colors.stroke);
500
501
  for (const [key, val] of Object.entries(node.metadata)) {
501
502
  nodeG.attr(`data-tag-${key.toLowerCase()}`, val.toLowerCase());
@@ -575,11 +576,11 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
575
576
  const tooltipText = fullText.length > 200 ? fullText.slice(0, 199) + "\u2026" : fullText;
576
577
  nodeG.append("title").text(tooltipText);
577
578
  }
578
- if (parsed.showValues && node.value !== void 0) {
579
+ if (parsed.showValues !== false && node.value !== void 0) {
579
580
  const valueLabel = parsed.boxMetric ? `${parsed.boxMetric}: ${node.value}` : String(node.value);
580
581
  nodeG.append("text").attr("class", "bl-node-value").attr("x", 0).attr("y", descStartY + visibleLines.length * descLineH).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", VALUE_FONT_SIZE).attr("font-weight", "600").attr("fill", colors.text).text(valueLabel);
581
582
  }
582
- } else if (parsed.showValues && node.value !== void 0) {
583
+ } else if (parsed.showValues !== false && node.value !== void 0) {
583
584
  const valueLabel = parsed.boxMetric ? `${parsed.boxMetric}: ${node.value}` : String(node.value);
584
585
  const headerH = ln.height / 2;
585
586
  const sepY = -ln.height / 2 + headerH;
@@ -682,7 +683,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
682
683
  const hasDescriptions = parsed.nodes.some(
683
684
  (n) => n.description && n.description.length > 0
684
685
  );
685
- const hasLegend = legendGroups.length > 0 || hasDescriptions && controlsHost !== "app";
686
+ const hasLegend = (legendGroups.length > 0 || hasDescriptions && controlsHost !== "app") && !noLegend;
686
687
  if (hasLegend) {
687
688
  let controlsGroup;
688
689
  if (hasDescriptions && (onToggleDescriptions || controlsHost === "app")) {
@@ -758,4 +759,4 @@ export {
758
759
  renderBoxesAndLines,
759
760
  renderBoxesAndLinesForExport
760
761
  };
761
- //# sourceMappingURL=chunk-DY7XLRHK.js.map
762
+ //# sourceMappingURL=chunk-UQRIKAMH.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-BMR4CIEO.js";
13
13
  import {
14
14
  measureText
15
- } from "./chunk-WCT3NYCV.js";
15
+ } from "./chunk-4ASYQ347.js";
16
16
 
17
17
  // src/utils/note-box/metrics.ts
18
18
  function normalizeBulletLine(line) {
@@ -49,4 +49,4 @@ export {
49
49
  wrapNoteBody,
50
50
  noteBoxSize
51
51
  };
52
- //# sourceMappingURL=chunk-TYS6CSS5.js.map
52
+ //# sourceMappingURL=chunk-UU6LUYUH.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  mix
3
- } from "./chunk-P6T66CCZ.js";
3
+ } from "./chunk-JYDMBWRP.js";
4
4
  import {
5
5
  resolveTagColor,
6
6
  tagAttrKey
7
- } from "./chunk-467TVMQL.js";
7
+ } from "./chunk-CMVZWP32.js";
8
8
  import {
9
9
  resolveColor
10
- } from "./chunk-TLVIHFRO.js";
10
+ } from "./chunk-ZKPPI6BF.js";
11
11
 
12
12
  // src/treemap/treemap-shared.ts
13
13
  import { scaleLinear } from "d3-scale";
@@ -19,12 +19,23 @@ function depthTint(hue, depth, bg) {
19
19
  }
20
20
  function resolveColorMode(parsed, override) {
21
21
  let mode = override ?? parsed.defaultColorMode;
22
+ if (mode === "heat" && !parsed.hasHeat) {
23
+ mode = parsed.tagGroups.length > 0 ? "tag" : "branch";
24
+ }
22
25
  if (mode === "tag" && parsed.tagGroups.length === 0) {
23
26
  mode = parsed.hasHeat ? "heat" : "branch";
24
27
  }
25
- if (mode === "heat" && !parsed.hasHeat) mode = "branch";
26
28
  return mode;
27
29
  }
30
+ function activeTagGroupOf(parsed) {
31
+ if (parsed.tagGroups.length === 0) return null;
32
+ const at = parsed.activeTag?.trim().toLowerCase();
33
+ if (at) {
34
+ const g = parsed.tagGroups.find((x) => x.name.toLowerCase() === at);
35
+ if (g) return g;
36
+ }
37
+ return parsed.tagGroups[0];
38
+ }
28
39
  function resolveCellColor(cell, ctx) {
29
40
  if (ctx.mode === "heat") {
30
41
  return cell.heat !== void 0 && ctx.heat ? ctx.heat.scale(cell.heat) : MUTED_FILL;
@@ -112,7 +123,7 @@ function buildLegend(activeMode, parsed, heat, seriesColors, colorOffset) {
112
123
  const modeByName = /* @__PURE__ */ new Map();
113
124
  let activeGroup = null;
114
125
  if (parsed.tagGroups.length > 0) {
115
- const tg = parsed.tagGroups[0];
126
+ const tg = activeTagGroupOf(parsed);
116
127
  const used = /* @__PURE__ */ new Set();
117
128
  const collect = (nodes) => {
118
129
  for (const n of nodes) {
@@ -158,10 +169,11 @@ function buildLegend(activeMode, parsed, heat, seriesColors, colorOffset) {
158
169
 
159
170
  export {
160
171
  resolveColorMode,
172
+ activeTagGroupOf,
161
173
  resolveCellColor,
162
174
  buildHeatScale,
163
175
  compactNumber,
164
176
  formatPct,
165
177
  buildLegend
166
178
  };
167
- //# sourceMappingURL=chunk-NI3XQBPB.js.map
179
+ //# sourceMappingURL=chunk-UVDCHR4E.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SKETCH_DIAGNOSTIC_CODES
3
- } from "./chunk-XHVV4NVW.js";
3
+ } from "./chunk-RT7ACF77.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
6
  finalizeAutoTagColors,
@@ -10,23 +10,24 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-467TVMQL.js";
13
+ } from "./chunk-CMVZWP32.js";
14
14
  import {
15
15
  parseInArrowLabel
16
- } from "./chunk-FFUN5D66.js";
16
+ } from "./chunk-WF64MW5G.js";
17
17
  import {
18
18
  normalizeName
19
19
  } from "./chunk-NOTA6TEI.js";
20
20
  import {
21
21
  SKETCH_REGISTRY,
22
22
  extractColor,
23
+ fillModeFromToken,
23
24
  measureIndent,
24
25
  parseFirstLine,
25
26
  splitNameAndMeta,
26
27
  stripQuotes,
27
28
  warnUnknownMetaKeys,
28
29
  withTagAliases
29
- } from "./chunk-LV4BETUU.js";
30
+ } from "./chunk-YJVA3QUU.js";
30
31
  import {
31
32
  NAME_DIAGNOSTIC_CODES,
32
33
  formatDgmoError,
@@ -34,7 +35,7 @@ import {
34
35
  makeFail,
35
36
  nameMergedMessage,
36
37
  suggest
37
- } from "./chunk-CXK4DZH3.js";
38
+ } from "./chunk-4W2PE66Q.js";
38
39
 
39
40
  // src/sketch/types.ts
40
41
  var SKETCH_SHAPE_KINDS = [
@@ -69,10 +70,11 @@ var LEFT_ARROW_RE = /^<[-~](?![-~]?>)/;
69
70
  var BOX_RE = /^\[([^\]]*)\]\s*(.*)$/;
70
71
  var BOX_TAIL_ALIAS_RE = /^as\s+([A-Za-z][A-Za-z0-9_]{0,11})(?=\s|,|$)\s*,?\s*/;
71
72
  var AT_VALUE_RE = /^(-?\d+)\s+(-?\d+)$/;
73
+ var SKETCH_AT_MAX = 2e3;
72
74
  function parseSketch(content, palette) {
73
75
  const options = {
74
76
  noLegend: false,
75
- solidFill: false,
77
+ fillMode: void 0,
76
78
  noDescriptions: false
77
79
  };
78
80
  const result = {
@@ -118,7 +120,17 @@ function parseSketch(content, palette) {
118
120
  );
119
121
  return null;
120
122
  }
121
- return { c: parseInt(m[1], 10), r: parseInt(m[2], 10) };
123
+ const c = parseInt(m[1], 10);
124
+ const r = parseInt(m[2], 10);
125
+ if (!Number.isSafeInteger(c) || !Number.isSafeInteger(r) || Math.abs(c) > SKETCH_AT_MAX || Math.abs(r) > SKETCH_AT_MAX) {
126
+ warn(
127
+ lineNumber,
128
+ `at: coordinate "${raw}" is out of range \u2014 half-slot coords must be whole numbers within \xB1${SKETCH_AT_MAX}; shape will flow-place`,
129
+ SKETCH_DIAGNOSTIC_CODES.AT_OUT_OF_RANGE
130
+ );
131
+ return null;
132
+ }
133
+ return { c, r };
122
134
  };
123
135
  const liftReserved = (meta, lineNumber) => {
124
136
  let shape = "rectangle";
@@ -446,8 +458,9 @@ function parseSketch(content, palette) {
446
458
  options.noLegend = true;
447
459
  continue;
448
460
  }
449
- if (indent === 0 && /^solid-fill\s*$/i.test(trimmed)) {
450
- options.solidFill = true;
461
+ if (indent === 0 && fillModeFromToken(trimmed) !== null) {
462
+ const fm = fillModeFromToken(trimmed);
463
+ options.fillMode = fm === "tint" ? void 0 : fm;
451
464
  continue;
452
465
  }
453
466
  if (indent === 0 && /^no-descriptions\s*$/i.test(trimmed)) {
@@ -614,4 +627,4 @@ export {
614
627
  isSketchShapeKind,
615
628
  parseSketch
616
629
  };
617
- //# sourceMappingURL=chunk-6K2M4VSR.js.map
630
+ //# sourceMappingURL=chunk-VAO6ANGC.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  buildPlacedNotes
3
- } from "./chunk-JED6ZDEE.js";
3
+ } from "./chunk-5HWPEYWB.js";
4
4
  import {
5
5
  noteCanvasShift
6
6
  } from "./chunk-6EK55ART.js";
7
7
  import {
8
8
  measureText
9
- } from "./chunk-WCT3NYCV.js";
9
+ } from "./chunk-4ASYQ347.js";
10
10
  import {
11
11
  resolveNotes
12
- } from "./chunk-FMDSF3OV.js";
12
+ } from "./chunk-QZAW5SFH.js";
13
13
 
14
14
  // src/er/layout.ts
15
15
  import dagre from "@dagrejs/dagre";
@@ -326,4 +326,4 @@ function layoutERDiagram(parsed, options) {
326
326
  export {
327
327
  layoutERDiagram
328
328
  };
329
- //# sourceMappingURL=chunk-6NYWYNBI.js.map
329
+ //# sourceMappingURL=chunk-VGNIDAPQ.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/label-layout.ts
6
6
  function rectsOverlap(a, b) {
@@ -221,4 +221,4 @@ export {
221
221
  segmentsCross,
222
222
  computeQuadrantPointLabels
223
223
  };
224
- //# sourceMappingURL=chunk-VL2O2F3W.js.map
224
+ //# sourceMappingURL=chunk-VHO3YBTB.js.map
@@ -7,11 +7,11 @@ import {
7
7
  } from "./chunk-YYVTBZZC.js";
8
8
  import {
9
9
  renderIntegratedLegend
10
- } from "./chunk-OU7HLO7I.js";
10
+ } from "./chunk-W5KMNC5U.js";
11
11
  import {
12
12
  controlsGroupCapsuleWidth,
13
13
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
14
+ } from "./chunk-774C2FF3.js";
15
15
  import {
16
16
  TITLE_FONT_SIZE,
17
17
  TITLE_FONT_WEIGHT,
@@ -20,6 +20,12 @@ import {
20
20
  import {
21
21
  FONT_FAMILY
22
22
  } from "./chunk-6KFWC4CO.js";
23
+ import {
24
+ contrastText,
25
+ getSeriesColors,
26
+ mix,
27
+ shapeFill
28
+ } from "./chunk-JYDMBWRP.js";
23
29
  import {
24
30
  LEGEND_CAPSULE_PAD,
25
31
  LEGEND_DOT_R,
@@ -34,23 +40,17 @@ import {
34
40
  LEGEND_PILL_PAD,
35
41
  measureLegendText,
36
42
  truncateLegendText
37
- } from "./chunk-QOOUC2J5.js";
43
+ } from "./chunk-4RGZFA7H.js";
38
44
  import {
39
45
  CHAR_WIDTH_RATIO,
40
46
  measureText,
41
47
  truncateText
42
- } from "./chunk-WCT3NYCV.js";
43
- import {
44
- contrastText,
45
- getSeriesColors,
46
- mix,
47
- shapeFill
48
- } from "./chunk-P6T66CCZ.js";
48
+ } from "./chunk-4ASYQ347.js";
49
49
  import {
50
50
  resolveActiveTagGroup,
51
51
  resolveTagColor,
52
52
  tagAttrKey
53
- } from "./chunk-467TVMQL.js";
53
+ } from "./chunk-CMVZWP32.js";
54
54
  import {
55
55
  normalizeName
56
56
  } from "./chunk-NOTA6TEI.js";
@@ -100,18 +100,13 @@ function computeBarLabel(label, x1, barWidth, innerWidth, textColor, onFillColor
100
100
  var BAND_ACCENT_W = 4;
101
101
  var BAND_RADIUS = 4;
102
102
  var bandClipCounter = 0;
103
- function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr, solid, barH = BAR_H, bandRadius = BAND_RADIUS, bandAccentW = BAND_ACCENT_W) {
103
+ function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr, fillMode, barH = BAR_H, bandRadius = BAND_RADIUS, bandAccentW = BAND_ACCENT_W) {
104
104
  const bandX = 5;
105
105
  const bandW = leftMargin - 7;
106
106
  const bandY = y - barH / 2;
107
107
  const clipId = `gantt-band-clip-${bandClipCounter++}`;
108
108
  svg.append("clipPath").attr("id", clipId).append("rect").attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius);
109
- const tint = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-bg`).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius).attr(
110
- "fill",
111
- shapeFill(palette, color, isDark, {
112
- ...solid !== void 0 && { solid }
113
- })
114
- ).style("pointer-events", "none");
109
+ const tint = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-bg`).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius).attr("fill", shapeFill(palette, color, isDark, { mode: fillMode })).style("pointer-events", "none");
115
110
  const accent = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-accent`).attr("x", bandX).attr("y", bandY).attr("width", bandAccentW).attr("height", barH).attr("fill", color).attr("clip-path", `url(#${clipId})`).style("pointer-events", "none");
116
111
  if (dataAttr) {
117
112
  tint.attr(dataAttr.key, dataAttr.value);
@@ -127,7 +122,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
127
122
  container.innerHTML = "";
128
123
  bandClipCounter = 0;
129
124
  if (resolved.tasks.length === 0) return;
130
- const solid = false;
125
+ const fillMode = void 0;
131
126
  const onClickItem = options?.onClickItem;
132
127
  const collapsedGroups = options?.collapsedGroups ?? new Set(resolved.groups.filter((g2) => g2.collapsed).map((g2) => g2.name));
133
128
  const onToggleGroup = options?.onToggleGroup;
@@ -182,7 +177,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
182
177
  const showTitle = !!title && !resolved.options.noTitle;
183
178
  const titleHeight = showTitle ? 50 : 20;
184
179
  const containerWidth = exportDims?.width ?? (container.clientWidth || 800);
185
- const hasTagLegend = resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies;
180
+ const hasTagLegend = !resolved.options.noLegend && (resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies);
186
181
  const tagLegendReserve = hasTagLegend ? getMaxLegendReservedHeight(
187
182
  {
188
183
  groups: resolved.tagGroups.map((tg) => ({
@@ -243,7 +238,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
243
238
  }
244
239
  function drawLegend() {
245
240
  svg.selectAll(".gantt-tag-legend-container").remove();
246
- if (resolved.tagGroups.length > 0 || hasCriticalPath || hasDependencies) {
241
+ if (hasTagLegend) {
247
242
  const legendY = sTitleHeight;
248
243
  renderTagLegend(
249
244
  svg,
@@ -318,7 +313,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
318
313
  seriesColors,
319
314
  palette
320
315
  );
321
- const fillColor = shapeFill(palette, color, isDark, { solid });
316
+ const fillColor = shapeFill(palette, color, isDark, { mode: fillMode });
322
317
  el.select("rect").attr("fill", fillColor).attr("stroke", color);
323
318
  });
324
319
  }
@@ -419,7 +414,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
419
414
  isDark,
420
415
  "lane",
421
416
  { key: "data-lane", value: row.laneName },
422
- solid,
417
+ fillMode,
423
418
  sBarH,
424
419
  sBandRadius,
425
420
  sBandAccentW
@@ -446,7 +441,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
446
441
  toggleIcon + " " + row.laneName + (row.aggregateProgress !== null ? ` ${Math.round(row.aggregateProgress)}%` : "")
447
442
  );
448
443
  if (laneBarWidth > 0) {
449
- const barFill = shapeFill(palette, laneColor, isDark, { solid });
444
+ const barFill = shapeFill(palette, laneColor, isDark, {
445
+ mode: fillMode
446
+ });
450
447
  const laneBandG = g.append("g").attr("class", "gantt-lane-band-group").attr("data-lane", row.laneName).on("mouseenter", () => {
451
448
  highlightLane(g, svg, row.tagKey, row.laneName);
452
449
  if (row.laneStartDate && row.laneEndDate) {
@@ -492,7 +489,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
492
489
  isDark,
493
490
  "group",
494
491
  { key: "data-group", value: group.name },
495
- solid,
492
+ fillMode,
496
493
  sBarH,
497
494
  sBandRadius,
498
495
  sBandAccentW
@@ -539,7 +536,10 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
539
536
  resetHighlight(g, svg);
540
537
  hideGanttDateIndicators(g);
541
538
  });
542
- summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth).attr("height", sBarH).attr("rx", 4).attr("fill", shapeFill(palette, groupColor, isDark, { solid })).attr("stroke", groupColor).attr("stroke-width", 2);
539
+ summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth).attr("height", sBarH).attr("rx", 4).attr(
540
+ "fill",
541
+ shapeFill(palette, groupColor, isDark, { mode: fillMode })
542
+ ).attr("stroke", groupColor).attr("stroke-width", 2);
543
543
  if (group.progress !== null && group.progress > 0) {
544
544
  summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth * Math.min(group.progress / 100, 1)).attr("height", sBarH).attr("fill", groupColor).attr("opacity", 0.5);
545
545
  }
@@ -551,7 +551,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
551
551
  innerWidth,
552
552
  palette.text,
553
553
  contrastText(
554
- shapeFill(palette, groupColor, isDark, { solid }),
554
+ shapeFill(palette, groupColor, isDark, { mode: fillMode }),
555
555
  palette.textOnFillLight,
556
556
  palette.textOnFillDark
557
557
  ),
@@ -569,7 +569,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
569
569
  });
570
570
  } else {
571
571
  const groupBarWidth = Math.max(gx2 - gx1, 2);
572
- const bandFill = shapeFill(palette, groupColor, isDark, { solid });
572
+ const bandFill = shapeFill(palette, groupColor, isDark, {
573
+ mode: fillMode
574
+ });
573
575
  const groupBarG = g.append("g").attr("class", "gantt-group-bar").attr("data-group", group.name).attr("data-line-number", String(group.lineNumber)).on("mouseenter", () => {
574
576
  highlightGroup(g, svg, group.name);
575
577
  showGanttDateIndicators(
@@ -596,7 +598,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
596
598
  innerWidth,
597
599
  palette.text,
598
600
  contrastText(
599
- shapeFill(palette, groupColor, isDark, { solid }),
601
+ shapeFill(palette, groupColor, isDark, { mode: fillMode }),
600
602
  palette.textOnFillLight,
601
603
  palette.textOnFillDark
602
604
  ),
@@ -676,7 +678,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
676
678
  const x1 = xScale(tStart);
677
679
  const x2 = xScale(tEnd);
678
680
  const barWidth = Math.max(x2 - x1, 2);
679
- const fillColor = shapeFill(palette, barColor, isDark, { solid });
681
+ const fillColor = shapeFill(palette, barColor, isDark, {
682
+ mode: fillMode
683
+ });
680
684
  const taskG = g.append("g").attr("class", "gantt-task").attr("data-line-number", String(task.lineNumber)).attr("data-task-name", task.label).attr("data-task-id", task.id).attr("data-group", topGroup).style("cursor", onClickItem ? "pointer" : "default").on("click", () => {
681
685
  if (onClickItem) onClickItem(task.lineNumber);
682
686
  }).on("mouseenter", () => {
@@ -747,7 +751,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
747
751
  innerWidth,
748
752
  palette.text,
749
753
  contrastText(
750
- shapeFill(palette, barColor, isDark, { solid }),
754
+ shapeFill(palette, barColor, isDark, { mode: fillMode }),
751
755
  palette.textOnFillLight,
752
756
  palette.textOnFillDark
753
757
  ),
@@ -2101,4 +2105,4 @@ export {
2101
2105
  renderGantt,
2102
2106
  buildTagLaneRowList
2103
2107
  };
2104
- //# sourceMappingURL=chunk-IUO34HKW.js.map
2108
+ //# sourceMappingURL=chunk-VIRANCNY.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-467TVMQL.js";
11
+ } from "./chunk-CMVZWP32.js";
12
12
  import {
13
13
  JOURNEY_MAP_REGISTRY,
14
14
  OPTION_NOCOLON_RE,
@@ -19,25 +19,28 @@ import {
19
19
  splitNameAndMeta,
20
20
  warnUnknownMetaKeys,
21
21
  withTagAliases
22
- } from "./chunk-LV4BETUU.js";
22
+ } from "./chunk-YJVA3QUU.js";
23
23
  import {
24
24
  resolveColorWithDiagnostic
25
- } from "./chunk-TLVIHFRO.js";
25
+ } from "./chunk-ZKPPI6BF.js";
26
26
  import {
27
27
  formatDgmoError,
28
28
  makeDgmoError,
29
29
  makeFail,
30
30
  suggest
31
- } from "./chunk-CXK4DZH3.js";
31
+ } from "./chunk-4W2PE66Q.js";
32
32
 
33
33
  // src/journey-map/parser.ts
34
34
  var PHASE_RE = /^\[(.+?)\]$/;
35
35
  var ANNOTATION_RE = /^(pain|opportunity|thought)\s*:\s*(.+)$/i;
36
36
  var KNOWN_OPTIONS = /* @__PURE__ */ new Set(["active-tag"]);
37
- var KNOWN_BOOLEANS = /* @__PURE__ */ new Set(["solid-fill", "no-title"]);
38
- var REMOVED_BOOLEANS = {
39
- "no-legend": '"no-legend" has been removed \u2014 remove tag groups to hide the legend.'
40
- };
37
+ var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
38
+ "fill-tint",
39
+ "fill-solid",
40
+ "fill-outline",
41
+ "no-title",
42
+ "no-legend"
43
+ ]);
41
44
  function parseJourneyMap(content, palette) {
42
45
  const options = {};
43
46
  const result = {
@@ -208,11 +211,6 @@ function parseJourneyMap(content, palette) {
208
211
  continue;
209
212
  }
210
213
  }
211
- const removedMsg = REMOVED_BOOLEANS[trimmed.toLowerCase()];
212
- if (removedMsg && !PHASE_RE.test(trimmed)) {
213
- warn(lineNumber, removedMsg);
214
- continue;
215
- }
216
214
  if (KNOWN_BOOLEANS.has(trimmed.toLowerCase()) && !PHASE_RE.test(trimmed)) {
217
215
  options[trimmed.toLowerCase()] = "on";
218
216
  continue;
@@ -406,4 +404,4 @@ function parseStepLine(trimmed, lineNumber, counter, aliasMap, warn, diagnostics
406
404
  export {
407
405
  parseJourneyMap
408
406
  };
409
- //# sourceMappingURL=chunk-4QZ43D7I.js.map
407
+ //# sourceMappingURL=chunk-VJHBSPGF.js.map