@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
@@ -1,10 +1,13 @@
1
+ import {
2
+ formatOffsetLabel,
3
+ parseFixedOffset,
4
+ zoneParts
5
+ } from "./chunk-APKUAJ2L.js";
1
6
  import {
2
7
  extractColor,
8
+ fillModeFromToken,
3
9
  parseFirstLine
4
- } from "./chunk-OTAL43EH.js";
5
- import {
6
- resolveColor
7
- } from "./chunk-TLVIHFRO.js";
10
+ } from "./chunk-BRENJ2BQ.js";
8
11
  import {
9
12
  makeDgmoError,
10
13
  makeFail
@@ -145,6 +148,180 @@ function coordsFor(zone) {
145
148
  return ZONE_COORDS[zone] ?? null;
146
149
  }
147
150
 
151
+ // src/clock/gazetteer.ts
152
+ function normalizePlace(name) {
153
+ return name.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[.]/g, "").replace(/\s+/g, " ").trim();
154
+ }
155
+ function zoneCity(zone) {
156
+ const seg = zone.split("/").pop() ?? zone;
157
+ return seg.replace(/_/g, " ");
158
+ }
159
+ var ALIAS_SEED = [
160
+ // North America — abbreviations + metros not named by their zone segment
161
+ ["NYC", "America/New_York"],
162
+ ["New York City", "America/New_York"],
163
+ ["Boston", "America/New_York"],
164
+ ["Washington", "America/New_York"],
165
+ ["Washington DC", "America/New_York"],
166
+ ["DC", "America/New_York"],
167
+ ["Philadelphia", "America/New_York"],
168
+ ["Miami", "America/New_York"],
169
+ ["Atlanta", "America/New_York"],
170
+ ["LA", "America/Los_Angeles"],
171
+ ["Los Angeles", "America/Los_Angeles"],
172
+ ["San Francisco", "America/Los_Angeles"],
173
+ ["SF", "America/Los_Angeles"],
174
+ ["Seattle", "America/Los_Angeles"],
175
+ ["Portland", "America/Los_Angeles"],
176
+ ["San Diego", "America/Los_Angeles"],
177
+ ["Las Vegas", "America/Los_Angeles"],
178
+ ["Dallas", "America/Chicago"],
179
+ ["Houston", "America/Chicago"],
180
+ ["Austin", "America/Chicago"],
181
+ ["Chicago", "America/Chicago"],
182
+ ["Minneapolis", "America/Chicago"],
183
+ ["Denver", "America/Denver"],
184
+ ["Salt Lake City", "America/Denver"],
185
+ ["London, ON", "America/Toronto"],
186
+ ["Ottawa", "America/Toronto"],
187
+ ["Montreal", "America/Toronto"],
188
+ ["Honolulu", "Pacific/Honolulu"],
189
+ ["Hawaii", "Pacific/Honolulu"],
190
+ // Genuinely ambiguous: San Jose CA (Pacific) vs San José, Costa Rica.
191
+ ["San Jose", "America/Los_Angeles"],
192
+ ["San Jose", "America/Costa_Rica"],
193
+ // Europe
194
+ ["Kiev", "Europe/Kyiv"],
195
+ ["Kyiv", "Europe/Kyiv"],
196
+ ["Frankfurt", "Europe/Berlin"],
197
+ ["Munich", "Europe/Berlin"],
198
+ ["Hamburg", "Europe/Berlin"],
199
+ ["Milan", "Europe/Rome"],
200
+ ["Barcelona", "Europe/Madrid"],
201
+ ["Geneva", "Europe/Zurich"],
202
+ ["Saint Petersburg", "Europe/Moscow"],
203
+ ["St Petersburg", "Europe/Moscow"],
204
+ // Middle East / Asia — historic + colloquial names
205
+ ["Bombay", "Asia/Kolkata"],
206
+ ["Mumbai", "Asia/Kolkata"],
207
+ ["Delhi", "Asia/Kolkata"],
208
+ ["New Delhi", "Asia/Kolkata"],
209
+ ["Bangalore", "Asia/Kolkata"],
210
+ ["Bengaluru", "Asia/Kolkata"],
211
+ ["Chennai", "Asia/Kolkata"],
212
+ ["Madras", "Asia/Kolkata"],
213
+ ["Calcutta", "Asia/Kolkata"],
214
+ ["Hyderabad", "Asia/Kolkata"],
215
+ ["Saigon", "Asia/Ho_Chi_Minh"],
216
+ ["Ho Chi Minh City", "Asia/Ho_Chi_Minh"],
217
+ ["Beijing", "Asia/Shanghai"],
218
+ ["Peking", "Asia/Shanghai"],
219
+ ["Shenzhen", "Asia/Shanghai"],
220
+ ["Guangzhou", "Asia/Shanghai"],
221
+ ["Abu Dhabi", "Asia/Dubai"],
222
+ ["Tel Aviv", "Asia/Jerusalem"],
223
+ ["Osaka", "Asia/Tokyo"],
224
+ ["Kyoto", "Asia/Tokyo"],
225
+ // Oceania
226
+ ["Auckland", "Pacific/Auckland"],
227
+ ["Wellington", "Pacific/Auckland"]
228
+ ];
229
+ var NAME_INDEX = /* @__PURE__ */ new Map();
230
+ var CITY_LABEL = /* @__PURE__ */ new Map();
231
+ var ALL_ENTRIES = [];
232
+ function register(city, zone) {
233
+ const key = normalizePlace(city);
234
+ if (!key) return;
235
+ let set = NAME_INDEX.get(key);
236
+ if (!set) {
237
+ set = /* @__PURE__ */ new Set();
238
+ NAME_INDEX.set(key, set);
239
+ CITY_LABEL.set(key, city);
240
+ }
241
+ if (!set.has(zone)) {
242
+ set.add(zone);
243
+ ALL_ENTRIES.push({ city, zone });
244
+ }
245
+ }
246
+ for (const zone of Object.keys(ZONE_COORDS)) {
247
+ if (zone === "UTC") continue;
248
+ register(zoneCity(zone), zone);
249
+ }
250
+ for (const [name, zone] of ALIAS_SEED) register(name, zone);
251
+ function editDistance(a, b, max) {
252
+ if (Math.abs(a.length - b.length) > max) return max + 1;
253
+ let prev = Array.from({ length: b.length + 1 }, (_, i) => i);
254
+ for (let i = 1; i <= a.length; i++) {
255
+ const curr = [i];
256
+ let rowMin = i;
257
+ for (let j = 1; j <= b.length; j++) {
258
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
259
+ const v = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
260
+ curr[j] = v;
261
+ if (v < rowMin) rowMin = v;
262
+ }
263
+ if (rowMin > max) return max + 1;
264
+ prev = curr;
265
+ }
266
+ return prev[b.length];
267
+ }
268
+ function didYouMean(key) {
269
+ let best = null;
270
+ let bestD = 3;
271
+ for (const [name, label] of CITY_LABEL) {
272
+ const d = editDistance(key, name, 2);
273
+ if (d < bestD) {
274
+ bestD = d;
275
+ best = label;
276
+ }
277
+ }
278
+ return best;
279
+ }
280
+ function resolvePlace(name) {
281
+ const key = normalizePlace(name);
282
+ const set = NAME_INDEX.get(key);
283
+ if (set?.size === 1) {
284
+ const zone = [...set][0];
285
+ return { kind: "ok", zone, city: zoneCity(zone) };
286
+ }
287
+ if (set && set.size > 1) {
288
+ const candidates = [...set].map((zone) => ({ city: zoneCity(zone), zone }));
289
+ return { kind: "ambiguous", candidates };
290
+ }
291
+ return { kind: "unknown", suggestion: didYouMean(key) };
292
+ }
293
+ function searchZones(query, nowMs, limit = 8) {
294
+ const q = normalizePlace(query);
295
+ if (!q) return [];
296
+ const seen = /* @__PURE__ */ new Set();
297
+ const scored = [];
298
+ const consider = (city, zone, haystack) => {
299
+ const dedup = `${normalizePlace(city)}|${zone}`;
300
+ if (seen.has(dedup)) return;
301
+ let score;
302
+ if (haystack === q) score = 0;
303
+ else if (haystack.startsWith(q)) score = 1;
304
+ else if (haystack.includes(q)) score = 2;
305
+ else return;
306
+ seen.add(dedup);
307
+ scored.push({ city, zone, score });
308
+ };
309
+ for (const e of ALL_ENTRIES) {
310
+ consider(e.city, e.zone, normalizePlace(e.city));
311
+ }
312
+ if (q.includes("/") || q.length >= 3) {
313
+ for (const e of ALL_ENTRIES) {
314
+ consider(e.city, e.zone, e.zone.toLowerCase());
315
+ }
316
+ }
317
+ scored.sort((a, b) => a.score - b.score || a.city.localeCompare(b.city));
318
+ return scored.slice(0, limit).map(({ city, zone }) => ({
319
+ city,
320
+ zone,
321
+ offsetLabel: zoneParts(zone, nowMs).offsetLabel || formatOffsetLabel(0)
322
+ }));
323
+ }
324
+
148
325
  // src/clock/parser.ts
149
326
  var DIRECTIVES = /* @__PURE__ */ new Set([
150
327
  "analog",
@@ -154,7 +331,10 @@ var DIRECTIVES = /* @__PURE__ */ new Set([
154
331
  "time-24",
155
332
  "no-title",
156
333
  "direction",
157
- "color-by"
334
+ "color-by",
335
+ "fill-tint",
336
+ "fill-solid",
337
+ "fill-outline"
158
338
  ]);
159
339
  var WEEKDAY_ABBR = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
160
340
  function weekdayIndex(token) {
@@ -186,9 +366,6 @@ function isValidZone(zone) {
186
366
  return false;
187
367
  }
188
368
  }
189
- function looksLikeZone(token) {
190
- return token.includes("/") || token === "UTC" || coordsFor(token) !== null;
191
- }
192
369
  function defaultWorkDays() {
193
370
  return { Mon: true, Tue: true, Wed: true, Thu: true, Fri: true };
194
371
  }
@@ -218,7 +395,7 @@ function parseDays(rest) {
218
395
  }
219
396
  return any ? days : null;
220
397
  }
221
- function zoneCity(zone) {
398
+ function zoneCity2(zone) {
222
399
  const seg = zone.split("/").pop() ?? zone;
223
400
  return seg.replace(/_/g, " ");
224
401
  }
@@ -322,6 +499,14 @@ function parseClock(content, palette) {
322
499
  case "no-title":
323
500
  result.noTitle = true;
324
501
  break;
502
+ case "fill-tint":
503
+ case "fill-solid":
504
+ case "fill-outline": {
505
+ const fm = fillModeFromToken(key);
506
+ if (fm === "solid" || fm === "outline") result.fillMode = fm;
507
+ else delete result.fillMode;
508
+ break;
509
+ }
325
510
  case "color-by": {
326
511
  const v = rest.trim().toLowerCase();
327
512
  const modes = ["place", "work", "daylight", "time", "none"];
@@ -343,50 +528,102 @@ function parseClock(content, palette) {
343
528
  }
344
529
  continue;
345
530
  }
346
- const zoneIdx = tokens.findIndex((t) => looksLikeZone(t));
347
- if (zoneIdx < 0) {
348
- warn(
349
- lineNum,
350
- `No time zone found in "${trimmed}" \u2014 expected an IANA zone like America/New_York.`
351
- );
352
- continue;
353
- }
354
- const zone = tokens[zoneIdx];
355
- const placeTokens = tokens.slice(0, zoneIdx);
531
+ const asIdx = tokens.findIndex((t) => t.toLowerCase() === "as");
532
+ let anchor;
356
533
  let label = null;
357
534
  let color;
358
- const afterZone = tokens.slice(zoneIdx + 1);
359
- const asIdx = afterZone.findIndex((t) => t.toLowerCase() === "as");
360
535
  if (asIdx >= 0) {
536
+ anchor = tokens.slice(0, asIdx).join(" ").trim();
361
537
  const ex = extractColor(
362
- afterZone.slice(asIdx + 1).join(" ").trim(),
538
+ tokens.slice(asIdx + 1).join(" ").trim(),
363
539
  palette,
364
540
  void 0,
365
541
  lineNum
366
542
  );
367
543
  if (ex.label) label = ex.label;
368
544
  color = ex.color;
369
- } else if (palette && afterZone.length === 1) {
370
- color = resolveColor(afterZone[0], palette) ?? void 0;
545
+ } else {
546
+ const ex = extractColor(
547
+ tokens.join(" ").trim(),
548
+ palette,
549
+ void 0,
550
+ lineNum
551
+ );
552
+ anchor = ex.label.trim();
553
+ color = ex.color;
371
554
  }
372
- const place = placeTokens.join(" ").trim() || zoneCity(zone);
373
- if (!isValidZone(zone)) {
555
+ if (!anchor) {
374
556
  warn(
375
557
  lineNum,
376
- `Unknown time zone "${zone}" \u2014 row skipped (use an IANA zone like America/New_York).`
558
+ `Empty zone on "${trimmed}" \u2014 expected a city, IANA zone, or UTC offset.`
377
559
  );
378
560
  continue;
379
561
  }
380
- const coords = coordsFor(zone);
381
- entries.push({
382
- place,
383
- zone,
384
- label: label ?? place,
385
- lat: coords?.lat ?? null,
386
- lon: coords?.lon ?? null,
387
- color: color ?? null,
388
- lineNumber: lineNum
389
- });
562
+ let entry;
563
+ const fixedOffset = parseFixedOffset(anchor);
564
+ if (fixedOffset !== null) {
565
+ const offLabel = formatOffsetLabel(fixedOffset);
566
+ entry = {
567
+ kind: "fixed",
568
+ place: offLabel,
569
+ zone: offLabel,
570
+ fixedOffsetMin: fixedOffset,
571
+ label: label ?? offLabel,
572
+ lat: null,
573
+ lon: null,
574
+ color: color ?? null,
575
+ lineNumber: lineNum
576
+ };
577
+ } else if (anchor.includes("/")) {
578
+ if (!isValidZone(anchor)) {
579
+ warn(
580
+ lineNum,
581
+ `Unknown IANA zone "${anchor}" \u2014 row skipped (e.g. America/New_York). Or give a UTC offset like UTC-5.`
582
+ );
583
+ continue;
584
+ }
585
+ const coords = coordsFor(anchor);
586
+ const place = zoneCity2(anchor);
587
+ entry = {
588
+ kind: "iana",
589
+ place,
590
+ zone: anchor,
591
+ fixedOffsetMin: null,
592
+ label: label ?? place,
593
+ lat: coords?.lat ?? null,
594
+ lon: coords?.lon ?? null,
595
+ color: color ?? null,
596
+ lineNumber: lineNum
597
+ };
598
+ } else {
599
+ const res = resolvePlace(anchor);
600
+ if (res.kind === "ambiguous") {
601
+ const list = res.candidates.map((c) => c.zone).join(", ");
602
+ softError(
603
+ lineNum,
604
+ `"${anchor}" is ambiguous \u2014 did you mean ${list}? Use the IANA zone to disambiguate.`
605
+ );
606
+ continue;
607
+ }
608
+ if (res.kind === "unknown") {
609
+ const hint = res.suggestion ? ` Did you mean ${res.suggestion}?` : " Give a city, an IANA zone (America/New_York), or a UTC offset (UTC-5).";
610
+ warn(lineNum, `Unknown place "${anchor}" \u2014 row skipped.${hint}`);
611
+ continue;
612
+ }
613
+ const coords = coordsFor(res.zone);
614
+ entry = {
615
+ kind: "iana",
616
+ place: res.city,
617
+ zone: res.zone,
618
+ fixedOffsetMin: null,
619
+ label: label ?? res.city,
620
+ lat: coords?.lat ?? null,
621
+ lon: coords?.lon ?? null,
622
+ color: color ?? null,
623
+ lineNumber: lineNum
624
+ };
625
+ }
626
+ entries.push(entry);
390
627
  }
391
628
  if (!headerParsed) {
392
629
  return fail(0, 'Expected "clock [Title]" as the first line.');
@@ -408,13 +645,16 @@ function parseClock(content, palette) {
408
645
  if (entries.length === 0) {
409
646
  softError(
410
647
  result.titleLineNumber ?? 1,
411
- 'A clock needs at least one place row (e.g. "London Europe/London").'
648
+ 'A clock needs at least one zone row (e.g. "London as UK team").'
412
649
  );
413
650
  }
414
651
  return result;
415
652
  }
416
653
 
417
654
  export {
655
+ normalizePlace,
656
+ resolvePlace,
657
+ searchZones,
418
658
  parseClock
419
659
  };
420
- //# sourceMappingURL=chunk-3XPUDB7B.js.map
660
+ //# sourceMappingURL=chunk-FY5MSZAP.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-PDKUANDZ.js";
5
5
  import {
6
6
  layoutGraph
7
- } from "./chunk-SCQ5VPUF.js";
7
+ } from "./chunk-HFMYN6N2.js";
8
8
  import {
9
9
  appendArrowheadMarkers
10
10
  } from "./chunk-LP7EC4MI.js";
@@ -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
@@ -32,14 +32,17 @@ import {
32
32
  } from "./chunk-6KFWC4CO.js";
33
33
  import {
34
34
  measureText
35
- } from "./chunk-5LWQH6QV.js";
35
+ } from "./chunk-WCT3NYCV.js";
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-GBE54KY6.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-M5RXSRO2.js.map
539
+ //# sourceMappingURL=chunk-GCYTI3DE.js.map