pretext-pdf 0.4.5 → 0.5.1

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 (63) hide show
  1. package/CHANGELOG.md +333 -333
  2. package/README.md +76 -7
  3. package/dist/assets.d.ts +3 -0
  4. package/dist/assets.d.ts.map +1 -1
  5. package/dist/assets.js +111 -21
  6. package/dist/assets.js.map +1 -1
  7. package/dist/builder.d.ts +22 -1
  8. package/dist/builder.d.ts.map +1 -1
  9. package/dist/builder.js +38 -1
  10. package/dist/builder.js.map +1 -1
  11. package/dist/errors.d.ts +1 -1
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js.map +1 -1
  14. package/dist/fonts.d.ts.map +1 -1
  15. package/dist/fonts.js +36 -1
  16. package/dist/fonts.js.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +76 -34
  20. package/dist/index.js.map +1 -1
  21. package/dist/measure-blocks.d.ts +25 -0
  22. package/dist/measure-blocks.d.ts.map +1 -0
  23. package/dist/measure-blocks.js +1019 -0
  24. package/dist/measure-blocks.js.map +1 -0
  25. package/dist/measure-text.d.ts +53 -0
  26. package/dist/measure-text.d.ts.map +1 -0
  27. package/dist/measure-text.js +435 -0
  28. package/dist/measure-text.js.map +1 -0
  29. package/dist/measure.d.ts +15 -35
  30. package/dist/measure.d.ts.map +1 -1
  31. package/dist/measure.js +42 -1066
  32. package/dist/measure.js.map +1 -1
  33. package/dist/paginate.d.ts.map +1 -1
  34. package/dist/paginate.js +14 -12
  35. package/dist/paginate.js.map +1 -1
  36. package/dist/render-blocks.d.ts +24 -0
  37. package/dist/render-blocks.d.ts.map +1 -0
  38. package/dist/render-blocks.js +937 -0
  39. package/dist/render-blocks.js.map +1 -0
  40. package/dist/render-extras.d.ts +18 -0
  41. package/dist/render-extras.d.ts.map +1 -0
  42. package/dist/render-extras.js +325 -0
  43. package/dist/render-extras.js.map +1 -0
  44. package/dist/render-utils.d.ts +59 -0
  45. package/dist/render-utils.d.ts.map +1 -0
  46. package/dist/render-utils.js +219 -0
  47. package/dist/render-utils.js.map +1 -0
  48. package/dist/render.d.ts.map +1 -1
  49. package/dist/render.js +19 -1375
  50. package/dist/render.js.map +1 -1
  51. package/dist/rich-text.d.ts +4 -0
  52. package/dist/rich-text.d.ts.map +1 -1
  53. package/dist/rich-text.js +4 -0
  54. package/dist/rich-text.js.map +1 -1
  55. package/dist/types.d.ts +108 -5
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/validate.d.ts.map +1 -1
  58. package/dist/validate.js +195 -15
  59. package/dist/validate.js.map +1 -1
  60. package/docs/screenshots/showcase-invoice.png +0 -0
  61. package/docs/screenshots/showcase-report.png +0 -0
  62. package/docs/screenshots/showcase-resume.png +0 -0
  63. package/package.json +130 -128
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure-blocks.js","sourceRoot":"","sources":["../src/measure-blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * measure-text.ts — Low-level text and font measurement primitives
3
+ * No document-element knowledge. Used by all measurement modules.
4
+ */
5
+ export type HyphenatorOpts = {
6
+ instance: HypherInstance;
7
+ minWordLength: number;
8
+ leftMin: number;
9
+ rightMin: number;
10
+ };
11
+ type HypherInstance = {
12
+ hyphenate(word: string): string[];
13
+ };
14
+ export declare function getPretext(): Promise<typeof import("@chenglou/pretext")>;
15
+ export declare function getHyphenator(language: string): Promise<HypherInstance>;
16
+ /**
17
+ * Detect text direction and apply Unicode Bidi Algorithm (TR9) for visual reordering.
18
+ * Returns the visual-order text ready for measurement and rendering.
19
+ */
20
+ export declare function detectAndReorderRTL(text: string, dirOverride?: 'ltr' | 'rtl' | 'auto'): Promise<{
21
+ visual: string;
22
+ isRTL: boolean;
23
+ logical: string;
24
+ }>;
25
+ /**
26
+ * Measure a single word's rendered width using pretext at maxWidth=99999.
27
+ */
28
+ export declare function measureWord(word: string, fontString: string): Promise<number>;
29
+ /**
30
+ * Measure unwrapped (single-line) text width using pretext at large maxWidth.
31
+ * Handles multi-line text by returning the max width across all lines.
32
+ */
33
+ export declare function measureNaturalTextWidth(text: string, fontSize: number, fontFamily: string, fontWeight: 400 | 700): Promise<number>;
34
+ export declare function getThaiSegmenter(): Intl.Segmenter | null;
35
+ /**
36
+ * Full hyphenation path: intelligently splits text into lines with Liang's algorithm.
37
+ * Handles CJK (character-level breaks), Thai/Lao (Intl.Segmenter), and Latin (space + hyphens).
38
+ * Returns lines with actual hyphens added to hyphenated words.
39
+ */
40
+ export declare function measureTextWithHyphenation(text: string, fontString: string, maxWidth: number, opts: HyphenatorOpts): Promise<Array<{
41
+ text: string;
42
+ width: number;
43
+ }>>;
44
+ /**
45
+ * Core text measurement: delegates to hyphenation path or direct Pretext layout.
46
+ * If no hyphenator is available, falls back to direct layout (text wraps without hyphens).
47
+ */
48
+ export declare function measureText(text: string, fontSize: number, fontFamily: string, fontWeight: 400 | 700, maxWidth: number, lineHeight: number, hyphenatorOpts?: HyphenatorOpts): Promise<Array<{
49
+ text: string;
50
+ width: number;
51
+ }>>;
52
+ export {};
53
+ //# sourceMappingURL=measure-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure-text.d.ts","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnH,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAA;AAK3D,wBAAsB,UAAU,gDAK/B;AAID,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAc7E;AAID;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GACnC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C9D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOnF;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAmDD,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAWxD;AAqHD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAkIjD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,GAAG,GAAG,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CA0BjD"}
@@ -0,0 +1,435 @@
1
+ /**
2
+ * measure-text.ts — Low-level text and font measurement primitives
3
+ * No document-element knowledge. Used by all measurement modules.
4
+ */
5
+ import { PretextPdfError } from './errors.js';
6
+ /** Heading level size multipliers and defaults */
7
+ const HEADING_DEFAULTS = {
8
+ 1: { sizeMultiplier: 2.0, fontWeight: 700, spaceAfter: 16, spaceBefore: 28 },
9
+ 2: { sizeMultiplier: 1.5, fontWeight: 700, spaceAfter: 12, spaceBefore: 24 },
10
+ 3: { sizeMultiplier: 1.25, fontWeight: 700, spaceAfter: 8, spaceBefore: 20 },
11
+ 4: { sizeMultiplier: 1.1, fontWeight: 700, spaceAfter: 6, spaceBefore: 16 },
12
+ };
13
+ /** Lazily-loaded Pretext module — must be imported AFTER polyfill is installed */
14
+ let _pretext = null;
15
+ export async function getPretext() {
16
+ if (!_pretext) {
17
+ _pretext = await import('@chenglou/pretext');
18
+ }
19
+ return _pretext;
20
+ }
21
+ // ─── Hyphenation (Liang's algorithm via hypher package) ──────────────────────
22
+ export async function getHyphenator(language) {
23
+ let dict;
24
+ try {
25
+ const mod = await import(`hyphenation.${language}`);
26
+ dict = mod.default ?? mod;
27
+ }
28
+ catch {
29
+ throw new PretextPdfError('UNSUPPORTED_LANGUAGE', `Hyphenation dictionary for "${language}" not found. Install it with: pnpm add hyphenation.${language}`);
30
+ }
31
+ // @ts-ignore hypher has no type definitions available
32
+ const { default: Hypher } = await import('hypher');
33
+ return new Hypher(dict);
34
+ }
35
+ // ─── RTL Text Support (Unicode Bidirectional Algorithm via bidi-js) ────────────
36
+ /**
37
+ * Detect text direction and apply Unicode Bidi Algorithm (TR9) for visual reordering.
38
+ * Returns the visual-order text ready for measurement and rendering.
39
+ */
40
+ export async function detectAndReorderRTL(text, dirOverride) {
41
+ // Step 1: Explicit override takes priority
42
+ if (dirOverride === 'ltr') {
43
+ return { visual: text, isRTL: false, logical: text };
44
+ }
45
+ if (dirOverride === 'rtl') {
46
+ try {
47
+ // @ts-ignore bidi-js has no type definitions
48
+ const bidiFactory = (await import('bidi-js')).default;
49
+ const bidi = typeof bidiFactory === 'function' ? bidiFactory() : bidiFactory;
50
+ const { getEmbeddingLevels, getReorderedString } = bidi;
51
+ const embedLevelsResult = getEmbeddingLevels(text, 'rtl');
52
+ const visual = getReorderedString(text, embedLevelsResult);
53
+ return { visual, isRTL: true, logical: text };
54
+ }
55
+ catch (err) {
56
+ console.error('[pretext-pdf] bidi-js RTL reordering failed — rendering logical order as fallback:', err);
57
+ return { visual: text, isRTL: false, logical: text };
58
+ }
59
+ }
60
+ // Step 2: Auto-detect dominant direction (full RTL block coverage, UAX #9)
61
+ const rtlRanges = /[\u0590-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF\u{10800}-\u{10CFF}\u{10D00}-\u{10D3F}\u{10E80}-\u{10EFF}\u{10F30}-\u{10FFF}\u{1E800}-\u{1E95F}\u{1EC70}-\u{1ECBF}\u{1EE00}-\u{1EEFF}]/gu;
62
+ const rtlCount = (text.match(rtlRanges) ?? []).length;
63
+ const ltrCount = (text.match(/[a-zA-Z0-9]/g) ?? []).length;
64
+ const isRTL = rtlCount > 0 && rtlCount >= ltrCount;
65
+ if (!isRTL) {
66
+ return { visual: text, isRTL: false, logical: text };
67
+ }
68
+ // Step 3: Apply bidi algorithm (TR9) to reorder visually
69
+ try {
70
+ // @ts-ignore bidi-js has no type definitions
71
+ const bidiFactory = (await import('bidi-js')).default;
72
+ const bidi = typeof bidiFactory === 'function' ? bidiFactory() : bidiFactory;
73
+ const { getEmbeddingLevels, getReorderedString } = bidi;
74
+ const embedLevelsResult = getEmbeddingLevels(text, 'rtl');
75
+ const visual = getReorderedString(text, embedLevelsResult);
76
+ return { visual, isRTL: true, logical: text };
77
+ }
78
+ catch (err) {
79
+ console.warn('bidi-js error during RTL reordering:', err);
80
+ return { visual: text, isRTL: false, logical: text };
81
+ }
82
+ }
83
+ /**
84
+ * Measure a single word's rendered width using pretext at maxWidth=99999.
85
+ */
86
+ export async function measureWord(word, fontString) {
87
+ const { prepareWithSegments, layoutWithLines } = await getPretext();
88
+ if (!word)
89
+ return 0;
90
+ const prepared = prepareWithSegments(word, fontString, {});
91
+ const result = layoutWithLines(prepared, 99999, 99999);
92
+ const lines = result.lines ?? [];
93
+ return lines[0]?.width ?? 0;
94
+ }
95
+ // ─── Core Text Measurement ────────────────────────────────────────────────────
96
+ /**
97
+ * Measure unwrapped (single-line) text width using pretext at large maxWidth.
98
+ * Handles multi-line text by returning the max width across all lines.
99
+ */
100
+ export async function measureNaturalTextWidth(text, fontSize, fontFamily, fontWeight) {
101
+ if (!text || text.trim() === '')
102
+ return 0;
103
+ const { prepareWithSegments, layoutWithLines } = await getPretext();
104
+ const weightPrefix = fontWeight === 700 ? 'bold ' : '';
105
+ const fontString = `${weightPrefix}${fontSize}px ${fontFamily}`;
106
+ const prepared = prepareWithSegments(text, fontString, {});
107
+ const result = layoutWithLines(prepared, 99999, 99999);
108
+ const lines = result.lines ?? [];
109
+ return Math.max(0, ...lines.map(l => l.width));
110
+ }
111
+ // ─── Script-Aware Tokenization ────────────────────────────────────────────────
112
+ /**
113
+ * CJK Unified Ideographs and adjacent blocks that require character-level line breaking.
114
+ * Each CJK character is its own break point — no spaces between them.
115
+ * Covers: CJK Radicals, CJK Symbols, Hiragana, Katakana, Bopomofo, Hangul,
116
+ * CJK Unified Ideographs (4E00–9FFF), Extensions A–G, Compat Ideographs.
117
+ * Unicode source: https://www.unicode.org/faq/han_unification.html
118
+ */
119
+ const CJK_CHAR_RE = /[\u2E80-\u2FFF\u3000-\u9FFF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE4F\uFF01-\uFF60\u{20000}-\u{3FFFD}]/u;
120
+ /** Thai (0E00–0E7F) and Lao (0E80–0EFF) — no spaces between words */
121
+ const THAI_LAO_RE = /[\u0E00-\u0EFF]/;
122
+ /**
123
+ * Kinsoku line-start forbidden characters (JIS X 4051 subset).
124
+ * These must never appear at the start of a line — they are pulled
125
+ * back onto the previous line even if it causes a slight overflow.
126
+ */
127
+ const KINSOKU_START_FORBIDDEN = new Set([
128
+ '。', '.', '、', ',', '!', '?', // sentence/clause endings
129
+ ')', '』', '」', '】', '〕', '〉', '》', // closing brackets
130
+ '・', ':', ';', '…', '‥', // misc
131
+ ')', ']', '}', // ASCII closers in CJK context
132
+ '\uFF01', '\uFF09', '\uFF0C', '\uFF0E', // fullwidth ! ) , .
133
+ '\uFF1A', '\uFF1B', '\uFF1F', // fullwidth : ; ?
134
+ '\u30FB', // katakana middle dot
135
+ ]);
136
+ /**
137
+ * Lazily-created segmenter for Thai/Lao. Intl.Segmenter is built into Node.js 16+.
138
+ *
139
+ * ICU data availability: Node.js ships with either "full-icu" or "small-icu" data.
140
+ * Small-icu builds (common in CI/Docker) often lack Thai word-boundary data, causing
141
+ * Intl.Segmenter('th') to either throw or produce single-segment output (no breaks).
142
+ *
143
+ * The smoke-test (segment 'สวัสดี' and check length > 1) detects the broken case:
144
+ * - If ICU data is present: the segmenter returns multiple word segments → cached and used.
145
+ * - If ICU data is absent: the segmenter returns one segment (the whole string) → falls back.
146
+ *
147
+ * Fallback behavior: character-level tokenization (one token per Thai codepoint).
148
+ * This is acceptable because Thai has no spaces between words — character-level breaking
149
+ * produces readable text that wraps at each character boundary. It's not linguistically
150
+ * correct but is far better than a single overflowing line.
151
+ *
152
+ * To enable proper Thai segmentation in Node.js, use: node --icu-data-dir=<full-icu-path>
153
+ * or install the `full-icu` npm package and set NODE_ICU_DATA.
154
+ */
155
+ let _thaiSegmenter = null;
156
+ export function getThaiSegmenter() {
157
+ if (_thaiSegmenter !== null)
158
+ return _thaiSegmenter;
159
+ try {
160
+ // Check ICU data availability before caching
161
+ const seg = new Intl.Segmenter('th', { granularity: 'word' });
162
+ // Quick smoke-test — some Node builds lack Thai ICU data
163
+ const test = [...seg.segment('สวัสดี')];
164
+ if (test.length > 1) {
165
+ _thaiSegmenter = seg;
166
+ return seg;
167
+ }
168
+ }
169
+ catch { /* fall through */ }
170
+ _thaiSegmenter = null; // mark permanently unavailable so we don't retry
171
+ return null;
172
+ }
173
+ /**
174
+ * Insert zero-width spaces (U+200B) at Thai/Lao word boundaries so that
175
+ * canvas/Skia can break lines at those points. Used by the non-hyphenation path.
176
+ */
177
+ function insertThaiBreaks(text) {
178
+ const seg = getThaiSegmenter();
179
+ if (!seg)
180
+ return text; // no ICU data — return unchanged; lines may overflow
181
+ const result = [];
182
+ let inThaiRun = false;
183
+ // Process character by character, only segmenting Thai/Lao runs
184
+ const parts = text.split(/([\u0E00-\u0EFF]+)/);
185
+ for (const part of parts) {
186
+ if (THAI_LAO_RE.test(part)) {
187
+ const words = [];
188
+ for (const { segment, isWordLike } of seg.segment(part)) {
189
+ if (isWordLike !== false && segment.trim())
190
+ words.push(segment);
191
+ else
192
+ words.push(segment);
193
+ }
194
+ result.push(words.join('\u200B'));
195
+ }
196
+ else {
197
+ result.push(part);
198
+ }
199
+ }
200
+ return result.join('');
201
+ }
202
+ /**
203
+ * Tokenize a paragraph into wrapping units:
204
+ * - CJK ideographs: one character per token, no space before consecutive CJK
205
+ * - Thai/Lao: split by Intl.Segmenter word boundaries (falls back to char-level)
206
+ * - Latin / other scripts: split on whitespace (standard behaviour)
207
+ *
208
+ * Preserves the original space intent: a token with spaceBefore=true contributes
209
+ * one spaceWidth to the line width and one ' ' to the line text.
210
+ */
211
+ function tokenizeParagraph(para) {
212
+ const tokens = [];
213
+ // Use spread to get proper Unicode scalar values (handles surrogate pairs)
214
+ const chars = [...para];
215
+ let i = 0;
216
+ let pendingSpace = false; // whether the next non-space token has a space before it
217
+ let lastWasCJK = false;
218
+ while (i < chars.length) {
219
+ const ch = chars[i];
220
+ if (ch === ' ' || ch === '\t') {
221
+ pendingSpace = true;
222
+ lastWasCJK = false;
223
+ i++;
224
+ continue;
225
+ }
226
+ if (CJK_CHAR_RE.test(ch)) {
227
+ // Between consecutive CJK chars there is no space — only honour a real
228
+ // whitespace character that appeared between them in the source text.
229
+ tokens.push({ text: ch, spaceBefore: pendingSpace && !lastWasCJK ? true : (pendingSpace && tokens.length > 0) });
230
+ pendingSpace = false;
231
+ lastWasCJK = true;
232
+ i++;
233
+ continue;
234
+ }
235
+ if (THAI_LAO_RE.test(ch)) {
236
+ // Collect the contiguous Thai/Lao run, then segment it into words
237
+ let run = '';
238
+ while (i < chars.length && THAI_LAO_RE.test(chars[i])) {
239
+ run += chars[i];
240
+ i++;
241
+ }
242
+ const seg = getThaiSegmenter();
243
+ let first = true;
244
+ if (seg) {
245
+ for (const { segment, isWordLike } of seg.segment(run)) {
246
+ if (segment.trim() === '')
247
+ continue;
248
+ if (isWordLike === false)
249
+ continue; // skip punctuation segments
250
+ tokens.push({ text: segment, spaceBefore: first ? pendingSpace : false });
251
+ first = false;
252
+ }
253
+ }
254
+ else {
255
+ // ICU not available: fall back to character-level (safe but not ideal)
256
+ for (const c of [...run]) {
257
+ tokens.push({ text: c, spaceBefore: first ? pendingSpace : false });
258
+ first = false;
259
+ }
260
+ }
261
+ pendingSpace = false;
262
+ lastWasCJK = false;
263
+ continue;
264
+ }
265
+ // Latin / other: collect until whitespace, CJK, or Thai/Lao
266
+ let word = '';
267
+ while (i < chars.length &&
268
+ chars[i] !== ' ' && chars[i] !== '\t' &&
269
+ !CJK_CHAR_RE.test(chars[i]) &&
270
+ !THAI_LAO_RE.test(chars[i])) {
271
+ word += chars[i];
272
+ i++;
273
+ }
274
+ if (word) {
275
+ tokens.push({ text: word, spaceBefore: pendingSpace && tokens.length > 0 });
276
+ pendingSpace = false;
277
+ lastWasCJK = false;
278
+ }
279
+ }
280
+ return tokens;
281
+ }
282
+ // ─── Hyphenation + Script-Aware Line-Breaking ─────────────────────────────────
283
+ /**
284
+ * Full hyphenation path: intelligently splits text into lines with Liang's algorithm.
285
+ * Handles CJK (character-level breaks), Thai/Lao (Intl.Segmenter), and Latin (space + hyphens).
286
+ * Returns lines with actual hyphens added to hyphenated words.
287
+ */
288
+ export async function measureTextWithHyphenation(text, fontString, maxWidth, opts) {
289
+ const { instance: hypher, minWordLength, leftMin, rightMin } = opts;
290
+ const widthCache = new Map();
291
+ const measure = async (w) => {
292
+ if (widthCache.has(w))
293
+ return widthCache.get(w);
294
+ const width = await measureWord(w, fontString);
295
+ widthCache.set(w, width);
296
+ return width;
297
+ };
298
+ let spaceWidth = await measure(' ');
299
+ if (spaceWidth === 0) {
300
+ const aWidth = await measure('a');
301
+ const aaWidth = await measure('a a');
302
+ spaceWidth = aaWidth - 2 * aWidth;
303
+ if (spaceWidth <= 0)
304
+ spaceWidth = Math.max(1, aWidth * 0.3);
305
+ }
306
+ const allLines = [];
307
+ for (const para of text.split('\n')) {
308
+ if (!para.trim()) {
309
+ allLines.push({ text: '', width: 0 });
310
+ continue;
311
+ }
312
+ const tokens = tokenizeParagraph(para);
313
+ // Pre-measure all unique token texts in parallel
314
+ const unique = [...new Set(tokens.map(t => t.text))];
315
+ await Promise.all(unique.map(w => measure(w)));
316
+ const lines = [];
317
+ let currentTokens = [];
318
+ let currentWidth = 0;
319
+ const flush = () => {
320
+ if (currentTokens.length === 0)
321
+ return;
322
+ let lineText = '';
323
+ for (const { text, spaceBefore } of currentTokens) {
324
+ if (lineText.length > 0 && spaceBefore)
325
+ lineText += ' ';
326
+ lineText += text;
327
+ }
328
+ const allCJK = currentTokens.every(t => CJK_CHAR_RE.test(t.text[0] ?? ''));
329
+ const lineObj = { text: lineText, width: currentWidth };
330
+ if (allCJK) {
331
+ // @ts-ignore hint for renderer: CJK-only lines should not be stretched for justification
332
+ lineObj.hasCJK = true;
333
+ }
334
+ lines.push(lineObj);
335
+ currentTokens = [];
336
+ currentWidth = 0;
337
+ };
338
+ for (const token of tokens) {
339
+ const ww = widthCache.get(token.text);
340
+ const gap = (token.spaceBefore && currentTokens.length > 0) ? spaceWidth : 0;
341
+ const addW = gap + ww;
342
+ if (currentWidth + addW <= maxWidth || currentTokens.length === 0) {
343
+ currentTokens.push(token);
344
+ currentWidth += addW;
345
+ continue;
346
+ }
347
+ // CJK/Thai tokens never hyphenate — just break immediately
348
+ const isCJKLike = CJK_CHAR_RE.test(token.text[0] ?? '') || THAI_LAO_RE.test(token.text[0] ?? '');
349
+ if (isCJKLike || token.text.length < minWordLength) {
350
+ // Kinsoku: if this token is start-forbidden, pull it onto the current line
351
+ // (accept slight overflow) rather than letting it begin the next line.
352
+ if (KINSOKU_START_FORBIDDEN.has(token.text)) {
353
+ currentTokens.push({ text: token.text, spaceBefore: false });
354
+ currentWidth += ww;
355
+ flush();
356
+ }
357
+ else {
358
+ flush();
359
+ currentTokens.push({ text: token.text, spaceBefore: false });
360
+ currentWidth = ww;
361
+ }
362
+ continue;
363
+ }
364
+ // Latin word — try hyphenation
365
+ let hyphenated = false;
366
+ const sylls = hypher.hyphenate(token.text);
367
+ for (let split = sylls.length - 1; split >= 1; split--) {
368
+ const prefix = sylls.slice(0, split).join('');
369
+ const suffix = sylls.slice(split).join('');
370
+ if (prefix.length < leftMin || suffix.length < rightMin)
371
+ continue;
372
+ const hyphenPart = prefix + '-';
373
+ const hw = await measure(hyphenPart);
374
+ const addHW = (token.spaceBefore && currentTokens.length > 0 ? spaceWidth : 0) + hw;
375
+ if (currentWidth + addHW <= maxWidth) {
376
+ currentTokens.push({ text: hyphenPart, spaceBefore: token.spaceBefore });
377
+ currentWidth += addHW;
378
+ flush();
379
+ await measure(suffix);
380
+ currentTokens = [{ text: suffix, spaceBefore: false }];
381
+ currentWidth = widthCache.get(suffix);
382
+ hyphenated = true;
383
+ break;
384
+ }
385
+ }
386
+ if (!hyphenated) {
387
+ // Kinsoku: if this token is start-forbidden, pull it onto the current line
388
+ // (accept slight overflow) rather than letting it begin the next line.
389
+ if (KINSOKU_START_FORBIDDEN.has(token.text)) {
390
+ currentTokens.push({ text: token.text, spaceBefore: false });
391
+ currentWidth += ww;
392
+ flush();
393
+ currentTokens = [];
394
+ currentWidth = 0;
395
+ }
396
+ else {
397
+ flush();
398
+ currentTokens = [{ text: token.text, spaceBefore: false }];
399
+ currentWidth = ww;
400
+ }
401
+ }
402
+ }
403
+ flush();
404
+ allLines.push(...lines);
405
+ }
406
+ return allLines;
407
+ }
408
+ /**
409
+ * Core text measurement: delegates to hyphenation path or direct Pretext layout.
410
+ * If no hyphenator is available, falls back to direct layout (text wraps without hyphens).
411
+ */
412
+ export async function measureText(text, fontSize, fontFamily, fontWeight, maxWidth, lineHeight, hyphenatorOpts) {
413
+ if (!text || text.trim() === '')
414
+ return [];
415
+ const { prepareWithSegments, layoutWithLines } = await getPretext();
416
+ const weightPrefix = fontWeight === 700 ? 'bold ' : '';
417
+ const fontString = `${weightPrefix}${fontSize}px ${fontFamily}`;
418
+ // If hyphenator is available and text is long, use hyphenation
419
+ if (hyphenatorOpts && text.length > hyphenatorOpts.minWordLength) {
420
+ return await measureTextWithHyphenation(text, fontString, maxWidth, hyphenatorOpts);
421
+ }
422
+ // Thai/Lao: Skia/canvas doesn't segment Thai — insert zero-width spaces at word
423
+ // boundaries so pretext's line-breaker can split correctly.
424
+ const needsThaiSeg = THAI_LAO_RE.test(text);
425
+ const layoutText = needsThaiSeg ? insertThaiBreaks(text) : text;
426
+ // No hyphenation: use direct pretext layout (handles CJK character-level breaks natively)
427
+ const prepared = prepareWithSegments(layoutText, fontString, {});
428
+ const result = layoutWithLines(prepared, maxWidth, 99999);
429
+ // Strip zero-width spaces from output line texts (they're layout hints, not content)
430
+ return (result.lines ?? []).map((l) => ({
431
+ text: l.text.replace(/\u200B/g, ''),
432
+ width: l.width,
433
+ }));
434
+ }
435
+ //# sourceMappingURL=measure-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"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"}