@coldtea/pr-lens-renderer 0.2.2 → 0.2.3
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/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/text.ts +27 -3
- package/src/version.ts +1 -1
|
@@ -3,7 +3,13 @@ import type { Box } from "../geometry.js";
|
|
|
3
3
|
import type { ScopedGraph } from "../scope.js";
|
|
4
4
|
export declare const deltaBadgeText: (delta: Delta) => string | undefined;
|
|
5
5
|
export declare const badgeWidth: (text: string) => number;
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Every badge a card carries, its own first and the delta badge last.
|
|
8
|
+
*
|
|
9
|
+
* A producer badge that already says the same thing as the delta badge
|
|
10
|
+
* (e.g. "new" on a node whose delta is "added") is dropped so the card
|
|
11
|
+
* does not show it twice.
|
|
12
|
+
*/
|
|
7
13
|
export declare const cardBadges: (node: GraphNode) => string[];
|
|
8
14
|
export type PlacedNode = {
|
|
9
15
|
node: GraphNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+BnF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,eAAO,MAAM,cAAc,UAAW,KAAK,KAAG,MAAM,GAAG,SAatD,CAAC;AAUF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC8C,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+BnF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,eAAO,MAAM,cAAc,UAAW,KAAK,KAAG,MAAM,GAAG,SAatD,CAAC;AAUF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC8C,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,SAAU,SAAS,KAAG,MAAM,EAKlD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,WAAY,UAAU,KAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG,SAyB9E,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAkDF;;;;GAIG;AACH,eAAO,MAAM,aAAa,cAAe,MAAM,YAAY,OAAO,KAAG,MACa,CAAC;AAgBnF,eAAO,MAAM,kBAAkB,UACtB,WAAW,SACX,WAAW,GAAG,SAAS,eACjB,aAAa,KACzB,kBAiGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAM3C,CAAC"}
|
|
@@ -19,10 +19,19 @@ export const deltaBadgeText = (delta) => {
|
|
|
19
19
|
/** Width of tracked text: letter-spacing adds a fixed step after every glyph. */
|
|
20
20
|
const trackedWidth = (text, face, fontSize, tracking) => measure(text, face, fontSize) + [...text].length * tracking * fontSize;
|
|
21
21
|
export const badgeWidth = (text) => trackedWidth(text, "sans-bold", BADGE_TEXT_SIZE, BADGE_TRACKING) + BADGE_PADDING_X * 2;
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Every badge a card carries, its own first and the delta badge last.
|
|
24
|
+
*
|
|
25
|
+
* A producer badge that already says the same thing as the delta badge
|
|
26
|
+
* (e.g. "new" on a node whose delta is "added") is dropped so the card
|
|
27
|
+
* does not show it twice.
|
|
28
|
+
*/
|
|
23
29
|
export const cardBadges = (node) => {
|
|
24
30
|
const delta = deltaBadgeText(node.delta);
|
|
25
|
-
|
|
31
|
+
if (delta === undefined)
|
|
32
|
+
return [...node.badges];
|
|
33
|
+
const own = node.badges.filter((text) => text.toLowerCase() !== delta.toLowerCase());
|
|
34
|
+
return [...own, delta];
|
|
26
35
|
};
|
|
27
36
|
/**
|
|
28
37
|
* The badges a card actually shows and the strip they occupy above it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,OAAO,EAAa,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAsB,EAAE;IACjE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,UAAU;YACb,OAAO,SAAS,CAAC;QACnB,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,iFAAiF;AACjF,MAAM,YAAY,GAAG,CACnB,IAAY,EACZ,IAAU,EACV,QAAgB,EAChB,QAAgB,EACR,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/layout/architecture.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 = {
|
package/src/text.ts
CHANGED
|
@@ -28,9 +28,33 @@ const SANS_ADVANCE: Readonly<Record<string, number>> = {
|
|
|
28
28
|
y: 500, z: 500, "{": 334, "|": 260, "}": 334, "~": 584,
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
/** What a character outside the table is assumed to cost, in the same units. */
|
|
31
|
+
/** What a narrow character outside the table is assumed to cost, in the same units. */
|
|
32
32
|
const FALLBACK_ADVANCE = 600;
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* East Asian Wide and Fullwidth glyphs occupy a full em. Measuring them at
|
|
36
|
+
* the narrow fallback puts every CJK label about 38% short of its real width,
|
|
37
|
+
* which is enough for an edge label's plate to stop covering its own text.
|
|
38
|
+
*/
|
|
39
|
+
const isWide = (character: string): boolean => {
|
|
40
|
+
const point = character.codePointAt(0) ?? 0;
|
|
41
|
+
return (
|
|
42
|
+
(point >= 0x1100 && point <= 0x115f) ||
|
|
43
|
+
(point >= 0x2e80 && point <= 0xa4cf) ||
|
|
44
|
+
(point >= 0xac00 && point <= 0xd7a3) ||
|
|
45
|
+
(point >= 0xf900 && point <= 0xfaff) ||
|
|
46
|
+
(point >= 0xfe30 && point <= 0xfe6f) ||
|
|
47
|
+
(point >= 0xff00 && point <= 0xff60) ||
|
|
48
|
+
(point >= 0xffe0 && point <= 0xffe6) ||
|
|
49
|
+
(point >= 0x20000 && point <= 0x3fffd)
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const FULL_WIDTH_ADVANCE = 1000;
|
|
54
|
+
|
|
55
|
+
const fallbackAdvance = (character: string): number =>
|
|
56
|
+
isWide(character) ? FULL_WIDTH_ADVANCE : FALLBACK_ADVANCE;
|
|
57
|
+
|
|
34
58
|
/**
|
|
35
59
|
* The bold face of the same family runs a little wider at every weight step.
|
|
36
60
|
* One factor over the regular table is close enough for boxes that already
|
|
@@ -43,9 +67,9 @@ const MONO_ADVANCE = 600;
|
|
|
43
67
|
const advanceFor = (face: Face, character: string): number => {
|
|
44
68
|
switch (face) {
|
|
45
69
|
case "sans":
|
|
46
|
-
return SANS_ADVANCE[character] ??
|
|
70
|
+
return SANS_ADVANCE[character] ?? fallbackAdvance(character);
|
|
47
71
|
case "sans-bold":
|
|
48
|
-
return (SANS_ADVANCE[character] ??
|
|
72
|
+
return (SANS_ADVANCE[character] ?? fallbackAdvance(character)) * BOLD_WIDENING;
|
|
49
73
|
case "mono":
|
|
50
74
|
return MONO_ADVANCE;
|
|
51
75
|
default:
|
package/src/version.ts
CHANGED