postext 1.41.0 → 1.42.0

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 (199) hide show
  1. package/dist/__tests__/bundleFontFallback.test.d.ts +2 -0
  2. package/dist/__tests__/bundleFontFallback.test.d.ts.map +1 -0
  3. package/dist/__tests__/bundleFontFallback.test.js +127 -0
  4. package/dist/__tests__/bundleFontFallback.test.js.map +1 -0
  5. package/dist/__tests__/calloutBodyLetterSpacing.test.d.ts +2 -0
  6. package/dist/__tests__/calloutBodyLetterSpacing.test.d.ts.map +1 -0
  7. package/dist/__tests__/calloutBodyLetterSpacing.test.js +83 -0
  8. package/dist/__tests__/calloutBodyLetterSpacing.test.js.map +1 -0
  9. package/dist/__tests__/composed/autoWidth.test.d.ts +2 -0
  10. package/dist/__tests__/composed/autoWidth.test.d.ts.map +1 -0
  11. package/dist/__tests__/composed/autoWidth.test.js +82 -0
  12. package/dist/__tests__/composed/autoWidth.test.js.map +1 -0
  13. package/dist/__tests__/composed/crossChapterOutline.test.d.ts +2 -0
  14. package/dist/__tests__/composed/crossChapterOutline.test.d.ts.map +1 -0
  15. package/dist/__tests__/composed/crossChapterOutline.test.js +156 -0
  16. package/dist/__tests__/composed/crossChapterOutline.test.js.map +1 -0
  17. package/dist/__tests__/composed/decorationRemove.test.d.ts +2 -0
  18. package/dist/__tests__/composed/decorationRemove.test.d.ts.map +1 -0
  19. package/dist/__tests__/composed/decorationRemove.test.js +69 -0
  20. package/dist/__tests__/composed/decorationRemove.test.js.map +1 -0
  21. package/dist/__tests__/composed/figureWords.test.js +25 -0
  22. package/dist/__tests__/composed/figureWords.test.js.map +1 -1
  23. package/dist/__tests__/composed/footHold.test.d.ts +2 -0
  24. package/dist/__tests__/composed/footHold.test.d.ts.map +1 -0
  25. package/dist/__tests__/composed/footHold.test.js +83 -0
  26. package/dist/__tests__/composed/footHold.test.js.map +1 -0
  27. package/dist/__tests__/composed/frameLook.test.d.ts +2 -0
  28. package/dist/__tests__/composed/frameLook.test.d.ts.map +1 -0
  29. package/dist/__tests__/composed/frameLook.test.js +120 -0
  30. package/dist/__tests__/composed/frameLook.test.js.map +1 -0
  31. package/dist/__tests__/composed/framePictures.test.js +58 -0
  32. package/dist/__tests__/composed/framePictures.test.js.map +1 -1
  33. package/dist/__tests__/composed/headingBadge.test.d.ts +2 -0
  34. package/dist/__tests__/composed/headingBadge.test.d.ts.map +1 -0
  35. package/dist/__tests__/composed/headingBadge.test.js +91 -0
  36. package/dist/__tests__/composed/headingBadge.test.js.map +1 -0
  37. package/dist/__tests__/composed/labels.test.js +3 -0
  38. package/dist/__tests__/composed/labels.test.js.map +1 -1
  39. package/dist/__tests__/composed/labelsChecks.test.js +69 -0
  40. package/dist/__tests__/composed/labelsChecks.test.js.map +1 -1
  41. package/dist/__tests__/composed/labelsMirrored.test.js +33 -0
  42. package/dist/__tests__/composed/labelsMirrored.test.js.map +1 -1
  43. package/dist/__tests__/composed/layoutMemo.test.d.ts +2 -0
  44. package/dist/__tests__/composed/layoutMemo.test.d.ts.map +1 -0
  45. package/dist/__tests__/composed/layoutMemo.test.js +150 -0
  46. package/dist/__tests__/composed/layoutMemo.test.js.map +1 -0
  47. package/dist/__tests__/composed/tocFrame.test.d.ts +2 -0
  48. package/dist/__tests__/composed/tocFrame.test.d.ts.map +1 -0
  49. package/dist/__tests__/composed/tocFrame.test.js +167 -0
  50. package/dist/__tests__/composed/tocFrame.test.js.map +1 -0
  51. package/dist/__tests__/exports.test.js +6 -0
  52. package/dist/__tests__/exports.test.js.map +1 -1
  53. package/dist/__tests__/pipeline/calloutLabelIcon.test.d.ts +2 -0
  54. package/dist/__tests__/pipeline/calloutLabelIcon.test.d.ts.map +1 -0
  55. package/dist/__tests__/pipeline/calloutLabelIcon.test.js +107 -0
  56. package/dist/__tests__/pipeline/calloutLabelIcon.test.js.map +1 -0
  57. package/dist/bundle/adapters.d.ts +18 -4
  58. package/dist/bundle/adapters.d.ts.map +1 -1
  59. package/dist/bundle/adapters.js +61 -13
  60. package/dist/bundle/adapters.js.map +1 -1
  61. package/dist/bundle/book.d.ts.map +1 -1
  62. package/dist/bundle/book.js +7 -2
  63. package/dist/bundle/book.js.map +1 -1
  64. package/dist/bundle/codec.d.ts +5 -0
  65. package/dist/bundle/codec.d.ts.map +1 -1
  66. package/dist/bundle/codec.js +34 -7
  67. package/dist/bundle/codec.js.map +1 -1
  68. package/dist/bundle/index.d.ts +1 -1
  69. package/dist/bundle/index.d.ts.map +1 -1
  70. package/dist/bundle/layoutCache.d.ts +4 -0
  71. package/dist/bundle/layoutCache.d.ts.map +1 -1
  72. package/dist/bundle/layoutCache.js.map +1 -1
  73. package/dist/bundle/manifest.d.ts.map +1 -1
  74. package/dist/bundle/manifest.js +15 -2
  75. package/dist/bundle/manifest.js.map +1 -1
  76. package/dist/bundle/types.d.ts +6 -0
  77. package/dist/bundle/types.d.ts.map +1 -1
  78. package/dist/composed/carry.d.ts +2 -0
  79. package/dist/composed/carry.d.ts.map +1 -1
  80. package/dist/composed/carry.js +1 -1
  81. package/dist/composed/carry.js.map +1 -1
  82. package/dist/composed/document.d.ts +11 -0
  83. package/dist/composed/document.d.ts.map +1 -1
  84. package/dist/composed/document.js +24 -0
  85. package/dist/composed/document.js.map +1 -1
  86. package/dist/composed/geometry.d.ts +5 -1
  87. package/dist/composed/geometry.d.ts.map +1 -1
  88. package/dist/composed/geometry.js +14 -4
  89. package/dist/composed/geometry.js.map +1 -1
  90. package/dist/composed/labels.d.ts +23 -2
  91. package/dist/composed/labels.d.ts.map +1 -1
  92. package/dist/composed/labels.js +116 -5
  93. package/dist/composed/labels.js.map +1 -1
  94. package/dist/composed/slotChecks.d.ts +1 -1
  95. package/dist/composed/slotChecks.d.ts.map +1 -1
  96. package/dist/composed/slotChecks.js +5 -6
  97. package/dist/composed/slotChecks.js.map +1 -1
  98. package/dist/composed/sourceMap.d.ts.map +1 -1
  99. package/dist/composed/sourceMap.js +18 -2
  100. package/dist/composed/sourceMap.js.map +1 -1
  101. package/dist/composed/templates.d.ts +38 -1
  102. package/dist/composed/templates.d.ts.map +1 -1
  103. package/dist/composed/templates.js +68 -1
  104. package/dist/composed/templates.js.map +1 -1
  105. package/dist/composed/types.d.ts +73 -6
  106. package/dist/composed/types.d.ts.map +1 -1
  107. package/dist/composed/validate.d.ts.map +1 -1
  108. package/dist/composed/validate.js +20 -3
  109. package/dist/composed/validate.js.map +1 -1
  110. package/dist/composed/wrap.d.ts.map +1 -1
  111. package/dist/composed/wrap.js +4 -4
  112. package/dist/composed/wrap.js.map +1 -1
  113. package/dist/defaults/calloutStyles.d.ts +1 -0
  114. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  115. package/dist/defaults/calloutStyles.js +6 -1
  116. package/dist/defaults/calloutStyles.js.map +1 -1
  117. package/dist/design/placeholders.d.ts +5 -0
  118. package/dist/design/placeholders.d.ts.map +1 -1
  119. package/dist/design/placeholders.js +9 -2
  120. package/dist/design/placeholders.js.map +1 -1
  121. package/dist/fonts/fallback.d.ts +26 -0
  122. package/dist/fonts/fallback.d.ts.map +1 -0
  123. package/dist/fonts/fallback.js +43 -0
  124. package/dist/fonts/fallback.js.map +1 -0
  125. package/dist/index.d.ts +7 -5
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +3 -2
  128. package/dist/index.js.map +1 -1
  129. package/dist/pipeline/anchors.d.ts.map +1 -1
  130. package/dist/pipeline/anchors.js +15 -1
  131. package/dist/pipeline/anchors.js.map +1 -1
  132. package/dist/pipeline/build.d.ts.map +1 -1
  133. package/dist/pipeline/build.js +22 -16
  134. package/dist/pipeline/build.js.map +1 -1
  135. package/dist/pipeline/buildHelpers.d.ts +2 -0
  136. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  137. package/dist/pipeline/buildHelpers.js +6 -0
  138. package/dist/pipeline/buildHelpers.js.map +1 -1
  139. package/dist/pipeline/calloutLayout.d.ts +2 -0
  140. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  141. package/dist/pipeline/calloutLayout.js +44 -17
  142. package/dist/pipeline/calloutLayout.js.map +1 -1
  143. package/dist/pipeline/carriedOutline.d.ts +45 -0
  144. package/dist/pipeline/carriedOutline.d.ts.map +1 -0
  145. package/dist/pipeline/carriedOutline.js +158 -0
  146. package/dist/pipeline/carriedOutline.js.map +1 -0
  147. package/dist/pipeline/composedLayout.d.ts +8 -1
  148. package/dist/pipeline/composedLayout.d.ts.map +1 -1
  149. package/dist/pipeline/composedLayout.js +126 -18
  150. package/dist/pipeline/composedLayout.js.map +1 -1
  151. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  152. package/dist/pipeline/contentWarnings.js +12 -1
  153. package/dist/pipeline/contentWarnings.js.map +1 -1
  154. package/dist/pipeline/figureWords.d.ts +18 -1
  155. package/dist/pipeline/figureWords.d.ts.map +1 -1
  156. package/dist/pipeline/figureWords.js +28 -0
  157. package/dist/pipeline/figureWords.js.map +1 -1
  158. package/dist/pipeline/frameLayout.d.ts +8 -0
  159. package/dist/pipeline/frameLayout.d.ts.map +1 -1
  160. package/dist/pipeline/frameLayout.js +74 -7
  161. package/dist/pipeline/frameLayout.js.map +1 -1
  162. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  163. package/dist/pipeline/headerFooter.js +96 -41
  164. package/dist/pipeline/headerFooter.js.map +1 -1
  165. package/dist/pipeline/index.d.ts +2 -0
  166. package/dist/pipeline/index.d.ts.map +1 -1
  167. package/dist/pipeline/index.js +1 -0
  168. package/dist/pipeline/index.js.map +1 -1
  169. package/dist/pipeline/indexDirective.d.ts.map +1 -1
  170. package/dist/pipeline/indexDirective.js +3 -1
  171. package/dist/pipeline/indexDirective.js.map +1 -1
  172. package/dist/pipeline/layoutMemo.d.ts +72 -0
  173. package/dist/pipeline/layoutMemo.d.ts.map +1 -0
  174. package/dist/pipeline/layoutMemo.js +160 -0
  175. package/dist/pipeline/layoutMemo.js.map +1 -0
  176. package/dist/pipeline/measureMemo.d.ts +8 -0
  177. package/dist/pipeline/measureMemo.d.ts.map +1 -1
  178. package/dist/pipeline/measureMemo.js +6 -2
  179. package/dist/pipeline/measureMemo.js.map +1 -1
  180. package/dist/pipeline/outline.d.ts.map +1 -1
  181. package/dist/pipeline/outline.js +31 -2
  182. package/dist/pipeline/outline.js.map +1 -1
  183. package/dist/pipeline/placeholders.d.ts +13 -0
  184. package/dist/pipeline/placeholders.d.ts.map +1 -1
  185. package/dist/pipeline/placeholders.js +20 -1
  186. package/dist/pipeline/placeholders.js.map +1 -1
  187. package/dist/pipeline/styles.d.ts.map +1 -1
  188. package/dist/pipeline/styles.js +3 -1
  189. package/dist/pipeline/styles.js.map +1 -1
  190. package/dist/pipeline/toc.d.ts +7 -0
  191. package/dist/pipeline/toc.d.ts.map +1 -1
  192. package/dist/pipeline/toc.js +24 -0
  193. package/dist/pipeline/toc.js.map +1 -1
  194. package/dist/types.d.ts +41 -3
  195. package/dist/types.d.ts.map +1 -1
  196. package/dist/vdt.d.ts +43 -1
  197. package/dist/vdt.d.ts.map +1 -1
  198. package/dist/vdt.js.map +1 -1
  199. package/package.json +1 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * The layout memo of a composed page (#972): the reflow ladder lays whole
3
+ * frames again at every step, and a frame laid out in the same style at the
4
+ * same width and height is answered from the memo. The answer must be the
5
+ * layout that would have been made: these tests lay the same pages with the
6
+ * memo off and on and compare everything the VDT carries, including what
7
+ * the layout keeps by identity.
8
+ */
9
+ import { describe, it, expect } from 'vitest';
10
+ import { buildDocument } from '../../pipeline/build';
11
+ import { createMeasurementCache } from '../../measure';
12
+ import { clearComposedPageMemo } from '../../composed/pageMemo';
13
+ import { layoutMemoSwitch, createLayoutMemo, memoLayout, copyLayout } from '../../pipeline/layoutMemo';
14
+ import { widthLessEndIndent } from '../../pipeline/buildHelpers';
15
+ import { isDesignedBoxHeading } from '../../pipeline/calloutLayout';
16
+ import { page8Fixture } from './fixtures/page8';
17
+ class StubCtx {
18
+ font = '';
19
+ measureText(s) {
20
+ return { width: s.length * 7 };
21
+ }
22
+ }
23
+ globalThis.OffscreenCanvas = class {
24
+ getContext() {
25
+ return new StubCtx();
26
+ }
27
+ };
28
+ const mm = (value) => ({ value, unit: 'mm' });
29
+ const TAB = {
30
+ id: 'pestana',
31
+ name: 'Pestaña',
32
+ advancedDesign: {
33
+ enabled: true,
34
+ minHeight: mm(10),
35
+ slot: { elements: [{ kind: 'box', id: 'tab', placement: { anchor: { to: 'container', edge: 'top-left' }, offset: { x: mm(-3), y: mm(-4) }, size: { width: mm(40), height: mm(8) } }, style: { backgroundColor: { hex: '#ffffff', model: 'hex' } } }] },
36
+ },
37
+ };
38
+ /** The page-8 stand-in with its first box too short for its text: the
39
+ * ladder tries every step on it. */
40
+ function ladderPage() {
41
+ const { markdown, config, resources } = page8Fixture('es');
42
+ const base = config.pageTemplates[0];
43
+ const tpl = { ...base, frames: base.frames.map((f) => (f.name === 'dinero' ? { ...f, height: mm(36), minHeight: undefined } : f)) };
44
+ const more = Array.from({ length: 4 }, (_, i) => `Más dinero ${i} `.repeat(30).trim()).join('\n\n');
45
+ // The designed heading and the paragraph set off the foot are in a frame
46
+ // that no step of the ladder changes: its later layouts come from the memo.
47
+ const steady = ['## Cuentas {style="pestana"}', ':::paragraphs{align=end endIndent=2}\nFirmado\n:::'].join('\n\n');
48
+ return {
49
+ markdown: markdown.replace(/(:::frame\{slot="dinero"[^\n]*\n)/, `$1${more}\n\n`).replace(/(:::frame\{slot="ahorro"[^\n]*\n)/, `$1${steady}\n\n`),
50
+ config: { ...config, headingStyles: [...(config.headingStyles ?? []), TAB], pageTemplates: [tpl] },
51
+ resources,
52
+ };
53
+ }
54
+ const allBlocks = (doc) => doc.pages.flatMap((p) => [...p.columns.flatMap((c) => c.blocks), ...(p.floats ?? [])]);
55
+ function laid(on, f = ladderPage()) {
56
+ layoutMemoSwitch.enabled = on;
57
+ try {
58
+ clearComposedPageMemo();
59
+ return buildDocument({ markdown: f.markdown, resources: f.resources }, f.config, createMeasurementCache());
60
+ }
61
+ finally {
62
+ layoutMemoSwitch.enabled = true;
63
+ }
64
+ }
65
+ describe('the layout memo of a composed page (#972)', () => {
66
+ it('lays out a ladder page as it would without the memo, identity-kept state included', () => {
67
+ const off = laid(false);
68
+ const on = laid(true);
69
+ // The page went through the ladder.
70
+ const overflow = (on.contentWarnings ?? []).find((w) => w.kind === 'frameOverflow');
71
+ expect(overflow).toBeDefined();
72
+ expect(JSON.stringify(on.pages)).toBe(JSON.stringify(off.pages));
73
+ expect(JSON.stringify(on.contentWarnings)).toBe(JSON.stringify(off.contentWarnings));
74
+ const a = allBlocks(off);
75
+ const b = allBlocks(on);
76
+ expect(b.length).toBe(a.length);
77
+ // What the layout keeps by identity.
78
+ expect(a.some((blk) => isDesignedBoxHeading(blk))).toBe(true);
79
+ expect(a.some((blk) => widthLessEndIndent(blk, 1000) < 1000)).toBe(true);
80
+ expect(b.map((blk) => isDesignedBoxHeading(blk))).toEqual(a.map((blk) => isDesignedBoxHeading(blk)));
81
+ expect(b.map((blk) => widthLessEndIndent(blk, 1000))).toEqual(a.map((blk) => widthLessEndIndent(blk, 1000)));
82
+ });
83
+ it('answers layouts the ladder repeats from the memo, and none with the memo off', () => {
84
+ layoutMemoSwitch.hits = 0;
85
+ laid(false);
86
+ expect(layoutMemoSwitch.hits).toBe(0);
87
+ laid(true);
88
+ expect(layoutMemoSwitch.hits).toBeGreaterThan(10);
89
+ });
90
+ });
91
+ describe('memoLayout', () => {
92
+ const result = () => ({
93
+ frame: { id: 'f', bbox: { x: 0, y: 0, width: 10, height: 10 }, lines: [] },
94
+ children: [],
95
+ units: [],
96
+ width: 10, totalHeight: 10, marginTopPx: 0, marginBottomPx: 0, continuesMarkerPx: 0,
97
+ });
98
+ const ctx = () => ({ dropCapNotes: new Map(), joiningLetterSpacing: new Set() });
99
+ it('hands a mover its own copy and keeps the first answer untouched', () => {
100
+ const memo = createMemo();
101
+ const c = ctx();
102
+ let laidTimes = 0;
103
+ const compute = () => { laidTimes++; return result(); };
104
+ const first = memoLayout(memo, 'k', c, false, compute);
105
+ first.frame.bbox.x = 99;
106
+ const second = memoLayout(memo, 'k', c, false, compute);
107
+ second.frame.bbox.x = 50;
108
+ const third = memoLayout(memo, 'k', c, false, compute);
109
+ expect(laidTimes).toBe(1);
110
+ expect(second.frame.bbox.x).toBe(50);
111
+ expect(third.frame.bbox.x).toBe(0);
112
+ });
113
+ it('replays the notes a layout wrote to its context', () => {
114
+ const memo = createMemo();
115
+ const c = ctx();
116
+ memoLayout(memo, 'k', c, false, () => {
117
+ c.dropCapNotes.set(3, { reason: 'inBox' });
118
+ c.joiningLetterSpacing.add(4);
119
+ return result();
120
+ });
121
+ c.dropCapNotes.clear();
122
+ c.joiningLetterSpacing.clear();
123
+ memoLayout(memo, 'k', c, false, () => { throw new Error('laid again'); });
124
+ expect(c.dropCapNotes.get(3)).toEqual({ reason: 'inBox' });
125
+ expect(c.joiningLetterSpacing.has(4)).toBe(true);
126
+ });
127
+ it('does not keep a layout that cannot be copied', () => {
128
+ class Odd {
129
+ x = 1;
130
+ }
131
+ const withOdd = () => { const r = result(); r.frame.odd = new Odd(); return r; };
132
+ expect(copyLayout(withOdd())).toBeNull();
133
+ const memo = createMemo();
134
+ let laidTimes = 0;
135
+ for (let i = 0; i < 3; i++)
136
+ memoLayout(memo, 'k', ctx(), false, () => { laidTimes++; return withOdd(); });
137
+ expect(laidTimes).toBe(3);
138
+ });
139
+ it('keeps shared structure shared in the copy', () => {
140
+ const r = result();
141
+ r.children.push(r.frame);
142
+ r.units.push({ kind: 'block', block: r.frame });
143
+ const c = copyLayout(r);
144
+ expect(c.children[0]).toBe(c.frame);
145
+ expect(c.units[0].block).toBe(c.frame);
146
+ expect(c.frame).not.toBe(r.frame);
147
+ });
148
+ });
149
+ function createMemo() { return createLayoutMemo(); }
150
+ //# sourceMappingURL=layoutMemo.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutMemo.test.js","sourceRoot":"","sources":["../../../src/__tests__/composed/layoutMemo.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tocFrame.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tocFrame.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/composed/tocFrame.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * The contents in a frame of a composed page (#983, #987): a `:::toc` inside
3
+ * a frame, or taken by a frame with `takes: 'toc'`, is laid by the contents'
4
+ * own rules: part rows drawn from `toc.parts.design`, the rhythm of the
5
+ * flow's contents (no repeated head row between entries), entries that link
6
+ * to their page, a block kept together across the cuts of `overflow`.
7
+ */
8
+ import { describe, it, expect } from 'vitest';
9
+ import { buildDocument } from '../../pipeline/build';
10
+ import { createMeasurementCache } from '../../measure';
11
+ import { checkComposedSlots } from '../../composed/slotChecks';
12
+ import { composedPages } from '../../composed/document';
13
+ import { validatePageTemplates } from '../../composed/validate';
14
+ import { parseMarkdown } from '../../parse';
15
+ class StubCtx {
16
+ font = '';
17
+ measureText(s) {
18
+ return { width: s.length * 7 };
19
+ }
20
+ }
21
+ globalThis.OffscreenCanvas = class {
22
+ getContext() {
23
+ return new StubCtx();
24
+ }
25
+ };
26
+ const mm = (value) => ({ value, unit: 'mm' });
27
+ const DPI = 300;
28
+ const MM = DPI / 25.4;
29
+ const words = (n) => Array.from({ length: n }, (_, i) => `word${i}`).join(' ');
30
+ const PAGE = {
31
+ page: { width: mm(200), height: mm(260), margins: { top: mm(20), bottom: mm(20), left: mm(20), right: mm(20) } },
32
+ headings: { balancing: { enabled: false }, levels: [{ level: 1, breakBefore: { enabled: false } }] },
33
+ headingStyles: [{ id: 'indice', numbered: false, toc: false }],
34
+ toc: { parts: { enabled: true } },
35
+ bodyText: { paragraphSpacing: true },
36
+ };
37
+ /** A template with the contents' own frame under a title frame. */
38
+ const template = (extra = {}, listHeight = mm(200)) => ({
39
+ id: 'contents',
40
+ frames: [
41
+ { name: 'title', takes: 'h1', height: mm(20), placement: { anchor: { to: 'container', edge: 'top-left' } } },
42
+ { name: 'list', takes: 'toc', height: listHeight, placement: { anchor: { to: '#title', edge: 'below' }, offset: { y: mm(4) } }, ...extra },
43
+ ],
44
+ });
45
+ /** `parts` parts of `per` chapters each, then the page of contents first. */
46
+ const book = (page, parts = 2, per = 2) => {
47
+ const out = [page];
48
+ for (let p = 0; p < parts; p++) {
49
+ out.push(`:::part{number="${'ABCDEF'[p]}" title="Part ${p + 1}"}\n:::`);
50
+ for (let c = 0; c < per; c++)
51
+ out.push(`# Chapter ${p}-${c}\n\n${words(30)}`);
52
+ }
53
+ return out.join('\n\n');
54
+ };
55
+ const TAKING = `::::page{template="contents"}
56
+ # Contents {style="indice"}
57
+
58
+ :::toc{keep="part"}
59
+ ::::`;
60
+ const SLOTTED = `::::page{template="contents"}
61
+ # Contents {style="indice"}
62
+
63
+ :::frame{slot="list"}
64
+ :::toc{keep="part"}
65
+ :::
66
+ ::::`;
67
+ const build = (md, templates, extra = {}) => buildDocument({ markdown: md }, { ...PAGE, ...extra, pageTemplates: templates }, createMeasurementCache());
68
+ const composed = (doc) => doc.pages.filter((p) => p.composed);
69
+ const frameOf = (page, name) => page.composed.frames.find((f) => f.name === name);
70
+ const blocksOf = (page, f) => f.blockIds.map((id) => page.floats.find((b) => b.id === id));
71
+ const text = (b) => b.lines.map((l) => l.text).join(' ');
72
+ const rows = (page, name) => blocksOf(page, frameOf(page, name)).filter((b) => b.type !== 'callout');
73
+ describe('the contents in a frame (#983)', () => {
74
+ for (const [how, md] of [['taken by a frame with takes: toc', TAKING], ['written inside a :::frame', SLOTTED]]) {
75
+ it(`${how}: part rows are drawn and entries follow each other without a repeated head row`, () => {
76
+ const doc = build(book(md), [template()]);
77
+ const page = composed(doc)[0];
78
+ const list = rows(page, 'list');
79
+ // Part A, its two entries, part B, its two entries.
80
+ expect(list.map((b) => (b.tocPart ? 'part' : text(b).replace(/ \d+$/, '')))).toEqual(['part', 'Chapter 0-0', 'Chapter 0-1', 'part', 'Chapter 1-0', 'Chapter 1-1']);
81
+ for (const part of list.filter((b) => b.tocPart)) {
82
+ expect(part.designOverlay).toBeDefined();
83
+ expect(part.designOverlay.blocks.some((b) => b.kind === 'text')).toBe(true);
84
+ }
85
+ // The title that heads the page is not one of the entries.
86
+ expect(list.map(text).join(' ')).not.toContain('Contents');
87
+ });
88
+ it(`${how}: rows are spaced as the flow's contents are, and entries link to their page`, () => {
89
+ const doc = build(book(md), [template()]);
90
+ const page = composed(doc)[0];
91
+ const list = rows(page, 'list');
92
+ const flowDoc = buildDocument({ markdown: book(md.replace(/::::page[^\n]*\n/, '').replace(/:::frame\{slot="list"\}\n/, '').replace(/\n:::\n::::/, '\n').replace(/\n::::$/, '')) }, { ...PAGE }, createMeasurementCache());
93
+ const flow = flowDoc.blocks.filter((b) => b.pageIndex === 0 && (b.tocPart || b.tocEntry));
94
+ expect(flow).toHaveLength(list.length);
95
+ const gaps = (bs) => bs.slice(1).map((b, i) => Math.round((b.bbox.y - bs[i].bbox.y) * 100) / 100);
96
+ expect(gaps(list)).toEqual(gaps(flow));
97
+ const entries = list.filter((b) => b.tocEntry);
98
+ expect(entries.every((b) => b.tocEntry.pageIndex !== undefined)).toBe(true);
99
+ expect(entries.map((b) => text(b).match(/(\d+)$/)?.[1])).toEqual(flow.filter((b) => b.tocEntry).map((b) => text(b).match(/(\d+)$/)?.[1]));
100
+ });
101
+ }
102
+ it('takes: toc leaves the title to its own frame and the contents to theirs', () => {
103
+ const doc = build(book(TAKING), [template()]);
104
+ const page = composed(doc)[0];
105
+ expect(blocksOf(page, frameOf(page, 'title')).some((b) => b.type === 'heading' && text(b) === 'Contents')).toBe(true);
106
+ expect(rows(page, 'title').some((b) => b.tocEntry || b.tocPart)).toBe(false);
107
+ // Nothing of the contents is left in the flow.
108
+ expect(doc.blocks.filter((b) => (b.tocEntry || b.tocPart) && !blocksOf(page, frameOf(page, 'list')).includes(b))).toEqual([]);
109
+ });
110
+ it('a template ground stays under the contents: decoration paints before the frame', () => {
111
+ const ground = { ...template(), decoration: { elements: [{ kind: 'box', id: 'ground', placement: { anchor: { to: 'bleed', edge: 'top-left' }, size: { width: 'fill', height: 'fill' } }, style: { backgroundColor: { hex: '#fdf1d6', model: 'hex' } } }] } };
112
+ const page = composed(build(book(TAKING), [ground]))[0];
113
+ const box = page.composed.decoration.blocks.find((b) => b.kind === 'box');
114
+ expect(box.bbox.width).toBeGreaterThanOrEqual(200 * MM - 1);
115
+ expect(box.bbox.height).toBeGreaterThanOrEqual(260 * MM - 1);
116
+ expect(rows(page, 'list').length).toBeGreaterThan(0);
117
+ });
118
+ it('a block of the contents goes whole to the page that follows when a cut would split it', () => {
119
+ // 45 mm of contents: part A with its entries fit, part B does not.
120
+ const tall = book(TAKING.replace('::::page{template="contents"}', '::::page{template="contents"}'), 2, 5);
121
+ const t = template({ overflow: { continueIn: 'next-page' } }, mm(50));
122
+ const doc = build(tall, [t]);
123
+ const pages = composed(doc);
124
+ expect(pages.length).toBeGreaterThanOrEqual(2);
125
+ const first = rows(pages[0], 'list').map((b) => (b.tocPart ? `part:${b.tocPart.title}` : text(b).replace(/ \d+$/, '')));
126
+ const second = rows(pages[1], 'list').map((b) => (b.tocPart ? `part:${b.tocPart.title}` : text(b).replace(/ \d+$/, '')));
127
+ expect(first[0]).toBe('part:Part 1');
128
+ expect(first.filter((r) => r.startsWith('Chapter 0'))).toHaveLength(5);
129
+ // Part 2 is not cut: it opens the added page with all five entries.
130
+ expect(first.some((r) => r === 'part:Part 2')).toBe(false);
131
+ expect(second[0]).toBe('part:Part 2');
132
+ expect(second.filter((r) => r.startsWith('Chapter 1'))).toHaveLength(5);
133
+ // The page that goes on carries the template's decoration.
134
+ expect(pages[1].composed.frames.some((f) => f.name === 'list')).toBe(true);
135
+ });
136
+ it('a block taller than the frame is cut after its head and two entries, and the added page repeats the head', () => {
137
+ const t = template({ overflow: { continueIn: 'next-page' } }, mm(42));
138
+ const doc = build(book(TAKING, 1, 12), [t]);
139
+ const pages = composed(doc);
140
+ expect(pages.length).toBeGreaterThanOrEqual(2);
141
+ const first = rows(pages[0], 'list');
142
+ const second = rows(pages[1], 'list');
143
+ expect(first[0].tocPart?.title).toBe('Part 1');
144
+ expect(first.filter((b) => b.tocEntry).length).toBeGreaterThanOrEqual(2);
145
+ // The rest opens with the head repeated, marked as a repeat.
146
+ expect(second[0].tocPart?.continued).toBe(true);
147
+ expect(second[0].designOverlay).toBeDefined();
148
+ // Every entry is set once, in order.
149
+ const names = [...first, ...second].filter((b) => b.tocEntry && !b.tocEntry.continued).map((b) => text(b).replace(/ \d+$/, ''));
150
+ expect(names).toEqual(Array.from({ length: 12 }, (_, i) => `Chapter 0-${i}`));
151
+ // No repeat anywhere but the top of the added page.
152
+ expect([...first, ...second].filter((b) => b.tocPart?.continued)).toHaveLength(1);
153
+ });
154
+ it('the slot checks count the contents as what the frame receives', () => {
155
+ const pagesOf = (md) => composedPages(parseMarkdown(md));
156
+ const config = { pageTemplates: [template()] };
157
+ expect(checkComposedSlots(pagesOf(TAKING), config)).toEqual([]);
158
+ // No :::toc on the page: the frame that takes it has nothing.
159
+ const empty = checkComposedSlots(pagesOf('::::page{template="contents"}\n# Contents\n::::'), config);
160
+ expect(empty.map((w) => [w.kind, 'frame' in w ? w.frame : ''])).toEqual([['slotEmpty', 'list']]);
161
+ });
162
+ it('the settings check accepts takes: toc', () => {
163
+ const warnings = validatePageTemplates({ pageTemplates: [template()] });
164
+ expect(warnings.filter((w) => w.kind === 'unknownConfigValue')).toEqual([]);
165
+ });
166
+ });
167
+ //# sourceMappingURL=tocFrame.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tocFrame.test.js","sourceRoot":"","sources":["../../../src/__tests__/composed/tocFrame.test.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,8 @@ describe("package exports", () => {
61
61
  "hasAnchors",
62
62
  "locateAnchors",
63
63
  "duplicateAnchors",
64
+ "mergeCarriedOutline",
65
+ "carriedPlaces",
64
66
  "formatFootnoteNumber",
65
67
  "footnoteFormatOf",
66
68
  "footnoteSymbol",
@@ -652,6 +654,7 @@ describe("package exports", () => {
652
654
  "resolveLabelLook",
653
655
  "undrawnLabels",
654
656
  "unmirrorLabelLayout",
657
+ "labelLayoutOnSheet",
655
658
  "comicFramePaintOrder",
656
659
  "comicHoldsText",
657
660
  "comicPaintsUnderText",
@@ -738,6 +741,9 @@ describe("package exports", () => {
738
741
  "defaultFontSet",
739
742
  "cssWeightOrder",
740
743
  "cssWeightOrderOf",
744
+ "fontFallbackOf",
745
+ "fontFallbackFamilies",
746
+ "hasOwnStyle",
741
747
  "evictFontFamilies",
742
748
  "measurementGeneration",
743
749
  "parseFontString",
@@ -1 +1 @@
1
- {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calloutLabelIcon.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutLabelIcon.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutLabelIcon.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,107 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildDocument } from '../../pipeline';
3
+ import { resolveCalloutStylesConfig } from '../../defaults/calloutStyles';
4
+ import { resolveBodyTextConfig } from '../../defaults/bodyText';
5
+ import { resolveHeadingsConfig } from '../../defaults/headings';
6
+ import { resolveUnorderedListsConfig } from '../../defaults/unorderedLists';
7
+ // #981: the picture of a label tab can stand inside the tab, before the words.
8
+ class StubCtx {
9
+ font = '';
10
+ measureText(s) {
11
+ return { width: s.length * 7 };
12
+ }
13
+ }
14
+ globalThis.OffscreenCanvas = class {
15
+ getContext() {
16
+ return new StubCtx();
17
+ }
18
+ };
19
+ const pt = (value) => ({ value, unit: 'pt' });
20
+ const RING = { id: 'ring', typeId: 'figure', kind: 'svg', altText: '', createdAt: 0, updatedAt: 0, svg: { fileId: 'ring.svg', width: 20, height: 10 } };
21
+ const config = (placement, extra = {}) => ({
22
+ page: { width: pt(500), height: pt(700), dpi: 72, margins: { top: pt(20), bottom: pt(20), left: pt(30), right: pt(20) } },
23
+ layout: { layoutType: 'single' },
24
+ header: { elements: [] },
25
+ footer: { elements: [] },
26
+ bodyText: { fontSize: pt(10), lineHeight: pt(14) },
27
+ calloutStyles: [{
28
+ id: 'tab', title: '', padding: { top: pt(6), right: pt(6), bottom: pt(6), left: pt(6) },
29
+ label: { fontSize: pt(10), fontWeight: 400, position: 'top-left', height: pt(14), paddingX: pt(6), offset: pt(7), icon: { resourceId: 'ring', width: pt(8), gap: pt(3), ...(placement ? { placement } : {}) }, ...extra },
30
+ }],
31
+ });
32
+ const build = (placement, extra) => buildDocument({ markdown: ':::callout{type="tab" label="Money"}\nBody of the box.\n:::', resources: [RING] }, config(placement, extra));
33
+ const overlay = (doc) => (doc.blocks.find((b) => b.type === 'callout').designOverlay?.blocks ?? []);
34
+ const tab = (doc) => doc.find((b) => b.kind === 'box' && Math.abs(b.bbox.height - 14) < 1e-6);
35
+ const words = (blocks) => blocks.find((b) => b.kind === 'text' && b.lines[0]?.text === 'Money');
36
+ const icon = (blocks) => blocks.find((b) => b.kind === 'image');
37
+ describe('label.icon.placement (#981)', () => {
38
+ it('resolves to beside, keeps inside, and ignores anything else', () => {
39
+ const body = resolveBodyTextConfig();
40
+ const [a, b, c] = resolveCalloutStylesConfig([
41
+ { id: 'a', label: {} },
42
+ { id: 'b', label: { icon: { placement: 'inside' } } },
43
+ { id: 'c', label: { icon: { placement: 'sideways' } } },
44
+ ], body, resolveHeadingsConfig({}), resolveUnorderedListsConfig(undefined, body));
45
+ expect(a.label.icon.placement).toBe('beside');
46
+ expect(b.label.icon.placement).toBe('inside');
47
+ expect(c.label.icon.placement).toBe('beside');
48
+ });
49
+ it('beside is what it was: the picture past the tab, the tab as wide as its words', () => {
50
+ for (const placement of [undefined, 'beside']) {
51
+ const blocks = overlay(build(placement));
52
+ const t = tab(blocks);
53
+ expect(t.bbox.width).toBeCloseTo(5 * 7 + 2 * 6, 3);
54
+ expect(icon(blocks).bbox.x).toBeCloseTo(t.bbox.x + t.bbox.width + 3, 3);
55
+ expect(words(blocks).lines[0].xOffset).toBeCloseTo(6, 3);
56
+ }
57
+ });
58
+ it('inside puts the picture at the start of the tab, widens the tab and moves the words after it', () => {
59
+ const blocks = overlay(build('inside'));
60
+ const t = tab(blocks);
61
+ const img = icon(blocks);
62
+ // 20 × 10 picture in an 8 pt wide, 14 pt tall slot: 8 × 4.
63
+ expect(img.bbox.width).toBeCloseTo(8, 3);
64
+ expect(img.bbox.height).toBeCloseTo(4, 3);
65
+ expect(t.bbox.width).toBeCloseTo(6 + 8 + 3 + 5 * 7 + 6, 3);
66
+ expect(img.bbox.x).toBeCloseTo(t.bbox.x + 6, 3);
67
+ expect(img.bbox.y + img.bbox.height / 2).toBeCloseTo(t.bbox.y + t.bbox.height / 2, 3);
68
+ expect(words(blocks).lines[0].xOffset).toBeCloseTo(6 + 8 + 3, 3);
69
+ // The picture is wholly inside the tab, the words end inside it.
70
+ expect(img.bbox.x + img.bbox.width).toBeLessThanOrEqual(t.bbox.x + t.bbox.width);
71
+ expect(words(blocks).lines[0].xOffset + words(blocks).lines[0].width).toBeLessThanOrEqual(t.bbox.width - 6 + 1e-6);
72
+ });
73
+ it('inside on a tab at the right corner grows towards the left', () => {
74
+ const left = tab(overlay(build('inside', { position: 'top-left' })));
75
+ const right = overlay(build('inside', { position: 'top-right' }));
76
+ const t = tab(right);
77
+ expect(t.bbox.width).toBeCloseTo(left.bbox.width, 3);
78
+ expect(icon(right).bbox.x).toBeCloseTo(t.bbox.x + 6, 3);
79
+ const box = build('inside', { position: 'top-right' }).blocks.find((b) => b.type === 'callout');
80
+ expect(t.bbox.x + t.bbox.width).toBeCloseTo(box.bbox.x + box.bbox.width, 3);
81
+ });
82
+ it('without a picture to draw the tab is the plain one', () => {
83
+ const doc = buildDocument({ markdown: ':::callout{type="tab" label="Money"}\nBody.\n:::', resources: [] }, config('inside'));
84
+ const t = tab(overlay(doc));
85
+ expect(t.bbox.width).toBeCloseTo(5 * 7 + 2 * 6, 3);
86
+ expect(overlay(doc).some((b) => b.kind === 'image')).toBe(false);
87
+ });
88
+ it('a right-to-left document lays the tab out in its flow, which the page paints mirrored', () => {
89
+ const rtl = buildDocument({ markdown: ':::callout{type="tab" label="Money"}\nBody.\n:::', resources: [RING] }, { ...config('inside', { position: 'top-start' }), direction: 'rtl' });
90
+ const blocks = overlay(rtl);
91
+ const t = tab(blocks);
92
+ // The start of the flow is its left: the picture, then the words.
93
+ expect(icon(blocks).bbox.x).toBeCloseTo(t.bbox.x + 6, 3);
94
+ expect(words(blocks).lines[0].xOffset).toBeCloseTo(6 + 8 + 3, 3);
95
+ });
96
+ it('a box set against the document direction starts at the other end', () => {
97
+ const doc = buildDocument({ markdown: ':::callout{type="tab" label="Money" dir="rtl"}\nBody.\n:::', resources: [RING] }, config('inside', { position: 'top-start' }));
98
+ const blocks = overlay(doc);
99
+ const t = tab(blocks);
100
+ const box = doc.blocks.find((b) => b.type === 'callout');
101
+ // Its start is the right end of the box: the tab hugs it, the picture sits at its right end.
102
+ expect(t.bbox.x + t.bbox.width).toBeCloseTo(box.bbox.x + box.bbox.width, 3);
103
+ expect(icon(blocks).bbox.x + icon(blocks).bbox.width).toBeCloseTo(t.bbox.x + t.bbox.width - 6, 3);
104
+ expect(words(blocks).lines[0].xOffset).toBeCloseTo(6, 3);
105
+ });
106
+ });
107
+ //# sourceMappingURL=calloutLabelIcon.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutLabelIcon.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutLabelIcon.test.ts"],"names":[],"mappings":"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"}