postext 1.2.1 → 1.2.2

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 (185) 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 +39 -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 +75 -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/spanBlocks.test.js +3 -2
  52. package/dist/__tests__/pipeline/spanBlocks.test.js.map +1 -1
  53. package/dist/__tests__/pipeline/tableCellImages.test.js +87 -1
  54. package/dist/__tests__/pipeline/tableCellImages.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/tableStyles.test.d.ts +2 -0
  56. package/dist/__tests__/pipeline/tableStyles.test.d.ts.map +1 -0
  57. package/dist/__tests__/pipeline/tableStyles.test.js +188 -0
  58. package/dist/__tests__/pipeline/tableStyles.test.js.map +1 -0
  59. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  60. package/dist/canvas-backend/blockRender.js +10 -1
  61. package/dist/canvas-backend/blockRender.js.map +1 -1
  62. package/dist/canvas-backend/chip.d.ts +10 -0
  63. package/dist/canvas-backend/chip.d.ts.map +1 -0
  64. package/dist/canvas-backend/chip.js +49 -0
  65. package/dist/canvas-backend/chip.js.map +1 -0
  66. package/dist/canvas-backend/index.d.ts.map +1 -1
  67. package/dist/canvas-backend/index.js +14 -27
  68. package/dist/canvas-backend/index.js.map +1 -1
  69. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  70. package/dist/canvas-backend/renderResourceBlock.js +48 -1
  71. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  72. package/dist/columnClip.d.ts +16 -0
  73. package/dist/columnClip.d.ts.map +1 -0
  74. package/dist/columnClip.js +37 -0
  75. package/dist/columnClip.js.map +1 -0
  76. package/dist/defaults/calloutStyles.d.ts +1 -0
  77. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  78. package/dist/defaults/calloutStyles.js +7 -0
  79. package/dist/defaults/calloutStyles.js.map +1 -1
  80. package/dist/defaults/chipStyles.d.ts +28 -0
  81. package/dist/defaults/chipStyles.d.ts.map +1 -0
  82. package/dist/defaults/chipStyles.js +102 -0
  83. package/dist/defaults/chipStyles.js.map +1 -0
  84. package/dist/defaults/index.d.ts +2 -1
  85. package/dist/defaults/index.d.ts.map +1 -1
  86. package/dist/defaults/index.js +18 -2
  87. package/dist/defaults/index.js.map +1 -1
  88. package/dist/defaults/parts.d.ts +1 -0
  89. package/dist/defaults/parts.d.ts.map +1 -1
  90. package/dist/defaults/parts.js +4 -0
  91. package/dist/defaults/parts.js.map +1 -1
  92. package/dist/defaults/shared.d.ts.map +1 -1
  93. package/dist/defaults/shared.js +43 -16
  94. package/dist/defaults/shared.js.map +1 -1
  95. package/dist/defaults/tableStyle.d.ts +17 -1
  96. package/dist/defaults/tableStyle.d.ts.map +1 -1
  97. package/dist/defaults/tableStyle.js +46 -0
  98. package/dist/defaults/tableStyle.js.map +1 -1
  99. package/dist/design/layout.d.ts.map +1 -1
  100. package/dist/design/layout.js +10 -6
  101. package/dist/design/layout.js.map +1 -1
  102. package/dist/html-backend.d.ts.map +1 -1
  103. package/dist/html-backend.js +72 -5
  104. package/dist/html-backend.js.map +1 -1
  105. package/dist/index.d.ts +7 -6
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +4 -3
  108. package/dist/index.js.map +1 -1
  109. package/dist/knuthPlass/richAdapter.d.ts +3 -1
  110. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  111. package/dist/knuthPlass/richAdapter.js +7 -4
  112. package/dist/knuthPlass/richAdapter.js.map +1 -1
  113. package/dist/measure/cache.d.ts.map +1 -1
  114. package/dist/measure/cache.js +7 -1
  115. package/dist/measure/cache.js.map +1 -1
  116. package/dist/measure/chipEdges.d.ts +5 -0
  117. package/dist/measure/chipEdges.d.ts.map +1 -0
  118. package/dist/measure/chipEdges.js +20 -0
  119. package/dist/measure/chipEdges.js.map +1 -0
  120. package/dist/measure/rich.d.ts +12 -0
  121. package/dist/measure/rich.d.ts.map +1 -1
  122. package/dist/measure/rich.js +128 -5
  123. package/dist/measure/rich.js.map +1 -1
  124. package/dist/parse/blockParser.d.ts.map +1 -1
  125. package/dist/parse/blockParser.js +10 -7
  126. package/dist/parse/blockParser.js.map +1 -1
  127. package/dist/parse/index.d.ts +3 -3
  128. package/dist/parse/index.d.ts.map +1 -1
  129. package/dist/parse/index.js +1 -1
  130. package/dist/parse/index.js.map +1 -1
  131. package/dist/parse/inlineFormatting.d.ts +28 -0
  132. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  133. package/dist/parse/inlineFormatting.js +52 -0
  134. package/dist/parse/inlineFormatting.js.map +1 -1
  135. package/dist/parse/inlineSnippet.d.ts +2 -1
  136. package/dist/parse/inlineSnippet.d.ts.map +1 -1
  137. package/dist/parse/inlineSnippet.js +6 -4
  138. package/dist/parse/inlineSnippet.js.map +1 -1
  139. package/dist/parse/sourceMapping.d.ts.map +1 -1
  140. package/dist/parse/sourceMapping.js +25 -1
  141. package/dist/parse/sourceMapping.js.map +1 -1
  142. package/dist/parse/types.d.ts +31 -0
  143. package/dist/parse/types.d.ts.map +1 -1
  144. package/dist/pipeline/bandCaps.d.ts.map +1 -1
  145. package/dist/pipeline/bandCaps.js +2 -0
  146. package/dist/pipeline/bandCaps.js.map +1 -1
  147. package/dist/pipeline/build.d.ts.map +1 -1
  148. package/dist/pipeline/build.js +237 -59
  149. package/dist/pipeline/build.js.map +1 -1
  150. package/dist/pipeline/calloutLayout.d.ts +52 -4
  151. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  152. package/dist/pipeline/calloutLayout.js +155 -21
  153. package/dist/pipeline/calloutLayout.js.map +1 -1
  154. package/dist/pipeline/chips.d.ts +27 -0
  155. package/dist/pipeline/chips.d.ts.map +1 -0
  156. package/dist/pipeline/chips.js +56 -0
  157. package/dist/pipeline/chips.js.map +1 -0
  158. package/dist/pipeline/columnBalancing.d.ts +1 -1
  159. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  160. package/dist/pipeline/columnBalancing.js +87 -1
  161. package/dist/pipeline/columnBalancing.js.map +1 -1
  162. package/dist/pipeline/config.d.ts.map +1 -1
  163. package/dist/pipeline/config.js +3 -1
  164. package/dist/pipeline/config.js.map +1 -1
  165. package/dist/pipeline/headerFooter.d.ts +0 -4
  166. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  167. package/dist/pipeline/headerFooter.js +42 -15
  168. package/dist/pipeline/headerFooter.js.map +1 -1
  169. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  170. package/dist/pipeline/measureContentBlock.js +6 -1
  171. package/dist/pipeline/measureContentBlock.js.map +1 -1
  172. package/dist/pipeline/partPalette.d.ts +6 -0
  173. package/dist/pipeline/partPalette.d.ts.map +1 -0
  174. package/dist/pipeline/partPalette.js +96 -0
  175. package/dist/pipeline/partPalette.js.map +1 -0
  176. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  177. package/dist/pipeline/resourceLayout.js +35 -11
  178. package/dist/pipeline/resourceLayout.js.map +1 -1
  179. package/dist/types.d.ts +141 -6
  180. package/dist/types.d.ts.map +1 -1
  181. package/dist/vdt.d.ts +88 -2
  182. package/dist/vdt.d.ts.map +1 -1
  183. package/dist/vdt.js +17 -0
  184. package/dist/vdt.js.map +1 -1
  185. package/package.json +1 -1
@@ -22,9 +22,21 @@
22
22
  *
23
23
  * A style with `keepTogether: false` may be split by the placement code
24
24
  * between its children; every fragment is laid out here as a box of its own
25
- * (`continuation` drops the title and icon of the later ones). Limits:
26
- * nested `:::callout` fences inside a callout are flattened into the outer
27
- * box; `width: 'auto'` shrink-wraps the title only and ignores the children.
25
+ * (`continuation` drops the title and icon of the later ones).
26
+ *
27
+ * A `:::callout` fence inside a box is a box of its own: laid out
28
+ * recursively with its own style at the parent's inner width, it stacks
29
+ * as one child of the parent (its `marginTop` / `marginBottom` collapse
30
+ * with its neighbours like a paragraph's). Its `span` and `placement` are
31
+ * ignored — it always flows inside its parent. Its frame and children join
32
+ * the parent's flat child list (frame first) and keep the top-level box's
33
+ * `containerId`, so placement and balancing still see one unit;
34
+ * `calloutPath` records the nesting. A fragment of a split box that opens
35
+ * or ends inside a nested box (`openNested`, an unclosed nested fence)
36
+ * redraws the nested frame too, as a continuation when it opens inside it.
37
+ *
38
+ * Limit: `width: 'auto'` shrink-wraps the title only and ignores the
39
+ * children.
28
40
  */
29
41
  import type { ContentBlock, DirectiveAttrs } from '../parse';
30
42
  import type { CalloutPlacement, CalloutSpan, ResolvedCalloutStyleConfig } from '../types';
@@ -96,12 +108,48 @@ export interface CalloutLayoutInput {
96
108
  /** The box lands on a verso of mirrored margins: an `'outer'` corner icon
97
109
  * hangs on the left corner there. */
98
110
  mirrored?: boolean;
111
+ /** Nested boxes a continuation fragment opens inside, outermost first:
112
+ * their opening markers are not among `children`, which start inside
113
+ * the innermost one. Each is redrawn as a continuation box around the
114
+ * children up to its closing marker (or the end of `children`). */
115
+ openNested?: readonly OpenNestedCallout[];
116
+ /** `calloutPath` of the box's frame and children: set when the box is
117
+ * itself nested (see `VDTBlock.calloutPath`). */
118
+ nestPath?: readonly number[];
119
+ }
120
+ /** An enclosing nested fence a fragment opens inside (see `openNested`). */
121
+ export interface OpenNestedCallout {
122
+ /** Content index of its opening marker. */
123
+ idx: number;
124
+ block: ContentBlock;
99
125
  }
126
+ /** A nested box laid out inside its parent (see {@link CalloutUnit}). */
127
+ export interface NestedCalloutLayout {
128
+ result: CalloutLayoutResult;
129
+ style: ResolvedCalloutStyleConfig;
130
+ /** Content index of the nested fence's opening marker. */
131
+ startIdx: number;
132
+ /** Content index of its closing marker; `undefined` when the laid-out
133
+ * range ends inside the box. */
134
+ endIdx?: number;
135
+ }
136
+ /** A direct item of a laid-out box: a child block, or a nested box (whose
137
+ * frame and blocks also sit in the flat `children`). */
138
+ export type CalloutUnit = {
139
+ kind: 'block';
140
+ block: VDTBlock;
141
+ } | {
142
+ kind: 'box';
143
+ box: NestedCalloutLayout;
144
+ };
100
145
  export interface CalloutLayoutResult {
101
146
  /** The frame block (`type: 'callout'`); decoration on `designOverlay`. */
102
147
  frame: VDTBlock;
103
- /** Content blocks in reading order, block-relative to the frame origin. */
148
+ /** Content blocks in reading order, block-relative to the frame origin —
149
+ * a nested box's frame followed by its own blocks, recursively. */
104
150
  children: VDTBlock[];
151
+ /** The box's direct items in reading order (the split code walks them). */
152
+ units: CalloutUnit[];
105
153
  /** Frame width actually used (`width`, or the shrink-wrapped width for
106
154
  * `width: 'auto'`). */
107
155
  width: number;
@@ -1 +1 @@
1
- {"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calloutLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,21 @@
22
22
  *
23
23
  * A style with `keepTogether: false` may be split by the placement code
24
24
  * between its children; every fragment is laid out here as a box of its own
25
- * (`continuation` drops the title and icon of the later ones). Limits:
26
- * nested `:::callout` fences inside a callout are flattened into the outer
27
- * box; `width: 'auto'` shrink-wraps the title only and ignores the children.
25
+ * (`continuation` drops the title and icon of the later ones).
26
+ *
27
+ * A `:::callout` fence inside a box is a box of its own: laid out
28
+ * recursively with its own style at the parent's inner width, it stacks
29
+ * as one child of the parent (its `marginTop` / `marginBottom` collapse
30
+ * with its neighbours like a paragraph's). Its `span` and `placement` are
31
+ * ignored — it always flows inside its parent. Its frame and children join
32
+ * the parent's flat child list (frame first) and keep the top-level box's
33
+ * `containerId`, so placement and balancing still see one unit;
34
+ * `calloutPath` records the nesting. A fragment of a split box that opens
35
+ * or ends inside a nested box (`openNested`, an unclosed nested fence)
36
+ * redraws the nested frame too, as a continuation when it opens inside it.
37
+ *
38
+ * Limit: `width: 'auto'` shrink-wraps the title only and ignores the
39
+ * children.
28
40
  */
29
41
  import { dimensionToPx } from '../units';
30
42
  import { createBoundingBox, createVDTBlock, } from '../vdt';
@@ -98,6 +110,7 @@ export function deriveCalloutResolvedConfig(resolved, style) {
98
110
  lineHeight: body.lineHeight,
99
111
  color: body.color,
100
112
  boldColor: body.boldColor ?? body.color,
113
+ ...(body.italicColor ? { italicColor: body.italicColor } : {}),
101
114
  textAlign: body.textAlign,
102
115
  hyphenation: { ...resolved.bodyText.hyphenation, enabled: body.hyphenation },
103
116
  paragraphSpacing: body.paragraphSpacing,
@@ -214,6 +227,13 @@ function offsetBlock(blk, ox, oy) {
214
227
  blk.bulletY += oy;
215
228
  if (blk.resourceBlock)
216
229
  offsetResourceBlock(blk.resourceBlock, ox, oy);
230
+ // A nested box's frame carries its decoration on the overlay.
231
+ if (blk.designOverlay) {
232
+ blk.designOverlay.bbox.x += ox;
233
+ blk.designOverlay.bbox.y += oy;
234
+ for (const b of blk.designOverlay.blocks)
235
+ offsetDesignBlock(b, ox, oy);
236
+ }
217
237
  }
218
238
  function offsetDesignBlock(b, ox, oy) {
219
239
  b.bbox.x += ox;
@@ -352,12 +372,14 @@ export function layoutCallout(input) {
352
372
  // the line boundaries that level the columns best, and takes the height
353
373
  // of the tallest column.
354
374
  const childBlocks = [];
375
+ const units = [];
376
+ const nestPath = input.nestPath && input.nestPath.length > 0 ? input.nestPath : undefined;
355
377
  const columnGapPx = px(style.columnGap);
356
378
  const isFirstRealOf = (k) => children.slice(0, k).every((c) => c.type === 'directive' || isMarkerBlock(c));
357
379
  const isLastRealOf = (k) => children.slice(k + 1).every((c) => c.type === 'directive' || isMarkerBlock(c));
358
380
  /** Lay out one child at `width` from `x`, appending it to `into` and
359
381
  * advancing the stack. */
360
- const placeChild = (raw, k, width, x, st, into) => {
382
+ const placeChild = (raw, k, width, x, st, into, unitsInto) => {
361
383
  const blockIdx = childStartIdx + k;
362
384
  const measuredBlock = measureContentBlock(raw, blockIdx, width, derivedCtx, {
363
385
  styleOverride: input.paragraphStyleFor?.(blockIdx),
@@ -385,6 +407,8 @@ export function layoutCallout(input) {
385
407
  blk.dirty = false;
386
408
  blk.snappedToGrid = false;
387
409
  blk.headingLevel = headingLevel;
410
+ if (nestPath)
411
+ blk.calloutPath = [...nestPath];
388
412
  if (numberPrefix)
389
413
  blk.numberPrefix = numberPrefix;
390
414
  blk.sourceMap = absoluteSourceMap;
@@ -465,12 +489,85 @@ export function layoutCallout(input) {
465
489
  blk.listKind = listKind;
466
490
  }
467
491
  into.push(blk);
492
+ unitsInto.push({ kind: 'block', block: blk });
468
493
  st.cursorY += height;
469
494
  st.prevMarginBottom = bs.marginBottomPx;
470
495
  st.prevWasListItem = vdtType === 'listItem';
471
496
  st.first = false;
472
497
  return blk;
473
498
  };
499
+ /** Lay out the nested box whose fence opens with `open` (content index
500
+ * `openIdx`) over `children[k0 … k1 - 1]` — `k1` is its closing marker's
501
+ * position, or `children.length` when the range ends inside it — at
502
+ * `width` from `x`, appending its frame and blocks to `into` (one unit)
503
+ * and advancing the stack. `reopened` marks a box the fragment opens
504
+ * inside: a continuation of it, holding the line cut `lineFrom` and the
505
+ * boxes `openRest` it opens inside in turn. Returns the blocks, frame
506
+ * first, or `undefined` when no style applies (then the caller flattens). */
507
+ const placeNested = (open, openIdx, k0, k1, width, x, st, into, unitsInto, reopened) => {
508
+ const nestedStyle = pickCalloutStyle(input.resolved.calloutStyles, open.containerAttrs?.type);
509
+ if (!nestedStyle || open.containerId === undefined)
510
+ return undefined;
511
+ const closed = k1 < children.length;
512
+ const nested = layoutCallout({
513
+ style: nestedStyle,
514
+ attrs: open.containerAttrs ?? {},
515
+ children: children.slice(k0, k1),
516
+ childStartIdx: childStartIdx + k0,
517
+ width,
518
+ ctx,
519
+ resolved: input.resolved,
520
+ containerId,
521
+ frameId: input.nextChildId(),
522
+ nextChildId: input.nextChildId,
523
+ ...(input.paragraphStyleFor ? { paragraphStyleFor: input.paragraphStyleFor } : {}),
524
+ ...(input.bodyOffset !== undefined ? { bodyOffset: input.bodyOffset } : {}),
525
+ continuation: !!reopened,
526
+ ...(reopened && input.lineFrom !== undefined ? { lineFrom: input.lineFrom } : {}),
527
+ ...(!closed && input.lineTo !== undefined ? { lineTo: input.lineTo } : {}),
528
+ ...(reopened && reopened.openRest.length > 0 ? { openNested: reopened.openRest } : {}),
529
+ mirrored: input.mirrored,
530
+ nestPath: [...(nestPath ?? []), open.containerId],
531
+ });
532
+ // Spacing above: as a paragraph's (margin collapsing, none at the top
533
+ // of the box beyond the title gap).
534
+ const spacing = st.first ? st.prevMarginBottom : Math.max(st.prevMarginBottom, nested.marginTopPx);
535
+ st.cursorY += spacing;
536
+ const { frame } = nested;
537
+ frame.contentIndex = openIdx;
538
+ // The box always flows inside its parent.
539
+ if (frame.callout) {
540
+ frame.callout.span = 'column';
541
+ frame.callout.placement = 'here';
542
+ }
543
+ const bodyOff = input.bodyOffset ?? ctx.bodyOffset;
544
+ const firstRaw = reopened ? children[k0] : open;
545
+ const lastRaw = closed ? children[k1] : children[k1 - 1];
546
+ if (firstRaw)
547
+ frame.sourceStart = firstRaw.sourceStart + bodyOff;
548
+ if (lastRaw)
549
+ frame.sourceEnd = lastRaw.sourceEnd + bodyOff;
550
+ offsetCalloutToAbsolute(nested, x, st.cursorY);
551
+ const blocks = [frame, ...nested.children];
552
+ into.push(...blocks);
553
+ unitsInto.push({
554
+ kind: 'box',
555
+ box: { result: nested, style: nestedStyle, startIdx: openIdx, ...(closed ? { endIdx: childStartIdx + k1 } : {}) },
556
+ });
557
+ st.cursorY += nested.totalHeight;
558
+ st.prevMarginBottom = nested.marginBottomPx;
559
+ st.prevWasListItem = false;
560
+ st.first = false;
561
+ return blocks;
562
+ };
563
+ /** Position of the marker closing the nested fence `id` opened before
564
+ * position `from`, or `children.length` when the range ends inside it. */
565
+ const closeOf = (id, from) => {
566
+ let e = from;
567
+ while (e < children.length && !(children[e].type === 'containerEnd' && children[e].containerId === id))
568
+ e++;
569
+ return e;
570
+ };
474
571
  /** The tail of a text block cut at line `l`: a block of its own with the
475
572
  * lines from `l` on (no bullet — the head keeps it), at y = 0. */
476
573
  const tailOf = (blk, l) => {
@@ -489,7 +586,8 @@ export function layoutCallout(input) {
489
586
  tail.sourceStart = tail.lines[0]?.sourceStart ?? blk.sourceStart;
490
587
  return tail;
491
588
  };
492
- /** A `:::columns{count=N}` group: children `k0 … k1 - 1` in N columns. */
589
+ /** A `:::columns{count=N}` group: children `k0 … k1 - 1` in N columns.
590
+ * A nested box among them is one item: never cut, moved whole. */
493
591
  const placeColumnsGroup = (k0, k1, count, st, breaks) => {
494
592
  const cols = Math.max(1, Math.min(6, count));
495
593
  const colW = Math.max(1, (innerWidth - columnGapPx * (cols - 1)) / cols);
@@ -497,21 +595,34 @@ export function layoutCallout(input) {
497
595
  const spacing = st.first ? st.prevMarginBottom : st.prevMarginBottom;
498
596
  const groupTop = st.cursorY + spacing;
499
597
  const gst = { cursorY: 0, prevMarginBottom: 0, prevWasListItem: false, first: true };
598
+ /** The group's items: a child block, or a nested box's blocks (frame first). */
500
599
  const stack = [];
501
600
  for (let k = k0; k < k1; k++) {
502
601
  const raw = children[k];
602
+ const into = [];
603
+ const unitsInto = [];
604
+ if (raw.type === 'containerStart' && raw.containerName === 'callout') {
605
+ const e = closeOf(raw.containerId, k + 1);
606
+ if (placeNested(raw, childStartIdx + k, k + 1, Math.min(e, k1), colW, innerX, gst, into, unitsInto)) {
607
+ stack.push({ blocks: into, unit: unitsInto[0] });
608
+ k = e;
609
+ continue;
610
+ }
611
+ }
503
612
  if (raw.type === 'directive' || isMarkerBlock(raw))
504
613
  continue;
505
- placeChild(raw, k, colW, innerX, gst, stack);
614
+ if (placeChild(raw, k, colW, innerX, gst, into, unitsInto))
615
+ stack.push({ blocks: into, unit: unitsInto[0] });
506
616
  }
507
617
  if (stack.length === 0)
508
618
  return;
509
619
  const total = gst.cursorY;
510
620
  const candidates = [];
511
- stack.forEach((blk, i) => {
621
+ stack.forEach((item, i) => {
622
+ const blk = item.blocks[0];
512
623
  if (i > 0)
513
624
  candidates.push({ y: blk.bbox.y, block: i, line: 0 });
514
- const cuttable = blk.type !== 'resource' && blk.type !== 'mathDisplay' && blk.lines.length > 1 && !blk.mathRender;
625
+ const cuttable = item.unit.kind === 'block' && blk.type !== 'resource' && blk.type !== 'mathDisplay' && blk.lines.length > 1 && !blk.mathRender;
515
626
  if (cuttable) {
516
627
  for (let l = 1; l < blk.lines.length; l++)
517
628
  candidates.push({ y: blk.lines[l].bbox.y, block: i, line: l });
@@ -526,7 +637,7 @@ export function layoutCallout(input) {
526
637
  const i = b - 1;
527
638
  if (i <= 0 || i >= stack.length)
528
639
  continue;
529
- const y = stack[i].bbox.y;
640
+ const y = stack[i].blocks[0].bbox.y;
530
641
  if (y <= prevY + 0.01)
531
642
  continue;
532
643
  cuts.push({ y, block: i, line: 0 });
@@ -549,14 +660,14 @@ export function layoutCallout(input) {
549
660
  prevY = best.y;
550
661
  }
551
662
  }
552
- // Split the stack at the cuts into columns of blocks; a cut inside a
663
+ // Split the stack at the cuts into columns of items; a cut inside a
553
664
  // text block leaves its head behind and opens the next column with the
554
665
  // tail (a block of its own, bullet-less).
555
666
  const columns = [[]];
556
667
  const columnStarts = [0];
557
668
  let cutIdx = 0;
558
669
  for (let i = 0; i < stack.length; i++) {
559
- let blk = stack[i];
670
+ let item = stack[i];
560
671
  while (cutIdx < cuts.length && cuts[cutIdx].block === i && cuts[cutIdx].line === 0) {
561
672
  columns.push([]);
562
673
  columnStarts.push(cuts[cutIdx].y);
@@ -564,6 +675,7 @@ export function layoutCallout(input) {
564
675
  }
565
676
  let consumed = 0;
566
677
  while (cutIdx < cuts.length && cuts[cutIdx].block === i && cuts[cutIdx].line > 0) {
678
+ const blk = item.blocks[0];
567
679
  const cut = cuts[cutIdx];
568
680
  const l = cut.line - consumed;
569
681
  cutIdx++;
@@ -573,23 +685,26 @@ export function layoutCallout(input) {
573
685
  const tail = tailOf(blk, l);
574
686
  blk.lines = blk.lines.slice(0, l);
575
687
  blk.bbox = createBoundingBox(blk.bbox.x, blk.bbox.y, blk.bbox.width, l * lh);
576
- columns[columns.length - 1].push(blk);
688
+ columns[columns.length - 1].push(item);
577
689
  offsetBlock(tail, 0, cut.y);
578
690
  columns.push([]);
579
691
  columnStarts.push(cut.y);
580
692
  consumed += l;
581
- blk = tail;
693
+ item = { blocks: [tail], unit: { kind: 'block', block: tail } };
582
694
  }
583
- columns[columns.length - 1].push(blk);
695
+ columns[columns.length - 1].push(item);
584
696
  }
585
697
  let groupHeight = 0;
586
- columns.forEach((blocks, c) => {
698
+ columns.forEach((items, c) => {
587
699
  const shiftX = c * (colW + columnGapPx);
588
700
  const shiftY = groupTop - (columnStarts[c] ?? 0);
589
- for (const blk of blocks) {
590
- offsetBlock(blk, shiftX, shiftY);
591
- childBlocks.push(blk);
592
- groupHeight = Math.max(groupHeight, blk.bbox.y + blk.bbox.height - groupTop);
701
+ for (const item of items) {
702
+ for (const blk of item.blocks) {
703
+ offsetBlock(blk, shiftX, shiftY);
704
+ childBlocks.push(blk);
705
+ groupHeight = Math.max(groupHeight, blk.bbox.y + blk.bbox.height - groupTop);
706
+ }
707
+ units.push(item.unit);
593
708
  }
594
709
  });
595
710
  st.cursorY = groupTop + groupHeight;
@@ -599,8 +714,24 @@ export function layoutCallout(input) {
599
714
  };
600
715
  const st = { cursorY, prevMarginBottom: hasTitle ? gapPx : 0, prevWasListItem: false, first: true };
601
716
  if (!isAuto) {
602
- for (let k = 0; k < children.length; k++) {
717
+ let k0 = 0;
718
+ // A continuation opening inside a nested box redraws it (and the boxes
719
+ // it opens inside in turn) around the children up to its closing marker.
720
+ const [reopen, ...openRest] = input.openNested ?? [];
721
+ if (reopen) {
722
+ const e = closeOf(reopen.block.containerId, 0);
723
+ placeNested(reopen.block, reopen.idx, 0, e, innerWidth, innerX, st, childBlocks, units, { openRest });
724
+ k0 = e + 1;
725
+ }
726
+ for (let k = k0; k < children.length; k++) {
603
727
  const raw = children[k];
728
+ if (raw.type === 'containerStart' && raw.containerName === 'callout') {
729
+ const e = closeOf(raw.containerId, k + 1);
730
+ if (placeNested(raw, childStartIdx + k, k + 1, e, innerWidth, innerX, st, childBlocks, units)) {
731
+ k = e;
732
+ continue;
733
+ }
734
+ }
604
735
  if (raw.type === 'containerStart' && raw.containerName === 'columns') {
605
736
  let e = k + 1;
606
737
  while (e < children.length && !(children[e].type === 'containerEnd' && children[e].containerName === 'columns' && children[e].containerId === raw.containerId))
@@ -613,7 +744,7 @@ export function layoutCallout(input) {
613
744
  }
614
745
  if (raw.type === 'directive' || isMarkerBlock(raw))
615
746
  continue;
616
- placeChild(raw, k, innerWidth, innerX, st, childBlocks);
747
+ placeChild(raw, k, innerWidth, innerX, st, childBlocks, units);
617
748
  }
618
749
  }
619
750
  cursorY = st.cursorY;
@@ -815,6 +946,8 @@ export function layoutCallout(input) {
815
946
  frame.dirty = false;
816
947
  frame.snappedToGrid = false;
817
948
  frame.containerId = containerId;
949
+ if (nestPath)
950
+ frame.calloutPath = [...nestPath];
818
951
  frame.designOverlay = overlay;
819
952
  frame.callout = {
820
953
  styleId: style.id,
@@ -830,6 +963,7 @@ export function layoutCallout(input) {
830
963
  return {
831
964
  frame,
832
965
  children: childBlocks,
966
+ units,
833
967
  width,
834
968
  totalHeight: frameHeight,
835
969
  marginTopPx: px(style.marginTop),
@@ -1 +1 @@
1
- {"version":3,"file":"calloutLayout.js","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calloutLayout.js","sourceRoot":"","sources":["../../src/pipeline/calloutLayout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Inline chips (`:chip[text]{style="…"}`): resolve each chip span's style
3
+ * into the px / hex box the rich-text measurer lays out (see
4
+ * `measure/rich.ts`). The measurer knows neither the DPI nor the chip
5
+ * styles, so every text path — body blocks, table cells, captions, notes —
6
+ * runs its spans through {@link resolveChipSpans} with the font size of the
7
+ * text the chips sit in.
8
+ */
9
+ import type { ChipBox, InlineSpan } from '../parse';
10
+ import type { ResolvedChipStyleConfig } from '../types';
11
+ import type { ResolvedConfig } from '../vdt';
12
+ /** What chip resolution needs from the resolved config. */
13
+ export interface ChipContext {
14
+ styles: readonly ResolvedChipStyleConfig[];
15
+ dpi: number;
16
+ }
17
+ export declare function chipContextOf(resolved: Pick<ResolvedConfig, 'chipStyles' | 'page'>): ChipContext;
18
+ /** The box of a chip set in text of `baseFontSizePx`: an em `fontSize` is
19
+ * read against that text, the box lengths against the chip's own size. */
20
+ export declare function resolveChipBox(style: ResolvedChipStyleConfig, dpi: number, baseFontSizePx: number): ChipBox;
21
+ /** The px size of a CSS font shorthand (`16px` when it has none). */
22
+ export declare function fontSizePxOf(fontString: string): number;
23
+ /** Attach the resolved box to every chip span (the style its `style` id
24
+ * names, else the first chip style). Spans without a chip pass through;
25
+ * with no chip style at all a chip keeps no box and sets as bare text. */
26
+ export declare function resolveChipSpans(spans: InlineSpan[], ctx: ChipContext, baseFontSizePx: number): InlineSpan[];
27
+ //# sourceMappingURL=chips.d.ts.map