@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
@@ -7,16 +7,16 @@ import {
7
7
  tagAttrKey,
8
8
  validateTagGroupNames,
9
9
  validateTagValues
10
- } from "./chunk-467TVMQL.js";
10
+ } from "./chunk-CMVZWP32.js";
11
11
  import {
12
12
  tryCollectNote
13
- } from "./chunk-WQLMU7VG.js";
13
+ } from "./chunk-ZXUAPTCK.js";
14
14
  import {
15
15
  resolveNotes
16
- } from "./chunk-FMDSF3OV.js";
16
+ } from "./chunk-QZAW5SFH.js";
17
17
  import {
18
18
  parseInArrowLabel
19
- } from "./chunk-FFUN5D66.js";
19
+ } from "./chunk-WF64MW5G.js";
20
20
  import {
21
21
  normalizeName
22
22
  } from "./chunk-NOTA6TEI.js";
@@ -30,11 +30,11 @@ import {
30
30
  tryParseSharedOption,
31
31
  warnUnknownMetaKeys,
32
32
  withTagAliases
33
- } from "./chunk-LV4BETUU.js";
33
+ } from "./chunk-YJVA3QUU.js";
34
34
  import {
35
35
  makeDgmoError,
36
36
  suggest
37
- } from "./chunk-CXK4DZH3.js";
37
+ } from "./chunk-4W2PE66Q.js";
38
38
 
39
39
  // src/boxes-and-lines/parser.ts
40
40
  var MAX_GROUP_DEPTH = 2;
@@ -172,7 +172,7 @@ function parseBoxesAndLines(content, palette) {
172
172
  continue;
173
173
  }
174
174
  if (indent === 0) {
175
- const dirMatch = trimmed.match(/^direction\s+(TB|LR)$/i);
175
+ const dirMatch = trimmed.match(/^direction[-\s]+(TB|LR)$/i);
176
176
  if (dirMatch) {
177
177
  result.direction = dirMatch[1].toUpperCase();
178
178
  continue;
@@ -204,6 +204,10 @@ function parseBoxesAndLines(content, palette) {
204
204
  if (low !== void 0) result.boxMetricLowColor = low;
205
205
  continue;
206
206
  }
207
+ if (/^no-value$/i.test(trimmed)) {
208
+ result.showValues = false;
209
+ continue;
210
+ }
207
211
  if (/^show-values$/i.test(trimmed)) {
208
212
  result.showValues = true;
209
213
  continue;
@@ -829,4 +833,4 @@ export {
829
833
  looksLikeBoxesAndLines,
830
834
  parseBoxesAndLines
831
835
  };
832
- //# sourceMappingURL=chunk-BGP54HVR.js.map
836
+ //# sourceMappingURL=chunk-VKNCC2GX.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-WQLMU7VG.js";
3
+ } from "./chunk-ZXUAPTCK.js";
4
4
  import {
5
5
  resolveNotes
6
- } from "./chunk-FMDSF3OV.js";
6
+ } from "./chunk-QZAW5SFH.js";
7
7
  import {
8
8
  validateLabelCharacters
9
- } from "./chunk-FFUN5D66.js";
9
+ } from "./chunk-WF64MW5G.js";
10
10
  import {
11
11
  displayName,
12
12
  normalizeName
@@ -16,16 +16,16 @@ import {
16
16
  measureIndent,
17
17
  parseFirstLine,
18
18
  tryParseSharedOption
19
- } from "./chunk-LV4BETUU.js";
19
+ } from "./chunk-YJVA3QUU.js";
20
20
  import {
21
21
  resolveColorWithDiagnostic
22
- } from "./chunk-TLVIHFRO.js";
22
+ } from "./chunk-ZKPPI6BF.js";
23
23
  import {
24
24
  NAME_DIAGNOSTIC_CODES,
25
25
  formatDgmoError,
26
26
  makeDgmoError,
27
27
  nameMergedMessage
28
- } from "./chunk-CXK4DZH3.js";
28
+ } from "./chunk-4W2PE66Q.js";
29
29
 
30
30
  // src/class/parser.ts
31
31
  function classId(name) {
@@ -445,4 +445,4 @@ export {
445
445
  looksLikeClassDiagram,
446
446
  extractSymbols
447
447
  };
448
- //# sourceMappingURL=chunk-FC5I2KXV.js.map
448
+ //# sourceMappingURL=chunk-VRRDUYOK.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-BMR4CIEO.js";
7
7
  import {
8
8
  renderNodeCard
9
- } from "./chunk-OTOHI4JO.js";
9
+ } from "./chunk-H3HFC3SQ.js";
10
10
  import {
11
11
  CARD_RADIUS,
12
12
  HEADER_HEIGHT,
@@ -16,10 +16,10 @@ import {
16
16
  } from "./chunk-3CIOJ5YJ.js";
17
17
  import {
18
18
  formatDateLabel
19
- } from "./chunk-B63YB7X3.js";
19
+ } from "./chunk-XQ4KN6JQ.js";
20
20
  import {
21
21
  renderIntegratedLegend
22
- } from "./chunk-OU7HLO7I.js";
22
+ } from "./chunk-W5KMNC5U.js";
23
23
  import {
24
24
  TITLE_FONT_SIZE,
25
25
  TITLE_FONT_WEIGHT,
@@ -28,24 +28,24 @@ import {
28
28
  import {
29
29
  FONT_FAMILY
30
30
  } from "./chunk-6KFWC4CO.js";
31
- import {
32
- CHAR_WIDTH_RATIO,
33
- wrapTextToWidth
34
- } from "./chunk-WCT3NYCV.js";
35
31
  import {
36
32
  contrastText,
37
33
  getSeriesColors,
38
34
  mix,
39
35
  shapeFill,
40
36
  themeBaseBg
41
- } from "./chunk-P6T66CCZ.js";
37
+ } from "./chunk-JYDMBWRP.js";
38
+ import {
39
+ CHAR_WIDTH_RATIO,
40
+ wrapTextToWidth
41
+ } from "./chunk-4ASYQ347.js";
42
42
  import {
43
43
  resolveActiveTagGroup,
44
44
  resolveTagColor
45
- } from "./chunk-467TVMQL.js";
45
+ } from "./chunk-CMVZWP32.js";
46
46
  import {
47
47
  resolveColor
48
- } from "./chunk-TLVIHFRO.js";
48
+ } from "./chunk-ZKPPI6BF.js";
49
49
 
50
50
  // src/event-line/renderer.ts
51
51
  import * as d3Selection from "d3-selection";
@@ -163,7 +163,7 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
163
163
  const event = slot.event;
164
164
  const solid2 = eventColor(event);
165
165
  const cardFill2 = shapeFill(palette, solid2, isDark, {
166
- solid: parsed.options.solidFill
166
+ mode: parsed.options.fillMode
167
167
  });
168
168
  const titleColor2 = contrastText(
169
169
  cardFill2,
@@ -533,11 +533,11 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
533
533
  cardG.append("clipPath").attr("id", clipId).append("rect").attr("x", 0).attr("y", shelfTop).attr("width", CARD_W).attr("height", shelfH).attr("rx", SHELF_EDGE);
534
534
  cardG.append("rect").attr("x", 0).attr("y", shelfTop).attr("width", CARD_W).attr("height", shelfH).attr("clip-path", `url(#${clipId})`).attr(
535
535
  "fill",
536
- parsed.options.solidFill ? p.color : mix(p.color, themeBaseBg(palette, isDark), SHELF_TINT)
536
+ parsed.options.fillMode ? p.color : mix(p.color, themeBaseBg(palette, isDark), SHELF_TINT)
537
537
  );
538
538
  const edgeY = titleNearTop ? shelfTop : shelfTop + shelfH - SHELF_EDGE;
539
539
  cardG.append("rect").attr("x", 0).attr("y", edgeY).attr("width", CARD_W).attr("height", SHELF_EDGE).attr("clip-path", `url(#${clipId})`).attr("fill", p.color).attr("fill-opacity", p.future ? 0.4 : 1);
540
- const shelfText = parsed.options.solidFill ? contrastText(p.color, palette.textOnFillLight, palette.textOnFillDark) : p.color;
540
+ const shelfText = parsed.options.fillMode ? contrastText(p.color, palette.textOnFillLight, palette.textOnFillDark) : p.color;
541
541
  const titleMid = headBandTop + p.headerH / 2;
542
542
  const titleTop = titleMid - (p.titleLines.length - 1) * TITLE_LINE_H / 2;
543
543
  for (let ti = 0; ti < p.titleLines.length; ti++) {
@@ -549,7 +549,7 @@ function renderEventLine(container, parsed, palette, isDark, onClickItem, export
549
549
  (titleNearTop ? p.headerH : headBandTop - dateH) + DATE_SUBTITLE_FONT + 2
550
550
  ).attr(
551
551
  "fill",
552
- parsed.options.solidFill ? mix(shelfText, p.color, 25) : mix(palette.text, palette.bg, 55)
552
+ parsed.options.fillMode ? mix(shelfText, p.color, 25) : mix(palette.text, palette.bg, 55)
553
553
  ).attr("font-family", FONT_FAMILY).attr("font-size", DATE_SUBTITLE_FONT).attr("font-weight", 600).text(dateStr);
554
554
  }
555
555
  if (p.lines.length > 0) {
@@ -982,4 +982,4 @@ export {
982
982
  focusEventLine,
983
983
  renderEventLineForExport
984
984
  };
985
- //# sourceMappingURL=chunk-G3PF3S7P.js.map
985
+ //# sourceMappingURL=chunk-W2DINCHL.js.map
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  computeLegendLayout
3
- } from "./chunk-YAA6IID3.js";
3
+ } from "./chunk-774C2FF3.js";
4
4
  import {
5
5
  FONT_FAMILY
6
6
  } from "./chunk-6KFWC4CO.js";
7
+ import {
8
+ mix,
9
+ valueRampStops
10
+ } from "./chunk-JYDMBWRP.js";
7
11
  import {
8
12
  CONTROLS_ICON_PATH,
9
13
  LEGEND_DOT_R,
@@ -14,14 +18,10 @@ import {
14
18
  LEGEND_TOGGLE_DOT_R,
15
19
  LEGEND_TOGGLE_OFF_OPACITY,
16
20
  measureLegendText
17
- } from "./chunk-QOOUC2J5.js";
18
- import {
19
- mix,
20
- valueRampStops
21
- } from "./chunk-P6T66CCZ.js";
21
+ } from "./chunk-4RGZFA7H.js";
22
22
  import {
23
23
  tagAttrKey
24
- } from "./chunk-467TVMQL.js";
24
+ } from "./chunk-CMVZWP32.js";
25
25
 
26
26
  // src/utils/legend-d3.ts
27
27
  var LEGEND_TEXT_DY = "0.32em";
@@ -293,4 +293,4 @@ export {
293
293
  renderLegendD3,
294
294
  renderIntegratedLegend
295
295
  };
296
- //# sourceMappingURL=chunk-OU7HLO7I.js.map
296
+ //# sourceMappingURL=chunk-W5KMNC5U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  makeDgmoError
3
- } from "./chunk-CXK4DZH3.js";
3
+ } from "./chunk-4W2PE66Q.js";
4
4
 
5
5
  // src/utils/arrows.ts
6
6
  var ARROW_DIAGNOSTIC_CODES = {
@@ -94,4 +94,4 @@ export {
94
94
  parseInArrowLabel,
95
95
  parseArrow
96
96
  };
97
- //# sourceMappingURL=chunk-FFUN5D66.js.map
97
+ //# sourceMappingURL=chunk-WF64MW5G.js.map
@@ -1,17 +1,18 @@
1
1
  import {
2
+ activeTagGroupOf,
2
3
  buildHeatScale,
3
4
  buildLegend,
4
5
  compactNumber,
5
6
  formatPct,
6
7
  resolveCellColor,
7
8
  resolveColorMode
8
- } from "./chunk-NI3XQBPB.js";
9
+ } from "./chunk-UVDCHR4E.js";
9
10
  import {
10
11
  renderIntegratedLegend
11
- } from "./chunk-OU7HLO7I.js";
12
+ } from "./chunk-W5KMNC5U.js";
12
13
  import {
13
14
  getMaxLegendReservedHeight
14
- } from "./chunk-YAA6IID3.js";
15
+ } from "./chunk-774C2FF3.js";
15
16
  import {
16
17
  TITLE_FONT_SIZE,
17
18
  TITLE_FONT_WEIGHT,
@@ -20,20 +21,21 @@ import {
20
21
  import {
21
22
  FONT_FAMILY
22
23
  } from "./chunk-6KFWC4CO.js";
24
+ import {
25
+ contrastText,
26
+ getSeriesColors,
27
+ mix,
28
+ themeBaseBg
29
+ } from "./chunk-JYDMBWRP.js";
23
30
  import {
24
31
  LEGEND_GROUP_GAP
25
- } from "./chunk-QOOUC2J5.js";
32
+ } from "./chunk-4RGZFA7H.js";
26
33
  import {
27
34
  measureText
28
- } from "./chunk-WCT3NYCV.js";
29
- import {
30
- contrastText,
31
- getSeriesColors,
32
- mix
33
- } from "./chunk-P6T66CCZ.js";
35
+ } from "./chunk-4ASYQ347.js";
34
36
  import {
35
37
  tagAttrKey
36
- } from "./chunk-467TVMQL.js";
38
+ } from "./chunk-CMVZWP32.js";
37
39
 
38
40
  // src/treemap/renderer.ts
39
41
  import * as d3Selection from "d3-selection";
@@ -62,14 +64,31 @@ function toDatum(node) {
62
64
  children: node.children.map((c) => toDatum(c))
63
65
  };
64
66
  }
65
- function datumHeat(node) {
67
+ function collectHeatAggs(root) {
68
+ const aggs = /* @__PURE__ */ new Map();
69
+ root.eachBefore((node) => {
70
+ if (node.children) return;
71
+ const heat = node.data.heat;
72
+ if (heat === void 0) return;
73
+ let p = node;
74
+ while (p) {
75
+ const agg = aggs.get(p);
76
+ if (agg) {
77
+ agg.sum += heat;
78
+ agg.count += 1;
79
+ } else {
80
+ aggs.set(p, { sum: heat, count: 1 });
81
+ }
82
+ p = p.parent;
83
+ }
84
+ });
85
+ return aggs;
86
+ }
87
+ function datumHeat(node, heatAggs) {
66
88
  if (node.data.heat !== void 0) return node.data.heat;
67
- const xs = [];
68
- for (const l of node.leaves()) {
69
- if (l.data.heat !== void 0) xs.push(l.data.heat);
70
- }
71
- if (xs.length === 0) return void 0;
72
- return xs.reduce((a, b) => a + b, 0) / xs.length;
89
+ const agg = heatAggs.get(node);
90
+ if (agg === void 0) return void 0;
91
+ return agg.sum / agg.count;
73
92
  }
74
93
  function layoutTreemap(roots, opts) {
75
94
  const maxDepth = opts.maxDepth ?? Infinity;
@@ -85,6 +104,7 @@ function layoutTreemap(roots, opts) {
85
104
  d._topIndex = i;
86
105
  });
87
106
  });
107
+ const heatAggs = collectHeatAggs(hroot);
88
108
  const cells = [];
89
109
  for (const d of hroot.descendants()) {
90
110
  if (d.depth === 0) continue;
@@ -98,7 +118,7 @@ function layoutTreemap(roots, opts) {
98
118
  path.unshift(p.data.label);
99
119
  p = p.parent;
100
120
  }
101
- const heatVal = datumHeat(d);
121
+ const heatVal = datumHeat(d, heatAggs);
102
122
  cells.push({
103
123
  node: d.data.ref ?? null,
104
124
  label: d.data.label,
@@ -138,14 +158,13 @@ function renderTreemapForExport(container, parsed, palette, isDark, exportDims,
138
158
  }
139
159
  function renderTreemap(container, parsed, palette, isDark, exportDims, options = {}) {
140
160
  if (parsed.error || parsed.roots.length === 0) return;
141
- void isDark;
142
161
  d3Selection.select(container).selectAll(":not([data-d3-tooltip])").remove();
143
162
  const width = exportDims?.width ?? container.clientWidth;
144
163
  const height = exportDims?.height ?? container.clientHeight;
145
164
  if (width <= 0 || height <= 0) return;
146
165
  const mode = resolveColorMode(parsed, options.colorMode);
147
166
  const opts = parsed.options;
148
- const solid = opts.solidFill;
167
+ const fillMode = opts.fillMode;
149
168
  const exportMode = options.exportMode ?? false;
150
169
  const seriesColorsTop = getSeriesColors(palette);
151
170
  const showTitle = !!parsed.title;
@@ -181,7 +200,7 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
181
200
  const root = svg.append("g").attr("class", "dgmo-treemap-cells").attr("transform", `translate(${areaX},${areaY})`);
182
201
  const seriesColors = seriesColorsTop;
183
202
  const colorOffset = options.colorOffset ?? 0;
184
- const activeGroup = parsed.tagGroups.length > 0 ? parsed.tagGroups[0].name : null;
203
+ const activeGroup = activeTagGroupOf(parsed)?.name ?? null;
185
204
  const rootIndexByLabel = new Map(parsed.roots.map((r, i) => [r.label, i]));
186
205
  const colorCtx = {
187
206
  mode,
@@ -198,7 +217,7 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
198
217
  const h = Math.max(0, cell.y1 - cell.y0);
199
218
  if (w <= 0 || h <= 0) continue;
200
219
  const baseColor = resolveCellColor(cell, colorCtx);
201
- const fill = cell.isContainer ? baseColor : solid ? baseColor : mix(baseColor, palette.bg, LEAF_MUTE_PCT);
220
+ const fill = fillMode === "outline" ? themeBaseBg(palette, isDark) : cell.isContainer ? baseColor : fillMode === "solid" ? baseColor : mix(baseColor, palette.bg, LEAF_MUTE_PCT);
202
221
  const drillable = cell.isContainer || cell.isCollapsed;
203
222
  const g = root.append("g").attr("class", "dgmo-treemap-cell").attr("transform", `translate(${cell.x0},${cell.y0})`).attr("data-node-path", cell.path.join(" / "));
204
223
  if (cell.lineNumber !== void 0) {
@@ -213,16 +232,15 @@ function renderTreemap(container, parsed, palette, isDark, exportDims, options =
213
232
  const rect = g.append("rect").attr(
214
233
  "class",
215
234
  cell.isContainer ? "dgmo-treemap-rect branch" : "dgmo-treemap-rect"
216
- ).attr("width", w).attr("height", h).attr("rx", 2).attr("fill", fill).attr("fill-opacity", 1).attr("stroke", palette.bg).attr("stroke-width", cell.isContainer ? 1 : 0);
235
+ ).attr("width", w).attr("height", h).attr("rx", 2).attr("fill", fill).attr("fill-opacity", 1).attr("stroke", fillMode === "outline" ? baseColor : palette.bg).attr(
236
+ "stroke-width",
237
+ fillMode === "outline" ? 1 : cell.isContainer ? 1 : 0
238
+ );
217
239
  if (drillable && options.onClickItem && cell.lineNumber !== void 0) {
218
240
  const ln = cell.lineNumber;
219
241
  rect.style("cursor", "pointer").on("click", () => options.onClickItem(ln));
220
242
  }
221
- const ink = contrastText(
222
- fill,
223
- palette.textOnFillLight,
224
- palette.textOnFillDark
225
- );
243
+ const ink = fillMode === "outline" ? baseColor : contrastText(fill, palette.textOnFillLight, palette.textOnFillDark);
226
244
  if (cell.isContainer && headerH > 0 && w > 34 && h > headerH) {
227
245
  const valParts = [];
228
246
  if (!opts.noValues) valParts.push(compactNumber(cell.value));
@@ -381,4 +399,4 @@ export {
381
399
  renderTreemapForExport,
382
400
  renderTreemap
383
401
  };
384
- //# sourceMappingURL=chunk-X7EC3L2H.js.map
402
+ //# sourceMappingURL=chunk-X3RXGSCZ.js.map
@@ -10,7 +10,7 @@ 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
  normalizeName
16
16
  } from "./chunk-NOTA6TEI.js";
@@ -25,13 +25,13 @@ import {
25
25
  tryParseSharedOption,
26
26
  warnUnknownMetaKeys,
27
27
  withTagAliases
28
- } from "./chunk-LV4BETUU.js";
28
+ } from "./chunk-YJVA3QUU.js";
29
29
  import {
30
30
  formatDgmoError,
31
31
  makeDgmoError,
32
32
  makeFail,
33
33
  suggest
34
- } from "./chunk-CXK4DZH3.js";
34
+ } from "./chunk-4W2PE66Q.js";
35
35
 
36
36
  // src/sitemap/parser.ts
37
37
  var CONTAINER_RE = /^\[([^\]]+)\]\s*(.*)$/;
@@ -176,8 +176,9 @@ function parseSitemap(content, palette) {
176
176
  continue;
177
177
  }
178
178
  if (!contentStarted && !currentTagGroup && measureIndent(line) === 0 && !trimmed.includes("|") && !trimmed.includes("->") && !trimmed.includes(":")) {
179
- if (/^direction-tb$/i.test(trimmed)) {
180
- result.direction = "TB";
179
+ const dirBool = trimmed.match(/^direction-(lr|tb)$/i);
180
+ if (dirBool) {
181
+ result.direction = dirBool[1].toUpperCase();
181
182
  continue;
182
183
  }
183
184
  if (tryParseSharedOption(trimmed, options)) {
@@ -519,4 +520,4 @@ export {
519
520
  looksLikeSitemap,
520
521
  parseSitemap
521
522
  };
522
- //# sourceMappingURL=chunk-KFNWFNAA.js.map
523
+ //# sourceMappingURL=chunk-XEAQDIMF.js.map
@@ -9,10 +9,10 @@ import {
9
9
  } from "./chunk-YYVTBZZC.js";
10
10
  import {
11
11
  renderIntegratedLegend
12
- } from "./chunk-OU7HLO7I.js";
12
+ } from "./chunk-W5KMNC5U.js";
13
13
  import {
14
14
  getMaxLegendReservedHeight
15
- } from "./chunk-YAA6IID3.js";
15
+ } from "./chunk-774C2FF3.js";
16
16
  import {
17
17
  TITLE_FONT_SIZE,
18
18
  TITLE_FONT_WEIGHT
@@ -20,24 +20,29 @@ import {
20
20
  import {
21
21
  FONT_FAMILY
22
22
  } from "./chunk-6KFWC4CO.js";
23
- import {
24
- LEGEND_HEIGHT,
25
- measureLegendText
26
- } from "./chunk-QOOUC2J5.js";
27
- import {
28
- measureText
29
- } from "./chunk-WCT3NYCV.js";
30
23
  import {
31
24
  parseKanban
32
- } from "./chunk-IEDMFNU7.js";
25
+ } from "./chunk-FUKNRLIJ.js";
33
26
  import {
34
27
  contrastText,
35
28
  mix,
36
- shapeFill
37
- } from "./chunk-P6T66CCZ.js";
29
+ shapeFill,
30
+ themeBaseBg
31
+ } from "./chunk-JYDMBWRP.js";
32
+ import {
33
+ LEGEND_HEIGHT,
34
+ measureLegendText
35
+ } from "./chunk-4RGZFA7H.js";
36
+ import {
37
+ measureText
38
+ } from "./chunk-4ASYQ347.js";
38
39
  import {
39
40
  tagAttrKey
40
- } from "./chunk-467TVMQL.js";
41
+ } from "./chunk-CMVZWP32.js";
42
+ import {
43
+ fillModeFromOptions,
44
+ legendSuppressed
45
+ } from "./chunk-YJVA3QUU.js";
41
46
 
42
47
  // src/kanban/renderer.ts
43
48
  import * as d3Selection from "d3-selection";
@@ -277,7 +282,9 @@ function renderKanban(container, parsed, palette, isDark, options) {
277
282
  const collapsedLanes = options?.collapsedLanes;
278
283
  const collapsedColumns = options?.collapsedColumns ?? new Set(parsed.columns.filter((c) => c.collapsed).map((c) => c.id));
279
284
  const compactMeta = options?.compactMeta ?? false;
280
- const solid = parsed.options["solid-fill"] === "on";
285
+ const fillMode = fillModeFromOptions(parsed.options);
286
+ const baseBg = themeBaseBg(palette, isDark);
287
+ const wellStroke = mix(palette.border, baseBg, 20);
281
288
  const requestedSwimlane = options?.currentSwimlaneGroup ?? null;
282
289
  const swimlaneGroup = requestedSwimlane ? parsed.tagGroups.find(
283
290
  (g) => g.name.toLowerCase() === requestedSwimlane.toLowerCase()
@@ -351,7 +358,7 @@ function renderKanban(container, parsed, palette, isDark, options) {
351
358
  if (showTopTitle) {
352
359
  svg.append("text").attr("class", "chart-title").attr("data-line-number", parsed.titleLineNumber ?? 0).attr("x", sDiagramPadding).attr("y", sDiagramPadding + sTitleFontSize).attr("font-size", sTitleFontSize).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(parsed.title);
353
360
  }
354
- if (parsed.tagGroups.length > 0) {
361
+ if (parsed.tagGroups.length > 0 && !legendSuppressed(parsed.options)) {
355
362
  const titleTextWidth = showTopTitle ? measureLegendText(parsed.title, sTitleFontSize) + 16 : 0;
356
363
  const legendX = sDiagramPadding + titleTextWidth;
357
364
  const legendConfig = {
@@ -440,20 +447,26 @@ function renderKanban(container, parsed, palette, isDark, options) {
440
447
  const isColCollapsed = collapsedColumns?.has(col.id) ?? false;
441
448
  const g = svg.append("g").attr("class", "kanban-column").attr("data-column-id", col.id).attr("data-line-number", col.lineNumber);
442
449
  const thisColBg = defaultColBg;
443
- const thisColHeaderBg = col.color ? shapeFill(palette, col.color, isDark, { solid }) : defaultColHeaderBg;
450
+ const thisColHeaderBg = col.color ? shapeFill(palette, col.color, isDark, { mode: fillMode }) : defaultColHeaderBg;
444
451
  const onHeaderText = col.color ? contrastText(
445
452
  thisColHeaderBg,
446
453
  palette.textOnFillLight,
447
454
  palette.textOnFillDark
448
455
  ) : palette.text;
449
456
  if (isColCollapsed) {
450
- g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", sCollapsedColumnWidth).attr("height", colLayout.height).attr("rx", sColumnRadius).attr("fill", thisColBg);
457
+ g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", sCollapsedColumnWidth).attr("height", colLayout.height).attr("rx", sColumnRadius).attr("fill", fillMode === "outline" ? baseBg : thisColBg).call((sel) => {
458
+ if (fillMode === "outline")
459
+ sel.attr("stroke", wellStroke).attr("stroke-width", 1);
460
+ });
451
461
  g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", sCollapsedColumnWidth).attr("height", sColumnHeaderHeight).attr("rx", sColumnHeaderRadius).attr("fill", thisColHeaderBg);
452
462
  g.append("text").attr("x", colLayout.x + sCollapsedColumnWidth / 2).attr("y", colLayout.y + sColumnHeaderHeight / 2 + sWipFontSize / 2 - 1).attr("font-size", sWipFontSize).attr("font-weight", "bold").attr("fill", col.color ? onHeaderText : palette.textMuted).attr("text-anchor", "middle").text(String(col.cards.length));
453
463
  g.append("text").attr("x", colLayout.x + sCollapsedColumnWidth / 2).attr("y", colLayout.y + sColumnHeaderHeight + sColumnPadding).attr("font-size", sCardTitleFontSize).attr("font-weight", "bold").attr("fill", palette.text).attr("text-anchor", "middle").attr("writing-mode", "tb").text(col.name);
454
464
  continue;
455
465
  }
456
- g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", colLayout.width).attr("height", colLayout.height).attr("rx", sColumnRadius).attr("fill", thisColBg);
466
+ g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", colLayout.width).attr("height", colLayout.height).attr("rx", sColumnRadius).attr("fill", fillMode === "outline" ? baseBg : thisColBg).call((sel) => {
467
+ if (fillMode === "outline")
468
+ sel.attr("stroke", wellStroke).attr("stroke-width", 1);
469
+ });
457
470
  g.append("rect").attr("x", colLayout.x).attr("y", colLayout.y).attr("width", colLayout.width).attr("height", sColumnHeaderHeight).attr("rx", sColumnHeaderRadius).attr("fill", thisColHeaderBg);
458
471
  g.append("text").attr("x", colLayout.x + sColumnPadding).attr(
459
472
  "y",
@@ -484,7 +497,7 @@ function renderKanban(container, parsed, palette, isDark, options) {
484
497
  palette,
485
498
  resolvedColor ?? palette.primary,
486
499
  isDark,
487
- { solid }
500
+ { mode: fillMode }
488
501
  );
489
502
  const cardStroke = resolvedColor ?? palette.textMuted;
490
503
  const onCardText = contrastText(
@@ -511,7 +524,7 @@ function renderKanban(container, parsed, palette, isDark, options) {
511
524
  renderInlineText(titleEl, card.title, palette, sCardTitleFontSize);
512
525
  if (hasMeta) {
513
526
  const separatorY = cy + sCardHeaderHeight;
514
- cg.append("line").attr("x1", cx).attr("y1", separatorY).attr("x2", cx + cardLayout.width).attr("y2", separatorY).attr("stroke", solid ? onCardText : cardStroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
527
+ cg.append("line").attr("x1", cx).attr("y1", separatorY).attr("x2", cx + cardLayout.width).attr("y2", separatorY).attr("stroke", fillMode === "solid" ? onCardText : cardStroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
515
528
  let metaY = separatorY + sCardSeparatorGap + sCardMetaFontSize;
516
529
  for (const meta of tagMeta) {
517
530
  cg.append("text").attr("x", cx + sCardPaddingX).attr("y", metaY).attr("font-size", sCardMetaFontSize).attr("fill", onCardText).text(`${meta.label}: `);
@@ -732,7 +745,7 @@ function renderSwimlaneBoard(svg, parsed, baseLayout, swimlaneGroup, palette, is
732
745
  const isColCollapsed = collapsedColumns?.has(col.id) ?? false;
733
746
  const headerG = svg.append("g").attr("class", "kanban-column kanban-column-header").attr("data-column-id", col.id).attr("data-line-number", col.lineNumber);
734
747
  const colHeaderBg = col.color ? shapeFill(palette, col.color, isDark, {
735
- solid: parsed.options["solid-fill"] === "on"
748
+ mode: fillModeFromOptions(parsed.options)
736
749
  }) : defaultColHeaderBg;
737
750
  headerG.append("rect").attr("x", colInfo.x).attr("y", grid.startY).attr("width", colInfo.width).attr("height", sColumnHeaderHeight).attr("rx", sColumnHeaderRadius).attr("fill", colHeaderBg);
738
751
  if (isColCollapsed) {
@@ -808,7 +821,7 @@ function renderSwimlaneBoard(svg, parsed, baseLayout, swimlaneGroup, palette, is
808
821
  palette,
809
822
  isDark,
810
823
  hiddenMetaGroups,
811
- parsed.options["solid-fill"] === "on",
824
+ fillModeFromOptions(parsed.options),
812
825
  sCardRadius,
813
826
  sCardPaddingX,
814
827
  sCardPaddingY,
@@ -824,7 +837,7 @@ function renderSwimlaneBoard(svg, parsed, baseLayout, swimlaneGroup, palette, is
824
837
  }
825
838
  }
826
839
  }
827
- function renderSwimlaneCard(parent, cardLayout, tagGroups, activeTagGroup, palette, isDark, hiddenMetaGroups, solid, sCardRadius = CARD_RADIUS, sCardPaddingX = CARD_PADDING_X, sCardPaddingY = CARD_PADDING_Y, sCardStrokeWidth = CARD_STROKE_WIDTH, sCardTitleFontSize = CARD_TITLE_FONT_SIZE, sCardMetaFontSize = CARD_META_FONT_SIZE, sCardHeaderHeight = CARD_HEADER_HEIGHT, sCardSeparatorGap = CARD_SEPARATOR_GAP, sCardMetaLineHeight = CARD_META_LINE_HEIGHT) {
840
+ function renderSwimlaneCard(parent, cardLayout, tagGroups, activeTagGroup, palette, isDark, hiddenMetaGroups, fillMode, sCardRadius = CARD_RADIUS, sCardPaddingX = CARD_PADDING_X, sCardPaddingY = CARD_PADDING_Y, sCardStrokeWidth = CARD_STROKE_WIDTH, sCardTitleFontSize = CARD_TITLE_FONT_SIZE, sCardMetaFontSize = CARD_META_FONT_SIZE, sCardHeaderHeight = CARD_HEADER_HEIGHT, sCardSeparatorGap = CARD_SEPARATOR_GAP, sCardMetaLineHeight = CARD_META_LINE_HEIGHT) {
828
841
  const card = cardLayout.card;
829
842
  const resolvedColor = resolveCardTagColor(card, tagGroups, activeTagGroup);
830
843
  const tagMeta = resolveCardTagMeta(card, tagGroups, hiddenMetaGroups);
@@ -833,9 +846,7 @@ function renderSwimlaneCard(parent, cardLayout, tagGroups, activeTagGroup, palet
833
846
  palette,
834
847
  resolvedColor ?? palette.primary,
835
848
  isDark,
836
- {
837
- ...solid !== void 0 && { solid }
838
- }
849
+ { mode: fillMode }
839
850
  );
840
851
  const cardStroke = resolvedColor ?? palette.textMuted;
841
852
  const onCardText = contrastText(
@@ -882,4 +893,4 @@ export {
882
893
  renderKanban,
883
894
  renderKanbanForExport
884
895
  };
885
- //# sourceMappingURL=chunk-AXW3M6OQ.js.map
896
+ //# sourceMappingURL=chunk-XG4NWFPY.js.map