@diagrammo/dgmo 0.77.0 → 0.79.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 (280) hide show
  1. package/README.md +17 -13
  2. package/dist/advanced.d.ts +197 -23
  3. package/dist/advanced.js +161 -142
  4. package/dist/block.css +1 -1
  5. package/dist/block.d.ts +2 -2
  6. package/dist/block.js +62 -58
  7. package/dist/{calculator-CVQ54JNE.js → calculator-OHTCZSBW.js} +3 -3
  8. package/dist/{chart-meta-Cf_jkApJ.d.ts → chart-meta-B7lSmrzg.d.ts} +2 -2
  9. package/dist/chart-meta.d.ts +3 -3
  10. package/dist/chart-meta.js +45 -44
  11. package/dist/charts-d3-EST3Z5VG.js +31 -0
  12. package/dist/{chunk-U4DS2ODO.js → chunk-253E5ISJ.js} +9 -9
  13. package/dist/{chunk-7IATMZSA.js → chunk-26EVL454.js} +1 -25
  14. package/dist/{chunk-MG3DE3VO.js → chunk-2F7AG7LA.js} +4 -4
  15. package/dist/{chunk-OWVDD5EC.js → chunk-2R2M2C6V.js} +2 -2
  16. package/dist/{chunk-LYJ53DBK.js → chunk-2RAH6GVR.js} +56 -41
  17. package/dist/{chunk-Q74GP3GK.js → chunk-37NDM5NW.js} +3 -3
  18. package/dist/{chunk-N6MZSBOL.js → chunk-3BN3WCUD.js} +5 -2
  19. package/dist/chunk-3DPOIW3W.js +10 -0
  20. package/dist/{chunk-HDLRRY3N.js → chunk-3KFGPXHD.js} +195 -135
  21. package/dist/{chunk-NWNSXHA5.js → chunk-3KNA7OIO.js} +3 -3
  22. package/dist/{chunk-M5OOAP65.js → chunk-4CA7TJ44.js} +2 -1
  23. package/dist/{chunk-M5JT2AU7.js → chunk-4L43NPSQ.js} +10 -6
  24. package/dist/{chunk-4YER7UCV.js → chunk-4T6V7JJA.js} +3 -3
  25. package/dist/{chunk-3E4YB6TY.js → chunk-4YSWUQKZ.js} +12 -7
  26. package/dist/{chunk-6BVAW7KI.js → chunk-54JYWS7D.js} +50 -43
  27. package/dist/{chunk-7NSNE52V.js → chunk-55DMCFGM.js} +3 -3
  28. package/dist/{chunk-XPBJVSRY.js → chunk-5BV5MXLY.js} +38 -32
  29. package/dist/{chunk-5VMUVJO4.js → chunk-5DWF3N3V.js} +3 -3
  30. package/dist/{chunk-SSEAULA5.js → chunk-6775W3UW.js} +19 -15
  31. package/dist/{chunk-2QRIMMIH.js → chunk-6EMJRAEY.js} +3 -3
  32. package/dist/{chunk-OZOHREFQ.js → chunk-6FUIPWTS.js} +14 -15
  33. package/dist/{chunk-F4V67JXG.js → chunk-6JIMYPXR.js} +4 -4
  34. package/dist/{chunk-CHOK7NCJ.js → chunk-7AEMAUDF.js} +29 -25
  35. package/dist/{chunk-NVOU7N6C.js → chunk-7DCM3CB5.js} +2 -2
  36. package/dist/{chunk-UBDVAHGK.js → chunk-7EUTTKNU.js} +36 -31
  37. package/dist/{chunk-76NHL5UG.js → chunk-7I6NWTPE.js} +2 -2
  38. package/dist/{chunk-OKXWPKUC.js → chunk-7SHL2WME.js} +2 -2
  39. package/dist/{chunk-SWEKCK34.js → chunk-AFOHIR2O.js} +3 -3
  40. package/dist/{chunk-RWFMOVHG.js → chunk-AI7TZQ2R.js} +3 -3
  41. package/dist/{chunk-BWJLLNUX.js → chunk-ALVK3TBO.js} +3 -3
  42. package/dist/{chunk-GLREDNBA.js → chunk-AMQFJ7P7.js} +21 -2
  43. package/dist/{chunk-RGW26UAR.js → chunk-CCETDPLV.js} +11 -11
  44. package/dist/{chunk-5ZD4DDG7.js → chunk-CE654SL2.js} +17 -14
  45. package/dist/{chunk-TPN7RJOM.js → chunk-CFYTCBRH.js} +4 -4
  46. package/dist/{chunk-YT5ICQ4R.js → chunk-CKDYRVOC.js} +3 -3
  47. package/dist/{chunk-WQXD3IIN.js → chunk-CRBW2WS7.js} +11 -9
  48. package/dist/{chunk-J76YDS4V.js → chunk-CREALBZL.js} +3 -3
  49. package/dist/{chunk-MZEGUDTA.js → chunk-CSTYDCKB.js} +16 -16
  50. package/dist/{chunk-QBM5BURJ.js → chunk-DG5IQW74.js} +10 -10
  51. package/dist/{chunk-Y2CYNRL7.js → chunk-DN6K6QCF.js} +2 -2
  52. package/dist/{chunk-43AJKH2U.js → chunk-DQOCYWB6.js} +12 -10
  53. package/dist/{chunk-FTTB64OJ.js → chunk-EBEFYSVZ.js} +40 -40
  54. package/dist/{chunk-L65WI4HO.js → chunk-EDU2OCIQ.js} +2 -2
  55. package/dist/{chunk-SWUQJ5VR.js → chunk-EOG4QKKV.js} +108 -65
  56. package/dist/chunk-EPDBWATV.js +38 -0
  57. package/dist/{chunk-5GM6BZO7.js → chunk-F66R7CPY.js} +6 -3
  58. package/dist/{chunk-7BMX2M3F.js → chunk-FFDHZVEL.js} +2 -2
  59. package/dist/{chunk-WGC42WJU.js → chunk-FWNJDD4U.js} +6 -2
  60. package/dist/{chunk-SI3PYDL4.js → chunk-GWA6UGNX.js} +22 -22
  61. package/dist/{chunk-QMFIZQTB.js → chunk-HIOJSYDA.js} +7 -5
  62. package/dist/{chunk-NHQ7HUAS.js → chunk-HJ5DKZPO.js} +12 -10
  63. package/dist/{chunk-FPRMP6YA.js → chunk-HJZ4OET2.js} +32 -17
  64. package/dist/{chunk-N5NQIZ56.js → chunk-HLTVEXML.js} +25 -25
  65. package/dist/{chunk-6IN4F4RH.js → chunk-I6DFQQER.js} +42 -44
  66. package/dist/chunk-ICLB27PZ.js +11 -0
  67. package/dist/{chunk-R3XI2VC7.js → chunk-IDJGV6VM.js} +2 -1
  68. package/dist/{chunk-ZM27UI5O.js → chunk-IEK2FUWO.js} +19 -6
  69. package/dist/{chunk-FJ57274M.js → chunk-IIEI7VK5.js} +15 -1
  70. package/dist/{chunk-DY7KDZUF.js → chunk-IZK2H4KU.js} +3 -3
  71. package/dist/{chunk-CRLVJZWX.js → chunk-JOG6W3VS.js} +2 -2
  72. package/dist/{chunk-XFXJXLK7.js → chunk-JTLLQT34.js} +19 -19
  73. package/dist/{chunk-MS5574I7.js → chunk-K3K7JHZI.js} +2 -2
  74. package/dist/{chunk-GOW5VO6M.js → chunk-KHRZCKKG.js} +2 -2
  75. package/dist/{chunk-D3B6YEZK.js → chunk-KIF4UFD2.js} +20 -16
  76. package/dist/{chunk-EUVUOPRC.js → chunk-KYK6PMB5.js} +55 -34
  77. package/dist/{chunk-RU2HHHYA.js → chunk-LD2JSKU3.js} +12 -2
  78. package/dist/{chunk-CYMYZYLI.js → chunk-LJ7X6ZNV.js} +25 -28
  79. package/dist/{chunk-ICVIJLBA.js → chunk-LLYHYPYG.js} +4 -4
  80. package/dist/{chunk-VRPV6QXR.js → chunk-LLZVRWVS.js} +2 -2
  81. package/dist/{chunk-Z7KVOVE4.js → chunk-LXTMP3VT.js} +7 -4
  82. package/dist/{chunk-7CXW6EGX.js → chunk-MDUCF376.js} +28 -26
  83. package/dist/{chunk-KWSBNLSC.js → chunk-MQAD75AY.js} +2 -2
  84. package/dist/{chunk-XCFIAGT7.js → chunk-MUTZSF2A.js} +17 -16
  85. package/dist/{chunk-CF3I5SOG.js → chunk-NVI5G57O.js} +29 -27
  86. package/dist/{chunk-76LHNLGX.js → chunk-O2HU4AQN.js} +34 -5
  87. package/dist/{chunk-46KVXDUJ.js → chunk-O5QG5IFV.js} +12 -3
  88. package/dist/{chunk-V4NHFY22.js → chunk-OLRVGPJ3.js} +33 -20
  89. package/dist/{chunk-WHWUVDYK.js → chunk-OM6XZAKM.js} +7 -7
  90. package/dist/{chunk-DSXWJAOA.js → chunk-OMN4F42L.js} +17 -15
  91. package/dist/{chunk-LM3HY3VG.js → chunk-P4U5GST7.js} +3 -3
  92. package/dist/{chunk-BH3BQICT.js → chunk-PKW4TLJC.js} +88 -44
  93. package/dist/{chunk-GRN44Z6A.js → chunk-PQR7E3LY.js} +2 -2
  94. package/dist/{chunk-SH4PPRU7.js → chunk-Q5KGGW7Z.js} +2 -2
  95. package/dist/{chunk-RV5A3EGI.js → chunk-QDHOIBHZ.js} +21 -20
  96. package/dist/{chunk-UH5YTZN7.js → chunk-QDTFFVLT.js} +113 -23
  97. package/dist/chunk-QFIXL3OK.js +68 -0
  98. package/dist/{chunk-QXMHBIQG.js → chunk-QGXH64FT.js} +52 -49
  99. package/dist/{chunk-VS2M72PF.js → chunk-RLJKH4ZO.js} +4 -2
  100. package/dist/{chunk-6ZZKEYBS.js → chunk-RN3DOUOU.js} +17 -15
  101. package/dist/{chunk-VBJCGGNF.js → chunk-RPP3NHKV.js} +2 -2
  102. package/dist/{chunk-RTTZIX34.js → chunk-RVWWCQAB.js} +3 -3
  103. package/dist/{chunk-FR5EVD2X.js → chunk-RWF7TCGT.js} +68 -38
  104. package/dist/{chunk-LKS56RDT.js → chunk-S6GPBJWG.js} +2 -2
  105. package/dist/{chunk-UJBP57UJ.js → chunk-S7ZJEQPW.js} +4 -4
  106. package/dist/{chunk-3H4PDNP4.js → chunk-SEOM2BGQ.js} +3 -3
  107. package/dist/{chunk-5PFNUDXR.js → chunk-T3EW35M2.js} +3 -3
  108. package/dist/{chunk-3SP6G4LN.js → chunk-TPQ6Q7JP.js} +3 -3
  109. package/dist/{chunk-B52RL5VV.js → chunk-ULUZBEFO.js} +11 -11
  110. package/dist/{chunk-F4X5NVKY.js → chunk-UNYOWKEC.js} +13 -4
  111. package/dist/{chunk-DEW62ON3.js → chunk-VSPNH7LC.js} +2 -2
  112. package/dist/{chunk-C2WH3BMS.js → chunk-VTWUHX4H.js} +10 -7
  113. package/dist/{chunk-DJL5PO27.js → chunk-W4MC3KP6.js} +2 -2
  114. package/dist/{chunk-MU3CJPJF.js → chunk-W6DBWWPC.js} +3 -3
  115. package/dist/{chunk-JLODGGN2.js → chunk-WC72PTV4.js} +3 -3
  116. package/dist/{chunk-NCT22MOD.js → chunk-WMIKC5XO.js} +2 -2
  117. package/dist/{chunk-H7BYMIVK.js → chunk-WY4L675I.js} +70 -44
  118. package/dist/chunk-XBJJP2HN.js +37 -0
  119. package/dist/{chunk-KRTLS3G6.js → chunk-XDEEYDPQ.js} +4 -4
  120. package/dist/{chunk-S5P5Z5Y5.js → chunk-XNAMWOPJ.js} +3 -3
  121. package/dist/{chunk-2MTM4E6M.js → chunk-XND5JIJA.js} +68 -65
  122. package/dist/{chunk-S6OXNZBM.js → chunk-XWC4RQ7T.js} +4 -4
  123. package/dist/{chunk-UCZBRGJN.js → chunk-XXLAZQ5E.js} +2 -2
  124. package/dist/{chunk-LXXVHLTH.js → chunk-Y22BJKMK.js} +3 -3
  125. package/dist/{chunk-OO2L2LWV.js → chunk-Y2KFQX5K.js} +89 -66
  126. package/dist/{chunk-TI4YUUW6.js → chunk-Y3OLUMJH.js} +31 -30
  127. package/dist/{chunk-CIWFL2LM.js → chunk-Y3RYIGHZ.js} +17 -15
  128. package/dist/{chunk-MTGGOCND.js → chunk-YC6GVLTI.js} +61 -10
  129. package/dist/{chunk-TKIPK5P6.js → chunk-YD2HPT7W.js} +5 -7
  130. package/dist/{chunk-3O7ZYVJV.js → chunk-YPVP6I62.js} +19 -15
  131. package/dist/{chunk-FF7LRT5L.js → chunk-YQIZIKCK.js} +35 -27
  132. package/dist/{chunk-M526IKKH.js → chunk-Z4COUG7H.js} +2 -2
  133. package/dist/{chunk-LTTZX6RD.js → chunk-Z5ZCTCX4.js} +3 -3
  134. package/dist/{chunk-QOVM5VRC.js → chunk-ZASX45SU.js} +3 -3
  135. package/dist/{chunk-W7UBPARG.js → chunk-ZH3BWGTE.js} +3 -3
  136. package/dist/{chunk-TN754B3R.js → chunk-ZZZJVDIL.js} +2 -2
  137. package/dist/clock.js +11 -5
  138. package/dist/completion-registry.js +3 -3
  139. package/dist/countdown.js +26 -20
  140. package/dist/{d3-BiaJtaSw.d.ts → d3-Bje6Mla1.d.ts} +1 -1
  141. package/dist/dgmo-router-OXFV43XX.js +90 -0
  142. package/dist/{dgmo-router-BwXHZ_P3.d.ts → dgmo-router-zWf4Uxxg.d.ts} +1 -1
  143. package/dist/dimensions-AN34SPVX.js +22 -0
  144. package/dist/{flowchart-parser-NVBP3C5D.js → flowchart-parser-MRNAVG35.js} +4 -4
  145. package/dist/flowchart-renderer-IGSKJFMF.js +37 -0
  146. package/dist/index.d.ts +7 -7
  147. package/dist/index.js +75 -60
  148. package/dist/{layout-Y2V3LYV7.js → layout-5AYAYUJH.js} +2 -2
  149. package/dist/{layout-ZAGUFT2G.js → layout-6APS2RRG.js} +8 -7
  150. package/dist/{layout-B5GQVXXY.js → layout-6VUNAH6F.js} +8 -7
  151. package/dist/{layout-RV2T2YTT.js → layout-74HDWQYG.js} +6 -5
  152. package/dist/{layout-6SKHNQYO.js → layout-FCIYZV63.js} +4 -4
  153. package/dist/{layout-4LNMXLVK.js → layout-J2Z2SYH5.js} +3 -3
  154. package/dist/layout-LELNMRM5.js +16 -0
  155. package/dist/{layout-EM4DLMAX.js → layout-OPF6KTOH.js} +5 -5
  156. package/dist/layout-SUND6B7D.js +9 -0
  157. package/dist/layout-WASEHV3S.js +19 -0
  158. package/dist/{layout-SGYR6HBX.js → layout-XAJLQPI6.js} +3 -3
  159. package/dist/layout-XY45TFJ4.js +16 -0
  160. package/dist/layout-YPRXVCW5.js +19 -0
  161. package/dist/{layout-2OJ25STS.js → layout-ZJOWB27N.js} +9 -8
  162. package/dist/{layout-search-UOKEMER5.js → layout-search-3JKNSUTJ.js} +8 -7
  163. package/dist/{legend-constants-PLN2YHGM.js → legend-constants-RSWFR3L6.js} +4 -4
  164. package/dist/{palettes-54YSI3IX.js → palettes-IAF6WVL4.js} +5 -3
  165. package/dist/{parser-QOIZGW7I.js → parser-2Y7LWKNO.js} +4 -4
  166. package/dist/{parser-EQ4I3TSH.js → parser-4GUQUDAC.js} +5 -5
  167. package/dist/{parser-TA5TYZNL.js → parser-4OXANARZ.js} +5 -5
  168. package/dist/{parser-L7T7FY3H.js → parser-56UEMRXS.js} +4 -4
  169. package/dist/{parser-2GMHFSTS.js → parser-66QZQYGE.js} +4 -4
  170. package/dist/{parser-3AOMUX5D.js → parser-6SS7DKVW.js} +4 -4
  171. package/dist/{parser-QYAIFXLP.js → parser-AYURCBDZ.js} +4 -4
  172. package/dist/{parser-5XFGK5C5.js → parser-COPCQEHV.js} +6 -6
  173. package/dist/{parser-F4ZKDGUZ.js → parser-DEWJM5PX.js} +3 -3
  174. package/dist/{parser-ZXQZZK6W.js → parser-DQKZDA2J.js} +4 -3
  175. package/dist/{parser-WCFG3DZA.js → parser-EMPM3V35.js} +3 -3
  176. package/dist/{parser-6FUESG4N.js → parser-EP2JQJNV.js} +4 -4
  177. package/dist/{parser-ZYAFHXKQ.js → parser-FDDHTBRV.js} +4 -4
  178. package/dist/{parser-3KQONLXZ.js → parser-FDESUQ32.js} +3 -3
  179. package/dist/{parser-LV7PQBUG.js → parser-GK6CMK4P.js} +4 -4
  180. package/dist/{parser-WVE6SKB7.js → parser-H33OKBUB.js} +4 -4
  181. package/dist/{parser-ML3LVNDV.js → parser-HJBSWTDY.js} +4 -4
  182. package/dist/{parser-PR3OR3LO.js → parser-HRIKI5O3.js} +5 -5
  183. package/dist/{parser-H4ZUNLX4.js → parser-I77632XB.js} +3 -3
  184. package/dist/{parser-YWQCC33R.js → parser-JGMQE7FS.js} +4 -4
  185. package/dist/{parser-WMJEPZDC.js → parser-JIPG576H.js} +4 -4
  186. package/dist/{parser-E3OHNNTH.js → parser-JNJ2IFSO.js} +4 -4
  187. package/dist/{parser-CJNP7RKR.js → parser-LCUQTABE.js} +4 -4
  188. package/dist/{parser-4DLU4SNG.js → parser-LXU3MGG6.js} +3 -3
  189. package/dist/{parser-WWRRG2DV.js → parser-N4YB5EIZ.js} +4 -4
  190. package/dist/{parser-XVSDFO56.js → parser-NC36PRBR.js} +3 -3
  191. package/dist/{parser-RDBXEVI4.js → parser-O6WYAXTS.js} +4 -4
  192. package/dist/{parser-4KFJKLP2.js → parser-UHABNZBC.js} +3 -3
  193. package/dist/{parser-GCVSRQPY.js → parser-V6HULGXW.js} +4 -4
  194. package/dist/{parser-UTR5WE4O.js → parser-VVWZIMYS.js} +4 -4
  195. package/dist/{parser-B2XQNHZM.js → parser-YJGTPT7A.js} +3 -3
  196. package/dist/{parser-WQNT7T2P.js → parser-YQ5F7ATB.js} +3 -3
  197. package/dist/{parser-ZT3PU2HT.js → parser-ZUH2G7J2.js} +4 -4
  198. package/dist/renderer-2ZGZSSCV.js +39 -0
  199. package/dist/renderer-33AB7UAZ.js +35 -0
  200. package/dist/renderer-43KEDLTQ.js +23 -0
  201. package/dist/renderer-4E6NNPNU.js +29 -0
  202. package/dist/renderer-4HFT4HJG.js +39 -0
  203. package/dist/renderer-63MHARNI.js +20 -0
  204. package/dist/renderer-6HPV7BMG.js +23 -0
  205. package/dist/renderer-BVJ3NVRB.js +20 -0
  206. package/dist/renderer-DV44AS75.js +28 -0
  207. package/dist/renderer-FLLVGYUY.js +30 -0
  208. package/dist/renderer-FSV7MTW3.js +17 -0
  209. package/dist/renderer-H6XEVHKH.js +27 -0
  210. package/dist/renderer-HNEMQJXT.js +21 -0
  211. package/dist/{renderer-CVWQD442.js → renderer-IIN3RY4F.js} +6 -5
  212. package/dist/renderer-K2OWHNBV.js +25 -0
  213. package/dist/renderer-M6UIXQHH.js +27 -0
  214. package/dist/renderer-N5CRYFBI.js +31 -0
  215. package/dist/{renderer-VF7X66SL.js → renderer-O3O6A3RY.js} +16 -16
  216. package/dist/renderer-OVRX36WE.js +39 -0
  217. package/dist/renderer-PLKMHBAB.js +30 -0
  218. package/dist/{renderer-G2DPKJAN.js → renderer-REHVBQ57.js} +17 -16
  219. package/dist/{renderer-GHBF5PRH.js → renderer-RW446FGL.js} +6 -5
  220. package/dist/renderer-SJV75NUI.js +28 -0
  221. package/dist/renderer-TKWW45LZ.js +36 -0
  222. package/dist/{renderer-FTX67CYZ.js → renderer-UHLTPQTW.js} +7 -6
  223. package/dist/renderer-UNYFAMFE.js +16 -0
  224. package/dist/renderer-URXHBQOF.js +26 -0
  225. package/dist/renderer-VBAQQWDB.js +25 -0
  226. package/dist/renderer-VI72MVFW.js +77 -0
  227. package/dist/renderer-XGJIACBV.js +25 -0
  228. package/dist/renderer-XVTKGPYT.js +20 -0
  229. package/dist/{renderer-R5HIRN2M.js → renderer-YLIICO4R.js} +9 -9
  230. package/dist/renderer-ZG6GPWZF.js +27 -0
  231. package/dist/renderer-radial-7UHFYOOL.js +21 -0
  232. package/dist/{state-parser-TPA67IXM.js → state-parser-XT4ZPQAF.js} +5 -5
  233. package/dist/state-renderer-6TVII5ZJ.js +41 -0
  234. package/dist/{tag-groups-BAtkq0b_.d.ts → tag-groups-DIJV_50B.d.ts} +18 -9
  235. package/dist/{themes-DpsyRSO7.d.ts → themes-Bgkyh6gh.d.ts} +2 -2
  236. package/docs/architecture-report.md +3 -3
  237. package/docs/language-reference.md +128 -30
  238. package/docs/migration-sequence-color-to-tags.md +16 -8
  239. package/package.json +7 -6
  240. package/dist/charts-d3-HMEMHSSW.js +0 -29
  241. package/dist/chunk-53SEVJQM.js +0 -9
  242. package/dist/chunk-LP7EC4MI.js +0 -16
  243. package/dist/chunk-YM5RMLFO.js +0 -40
  244. package/dist/dgmo-router-A3LIHT6H.js +0 -89
  245. package/dist/dimensions-OFF4GRFL.js +0 -22
  246. package/dist/flowchart-renderer-BBJUPORB.js +0 -36
  247. package/dist/layout-5ILNODTP.js +0 -15
  248. package/dist/layout-IN53LAE6.js +0 -9
  249. package/dist/layout-KQUSB45X.js +0 -18
  250. package/dist/layout-ROORJQ4X.js +0 -18
  251. package/dist/layout-VUZ3MLOI.js +0 -15
  252. package/dist/renderer-2ANDPQWC.js +0 -16
  253. package/dist/renderer-2LDT4TUX.js +0 -25
  254. package/dist/renderer-2NYQDW37.js +0 -20
  255. package/dist/renderer-2RIIIO34.js +0 -39
  256. package/dist/renderer-3HFU3DTO.js +0 -25
  257. package/dist/renderer-4BF6ILP6.js +0 -27
  258. package/dist/renderer-5E2AH5TO.js +0 -38
  259. package/dist/renderer-62SLWRYF.js +0 -27
  260. package/dist/renderer-ANJUDBOS.js +0 -34
  261. package/dist/renderer-D6GJ6EVK.js +0 -30
  262. package/dist/renderer-DNFV2IQI.js +0 -36
  263. package/dist/renderer-EDVCGIQO.js +0 -76
  264. package/dist/renderer-EFQSMHID.js +0 -27
  265. package/dist/renderer-GZLRX764.js +0 -24
  266. package/dist/renderer-H2HYLFN3.js +0 -20
  267. package/dist/renderer-IR5655M7.js +0 -28
  268. package/dist/renderer-L237AOOZ.js +0 -16
  269. package/dist/renderer-LSJWYGOL.js +0 -39
  270. package/dist/renderer-LWXDMZOV.js +0 -28
  271. package/dist/renderer-MYSVPERC.js +0 -22
  272. package/dist/renderer-OL5QSZPC.js +0 -31
  273. package/dist/renderer-P26HH3NA.js +0 -30
  274. package/dist/renderer-RNFECJ5D.js +0 -21
  275. package/dist/renderer-RPZVNCTF.js +0 -26
  276. package/dist/renderer-SDNWZDUY.js +0 -23
  277. package/dist/renderer-UKHH4UWV.js +0 -25
  278. package/dist/renderer-Y3Y7PEUS.js +0 -20
  279. package/dist/renderer-radial-QNGCGKZP.js +0 -21
  280. package/dist/state-renderer-ELWDRXD6.js +0 -40
@@ -1,37 +1,41 @@
1
1
  import {
2
2
  wrapDescriptionLines
3
- } from "./chunk-NCT22MOD.js";
3
+ } from "./chunk-WMIKC5XO.js";
4
4
  import {
5
5
  renderInlineText
6
- } from "./chunk-WGC42WJU.js";
6
+ } from "./chunk-FWNJDD4U.js";
7
7
  import {
8
8
  ScaleContext
9
9
  } from "./chunk-24YPR5EH.js";
10
+ import {
11
+ ARROWHEAD_HEIGHT,
12
+ ARROWHEAD_WIDTH
13
+ } from "./chunk-IIEI7VK5.js";
10
14
  import {
11
15
  TITLE_FONT_SIZE,
12
16
  TITLE_FONT_WEIGHT,
13
17
  TITLE_Y
14
- } from "./chunk-DEW62ON3.js";
18
+ } from "./chunk-VSPNH7LC.js";
15
19
  import {
16
20
  renderIntegratedLegend
17
- } from "./chunk-U4DS2ODO.js";
21
+ } from "./chunk-253E5ISJ.js";
18
22
  import {
19
23
  FONT_FAMILY
20
- } from "./chunk-53SEVJQM.js";
24
+ } from "./chunk-ICLB27PZ.js";
21
25
  import {
22
26
  LEGEND_HEIGHT
23
- } from "./chunk-YT5ICQ4R.js";
27
+ } from "./chunk-CKDYRVOC.js";
24
28
  import {
25
29
  measureText,
26
30
  wrapTextToWidth
27
- } from "./chunk-MTGGOCND.js";
31
+ } from "./chunk-YC6GVLTI.js";
28
32
  import {
29
33
  fillModeFromOptions
30
- } from "./chunk-M5OOAP65.js";
34
+ } from "./chunk-4CA7TJ44.js";
31
35
  import {
32
36
  contrastText,
33
37
  shapeFill
34
- } from "./chunk-GLREDNBA.js";
38
+ } from "./chunk-AMQFJ7P7.js";
35
39
  import {
36
40
  resolveColor
37
41
  } from "./chunk-XOGQY4EC.js";
@@ -854,7 +858,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
854
858
  const labelFont = scaledCircleLabelFont;
855
859
  const blockH = labelFont + 4 + wrappedDesc.length * scaledDescLineH;
856
860
  const startY = ln.y - blockH / 2 + labelFont;
857
- const labelText = nodeG.append("text").attr("x", ln.x).attr("y", startY).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", labelFont).attr("font-weight", "600");
861
+ const labelText = nodeG.append("text").attr("x", ln.x).attr("y", startY).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", labelFont).attr("font-weight", "bold");
858
862
  renderInlineText(labelText, node.label, palette, labelFont);
859
863
  let descY = startY + scaledDescLineH + 4;
860
864
  wrappedDesc.forEach((line) => {
@@ -864,7 +868,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
864
868
  });
865
869
  } else {
866
870
  const labelFont = scaledCircleLabelFont;
867
- const labelText = nodeG.append("text").attr("x", ln.x).attr("y", ln.y + labelFont / 3).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", labelFont).attr("font-weight", "600");
871
+ const labelText = nodeG.append("text").attr("x", ln.x).attr("y", ln.y + labelFont / 3).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", labelFont).attr("font-weight", "bold");
868
872
  renderInlineText(labelText, node.label, palette, labelFont);
869
873
  }
870
874
  } else {
@@ -872,7 +876,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
872
876
  nodeG.append("rect").attr("x", ln.x - nodeW / 2).attr("y", ln.y - nodeH / 2).attr("width", nodeW).attr("height", nodeH).attr("rx", rx).attr("ry", rx).attr("fill", fillColor).attr("stroke", solidColor).attr("stroke-width", 2);
873
877
  if (hasDesc) {
874
878
  const headerCenterY = ln.y - nodeH / 2 + HEADER_H / 2;
875
- 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");
879
+ 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", "bold");
876
880
  renderInlineText(labelText, node.label, palette, scaledNodeFont);
877
881
  const sepY = ln.y - nodeH / 2 + HEADER_H;
878
882
  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);
@@ -893,7 +897,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
893
897
  }
894
898
  });
895
899
  } else {
896
- const labelText = nodeG.append("text").attr("x", ln.x).attr("y", ln.y + scaledNodeFont / 3).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", scaledNodeFont).attr("font-weight", "600");
900
+ const labelText = nodeG.append("text").attr("x", ln.x).attr("y", ln.y + scaledNodeFont / 3).attr("text-anchor", "middle").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", scaledNodeFont).attr("font-weight", "bold");
897
901
  renderInlineText(labelText, node.label, palette, scaledNodeFont);
898
902
  }
899
903
  }
@@ -933,7 +937,7 @@ function renderCycle(container, parsed, palette, isDark, onClickItem, exportDims
933
937
  edgeG.append("rect").attr("x", bgX).attr("y", bgY).attr("width", bgW).attr("height", bgH).attr("rx", 3).attr("fill", palette.bg).attr("fill-opacity", 0.85);
934
938
  let textY = le.labelY;
935
939
  for (const line of labelLines) {
936
- const labelText = edgeG.append("text").attr("x", le.labelX).attr("y", textY).attr("text-anchor", anchor).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", scaledEdgeLabelFont).attr("font-weight", "600");
940
+ const labelText = edgeG.append("text").attr("x", le.labelX).attr("y", textY).attr("text-anchor", anchor).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", scaledEdgeLabelFont).attr("font-weight", "bold");
937
941
  renderInlineText(labelText, line, palette, scaledEdgeLabelFont);
938
942
  textY += scaledEdgeLineH;
939
943
  }
@@ -976,7 +980,7 @@ function arrowMarkerId(color, strokeWidth) {
976
980
  function ensureArrowMarker(defs, color, strokeWidth) {
977
981
  const id = arrowMarkerId(color, strokeWidth);
978
982
  const mw = arrowHeadLength(strokeWidth) / strokeWidth;
979
- const mh = Math.max(1.5, mw * 0.5);
983
+ const mh = Math.max(1.5, mw * (ARROWHEAD_HEIGHT / ARROWHEAD_WIDTH));
980
984
  defs.append("marker").attr("id", id).attr("viewBox", `0 0 ${mw} ${mh}`).attr("refX", mw * 0.1).attr("refY", mh / 2).attr("markerWidth", mw).attr("markerHeight", mh).attr("orient", "auto").append("polygon").attr("points", `0,0 ${mw},${mh / 2} 0,${mh}`).attr("fill", color);
981
985
  }
982
986
 
@@ -985,4 +989,4 @@ export {
985
989
  renderCycle,
986
990
  renderCycleForExport
987
991
  };
988
- //# sourceMappingURL=chunk-D3B6YEZK.js.map
992
+ //# sourceMappingURL=chunk-KIF4UFD2.js.map
@@ -1,33 +1,36 @@
1
1
  import {
2
2
  parseInlineMarkdown,
3
3
  safeHref
4
- } from "./chunk-WGC42WJU.js";
4
+ } from "./chunk-FWNJDD4U.js";
5
5
  import {
6
6
  ScaleContext
7
7
  } from "./chunk-24YPR5EH.js";
8
+ import {
9
+ TITLE_FONT_SIZE
10
+ } from "./chunk-VSPNH7LC.js";
8
11
  import {
9
12
  renderIntegratedLegend
10
- } from "./chunk-U4DS2ODO.js";
13
+ } from "./chunk-253E5ISJ.js";
11
14
  import {
12
15
  getMaxLegendReservedHeight
13
- } from "./chunk-VRPV6QXR.js";
16
+ } from "./chunk-LLZVRWVS.js";
14
17
  import {
15
18
  FONT_FAMILY
16
- } from "./chunk-53SEVJQM.js";
19
+ } from "./chunk-ICLB27PZ.js";
17
20
  import {
18
21
  measureText,
19
22
  truncateText,
20
23
  wrapTextToWidth
21
- } from "./chunk-MTGGOCND.js";
24
+ } from "./chunk-YC6GVLTI.js";
22
25
  import {
23
26
  fillModeFromOptions,
24
27
  legendSuppressed
25
- } from "./chunk-M5OOAP65.js";
28
+ } from "./chunk-4CA7TJ44.js";
26
29
  import {
27
30
  contrastText,
28
31
  mix,
29
32
  shapeFill
30
- } from "./chunk-GLREDNBA.js";
33
+ } from "./chunk-AMQFJ7P7.js";
31
34
 
32
35
  // src/tech-radar/renderer.ts
33
36
  import * as d3Selection2 from "d3-selection";
@@ -218,7 +221,7 @@ function createTooltip(container, palette, isDark) {
218
221
  import * as d3Selection from "d3-selection";
219
222
  var BLIP_RADIUS = 13;
220
223
  var BLIP_FONT_SIZE = 10;
221
- var TITLE_FONT_SIZE = 16;
224
+ var TITLE_FONT_SIZE2 = 16;
222
225
  var NARROW_BREAKPOINT = 600;
223
226
  function renderQuadrantFocus(container, parsed, quadrantPosition, palette, isDark, onClickItem, exportDims, _options) {
224
227
  const quadrant = parsed.quadrants.find(
@@ -239,7 +242,7 @@ function renderQuadrantFocus(container, parsed, quadrantPosition, palette, isDar
239
242
  titleBar.style.cssText = `
240
243
  display: flex; align-items: baseline; gap: 8px;
241
244
  padding: 8px 12px; font-family: ${FONT_FAMILY};
242
- font-size: ${TITLE_FONT_SIZE}px; background: ${palette.bg};
245
+ font-size: ${TITLE_FONT_SIZE2}px; background: ${palette.bg};
243
246
  `;
244
247
  const titleLink = document.createElement("span");
245
248
  titleLink.textContent = parsed.title || "Tech Radar";
@@ -293,7 +296,6 @@ function renderQuadrantFocus(container, parsed, quadrantPosition, palette, isDar
293
296
  quadrant,
294
297
  qColor,
295
298
  palette,
296
- isDark,
297
299
  svgWidth,
298
300
  svgHeight,
299
301
  palette.border,
@@ -316,7 +318,7 @@ function renderQuadrantFocus(container, parsed, quadrantPosition, palette, isDar
316
318
  }
317
319
  }
318
320
  }
319
- function renderQuarterCircle(svg, parsed, quadrant, qColor, palette, isDark, width, height, mutedColor, _tooltip, rootContainer, onClickItem) {
321
+ function renderQuarterCircle(svg, parsed, quadrant, qColor, palette, width, height, mutedColor, _tooltip, rootContainer, onClickItem) {
320
322
  const padding = 8;
321
323
  const size = Math.min(width - padding, height - padding);
322
324
  const maxRadius = size * 0.95;
@@ -399,7 +401,10 @@ function renderQuarterCircle(svg, parsed, quadrant, qColor, palette, isDark, wid
399
401
  BLIP_RADIUS,
400
402
  angleToCenter
401
403
  );
402
- blipGroup.append("text").attr("x", bx).attr("y", by + 3).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", BLIP_FONT_SIZE).attr("font-weight", "bold").text(blip.globalNumber);
404
+ blipGroup.append("text").attr("x", bx).attr("y", by + 3).attr("text-anchor", "middle").attr(
405
+ "fill",
406
+ contrastText(qColor, palette.textOnFillLight, palette.textOnFillDark)
407
+ ).attr("font-family", FONT_FAMILY).attr("font-size", BLIP_FONT_SIZE).attr("font-weight", "bold").text(blip.globalNumber);
403
408
  const lineNum = String(blip.lineNumber);
404
409
  blipGroup.on("mouseenter", () => {
405
410
  blipGroup.attr(
@@ -463,7 +468,7 @@ function renderHtmlPanel(panel, parsed, quadrant, qColor, palette, isDark, rootC
463
468
  `;
464
469
  const header = document.createElement("div");
465
470
  header.style.cssText = `
466
- font-size: 13px; font-weight: 700; color: ${palette.textMuted};
471
+ font-size: 13px; font-weight: bold; color: ${palette.textMuted};
467
472
  margin-bottom: 8px;
468
473
  `;
469
474
  header.textContent = ringName;
@@ -505,12 +510,19 @@ function renderHtmlPanel(panel, parsed, quadrant, qColor, palette, isDark, rootC
505
510
  10,
506
511
  -Math.PI / 2
507
512
  );
508
- d3Selection.select(indicatorSvg).append("text").attr("x", 13).attr("y", 16).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
513
+ d3Selection.select(indicatorSvg).append("text").attr("x", 13).attr("y", 16).attr("text-anchor", "middle").attr(
514
+ "fill",
515
+ contrastText(
516
+ qColor,
517
+ palette.textOnFillLight,
518
+ palette.textOnFillDark
519
+ )
520
+ ).attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
509
521
  titleRow.appendChild(indicatorSvg);
510
522
  const name = document.createElement("span");
511
523
  name.textContent = blip.name;
512
524
  name.style.cssText = `
513
- flex: 1; font-size: 12px; font-weight: 600;
525
+ flex: 1; font-size: 12px; font-weight: bold;
514
526
  color: ${palette.text}; white-space: nowrap;
515
527
  overflow: hidden; text-overflow: ellipsis;
516
528
  `;
@@ -695,7 +707,7 @@ function renderQuadrantFocusForExport(container, parsed, quadrantPosition, palet
695
707
  titleBar.style.cssText = `
696
708
  display: flex; align-items: baseline; gap: 8px;
697
709
  padding: 12px 16px; font-family: ${FONT_FAMILY};
698
- font-size: ${TITLE_FONT_SIZE + 2}px; background: ${palette.bg};
710
+ font-size: ${TITLE_FONT_SIZE2 + 2}px; background: ${palette.bg};
699
711
  `;
700
712
  const titleText = document.createElement("span");
701
713
  titleText.textContent = parsed.title || "Tech Radar";
@@ -735,13 +747,12 @@ function renderQuadrantFocusForExport(container, parsed, quadrantPosition, palet
735
747
  quadrant,
736
748
  qColor,
737
749
  palette,
738
- isDark,
739
750
  svgWidth,
740
751
  svgHeight,
741
752
  palette.border
742
753
  );
743
754
  }
744
- function renderQuarterCircleStatic(svg, parsed, quadrant, qColor, palette, isDark, width, height, mutedColor) {
755
+ function renderQuarterCircleStatic(svg, parsed, quadrant, qColor, palette, width, height, mutedColor) {
745
756
  const padding = 8;
746
757
  const size = Math.min(width - padding, height - padding);
747
758
  const maxRadius = size * 0.95;
@@ -779,7 +790,7 @@ function renderQuarterCircleStatic(svg, parsed, quadrant, qColor, palette, isDar
779
790
  const midAngle = (startAngle + endAngle) / 2;
780
791
  const labelX = cx + rCenter * Math.cos(midAngle);
781
792
  const labelY = cy - rCenter * Math.sin(midAngle);
782
- svg.append("text").attr("x", labelX).attr("y", labelY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", palette.textMuted).attr("font-family", FONT_FAMILY).attr("font-size", 11).attr("font-weight", "600").attr("opacity", 0.5).text(parsed.rings[ri].name);
793
+ svg.append("text").attr("x", labelX).attr("y", labelY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", palette.textMuted).attr("font-family", FONT_FAMILY).attr("font-size", 11).attr("font-weight", "bold").attr("opacity", 0.5).text(parsed.rings[ri].name);
783
794
  }
784
795
  const ringOrder = parsed.rings.map((r) => r.name);
785
796
  const angularPadding = 0.08;
@@ -816,7 +827,10 @@ function renderQuarterCircleStatic(svg, parsed, quadrant, qColor, palette, isDar
816
827
  BLIP_RADIUS,
817
828
  angleToCenter
818
829
  );
819
- blipGroup.append("text").attr("x", bx).attr("y", by + 3).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", BLIP_FONT_SIZE).attr("font-weight", "bold").text(blip.globalNumber);
830
+ blipGroup.append("text").attr("x", bx).attr("y", by + 3).attr("text-anchor", "middle").attr(
831
+ "fill",
832
+ contrastText(qColor, palette.textOnFillLight, palette.textOnFillDark)
833
+ ).attr("font-family", FONT_FAMILY).attr("font-size", BLIP_FONT_SIZE).attr("font-weight", "bold").text(blip.globalNumber);
820
834
  }
821
835
  }
822
836
  }
@@ -837,7 +851,7 @@ function renderStaticHtmlPanel(panel, parsed, quadrant, qColor, palette, isDark)
837
851
  `;
838
852
  const header = document.createElement("div");
839
853
  header.style.cssText = `
840
- font-size: 13px; font-weight: 700; color: ${palette.textMuted};
854
+ font-size: 13px; font-weight: bold; color: ${palette.textMuted};
841
855
  margin-bottom: 8px;
842
856
  `;
843
857
  header.textContent = ringName;
@@ -872,12 +886,15 @@ function renderStaticHtmlPanel(panel, parsed, quadrant, qColor, palette, isDark)
872
886
  10,
873
887
  -Math.PI / 2
874
888
  );
875
- d3Selection.select(indicatorSvg).append("text").attr("x", 13).attr("y", 16).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
889
+ d3Selection.select(indicatorSvg).append("text").attr("x", 13).attr("y", 16).attr("text-anchor", "middle").attr(
890
+ "fill",
891
+ contrastText(qColor, palette.textOnFillLight, palette.textOnFillDark)
892
+ ).attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
876
893
  titleRow.appendChild(indicatorSvg);
877
894
  const name = document.createElement("span");
878
895
  name.textContent = blip.name;
879
896
  name.style.cssText = `
880
- flex: 1; font-size: 12px; font-weight: 600;
897
+ flex: 1; font-size: 12px; font-weight: bold;
881
898
  color: ${palette.text};
882
899
  `;
883
900
  titleRow.appendChild(name);
@@ -904,7 +921,6 @@ var BLIP_RADIUS2 = 12;
904
921
  var BLIP_FONT_SIZE2 = 9;
905
922
  var RING_LABEL_FONT_SIZE = 13;
906
923
  var QUADRANT_LABEL_FONT_SIZE = 18;
907
- var TITLE_FONT_SIZE2 = 18;
908
924
  var LISTING_FONT_SIZE = 12;
909
925
  var LISTING_HEADER_FONT_SIZE = 13;
910
926
  var LISTING_TOP_MARGIN = 24;
@@ -950,7 +966,7 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
950
966
  const sBlipFontSize = ctx.text(BLIP_FONT_SIZE2);
951
967
  const sRingLabelFontSize = ctx.text(RING_LABEL_FONT_SIZE);
952
968
  const sQuadrantLabelFontSize = ctx.text(QUADRANT_LABEL_FONT_SIZE);
953
- const sTitleFontSize = ctx.text(TITLE_FONT_SIZE2);
969
+ const sTitleFontSize = ctx.text(TITLE_FONT_SIZE);
954
970
  const sListingFontSize = ctx.text(LISTING_FONT_SIZE);
955
971
  const sListingHeaderFontSize = ctx.text(LISTING_HEADER_FONT_SIZE);
956
972
  const sListingTopMargin = ctx.aesthetic(LISTING_TOP_MARGIN);
@@ -1080,10 +1096,10 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
1080
1096
  for (let ri = 0; ri < parsed.rings.length; ri++) {
1081
1097
  const rCenter = (ri + 0.5) * ringBandWidth;
1082
1098
  if (ri === 0) {
1083
- radarGroup.append("text").attr("x", cx).attr("y", cy).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "600").attr("opacity", 0.5).text(parsed.rings[ri].name);
1099
+ radarGroup.append("text").attr("x", cx).attr("y", cy).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "bold").attr("opacity", 0.5).text(parsed.rings[ri].name);
1084
1100
  } else {
1085
- radarGroup.append("text").attr("x", cx).attr("y", cy - rCenter).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "600").attr("opacity", 0.5).text(parsed.rings[ri].name);
1086
- radarGroup.append("text").attr("x", cx).attr("y", cy + rCenter).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "600").attr("opacity", 0.5).text(parsed.rings[ri].name);
1101
+ radarGroup.append("text").attr("x", cx).attr("y", cy - rCenter).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "bold").attr("opacity", 0.5).text(parsed.rings[ri].name);
1102
+ radarGroup.append("text").attr("x", cx).attr("y", cy + rCenter).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", textColor).attr("font-family", FONT_FAMILY).attr("font-size", sRingLabelFontSize).attr("font-weight", "bold").attr("opacity", 0.5).text(parsed.rings[ri].name);
1087
1103
  }
1088
1104
  }
1089
1105
  for (const quadrant of parsed.quadrants) {
@@ -1161,7 +1177,10 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
1161
1177
  sBlipRadius,
1162
1178
  angleToCenter
1163
1179
  );
1164
- blipGroup.append("text").attr("x", point.x).attr("y", point.y + 3).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", sBlipFontSize).attr("font-weight", "bold").text(point.blip.globalNumber);
1180
+ blipGroup.append("text").attr("x", point.x).attr("y", point.y + 3).attr("text-anchor", "middle").attr(
1181
+ "fill",
1182
+ contrastText(qColor, palette.textOnFillLight, palette.textOnFillDark)
1183
+ ).attr("font-family", FONT_FAMILY).attr("font-size", sBlipFontSize).attr("font-weight", "bold").text(point.blip.globalNumber);
1165
1184
  const lineNum = String(point.blip.lineNumber);
1166
1185
  const bx = point.x;
1167
1186
  const by = point.y;
@@ -1273,7 +1292,6 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
1273
1292
  svg,
1274
1293
  parsed,
1275
1294
  palette,
1276
- isDark,
1277
1295
  textColor,
1278
1296
  radarHeight + sListingTopMargin,
1279
1297
  width,
@@ -1287,7 +1305,7 @@ function renderTechRadar(container, parsed, palette, isDark, onClickItem, export
1287
1305
  }
1288
1306
  }
1289
1307
  var LISTING_BLIP_R = 11;
1290
- function renderBlipListing(svg, parsed, palette, isDark, textColor, startY, totalWidth, onClickItem, sListingFontSize = LISTING_FONT_SIZE, sListingHeaderFontSize = LISTING_HEADER_FONT_SIZE, sListingColGap = LISTING_COL_GAP, sListingLineHeight = LISTING_LINE_HEIGHT, sListingBlipR = LISTING_BLIP_R) {
1308
+ function renderBlipListing(svg, parsed, palette, textColor, startY, totalWidth, onClickItem, sListingFontSize = LISTING_FONT_SIZE, sListingHeaderFontSize = LISTING_HEADER_FONT_SIZE, sListingColGap = LISTING_COL_GAP, sListingLineHeight = LISTING_LINE_HEIGHT, sListingBlipR = LISTING_BLIP_R) {
1291
1309
  const colCount = parsed.quadrants.length;
1292
1310
  if (colCount === 0) return;
1293
1311
  const colWidth = (totalWidth - sListingColGap * (colCount + 1)) / colCount;
@@ -1330,7 +1348,10 @@ function renderBlipListing(svg, parsed, palette, isDark, textColor, startY, tota
1330
1348
  sListingBlipR,
1331
1349
  trendAngle
1332
1350
  );
1333
- itemGroup.append("text").attr("x", blipCx).attr("y", blipCy + 3).attr("text-anchor", "middle").attr("fill", isDark ? "#000" : "#fff").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
1351
+ itemGroup.append("text").attr("x", blipCx).attr("y", blipCy + 3).attr("text-anchor", "middle").attr(
1352
+ "fill",
1353
+ contrastText(qColor, palette.textOnFillLight, palette.textOnFillDark)
1354
+ ).attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("font-weight", "bold").text(blip.globalNumber);
1334
1355
  const textX = colX + sListingBlipR * 2 + 6;
1335
1356
  const availableWidth = colWidth - sListingBlipR * 2 - 8;
1336
1357
  const fullLabel = `${blip.name} (${blip.ring})`;
@@ -1453,7 +1474,7 @@ function showBlipPopover(popover, blip, qColor, palette, isDark, event, fillMode
1453
1474
  palette.textOnFillDark
1454
1475
  );
1455
1476
  let html = `<div style="background:${fillColor}; border: 1.5px solid ${qColor}; border-radius: 6px; overflow: hidden;">`;
1456
- html += `<div style="padding: 8px 12px; font-weight: 600; color: ${onFillText};">${escapeHtml2(blip.name)}</div>`;
1477
+ html += `<div style="padding: 8px 12px; font-weight: bold; color: ${onFillText};">${escapeHtml2(blip.name)}</div>`;
1457
1478
  if (hasDesc) {
1458
1479
  html += `<div style="border-top: 1px solid ${qColor}; opacity: 0.3;"></div>`;
1459
1480
  html += `<div style="padding: 6px 12px 8px; color: ${palette.textMuted}; font-size: 11px; line-height: 1.6;">`;
@@ -1603,4 +1624,4 @@ export {
1603
1624
  renderTechRadar,
1604
1625
  renderTechRadarForExport
1605
1626
  };
1606
- //# sourceMappingURL=chunk-EUVUOPRC.js.map
1627
+ //# sourceMappingURL=chunk-KYK6PMB5.js.map
@@ -13,11 +13,21 @@ function escapeAttributeMarkupChars(svg) {
13
13
  }
14
14
  );
15
15
  }
16
+ var ROUNDED_ATTRS = /(\s(?:font-size|stroke-width|rx|ry)=")(-?\d+\.\d{3,})"/g;
17
+ var ROUNDED_OPACITY_ATTRS = /(\s(?:opacity|fill-opacity|stroke-opacity)=")(-?\d+\.\d{5,})"/g;
18
+ function roundMagnitudeAttrs(svg) {
19
+ const round = (re, digits) => (s) => s.replace(re, (_m, prefix, value) => {
20
+ const n = Number(value);
21
+ if (!Number.isFinite(n)) return `${prefix}${value}"`;
22
+ return `${prefix}${String(Number(n.toFixed(digits)))}"`;
23
+ });
24
+ return round(ROUNDED_OPACITY_ATTRS, 4)(round(ROUNDED_ATTRS, 2)(svg));
25
+ }
16
26
  function serializeSvg(svgEl) {
17
- return escapeAttributeMarkupChars(svgEl.outerHTML);
27
+ return roundMagnitudeAttrs(escapeAttributeMarkupChars(svgEl.outerHTML));
18
28
  }
19
29
 
20
30
  export {
21
31
  serializeSvg
22
32
  };
23
- //# sourceMappingURL=chunk-RU2HHHYA.js.map
33
+ //# sourceMappingURL=chunk-LD2JSKU3.js.map
@@ -1,14 +1,13 @@
1
- import {
2
- extractExportSvg,
3
- runInExportContainer
4
- } from "./chunk-YM5RMLFO.js";
5
1
  import {
6
2
  layoutOrg
7
- } from "./chunk-NHQ7HUAS.js";
3
+ } from "./chunk-HJ5DKZPO.js";
8
4
  import {
9
5
  renderCollapseBar,
10
6
  renderNodeCard
11
- } from "./chunk-5GM6BZO7.js";
7
+ } from "./chunk-F66R7CPY.js";
8
+ import {
9
+ ScaleContext
10
+ } from "./chunk-24YPR5EH.js";
12
11
  import {
13
12
  CARD_RADIUS,
14
13
  COLLAPSE_BAR_HEIGHT,
@@ -25,49 +24,50 @@ import {
25
24
  META_LINE_HEIGHT,
26
25
  NODE_STROKE_WIDTH,
27
26
  SEPARATOR_GAP
28
- } from "./chunk-FJ57274M.js";
27
+ } from "./chunk-IIEI7VK5.js";
29
28
  import {
30
- ScaleContext
31
- } from "./chunk-24YPR5EH.js";
29
+ extractExportSvg,
30
+ runInExportContainer
31
+ } from "./chunk-QFIXL3OK.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
35
- } from "./chunk-DEW62ON3.js";
35
+ } from "./chunk-VSPNH7LC.js";
36
36
  import {
37
37
  renderIntegratedLegend
38
- } from "./chunk-U4DS2ODO.js";
38
+ } from "./chunk-253E5ISJ.js";
39
39
  import {
40
40
  getMaxLegendReservedHeight
41
- } from "./chunk-VRPV6QXR.js";
41
+ } from "./chunk-LLZVRWVS.js";
42
42
  import {
43
43
  FONT_FAMILY
44
- } from "./chunk-53SEVJQM.js";
44
+ } from "./chunk-ICLB27PZ.js";
45
45
  import {
46
46
  EYE_CLOSED_PATH,
47
47
  EYE_OPEN_PATH,
48
48
  LEGEND_EYE_GAP,
49
49
  LEGEND_EYE_SIZE,
50
50
  LEGEND_HEIGHT
51
- } from "./chunk-YT5ICQ4R.js";
51
+ } from "./chunk-CKDYRVOC.js";
52
52
  import {
53
53
  measureText
54
- } from "./chunk-MTGGOCND.js";
54
+ } from "./chunk-YC6GVLTI.js";
55
55
  import {
56
56
  parseOrg
57
- } from "./chunk-SWEKCK34.js";
57
+ } from "./chunk-AFOHIR2O.js";
58
58
  import {
59
59
  resolveTagColor,
60
60
  tagAttrKey
61
- } from "./chunk-76LHNLGX.js";
61
+ } from "./chunk-O2HU4AQN.js";
62
62
  import {
63
63
  fillModeFromOptions
64
- } from "./chunk-M5OOAP65.js";
64
+ } from "./chunk-4CA7TJ44.js";
65
65
  import {
66
66
  contrastText,
67
- mix,
68
- shapeFill,
69
- themeBaseBg
70
- } from "./chunk-GLREDNBA.js";
67
+ groupFill,
68
+ groupStroke,
69
+ shapeFill
70
+ } from "./chunk-AMQFJ7P7.js";
71
71
 
72
72
  // src/org/renderer.ts
73
73
  import * as d3Selection from "d3-selection";
@@ -93,13 +93,10 @@ function nodeStroke(palette, nodeColor) {
93
93
  return nodeColor ?? palette.primary;
94
94
  }
95
95
  function containerFill(palette, isDark, nodeColor) {
96
- if (nodeColor) {
97
- return mix(nodeColor, themeBaseBg(palette, isDark), 10);
98
- }
99
- return mix(palette.surface, palette.bg, 40);
96
+ return groupFill(palette, isDark, nodeColor);
100
97
  }
101
98
  function containerStroke(palette, nodeColor) {
102
- return nodeColor ?? palette.textMuted;
99
+ return groupStroke(palette, nodeColor);
103
100
  }
104
101
  function renderOrg(container, parsed, layout, palette, isDark, onClickItem, exportDims, activeTagGroup, hiddenAttributes, ancestorPath, exportMode) {
105
102
  d3Selection.select(container).selectAll(":not([data-d3-tooltip])").remove();
@@ -493,4 +490,4 @@ export {
493
490
  renderOrg,
494
491
  renderOrgForExport
495
492
  };
496
- //# sourceMappingURL=chunk-CYMYZYLI.js.map
493
+ //# sourceMappingURL=chunk-LJ7X6ZNV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-76NHL5UG.js";
3
+ } from "./chunk-7I6NWTPE.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-E6PNTYRK.js";
@@ -20,7 +20,7 @@ import {
20
20
  tagAttrKey,
21
21
  validateTagGroupNames,
22
22
  validateTagValues
23
- } from "./chunk-76LHNLGX.js";
23
+ } from "./chunk-O2HU4AQN.js";
24
24
  import {
25
25
  AliasRegistry,
26
26
  ER_REGISTRY,
@@ -34,7 +34,7 @@ import {
34
34
  tryParseSharedOption,
35
35
  warnUnknownMetaKeys,
36
36
  withTagAliases
37
- } from "./chunk-M5OOAP65.js";
37
+ } from "./chunk-4CA7TJ44.js";
38
38
  import {
39
39
  resolveColorWithDiagnostic
40
40
  } from "./chunk-XOGQY4EC.js";
@@ -559,4 +559,4 @@ export {
559
559
  looksLikeERDiagram,
560
560
  extractSymbols
561
561
  };
562
- //# sourceMappingURL=chunk-ICVIJLBA.js.map
562
+ //# sourceMappingURL=chunk-LLYHYPYG.js.map
@@ -13,7 +13,7 @@ import {
13
13
  LEGEND_TOGGLE_DOT_R,
14
14
  measureLegendText,
15
15
  truncateLegendText
16
- } from "./chunk-YT5ICQ4R.js";
16
+ } from "./chunk-CKDYRVOC.js";
17
17
 
18
18
  // src/utils/number-format.ts
19
19
  function compactNumber(n) {
@@ -577,4 +577,4 @@ export {
577
577
  getMaxLegendReservedHeight,
578
578
  getLegendExtent
579
579
  };
580
- //# sourceMappingURL=chunk-VRPV6QXR.js.map
580
+ //# sourceMappingURL=chunk-LLZVRWVS.js.map
@@ -5,6 +5,9 @@ import {
5
5
  targetToMs,
6
6
  weekdayIndex
7
7
  } from "./chunk-WFA6IULY.js";
8
+ import {
9
+ now
10
+ } from "./chunk-3DPOIW3W.js";
8
11
  import {
9
12
  normalizeDate
10
13
  } from "./chunk-DAOFNU6J.js";
@@ -13,7 +16,7 @@ import {
13
16
  fillModeFromToken,
14
17
  measureIndent,
15
18
  parseFirstLine
16
- } from "./chunk-M5OOAP65.js";
19
+ } from "./chunk-4CA7TJ44.js";
17
20
  import {
18
21
  makeDgmoError,
19
22
  makeFail
@@ -302,7 +305,7 @@ function parseCountdown(content, palette) {
302
305
  }
303
306
  if (noteBody.length) result.note = noteBody.join("\n");
304
307
  if (targetIsNow) {
305
- targetMs = Date.now();
308
+ targetMs = now();
306
309
  result.target = new Date(targetMs).toISOString();
307
310
  } else if (targetRaw !== null) {
308
311
  const iso = normalizeDate(targetRaw, { order: dateOrder, year: baseYear });
@@ -367,7 +370,7 @@ function parseCountdown(content, palette) {
367
370
  result.tz
368
371
  );
369
372
  result.rule = rule;
370
- result.resolvedMs = resolveNext(rule, Date.now());
373
+ result.resolvedMs = resolveNext(rule, now());
371
374
  result.sinceMs = sinceMs;
372
375
  if (sinceHasTime) result.hasTime = true;
373
376
  } else if (targetMs !== null) {
@@ -421,4 +424,4 @@ export {
421
424
  targetToMs2 as targetToMs,
422
425
  parseCountdown
423
426
  };
424
- //# sourceMappingURL=chunk-Z7KVOVE4.js.map
427
+ //# sourceMappingURL=chunk-LXTMP3VT.js.map