postext 1.33.2 → 1.33.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.
Files changed (122) hide show
  1. package/dist/__tests__/linearScans.test.d.ts +2 -0
  2. package/dist/__tests__/linearScans.test.d.ts.map +1 -0
  3. package/dist/__tests__/linearScans.test.js +112 -0
  4. package/dist/__tests__/linearScans.test.js.map +1 -0
  5. package/dist/__tests__/pipeline/refLabelBreaks.test.js +1 -1
  6. package/dist/__tests__/pipeline/refLabelBreaks.test.js.map +1 -1
  7. package/dist/__tests__/svgFonts.test.js +1 -1
  8. package/dist/__tests__/svgFonts.test.js.map +1 -1
  9. package/dist/bundle/api.d.ts.map +1 -1
  10. package/dist/bundle/api.js +51 -5
  11. package/dist/bundle/api.js.map +1 -1
  12. package/dist/bundle/configVersion.d.ts.map +1 -1
  13. package/dist/bundle/configVersion.js +12 -4
  14. package/dist/bundle/configVersion.js.map +1 -1
  15. package/dist/bundle/manifest.d.ts.map +1 -1
  16. package/dist/bundle/manifest.js +52 -5
  17. package/dist/bundle/manifest.js.map +1 -1
  18. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  19. package/dist/canvas-backend/blockRender.js +2 -1
  20. package/dist/canvas-backend/blockRender.js.map +1 -1
  21. package/dist/canvas-backend/verticalText.d.ts.map +1 -1
  22. package/dist/canvas-backend/verticalText.js +8 -3
  23. package/dist/canvas-backend/verticalText.js.map +1 -1
  24. package/dist/citations/bibtex.d.ts.map +1 -1
  25. package/dist/citations/bibtex.js +31 -10
  26. package/dist/citations/bibtex.js.map +1 -1
  27. package/dist/code/highlight.js +62 -12
  28. package/dist/code/highlight.js.map +1 -1
  29. package/dist/comics/layoutPage.d.ts.map +1 -1
  30. package/dist/comics/layoutPage.js +2 -1
  31. package/dist/comics/layoutPage.js.map +1 -1
  32. package/dist/comics/page.js +1 -1
  33. package/dist/comics/paint.d.ts.map +1 -1
  34. package/dist/comics/paint.js +3 -1
  35. package/dist/comics/paint.js.map +1 -1
  36. package/dist/comics/script.d.ts.map +1 -1
  37. package/dist/comics/script.js +5 -2
  38. package/dist/comics/script.js.map +1 -1
  39. package/dist/comics/split.d.ts.map +1 -1
  40. package/dist/comics/split.js +3 -1
  41. package/dist/comics/split.js.map +1 -1
  42. package/dist/comics/strip.d.ts.map +1 -1
  43. package/dist/comics/strip.js +3 -2
  44. package/dist/comics/strip.js.map +1 -1
  45. package/dist/contrast.js +3 -3
  46. package/dist/contrast.js.map +1 -1
  47. package/dist/design/layout.js +2 -2
  48. package/dist/design/layout.js.map +1 -1
  49. package/dist/frontmatter.d.ts.map +1 -1
  50. package/dist/frontmatter.js +9 -9
  51. package/dist/frontmatter.js.map +1 -1
  52. package/dist/html-backend.d.ts.map +1 -1
  53. package/dist/html-backend.js +55 -4
  54. package/dist/html-backend.js.map +1 -1
  55. package/dist/looseLines.d.ts.map +1 -1
  56. package/dist/looseLines.js +2 -2
  57. package/dist/looseLines.js.map +1 -1
  58. package/dist/measure/breakRules.d.ts.map +1 -1
  59. package/dist/measure/breakRules.js +3 -2
  60. package/dist/measure/breakRules.js.map +1 -1
  61. package/dist/measure/cjkAnnotate.d.ts.map +1 -1
  62. package/dist/measure/cjkAnnotate.js +3 -2
  63. package/dist/measure/cjkAnnotate.js.map +1 -1
  64. package/dist/measure/cjkCompose.d.ts.map +1 -1
  65. package/dist/measure/cjkCompose.js +5 -5
  66. package/dist/measure/cjkCompose.js.map +1 -1
  67. package/dist/measure/font.d.ts.map +1 -1
  68. package/dist/measure/font.js +2 -1
  69. package/dist/measure/font.js.map +1 -1
  70. package/dist/measure/fontString.d.ts +29 -0
  71. package/dist/measure/fontString.d.ts.map +1 -1
  72. package/dist/measure/fontString.js +156 -7
  73. package/dist/measure/fontString.js.map +1 -1
  74. package/dist/measure/rich.d.ts.map +1 -1
  75. package/dist/measure/rich.js +12 -14
  76. package/dist/measure/rich.js.map +1 -1
  77. package/dist/measure/vertical.d.ts.map +1 -1
  78. package/dist/measure/vertical.js +5 -5
  79. package/dist/measure/vertical.js.map +1 -1
  80. package/dist/parse/citations.d.ts.map +1 -1
  81. package/dist/parse/citations.js +5 -1
  82. package/dist/parse/citations.js.map +1 -1
  83. package/dist/parse/equationLabels.d.ts +11 -3
  84. package/dist/parse/equationLabels.d.ts.map +1 -1
  85. package/dist/parse/equationLabels.js +26 -17
  86. package/dist/parse/equationLabels.js.map +1 -1
  87. package/dist/parse/inlineFormatting.d.ts +26 -0
  88. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  89. package/dist/parse/inlineFormatting.js +216 -49
  90. package/dist/parse/inlineFormatting.js.map +1 -1
  91. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  92. package/dist/pipeline/contentWarnings.js +4 -5
  93. package/dist/pipeline/contentWarnings.js.map +1 -1
  94. package/dist/pipeline/crossRefs.d.ts.map +1 -1
  95. package/dist/pipeline/crossRefs.js +9 -1
  96. package/dist/pipeline/crossRefs.js.map +1 -1
  97. package/dist/pipeline/headerFooter.js +3 -3
  98. package/dist/pipeline/headerFooter.js.map +1 -1
  99. package/dist/pipeline/parts.d.ts.map +1 -1
  100. package/dist/pipeline/parts.js +13 -1
  101. package/dist/pipeline/parts.js.map +1 -1
  102. package/dist/pipeline/placeholders.js +4 -4
  103. package/dist/pipeline/placeholders.js.map +1 -1
  104. package/dist/pipeline/statementNumbering.d.ts.map +1 -1
  105. package/dist/pipeline/statementNumbering.js +6 -13
  106. package/dist/pipeline/statementNumbering.js.map +1 -1
  107. package/dist/preflight.d.ts.map +1 -1
  108. package/dist/preflight.js +3 -2
  109. package/dist/preflight.js.map +1 -1
  110. package/dist/table/model.d.ts.map +1 -1
  111. package/dist/table/model.js +13 -3
  112. package/dist/table/model.js.map +1 -1
  113. package/dist/word/inline.d.ts.map +1 -1
  114. package/dist/word/inline.js +26 -4
  115. package/dist/word/inline.js.map +1 -1
  116. package/dist/word/template.d.ts.map +1 -1
  117. package/dist/word/template.js +61 -4
  118. package/dist/word/template.js.map +1 -1
  119. package/dist/word/toDocx.d.ts.map +1 -1
  120. package/dist/word/toDocx.js +54 -1
  121. package/dist/word/toDocx.js.map +1 -1
  122. package/package.json +1 -1
@@ -83,8 +83,9 @@ export function quoteFamily(fontFamily) {
83
83
  const f = primaryFontFamily(fontFamily).trim();
84
84
  if (/^["'].*["']$/.test(f))
85
85
  return f;
86
+ // A CSS string: a backslash escapes, so it is escaped first.
86
87
  if (/(^|\s)\d/.test(f) || /[^\w\s-]/.test(f))
87
- return `"${f.replace(/"/g, '\\"')}"`;
88
+ return `"${f.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
88
89
  return f;
89
90
  }
90
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"font.js","sourceRoot":"","sources":["../../src/measure/font.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAyB,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGvF;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,UAAkB,EAClB,SAAiB,QAAQ,EACzB,QAAgB,QAAQ;IAExB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;+DAE+D;AAC/D,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAyB,CAAC;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,KAAK;gBAAE,KAAK,GAAG,SAAS,CAAC;QACrC,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACjD,OAAO,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,MAAM,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IACnF,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,KAAwB;IACxE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oEAAoE;IACpE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,UAAU,EAAE,CAAC;IACb,mBAAmB,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA0B;IAC1D,UAAU,EAAE,CAAC;IACb,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"font.js","sourceRoot":"","sources":["../../src/measure/font.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,35 @@ export interface FontFaceRequest {
5
5
  weight: number;
6
6
  style: 'normal' | 'italic';
7
7
  }
8
+ /** A font's `<n>px` size: `font.slice(start, end)` is the whole match and
9
+ * `value` its number. */
10
+ export interface PxSize {
11
+ start: number;
12
+ end: number;
13
+ value: string;
14
+ }
15
+ /**
16
+ * The first `px` size of a CSS font string from `from` on, as
17
+ * `/(\d*\.?\d+)px/` finds it (`/(\d+(?:\.\d+)?)px/` with
18
+ * `leadingDigit`), or null. A scan in one pass: the expression's leading
19
+ * repetition is slow on a long run of digits with no unit after it.
20
+ */
21
+ export declare function findPxSize(font: string, from?: number, leadingDigit?: boolean): PxSize | null;
22
+ /** `font` with its first `px` size (see {@link findPxSize}) set to
23
+ * `sizePx`. */
24
+ export declare function withPxSize(font: string, sizePx: (value: string) => number): string;
25
+ /**
26
+ * A font shorthand split at its size, as
27
+ * `/^(.*?)(\d*\.?\d+)px\s+(.+)$/` splits it (with `lineHeight`,
28
+ * `/^(.*?)(\d*\.?\d+)px(\s*\/\s*[^\s]+)?\s+(.+)$/`): `prefix` the style
29
+ * and weight words before the size (its spaces kept), `family` the family
30
+ * list after it (and after a `/ line-height`). Null when the string has no
31
+ * such size. A scan in one pass, where the expressions backtrack.
32
+ */
33
+ export declare function splitAtFontSize(font: string, lineHeight?: boolean): {
34
+ prefix: string;
35
+ family: string;
36
+ } | null;
8
37
  /** The face a canvas font shorthand names (`'700 37.5px Open Sans'`,
9
38
  * `'italic 400 13px "Source Serif 4"'`), or null when the string has no
10
39
  * `px` size. A string with no weight is 400; `bold` is 700. */
@@ -1 +1 @@
1
- {"version":3,"file":"fontString.d.ts","sourceRoot":"","sources":["../../src/measure/fontString.ts"],"names":[],"mappings":"AAIA;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B;AAsBD;;gEAEgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAepE;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D"}
1
+ {"version":3,"file":"fontString.d.ts","sourceRoot":"","sources":["../../src/measure/fontString.ts"],"names":[],"mappings":"AAIA;yCACyC;AACzC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B;AAoBD;0BAC0B;AAC1B,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAgBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,YAAY,UAAQ,GAAG,MAAM,GAAG,IAAI,CAMtF;AAED;gBACgB;AAChB,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAGlF;AAmBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyB3G;AAiDD;;gEAEgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAgBpE;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D"}
@@ -1,7 +1,155 @@
1
1
  // What a canvas font shorthand asks for (#629): the family, weight and
2
2
  // slant the engine measured a run with, read back from the strings
3
3
  // `buildFontString` writes (`italic 700 12.5px "Optima 105"`).
4
- const SIZE_RE = /(?:^|\s)\d*\.?\d+px(?:\/\S+)?\s+(.+)$/;
4
+ const isDigit = (code) => code >= 48 && code <= 57;
5
+ /** `\s` as a regular expression reads it (`trim` strips the same set). */
6
+ function isSpace(c) {
7
+ return c !== undefined && c !== '' && c.trim() === '';
8
+ }
9
+ /** A line terminator: what a regular expression's `.` never matches. */
10
+ function isLineTerminator(c) {
11
+ return c === '\n' || c === '\r' || c === '\u2028' || c === '\u2029';
12
+ }
13
+ /** The last line terminator of `s`, -1 when it has none. */
14
+ function lastLineTerminator(s) {
15
+ for (let i = s.length - 1; i >= 0; i--)
16
+ if (isLineTerminator(s[i]))
17
+ return i;
18
+ return -1;
19
+ }
20
+ /** Where the number of a `px` at `p` begins, read back from it as far as
21
+ * `from`: `\d*\.?\d+`, or `\d+(?:\.\d+)?` with `leadingDigit`; -1 when
22
+ * no digit stands before the unit. */
23
+ function pxNumberStart(font, p, from, leadingDigit) {
24
+ let s = p;
25
+ while (s > from && isDigit(font.charCodeAt(s - 1)))
26
+ s--;
27
+ if (s === p)
28
+ return -1;
29
+ if (s > from && font[s - 1] === '.' && (!leadingDigit || (s - 1 > from && isDigit(font.charCodeAt(s - 2))))) {
30
+ s--;
31
+ while (s > from && isDigit(font.charCodeAt(s - 1)))
32
+ s--;
33
+ }
34
+ return s;
35
+ }
36
+ /**
37
+ * The first `px` size of a CSS font string from `from` on, as
38
+ * `/(\d*\.?\d+)px/` finds it (`/(\d+(?:\.\d+)?)px/` with
39
+ * `leadingDigit`), or null. A scan in one pass: the expression's leading
40
+ * repetition is slow on a long run of digits with no unit after it.
41
+ */
42
+ export function findPxSize(font, from = 0, leadingDigit = false) {
43
+ for (let p = font.indexOf('px', from); p >= 0; p = font.indexOf('px', p + 1)) {
44
+ const start = pxNumberStart(font, p, from, leadingDigit);
45
+ if (start >= 0)
46
+ return { start, end: p + 2, value: font.slice(start, p) };
47
+ }
48
+ return null;
49
+ }
50
+ /** `font` with its first `px` size (see {@link findPxSize}) set to
51
+ * `sizePx`. */
52
+ export function withPxSize(font, sizePx) {
53
+ const m = findPxSize(font);
54
+ return m ? `${font.slice(0, m.start)}${sizePx(m.value)}px${font.slice(m.end)}` : font;
55
+ }
56
+ /** The `(.+)` of `\s+(.+)$` read from `i`, or undefined: what follows the
57
+ * spaces, or the last space when they end the string; never across a line
58
+ * terminator (`lastBreak`: the string's last one). */
59
+ function spacedTail(s, i, lastBreak) {
60
+ let j = i;
61
+ while (j < s.length && isSpace(s[j]))
62
+ j++;
63
+ const k = j < s.length ? j : j - 1;
64
+ if (k <= i || lastBreak >= k)
65
+ return undefined;
66
+ return s.slice(k);
67
+ }
68
+ /** The end of the run of non-spaces at `i`. */
69
+ function wordEnd(s, i) {
70
+ while (i < s.length && !isSpace(s[i]))
71
+ i++;
72
+ return i;
73
+ }
74
+ /**
75
+ * A font shorthand split at its size, as
76
+ * `/^(.*?)(\d*\.?\d+)px\s+(.+)$/` splits it (with `lineHeight`,
77
+ * `/^(.*?)(\d*\.?\d+)px(\s*\/\s*[^\s]+)?\s+(.+)$/`): `prefix` the style
78
+ * and weight words before the size (its spaces kept), `family` the family
79
+ * list after it (and after a `/ line-height`). Null when the string has no
80
+ * such size. A scan in one pass, where the expressions backtrack.
81
+ */
82
+ export function splitAtFontSize(font, lineHeight = false) {
83
+ const lastBreak = lastLineTerminator(font);
84
+ let firstBreak = -1;
85
+ for (let i = 0; i < font.length && firstBreak < 0; i++)
86
+ if (isLineTerminator(font[i]))
87
+ firstBreak = i;
88
+ for (let p = font.indexOf('px'); p >= 0; p = font.indexOf('px', p + 1)) {
89
+ const start = pxNumberStart(font, p, 0, false);
90
+ if (start < 0)
91
+ continue;
92
+ // The prefix (`.*?`) never crosses a line terminator, nor would any
93
+ // later size's.
94
+ if (firstBreak >= 0 && firstBreak < start)
95
+ return null;
96
+ let family;
97
+ if (lineHeight) {
98
+ let i = p + 2;
99
+ while (i < font.length && isSpace(font[i]))
100
+ i++;
101
+ if (font[i] === '/') {
102
+ i++;
103
+ while (i < font.length && isSpace(font[i]))
104
+ i++;
105
+ const end = wordEnd(font, i);
106
+ if (end > i)
107
+ family = spacedTail(font, end, lastBreak);
108
+ }
109
+ }
110
+ family ??= spacedTail(font, p + 2, lastBreak);
111
+ if (family !== undefined)
112
+ return { prefix: font.slice(0, start), family };
113
+ }
114
+ return null;
115
+ }
116
+ /** The family list of a trimmed font shorthand and where its size begins,
117
+ * as `/(?:^|\s)\d*\.?\d+px(?:\/\S+)?\s+(.+)$/` reads it (`at`: the
118
+ * match's start, the space before the size or 0). */
119
+ function familyAfterSize(font) {
120
+ const lastBreak = lastLineTerminator(font);
121
+ for (let at = 0; at < font.length; at++) {
122
+ // The size opens the string or follows a space.
123
+ const b = at === 0 && !isSpace(font[0]) ? 0 : isSpace(font[at]) ? at + 1 : -1;
124
+ if (b < 0)
125
+ continue;
126
+ let i = b;
127
+ while (isDigit(font.charCodeAt(i)))
128
+ i++;
129
+ if (font[i] === '.') {
130
+ const d = ++i;
131
+ while (isDigit(font.charCodeAt(i)))
132
+ i++;
133
+ if (i === d)
134
+ continue;
135
+ }
136
+ else if (i === b)
137
+ continue;
138
+ if (font[i] !== 'p' || font[i + 1] !== 'x')
139
+ continue;
140
+ i += 2;
141
+ if (font[i] === '/') {
142
+ const end = wordEnd(font, i + 1);
143
+ if (end === i + 1)
144
+ continue;
145
+ i = end;
146
+ }
147
+ const family = spacedTail(font, i, lastBreak);
148
+ if (family !== undefined)
149
+ return { family, at };
150
+ }
151
+ return null;
152
+ }
5
153
  /** The family of a CSS family list's first entry, unquoted. */
6
154
  function firstFamily(list) {
7
155
  let quote;
@@ -20,19 +168,20 @@ function firstFamily(list) {
20
168
  }
21
169
  }
22
170
  const f = list.trim();
23
- return /^(["']).*\1$/.test(f) ? f.slice(1, -1).replace(/\\(["'])/g, '$1') : f;
171
+ return /^(["']).*\1$/.test(f) ? f.slice(1, -1).replace(/\\(["'\\])/g, '$1') : f;
24
172
  }
25
173
  /** The face a canvas font shorthand names (`'700 37.5px Open Sans'`,
26
174
  * `'italic 400 13px "Source Serif 4"'`), or null when the string has no
27
175
  * `px` size. A string with no weight is 400; `bold` is 700. */
28
176
  export function parseFontString(font) {
29
- const m = SIZE_RE.exec(font.trim());
177
+ const trimmed = font.trim();
178
+ const m = familyAfterSize(trimmed);
30
179
  if (!m)
31
180
  return null;
32
- const family = firstFamily(m[1]);
181
+ const family = firstFamily(m.family);
33
182
  if (!family)
34
183
  return null;
35
- const prefix = font.slice(0, font.length - m[0].length).trim().split(/\s+/);
184
+ const prefix = font.slice(0, font.length - (trimmed.length - m.at)).trim().split(/\s+/);
36
185
  let weight = 400;
37
186
  let style = 'normal';
38
187
  for (const token of prefix) {
@@ -49,7 +198,7 @@ export function parseFontString(font) {
49
198
  }
50
199
  /** The family of a canvas font shorthand, or null. */
51
200
  export function fontStringFamily(font) {
52
- const m = SIZE_RE.exec(font.trim());
53
- return m ? firstFamily(m[1]) || null : null;
201
+ const m = familyAfterSize(font.trim());
202
+ return m ? firstFamily(m.family) || null : null;
54
203
  }
55
204
  //# sourceMappingURL=fontString.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fontString.js","sourceRoot":"","sources":["../../src/measure/fontString.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,mEAAmE;AACnE,+DAA+D;AAU/D,MAAM,OAAO,GAAG,uCAAuC,CAAC;AAExD,+DAA+D;AAC/D,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,KAAyB,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACnB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,KAAK;gBAAE,KAAK,GAAG,SAAS,CAAC;QACrC,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAClC,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;gEAEgE;AAChE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5E,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,IAAI,KAAK,GAAwB,QAAQ,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,GAAG,QAAQ,CAAC;aAC3D,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ;YAAE,MAAM,GAAG,GAAG,CAAC;aACzD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,GAAG,GAAG,CAAC;aACtC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"fontString.js","sourceRoot":"","sources":["../../src/measure/fontString.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rich.d.ts","sourceRoot":"","sources":["../../src/measure/rich.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rich.d.ts","sourceRoot":"","sources":["../../src/measure/rich.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,kBAAkB,EAAe,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAc,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAG9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,EAAmF,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAkBxJ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ1C,OAAO,EAAsN,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAElQ,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB;oEACgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;+DAE2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;+EAE2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;sEAEkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;uEACmE;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;gDAK4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;0EAGsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB;;gDAE4C;IAC5C,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;qBAEiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;2BAEuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;oEAEgE;IAChE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B;;6EAEyE;IACzE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0EACsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;yEACqE;IACrE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;oFAEgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;8DAE0D;IAC1D,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB;4BACwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;wCAEoC;IACpC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B;;;qDAGiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;2DACuD;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;gBACY;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B;gFAC4E;IAC5E,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B;mEAC+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;iDAC6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;iCAC6B;IAC7B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX;yCACqC;IACrC,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACrC;;sEAEkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;mCAK+B;IAC/B,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5D;yEACqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;8BAG0B;IAC1B,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IAC3B;8CAC0C;IAC1C,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B;;;;;;uCAMmC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB;;4EAEwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;kCAG8B;IAC9B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;;;;;;8EAO0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;gEAEgE;AAChE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;4EAC4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAKR;AAED;kCACkC;AAClC,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC;iDACiD;AACjD,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C;;;yEAGyE;AACzE,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C;;8EAE8E;AAC9E,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAClD,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;qEAEqE;AACrE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,OAAO,UAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAQ3H;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,CAW5F;AA2KD;;;6DAG6D;AAC7D,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,qCAAqC;AACrC,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AASD;0CAC0C;AAC1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAAE,CAW9E;AAED;8BAC8B;AAC9B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED;;;;;+BAK+B;AAC/B,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAK5F;AAED,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EAAE,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,IAAI,CAsCN;AAED;;2CAE2C;AAC3C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAUvC;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,SAAS,CAkGX;AAgED;;GAEG;AACH;;uBAEuB;AACvB,eAAO,MAAM,WAAW,QAAqD,CAAC;AAE9E;;;0EAG0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAStD;AA6GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,aAAa,UAAQ,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8F7D;AA8CD;qEACqE;AACrE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,YAAY,GAAG,eAAe,CAAC,CAK5D;AAED;;yDAEyD;AACzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEpD;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,UAAU,EAAE,CA2CxG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,SAAS,GAAG,SAAS,CA8EvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,SAAS,EAAE,GAAG,SAAS,CAmBzB;AAkCD;;uEAEuE;AACvE,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,CA8BzD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACtD,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,GAAG,SAAS,EAC9C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACzC,IAAI,CASN;AA8jBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAMf;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,aAAa,CAMf;AAykBD;6EAC6E;AAC7E,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAOvE"}
@@ -12,6 +12,7 @@ import { isRuntLastLine } from './runts';
12
12
  import { hasOverfullLine } from './plain';
13
13
  import { justifiedSpaceRatios } from './spaceRatios';
14
14
  import { quoteFamily } from './font';
15
+ import { findPxSize, splitAtFontSize, withPxSize } from './fontString';
15
16
  import { trimChipLineEdges } from './chipEdges';
16
17
  import { directChipRuns, measuresRunsAsPainted, paintedRunWidth } from '../design/bidiText';
17
18
  import { cjkJoinBreaks, hasCJK } from './cjk';
@@ -39,8 +40,8 @@ export function isSwatchFill(color) {
39
40
  /** Side of an inline colour swatch: three quarters of the font size (the
40
41
  * height of a capital), read from the `px` size of the CSS font string. */
41
42
  export function swatchSidePx(font) {
42
- const m = /(\d*\.?\d+)px/.exec(font);
43
- const size = m ? Number(m[1]) : 16;
43
+ const m = findPxSize(font);
44
+ const size = m ? Number(m.value) : 16;
44
45
  return Math.max(1, size * 0.75);
45
46
  }
46
47
  export function pickSpanFont(bold, italic, normalFont, boldFont, italicFont, boldItalicFont) {
@@ -67,19 +68,17 @@ export const SUBSCRIPT_SHIFT_RATIO = 0.15;
67
68
  * of the text size instead: 0.25 em, TeX's drop for a subscript with a
68
69
  * superscript over it (σ17, 0.247 em), which clears room between the two. */
69
70
  export const STACKED_SUBSCRIPT_SHIFT_RATIO = 0.25;
70
- const FONT_SIZE_RE = /(\d*\.?\d+)px/;
71
71
  /** `font` at `scale` times its size. */
72
72
  export function scaledFont(font, scale) {
73
- const m = FONT_SIZE_RE.exec(font);
74
- return m ? font.replace(FONT_SIZE_RE, `${parseFloat(m[1]) * scale}px`) : font;
73
+ return withPxSize(font, (size) => parseFloat(size) * scale);
75
74
  }
76
75
  /** The font a script token is measured and painted with (`font` at the
77
76
  * script size) and its baseline shift in px (negative: up). `stacked`: a
78
77
  * subscript with a superscript set over it, which drops further. */
79
78
  export function scriptMetrics(font, script, stacked = false) {
80
- const m = FONT_SIZE_RE.exec(font);
81
- const size = m ? parseFloat(m[1]) : 0;
82
- const scaled = m ? font.replace(FONT_SIZE_RE, `${size * SCRIPT_SIZE_RATIO}px`) : font;
79
+ const m = findPxSize(font);
80
+ const size = m ? parseFloat(m.value) : 0;
81
+ const scaled = withPxSize(font, () => size * SCRIPT_SIZE_RATIO);
83
82
  const ratio = script === 'sup'
84
83
  ? -SUPERSCRIPT_SHIFT_RATIO
85
84
  : stacked ? STACKED_SUBSCRIPT_SHIFT_RATIO : SUBSCRIPT_SHIFT_RATIO;
@@ -281,8 +280,7 @@ function markRestShifts(tokens, fontOf, repeatHyphen) {
281
280
  export const SMALL_CAPS_SIZE_RATIO = 0.7;
282
281
  /** `font` at the small-caps size. */
283
282
  export function smallCapsFont(font) {
284
- const m = FONT_SIZE_RE.exec(font);
285
- return m ? font.replace(FONT_SIZE_RE, `${parseFloat(m[1]) * SMALL_CAPS_SIZE_RATIO}px`) : font;
283
+ return withPxSize(font, (size) => parseFloat(size) * SMALL_CAPS_SIZE_RATIO);
286
284
  }
287
285
  /** A lowercase letter with a one-unit capital (`ß` and the like, whose
288
286
  * capital is longer, stay as they are so the text keeps its length). */
@@ -391,10 +389,10 @@ export const CHIP_DESCENT_RATIO = 0.25;
391
389
  /** `font` set in `family` (when given) at `sizePx`: the style and weight
392
390
  * words of the CSS shorthand are kept. */
393
391
  function withFace(font, family, sizePx) {
394
- const m = /^(.*?)(\d*\.?\d+)px\s+(.+)$/.exec(font);
392
+ const m = splitAtFontSize(font);
395
393
  if (!m)
396
394
  return font;
397
- return `${m[1]}${sizePx}px ${family ? quoteFamily(family) : m[3]}`;
395
+ return `${m.prefix}${sizePx}px ${family ? quoteFamily(family) : m.family}`;
398
396
  }
399
397
  /**
400
398
  * One atomic token for an inline chip: its words measured run by run (the
@@ -407,8 +405,8 @@ function withFace(font, family, sizePx) {
407
405
  export function chipToken(span, normalFont, boldFont, italicFont, boldItalicFont, letterSpacingPx) {
408
406
  const chip = span.chip;
409
407
  const box = chip.box;
410
- const sizeMatch = FONT_SIZE_RE.exec(normalFont);
411
- const sizePx = box?.fontSizePx ?? (sizeMatch ? parseFloat(sizeMatch[1]) : 16);
408
+ const sizeMatch = findPxSize(normalFont);
409
+ const sizePx = box?.fontSizePx ?? (sizeMatch ? parseFloat(sizeMatch.value) : 16);
412
410
  const runs = [];
413
411
  // The script of each run, and the unscaled font of a subscript's (which
414
412
  // drops further when a superscript is stacked over it).