@coldtea/pr-lens-renderer 0.2.2 → 0.2.4
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/dist/layout/architecture.d.ts +7 -1
- package/dist/layout/architecture.d.ts.map +1 -1
- package/dist/layout/architecture.js +11 -2
- package/dist/layout/architecture.js.map +1 -1
- package/dist/svg/architecture.d.ts +6 -6
- package/dist/svg/architecture.d.ts.map +1 -1
- package/dist/svg/architecture.js +56 -34
- package/dist/svg/architecture.js.map +1 -1
- package/dist/svg/dataflow.d.ts +1 -1
- package/dist/svg/dataflow.d.ts.map +1 -1
- package/dist/svg/dataflow.js +17 -11
- package/dist/svg/dataflow.js.map +1 -1
- package/dist/svg/document.d.ts.map +1 -1
- package/dist/svg/document.js +3 -50
- package/dist/svg/document.js.map +1 -1
- package/dist/svg/icons.d.ts +2 -1
- package/dist/svg/icons.d.ts.map +1 -1
- package/dist/svg/icons.js +31 -23
- package/dist/svg/icons.js.map +1 -1
- package/dist/svg/styles.d.ts +74 -0
- package/dist/svg/styles.d.ts.map +1 -0
- package/dist/svg/styles.js +109 -0
- package/dist/svg/styles.js.map +1 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +21 -3
- package/dist/text.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/layout/architecture.ts +10 -2
- package/src/svg/architecture.ts +64 -36
- package/src/svg/dataflow.ts +32 -23
- package/src/svg/document.ts +4 -53
- package/src/svg/icons.ts +39 -28
- package/src/svg/styles.ts +122 -0
- package/src/text.ts +27 -3
- package/src/version.ts +1 -1
package/dist/svg/document.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
2
2
|
import { coord } from "../geometry.js";
|
|
3
|
-
import {
|
|
3
|
+
import { SANS_STACK } from "../text.js";
|
|
4
4
|
import { escapeXml, lines, tag, wrap } from "./primitives.js";
|
|
5
5
|
export const toneFor = (delta) => {
|
|
6
6
|
switch (delta) {
|
|
@@ -31,53 +31,6 @@ export const toneColour = (palette, tone) => {
|
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
const TONES = ["added", "modified", "removed", "neutral"];
|
|
34
|
-
const stylesheet = (palette) => [
|
|
35
|
-
`text{font-family:${SANS_STACK}}`,
|
|
36
|
-
`.lanebox{fill:${palette.lane}}`,
|
|
37
|
-
`.lanelabel{font-size:10px;font-weight:700;letter-spacing:.12em;fill:${palette.muted}}`,
|
|
38
|
-
`.card{fill:${palette.card};stroke:${palette.cardBorder};stroke-width:1}`,
|
|
39
|
-
`.card-added{stroke:${palette.added};stroke-opacity:.55}`,
|
|
40
|
-
`.card-modified{stroke:${palette.modified};stroke-opacity:.5}`,
|
|
41
|
-
`.ghost{opacity:.55}`,
|
|
42
|
-
`.ghost .card{stroke:${palette.removed};stroke-dasharray:4 3;stroke-opacity:.6}`,
|
|
43
|
-
`.context{opacity:.82}`,
|
|
44
|
-
`.ntitle{font-weight:600;fill:${palette.foreground}}`,
|
|
45
|
-
`.strike{text-decoration:line-through}`,
|
|
46
|
-
`.nsub{font-size:9.5px;fill:${palette.muted};font-family:${MONO_STACK}}`,
|
|
47
|
-
`.chip{fill:${palette.chip}}`,
|
|
48
|
-
`.glyph{fill:${palette.muted}}`,
|
|
49
|
-
`.glyph-stroke{stroke:${palette.muted};stroke-width:1.4;fill:none}`,
|
|
50
|
-
`.bdg text{font-size:8.5px;font-weight:700;letter-spacing:.06em}`,
|
|
51
|
-
`.bdg rect{stroke-width:1}`,
|
|
52
|
-
`.bdg-added rect{fill:${palette.addedFill};stroke:${palette.addedBorder}}`,
|
|
53
|
-
`.bdg-added text{fill:${palette.addedText}}`,
|
|
54
|
-
`.bdg-modified rect{fill:${palette.modifiedFill};stroke:${palette.modifiedBorder}}`,
|
|
55
|
-
`.bdg-modified text{fill:${palette.modifiedText}}`,
|
|
56
|
-
`.bdg-removed rect{fill:${palette.removedFill};stroke:${palette.removedBorder}}`,
|
|
57
|
-
`.bdg-removed text{fill:${palette.removedText}}`,
|
|
58
|
-
`.bdg-neutral rect{fill:${palette.neutralFill};stroke:${palette.cardBorder}}`,
|
|
59
|
-
`.bdg-neutral text{fill:${palette.muted}}`,
|
|
60
|
-
`.edge{fill:none;stroke-width:1.5}`,
|
|
61
|
-
`.edge-added{stroke:${palette.added}}`,
|
|
62
|
-
`.edge-modified{stroke:${palette.modified}}`,
|
|
63
|
-
`.edge-removed{stroke:${palette.removed};stroke-dasharray:5 4;opacity:.7}`,
|
|
64
|
-
`.edge-neutral{stroke:${palette.edge}}`,
|
|
65
|
-
`.hero{stroke-width:2.25}`,
|
|
66
|
-
`.faded{opacity:.45}`,
|
|
67
|
-
`.glow{fill:none;stroke-width:7;opacity:.14}`,
|
|
68
|
-
`.msg-self{font-size:11px;fill:${palette.foreground}}`,
|
|
69
|
-
`.lpill{fill:${palette.pill};stroke:${palette.pillBorder};stroke-width:1}`,
|
|
70
|
-
`.ltext{font-size:9.5px;font-weight:600;fill:${palette.muted}}`,
|
|
71
|
-
`.ltext-added{fill:${palette.addedText}}`,
|
|
72
|
-
`.ltext-modified{fill:${palette.modifiedText}}`,
|
|
73
|
-
`.ltext-removed{fill:${palette.removedText}}`,
|
|
74
|
-
`.cardsh{filter:drop-shadow(0 1px 2px ${palette.shadow})}`,
|
|
75
|
-
`.lifeline{stroke:${palette.lifeline};stroke-width:1;stroke-dasharray:3 4}`,
|
|
76
|
-
`.actbar{fill:${palette.addedFill};stroke:${palette.addedBorder}}`,
|
|
77
|
-
`.msg{fill:none;stroke-width:1.5}`,
|
|
78
|
-
`.msg-return{stroke-dasharray:4 3;opacity:.8}`,
|
|
79
|
-
`.msg-strong{stroke-width:2.25}`,
|
|
80
|
-
].join("");
|
|
81
34
|
/**
|
|
82
35
|
* Two arrowhead forms per tone, the classic sequence-diagram pair: a filled
|
|
83
36
|
* head for a message the sender waits on, an open line-form head for one it
|
|
@@ -125,10 +78,10 @@ export const svgDocument = (input) => {
|
|
|
125
78
|
const defs = wrap("defs", {}, wrap("pattern", { id: "dots", width: DOT_PITCH, height: DOT_PITCH, patternUnits: "userSpaceOnUse" }, tag("circle", { cx: 1.5, cy: 1.5, r: 1, fill: palette.dot })) + markers(palette));
|
|
126
79
|
return lines([
|
|
127
80
|
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${coord(width)} ${coord(height)}" ` +
|
|
128
|
-
`width="${coord(width)}" height="${coord(height)}" role="img" aria-label="${escapeXml(title)}"
|
|
81
|
+
`width="${coord(width)}" height="${coord(height)}" role="img" aria-label="${escapeXml(title)}" ` +
|
|
82
|
+
`font-family="${escapeXml(SANS_STACK)}">`,
|
|
129
83
|
wrap("title", {}, escapeXml(title)),
|
|
130
84
|
description === undefined ? "" : wrap("desc", {}, escapeXml(description)),
|
|
131
|
-
wrap("style", {}, stylesheet(palette)),
|
|
132
85
|
defs,
|
|
133
86
|
tag("rect", { x: 0, y: 0, width: coord(width), height: coord(height), rx: 12, fill: palette.background }),
|
|
134
87
|
tag("rect", { x: 0, y: 0, width: coord(width), height: coord(height), rx: 12, fill: "url(#dots)" }),
|
package/dist/svg/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/svg/document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/svg/document.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAS9D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAY,EAAQ,EAAE;IAC5C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,WAAW,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,IAAU,EAAU,EAAE;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB;YACE,OAAO,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAoC,CAAC;AAE7F;;;;;GAKG;AACH,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAU,EAAE,CAC3C,KAAK,CAAC,GAAG,CACP,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CACF,QAAQ,EACR;IACE,EAAE,EAAE,MAAM,IAAI,EAAE;IAChB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,oBAAoB;CAC7B,EACD,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAC1E;IACD,IAAI,CACF,QAAQ,EACR;QACE,EAAE,EAAE,OAAO,IAAI,EAAE;QACjB,OAAO,EAAE,WAAW;QACpB,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,CAAC;QACP,WAAW,EAAE,GAAG;QAChB,YAAY,EAAE,GAAG;QACjB,MAAM,EAAE,oBAAoB;KAC7B,EACD,GAAG,CAAC,MAAM,EAAE;QACV,CAAC,EAAE,iBAAiB;QACpB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;QACjC,cAAc,EAAE,GAAG;QACnB,gBAAgB,EAAE,OAAO;QACzB,iBAAiB,EAAE,OAAO;KAC3B,CAAC,CACH,CACJ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,WAAW,IAAI,GAAG,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,YAAY,IAAI,GAAG,CAAC;AAEzE,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAO3B,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEnE,MAAM,IAAI,GAAG,IAAI,CACf,MAAM,EACN,EAAE,EACF,IAAI,CACF,SAAS,EACT,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,EACnF,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAC7D,GAAG,OAAO,CAAC,OAAO,CAAC,CACrB,CAAC;IAEF,OAAO,KAAK,CAAC;QACX,wDAAwD,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI;YACvF,UAAU,KAAK,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,4BAA4B,SAAS,CAAC,KAAK,CAAC,IAAI;YAChG,gBAAgB,SAAS,CAAC,UAAU,CAAC,IAAI;QAC3C,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI;QACJ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QACzG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACnG,IAAI;QACJ,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE,CAC9D,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;IACxC,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC"}
|
package/dist/svg/icons.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { NodeKind } from "@coldtea/pr-lens-schema";
|
|
2
|
-
|
|
2
|
+
import type { SvgStyles } from "./styles.js";
|
|
3
|
+
export declare const glyphGroup: (kind: NodeKind, cx: number, cy: number, styles: SvgStyles) => string;
|
|
3
4
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/svg/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8H7C,eAAO,MAAM,UAAU,SAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MACvC,CAAC"}
|
package/dist/svg/icons.js
CHANGED
|
@@ -2,22 +2,13 @@ import { assertNever } from "@coldtea/pr-lens-schema";
|
|
|
2
2
|
import { coord } from "../geometry.js";
|
|
3
3
|
import { MONO_STACK } from "../text.js";
|
|
4
4
|
import { lines, tag, textNode, wrap } from "./primitives.js";
|
|
5
|
-
const
|
|
6
|
-
const glyphText = (cx, cy, content, style) => textNode({
|
|
5
|
+
const glyphText = (cx, cy, content, attributes) => textNode({
|
|
7
6
|
class: "glyph",
|
|
8
7
|
x: coord(cx),
|
|
9
8
|
y: coord(cy + 4.5),
|
|
10
9
|
"text-anchor": "middle",
|
|
11
|
-
|
|
10
|
+
...attributes,
|
|
12
11
|
}, content);
|
|
13
|
-
const box = (cx, cy, width, height, radius) => tag("rect", {
|
|
14
|
-
class: "glyph-stroke",
|
|
15
|
-
x: coord(cx - width / 2),
|
|
16
|
-
y: coord(cy - height / 2),
|
|
17
|
-
width: coord(width),
|
|
18
|
-
height: coord(height),
|
|
19
|
-
rx: radius === undefined ? undefined : coord(radius),
|
|
20
|
-
});
|
|
21
12
|
/**
|
|
22
13
|
* The chip glyph for a node's kind, centred on a point.
|
|
23
14
|
*
|
|
@@ -25,12 +16,22 @@ const box = (cx, cy, width, height, radius) => tag("rect", {
|
|
|
25
16
|
* is why the kind enum is coarse. Every kind draws something: a card with an
|
|
26
17
|
* empty chip reads as a rendering fault rather than as an unknown kind.
|
|
27
18
|
*/
|
|
28
|
-
const kindGlyph = (kind, cx, cy) => {
|
|
19
|
+
const kindGlyph = (kind, cx, cy, styles) => {
|
|
20
|
+
const stroked = (path) => tag("path", { class: "glyph-stroke", d: path, ...styles.glyphStroke });
|
|
21
|
+
const box = (cx, cy, width, height, radius) => tag("rect", {
|
|
22
|
+
class: "glyph-stroke",
|
|
23
|
+
x: coord(cx - width / 2),
|
|
24
|
+
y: coord(cy - height / 2),
|
|
25
|
+
width: coord(width),
|
|
26
|
+
height: coord(height),
|
|
27
|
+
rx: radius === undefined ? undefined : coord(radius),
|
|
28
|
+
...styles.glyphStroke,
|
|
29
|
+
});
|
|
29
30
|
switch (kind) {
|
|
30
31
|
case "service":
|
|
31
32
|
return lines([
|
|
32
33
|
box(cx, cy, 13, 13, 3),
|
|
33
|
-
tag("circle", { class: "glyph", cx: coord(cx), cy: coord(cy), r: 2 }),
|
|
34
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx), cy: coord(cy), r: 2 }),
|
|
34
35
|
]);
|
|
35
36
|
case "app":
|
|
36
37
|
return lines([
|
|
@@ -38,17 +39,23 @@ const kindGlyph = (kind, cx, cy) => {
|
|
|
38
39
|
stroked(`M${coord(cx - 7)},${coord(cy - 2)} h14`),
|
|
39
40
|
]);
|
|
40
41
|
case "module":
|
|
41
|
-
return glyphText(cx, cy, "{ }",
|
|
42
|
+
return glyphText(cx, cy, "{ }", { ...styles.glyph, "font-size": 11, "font-family": MONO_STACK });
|
|
42
43
|
case "function":
|
|
43
|
-
return glyphText(cx, cy, "ƒ",
|
|
44
|
+
return glyphText(cx, cy, "ƒ", {
|
|
45
|
+
...styles.glyph,
|
|
46
|
+
"font-size": 14,
|
|
47
|
+
"font-style": "italic",
|
|
48
|
+
"font-family": "Georgia,serif",
|
|
49
|
+
});
|
|
44
50
|
case "route":
|
|
45
51
|
return tag("path", {
|
|
46
52
|
class: "glyph",
|
|
53
|
+
...styles.glyph,
|
|
47
54
|
d: `M${coord(cx - 7)},${coord(cy - 6)} L${coord(cx + 7)},${coord(cy)} L${coord(cx - 7)},${coord(cy + 6)} Z`,
|
|
48
55
|
});
|
|
49
56
|
case "job":
|
|
50
57
|
return lines([
|
|
51
|
-
tag("circle", { class: "glyph-stroke", cx: coord(cx), cy: coord(cy), r: 6.5 }),
|
|
58
|
+
tag("circle", { class: "glyph-stroke", ...styles.glyphStroke, cx: coord(cx), cy: coord(cy), r: 6.5 }),
|
|
52
59
|
stroked(`M${coord(cx)},${coord(cy - 3.5)} V${coord(cy)} H${coord(cx + 3)}`),
|
|
53
60
|
]);
|
|
54
61
|
case "queue":
|
|
@@ -59,12 +66,13 @@ const kindGlyph = (kind, cx, cy) => {
|
|
|
59
66
|
]);
|
|
60
67
|
case "datastore":
|
|
61
68
|
return lines([
|
|
62
|
-
tag("ellipse", { class: "glyph-stroke", cx: coord(cx), cy: coord(cy - 4.5), rx: 6.5, ry: 2.6 }),
|
|
69
|
+
tag("ellipse", { class: "glyph-stroke", ...styles.glyphStroke, cx: coord(cx), cy: coord(cy - 4.5), rx: 6.5, ry: 2.6 }),
|
|
63
70
|
stroked(`M${coord(cx - 6.5)},${coord(cy - 4.5)} v9 a6.5,2.6 0 0 0 13 0 v-9`),
|
|
64
71
|
]);
|
|
65
72
|
case "cache":
|
|
66
73
|
return tag("path", {
|
|
67
74
|
class: "glyph",
|
|
75
|
+
...styles.glyph,
|
|
68
76
|
d: `M${coord(cx + 1)},${coord(cy - 7)} L${coord(cx - 6)},${coord(cy + 1)} H${coord(cx - 1)} L${coord(cx - 1)},${coord(cy + 7)} L${coord(cx + 6)},${coord(cy - 1)} H${coord(cx + 1)} Z`,
|
|
69
77
|
});
|
|
70
78
|
case "external":
|
|
@@ -81,8 +89,8 @@ const kindGlyph = (kind, cx, cy) => {
|
|
|
81
89
|
return lines([
|
|
82
90
|
stroked(`M${coord(cx - 7)},${coord(cy - 4)} h14`),
|
|
83
91
|
stroked(`M${coord(cx - 7)},${coord(cy + 4)} h14`),
|
|
84
|
-
tag("circle", { class: "glyph", cx: coord(cx - 2), cy: coord(cy - 4), r: 2.2 }),
|
|
85
|
-
tag("circle", { class: "glyph", cx: coord(cx + 3), cy: coord(cy + 4), r: 2.2 }),
|
|
92
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx - 2), cy: coord(cy - 4), r: 2.2 }),
|
|
93
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx + 3), cy: coord(cy + 4), r: 2.2 }),
|
|
86
94
|
]);
|
|
87
95
|
case "test":
|
|
88
96
|
return stroked(`M${coord(cx - 6)},${coord(cy)} l4,4 l8,-8`);
|
|
@@ -94,13 +102,13 @@ const kindGlyph = (kind, cx, cy) => {
|
|
|
94
102
|
]);
|
|
95
103
|
case "other":
|
|
96
104
|
return lines([
|
|
97
|
-
tag("circle", { class: "glyph", cx: coord(cx - 5), cy: coord(cy), r: 1.8 }),
|
|
98
|
-
tag("circle", { class: "glyph", cx: coord(cx), cy: coord(cy), r: 1.8 }),
|
|
99
|
-
tag("circle", { class: "glyph", cx: coord(cx + 5), cy: coord(cy), r: 1.8 }),
|
|
105
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx - 5), cy: coord(cy), r: 1.8 }),
|
|
106
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx), cy: coord(cy), r: 1.8 }),
|
|
107
|
+
tag("circle", { class: "glyph", ...styles.glyph, cx: coord(cx + 5), cy: coord(cy), r: 1.8 }),
|
|
100
108
|
]);
|
|
101
109
|
default:
|
|
102
110
|
return assertNever(kind, "Unhandled node kind");
|
|
103
111
|
}
|
|
104
112
|
};
|
|
105
|
-
export const glyphGroup = (kind, cx, cy) => wrap("g", {}, kindGlyph(kind, cx, cy));
|
|
113
|
+
export const glyphGroup = (kind, cx, cy, styles) => wrap("g", {}, kindGlyph(kind, cx, cy, styles));
|
|
106
114
|
//# sourceMappingURL=icons.js.map
|
package/dist/svg/icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Delta, FlowMessage, GraphEdge } from "@coldtea/pr-lens-schema";
|
|
2
|
+
import type { Palette } from "../theme.js";
|
|
3
|
+
import type { Attributes } from "./primitives.js";
|
|
4
|
+
import { type Tone } from "./document.js";
|
|
5
|
+
export declare const stylesFor: (palette: Palette) => {
|
|
6
|
+
lane: {
|
|
7
|
+
fill: string;
|
|
8
|
+
};
|
|
9
|
+
laneLabel: {
|
|
10
|
+
"font-size": number;
|
|
11
|
+
"font-weight": number;
|
|
12
|
+
"letter-spacing": string;
|
|
13
|
+
fill: string;
|
|
14
|
+
};
|
|
15
|
+
title: {
|
|
16
|
+
"font-weight": number;
|
|
17
|
+
fill: string;
|
|
18
|
+
};
|
|
19
|
+
subtitle: {
|
|
20
|
+
"font-size": number;
|
|
21
|
+
fill: string;
|
|
22
|
+
"font-family": string;
|
|
23
|
+
};
|
|
24
|
+
chip: {
|
|
25
|
+
fill: string;
|
|
26
|
+
};
|
|
27
|
+
glyph: {
|
|
28
|
+
fill: string;
|
|
29
|
+
};
|
|
30
|
+
glyphStroke: {
|
|
31
|
+
stroke: string;
|
|
32
|
+
"stroke-width": number;
|
|
33
|
+
fill: string;
|
|
34
|
+
};
|
|
35
|
+
badgeText: {
|
|
36
|
+
"font-size": number;
|
|
37
|
+
"font-weight": number;
|
|
38
|
+
"letter-spacing": string;
|
|
39
|
+
};
|
|
40
|
+
glow: {
|
|
41
|
+
fill: string;
|
|
42
|
+
"stroke-width": number;
|
|
43
|
+
opacity: number;
|
|
44
|
+
};
|
|
45
|
+
pill: {
|
|
46
|
+
fill: string;
|
|
47
|
+
stroke: string;
|
|
48
|
+
"stroke-width": number;
|
|
49
|
+
};
|
|
50
|
+
pillText: {
|
|
51
|
+
"font-size": number;
|
|
52
|
+
"font-weight": number;
|
|
53
|
+
};
|
|
54
|
+
lifeline: {
|
|
55
|
+
stroke: string;
|
|
56
|
+
"stroke-width": number;
|
|
57
|
+
"stroke-dasharray": string;
|
|
58
|
+
};
|
|
59
|
+
activation: {
|
|
60
|
+
fill: string;
|
|
61
|
+
stroke: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export type SvgStyles = ReturnType<typeof stylesFor>;
|
|
65
|
+
export declare const cardAttributes: (delta: Delta, palette: Palette) => Attributes;
|
|
66
|
+
export declare const cardGroupAttributes: (delta: Delta, palette: Palette) => Attributes;
|
|
67
|
+
export declare const badgeColours: (tone: Tone, palette: Palette) => {
|
|
68
|
+
fill: string;
|
|
69
|
+
stroke: string;
|
|
70
|
+
text: string;
|
|
71
|
+
};
|
|
72
|
+
export declare const edgeAttributes: (edge: GraphEdge, palette: Palette) => Attributes;
|
|
73
|
+
export declare const messageAttributes: (message: FlowMessage, palette: Palette) => Attributes;
|
|
74
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/D,eAAO,MAAM,SAAS,YAAa,OAAO;;QAChC,IAAI;;;QACC,WAAW;QAAM,aAAa;QAAO,gBAAgB;QAAW,IAAI;;;QACxE,aAAa;QAAO,IAAI;;;;;;;;QAEzB,IAAI;;;QACH,IAAI;;;QACE,MAAM;QAAiB,cAAc;QAAO,IAAI;;;QAClD,WAAW;QAAO,aAAa;QAAO,gBAAgB;;;QAC3D,IAAI;QAAU,cAAc;QAAK,OAAO;;;QACxC,IAAI;QAAgB,MAAM;QAAsB,cAAc;;;QAC1D,WAAW;QAAO,aAAa;;;QAC/B,MAAM;QAAoB,cAAc;QAAK,kBAAkB;;;QAC7D,IAAI;QAAqB,MAAM;;CAC7C,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAiBrD,eAAO,MAAM,cAAc,UAAW,KAAK,WAAW,OAAO,KAAG,UAI9D,CAAC;AAgBH,eAAO,MAAM,mBAAmB,UAAW,KAAK,WAAW,OAAO,KAAG,UAGnE,CAAC;AAEH,eAAO,MAAM,YAAY,SAAU,IAAI,WAAW,OAAO;;;;CAaxD,CAAC;AAUF,eAAO,MAAM,cAAc,SAAU,SAAS,WAAW,OAAO,KAAG,UAelE,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,WAAW,WAAW,OAAO,KAAG,UAe1E,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
2
|
+
import { MONO_STACK } from "../text.js";
|
|
3
|
+
import { toneColour, toneFor } from "./document.js";
|
|
4
|
+
// GitHub's attachment viewer can ignore CSS, so appearance lives on the elements.
|
|
5
|
+
export const stylesFor = (palette) => ({
|
|
6
|
+
lane: { fill: palette.lane },
|
|
7
|
+
laneLabel: { "font-size": 10, "font-weight": 700, "letter-spacing": ".12em", fill: palette.muted },
|
|
8
|
+
title: { "font-weight": 600, fill: palette.foreground },
|
|
9
|
+
subtitle: { "font-size": 9.5, fill: palette.muted, "font-family": MONO_STACK },
|
|
10
|
+
chip: { fill: palette.chip },
|
|
11
|
+
glyph: { fill: palette.muted },
|
|
12
|
+
glyphStroke: { stroke: palette.muted, "stroke-width": 1.4, fill: "none" },
|
|
13
|
+
badgeText: { "font-size": 8.5, "font-weight": 700, "letter-spacing": ".06em" },
|
|
14
|
+
glow: { fill: "none", "stroke-width": 7, opacity: 0.14 },
|
|
15
|
+
pill: { fill: palette.pill, stroke: palette.pillBorder, "stroke-width": 1 },
|
|
16
|
+
pillText: { "font-size": 9.5, "font-weight": 600 },
|
|
17
|
+
lifeline: { stroke: palette.lifeline, "stroke-width": 1, "stroke-dasharray": "3 4" },
|
|
18
|
+
activation: { fill: palette.addedFill, stroke: palette.addedBorder },
|
|
19
|
+
});
|
|
20
|
+
const cardStroke = (delta, palette) => {
|
|
21
|
+
switch (delta) {
|
|
22
|
+
case "added":
|
|
23
|
+
return { stroke: palette.added, "stroke-opacity": 0.55 };
|
|
24
|
+
case "modified":
|
|
25
|
+
return { stroke: palette.modified, "stroke-opacity": 0.5 };
|
|
26
|
+
case "removed":
|
|
27
|
+
return { stroke: palette.removed, "stroke-dasharray": "4 3", "stroke-opacity": 0.6 };
|
|
28
|
+
case "unchanged":
|
|
29
|
+
return { stroke: palette.cardBorder };
|
|
30
|
+
default:
|
|
31
|
+
return assertNever(delta);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
export const cardAttributes = (delta, palette) => ({
|
|
35
|
+
fill: palette.card,
|
|
36
|
+
"stroke-width": 1,
|
|
37
|
+
...cardStroke(delta, palette),
|
|
38
|
+
});
|
|
39
|
+
const cardOpacity = (delta) => {
|
|
40
|
+
switch (delta) {
|
|
41
|
+
case "removed":
|
|
42
|
+
return 0.55;
|
|
43
|
+
case "unchanged":
|
|
44
|
+
return 0.82;
|
|
45
|
+
case "added":
|
|
46
|
+
case "modified":
|
|
47
|
+
return undefined;
|
|
48
|
+
default:
|
|
49
|
+
return assertNever(delta);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
export const cardGroupAttributes = (delta, palette) => ({
|
|
53
|
+
filter: `drop-shadow(0 1px 2px ${palette.shadow})`,
|
|
54
|
+
opacity: cardOpacity(delta),
|
|
55
|
+
});
|
|
56
|
+
export const badgeColours = (tone, palette) => {
|
|
57
|
+
switch (tone) {
|
|
58
|
+
case "added":
|
|
59
|
+
return { fill: palette.addedFill, stroke: palette.addedBorder, text: palette.addedText };
|
|
60
|
+
case "modified":
|
|
61
|
+
return { fill: palette.modifiedFill, stroke: palette.modifiedBorder, text: palette.modifiedText };
|
|
62
|
+
case "removed":
|
|
63
|
+
return { fill: palette.removedFill, stroke: palette.removedBorder, text: palette.removedText };
|
|
64
|
+
case "neutral":
|
|
65
|
+
return { fill: palette.neutralFill, stroke: palette.cardBorder, text: palette.muted };
|
|
66
|
+
default:
|
|
67
|
+
return assertNever(tone);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const strokeAttributes = (delta, palette) => ({
|
|
71
|
+
fill: "none",
|
|
72
|
+
stroke: toneColour(palette, toneFor(delta)),
|
|
73
|
+
"stroke-width": 1.5,
|
|
74
|
+
"stroke-dasharray": delta === "removed" ? "5 4" : undefined,
|
|
75
|
+
opacity: delta === "removed" ? 0.7 : undefined,
|
|
76
|
+
});
|
|
77
|
+
export const edgeAttributes = (edge, palette) => {
|
|
78
|
+
const attributes = {
|
|
79
|
+
...strokeAttributes(edge.delta, palette),
|
|
80
|
+
...(edge.delta === "unchanged" ? { opacity: 0.82 } : {}),
|
|
81
|
+
};
|
|
82
|
+
switch (edge.emphasis) {
|
|
83
|
+
case "hero":
|
|
84
|
+
return { ...attributes, "stroke-width": 2.25 };
|
|
85
|
+
case "muted":
|
|
86
|
+
return { ...attributes, opacity: 0.45 };
|
|
87
|
+
case "normal":
|
|
88
|
+
return attributes;
|
|
89
|
+
default:
|
|
90
|
+
return assertNever(edge.emphasis);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
export const messageAttributes = (message, palette) => {
|
|
94
|
+
const attributes = {
|
|
95
|
+
...strokeAttributes(message.delta, palette),
|
|
96
|
+
"stroke-width": message.delta === "added" ? 2.25 : 1.5,
|
|
97
|
+
};
|
|
98
|
+
switch (message.kind) {
|
|
99
|
+
case "return":
|
|
100
|
+
return { ...attributes, "stroke-dasharray": "4 3", opacity: 0.8 };
|
|
101
|
+
case "sync":
|
|
102
|
+
case "async":
|
|
103
|
+
case "self":
|
|
104
|
+
return attributes;
|
|
105
|
+
default:
|
|
106
|
+
return assertNever(message.kind);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"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"}
|
package/dist/text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEjD,eAAO,MAAM,UAAU,iGACqE,CAAC;AAC7F,eAAO,MAAM,UAAU,0EACgD,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEjD,eAAO,MAAM,UAAU,iGACqE,CAAC;AAC7F,eAAO,MAAM,UAAU,0EACgD,CAAC;AAkExE,6EAA6E;AAC7E,eAAO,MAAM,OAAO,SAAU,MAAM,QAAQ,IAAI,YAAY,MAAM,KAAG,MAIpE,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SACb,MAAM,QACN,IAAI,YACA,MAAM,YACN,MAAM,KACf,MAiBF,CAAC"}
|
package/dist/text.js
CHANGED
|
@@ -15,8 +15,26 @@ const SANS_ADVANCE = {
|
|
|
15
15
|
o: 556, p: 556, q: 556, r: 333, s: 500, t: 278, u: 556, v: 500, w: 722, x: 500,
|
|
16
16
|
y: 500, z: 500, "{": 334, "|": 260, "}": 334, "~": 584,
|
|
17
17
|
};
|
|
18
|
-
/** What a character outside the table is assumed to cost, in the same units. */
|
|
18
|
+
/** What a narrow character outside the table is assumed to cost, in the same units. */
|
|
19
19
|
const FALLBACK_ADVANCE = 600;
|
|
20
|
+
/**
|
|
21
|
+
* East Asian Wide and Fullwidth glyphs occupy a full em. Measuring them at
|
|
22
|
+
* the narrow fallback puts every CJK label about 38% short of its real width,
|
|
23
|
+
* which is enough for an edge label's plate to stop covering its own text.
|
|
24
|
+
*/
|
|
25
|
+
const isWide = (character) => {
|
|
26
|
+
const point = character.codePointAt(0) ?? 0;
|
|
27
|
+
return ((point >= 0x1100 && point <= 0x115f) ||
|
|
28
|
+
(point >= 0x2e80 && point <= 0xa4cf) ||
|
|
29
|
+
(point >= 0xac00 && point <= 0xd7a3) ||
|
|
30
|
+
(point >= 0xf900 && point <= 0xfaff) ||
|
|
31
|
+
(point >= 0xfe30 && point <= 0xfe6f) ||
|
|
32
|
+
(point >= 0xff00 && point <= 0xff60) ||
|
|
33
|
+
(point >= 0xffe0 && point <= 0xffe6) ||
|
|
34
|
+
(point >= 0x20000 && point <= 0x3fffd));
|
|
35
|
+
};
|
|
36
|
+
const FULL_WIDTH_ADVANCE = 1000;
|
|
37
|
+
const fallbackAdvance = (character) => isWide(character) ? FULL_WIDTH_ADVANCE : FALLBACK_ADVANCE;
|
|
20
38
|
/**
|
|
21
39
|
* The bold face of the same family runs a little wider at every weight step.
|
|
22
40
|
* One factor over the regular table is close enough for boxes that already
|
|
@@ -27,9 +45,9 @@ const MONO_ADVANCE = 600;
|
|
|
27
45
|
const advanceFor = (face, character) => {
|
|
28
46
|
switch (face) {
|
|
29
47
|
case "sans":
|
|
30
|
-
return SANS_ADVANCE[character] ??
|
|
48
|
+
return SANS_ADVANCE[character] ?? fallbackAdvance(character);
|
|
31
49
|
case "sans-bold":
|
|
32
|
-
return (SANS_ADVANCE[character] ??
|
|
50
|
+
return (SANS_ADVANCE[character] ?? fallbackAdvance(character)) * BOLD_WIDENING;
|
|
33
51
|
case "mono":
|
|
34
52
|
return MONO_ADVANCE;
|
|
35
53
|
default:
|
package/dist/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAUtD,MAAM,CAAC,MAAM,UAAU,GACrB,0FAA0F,CAAC;AAC7F,MAAM,CAAC,MAAM,UAAU,GACrB,qEAAqE,CAAC;AAExE,sEAAsE;AACtE,MAAM,YAAY,GAAqC;IACrD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC5E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9E,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IACzE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9E,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACxE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC/E,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9E,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9E,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACvD,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -60,10 +60,18 @@ const trackedWidth = (
|
|
|
60
60
|
export const badgeWidth = (text: string): number =>
|
|
61
61
|
trackedWidth(text, "sans-bold", BADGE_TEXT_SIZE, BADGE_TRACKING) + BADGE_PADDING_X * 2;
|
|
62
62
|
|
|
63
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Every badge a card carries, its own first and the delta badge last.
|
|
65
|
+
*
|
|
66
|
+
* A producer badge that already says the same thing as the delta badge
|
|
67
|
+
* (e.g. "new" on a node whose delta is "added") is dropped so the card
|
|
68
|
+
* does not show it twice.
|
|
69
|
+
*/
|
|
64
70
|
export const cardBadges = (node: GraphNode): string[] => {
|
|
65
71
|
const delta = deltaBadgeText(node.delta);
|
|
66
|
-
|
|
72
|
+
if (delta === undefined) return [...node.badges];
|
|
73
|
+
const own = node.badges.filter((text) => text.toLowerCase() !== delta.toLowerCase());
|
|
74
|
+
return [...own, delta];
|
|
67
75
|
};
|
|
68
76
|
|
|
69
77
|
export type PlacedNode = {
|