@diagrammo/dgmo 0.50.2 → 0.52.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 (257) hide show
  1. package/.cursorrules +15 -19
  2. package/.github/copilot-instructions.md +15 -19
  3. package/.windsurfrules +15 -19
  4. package/SKILL.md +15 -19
  5. package/dist/advanced.d.ts +155 -65
  6. package/dist/advanced.js +231 -189
  7. package/dist/{analyzer-UYKBXAKR.js → analyzer-BJ54GIFB.js} +3 -3
  8. package/dist/auto.css +31 -8
  9. package/dist/auto.d.ts +6 -0
  10. package/dist/auto.js +171 -133
  11. package/dist/auto.mjs +3062 -1478
  12. package/dist/block.css +28 -8
  13. package/dist/block.js +138 -72
  14. package/dist/charts-d3-MXEP6BNP.js +26 -0
  15. package/dist/{chunk-3YPY3OXD.js → chunk-3HF5YEFJ.js} +17 -7
  16. package/dist/{chunk-4MJ7M6YL.js → chunk-3HGU63UY.js} +14 -13
  17. package/dist/chunk-3LK5DNED.js +35 -0
  18. package/dist/{chunk-3Y2DRD7S.js → chunk-3QD7VP3U.js} +9 -4
  19. package/dist/{chunk-6BFZKBGD.js → chunk-3YRPZ7ZZ.js} +2 -2
  20. package/dist/{chunk-WW32K72E.js → chunk-44VCIPHF.js} +25 -21
  21. package/dist/{chunk-TN35C5KM.js → chunk-4AQRFDXL.js} +2 -2
  22. package/dist/{chunk-HHXOONLX.js → chunk-4B5YISOR.js} +38 -1
  23. package/dist/{chunk-PGEGPSCZ.js → chunk-4IHAV6O7.js} +2 -2
  24. package/dist/{chunk-7L3R6I3U.js → chunk-4UNQ6X24.js} +10 -7
  25. package/dist/{chunk-O7NUCTFU.js → chunk-4YFKQ5WT.js} +7 -4
  26. package/dist/{chunk-5WFIYXQ6.js → chunk-5223KXFD.js} +122 -242
  27. package/dist/{chunk-PFHVU7UA.js → chunk-5BHJZH62.js} +3 -3
  28. package/dist/{chunk-QYTPPDAO.js → chunk-5HILBT7X.js} +2 -2
  29. package/dist/{chunk-GKC3HILQ.js → chunk-5NGAO4QK.js} +27 -4
  30. package/dist/{chunk-IAEC4KLA.js → chunk-5QKQSSPO.js} +2 -2
  31. package/dist/{chunk-DSWVNQVS.js → chunk-5RP7JRVP.js} +4 -59
  32. package/dist/{chunk-MCZ5LBZD.js → chunk-5SEVICBT.js} +8 -8
  33. package/dist/{chunk-GBE54KY6.js → chunk-6EJITS44.js} +8 -5
  34. package/dist/{chunk-BBGDM4NQ.js → chunk-6HQH6JZE.js} +35 -16
  35. package/dist/{chunk-66NVRO4K.js → chunk-6LBQ7ELG.js} +17 -18
  36. package/dist/{chunk-4XK3FLFB.js → chunk-6NYWYNBI.js} +3 -3
  37. package/dist/{chunk-VBYSIOOY.js → chunk-75G3Q4DK.js} +3 -3
  38. package/dist/{chunk-3NODSS6A.js → chunk-77FGAVZC.js} +13 -10
  39. package/dist/{chunk-6IAA2QQ2.js → chunk-7BIZCTAX.js} +2 -2
  40. package/dist/{chunk-TWQUYVP3.js → chunk-7DF4J4RL.js} +4 -4
  41. package/dist/{chunk-66RUL3XF.js → chunk-7KINELPI.js} +111 -49
  42. package/dist/{chunk-L3UHP6TD.js → chunk-7L4UJOY6.js} +1 -2
  43. package/dist/{chunk-QJP6PG7F.js → chunk-7QE3XMRK.js} +19 -18
  44. package/dist/{chunk-P7CE7LXL.js → chunk-AAXZDUOV.js} +18 -17
  45. package/dist/{chunk-SXRTRMEE.js → chunk-AL672HNE.js} +3 -3
  46. package/dist/chunk-APKUAJ2L.js +220 -0
  47. package/dist/{chunk-SCHXJTZL.js → chunk-ARGMQ3H4.js} +2 -2
  48. package/dist/{chunk-HEVYAHLW.js → chunk-AUIM2NVH.js} +5 -5
  49. package/dist/{chunk-3LH5CLP4.js → chunk-BKVOYV6I.js} +143 -6
  50. package/dist/{chunk-RZ6YKEUJ.js → chunk-BPIZNB5O.js} +17 -15
  51. package/dist/{chunk-QROYX7TT.js → chunk-BPY242XU.js} +6 -4
  52. package/dist/{chunk-OTAL43EH.js → chunk-BRENJ2BQ.js} +39 -3
  53. package/dist/{chunk-FA6K3FWM.js → chunk-CCNDLW7Z.js} +44 -22
  54. package/dist/{chunk-2KGXHFYK.js → chunk-CIRFIL4M.js} +49 -29
  55. package/dist/chunk-DAOFNU6J.js +283 -0
  56. package/dist/{chunk-QJJZSROI.js → chunk-DYWQFQJP.js} +48 -38
  57. package/dist/{chunk-XEGTMVYY.js → chunk-EMLPOL77.js} +15 -8
  58. package/dist/{chunk-NWED7CYO.js → chunk-FHGVORFO.js} +29 -25
  59. package/dist/{chunk-U2HGPLZS.js → chunk-FQ7HTV52.js} +17 -2
  60. package/dist/{chunk-H73FP42Q.js → chunk-FQMUHRVC.js} +70 -31
  61. package/dist/{chunk-BTUTZMPT.js → chunk-FT3ZYWET.js} +108 -42
  62. package/dist/{chunk-T5SHNNGP.js → chunk-FUPF2UYQ.js} +92 -34
  63. package/dist/{chunk-3XPUDB7B.js → chunk-FY5MSZAP.js} +279 -39
  64. package/dist/{chunk-M5RXSRO2.js → chunk-GCYTI3DE.js} +42 -33
  65. package/dist/{chunk-DN66GPY5.js → chunk-GJFAMOGK.js} +24 -3
  66. package/dist/{chunk-F2L5GCQ4.js → chunk-GU46PPT3.js} +3 -3
  67. package/dist/{chunk-6IUAK7RZ.js → chunk-H6PI3KJT.js} +2 -2
  68. package/dist/{chunk-ONA5KPV3.js → chunk-H7KENAZO.js} +18 -14
  69. package/dist/{chunk-SQLNBA64.js → chunk-HBPDFCQY.js} +3 -3
  70. package/dist/{chunk-SCQ5VPUF.js → chunk-HFMYN6N2.js} +2 -2
  71. package/dist/{chunk-FJUNPCYI.js → chunk-HHKO6SKY.js} +2 -2
  72. package/dist/{chunk-DZXYF2F5.js → chunk-HQQNCY7W.js} +21 -8
  73. package/dist/{chunk-7TV5Y53Y.js → chunk-HWX6ZHF3.js} +3 -3
  74. package/dist/{chunk-3P2DKJCG.js → chunk-ICPJPQ5C.js} +2 -2
  75. package/dist/{chunk-VUJGMJE6.js → chunk-IM6PDDCE.js} +4 -4
  76. package/dist/{chunk-JJUOHGX2.js → chunk-INE5YJBZ.js} +13 -8
  77. package/dist/{chunk-HTMN2Z6U.js → chunk-J6QROYDA.js} +58 -11
  78. package/dist/{chunk-NX4EQS3U.js → chunk-J76PIKAT.js} +2 -2
  79. package/dist/{chunk-SVTI362O.js → chunk-J7KJR3R6.js} +129 -109
  80. package/dist/{chunk-JEUJOX5X.js → chunk-J7TLCB2Q.js} +2 -2
  81. package/dist/{chunk-O7WP4ZD4.js → chunk-JED6ZDEE.js} +2 -2
  82. package/dist/{chunk-J6K7RP6P.js → chunk-JRCOYRRH.js} +19 -7
  83. package/dist/{chunk-7QKLIMRZ.js → chunk-K2I2XOZD.js} +46 -51
  84. package/dist/{chunk-EAMEADTV.js → chunk-K4EOKJA6.js} +96 -24
  85. package/dist/{chunk-5OWVC2A6.js → chunk-KGVZ5VGH.js} +13 -10
  86. package/dist/{chunk-DFTFPYUD.js → chunk-LBMS4AW6.js} +22 -21
  87. package/dist/{chunk-VVW3F3MD.js → chunk-LGT3PZCJ.js} +27 -19
  88. package/dist/{chunk-OMNGQPEZ.js → chunk-LTXOLDUZ.js} +9 -6
  89. package/dist/{chunk-Q4V4XQWV.js → chunk-MUE65OTD.js} +5 -4
  90. package/dist/{chunk-5GJYGP5Z.js → chunk-MUVJ57EP.js} +14 -18
  91. package/dist/{chunk-CLD2OKV7.js → chunk-MX2EY5Y7.js} +2 -2
  92. package/dist/{chunk-OTQKUHRS.js → chunk-NNS4E7CW.js} +6 -4
  93. package/dist/{chunk-NNAAJVBU.js → chunk-NR5HCAUD.js} +1 -1
  94. package/dist/{chunk-KFZYNWWO.js → chunk-ONU3U4GL.js} +4 -4
  95. package/dist/{chunk-YNRDWYZP.js → chunk-OQKP2X3D.js} +170 -51
  96. package/dist/{chunk-AHGF2YYA.js → chunk-OTOHI4JO.js} +2 -2
  97. package/dist/{chunk-EOFPYPAU.js → chunk-P3NRSSUU.js} +51 -11
  98. package/dist/{chunk-QXKWYZNR.js → chunk-PRI2OD4E.js} +10 -3
  99. package/dist/{chunk-U6EQI3U6.js → chunk-QBZYACOG.js} +3 -3
  100. package/dist/{chunk-C2CVAM3U.js → chunk-QGATPIPX.js} +170 -91
  101. package/dist/{chunk-PZFVK3IH.js → chunk-QHXCAEMX.js} +8 -5
  102. package/dist/{chunk-BH3UYK36.js → chunk-QJMKPUYK.js} +15 -5
  103. package/dist/{chunk-HQCHYB5F.js → chunk-QOOUC2J5.js} +2 -2
  104. package/dist/{chunk-Z6XJQ6KO.js → chunk-QVENJMNX.js} +2 -2
  105. package/dist/{chunk-IUMPEA64.js → chunk-QZX5S6R3.js} +4 -4
  106. package/dist/{chunk-I7F2A35O.js → chunk-R3YSD62R.js} +25 -47
  107. package/dist/{chunk-NU3XLTGP.js → chunk-REJAIQ5S.js} +4 -4
  108. package/dist/{chunk-2C56LEML.js → chunk-ROOE4R4Y.js} +8 -5
  109. package/dist/{chunk-XHVV4NVW.js → chunk-RT7ACF77.js} +12 -2
  110. package/dist/{chunk-I2WKW7C7.js → chunk-SMRFPVLQ.js} +3 -3
  111. package/dist/{chunk-VDOOQZUD.js → chunk-SWSIKFEB.js} +4 -4
  112. package/dist/{chunk-HLJVEAOF.js → chunk-T4A4TSTJ.js} +19 -45
  113. package/dist/{chunk-KHEYDLMT.js → chunk-TJVLKNGR.js} +20 -10
  114. package/dist/{chunk-GL5UZ6NY.js → chunk-TPFKKXCB.js} +3 -3
  115. package/dist/{chunk-X6EZPSW6.js → chunk-TTIM6YTT.js} +31 -21
  116. package/dist/{chunk-BCYVE3N5.js → chunk-TYS6CSS5.js} +2 -2
  117. package/dist/{chunk-T4VOVZT5.js → chunk-UBLHQTLV.js} +15 -14
  118. package/dist/{chunk-3LKM6FMW.js → chunk-UNURMIQO.js} +2 -2
  119. package/dist/{chunk-TSA237IM.js → chunk-VILVLS7P.js} +5 -3
  120. package/dist/{chunk-HGN652MU.js → chunk-VL2O2F3W.js} +2 -2
  121. package/dist/{chunk-3XGZF2QJ.js → chunk-VQOCMUWI.js} +39 -28
  122. package/dist/{chunk-P6T66CCZ.js → chunk-WBM7ZNDI.js} +3 -2
  123. package/dist/{chunk-CMCR5WBW.js → chunk-WBRZJOEC.js} +3 -3
  124. package/dist/{chunk-5LWQH6QV.js → chunk-WCT3NYCV.js} +1 -1
  125. package/dist/{chunk-C4GQDB5L.js → chunk-WRNFDFPU.js} +2 -2
  126. package/dist/{chunk-6HJBFVLO.js → chunk-XD6ZYURY.js} +9 -4
  127. package/dist/{chunk-C63UWAKM.js → chunk-Y2ZE3MSG.js} +2 -2
  128. package/dist/{chunk-7UEMZREK.js → chunk-YAA6IID3.js} +2 -2
  129. package/dist/{chunk-F7BFXWNQ.js → chunk-YIBAWQGJ.js} +7 -4
  130. package/dist/{chunk-PH5X4GIP.js → chunk-YTMTPUH4.js} +8 -5
  131. package/dist/{chunk-3UIKSPFB.js → chunk-Z5QVYKR7.js} +11 -3
  132. package/dist/{chunk-KQ57MHRO.js → chunk-ZEF5M5MB.js} +155 -87
  133. package/dist/{chunk-LE4MYMLI.js → chunk-ZJV7GYR4.js} +6 -6
  134. package/dist/{chunk-XJLKLU4D.js → chunk-ZNWAYU6N.js} +11 -7
  135. package/dist/cli.cjs +165 -148
  136. package/dist/clock.js +105 -25
  137. package/dist/countdown.js +208 -82
  138. package/dist/dgmo-router-X7ZGAPIE.js +86 -0
  139. package/dist/dimensions-45H6JQEY.js +22 -0
  140. package/dist/editor.js +17 -2
  141. package/dist/element.d.ts +6 -0
  142. package/dist/element.js +172 -134
  143. package/dist/element.mjs +3026 -1463
  144. package/dist/{flowchart-parser-OE4WHLTF.js → flowchart-parser-UKELHBSB.js} +4 -4
  145. package/dist/{flowchart-renderer-GPCSMTOR.js → flowchart-renderer-MNCDS7MV.js} +10 -10
  146. package/dist/highlight.d.ts +21 -1
  147. package/dist/highlight.js +106 -3
  148. package/dist/index.d.ts +2 -2
  149. package/dist/index.js +59 -57
  150. package/dist/{layout-FWODLIMP.js → layout-2L3WMRYU.js} +6 -6
  151. package/dist/{layout-7SKMFYHL.js → layout-46N4JJYK.js} +5 -5
  152. package/dist/{layout-7H4H46CS.js → layout-7QXCNOVS.js} +3 -3
  153. package/dist/layout-A4XWNVID.js +14 -0
  154. package/dist/{layout-46366KBT.js → layout-A5UHRWVH.js} +3 -3
  155. package/dist/{layout-NXG63LWH.js → layout-AM2JWW3X.js} +4 -4
  156. package/dist/{layout-DC4TVXER.js → layout-EE6GE46Y.js} +5 -5
  157. package/dist/{layout-FGQWRYYW.js → layout-F4WO357A.js} +3 -3
  158. package/dist/layout-G23F7LDH.js +9 -0
  159. package/dist/{layout-QNUQLEHU.js → layout-GM4UGR7B.js} +5 -4
  160. package/dist/{layout-7MZ5NF2N.js → layout-GQQJXNYH.js} +5 -5
  161. package/dist/{layout-5BG6DFCU.js → layout-IIE2S5FK.js} +6 -6
  162. package/dist/{layout-34CLNICW.js → layout-OAC4PEAC.js} +5 -5
  163. package/dist/layout-VMCRX66I.js +14 -0
  164. package/dist/{layout-PUQCB6AN.js → layout-ZDOSXL5G.js} +7 -7
  165. package/dist/{layout-search-QS44PI5R.js → layout-search-55FU6HD3.js} +6 -157
  166. package/dist/map-data/gazetteer.json +1 -1
  167. package/dist/{palettes-PRJ2RI6D.js → palettes-UDLZ2SA4.js} +2 -2
  168. package/dist/{parser-D5VILGN2.js → parser-2ECN6JA2.js} +4 -4
  169. package/dist/{parser-LWKKBNSA.js → parser-4WTIHM5J.js} +3 -3
  170. package/dist/{parser-DFFEDKHH.js → parser-5H2BTSJQ.js} +3 -3
  171. package/dist/{parser-4NO6VZ6S.js → parser-75KVXUNS.js} +4 -4
  172. package/dist/{parser-VKOJM7KS.js → parser-774AC53T.js} +4 -4
  173. package/dist/{parser-IBWNAPY4.js → parser-BE4YCSRU.js} +3 -3
  174. package/dist/{parser-4AI5ZN5F.js → parser-CNGUQUQI.js} +3 -3
  175. package/dist/{parser-36HVKU5U.js → parser-DEUUSQIN.js} +7 -6
  176. package/dist/{parser-H3XEPFPV.js → parser-DQAFLUJB.js} +4 -4
  177. package/dist/{parser-5OXGPNBF.js → parser-EYCKNKQA.js} +5 -5
  178. package/dist/{parser-TGQZJ5OT.js → parser-FXISIU6A.js} +4 -4
  179. package/dist/{parser-JJR52VAT.js → parser-GTB4XC7P.js} +5 -5
  180. package/dist/{parser-AGVYTQXV.js → parser-GVEPAUSD.js} +4 -4
  181. package/dist/{parser-WAV5JRPT.js → parser-HSQGTY4G.js} +4 -4
  182. package/dist/{parser-YS7TOS2K.js → parser-HVKRINUS.js} +3 -3
  183. package/dist/{parser-W4PQUGX3.js → parser-J5MIEYO4.js} +5 -5
  184. package/dist/parser-KMZIXLDZ.js +13 -0
  185. package/dist/{parser-HYRTF3DO.js → parser-LJHXWSXU.js} +3 -3
  186. package/dist/{parser-KCR2WS3V.js → parser-PT3W72G5.js} +4 -4
  187. package/dist/{parser-CVMEDULU.js → parser-SBJQDPHL.js} +4 -4
  188. package/dist/{parser-RZPVAQVX.js → parser-SUWWWCMX.js} +4 -3
  189. package/dist/{parser-TXND652E.js → parser-SXDRNZOA.js} +4 -4
  190. package/dist/parser-UMILOW3M.js +14 -0
  191. package/dist/{parser-RV4M6AS2.js → parser-UP3AZ367.js} +4 -4
  192. package/dist/{parser-IJBMRXMC.js → parser-WHPRV3X5.js} +5 -5
  193. package/dist/{parser-MPCE5JBG.js → parser-WX3UODSJ.js} +4 -4
  194. package/dist/{parser-K3XXLMUW.js → parser-XCIEN3KN.js} +4 -4
  195. package/dist/{parser-AXKBDGNO.js → parser-XIRTUMVN.js} +5 -5
  196. package/dist/{parser-B5FVS7O6.js → parser-YKCGIG45.js} +3 -3
  197. package/dist/{parser-PSA4UBSP.js → parser-YKYMQG3B.js} +4 -4
  198. package/dist/{parser-MTOMTWTD.js → parser-ZGM2OJ6Y.js} +6 -5
  199. package/dist/{parser-CSFUN3CT.js → parser-ZL5QUFVH.js} +5 -4
  200. package/dist/pert.d.ts +2 -2
  201. package/dist/{renderer-PPIHO5FI.js → renderer-3F7OS2AX.js} +14 -13
  202. package/dist/{renderer-SBS3YWU5.js → renderer-4QB4K7Q3.js} +9 -9
  203. package/dist/{renderer-GHPZMFU2.js → renderer-5DAKMIU2.js} +3 -3
  204. package/dist/{renderer-R2WNIC2C.js → renderer-5H4SY7YY.js} +9 -9
  205. package/dist/{renderer-DAXMXIKD.js → renderer-5PIQPFOX.js} +5 -4
  206. package/dist/{renderer-45PSOL3E.js → renderer-6MU37QF5.js} +6 -6
  207. package/dist/renderer-AQVMWJ4M.js +27 -0
  208. package/dist/{renderer-A5VE5BCI.js → renderer-BDDW6K7N.js} +9 -9
  209. package/dist/{renderer-AUW2BE6G.js → renderer-BNB3VIDY.js} +10 -10
  210. package/dist/{renderer-4ITCHBT7.js → renderer-CQY6ATOS.js} +6 -6
  211. package/dist/{renderer-6OKF44KS.js → renderer-CVW75CXL.js} +15 -15
  212. package/dist/{renderer-7RH2SI3B.js → renderer-DT4XRFEP.js} +5 -4
  213. package/dist/{renderer-B5TBNZJE.js → renderer-ERHBSTQT.js} +9 -9
  214. package/dist/{renderer-HVCU2C3Z.js → renderer-HSHHVYWF.js} +5 -4
  215. package/dist/renderer-IDPVUFNB.js +28 -0
  216. package/dist/renderer-ILX6BGKR.js +21 -0
  217. package/dist/renderer-JP663HKG.js +22 -0
  218. package/dist/{renderer-KS7YZJE2.js → renderer-KNFTTOBL.js} +11 -11
  219. package/dist/{renderer-2AZ5HJFK.js → renderer-MVUZBESR.js} +5 -5
  220. package/dist/{renderer-QAOBLRXV.js → renderer-N4EBR2FV.js} +11 -11
  221. package/dist/{renderer-P5ROYQGU.js → renderer-NHO46CT2.js} +4 -4
  222. package/dist/{renderer-NGXZTRK6.js → renderer-NO2QJ5LZ.js} +10 -10
  223. package/dist/{renderer-FPE3J5VZ.js → renderer-OGFV5RXX.js} +12 -12
  224. package/dist/{renderer-ODUUOPVT.js → renderer-PDLESJMS.js} +15 -15
  225. package/dist/renderer-T4MTNINC.js +24 -0
  226. package/dist/renderer-TOUGFGTM.js +24 -0
  227. package/dist/{renderer-BSR2O2H6.js → renderer-U3KPD43Y.js} +14 -13
  228. package/dist/{renderer-JCCHNECZ.js → renderer-X334IJU2.js} +10 -10
  229. package/dist/{renderer-5DSEWF74.js → renderer-Y5OAMOCR.js} +9 -9
  230. package/dist/{renderer-5KVCNMOJ.js → renderer-YONAKAJU.js} +5 -3
  231. package/dist/{renderer-7SD6MSBS.js → renderer-YWMI6Y2U.js} +12 -12
  232. package/dist/{renderer-2QPMJ2DA.js → renderer-ZWIH4WDW.js} +10 -10
  233. package/dist/renderer-radial-7CGZMVMS.js +21 -0
  234. package/dist/{resolver-FHBCO3PL.js → resolver-EMTGNR3D.js} +4 -3
  235. package/dist/{state-parser-3REXRK3R.js → state-parser-BATWAID2.js} +4 -4
  236. package/dist/{state-renderer-XYLNRWXR.js → state-renderer-3FKZJ3LP.js} +10 -10
  237. package/dist/{themes-PdPR1-hC.d.ts → themes-32xj5ZTW.d.ts} +27 -0
  238. package/docs/ai-integration.md +15 -19
  239. package/docs/language-reference.md +106 -21
  240. package/gallery/fixtures/clock.dgmo +3 -3
  241. package/gallery/fixtures/countdown-tz.dgmo +5 -0
  242. package/package.json +1 -1
  243. package/dist/charts-d3-MUW3LTML.js +0 -26
  244. package/dist/dgmo-router-CE2G67FV.js +0 -84
  245. package/dist/dimensions-OTBKC5M6.js +0 -22
  246. package/dist/layout-6RDJHS6E.js +0 -9
  247. package/dist/layout-J36454XU.js +0 -14
  248. package/dist/layout-LD6XTLD6.js +0 -14
  249. package/dist/parser-4WQQQXCG.js +0 -13
  250. package/dist/parser-O4HIUN6G.js +0 -13
  251. package/dist/renderer-CYB4LK3G.js +0 -22
  252. package/dist/renderer-FF24KZCI.js +0 -24
  253. package/dist/renderer-FYSVXL7M.js +0 -28
  254. package/dist/renderer-HDCCZURL.js +0 -24
  255. package/dist/renderer-PSMMZCKH.js +0 -21
  256. package/dist/renderer-UYMQQCJK.js +0 -24
  257. package/dist/renderer-radial-F7X5F2VU.js +0 -21
@@ -11,7 +11,7 @@ import {
11
11
  stripDefaultModifier,
12
12
  tagAttrKey,
13
13
  validateTagGroupNames
14
- } from "./chunk-FJUNPCYI.js";
14
+ } from "./chunk-HHKO6SKY.js";
15
15
  import {
16
16
  parseInArrowLabel
17
17
  } from "./chunk-FFUN5D66.js";
@@ -27,7 +27,7 @@ import {
27
27
  splitNameAndMeta,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-OTAL43EH.js";
30
+ } from "./chunk-BRENJ2BQ.js";
31
31
  import {
32
32
  formatDgmoError,
33
33
  makeDgmoError,
@@ -65,7 +65,9 @@ var VALID_SHAPES = /* @__PURE__ */ new Set([
65
65
  var KNOWN_C4_OPTIONS = /* @__PURE__ */ new Set(["layout", "active-tag"]);
66
66
  var KNOWN_C4_BOOLEANS = /* @__PURE__ */ new Set([
67
67
  "direction-tb",
68
- "solid-fill",
68
+ "fill-tint",
69
+ "fill-solid",
70
+ "fill-outline",
69
71
  "no-title"
70
72
  ]);
71
73
  var ALL_CHART_TYPES = [
@@ -804,4 +806,4 @@ function validateDeploymentRefs(result, knownNames, pushWarning) {
804
806
  export {
805
807
  parseC4
806
808
  };
807
- //# sourceMappingURL=chunk-QROYX7TT.js.map
809
+ //# sourceMappingURL=chunk-BPY242XU.js.map
@@ -40,7 +40,13 @@ var MAP_REGISTRY = staticRegistry([
40
40
  "size",
41
41
  "width",
42
42
  "label",
43
- "style"
43
+ "style",
44
+ // `clock` (BL-122): the time-card control. Bare (`poi Denver clock`) → a card
45
+ // with the zone auto-derived from the place; valued (`clock: Europe/Oslo`) →
46
+ // that IANA id or fixed offset (`clock: UTC+9`) as the zone, for bare-coord
47
+ // pins or to override a city. Reserved so the valued form peels off the POI
48
+ // name cleanly; the BARE flag is peeled separately in handlePoi (no colon).
49
+ "clock"
44
50
  // `surface:` was removed in the 2026-06-02 defaults-on review — it is no longer
45
51
  // a recognized metadata key (the route/edge surface feature was cut; §24B.7).
46
52
  // A stray `surface: water` is no longer captured as a reserved key.
@@ -262,10 +268,34 @@ function extractColor(label, palette, diagnostics, line) {
262
268
  }
263
269
  var OPTION_NOCOLON_RE = /^([a-z][a-z0-9-]*)\s+(.+)$/i;
264
270
  var GLOBAL_BOOLEANS = /* @__PURE__ */ new Set([
265
- "solid-fill",
271
+ "fill-tint",
272
+ "fill-solid",
273
+ "fill-outline",
266
274
  "no-title",
267
275
  "no-notes"
268
276
  ]);
277
+ var FILL_FAMILY_TOKENS = /* @__PURE__ */ new Set([
278
+ "fill-tint",
279
+ "fill-solid",
280
+ "fill-outline"
281
+ ]);
282
+ function fillModeFromToken(token) {
283
+ switch (token.trim().toLowerCase()) {
284
+ case "fill-solid":
285
+ return "solid";
286
+ case "fill-outline":
287
+ return "outline";
288
+ case "fill-tint":
289
+ return "tint";
290
+ default:
291
+ return null;
292
+ }
293
+ }
294
+ function fillModeFromOptions(options) {
295
+ if (options["fill-solid"] === "on") return "solid";
296
+ if (options["fill-outline"] === "on") return "outline";
297
+ return void 0;
298
+ }
269
299
  function recognizeGlobalBoolean(token) {
270
300
  const t = token.trim().toLowerCase();
271
301
  return GLOBAL_BOOLEANS.has(t) ? t : null;
@@ -273,6 +303,9 @@ function recognizeGlobalBoolean(token) {
273
303
  function tryParseSharedOption(line, options) {
274
304
  const key = recognizeGlobalBoolean(line);
275
305
  if (key) {
306
+ if (FILL_FAMILY_TOKENS.has(key)) {
307
+ for (const t of FILL_FAMILY_TOKENS) delete options[t];
308
+ }
276
309
  options[key] = "on";
277
310
  return true;
278
311
  }
@@ -662,6 +695,9 @@ export {
662
695
  measureIndent,
663
696
  extractColor,
664
697
  OPTION_NOCOLON_RE,
698
+ FILL_FAMILY_TOKENS,
699
+ fillModeFromToken,
700
+ fillModeFromOptions,
665
701
  tryParseSharedOption,
666
702
  parseFirstLine,
667
703
  normalizeNumericToken,
@@ -675,4 +711,4 @@ export {
675
711
  splitNameAndMeta,
676
712
  warnUnknownMetaKeys
677
713
  };
678
- //# sourceMappingURL=chunk-OTAL43EH.js.map
714
+ //# sourceMappingURL=chunk-BRENJ2BQ.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-3HDBAXF5.js";
4
4
  import {
5
5
  renderIntegratedLegend
6
- } from "./chunk-HEVYAHLW.js";
6
+ } from "./chunk-AUIM2NVH.js";
7
7
  import {
8
8
  getMaxLegendReservedHeight
9
- } from "./chunk-7UEMZREK.js";
9
+ } from "./chunk-YAA6IID3.js";
10
10
  import {
11
11
  TITLE_FONT_SIZE,
12
12
  TITLE_FONT_WEIGHT,
@@ -17,20 +17,21 @@ import {
17
17
  } from "./chunk-6KFWC4CO.js";
18
18
  import {
19
19
  LEGEND_GROUP_GAP
20
- } from "./chunk-HQCHYB5F.js";
20
+ } from "./chunk-QOOUC2J5.js";
21
21
  import {
22
22
  measureText
23
- } from "./chunk-5LWQH6QV.js";
23
+ } from "./chunk-WCT3NYCV.js";
24
24
  import {
25
+ contrastText,
25
26
  getSeriesColors,
26
27
  mix,
27
28
  shapeFill,
28
29
  themeBaseBg
29
- } from "./chunk-P6T66CCZ.js";
30
+ } from "./chunk-WBM7ZNDI.js";
30
31
  import {
31
32
  resolveTagColor,
32
33
  tagAttrKey
33
- } from "./chunk-FJUNPCYI.js";
34
+ } from "./chunk-HHKO6SKY.js";
34
35
  import {
35
36
  resolveColor
36
37
  } from "./chunk-TLVIHFRO.js";
@@ -628,7 +629,7 @@ function clip(s, maxW, fs) {
628
629
  }
629
630
  return lo <= 0 ? "" : s.slice(0, lo) + "\u2026";
630
631
  }
631
- function paintForAccent(palette, isDark, accent) {
632
+ function paintForAccent(palette, isDark, accent, fillMode) {
632
633
  const base = themeBaseBg(palette, isDark);
633
634
  return {
634
635
  accent,
@@ -639,12 +640,14 @@ function paintForAccent(palette, isDark, accent) {
639
640
  hair: mix(palette.text, base, 34),
640
641
  wire: mix(palette.text, base, 30),
641
642
  track: mix(palette.border, base, 55),
642
- tint: shapeFill(palette, accent, isDark)
643
+ // §1.9 fill family rides through shapeFill: solid ⇒ raw accent,
644
+ // outline ⇒ theme base bg (accent stays on the stroke), absent ⇒ 25% tint.
645
+ tint: shapeFill(palette, accent, isDark, { mode: fillMode })
643
646
  };
644
647
  }
645
- function paintFor(palette, isDark, sideColor) {
648
+ function paintFor(palette, isDark, sideColor, fillMode) {
646
649
  const accent = sideColor && resolveColor(sideColor, palette) || sideColor || getSeriesColors(palette)[0];
647
- return paintForAccent(palette, isDark, accent);
650
+ return paintForAccent(palette, isDark, accent, fillMode);
648
651
  }
649
652
  function resolveBracketLegend(parsed, palette) {
650
653
  const activeTag = parsed.activeTag;
@@ -740,7 +743,8 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
740
743
  });
741
744
  }
742
745
  const baseAccent = parsed.accentColor ?? resolveColor("blue", palette) ?? getSeriesColors(palette)[0];
743
- const basePaint = paintForAccent(palette, isDark, baseAccent);
746
+ const fillMode = parsed.fillMode;
747
+ const basePaint = paintForAccent(palette, isDark, baseAccent, fillMode);
744
748
  const sideColorByLabel = /* @__PURE__ */ new Map();
745
749
  for (const s of parsed.sides) sideColorByLabel.set(s.label, s.color);
746
750
  const sideBarH = layout.sideLabels.length ? 30 : 0;
@@ -753,11 +757,20 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
753
757
  );
754
758
  const top = covered ? bandTop : 2;
755
759
  const c = resolveColor(col.color, palette) ?? col.color;
756
- root.append("rect").attr("x", col.x - BOX_W / 2 - 10).attr("y", top).attr("width", BOX_W + 20).attr("height", Math.max(0, layout.height - top)).attr("rx", 10).attr("fill", mix(c, palette.bg, isDark ? 12 : 8));
760
+ root.append("rect").attr("x", col.x - BOX_W / 2 - 10).attr("y", top).attr("width", BOX_W + 20).attr("height", Math.max(0, layout.height - top)).attr("rx", 10).attr(
761
+ "fill",
762
+ fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(c, palette.bg, isDark ? 12 : 8)
763
+ ).call((sel) => {
764
+ if (fillMode === "outline")
765
+ sel.attr("stroke", mix(c, palette.bg, 35)).attr("stroke-width", 1);
766
+ });
757
767
  }
758
768
  for (const s of layout.sideLabels) {
759
769
  const c = s.color ? resolveColor(s.color, palette) ?? s.color : basePaint.accent;
760
- root.append("rect").attr("x", s.x0 - 8).attr("y", 2).attr("width", s.x1 - s.x0 + 16).attr("height", 24).attr("rx", 8).attr("fill", mix(c, palette.bg, isDark ? 20 : 14)).attr("stroke", mix(c, palette.bg, 55)).attr("stroke-width", 1);
770
+ root.append("rect").attr("x", s.x0 - 8).attr("y", 2).attr("width", s.x1 - s.x0 + 16).attr("height", 24).attr("rx", 8).attr(
771
+ "fill",
772
+ fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(c, palette.bg, isDark ? 20 : 14)
773
+ ).attr("stroke", fillMode === "outline" ? c : mix(c, palette.bg, 55)).attr("stroke-width", 1);
761
774
  root.append("text").attr("x", (s.x0 + s.x1) / 2).attr("y", 18).attr("text-anchor", "middle").attr("font-size", 13).attr("font-weight", 800).attr("letter-spacing", 0.3).attr("fill", c).text(clip(s.label, s.x1 - s.x0, 13));
762
775
  }
763
776
  for (const col of layout.columns) {
@@ -772,7 +785,7 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
772
785
  drawConnector(root, m, m.botFrom, m.y + HALF_SPAN2, basePaint);
773
786
  }
774
787
  for (const m of layout.matches) {
775
- const sidePaint = m.side && sideColorByLabel.get(m.side) ? paintFor(palette, isDark, sideColorByLabel.get(m.side)) : basePaint;
788
+ const sidePaint = m.side && sideColorByLabel.get(m.side) ? paintFor(palette, isDark, sideColorByLabel.get(m.side), fillMode) : basePaint;
776
789
  const topSeed = seedByName.get(m.top ?? "") ?? null;
777
790
  const botSeed = seedByName.get(m.bot ?? "") ?? null;
778
791
  let homeName = m.home;
@@ -810,7 +823,8 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
810
823
  palette,
811
824
  isDark,
812
825
  m,
813
- activeKey
826
+ activeKey,
827
+ fillMode
814
828
  );
815
829
  drawBox(
816
830
  root,
@@ -822,7 +836,8 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
822
836
  palette,
823
837
  isDark,
824
838
  m,
825
- activeKey
839
+ activeKey,
840
+ fillMode
826
841
  );
827
842
  if (isUpset) drawUpset(root, m, sidePaint);
828
843
  if (m.commentary.length) drawCommentary(root, m, palette);
@@ -841,10 +856,10 @@ function drawConnector(g, m, from, toCy, paint) {
841
856
  const d = from.yA !== from.yB ? `M ${childEdge} ${from.yA} H ${midX} M ${childEdge} ${from.yB} H ${midX} M ${midX} ${vLo} V ${vHi} M ${midX} ${toCy} H ${parentEdge}` : `M ${childEdge} ${from.y} H ${midX} V ${toCy} H ${parentEdge}`;
842
857
  g.append("path").attr("d", d).attr("fill", "none").attr("stroke", paint.wire).attr("stroke-width", 1.5);
843
858
  }
844
- function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey) {
859
+ function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey, fillMode) {
845
860
  const x = cx - BOX_W / 2;
846
861
  const y = cy - BOX_H / 2;
847
- const paint = info.tagColor ? paintForAccent(palette, isDark, info.tagColor) : sidePaint;
862
+ const paint = info.tagColor ? paintForAccent(palette, isDark, info.tagColor, fillMode) : sidePaint;
848
863
  const cell = g.append("g").attr("class", "dgmo-bracket-box");
849
864
  if (m.lineNumber !== null) cell.attr("data-line-number", m.lineNumber);
850
865
  if (activeKey && info.tagValue)
@@ -878,22 +893,29 @@ function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey
878
893
  } else if (info.pending) {
879
894
  stroke = mix(paint.accent, paint.hair, 50);
880
895
  }
896
+ const onSolid = fillMode === "solid" && (info.isChampion || info.isWinner) ? contrastText(
897
+ paint.tint,
898
+ palette.textOnFillLight,
899
+ palette.textOnFillDark
900
+ ) : null;
901
+ if (onSolid) textColor = onSolid;
902
+ const gutterColor = onSolid ?? paint.muted;
881
903
  const rect = cell.append("rect").attr("x", x).attr("y", y).attr("width", BOX_W).attr("height", BOX_H).attr("rx", 6).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", sw);
882
904
  if (dash) rect.attr("stroke-dasharray", dash);
883
905
  let leftPad = 11;
884
906
  if (info.seed !== null) {
885
- cell.append("text").attr("x", x + 9).attr("y", cy + 4).attr("text-anchor", "start").attr("font-size", 10).attr("font-weight", 700).attr("fill", paint.muted).text(info.seed);
907
+ cell.append("text").attr("x", x + 9).attr("y", cy + 4).attr("text-anchor", "start").attr("font-size", 10).attr("font-weight", 700).attr("fill", gutterColor).text(info.seed);
886
908
  leftPad = 9 + Math.max(12, measureText(String(info.seed), 10)) + 6;
887
909
  }
888
910
  let rightPad = 11;
889
911
  if (info.score) rightPad += 20;
890
912
  if (info.isHome) {
891
- drawHome(cell, x + BOX_W - rightPad - 6, cy, paint.muted);
913
+ drawHome(cell, x + BOX_W - rightPad - 6, cy, gutterColor);
892
914
  rightPad += 16;
893
915
  }
894
916
  cell.append("text").attr("x", x + leftPad).attr("y", cy + 4).attr("text-anchor", "start").attr("font-size", 12.5).attr("font-weight", weight).attr("fill", textColor).text(clip(isTBD ? "TBD" : name, BOX_W - leftPad - rightPad, 12.5));
895
917
  if (info.score) {
896
- cell.append("text").attr("x", x + BOX_W - 11).attr("y", cy + 4).attr("text-anchor", "end").attr("font-size", 12).attr("font-weight", info.isWinner ? 700 : 500).attr("fill", info.isWinner ? textColor : paint.muted).text(info.score);
918
+ cell.append("text").attr("x", x + BOX_W - 11).attr("y", cy + 4).attr("text-anchor", "end").attr("font-size", 12).attr("font-weight", info.isWinner ? 700 : 500).attr("fill", info.isWinner ? textColor : gutterColor).text(info.score);
897
919
  }
898
920
  }
899
921
  function drawHome(cell, hx, cy, color) {
@@ -937,4 +959,4 @@ export {
937
959
  renderBracket,
938
960
  renderBracketForExport
939
961
  };
940
- //# sourceMappingURL=chunk-FA6K3FWM.js.map
962
+ //# sourceMappingURL=chunk-CCNDLW7Z.js.map
@@ -3,10 +3,10 @@ import {
3
3
  layoutJourneyMap,
4
4
  scoreToColor,
5
5
  scoreToCurveY
6
- } from "./chunk-F7BFXWNQ.js";
6
+ } from "./chunk-YIBAWQGJ.js";
7
7
  import {
8
8
  wrapNoteBody
9
- } from "./chunk-BCYVE3N5.js";
9
+ } from "./chunk-TYS6CSS5.js";
10
10
  import {
11
11
  NOTE_BULLET_INDENT
12
12
  } from "./chunk-5DH3KYFH.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-YYVTBZZC.js";
22
22
  import {
23
23
  renderIntegratedLegend
24
- } from "./chunk-HEVYAHLW.js";
24
+ } from "./chunk-AUIM2NVH.js";
25
25
  import {
26
26
  FONT_FAMILY
27
27
  } from "./chunk-6KFWC4CO.js";
@@ -29,19 +29,23 @@ import {
29
29
  measureText,
30
30
  truncateText,
31
31
  wrapTextToWidth
32
- } from "./chunk-5LWQH6QV.js";
32
+ } from "./chunk-WCT3NYCV.js";
33
33
  import {
34
34
  parseJourneyMap
35
- } from "./chunk-6HJBFVLO.js";
35
+ } from "./chunk-XD6ZYURY.js";
36
36
  import {
37
37
  contrastText,
38
38
  mix,
39
- shapeFill
40
- } from "./chunk-P6T66CCZ.js";
39
+ shapeFill,
40
+ themeBaseBg
41
+ } from "./chunk-WBM7ZNDI.js";
41
42
  import {
42
43
  resolveActiveTagGroup,
43
44
  tagAttrKey
44
- } from "./chunk-FJUNPCYI.js";
45
+ } from "./chunk-HHKO6SKY.js";
46
+ import {
47
+ fillModeFromOptions
48
+ } from "./chunk-BRENJ2BQ.js";
45
49
 
46
50
  // src/journey-map/renderer.ts
47
51
  import * as d3 from "d3-selection";
@@ -76,7 +80,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
76
80
  const onActiveTagGroupChange = options?.onActiveTagGroupChange;
77
81
  const collapsedPhases = options?.collapsedPhases ?? /* @__PURE__ */ new Set();
78
82
  const onPhaseToggle = options?.onPhaseToggle;
79
- const solid = parsed.options["solid-fill"] === "on";
83
+ const fillMode = fillModeFromOptions(parsed.options);
80
84
  const layout = layoutJourneyMap(parsed, palette, {
81
85
  collapsedPhases,
82
86
  ...exportDims !== void 0 && { exportDims },
@@ -131,7 +135,9 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
131
135
  const textX = panelX + CARD_PADDING_X;
132
136
  const clipId = "persona-clip";
133
137
  defs.append("clipPath").attr("id", clipId).append("rect").attr("x", panelX).attr("y", panelY).attr("width", panelWidth).attr("height", panelHeight).attr("rx", CARD_RADIUS);
134
- const personaFill = shapeFill(palette, personaColor, isDark, { solid });
138
+ const personaFill = shapeFill(palette, personaColor, isDark, {
139
+ mode: fillMode
140
+ });
135
141
  const onPersonaText = contrastText(
136
142
  personaFill,
137
143
  palette.textOnFillLight,
@@ -139,12 +145,21 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
139
145
  );
140
146
  personaG.append("rect").attr("x", panelX).attr("y", panelY).attr("width", panelWidth).attr("height", panelHeight).attr("rx", CARD_RADIUS).attr("fill", personaFill);
141
147
  if (descLines.length > 0) {
142
- personaG.append("line").attr("x1", panelX + 1).attr("x2", panelX + panelWidth - silhouetteZone).attr("y1", panelY + titleRowH).attr("y2", panelY + titleRowH).attr("stroke", solid ? onPersonaText : personaColor).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
148
+ personaG.append("line").attr("x1", panelX + 1).attr("x2", panelX + panelWidth - silhouetteZone).attr("y1", panelY + titleRowH).attr("y2", panelY + titleRowH).attr("stroke", fillMode === "solid" ? onPersonaText : personaColor).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
143
149
  }
144
150
  const silX = panelX + panelWidth - 32;
145
151
  const silY = panelY + panelHeight / 2 - 6;
146
152
  const silClip = personaG.append("g").attr("clip-path", `url(#${clipId})`);
147
- renderPersonaSilhouette(silClip, silX, silY, personaColor, palette, 1.2);
153
+ renderPersonaSilhouette(
154
+ silClip,
155
+ silX,
156
+ silY,
157
+ personaColor,
158
+ palette,
159
+ isDark,
160
+ 1.2,
161
+ fillMode
162
+ );
148
163
  personaG.append("rect").attr("x", panelX).attr("y", panelY).attr("width", panelWidth).attr("height", panelHeight).attr("rx", CARD_RADIUS).attr("fill", "none").attr("stroke", personaColor).attr("stroke-width", CARD_STROKE_WIDTH);
149
164
  personaG.append("text").attr("x", textX).attr("y", panelY + CARD_PADDING_Y + FONT_SIZE_STEP).attr("font-size", FONT_SIZE_STEP).attr("font-weight", "500").attr("fill", onPersonaText).text(parsed.persona.name);
150
165
  for (let li = 0; li < descLines.length; li++) {
@@ -280,7 +295,9 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
280
295
  pt.y,
281
296
  pt.score,
282
297
  palette,
283
- isDark
298
+ isDark,
299
+ void 0,
300
+ fillMode
284
301
  );
285
302
  addEmotionLabel(faceG, pt, palette);
286
303
  if (step) {
@@ -313,7 +330,9 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
313
330
  pt.y,
314
331
  pt.score,
315
332
  palette,
316
- isDark
333
+ isDark,
334
+ void 0,
335
+ fillMode
317
336
  );
318
337
  addEmotionLabel(faceG, pt, palette);
319
338
  if (step) {
@@ -398,7 +417,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
398
417
  palette,
399
418
  stepColor ?? palette.primary,
400
419
  isDark,
401
- { solid }
420
+ { mode: fillMode }
402
421
  );
403
422
  const rowStroke = stepColor ?? palette.textMuted;
404
423
  itemG.append("rect").attr("x", listX).attr("y", itemY).attr("width", cardW).attr("height", COLLAPSED_CARD_H).attr("rx", CARD_RADIUS).attr("fill", rowFill).attr("stroke", rowStroke).attr("stroke-width", CARD_STROKE_WIDTH);
@@ -412,7 +431,8 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
412
431
  step.score,
413
432
  palette,
414
433
  isDark,
415
- COLLAPSED_FACE_R
434
+ COLLAPSED_FACE_R,
435
+ fillMode
416
436
  );
417
437
  faceG.attr("data-line-number", step.lineNumber);
418
438
  faceG.attr("data-score", step.score);
@@ -441,7 +461,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
441
461
  effectiveActiveGroup,
442
462
  parsed.tagGroups,
443
463
  onNavigateToLine,
444
- solid
464
+ fillMode
445
465
  );
446
466
  }
447
467
  }
@@ -456,7 +476,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
456
476
  effectiveActiveGroup,
457
477
  parsed.tagGroups,
458
478
  onNavigateToLine,
459
- solid
479
+ fillMode
460
480
  );
461
481
  }
462
482
  }
@@ -530,7 +550,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
530
550
  );
531
551
  const by = Math.max(PADDING, fcy - FACE_HOVER_R - THOUGHT_GAP - bh);
532
552
  const scoreColor = scoreToColor(score, palette);
533
- const tintedBg = mix(scoreColor, palette.surface, 20);
553
+ const tintedBg = fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(scoreColor, palette.surface, 20);
534
554
  const g = overlayG.append("g").attr("class", "journey-thought-hover");
535
555
  g.append("rect").attr("x", bx).attr("y", by).attr("width", bw).attr("height", bh).attr("rx", CARD_RADIUS).attr("fill", tintedBg).attr("stroke", scoreColor).attr("stroke-width", CARD_STROKE_WIDTH);
536
556
  g.append("line").attr("x1", fcx).attr("y1", by + bh).attr("x2", fcx).attr("y2", fcy - FACE_HOVER_R - 1).attr("stroke", scoreColor).attr("stroke-width", CARD_STROKE_WIDTH);
@@ -624,7 +644,7 @@ function resolveStepColor(step, scoreColor, activeGroup, tagGroups, _palette) {
624
644
  );
625
645
  return entry?.color;
626
646
  }
627
- function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onNavigateToLine, solid) {
647
+ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onNavigateToLine, fillMode) {
628
648
  const stepG = parent.append("g").attr("class", "journey-step").attr("data-line-number", sl.step.lineNumber);
629
649
  if (sl.step.score !== void 0) {
630
650
  stepG.attr("data-score", sl.step.score);
@@ -645,7 +665,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
645
665
  palette,
646
666
  resolvedColor ?? palette.primary,
647
667
  isDark,
648
- { ...solid !== void 0 && { solid } }
668
+ { mode: fillMode }
649
669
  );
650
670
  const cardStroke = resolvedColor ?? palette.textMuted;
651
671
  const onCardText = contrastText(
@@ -663,7 +683,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
663
683
  const cardAnnotations = sl.step.annotations;
664
684
  const hasContent = sl.step.description || cardAnnotations.length > 0;
665
685
  if (hasContent) {
666
- stepG.append("line").attr("x1", cx).attr("y1", cy + titleBlockH).attr("x2", cx + sl.width).attr("y2", cy + titleBlockH).attr("stroke", solid ? onCardText : cardStroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
686
+ stepG.append("line").attr("x1", cx).attr("y1", cy + titleBlockH).attr("x2", cx + sl.width).attr("y2", cy + titleBlockH).attr("stroke", fillMode === "solid" ? onCardText : cardStroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
667
687
  }
668
688
  let metaY = cy + titleBlockH + CARD_META_LINE_HEIGHT;
669
689
  if (sl.step.description) {
@@ -685,7 +705,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
685
705
  const annoColor = annotationColor(anno.type, palette);
686
706
  const iconPaths = annotationIconPaths(anno.type);
687
707
  const annoLines = wrapText(anno.text, annoTextW, FONT_SIZE_META);
688
- const iconColor = solid ? onCardText : annoColor;
708
+ const iconColor = fillMode === "solid" ? onCardText : annoColor;
689
709
  renderAnnotationIcon(
690
710
  stepG,
691
711
  cx + CARD_PADDING_X,
@@ -710,7 +730,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
710
730
  const TAG_GAP = 6;
711
731
  const stripY = cy - TAG_STRIP_HEIGHT - TAG_GAP;
712
732
  const stripFill = shapeFill(palette, stripColor, isDark, {
713
- ...solid !== void 0 && { solid }
733
+ mode: fillMode
714
734
  });
715
735
  stepG.append("rect").attr("x", cx).attr("y", stripY).attr("width", sl.width).attr("height", TAG_STRIP_HEIGHT).attr("rx", CARD_RADIUS).attr("fill", stripFill).attr("stroke", stripColor).attr("stroke-width", CARD_STROKE_WIDTH);
716
736
  const stripTextColor = contrastText(
@@ -727,8 +747,8 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
727
747
  });
728
748
  }
729
749
  }
730
- function renderPersonaSilhouette(parent, cx, cy, color, palette, scale = 1) {
731
- const fill = mix(color, palette.bg, 70);
750
+ function renderPersonaSilhouette(parent, cx, cy, color, palette, isDark, scale = 1, fillMode) {
751
+ const fill = fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(color, palette.bg, 70);
732
752
  const stroke = color;
733
753
  const s = scale;
734
754
  parent.append("path").attr(
@@ -740,12 +760,12 @@ function renderPersonaSilhouette(parent, cx, cy, color, palette, scale = 1) {
740
760
  `M ${cx} ${cy - 12 * s} C ${cx + 10 * s} ${cy - 12 * s}, ${cx + 9 * s} ${cy + 2 * s}, ${cx + 6 * s} ${cy + 6 * s} Q ${cx} ${cy + 9 * s}, ${cx - 6 * s} ${cy + 6 * s} C ${cx - 9 * s} ${cy + 2 * s}, ${cx - 10 * s} ${cy - 12 * s}, ${cx} ${cy - 12 * s} Z`
741
761
  ).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", 1.2);
742
762
  }
743
- function renderScoreFace(parent, cx, cy, score, palette, isDark, radius) {
763
+ function renderScoreFace(parent, cx, cy, score, palette, isDark, radius, fillMode) {
744
764
  const r = radius ?? FACE_RADIUS;
745
765
  const color = scoreToColor(score, palette);
746
766
  const g = parent.append("g").attr("class", "journey-face").attr("data-cx", cx).attr("data-cy", cy);
747
767
  const iconG = g.append("g").attr("class", "journey-face-icon");
748
- const faceFill = shapeFill(palette, color, isDark);
768
+ const faceFill = fillMode === "outline" ? shapeFill(palette, color, isDark, { mode: "outline" }) : shapeFill(palette, color, isDark);
749
769
  iconG.append("circle").attr("cx", cx).attr("cy", cy).attr("r", r + 1).attr("fill", palette.bg);
750
770
  iconG.append("circle").attr("cx", cx).attr("cy", cy).attr("r", r).attr("fill", faceFill).attr("stroke", color).attr("stroke-width", 2);
751
771
  const eyeColor = color;
@@ -848,4 +868,4 @@ export {
848
868
  renderJourneyMap,
849
869
  renderJourneyMapForExport
850
870
  };
851
- //# sourceMappingURL=chunk-2KGXHFYK.js.map
871
+ //# sourceMappingURL=chunk-CIRFIL4M.js.map