postext 0.1.7 → 0.1.9

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 (48) hide show
  1. package/README.md +48 -21
  2. package/dist/__tests__/exports.test.js +4 -0
  3. package/dist/__tests__/exports.test.js.map +1 -1
  4. package/dist/__tests__/frontmatter.test.d.ts +2 -0
  5. package/dist/__tests__/frontmatter.test.d.ts.map +1 -0
  6. package/dist/__tests__/frontmatter.test.js +41 -0
  7. package/dist/__tests__/frontmatter.test.js.map +1 -0
  8. package/dist/__tests__/numbering.test.d.ts +2 -0
  9. package/dist/__tests__/numbering.test.d.ts.map +1 -0
  10. package/dist/__tests__/numbering.test.js +95 -0
  11. package/dist/__tests__/numbering.test.js.map +1 -0
  12. package/dist/canvas-backend.d.ts.map +1 -1
  13. package/dist/canvas-backend.js +16 -7
  14. package/dist/canvas-backend.js.map +1 -1
  15. package/dist/defaults.d.ts +4 -1
  16. package/dist/defaults.d.ts.map +1 -1
  17. package/dist/defaults.js +80 -6
  18. package/dist/defaults.js.map +1 -1
  19. package/dist/frontmatter.d.ts +9 -0
  20. package/dist/frontmatter.d.ts.map +1 -0
  21. package/dist/frontmatter.js +15 -0
  22. package/dist/frontmatter.js.map +1 -0
  23. package/dist/index.d.ts +4 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/measure.d.ts +1 -1
  28. package/dist/measure.d.ts.map +1 -1
  29. package/dist/measure.js +34 -36
  30. package/dist/measure.js.map +1 -1
  31. package/dist/numbering.d.ts +16 -0
  32. package/dist/numbering.d.ts.map +1 -0
  33. package/dist/numbering.js +169 -0
  34. package/dist/numbering.js.map +1 -0
  35. package/dist/parse.d.ts +11 -0
  36. package/dist/parse.d.ts.map +1 -1
  37. package/dist/parse.js +188 -41
  38. package/dist/parse.js.map +1 -1
  39. package/dist/pipeline.d.ts.map +1 -1
  40. package/dist/pipeline.js +128 -16
  41. package/dist/pipeline.js.map +1 -1
  42. package/dist/types.d.ts +33 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/vdt.d.ts +22 -1
  45. package/dist/vdt.d.ts.map +1 -1
  46. package/dist/vdt.js +1 -0
  47. package/dist/vdt.js.map +1 -1
  48. package/package.json +3 -2
package/README.md CHANGED
@@ -43,15 +43,21 @@ const content: PostextContent = {
43
43
  };
44
44
 
45
45
  const config: PostextConfig = {
46
- columns: 3,
47
- gutter: '24px',
48
- typography: {
49
- orphans: 2,
50
- widows: 2,
51
- hyphenation: true,
46
+ page: {
47
+ sizePreset: '17x24',
48
+ dpi: 300,
52
49
  },
53
- references: {
54
- footnotes: { placement: 'columnBottom', marker: 'number' },
50
+ layout: {
51
+ layoutType: 'double',
52
+ gutterWidth: { value: 0.75, unit: 'cm' },
53
+ },
54
+ bodyText: {
55
+ fontFamily: 'EB Garamond',
56
+ fontSize: { value: 9, unit: 'pt' },
57
+ hyphenation: { enabled: true, locale: 'en-us' },
58
+ },
59
+ headings: {
60
+ fontFamily: 'Open Sans',
55
61
  },
56
62
  };
57
63
 
@@ -125,22 +131,43 @@ A reference note attached to the content.
125
131
 
126
132
  #### `PostextConfig`
127
133
 
128
- Top-level layout configuration.
134
+ Top-level layout configuration. All fields are optional — defaults are applied by the resolver functions.
135
+
136
+ | Field | Type | Description |
137
+ |---|---|---|
138
+ | `page?` | `PageConfig` | Page dimensions, margins, DPI, baseline grid, cut lines |
139
+ | `layout?` | `LayoutConfig` | Column arrangement (`layoutType`, `gutterWidth`, `sideColumnPercent`, `columnRule`) |
140
+ | `bodyText?` | `BodyTextConfig` | Body text typography (font, size, line height, hyphenation, indentation) |
141
+ | `headings?` | `HeadingsConfig` | Heading typography with per-level overrides (H1–H6) |
142
+ | `debug?` | `DebugConfig` | Editor-only sync indicators (`cursorSync`, `selectionSync`) |
143
+ | `columnConfig?` | `ColumnConfig` | Reserved — advanced column control, not yet processed by the engine |
144
+ | `resourcePlacement?` | `ResourcePlacementConfig` | Reserved — advanced resource placement |
145
+ | `typography?` | `TypographyConfig` | Reserved — advanced typographic rules (orphans, widows, keep-together) |
146
+ | `references?` | `ReferenceConfig` | Reserved — footnote/endnote/numbering settings |
147
+ | `sectionOverrides?` | `PostextSectionOverride[]` | Reserved — per-section rule overrides |
148
+ | `renderer?` | `'web' \| 'pdf'` | Reserved — output format selector |
149
+ | `columns?` | `number` | Legacy — superseded by `layout.layoutType`. Kept in the type for backward compatibility |
150
+ | `gutter?` | `string` | Legacy — superseded by `layout.gutterWidth`. Kept in the type for backward compatibility |
151
+
152
+ For the full reference (all fields, defaults, resolver and stripper utilities) see the [Configuration docs](https://postext.dev/en/docs/configuration).
153
+
154
+ #### `DebugConfig`
155
+
156
+ Visual indicators rendered by the interactive editor to keep source text and layout in sync. Ignored by exported output.
157
+
158
+ | Field | Type | Description |
159
+ |---|---|---|
160
+ | `cursorSync?` | `SyncIndicatorConfig` | Caret mirror in the rendered layout. Default: enabled, `#2563eb` |
161
+ | `selectionSync?` | `SyncIndicatorConfig` | Highlighted range matching the source selection. Default: enabled, `#fde04780` |
162
+
163
+ `SyncIndicatorConfig` is `{ enabled: boolean; color?: ColorValue }`.
164
+
165
+ #### `HyphenationConfig`
129
166
 
130
167
  | Field | Type | Description |
131
168
  |---|---|---|
132
- | `page?` | `PageConfig` | Page dimensions and margins |
133
- | `layout?` | `LayoutConfig` | General layout settings |
134
- | `bodyText?` | `BodyTextConfig` | Body text font, size, and line height |
135
- | `headings?` | `HeadingsConfig` | Heading styles configuration |
136
- | `columns?` | `number` | Number of columns |
137
- | `gutter?` | `string` | Space between columns (e.g., `'24px'`) |
138
- | `columnConfig?` | `ColumnConfig` | Detailed column settings |
139
- | `resourcePlacement?` | `ResourcePlacementConfig` | Resource placement strategy |
140
- | `typography?` | `TypographyConfig` | Typographic quality rules |
141
- | `references?` | `ReferenceConfig` | Footnote/endnote/numbering settings |
142
- | `sectionOverrides?` | `PostextSectionOverride[]` | Per-section rule overrides |
143
- | `renderer?` | `'web' \| 'pdf'` | Output format |
169
+ | `enabled?` | `boolean` | Whether to allow hyphenation. Default `true` |
170
+ | `locale?` | `HyphenationLocale` | `'en-us' \| 'es' \| 'fr' \| 'de' \| 'it' \| 'pt' \| 'ca' \| 'nl'`. Default `'en-us'` |
144
171
 
145
172
  #### `ColumnConfig`
146
173
 
@@ -22,6 +22,7 @@ describe("package exports", () => {
22
22
  "hyphenateText",
23
23
  "setHyphenationLocale",
24
24
  "parseMarkdown",
25
+ "extractFrontmatter",
25
26
  "DEFAULT_PAGE_CONFIG",
26
27
  "DEFAULT_CUT_LINES",
27
28
  "PAGE_SIZE_PRESETS",
@@ -42,6 +43,9 @@ describe("package exports", () => {
42
43
  "colorsEqual",
43
44
  "stripPageDefaults",
44
45
  "stripConfigDefaults",
46
+ "DEFAULT_DEBUG_CONFIG",
47
+ "resolveDebugConfig",
48
+ "stripDebugDefaults",
45
49
  ]);
46
50
  });
47
51
  });
@@ -1 +1 @@
1
- {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;YAC3B,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,uBAAuB;YACvB,eAAe;YACf,sBAAsB;YACtB,eAAe;YACf,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,0BAA0B;YAC1B,4BAA4B;YAC5B,uBAAuB;YACvB,uBAAuB;YACvB,kBAAkB;YAClB,yBAAyB;YACzB,uBAAuB;YACvB,uBAAuB;YACvB,iBAAiB;YACjB,aAAa;YACb,mBAAmB;YACnB,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;YAC3B,cAAc;YACd,eAAe;YACf,gBAAgB;YAChB,YAAY;YACZ,oBAAoB;YACpB,eAAe;YACf,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,uBAAuB;YACvB,eAAe;YACf,sBAAsB;YACtB,eAAe;YACf,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,0BAA0B;YAC1B,4BAA4B;YAC5B,uBAAuB;YACvB,uBAAuB;YACvB,kBAAkB;YAClB,yBAAyB;YACzB,uBAAuB;YACvB,uBAAuB;YACvB,iBAAiB;YACjB,aAAa;YACb,mBAAmB;YACnB,qBAAqB;YACrB,sBAAsB;YACtB,oBAAoB;YACpB,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=frontmatter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/frontmatter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { extractFrontmatter } from "../frontmatter";
3
+ describe("extractFrontmatter", () => {
4
+ it("parses a YAML frontmatter block and strips it from the content", () => {
5
+ const input = `---
6
+ title: "Hello"
7
+ subtitle: "World"
8
+ author: "Ignacio"
9
+ publishDate: "2026-04-14"
10
+ ---
11
+
12
+ # Heading
13
+
14
+ Body text.`;
15
+ const { metadata, content } = extractFrontmatter(input);
16
+ expect(metadata.title).toBe("Hello");
17
+ expect(metadata.subtitle).toBe("World");
18
+ expect(metadata.author).toBe("Ignacio");
19
+ expect(metadata.publishDate).toBe("2026-04-14");
20
+ expect(content.trimStart().startsWith("# Heading")).toBe(true);
21
+ expect(content.includes("---")).toBe(false);
22
+ });
23
+ it("returns empty metadata when no frontmatter is present", () => {
24
+ const input = `# Heading\n\nBody text.`;
25
+ const { metadata, content } = extractFrontmatter(input);
26
+ expect(metadata).toEqual({});
27
+ expect(content).toBe(input);
28
+ });
29
+ it("preserves unknown keys for future extension", () => {
30
+ const input = `---
31
+ title: "T"
32
+ customKey: "custom value"
33
+ ---
34
+
35
+ Body`;
36
+ const { metadata } = extractFrontmatter(input);
37
+ expect(metadata.title).toBe("T");
38
+ expect(metadata.customKey).toBe("custom value");
39
+ });
40
+ });
41
+ //# sourceMappingURL=frontmatter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.test.js","sourceRoot":"","sources":["../../src/__tests__/frontmatter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,KAAK,GAAG;;;;;;;;;WASP,CAAC;QAER,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACxC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG;;;;;KAKb,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=numbering.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbering.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/numbering.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,95 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseTemplate, formatNumeral, computeHeadingNumbers } from '../numbering';
3
+ describe('formatNumeral', () => {
4
+ it('formats decimal', () => {
5
+ expect(formatNumeral(1, 'decimal')).toBe('1');
6
+ expect(formatNumeral(10, 'decimal')).toBe('10');
7
+ });
8
+ it('formats zero-padded', () => {
9
+ expect(formatNumeral(1, 'decimal-02')).toBe('01');
10
+ expect(formatNumeral(10, 'decimal-02')).toBe('10');
11
+ });
12
+ it('formats upper-alpha bijective', () => {
13
+ expect(formatNumeral(1, 'upper-alpha')).toBe('A');
14
+ expect(formatNumeral(26, 'upper-alpha')).toBe('Z');
15
+ expect(formatNumeral(27, 'upper-alpha')).toBe('AA');
16
+ expect(formatNumeral(52, 'upper-alpha')).toBe('AZ');
17
+ });
18
+ it('formats lower-alpha', () => {
19
+ expect(formatNumeral(1, 'lower-alpha')).toBe('a');
20
+ expect(formatNumeral(27, 'lower-alpha')).toBe('aa');
21
+ });
22
+ it('formats roman', () => {
23
+ expect(formatNumeral(1, 'upper-roman')).toBe('I');
24
+ expect(formatNumeral(4, 'upper-roman')).toBe('IV');
25
+ expect(formatNumeral(9, 'upper-roman')).toBe('IX');
26
+ expect(formatNumeral(1994, 'upper-roman')).toBe('MCMXCIV');
27
+ expect(formatNumeral(2, 'lower-roman')).toBe('ii');
28
+ });
29
+ it('returns empty for 0', () => {
30
+ expect(formatNumeral(0, 'decimal')).toBe('');
31
+ });
32
+ });
33
+ describe('parseTemplate', () => {
34
+ it('parses literal', () => {
35
+ expect(parseTemplate('Hello')).toEqual([{ kind: 'literal', text: 'Hello' }]);
36
+ });
37
+ it('parses simple counter', () => {
38
+ expect(parseTemplate('{1}')).toEqual([{ kind: 'counter', level: 1, style: 'decimal' }]);
39
+ });
40
+ it('parses counter with style', () => {
41
+ expect(parseTemplate('{2:I}')).toEqual([{ kind: 'counter', level: 2, style: 'upper-roman' }]);
42
+ });
43
+ it('parses mixed', () => {
44
+ const tokens = parseTemplate('{1}.{2}');
45
+ expect(tokens).toEqual([
46
+ { kind: 'counter', level: 1, style: 'decimal' },
47
+ { kind: 'literal', text: '.' },
48
+ { kind: 'counter', level: 2, style: 'decimal' },
49
+ ]);
50
+ });
51
+ it('escapes braces', () => {
52
+ expect(parseTemplate('\\{1\\}')).toEqual([{ kind: 'literal', text: '{1}' }]);
53
+ });
54
+ });
55
+ function h(level) {
56
+ return { type: 'heading', level, text: 'h', spans: [{ text: 'h', bold: false, italic: false }], sourceStart: 0, sourceEnd: 0, sourceMap: [0] };
57
+ }
58
+ function p() {
59
+ return { type: 'paragraph', text: 'p', spans: [{ text: 'p', bold: false, italic: false }], sourceStart: 0, sourceEnd: 0, sourceMap: [0] };
60
+ }
61
+ describe('computeHeadingNumbers', () => {
62
+ it('assigns sequential decimals', () => {
63
+ const blocks = [h(1), h(1), h(1)];
64
+ const out = computeHeadingNumbers(blocks, { 1: '{1}.' });
65
+ expect(out).toEqual(['1.', '2.', '3.']);
66
+ });
67
+ it('resets children when parent increments', () => {
68
+ const blocks = [h(1), h(2), h(2), h(1), h(2)];
69
+ const out = computeHeadingNumbers(blocks, { 1: '{1}.', 2: '{1}.{2}' });
70
+ expect(out).toEqual(['1.', '1.1', '1.2', '2.', '2.1']);
71
+ });
72
+ it('no numbering for empty template', () => {
73
+ const blocks = [h(1), h(2)];
74
+ const out = computeHeadingNumbers(blocks, { 2: '{2:A}' });
75
+ expect(out[0]).toBeUndefined();
76
+ expect(out[1]).toBe('A');
77
+ });
78
+ it('user example: L4 = {1}.{2:I}.{3}', () => {
79
+ const blocks = [h(1), h(2), h(3), h(4), h(4)];
80
+ const out = computeHeadingNumbers(blocks, { 4: '{1}.{2:I}.{3}' });
81
+ expect(out[3]).toBe('1.I.1');
82
+ expect(out[4]).toBe('1.I.1');
83
+ });
84
+ it('collapses separator when ancestor counter is 0', () => {
85
+ const blocks = [h(2)];
86
+ const out = computeHeadingNumbers(blocks, { 2: '{1}.{2}' });
87
+ expect(out[0]).toBe('1');
88
+ });
89
+ it('skips non-heading blocks', () => {
90
+ const blocks = [h(1), p(), h(1)];
91
+ const out = computeHeadingNumbers(blocks, { 1: '{1}' });
92
+ expect(out).toEqual(['1', undefined, '2']);
93
+ });
94
+ });
95
+ //# sourceMappingURL=numbering.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbering.test.js","sourceRoot":"","sources":["../../src/__tests__/numbering.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-backend.d.ts","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAA6C,MAAM,OAAO,CAAC;AA6O7F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAwEN;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,GACf,iBAAiB,CAInB;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAEpE"}
1
+ {"version":3,"file":"canvas-backend.d.ts","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAA6C,MAAM,OAAO,CAAC;AAyQ7F,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAwEN;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,GACf,iBAAiB,CAInB;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,iBAAiB,EAAE,CAEpE"}
@@ -95,10 +95,19 @@ function renderCutLines(ctx, page, doc) {
95
95
  // ---------------------------------------------------------------------------
96
96
  // Text rendering
97
97
  // ---------------------------------------------------------------------------
98
- function renderLine(ctx, line, font, boldFont, color, textAlign, columnWidth, columnX) {
98
+ function pickSegmentFont(bold, italic, font, boldFont, italicFont, boldItalicFont) {
99
+ if (bold && italic && boldItalicFont)
100
+ return boldItalicFont;
101
+ if (bold && boldFont)
102
+ return boldFont;
103
+ if (italic && italicFont)
104
+ return italicFont;
105
+ return font;
106
+ }
107
+ function renderLine(ctx, line, font, boldFont, italicFont, boldItalicFont, color, textAlign, columnWidth, columnX) {
99
108
  ctx.fillStyle = color;
100
109
  ctx.textBaseline = 'alphabetic';
101
- const hasBoldSegments = boldFont && line.segments && line.segments.some((s) => s.bold);
110
+ const hasRichSegments = line.segments && line.segments.some((s) => s.bold || s.italic);
102
111
  // Effective width accounts for line-level indent (e.g. first-line or hanging indent)
103
112
  const lineIndent = line.bbox.x - columnX;
104
113
  const effectiveWidth = columnWidth - lineIndent;
@@ -120,7 +129,7 @@ function renderLine(ctx, line, font, boldFont, color, textAlign, columnWidth, co
120
129
  x += justifiedSpaceWidth;
121
130
  }
122
131
  else {
123
- ctx.font = seg.bold && boldFont ? boldFont : font;
132
+ ctx.font = pickSegmentFont(!!seg.bold, !!seg.italic, font, boldFont, italicFont, boldItalicFont);
124
133
  ctx.fillText(seg.text, x, line.baseline);
125
134
  x += seg.width;
126
135
  }
@@ -129,15 +138,15 @@ function renderLine(ctx, line, font, boldFont, color, textAlign, columnWidth, co
129
138
  }
130
139
  }
131
140
  // Ragged (left-aligned) rendering — also used for last lines of justified blocks
132
- // If there are bold segments, render per-segment to apply correct fonts
133
- if (hasBoldSegments && line.segments) {
141
+ // If there are bold/italic segments, render per-segment to apply correct fonts
142
+ if (hasRichSegments && line.segments) {
134
143
  let x = line.bbox.x;
135
144
  for (const seg of line.segments) {
136
145
  if (seg.kind === 'space') {
137
146
  x += seg.width;
138
147
  }
139
148
  else {
140
- ctx.font = seg.bold && boldFont ? boldFont : font;
149
+ ctx.font = pickSegmentFont(!!seg.bold, !!seg.italic, font, boldFont, italicFont, boldItalicFont);
141
150
  ctx.fillText(seg.text, x, line.baseline);
142
151
  x += seg.width;
143
152
  }
@@ -149,7 +158,7 @@ function renderLine(ctx, line, font, boldFont, color, textAlign, columnWidth, co
149
158
  }
150
159
  function renderBlock(ctx, block, columnWidth, columnX) {
151
160
  for (const line of block.lines) {
152
- renderLine(ctx, line, block.fontString, block.boldFontString, block.color, block.textAlign, columnWidth, columnX);
161
+ renderLine(ctx, line, block.fontString, block.boldFontString, block.italicFontString, block.boldItalicFontString, block.color, block.textAlign, columnWidth, columnX);
153
162
  }
154
163
  }
155
164
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-backend.js","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-backend.js","sourceRoot":"","sources":["../src/canvas-backend.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PageConfig, ResolvedPageConfig, PageSizePreset, Dimension, PostextConfig, LayoutConfig, ResolvedLayoutConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingsConfig, ResolvedHeadingsConfig, ColorValue, HyphenationConfig } from './types';
1
+ import type { PageConfig, ResolvedPageConfig, PageSizePreset, Dimension, PostextConfig, LayoutConfig, ResolvedLayoutConfig, BodyTextConfig, ResolvedBodyTextConfig, HeadingsConfig, ResolvedHeadingsConfig, ColorValue, HyphenationConfig, DebugConfig, ResolvedDebugConfig } from './types';
2
2
  export declare const PAGE_SIZE_PRESETS: Record<Exclude<PageSizePreset, 'custom'>, {
3
3
  width: Dimension;
4
4
  height: Dimension;
@@ -49,6 +49,9 @@ export declare function hyphenationEqual(a: HyphenationConfig | undefined, b: Hy
49
49
  export declare function stripBodyTextDefaults(bodyText?: BodyTextConfig): BodyTextConfig | undefined;
50
50
  export declare const DEFAULT_HEADINGS_CONFIG: ResolvedHeadingsConfig;
51
51
  export declare function stripHeadingsDefaults(headings?: HeadingsConfig): HeadingsConfig | undefined;
52
+ export declare const DEFAULT_DEBUG_CONFIG: ResolvedDebugConfig;
53
+ export declare function resolveDebugConfig(partial?: DebugConfig): ResolvedDebugConfig;
54
+ export declare function stripDebugDefaults(debug?: DebugConfig): DebugConfig | undefined;
52
55
  export declare function stripConfigDefaults(config: PostextConfig): PostextConfig;
53
56
  export declare function resolvePageConfig(partial?: PageConfig): ResolvedPageConfig;
54
57
  export declare function resolveLayoutConfig(partial?: LayoutConfig): ResolvedLayoutConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAe,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAsB,sBAAsB,EAA8B,UAAU,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAC;AAExU,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAMxC,CAAC;AASF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBASjC,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEnE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CA0E3E;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;CAI/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,oBAKnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAwCnF;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,aAAa,CAG5E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,sBAWtC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAK5G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAgD3F;AAkBD,eAAO,MAAM,uBAAuB,EAAE,sBASrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CA8E3F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CA2BxE;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,kBAAkB,CA0B1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAehF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAkBtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CA0BtF"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAe,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,cAAc,EAAsB,sBAAsB,EAA8B,UAAU,EAAE,iBAAiB,EAAkB,WAAW,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE1W,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAMxC,CAAC;AASF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBASjC,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAEnE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CA0E3E;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;CAI/B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,oBAKnC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAwCnF;AAED,eAAO,MAAM,0BAA0B,EAAE,sBAAsB,CAAC,aAAa,CAG5E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,sBAYtC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAAC,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAK5G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAoD3F;AAkBD,eAAO,MAAM,uBAAuB,EAAE,sBASrC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAsF3F;AAED,eAAO,MAAM,oBAAoB,EAAE,mBAGlC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAiB7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CA6B/E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAiCxE;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,kBAAkB,CA0B1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAehF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAmBtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CA4BtF"}
package/dist/defaults.js CHANGED
@@ -165,6 +165,7 @@ export const DEFAULT_BODY_TEXT_CONFIG = {
165
165
  fontFamily: 'EB Garamond',
166
166
  fontSize: { value: 9, unit: 'pt' },
167
167
  lineHeight: { value: 1.5, unit: 'em' },
168
+ paragraphSpacing: false,
168
169
  color: { hex: '#000000', model: 'cmyk' },
169
170
  textAlign: 'justify',
170
171
  fontWeight: 400,
@@ -198,6 +199,10 @@ export function stripBodyTextDefaults(bodyText) {
198
199
  result.lineHeight = bodyText.lineHeight;
199
200
  hasOverride = true;
200
201
  }
202
+ if (bodyText.paragraphSpacing !== undefined && bodyText.paragraphSpacing !== DEFAULT_BODY_TEXT_CONFIG.paragraphSpacing) {
203
+ result.paragraphSpacing = bodyText.paragraphSpacing;
204
+ hasOverride = true;
205
+ }
201
206
  if (bodyText.color !== undefined && !colorsEqual(bodyText.color, DEFAULT_BODY_TEXT_CONFIG.color)) {
202
207
  result.color = bodyText.color;
203
208
  hasOverride = true;
@@ -235,12 +240,12 @@ const DEFAULT_HEADING_FONT_WEIGHT = 700;
235
240
  const DEFAULT_HEADING_MARGIN_TOP = { value: 1.5, unit: 'em' };
236
241
  const DEFAULT_HEADING_MARGIN_BOTTOM = { value: 0.5, unit: 'em' };
237
242
  const DEFAULT_HEADING_LEVELS = [
238
- { 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 },
239
- { 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 },
240
- { 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 },
241
- { 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 },
242
- { 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 },
243
- { 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 },
243
+ { 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, numberingTemplate: '', italic: false },
244
+ { 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, numberingTemplate: '', italic: false },
245
+ { 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, numberingTemplate: '', italic: false },
246
+ { 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, numberingTemplate: '', italic: false },
247
+ { 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, numberingTemplate: '', italic: false },
248
+ { 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, numberingTemplate: '', italic: false },
244
249
  ];
245
250
  export const DEFAULT_HEADINGS_CONFIG = {
246
251
  fontFamily: DEFAULT_HEADING_FONT,
@@ -323,6 +328,14 @@ export function stripHeadingsDefaults(headings) {
323
328
  entry.marginBottom = level.marginBottom;
324
329
  levelHasOverride = true;
325
330
  }
331
+ if (level.numberingTemplate !== undefined && level.numberingTemplate !== def.numberingTemplate) {
332
+ entry.numberingTemplate = level.numberingTemplate;
333
+ levelHasOverride = true;
334
+ }
335
+ if (level.italic !== undefined && level.italic !== def.italic) {
336
+ entry.italic = level.italic;
337
+ levelHasOverride = true;
338
+ }
326
339
  if (levelHasOverride)
327
340
  strippedLevels.push(entry);
328
341
  }
@@ -333,6 +346,57 @@ export function stripHeadingsDefaults(headings) {
333
346
  }
334
347
  return hasOverride ? result : undefined;
335
348
  }
349
+ export const DEFAULT_DEBUG_CONFIG = {
350
+ cursorSync: { enabled: true, color: { hex: '#2563eb', model: 'hex' } },
351
+ selectionSync: { enabled: true, color: { hex: '#fde04780', model: 'hex' } },
352
+ };
353
+ export function resolveDebugConfig(partial) {
354
+ if (!partial) {
355
+ return {
356
+ cursorSync: { ...DEFAULT_DEBUG_CONFIG.cursorSync },
357
+ selectionSync: { ...DEFAULT_DEBUG_CONFIG.selectionSync },
358
+ };
359
+ }
360
+ return {
361
+ cursorSync: {
362
+ enabled: partial.cursorSync?.enabled ?? DEFAULT_DEBUG_CONFIG.cursorSync.enabled,
363
+ color: partial.cursorSync?.color ?? DEFAULT_DEBUG_CONFIG.cursorSync.color,
364
+ },
365
+ selectionSync: {
366
+ enabled: partial.selectionSync?.enabled ?? DEFAULT_DEBUG_CONFIG.selectionSync.enabled,
367
+ color: partial.selectionSync?.color ?? DEFAULT_DEBUG_CONFIG.selectionSync.color,
368
+ },
369
+ };
370
+ }
371
+ export function stripDebugDefaults(debug) {
372
+ if (!debug)
373
+ return undefined;
374
+ const result = {};
375
+ let hasOverride = false;
376
+ if (debug.cursorSync) {
377
+ const enabledOverride = debug.cursorSync.enabled !== undefined && debug.cursorSync.enabled !== DEFAULT_DEBUG_CONFIG.cursorSync.enabled;
378
+ const colorOverride = debug.cursorSync.color !== undefined && !colorsEqual(debug.cursorSync.color, DEFAULT_DEBUG_CONFIG.cursorSync.color);
379
+ if (enabledOverride || colorOverride) {
380
+ result.cursorSync = {
381
+ enabled: debug.cursorSync.enabled ?? DEFAULT_DEBUG_CONFIG.cursorSync.enabled,
382
+ ...(colorOverride ? { color: debug.cursorSync.color } : {}),
383
+ };
384
+ hasOverride = true;
385
+ }
386
+ }
387
+ if (debug.selectionSync) {
388
+ const enabledOverride = debug.selectionSync.enabled !== undefined && debug.selectionSync.enabled !== DEFAULT_DEBUG_CONFIG.selectionSync.enabled;
389
+ const colorOverride = debug.selectionSync.color !== undefined && !colorsEqual(debug.selectionSync.color, DEFAULT_DEBUG_CONFIG.selectionSync.color);
390
+ if (enabledOverride || colorOverride) {
391
+ result.selectionSync = {
392
+ enabled: debug.selectionSync.enabled ?? DEFAULT_DEBUG_CONFIG.selectionSync.enabled,
393
+ ...(colorOverride ? { color: debug.selectionSync.color } : {}),
394
+ };
395
+ hasOverride = true;
396
+ }
397
+ }
398
+ return hasOverride ? result : undefined;
399
+ }
336
400
  export function stripConfigDefaults(config) {
337
401
  const result = { ...config };
338
402
  const strippedPage = stripPageDefaults(config.page);
@@ -363,6 +427,13 @@ export function stripConfigDefaults(config) {
363
427
  else {
364
428
  delete result.headings;
365
429
  }
430
+ const strippedDebug = stripDebugDefaults(config.debug);
431
+ if (strippedDebug) {
432
+ result.debug = strippedDebug;
433
+ }
434
+ else {
435
+ delete result.debug;
436
+ }
366
437
  return result;
367
438
  }
368
439
  function resolveCutLines(raw) {
@@ -430,6 +501,7 @@ export function resolveBodyTextConfig(partial) {
430
501
  fontFamily: partial.fontFamily ?? DEFAULT_BODY_TEXT_CONFIG.fontFamily,
431
502
  fontSize: partial.fontSize ?? DEFAULT_BODY_TEXT_CONFIG.fontSize,
432
503
  lineHeight: partial.lineHeight ?? DEFAULT_BODY_TEXT_CONFIG.lineHeight,
504
+ paragraphSpacing: partial.paragraphSpacing ?? DEFAULT_BODY_TEXT_CONFIG.paragraphSpacing,
433
505
  color: partial.color ?? DEFAULT_BODY_TEXT_CONFIG.color,
434
506
  textAlign: partial.textAlign ?? DEFAULT_BODY_TEXT_CONFIG.textAlign,
435
507
  fontWeight: partial.fontWeight ?? DEFAULT_BODY_TEXT_CONFIG.fontWeight,
@@ -463,6 +535,8 @@ export function resolveHeadingsConfig(partial) {
463
535
  fontWeight: override?.fontWeight ?? generalFontWeight,
464
536
  marginTop: override?.marginTop ?? generalMarginTop,
465
537
  marginBottom: override?.marginBottom ?? generalMarginBottom,
538
+ numberingTemplate: override?.numberingTemplate ?? def.numberingTemplate,
539
+ italic: override?.italic ?? def.italic,
466
540
  };
467
541
  });
468
542
  return { fontFamily: generalFont, lineHeight: generalLineHeight, color: generalColor, textAlign: generalTextAlign, fontWeight: generalFontWeight, marginTop: generalMarginTop, marginBottom: generalMarginBottom, levels };