postext 0.3.26 → 0.3.28

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 (130) 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 +62 -3
  8. package/dist/__tests__/defaults/calloutStyles.test.js.map +1 -1
  9. package/dist/__tests__/defaults/headingsBalancing.test.d.ts +2 -0
  10. package/dist/__tests__/defaults/headingsBalancing.test.d.ts.map +1 -0
  11. package/dist/__tests__/defaults/headingsBalancing.test.js +17 -0
  12. package/dist/__tests__/defaults/headingsBalancing.test.js.map +1 -0
  13. package/dist/__tests__/exports.test.js +1 -0
  14. package/dist/__tests__/exports.test.js.map +1 -1
  15. package/dist/__tests__/parts.test.js +82 -1
  16. package/dist/__tests__/parts.test.js.map +1 -1
  17. package/dist/__tests__/pipeline/calloutLayout.test.js +171 -0
  18. package/dist/__tests__/pipeline/calloutLayout.test.js.map +1 -1
  19. package/dist/__tests__/pipeline/calloutSplit.test.d.ts +2 -0
  20. package/dist/__tests__/pipeline/calloutSplit.test.d.ts.map +1 -0
  21. package/dist/__tests__/pipeline/calloutSplit.test.js +156 -0
  22. package/dist/__tests__/pipeline/calloutSplit.test.js.map +1 -0
  23. package/dist/__tests__/pipeline/raggedUrl.test.d.ts +2 -0
  24. package/dist/__tests__/pipeline/raggedUrl.test.d.ts.map +1 -0
  25. package/dist/__tests__/pipeline/raggedUrl.test.js +22 -0
  26. package/dist/__tests__/pipeline/raggedUrl.test.js.map +1 -0
  27. package/dist/__tests__/pipeline/spanBlocks.test.js +4 -2
  28. package/dist/__tests__/pipeline/spanBlocks.test.js.map +1 -1
  29. package/dist/__tests__/pipeline/spanLeaveLevel.test.d.ts +2 -0
  30. package/dist/__tests__/pipeline/spanLeaveLevel.test.d.ts.map +1 -0
  31. package/dist/__tests__/pipeline/spanLeaveLevel.test.js +103 -0
  32. package/dist/__tests__/pipeline/spanLeaveLevel.test.js.map +1 -0
  33. package/dist/__tests__/pipeline/trailingBandZone.test.d.ts +2 -0
  34. package/dist/__tests__/pipeline/trailingBandZone.test.d.ts.map +1 -0
  35. package/dist/__tests__/pipeline/trailingBandZone.test.js +77 -0
  36. package/dist/__tests__/pipeline/trailingBandZone.test.js.map +1 -0
  37. package/dist/canvas-backend/blockRender.js +1 -1
  38. package/dist/canvas-backend/blockRender.js.map +1 -1
  39. package/dist/defaults/calloutStyles.d.ts +17 -1
  40. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  41. package/dist/defaults/calloutStyles.js +77 -4
  42. package/dist/defaults/calloutStyles.js.map +1 -1
  43. package/dist/defaults/headings.d.ts +1 -0
  44. package/dist/defaults/headings.d.ts.map +1 -1
  45. package/dist/defaults/headings.js +7 -0
  46. package/dist/defaults/headings.js.map +1 -1
  47. package/dist/defaults/shared.d.ts.map +1 -1
  48. package/dist/defaults/shared.js +12 -0
  49. package/dist/defaults/shared.js.map +1 -1
  50. package/dist/design/layout.d.ts +6 -1
  51. package/dist/design/layout.d.ts.map +1 -1
  52. package/dist/design/layout.js +38 -2
  53. package/dist/design/layout.js.map +1 -1
  54. package/dist/design/placeholders.d.ts +4 -0
  55. package/dist/design/placeholders.d.ts.map +1 -1
  56. package/dist/design/placeholders.js.map +1 -1
  57. package/dist/html-backend.js +1 -1
  58. package/dist/html-backend.js.map +1 -1
  59. package/dist/index.d.ts +2 -2
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/numbering.d.ts +3 -1
  64. package/dist/numbering.d.ts.map +1 -1
  65. package/dist/numbering.js +4 -1
  66. package/dist/numbering.js.map +1 -1
  67. package/dist/pipeline/bandCaps.d.ts +21 -1
  68. package/dist/pipeline/bandCaps.d.ts.map +1 -1
  69. package/dist/pipeline/bandCaps.js +29 -3
  70. package/dist/pipeline/bandCaps.js.map +1 -1
  71. package/dist/pipeline/build.d.ts +17 -0
  72. package/dist/pipeline/build.d.ts.map +1 -1
  73. package/dist/pipeline/build.js +413 -172
  74. package/dist/pipeline/build.js.map +1 -1
  75. package/dist/pipeline/buildHelpers.d.ts +1 -1
  76. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  77. package/dist/pipeline/buildHelpers.js +2 -2
  78. package/dist/pipeline/buildHelpers.js.map +1 -1
  79. package/dist/pipeline/calloutLayout.d.ts +14 -3
  80. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  81. package/dist/pipeline/calloutLayout.js +153 -48
  82. package/dist/pipeline/calloutLayout.js.map +1 -1
  83. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  84. package/dist/pipeline/columnBalancing.js +17 -1
  85. package/dist/pipeline/columnBalancing.js.map +1 -1
  86. package/dist/pipeline/continuation.d.ts +7 -0
  87. package/dist/pipeline/continuation.d.ts.map +1 -0
  88. package/dist/pipeline/continuation.js +38 -0
  89. package/dist/pipeline/continuation.js.map +1 -0
  90. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  91. package/dist/pipeline/headerFooter.js +16 -8
  92. package/dist/pipeline/headerFooter.js.map +1 -1
  93. package/dist/pipeline/index.d.ts +2 -1
  94. package/dist/pipeline/index.d.ts.map +1 -1
  95. package/dist/pipeline/index.js +1 -0
  96. package/dist/pipeline/index.js.map +1 -1
  97. package/dist/pipeline/parts.d.ts +9 -0
  98. package/dist/pipeline/parts.d.ts.map +1 -1
  99. package/dist/pipeline/parts.js +15 -0
  100. package/dist/pipeline/parts.js.map +1 -1
  101. package/dist/pipeline/placeholders.d.ts +13 -10
  102. package/dist/pipeline/placeholders.d.ts.map +1 -1
  103. package/dist/pipeline/placeholders.js +17 -15
  104. package/dist/pipeline/placeholders.js.map +1 -1
  105. package/dist/pipeline/placement.d.ts +3 -2
  106. package/dist/pipeline/placement.d.ts.map +1 -1
  107. package/dist/pipeline/placement.js +13 -8
  108. package/dist/pipeline/placement.js.map +1 -1
  109. package/dist/pipeline/raggedUrl.d.ts +15 -0
  110. package/dist/pipeline/raggedUrl.d.ts.map +1 -0
  111. package/dist/pipeline/raggedUrl.js +28 -0
  112. package/dist/pipeline/raggedUrl.js.map +1 -0
  113. package/dist/pipeline/resourceNumbering.d.ts +27 -19
  114. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  115. package/dist/pipeline/resourceNumbering.js +19 -17
  116. package/dist/pipeline/resourceNumbering.js.map +1 -1
  117. package/dist/types.d.ts +128 -2
  118. package/dist/types.d.ts.map +1 -1
  119. package/dist/vdt.d.ts +27 -1
  120. package/dist/vdt.d.ts.map +1 -1
  121. package/dist/vdt.js.map +1 -1
  122. package/dist/worker/client.d.ts +4 -0
  123. package/dist/worker/client.d.ts.map +1 -1
  124. package/dist/worker/client.js +4 -0
  125. package/dist/worker/client.js.map +1 -1
  126. package/dist/worker/layout.worker.js +14 -0
  127. package/dist/worker/layout.worker.js.map +1 -1
  128. package/dist/worker/protocol.d.ts +5 -0
  129. package/dist/worker/protocol.d.ts.map +1 -1
  130. package/package.json +1 -1
@@ -9,11 +9,12 @@ export function resetLinePositions(lines, lineHeightPx) {
9
9
  baseline: i * lineHeightPx + lineHeightPx * 0.8,
10
10
  }));
11
11
  }
12
- export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx) {
12
+ export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidthPx, pageHeightPx, pageIndexOffset = 0) {
13
13
  // `contentArea` is the recto (odd-page) area; mirrored margins swap the
14
14
  // inner/outer margins on even pages. `pageIndex` is the page's position in
15
- // `doc.pages`, so page number = index + 1.
16
- const pageArea = contentAreaForPage({ contentArea, pageWidthPx }, resolved, pageIndex);
15
+ // `doc.pages`, so page number = index + 1 (+ the pages before a continued
16
+ // document).
17
+ const pageArea = contentAreaForPage({ contentArea, pageWidthPx }, resolved, pageIndex, pageIndexOffset);
17
18
  const page = createVDTPage(pageIndex, pageWidthPx, pageHeightPx, pageArea);
18
19
  const colBboxes = computeColumnBboxes(pageArea, resolved);
19
20
  for (let i = 0; i < colBboxes.length; i++) {
@@ -27,7 +28,7 @@ export function createPageWithColumns(pageIndex, resolved, contentArea, pageWidt
27
28
  * area, `partInfo` stamped and the role fixed to `'part'`. The opener
28
29
  * design is laid out later by `buildHeadersAndFooters` against the full
29
30
  * trim box and never reserves body space. */
30
- export function createPartPage(page, metrics, resolved, info) {
31
+ export function createPartPage(page, metrics, resolved, info, pageIndexOffset = 0) {
31
32
  const dpi = resolved.page.dpi;
32
33
  const m = resolved.parts.margins;
33
34
  const trim = metrics.trimBox;
@@ -36,7 +37,7 @@ export function createPartPage(page, metrics, resolved, info) {
36
37
  const left = dimensionToPx(m.left, dpi);
37
38
  const right = dimensionToPx(m.right, dpi);
38
39
  let area = createBoundingBox(trim.x + left, trim.y + top, Math.max(0, trim.width - left - right), Math.max(0, trim.height - top - bottom));
39
- const isEvenPage = (page.index + 1) % 2 === 0;
40
+ const isEvenPage = (page.index + pageIndexOffset + 1) % 2 === 0;
40
41
  if (m.mirror && isEvenPage)
41
42
  area = mirrorContentArea(area, metrics.pageWidthPx);
42
43
  page.contentArea = area;
@@ -44,6 +45,7 @@ export function createPartPage(page, metrics, resolved, info) {
44
45
  page.partInfo = {
45
46
  number: info.number,
46
47
  title: info.title,
48
+ ...(info.palette && Object.keys(info.palette).length > 0 ? { palette: info.palette } : {}),
47
49
  titleSourceStart: info.titleSourceStart,
48
50
  titleSourceEnd: info.titleSourceEnd,
49
51
  };
@@ -168,7 +170,7 @@ export function advanceToNextColumn(doc, cursor, resolved, contentArea, pageWidt
168
170
  }
169
171
  else {
170
172
  // New page
171
- const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx);
173
+ const newPage = createPageWithColumns(doc.pages.length, resolved, contentArea, pageWidthPx, pageHeightPx, doc.pageIndexOffset ?? 0);
172
174
  doc.pages.push(newPage);
173
175
  cursor.pageIndex = newPage.index;
174
176
  cursor.columnIndex = 0;
@@ -208,12 +210,15 @@ export function advanceToNextPageBoundary(doc, cursor, resolved, contentArea, pa
208
210
  export function enforcePageParity(doc, cursor, resolved, contentArea, pageWidthPx, pageHeightPx, parity) {
209
211
  if (parity === 'any')
210
212
  return;
213
+ const pageIndexOffset = doc.pageIndexOffset ?? 0;
211
214
  // Document-start exception: when the first block of the document is a
212
215
  // heading with `breakBefore` (or the source opens with a `:::pagebreak`),
213
216
  // we're still sitting on page 0 with nothing placed yet. Skip parity
214
217
  // and force logic entirely — there's no previous content to separate
215
218
  // from, and padding would only create a spurious blank opening page.
216
- if (cursor.pageIndex === 0) {
219
+ // A continued document (a chapter laid out after the pages before it)
220
+ // has that previous content, so it pads exactly as it would mid-book.
221
+ if (cursor.pageIndex === 0 && pageIndexOffset === 0) {
217
222
  const firstPage = doc.pages[0];
218
223
  if (firstPage && firstPage.columns.every((c) => c.blocks.length === 0)) {
219
224
  return;
@@ -232,7 +237,7 @@ export function enforcePageParity(doc, cursor, resolved, contentArea, pageWidthP
232
237
  }
233
238
  while (true) {
234
239
  const curPage = doc.pages[cursor.pageIndex];
235
- const pageNumber = curPage.index + 1;
240
+ const pageNumber = curPage.index + pageIndexOffset + 1;
236
241
  const isOdd = pageNumber % 2 === 1;
237
242
  const ok = targetParity === 'odd' ? isOdd : !isOdd;
238
243
  if (ok)
@@ -1 +1 @@
1
- {"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/pipeline/placement.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,GAQhB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAoB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,MAAM,UAAU,kBAAkB,CAChC,KAAgB,EAChB,YAAoB;IAEpB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,IAAI;QACP,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;QACrF,QAAQ,EAAE,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG,GAAG;KAChD,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,QAAwB,EACxB,WAAwB,EACxB,WAAmB,EACnB,YAAoB,EACpB,eAAe,GAAG,CAAC;IAEnB,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,aAAa;IACb,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;8CAK8C;AAC9C,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,OAAqD,EACrD,QAAwB,EACxB,IAA6H,EAC7H,eAAe,GAAG,CAAC;IAEnB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,IAAI,IAAI,GAAG,iBAAiB,CAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,EACb,IAAI,CAAC,CAAC,GAAG,GAAG,EACZ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,EACtC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,CACxC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,CAAC,MAAM,IAAI,UAAU;QAAE,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,GAAG;QACd,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC;IACF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAgB,EAAE,MAAuB;IACrE,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAE,CAAC;AACnE,CAAC;AAED;wDACwD;AACxD,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;4BAE4B;AAC5B,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,2EAA2E;AAC3E,uEAAuE;AACvE,uEAAuE;AACvE,4EAA4E;AAC5E,2EAA2E;AAC3E,gCAAgC;AAChC,8EAA8E;AAE9E,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,IAAY;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,MAAuB;IAChE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;qEAGqE;AACrE,MAAM,UAAU,WAAW,CAAC,IAA0B;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,CAAY,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;IAC5F,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;AAChE,CAAC;AAED;kEACkE;AAClE,MAAM,UAAU,cAAc,CAAC,IAA0B;IACvD,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAa,EACb,IAA0B,EAC1B,IAAY,EACZ,KAAe,EACf,MAAc,EACd,MAAuB,EACvB,aAAa,GAAG,CAAC,EACjB,WAAW,GAAG,MAAM,GAAG,aAAa;IAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC;QAC/C,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;QACd,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAC5E,CAAC;IACF,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IACnC,IAAI,aAAa,GAAG,CAAC;QAAE,OAAO,CAAC,eAAe,IAAI,aAAa,CAAC;IAChE,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,eAAe,GAAG,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC;IAC7B,IAAI,QAA+B,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,GAAG,MAAM,CAAC;QACpC,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,eAAe,CAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAC1D,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,IAAI,QAAQ;QAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAgB,EAChB,MAAuB,EACvB,QAAwB,EACxB,WAAwB,EACxB,WAAmB,EACnB,YAAoB,EACpB,SAAmC;IAEnC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;IAC1C,IAAI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,WAAW;QACX,MAAM,OAAO,GAAG,qBAAqB,CACnC,GAAG,CAAC,KAAK,CAAC,MAAM,EAChB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,CAAC,eAAe,IAAI,CAAC,CACzB,CAAC;QACF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QACjC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QACvB,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;0BAG0B;AAC1B,MAAM,UAAU,yBAAyB,CACvC,GAAgB,EAChB,MAAuB,EACvB,QAAwB,EACxB,WAAwB,EACxB,WAAmB,EACnB,YAAoB,EACpB,SAAmC;IAEnC,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAAE,OAAO;IAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;IACxC,GAAG,CAAC;QACF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAChG,CAAC,QAAQ,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE;AAChD,CAAC;AAED;;;;;;;;;;0EAU0E;AAC1E,MAAM,UAAU,iBAAiB,CAC/B,GAAgB,EAChB,MAAuB,EACvB,QAAwB,EACxB,WAAwB,EACxB,WAAmB,EACnB,YAAoB,EACpB,MAA0B;IAE1B,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO;IAC7B,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;IACjD,sEAAsE;IACtE,0EAA0E;IAC1E,qEAAqE;IACrE,qEAAqE;IACrE,qEAAqE;IACrE,sEAAsE;IACtE,sEAAsE;IACtE,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,aAAa,CAAC;IACxE,MAAM,YAAY,GAChB,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK;QAC/B,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM;YACnC,CAAC,CAAC,MAAM,CAAC;IACX,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,aAAa,GAAG,IAAI,CAAC;QAClD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;QACxC,GAAG,CAAC;YACF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACrF,CAAC,QAAQ,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE;IAChD,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,GAAG,eAAe,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,IAAI,EAAE;YAAE,OAAO;QACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;QAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;QACxC,GAAG,CAAC;YACF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACrF,CAAC,QAAQ,MAAM,CAAC,SAAS,KAAK,cAAc,EAAE;IAChD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,WAAmB,EACnB,aAAqB,EACrB,MAAuB,EACvB,GAAgB,EAChB,QAAwB,EACxB,WAAwB,EACxB,WAAmB,EACnB,YAAoB;IAEpB,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAErC,sEAAsE;IACtE,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,qEAAqE;IACrE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACtF,IAAI,WAAW,IAAI,SAAS;YAAE,MAAM;QACpC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG;YAAE,MAAM;QACjE,IAAI,KAAK,EAAE,IAAI,CAAC;YAAE,MAAM;QACxB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACnF,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACnE,IAAI,cAAc,GAAG,CAAC;QAAE,GAAG,CAAC,eAAe,IAAI,cAAc,CAAC;IAC9D,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACpD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,kBAAkB,CAChC,KAAe,EACf,WAAmB,EACnB,GAAc,EACd,MAAuB;IAEvB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3E,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,sDAAsD;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,GAAG,CAAC,eAAe,IAAI,WAAW,CAAC;AACrC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { VDTLine } from '../vdt';
2
+ /** Word-space ratio (justified over natural) past which a line holding a
3
+ * URL is set ragged instead of justified. Matches the sandbox's loose-line
4
+ * threshold, so such a line is fixed rather than flagged. */
5
+ export declare const URL_LINE_MAX_SPACE_RATIO = 3;
6
+ /**
7
+ * A long link breaks only at its own joints, so the lines it lands on hold
8
+ * few word spaces — and justifying them stretches those few spaces to
9
+ * several times their width. Rather than flag the paragraph, set those
10
+ * lines ragged (like a paragraph's last line): the URL runs on, the text
11
+ * around it keeps its natural spacing. Only paragraphs containing a URL
12
+ * are touched; the measured lines are left as they are otherwise.
13
+ */
14
+ export declare function raggedUrlLines(lines: VDTLine[], textAlign: string | undefined, text: string): VDTLine[];
15
+ //# sourceMappingURL=raggedUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raggedUrl.d.ts","sourceRoot":"","sources":["../../src/pipeline/raggedUrl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC;;8DAE8D;AAC9D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAI1C;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAWvG"}
@@ -0,0 +1,28 @@
1
+ /** Word-space ratio (justified over natural) past which a line holding a
2
+ * URL is set ragged instead of justified. Matches the sandbox's loose-line
3
+ * threshold, so such a line is fixed rather than flagged. */
4
+ export const URL_LINE_MAX_SPACE_RATIO = 3;
5
+ const URL_RE = /(?:https?|ftp):\/\/|www\.|\b10\.\d{4,}\//i;
6
+ /**
7
+ * A long link breaks only at its own joints, so the lines it lands on hold
8
+ * few word spaces — and justifying them stretches those few spaces to
9
+ * several times their width. Rather than flag the paragraph, set those
10
+ * lines ragged (like a paragraph's last line): the URL runs on, the text
11
+ * around it keeps its natural spacing. Only paragraphs containing a URL
12
+ * are touched; the measured lines are left as they are otherwise.
13
+ */
14
+ export function raggedUrlLines(lines, textAlign, text) {
15
+ if (textAlign !== 'justify' || !URL_RE.test(text))
16
+ return lines;
17
+ let changed = false;
18
+ const out = lines.map((line) => {
19
+ if (line.isLastLine || line.justifiedSpaceRatio === undefined || line.justifiedSpaceRatio <= URL_LINE_MAX_SPACE_RATIO)
20
+ return line;
21
+ changed = true;
22
+ const { justifiedSpaceRatio: _loose, ...rest } = line;
23
+ void _loose;
24
+ return { ...rest, ragged: true };
25
+ });
26
+ return changed ? out : lines;
27
+ }
28
+ //# sourceMappingURL=raggedUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raggedUrl.js","sourceRoot":"","sources":["../../src/pipeline/raggedUrl.ts"],"names":[],"mappings":"AAEA;;8DAE8D;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,GAAG,2CAA2C,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAgB,EAAE,SAA6B,EAAE,IAAY;IAC1F,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,IAAI,wBAAwB;YAAE,OAAO,IAAI,CAAC;QACnI,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC;QACZ,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,CAAC"}
@@ -13,25 +13,11 @@
13
13
  * heading numbers in effect at the point of first reference.
14
14
  */
15
15
  import type { ContentBlock } from '../parse';
16
- import type { Resource, ResourceType } from '../types';
16
+ import type { HeadingCounters, Resource, ResourceNumberEntry, ResourceType } from '../types';
17
17
  /** Heading counters (1-indexed by level) in effect at a given point in the
18
18
  * document. `h1`..`h6` carry the running heading number for each level. */
19
- export interface HeadingContext {
20
- h1: number;
21
- h2: number;
22
- h3: number;
23
- h4: number;
24
- h5: number;
25
- h6: number;
26
- }
27
- export interface ResourceNumberEntry {
28
- /** The rendered number string (e.g. `"1.7"`). */
29
- number: string;
30
- /** The `ResourceType.id` this number was computed for. */
31
- typeId: string;
32
- /** The heading counters in effect at the point of first reference. */
33
- heading: HeadingContext;
34
- }
19
+ export type HeadingContext = HeadingCounters;
20
+ export type { ResourceNumberEntry };
35
21
  /** Maps each referenced `Resource.id` to its computed numbering entry. */
36
22
  export type ResourceNumberingMap = Record<string, ResourceNumberEntry>;
37
23
  /** Walk `blocks` and produce, for each block index, the heading counters in
@@ -39,7 +25,7 @@ export type ResourceNumberingMap = Record<string, ResourceNumberEntry>;
39
25
  * `result[i]` (i.e. the heading counts itself). Mirrors the counter logic in
40
26
  * `computeHeadingNumbers` but exposes the raw per-level values rather than the
41
27
  * rendered prefix. */
42
- export declare function computeHeadingContext(blocks: ContentBlock[]): HeadingContext[];
28
+ export declare function computeHeadingContext(blocks: ContentBlock[], start?: HeadingContext): HeadingContext[];
43
29
  /**
44
30
  * Compute the numbering map for every resource referenced in `blocks`.
45
31
  *
@@ -50,5 +36,27 @@ export declare function computeHeadingContext(blocks: ContentBlock[]): HeadingCo
50
36
  * {@link computeHeadingContext}); must align with
51
37
  * `blocks` by index
52
38
  */
53
- export declare function computeResourceNumbering(blocks: ContentBlock[], resourceTypes: ResourceType[], resources: Resource[], headingContext: HeadingContext[]): ResourceNumberingMap;
39
+ /** Per-type counter state at the end of a document: the `{n}` counter and
40
+ * the heading counters of the last numbered resource (what `resetOn`
41
+ * compares against). */
42
+ export type ResourceCounterState = Record<string, {
43
+ counter: number;
44
+ heading: HeadingContext;
45
+ }>;
46
+ /** What precedes the document: resources already numbered (they keep the
47
+ * number of their first mention) and the per-type counters to continue. */
48
+ export interface ResourceNumberingStart {
49
+ counters?: ResourceCounterState;
50
+ numbered?: ResourceNumberingMap;
51
+ }
52
+ export interface ResourceNumberingResult {
53
+ /** Every referenced resource — including the inherited ones. */
54
+ map: ResourceNumberingMap;
55
+ /** Counter state at the end of the document, to continue from. */
56
+ counters: ResourceCounterState;
57
+ }
58
+ export declare function computeResourceNumbering(blocks: ContentBlock[], resourceTypes: ResourceType[], resources: Resource[], headingContext: HeadingContext[], start?: ResourceNumberingStart): ResourceNumberingMap;
59
+ /** {@link computeResourceNumbering} plus the counter state at the end of the
60
+ * document. */
61
+ export declare function computeResourceNumberingState(blocks: ContentBlock[], resourceTypes: ResourceType[], resources: Resource[], headingContext: HeadingContext[], start?: ResourceNumberingStart): ResourceNumberingResult;
54
62
  //# sourceMappingURL=resourceNumbering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resourceNumbering.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAyB,MAAM,UAAU,CAAC;AAQ9E;4EAC4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAsBvE;;;;uBAIuB;AACvB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAoB9E;AAoGD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,EAAE,cAAc,EAAE,GAC/B,oBAAoB,CAwEtB"}
1
+ {"version":3,"file":"resourceNumbering.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAyB,MAAM,UAAU,CAAC;AAQpH;4EAC4E;AAC5E,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC;AAE7C,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAEpC,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAsBvE;;;;uBAIuB;AACvB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAqBtG;AAoGD;;;;;;;;;GASG;AACH;;yBAEyB;AACzB,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEhG;4EAC4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,KAAK,CAAC,EAAE,sBAAsB,GAC7B,oBAAoB,CAEtB;AAED;gBACgB;AAChB,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EAAE,EACtB,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,KAAK,CAAC,EAAE,sBAAsB,GAC7B,uBAAuB,CA4EzB"}
@@ -36,8 +36,11 @@ function counterFormatToStyle(format) {
36
36
  * `result[i]` (i.e. the heading counts itself). Mirrors the counter logic in
37
37
  * `computeHeadingNumbers` but exposes the raw per-level values rather than the
38
38
  * rendered prefix. */
39
- export function computeHeadingContext(blocks) {
39
+ export function computeHeadingContext(blocks, start) {
40
40
  const counters = [0, 0, 0, 0, 0, 0, 0]; // index 1..6 used
41
+ if (start)
42
+ for (let lvl = 1; lvl <= 6; lvl++)
43
+ counters[lvl] = start[`h${lvl}`];
41
44
  const out = new Array(blocks.length);
42
45
  for (let i = 0; i < blocks.length; i++) {
43
46
  const b = blocks[i];
@@ -138,17 +141,12 @@ function shouldResetCounter(prev, cur, resetLevel) {
138
141
  }
139
142
  return false;
140
143
  }
141
- /**
142
- * Compute the numbering map for every resource referenced in `blocks`.
143
- *
144
- * @param blocks parsed content blocks in reading order
145
- * @param resourceTypes user-defined resource types (drives template + reset)
146
- * @param resources known resources (maps `resourceId → typeId`)
147
- * @param headingContext per-block heading counters (see
148
- * {@link computeHeadingContext}); must align with
149
- * `blocks` by index
150
- */
151
- export function computeResourceNumbering(blocks, resourceTypes, resources, headingContext) {
144
+ export function computeResourceNumbering(blocks, resourceTypes, resources, headingContext, start) {
145
+ return computeResourceNumberingState(blocks, resourceTypes, resources, headingContext, start).map;
146
+ }
147
+ /** {@link computeResourceNumbering} plus the counter state at the end of the
148
+ * document. */
149
+ export function computeResourceNumberingState(blocks, resourceTypes, resources, headingContext, start) {
152
150
  const typeById = new Map();
153
151
  for (const t of resourceTypes)
154
152
  typeById.set(t.id, t);
@@ -156,7 +154,7 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
156
154
  for (const r of resources)
157
155
  resourceById.set(r.id, r);
158
156
  const firstOccurrences = [];
159
- const seen = new Set();
157
+ const seen = new Set(start?.numbered ? Object.keys(start.numbered) : []);
160
158
  const record = (resourceId, blockIdx) => {
161
159
  if (seen.has(resourceId))
162
160
  return;
@@ -192,14 +190,16 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
192
190
  else
193
191
  byType.set(type.id, [occ]);
194
192
  }
195
- const map = {};
193
+ const map = { ...(start?.numbered ?? {}) };
194
+ const counters = { ...(start?.counters ?? {}) };
196
195
  for (const [typeId, occurrences] of byType) {
197
196
  const type = typeById.get(typeId);
198
197
  const tokens = parseResourceTemplate(type.numberingTemplate);
199
198
  const style = counterFormatToStyle(type.counterFormat);
200
199
  const resetLevel = type.resetOn === 'never' ? null : Number(type.resetOn.slice(1));
201
- let counter = 0;
202
- let prevHeading = null;
200
+ const inherited = start?.counters?.[typeId];
201
+ let counter = inherited?.counter ?? 0;
202
+ let prevHeading = inherited?.heading ?? null;
203
203
  for (const occ of occurrences) {
204
204
  if (resetLevel !== null && shouldResetCounter(prevHeading, occ.heading, resetLevel)) {
205
205
  counter = 0;
@@ -212,7 +212,9 @@ export function computeResourceNumbering(blocks, resourceTypes, resources, headi
212
212
  heading: occ.heading,
213
213
  };
214
214
  }
215
+ if (prevHeading)
216
+ counters[typeId] = { counter, heading: prevHeading };
215
217
  }
216
- return map;
218
+ return { map, counters };
217
219
  }
218
220
  //# sourceMappingURL=resourceNumbering.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resourceNumbering.js","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resourceNumbering.js","sourceRoot":"","sources":["../../src/pipeline/resourceNumbering.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { NumeralStyle } from './numbering';
1
2
  /** @deprecated Legacy content-model resource used by the VDT renderer
2
3
  * (`VDTBlock.resource`). The Resources-panel feature uses the newer
3
4
  * `Resource` / `ResourceType` model below. Retained until the renderer
@@ -182,6 +183,72 @@ export interface PostextContent {
182
183
  * inline. */
183
184
  resources?: Resource[];
184
185
  notes?: PostextNote[];
186
+ /** Counters carried over from content laid out before this document — a
187
+ * book chapter laid out on its own continues the numbering of the
188
+ * chapters before it. Omit for a self-contained document. */
189
+ continuation?: LayoutContinuation;
190
+ }
191
+ /** Heading counters (1-indexed by level) in effect at a point in a document. */
192
+ export interface HeadingCounters {
193
+ h1: number;
194
+ h2: number;
195
+ h3: number;
196
+ h4: number;
197
+ h5: number;
198
+ h6: number;
199
+ }
200
+ /** A numbered resource: its rendered number, type and the heading counters
201
+ * at its first reference. */
202
+ export interface ResourceNumberEntry {
203
+ number: string;
204
+ typeId: string;
205
+ heading: HeadingCounters;
206
+ }
207
+ /** What a document laid out after other content inherits from it. Every
208
+ * field is optional; a missing one means "nothing precedes". Obtain it
209
+ * with `continuationAfter()` (counters) and the previous layout's page
210
+ * count (pages). */
211
+ export interface LayoutContinuation {
212
+ /** Physical pages before this document's first page. Shifts page parity
213
+ * (recto/verso, mirrored margins, odd/even header elements) and marks the
214
+ * document as continued, so a leading heading's `breakBefore` pads
215
+ * parity as it would mid-book. */
216
+ pageIndexOffset?: number;
217
+ /** Page numbering in effect on the first page, overriding
218
+ * `page.pageNumbering` (the value the previous page would be followed
219
+ * by, in its format). */
220
+ pageNumbering?: {
221
+ format?: NumeralStyle;
222
+ startAt?: number;
223
+ };
224
+ /** Heading counters at the end of the preceding content: the next `#`
225
+ * becomes chapter `h1 + 1`. */
226
+ headings?: HeadingCounters;
227
+ /** Per resource-type counter state at the end of the preceding content
228
+ * (the `{n}` counter and the heading counters of the last numbered
229
+ * resource, which decide `resetOn`). */
230
+ resourceCounters?: Record<string, {
231
+ counter: number;
232
+ heading: HeadingCounters;
233
+ }>;
234
+ /** Resources already numbered by the preceding content, so a later
235
+ * reference keeps the number of its first mention. */
236
+ resourceNumbers?: Record<string, ResourceNumberEntry>;
237
+ /** The `:::part` in effect at the end of the preceding content — the last
238
+ * part opened, whether or not its fence has closed — so a chapter laid
239
+ * out on its own keeps `{partTitle}` / `{partNumber}` and the part's
240
+ * palette overrides on every page until it opens a part of its own. */
241
+ part?: PartState;
242
+ }
243
+ /** A part (section) as the running heads see it: number and title as
244
+ * written on the fence, plus the colour-palette entries the fence
245
+ * overrides (`palette="band=#f6c297"`), applied to every design slot laid
246
+ * out on the part's pages. */
247
+ export interface PartState {
248
+ number: string;
249
+ title: string;
250
+ /** Palette id → hex colour. */
251
+ palette?: Record<string, string>;
185
252
  }
186
253
  export type PlacementStrategy = 'topOfColumn' | 'inline' | 'floatLeft' | 'floatRight' | 'fullWidthBreak' | 'margin';
187
254
  export interface ColumnConfig {
@@ -727,7 +794,9 @@ export interface CalloutStripeConfig {
727
794
  }
728
795
  /** Icon drawn beside the title/body: a text glyph or a resource image. When
729
796
  * the style has a side stripe the icon is centred over the stripe;
730
- * otherwise it reserves its own column (`size` + `titleStyle.gap`). */
797
+ * otherwise it reserves its own column (`size` + `titleStyle.gap`). A
798
+ * resource image is fitted inside the square box keeping its aspect ratio.
799
+ * An icon taller than the content grows the box to fit it. */
731
800
  export interface CalloutIconConfig {
732
801
  kind?: CalloutIconKind;
733
802
  /** Glyph text for `kind: 'glyph'` (e.g. `'!'`, `'✎'`). */
@@ -742,6 +811,30 @@ export interface CalloutIconConfig {
742
811
  color?: ColorValue;
743
812
  align?: CalloutIconAlign;
744
813
  }
814
+ /** Vertical rule drawn between a callout marker and its box. */
815
+ export interface CalloutMarkerRuleConfig {
816
+ enabled?: boolean;
817
+ /** Default main colour. */
818
+ color?: ColorValue;
819
+ /** Default `0.5pt`. */
820
+ width?: Dimension;
821
+ /** Minimum rule length; the rule always spans at least the box height and
822
+ * is centred on it (`align: 'center'`) or hangs from its top. Default `0`
823
+ * (box height). */
824
+ length?: Dimension;
825
+ }
826
+ /** Marker drawn *outside* the box, in a column on its left: an icon (glyph
827
+ * or resource, same fields as {@link CalloutIconConfig}) with an optional
828
+ * vertical rule between it and the box. The frame grows by the marker
829
+ * column (`size` + rule width + `gap`); the box keeps its own background,
830
+ * padding and icon. `align` positions the marker, the rule and the box
831
+ * against each other when their heights differ. */
832
+ export interface CalloutMarkerConfig extends CalloutIconConfig {
833
+ /** Space between the marker column (after the rule) and the box. Default
834
+ * `0.5em`. */
835
+ gap?: Dimension;
836
+ rule?: CalloutMarkerRuleConfig;
837
+ }
745
838
  export interface CalloutTitleStyleConfig {
746
839
  /** Defaults to the headings font family. */
747
840
  fontFamily?: string;
@@ -812,6 +905,8 @@ export interface CalloutStyleConfig {
812
905
  stripe?: CalloutStripeConfig;
813
906
  /** Default `kind: 'none'`. */
814
907
  icon?: CalloutIconConfig;
908
+ /** Default `kind: 'none'` (no marker column). */
909
+ marker?: CalloutMarkerConfig;
815
910
  titleStyle?: CalloutTitleStyleConfig;
816
911
  body?: CalloutBodyStyleConfig;
817
912
  lists?: CalloutListStyleConfig;
@@ -820,7 +915,13 @@ export interface CalloutStyleConfig {
820
915
  /** Minimum space below the box; the flow snaps back to the baseline grid
821
916
  * after it. Default `0.75em`. */
822
917
  marginBottom?: Dimension;
823
- /** Always `true` in v1: callouts never split across columns or pages. */
918
+ /** When `true` (default) the box never splits: a callout that does not
919
+ * fit the remaining space moves whole to the next column or page. When
920
+ * `false` it may break between child blocks — never inside a paragraph
921
+ * or list item — the part that fits closes the current column (or, for
922
+ * a `span: 'page'` box, the page) and the rest continues on the next one
923
+ * in a box of its own without the title or icon (stripe, border and
924
+ * background stay). */
824
925
  keepTogether?: boolean;
825
926
  }
826
927
  export interface ResolvedCalloutStyleConfig {
@@ -868,6 +969,23 @@ export interface ResolvedCalloutStyleConfig {
868
969
  color: ColorValue;
869
970
  align: CalloutIconAlign;
870
971
  };
972
+ marker: {
973
+ kind: CalloutIconKind;
974
+ glyph: string;
975
+ resourceId: string;
976
+ fontFamily: string;
977
+ fontWeight: number;
978
+ size: Dimension;
979
+ color: ColorValue;
980
+ align: CalloutIconAlign;
981
+ gap: Dimension;
982
+ rule: {
983
+ enabled: boolean;
984
+ color: ColorValue;
985
+ width: Dimension;
986
+ length: Dimension;
987
+ };
988
+ };
871
989
  titleStyle: {
872
990
  fontFamily: string;
873
991
  fontSize: Dimension;
@@ -1034,6 +1152,13 @@ export interface ColumnBalancingConfig {
1034
1152
  * level (via a band cap) so the last columns end at the same height, the
1035
1153
  * way a compositor sets a short closing page. Default true. */
1036
1154
  trailing?: boolean;
1155
+ /** Balance the band a page-span block leaves behind: when a `span: 'page'`
1156
+ * callout does not fit under the current columns and has to move to the
1157
+ * next page (or split, see `CalloutStyleConfig.keepTogether`), the
1158
+ * columns it interrupts are cut level instead of leaving the last one
1159
+ * short — the flow ends at the same height in every column and the box
1160
+ * (or the part of it that fits) sits under them. Default true. */
1161
+ beforeSpan?: boolean;
1037
1162
  }
1038
1163
  export interface ResolvedHeadingsConfig {
1039
1164
  fontFamily: string;
@@ -1054,6 +1179,7 @@ export interface ResolvedHeadingsConfig {
1054
1179
  trackParagraphs: boolean;
1055
1180
  maxTracking: number;
1056
1181
  trailing: boolean;
1182
+ beforeSpan: boolean;
1057
1183
  };
1058
1184
  levels: ResolvedHeadingLevelConfig[];
1059
1185
  }