@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,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-WCT3NYCV.js";
3
+ } from "./chunk-4ASYQ347.js";
4
4
 
5
5
  // src/utils/card.ts
6
6
  function renderNodeCard(container, opts) {
@@ -44,4 +44,4 @@ export {
44
44
  renderNodeCard,
45
45
  renderCollapseBar
46
46
  };
47
- //# sourceMappingURL=chunk-OTOHI4JO.js.map
47
+ //# sourceMappingURL=chunk-H3HFC3SQ.js.map
@@ -11,15 +11,15 @@ import {
11
11
  LEGEND_PILL_FONT_SIZE,
12
12
  LEGEND_PILL_PAD,
13
13
  measureLegendText
14
- } from "./chunk-QOOUC2J5.js";
14
+ } from "./chunk-4RGZFA7H.js";
15
15
  import {
16
16
  measureText
17
- } from "./chunk-WCT3NYCV.js";
17
+ } from "./chunk-4ASYQ347.js";
18
18
  import {
19
19
  injectDefaultTagMetadata,
20
20
  resolveTagColor,
21
21
  tagAttrKey
22
- } from "./chunk-467TVMQL.js";
22
+ } from "./chunk-CMVZWP32.js";
23
23
 
24
24
  // src/sitemap/layout.ts
25
25
  import dagre from "@dagrejs/dagre";
@@ -617,4 +617,4 @@ function layoutSitemap(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, e
617
617
  export {
618
618
  layoutSitemap
619
619
  };
620
- //# sourceMappingURL=chunk-JSSX2SX4.js.map
620
+ //# sourceMappingURL=chunk-HE5J53SZ.js.map
@@ -5,11 +5,11 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-LV4BETUU.js";
8
+ } from "./chunk-YJVA3QUU.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
12
- } from "./chunk-CXK4DZH3.js";
12
+ } from "./chunk-4W2PE66Q.js";
13
13
 
14
14
  // src/cycle/parser.ts
15
15
  var BARE_EDGE_RE = /^->\s*(.*)?$/;
@@ -274,4 +274,4 @@ function parseCycle(content) {
274
274
  export {
275
275
  parseCycle
276
276
  };
277
- //# sourceMappingURL=chunk-2EQMXBBQ.js.map
277
+ //# sourceMappingURL=chunk-HNBY6CNV.js.map
@@ -3,10 +3,10 @@ import {
3
3
  addCalendarDays,
4
4
  resolveConfidence,
5
5
  unitToDays
6
- } from "./chunk-7L4UJOY6.js";
6
+ } from "./chunk-3TYUXC7D.js";
7
7
  import {
8
8
  makeDgmoError
9
- } from "./chunk-CXK4DZH3.js";
9
+ } from "./chunk-4W2PE66Q.js";
10
10
 
11
11
  // src/pert/monte-carlo.ts
12
12
  function lagDays(lag) {
@@ -1059,4 +1059,4 @@ export {
1059
1059
  buildSummary,
1060
1060
  buildProjectSubtitle
1061
1061
  };
1062
- //# sourceMappingURL=chunk-J76PIKAT.js.map
1062
+ //# sourceMappingURL=chunk-HO3RCNF6.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3HDBAXF5.js";
4
4
  import {
5
5
  renderNodeCard
6
- } from "./chunk-OTOHI4JO.js";
6
+ } from "./chunk-H3HFC3SQ.js";
7
7
  import {
8
8
  CARD_RADIUS,
9
9
  COLLAPSE_BAR_HEIGHT,
@@ -25,10 +25,10 @@ import {
25
25
  } from "./chunk-YYVTBZZC.js";
26
26
  import {
27
27
  renderIntegratedLegend
28
- } from "./chunk-OU7HLO7I.js";
28
+ } from "./chunk-W5KMNC5U.js";
29
29
  import {
30
30
  getMaxLegendReservedHeight
31
- } from "./chunk-YAA6IID3.js";
31
+ } from "./chunk-774C2FF3.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
@@ -36,6 +36,15 @@ import {
36
36
  import {
37
37
  FONT_FAMILY
38
38
  } from "./chunk-6KFWC4CO.js";
39
+ import {
40
+ preprocessDescriptionLine
41
+ } from "./chunk-IYULMRBE.js";
42
+ import {
43
+ contrastText,
44
+ mix,
45
+ shapeFill,
46
+ themeBaseBg
47
+ } from "./chunk-JYDMBWRP.js";
39
48
  import {
40
49
  EYE_CLOSED_PATH,
41
50
  EYE_OPEN_PATH,
@@ -43,22 +52,17 @@ import {
43
52
  LEGEND_EYE_SIZE,
44
53
  LEGEND_GROUP_GAP,
45
54
  LEGEND_HEIGHT
46
- } from "./chunk-QOOUC2J5.js";
55
+ } from "./chunk-4RGZFA7H.js";
47
56
  import {
48
57
  measureText
49
- } from "./chunk-WCT3NYCV.js";
50
- import {
51
- preprocessDescriptionLine
52
- } from "./chunk-IYULMRBE.js";
53
- import {
54
- contrastText,
55
- mix,
56
- shapeFill,
57
- themeBaseBg
58
- } from "./chunk-P6T66CCZ.js";
58
+ } from "./chunk-4ASYQ347.js";
59
59
  import {
60
60
  tagAttrKey
61
- } from "./chunk-467TVMQL.js";
61
+ } from "./chunk-CMVZWP32.js";
62
+ import {
63
+ fillModeFromOptions,
64
+ legendSuppressed
65
+ } from "./chunk-YJVA3QUU.js";
62
66
 
63
67
  // src/sitemap/renderer.ts
64
68
  import * as d3Selection from "d3-selection";
@@ -70,11 +74,9 @@ var ARROWHEAD_W = 10;
70
74
  var ARROWHEAD_H = 7;
71
75
  var EDGE_LABEL_FONT_SIZE = 11;
72
76
  var LEGEND_FIXED_GAP = 8;
73
- function nodeFill(palette, isDark, nodeColor, solid) {
77
+ function nodeFill(palette, isDark, nodeColor, fillMode) {
74
78
  const color = nodeColor ?? palette.primary;
75
- return shapeFill(palette, color, isDark, {
76
- ...solid !== void 0 && { solid }
77
- });
79
+ return shapeFill(palette, color, isDark, { mode: fillMode });
78
80
  }
79
81
  function nodeStroke(_palette, nodeColor) {
80
82
  return nodeColor ?? _palette.primary;
@@ -113,7 +115,9 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
113
115
  const sTitleHeight = ctx.structural(TITLE_HEIGHT);
114
116
  const sCollapseBarHeight = ctx.structural(COLLAPSE_BAR_HEIGHT);
115
117
  const sLegendFixedGap = ctx.aesthetic(LEGEND_FIXED_GAP);
116
- const hasLegend = layout.legend.length > 0;
118
+ const noLegend = legendSuppressed(parsed.options);
119
+ const hasLegend = layout.legend.length > 0 && !noLegend;
120
+ const suppressedLegendBand = layout.legend.length > 0 && noLegend;
117
121
  const layoutLegendShift = LEGEND_HEIGHT + LEGEND_GROUP_GAP;
118
122
  const showTitle = !!parsed.title && parsed.options["no-title"] !== "on";
119
123
  const fixedLegend = !exportDims && hasLegend;
@@ -139,7 +143,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
139
143
  const titleOffset = !fixedTitle && showTitle ? sTitleHeight : 0;
140
144
  const diagramW = layout.width;
141
145
  let diagramH = layout.height + titleOffset;
142
- if (fixedLegend) {
146
+ if (fixedLegend || suppressedLegendBand) {
143
147
  diagramH -= layoutLegendShift;
144
148
  }
145
149
  const availH = height - sDiagramPadding * 2 - fixedReserveTop - fixedReserveBottom;
@@ -262,8 +266,8 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
262
266
  const tagVal = node.tagMetadata[tagKey];
263
267
  if (tagVal) nodeG.attr(`data-tag-${tagKey}`, tagVal.toLowerCase());
264
268
  }
265
- const solid = parsed.options["solid-fill"] === "on";
266
- const fill = nodeFill(palette, isDark, node.color, solid);
269
+ const fillMode = fillModeFromOptions(parsed.options);
270
+ const fill = nodeFill(palette, isDark, node.color, fillMode);
267
271
  const stroke = nodeStroke(palette, node.color);
268
272
  const labelColor = contrastText(
269
273
  fill,
@@ -284,7 +288,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
284
288
  });
285
289
  const metaEntries = Object.entries(node.metadata);
286
290
  if (metaEntries.length > 0) {
287
- nodeG.append("line").attr("x1", 0).attr("y1", sHeaderHeight).attr("x2", node.width).attr("y2", sHeaderHeight).attr("stroke", solid ? labelColor : stroke).attr("stroke-opacity", 0.3);
291
+ nodeG.append("line").attr("x1", 0).attr("y1", sHeaderHeight).attr("x2", node.width).attr("y2", sHeaderHeight).attr("stroke", fillMode === "solid" ? labelColor : stroke).attr("stroke-opacity", 0.3);
288
292
  const metaDisplayKeys = metaEntries.map(
289
293
  ([k]) => displayNames.get(k) ?? k
290
294
  );
@@ -297,7 +301,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
297
301
  const displayKey = metaDisplayKeys[i];
298
302
  const rowY = sHeaderHeight + sSeparatorGap + (i + 1) * sMetaLineHeight - 4;
299
303
  const tagColor = tagColors.get(`${key}:${value.toLowerCase()}`);
300
- const valColor = solid ? labelColor : tagColor ?? labelColor;
304
+ const valColor = fillMode === "solid" ? labelColor : tagColor ?? labelColor;
301
305
  nodeG.append("text").attr("x", 10).attr("y", rowY).attr("fill", labelColor).attr("font-size", sMetaFontSize).text(`${displayKey}:`);
302
306
  nodeG.append("text").attr("x", valueX).attr("y", rowY).attr("fill", valColor).attr("font-size", sMetaFontSize).text(value);
303
307
  }
@@ -305,7 +309,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
305
309
  if (node.description && node.description.length > 0) {
306
310
  const metaCount = Object.keys(node.metadata).length;
307
311
  const sepY = metaCount > 0 ? sHeaderHeight + sSeparatorGap + metaCount * sMetaLineHeight : sHeaderHeight;
308
- nodeG.append("line").attr("x1", 0).attr("y1", sepY).attr("x2", node.width).attr("y2", sepY).attr("stroke", solid ? labelColor : stroke).attr("stroke-opacity", 0.3);
312
+ nodeG.append("line").attr("x1", 0).attr("y1", sepY).attr("x2", node.width).attr("y2", sepY).attr("stroke", fillMode === "solid" ? labelColor : stroke).attr("stroke-opacity", 0.3);
309
313
  const descStartY = sHeaderHeight + sSeparatorGap + metaCount * sMetaLineHeight;
310
314
  for (let di = 0; di < node.description.length; di++) {
311
315
  const processed = preprocessDescriptionLine(node.description[di]);
@@ -317,7 +321,10 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
317
321
  if (!exportDims && node.hiddenCount && node.hiddenCount > 0) {
318
322
  const clipId = `clip-${node.id}`;
319
323
  nodeG.append("clipPath").attr("id", clipId).append("rect").attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS);
320
- nodeG.append("rect").attr("y", node.height - sCollapseBarHeight).attr("width", node.width).attr("height", sCollapseBarHeight).attr("fill", solid ? labelColor : node.color ?? palette.primary).attr("opacity", 0.5).attr("clip-path", `url(#${clipId})`);
324
+ nodeG.append("rect").attr("y", node.height - sCollapseBarHeight).attr("width", node.width).attr("height", sCollapseBarHeight).attr(
325
+ "fill",
326
+ fillMode === "solid" ? labelColor : node.color ?? palette.primary
327
+ ).attr("opacity", 0.5).attr("clip-path", `url(#${clipId})`);
321
328
  }
322
329
  }
323
330
  if (exportDims && hasLegend) {
@@ -400,9 +407,9 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
400
407
  }
401
408
  }
402
409
  async function renderSitemapForExport(content, theme, palette) {
403
- const { parseSitemap } = await import("./parser-BKI42XBQ.js");
404
- const { layoutSitemap } = await import("./layout-MUPRALE5.js");
405
- const { getPalette } = await import("./palettes-PRJ2RI6D.js");
410
+ const { parseSitemap } = await import("./parser-UWRX52PC.js");
411
+ const { layoutSitemap } = await import("./layout-KPQWJNAG.js");
412
+ const { getPalette } = await import("./palettes-FGTNFARW.js");
406
413
  const isDark = theme === "dark";
407
414
  const effectivePalette = palette ?? (isDark ? getPalette("nord").dark : getPalette("nord").light);
408
415
  const parsed = parseSitemap(content, effectivePalette);
@@ -451,4 +458,4 @@ export {
451
458
  renderSitemap,
452
459
  renderSitemapForExport
453
460
  };
454
- //# sourceMappingURL=chunk-OJTXTQA2.js.map
461
+ //# sourceMappingURL=chunk-HORZ5H2L.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  acyclicOrient
3
- } from "./chunk-WRNFDFPU.js";
3
+ } from "./chunk-FGDSTT3F.js";
4
4
 
5
5
  // src/swimlane/layout.ts
6
6
  var MARGIN = 30;
@@ -419,4 +419,4 @@ function layoutSwimlane(parsed) {
419
419
  export {
420
420
  layoutSwimlane
421
421
  };
422
- //# sourceMappingURL=chunk-MX2EY5Y7.js.map
422
+ //# sourceMappingURL=chunk-HOXKNRON.js.map
@@ -4,15 +4,16 @@ import {
4
4
  matchTagBlockHeading,
5
5
  stripDefaultModifier,
6
6
  tagAttrKey
7
- } from "./chunk-467TVMQL.js";
7
+ } from "./chunk-CMVZWP32.js";
8
8
  import {
9
+ FILL_FAMILY_TOKENS,
9
10
  extractColor,
10
11
  measureIndent,
11
12
  parseFirstLine
12
- } from "./chunk-LV4BETUU.js";
13
+ } from "./chunk-YJVA3QUU.js";
13
14
  import {
14
15
  emit
15
- } from "./chunk-CXK4DZH3.js";
16
+ } from "./chunk-4W2PE66Q.js";
16
17
 
17
18
  // src/swimlane/diagnostics.ts
18
19
  var SWIMLANE_DX = {
@@ -296,8 +297,16 @@ function parseSwimlane(content, palette) {
296
297
  continue;
297
298
  }
298
299
  if (indent === 0) currentTagGroup = null;
299
- if (indent === 0 && /^solid-fill\s*$/i.test(trimmed)) {
300
- options["solid-fill"] = "on";
300
+ if (indent === 0 && FILL_FAMILY_TOKENS.has(trimmed.toLowerCase())) {
301
+ for (const t of FILL_FAMILY_TOKENS) delete options[t];
302
+ if (trimmed.toLowerCase() !== "fill-tint")
303
+ options[trimmed.toLowerCase()] = "on";
304
+ continue;
305
+ }
306
+ const dirBool = indent === 0 ? trimmed.match(/^direction-(lr|tb)$/i) : null;
307
+ if (dirBool) {
308
+ direction = dirBool[1].toUpperCase();
309
+ options["direction"] = direction;
301
310
  continue;
302
311
  }
303
312
  if (indent === 0 && /^direction\s+/i.test(trimmed)) {
@@ -522,8 +531,9 @@ function parseSwimlane(content, palette) {
522
531
  if (cIdx > 0) trimmed = trimmed.slice(0, cIdx).trim();
523
532
  if (!trimmed) continue;
524
533
  const indent = measureIndent(raw);
525
- if (indent === 0 && /^direction\s+/i.test(trimmed)) continue;
526
- if (indent === 0 && /^solid-fill\s*$/i.test(trimmed)) continue;
534
+ if (indent === 0 && /^direction(?:\s+|-(?:lr|tb)$)/i.test(trimmed))
535
+ continue;
536
+ if (indent === 0 && FILL_FAMILY_TOKENS.has(trimmed.toLowerCase())) continue;
527
537
  if (matchTagBlockHeading(trimmed) && indent === 0) {
528
538
  inTagBlock = true;
529
539
  continue;
@@ -682,4 +692,4 @@ export {
682
692
  SWIMLANE_DIAGNOSTICS,
683
693
  parseSwimlane
684
694
  };
685
- //# sourceMappingURL=chunk-E7Y3SYKW.js.map
695
+ //# sourceMappingURL=chunk-I64ECJX3.js.map
@@ -15,18 +15,21 @@ import {
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-6KFWC4CO.js";
18
- import {
19
- CHAR_WIDTH_RATIO,
20
- measureText
21
- } from "./chunk-WCT3NYCV.js";
22
18
  import {
23
19
  contrastText,
24
20
  getSeriesColors,
25
21
  shapeFill
26
- } from "./chunk-P6T66CCZ.js";
22
+ } from "./chunk-JYDMBWRP.js";
23
+ import {
24
+ CHAR_WIDTH_RATIO,
25
+ measureText
26
+ } from "./chunk-4ASYQ347.js";
27
+ import {
28
+ fillModeFromOptions
29
+ } from "./chunk-YJVA3QUU.js";
27
30
  import {
28
31
  resolveColor
29
- } from "./chunk-TLVIHFRO.js";
32
+ } from "./chunk-ZKPPI6BF.js";
30
33
 
31
34
  // src/pyramid/renderer.ts
32
35
  import * as d3Selection from "d3-selection";
@@ -125,7 +128,7 @@ function renderPyramid(container, parsed, palette, isDark, onClickItem, exportDi
125
128
  ].map((p) => `${p[0]},${p[1]}`).join(" ");
126
129
  const solidColor = resolveSolid(layer, i);
127
130
  const fillColor = shapeFill(palette, solidColor, isDark, {
128
- solid: parsed.options["solid-fill"] === "on"
131
+ mode: fillModeFromOptions(parsed.options)
129
132
  });
130
133
  const layerG = diagramG.append("g").attr("class", "pyramid-layer").attr("data-line-number", layer.lineNumber);
131
134
  if (onClickItem) {
@@ -433,4 +436,4 @@ export {
433
436
  renderPyramid,
434
437
  renderPyramidForExport
435
438
  };
436
- //# sourceMappingURL=chunk-JM4LEPY3.js.map
439
+ //# sourceMappingURL=chunk-IQJCVREL.js.map
@@ -1,11 +1,14 @@
1
+ import {
2
+ mix,
3
+ shapeFill
4
+ } from "./chunk-JYDMBWRP.js";
1
5
  import {
2
6
  measureText,
3
7
  wrapTextToWidth
4
- } from "./chunk-WCT3NYCV.js";
8
+ } from "./chunk-4ASYQ347.js";
5
9
  import {
6
- mix,
7
- shapeFill
8
- } from "./chunk-P6T66CCZ.js";
10
+ fillModeFromOptions
11
+ } from "./chunk-YJVA3QUU.js";
9
12
 
10
13
  // src/journey-map/layout.ts
11
14
  var PADDING = 24;
@@ -210,7 +213,7 @@ function layoutJourneyMap(parsed, palette, options) {
210
213
  palette,
211
214
  scoreToColor(avgScore, palette),
212
215
  isDark,
213
- { solid: parsed.options["solid-fill"] === "on" }
216
+ { mode: fillModeFromOptions(parsed.options) }
214
217
  );
215
218
  const COLLAPSED_CARD_H = 26;
216
219
  const COLLAPSED_GAP = 6;
@@ -287,4 +290,4 @@ export {
287
290
  scoreToCurveY,
288
291
  layoutJourneyMap
289
292
  };
290
- //# sourceMappingURL=chunk-3JLKYGBQ.js.map
293
+ //# sourceMappingURL=chunk-J7HI6G3G.js.map
@@ -5,11 +5,11 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-LV4BETUU.js";
8
+ } from "./chunk-YJVA3QUU.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
12
- } from "./chunk-CXK4DZH3.js";
12
+ } from "./chunk-4W2PE66Q.js";
13
13
 
14
14
  // src/pyramid/parser.ts
15
15
  var MAX_LAYERS = 15;
@@ -127,4 +127,4 @@ function parsePyramid(content) {
127
127
  export {
128
128
  parsePyramid
129
129
  };
130
- //# sourceMappingURL=chunk-Q62FEYK3.js.map
130
+ //# sourceMappingURL=chunk-JHOAH4TI.js.map
@@ -3,24 +3,25 @@ import {
3
3
  } from "./chunk-I46X5VUA.js";
4
4
  import {
5
5
  tryCollectNote
6
- } from "./chunk-WQLMU7VG.js";
6
+ } from "./chunk-ZXUAPTCK.js";
7
7
  import {
8
8
  resolveNotes
9
- } from "./chunk-FMDSF3OV.js";
9
+ } from "./chunk-QZAW5SFH.js";
10
10
  import {
11
11
  parseInArrowLabel
12
- } from "./chunk-FFUN5D66.js";
12
+ } from "./chunk-WF64MW5G.js";
13
13
  import {
14
14
  displayName,
15
15
  normalizeName
16
16
  } from "./chunk-NOTA6TEI.js";
17
17
  import {
18
18
  ALL_CHART_TYPES,
19
+ FILL_FAMILY_TOKENS,
19
20
  OPTION_NOCOLON_RE,
20
21
  measureIndent,
21
22
  parseFirstLine,
22
23
  tryParseSharedOption
23
- } from "./chunk-LV4BETUU.js";
24
+ } from "./chunk-YJVA3QUU.js";
24
25
  import {
25
26
  NAME_DIAGNOSTIC_CODES,
26
27
  emit,
@@ -28,7 +29,7 @@ import {
28
29
  makeDgmoError,
29
30
  nameMergedMessage,
30
31
  suggest
31
- } from "./chunk-CXK4DZH3.js";
32
+ } from "./chunk-4W2PE66Q.js";
32
33
 
33
34
  // src/graph/flowchart-parser.ts
34
35
  function nodeId(shape, label) {
@@ -372,8 +373,10 @@ function parseFlowchart(content, palette) {
372
373
  result.direction = dirMatch[1].toUpperCase();
373
374
  continue;
374
375
  }
375
- if (/^solid-fill$/i.test(trimmed)) {
376
- options["solid-fill"] = "on";
376
+ if (FILL_FAMILY_TOKENS.has(trimmed.toLowerCase())) {
377
+ for (const t of FILL_FAMILY_TOKENS) delete options[t];
378
+ if (trimmed.toLowerCase() !== "fill-tint")
379
+ options[trimmed.toLowerCase()] = "on";
377
380
  continue;
378
381
  }
379
382
  if (/^no-color$/i.test(trimmed)) {
@@ -467,4 +470,4 @@ export {
467
470
  looksLikeFlowchart,
468
471
  extractSymbols
469
472
  };
470
- //# sourceMappingURL=chunk-OZPBJM5Q.js.map
473
+ //# sourceMappingURL=chunk-JTMSWEIW.js.map
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  CATEGORICAL_COLOR_ORDER
3
- } from "./chunk-TLVIHFRO.js";
3
+ } from "./chunk-ZKPPI6BF.js";
4
4
 
5
5
  // src/palettes/color-utils.ts
6
+ var HEX_TO_HSL_CACHE = /* @__PURE__ */ new Map();
7
+ var HEX_TO_HSL_CACHE_MAX = 5e3;
6
8
  function hexToHSL(hex) {
9
+ const cached = HEX_TO_HSL_CACHE.get(hex);
10
+ if (cached) return { ...cached };
7
11
  const raw = hex.replace("#", "");
8
12
  const full = raw.length === 3 ? [...raw].map((c) => c + c).join("") : raw;
9
13
  const r = parseInt(full.substring(0, 2), 16) / 255;
@@ -12,24 +16,29 @@ function hexToHSL(hex) {
12
16
  const max = Math.max(r, g, b);
13
17
  const min = Math.min(r, g, b);
14
18
  const l = (max + min) / 2;
19
+ let result;
15
20
  if (max === min) {
16
- return { h: 0, s: 0, l: Math.round(l * 100) };
17
- }
18
- const d = max - min;
19
- const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
20
- let h;
21
- if (max === r) {
22
- h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
23
- } else if (max === g) {
24
- h = ((b - r) / d + 2) / 6;
21
+ result = { h: 0, s: 0, l: Math.round(l * 100) };
25
22
  } else {
26
- h = ((r - g) / d + 4) / 6;
23
+ const d = max - min;
24
+ const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
25
+ let h;
26
+ if (max === r) {
27
+ h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
28
+ } else if (max === g) {
29
+ h = ((b - r) / d + 2) / 6;
30
+ } else {
31
+ h = ((r - g) / d + 4) / 6;
32
+ }
33
+ result = {
34
+ h: Math.round(h * 360),
35
+ s: Math.round(s * 100),
36
+ l: Math.round(l * 100)
37
+ };
27
38
  }
28
- return {
29
- h: Math.round(h * 360),
30
- s: Math.round(s * 100),
31
- l: Math.round(l * 100)
32
- };
39
+ if (HEX_TO_HSL_CACHE.size >= HEX_TO_HSL_CACHE_MAX) HEX_TO_HSL_CACHE.clear();
40
+ HEX_TO_HSL_CACHE.set(hex, result);
41
+ return { ...result };
33
42
  }
34
43
  function hslToHex(h, s, l) {
35
44
  const sNorm = s / 100;
@@ -87,7 +96,12 @@ function shade(hex, base, amount) {
87
96
  const sb = Math.round(b + (bb - b) * amount);
88
97
  return `#${sr.toString(16).padStart(2, "0")}${sg.toString(16).padStart(2, "0")}${sb.toString(16).padStart(2, "0")}`;
89
98
  }
99
+ var MIX_CACHE = /* @__PURE__ */ new Map();
100
+ var MIX_CACHE_MAX = 5e3;
90
101
  function mix(a, b, pct) {
102
+ const key = `${a}|${b}|${pct}`;
103
+ const cached = MIX_CACHE.get(key);
104
+ if (cached !== void 0) return cached;
91
105
  const parse = (h) => {
92
106
  const r = h.replace("#", "");
93
107
  const f = r.length === 3 ? [...r].map((c2) => c2 + c2).join("") : r;
@@ -99,7 +113,10 @@ function mix(a, b, pct) {
99
113
  };
100
114
  const [ar, ag, ab] = parse(a), [br, bg, bb] = parse(b), t = pct / 100;
101
115
  const c = (x, y) => Math.round(x * t + y * (1 - t)).toString(16).padStart(2, "0");
102
- return `#${c(ar, br)}${c(ag, bg)}${c(ab, bb)}`;
116
+ const out = `#${c(ar, br)}${c(ag, bg)}${c(ab, bb)}`;
117
+ if (MIX_CACHE.size >= MIX_CACHE_MAX) MIX_CACHE.clear();
118
+ MIX_CACHE.set(key, out);
119
+ return out;
103
120
  }
104
121
  function valueRampColor(low, high, t, _opts) {
105
122
  const tc = Math.max(0, Math.min(1, t));
@@ -146,7 +163,8 @@ function themeBaseBg(palette, isDark) {
146
163
  return isDark ? palette.surface : palette.bg;
147
164
  }
148
165
  function shapeFill(palette, intent, isDark, opts) {
149
- if (opts?.solid) return intent;
166
+ if (opts?.mode === "solid") return intent;
167
+ if (opts?.mode === "outline") return themeBaseBg(palette, isDark);
150
168
  return mix(intent, themeBaseBg(palette, isDark), 25);
151
169
  }
152
170
  function getSeriesColors(palette) {
@@ -223,4 +241,4 @@ export {
223
241
  getSegmentColors,
224
242
  politicalTints
225
243
  };
226
- //# sourceMappingURL=chunk-P6T66CCZ.js.map
244
+ //# sourceMappingURL=chunk-JYDMBWRP.js.map
@@ -1,6 +1,6 @@
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";
@@ -8,10 +8,10 @@ import {
8
8
  measureText,
9
9
  truncateText,
10
10
  wrapTextToWidth
11
- } from "./chunk-WCT3NYCV.js";
11
+ } from "./chunk-4ASYQ347.js";
12
12
  import {
13
13
  resolveNotes
14
- } from "./chunk-FMDSF3OV.js";
14
+ } from "./chunk-QZAW5SFH.js";
15
15
 
16
16
  // src/boxes-and-lines/label-placement.ts
17
17
  var EDGE_LABEL_FONT_SIZE = 11;
@@ -311,7 +311,7 @@ function computeNodeSize(node, reserveValueRow) {
311
311
  return { width: w, height: Math.max(NODE_HEIGHT, totalHeight) };
312
312
  }
313
313
  async function layoutBoxesAndLines(parsed, collapseInfo, layoutOptions) {
314
- const { layoutBoxesAndLinesSearch } = await import("./layout-search-55FU6HD3.js");
314
+ const { layoutBoxesAndLinesSearch } = await import("./layout-search-34DPZD43.js");
315
315
  const searchOpts = {
316
316
  ...layoutOptions?.hideDescriptions !== void 0 && {
317
317
  hideDescriptions: layoutOptions.hideDescriptions
@@ -323,16 +323,22 @@ async function layoutBoxesAndLines(parsed, collapseInfo, layoutOptions) {
323
323
  onProgress: layoutOptions.onProgress
324
324
  }
325
325
  };
326
- const searched = await layoutBoxesAndLinesSearch(
327
- parsed,
328
- collapseInfo,
329
- searchOpts
330
- );
326
+ let topConfigs;
327
+ const searched = await layoutBoxesAndLinesSearch(parsed, collapseInfo, {
328
+ ...searchOpts,
329
+ onTopConfigs: (cfgs) => {
330
+ topConfigs = cfgs;
331
+ }
332
+ });
331
333
  let placed = placeEdgeLabels(applyParallelEdgeOffsets(searched));
332
334
  if (placed.unresolved.length > 0) {
333
335
  const relaid = await layoutBoxesAndLinesSearch(parsed, collapseInfo, {
334
336
  ...searchOpts,
335
- reserveEdgeLabels: true
337
+ reserveEdgeLabels: true,
338
+ // Only the label reservation changed — re-laying-out the top candidates
339
+ // from the first search is enough. Falls back to the full pool when the
340
+ // first search surfaced no dagre candidates.
341
+ ...topConfigs !== void 0 && topConfigs.length > 0 && { configs: topConfigs }
336
342
  });
337
343
  const relaidPlaced = placeEdgeLabels(applyParallelEdgeOffsets(relaid));
338
344
  if (relaidPlaced.unresolved.length < placed.unresolved.length)
@@ -460,4 +466,4 @@ export {
460
466
  computeNodeSize,
461
467
  layoutBoxesAndLines
462
468
  };
463
- //# sourceMappingURL=chunk-7DF4J4RL.js.map
469
+ //# sourceMappingURL=chunk-KKHCNSKK.js.map