@diagrammo/dgmo 0.76.0 → 0.78.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 (229) hide show
  1. package/README.md +17 -13
  2. package/dist/advanced.d.ts +150 -13
  3. package/dist/advanced.js +180 -131
  4. package/dist/block.css +1 -1
  5. package/dist/block.d.ts +2 -2
  6. package/dist/block.js +45 -41
  7. package/dist/{chart-meta-lP8Rl19E.d.ts → chart-meta-BKN2ORkc.d.ts} +2 -2
  8. package/dist/chart-meta.d.ts +3 -3
  9. package/dist/chart-meta.js +30 -29
  10. package/dist/charts-d3-KEQ7XVSM.js +31 -0
  11. package/dist/{chunk-7IATMZSA.js → chunk-26EVL454.js} +1 -25
  12. package/dist/{chunk-3H4PDNP4.js → chunk-2NLBIZEW.js} +2 -2
  13. package/dist/{chunk-GFXFRKUG.js → chunk-32VR65TL.js} +63 -36
  14. package/dist/{chunk-IHUOYDLN.js → chunk-36UQ77JV.js} +24 -24
  15. package/dist/chunk-3DPOIW3W.js +10 -0
  16. package/dist/{chunk-3SP6G4LN.js → chunk-3GLTQZKE.js} +2 -2
  17. package/dist/{chunk-DY7KDZUF.js → chunk-3OWIYK52.js} +2 -2
  18. package/dist/{chunk-UBW53CNS.js → chunk-3XFOE3DQ.js} +12 -7
  19. package/dist/{chunk-W7UBPARG.js → chunk-3ZLQM6XN.js} +2 -2
  20. package/dist/{chunk-5GM6BZO7.js → chunk-4AWLEWSD.js} +5 -2
  21. package/dist/{chunk-AYM472K3.js → chunk-4IGUEGD6.js} +80 -61
  22. package/dist/{chunk-QOVM5VRC.js → chunk-57GSSHBR.js} +2 -2
  23. package/dist/{chunk-5VMUVJO4.js → chunk-5G55TS3H.js} +2 -2
  24. package/dist/{chunk-QT5UMFPE.js → chunk-67I3HFSF.js} +9 -9
  25. package/dist/{chunk-WQXD3IIN.js → chunk-6B3M6LW6.js} +10 -8
  26. package/dist/{chunk-3EGIU5WY.js → chunk-6PHOZBW5.js} +4 -6
  27. package/dist/{chunk-5PFNUDXR.js → chunk-6VTLVU7D.js} +2 -2
  28. package/dist/{chunk-M5JT2AU7.js → chunk-6Z2NUJSX.js} +2 -2
  29. package/dist/{chunk-BWJLLNUX.js → chunk-7BNRHSSF.js} +2 -2
  30. package/dist/{chunk-JLODGGN2.js → chunk-7NNJXYXU.js} +2 -2
  31. package/dist/{chunk-FTTB64OJ.js → chunk-7SMVTA7I.js} +26 -26
  32. package/dist/{chunk-Z7KVOVE4.js → chunk-7WTFX6OA.js} +6 -3
  33. package/dist/{chunk-ZM27UI5O.js → chunk-A7Y32YD6.js} +2 -2
  34. package/dist/{chunk-FPRMP6YA.js → chunk-AHN2CVCH.js} +10 -7
  35. package/dist/{chunk-N6MZSBOL.js → chunk-AN7T6VP7.js} +2 -2
  36. package/dist/{chunk-F4X5NVKY.js → chunk-B6PVPAS5.js} +2 -2
  37. package/dist/{chunk-QI4Q5ZZH.js → chunk-BB2ORSTF.js} +19 -18
  38. package/dist/{chunk-HGFKDSKZ.js → chunk-BJB4YDJP.js} +21 -21
  39. package/dist/{chunk-BZQCAZZZ.js → chunk-BPM52K3Z.js} +41 -34
  40. package/dist/{chunk-HFCKU73Y.js → chunk-BSREARWG.js} +29 -28
  41. package/dist/{chunk-F4V67JXG.js → chunk-CTERZC4K.js} +2 -2
  42. package/dist/{chunk-FMZEU7MF.js → chunk-CYLSQO4L.js} +6 -6
  43. package/dist/{chunk-JLJ7SP4X.js → chunk-DCPD5SHV.js} +3 -3
  44. package/dist/{chunk-U7AO6FRL.js → chunk-ENDB5YSV.js} +363 -129
  45. package/dist/{chunk-RTTZIX34.js → chunk-EOB7XVYR.js} +2 -2
  46. package/dist/chunk-EPDBWATV.js +38 -0
  47. package/dist/{chunk-TPN7RJOM.js → chunk-FJADQOFQ.js} +3 -3
  48. package/dist/{chunk-MG3DE3VO.js → chunk-FLMXJMMY.js} +3 -3
  49. package/dist/{chunk-WGC42WJU.js → chunk-FWNJDD4U.js} +6 -2
  50. package/dist/{chunk-S5P5Z5Y5.js → chunk-GINNZHVN.js} +2 -2
  51. package/dist/{chunk-7EZ5AKBK.js → chunk-GJH7ZEPH.js} +45 -38
  52. package/dist/{chunk-E3BJVEMZ.js → chunk-GQEXY7XL.js} +68 -65
  53. package/dist/{chunk-COCMMQXW.js → chunk-HHHYVTVS.js} +16 -16
  54. package/dist/chunk-ICLB27PZ.js +11 -0
  55. package/dist/{chunk-QMFIZQTB.js → chunk-IDGQB6XD.js} +6 -4
  56. package/dist/{chunk-R3XI2VC7.js → chunk-IDJGV6VM.js} +2 -1
  57. package/dist/{chunk-4CRLM3IT.js → chunk-IE47TYZT.js} +177 -118
  58. package/dist/{chunk-FJ57274M.js → chunk-IIEI7VK5.js} +15 -1
  59. package/dist/{chunk-YDA46XHI.js → chunk-IMO46ROR.js} +38 -32
  60. package/dist/{chunk-4SXHMFFP.js → chunk-IZTU6WVR.js} +24 -13
  61. package/dist/{chunk-U74EGVOA.js → chunk-JOD2CK2M.js} +16 -14
  62. package/dist/{chunk-U5B3TUEW.js → chunk-JUNTVLOU.js} +16 -15
  63. package/dist/{chunk-RWFMOVHG.js → chunk-KAZQX2EY.js} +2 -2
  64. package/dist/{chunk-NHQ7HUAS.js → chunk-KGX5LIUG.js} +10 -8
  65. package/dist/{chunk-Q74GP3GK.js → chunk-KO6DGOOB.js} +3 -3
  66. package/dist/{chunk-UTTRJ6KN.js → chunk-L26M3X7K.js} +16 -13
  67. package/dist/{chunk-RU2HHHYA.js → chunk-LD2JSKU3.js} +12 -2
  68. package/dist/{chunk-32MOGTKT.js → chunk-LEBPWFVF.js} +50 -46
  69. package/dist/{chunk-MU3CJPJF.js → chunk-LGI735AJ.js} +2 -2
  70. package/dist/{chunk-OWVDD5EC.js → chunk-LMWXBFLA.js} +2 -2
  71. package/dist/{chunk-CLQJAGWL.js → chunk-M3LZCDB6.js} +40 -42
  72. package/dist/{chunk-YT5ICQ4R.js → chunk-MFK7LF66.js} +2 -2
  73. package/dist/{chunk-JL7BDLC6.js → chunk-MJYFPFZT.js} +110 -20
  74. package/dist/{chunk-2QRIMMIH.js → chunk-N56W4R66.js} +2 -2
  75. package/dist/{chunk-LXXVHLTH.js → chunk-NN5IDH2I.js} +2 -2
  76. package/dist/{chunk-46KVXDUJ.js → chunk-NS3KIRSW.js} +2 -2
  77. package/dist/{chunk-LM3HY3VG.js → chunk-P2DM7Q5U.js} +2 -2
  78. package/dist/{chunk-DJL5PO27.js → chunk-P4SQV3XD.js} +2 -2
  79. package/dist/{chunk-HOIAQ3P2.js → chunk-P54AX5XN.js} +9 -9
  80. package/dist/{chunk-JQ575OAK.js → chunk-P64NBPSK.js} +14 -14
  81. package/dist/{chunk-7G4XMHDB.js → chunk-PIWUZFG7.js} +33 -25
  82. package/dist/{chunk-SWEKCK34.js → chunk-QAPFXLAC.js} +2 -2
  83. package/dist/chunk-QFIXL3OK.js +68 -0
  84. package/dist/{chunk-KRTLS3G6.js → chunk-QVMV4KCA.js} +2 -2
  85. package/dist/{chunk-76LHNLGX.js → chunk-R4YGH7DJ.js} +5 -3
  86. package/dist/{chunk-PAW4RMH3.js → chunk-RC3FM3FE.js} +12 -13
  87. package/dist/{chunk-UJBP57UJ.js → chunk-RC6GGF6X.js} +2 -2
  88. package/dist/{chunk-S6OXNZBM.js → chunk-RHZZVIGA.js} +3 -3
  89. package/dist/{chunk-MS5574I7.js → chunk-RIXWLFB4.js} +2 -2
  90. package/dist/{chunk-BCB24FG7.js → chunk-RUNI4OXP.js} +18 -14
  91. package/dist/{chunk-ICVIJLBA.js → chunk-SFSJ6XWV.js} +2 -2
  92. package/dist/{chunk-EGXJWRO6.js → chunk-SNBEAO4Q.js} +8 -8
  93. package/dist/{chunk-XHROEQ23.js → chunk-SXD6VY7D.js} +16 -14
  94. package/dist/{chunk-GEURKGZS.js → chunk-TLM3I4XF.js} +16 -16
  95. package/dist/{chunk-IFC3JXCT.js → chunk-TO6TWNMF.js} +19 -15
  96. package/dist/{chunk-OUJG73YJ.js → chunk-U2JIFCJN.js} +18 -18
  97. package/dist/{chunk-CAPR5DET.js → chunk-U4ND3J6C.js} +18 -14
  98. package/dist/{chunk-YVDBBWEP.js → chunk-UCF6TKWV.js} +51 -48
  99. package/dist/{chunk-UWYZIGCB.js → chunk-UDYJVX6Y.js} +9 -9
  100. package/dist/{chunk-OBYZU23V.js → chunk-UQY2VLUK.js} +25 -23
  101. package/dist/{chunk-CQKD6GOC.js → chunk-VAA7QSZ7.js} +53 -32
  102. package/dist/{chunk-Q6BAFS7I.js → chunk-VQGQF7O7.js} +12 -10
  103. package/dist/{chunk-DEW62ON3.js → chunk-VSPNH7LC.js} +2 -2
  104. package/dist/{chunk-4YER7UCV.js → chunk-VUJQ6RU6.js} +2 -2
  105. package/dist/{chunk-C576CU77.js → chunk-VZD3ZV4Y.js} +26 -22
  106. package/dist/{chunk-NCT22MOD.js → chunk-WMIKC5XO.js} +2 -2
  107. package/dist/{chunk-C2WH3BMS.js → chunk-X326N4GN.js} +10 -7
  108. package/dist/chunk-XBJJP2HN.js +37 -0
  109. package/dist/{chunk-7NSNE52V.js → chunk-XCR3PDFF.js} +2 -2
  110. package/dist/{chunk-TF76LCZS.js → chunk-XDPJMLOH.js} +30 -27
  111. package/dist/{chunk-3LJNQ6LR.js → chunk-YKDZ3ZRI.js} +27 -25
  112. package/dist/{chunk-GLREDNBA.js → chunk-YVLTNNME.js} +12 -2
  113. package/dist/{chunk-76IBFEYW.js → chunk-ZGOBAMQ2.js} +15 -13
  114. package/dist/{chunk-AFR6GWXD.js → chunk-ZMCFUGKO.js} +49 -42
  115. package/dist/clock.js +11 -5
  116. package/dist/completion-registry.js +2 -2
  117. package/dist/countdown.js +26 -20
  118. package/dist/{d3--y67plmW.d.ts → d3-CQT5bwpb.d.ts} +1 -1
  119. package/dist/{dgmo-router-CY5j16Pl.d.ts → dgmo-router-C9CsswPZ.d.ts} +1 -1
  120. package/dist/{dgmo-router-A3LIHT6H.js → dgmo-router-XZNCLYTV.js} +30 -29
  121. package/dist/{dimensions-7NYBSZRJ.js → dimensions-SIZMZ4DC.js} +8 -8
  122. package/dist/{flowchart-renderer-QYGQ64BM.js → flowchart-renderer-FDJ4QQXE.js} +15 -14
  123. package/dist/index.d.ts +7 -7
  124. package/dist/index.js +58 -43
  125. package/dist/{layout-LAS67TK3.js → layout-5DZ2LI2R.js} +2 -2
  126. package/dist/{layout-ZAGUFT2G.js → layout-6I6LSBUR.js} +6 -5
  127. package/dist/{layout-2OJ25STS.js → layout-C2SCZV5M.js} +6 -5
  128. package/dist/{layout-6SKHNQYO.js → layout-CHWKNE3O.js} +3 -3
  129. package/dist/{layout-EM4DLMAX.js → layout-K4KML2DL.js} +3 -3
  130. package/dist/{layout-KQUSB45X.js → layout-S53FSD6R.js} +7 -6
  131. package/dist/{layout-ROORJQ4X.js → layout-TCFXB5XH.js} +7 -6
  132. package/dist/{layout-5ILNODTP.js → layout-XK6ZD7BU.js} +6 -5
  133. package/dist/{layout-B5GQVXXY.js → layout-YVY72CIG.js} +7 -6
  134. package/dist/{layout-VUZ3MLOI.js → layout-YY6VH5XH.js} +6 -5
  135. package/dist/{layout-RV2T2YTT.js → layout-ZDN252GR.js} +4 -3
  136. package/dist/{layout-search-UOKEMER5.js → layout-search-TSV4FURP.js} +7 -6
  137. package/dist/{legend-constants-PLN2YHGM.js → legend-constants-SB4PLHV5.js} +3 -3
  138. package/dist/{palettes-54YSI3IX.js → palettes-YIPSRYXP.js} +5 -3
  139. package/dist/{parser-GCVSRQPY.js → parser-2BX2EJUB.js} +3 -3
  140. package/dist/{parser-WVE6SKB7.js → parser-3UNIPVNY.js} +3 -3
  141. package/dist/{parser-5XFGK5C5.js → parser-4IHIVDJD.js} +5 -5
  142. package/dist/{parser-ZT3PU2HT.js → parser-62VNEQRT.js} +3 -3
  143. package/dist/{parser-PR3OR3LO.js → parser-6JNJHQAG.js} +3 -3
  144. package/dist/{parser-ZXQZZK6W.js → parser-6ZFQLLVE.js} +3 -2
  145. package/dist/{parser-WMJEPZDC.js → parser-BOPXE6RP.js} +3 -3
  146. package/dist/{parser-WWRRG2DV.js → parser-DFBQ2RID.js} +3 -3
  147. package/dist/{parser-2GMHFSTS.js → parser-EPKXJ2RL.js} +3 -3
  148. package/dist/{parser-ML3LVNDV.js → parser-G7E2BURB.js} +3 -3
  149. package/dist/{parser-QOIZGW7I.js → parser-GFGU5ZLQ.js} +3 -3
  150. package/dist/{parser-L7T7FY3H.js → parser-GKZWI5SZ.js} +3 -3
  151. package/dist/{parser-QYAIFXLP.js → parser-HSPODF4H.js} +3 -3
  152. package/dist/{parser-EQ4I3TSH.js → parser-IK3FXZ7D.js} +3 -3
  153. package/dist/{parser-LV7PQBUG.js → parser-LJWPKRDM.js} +3 -3
  154. package/dist/{parser-RDBXEVI4.js → parser-OYWUBQV4.js} +3 -3
  155. package/dist/{parser-6FUESG4N.js → parser-PD4TP6NM.js} +3 -3
  156. package/dist/{parser-E3OHNNTH.js → parser-R2JHC7LQ.js} +3 -3
  157. package/dist/{parser-CJNP7RKR.js → parser-RMZ6YI7H.js} +3 -3
  158. package/dist/{parser-TA5TYZNL.js → parser-RUJNN5PK.js} +3 -3
  159. package/dist/{parser-UTR5WE4O.js → parser-YWE7GHW6.js} +3 -3
  160. package/dist/{parser-3AOMUX5D.js → parser-Z5UK6ADF.js} +3 -3
  161. package/dist/{parser-YWQCC33R.js → parser-ZO5YT5SV.js} +3 -3
  162. package/dist/renderer-5TPUPMZ7.js +26 -0
  163. package/dist/{renderer-4EWGZLJ6.js → renderer-AIVALEQR.js} +7 -7
  164. package/dist/renderer-AMELXBNW.js +23 -0
  165. package/dist/renderer-BF7FYXG3.js +25 -0
  166. package/dist/renderer-CRRW7LTW.js +17 -0
  167. package/dist/renderer-CXU2MGSC.js +27 -0
  168. package/dist/renderer-DI66RLAG.js +30 -0
  169. package/dist/renderer-E2JTYQY5.js +39 -0
  170. package/dist/{renderer-ZAJ5353N.js → renderer-FA4BTAOL.js} +7 -7
  171. package/dist/{renderer-GF6S5ZX6.js → renderer-FFGFTIT4.js} +15 -14
  172. package/dist/renderer-IVAM7Z3Y.js +27 -0
  173. package/dist/renderer-J6HK2KOW.js +23 -0
  174. package/dist/renderer-J7J3OVLQ.js +39 -0
  175. package/dist/{renderer-QAMOXOZ2.js → renderer-JC7MK7SD.js} +6 -5
  176. package/dist/{renderer-CGOPX4HW.js → renderer-JHQC5RGJ.js} +14 -14
  177. package/dist/renderer-JRITSZY3.js +28 -0
  178. package/dist/{renderer-E6NHTVN6.js → renderer-KD5X4RIS.js} +14 -13
  179. package/dist/{renderer-OTHBTGBN.js → renderer-KWNNWCGD.js} +6 -5
  180. package/dist/{renderer-EP4GRCDX.js → renderer-LGMIAG6N.js} +7 -6
  181. package/dist/{renderer-IH45QV6Z.js → renderer-LQN3FXAP.js} +33 -32
  182. package/dist/renderer-LRL4SU43.js +29 -0
  183. package/dist/{renderer-D7N7PPB7.js → renderer-MBL64AJI.js} +6 -6
  184. package/dist/renderer-NA3DTAWF.js +39 -0
  185. package/dist/renderer-OR5QHR7X.js +31 -0
  186. package/dist/renderer-SBVWHQVW.js +30 -0
  187. package/dist/{renderer-KMOGGMM7.js → renderer-TLOSBJKW.js} +13 -13
  188. package/dist/{renderer-LE3ZKHNS.js → renderer-UDWJRRIC.js} +11 -11
  189. package/dist/renderer-VHK6UAW2.js +20 -0
  190. package/dist/{renderer-FUJNSC5X.js → renderer-W5UG2HWT.js} +5 -5
  191. package/dist/renderer-WOOKJOBQ.js +25 -0
  192. package/dist/renderer-WYNLGZRF.js +25 -0
  193. package/dist/{renderer-BUEFD2IF.js → renderer-Y74Y54C3.js} +8 -8
  194. package/dist/renderer-ZUAXGHFC.js +28 -0
  195. package/dist/renderer-radial-YVUDGR7C.js +21 -0
  196. package/dist/{state-parser-TPA67IXM.js → state-parser-CT5HQQ7E.js} +3 -3
  197. package/dist/state-renderer-7O3QGNJ5.js +41 -0
  198. package/dist/{tag-groups-DrHT2tEc.d.ts → tag-groups-BoJg3lFV.d.ts} +23 -1
  199. package/dist/{themes-GWhsabnx.d.ts → themes-CXYnNA4e.d.ts} +2 -2
  200. package/docs/architecture-report.md +3 -3
  201. package/docs/language-reference.md +122 -30
  202. package/docs/migration-sequence-color-to-tags.md +16 -8
  203. package/gallery/fixtures/sketch.dgmo +1 -1
  204. package/package.json +7 -6
  205. package/dist/charts-d3-SQEVMIAM.js +0 -29
  206. package/dist/chunk-LP7EC4MI.js +0 -16
  207. package/dist/chunk-UTCPNJND.js +0 -7
  208. package/dist/chunk-VV6HZQ5K.js +0 -40
  209. package/dist/renderer-3FB56573.js +0 -22
  210. package/dist/renderer-4PNVGHVA.js +0 -16
  211. package/dist/renderer-5W3HWIUL.js +0 -24
  212. package/dist/renderer-CO5O5VR5.js +0 -20
  213. package/dist/renderer-DKW273R7.js +0 -26
  214. package/dist/renderer-F24V3RD3.js +0 -26
  215. package/dist/renderer-F6WSR7UM.js +0 -39
  216. package/dist/renderer-FGGDZZFQ.js +0 -31
  217. package/dist/renderer-GJDVPXI3.js +0 -30
  218. package/dist/renderer-JMJ7Q5OC.js +0 -28
  219. package/dist/renderer-LBNVKVO3.js +0 -39
  220. package/dist/renderer-MUW4G2N6.js +0 -38
  221. package/dist/renderer-PIEPRK6M.js +0 -23
  222. package/dist/renderer-PKRKLOYR.js +0 -25
  223. package/dist/renderer-PR3KLNST.js +0 -28
  224. package/dist/renderer-RUHC6D3B.js +0 -25
  225. package/dist/renderer-UUP6OX6F.js +0 -27
  226. package/dist/renderer-UYZSP7MF.js +0 -25
  227. package/dist/renderer-XBL6CLN2.js +0 -30
  228. package/dist/renderer-radial-MZP3SVTZ.js +0 -21
  229. package/dist/state-renderer-UIE3AQM6.js +0 -40
@@ -1,19 +1,22 @@
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-QT5UMFPE.js";
13
+ } from "./chunk-67I3HFSF.js";
11
14
  import {
12
15
  getMaxLegendReservedHeight
13
- } from "./chunk-4SXHMFFP.js";
16
+ } from "./chunk-IZTU6WVR.js";
14
17
  import {
15
18
  FONT_FAMILY
16
- } from "./chunk-UTCPNJND.js";
19
+ } from "./chunk-ICLB27PZ.js";
17
20
  import {
18
21
  measureText,
19
22
  truncateText,
@@ -27,7 +30,7 @@ import {
27
30
  contrastText,
28
31
  mix,
29
32
  shapeFill
30
- } from "./chunk-GLREDNBA.js";
33
+ } from "./chunk-YVLTNNME.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-CQKD6GOC.js.map
1627
+ //# sourceMappingURL=chunk-VAA7QSZ7.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderIntegratedLegend
3
- } from "./chunk-QT5UMFPE.js";
3
+ } from "./chunk-67I3HFSF.js";
4
4
  import {
5
5
  FONT_FAMILY
6
- } from "./chunk-UTCPNJND.js";
6
+ } from "./chunk-ICLB27PZ.js";
7
7
  import {
8
8
  getFigure,
9
9
  getPartGeom,
@@ -13,12 +13,12 @@ import {
13
13
  resolveActiveTagGroup,
14
14
  resolveTagColor,
15
15
  tagAttrKey
16
- } from "./chunk-76LHNLGX.js";
16
+ } from "./chunk-R4YGH7DJ.js";
17
17
  import {
18
18
  getSeriesColors,
19
19
  mix,
20
20
  themeBaseBg
21
- } from "./chunk-GLREDNBA.js";
21
+ } from "./chunk-YVLTNNME.js";
22
22
  import {
23
23
  resolveColor
24
24
  } from "./chunk-XOGQY4EC.js";
@@ -171,7 +171,7 @@ function gutterLabels(r, palette) {
171
171
  prevY = ly;
172
172
  const note = a.part.notes.length ? a.part.notes[0] : "";
173
173
  const dl = ` class="dgmo-body-part" data-line-number="${a.part.lineNumber}" data-emph-key="${esc(a.emph)}"`;
174
- labels += `<path${dl} d="M${sx} ${ly} L${tgt.x} ${tgt.y}" stroke="${a.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${tgt.x}" cy="${tgt.y}" r="5.5" fill="${a.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/><text${dl} x="${gx}" y="${ly + (note ? -2 : 7)}" text-anchor="${anchorX}" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(partLabel(a.part))}</text>`;
174
+ labels += `<path${dl} d="M${sx} ${ly} L${tgt.x} ${tgt.y}" stroke="${a.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${tgt.x}" cy="${tgt.y}" r="5.5" fill="${a.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/><text${dl} x="${gx}" y="${ly + (note ? -2 : 7)}" text-anchor="${anchorX}" font-size="${LABEL_FONT}" font-weight="bold" fill="${palette.text}">${esc(partLabel(a.part))}</text>`;
175
175
  if (note) {
176
176
  labels += `<text${dl} x="${gx}" y="${ly + 22}" text-anchor="${anchorX}" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(note)}</text>`;
177
177
  }
@@ -280,7 +280,7 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
280
280
  if (it.right) {
281
281
  labels += `<path${dl} d="M${(centerX + stub).toFixed(1)} ${it.y.toFixed(1)} L${it.right.x.toFixed(1)} ${it.right.y.toFixed(1)}" stroke="${it.color}" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke" fill="none" opacity="0.85"/><circle${dl} cx="${it.right.x.toFixed(1)}" cy="${it.right.y.toFixed(1)}" r="5.5" fill="${it.color}" stroke="${palette.bg}" stroke-width="2" vector-effect="non-scaling-stroke"/>`;
282
282
  }
283
- labels += `<text${dl} x="${centerX}" y="${(it.y - 3).toFixed(1)}" text-anchor="middle" font-size="${LABEL_FONT}" font-weight="700" fill="${palette.text}">${esc(it.name)}</text>`;
283
+ labels += `<text${dl} x="${centerX}" y="${(it.y - 3).toFixed(1)}" text-anchor="middle" font-size="${LABEL_FONT}" font-weight="bold" fill="${palette.text}">${esc(it.name)}</text>`;
284
284
  if (it.note) {
285
285
  labels += `<text${dl} x="${centerX}" y="${(it.y + 20).toFixed(1)}" text-anchor="middle" font-size="${NOTE_FONT}" fill="${palette.textMuted}">${esc(it.note)}</text>`;
286
286
  }
@@ -292,9 +292,11 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
292
292
  d3Selection.select(container).selectAll("svg").remove();
293
293
  const width = exportDims?.width ?? container.clientWidth ?? 1200;
294
294
  const height = exportDims?.height ?? container.clientHeight ?? 800;
295
- const svg = d3Selection.select(container).append("svg").attr("width", width).attr("height", height).attr(
295
+ const vbW = totalW + 2 * PAGE_MARGIN;
296
+ const vbH = totalH + 2 * PAGE_MARGIN;
297
+ const svg = d3Selection.select(container).append("svg").attr("width", width).attr("height", vbW > 0 ? Math.round(width * vbH / vbW) : height).attr(
296
298
  "viewBox",
297
- `${-PAGE_MARGIN} ${-PAGE_MARGIN} ${(totalW + 2 * PAGE_MARGIN).toFixed(0)} ${(totalH + 2 * PAGE_MARGIN).toFixed(0)}`
299
+ `${-PAGE_MARGIN} ${-PAGE_MARGIN} ${vbW.toFixed(0)} ${vbH.toFixed(0)}`
298
300
  ).attr("preserveAspectRatio", "xMidYMin meet").attr("xmlns", "http://www.w3.org/2000/svg").style("font-family", FONT_FAMILY);
299
301
  if (defs.length) {
300
302
  const defsSel = svg.append("defs");
@@ -307,7 +309,7 @@ function renderBody(container, parsed, palette, _isDark, _onClickItem, exportDim
307
309
  }
308
310
  svg.append("g").html(body);
309
311
  if (parsed.title && !parsed.options.noTitle) {
310
- svg.append("text").attr("x", totalW / 2).attr("y", 40).attr("text-anchor", "middle").attr("font-size", 34).attr("font-weight", 700).attr("fill", palette.text).text(parsed.title);
312
+ svg.append("text").attr("x", totalW / 2).attr("y", 40).attr("text-anchor", "middle").attr("font-size", 34).attr("font-weight", "bold").attr("fill", palette.text).text(parsed.title);
311
313
  }
312
314
  if (!parsed.options.noLegend && parsed.tagGroups.length) {
313
315
  const legendG = svg.append("g").attr("transform", `translate(0, ${TITLE_H}) scale(${LEGEND_SCALE})`);
@@ -346,4 +348,4 @@ export {
346
348
  renderBody,
347
349
  renderBodyForExport
348
350
  };
349
- //# sourceMappingURL=chunk-Q6BAFS7I.js.map
351
+ //# sourceMappingURL=chunk-VQGQF7O7.js.map
@@ -1,6 +1,6 @@
1
1
  // src/utils/title-constants.ts
2
2
  var TITLE_FONT_SIZE = 20;
3
- var TITLE_FONT_WEIGHT = "700";
3
+ var TITLE_FONT_WEIGHT = "bold";
4
4
  var TITLE_Y = 30;
5
5
  var TITLE_OFFSET = 40;
6
6
  var CAPTION_FONT_SIZE = 13;
@@ -20,4 +20,4 @@ export {
20
20
  CAPTION_BOX_PADDING_X,
21
21
  CAPTION_BOX_PADDING_Y
22
22
  };
23
- //# sourceMappingURL=chunk-DEW62ON3.js.map
23
+ //# sourceMappingURL=chunk-VSPNH7LC.js.map
@@ -8,7 +8,7 @@ import {
8
8
  tagAttrKey,
9
9
  validateTagGroupNames,
10
10
  validateTagValues
11
- } from "./chunk-76LHNLGX.js";
11
+ } from "./chunk-R4YGH7DJ.js";
12
12
  import {
13
13
  TREEMAP_REGISTRY,
14
14
  extractColor,
@@ -445,4 +445,4 @@ export {
445
445
  TREEMAP_DIAGNOSTICS,
446
446
  parseTreemap
447
447
  };
448
- //# sourceMappingURL=chunk-4YER7UCV.js.map
448
+ //# sourceMappingURL=chunk-VUJQ6RU6.js.map
@@ -1,44 +1,48 @@
1
1
  import {
2
2
  layoutClassDiagram
3
- } from "./chunk-LM3HY3VG.js";
3
+ } from "./chunk-P2DM7Q5U.js";
4
4
  import {
5
5
  NOTE_BADGE_RADIUS,
6
6
  noteConnectorPoints,
7
7
  renderNoteBadge,
8
8
  renderNoteBox,
9
9
  renderNoteConnector
10
- } from "./chunk-Q74GP3GK.js";
10
+ } from "./chunk-KO6DGOOB.js";
11
11
  import {
12
- extractExportSvg,
13
- runInExportContainer
14
- } from "./chunk-VV6HZQ5K.js";
12
+ ScaleContext
13
+ } from "./chunk-24YPR5EH.js";
15
14
  import {
15
+ ARROWHEAD_HEIGHT,
16
+ ARROWHEAD_WIDTH,
17
+ EDGE_DASH,
18
+ EDGE_LABEL_KNOCKOUT_OPACITY,
16
19
  EDGE_STROKE_WIDTH,
17
20
  NODE_STROKE_WIDTH
18
- } from "./chunk-FJ57274M.js";
21
+ } from "./chunk-IIEI7VK5.js";
19
22
  import {
20
- ScaleContext
21
- } from "./chunk-24YPR5EH.js";
23
+ extractExportSvg,
24
+ runInExportContainer
25
+ } from "./chunk-QFIXL3OK.js";
22
26
  import {
23
27
  layoutInlineHeader
24
- } from "./chunk-MG3DE3VO.js";
28
+ } from "./chunk-FLMXJMMY.js";
25
29
  import {
26
30
  TITLE_FONT_SIZE,
27
31
  TITLE_FONT_WEIGHT,
28
32
  TITLE_Y
29
- } from "./chunk-DEW62ON3.js";
33
+ } from "./chunk-VSPNH7LC.js";
30
34
  import {
31
35
  renderIntegratedLegend
32
- } from "./chunk-QT5UMFPE.js";
36
+ } from "./chunk-67I3HFSF.js";
33
37
  import {
34
38
  getLegendExtent
35
- } from "./chunk-4SXHMFFP.js";
39
+ } from "./chunk-IZTU6WVR.js";
36
40
  import {
37
41
  FONT_FAMILY
38
- } from "./chunk-UTCPNJND.js";
42
+ } from "./chunk-ICLB27PZ.js";
39
43
  import {
40
44
  LEGEND_HEIGHT
41
- } from "./chunk-YT5ICQ4R.js";
45
+ } from "./chunk-MFK7LF66.js";
42
46
  import {
43
47
  measureText
44
48
  } from "./chunk-MTGGOCND.js";
@@ -53,7 +57,7 @@ import {
53
57
  import {
54
58
  contrastText,
55
59
  shapeFill
56
- } from "./chunk-GLREDNBA.js";
60
+ } from "./chunk-YVLTNNME.js";
57
61
 
58
62
  // src/class/renderer.ts
59
63
  import * as d3Selection from "d3-selection";
@@ -215,12 +219,12 @@ function renderClassDiagram(container, parsed, layout, palette, isDark, onClickI
215
219
  svg.attr("width", "100%");
216
220
  }
217
221
  const defs = svg.append("defs");
218
- const AW = 12;
219
- const AH = 8;
222
+ const AW = ARROWHEAD_WIDTH;
223
+ const AH = ARROWHEAD_HEIGHT;
220
224
  defs.append("marker").attr("id", "cd-arrow-inherit").attr("viewBox", `0 0 ${AW} ${AH}`).attr("refX", AW).attr("refY", AH / 2).attr("markerWidth", AW).attr("markerHeight", AH).attr("orient", "auto").append("polygon").attr("points", `0,0 ${AW},${AH / 2} 0,${AH}`).attr("fill", palette.textMuted).attr("stroke", palette.textMuted).attr("stroke-width", 1);
221
225
  defs.append("marker").attr("id", "cd-arrow-implement").attr("viewBox", `0 0 ${AW} ${AH}`).attr("refX", AW).attr("refY", AH / 2).attr("markerWidth", AW).attr("markerHeight", AH).attr("orient", "auto").append("polygon").attr("points", `0,0 ${AW},${AH / 2} 0,${AH}`).attr("fill", palette.bg).attr("stroke", palette.textMuted).attr("stroke-width", 1);
222
- const DW = 12;
223
- const DH = 8;
226
+ const DW = ARROWHEAD_WIDTH;
227
+ const DH = ARROWHEAD_HEIGHT;
224
228
  defs.append("marker").attr("id", "cd-arrow-compose").attr("viewBox", `0 0 ${DW} ${DH}`).attr("refX", 0).attr("refY", DH / 2).attr("markerWidth", DW).attr("markerHeight", DH).attr("orient", "auto").append("polygon").attr("points", `${DW / 2},0 ${DW},${DH / 2} ${DW / 2},${DH} 0,${DH / 2}`).attr("fill", palette.textMuted).attr("stroke", palette.textMuted).attr("stroke-width", 1);
225
229
  defs.append("marker").attr("id", "cd-arrow-aggregate").attr("viewBox", `0 0 ${DW} ${DH}`).attr("refX", 0).attr("refY", DH / 2).attr("markerWidth", DW).attr("markerHeight", DH).attr("orient", "auto").append("polygon").attr("points", `${DW / 2},0 ${DW},${DH / 2} ${DW / 2},${DH} 0,${DH / 2}`).attr("fill", palette.bg).attr("stroke", palette.textMuted).attr("stroke-width", 1);
226
230
  defs.append("marker").attr("id", "cd-arrow-depend").attr("viewBox", `0 0 ${AW} ${AH}`).attr("refX", AW).attr("refY", AH / 2).attr("markerWidth", AW).attr("markerHeight", AH).attr("orient", "auto").append("polyline").attr("points", `0,0 ${AW},${AH / 2} 0,${AH}`).attr("fill", "none").attr("stroke", palette.textMuted).attr("stroke-width", 1.5);
@@ -271,7 +275,7 @@ function renderClassDiagram(container, parsed, layout, palette, isDark, onClickI
271
275
  if (pathD) {
272
276
  const pathEl = edgeG.append("path").attr("d", pathD).attr("fill", "none").attr("stroke", edgeColor).attr("stroke-width", sEdgeStrokeWidth).attr("class", "cd-edge");
273
277
  if (dashed) {
274
- pathEl.attr("stroke-dasharray", "6 3");
278
+ pathEl.attr("stroke-dasharray", EDGE_DASH);
275
279
  }
276
280
  if (sourceMarker) {
277
281
  pathEl.attr("marker-start", `url(#${markerId})`);
@@ -284,7 +288,7 @@ function renderClassDiagram(container, parsed, layout, palette, isDark, onClickI
284
288
  const midPt = edge.points[midIdx];
285
289
  const bgW = measureText(edge.label, sEdgeLabelFontSize) + 8;
286
290
  const bgH = 16;
287
- edgeG.append("rect").attr("x", midPt.x - bgW / 2).attr("y", midPt.y - bgH / 2 - 1).attr("width", bgW).attr("height", bgH).attr("rx", 3).attr("fill", palette.bg).attr("opacity", 0.85).attr("class", "cd-edge-label-bg");
291
+ edgeG.append("rect").attr("x", midPt.x - bgW / 2).attr("y", midPt.y - bgH / 2 - 1).attr("width", bgW).attr("height", bgH).attr("rx", 3).attr("fill", palette.bg).attr("opacity", EDGE_LABEL_KNOCKOUT_OPACITY).attr("class", "cd-edge-label-bg");
288
292
  edgeG.append("text").attr("x", midPt.x).attr("y", midPt.y + 4).attr("text-anchor", "middle").attr("fill", edgeColor).attr("font-size", sEdgeLabelFontSize).attr("class", "cd-edge-label").text(edge.label);
289
293
  }
290
294
  }
@@ -448,4 +452,4 @@ export {
448
452
  renderClassDiagram,
449
453
  renderClassDiagramForExport
450
454
  };
451
- //# sourceMappingURL=chunk-C576CU77.js.map
455
+ //# sourceMappingURL=chunk-VZD3ZV4Y.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  stripInlineMarkdown
3
- } from "./chunk-WGC42WJU.js";
3
+ } from "./chunk-FWNJDD4U.js";
4
4
 
5
5
  // src/utils/wrapped-desc.ts
6
6
  var BULLET_PREFIX = "\u2022 ";
@@ -90,4 +90,4 @@ function wrapPlainLine(line, charsPerLine, lengthFn) {
90
90
  export {
91
91
  wrapDescriptionLines
92
92
  };
93
- //# sourceMappingURL=chunk-NCT22MOD.js.map
93
+ //# sourceMappingURL=chunk-WMIKC5XO.js.map
@@ -1,17 +1,19 @@
1
1
  import {
2
2
  resolveTagColor,
3
3
  tagAttrKey
4
- } from "./chunk-76LHNLGX.js";
4
+ } from "./chunk-R4YGH7DJ.js";
5
5
  import {
6
6
  mix
7
- } from "./chunk-GLREDNBA.js";
7
+ } from "./chunk-YVLTNNME.js";
8
8
  import {
9
9
  resolveColor
10
10
  } from "./chunk-XOGQY4EC.js";
11
11
 
12
12
  // src/treemap/treemap-shared.ts
13
13
  import { scaleLinear } from "d3-scale";
14
- var MUTED_FILL = "#cbd5e1";
14
+ function mutedFill(palette) {
15
+ return mix(palette.colors.gray, palette.bg, 35);
16
+ }
15
17
  function depthTint(hue, depth, bg) {
16
18
  if (depth <= 1) return hue;
17
19
  const keepPct = Math.max(55, 100 - (depth - 1) * 18);
@@ -38,15 +40,15 @@ function activeTagGroupOf(parsed) {
38
40
  }
39
41
  function resolveCellColor(cell, ctx) {
40
42
  if (ctx.mode === "heat") {
41
- return cell.heat !== void 0 && ctx.heat ? ctx.heat.scale(cell.heat) : MUTED_FILL;
43
+ return cell.heat !== void 0 && ctx.heat ? ctx.heat.scale(cell.heat) : ctx.muted;
42
44
  }
43
45
  if (ctx.mode === "tag") {
44
- if (!cell.node) return MUTED_FILL;
46
+ if (!cell.node) return ctx.muted;
45
47
  return resolveTagColor(
46
48
  cell.node.metadata,
47
49
  ctx.tagGroups,
48
50
  ctx.activeGroup
49
- ) ?? MUTED_FILL;
51
+ ) ?? ctx.muted;
50
52
  }
51
53
  const topLabel = cell.path[0] ?? cell.label;
52
54
  const idx = (ctx.rootIndexByLabel.get(topLabel) ?? cell.topIndex) + ctx.colorOffset;
@@ -168,6 +170,7 @@ function buildLegend(activeMode, parsed, heat, seriesColors, colorOffset) {
168
170
  }
169
171
 
170
172
  export {
173
+ mutedFill,
171
174
  resolveColorMode,
172
175
  activeTagGroupOf,
173
176
  resolveCellColor,
@@ -176,4 +179,4 @@ export {
176
179
  formatPct,
177
180
  buildLegend
178
181
  };
179
- //# sourceMappingURL=chunk-C2WH3BMS.js.map
182
+ //# sourceMappingURL=chunk-X326N4GN.js.map
@@ -0,0 +1,37 @@
1
+ // src/utils/arrow-markers.ts
2
+ function appendArrowheadMarkers(defs, opts) {
3
+ const { idPrefix, width, height, baseFill, colors } = opts;
4
+ const appendMarker = (id, fill) => {
5
+ defs.append("marker").attr("id", id).attr("viewBox", `0 0 ${width} ${height}`).attr("refX", width).attr("refY", height / 2).attr("markerWidth", width).attr("markerHeight", height).attr("orient", "auto").append("polygon").attr("points", `0,0 ${width},${height / 2} 0,${height}`).attr("fill", fill);
6
+ };
7
+ appendMarker(`${idPrefix}-arrow`, baseFill);
8
+ for (const color of colors ?? []) {
9
+ appendMarker(`${idPrefix}-arrow-${color.replace("#", "")}`, color);
10
+ }
11
+ }
12
+ function appendReverseArrowheadMarkers(defs, opts) {
13
+ const {
14
+ idPrefix,
15
+ width,
16
+ height,
17
+ baseFill,
18
+ colors,
19
+ reverseSuffix = "arrow-rev"
20
+ } = opts;
21
+ const appendMarker = (id, fill) => {
22
+ defs.append("marker").attr("id", id).attr("viewBox", `0 0 ${width} ${height}`).attr("refX", 0).attr("refY", height / 2).attr("markerWidth", width).attr("markerHeight", height).attr("orient", "auto").append("polygon").attr("points", `${width},0 0,${height / 2} ${width},${height}`).attr("fill", fill);
23
+ };
24
+ appendMarker(`${idPrefix}-${reverseSuffix}`, baseFill);
25
+ for (const color of colors ?? []) {
26
+ appendMarker(
27
+ `${idPrefix}-${reverseSuffix}-${color.replace("#", "")}`,
28
+ color
29
+ );
30
+ }
31
+ }
32
+
33
+ export {
34
+ appendArrowheadMarkers,
35
+ appendReverseArrowheadMarkers
36
+ };
37
+ //# sourceMappingURL=chunk-XBJJP2HN.js.map
@@ -17,7 +17,7 @@ import {
17
17
  stripDefaultModifier,
18
18
  validateTagGroupNames,
19
19
  validateTagValues
20
- } from "./chunk-76LHNLGX.js";
20
+ } from "./chunk-R4YGH7DJ.js";
21
21
  import {
22
22
  AliasRegistry,
23
23
  FILL_FAMILY_TOKENS,
@@ -1072,4 +1072,4 @@ export {
1072
1072
  parseSequenceDgmo,
1073
1073
  looksLikeSequence
1074
1074
  };
1075
- //# sourceMappingURL=chunk-7NSNE52V.js.map
1075
+ //# sourceMappingURL=chunk-XCR3PDFF.js.map