postext 0.3.26 → 0.3.27

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 (99) hide show
  1. package/dist/__tests__/columnBalancing.test.js +46 -0
  2. package/dist/__tests__/columnBalancing.test.js.map +1 -1
  3. package/dist/__tests__/continuation.test.d.ts +2 -0
  4. package/dist/__tests__/continuation.test.d.ts.map +1 -0
  5. package/dist/__tests__/continuation.test.js +124 -0
  6. package/dist/__tests__/continuation.test.js.map +1 -0
  7. package/dist/__tests__/defaults/calloutStyles.test.js +58 -1
  8. package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
  9. package/dist/__tests__/exports.test.js +1 -0
  10. package/dist/__tests__/exports.test.js.map +1 -1
  11. package/dist/__tests__/pipeline/calloutLayout.test.js +171 -0
  12. package/dist/__tests__/pipeline/calloutLayout.test.js.map +1 -1
  13. package/dist/__tests__/pipeline/raggedUrl.test.d.ts +2 -0
  14. package/dist/__tests__/pipeline/raggedUrl.test.d.ts.map +1 -0
  15. package/dist/__tests__/pipeline/raggedUrl.test.js +22 -0
  16. package/dist/__tests__/pipeline/raggedUrl.test.js.map +1 -0
  17. package/dist/__tests__/pipeline/trailingBandZone.test.d.ts +2 -0
  18. package/dist/__tests__/pipeline/trailingBandZone.test.d.ts.map +1 -0
  19. package/dist/__tests__/pipeline/trailingBandZone.test.js +77 -0
  20. package/dist/__tests__/pipeline/trailingBandZone.test.js.map +1 -0
  21. package/dist/canvas-backend/blockRender.js +1 -1
  22. package/dist/canvas-backend/blockRender.js.map +1 -1
  23. package/dist/defaults/calloutStyles.d.ts +17 -1
  24. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  25. package/dist/defaults/calloutStyles.js +74 -1
  26. package/dist/defaults/calloutStyles.js.map +1 -1
  27. package/dist/defaults/shared.d.ts.map +1 -1
  28. package/dist/defaults/shared.js +12 -0
  29. package/dist/defaults/shared.js.map +1 -1
  30. package/dist/html-backend.js +1 -1
  31. package/dist/html-backend.js.map +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/numbering.d.ts +3 -1
  37. package/dist/numbering.d.ts.map +1 -1
  38. package/dist/numbering.js +4 -1
  39. package/dist/numbering.js.map +1 -1
  40. package/dist/pipeline/bandCaps.d.ts +21 -1
  41. package/dist/pipeline/bandCaps.d.ts.map +1 -1
  42. package/dist/pipeline/bandCaps.js +29 -3
  43. package/dist/pipeline/bandCaps.js.map +1 -1
  44. package/dist/pipeline/build.d.ts +17 -0
  45. package/dist/pipeline/build.d.ts.map +1 -1
  46. package/dist/pipeline/build.js +58 -20
  47. package/dist/pipeline/build.js.map +1 -1
  48. package/dist/pipeline/buildHelpers.d.ts +1 -1
  49. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  50. package/dist/pipeline/buildHelpers.js +2 -2
  51. package/dist/pipeline/buildHelpers.js.map +1 -1
  52. package/dist/pipeline/calloutLayout.d.ts +5 -0
  53. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  54. package/dist/pipeline/calloutLayout.js +147 -44
  55. package/dist/pipeline/calloutLayout.js.map +1 -1
  56. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  57. package/dist/pipeline/columnBalancing.js +17 -1
  58. package/dist/pipeline/columnBalancing.js.map +1 -1
  59. package/dist/pipeline/continuation.d.ts +7 -0
  60. package/dist/pipeline/continuation.d.ts.map +1 -0
  61. package/dist/pipeline/continuation.js +26 -0
  62. package/dist/pipeline/continuation.js.map +1 -0
  63. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  64. package/dist/pipeline/headerFooter.js +9 -7
  65. package/dist/pipeline/headerFooter.js.map +1 -1
  66. package/dist/pipeline/index.d.ts +2 -1
  67. package/dist/pipeline/index.d.ts.map +1 -1
  68. package/dist/pipeline/index.js +1 -0
  69. package/dist/pipeline/index.js.map +1 -1
  70. package/dist/pipeline/placeholders.d.ts +1 -1
  71. package/dist/pipeline/placeholders.d.ts.map +1 -1
  72. package/dist/pipeline/placeholders.js +4 -3
  73. package/dist/pipeline/placeholders.js.map +1 -1
  74. package/dist/pipeline/placement.d.ts +2 -2
  75. package/dist/pipeline/placement.d.ts.map +1 -1
  76. package/dist/pipeline/placement.js +12 -8
  77. package/dist/pipeline/placement.js.map +1 -1
  78. package/dist/pipeline/raggedUrl.d.ts +15 -0
  79. package/dist/pipeline/raggedUrl.d.ts.map +1 -0
  80. package/dist/pipeline/raggedUrl.js +28 -0
  81. package/dist/pipeline/raggedUrl.js.map +1 -0
  82. package/dist/pipeline/resourceNumbering.d.ts +27 -19
  83. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  84. package/dist/pipeline/resourceNumbering.js +19 -17
  85. package/dist/pipeline/resourceNumbering.js.map +1 -1
  86. package/dist/types.d.ts +98 -1
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/vdt.d.ts +13 -0
  89. package/dist/vdt.d.ts.map +1 -1
  90. package/dist/vdt.js.map +1 -1
  91. package/dist/worker/client.d.ts +4 -0
  92. package/dist/worker/client.d.ts.map +1 -1
  93. package/dist/worker/client.js +4 -0
  94. package/dist/worker/client.js.map +1 -1
  95. package/dist/worker/layout.worker.js +14 -0
  96. package/dist/worker/layout.worker.js.map +1 -1
  97. package/dist/worker/protocol.d.ts +5 -0
  98. package/dist/worker/protocol.d.ts.map +1 -1
  99. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"bandCaps.js","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bandCaps.js","sourceRoot":"","sources":["../../src/pipeline/bandCaps.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,23 @@ export interface BuildDocumentOptions {
11
11
  * a newer request has superseded this one.
12
12
  */
13
13
  shouldCancel?: () => boolean;
14
+ /**
15
+ * Progress hook, called as placement advances: once per top-level content
16
+ * block of every pass (the engine re-places the document several times —
17
+ * band caps, column balancing — so `pass` counts up and the block counter
18
+ * restarts). A long build can show a bar from it.
19
+ */
20
+ onProgress?: (progress: BuildProgress) => void;
21
+ }
22
+ export interface BuildProgress {
23
+ /** 1-based placement pass. */
24
+ pass: number;
25
+ /** Top-level content blocks placed so far in this pass, and how many
26
+ * there are in the document. */
27
+ blocks: number;
28
+ totalBlocks: number;
29
+ /** Pages opened so far in this pass. */
30
+ pages: number;
14
31
  }
15
32
  export declare class BuildCancelledError extends Error {
16
33
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA0E,MAAM,UAAU,CAAC;AAGtI,OAAO,EAIL,KAAK,WAAW,EAMjB,MAAM,QAAQ,CAAC;AAYhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsEnD,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAQL,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAWD;yEACyE;AACzE,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;4EACwE;IACxE,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,EAAE,WAAW,CAAC;IACjB;;+DAE2D;IAC3D,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;4EAGwE;IACxE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,KAAK,GAAE,SAAc,GACpB,UAAU,CA2xDZ;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,WAAW,CA+Hb"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/pipeline/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA0E,MAAM,UAAU,CAAC;AAGtI,OAAO,EAIL,KAAK,WAAW,EAMjB,MAAM,QAAQ,CAAC;AAYhB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsEnD,OAAO,EAAsC,KAAK,WAAW,EAA2C,MAAM,mBAAmB,CAAC;AAClI,OAAO,EAQL,KAAK,OAAO,EACZ,KAAK,cAAc,EAGpB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb;qCACiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAWD;yEACyE;AACzE,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C;4EACwE;IACxE,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,GAAG,EAAE,WAAW,CAAC;IACjB;;+DAE2D;IAC3D,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B;;;4EAGwE;IACxE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAuCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,EAC9B,KAAK,GAAE,SAAc,GACpB,UAAU,CA4zDZ;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,WAAW,CAuIb"}
@@ -22,8 +22,9 @@ import { enumerateCurrentPageSlots, measureFloatBand, columnHasFloatBand, fitsSt
22
22
  import { computeHeadingContext, computeResourceNumbering, } from './resourceNumbering';
23
23
  import { defaultResourceTypes } from '../defaults/resourceTypes';
24
24
  import { buildHeadersAndFooters, measureHeadingAdvancedDesignHeight } from './headerFooter';
25
- import { totalGapLines, proposeBalanceLines, MAX_BALANCING_PASSES, } from './columnBalancing';
26
- import { applyBandCap, uncapBand, columnBottom, bandCapLines, bandTop, resolveBandCaps, resolveTrailingCaps, } from './bandCaps';
25
+ import { totalGapLines, proposeBalanceLines, MAX_BALANCING_PASSES } from './columnBalancing';
26
+ import { applyBandCap, uncapBand, columnBottom, bandCapLines, bandTop, resolveBandCaps, resolveTrailingCaps, bandCapLinesAroundZone, } from './bandCaps';
27
+ import { raggedUrlLines } from './raggedUrl';
27
28
  export class BuildCancelledError extends Error {
28
29
  constructor() {
29
30
  super('Build cancelled');
@@ -106,13 +107,21 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
106
107
  const baselineGrid = computeBaselineGrid(resolved);
107
108
  // Create document
108
109
  const doc = createVDTDocument(resolved, baselineGrid);
110
+ // A chapter laid out after the pages before it: shift parity and carry the
111
+ // counters over (see `PostextContent.continuation`).
112
+ const continuation = content.continuation;
113
+ const pageIndexOffset = Math.max(0, Math.floor(continuation?.pageIndexOffset ?? 0));
114
+ if (pageIndexOffset > 0)
115
+ doc.pageIndexOffset = pageIndexOffset;
116
+ if (continuation?.headings && continuation.headings.h1 > 0)
117
+ doc.chapterOrdinalOffset = continuation.headings.h1;
109
118
  const pageMetrics = computePageMetrics(resolved);
110
119
  const { pageWidthPx, pageHeightPx, trimOffset, contentArea } = pageMetrics;
111
120
  // Page/bleed frames for design elements anchored to `'page'` / `'bleed'`.
112
121
  const designFrames = { page: pageMetrics.trimBox, bleed: pageMetrics.bleedBox };
113
122
  doc.trimOffset = trimOffset;
114
123
  // Create first page
115
- const firstPage = createPageWithColumns(0, resolved, contentArea, pageWidthPx, pageHeightPx);
124
+ const firstPage = createPageWithColumns(0, resolved, contentArea, pageWidthPx, pageHeightPx, pageIndexOffset);
116
125
  doc.pages.push(firstPage);
117
126
  // Extract frontmatter, then parse the remaining markdown body
118
127
  const { metadata: frontmatterMeta, content: markdownBody, contentOffset: bodyOffset } = extractFrontmatter(content.markdown);
@@ -124,15 +133,16 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
124
133
  headingTemplates[lvl.level] = lvl.numberingTemplate;
125
134
  }
126
135
  }
127
- const headingPrefixes = computeHeadingNumbers(contentBlocks, headingTemplates);
136
+ const headingStart = continuation?.headings;
137
+ const headingPrefixes = computeHeadingNumbers(contentBlocks, headingTemplates, headingStart ? [headingStart.h1, headingStart.h2, headingStart.h3, headingStart.h4, headingStart.h5, headingStart.h6] : undefined);
128
138
  // Resource numbering — computed up front (before the placement loop) so that
129
139
  // captions and inline `:ref`s can resolve their rendered number strings
130
140
  // before measurement. Numbering follows order of first reference in the
131
141
  // document.
132
142
  const resourceTypes = config?.resourceTypes ?? defaultResourceTypes();
133
143
  const resources = content.resources ?? [];
134
- const headingContext = computeHeadingContext(contentBlocks);
135
- const resourceNumbering = computeResourceNumbering(contentBlocks, resourceTypes, resources, headingContext);
144
+ const headingContext = computeHeadingContext(contentBlocks, headingStart);
145
+ const resourceNumbering = computeResourceNumbering(contentBlocks, resourceTypes, resources, headingContext, continuation ? { counters: continuation.resourceCounters, numbered: continuation.resourceNumbers } : undefined);
136
146
  // Lookups threaded into block-kind resolution + measurement.
137
147
  const resourceById = new Map();
138
148
  for (const r of resources)
@@ -533,7 +543,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
533
543
  for (const [spanIndex, cap] of bandCaps) {
534
544
  if (cap.startContentIndex !== contentIndex || cap.startPart !== part)
535
545
  continue;
536
- applyBandCap(bandColumns(page, band), cap.lines * baselineGrid, uncappedBottoms);
546
+ applyBandCap(bandColumns(page, band), cap.lines * baselineGrid, uncappedBottoms, cap.zone);
537
547
  activeCap = { spanIndex, pageIndex: page.index, band };
538
548
  bandCapsApplied.add(spanIndex);
539
549
  break;
@@ -550,8 +560,14 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
550
560
  * the cap delivered when it is reached inside the capped band (nothing
551
561
  * spilled past the cut); the columns are NOT uncapped afterwards, so
552
562
  * column balancing does not stretch them back to the page bottom.
563
+ *
564
+ * A chapter-closing fixed box passes the `zone` it will take at the
565
+ * bottom of the band: when the level cut would run into it, the columns
566
+ * under the box are cut at the zone's top instead and the others take
567
+ * the displaced text (see {@link bandCapLinesAroundZone}) — the box then
568
+ * fits on the page, under its columns, rather than opening a page alone.
553
569
  */
554
- const proposeTrailingCap = (boundaryIndex) => {
570
+ const proposeTrailingCap = (boundaryIndex, zone) => {
555
571
  const balancingCfg = resolved.headings.balancing;
556
572
  if (!balancingCfg.enabled || !balancingCfg.trailing)
557
573
  return;
@@ -576,14 +592,16 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
576
592
  if (!bandStart || !registeredBand || registeredBand.pageIndex !== page.index || registeredBand.band !== band)
577
593
  return;
578
594
  const bottoms = cols.map((c) => c.bbox.y + (c.bbox.height - c.availableHeight));
579
- if (Math.max(...bottoms) - Math.min(...bottoms) <= baselineGrid + 0.5)
595
+ const aroundZone = zone ? bandCapLinesAroundZone(cols, baselineGrid, zone, (c) => columnBottom(c, uncappedBottoms)) : null;
596
+ if (aroundZone === null && Math.max(...bottoms) - Math.min(...bottoms) <= baselineGrid + 0.5)
580
597
  return;
581
598
  bandCapProposals.set(boundaryIndex, {
582
599
  kind: 'trailing',
583
600
  startContentIndex: bandStart.contentIndex,
584
601
  startPart: bandStart.part,
585
- lines: bandCapLines(cols, baselineGrid),
602
+ lines: aroundZone ?? bandCapLines(cols, baselineGrid),
586
603
  retries: 0,
604
+ ...(aroundZone !== null ? { zone } : {}),
587
605
  });
588
606
  };
589
607
  /** Close the flow at a chapter-level boundary (block `boundaryIndex`):
@@ -617,11 +635,12 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
617
635
  // Page-numbering segments. The implicit first segment comes from
618
636
  // `cfg.page.pageNumbering`; `:::numbering` directives append more,
619
637
  // each applied at the next page boundary.
638
+ // A continued document starts where the previous page left off.
620
639
  const pageNumberSegments = [
621
640
  {
622
641
  startPageIndex: 0,
623
- format: resolved.page.pageNumbering.format,
624
- startAt: resolved.page.pageNumbering.startAt,
642
+ format: continuation?.pageNumbering?.format ?? resolved.page.pageNumbering.format,
643
+ startAt: continuation?.pageNumbering?.startAt ?? resolved.page.pageNumbering.startAt,
625
644
  },
626
645
  ];
627
646
  let pendingNumberingChange = null;
@@ -846,7 +865,8 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
846
865
  };
847
866
  const snapDown = (page, v) => page.contentArea.y + Math.floor((v - page.contentArea.y + 0.01) / baselineGrid) * baselineGrid;
848
867
  const snapUp = (page, v) => page.contentArea.y + Math.ceil((v - page.contentArea.y - 0.01) / baselineGrid) * baselineGrid;
849
- const attempt = (page, force) => {
868
+ /** The box laid out for `page` and the zone it takes there. */
869
+ const zoneOn = (page) => {
850
870
  const ref = anchor.to === 'page' ? designFrames.page
851
871
  : anchor.to === 'bleed' ? designFrames.bleed
852
872
  : page.contentArea;
@@ -864,10 +884,14 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
864
884
  const rect = anchorBox(anchor.edge, ref, result.width, result.totalHeight, offset);
865
885
  const zoneTop = snapDown(page, rect.y - result.marginTopPx);
866
886
  const zoneBottom = snapUp(page, rect.y + rect.height + result.marginBottomPx);
887
+ const meetsX = (col) => rect.x < col.bbox.x + col.bbox.width - 0.5 && rect.x + rect.width > col.bbox.x + 0.5;
888
+ return { cols, result, rect, zoneTop, zoneBottom, meetsX };
889
+ };
890
+ const attempt = (page, force) => {
891
+ const { cols, result, rect, zoneTop, zoneBottom, meetsX } = zoneOn(page);
867
892
  const cuts = [];
868
893
  for (const col of cols) {
869
- const meetsX = rect.x < col.bbox.x + col.bbox.width - 0.5 && rect.x + rect.width > col.bbox.x + 0.5;
870
- if (!meetsX)
894
+ if (!meetsX(col))
871
895
  continue;
872
896
  const colTop = col.bbox.y;
873
897
  const colBottom = trueBottom(col, uncappedBottoms);
@@ -903,10 +927,13 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
903
927
  }
904
928
  return { rect, result, cuts };
905
929
  };
906
- // A box that closes the chapter levels the columns above it first.
930
+ // A box that closes the chapter levels the columns above it first —
931
+ // around the zone it takes on the current page.
907
932
  if (nextIsBarrier(plan.endIdx + 1)) {
908
933
  tryPlacePendingFloatsOnCurrentPage();
909
- proposeTrailingCap(startIdx);
934
+ const here = zoneOn(doc.pages[cursor.pageIndex]);
935
+ const columns = here.cols.flatMap((c, i) => (here.meetsX(c) ? [i] : []));
936
+ proposeTrailingCap(startIdx, columns.length > 0 ? { top: here.zoneTop, columns } : undefined);
910
937
  }
911
938
  let page = doc.pages[cursor.pageIndex];
912
939
  let fit = attempt(page, false);
@@ -1065,6 +1092,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
1065
1092
  for (let blockIdx = 0; blockIdx < contentBlocks.length; blockIdx++) {
1066
1093
  if (options?.shouldCancel?.())
1067
1094
  throw new BuildCancelledError();
1095
+ options?.onProgress?.({ pass: 1, blocks: blockIdx, totalBlocks: contentBlocks.length, pages: doc.pages.length });
1068
1096
  const rawBlock = contentBlocks[blockIdx];
1069
1097
  // Floats whose reference landed in an earlier iteration take the first
1070
1098
  // free slot of the current page now — after their reference in reading
@@ -1157,7 +1185,7 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
1157
1185
  title: plan.title,
1158
1186
  titleSourceStart,
1159
1187
  titleSourceEnd,
1160
- });
1188
+ }, pageIndexOffset);
1161
1189
  flushPendingNumberingAtBoundary();
1162
1190
  continue;
1163
1191
  }
@@ -1380,7 +1408,8 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
1380
1408
  // List items may split too — orphan/widow protection per-list is gated by
1381
1409
  // `avoidOrphansInLists` / `avoidWidowsInLists`; bullet stays on first part.
1382
1410
  const canSplit = vdtType === 'paragraph' || vdtType === 'blockquote' || vdtType === 'listItem';
1383
- let remainingLines = [...measured.lines];
1411
+ // A justified line a link leaves with too few spaces is set ragged.
1412
+ let remainingLines = [...raggedUrlLines(measured.lines, style.textAlign, rawBlock.text)];
1384
1413
  let partIndex = 0;
1385
1414
  // "Keep with next" for colon-introduced lists: a paragraph ending in `:`
1386
1415
  // followed directly by a list acts as a lead-in title — the colon-bearing
@@ -1831,7 +1860,16 @@ export function buildDocumentPass(content, config, cache, options, hints = {}) {
1831
1860
  return { doc, forcedBreakPages, bandCapProposals, spanPlacedInBand, bandCapsApplied, looseOutcome };
1832
1861
  }
1833
1862
  export function buildDocument(content, config, cache, options) {
1834
- const runPass = (hints) => buildDocumentPass(content, config, cache, options, hints);
1863
+ // Each pass reports its own progress, numbered in build order.
1864
+ let passIndex = 0;
1865
+ const onProgress = options?.onProgress;
1866
+ const passOptions = onProgress
1867
+ ? { ...options, onProgress: (p) => onProgress({ ...p, pass: passIndex }) }
1868
+ : options;
1869
+ const runPass = (hints) => {
1870
+ passIndex++;
1871
+ return buildDocumentPass(content, config, cache, passOptions, hints);
1872
+ };
1835
1873
  // --- Band caps (page-span blocks mid-page) -----------------------------
1836
1874
  // A span block that arrived in an uneven band proposes a cap; the driver
1837
1875
  // re-places the document with it (and grows / drops caps whose band