@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
@@ -5,6 +5,14 @@ var CARD_RADIUS = 6;
5
5
  var CONTAINER_RADIUS = 8;
6
6
  var COLLAPSE_BAR_INSET = 0;
7
7
  var EDGE_LABEL_KNOCKOUT_OPACITY = 0.9;
8
+ var ARROWHEAD_WIDTH = 10;
9
+ var ARROWHEAD_HEIGHT = 7;
10
+ var EDGE_DASH = "6 3";
11
+ var GRID_DASH = "4 4";
12
+ var HAIRLINE_DASH = "2 3";
13
+ function scaleDash(pattern, scale) {
14
+ return pattern.split(/[\s,]+/).filter(Boolean).map((n) => scale(Number(n))).join(" ");
15
+ }
8
16
  var HEADER_HEIGHT = 28;
9
17
  var LABEL_FONT_SIZE = 13;
10
18
  var META_FONT_SIZE = 11;
@@ -23,6 +31,12 @@ export {
23
31
  CONTAINER_RADIUS,
24
32
  COLLAPSE_BAR_INSET,
25
33
  EDGE_LABEL_KNOCKOUT_OPACITY,
34
+ ARROWHEAD_WIDTH,
35
+ ARROWHEAD_HEIGHT,
36
+ EDGE_DASH,
37
+ GRID_DASH,
38
+ HAIRLINE_DASH,
39
+ scaleDash,
26
40
  HEADER_HEIGHT,
27
41
  LABEL_FONT_SIZE,
28
42
  META_FONT_SIZE,
@@ -34,4 +48,4 @@ export {
34
48
  CONTAINER_META_FONT_SIZE,
35
49
  CONTAINER_META_LINE_HEIGHT
36
50
  };
37
- //# sourceMappingURL=chunk-FJ57274M.js.map
51
+ //# sourceMappingURL=chunk-IIEI7VK5.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  buildSwatches
3
- } from "./chunk-MS5574I7.js";
3
+ } from "./chunk-RIXWLFB4.js";
4
4
  import {
5
5
  FONT_FAMILY
6
- } from "./chunk-UTCPNJND.js";
6
+ } from "./chunk-ICLB27PZ.js";
7
7
  import {
8
8
  fixedParts,
9
9
  fixedTimeCells,
@@ -14,19 +14,22 @@ import {
14
14
  workStatus,
15
15
  zoneParts
16
16
  } from "./chunk-A2RUBBVT.js";
17
+ import {
18
+ now
19
+ } from "./chunk-3DPOIW3W.js";
17
20
  import {
18
21
  contrastText,
19
22
  mix,
20
23
  themeBaseBg
21
- } from "./chunk-GLREDNBA.js";
24
+ } from "./chunk-YVLTNNME.js";
22
25
  import {
23
26
  resolveColor
24
27
  } from "./chunk-XOGQY4EC.js";
25
28
 
26
29
  // src/clock/renderer.ts
27
30
  import * as d3Selection from "d3-selection";
28
- function partsFor(entry, now) {
29
- return entry.kind === "fixed" ? fixedParts(entry.fixedOffsetMin ?? 0, now) : zoneParts(entry.zone, now);
31
+ function partsFor(entry, now2) {
32
+ return entry.kind === "fixed" ? fixedParts(entry.fixedOffsetMin ?? 0, now2) : zoneParts(entry.zone, now2);
30
33
  }
31
34
  var PLACE_ACCENTS = [
32
35
  "blue",
@@ -143,7 +146,7 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
143
146
  baseWidth,
144
147
  COL_MIN_W * Math.max(1, parsed.entries.length) + 2 * cardM
145
148
  ) : baseWidth);
146
- const now = Date.now();
149
+ const now2 = now();
147
150
  const baseBg = themeBaseBg(palette, isDark);
148
151
  const muted = mix(palette.text, baseBg, 55);
149
152
  const faint = mix(palette.text, baseBg, 72);
@@ -167,9 +170,9 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
167
170
  const titleFont = 20;
168
171
  const meta = parsed.work ? `${hourLabel(parsed.work.startMin, parsed.hours12)}\u2013${hourLabel(parsed.work.endMin, parsed.hours12)} \xB7 ${daysLabel(parsed.work.days)}` : null;
169
172
  const metaW = meta ? estWidth(meta, 12) + 16 : 0;
170
- svg.append("text").attr("x", padX).attr("y", y + titleFont).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", titleFont).attr("font-weight", 650).attr("data-line-number", parsed.titleLineNumber).text(ellipsize(parsed.title, titleFont, rightX - padX - metaW));
173
+ svg.append("text").attr("x", padX).attr("y", y + titleFont).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", titleFont).attr("font-weight", "bold").attr("data-line-number", parsed.titleLineNumber).text(ellipsize(parsed.title, titleFont, rightX - padX - metaW));
171
174
  if (meta) {
172
- svg.append("text").attr("x", rightX).attr("y", y + titleFont - 3).attr("text-anchor", "end").attr("fill", faint).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", 500).text(meta);
175
+ svg.append("text").attr("x", rightX).attr("y", y + titleFont - 3).attr("text-anchor", "end").attr("fill", faint).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", "normal").text(meta);
173
176
  }
174
177
  y += titleFont + 12;
175
178
  svg.append("line").attr("x1", cardM).attr("x2", width - cardM).attr("y1", y).attr("y2", y).attr("stroke", mix(palette.text, palette.bg, 22)).attr("stroke-width", 1);
@@ -191,14 +194,14 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
191
194
  };
192
195
  let bannerH;
193
196
  if (parsed.columns) {
194
- bannerH = drawColumns(body, parsed, now, rowsTop, { width, cardM }, col);
197
+ bannerH = drawColumns(body, parsed, now2, rowsTop, { width, cardM }, col);
195
198
  } else {
196
199
  let leftColW = rowH - 20;
197
200
  let mainW = 0;
198
201
  if (parsed.face === "digital") {
199
202
  let secW = 0;
200
203
  for (const e of parsed.entries) {
201
- const p = partsFor(e, now);
204
+ const p = partsFor(e, now2);
202
205
  const t = formatTime(p.h, p.m, p.s, parsed.hours12);
203
206
  mainW = Math.max(mainW, estWidth(t.main, 48));
204
207
  secW = Math.max(secW, estWidth(`:${t.sec}`, 16), estWidth(t.ap, 16));
@@ -211,7 +214,7 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
211
214
  entry,
212
215
  i,
213
216
  parsed,
214
- now,
217
+ now2,
215
218
  rowsTop + i * rowH,
216
219
  rowH,
217
220
  { padX, rightX, width, leftColW, mainW },
@@ -230,13 +233,13 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
230
233
  function zoneFillMode(entry, parsed, col) {
231
234
  return entry.color || parsed.colorBy === "place" ? col.fillMode : void 0;
232
235
  }
233
- function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
236
+ function drawRow(svg, entry, index, parsed, now2, rowTop, rowH, geom, col) {
234
237
  const { padX } = geom;
235
238
  const { text, muted, line2, tick, sw, cardFill } = col;
236
239
  const center = rowTop + rowH / 2;
237
- const parts = partsFor(entry, now);
240
+ const parts = partsFor(entry, now2);
238
241
  const hasCoords = entry.lat !== null && entry.lon !== null;
239
- const sun = parsed.sun && hasCoords ? sunLine(now, entry.lat, entry.lon) : null;
242
+ const sun = parsed.sun && hasCoords ? sunLine(now2, entry.lat, entry.lon) : null;
240
243
  const up = sun ? sun.up : parts.h >= 6 && parts.h < 18;
241
244
  const stColor = up ? sw.day : sw.night;
242
245
  const stTint = up ? sw.dayTint : sw.nightTint;
@@ -309,14 +312,17 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
309
312
  const capTop = baseY - mainFont * 0.7;
310
313
  const sf = 20;
311
314
  const gap = 5;
312
- const { cells, width: mainW } = fixedTimeCells(ts.main, contentLeft, mainFont);
315
+ const { cells, width: mainW } = fixedTimeCells(
316
+ ts.main,
317
+ contentLeft,
318
+ mainFont
319
+ );
313
320
  const stackX = contentLeft + mainW + gap;
314
- const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight", 600).attr("data-dgmo-clock-x0", contentLeft).attr("data-dgmo-clock-fs", mainFont).attr("data-dgmo-clock-gap", gap);
315
- for (const c of cells)
316
- mainText.append("tspan").attr("x", c.x).text(c.ch);
317
- g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", capTop + sf * 0.72).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 600).style("font-variant-numeric", "tabular-nums").text(`:${ts.sec}`);
321
+ const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight", "bold").attr("data-dgmo-clock-x0", contentLeft).attr("data-dgmo-clock-fs", mainFont).attr("data-dgmo-clock-gap", gap);
322
+ for (const c of cells) mainText.append("tspan").attr("x", c.x).text(c.ch);
323
+ g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", capTop + sf * 0.72).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "bold").style("font-variant-numeric", "tabular-nums").text(`:${ts.sec}`);
318
324
  if (ts.ap)
319
- g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 600).text(ts.ap);
325
+ g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "bold").text(ts.ap);
320
326
  }
321
327
  const midLeft = contentLeft + geom.leftColW + 26;
322
328
  const midMaxW = Math.max(40, rightColLeft - 12 - midLeft);
@@ -341,7 +347,7 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
341
347
  const firstBase = aliasLines.length === 1 ? center + 16 : center - aliasLines.length * aliasLh / 2 + aliasFont * 0.72;
342
348
  const aliasFill = auto?.solid ?? mix(muted, text, Math.round((aliasFont - 17) / 31 * 55));
343
349
  aliasLines.forEach((ln, i) => {
344
- g.append("text").attr("x", midLeft).attr("y", firstBase + i * aliasLh).attr("fill", aliasFill).attr("font-family", FONT_FAMILY).attr("font-size", aliasFont).attr("font-weight", 650).text(ln);
350
+ g.append("text").attr("x", midLeft).attr("y", firstBase + i * aliasLh).attr("fill", aliasFill).attr("font-family", FONT_FAMILY).attr("font-size", aliasFont).attr("font-weight", "bold").text(ln);
345
351
  });
346
352
  const iconX = rightColLeft + 6;
347
353
  const textX = rightColLeft + 20;
@@ -357,11 +363,11 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
357
363
  const yy = top + i * lh;
358
364
  if (ln.kind === "place") {
359
365
  g.append("path").attr("transform", `translate(${iconX},${yy - 5}) scale(1.25)`).attr("d", "M0,4 L-2.3,-0.6 A2.6,2.6 0 1 1 2.3,-0.6 Z").attr("fill", muted);
360
- g.append("text").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", 500).text(ellipsize(entry.place, 14, textMax));
366
+ g.append("text").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", "normal").text(ellipsize(entry.place, 14, textMax));
361
367
  } else if (ln.kind === "avail" && status) {
362
368
  const stCol = status.cls === "ok" ? sw.ok : status.cls === "soon" ? sw.soon : sw.off;
363
369
  drawStatusClock(g, iconX, yy - 5, 5, stCol);
364
- g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", 600).text(ellipsize(status.text, 14, textMax));
370
+ g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", "bold").text(ellipsize(status.text, 14, textMax));
365
371
  } else if (ln.kind === "sun" && sun) {
366
372
  drawSunMoon(g, iconX, yy - 5, up, sw, 1.25);
367
373
  g.append("text").attr("data-dgmo-clock-sun-line", "").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 13.5).text(ellipsize(sun.text, 13.5, textMax));
@@ -394,7 +400,7 @@ function bakeAnchors(g, entry, parsed, sun, sw) {
394
400
  );
395
401
  }
396
402
  }
397
- function drawColumns(body, parsed, now, top, geom, col) {
403
+ function drawColumns(body, parsed, now2, top, geom, col) {
398
404
  const { width, cardM } = geom;
399
405
  const { text, muted, line2, tick, cardFill, sw } = col;
400
406
  const n = Math.max(1, parsed.entries.length);
@@ -406,9 +412,9 @@ function drawColumns(body, parsed, now, top, geom, col) {
406
412
  parsed.entries.forEach((entry, i) => {
407
413
  const x0 = cardM + i * colW;
408
414
  const cx = x0 + colW / 2;
409
- const parts = partsFor(entry, now);
415
+ const parts = partsFor(entry, now2);
410
416
  const hasCoords = entry.lat !== null && entry.lon !== null;
411
- const sun = parsed.sun && hasCoords ? sunLine(now, entry.lat, entry.lon) : null;
417
+ const sun = parsed.sun && hasCoords ? sunLine(now2, entry.lat, entry.lon) : null;
412
418
  const up = sun ? sun.up : parts.h >= 6 && parts.h < 18;
413
419
  const ts = formatTime(parts.h, parts.m, parts.s, parsed.hours12);
414
420
  const work = parsed.work ? {
@@ -476,13 +482,13 @@ function drawColumns(body, parsed, now, top, geom, col) {
476
482
  const stackW = Math.max(estWidth(`:${ts.sec}`, sf), estWidth(ts.ap, sf));
477
483
  const gLeft = cx - (mainW + gap + stackW) / 2;
478
484
  const baseY = cy + tf * 0.34;
479
- const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight", 600).attr("data-dgmo-clock-x0", gLeft).attr("data-dgmo-clock-fs", tf).attr("data-dgmo-clock-gap", gap);
485
+ const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight", "bold").attr("data-dgmo-clock-x0", gLeft).attr("data-dgmo-clock-fs", tf).attr("data-dgmo-clock-gap", gap);
480
486
  for (const c of fixedTimeCells(ts.main, gLeft, tf).cells)
481
487
  mainText.append("tspan").attr("x", c.x).text(c.ch);
482
488
  const stackX = gLeft + mainW + gap;
483
- g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", baseY - tf * cap + sf * cap).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 500).text(`:${ts.sec}`);
489
+ g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", baseY - tf * cap + sf * cap).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "normal").text(`:${ts.sec}`);
484
490
  if (ts.ap)
485
- g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 500).text(ts.ap);
491
+ g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "normal").text(ts.ap);
486
492
  cy += tf + 8;
487
493
  }
488
494
  const amax = colW - 14;
@@ -501,7 +507,7 @@ function drawColumns(body, parsed, now, top, geom, col) {
501
507
  const alh = af + 3;
502
508
  const aFill = auto?.solid ?? mix(muted, text, Math.round((af - 14) / 12 * 55));
503
509
  alines.forEach(
504
- (ln, j) => g.append("text").attr("x", cx).attr("y", cy + af * 0.72 + j * alh).attr("text-anchor", "middle").attr("fill", aFill).attr("font-family", FONT_FAMILY).attr("font-size", af).attr("font-weight", 650).text(ln)
510
+ (ln, j) => g.append("text").attr("x", cx).attr("y", cy + af * 0.72 + j * alh).attr("text-anchor", "middle").attr("fill", aFill).attr("font-family", FONT_FAMILY).attr("font-size", af).attr("font-weight", "bold").text(ln)
505
511
  );
506
512
  cy += alines.length * alh + 12;
507
513
  const kinds = [];
@@ -523,7 +529,7 @@ function drawColumns(body, parsed, now, top, geom, col) {
523
529
  } else if (kind === "avail" && status) {
524
530
  const stCol = status.cls === "ok" ? sw.ok : status.cls === "soon" ? sw.soon : sw.off;
525
531
  drawStatusClock(g, iconX, yy - 4, 4, stCol);
526
- g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", 600).text(ellipsize(status.text, 12, tmax));
532
+ g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", "bold").text(ellipsize(status.text, 12, tmax));
527
533
  } else if (kind === "sun" && sun) {
528
534
  drawSunMoon(g, iconX, yy - 4, up, sw, 1);
529
535
  g.append("text").attr("data-dgmo-clock-sun-line", "").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 11.5).text(ellipsize(sun.text, 11.5, tmax));
@@ -558,4 +564,4 @@ export {
558
564
  renderClock,
559
565
  renderClockForExport
560
566
  };
561
- //# sourceMappingURL=chunk-YDA46XHI.js.map
567
+ //# sourceMappingURL=chunk-IMO46ROR.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-MFK7LF66.js";
17
17
 
18
18
  // src/utils/number-format.ts
19
19
  function compactNumber(n) {
@@ -108,9 +108,10 @@ function entriesWidth(entries) {
108
108
  }
109
109
  return w;
110
110
  }
111
- function entryWidth(value) {
111
+ function legendEntryWidth(value) {
112
112
  return LEGEND_DOT_R * 2 + LEGEND_ENTRY_DOT_GAP + measureLegendText(value, LEGEND_ENTRY_FONT_SIZE) + LEGEND_ENTRY_TRAIL;
113
113
  }
114
+ var entryWidth = legendEntryWidth;
114
115
  function controlWidth(control) {
115
116
  let w = CONTROL_PILL_PAD;
116
117
  if (control.label) {
@@ -125,12 +126,12 @@ function controlWidth(control) {
125
126
  }
126
127
  return w;
127
128
  }
128
- function capsuleWidth(name, entries, containerWidth, addonWidth = 0) {
129
+ function capsuleWidth(name, entries, containerWidth, addonWidth = 0, trailWidth = 0) {
129
130
  const pw = pillWidth(name);
130
131
  const maxCapsuleW = containerWidth;
131
132
  const baseW = LEGEND_CAPSULE_PAD * 2 + pw + 4 + addonWidth;
132
133
  const ew = entriesWidth(entries);
133
- const singleRowW = baseW + ew;
134
+ const singleRowW = baseW + ew + trailWidth;
134
135
  if (singleRowW <= maxCapsuleW + 0.5) {
135
136
  return {
136
137
  width: singleRowW,
@@ -139,7 +140,7 @@ function capsuleWidth(name, entries, containerWidth, addonWidth = 0) {
139
140
  visibleEntries: entries.length
140
141
  };
141
142
  }
142
- const rowWidth = maxCapsuleW - LEGEND_CAPSULE_PAD;
143
+ const rowWidth = maxCapsuleW - LEGEND_CAPSULE_PAD - trailWidth;
143
144
  let row = 1;
144
145
  let rowX = LEGEND_CAPSULE_PAD + pw + 4 + addonWidth;
145
146
  let visible = 0;
@@ -321,7 +322,8 @@ function computeLegendLayout(config, state, containerWidth) {
321
322
  activeCapsule = buildCapsuleLayout(
322
323
  g,
323
324
  groupAvailW,
324
- config.capsulePillAddonWidth ?? 0
325
+ config.capsulePillAddonWidth ?? 0,
326
+ config.capsuleTrailingAddonWidth ?? 0
325
327
  );
326
328
  } else if (!activeGroupName || config.showInactivePills) {
327
329
  const pw = pillWidth(g.name);
@@ -360,14 +362,15 @@ function computeLegendLayout(config, state, containerWidth) {
360
362
  }
361
363
  };
362
364
  }
363
- function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
365
+ function buildCapsuleLayout(group, containerWidth, addonWidth = 0, trailWidth = 0) {
364
366
  if (group.gradient) return buildGradientCapsuleLayout(group, group.gradient);
365
367
  const pw = pillWidth(group.name);
366
368
  const info = capsuleWidth(
367
369
  group.name,
368
370
  group.entries,
369
371
  containerWidth,
370
- addonWidth
372
+ addonWidth,
373
+ trailWidth
371
374
  );
372
375
  const pill = {
373
376
  groupName: group.name,
@@ -381,7 +384,7 @@ function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
381
384
  const ex = LEGEND_CAPSULE_PAD + pw + 4 + addonWidth;
382
385
  let ey = 0;
383
386
  let rowX = ex;
384
- const maxRowW = containerWidth - LEGEND_CAPSULE_PAD;
387
+ const maxRowW = containerWidth - LEGEND_CAPSULE_PAD - trailWidth;
385
388
  let currentRow = 0;
386
389
  for (let i = 0; i < info.visibleEntries; i++) {
387
390
  const entry = group.entries[i];
@@ -433,7 +436,12 @@ function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
433
436
  pill,
434
437
  entries,
435
438
  ...info.moreCount > 0 && { moreCount: info.moreCount },
436
- ...addonWidth > 0 && { addonX: LEGEND_CAPSULE_PAD + pw + 4 }
439
+ ...addonWidth > 0 && { addonX: LEGEND_CAPSULE_PAD + pw + 4 },
440
+ // After the last entry, on whatever row that entry ended on — `rowX` and
441
+ // `ey` are exactly the cursor the loop left behind.
442
+ ...trailWidth > 0 && {
443
+ trailingAddon: { x: rowX, y: ey, width: trailWidth }
444
+ }
437
445
  };
438
446
  }
439
447
  function layoutRows(activeCapsule, pills, controls, groupAvailW, containerWidth, totalControlsW, alignLeft = false, controlsGroup) {
@@ -528,10 +536,11 @@ function getMaxLegendReservedHeight(config, containerWidth) {
528
536
  const groups = config.groups;
529
537
  if (groups.length === 0) return LEGEND_HEIGHT;
530
538
  const addon = config.capsulePillAddonWidth ?? 0;
539
+ const trail = config.capsuleTrailingAddonWidth ?? 0;
531
540
  let max = LEGEND_HEIGHT;
532
541
  for (const g of groups) {
533
542
  if (g.entries.length === 0) continue;
534
- const info = capsuleWidth(g.name, g.entries, containerWidth, addon);
543
+ const info = capsuleWidth(g.name, g.entries, containerWidth, addon, trail);
535
544
  const h = info.entryRows * LEGEND_HEIGHT;
536
545
  if (h > max) max = h;
537
546
  }
@@ -551,7 +560,8 @@ function getLegendExtent(config, state, containerWidth) {
551
560
  const c = layout.activeCapsule;
552
561
  track(c.x, c.y, c.width, c.height);
553
562
  }
554
- for (const pill of layout.pills) track(pill.x, pill.y, pill.width, pill.height);
563
+ for (const pill of layout.pills)
564
+ track(pill.x, pill.y, pill.width, pill.height);
555
565
  return {
556
566
  width: right - (left === Infinity ? 0 : left),
557
567
  height: bottom || LEGEND_HEIGHT
@@ -560,10 +570,11 @@ function getLegendExtent(config, state, containerWidth) {
560
570
 
561
571
  export {
562
572
  compactNumber,
573
+ legendEntryWidth,
563
574
  controlsGroupCapsuleWidth,
564
575
  computeLegendLayout,
565
576
  getLegendReservedHeight,
566
577
  getMaxLegendReservedHeight,
567
578
  getLegendExtent
568
579
  };
569
- //# sourceMappingURL=chunk-4SXHMFFP.js.map
580
+ //# sourceMappingURL=chunk-IZTU6WVR.js.map
@@ -4,27 +4,28 @@ import {
4
4
  buildLegend,
5
5
  compactNumber,
6
6
  formatPct,
7
+ mutedFill,
7
8
  resolveCellColor,
8
9
  resolveColorMode
9
- } from "./chunk-C2WH3BMS.js";
10
+ } from "./chunk-X326N4GN.js";
10
11
  import {
11
12
  renderIntegratedLegend
12
- } from "./chunk-QT5UMFPE.js";
13
+ } from "./chunk-67I3HFSF.js";
13
14
  import {
14
15
  getMaxLegendReservedHeight
15
- } from "./chunk-4SXHMFFP.js";
16
+ } from "./chunk-IZTU6WVR.js";
16
17
  import {
17
18
  FONT_FAMILY
18
- } from "./chunk-UTCPNJND.js";
19
+ } from "./chunk-ICLB27PZ.js";
19
20
  import {
20
21
  LEGEND_GROUP_GAP
21
- } from "./chunk-YT5ICQ4R.js";
22
+ } from "./chunk-MFK7LF66.js";
22
23
  import {
23
24
  measureText
24
25
  } from "./chunk-MTGGOCND.js";
25
26
  import {
26
27
  tagAttrKey
27
- } from "./chunk-76LHNLGX.js";
28
+ } from "./chunk-R4YGH7DJ.js";
28
29
  import {
29
30
  contrastRatio,
30
31
  contrastText,
@@ -32,7 +33,7 @@ import {
32
33
  hexToHSL,
33
34
  hslToHex,
34
35
  relativeLuminance
35
- } from "./chunk-GLREDNBA.js";
36
+ } from "./chunk-YVLTNNME.js";
36
37
 
37
38
  // src/treemap/renderer-radial.ts
38
39
  import * as d3Selection from "d3-selection";
@@ -202,7 +203,8 @@ function renderTreemapRadial(container, parsed, palette, isDark, exportDims, opt
202
203
  rootIndexByLabel,
203
204
  seriesColors,
204
205
  colorOffset: options.colorOffset ?? 0,
205
- bg: palette.bg
206
+ bg: palette.bg,
207
+ muted: mutedFill(palette)
206
208
  };
207
209
  const arcGen = d3arc().startAngle((c) => c.startAngle).endAngle((c) => c.endAngle).innerRadius((c) => c.innerR).outerRadius((c) => c.outerR).padAngle(4e-3).padRadius(radius);
208
210
  let labelSeq = 0;
@@ -281,12 +283,12 @@ function drawCenterDisc(plot, parsed, discRadius, total, isEmpty, palette) {
281
283
  const titleFs = clampFs(15, discRadius);
282
284
  const totalFs = fitFs(totalStr, clampFs(22, discRadius), maxW);
283
285
  if (title) {
284
- const t = disc.append("text").attr("class", "dgmo-treemap-disc-title").attr("text-anchor", "middle").attr("y", -4).attr("fill", ink).attr("font-size", titleFs).attr("font-weight", 600).text(clip(title, maxW, titleFs));
286
+ const t = disc.append("text").attr("class", "dgmo-treemap-disc-title").attr("text-anchor", "middle").attr("y", -4).attr("fill", ink).attr("font-size", titleFs).attr("font-weight", "bold").text(clip(title, maxW, titleFs));
285
287
  if (parsed.titleLineNumber !== null) {
286
288
  t.attr("data-line-number", parsed.titleLineNumber);
287
289
  }
288
290
  }
289
- disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight", 700).text(totalStr);
291
+ disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight", "bold").text(totalStr);
290
292
  }
291
293
  function groupedNumber(v) {
292
294
  const rounded = Math.round(v * 100) / 100;
@@ -327,7 +329,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
327
329
  cell,
328
330
  rName,
329
331
  nameFs,
330
- 600,
332
+ "bold",
331
333
  nameText,
332
334
  ink
333
335
  );
@@ -342,7 +344,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
342
344
  cell,
343
345
  rVal,
344
346
  valFs,
345
- 500,
347
+ "normal",
346
348
  valText,
347
349
  ink
348
350
  );
@@ -355,7 +357,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
355
357
  const fs = fitFs(full, maxFs, availLen);
356
358
  const text = clip(full, availLen, fs);
357
359
  if (!text) return;
358
- drawCurvedLine(g, defs, pathId, cell, rMid, fs, 600, text, ink);
360
+ drawCurvedLine(g, defs, pathId, cell, rMid, fs, "bold", text, ink);
359
361
  }
360
362
  function isBottomHalf(cell) {
361
363
  const mid = (cell.startAngle + cell.endAngle) / 2;
@@ -423,4 +425,4 @@ export {
423
425
  renderTreemapRadialForExport,
424
426
  renderTreemapRadial
425
427
  };
426
- //# sourceMappingURL=chunk-U74EGVOA.js.map
428
+ //# sourceMappingURL=chunk-JOD2CK2M.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-C2WH3BMS.js";
3
+ } from "./chunk-X326N4GN.js";
4
4
  import {
5
5
  parseInlineMarkdown
6
- } from "./chunk-WGC42WJU.js";
6
+ } from "./chunk-FWNJDD4U.js";
7
7
  import {
8
8
  TITLE_FONT_WEIGHT
9
- } from "./chunk-DEW62ON3.js";
9
+ } from "./chunk-VSPNH7LC.js";
10
10
  import {
11
11
  FONT_FAMILY
12
- } from "./chunk-UTCPNJND.js";
12
+ } from "./chunk-ICLB27PZ.js";
13
13
  import {
14
14
  measureText
15
15
  } from "./chunk-MTGGOCND.js";
@@ -18,7 +18,7 @@ import {
18
18
  mix,
19
19
  shapeFill,
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";
@@ -75,6 +75,7 @@ function renderGoal(container, parsed, palette, isDark, exportDims) {
75
75
  const vw = box.maxX - box.minX + pad * 2;
76
76
  const vh = box.maxY - box.minY + pad * 2;
77
77
  svg.attr("viewBox", `${vx} ${vy} ${vw} ${vh}`);
78
+ if (vw > 0 && vh > 0) svg.attr("height", Math.round(cw * vh / vw));
78
79
  svg.insert("rect", ":first-child").attr("x", vx).attr("y", vy).attr("width", vw).attr("height", vh).attr("fill", palette.bg);
79
80
  }
80
81
  function renderGoalForExport(container, parsed, palette, isDark, exportDims) {
@@ -155,7 +156,7 @@ function drawNote(svg, description, paint, left, top, width) {
155
156
  const maxChars = Math.max(8, Math.floor(width / (descSize * 0.46)));
156
157
  const firstY = top + descSize;
157
158
  const lines = layoutDescription(description, left, maxChars);
158
- const desc = svg.append("text").attr("x", left).attr("y", firstY).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", descSize).attr("font-weight", 500);
159
+ const desc = svg.append("text").attr("x", left).attr("y", firstY).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", descSize).attr("font-weight", "normal");
159
160
  renderWrappedMarkdown(desc, lines, lineH);
160
161
  return firstY + lines.length * lineH;
161
162
  }
@@ -176,7 +177,7 @@ function renderBar(svg, parsed, metrics, paint) {
176
177
  if (hasTitle) faceTitle(svg, parsed, paint, x, titleSize - 2, "start");
177
178
  const barRight = x + trackW;
178
179
  if (showPct) {
179
- svg.append("text").attr("x", barRight).attr("y", titleSize - 2).attr("text-anchor", "end").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", titleSize).attr("font-weight", 700).text(metrics.pctLabel);
180
+ svg.append("text").attr("x", barRight).attr("y", titleSize - 2).attr("text-anchor", "end").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", titleSize).attr("font-weight", "bold").text(metrics.pctLabel);
180
181
  }
181
182
  const y = hasTitle || showPct ? titleSize + 14 : 0;
182
183
  const barCy = y + trackH / 2;
@@ -198,10 +199,10 @@ function renderBar(svg, parsed, metrics, paint) {
198
199
  const valuePad = 16;
199
200
  const insideFits = fillW >= measureText(valueText, 24, { bold: true }) + valuePad * 2;
200
201
  const valX = insideFits ? x + fillW - valuePad : x + fillW + valuePad;
201
- g.append("text").attr("x", valX).attr("y", barCy + 24 * 0.35).attr("text-anchor", insideFits ? "end" : "start").attr("fill", insideFits ? paint.base : paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 24).attr("font-weight", 700).text(valueText);
202
+ g.append("text").attr("x", valX).attr("y", barCy + 24 * 0.35).attr("text-anchor", insideFits ? "end" : "start").attr("fill", insideFits ? paint.base : paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 24).attr("font-weight", "bold").text(valueText);
202
203
  }
203
204
  if (parsed.hasTarget) {
204
- g.append("text").attr("x", barRight + gap).attr("y", barCy + 26 * 0.35).attr("text-anchor", "start").attr("fill", paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 26).attr("font-weight", 700).text(compactNumber(parsed.target));
205
+ g.append("text").attr("x", barRight + gap).attr("y", barCy + 26 * 0.35).attr("text-anchor", "start").attr("fill", paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 26).attr("font-weight", "bold").text(compactNumber(parsed.target));
205
206
  }
206
207
  let bottom = y + trackH;
207
208
  if (parsed.description && !parsed.options.noNote) {
@@ -248,7 +249,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
248
249
  const y = yForFrac(f);
249
250
  g.append("line").attr("x1", edgeX).attr("y1", y).attr("x2", edgeX - (isTarget ? 26 : major ? 18 : 10)).attr("y2", y).attr("stroke", isTarget ? paint.base : paint.muted).attr("stroke-width", isTarget ? 4 : major ? 2 : 1.5);
250
251
  if (isTarget) {
251
- g.append("text").attr("x", tickLabelX).attr("y", y - 20).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", 600).attr("letter-spacing", 1).text("TARGET");
252
+ g.append("text").attr("x", tickLabelX).attr("y", y - 20).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", "bold").attr("letter-spacing", 1).text("TARGET");
252
253
  }
253
254
  if (major) {
254
255
  g.append("text").attr("x", tickLabelX).attr("y", y + (isTarget ? 30 * 0.35 : 19 * 0.35)).attr("text-anchor", "start").attr("fill", isTarget ? paint.text : paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", isTarget ? 30 : 19).attr("font-weight", isTarget ? 700 : 500).text(compactNumber(parsed.target * f));
@@ -256,7 +257,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
256
257
  };
257
258
  for (const f of [0.25, 0.75]) drawTick(f, false);
258
259
  for (const f of [0, 0.5, 1]) drawTick(f, true);
259
- g.append("text").attr("x", tickLabelX).attr("y", fillTopY + 42 * 0.35).attr("text-anchor", "start").attr("fill", paint.base).attr("font-family", FONT_FAMILY).attr("font-size", 42).attr("font-weight", 700).text(compactNumber(parsed.now));
260
+ g.append("text").attr("x", tickLabelX).attr("y", fillTopY + 42 * 0.35).attr("text-anchor", "start").attr("fill", paint.base).attr("font-family", FONT_FAMILY).attr("font-size", 42).attr("font-weight", "bold").text(compactNumber(parsed.now));
260
261
  }
261
262
  const titleSize = GOAL_TITLE_SIZE;
262
263
  let cursorY = glassTop;
@@ -265,7 +266,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
265
266
  cursorY += titleSize + 16;
266
267
  }
267
268
  if (!parsed.options.noPercent) {
268
- svg.append("text").attr("x", colLeft).attr("y", cursorY + 52).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 64).attr("font-weight", 700).text(metrics.pctLabel);
269
+ svg.append("text").attr("x", colLeft).attr("y", cursorY + 52).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 64).attr("font-weight", "bold").text(metrics.pctLabel);
269
270
  cursorY += 76;
270
271
  }
271
272
  let colBottom = cursorY;
@@ -344,7 +345,7 @@ function renderGauge(svg, parsed, metrics, paint) {
344
345
  r * 0.95 / Math.max(1, nowLabel.length * 0.6)
345
346
  );
346
347
  const nowY = cy - r * 0.42;
347
- g.append("text").attr("x", cx).attr("y", nowY + nowSize * 0.35).attr("text-anchor", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", nowSize).attr("font-weight", 700).text(nowLabel);
348
+ g.append("text").attr("x", cx).attr("y", nowY + nowSize * 0.35).attr("text-anchor", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", nowSize).attr("font-weight", "bold").text(nowLabel);
348
349
  if (parsed.hasTarget) {
349
350
  const bandInner = r - stroke / 2;
350
351
  for (const f of [0, 0.25, 0.5, 0.75, 1]) {
@@ -356,7 +357,7 @@ function renderGauge(svg, parsed, metrics, paint) {
356
357
  const lr = bandInner - (isTarget ? 40 : 26);
357
358
  const anchor = ca > 0.2 ? "end" : ca < -0.2 ? "start" : "middle";
358
359
  if (isTarget) {
359
- g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa - 20).attr("text-anchor", anchor).attr("dominant-baseline", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", 600).attr("letter-spacing", 1).text("TARGET");
360
+ g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa - 20).attr("text-anchor", anchor).attr("dominant-baseline", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", "bold").attr("letter-spacing", 1).text("TARGET");
360
361
  }
361
362
  g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa).attr("text-anchor", anchor).attr("dominant-baseline", sa > 0.7 ? "hanging" : "middle").attr("fill", isTarget ? paint.text : paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", isTarget ? 30 : 18).attr("font-weight", isTarget ? 700 : 500).text(compactNumber(parsed.target * f));
362
363
  }
@@ -374,4 +375,4 @@ export {
374
375
  renderGoal,
375
376
  renderGoalForExport
376
377
  };
377
- //# sourceMappingURL=chunk-U5B3TUEW.js.map
378
+ //# sourceMappingURL=chunk-JUNTVLOU.js.map
@@ -21,7 +21,7 @@ import {
21
21
  tagAttrKey,
22
22
  validateTagGroupNames,
23
23
  validateTagValues
24
- } from "./chunk-76LHNLGX.js";
24
+ } from "./chunk-R4YGH7DJ.js";
25
25
  import {
26
26
  PERT_REGISTRY,
27
27
  extractColor,
@@ -1268,4 +1268,4 @@ export {
1268
1268
  extractPertSymbols,
1269
1269
  looksLikePert
1270
1270
  };
1271
- //# sourceMappingURL=chunk-RWFMOVHG.js.map
1271
+ //# sourceMappingURL=chunk-KAZQX2EY.js.map