postext 1.2.1 → 1.2.3

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 (195) hide show
  1. package/dist/__tests__/canvasPageScale.test.d.ts +2 -0
  2. package/dist/__tests__/canvasPageScale.test.d.ts.map +1 -0
  3. package/dist/__tests__/canvasPageScale.test.js +48 -0
  4. package/dist/__tests__/canvasPageScale.test.js.map +1 -0
  5. package/dist/__tests__/columnBalancing.test.js +62 -2
  6. package/dist/__tests__/columnBalancing.test.js.map +1 -1
  7. package/dist/__tests__/columnClip.test.d.ts +2 -0
  8. package/dist/__tests__/columnClip.test.d.ts.map +1 -0
  9. package/dist/__tests__/columnClip.test.js +27 -0
  10. package/dist/__tests__/columnClip.test.js.map +1 -0
  11. package/dist/__tests__/defaults/calloutStyles.test.js +5 -0
  12. package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
  13. package/dist/__tests__/defaults/tableStyles.test.d.ts +2 -0
  14. package/dist/__tests__/defaults/tableStyles.test.d.ts.map +1 -0
  15. package/dist/__tests__/defaults/tableStyles.test.js +56 -0
  16. package/dist/__tests__/defaults/tableStyles.test.js.map +1 -0
  17. package/dist/__tests__/design/paintOrder.test.d.ts +2 -0
  18. package/dist/__tests__/design/paintOrder.test.d.ts.map +1 -0
  19. package/dist/__tests__/design/paintOrder.test.js +75 -0
  20. package/dist/__tests__/design/paintOrder.test.js.map +1 -0
  21. package/dist/__tests__/design/slotContainers.test.d.ts +2 -0
  22. package/dist/__tests__/design/slotContainers.test.d.ts.map +1 -0
  23. package/dist/__tests__/design/slotContainers.test.js +70 -0
  24. package/dist/__tests__/design/slotContainers.test.js.map +1 -0
  25. package/dist/__tests__/exports.test.js +12 -0
  26. package/dist/__tests__/exports.test.js.map +1 -1
  27. package/dist/__tests__/html-backend.test.js +23 -0
  28. package/dist/__tests__/html-backend.test.js.map +1 -1
  29. package/dist/__tests__/parts.test.js +89 -0
  30. package/dist/__tests__/parts.test.js.map +1 -1
  31. package/dist/__tests__/pipeline/calloutNested.test.d.ts +2 -0
  32. package/dist/__tests__/pipeline/calloutNested.test.d.ts.map +1 -0
  33. package/dist/__tests__/pipeline/calloutNested.test.js +264 -0
  34. package/dist/__tests__/pipeline/calloutNested.test.js.map +1 -0
  35. package/dist/__tests__/pipeline/calloutOverflow.test.js +39 -3
  36. package/dist/__tests__/pipeline/calloutOverflow.test.js.map +1 -1
  37. package/dist/__tests__/pipeline/calloutSnapToGrid.test.d.ts +2 -0
  38. package/dist/__tests__/pipeline/calloutSnapToGrid.test.d.ts.map +1 -0
  39. package/dist/__tests__/pipeline/calloutSnapToGrid.test.js +72 -0
  40. package/dist/__tests__/pipeline/calloutSnapToGrid.test.js.map +1 -0
  41. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.d.ts +2 -0
  42. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.d.ts.map +1 -0
  43. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js +166 -0
  44. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js.map +1 -0
  45. package/dist/__tests__/pipeline/chips.test.d.ts +2 -0
  46. package/dist/__tests__/pipeline/chips.test.d.ts.map +1 -0
  47. package/dist/__tests__/pipeline/chips.test.js +230 -0
  48. package/dist/__tests__/pipeline/chips.test.js.map +1 -0
  49. package/dist/__tests__/pipeline/floatFirstSlot.test.js +53 -0
  50. package/dist/__tests__/pipeline/floatFirstSlot.test.js.map +1 -1
  51. package/dist/__tests__/pipeline/scratchDeepSky.test.d.ts +3 -0
  52. package/dist/__tests__/pipeline/scratchDeepSky.test.d.ts.map +1 -0
  53. package/dist/__tests__/pipeline/scratchDeepSky.test.js +137 -0
  54. package/dist/__tests__/pipeline/scratchDeepSky.test.js.map +1 -0
  55. package/dist/__tests__/pipeline/spanBands.test.js +18 -0
  56. package/dist/__tests__/pipeline/spanBands.test.js.map +1 -1
  57. package/dist/__tests__/pipeline/spanBlocks.test.js +3 -2
  58. package/dist/__tests__/pipeline/spanBlocks.test.js.map +1 -1
  59. package/dist/__tests__/pipeline/tableCellImages.test.js +87 -1
  60. package/dist/__tests__/pipeline/tableCellImages.test.js.map +1 -1
  61. package/dist/__tests__/pipeline/tableStyles.test.d.ts +2 -0
  62. package/dist/__tests__/pipeline/tableStyles.test.d.ts.map +1 -0
  63. package/dist/__tests__/pipeline/tableStyles.test.js +188 -0
  64. package/dist/__tests__/pipeline/tableStyles.test.js.map +1 -0
  65. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  66. package/dist/canvas-backend/blockRender.js +10 -1
  67. package/dist/canvas-backend/blockRender.js.map +1 -1
  68. package/dist/canvas-backend/chip.d.ts +10 -0
  69. package/dist/canvas-backend/chip.d.ts.map +1 -0
  70. package/dist/canvas-backend/chip.js +49 -0
  71. package/dist/canvas-backend/chip.js.map +1 -0
  72. package/dist/canvas-backend/index.d.ts.map +1 -1
  73. package/dist/canvas-backend/index.js +14 -27
  74. package/dist/canvas-backend/index.js.map +1 -1
  75. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  76. package/dist/canvas-backend/renderResourceBlock.js +48 -1
  77. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  78. package/dist/columnClip.d.ts +16 -0
  79. package/dist/columnClip.d.ts.map +1 -0
  80. package/dist/columnClip.js +37 -0
  81. package/dist/columnClip.js.map +1 -0
  82. package/dist/defaults/calloutStyles.d.ts +1 -0
  83. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  84. package/dist/defaults/calloutStyles.js +7 -0
  85. package/dist/defaults/calloutStyles.js.map +1 -1
  86. package/dist/defaults/chipStyles.d.ts +28 -0
  87. package/dist/defaults/chipStyles.d.ts.map +1 -0
  88. package/dist/defaults/chipStyles.js +102 -0
  89. package/dist/defaults/chipStyles.js.map +1 -0
  90. package/dist/defaults/index.d.ts +2 -1
  91. package/dist/defaults/index.d.ts.map +1 -1
  92. package/dist/defaults/index.js +18 -2
  93. package/dist/defaults/index.js.map +1 -1
  94. package/dist/defaults/parts.d.ts +1 -0
  95. package/dist/defaults/parts.d.ts.map +1 -1
  96. package/dist/defaults/parts.js +4 -0
  97. package/dist/defaults/parts.js.map +1 -1
  98. package/dist/defaults/shared.d.ts.map +1 -1
  99. package/dist/defaults/shared.js +43 -16
  100. package/dist/defaults/shared.js.map +1 -1
  101. package/dist/defaults/tableStyle.d.ts +17 -1
  102. package/dist/defaults/tableStyle.d.ts.map +1 -1
  103. package/dist/defaults/tableStyle.js +46 -0
  104. package/dist/defaults/tableStyle.js.map +1 -1
  105. package/dist/design/layout.d.ts.map +1 -1
  106. package/dist/design/layout.js +10 -6
  107. package/dist/design/layout.js.map +1 -1
  108. package/dist/html-backend.d.ts.map +1 -1
  109. package/dist/html-backend.js +72 -5
  110. package/dist/html-backend.js.map +1 -1
  111. package/dist/index.d.ts +7 -6
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +4 -3
  114. package/dist/index.js.map +1 -1
  115. package/dist/knuthPlass/richAdapter.d.ts +3 -1
  116. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  117. package/dist/knuthPlass/richAdapter.js +7 -4
  118. package/dist/knuthPlass/richAdapter.js.map +1 -1
  119. package/dist/measure/cache.d.ts.map +1 -1
  120. package/dist/measure/cache.js +7 -1
  121. package/dist/measure/cache.js.map +1 -1
  122. package/dist/measure/chipEdges.d.ts +5 -0
  123. package/dist/measure/chipEdges.d.ts.map +1 -0
  124. package/dist/measure/chipEdges.js +20 -0
  125. package/dist/measure/chipEdges.js.map +1 -0
  126. package/dist/measure/rich.d.ts +12 -0
  127. package/dist/measure/rich.d.ts.map +1 -1
  128. package/dist/measure/rich.js +128 -5
  129. package/dist/measure/rich.js.map +1 -1
  130. package/dist/parse/blockParser.d.ts.map +1 -1
  131. package/dist/parse/blockParser.js +10 -7
  132. package/dist/parse/blockParser.js.map +1 -1
  133. package/dist/parse/index.d.ts +3 -3
  134. package/dist/parse/index.d.ts.map +1 -1
  135. package/dist/parse/index.js +1 -1
  136. package/dist/parse/index.js.map +1 -1
  137. package/dist/parse/inlineFormatting.d.ts +28 -0
  138. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  139. package/dist/parse/inlineFormatting.js +52 -0
  140. package/dist/parse/inlineFormatting.js.map +1 -1
  141. package/dist/parse/inlineSnippet.d.ts +2 -1
  142. package/dist/parse/inlineSnippet.d.ts.map +1 -1
  143. package/dist/parse/inlineSnippet.js +6 -4
  144. package/dist/parse/inlineSnippet.js.map +1 -1
  145. package/dist/parse/sourceMapping.d.ts.map +1 -1
  146. package/dist/parse/sourceMapping.js +25 -1
  147. package/dist/parse/sourceMapping.js.map +1 -1
  148. package/dist/parse/types.d.ts +31 -0
  149. package/dist/parse/types.d.ts.map +1 -1
  150. package/dist/pipeline/bandCaps.d.ts.map +1 -1
  151. package/dist/pipeline/bandCaps.js +2 -0
  152. package/dist/pipeline/bandCaps.js.map +1 -1
  153. package/dist/pipeline/build.d.ts.map +1 -1
  154. package/dist/pipeline/build.js +261 -60
  155. package/dist/pipeline/build.js.map +1 -1
  156. package/dist/pipeline/calloutLayout.d.ts +52 -4
  157. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  158. package/dist/pipeline/calloutLayout.js +161 -26
  159. package/dist/pipeline/calloutLayout.js.map +1 -1
  160. package/dist/pipeline/chips.d.ts +27 -0
  161. package/dist/pipeline/chips.d.ts.map +1 -0
  162. package/dist/pipeline/chips.js +56 -0
  163. package/dist/pipeline/chips.js.map +1 -0
  164. package/dist/pipeline/columnBalancing.d.ts +1 -1
  165. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  166. package/dist/pipeline/columnBalancing.js +99 -1
  167. package/dist/pipeline/columnBalancing.js.map +1 -1
  168. package/dist/pipeline/config.d.ts.map +1 -1
  169. package/dist/pipeline/config.js +3 -1
  170. package/dist/pipeline/config.js.map +1 -1
  171. package/dist/pipeline/headerFooter.d.ts +0 -4
  172. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  173. package/dist/pipeline/headerFooter.js +42 -15
  174. package/dist/pipeline/headerFooter.js.map +1 -1
  175. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  176. package/dist/pipeline/measureContentBlock.js +6 -1
  177. package/dist/pipeline/measureContentBlock.js.map +1 -1
  178. package/dist/pipeline/partPalette.d.ts +6 -0
  179. package/dist/pipeline/partPalette.d.ts.map +1 -0
  180. package/dist/pipeline/partPalette.js +96 -0
  181. package/dist/pipeline/partPalette.js.map +1 -0
  182. package/dist/pipeline/placeholders.d.ts +2 -1
  183. package/dist/pipeline/placeholders.d.ts.map +1 -1
  184. package/dist/pipeline/placeholders.js +11 -1
  185. package/dist/pipeline/placeholders.js.map +1 -1
  186. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  187. package/dist/pipeline/resourceLayout.js +35 -11
  188. package/dist/pipeline/resourceLayout.js.map +1 -1
  189. package/dist/types.d.ts +141 -6
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/vdt.d.ts +88 -2
  192. package/dist/vdt.d.ts.map +1 -1
  193. package/dist/vdt.js +17 -0
  194. package/dist/vdt.js.map +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1,264 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildDocument } from '../../pipeline/build';
3
+ import { createMeasurementCache } from '../../measure';
4
+ // Deterministic text measurement stub (no DOM in the node test env).
5
+ class StubCtx {
6
+ font = '';
7
+ measureText(s) {
8
+ return { width: s.length * 7 };
9
+ }
10
+ }
11
+ globalThis.OffscreenCanvas = class {
12
+ getContext() {
13
+ return new StubCtx();
14
+ }
15
+ };
16
+ // Default 300 dpi: 1pt = 300/72 px.
17
+ const PT = 300 / 72;
18
+ const mm = (value) => ({ value, unit: 'mm' });
19
+ const pt = (value) => ({ value, unit: 'pt' });
20
+ const SENTENCE = 'La linterna del faro debe permanecer encendida toda la noche para guiar a los barcos. ';
21
+ const filler = (n) => SENTENCE.repeat(n).trim();
22
+ const CARD = {
23
+ id: 'card',
24
+ title: 'Ejercicio',
25
+ background: { hex: '#e8f0f8', model: 'hex' },
26
+ padding: { top: pt(8), right: pt(8), bottom: pt(8), left: pt(8) },
27
+ icon: { kind: 'glyph', glyph: '★' },
28
+ };
29
+ const ANSWER = {
30
+ id: 'answer',
31
+ background: { hex: '#ffffff', model: 'hex' },
32
+ border: { enabled: true, color: { hex: '#333333', model: 'hex' }, width: pt(0.5) },
33
+ borderRadius: pt(4),
34
+ padding: { top: pt(10), right: pt(10), bottom: pt(10), left: pt(10) },
35
+ marginTop: pt(6),
36
+ marginBottom: pt(6),
37
+ };
38
+ const config = (styles, page = 'a5') => ({
39
+ headings: { balancing: { enabled: false } },
40
+ page: page === 'a5'
41
+ ? { width: mm(148), height: mm(210), margins: { top: mm(15), bottom: mm(15), left: mm(15), right: mm(15) } }
42
+ : { width: mm(120), height: mm(80), margins: { top: mm(10), bottom: mm(10), left: mm(10), right: mm(10) } },
43
+ layout: { layoutType: 'single' },
44
+ calloutStyles: styles,
45
+ });
46
+ const build = (md, cfg) => buildDocument({ markdown: md }, cfg, createMeasurementCache());
47
+ const frames = (doc) => doc.blocks.filter((b) => b.type === 'callout');
48
+ const topFrames = (doc) => frames(doc).filter((b) => !b.calloutPath);
49
+ const nestedFrames = (doc) => frames(doc).filter((b) => !!b.calloutPath);
50
+ const boxOf = (frame) => frame.designOverlay.blocks.find((b) => b.kind === 'box');
51
+ const inside = (inner, outer) => inner.x >= outer.x - 0.01 && inner.y >= outer.y - 0.01
52
+ && inner.x + inner.width <= outer.x + outer.width + 0.01
53
+ && inner.y + inner.height <= outer.y + outer.height + 0.01;
54
+ const textOf = (b) => b.lines.map((l) => l.text).join(' ');
55
+ const hasTitle = (frame, title) => (frame.designOverlay?.blocks ?? []).some((b) => b.kind === 'text' && b.lines.some((l) => l.text.includes(title)));
56
+ const ISSUE_MD = [
57
+ ':::callout{type="card"}',
58
+ 'Outer card: the statement of an exercise.',
59
+ '',
60
+ ':::callout{type="answer"}',
61
+ 'Inner white box with its own border, radius and 10pt padding.',
62
+ ':::',
63
+ '',
64
+ ':::callout{type="answer"}',
65
+ 'Second inner box (an option row).',
66
+ ':::',
67
+ ':::',
68
+ '',
69
+ 'After the card.',
70
+ ].join('\n');
71
+ describe('nested callouts', () => {
72
+ it('lays out each nested fence as a box of its own inside the parent', () => {
73
+ const doc = build(ISSUE_MD, config([CARD, ANSWER]));
74
+ const [outer] = topFrames(doc);
75
+ const inner = nestedFrames(doc);
76
+ expect(topFrames(doc)).toHaveLength(1);
77
+ expect(inner).toHaveLength(2);
78
+ const innerRect = outer.callout.innerRect;
79
+ const content = {
80
+ x: outer.bbox.x + innerRect.x,
81
+ y: outer.bbox.y + innerRect.y,
82
+ width: innerRect.width,
83
+ height: innerRect.height,
84
+ };
85
+ for (const f of inner) {
86
+ // Same unit as the parent for placement; the nesting on calloutPath.
87
+ expect(f.containerId).toBe(outer.containerId);
88
+ expect(f.calloutPath).toHaveLength(1);
89
+ expect(f.callout.styleId).toBe('answer');
90
+ // Parent's full inner width, inside its content rect.
91
+ expect(f.bbox.width).toBeCloseTo(innerRect.width, 5);
92
+ expect(inside(f.bbox, content)).toBe(true);
93
+ // Its own decoration: white rounded box with a border.
94
+ const box = boxOf(f);
95
+ expect(box.box.backgroundColor).toBe('#ffffff');
96
+ expect(box.box.borderRadiusPx).toBeCloseTo(4 * PT, 5);
97
+ expect(box.box.borderWidthPx).toBeCloseTo(0.5 * PT, 5);
98
+ expect(box.bbox.x).toBeCloseTo(f.bbox.x, 5);
99
+ expect(box.bbox.y).toBeCloseTo(f.bbox.y, 5);
100
+ // Its text sits at its own padding, not at the parent's inner x.
101
+ const kids = doc.blocks.filter((b) => b.calloutPath?.[0] === f.calloutPath[0] && b.type !== 'callout');
102
+ expect(kids).toHaveLength(1);
103
+ expect(kids[0].bbox.x).toBeCloseTo(f.bbox.x + 10 * PT, 5);
104
+ expect(kids[0].bbox.y).toBeCloseTo(f.bbox.y + 10 * PT, 5);
105
+ expect(kids[0].containerId).toBe(outer.containerId);
106
+ expect(f.callout.childIds).toEqual(kids.map((k) => k.id));
107
+ }
108
+ // Stacked in order, their margins collapsing (6pt apart).
109
+ expect(inner[1].bbox.y - (inner[0].bbox.y + inner[0].bbox.height)).toBeCloseTo(6 * PT, 5);
110
+ // The parent's childIds list its whole content, nested frames included.
111
+ expect(outer.callout.childIds).toContain(inner[0].id);
112
+ // Frame first, then its blocks, in the column (paint order).
113
+ const col = doc.pages[0].columns[0];
114
+ const at = (b) => col.blocks.indexOf(b);
115
+ expect(at(outer)).toBeLessThan(at(inner[0]));
116
+ const firstInnerChild = col.blocks.find((b) => b.calloutPath && b.type !== 'callout');
117
+ expect(at(inner[0])).toBeLessThan(at(firstInnerChild));
118
+ // The content indices point at the fences, the source ranges cover them.
119
+ expect(inner[0].contentIndex).toBeGreaterThan(outer.contentIndex);
120
+ expect(inner[0].sourceStart).toBeGreaterThan(outer.sourceStart);
121
+ expect(inner[0].sourceEnd).toBeLessThan(outer.sourceEnd);
122
+ // The flow continues after the parent.
123
+ const after = doc.blocks.find((b) => textOf(b).startsWith('After'));
124
+ expect(after.bbox.y).toBeGreaterThanOrEqual(outer.bbox.y + outer.bbox.height);
125
+ });
126
+ it('ignores span and placement on a nested fence', () => {
127
+ const md = ISSUE_MD.replace(':::callout{type="answer"}', ':::callout{type="answer" span="page" placement="top"}');
128
+ const doc = build(md, config([CARD, ANSWER]));
129
+ const [outer] = topFrames(doc);
130
+ const [first] = nestedFrames(doc);
131
+ expect(first.callout).toMatchObject({ span: 'column', placement: 'here' });
132
+ expect(inside(first.bbox, outer.bbox)).toBe(true);
133
+ expect(doc.pages[0].floats ?? []).toHaveLength(0);
134
+ });
135
+ it('nests to any depth', () => {
136
+ const md = [
137
+ ':::callout{type="card"}', 'Level one.', '',
138
+ ':::callout{type="answer"}', 'Level two.', '',
139
+ ':::callout{type="answer"}', 'Level three.', ':::',
140
+ ':::', ':::',
141
+ ].join('\n');
142
+ const doc = build(md, config([CARD, ANSWER]));
143
+ const [l2, l3] = nestedFrames(doc);
144
+ expect(l2.calloutPath).toHaveLength(1);
145
+ expect(l3.calloutPath).toHaveLength(2);
146
+ expect(l3.calloutPath[0]).toBe(l2.calloutPath[0]);
147
+ expect(inside(l3.bbox, l2.bbox)).toBe(true);
148
+ const three = doc.blocks.find((b) => textOf(b) === 'Level three.');
149
+ expect(three.calloutPath).toEqual(l3.calloutPath);
150
+ expect(three.bbox.x).toBeCloseTo(l3.bbox.x + 10 * PT, 5);
151
+ });
152
+ it('keeps nested boxes whole inside a :::columns group', () => {
153
+ const md = [
154
+ ':::callout{type="card"}', 'Pick one:', '',
155
+ ':::columns{count=2}',
156
+ ':::callout{type="answer"}', 'Option A.', ':::', '',
157
+ ':::callout{type="answer"}', 'Option B.', ':::',
158
+ ':::', ':::',
159
+ ].join('\n');
160
+ const doc = build(md, config([CARD, ANSWER]));
161
+ const [a, b] = nestedFrames(doc);
162
+ expect(a.bbox.y).toBeCloseTo(b.bbox.y, 5);
163
+ expect(b.bbox.x).toBeGreaterThan(a.bbox.x + a.bbox.width);
164
+ const optB = doc.blocks.find((x) => textOf(x) === 'Option B.');
165
+ expect(inside(optB.bbox, b.bbox)).toBe(true);
166
+ });
167
+ const card = (n, splitCard, answer) => [
168
+ `:::callout{type="${splitCard ? 'cardSplit' : 'card'}"}`,
169
+ 'Statement of the exercise.',
170
+ '',
171
+ ...Array.from({ length: n }, (_, i) => [':::callout{type="answer"}', ...answer.map((a) => `${a} ${i + 1}`), ':::', ''].join('\n')),
172
+ ':::',
173
+ ];
174
+ it('a tall parent splits between its nested boxes; every fragment redraws its frames', () => {
175
+ const md = [filler(2), '', ...card(9, true, ['Answer box']), '', 'After.'].join('\n');
176
+ const doc = build(md, config([{ ...CARD, id: 'cardSplit', keepTogether: false }, ANSWER], 'small'));
177
+ const parts = topFrames(doc);
178
+ expect(parts.length).toBeGreaterThanOrEqual(2);
179
+ parts.forEach((p, i) => {
180
+ expect(p.callout.part).toBe(i);
181
+ expect(hasTitle(p, 'Ejercicio')).toBe(i === 0);
182
+ });
183
+ const inner = nestedFrames(doc);
184
+ expect(inner).toHaveLength(9);
185
+ // Every nested box lies whole inside the fragment of its page, and the
186
+ // answers appear once, in order.
187
+ for (const f of inner) {
188
+ const parent = parts.find((p) => p.pageIndex === f.pageIndex);
189
+ expect(inside(f.bbox, parent.bbox)).toBe(true);
190
+ const page = doc.pages[f.pageIndex];
191
+ expect(f.bbox.y + f.bbox.height).toBeLessThanOrEqual(page.contentArea.y + page.contentArea.height + 0.01);
192
+ }
193
+ const answers = doc.blocks.filter((b) => textOf(b).startsWith('Answer box')).map(textOf);
194
+ expect(answers).toEqual(Array.from({ length: 9 }, (_, i) => `Answer box ${i + 1}`));
195
+ }, 30_000);
196
+ it('a keep-together parent moves whole instead', () => {
197
+ const md = [filler(2), '', ...card(3, false, ['Answer box']), '', 'After.'].join('\n');
198
+ const doc = build(md, config([CARD, ANSWER], 'small'));
199
+ expect(topFrames(doc)).toHaveLength(1);
200
+ expect(nestedFrames(doc)).toHaveLength(3);
201
+ }, 30_000);
202
+ it('a splittable nested box splits inside itself: both fragments redraw it, the continuation without its title', () => {
203
+ const LONG = { ...ANSWER, id: 'long', title: 'Respuesta', keepTogether: false };
204
+ const items = Array.from({ length: 14 }, (_, i) => `- Line of the answer number ${i + 1}.`);
205
+ const md = [
206
+ filler(2), '',
207
+ ':::callout{type="cardSplit"}', 'Statement.', '',
208
+ ':::callout{type="long"}', ...items, ':::',
209
+ '', 'Closing remark of the card.', ':::',
210
+ ].join('\n');
211
+ const doc = build(md, config([{ ...CARD, id: 'cardSplit', keepTogether: false }, ANSWER, LONG], 'small'));
212
+ const parts = topFrames(doc);
213
+ const inner = nestedFrames(doc);
214
+ expect(parts.length).toBeGreaterThanOrEqual(2);
215
+ expect(inner.length).toBe(parts.length);
216
+ inner.forEach((f, i) => {
217
+ const parent = parts[i];
218
+ expect(f.pageIndex).toBe(parent.pageIndex);
219
+ expect(inside(f.bbox, parent.bbox)).toBe(true);
220
+ expect(hasTitle(f, 'Respuesta')).toBe(i === 0);
221
+ // Same nested fence on every fragment.
222
+ expect(f.calloutPath).toEqual(inner[0].calloutPath);
223
+ expect(f.contentIndex).toBe(inner[0].contentIndex);
224
+ });
225
+ // Every item once, in order, each inside the nested frame of its page.
226
+ const lis = doc.blocks.filter((b) => b.type === 'listItem');
227
+ expect(lis.map(textOf)).toEqual(items.map((s) => s.slice(2)));
228
+ for (const li of lis) {
229
+ const f = inner.find((x) => x.pageIndex === li.pageIndex);
230
+ expect(inside(li.bbox, f.bbox)).toBe(true);
231
+ }
232
+ // No fragment leaves a lone item on either side (splitMinLines 2).
233
+ for (const f of inner) {
234
+ expect(lis.filter((li) => li.pageIndex === f.pageIndex).length).toBeGreaterThanOrEqual(2);
235
+ }
236
+ }, 30_000);
237
+ it('a keep-together nested box is never cut: it moves to the next fragment whole', () => {
238
+ const TALLER = { ...ANSWER, id: 'whole' };
239
+ const items = Array.from({ length: 6 }, (_, i) => `- Item ${i + 1} of a kept box.`);
240
+ let moved = 0;
241
+ for (let n = 1; n <= 8; n++) {
242
+ const md = [
243
+ filler(n), '',
244
+ ':::callout{type="cardSplit"}', filler(2), '',
245
+ ':::callout{type="whole"}', ...items, ':::', '',
246
+ 'Closing remark of the card.', ':::',
247
+ ].join('\n');
248
+ const doc = build(md, config([{ ...CARD, id: 'cardSplit', keepTogether: false }, TALLER], 'small'));
249
+ const inner = nestedFrames(doc);
250
+ expect(inner).toHaveLength(1);
251
+ const lis = doc.blocks.filter((b) => b.type === 'listItem');
252
+ expect(new Set(lis.map((li) => li.pageIndex)).size).toBe(1);
253
+ if (topFrames(doc).length > 1 && inner[0].pageIndex > topFrames(doc)[0].pageIndex)
254
+ moved++;
255
+ }
256
+ expect(moved).toBeGreaterThan(0);
257
+ }, 30_000);
258
+ it('leaves boxes without nested fences unchanged (no calloutPath)', () => {
259
+ const md = [':::callout{type="card"}', 'Plain box.', ':::'].join('\n');
260
+ const doc = build(md, config([CARD, ANSWER]));
261
+ expect(doc.blocks.some((b) => b.calloutPath !== undefined)).toBe(false);
262
+ });
263
+ });
264
+ //# sourceMappingURL=calloutNested.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutNested.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutNested.test.ts"],"names":[],"mappings":"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"}
@@ -97,7 +97,7 @@ describe('splittable box cut inside a paragraph', () => {
97
97
  }, 30000);
98
98
  });
99
99
  describe('keep-together box in a column cut short by floats', () => {
100
- it('moves to the next page instead of overflowing, and a box taller than a column warns', () => {
100
+ it('moves to the next page instead of overflowing, and an unsplittable box taller than a column warns', () => {
101
101
  // Left column: a paragraph referencing a tall column figure and a
102
102
  // page-span figure, then a short paragraph (so the floats settle before
103
103
  // the box comes), then a keep-together note. The figure takes the head
@@ -121,8 +121,10 @@ describe('keep-together box in a column cut short by floats', () => {
121
121
  const col = page.columns[f.columnIndex];
122
122
  expect(f.bbox.y + f.bbox.height).toBeLessThanOrEqual(col.bbox.y + col.bbox.height + 0.01);
123
123
  expect(doc.warnings ?? []).toHaveLength(0);
124
- // A box taller than any column is placed anyway and reported.
125
- const tall = build(note(filler(40)), SMALL_PAGE());
124
+ // A box taller than any column that no cut can split (a `:::columns`
125
+ // group is never cut) is placed anyway and reported.
126
+ const group = [':::columns{count=2}', ...Array.from({ length: 12 }, () => filler(3)), ':::'].join('\n\n');
127
+ const tall = build(note(group), SMALL_PAGE());
126
128
  expect(frames(tall)).toHaveLength(1);
127
129
  expect(tall.warnings).toBeDefined();
128
130
  expect(tall.warnings[0].kind).toBe('calloutOverflow');
@@ -188,4 +190,38 @@ describe('floats yield to a keep-together box', () => {
188
190
  expect(floatsOf(split).find((x) => x.id === 'f1').page).toBe(0);
189
191
  }, 30000);
190
192
  });
193
+ describe('splitMinLines guards text, not pictures', () => {
194
+ // A 200 px-tall picture stands one per page in the note (~245 px with its
195
+ // spacing on a ~590 px page): each cut past the paragraph leaves a lone
196
+ // picture on a side.
197
+ const pic = { ...figure('pic', 1000, 200, 'column'), caption: '', placement: { position: 'here' } };
198
+ const box = (...children) => [':::callout{type="note"}', ...children, ':::'].join('\n\n');
199
+ const pics = (n) => Array.from({ length: n }, () => '::resource{id="pic"}');
200
+ const kidsOf = (doc, f) => childrenOf(doc, f).map((k) => k.type);
201
+ it('a single picture may sit alone on either side of a cut: the box splits instead of overflowing', () => {
202
+ const doc = build(box(filler(2), ...pics(5)), SMALL_PAGE({ keepTogether: false }), [pic]);
203
+ expect(doc.warnings ?? []).toHaveLength(0);
204
+ const fs = frames(doc);
205
+ expect(fs.map((f) => f.pageIndex)).toEqual([0, 1, 2, 3, 4]);
206
+ expect(kidsOf(doc, fs[0])).toEqual(['paragraph', 'resource']);
207
+ for (const f of fs.slice(1))
208
+ expect(kidsOf(doc, f)).toEqual(['resource']);
209
+ for (const f of fs) {
210
+ const page = doc.pages[f.pageIndex];
211
+ expect(f.bbox.y + f.bbox.height).toBeLessThanOrEqual(page.contentArea.y + page.contentArea.height + 0.01);
212
+ }
213
+ }, 30000);
214
+ it('a lone trailing text line still never goes on by itself', () => {
215
+ // A picture, then a one-line paragraph: the only cut that fits leaves
216
+ // the line alone on the next page, so the box moves whole instead.
217
+ const md = `${filler(6)}\n\n${box(...pics(1), 'Una línea.')}`;
218
+ const doc = build(md, SMALL_PAGE({ keepTogether: false }), [pic]);
219
+ const fs = frames(doc);
220
+ expect(fs).toHaveLength(1);
221
+ expect(kidsOf(doc, fs[0])).toEqual(['resource', 'paragraph']);
222
+ // With a minimum of one line the same cut is taken.
223
+ const lax = build(md, SMALL_PAGE({ keepTogether: false, splitMinLines: 1 }), [pic]);
224
+ expect(frames(lax).map((f) => kidsOf(lax, f))).toEqual([['resource'], ['paragraph']]);
225
+ }, 30000);
226
+ });
191
227
  //# sourceMappingURL=calloutOverflow.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calloutOverflow.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutOverflow.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calloutOverflow.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutOverflow.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calloutSnapToGrid.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutSnapToGrid.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutSnapToGrid.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildDocument } from '../../pipeline/build';
3
+ import { createMeasurementCache } from '../../measure';
4
+ // Deterministic text measurement stub (no DOM in the node test env).
5
+ class StubCtx {
6
+ font = '';
7
+ measureText(s) {
8
+ return { width: s.length * 7 };
9
+ }
10
+ }
11
+ globalThis.OffscreenCanvas = class {
12
+ getContext() {
13
+ return new StubCtx();
14
+ }
15
+ };
16
+ const mm = (value) => ({ value, unit: 'mm' });
17
+ const pt = (value) => ({ value, unit: 'pt' });
18
+ /** The layout works at 300 dpi. */
19
+ const PT_TO_PX = 300 / 72;
20
+ const EPS = 0.01;
21
+ /** A worksheet style: off-grid margins (6pt below, 3pt above). */
22
+ const config = (snapToGrid) => ({
23
+ headings: { balancing: { enabled: false } },
24
+ page: { width: mm(120), height: mm(200), margins: { top: mm(10), bottom: mm(10), left: mm(10), right: mm(10) } },
25
+ layout: { layoutType: 'single' },
26
+ calloutStyles: [{
27
+ id: 'field',
28
+ marginTop: pt(3),
29
+ marginBottom: pt(6),
30
+ ...(snapToGrid === undefined ? {} : { snapToGrid }),
31
+ }],
32
+ });
33
+ const box = (text) => [':::callout{type="field"}', text, ':::'].join('\n');
34
+ const md = ['Name and surname.', box('Question one.'), box('Question two.'), box('Question three.'), 'Closing words.'].join('\n\n');
35
+ const build = (cfg) => buildDocument({ markdown: md, resources: [] }, cfg, createMeasurementCache());
36
+ const frames = (doc) => doc.blocks.filter((b) => b.type === 'callout');
37
+ const bottom = (b) => b.bbox.y + b.bbox.height;
38
+ describe('callout snapToGrid', () => {
39
+ it('snaps the flow after a box to the baseline grid by default', () => {
40
+ const doc = build(config());
41
+ const fs = frames(doc);
42
+ expect(fs.length).toBe(3);
43
+ const top = doc.pages[0].contentArea.y;
44
+ for (let i = 0; i + 1 < fs.length; i++) {
45
+ // The next box opens `marginTop` under a grid line at least
46
+ // `marginBottom` below the previous one.
47
+ const flowAt = fs[i + 1].bbox.y - 3 * PT_TO_PX;
48
+ const lines = (flowAt - top) / doc.baselineGrid;
49
+ expect(Math.abs(lines - Math.round(lines))).toBeLessThan(EPS);
50
+ expect(flowAt - bottom(fs[i])).toBeGreaterThanOrEqual(6 * PT_TO_PX - EPS);
51
+ }
52
+ });
53
+ it('keeps the exact collapsed margin between consecutive off-grid boxes', () => {
54
+ const doc = build(config(false));
55
+ const fs = frames(doc);
56
+ expect(fs.length).toBe(3);
57
+ // max(marginBottom, marginTop) = 6pt, whatever the grid.
58
+ for (let i = 0; i + 1 < fs.length; i++) {
59
+ expect(fs[i + 1].bbox.y - bottom(fs[i])).toBeCloseTo(6 * PT_TO_PX, 2);
60
+ }
61
+ // The text after the last box sits exactly `marginBottom` below it.
62
+ const closing = doc.blocks.find((b) => b.type === 'paragraph' && b.lines.some((l) => l.text.includes('Closing')));
63
+ expect(closing.bbox.y - bottom(fs[2])).toBeCloseTo(6 * PT_TO_PX, 2);
64
+ });
65
+ it('collapses with a larger top margin of the next box', () => {
66
+ const cfg = config(false);
67
+ cfg.calloutStyles = [{ ...cfg.calloutStyles[0], marginTop: pt(9) }];
68
+ const fs = frames(build(cfg));
69
+ expect(fs[1].bbox.y - bottom(fs[0])).toBeCloseTo(9 * PT_TO_PX, 2);
70
+ });
71
+ });
72
+ //# sourceMappingURL=calloutSnapToGrid.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutSnapToGrid.test.js","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutSnapToGrid.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAIvD,qEAAqE;AACrE,MAAM,OAAO;IACX,IAAI,GAAG,EAAE,CAAC;IACV,WAAW,CAAC,CAAS;QACnB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACjC,CAAC;CACF;AACA,UAAsD,CAAC,eAAe,GAAG;IACxE,UAAU;QACR,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;CACF,CAAC;AAEF,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;AAC/D,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;AAC/D,mCAAmC;AACnC,MAAM,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;AAC1B,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,kEAAkE;AAClE,MAAM,MAAM,GAAG,CAAC,UAAoB,EAAiB,EAAE,CAAC,CAAC;IACvD,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAChH,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IAChC,aAAa,EAAE,CAAC;YACd,EAAE,EAAE,OAAO;YACX,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAChB,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;YACnB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;SACpD,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,0BAA0B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3F,MAAM,EAAE,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEpI,MAAM,KAAK,GAAG,CAAC,GAAkB,EAAe,EAAE,CAChD,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAChF,MAAM,MAAM,GAAG,CAAC,GAAgB,EAAc,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AAChG,MAAM,MAAM,GAAG,CAAC,CAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAEjE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,4DAA4D;YAC5D,yCAAyC;YACzC,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,oEAAoE;QACpE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC;QACnH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,aAAc,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calloutTallKeepTogether.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calloutTallKeepTogether.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/pipeline/calloutTallKeepTogether.test.ts"],"names":[],"mappings":""}