@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
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  analyzePert
3
- } from "./chunk-J76PIKAT.js";
3
+ } from "./chunk-HO3RCNF6.js";
4
4
  import {
5
5
  computeNodeSizing,
6
6
  layoutPert
7
- } from "./chunk-GU46PPT3.js";
7
+ } from "./chunk-QXGACPS2.js";
8
8
  import {
9
9
  COLLAPSE_BAR_HEIGHT,
10
10
  CONTAINER_HEADER_HEIGHT,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-YYVTBZZC.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-OU7HLO7I.js";
21
+ } from "./chunk-W5KMNC5U.js";
22
22
  import {
23
23
  CAPTION_BOX_PADDING_X,
24
24
  CAPTION_BOX_PADDING_Y,
@@ -33,34 +33,34 @@ import {
33
33
  import {
34
34
  FONT_FAMILY
35
35
  } from "./chunk-6KFWC4CO.js";
36
- import {
37
- LEGEND_HEIGHT
38
- } from "./chunk-QOOUC2J5.js";
39
- import {
40
- measureText,
41
- truncateText,
42
- wrapTextToWidth
43
- } from "./chunk-WCT3NYCV.js";
44
36
  import {
45
37
  parsePert
46
- } from "./chunk-5PDTIBLV.js";
38
+ } from "./chunk-P3H7QVDH.js";
47
39
  import {
48
40
  addCalendarDays,
49
41
  formatDuration,
50
42
  formatScheduleValue,
51
43
  formatSlackValue,
52
44
  formatSprintCell
53
- } from "./chunk-7L4UJOY6.js";
45
+ } from "./chunk-3TYUXC7D.js";
54
46
  import {
55
47
  contrastText,
56
48
  mix,
57
49
  shapeFill,
58
50
  themeBaseBg
59
- } from "./chunk-P6T66CCZ.js";
51
+ } from "./chunk-JYDMBWRP.js";
52
+ import {
53
+ LEGEND_HEIGHT
54
+ } from "./chunk-4RGZFA7H.js";
55
+ import {
56
+ measureText,
57
+ truncateText,
58
+ wrapTextToWidth
59
+ } from "./chunk-4ASYQ347.js";
60
60
  import {
61
61
  resolveActiveTagGroup,
62
62
  resolveTagColor
63
- } from "./chunk-467TVMQL.js";
63
+ } from "./chunk-CMVZWP32.js";
64
64
 
65
65
  // src/pert/renderer.ts
66
66
  import * as d3Selection from "d3-selection";
@@ -185,7 +185,7 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
185
185
  resolved.options.activeTag,
186
186
  options.activeTagOverride
187
187
  );
188
- const showTagLegend = showLegend && resolved.tagGroups.length > 0;
188
+ const showTagLegend = showLegend && !resolved.options.noLegend && resolved.tagGroups.length > 0;
189
189
  const legendBlockHeight = showTagLegend ? LEGEND_TOP_GAP + LEGEND_PILL_HEIGHT + LEGEND_BOTTOM_GAP : 0;
190
190
  const naturalChartWidth = layout.width + DIAGRAM_PADDING * 2;
191
191
  const minAnalysisRowW = analysisLayer.analysisHasContent ? analysisLayer.minContentWidth + 2 * DIAGRAM_PADDING : 0;
@@ -506,7 +506,10 @@ function paintAnalysisRowMode(svg, resolved, palette, isDark, state, captionBull
506
506
  isDark
507
507
  };
508
508
  if (w.kind === "tornado") {
509
- renderTornadoBlock(svg, state.tornadoRows, args);
509
+ renderTornadoBlock(svg, state.tornadoRows, {
510
+ ...args,
511
+ fillMode: resolved.options.fillMode
512
+ });
510
513
  } else {
511
514
  const scurveTitle = !state.summaryRendered && captionBullets.length > 0 ? (
512
515
  // In-bounds by length check.
@@ -625,7 +628,10 @@ function paintAnalysisStackMode(svg, resolved, palette, isDark, state, captionBu
625
628
  };
626
629
  switch (item.kind) {
627
630
  case "tornado":
628
- renderTornadoBlock(svg, state.tornadoRows, args);
631
+ renderTornadoBlock(svg, state.tornadoRows, {
632
+ ...args,
633
+ fillMode: resolved.options.fillMode
634
+ });
629
635
  break;
630
636
  case "scurve": {
631
637
  const scurveTitle = !state.summaryRendered && captionBullets.length > 0 ? (
@@ -731,7 +737,7 @@ function renderGroups(root, resolved, layout, palette, isDark, collapsedSet, siz
731
737
  if (layout.groups.length === 0) return;
732
738
  const layer = root.append("g").attr("class", "pert-groups");
733
739
  const unit = resolved.options.timeUnit;
734
- const solid = resolved.options.solidFill === true;
740
+ const fillMode = resolved.options.fillMode;
735
741
  const containerFill = mix(palette.surface, palette.bg, 40);
736
742
  const containerStroke = palette.textMuted;
737
743
  const mcOn = resolved.monteCarloResult !== null;
@@ -784,7 +790,9 @@ function renderGroups(root, resolved, layout, palette, isDark, collapsedSet, siz
784
790
  "?"
785
791
  );
786
792
  const cardBaseColor = bandColor(memberBand, palette, palette.primary);
787
- const cardFill = shapeFill(palette, cardBaseColor, isDark, { solid });
793
+ const cardFill = shapeFill(palette, cardBaseColor, isDark, {
794
+ mode: fillMode
795
+ });
788
796
  const cardLabelColor = contrastText(
789
797
  cardFill,
790
798
  palette.textOnFillLight,
@@ -912,7 +920,7 @@ function renderNodes(root, _defs, resolved, layout, palette, isDark, sizing, onC
912
920
  const unit = resolved.options.timeUnit;
913
921
  const sprintMode = resolved.options.sprintMode;
914
922
  const sprintNumber = resolved.options.sprintNumber ?? 1;
915
- const solid = resolved.options.solidFill === true;
923
+ const fillMode = resolved.options.fillMode;
916
924
  const activeTagGroup = resolveActiveTagGroup(
917
925
  resolved.tagGroups,
918
926
  resolved.options.activeTag,
@@ -967,7 +975,7 @@ function renderNodes(root, _defs, resolved, layout, palette, isDark, sizing, onC
967
975
  );
968
976
  }
969
977
  const baseColor = bandColor(band, palette, palette.primary);
970
- const fill = shapeFill(palette, baseColor, isDark, { solid });
978
+ const fill = shapeFill(palette, baseColor, isDark, { mode: fillMode });
971
979
  const labelColor = contrastText(
972
980
  fill,
973
981
  palette.textOnFillLight,
@@ -979,7 +987,7 @@ function renderNodes(root, _defs, resolved, layout, palette, isDark, sizing, onC
979
987
  activeTagGroup
980
988
  );
981
989
  const hasTagColor = tagColor !== void 0 && tagColor !== "#999999";
982
- const tagBandFill = hasTagColor ? shapeFill(palette, tagColor, isDark, { solid }) : void 0;
990
+ const tagBandFill = hasTagColor ? shapeFill(palette, tagColor, isDark, { mode: fillMode }) : void 0;
983
991
  const tagLabelColor = hasTagColor ? contrastText(
984
992
  tagBandFill,
985
993
  palette.textOnFillLight,
@@ -1435,7 +1443,7 @@ function tornadoBoxHeightFor(rows) {
1435
1443
  return rows.length * TORNADO_ROW_HEIGHT + 2 * CAPTION_BOX_PADDING_Y + CAPTION_HEADER_BAND_HEIGHT;
1436
1444
  }
1437
1445
  function renderTornadoBlock(svg, rows, args) {
1438
- const { x, y, width, height, palette, isDark } = args;
1446
+ const { x, y, width, height, palette, isDark, fillMode } = args;
1439
1447
  const { fill, stroke: chromeStroke } = analysisBlockChrome(palette, isDark);
1440
1448
  const labelColor = contrastText(
1441
1449
  fill,
@@ -1478,7 +1486,7 @@ function renderTornadoBlock(svg, rows, args) {
1478
1486
  const rowY = firstRowY + i * TORNADO_ROW_HEIGHT;
1479
1487
  const labelY = rowY + TORNADO_ROW_HEIGHT / 2 + TORNADO_BAR_FONT_SIZE / 2 - 2;
1480
1488
  const barColor = bandColor(row.band, palette, palette.primary);
1481
- const barFill = shapeFill(palette, barColor, isDark);
1489
+ const barFill = fillMode === "outline" ? shapeFill(palette, barColor, isDark, { mode: "outline" }) : shapeFill(palette, barColor, isDark);
1482
1490
  const lowW = row.lowSwing * pixelsPerUnit;
1483
1491
  const highW = row.highSwing * pixelsPerUnit;
1484
1492
  const rowG = block.append("g").attr("class", "pert-tornado-row").attr("data-activity-id", row.id).attr("data-tornado-swing", String(row.lowSwing + row.highSwing));
@@ -1815,4 +1823,4 @@ export {
1815
1823
  measurePertAnalysisBlock,
1816
1824
  renderPertAnalysisBlock
1817
1825
  };
1818
- //# sourceMappingURL=chunk-FTBZV6NE.js.map
1826
+ //# sourceMappingURL=chunk-PYO4TJJ3.js.map
@@ -1,20 +1,23 @@
1
1
  import {
2
2
  collectIndentedValues,
3
3
  extractColor,
4
+ fillModeFromToken,
4
5
  measureIndent,
5
6
  normalizeNumericToken,
6
7
  parseFirstLine,
7
8
  parseSeriesNames
8
- } from "./chunk-LV4BETUU.js";
9
+ } from "./chunk-YJVA3QUU.js";
9
10
  import {
10
11
  RECOGNIZED_COLOR_NAMES,
11
12
  resolveColorWithDiagnostic
12
- } from "./chunk-TLVIHFRO.js";
13
+ } from "./chunk-ZKPPI6BF.js";
13
14
  import {
15
+ TITLE_DIRECTIVE_DX,
16
+ emit,
14
17
  formatDgmoError,
15
18
  makeDgmoError,
16
19
  suggest
17
- } from "./chunk-CXK4DZH3.js";
20
+ } from "./chunk-4W2PE66Q.js";
18
21
 
19
22
  // src/chart.ts
20
23
  var VALID_TYPES = /* @__PURE__ */ new Set([
@@ -43,8 +46,11 @@ var KNOWN_OPTIONS = /* @__PURE__ */ new Set([
43
46
  var DEFAULT_HOLE = 0.6;
44
47
  var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
45
48
  "orientation-horizontal",
46
- "solid-fill",
49
+ "fill-tint",
50
+ "fill-solid",
51
+ "fill-outline",
47
52
  "no-title",
53
+ "no-legend",
48
54
  "no-auto-y",
49
55
  "fill",
50
56
  "hole"
@@ -173,10 +179,14 @@ function parseChart(content, palette) {
173
179
  if (KNOWN_BOOLEANS.has(firstToken) && spaceIdx < 0) {
174
180
  if (firstToken === "orientation-horizontal") {
175
181
  result.orientation = "horizontal";
176
- } else if (firstToken === "solid-fill") {
177
- result.solidFill = true;
182
+ } else if (fillModeFromToken(firstToken) !== null) {
183
+ const fm = fillModeFromToken(firstToken);
184
+ if (fm === "tint") delete result.fillMode;
185
+ else result.fillMode = fm;
178
186
  } else if (firstToken === "no-title") {
179
187
  result.noTitle = true;
188
+ } else if (firstToken === "no-legend") {
189
+ result.noLegend = true;
180
190
  } else if (firstToken === "no-auto-y") {
181
191
  result.noAutoY = true;
182
192
  } else if (firstToken === "fill") {
@@ -202,8 +212,7 @@ function parseChart(content, palette) {
202
212
  continue;
203
213
  }
204
214
  if (firstToken === "title") {
205
- result.title = value;
206
- result.titleLineNumber = lineNumber;
215
+ result.diagnostics.push(emit(TITLE_DIRECTIVE_DX, lineNumber));
207
216
  continue;
208
217
  }
209
218
  if (firstToken === "x-label") {
@@ -708,7 +717,7 @@ function parseExtendedChartFull(content, palette) {
708
717
  const spaceIdx2 = trimmed.indexOf(" ");
709
718
  const lastTok = trimmed.substring(trimmed.lastIndexOf(" ") + 1);
710
719
  const hasNumericSuffix = spaceIdx2 >= 0 && !isNaN(parseFloat(normalizeNumericToken(lastTok) ?? lastTok));
711
- const isBareKeywordOption = spaceIdx2 < 0 && /^(solid-fill|no-name|no-value|no-percent|shade|no-title)$/i.test(
720
+ const isBareKeywordOption = spaceIdx2 < 0 && /^(fill-tint|fill-solid|fill-outline|no-name|no-value|no-percent|shade|no-title)$/i.test(
712
721
  trimmed
713
722
  );
714
723
  const isLayoutDirective = spaceIdx2 >= 0 && trimmed.substring(0, spaceIdx2).toLowerCase() === "layout";
@@ -752,8 +761,7 @@ function parseExtendedChartFull(content, palette) {
752
761
  continue;
753
762
  }
754
763
  if (firstToken === "title") {
755
- result.title = value;
756
- result.titleLineNumber = lineNumber;
764
+ result.diagnostics.push(emit(TITLE_DIRECTIVE_DX, lineNumber));
757
765
  continue;
758
766
  }
759
767
  if (firstToken === "series") {
@@ -839,14 +847,20 @@ function parseExtendedChartFull(content, palette) {
839
847
  result.shade = true;
840
848
  continue;
841
849
  }
842
- if (firstToken === "solid-fill") {
843
- result.solidFill = true;
850
+ const fillFamily = fillModeFromToken(firstToken);
851
+ if (fillFamily !== null && spaceIdx < 0) {
852
+ if (fillFamily === "tint") delete result.fillMode;
853
+ else result.fillMode = fillFamily;
844
854
  continue;
845
855
  }
846
856
  if (firstToken === "no-title" && spaceIdx < 0) {
847
857
  result.noTitle = true;
848
858
  continue;
849
859
  }
860
+ if (firstToken === "no-legend" && spaceIdx < 0) {
861
+ result.noLegend = true;
862
+ continue;
863
+ }
850
864
  if (firstToken.startsWith("no-") && spaceIdx < 0) {
851
865
  continue;
852
866
  }
@@ -1057,4 +1071,4 @@ export {
1057
1071
  getSimpleChartLegendGroups,
1058
1072
  getExtendedChartLegendGroups
1059
1073
  };
1060
- //# sourceMappingURL=chunk-QZPEGJOM.js.map
1074
+ //# sourceMappingURL=chunk-Q7AH665U.js.map
@@ -4,7 +4,7 @@ import {
4
4
  layoutC4Containers,
5
5
  layoutC4Context,
6
6
  layoutC4Deployment
7
- } from "./chunk-NEQ6GJXB.js";
7
+ } from "./chunk-LQHVDZYC.js";
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-3CIOJ5YJ.js";
18
18
  import {
19
19
  renderIntegratedLegend
20
- } from "./chunk-OU7HLO7I.js";
20
+ } from "./chunk-W5KMNC5U.js";
21
21
  import {
22
22
  TITLE_FONT_SIZE,
23
23
  TITLE_FONT_WEIGHT
@@ -25,16 +25,9 @@ import {
25
25
  import {
26
26
  FONT_FAMILY
27
27
  } from "./chunk-6KFWC4CO.js";
28
- import {
29
- LEGEND_HEIGHT
30
- } from "./chunk-QOOUC2J5.js";
31
- import {
32
- measureText,
33
- wrapTextToWidth
34
- } from "./chunk-WCT3NYCV.js";
35
28
  import {
36
29
  parseC4
37
- } from "./chunk-3LV2NCB6.js";
30
+ } from "./chunk-PKNNHU7H.js";
38
31
  import {
39
32
  preprocessDescriptionLine
40
33
  } from "./chunk-IYULMRBE.js";
@@ -42,10 +35,20 @@ import {
42
35
  contrastText,
43
36
  mix,
44
37
  shapeFill
45
- } from "./chunk-P6T66CCZ.js";
38
+ } from "./chunk-JYDMBWRP.js";
39
+ import {
40
+ LEGEND_HEIGHT
41
+ } from "./chunk-4RGZFA7H.js";
42
+ import {
43
+ measureText,
44
+ wrapTextToWidth
45
+ } from "./chunk-4ASYQ347.js";
46
46
  import {
47
47
  tagAttrKey
48
- } from "./chunk-467TVMQL.js";
48
+ } from "./chunk-CMVZWP32.js";
49
+ import {
50
+ fillModeFromOptions
51
+ } from "./chunk-YJVA3QUU.js";
49
52
 
50
53
  // src/c4/renderer.ts
51
54
  import * as d3Selection from "d3-selection";
@@ -87,11 +90,9 @@ function typeColor(type, palette, nodeColor) {
87
90
  return palette.colors.teal;
88
91
  }
89
92
  }
90
- function nodeFill(palette, isDark, type, nodeColor, solid) {
93
+ function nodeFill(palette, isDark, type, nodeColor, fillMode) {
91
94
  const color = typeColor(type, palette, nodeColor);
92
- return shapeFill(palette, color, isDark, {
93
- ...solid !== void 0 && { solid }
94
- });
95
+ return shapeFill(palette, color, isDark, { mode: fillMode });
95
96
  }
96
97
  function nodeStroke(palette, type, nodeColor) {
97
98
  return typeColor(type, palette, nodeColor);
@@ -229,8 +230,8 @@ function renderC4Context(container, parsed, layout, palette, isDark, onClickItem
229
230
  }
230
231
  const w = node.width;
231
232
  const h = node.height;
232
- const solid = parsed.options["solid-fill"] === "on";
233
- const fill = nodeFill(palette, isDark, node.type, node.color, solid);
233
+ const fillMode = fillModeFromOptions(parsed.options);
234
+ const fill = nodeFill(palette, isDark, node.type, node.color, fillMode);
234
235
  const stroke = nodeStroke(palette, node.type, node.color);
235
236
  const onFillText = contrastText(
236
237
  fill,
@@ -259,7 +260,7 @@ function renderC4Context(container, parsed, layout, palette, isDark, onClickItem
259
260
  nodeG.append("text").attr("x", 0).attr("y", yPos + NAME_FONT_SIZE / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", onFillText).attr("font-size", NAME_FONT_SIZE).attr("font-weight", "bold").text(node.name);
260
261
  }
261
262
  yPos += NAME_HEIGHT;
262
- nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", solid ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
263
+ nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", fillMode === "solid" ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
263
264
  yPos += DIVIDER_GAP;
264
265
  if (node.description) {
265
266
  const contentWidth = w - CARD_H_PAD * 2;
@@ -282,7 +283,7 @@ function renderC4Context(container, parsed, layout, palette, isDark, onClickItem
282
283
  if (node.drillable) {
283
284
  const clipId = `clip-drill-${node.id.replace(/\s+/g, "-")}`;
284
285
  nodeG.append("clipPath").attr("id", clipId).append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", CARD_RADIUS);
285
- nodeG.append("rect").attr("x", -w / 2).attr("y", h / 2 - DRILL_BAR_HEIGHT).attr("width", w).attr("height", DRILL_BAR_HEIGHT).attr("fill", solid ? onFillText : stroke).attr("clip-path", `url(#${clipId})`).attr("class", "c4-drill-bar");
286
+ nodeG.append("rect").attr("x", -w / 2).attr("y", h / 2 - DRILL_BAR_HEIGHT).attr("width", w).attr("height", DRILL_BAR_HEIGHT).attr("fill", fillMode === "solid" ? onFillText : stroke).attr("clip-path", `url(#${clipId})`).attr("class", "c4-drill-bar");
286
287
  }
287
288
  }
288
289
  if (hasLegend) {
@@ -791,8 +792,8 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
791
792
  }
792
793
  const w = node.width;
793
794
  const h = node.height;
794
- const solid = parsed.options["solid-fill"] === "on";
795
- const fill = nodeFill(palette, isDark, node.type, node.color, solid);
795
+ const fillMode = fillModeFromOptions(parsed.options);
796
+ const fill = nodeFill(palette, isDark, node.type, node.color, fillMode);
796
797
  const stroke = nodeStroke(palette, node.type, node.color);
797
798
  const onFillText = contrastText(
798
799
  fill,
@@ -860,7 +861,7 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
860
861
  }
861
862
  const metaEntries = collectCardMetadata(node.metadata);
862
863
  if (metaEntries.length > 0) {
863
- nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", solid ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
864
+ nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", fillMode === "solid" ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
864
865
  yPos += DIVIDER_GAP;
865
866
  const maxKeyWidth = Math.max(
866
867
  ...metaEntries.map((e) => measureText(`${e.key}: `, META_FONT_SIZE))
@@ -873,7 +874,7 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
873
874
  }
874
875
  }
875
876
  } else {
876
- nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", solid ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
877
+ nodeG.append("line").attr("x1", -w / 2 + CARD_H_PAD / 2).attr("y1", yPos).attr("x2", w / 2 - CARD_H_PAD / 2).attr("y2", yPos).attr("stroke", fillMode === "solid" ? onFillText : stroke).attr("stroke-width", 0.5).attr("stroke-opacity", 0.4);
877
878
  yPos += DIVIDER_GAP;
878
879
  if (node.description) {
879
880
  const contentWidth = w - CARD_H_PAD * 2;
@@ -897,7 +898,7 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
897
898
  if (node.drillable) {
898
899
  const clipId = `clip-drill-${node.id.replace(/\s+/g, "-")}`;
899
900
  nodeG.append("clipPath").attr("id", clipId).append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", CARD_RADIUS);
900
- nodeG.append("rect").attr("x", -w / 2).attr("y", h / 2 - DRILL_BAR_HEIGHT).attr("width", w).attr("height", DRILL_BAR_HEIGHT).attr("fill", solid ? onFillText : stroke).attr("clip-path", `url(#${clipId})`).attr("class", "c4-drill-bar");
901
+ nodeG.append("rect").attr("x", -w / 2).attr("y", h / 2 - DRILL_BAR_HEIGHT).attr("width", w).attr("height", DRILL_BAR_HEIGHT).attr("fill", fillMode === "solid" ? onFillText : stroke).attr("clip-path", `url(#${clipId})`).attr("class", "c4-drill-bar");
901
902
  }
902
903
  }
903
904
  if (hasLegend) {
@@ -1035,4 +1036,4 @@ export {
1035
1036
  renderC4Deployment,
1036
1037
  renderC4DeploymentForExport
1037
1038
  };
1038
- //# sourceMappingURL=chunk-QHI5XVUJ.js.map
1039
+ //# sourceMappingURL=chunk-QAALSCKI.js.map
@@ -1,26 +1,27 @@
1
1
  import {
2
2
  renderIntegratedLegend
3
- } from "./chunk-OU7HLO7I.js";
3
+ } from "./chunk-W5KMNC5U.js";
4
+ import {
5
+ FONT_FAMILY
6
+ } from "./chunk-6KFWC4CO.js";
4
7
  import {
5
8
  getFigure,
6
9
  getPartGeom,
7
10
  resolvePartKey
8
11
  } from "./chunk-BDXC7MDK.js";
9
- import {
10
- FONT_FAMILY
11
- } from "./chunk-6KFWC4CO.js";
12
12
  import {
13
13
  getSeriesColors,
14
- mix
15
- } from "./chunk-P6T66CCZ.js";
14
+ mix,
15
+ themeBaseBg
16
+ } from "./chunk-JYDMBWRP.js";
16
17
  import {
17
18
  resolveActiveTagGroup,
18
19
  resolveTagColor,
19
20
  tagAttrKey
20
- } from "./chunk-467TVMQL.js";
21
+ } from "./chunk-CMVZWP32.js";
21
22
  import {
22
23
  resolveColor
23
- } from "./chunk-TLVIHFRO.js";
24
+ } from "./chunk-ZKPPI6BF.js";
24
25
 
25
26
  // src/body/renderer.ts
26
27
  import * as d3Selection from "d3-selection";
@@ -51,7 +52,7 @@ function sideCenter(centers, side, view) {
51
52
  (best, c) => wantScreenRight ? c.x > best.x ? c : best : c.x < best.x ? c : best
52
53
  );
53
54
  }
54
- function renderFigureBody(fig, view, parts, partColor, emphKey, form, palette, defs) {
55
+ function renderFigureBody(fig, view, parts, partColor, emphKey, form, palette, isDark, fillMode, defs) {
55
56
  const [vx, vy, vw, vh] = fig.viewBox.split(" ").map(Number);
56
57
  const muscleFill = mix(palette.bg, palette.border, 0.7);
57
58
  const seam = palette.bg;
@@ -99,7 +100,16 @@ function renderFigureBody(fig, view, parts, partColor, emphKey, form, palette, d
99
100
  );
100
101
  if (sidePaths.length) paths = sidePaths;
101
102
  }
102
- if (form === "skin") {
103
+ if (fillMode === "solid") {
104
+ for (const d of paths) {
105
+ out += `<path${dataLine} d="${d}" fill="${color}" stroke="${color}" stroke-width="1.5"/>`;
106
+ }
107
+ } else if (fillMode === "outline") {
108
+ const baseBg = themeBaseBg(palette, isDark);
109
+ for (const d of paths) {
110
+ out += `<path${dataLine} d="${d}" fill="${baseBg}" stroke="${color}" stroke-width="2.5"/>`;
111
+ }
112
+ } else if (form === "skin") {
103
113
  for (const d of paths) {
104
114
  out += `<path${dataLine} d="${d}" fill="${color}" fill-opacity="0.5" stroke="${color}" stroke-width="1.5"/>`;
105
115
  }
@@ -186,6 +196,8 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
186
196
  emphKey,
187
197
  parsed.options.form,
188
198
  palette,
199
+ _isDark,
200
+ parsed.options.fillMode,
189
201
  defs
190
202
  )
191
203
  );
@@ -322,4 +334,4 @@ export {
322
334
  renderBody,
323
335
  renderBodyForExport
324
336
  };
325
- //# sourceMappingURL=chunk-GD6L76WD.js.map
337
+ //# sourceMappingURL=chunk-QI3BOLQB.js.map