@diagrammo/dgmo 0.51.0 → 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 (201) 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 +70 -42
  6. package/dist/advanced.js +115 -119
  7. package/dist/auto.js +125 -123
  8. package/dist/auto.mjs +952 -492
  9. package/dist/block.js +89 -52
  10. package/dist/{charts-d3-7E4B4IMW.js → charts-d3-MXEP6BNP.js} +7 -7
  11. package/dist/{chunk-CC4YRBWV.js → chunk-3HF5YEFJ.js} +17 -7
  12. package/dist/{chunk-5X6YQA2J.js → chunk-3HGU63UY.js} +12 -11
  13. package/dist/{chunk-4XFBQT5O.js → chunk-3LK5DNED.js} +2 -2
  14. package/dist/{chunk-IEDMFNU7.js → chunk-3QD7VP3U.js} +9 -4
  15. package/dist/{chunk-JJXGQIRV.js → chunk-3YRPZ7ZZ.js} +2 -2
  16. package/dist/{chunk-OJTXTQA2.js → chunk-44VCIPHF.js} +21 -17
  17. package/dist/{chunk-RAHVMKBG.js → chunk-4AQRFDXL.js} +2 -2
  18. package/dist/{chunk-6MNGECP2.js → chunk-4IHAV6O7.js} +2 -2
  19. package/dist/{chunk-ENRS56GC.js → chunk-4UNQ6X24.js} +10 -7
  20. package/dist/{chunk-JM4LEPY3.js → chunk-4YFKQ5WT.js} +6 -3
  21. package/dist/{chunk-U5SI5NIM.js → chunk-5223KXFD.js} +39 -22
  22. package/dist/{chunk-NI3XQBPB.js → chunk-5BHJZH62.js} +3 -3
  23. package/dist/{chunk-QYTPPDAO.js → chunk-5HILBT7X.js} +2 -2
  24. package/dist/{chunk-I2QZFCS2.js → chunk-5NGAO4QK.js} +4 -4
  25. package/dist/{chunk-BGP54HVR.js → chunk-5RP7JRVP.js} +4 -4
  26. package/dist/{chunk-IE477RQZ.js → chunk-5SEVICBT.js} +5 -5
  27. package/dist/{chunk-OZPBJM5Q.js → chunk-6EJITS44.js} +8 -5
  28. package/dist/{chunk-F3FYUFUH.js → chunk-6HQH6JZE.js} +12 -11
  29. package/dist/{chunk-X7EC3L2H.js → chunk-6LBQ7ELG.js} +14 -15
  30. package/dist/{chunk-5WPNFSXP.js → chunk-75G3Q4DK.js} +3 -3
  31. package/dist/{chunk-BYJBIALT.js → chunk-77FGAVZC.js} +10 -7
  32. package/dist/{chunk-2EQMXBBQ.js → chunk-7BIZCTAX.js} +2 -2
  33. package/dist/{chunk-B63YB7X3.js → chunk-7KINELPI.js} +110 -48
  34. package/dist/{chunk-AB7INMR5.js → chunk-7QE3XMRK.js} +15 -14
  35. package/dist/{chunk-IUJODQKX.js → chunk-AAXZDUOV.js} +15 -14
  36. package/dist/{chunk-2UJSV2VT.js → chunk-AL672HNE.js} +3 -3
  37. package/dist/{chunk-WQLMU7VG.js → chunk-ARGMQ3H4.js} +2 -2
  38. package/dist/{chunk-OU7HLO7I.js → chunk-AUIM2NVH.js} +3 -3
  39. package/dist/{chunk-RXKTSFDL.js → chunk-BKVOYV6I.js} +24 -32
  40. package/dist/{chunk-TK2VQQX2.js → chunk-BPIZNB5O.js} +14 -12
  41. package/dist/{chunk-3LV2NCB6.js → chunk-BPY242XU.js} +6 -4
  42. package/dist/{chunk-LV4BETUU.js → chunk-BRENJ2BQ.js} +32 -2
  43. package/dist/{chunk-Y6GBQTBK.js → chunk-CCNDLW7Z.js} +41 -19
  44. package/dist/{chunk-EXOQP75F.js → chunk-CIRFIL4M.js} +47 -27
  45. package/dist/{chunk-RBDIYLA5.js → chunk-DAOFNU6J.js} +17 -1
  46. package/dist/{chunk-4VWJ4LW2.js → chunk-DYWQFQJP.js} +44 -34
  47. package/dist/{chunk-QZPEGJOM.js → chunk-EMLPOL77.js} +15 -8
  48. package/dist/{chunk-IUO34HKW.js → chunk-FHGVORFO.js} +26 -22
  49. package/dist/{chunk-6H7O2OPM.js → chunk-FQ7HTV52.js} +4 -2
  50. package/dist/{chunk-7DYOELRK.js → chunk-FQMUHRVC.js} +69 -30
  51. package/dist/{chunk-AFIEPDLX.js → chunk-FT3ZYWET.js} +14 -3
  52. package/dist/{chunk-ND76YJCN.js → chunk-FUPF2UYQ.js} +35 -11
  53. package/dist/{chunk-6NFYEQDX.js → chunk-FY5MSZAP.js} +15 -3
  54. package/dist/{chunk-IEWG6J7C.js → chunk-GCYTI3DE.js} +40 -31
  55. package/dist/{chunk-GNSFLJAA.js → chunk-GJFAMOGK.js} +3 -3
  56. package/dist/{chunk-VNSXLA6G.js → chunk-H7KENAZO.js} +16 -12
  57. package/dist/{chunk-KFNWFNAA.js → chunk-HBPDFCQY.js} +3 -3
  58. package/dist/{chunk-467TVMQL.js → chunk-HHKO6SKY.js} +2 -2
  59. package/dist/{chunk-6K2M4VSR.js → chunk-HQQNCY7W.js} +21 -8
  60. package/dist/{chunk-ZJ3LS7DW.js → chunk-HWX6ZHF3.js} +2 -2
  61. package/dist/{chunk-Q62FEYK3.js → chunk-ICPJPQ5C.js} +2 -2
  62. package/dist/{chunk-MVN25IF6.js → chunk-IM6PDDCE.js} +4 -4
  63. package/dist/{chunk-65WJYYKJ.js → chunk-INE5YJBZ.js} +11 -6
  64. package/dist/{chunk-EDA6C7MV.js → chunk-J6QROYDA.js} +13 -9
  65. package/dist/{chunk-3ODS2VGL.js → chunk-J7KJR3R6.js} +116 -96
  66. package/dist/{chunk-JEUJOX5X.js → chunk-J7TLCB2Q.js} +2 -2
  67. package/dist/{chunk-GD6L76WD.js → chunk-JRCOYRRH.js} +19 -7
  68. package/dist/{chunk-G3PF3S7P.js → chunk-K2I2XOZD.js} +9 -9
  69. package/dist/{chunk-5PDTIBLV.js → chunk-K4EOKJA6.js} +17 -7
  70. package/dist/{chunk-5SVOCD5W.js → chunk-KGVZ5VGH.js} +10 -7
  71. package/dist/{chunk-QHI5XVUJ.js → chunk-LBMS4AW6.js} +20 -19
  72. package/dist/{chunk-FTBZV6NE.js → chunk-LGT3PZCJ.js} +22 -14
  73. package/dist/{chunk-E7Y3SYKW.js → chunk-LTXOLDUZ.js} +9 -6
  74. package/dist/{chunk-GTWKD3QT.js → chunk-MUE65OTD.js} +5 -4
  75. package/dist/{chunk-TRM2J7ZN.js → chunk-MUVJ57EP.js} +10 -14
  76. package/dist/{chunk-RBHWPDBB.js → chunk-NNS4E7CW.js} +6 -4
  77. package/dist/{chunk-NNAAJVBU.js → chunk-NR5HCAUD.js} +1 -1
  78. package/dist/{chunk-NEQ6GJXB.js → chunk-ONU3U4GL.js} +2 -2
  79. package/dist/{chunk-XEQXCIBC.js → chunk-PRI2OD4E.js} +10 -3
  80. package/dist/{chunk-U6EQI3U6.js → chunk-QBZYACOG.js} +3 -3
  81. package/dist/{chunk-5PZT4DQG.js → chunk-QGATPIPX.js} +15 -9
  82. package/dist/{chunk-YGJZWZTY.js → chunk-QHXCAEMX.js} +7 -4
  83. package/dist/{chunk-RLFVAKEO.js → chunk-QJMKPUYK.js} +15 -5
  84. package/dist/{chunk-Z6XJQ6KO.js → chunk-QVENJMNX.js} +2 -2
  85. package/dist/{chunk-GROLTAWZ.js → chunk-QZX5S6R3.js} +2 -2
  86. package/dist/{chunk-TMACGPW5.js → chunk-R3YSD62R.js} +3 -3
  87. package/dist/{chunk-332ZR4QU.js → chunk-REJAIQ5S.js} +4 -4
  88. package/dist/{chunk-5F5ELR3V.js → chunk-ROOE4R4Y.js} +8 -5
  89. package/dist/{chunk-XHVV4NVW.js → chunk-RT7ACF77.js} +12 -2
  90. package/dist/{chunk-GGHRAITI.js → chunk-SMRFPVLQ.js} +3 -3
  91. package/dist/{chunk-JSSX2SX4.js → chunk-SWSIKFEB.js} +2 -2
  92. package/dist/{chunk-DY7XLRHK.js → chunk-T4A4TSTJ.js} +14 -15
  93. package/dist/{chunk-VB4UJ3H2.js → chunk-TJVLKNGR.js} +20 -10
  94. package/dist/{chunk-FC5I2KXV.js → chunk-TPFKKXCB.js} +3 -3
  95. package/dist/{chunk-AXW3M6OQ.js → chunk-TTIM6YTT.js} +28 -18
  96. package/dist/{chunk-WJ7RW65H.js → chunk-UBLHQTLV.js} +13 -12
  97. package/dist/{chunk-AE7II3E3.js → chunk-UNURMIQO.js} +2 -2
  98. package/dist/{chunk-PZDBOK2Q.js → chunk-VILVLS7P.js} +5 -3
  99. package/dist/{chunk-3YSQZ75W.js → chunk-VQOCMUWI.js} +37 -26
  100. package/dist/{chunk-P6T66CCZ.js → chunk-WBM7ZNDI.js} +3 -2
  101. package/dist/{chunk-4QZ43D7I.js → chunk-XD6ZYURY.js} +9 -4
  102. package/dist/{chunk-3JLKYGBQ.js → chunk-YIBAWQGJ.js} +6 -3
  103. package/dist/{chunk-ZO27FGJS.js → chunk-YTMTPUH4.js} +7 -4
  104. package/dist/{chunk-6BQFET7X.js → chunk-Z5QVYKR7.js} +11 -3
  105. package/dist/{chunk-KJGG2JKQ.js → chunk-ZEF5M5MB.js} +52 -45
  106. package/dist/{chunk-32XPAAET.js → chunk-ZJV7GYR4.js} +3 -3
  107. package/dist/{chunk-2ILHQOL3.js → chunk-ZNWAYU6N.js} +11 -7
  108. package/dist/cli.cjs +146 -145
  109. package/dist/clock.js +16 -22
  110. package/dist/dgmo-router-X7ZGAPIE.js +86 -0
  111. package/dist/{dimensions-F7B5C4BJ.js → dimensions-45H6JQEY.js} +6 -6
  112. package/dist/editor.js +4 -2
  113. package/dist/element.js +126 -124
  114. package/dist/element.mjs +952 -492
  115. package/dist/{flowchart-parser-MY53QWTZ.js → flowchart-parser-UKELHBSB.js} +4 -4
  116. package/dist/{flowchart-renderer-AQSMEMYF.js → flowchart-renderer-MNCDS7MV.js} +7 -7
  117. package/dist/highlight.d.ts +21 -1
  118. package/dist/highlight.js +93 -3
  119. package/dist/index.js +51 -51
  120. package/dist/{layout-JDJAEQ3P.js → layout-2L3WMRYU.js} +4 -4
  121. package/dist/{layout-MUPRALE5.js → layout-A4XWNVID.js} +4 -4
  122. package/dist/{layout-46366KBT.js → layout-A5UHRWVH.js} +3 -3
  123. package/dist/{layout-HYZPWAK5.js → layout-GM4UGR7B.js} +4 -3
  124. package/dist/{layout-CBCLPMSG.js → layout-GQQJXNYH.js} +4 -4
  125. package/dist/{layout-YVTNOTN4.js → layout-IIE2S5FK.js} +3 -3
  126. package/dist/{layout-4DIUOX2T.js → layout-VMCRX66I.js} +4 -4
  127. package/dist/{palettes-PRJ2RI6D.js → palettes-UDLZ2SA4.js} +2 -2
  128. package/dist/{parser-BKI42XBQ.js → parser-2ECN6JA2.js} +4 -4
  129. package/dist/{parser-C3D7MVXY.js → parser-4WTIHM5J.js} +3 -3
  130. package/dist/{parser-5A2UWU6B.js → parser-5H2BTSJQ.js} +3 -3
  131. package/dist/{parser-OK2ILHRT.js → parser-75KVXUNS.js} +4 -4
  132. package/dist/{parser-SRVFR7PM.js → parser-774AC53T.js} +4 -4
  133. package/dist/{parser-BEPSWJAD.js → parser-BE4YCSRU.js} +3 -3
  134. package/dist/{parser-B77S5SZM.js → parser-CNGUQUQI.js} +3 -3
  135. package/dist/{parser-2Q2T4C3B.js → parser-DEUUSQIN.js} +7 -7
  136. package/dist/{parser-5PDYJGWA.js → parser-DQAFLUJB.js} +4 -4
  137. package/dist/{parser-KKTJ6M3Y.js → parser-EYCKNKQA.js} +5 -5
  138. package/dist/{parser-UKFFZCFJ.js → parser-FXISIU6A.js} +4 -4
  139. package/dist/{parser-UMWPLORP.js → parser-GTB4XC7P.js} +5 -5
  140. package/dist/{parser-Z4TZV2CB.js → parser-GVEPAUSD.js} +4 -4
  141. package/dist/{parser-AIMHGJRR.js → parser-HSQGTY4G.js} +4 -4
  142. package/dist/{parser-OUTPNJWC.js → parser-HVKRINUS.js} +3 -3
  143. package/dist/{parser-JA7JQ7NF.js → parser-J5MIEYO4.js} +5 -5
  144. package/dist/parser-KMZIXLDZ.js +13 -0
  145. package/dist/{parser-CDG7CHV5.js → parser-LJHXWSXU.js} +3 -3
  146. package/dist/{parser-PORDUX5E.js → parser-PT3W72G5.js} +4 -4
  147. package/dist/{parser-CZOJ7XQ6.js → parser-SBJQDPHL.js} +4 -4
  148. package/dist/{parser-I6GGFKOQ.js → parser-SUWWWCMX.js} +3 -3
  149. package/dist/{parser-AZJ25OKK.js → parser-SXDRNZOA.js} +4 -4
  150. package/dist/parser-UMILOW3M.js +14 -0
  151. package/dist/{parser-GKLZKEIK.js → parser-UP3AZ367.js} +4 -4
  152. package/dist/{parser-57ILIFZ2.js → parser-WHPRV3X5.js} +5 -5
  153. package/dist/{parser-H6ABKHZZ.js → parser-WX3UODSJ.js} +4 -4
  154. package/dist/{parser-FQ6GZFMR.js → parser-XCIEN3KN.js} +4 -4
  155. package/dist/{parser-E2RL6JYF.js → parser-XIRTUMVN.js} +5 -5
  156. package/dist/{parser-3A42DZ72.js → parser-YKCGIG45.js} +3 -3
  157. package/dist/{parser-EH5VE7ZN.js → parser-YKYMQG3B.js} +4 -4
  158. package/dist/{parser-6ZKABF5S.js → parser-ZGM2OJ6Y.js} +5 -5
  159. package/dist/{parser-4RFTKAQX.js → parser-ZL5QUFVH.js} +4 -4
  160. package/dist/pert.d.ts +2 -2
  161. package/dist/{renderer-RYR3TJ46.js → renderer-3F7OS2AX.js} +10 -10
  162. package/dist/{renderer-TGTUABCI.js → renderer-4QB4K7Q3.js} +6 -6
  163. package/dist/{renderer-GHPZMFU2.js → renderer-5DAKMIU2.js} +3 -3
  164. package/dist/{renderer-3K3IB7D5.js → renderer-5H4SY7YY.js} +6 -6
  165. package/dist/{renderer-QIWVHWZO.js → renderer-5PIQPFOX.js} +4 -3
  166. package/dist/{renderer-NKJ24TEA.js → renderer-6MU37QF5.js} +6 -6
  167. package/dist/{renderer-QXPP4TA2.js → renderer-AQVMWJ4M.js} +9 -9
  168. package/dist/{renderer-2AUFT3E2.js → renderer-BDDW6K7N.js} +6 -6
  169. package/dist/{renderer-OYO67VZK.js → renderer-BNB3VIDY.js} +7 -7
  170. package/dist/{renderer-QXGN5H3A.js → renderer-CQY6ATOS.js} +5 -5
  171. package/dist/{renderer-CO2DW7S7.js → renderer-CVW75CXL.js} +9 -9
  172. package/dist/{renderer-KQB7UGDS.js → renderer-DT4XRFEP.js} +4 -3
  173. package/dist/{renderer-GQIESYEM.js → renderer-ERHBSTQT.js} +6 -6
  174. package/dist/{renderer-UV6MI64M.js → renderer-HSHHVYWF.js} +4 -3
  175. package/dist/{renderer-ARMJBP6C.js → renderer-IDPVUFNB.js} +8 -8
  176. package/dist/{renderer-QRWACQRI.js → renderer-ILX6BGKR.js} +6 -6
  177. package/dist/{renderer-F7U3MFCV.js → renderer-JP663HKG.js} +7 -7
  178. package/dist/{renderer-RGIYOTKJ.js → renderer-KNFTTOBL.js} +8 -8
  179. package/dist/{renderer-3YNIWF5I.js → renderer-MVUZBESR.js} +5 -5
  180. package/dist/{renderer-HYGHO4SJ.js → renderer-N4EBR2FV.js} +8 -8
  181. package/dist/{renderer-3YPZHMOU.js → renderer-NHO46CT2.js} +3 -3
  182. package/dist/{renderer-SRKDNDFB.js → renderer-NO2QJ5LZ.js} +7 -7
  183. package/dist/{renderer-2HTNBIF2.js → renderer-OGFV5RXX.js} +8 -8
  184. package/dist/{renderer-HCKJDFXD.js → renderer-PDLESJMS.js} +9 -9
  185. package/dist/{renderer-66MERVQ2.js → renderer-T4MTNINC.js} +6 -6
  186. package/dist/{renderer-RHT4MHFU.js → renderer-TOUGFGTM.js} +7 -7
  187. package/dist/{renderer-EDJ2O4S5.js → renderer-U3KPD43Y.js} +8 -8
  188. package/dist/{renderer-4WR6WMVF.js → renderer-X334IJU2.js} +6 -6
  189. package/dist/{renderer-JC3RDUT7.js → renderer-Y5OAMOCR.js} +6 -6
  190. package/dist/{renderer-GD2COXVL.js → renderer-YONAKAJU.js} +4 -4
  191. package/dist/{renderer-TXJFKPOG.js → renderer-YWMI6Y2U.js} +8 -8
  192. package/dist/{renderer-6RKQPNJI.js → renderer-ZWIH4WDW.js} +7 -7
  193. package/dist/{renderer-radial-FWABAZHB.js → renderer-radial-7CGZMVMS.js} +7 -7
  194. package/dist/{state-parser-6T6CNMPX.js → state-parser-BATWAID2.js} +4 -4
  195. package/dist/{state-renderer-AWZ3ECAX.js → state-renderer-3FKZJ3LP.js} +7 -7
  196. package/docs/ai-integration.md +15 -19
  197. package/docs/language-reference.md +13 -11
  198. package/package.json +1 -1
  199. package/dist/dgmo-router-Y2VEX46B.js +0 -86
  200. package/dist/parser-6BJEXUFX.js +0 -13
  201. package/dist/parser-OK22AC6Y.js +0 -14
@@ -14,7 +14,7 @@ import {
14
14
  renderNoteBadge,
15
15
  renderNoteBox,
16
16
  renderNoteConnector
17
- } from "./chunk-JEUJOX5X.js";
17
+ } from "./chunk-J7TLCB2Q.js";
18
18
  import {
19
19
  EDGE_STROKE_WIDTH,
20
20
  NODE_STROKE_WIDTH
@@ -36,10 +36,13 @@ import {
36
36
  import {
37
37
  contrastText,
38
38
  shapeFill
39
- } from "./chunk-P6T66CCZ.js";
39
+ } from "./chunk-WBM7ZNDI.js";
40
40
  import {
41
41
  parseFlowchart
42
- } from "./chunk-OZPBJM5Q.js";
42
+ } from "./chunk-6EJITS44.js";
43
+ import {
44
+ fillModeFromOptions
45
+ } from "./chunk-BRENJ2BQ.js";
43
46
 
44
47
  // src/graph/flowchart-renderer.ts
45
48
  import * as d3Selection from "d3-selection";
@@ -71,28 +74,34 @@ function shapeDefaultColor(shape, palette, isEndTerminal, colorOff) {
71
74
  return palette.colors.blue;
72
75
  }
73
76
  }
74
- function nodeFill(palette, isDark, shape, nodeColor, isEndTerminal, colorOff, solid) {
77
+ function nodeFill(palette, isDark, shape, nodeColor, isEndTerminal, colorOff, fillMode) {
75
78
  const color = nodeColor ?? shapeDefaultColor(shape, palette, isEndTerminal, colorOff);
76
- return shapeFill(palette, color, isDark, {
77
- ...solid !== void 0 && { solid }
78
- });
79
+ return shapeFill(palette, color, isDark, { mode: fillMode });
79
80
  }
80
81
  function nodeStroke(palette, shape, nodeColor, isEndTerminal, colorOff) {
81
82
  return nodeColor ?? shapeDefaultColor(shape, palette, isEndTerminal, colorOff);
82
83
  }
83
- function renderTerminal(g, node, palette, isDark, isEnd, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
84
+ function renderTerminal(g, node, palette, isDark, isEnd, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
84
85
  const w = node.width;
85
86
  const h = node.height;
86
87
  const rx = h / 2;
87
88
  g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", rx).attr("ry", rx).attr(
88
89
  "fill",
89
- nodeFill(palette, isDark, node.shape, node.color, isEnd, colorOff, solid)
90
+ nodeFill(
91
+ palette,
92
+ isDark,
93
+ node.shape,
94
+ node.color,
95
+ isEnd,
96
+ colorOff,
97
+ fillMode
98
+ )
90
99
  ).attr(
91
100
  "stroke",
92
101
  nodeStroke(palette, node.shape, node.color, isEnd, colorOff)
93
102
  ).attr("stroke-width", sNodeStrokeWidth);
94
103
  }
95
- function renderProcess(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
104
+ function renderProcess(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
96
105
  const w = node.width;
97
106
  const h = node.height;
98
107
  g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", 3).attr("ry", 3).attr(
@@ -104,14 +113,14 @@ function renderProcess(g, node, palette, isDark, colorOff, solid, sNodeStrokeWid
104
113
  node.color,
105
114
  void 0,
106
115
  colorOff,
107
- solid
116
+ fillMode
108
117
  )
109
118
  ).attr(
110
119
  "stroke",
111
120
  nodeStroke(palette, node.shape, node.color, void 0, colorOff)
112
121
  ).attr("stroke-width", sNodeStrokeWidth);
113
122
  }
114
- function renderDecision(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
123
+ function renderDecision(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
115
124
  const w = node.width / 2;
116
125
  const h = node.height / 2;
117
126
  const points = [`${0},${-h}`, `${w},${0}`, `${0},${h}`, `${-w},${0}`].join(
@@ -126,14 +135,14 @@ function renderDecision(g, node, palette, isDark, colorOff, solid, sNodeStrokeWi
126
135
  node.color,
127
136
  void 0,
128
137
  colorOff,
129
- solid
138
+ fillMode
130
139
  )
131
140
  ).attr(
132
141
  "stroke",
133
142
  nodeStroke(palette, node.shape, node.color, void 0, colorOff)
134
143
  ).attr("stroke-width", sNodeStrokeWidth);
135
144
  }
136
- function renderIO(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW) {
145
+ function renderIO(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW) {
137
146
  const w = node.width / 2;
138
147
  const h = node.height / 2;
139
148
  const sk = sIoSkew;
@@ -152,14 +161,14 @@ function renderIO(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth =
152
161
  node.color,
153
162
  void 0,
154
163
  colorOff,
155
- solid
164
+ fillMode
156
165
  )
157
166
  ).attr(
158
167
  "stroke",
159
168
  nodeStroke(palette, node.shape, node.color, void 0, colorOff)
160
169
  ).attr("stroke-width", sNodeStrokeWidth);
161
170
  }
162
- function renderSubroutine(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH, sSubroutineInset = SUBROUTINE_INSET) {
171
+ function renderSubroutine(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sSubroutineInset = SUBROUTINE_INSET) {
163
172
  const w = node.width;
164
173
  const h = node.height;
165
174
  const s = nodeStroke(palette, node.shape, node.color, void 0, colorOff);
@@ -170,14 +179,14 @@ function renderSubroutine(g, node, palette, isDark, colorOff, solid, sNodeStroke
170
179
  node.color,
171
180
  void 0,
172
181
  colorOff,
173
- solid
182
+ fillMode
174
183
  );
175
- const innerStroke = solid ? contrastText(fill, palette.textOnFillLight, palette.textOnFillDark) : s;
184
+ const innerStroke = fillMode === "solid" ? contrastText(fill, palette.textOnFillLight, palette.textOnFillDark) : s;
176
185
  g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", 3).attr("ry", 3).attr("fill", fill).attr("stroke", s).attr("stroke-width", sNodeStrokeWidth);
177
186
  g.append("line").attr("x1", -w / 2 + sSubroutineInset).attr("y1", -h / 2).attr("x2", -w / 2 + sSubroutineInset).attr("y2", h / 2).attr("stroke", innerStroke).attr("stroke-width", sNodeStrokeWidth);
178
187
  g.append("line").attr("x1", w / 2 - sSubroutineInset).attr("y1", -h / 2).attr("x2", w / 2 - sSubroutineInset).attr("y2", h / 2).attr("stroke", innerStroke).attr("stroke-width", sNodeStrokeWidth);
179
188
  }
180
- function renderDocument(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH, sDocWaveHeight = DOC_WAVE_HEIGHT) {
189
+ function renderDocument(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sDocWaveHeight = DOC_WAVE_HEIGHT) {
181
190
  const w = node.width;
182
191
  const h = node.height;
183
192
  const waveH = sDocWaveHeight;
@@ -201,14 +210,14 @@ function renderDocument(g, node, palette, isDark, colorOff, solid, sNodeStrokeWi
201
210
  node.color,
202
211
  void 0,
203
212
  colorOff,
204
- solid
213
+ fillMode
205
214
  )
206
215
  ).attr(
207
216
  "stroke",
208
217
  nodeStroke(palette, node.shape, node.color, void 0, colorOff)
209
218
  ).attr("stroke-width", sNodeStrokeWidth);
210
219
  }
211
- function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, solid, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW, sSubroutineInset = SUBROUTINE_INSET, sDocWaveHeight = DOC_WAVE_HEIGHT) {
220
+ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW, sSubroutineInset = SUBROUTINE_INSET, sDocWaveHeight = DOC_WAVE_HEIGHT) {
212
221
  switch (node.shape) {
213
222
  case "terminal":
214
223
  renderTerminal(
@@ -218,7 +227,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
218
227
  isDark,
219
228
  endTerminalIds.has(node.id),
220
229
  colorOff,
221
- solid,
230
+ fillMode,
222
231
  sNodeStrokeWidth
223
232
  );
224
233
  break;
@@ -229,7 +238,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
229
238
  palette,
230
239
  isDark,
231
240
  colorOff,
232
- solid,
241
+ fillMode,
233
242
  sNodeStrokeWidth
234
243
  );
235
244
  break;
@@ -240,7 +249,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
240
249
  palette,
241
250
  isDark,
242
251
  colorOff,
243
- solid,
252
+ fillMode,
244
253
  sNodeStrokeWidth
245
254
  );
246
255
  break;
@@ -251,7 +260,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
251
260
  palette,
252
261
  isDark,
253
262
  colorOff,
254
- solid,
263
+ fillMode,
255
264
  sNodeStrokeWidth,
256
265
  sIoSkew
257
266
  );
@@ -263,7 +272,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
263
272
  palette,
264
273
  isDark,
265
274
  colorOff,
266
- solid,
275
+ fillMode,
267
276
  sNodeStrokeWidth,
268
277
  sSubroutineInset
269
278
  );
@@ -275,7 +284,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
275
284
  palette,
276
285
  isDark,
277
286
  colorOff,
278
- solid,
287
+ fillMode,
279
288
  sNodeStrokeWidth,
280
289
  sDocWaveHeight
281
290
  );
@@ -408,7 +417,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
408
417
  }
409
418
  }
410
419
  const colorOff = graph.options?.["color"] === "off";
411
- const solid = graph.options?.["solid-fill"] === "on";
420
+ const fillMode = fillModeFromOptions(graph.options ?? {});
412
421
  const noNotes = graph.options?.["no-notes"] === "on";
413
422
  for (const node of layout.nodes) {
414
423
  const nodeG = contentG.append("g").attr("transform", `translate(${node.x}, ${node.y})`).attr("class", "fc-node").attr("data-line-number", String(node.lineNumber)).attr("data-node-id", node.id);
@@ -425,7 +434,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
425
434
  isDark,
426
435
  endTerminalIds,
427
436
  colorOff,
428
- solid,
437
+ fillMode,
429
438
  sNodeStrokeWidth,
430
439
  sIoSkew,
431
440
  sSubroutineInset,
@@ -439,7 +448,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
439
448
  node.color,
440
449
  isEnd,
441
450
  colorOff,
442
- solid
451
+ fillMode
443
452
  );
444
453
  nodeG.append("text").attr("x", 0).attr("y", 0).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr(
445
454
  "fill",
@@ -527,4 +536,4 @@ export {
527
536
  renderFlowchart,
528
537
  renderFlowchartForExport
529
538
  };
530
- //# sourceMappingURL=chunk-IEWG6J7C.js.map
539
+ //# sourceMappingURL=chunk-GCYTI3DE.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  encodeDiagramUrl
3
- } from "./chunk-3ODS2VGL.js";
3
+ } from "./chunk-J7KJR3R6.js";
4
4
  import {
5
5
  parseDgmoChartType
6
- } from "./chunk-KJGG2JKQ.js";
6
+ } from "./chunk-ZEF5M5MB.js";
7
7
  import {
8
8
  FONT_FAMILY
9
9
  } from "./chunk-6KFWC4CO.js";
@@ -428,4 +428,4 @@ export {
428
428
  defaultEmbedBackground,
429
429
  getEmbedSvgViewBox
430
430
  };
431
- //# sourceMappingURL=chunk-GNSFLJAA.js.map
431
+ //# sourceMappingURL=chunk-GJFAMOGK.js.map
@@ -14,7 +14,7 @@ import {
14
14
  renderNoteBadge,
15
15
  renderNoteBox,
16
16
  renderNoteConnector
17
- } from "./chunk-JEUJOX5X.js";
17
+ } from "./chunk-J7TLCB2Q.js";
18
18
  import {
19
19
  EDGE_STROKE_WIDTH,
20
20
  NODE_STROKE_WIDTH
@@ -38,10 +38,13 @@ import {
38
38
  mix,
39
39
  shapeFill,
40
40
  themeBaseBg
41
- } from "./chunk-P6T66CCZ.js";
41
+ } from "./chunk-WBM7ZNDI.js";
42
42
  import {
43
43
  parseState
44
- } from "./chunk-5F5ELR3V.js";
44
+ } from "./chunk-ROOE4R4Y.js";
45
+ import {
46
+ fillModeFromOptions
47
+ } from "./chunk-BRENJ2BQ.js";
45
48
 
46
49
  // src/graph/state-renderer.ts
47
50
  import * as d3Selection from "d3-selection";
@@ -58,11 +61,9 @@ var GROUP_EXTRA_PADDING = 12;
58
61
  function stateDefaultColor(palette, colorOff) {
59
62
  return colorOff ? palette.textMuted : palette.colors.blue;
60
63
  }
61
- function stateFill(palette, isDark, nodeColor, colorOff, solid) {
64
+ function stateFill(palette, isDark, nodeColor, colorOff, fillMode) {
62
65
  const color = nodeColor ?? stateDefaultColor(palette, colorOff);
63
- return shapeFill(palette, color, isDark, {
64
- ...solid !== void 0 && { solid }
65
- });
66
+ return shapeFill(palette, color, isDark, { mode: fillMode });
66
67
  }
67
68
  function stateStroke(palette, nodeColor, colorOff) {
68
69
  return nodeColor ?? stateDefaultColor(palette, colorOff);
@@ -148,7 +149,8 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
148
149
  const gy = group.y - sGroupExtraPadding - sGroupLabelFontSize - 4;
149
150
  const gw = group.width + sGroupExtraPadding * 2;
150
151
  const gh = group.height + sGroupExtraPadding * 2 + sGroupLabelFontSize + 4;
151
- const fillColor = group.color ? mix(group.color, themeBaseBg(palette, isDark), 10) : isDark ? palette.surface : mix(palette.border, palette.bg, 30);
152
+ const groupOutline = fillModeFromOptions(graph.options ?? {}) === "outline";
153
+ const fillColor = groupOutline ? themeBaseBg(palette, isDark) : group.color ? mix(group.color, themeBaseBg(palette, isDark), 10) : isDark ? palette.surface : mix(palette.border, palette.bg, 30);
152
154
  const strokeColor = group.color ?? palette.textMuted;
153
155
  const groupWrapper = contentG.append("g").attr("class", "st-group-wrapper").attr("data-line-number", String(group.lineNumber)).attr("data-group-id", group.id).attr("data-group-toggle", group.id).attr("tabindex", "0").attr("role", "button").attr("aria-expanded", "true").attr("aria-label", `Collapse group ${group.label}`).style("cursor", "pointer");
154
156
  groupWrapper.append("rect").attr("x", gx).attr("y", gy).attr("width", gw).attr("height", gh).attr("rx", 6).attr("fill", fillColor).attr("stroke", strokeColor).attr("stroke-width", 1).attr("stroke-opacity", 0.5).attr("class", "st-group");
@@ -242,7 +244,7 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
242
244
  if (group.collapsed) collapsedGroupIds.add(group.id);
243
245
  }
244
246
  const colorOff = graph.options?.["color"] === "off";
245
- const solid = graph.options?.["solid-fill"] === "on";
247
+ const fillMode = fillModeFromOptions(graph.options ?? {});
246
248
  const noNotes = graph.options?.["no-notes"] === "on";
247
249
  for (const node of layout.nodes) {
248
250
  const isCollapsedGroup = collapsedGroupIds.has(node.id);
@@ -262,7 +264,9 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
262
264
  const w = node.width;
263
265
  const h = node.height;
264
266
  const groupColor = node.color ?? stateDefaultColor(palette, colorOff);
265
- const fillColor = shapeFill(palette, groupColor, isDark, { solid });
267
+ const fillColor = shapeFill(palette, groupColor, isDark, {
268
+ mode: fillMode
269
+ });
266
270
  const strokeColor = groupColor;
267
271
  const COLLAPSE_BAR_H = 6;
268
272
  nodeG.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", sStateCornerRadius).attr("ry", sStateCornerRadius).attr("fill", fillColor).attr("stroke", strokeColor).attr("stroke-width", sNodeStrokeWidth);
@@ -285,7 +289,7 @@ function renderState(container, graph, layout, palette, isDark, onClickItem, exp
285
289
  isDark,
286
290
  node.color,
287
291
  colorOff,
288
- solid
292
+ fillMode
289
293
  );
290
294
  nodeG.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", sStateCornerRadius).attr("ry", sStateCornerRadius).attr("fill", resolvedFill).attr("stroke", stateStroke(palette, node.color, colorOff)).attr("stroke-width", sNodeStrokeWidth);
291
295
  nodeG.append("text").attr("x", 0).attr("y", 0).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr(
@@ -375,4 +379,4 @@ export {
375
379
  renderState,
376
380
  renderStateForExport
377
381
  };
378
- //# sourceMappingURL=chunk-VNSXLA6G.js.map
382
+ //# sourceMappingURL=chunk-H7KENAZO.js.map
@@ -10,7 +10,7 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-467TVMQL.js";
13
+ } from "./chunk-HHKO6SKY.js";
14
14
  import {
15
15
  normalizeName
16
16
  } from "./chunk-NOTA6TEI.js";
@@ -25,7 +25,7 @@ import {
25
25
  tryParseSharedOption,
26
26
  warnUnknownMetaKeys,
27
27
  withTagAliases
28
- } from "./chunk-LV4BETUU.js";
28
+ } from "./chunk-BRENJ2BQ.js";
29
29
  import {
30
30
  formatDgmoError,
31
31
  makeDgmoError,
@@ -519,4 +519,4 @@ export {
519
519
  looksLikeSitemap,
520
520
  parseSitemap
521
521
  };
522
- //# sourceMappingURL=chunk-KFNWFNAA.js.map
522
+ //# sourceMappingURL=chunk-HBPDFCQY.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  stripQuotes,
3
3
  tokenizeQuoteAware
4
- } from "./chunk-LV4BETUU.js";
4
+ } from "./chunk-BRENJ2BQ.js";
5
5
  import {
6
6
  CATEGORICAL_COLOR_ORDER,
7
7
  RECOGNIZED_COLOR_NAMES,
@@ -250,4 +250,4 @@ export {
250
250
  resolveActiveTagGroup,
251
251
  matchTagBlockHeading
252
252
  };
253
- //# sourceMappingURL=chunk-467TVMQL.js.map
253
+ //# sourceMappingURL=chunk-HHKO6SKY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SKETCH_DIAGNOSTIC_CODES
3
- } from "./chunk-XHVV4NVW.js";
3
+ } from "./chunk-RT7ACF77.js";
4
4
  import {
5
5
  AUTO_TAG_COLOR_SENTINEL,
6
6
  finalizeAutoTagColors,
@@ -10,7 +10,7 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-467TVMQL.js";
13
+ } from "./chunk-HHKO6SKY.js";
14
14
  import {
15
15
  parseInArrowLabel
16
16
  } from "./chunk-FFUN5D66.js";
@@ -20,13 +20,14 @@ import {
20
20
  import {
21
21
  SKETCH_REGISTRY,
22
22
  extractColor,
23
+ fillModeFromToken,
23
24
  measureIndent,
24
25
  parseFirstLine,
25
26
  splitNameAndMeta,
26
27
  stripQuotes,
27
28
  warnUnknownMetaKeys,
28
29
  withTagAliases
29
- } from "./chunk-LV4BETUU.js";
30
+ } from "./chunk-BRENJ2BQ.js";
30
31
  import {
31
32
  NAME_DIAGNOSTIC_CODES,
32
33
  formatDgmoError,
@@ -69,10 +70,11 @@ var LEFT_ARROW_RE = /^<[-~](?![-~]?>)/;
69
70
  var BOX_RE = /^\[([^\]]*)\]\s*(.*)$/;
70
71
  var BOX_TAIL_ALIAS_RE = /^as\s+([A-Za-z][A-Za-z0-9_]{0,11})(?=\s|,|$)\s*,?\s*/;
71
72
  var AT_VALUE_RE = /^(-?\d+)\s+(-?\d+)$/;
73
+ var SKETCH_AT_MAX = 2e3;
72
74
  function parseSketch(content, palette) {
73
75
  const options = {
74
76
  noLegend: false,
75
- solidFill: false,
77
+ fillMode: void 0,
76
78
  noDescriptions: false
77
79
  };
78
80
  const result = {
@@ -118,7 +120,17 @@ function parseSketch(content, palette) {
118
120
  );
119
121
  return null;
120
122
  }
121
- return { c: parseInt(m[1], 10), r: parseInt(m[2], 10) };
123
+ const c = parseInt(m[1], 10);
124
+ const r = parseInt(m[2], 10);
125
+ if (!Number.isSafeInteger(c) || !Number.isSafeInteger(r) || Math.abs(c) > SKETCH_AT_MAX || Math.abs(r) > SKETCH_AT_MAX) {
126
+ warn(
127
+ lineNumber,
128
+ `at: coordinate "${raw}" is out of range \u2014 half-slot coords must be whole numbers within \xB1${SKETCH_AT_MAX}; shape will flow-place`,
129
+ SKETCH_DIAGNOSTIC_CODES.AT_OUT_OF_RANGE
130
+ );
131
+ return null;
132
+ }
133
+ return { c, r };
122
134
  };
123
135
  const liftReserved = (meta, lineNumber) => {
124
136
  let shape = "rectangle";
@@ -446,8 +458,9 @@ function parseSketch(content, palette) {
446
458
  options.noLegend = true;
447
459
  continue;
448
460
  }
449
- if (indent === 0 && /^solid-fill\s*$/i.test(trimmed)) {
450
- options.solidFill = true;
461
+ if (indent === 0 && fillModeFromToken(trimmed) !== null) {
462
+ const fm = fillModeFromToken(trimmed);
463
+ options.fillMode = fm === "tint" ? void 0 : fm;
451
464
  continue;
452
465
  }
453
466
  if (indent === 0 && /^no-descriptions\s*$/i.test(trimmed)) {
@@ -614,4 +627,4 @@ export {
614
627
  isSketchShapeKind,
615
628
  parseSketch
616
629
  };
617
- //# sourceMappingURL=chunk-6K2M4VSR.js.map
630
+ //# sourceMappingURL=chunk-HQQNCY7W.js.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  injectDefaultTagMetadata,
13
13
  resolveTagColor
14
- } from "./chunk-467TVMQL.js";
14
+ } from "./chunk-HHKO6SKY.js";
15
15
 
16
16
  // src/mindmap/text-wrap.ts
17
17
  var H_PAD = 16;
@@ -547,4 +547,4 @@ export {
547
547
  computeNodeText,
548
548
  layoutMindmap
549
549
  };
550
- //# sourceMappingURL=chunk-ZJ3LS7DW.js.map
550
+ //# sourceMappingURL=chunk-HWX6ZHF3.js.map
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-LV4BETUU.js";
8
+ } from "./chunk-BRENJ2BQ.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
@@ -127,4 +127,4 @@ function parsePyramid(content) {
127
127
  export {
128
128
  parsePyramid
129
129
  };
130
- //# sourceMappingURL=chunk-Q62FEYK3.js.map
130
+ //# sourceMappingURL=chunk-ICPJPQ5C.js.map
@@ -2,7 +2,7 @@ import {
2
2
  INFRA_BEHAVIOR_KEY_SET,
3
3
  INFRA_EDGE_ONLY_KEY_SET,
4
4
  INFRA_TOP_LEVEL_OPTION_SET
5
- } from "./chunk-6H7O2OPM.js";
5
+ } from "./chunk-FQ7HTV52.js";
6
6
  import {
7
7
  tryStripDescriptionKeyword
8
8
  } from "./chunk-IYULMRBE.js";
@@ -11,7 +11,7 @@ import {
11
11
  stripDefaultModifier,
12
12
  tagAttrKey,
13
13
  validateTagGroupNames
14
- } from "./chunk-467TVMQL.js";
14
+ } from "./chunk-HHKO6SKY.js";
15
15
  import {
16
16
  GRAPH_DX
17
17
  } from "./chunk-I46X5VUA.js";
@@ -30,7 +30,7 @@ import {
30
30
  tryParseSharedOption,
31
31
  warnUnknownMetaKeys,
32
32
  withTagAliases
33
- } from "./chunk-LV4BETUU.js";
33
+ } from "./chunk-BRENJ2BQ.js";
34
34
  import {
35
35
  isRecognizedColorName
36
36
  } from "./chunk-TLVIHFRO.js";
@@ -890,4 +890,4 @@ export {
890
890
  parseInfra,
891
891
  extractSymbols
892
892
  };
893
- //# sourceMappingURL=chunk-MVN25IF6.js.map
893
+ //# sourceMappingURL=chunk-IM6PDDCE.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YYVTBZZC.js";
10
10
  import {
11
11
  renderIntegratedLegend
12
- } from "./chunk-OU7HLO7I.js";
12
+ } from "./chunk-AUIM2NVH.js";
13
13
  import {
14
14
  TITLE_FONT_SIZE,
15
15
  TITLE_FONT_WEIGHT,
@@ -28,7 +28,10 @@ import {
28
28
  import {
29
29
  contrastText,
30
30
  shapeFill
31
- } from "./chunk-P6T66CCZ.js";
31
+ } from "./chunk-WBM7ZNDI.js";
32
+ import {
33
+ fillModeFromOptions
34
+ } from "./chunk-BRENJ2BQ.js";
32
35
  import {
33
36
  resolveColor
34
37
  } from "./chunk-TLVIHFRO.js";
@@ -678,7 +681,7 @@ var DESC_LINE_HEIGHT2 = 15;
678
681
  var TITLE_AREA_HEIGHT = 50;
679
682
  function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims, viewState, renderOptions) {
680
683
  if (parsed.nodes.length === 0) return;
681
- const solid = parsed.options?.["solid-fill"] === "on";
684
+ const fillMode = fillModeFromOptions(parsed.options ?? {});
682
685
  d3Selection.select(container).selectAll(":not([data-d3-tooltip])").remove();
683
686
  const width = exportDims?.width ?? container.clientWidth;
684
687
  const height = exportDims?.height ?? container.clientHeight;
@@ -815,7 +818,9 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
815
818
  const ln = layout.nodes[i];
816
819
  const node = parsed.nodes[i];
817
820
  const solidColor = resolveNodeColor(node.color, palette, defaultNodeColor);
818
- const fillColor = shapeFill(palette, solidColor, isDark, { solid });
821
+ const fillColor = shapeFill(palette, solidColor, isDark, {
822
+ mode: fillMode
823
+ });
819
824
  const textColor = contrastText(
820
825
  fillColor,
821
826
  palette.textOnFillLight,
@@ -859,7 +864,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
859
864
  const labelText = nodeG.append("text").attr("x", ln.x).attr("y", headerCenterY + scaledNodeFont / 3).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", scaledNodeFont).attr("font-weight", "600");
860
865
  renderInlineText(labelText, node.label, palette, scaledNodeFont);
861
866
  const sepY = ln.y - nodeH / 2 + HEADER_H;
862
- nodeG.append("line").attr("x1", ln.x - nodeW / 2).attr("y1", sepY).attr("x2", ln.x + nodeW / 2).attr("y2", sepY).attr("stroke", solid ? descColor : solidColor).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
867
+ nodeG.append("line").attr("x1", ln.x - nodeW / 2).attr("y1", sepY).attr("x2", ln.x + nodeW / 2).attr("y2", sepY).attr("stroke", fillMode === "solid" ? descColor : solidColor).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
863
868
  const descStartY = sepY + 4 + scaledDescFont;
864
869
  const descPadX = Math.max(8, 12 * layout.scale);
865
870
  const descX = ln.x - nodeW / 2 + descPadX;
@@ -964,4 +969,4 @@ export {
964
969
  renderCycle,
965
970
  renderCycleForExport
966
971
  };
967
- //# sourceMappingURL=chunk-65WJYYKJ.js.map
972
+ //# sourceMappingURL=chunk-INE5YJBZ.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  extractDatePrefix,
3
3
  parseTimelineDate
4
- } from "./chunk-TMACGPW5.js";
4
+ } from "./chunk-R3YSD62R.js";
5
5
  import {
6
6
  makeYearContext,
7
7
  parseDateToken,
8
8
  resolveTokenYear
9
- } from "./chunk-RBDIYLA5.js";
9
+ } from "./chunk-DAOFNU6J.js";
10
10
  import {
11
11
  AUTO_TAG_COLOR_SENTINEL,
12
12
  finalizeAutoTagColors,
@@ -16,17 +16,18 @@ import {
16
16
  tagAttrKey,
17
17
  validateTagGroupNames,
18
18
  validateTagValues
19
- } from "./chunk-467TVMQL.js";
19
+ } from "./chunk-HHKO6SKY.js";
20
20
  import {
21
21
  EVENT_LINE_REGISTRY,
22
22
  extractColor,
23
+ fillModeFromToken,
23
24
  measureIndent,
24
25
  parseFirstLine,
25
26
  splitNameAndMeta,
26
27
  tryParseSharedOption,
27
28
  warnUnknownMetaKeys,
28
29
  withTagAliases
29
- } from "./chunk-LV4BETUU.js";
30
+ } from "./chunk-BRENJ2BQ.js";
30
31
  import {
31
32
  emit,
32
33
  formatDgmoError,
@@ -140,7 +141,7 @@ function parseEventLine(content, palette) {
140
141
  noTitle: false,
141
142
  noBox: false,
142
143
  noLegend: false,
143
- solidFill: false
144
+ fillMode: void 0
144
145
  };
145
146
  const result = {
146
147
  type: "event-line",
@@ -336,9 +337,12 @@ function parseEventLine(content, palette) {
336
337
  options.noLegend = true;
337
338
  continue;
338
339
  }
339
- if (trimmed.toLowerCase() === "solid-fill") {
340
- options.solidFill = true;
341
- continue;
340
+ {
341
+ const fm = fillModeFromToken(trimmed);
342
+ if (fm !== null) {
343
+ options.fillMode = fm === "tint" ? void 0 : fm;
344
+ continue;
345
+ }
342
346
  }
343
347
  const dirMatch = trimmed.match(DIRECTION_RE);
344
348
  if (dirMatch) {
@@ -598,4 +602,4 @@ export {
598
602
  EVENT_LINE_DIAGNOSTICS,
599
603
  parseEventLine
600
604
  };
601
- //# sourceMappingURL=chunk-EDA6C7MV.js.map
605
+ //# sourceMappingURL=chunk-J6QROYDA.js.map