postext 0.1.2 → 0.1.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 (45) hide show
  1. package/dist/__tests__/exports.test.js +34 -2
  2. package/dist/__tests__/exports.test.js.map +1 -1
  3. package/dist/canvas-backend.d.ts +5 -0
  4. package/dist/canvas-backend.d.ts.map +1 -0
  5. package/dist/canvas-backend.js +156 -0
  6. package/dist/canvas-backend.js.map +1 -0
  7. package/dist/createLayout.d.ts +2 -2
  8. package/dist/createLayout.d.ts.map +1 -1
  9. package/dist/createLayout.js +25 -2
  10. package/dist/createLayout.js.map +1 -1
  11. package/dist/defaults.d.ts +23 -0
  12. package/dist/defaults.d.ts.map +1 -0
  13. package/dist/defaults.js +387 -0
  14. package/dist/defaults.js.map +1 -0
  15. package/dist/hyphenate.d.ts +11 -0
  16. package/dist/hyphenate.d.ts.map +1 -0
  17. package/dist/hyphenate.js +140 -0
  18. package/dist/hyphenate.js.map +1 -0
  19. package/dist/index.d.ts +11 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +7 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/measure.d.ts +40 -0
  24. package/dist/measure.d.ts.map +1 -0
  25. package/dist/measure.js +267 -0
  26. package/dist/measure.js.map +1 -0
  27. package/dist/parse.d.ts +17 -0
  28. package/dist/parse.d.ts.map +1 -0
  29. package/dist/parse.js +152 -0
  30. package/dist/parse.js.map +1 -0
  31. package/dist/pipeline.d.ts +4 -0
  32. package/dist/pipeline.d.ts.map +1 -0
  33. package/dist/pipeline.js +324 -0
  34. package/dist/pipeline.js.map +1 -0
  35. package/dist/types.d.ts +131 -0
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/units.d.ts +9 -0
  38. package/dist/units.d.ts.map +1 -0
  39. package/dist/units.js +27 -0
  40. package/dist/units.js.map +1 -0
  41. package/dist/vdt.d.ts +83 -0
  42. package/dist/vdt.d.ts.map +1 -0
  43. package/dist/vdt.js +50 -0
  44. package/dist/vdt.js.map +1 -0
  45. package/package.json +4 -1
@@ -0,0 +1,387 @@
1
+ export const PAGE_SIZE_PRESETS = {
2
+ '11x17': { width: { value: 11, unit: 'cm' }, height: { value: 17, unit: 'cm' } },
3
+ '12x19': { width: { value: 12, unit: 'cm' }, height: { value: 19, unit: 'cm' } },
4
+ '17x24': { width: { value: 17, unit: 'cm' }, height: { value: 24, unit: 'cm' } },
5
+ '21x28': { width: { value: 21, unit: 'cm' }, height: { value: 28, unit: 'cm' } },
6
+ };
7
+ const DEFAULT_PAGE_MARGINS = {
8
+ top: { value: 2, unit: 'cm' },
9
+ bottom: { value: 2, unit: 'cm' },
10
+ left: { value: 1.5, unit: 'cm' },
11
+ right: { value: 1.5, unit: 'cm' },
12
+ };
13
+ export const DEFAULT_PAGE_CONFIG = {
14
+ backgroundColor: { hex: 'transparent', model: 'hex' },
15
+ sizePreset: '17x24',
16
+ width: { value: 17, unit: 'cm' },
17
+ height: { value: 24, unit: 'cm' },
18
+ margins: DEFAULT_PAGE_MARGINS,
19
+ dpi: 300,
20
+ cutLines: false,
21
+ baselineGrid: { enabled: false, color: { hex: '#cccccc', model: 'hex' }, lineWidth: { value: 0.5, unit: 'pt' } },
22
+ };
23
+ export function dimensionsEqual(a, b) {
24
+ return a.value === b.value && a.unit === b.unit;
25
+ }
26
+ export function colorsEqual(a, b) {
27
+ return a.hex === b.hex && a.model === b.model;
28
+ }
29
+ export function stripPageDefaults(page) {
30
+ if (!page)
31
+ return undefined;
32
+ const result = {};
33
+ let hasOverride = false;
34
+ if (page.backgroundColor !== undefined && !colorsEqual(page.backgroundColor, DEFAULT_PAGE_CONFIG.backgroundColor)) {
35
+ result.backgroundColor = page.backgroundColor;
36
+ hasOverride = true;
37
+ }
38
+ if (page.sizePreset !== undefined && page.sizePreset !== DEFAULT_PAGE_CONFIG.sizePreset) {
39
+ result.sizePreset = page.sizePreset;
40
+ hasOverride = true;
41
+ }
42
+ if (page.width !== undefined && !dimensionsEqual(page.width, DEFAULT_PAGE_CONFIG.width)) {
43
+ result.width = page.width;
44
+ hasOverride = true;
45
+ }
46
+ if (page.height !== undefined && !dimensionsEqual(page.height, DEFAULT_PAGE_CONFIG.height)) {
47
+ result.height = page.height;
48
+ hasOverride = true;
49
+ }
50
+ if (page.margins) {
51
+ const m = {};
52
+ let hasMarginOverride = false;
53
+ for (const side of ['top', 'bottom', 'left', 'right']) {
54
+ if (page.margins[side] && !dimensionsEqual(page.margins[side], DEFAULT_PAGE_MARGINS[side])) {
55
+ m[side] = page.margins[side];
56
+ hasMarginOverride = true;
57
+ }
58
+ }
59
+ if (hasMarginOverride) {
60
+ result.margins = m;
61
+ hasOverride = true;
62
+ }
63
+ }
64
+ if (page.dpi !== undefined && page.dpi !== DEFAULT_PAGE_CONFIG.dpi) {
65
+ result.dpi = page.dpi;
66
+ hasOverride = true;
67
+ }
68
+ if (page.cutLines !== undefined && page.cutLines !== DEFAULT_PAGE_CONFIG.cutLines) {
69
+ result.cutLines = page.cutLines;
70
+ hasOverride = true;
71
+ }
72
+ if (page.baselineGrid) {
73
+ const enabledOverride = page.baselineGrid.enabled !== undefined && page.baselineGrid.enabled !== DEFAULT_PAGE_CONFIG.baselineGrid.enabled;
74
+ const colorOverride = page.baselineGrid.color !== undefined && !colorsEqual(page.baselineGrid.color, DEFAULT_PAGE_CONFIG.baselineGrid.color);
75
+ const lineWidthOverride = page.baselineGrid.lineWidth !== undefined && !dimensionsEqual(page.baselineGrid.lineWidth, DEFAULT_PAGE_CONFIG.baselineGrid.lineWidth);
76
+ if (enabledOverride || colorOverride || lineWidthOverride) {
77
+ result.baselineGrid = {
78
+ enabled: page.baselineGrid.enabled ?? DEFAULT_PAGE_CONFIG.baselineGrid.enabled,
79
+ ...(colorOverride ? { color: page.baselineGrid.color } : {}),
80
+ ...(lineWidthOverride ? { lineWidth: page.baselineGrid.lineWidth } : {}),
81
+ };
82
+ hasOverride = true;
83
+ }
84
+ }
85
+ return hasOverride ? result : undefined;
86
+ }
87
+ export const DEFAULT_LAYOUT_CONFIG = {
88
+ layoutType: 'double',
89
+ gutterWidth: { value: 0.75, unit: 'cm' },
90
+ sideColumnPercent: 33,
91
+ };
92
+ export function stripLayoutDefaults(layout) {
93
+ if (!layout)
94
+ return undefined;
95
+ const result = {};
96
+ let hasOverride = false;
97
+ if (layout.layoutType !== undefined && layout.layoutType !== DEFAULT_LAYOUT_CONFIG.layoutType) {
98
+ result.layoutType = layout.layoutType;
99
+ hasOverride = true;
100
+ }
101
+ if (layout.gutterWidth !== undefined && !dimensionsEqual(layout.gutterWidth, DEFAULT_LAYOUT_CONFIG.gutterWidth)) {
102
+ result.gutterWidth = layout.gutterWidth;
103
+ hasOverride = true;
104
+ }
105
+ if (layout.sideColumnPercent !== undefined && layout.sideColumnPercent !== DEFAULT_LAYOUT_CONFIG.sideColumnPercent) {
106
+ result.sideColumnPercent = layout.sideColumnPercent;
107
+ hasOverride = true;
108
+ }
109
+ return hasOverride ? result : undefined;
110
+ }
111
+ export const DEFAULT_HYPHENATION_CONFIG = {
112
+ enabled: true,
113
+ locale: 'en-us',
114
+ };
115
+ export const DEFAULT_BODY_TEXT_CONFIG = {
116
+ fontFamily: 'EB Garamond',
117
+ fontSize: { value: 9, unit: 'pt' },
118
+ lineHeight: { value: 1.5, unit: 'em' },
119
+ color: { hex: '#000000', model: 'cmyk' },
120
+ textAlign: 'justify',
121
+ fontWeight: 400,
122
+ boldFontWeight: 700,
123
+ hyphenation: { ...DEFAULT_HYPHENATION_CONFIG },
124
+ };
125
+ export function hyphenationEqual(a, b) {
126
+ if (!a && !b)
127
+ return true;
128
+ if (!a || !b)
129
+ return false;
130
+ return (a.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled) === (b.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled)
131
+ && (a.locale ?? DEFAULT_HYPHENATION_CONFIG.locale) === (b.locale ?? DEFAULT_HYPHENATION_CONFIG.locale);
132
+ }
133
+ export function stripBodyTextDefaults(bodyText) {
134
+ if (!bodyText)
135
+ return undefined;
136
+ const result = {};
137
+ let hasOverride = false;
138
+ if (bodyText.fontFamily !== undefined && bodyText.fontFamily !== DEFAULT_BODY_TEXT_CONFIG.fontFamily) {
139
+ result.fontFamily = bodyText.fontFamily;
140
+ hasOverride = true;
141
+ }
142
+ if (bodyText.fontSize !== undefined && !dimensionsEqual(bodyText.fontSize, DEFAULT_BODY_TEXT_CONFIG.fontSize)) {
143
+ result.fontSize = bodyText.fontSize;
144
+ hasOverride = true;
145
+ }
146
+ if (bodyText.lineHeight !== undefined && !dimensionsEqual(bodyText.lineHeight, DEFAULT_BODY_TEXT_CONFIG.lineHeight)) {
147
+ result.lineHeight = bodyText.lineHeight;
148
+ hasOverride = true;
149
+ }
150
+ if (bodyText.color !== undefined && !colorsEqual(bodyText.color, DEFAULT_BODY_TEXT_CONFIG.color)) {
151
+ result.color = bodyText.color;
152
+ hasOverride = true;
153
+ }
154
+ if (bodyText.textAlign !== undefined && bodyText.textAlign !== DEFAULT_BODY_TEXT_CONFIG.textAlign) {
155
+ result.textAlign = bodyText.textAlign;
156
+ hasOverride = true;
157
+ }
158
+ if (bodyText.fontWeight !== undefined && bodyText.fontWeight !== DEFAULT_BODY_TEXT_CONFIG.fontWeight) {
159
+ result.fontWeight = bodyText.fontWeight;
160
+ hasOverride = true;
161
+ }
162
+ if (bodyText.boldFontWeight !== undefined && bodyText.boldFontWeight !== DEFAULT_BODY_TEXT_CONFIG.boldFontWeight) {
163
+ result.boldFontWeight = bodyText.boldFontWeight;
164
+ hasOverride = true;
165
+ }
166
+ if (bodyText.hyphenation && !hyphenationEqual(bodyText.hyphenation, DEFAULT_BODY_TEXT_CONFIG.hyphenation)) {
167
+ result.hyphenation = bodyText.hyphenation;
168
+ hasOverride = true;
169
+ }
170
+ return hasOverride ? result : undefined;
171
+ }
172
+ const DEFAULT_HEADING_FONT = 'Open Sans';
173
+ const DEFAULT_HEADING_LINE_HEIGHT = { value: 1.2, unit: 'em' };
174
+ const DEFAULT_HEADING_COLOR = { hex: '#000000', model: 'cmyk' };
175
+ const DEFAULT_HEADING_FONT_WEIGHT = 700;
176
+ const DEFAULT_HEADING_MARGIN_TOP = { value: 1.5, unit: 'em' };
177
+ const DEFAULT_HEADING_MARGIN_BOTTOM = { value: 0.5, unit: 'em' };
178
+ const DEFAULT_HEADING_LEVELS = [
179
+ { level: 1, fontSize: { value: 18, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
180
+ { level: 2, fontSize: { value: 15, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
181
+ { level: 3, fontSize: { value: 12, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
182
+ { level: 4, fontSize: { value: 10, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
183
+ { level: 5, fontSize: { value: 9, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
184
+ { level: 6, fontSize: { value: 8, unit: 'pt' }, lineHeight: DEFAULT_HEADING_LINE_HEIGHT, fontFamily: DEFAULT_HEADING_FONT, color: DEFAULT_HEADING_COLOR, fontWeight: DEFAULT_HEADING_FONT_WEIGHT, marginTop: DEFAULT_HEADING_MARGIN_TOP, marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM },
185
+ ];
186
+ export const DEFAULT_HEADINGS_CONFIG = {
187
+ fontFamily: DEFAULT_HEADING_FONT,
188
+ lineHeight: DEFAULT_HEADING_LINE_HEIGHT,
189
+ color: DEFAULT_HEADING_COLOR,
190
+ textAlign: 'left',
191
+ fontWeight: DEFAULT_HEADING_FONT_WEIGHT,
192
+ marginTop: DEFAULT_HEADING_MARGIN_TOP,
193
+ marginBottom: DEFAULT_HEADING_MARGIN_BOTTOM,
194
+ levels: DEFAULT_HEADING_LEVELS,
195
+ };
196
+ export function stripHeadingsDefaults(headings) {
197
+ if (!headings)
198
+ return undefined;
199
+ const result = {};
200
+ let hasOverride = false;
201
+ if (headings.fontFamily !== undefined && headings.fontFamily !== DEFAULT_HEADINGS_CONFIG.fontFamily) {
202
+ result.fontFamily = headings.fontFamily;
203
+ hasOverride = true;
204
+ }
205
+ if (headings.lineHeight !== undefined && !dimensionsEqual(headings.lineHeight, DEFAULT_HEADINGS_CONFIG.lineHeight)) {
206
+ result.lineHeight = headings.lineHeight;
207
+ hasOverride = true;
208
+ }
209
+ if (headings.color !== undefined && !colorsEqual(headings.color, DEFAULT_HEADINGS_CONFIG.color)) {
210
+ result.color = headings.color;
211
+ hasOverride = true;
212
+ }
213
+ if (headings.textAlign !== undefined && headings.textAlign !== DEFAULT_HEADINGS_CONFIG.textAlign) {
214
+ result.textAlign = headings.textAlign;
215
+ hasOverride = true;
216
+ }
217
+ if (headings.fontWeight !== undefined && headings.fontWeight !== DEFAULT_HEADINGS_CONFIG.fontWeight) {
218
+ result.fontWeight = headings.fontWeight;
219
+ hasOverride = true;
220
+ }
221
+ if (headings.marginTop !== undefined && !dimensionsEqual(headings.marginTop, DEFAULT_HEADINGS_CONFIG.marginTop)) {
222
+ result.marginTop = headings.marginTop;
223
+ hasOverride = true;
224
+ }
225
+ if (headings.marginBottom !== undefined && !dimensionsEqual(headings.marginBottom, DEFAULT_HEADINGS_CONFIG.marginBottom)) {
226
+ result.marginBottom = headings.marginBottom;
227
+ hasOverride = true;
228
+ }
229
+ if (headings.levels && headings.levels.length > 0) {
230
+ const strippedLevels = [];
231
+ for (const level of headings.levels) {
232
+ const def = DEFAULT_HEADING_LEVELS.find((d) => d.level === level.level);
233
+ if (!def) {
234
+ strippedLevels.push(level);
235
+ continue;
236
+ }
237
+ const entry = { level: level.level };
238
+ let levelHasOverride = false;
239
+ if (level.fontSize !== undefined && !dimensionsEqual(level.fontSize, def.fontSize)) {
240
+ entry.fontSize = level.fontSize;
241
+ levelHasOverride = true;
242
+ }
243
+ if (level.lineHeight !== undefined && !dimensionsEqual(level.lineHeight, def.lineHeight)) {
244
+ entry.lineHeight = level.lineHeight;
245
+ levelHasOverride = true;
246
+ }
247
+ if (level.fontFamily !== undefined && level.fontFamily !== def.fontFamily) {
248
+ entry.fontFamily = level.fontFamily;
249
+ levelHasOverride = true;
250
+ }
251
+ if (level.color !== undefined && !colorsEqual(level.color, def.color)) {
252
+ entry.color = level.color;
253
+ levelHasOverride = true;
254
+ }
255
+ if (level.fontWeight !== undefined && level.fontWeight !== def.fontWeight) {
256
+ entry.fontWeight = level.fontWeight;
257
+ levelHasOverride = true;
258
+ }
259
+ if (level.marginTop !== undefined && !dimensionsEqual(level.marginTop, def.marginTop)) {
260
+ entry.marginTop = level.marginTop;
261
+ levelHasOverride = true;
262
+ }
263
+ if (level.marginBottom !== undefined && !dimensionsEqual(level.marginBottom, def.marginBottom)) {
264
+ entry.marginBottom = level.marginBottom;
265
+ levelHasOverride = true;
266
+ }
267
+ if (levelHasOverride)
268
+ strippedLevels.push(entry);
269
+ }
270
+ if (strippedLevels.length > 0) {
271
+ result.levels = strippedLevels;
272
+ hasOverride = true;
273
+ }
274
+ }
275
+ return hasOverride ? result : undefined;
276
+ }
277
+ export function stripConfigDefaults(config) {
278
+ const result = { ...config };
279
+ const strippedPage = stripPageDefaults(config.page);
280
+ if (strippedPage) {
281
+ result.page = strippedPage;
282
+ }
283
+ else {
284
+ delete result.page;
285
+ }
286
+ const strippedLayout = stripLayoutDefaults(config.layout);
287
+ if (strippedLayout) {
288
+ result.layout = strippedLayout;
289
+ }
290
+ else {
291
+ delete result.layout;
292
+ }
293
+ const strippedBodyText = stripBodyTextDefaults(config.bodyText);
294
+ if (strippedBodyText) {
295
+ result.bodyText = strippedBodyText;
296
+ }
297
+ else {
298
+ delete result.bodyText;
299
+ }
300
+ const strippedHeadings = stripHeadingsDefaults(config.headings);
301
+ if (strippedHeadings) {
302
+ result.headings = strippedHeadings;
303
+ }
304
+ else {
305
+ delete result.headings;
306
+ }
307
+ return result;
308
+ }
309
+ export function resolvePageConfig(partial) {
310
+ if (!partial)
311
+ return { ...DEFAULT_PAGE_CONFIG };
312
+ return {
313
+ backgroundColor: partial.backgroundColor ?? DEFAULT_PAGE_CONFIG.backgroundColor,
314
+ sizePreset: partial.sizePreset ?? DEFAULT_PAGE_CONFIG.sizePreset,
315
+ width: partial.width ?? DEFAULT_PAGE_CONFIG.width,
316
+ height: partial.height ?? DEFAULT_PAGE_CONFIG.height,
317
+ margins: partial.margins
318
+ ? {
319
+ top: partial.margins.top ?? DEFAULT_PAGE_MARGINS.top,
320
+ bottom: partial.margins.bottom ?? DEFAULT_PAGE_MARGINS.bottom,
321
+ left: partial.margins.left ?? DEFAULT_PAGE_MARGINS.left,
322
+ right: partial.margins.right ?? DEFAULT_PAGE_MARGINS.right,
323
+ }
324
+ : { ...DEFAULT_PAGE_MARGINS },
325
+ dpi: partial.dpi ?? DEFAULT_PAGE_CONFIG.dpi,
326
+ cutLines: partial.cutLines ?? DEFAULT_PAGE_CONFIG.cutLines,
327
+ baselineGrid: partial.baselineGrid
328
+ ? {
329
+ enabled: partial.baselineGrid.enabled ?? DEFAULT_PAGE_CONFIG.baselineGrid.enabled,
330
+ color: partial.baselineGrid.color ?? DEFAULT_PAGE_CONFIG.baselineGrid.color,
331
+ lineWidth: partial.baselineGrid.lineWidth ?? DEFAULT_PAGE_CONFIG.baselineGrid.lineWidth,
332
+ }
333
+ : { ...DEFAULT_PAGE_CONFIG.baselineGrid },
334
+ };
335
+ }
336
+ export function resolveLayoutConfig(partial) {
337
+ if (!partial)
338
+ return { ...DEFAULT_LAYOUT_CONFIG };
339
+ return {
340
+ layoutType: partial.layoutType ?? DEFAULT_LAYOUT_CONFIG.layoutType,
341
+ gutterWidth: partial.gutterWidth ?? DEFAULT_LAYOUT_CONFIG.gutterWidth,
342
+ sideColumnPercent: partial.sideColumnPercent ?? DEFAULT_LAYOUT_CONFIG.sideColumnPercent,
343
+ };
344
+ }
345
+ export function resolveBodyTextConfig(partial) {
346
+ if (!partial)
347
+ return { ...DEFAULT_BODY_TEXT_CONFIG, hyphenation: { ...DEFAULT_HYPHENATION_CONFIG } };
348
+ return {
349
+ fontFamily: partial.fontFamily ?? DEFAULT_BODY_TEXT_CONFIG.fontFamily,
350
+ fontSize: partial.fontSize ?? DEFAULT_BODY_TEXT_CONFIG.fontSize,
351
+ lineHeight: partial.lineHeight ?? DEFAULT_BODY_TEXT_CONFIG.lineHeight,
352
+ color: partial.color ?? DEFAULT_BODY_TEXT_CONFIG.color,
353
+ textAlign: partial.textAlign ?? DEFAULT_BODY_TEXT_CONFIG.textAlign,
354
+ fontWeight: partial.fontWeight ?? DEFAULT_BODY_TEXT_CONFIG.fontWeight,
355
+ boldFontWeight: partial.boldFontWeight ?? DEFAULT_BODY_TEXT_CONFIG.boldFontWeight,
356
+ hyphenation: {
357
+ enabled: partial.hyphenation?.enabled ?? DEFAULT_HYPHENATION_CONFIG.enabled,
358
+ locale: partial.hyphenation?.locale ?? DEFAULT_HYPHENATION_CONFIG.locale,
359
+ },
360
+ };
361
+ }
362
+ export function resolveHeadingsConfig(partial) {
363
+ if (!partial)
364
+ return { ...DEFAULT_HEADINGS_CONFIG, levels: DEFAULT_HEADING_LEVELS.map((l) => ({ ...l })) };
365
+ const generalFont = partial.fontFamily ?? DEFAULT_HEADINGS_CONFIG.fontFamily;
366
+ const generalLineHeight = partial.lineHeight ?? DEFAULT_HEADINGS_CONFIG.lineHeight;
367
+ const generalColor = partial.color ?? DEFAULT_HEADINGS_CONFIG.color;
368
+ const generalTextAlign = partial.textAlign ?? DEFAULT_HEADINGS_CONFIG.textAlign;
369
+ const generalFontWeight = partial.fontWeight ?? DEFAULT_HEADINGS_CONFIG.fontWeight;
370
+ const generalMarginTop = partial.marginTop ?? DEFAULT_HEADINGS_CONFIG.marginTop;
371
+ const generalMarginBottom = partial.marginBottom ?? DEFAULT_HEADINGS_CONFIG.marginBottom;
372
+ const levels = DEFAULT_HEADING_LEVELS.map((def) => {
373
+ const override = partial.levels?.find((l) => l.level === def.level);
374
+ return {
375
+ level: def.level,
376
+ fontSize: override?.fontSize ?? def.fontSize,
377
+ lineHeight: override?.lineHeight ?? generalLineHeight,
378
+ fontFamily: override?.fontFamily ?? generalFont,
379
+ color: override?.color ?? generalColor,
380
+ fontWeight: override?.fontWeight ?? generalFontWeight,
381
+ marginTop: override?.marginTop ?? generalMarginTop,
382
+ marginBottom: override?.marginBottom ?? generalMarginBottom,
383
+ };
384
+ });
385
+ return { fontFamily: generalFont, lineHeight: generalLineHeight, color: generalColor, textAlign: generalTextAlign, fontWeight: generalFontWeight, marginTop: generalMarginTop, marginBottom: generalMarginBottom, levels };
386
+ }
387
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { HyphenationLocale } from './types';
2
+ /**
3
+ * Set the current hyphenation locale.
4
+ */
5
+ export declare function setHyphenationLocale(locale: HyphenationLocale): void;
6
+ /**
7
+ * Hyphenate a full text string by inserting soft hyphens at syllable boundaries.
8
+ * Only affects words, preserving all whitespace and punctuation.
9
+ */
10
+ export declare function hyphenateText(text: string, locale?: HyphenationLocale): string;
11
+ //# sourceMappingURL=hyphenate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyphenate.d.ts","sourceRoot":"","sources":["../src/hyphenate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgJjD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAG9E"}
@@ -0,0 +1,140 @@
1
+ const SOFT_HYPHEN = '\u00AD';
2
+ const MIN_WORD_LENGTH = 5;
3
+ const MIN_PREFIX = 2;
4
+ const MIN_SUFFIX = 3;
5
+ // ---------------------------------------------------------------------------
6
+ // Vowel sets per locale
7
+ // ---------------------------------------------------------------------------
8
+ const VOWELS = {
9
+ 'en-us': new Set('aeiouyAEIOUY'),
10
+ 'es': new Set('aeiouáéíóúüAEIOUÁÉÍÓÚÜ'),
11
+ 'fr': new Set('aeiouyàâæéèêëïîôœùûüÿAEIOUYÀÂÆÉÈÊËÏÎÔŒÙÛÜŸ'),
12
+ 'de': new Set('aeiouyäöüAEIOUYÄÖÜ'),
13
+ 'it': new Set('aeiouyàèéìíòóùúAEIOUYÀÈÉÌÍÒÓÙÚ'),
14
+ 'pt': new Set('aeiouyáâãàéêíóôõúüAEIOUYÁÂÃÀÉÊÍÓÔÕÚÜ'),
15
+ 'ca': new Set('aeiouyàèéíïòóúüAEIOUYÀÈÉÍÏÒÓÚÜ'),
16
+ 'nl': new Set('aeiouyAEIOUY'),
17
+ };
18
+ // ---------------------------------------------------------------------------
19
+ // Common prefixes & suffixes for better break points
20
+ // ---------------------------------------------------------------------------
21
+ const COMMON_PREFIXES = {
22
+ 'en-us': ['over', 'under', 'inter', 'trans', 'super', 'anti', 'auto', 'counter', 'dis', 'mis', 'non', 'pre', 'post', 'semi', 'sub', 'un', 're'],
23
+ 'es': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pre', 'post', 'semi', 'sub', 'in', 're'],
24
+ 'fr': ['contre', 'entre', 'inter', 'trans', 'super', 'anti', 'auto', 'pré', 'post', 'semi', 'sous', 'sur', 'dé', 're'],
25
+ 'de': ['über', 'unter', 'zwischen', 'gegen', 'wider', 'vor', 'nach', 'aus', 'ein', 'um', 'ab', 'an', 'auf', 'ver', 'zer', 'ent', 'emp', 'be', 'ge', 'miss'],
26
+ 'it': ['contro', 'inter', 'trans', 'sopra', 'sotto', 'anti', 'auto', 'pre', 'post', 'semi', 'dis', 'ri', 'in'],
27
+ 'pt': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pré', 'pós', 'semi', 'sub', 'in', 're'],
28
+ 'ca': ['des', 'inter', 'trans', 'sobre', 'contra', 'anti', 'auto', 'pre', 'post', 'semi', 'sub', 'in', 're'],
29
+ 'nl': ['over', 'onder', 'tussen', 'tegen', 'voor', 'ver', 'her', 'ont', 'be', 'ge'],
30
+ };
31
+ const COMMON_SUFFIXES = {
32
+ 'en-us': ['tion', 'sion', 'ment', 'ness', 'able', 'ible', 'ful', 'less', 'ous', 'ive', 'ing', 'ence', 'ance', 'ity'],
33
+ 'es': ['ción', 'sión', 'mente', 'miento', 'idad', 'ble', 'oso', 'ivo', 'ando', 'endo', 'ción', 'dad'],
34
+ 'fr': ['tion', 'sion', 'ment', 'eur', 'euse', 'able', 'ible', 'eux', 'ive', 'ence', 'ance', 'ité'],
35
+ 'de': ['ung', 'heit', 'keit', 'lich', 'isch', 'schaft', 'ment', 'tion', 'bar', 'sam', 'haft'],
36
+ 'it': ['zione', 'sione', 'mente', 'mento', 'ità', 'bile', 'oso', 'ivo', 'ando', 'endo'],
37
+ 'pt': ['ção', 'são', 'mente', 'mento', 'dade', 'vel', 'oso', 'ivo', 'ando', 'endo'],
38
+ 'ca': ['ció', 'sió', 'ment', 'tat', 'ble', 'ós', 'iu', 'ant', 'ent'],
39
+ 'nl': ['heid', 'lijk', 'ting', 'baar', 'zaam', 'isch', 'ment', 'sel'],
40
+ };
41
+ // ---------------------------------------------------------------------------
42
+ // Core hyphenation algorithm
43
+ // ---------------------------------------------------------------------------
44
+ function isVowel(char, vowelSet) {
45
+ return vowelSet.has(char);
46
+ }
47
+ function isConsonant(char, vowelSet) {
48
+ return /\p{L}/u.test(char) && !vowelSet.has(char);
49
+ }
50
+ /**
51
+ * Find syllable break points in a word using vowel/consonant patterns.
52
+ * Returns an array of indices where soft hyphens should be inserted.
53
+ */
54
+ function findBreakPoints(word, locale) {
55
+ if (word.length < MIN_WORD_LENGTH)
56
+ return [];
57
+ const vowelSet = VOWELS[locale] ?? VOWELS['en-us'];
58
+ const lower = word.toLowerCase();
59
+ const breaks = [];
60
+ // Check for prefix break
61
+ const prefixes = COMMON_PREFIXES[locale] ?? COMMON_PREFIXES['en-us'];
62
+ for (const prefix of prefixes) {
63
+ if (lower.startsWith(prefix) && word.length - prefix.length >= MIN_SUFFIX) {
64
+ breaks.push(prefix.length);
65
+ break;
66
+ }
67
+ }
68
+ // Check for suffix break
69
+ const suffixes = COMMON_SUFFIXES[locale] ?? COMMON_SUFFIXES['en-us'];
70
+ for (const suffix of suffixes) {
71
+ if (lower.endsWith(suffix) && word.length - suffix.length >= MIN_PREFIX) {
72
+ const idx = word.length - suffix.length;
73
+ if (!breaks.includes(idx))
74
+ breaks.push(idx);
75
+ break;
76
+ }
77
+ }
78
+ // V-CV pattern: break before a consonant followed by a vowel
79
+ // VC-CV pattern: break between consonants when surrounded by vowels
80
+ for (let i = MIN_PREFIX; i < word.length - MIN_SUFFIX + 1; i++) {
81
+ if (breaks.includes(i))
82
+ continue;
83
+ const prev = word[i - 1];
84
+ const curr = word[i];
85
+ const next = i + 1 < word.length ? word[i + 1] : '';
86
+ // Break before consonant + vowel (V-CV)
87
+ if (isVowel(prev, vowelSet) && isConsonant(curr, vowelSet) && next && isVowel(next, vowelSet)) {
88
+ breaks.push(i);
89
+ continue;
90
+ }
91
+ // Break between two consonants (VC-CV)
92
+ if (i >= 2) {
93
+ const prevPrev = word[i - 2];
94
+ if (isVowel(prevPrev, vowelSet) && isConsonant(prev, vowelSet) && isConsonant(curr, vowelSet) && next && isVowel(next, vowelSet)) {
95
+ breaks.push(i);
96
+ }
97
+ }
98
+ }
99
+ return breaks.sort((a, b) => a - b);
100
+ }
101
+ /**
102
+ * Insert soft hyphens into a word at syllable boundaries.
103
+ */
104
+ function hyphenateWord(word, locale) {
105
+ // Skip short words, words with existing hyphens, numbers, etc.
106
+ if (word.length < MIN_WORD_LENGTH)
107
+ return word;
108
+ if (/[\d]/.test(word))
109
+ return word;
110
+ const breakPoints = findBreakPoints(word, locale);
111
+ if (breakPoints.length === 0)
112
+ return word;
113
+ let result = '';
114
+ let lastIdx = 0;
115
+ for (const bp of breakPoints) {
116
+ result += word.slice(lastIdx, bp) + SOFT_HYPHEN;
117
+ lastIdx = bp;
118
+ }
119
+ result += word.slice(lastIdx);
120
+ return result;
121
+ }
122
+ // ---------------------------------------------------------------------------
123
+ // Public API
124
+ // ---------------------------------------------------------------------------
125
+ let currentLocale = 'en-us';
126
+ /**
127
+ * Set the current hyphenation locale.
128
+ */
129
+ export function setHyphenationLocale(locale) {
130
+ currentLocale = locale;
131
+ }
132
+ /**
133
+ * Hyphenate a full text string by inserting soft hyphens at syllable boundaries.
134
+ * Only affects words, preserving all whitespace and punctuation.
135
+ */
136
+ export function hyphenateText(text, locale) {
137
+ const loc = locale ?? currentLocale;
138
+ return text.replace(/\p{L}+/gu, (word) => hyphenateWord(word, loc));
139
+ }
140
+ //# sourceMappingURL=hyphenate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyphenate.js","sourceRoot":"","sources":["../src/hyphenate.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,13 @@
1
1
  export { createLayout } from './createLayout';
2
- export type { PostextContent, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, } from './types';
2
+ export { buildDocument } from './pipeline';
3
+ export { renderToCanvas, renderPage, renderPageToCanvas } from './canvas-backend';
4
+ export { dimensionToPx } from './units';
5
+ export { buildFontString, measureBlock, measureRichBlock, initHyphenator, clearMeasurementCache } from './measure';
6
+ export type { MeasuredBlock, MeasureBlockOptions } from './measure';
7
+ export { hyphenateText, setHyphenationLocale } from './hyphenate';
8
+ export { parseMarkdown } from './parse';
9
+ export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
10
+ export type { PostextContent, PostextResource, PostextNote, PostextConfig, PostextSectionOverride, ColumnConfig, ResourcePlacementConfig, TypographyConfig, ReferenceConfig, PlacementStrategy, ColorModel, ColorValue, DimensionUnit, Dimension, PageSizePreset, PageMargins, BaselineGridConfig, PageConfig, ResolvedPageConfig, LayoutType, LayoutConfig, ResolvedLayoutConfig, TextAlign, HyphenationLocale, HyphenationConfig, ResolvedHyphenationConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingLevelConfig, ResolvedHeadingLevelConfig, HeadingsConfig, ResolvedHeadingsConfig, } from './types';
11
+ export type { BoundingBox, ResolvedConfig, VDTBlockType, VDTLineSegment, VDTLine, VDTBlock, VDTColumn, VDTFootnoteArea, VDTPage, VDTDocument, } from './vdt';
12
+ export type { ContentBlock, ContentBlockType, InlineSpan } from './parse';
3
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC3Z,YAAY,EACV,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,GACZ,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,9 @@
1
1
  export { createLayout } from './createLayout';
2
+ export { buildDocument } from './pipeline';
3
+ export { renderToCanvas, renderPage, renderPageToCanvas } from './canvas-backend';
4
+ export { dimensionToPx } from './units';
5
+ export { buildFontString, measureBlock, measureRichBlock, initHyphenator, clearMeasurementCache } from './measure';
6
+ export { hyphenateText, setHyphenationLocale } from './hyphenate';
7
+ export { parseMarkdown } from './parse';
8
+ export { DEFAULT_PAGE_CONFIG, PAGE_SIZE_PRESETS, resolvePageConfig, DEFAULT_LAYOUT_CONFIG, resolveLayoutConfig, stripLayoutDefaults, DEFAULT_BODY_TEXT_CONFIG, DEFAULT_HYPHENATION_CONFIG, resolveBodyTextConfig, stripBodyTextDefaults, hyphenationEqual, DEFAULT_HEADINGS_CONFIG, resolveHeadingsConfig, stripHeadingsDefaults, dimensionsEqual, colorsEqual, stripPageDefaults, stripConfigDefaults } from './defaults';
2
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEnH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}