@diagrammo/dgmo 0.77.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.
- package/README.md +17 -13
- package/dist/advanced.d.ts +19 -12
- package/dist/advanced.js +124 -120
- package/dist/block.css +1 -1
- package/dist/block.d.ts +2 -2
- package/dist/block.js +45 -41
- package/dist/{chart-meta-Cf_jkApJ.d.ts → chart-meta-BKN2ORkc.d.ts} +2 -2
- package/dist/chart-meta.d.ts +3 -3
- package/dist/chart-meta.js +30 -29
- package/dist/charts-d3-KEQ7XVSM.js +31 -0
- package/dist/{chunk-7IATMZSA.js → chunk-26EVL454.js} +1 -25
- package/dist/{chunk-3H4PDNP4.js → chunk-2NLBIZEW.js} +2 -2
- package/dist/{chunk-BH3BQICT.js → chunk-32VR65TL.js} +63 -36
- package/dist/{chunk-N5NQIZ56.js → chunk-36UQ77JV.js} +24 -24
- package/dist/chunk-3DPOIW3W.js +10 -0
- package/dist/{chunk-3SP6G4LN.js → chunk-3GLTQZKE.js} +2 -2
- package/dist/{chunk-DY7KDZUF.js → chunk-3OWIYK52.js} +2 -2
- package/dist/{chunk-3E4YB6TY.js → chunk-3XFOE3DQ.js} +12 -7
- package/dist/{chunk-W7UBPARG.js → chunk-3ZLQM6XN.js} +2 -2
- package/dist/{chunk-5GM6BZO7.js → chunk-4AWLEWSD.js} +5 -2
- package/dist/{chunk-SWUQJ5VR.js → chunk-4IGUEGD6.js} +80 -61
- package/dist/{chunk-QOVM5VRC.js → chunk-57GSSHBR.js} +2 -2
- package/dist/{chunk-5VMUVJO4.js → chunk-5G55TS3H.js} +2 -2
- package/dist/{chunk-U4DS2ODO.js → chunk-67I3HFSF.js} +9 -9
- package/dist/{chunk-WQXD3IIN.js → chunk-6B3M6LW6.js} +10 -8
- package/dist/{chunk-TKIPK5P6.js → chunk-6PHOZBW5.js} +4 -6
- package/dist/{chunk-5PFNUDXR.js → chunk-6VTLVU7D.js} +2 -2
- package/dist/{chunk-M5JT2AU7.js → chunk-6Z2NUJSX.js} +2 -2
- package/dist/{chunk-BWJLLNUX.js → chunk-7BNRHSSF.js} +2 -2
- package/dist/{chunk-JLODGGN2.js → chunk-7NNJXYXU.js} +2 -2
- package/dist/{chunk-FTTB64OJ.js → chunk-7SMVTA7I.js} +26 -26
- package/dist/{chunk-Z7KVOVE4.js → chunk-7WTFX6OA.js} +6 -3
- package/dist/{chunk-ZM27UI5O.js → chunk-A7Y32YD6.js} +2 -2
- package/dist/{chunk-FPRMP6YA.js → chunk-AHN2CVCH.js} +10 -7
- package/dist/{chunk-N6MZSBOL.js → chunk-AN7T6VP7.js} +2 -2
- package/dist/{chunk-F4X5NVKY.js → chunk-B6PVPAS5.js} +2 -2
- package/dist/{chunk-RV5A3EGI.js → chunk-BB2ORSTF.js} +19 -18
- package/dist/{chunk-SI3PYDL4.js → chunk-BJB4YDJP.js} +21 -21
- package/dist/{chunk-FR5EVD2X.js → chunk-BPM52K3Z.js} +38 -31
- package/dist/{chunk-TI4YUUW6.js → chunk-BSREARWG.js} +29 -28
- package/dist/{chunk-F4V67JXG.js → chunk-CTERZC4K.js} +2 -2
- package/dist/{chunk-WHWUVDYK.js → chunk-CYLSQO4L.js} +6 -6
- package/dist/{chunk-J76YDS4V.js → chunk-DCPD5SHV.js} +3 -3
- package/dist/{chunk-H7BYMIVK.js → chunk-ENDB5YSV.js} +67 -27
- package/dist/{chunk-RTTZIX34.js → chunk-EOB7XVYR.js} +2 -2
- package/dist/chunk-EPDBWATV.js +38 -0
- package/dist/{chunk-TPN7RJOM.js → chunk-FJADQOFQ.js} +3 -3
- package/dist/{chunk-MG3DE3VO.js → chunk-FLMXJMMY.js} +3 -3
- package/dist/{chunk-WGC42WJU.js → chunk-FWNJDD4U.js} +6 -2
- package/dist/{chunk-S5P5Z5Y5.js → chunk-GINNZHVN.js} +2 -2
- package/dist/{chunk-LYJ53DBK.js → chunk-GJH7ZEPH.js} +41 -36
- package/dist/{chunk-2MTM4E6M.js → chunk-GQEXY7XL.js} +68 -65
- package/dist/{chunk-XFXJXLK7.js → chunk-HHHYVTVS.js} +16 -16
- package/dist/chunk-ICLB27PZ.js +11 -0
- package/dist/{chunk-QMFIZQTB.js → chunk-IDGQB6XD.js} +6 -4
- package/dist/{chunk-R3XI2VC7.js → chunk-IDJGV6VM.js} +2 -1
- package/dist/{chunk-HDLRRY3N.js → chunk-IE47TYZT.js} +177 -118
- package/dist/{chunk-FJ57274M.js → chunk-IIEI7VK5.js} +15 -1
- package/dist/{chunk-XPBJVSRY.js → chunk-IMO46ROR.js} +38 -32
- package/dist/{chunk-VRPV6QXR.js → chunk-IZTU6WVR.js} +2 -2
- package/dist/{chunk-CIWFL2LM.js → chunk-JOD2CK2M.js} +16 -14
- package/dist/{chunk-XCFIAGT7.js → chunk-JUNTVLOU.js} +16 -15
- package/dist/{chunk-RWFMOVHG.js → chunk-KAZQX2EY.js} +2 -2
- package/dist/{chunk-NHQ7HUAS.js → chunk-KGX5LIUG.js} +10 -8
- package/dist/{chunk-Q74GP3GK.js → chunk-KO6DGOOB.js} +3 -3
- package/dist/{chunk-5ZD4DDG7.js → chunk-L26M3X7K.js} +16 -13
- package/dist/{chunk-RU2HHHYA.js → chunk-LD2JSKU3.js} +12 -2
- package/dist/{chunk-OO2L2LWV.js → chunk-LEBPWFVF.js} +50 -46
- package/dist/{chunk-MU3CJPJF.js → chunk-LGI735AJ.js} +2 -2
- package/dist/{chunk-OWVDD5EC.js → chunk-LMWXBFLA.js} +2 -2
- package/dist/{chunk-6IN4F4RH.js → chunk-M3LZCDB6.js} +40 -42
- package/dist/{chunk-YT5ICQ4R.js → chunk-MFK7LF66.js} +2 -2
- package/dist/{chunk-UH5YTZN7.js → chunk-MJYFPFZT.js} +110 -20
- package/dist/{chunk-2QRIMMIH.js → chunk-N56W4R66.js} +2 -2
- package/dist/{chunk-LXXVHLTH.js → chunk-NN5IDH2I.js} +2 -2
- package/dist/{chunk-46KVXDUJ.js → chunk-NS3KIRSW.js} +2 -2
- package/dist/{chunk-LM3HY3VG.js → chunk-P2DM7Q5U.js} +2 -2
- package/dist/{chunk-DJL5PO27.js → chunk-P4SQV3XD.js} +2 -2
- package/dist/{chunk-B52RL5VV.js → chunk-P54AX5XN.js} +9 -9
- package/dist/{chunk-MZEGUDTA.js → chunk-P64NBPSK.js} +14 -14
- package/dist/{chunk-FF7LRT5L.js → chunk-PIWUZFG7.js} +33 -25
- package/dist/{chunk-SWEKCK34.js → chunk-QAPFXLAC.js} +2 -2
- package/dist/chunk-QFIXL3OK.js +68 -0
- package/dist/{chunk-KRTLS3G6.js → chunk-QVMV4KCA.js} +2 -2
- package/dist/{chunk-76LHNLGX.js → chunk-R4YGH7DJ.js} +5 -3
- package/dist/{chunk-OZOHREFQ.js → chunk-RC3FM3FE.js} +12 -13
- package/dist/{chunk-UJBP57UJ.js → chunk-RC6GGF6X.js} +2 -2
- package/dist/{chunk-S6OXNZBM.js → chunk-RHZZVIGA.js} +3 -3
- package/dist/{chunk-MS5574I7.js → chunk-RIXWLFB4.js} +2 -2
- package/dist/{chunk-D3B6YEZK.js → chunk-RUNI4OXP.js} +18 -14
- package/dist/{chunk-ICVIJLBA.js → chunk-SFSJ6XWV.js} +2 -2
- package/dist/{chunk-QBM5BURJ.js → chunk-SNBEAO4Q.js} +8 -8
- package/dist/{chunk-DSXWJAOA.js → chunk-SXD6VY7D.js} +16 -14
- package/dist/{chunk-V4NHFY22.js → chunk-TLM3I4XF.js} +16 -16
- package/dist/{chunk-3O7ZYVJV.js → chunk-TO6TWNMF.js} +19 -15
- package/dist/{chunk-CYMYZYLI.js → chunk-U2JIFCJN.js} +18 -18
- package/dist/{chunk-SSEAULA5.js → chunk-U4ND3J6C.js} +18 -14
- package/dist/{chunk-QXMHBIQG.js → chunk-UCF6TKWV.js} +51 -48
- package/dist/{chunk-RGW26UAR.js → chunk-UDYJVX6Y.js} +9 -9
- package/dist/{chunk-7CXW6EGX.js → chunk-UQY2VLUK.js} +25 -23
- package/dist/{chunk-EUVUOPRC.js → chunk-VAA7QSZ7.js} +53 -32
- package/dist/{chunk-43AJKH2U.js → chunk-VQGQF7O7.js} +12 -10
- package/dist/{chunk-DEW62ON3.js → chunk-VSPNH7LC.js} +2 -2
- package/dist/{chunk-4YER7UCV.js → chunk-VUJQ6RU6.js} +2 -2
- package/dist/{chunk-CHOK7NCJ.js → chunk-VZD3ZV4Y.js} +26 -22
- package/dist/{chunk-NCT22MOD.js → chunk-WMIKC5XO.js} +2 -2
- package/dist/{chunk-C2WH3BMS.js → chunk-X326N4GN.js} +10 -7
- package/dist/chunk-XBJJP2HN.js +37 -0
- package/dist/{chunk-7NSNE52V.js → chunk-XCR3PDFF.js} +2 -2
- package/dist/{chunk-UBDVAHGK.js → chunk-XDPJMLOH.js} +30 -27
- package/dist/{chunk-CF3I5SOG.js → chunk-YKDZ3ZRI.js} +27 -25
- package/dist/{chunk-GLREDNBA.js → chunk-YVLTNNME.js} +12 -2
- package/dist/{chunk-6ZZKEYBS.js → chunk-ZGOBAMQ2.js} +15 -13
- package/dist/{chunk-6BVAW7KI.js → chunk-ZMCFUGKO.js} +49 -42
- package/dist/clock.js +11 -5
- package/dist/completion-registry.js +2 -2
- package/dist/countdown.js +26 -20
- package/dist/{d3-BiaJtaSw.d.ts → d3-CQT5bwpb.d.ts} +1 -1
- package/dist/{dgmo-router-BwXHZ_P3.d.ts → dgmo-router-C9CsswPZ.d.ts} +1 -1
- package/dist/{dgmo-router-A3LIHT6H.js → dgmo-router-XZNCLYTV.js} +30 -29
- package/dist/{dimensions-OFF4GRFL.js → dimensions-SIZMZ4DC.js} +8 -8
- package/dist/{flowchart-renderer-BBJUPORB.js → flowchart-renderer-FDJ4QQXE.js} +15 -14
- package/dist/index.d.ts +7 -7
- package/dist/index.js +58 -43
- package/dist/{layout-Y2V3LYV7.js → layout-5DZ2LI2R.js} +2 -2
- package/dist/{layout-ZAGUFT2G.js → layout-6I6LSBUR.js} +6 -5
- package/dist/{layout-2OJ25STS.js → layout-C2SCZV5M.js} +6 -5
- package/dist/{layout-6SKHNQYO.js → layout-CHWKNE3O.js} +3 -3
- package/dist/{layout-EM4DLMAX.js → layout-K4KML2DL.js} +3 -3
- package/dist/{layout-KQUSB45X.js → layout-S53FSD6R.js} +7 -6
- package/dist/{layout-ROORJQ4X.js → layout-TCFXB5XH.js} +7 -6
- package/dist/{layout-5ILNODTP.js → layout-XK6ZD7BU.js} +6 -5
- package/dist/{layout-B5GQVXXY.js → layout-YVY72CIG.js} +7 -6
- package/dist/{layout-VUZ3MLOI.js → layout-YY6VH5XH.js} +6 -5
- package/dist/{layout-RV2T2YTT.js → layout-ZDN252GR.js} +4 -3
- package/dist/{layout-search-UOKEMER5.js → layout-search-TSV4FURP.js} +7 -6
- package/dist/{legend-constants-PLN2YHGM.js → legend-constants-SB4PLHV5.js} +3 -3
- package/dist/{palettes-54YSI3IX.js → palettes-YIPSRYXP.js} +5 -3
- package/dist/{parser-GCVSRQPY.js → parser-2BX2EJUB.js} +3 -3
- package/dist/{parser-WVE6SKB7.js → parser-3UNIPVNY.js} +3 -3
- package/dist/{parser-5XFGK5C5.js → parser-4IHIVDJD.js} +5 -5
- package/dist/{parser-ZT3PU2HT.js → parser-62VNEQRT.js} +3 -3
- package/dist/{parser-PR3OR3LO.js → parser-6JNJHQAG.js} +3 -3
- package/dist/{parser-ZXQZZK6W.js → parser-6ZFQLLVE.js} +3 -2
- package/dist/{parser-WMJEPZDC.js → parser-BOPXE6RP.js} +3 -3
- package/dist/{parser-WWRRG2DV.js → parser-DFBQ2RID.js} +3 -3
- package/dist/{parser-2GMHFSTS.js → parser-EPKXJ2RL.js} +3 -3
- package/dist/{parser-ML3LVNDV.js → parser-G7E2BURB.js} +3 -3
- package/dist/{parser-QOIZGW7I.js → parser-GFGU5ZLQ.js} +3 -3
- package/dist/{parser-L7T7FY3H.js → parser-GKZWI5SZ.js} +3 -3
- package/dist/{parser-QYAIFXLP.js → parser-HSPODF4H.js} +3 -3
- package/dist/{parser-EQ4I3TSH.js → parser-IK3FXZ7D.js} +3 -3
- package/dist/{parser-LV7PQBUG.js → parser-LJWPKRDM.js} +3 -3
- package/dist/{parser-RDBXEVI4.js → parser-OYWUBQV4.js} +3 -3
- package/dist/{parser-6FUESG4N.js → parser-PD4TP6NM.js} +3 -3
- package/dist/{parser-E3OHNNTH.js → parser-R2JHC7LQ.js} +3 -3
- package/dist/{parser-CJNP7RKR.js → parser-RMZ6YI7H.js} +3 -3
- package/dist/{parser-TA5TYZNL.js → parser-RUJNN5PK.js} +3 -3
- package/dist/{parser-UTR5WE4O.js → parser-YWE7GHW6.js} +3 -3
- package/dist/{parser-3AOMUX5D.js → parser-Z5UK6ADF.js} +3 -3
- package/dist/{parser-YWQCC33R.js → parser-ZO5YT5SV.js} +3 -3
- package/dist/renderer-5TPUPMZ7.js +26 -0
- package/dist/{renderer-2NYQDW37.js → renderer-AIVALEQR.js} +7 -7
- package/dist/renderer-AMELXBNW.js +23 -0
- package/dist/renderer-BF7FYXG3.js +25 -0
- package/dist/renderer-CRRW7LTW.js +17 -0
- package/dist/renderer-CXU2MGSC.js +27 -0
- package/dist/renderer-DI66RLAG.js +30 -0
- package/dist/renderer-E2JTYQY5.js +39 -0
- package/dist/{renderer-Y3Y7PEUS.js → renderer-FA4BTAOL.js} +7 -7
- package/dist/{renderer-G2DPKJAN.js → renderer-FFGFTIT4.js} +15 -14
- package/dist/renderer-IVAM7Z3Y.js +27 -0
- package/dist/renderer-J6HK2KOW.js +23 -0
- package/dist/renderer-J7J3OVLQ.js +39 -0
- package/dist/{renderer-GHBF5PRH.js → renderer-JC7MK7SD.js} +6 -5
- package/dist/{renderer-VF7X66SL.js → renderer-JHQC5RGJ.js} +14 -14
- package/dist/renderer-JRITSZY3.js +28 -0
- package/dist/{renderer-ANJUDBOS.js → renderer-KD5X4RIS.js} +14 -13
- package/dist/{renderer-CVWQD442.js → renderer-KWNNWCGD.js} +6 -5
- package/dist/{renderer-FTX67CYZ.js → renderer-LGMIAG6N.js} +7 -6
- package/dist/{renderer-EDVCGIQO.js → renderer-LQN3FXAP.js} +33 -32
- package/dist/renderer-LRL4SU43.js +29 -0
- package/dist/{renderer-R5HIRN2M.js → renderer-MBL64AJI.js} +6 -6
- package/dist/renderer-NA3DTAWF.js +39 -0
- package/dist/renderer-OR5QHR7X.js +31 -0
- package/dist/renderer-SBVWHQVW.js +30 -0
- package/dist/{renderer-DNFV2IQI.js → renderer-TLOSBJKW.js} +13 -13
- package/dist/{renderer-EFQSMHID.js → renderer-UDWJRRIC.js} +11 -11
- package/dist/renderer-VHK6UAW2.js +20 -0
- package/dist/{renderer-2ANDPQWC.js → renderer-W5UG2HWT.js} +5 -5
- package/dist/renderer-WOOKJOBQ.js +25 -0
- package/dist/renderer-WYNLGZRF.js +25 -0
- package/dist/{renderer-RNFECJ5D.js → renderer-Y74Y54C3.js} +8 -8
- package/dist/renderer-ZUAXGHFC.js +28 -0
- package/dist/renderer-radial-YVUDGR7C.js +21 -0
- package/dist/{state-parser-TPA67IXM.js → state-parser-CT5HQQ7E.js} +3 -3
- package/dist/state-renderer-7O3QGNJ5.js +41 -0
- package/dist/{tag-groups-BAtkq0b_.d.ts → tag-groups-BoJg3lFV.d.ts} +0 -16
- package/dist/{themes-DpsyRSO7.d.ts → themes-CXYnNA4e.d.ts} +2 -2
- package/docs/architecture-report.md +3 -3
- package/docs/language-reference.md +122 -30
- package/docs/migration-sequence-color-to-tags.md +16 -8
- package/package.json +4 -4
- package/dist/charts-d3-HMEMHSSW.js +0 -29
- package/dist/chunk-53SEVJQM.js +0 -9
- package/dist/chunk-LP7EC4MI.js +0 -16
- package/dist/chunk-YM5RMLFO.js +0 -40
- package/dist/renderer-2LDT4TUX.js +0 -25
- package/dist/renderer-2RIIIO34.js +0 -39
- package/dist/renderer-3HFU3DTO.js +0 -25
- package/dist/renderer-4BF6ILP6.js +0 -27
- package/dist/renderer-5E2AH5TO.js +0 -38
- package/dist/renderer-62SLWRYF.js +0 -27
- package/dist/renderer-D6GJ6EVK.js +0 -30
- package/dist/renderer-GZLRX764.js +0 -24
- package/dist/renderer-H2HYLFN3.js +0 -20
- package/dist/renderer-IR5655M7.js +0 -28
- package/dist/renderer-L237AOOZ.js +0 -16
- package/dist/renderer-LSJWYGOL.js +0 -39
- package/dist/renderer-LWXDMZOV.js +0 -28
- package/dist/renderer-MYSVPERC.js +0 -22
- package/dist/renderer-OL5QSZPC.js +0 -31
- package/dist/renderer-P26HH3NA.js +0 -30
- package/dist/renderer-RPZVNCTF.js +0 -26
- package/dist/renderer-SDNWZDUY.js +0 -23
- package/dist/renderer-UKHH4UWV.js +0 -25
- package/dist/renderer-radial-QNGCGKZP.js +0 -21
- package/dist/state-renderer-ELWDRXD6.js +0 -40
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import {
|
|
2
2
|
renderInlineText
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FWNJDD4U.js";
|
|
4
4
|
import {
|
|
5
5
|
layoutInlineHeader
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FLMXJMMY.js";
|
|
7
7
|
import {
|
|
8
8
|
TITLE_FONT_SIZE,
|
|
9
9
|
TITLE_FONT_WEIGHT,
|
|
10
10
|
TITLE_Y
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VSPNH7LC.js";
|
|
12
12
|
import {
|
|
13
13
|
renderIntegratedLegend
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-67I3HFSF.js";
|
|
15
15
|
import {
|
|
16
16
|
getLegendExtent,
|
|
17
17
|
getMaxLegendReservedHeight
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IZTU6WVR.js";
|
|
19
19
|
import {
|
|
20
20
|
FONT_FAMILY
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ICLB27PZ.js";
|
|
22
22
|
import {
|
|
23
23
|
LEGEND_GROUP_GAP
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MFK7LF66.js";
|
|
25
25
|
import {
|
|
26
26
|
measureText
|
|
27
27
|
} from "./chunk-MTGGOCND.js";
|
|
28
28
|
import {
|
|
29
29
|
resolveTagColor,
|
|
30
30
|
tagAttrKey
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
32
32
|
import {
|
|
33
33
|
contrastText,
|
|
34
34
|
getSeriesColors,
|
|
35
35
|
mix,
|
|
36
36
|
shapeFill,
|
|
37
37
|
themeBaseBg
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-YVLTNNME.js";
|
|
39
39
|
import {
|
|
40
40
|
resolveColor
|
|
41
41
|
} from "./chunk-XOGQY4EC.js";
|
|
@@ -806,14 +806,14 @@ function renderBracket(container, parsed, palette, isDark, exportDims) {
|
|
|
806
806
|
"fill",
|
|
807
807
|
fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(c, palette.bg, isDark ? 20 : 14)
|
|
808
808
|
).attr("stroke", fillMode === "outline" ? c : mix(c, palette.bg, 55)).attr("stroke-width", 1);
|
|
809
|
-
root.append("text").attr("x", (s.x0 + s.x1) / 2).attr("y", 18).attr("text-anchor", "middle").attr("font-size", 13).attr("font-weight",
|
|
809
|
+
root.append("text").attr("x", (s.x0 + s.x1) / 2).attr("y", 18).attr("text-anchor", "middle").attr("font-size", 13).attr("font-weight", "bold").attr("letter-spacing", 0.3).attr("fill", c).text(clip(s.label, s.x1 - s.x0, 13, true));
|
|
810
810
|
}
|
|
811
811
|
for (const col of layout.columns) {
|
|
812
812
|
const c = col.color ? resolveColor(col.color, palette) ?? col.color : basePaint.muted;
|
|
813
813
|
const covered = layout.sideLabels.some(
|
|
814
814
|
(s) => col.x >= s.x0 && col.x <= s.x1
|
|
815
815
|
);
|
|
816
|
-
root.append("text").attr("x", col.x).attr("y", covered ? roundY : 22).attr("text-anchor", "middle").attr("font-size", covered ? 14 : 15).attr("font-weight",
|
|
816
|
+
root.append("text").attr("x", col.x).attr("y", covered ? roundY : 22).attr("text-anchor", "middle").attr("font-size", covered ? 14 : 15).attr("font-weight", "bold").attr("fill", c).attr("letter-spacing", 0.4).text(clip(col.label, BOX_W + 20, covered ? 14 : 15, true));
|
|
817
817
|
}
|
|
818
818
|
for (const m of layout.matches) {
|
|
819
819
|
drawConnector(root, m, m.topFrom, m.y - HALF_SPAN2, basePaint);
|
|
@@ -905,26 +905,26 @@ function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey
|
|
|
905
905
|
let sw = 1.25;
|
|
906
906
|
let dash = null;
|
|
907
907
|
let textColor = paint.ink;
|
|
908
|
-
let weight =
|
|
908
|
+
let weight = "bold";
|
|
909
909
|
if (info.isChampion) {
|
|
910
910
|
fill = paint.tint;
|
|
911
911
|
stroke = paint.accent;
|
|
912
912
|
sw = 3;
|
|
913
|
-
weight =
|
|
913
|
+
weight = "bold";
|
|
914
914
|
} else if (isTBD) {
|
|
915
915
|
fill = paint.track;
|
|
916
916
|
dash = "4 4";
|
|
917
917
|
textColor = paint.muted;
|
|
918
|
-
weight =
|
|
918
|
+
weight = "normal";
|
|
919
919
|
} else if (info.isWinner) {
|
|
920
920
|
fill = paint.tint;
|
|
921
921
|
stroke = paint.accent;
|
|
922
922
|
sw = 2;
|
|
923
|
-
weight =
|
|
923
|
+
weight = "bold";
|
|
924
924
|
} else if (info.isLoser) {
|
|
925
925
|
stroke = paint.hair;
|
|
926
926
|
textColor = paint.muted;
|
|
927
|
-
weight =
|
|
927
|
+
weight = "normal";
|
|
928
928
|
} else if (info.pending) {
|
|
929
929
|
stroke = mix(paint.accent, paint.hair, 50);
|
|
930
930
|
}
|
|
@@ -939,7 +939,7 @@ function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey
|
|
|
939
939
|
if (dash) rect.attr("stroke-dasharray", dash);
|
|
940
940
|
let leftPad = 11;
|
|
941
941
|
if (info.seed !== null) {
|
|
942
|
-
cell.append("text").attr("x", x + 9).attr("y", cy + 4).attr("text-anchor", "start").attr("font-size", 10).attr("font-weight",
|
|
942
|
+
cell.append("text").attr("x", x + 9).attr("y", cy + 4).attr("text-anchor", "start").attr("font-size", 10).attr("font-weight", "bold").attr("fill", gutterColor).text(info.seed);
|
|
943
943
|
leftPad = 9 + Math.max(12, measureText(String(info.seed), 10, { bold: true })) + 6;
|
|
944
944
|
}
|
|
945
945
|
let rightPad = 11;
|
|
@@ -953,11 +953,11 @@ function drawBox(g, cx, cy, name, info, sidePaint, palette, isDark, m, activeKey
|
|
|
953
953
|
isTBD ? "TBD" : name,
|
|
954
954
|
BOX_W - leftPad - rightPad,
|
|
955
955
|
12.5,
|
|
956
|
-
weight
|
|
956
|
+
weight === "bold"
|
|
957
957
|
)
|
|
958
958
|
);
|
|
959
959
|
if (info.score) {
|
|
960
|
-
cell.append("text").attr("x", x + BOX_W - 11).attr("y", cy + 4).attr("text-anchor", "end").attr("font-size", 12).attr("font-weight", info.isWinner ?
|
|
960
|
+
cell.append("text").attr("x", x + BOX_W - 11).attr("y", cy + 4).attr("text-anchor", "end").attr("font-size", 12).attr("font-weight", info.isWinner ? "bold" : "normal").attr("fill", info.isWinner ? textColor : gutterColor).text(info.score);
|
|
961
961
|
}
|
|
962
962
|
}
|
|
963
963
|
function drawHome(cell, hx, cy, color) {
|
|
@@ -967,7 +967,7 @@ function drawHome(cell, hx, cy, color) {
|
|
|
967
967
|
cell.append("path").attr("d", d).attr("fill", "none").attr("stroke", color).attr("stroke-width", 1.2).attr("stroke-linejoin", "round");
|
|
968
968
|
}
|
|
969
969
|
function drawUpset(g, m, paint) {
|
|
970
|
-
g.append("text").attr("x", m.x + BOX_W / 2).attr("y", m.y - HALF_SPAN2 - BOX_H / 2 - 4).attr("text-anchor", "end").attr("font-size", 9).attr("font-weight",
|
|
970
|
+
g.append("text").attr("x", m.x + BOX_W / 2).attr("y", m.y - HALF_SPAN2 - BOX_H / 2 - 4).attr("text-anchor", "end").attr("font-size", 9).attr("font-weight", "bold").attr("letter-spacing", 0.6).attr("fill", paint.accent).text("UPSET");
|
|
971
971
|
}
|
|
972
972
|
function drawCommentary(g, m, palette) {
|
|
973
973
|
const x = m.x - BOX_W / 2 + 2;
|
|
@@ -1001,4 +1001,4 @@ export {
|
|
|
1001
1001
|
renderBracket,
|
|
1002
1002
|
renderBracketForExport
|
|
1003
1003
|
};
|
|
1004
|
-
//# sourceMappingURL=chunk-
|
|
1004
|
+
//# sourceMappingURL=chunk-BJB4YDJP.js.map
|
|
@@ -95,22 +95,28 @@ function unitRect(c, r) {
|
|
|
95
95
|
return { c, r, w: SKETCH_SEP, h: SKETCH_SEP };
|
|
96
96
|
}
|
|
97
97
|
var childBoxAt = /* @__PURE__ */ new Map();
|
|
98
|
+
function firstFreeOnRing(base, occupied, d) {
|
|
99
|
+
for (let quadrant = 0; quadrant < 4; quadrant++) {
|
|
100
|
+
for (let dr = -d; dr <= d; dr++) {
|
|
101
|
+
const r = base.r + dr;
|
|
102
|
+
const spread = d - Math.abs(dr);
|
|
103
|
+
for (const c of spread === 0 ? [base.c] : [base.c - spread, base.c + spread]) {
|
|
104
|
+
const cost = (r < base.r ? 2 : 0) + (c < base.c ? 1 : 0);
|
|
105
|
+
if (cost !== quadrant) continue;
|
|
106
|
+
if (!occupied.hits({ ...base, c, r })) return { c, r };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
98
112
|
function nearestFreeRect(base, occupied) {
|
|
99
113
|
if (!occupied.hits(base)) return { c: base.c, r: base.r };
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
candidates.sort((a, b) => {
|
|
108
|
-
const costA = (a.r < base.r ? 2 : 0) + (a.c < base.c ? 1 : 0);
|
|
109
|
-
const costB = (b.r < base.r ? 2 : 0) + (b.c < base.c ? 1 : 0);
|
|
110
|
-
return costA - costB || a.r - b.r || a.c - b.c;
|
|
111
|
-
});
|
|
112
|
-
for (const cand of candidates) {
|
|
113
|
-
if (!occupied.hits({ ...base, c: cand.c, r: cand.r })) return cand;
|
|
114
|
+
const key = `${base.c},${base.r},${base.w},${base.h}`;
|
|
115
|
+
for (let d = occupied.ringStart.get(key) ?? 1; d <= 200; d++) {
|
|
116
|
+
const found = firstFreeOnRing(base, occupied, d);
|
|
117
|
+
if (found) {
|
|
118
|
+
occupied.ringStart.set(key, d);
|
|
119
|
+
return found;
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
return { c: base.c, r: base.r };
|
|
@@ -136,6 +142,17 @@ var Occupancy = class {
|
|
|
136
142
|
oversized = [];
|
|
137
143
|
/** Every rect, in insertion order — the extent and flow-origin maths want it. */
|
|
138
144
|
rects = [];
|
|
145
|
+
/**
|
|
146
|
+
* The ring a search from a given base last had to reach, keyed by that base.
|
|
147
|
+
*
|
|
148
|
+
* Slots are only ever taken here, never given back, so a ring that was full
|
|
149
|
+
* once is full for the rest of the layout. The next unit authored at the
|
|
150
|
+
* same slot can therefore start where the last one finished instead of
|
|
151
|
+
* re-walking every ring inside it — which is what made a stack of shapes on
|
|
152
|
+
* one coordinate cost more than linear even with the collision index in
|
|
153
|
+
* place (#484). Skipping proven-full rings cannot change where a unit lands.
|
|
154
|
+
*/
|
|
155
|
+
ringStart = /* @__PURE__ */ new Map();
|
|
139
156
|
add(rect) {
|
|
140
157
|
this.rects.push(rect);
|
|
141
158
|
const range = cellRange(rect);
|
|
@@ -173,22 +190,12 @@ var Occupancy = class {
|
|
|
173
190
|
};
|
|
174
191
|
function nearestFree(base, occupied) {
|
|
175
192
|
if (!occupied.hits(base)) return { c: base.c, r: base.r };
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
candidates.sort((a, b) => {
|
|
184
|
-
const costA = (a.r < base.r ? 2 : 0) + (a.c < base.c ? 1 : 0);
|
|
185
|
-
const costB = (b.r < base.r ? 2 : 0) + (b.c < base.c ? 1 : 0);
|
|
186
|
-
return costA - costB || a.r - b.r || a.c - b.c;
|
|
187
|
-
});
|
|
188
|
-
for (const cand of candidates) {
|
|
189
|
-
if (!occupied.hits({ ...base, c: cand.c, r: cand.r })) {
|
|
190
|
-
return cand;
|
|
191
|
-
}
|
|
193
|
+
const key = `${base.c},${base.r},${base.w},${base.h}`;
|
|
194
|
+
for (let d = occupied.ringStart.get(key) ?? 1; d <= 200; d++) {
|
|
195
|
+
const found = firstFreeOnRing(base, occupied, d);
|
|
196
|
+
if (found) {
|
|
197
|
+
occupied.ringStart.set(key, d);
|
|
198
|
+
return found;
|
|
192
199
|
}
|
|
193
200
|
}
|
|
194
201
|
return { c: base.c, r: base.r };
|
|
@@ -706,4 +713,4 @@ export {
|
|
|
706
713
|
SKETCH_AUTO_LAYOUT_DEFAULTS,
|
|
707
714
|
layoutSketch
|
|
708
715
|
};
|
|
709
|
-
//# sourceMappingURL=chunk-
|
|
716
|
+
//# sourceMappingURL=chunk-BPM52K3Z.js.map
|
|
@@ -3,31 +3,34 @@ import {
|
|
|
3
3
|
layoutJourneyMap,
|
|
4
4
|
scoreToColor,
|
|
5
5
|
scoreToCurveY
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CTERZC4K.js";
|
|
7
7
|
import {
|
|
8
8
|
wrapNoteBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LGI735AJ.js";
|
|
10
10
|
import {
|
|
11
11
|
NOTE_BULLET_INDENT
|
|
12
12
|
} from "./chunk-5DH3KYFH.js";
|
|
13
13
|
import {
|
|
14
14
|
renderInlineText
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
CARD_RADIUS
|
|
18
|
-
} from "./chunk-FJ57274M.js";
|
|
15
|
+
} from "./chunk-FWNJDD4U.js";
|
|
19
16
|
import {
|
|
20
17
|
ScaleContext
|
|
21
18
|
} from "./chunk-24YPR5EH.js";
|
|
19
|
+
import {
|
|
20
|
+
CARD_RADIUS,
|
|
21
|
+
CONTAINER_RADIUS,
|
|
22
|
+
GRID_DASH,
|
|
23
|
+
NODE_STROKE_WIDTH
|
|
24
|
+
} from "./chunk-IIEI7VK5.js";
|
|
22
25
|
import {
|
|
23
26
|
serializeSvg
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-LD2JSKU3.js";
|
|
25
28
|
import {
|
|
26
29
|
renderIntegratedLegend
|
|
27
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-67I3HFSF.js";
|
|
28
31
|
import {
|
|
29
32
|
FONT_FAMILY
|
|
30
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-ICLB27PZ.js";
|
|
31
34
|
import {
|
|
32
35
|
measureText,
|
|
33
36
|
truncateText,
|
|
@@ -35,11 +38,11 @@ import {
|
|
|
35
38
|
} from "./chunk-MTGGOCND.js";
|
|
36
39
|
import {
|
|
37
40
|
parseJourneyMap
|
|
38
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-N56W4R66.js";
|
|
39
42
|
import {
|
|
40
43
|
resolveActiveTagGroup,
|
|
41
44
|
tagAttrKey
|
|
42
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
43
46
|
import {
|
|
44
47
|
fillModeFromOptions
|
|
45
48
|
} from "./chunk-M5OOAP65.js";
|
|
@@ -48,7 +51,7 @@ import {
|
|
|
48
51
|
mix,
|
|
49
52
|
shapeFill,
|
|
50
53
|
themeBaseBg
|
|
51
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-YVLTNNME.js";
|
|
52
55
|
|
|
53
56
|
// src/journey-map/renderer.ts
|
|
54
57
|
import * as d3 from "d3-selection";
|
|
@@ -58,10 +61,8 @@ var PADDING = DIAGRAM_PADDING;
|
|
|
58
61
|
var CARD_PADDING_X = 10;
|
|
59
62
|
var CARD_PADDING_Y = 6;
|
|
60
63
|
var CARD_HEADER_HEIGHT = 24;
|
|
61
|
-
var CARD_STROKE_WIDTH = 1.5;
|
|
62
64
|
var CARD_META_LINE_HEIGHT = 14;
|
|
63
65
|
var CARD_GAP_INTERNAL = 8;
|
|
64
|
-
var COLUMN_RADIUS = 8;
|
|
65
66
|
var COLUMN_HEADER_HEIGHT = 36;
|
|
66
67
|
var COLUMN_PADDING = 12;
|
|
67
68
|
var FONT_SIZE_TITLE = 18;
|
|
@@ -173,8 +174,8 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
|
|
|
173
174
|
1.2,
|
|
174
175
|
fillMode
|
|
175
176
|
);
|
|
176
|
-
personaG.append("rect").attr("x", panelX).attr("y", panelY).attr("width", panelWidth).attr("height", panelHeight).attr("rx", CARD_RADIUS).attr("fill", "none").attr("stroke", personaColor).attr("stroke-width",
|
|
177
|
-
personaG.append("text").attr("x", textX).attr("y", panelY + CARD_PADDING_Y + FONT_SIZE_STEP).attr("font-size", FONT_SIZE_STEP).attr("font-weight", "
|
|
177
|
+
personaG.append("rect").attr("x", panelX).attr("y", panelY).attr("width", panelWidth).attr("height", panelHeight).attr("rx", CARD_RADIUS).attr("fill", "none").attr("stroke", personaColor).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
178
|
+
personaG.append("text").attr("x", textX).attr("y", panelY + CARD_PADDING_Y + FONT_SIZE_STEP).attr("font-size", FONT_SIZE_STEP).attr("font-weight", "normal").attr("fill", onPersonaText).text(
|
|
178
179
|
truncateText(parsed.persona.name, FONT_SIZE_STEP, textAreaWidth)
|
|
179
180
|
);
|
|
180
181
|
for (let li = 0; li < descLines.length; li++) {
|
|
@@ -270,7 +271,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
|
|
|
270
271
|
const curveG = svg.append("g").attr("class", "journey-curve-area");
|
|
271
272
|
for (let score = 1; score <= 5; score++) {
|
|
272
273
|
const y = scoreToCurveY(score, layout.curveAreaBottom);
|
|
273
|
-
curveG.append("line").attr("x1", PADDING).attr("x2", layout.totalWidth - PADDING).attr("y1", y).attr("y2", y).attr("stroke", palette.textMuted).attr("stroke-opacity", GRID_LINE_OPACITY).attr("stroke-dasharray",
|
|
274
|
+
curveG.append("line").attr("x1", PADDING).attr("x2", layout.totalWidth - PADDING).attr("y1", y).attr("y2", y).attr("stroke", palette.textMuted).attr("stroke-opacity", GRID_LINE_OPACITY).attr("stroke-dasharray", GRID_DASH);
|
|
274
275
|
}
|
|
275
276
|
if (layout.curvePoints.length >= 2) {
|
|
276
277
|
const first = layout.curvePoints[0];
|
|
@@ -376,9 +377,9 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
|
|
|
376
377
|
const isCollapsed = collapsedPhases.has(pl.phase.name);
|
|
377
378
|
const phaseG = phasesG.append("g").attr("class", "journey-phase").attr("data-line-number", pl.phase.lineNumber);
|
|
378
379
|
const colBg = isDark ? mix(palette.surface, palette.bg, 50) : mix(palette.surface, palette.bg, 30);
|
|
379
|
-
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y).attr("width", pl.width).attr("height", pl.height).attr("rx",
|
|
380
|
-
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y).attr("width", pl.width).attr("height", COLUMN_HEADER_HEIGHT).attr("rx",
|
|
381
|
-
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y + COLUMN_HEADER_HEIGHT -
|
|
380
|
+
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y).attr("width", pl.width).attr("height", pl.height).attr("rx", CONTAINER_RADIUS).attr("fill", colBg);
|
|
381
|
+
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y).attr("width", pl.width).attr("height", COLUMN_HEADER_HEIGHT).attr("rx", CONTAINER_RADIUS).attr("fill", pl.headerColor);
|
|
382
|
+
phaseG.append("rect").attr("x", pl.x).attr("y", pl.y + COLUMN_HEADER_HEIGHT - CONTAINER_RADIUS).attr("width", pl.width).attr("height", CONTAINER_RADIUS).attr("fill", pl.headerColor);
|
|
382
383
|
const onHeaderText = contrastText(
|
|
383
384
|
pl.headerColor,
|
|
384
385
|
palette.textOnFillLight,
|
|
@@ -435,7 +436,7 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
|
|
|
435
436
|
{ mode: fillMode }
|
|
436
437
|
);
|
|
437
438
|
const rowStroke = stepColor ?? palette.textMuted;
|
|
438
|
-
itemG.append("rect").attr("x", listX).attr("y", itemY).attr("width", cardW).attr("height", COLLAPSED_CARD_H).attr("rx", CARD_RADIUS).attr("fill", rowFill).attr("stroke", rowStroke).attr("stroke-width",
|
|
439
|
+
itemG.append("rect").attr("x", listX).attr("y", itemY).attr("width", cardW).attr("height", COLLAPSED_CARD_H).attr("rx", CARD_RADIUS).attr("fill", rowFill).attr("stroke", rowStroke).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
439
440
|
const faceCx = listX + CARD_PADDING_X + COLLAPSED_FACE_R;
|
|
440
441
|
const faceCy = itemY + COLLAPSED_CARD_H / 2;
|
|
441
442
|
if (step.score !== void 0) {
|
|
@@ -567,8 +568,8 @@ function renderJourneyMap(container, parsed, palette, isDark, options) {
|
|
|
567
568
|
const scoreColor = scoreToColor(score, palette);
|
|
568
569
|
const tintedBg = fillMode === "outline" ? themeBaseBg(palette, isDark) : mix(scoreColor, palette.surface, 20);
|
|
569
570
|
const g = overlayG.append("g").attr("class", "journey-thought-hover");
|
|
570
|
-
g.append("rect").attr("x", bx).attr("y", by).attr("width", bw).attr("height", bh).attr("rx", CARD_RADIUS).attr("fill", tintedBg).attr("stroke", scoreColor).attr("stroke-width",
|
|
571
|
-
g.append("line").attr("x1", fcx).attr("y1", by + bh).attr("x2", fcx).attr("y2", fcy - FACE_HOVER_R - 1).attr("stroke", scoreColor).attr("stroke-width",
|
|
571
|
+
g.append("rect").attr("x", bx).attr("y", by).attr("width", bw).attr("height", bh).attr("rx", CARD_RADIUS).attr("fill", tintedBg).attr("stroke", scoreColor).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
572
|
+
g.append("line").attr("x1", fcx).attr("y1", by + bh).attr("x2", fcx).attr("y2", fcy - FACE_HOVER_R - 1).attr("stroke", scoreColor).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
572
573
|
const centerX = bx + bw / 2;
|
|
573
574
|
for (let i = 0; i < lines.length; i++) {
|
|
574
575
|
g.append("text").attr("x", centerX).attr("y", by + THOUGHT_PAD_Y + (i + 1) * THOUGHT_LINE_H - 2).attr("text-anchor", "middle").attr("font-size", THOUGHT_FONT).attr("font-style", "italic").attr("fill", palette.textMuted).text(lines[i]);
|
|
@@ -688,11 +689,11 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
|
|
|
688
689
|
palette.textOnFillLight,
|
|
689
690
|
palette.textOnFillDark
|
|
690
691
|
);
|
|
691
|
-
stepG.append("rect").attr("x", cx).attr("y", cy).attr("width", sl.width).attr("height", sl.height).attr("rx", CARD_RADIUS).attr("fill", cardFill).attr("stroke", cardStroke).attr("stroke-width",
|
|
692
|
+
stepG.append("rect").attr("x", cx).attr("y", cy).attr("width", sl.width).attr("height", sl.height).attr("rx", CARD_RADIUS).attr("fill", cardFill).attr("stroke", cardStroke).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
692
693
|
const titleMaxW = sl.width - CARD_PADDING_X * 2;
|
|
693
694
|
const titleLines = wrapTextToWidth(sl.step.title, FONT_SIZE_STEP, titleMaxW);
|
|
694
695
|
for (let i = 0; i < titleLines.length; i++) {
|
|
695
|
-
stepG.append("text").attr("x", cx + CARD_PADDING_X).attr("y", cy + CARD_PADDING_Y + FONT_SIZE_STEP + i * TITLE_LINE_HEIGHT).attr("font-size", FONT_SIZE_STEP).attr("font-weight", "
|
|
696
|
+
stepG.append("text").attr("x", cx + CARD_PADDING_X).attr("y", cy + CARD_PADDING_Y + FONT_SIZE_STEP + i * TITLE_LINE_HEIGHT).attr("font-size", FONT_SIZE_STEP).attr("font-weight", "normal").attr("fill", onCardText).text(titleLines[i]);
|
|
696
697
|
}
|
|
697
698
|
const titleBlockH = CARD_PADDING_Y + titleLines.length * TITLE_LINE_HEIGHT + CARD_PADDING_Y;
|
|
698
699
|
const cardAnnotations = sl.step.annotations;
|
|
@@ -747,7 +748,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
|
|
|
747
748
|
const stripFill = shapeFill(palette, stripColor, isDark, {
|
|
748
749
|
mode: fillMode
|
|
749
750
|
});
|
|
750
|
-
stepG.append("rect").attr("x", cx).attr("y", stripY).attr("width", sl.width).attr("height", TAG_STRIP_HEIGHT).attr("rx", CARD_RADIUS).attr("fill", stripFill).attr("stroke", stripColor).attr("stroke-width",
|
|
751
|
+
stepG.append("rect").attr("x", cx).attr("y", stripY).attr("width", sl.width).attr("height", TAG_STRIP_HEIGHT).attr("rx", CARD_RADIUS).attr("fill", stripFill).attr("stroke", stripColor).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
751
752
|
const stripTextColor = contrastText(
|
|
752
753
|
stripFill,
|
|
753
754
|
palette.textOnFillLight,
|
|
@@ -809,7 +810,7 @@ function addEmotionLabel(faceG, pt, palette) {
|
|
|
809
810
|
EMOTION_LABEL_MAX_WIDTH
|
|
810
811
|
);
|
|
811
812
|
const y = pt.y + FACE_RADIUS + 5 + EMOTION_LABEL_FONT_SIZE;
|
|
812
|
-
faceG.append("text").attr("class", "journey-emotion-label").attr("x", pt.x).attr("y", y).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", EMOTION_LABEL_FONT_SIZE).attr("font-weight",
|
|
813
|
+
faceG.append("text").attr("class", "journey-emotion-label").attr("x", pt.x).attr("y", y).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", EMOTION_LABEL_FONT_SIZE).attr("font-weight", "normal").attr("fill", palette.text).attr("stroke", palette.bg).attr("stroke-width", 3).attr("stroke-linejoin", "round").attr("stroke-opacity", 0.8).attr("paint-order", "stroke").attr("pointer-events", "none").text(text);
|
|
813
814
|
}
|
|
814
815
|
function annotationColor(type, palette) {
|
|
815
816
|
switch (type) {
|
|
@@ -877,4 +878,4 @@ export {
|
|
|
877
878
|
renderJourneyMap,
|
|
878
879
|
renderJourneyMapForExport
|
|
879
880
|
};
|
|
880
|
-
//# sourceMappingURL=chunk-
|
|
881
|
+
//# sourceMappingURL=chunk-BSREARWG.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
mix,
|
|
10
10
|
shapeFill
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YVLTNNME.js";
|
|
12
12
|
|
|
13
13
|
// src/journey-map/layout.ts
|
|
14
14
|
var PADDING = 24;
|
|
@@ -290,4 +290,4 @@ export {
|
|
|
290
290
|
scoreToCurveY,
|
|
291
291
|
layoutJourneyMap
|
|
292
292
|
};
|
|
293
|
-
//# sourceMappingURL=chunk-
|
|
293
|
+
//# sourceMappingURL=chunk-CTERZC4K.js.map
|
|
@@ -12,24 +12,24 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
TITLE_FONT_SIZE,
|
|
14
14
|
TITLE_Y
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VSPNH7LC.js";
|
|
16
16
|
import {
|
|
17
17
|
compactNumber,
|
|
18
18
|
computeLegendLayout
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IZTU6WVR.js";
|
|
20
20
|
import {
|
|
21
21
|
measureLegendText
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MFK7LF66.js";
|
|
23
23
|
import {
|
|
24
24
|
tagAttrKey
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
26
26
|
import {
|
|
27
27
|
contrastRatio,
|
|
28
28
|
mix,
|
|
29
29
|
politicalTints,
|
|
30
30
|
relativeLuminance,
|
|
31
31
|
valueRampColor
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YVLTNNME.js";
|
|
33
33
|
import {
|
|
34
34
|
resolveColor
|
|
35
35
|
} from "./chunk-XOGQY4EC.js";
|
|
@@ -3406,4 +3406,4 @@ export {
|
|
|
3406
3406
|
albersSkewFallback,
|
|
3407
3407
|
layoutMap
|
|
3408
3408
|
};
|
|
3409
|
-
//# sourceMappingURL=chunk-
|
|
3409
|
+
//# sourceMappingURL=chunk-CYLSQO4L.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildMapProjection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CYLSQO4L.js";
|
|
4
4
|
import {
|
|
5
5
|
TITLE_FONT_SIZE,
|
|
6
6
|
TITLE_Y
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-VSPNH7LC.js";
|
|
8
8
|
|
|
9
9
|
// src/map/dimensions.ts
|
|
10
10
|
import { geoPath } from "d3-geo";
|
|
@@ -51,4 +51,4 @@ export {
|
|
|
51
51
|
mapContentAspect,
|
|
52
52
|
mapExportDimensions
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-DCPD5SHV.js.map
|
|
@@ -1,55 +1,63 @@
|
|
|
1
|
+
import {
|
|
2
|
+
appendArrowheadMarkers,
|
|
3
|
+
appendReverseArrowheadMarkers
|
|
4
|
+
} from "./chunk-XBJJP2HN.js";
|
|
1
5
|
import {
|
|
2
6
|
renderCollapseBar,
|
|
3
7
|
renderNodeCard
|
|
4
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4AWLEWSD.js";
|
|
5
9
|
import {
|
|
10
|
+
ScaleContext
|
|
11
|
+
} from "./chunk-24YPR5EH.js";
|
|
12
|
+
import {
|
|
13
|
+
ARROWHEAD_HEIGHT,
|
|
14
|
+
ARROWHEAD_WIDTH,
|
|
6
15
|
CARD_RADIUS,
|
|
7
16
|
COLLAPSE_BAR_HEIGHT,
|
|
8
17
|
CONTAINER_LABEL_FONT_SIZE,
|
|
9
18
|
CONTAINER_RADIUS,
|
|
19
|
+
EDGE_DASH,
|
|
10
20
|
EDGE_LABEL_KNOCKOUT_OPACITY,
|
|
11
21
|
EDGE_STROKE_WIDTH,
|
|
12
22
|
HEADER_HEIGHT,
|
|
13
23
|
LABEL_FONT_SIZE,
|
|
14
24
|
META_FONT_SIZE,
|
|
15
25
|
NODE_STROKE_WIDTH
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import {
|
|
18
|
-
ScaleContext
|
|
19
|
-
} from "./chunk-24YPR5EH.js";
|
|
26
|
+
} from "./chunk-IIEI7VK5.js";
|
|
20
27
|
import {
|
|
21
28
|
layoutInlineHeader
|
|
22
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-FLMXJMMY.js";
|
|
23
30
|
import {
|
|
24
31
|
TITLE_FONT_SIZE,
|
|
25
32
|
TITLE_FONT_WEIGHT,
|
|
26
33
|
TITLE_Y
|
|
27
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-VSPNH7LC.js";
|
|
28
35
|
import {
|
|
29
36
|
renderIntegratedLegend
|
|
30
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-67I3HFSF.js";
|
|
31
38
|
import {
|
|
32
39
|
getLegendExtent,
|
|
33
40
|
getMaxLegendReservedHeight
|
|
34
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-IZTU6WVR.js";
|
|
35
42
|
import {
|
|
36
43
|
FONT_FAMILY
|
|
37
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-ICLB27PZ.js";
|
|
38
45
|
import {
|
|
39
46
|
measureText,
|
|
40
47
|
wrapTextToWidth
|
|
41
48
|
} from "./chunk-MTGGOCND.js";
|
|
42
49
|
import {
|
|
50
|
+
UNTAGGED_TAG_COLOR,
|
|
43
51
|
resolveActiveTagGroup,
|
|
44
52
|
resolveTagColor,
|
|
45
53
|
tagAttrKey
|
|
46
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
47
55
|
import {
|
|
48
56
|
contrastText,
|
|
49
57
|
mix,
|
|
50
58
|
shapeFill,
|
|
51
59
|
themeBaseBg
|
|
52
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-YVLTNNME.js";
|
|
53
61
|
|
|
54
62
|
// src/sketch/renderer.ts
|
|
55
63
|
import * as d3 from "d3-selection";
|
|
@@ -316,7 +324,25 @@ var SKETCH_VISUALS = {
|
|
|
316
324
|
// their own name was (2026-08-27, #518).
|
|
317
325
|
titleY: TITLE_Y,
|
|
318
326
|
titleFontSize: TITLE_FONT_SIZE,
|
|
319
|
-
|
|
327
|
+
// 🔴 `bold` AS A NUMBER, and never `Number('bold')` — which is `NaN`, which is
|
|
328
|
+
// what this shipped. Every other consumer of `TITLE_FONT_WEIGHT` writes it
|
|
329
|
+
// straight into an SVG attribute, where the string is valid; this one is read
|
|
330
|
+
// as a VALUE by the desktop canvas, which puts it on an SVG attribute AND on
|
|
331
|
+
// an input's inline style, so it has to be a weight rather than a word.
|
|
332
|
+
//
|
|
333
|
+
// The result was `font-weight="NaN"` on every sketch title — silently
|
|
334
|
+
// rendered at the default weight, so a sketch's name was the one title in the
|
|
335
|
+
// product that was not bold, and nothing failed. Found 2026-08-29 by an app
|
|
336
|
+
// test asserting the drawn weight, which had been red on it.
|
|
337
|
+
//
|
|
338
|
+
// The comparison rather than a bare `700` so that changing the shared
|
|
339
|
+
// constant is a type error here instead of another silent coercion.
|
|
340
|
+
//
|
|
341
|
+
// ⚠️ Widened back to `number`. Without the assertion the literal `700` leaks
|
|
342
|
+
// into the published type surface — `check:api` caught it on the push — and a
|
|
343
|
+
// consumer would then be typed against this exact weight rather than against
|
|
344
|
+
// "a weight", which is the opposite of what a shared constant is for.
|
|
345
|
+
titleFontWeight: TITLE_FONT_WEIGHT === "bold" ? 700 : 400,
|
|
320
346
|
// 🔴 SHARED, not overridden. These read 2 and 2 against the conventions'
|
|
321
347
|
// 1.5, under a comment claiming "a bolder, less-washed look" — and the
|
|
322
348
|
// boldness was the complaint: a sketch beside a boxes-and-lines or an org
|
|
@@ -331,9 +357,9 @@ var SKETCH_VISUALS = {
|
|
|
331
357
|
// single difference between the two pictures (#518). `markerUnits` defaults
|
|
332
358
|
// to `strokeWidth`, so 5×4 here renders 7.5×6 — the same triangle
|
|
333
359
|
// boxes-and-lines draws.
|
|
334
|
-
arrowheadW:
|
|
335
|
-
arrowheadH:
|
|
336
|
-
dash:
|
|
360
|
+
arrowheadW: ARROWHEAD_WIDTH,
|
|
361
|
+
arrowheadH: ARROWHEAD_HEIGHT,
|
|
362
|
+
dash: EDGE_DASH,
|
|
337
363
|
/** A card's name. Shared, and it fits DOWN to `nodeLabelFontSizeMin` before
|
|
338
364
|
* it wraps — it used to be allowed up to 30 on a card with no rows, which is
|
|
339
365
|
* more than twice what any other chart type prints. */
|
|
@@ -355,7 +381,17 @@ var SKETCH_VISUALS = {
|
|
|
355
381
|
// boxes-and-lines' 14 — and infra's — are the undocumented deviations here;
|
|
356
382
|
// the fix is those two coming to 13, not a third chart type leaving.
|
|
357
383
|
bandLabelFontSize: CONTAINER_LABEL_FONT_SIZE,
|
|
358
|
-
|
|
384
|
+
// 🔴 A WEIGHT, never the word — the same defect `titleFontWeight` carries
|
|
385
|
+
// the note for, one property along. `'bold'` is valid on the SVG attribute
|
|
386
|
+
// this renderer writes it to, and invalid everywhere a consumer needs a
|
|
387
|
+
// number: the app's live canvas puts a container band's weight on an
|
|
388
|
+
// `<input>`'s inline style and into a `fontWeight: number` slot, so it had
|
|
389
|
+
// to translate the word back to 700 itself and typecheck went red on main
|
|
390
|
+
// when it did not (#537, 2026-08-29). 700 is what `'bold'` already drew —
|
|
391
|
+
// this changes the type, not the picture. `as number` for the same reason
|
|
392
|
+
// `titleFontWeight` carries it: the literal would otherwise leak into the
|
|
393
|
+
// published type surface and `check:api` fails on it.
|
|
394
|
+
bandLabelFontWeight: 700,
|
|
359
395
|
bandLabelOpacity: 1,
|
|
360
396
|
/** 11 — what boxes-and-lines prints. It was 12, the only edge label in the
|
|
361
397
|
* product at that size. */
|
|
@@ -567,22 +603,26 @@ function renderSketch(container, parsed, layout, palette, isDark, options = {})
|
|
|
567
603
|
const edgeColorFor = (metadata) => {
|
|
568
604
|
if (activeKey !== null && metadata[activeKey] !== void 0) {
|
|
569
605
|
const c = resolveTagColor(metadata, tagGroups, activeName);
|
|
570
|
-
if (c && c !==
|
|
606
|
+
if (c && c !== UNTAGGED_TAG_COLOR) return c;
|
|
571
607
|
}
|
|
572
608
|
return palette.textMuted;
|
|
573
609
|
};
|
|
574
610
|
const flowColor = (edge) => edgeColorFor(edge.metadata);
|
|
575
611
|
const edgeColors = new Set(layout.edges.map((e) => flowColor(e)));
|
|
576
|
-
|
|
577
|
-
const
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
612
|
+
if (edgeColors.size > 0) {
|
|
613
|
+
const markerOpts = {
|
|
614
|
+
idPrefix: "sk",
|
|
615
|
+
width: ARROWHEAD_W,
|
|
616
|
+
height: ARROWHEAD_H,
|
|
617
|
+
// Every marker is per-colour here; the base id is never referenced.
|
|
618
|
+
baseFill: [...edgeColors][0],
|
|
619
|
+
colors: edgeColors
|
|
620
|
+
};
|
|
621
|
+
appendArrowheadMarkers(defs, markerOpts);
|
|
622
|
+
appendReverseArrowheadMarkers(defs, markerOpts);
|
|
583
623
|
}
|
|
584
624
|
if (showTitle) {
|
|
585
|
-
svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", TITLE_Y2).attr("text-anchor", header.titleAnchor).attr("font-size", sTitleFontSize).attr("font-weight",
|
|
625
|
+
svg.append("text").attr("class", "chart-title").attr("x", header.titleX).attr("y", TITLE_Y2).attr("text-anchor", header.titleAnchor).attr("font-size", sTitleFontSize).attr("font-weight", "bold").attr("fill", palette.text).text(parsed.title);
|
|
586
626
|
}
|
|
587
627
|
if (legendGroups.length > 0) {
|
|
588
628
|
const legendG = svg.append("g").attr(
|
|
@@ -1321,4 +1361,4 @@ export {
|
|
|
1321
1361
|
sketchEdgeGeometry,
|
|
1322
1362
|
renderSketchForExport
|
|
1323
1363
|
};
|
|
1324
|
-
//# sourceMappingURL=chunk-
|
|
1364
|
+
//# sourceMappingURL=chunk-ENDB5YSV.js.map
|