postext 1.23.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/__tests__/bundle/bitmapInfo.test.d.ts +2 -0
  2. package/dist/__tests__/bundle/bitmapInfo.test.d.ts.map +1 -0
  3. package/dist/__tests__/bundle/bitmapInfo.test.js +78 -0
  4. package/dist/__tests__/bundle/bitmapInfo.test.js.map +1 -0
  5. package/dist/__tests__/bundle/designOverflowPin.test.d.ts +2 -0
  6. package/dist/__tests__/bundle/designOverflowPin.test.d.ts.map +1 -0
  7. package/dist/__tests__/bundle/designOverflowPin.test.js +87 -0
  8. package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -0
  9. package/dist/__tests__/bundle.test.js +1 -1
  10. package/dist/__tests__/bundle.test.js.map +1 -1
  11. package/dist/__tests__/codeBlocks.test.js +1 -1
  12. package/dist/__tests__/codeBlocks.test.js.map +1 -1
  13. package/dist/__tests__/design/designTextOverflow.test.d.ts +2 -0
  14. package/dist/__tests__/design/designTextOverflow.test.d.ts.map +1 -0
  15. package/dist/__tests__/design/designTextOverflow.test.js +102 -0
  16. package/dist/__tests__/design/designTextOverflow.test.js.map +1 -0
  17. package/dist/__tests__/exports.test.js +11 -0
  18. package/dist/__tests__/exports.test.js.map +1 -1
  19. package/dist/__tests__/frontmatterInvalid.test.d.ts +2 -0
  20. package/dist/__tests__/frontmatterInvalid.test.d.ts.map +1 -0
  21. package/dist/__tests__/frontmatterInvalid.test.js +101 -0
  22. package/dist/__tests__/frontmatterInvalid.test.js.map +1 -0
  23. package/dist/__tests__/hardBreaks.test.js +1 -1
  24. package/dist/__tests__/hardBreaks.test.js.map +1 -1
  25. package/dist/__tests__/headingFirstLineIndent.test.d.ts +2 -0
  26. package/dist/__tests__/headingFirstLineIndent.test.d.ts.map +1 -0
  27. package/dist/__tests__/headingFirstLineIndent.test.js +185 -0
  28. package/dist/__tests__/headingFirstLineIndent.test.js.map +1 -0
  29. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  30. package/dist/__tests__/headingInlineMarks.test.js.map +1 -1
  31. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  32. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  33. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  34. package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
  35. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts +2 -0
  36. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts.map +1 -0
  37. package/dist/__tests__/pipeline/bitmapResolution.test.js +139 -0
  38. package/dist/__tests__/pipeline/bitmapResolution.test.js.map +1 -0
  39. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  40. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -1
  41. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  42. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
  43. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  44. package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
  45. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  46. package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
  47. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  48. package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
  49. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts +2 -0
  50. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts.map +1 -0
  51. package/dist/__tests__/pipeline/designTextTruncated.test.js +116 -0
  52. package/dist/__tests__/pipeline/designTextTruncated.test.js.map +1 -0
  53. package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
  54. package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/floatShrink.test.d.ts +2 -0
  56. package/dist/__tests__/pipeline/floatShrink.test.d.ts.map +1 -0
  57. package/dist/__tests__/pipeline/floatShrink.test.js +298 -0
  58. package/dist/__tests__/pipeline/floatShrink.test.js.map +1 -0
  59. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  60. package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
  61. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  62. package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
  63. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  64. package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
  65. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  66. package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
  67. package/dist/__tests__/pipeline/textWrap.test.d.ts +2 -0
  68. package/dist/__tests__/pipeline/textWrap.test.d.ts.map +1 -0
  69. package/dist/__tests__/pipeline/textWrap.test.js +453 -0
  70. package/dist/__tests__/pipeline/textWrap.test.js.map +1 -0
  71. package/dist/__tests__/preflight.test.js +30 -1
  72. package/dist/__tests__/preflight.test.js.map +1 -1
  73. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts +2 -0
  74. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts.map +1 -0
  75. package/dist/__tests__/presets/showcaseDesignOverflow.test.js +58 -0
  76. package/dist/__tests__/presets/showcaseDesignOverflow.test.js.map +1 -0
  77. package/dist/__tests__/table/booktabs.test.d.ts +2 -0
  78. package/dist/__tests__/table/booktabs.test.d.ts.map +1 -0
  79. package/dist/__tests__/table/booktabs.test.js +290 -0
  80. package/dist/__tests__/table/booktabs.test.js.map +1 -0
  81. package/dist/__tests__/textWrapMeasure.test.d.ts +2 -0
  82. package/dist/__tests__/textWrapMeasure.test.d.ts.map +1 -0
  83. package/dist/__tests__/textWrapMeasure.test.js +162 -0
  84. package/dist/__tests__/textWrapMeasure.test.js.map +1 -0
  85. package/dist/__tests__/verseLines.test.js +134 -4
  86. package/dist/__tests__/verseLines.test.js.map +1 -1
  87. package/dist/bitmapResolution.d.ts +42 -0
  88. package/dist/bitmapResolution.d.ts.map +1 -0
  89. package/dist/bitmapResolution.js +82 -0
  90. package/dist/bitmapResolution.js.map +1 -0
  91. package/dist/bundle/codec.d.ts +9 -2
  92. package/dist/bundle/codec.d.ts.map +1 -1
  93. package/dist/bundle/codec.js +24 -2
  94. package/dist/bundle/codec.js.map +1 -1
  95. package/dist/bundle/configVersion.d.ts +49 -8
  96. package/dist/bundle/configVersion.d.ts.map +1 -1
  97. package/dist/bundle/configVersion.js +161 -6
  98. package/dist/bundle/configVersion.js.map +1 -1
  99. package/dist/bundle/index.d.ts +3 -3
  100. package/dist/bundle/index.d.ts.map +1 -1
  101. package/dist/bundle/index.js +2 -2
  102. package/dist/bundle/index.js.map +1 -1
  103. package/dist/bundle/manifest.d.ts +12 -2
  104. package/dist/bundle/manifest.d.ts.map +1 -1
  105. package/dist/bundle/manifest.js +132 -6
  106. package/dist/bundle/manifest.js.map +1 -1
  107. package/dist/bundle/types.d.ts +28 -2
  108. package/dist/bundle/types.d.ts.map +1 -1
  109. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  110. package/dist/canvas-backend/blockRender.js +6 -4
  111. package/dist/canvas-backend/blockRender.js.map +1 -1
  112. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  113. package/dist/canvas-backend/renderResourceBlock.js +15 -1
  114. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  115. package/dist/configWarnings.js +29 -2
  116. package/dist/configWarnings.js.map +1 -1
  117. package/dist/defaults/headerFooter.d.ts +21 -6
  118. package/dist/defaults/headerFooter.d.ts.map +1 -1
  119. package/dist/defaults/headerFooter.js +37 -14
  120. package/dist/defaults/headerFooter.js.map +1 -1
  121. package/dist/defaults/headings.d.ts +5 -4
  122. package/dist/defaults/headings.d.ts.map +1 -1
  123. package/dist/defaults/headings.js +15 -4
  124. package/dist/defaults/headings.js.map +1 -1
  125. package/dist/defaults/index.d.ts +1 -1
  126. package/dist/defaults/index.d.ts.map +1 -1
  127. package/dist/defaults/index.js +1 -1
  128. package/dist/defaults/index.js.map +1 -1
  129. package/dist/defaults/layout.d.ts +30 -1
  130. package/dist/defaults/layout.d.ts.map +1 -1
  131. package/dist/defaults/layout.js +105 -1
  132. package/dist/defaults/layout.js.map +1 -1
  133. package/dist/defaults/parts.js +4 -4
  134. package/dist/defaults/parts.js.map +1 -1
  135. package/dist/defaults/tableStyle.d.ts.map +1 -1
  136. package/dist/defaults/tableStyle.js +44 -0
  137. package/dist/defaults/tableStyle.js.map +1 -1
  138. package/dist/defaults/toc.js +2 -2
  139. package/dist/defaults/verse.d.ts +2 -1
  140. package/dist/defaults/verse.d.ts.map +1 -1
  141. package/dist/defaults/verse.js +6 -1
  142. package/dist/defaults/verse.js.map +1 -1
  143. package/dist/design/layout.d.ts +15 -1
  144. package/dist/design/layout.d.ts.map +1 -1
  145. package/dist/design/layout.js +28 -4
  146. package/dist/design/layout.js.map +1 -1
  147. package/dist/frontmatter.d.ts +20 -0
  148. package/dist/frontmatter.d.ts.map +1 -1
  149. package/dist/frontmatter.js +69 -3
  150. package/dist/frontmatter.js.map +1 -1
  151. package/dist/html-backend.d.ts.map +1 -1
  152. package/dist/html-backend.js +22 -4
  153. package/dist/html-backend.js.map +1 -1
  154. package/dist/index.d.ts +13 -8
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +6 -3
  157. package/dist/index.js.map +1 -1
  158. package/dist/measure/bidiLines.d.ts +4 -3
  159. package/dist/measure/bidiLines.d.ts.map +1 -1
  160. package/dist/measure/bidiLines.js +12 -7
  161. package/dist/measure/bidiLines.js.map +1 -1
  162. package/dist/measure/cjkCompose.d.ts.map +1 -1
  163. package/dist/measure/cjkCompose.js +7 -3
  164. package/dist/measure/cjkCompose.js.map +1 -1
  165. package/dist/measure/hardBreaks.d.ts.map +1 -1
  166. package/dist/measure/hardBreaks.js +13 -1
  167. package/dist/measure/hardBreaks.js.map +1 -1
  168. package/dist/measure/index.d.ts +3 -3
  169. package/dist/measure/index.d.ts.map +1 -1
  170. package/dist/measure/index.js +4 -4
  171. package/dist/measure/index.js.map +1 -1
  172. package/dist/measure/plain.d.ts.map +1 -1
  173. package/dist/measure/plain.js +11 -7
  174. package/dist/measure/plain.js.map +1 -1
  175. package/dist/measure/rich.d.ts.map +1 -1
  176. package/dist/measure/rich.js +9 -6
  177. package/dist/measure/rich.js.map +1 -1
  178. package/dist/measure/types.d.ts +49 -3
  179. package/dist/measure/types.d.ts.map +1 -1
  180. package/dist/measure/types.js +67 -3
  181. package/dist/measure/types.js.map +1 -1
  182. package/dist/pipeline/build.d.ts.map +1 -1
  183. package/dist/pipeline/build.js +488 -31
  184. package/dist/pipeline/build.js.map +1 -1
  185. package/dist/pipeline/buildBlockKind.d.ts +5 -0
  186. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  187. package/dist/pipeline/buildBlockKind.js +14 -1
  188. package/dist/pipeline/buildBlockKind.js.map +1 -1
  189. package/dist/pipeline/buildMeasurement.js +1 -1
  190. package/dist/pipeline/buildMeasurement.js.map +1 -1
  191. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  192. package/dist/pipeline/columnBalancing.js +5 -0
  193. package/dist/pipeline/columnBalancing.js.map +1 -1
  194. package/dist/pipeline/contentWarnings.d.ts +16 -0
  195. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  196. package/dist/pipeline/contentWarnings.js +113 -17
  197. package/dist/pipeline/contentWarnings.js.map +1 -1
  198. package/dist/pipeline/floatPlacement.d.ts +34 -4
  199. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  200. package/dist/pipeline/floatPlacement.js +35 -5
  201. package/dist/pipeline/floatPlacement.js.map +1 -1
  202. package/dist/pipeline/floatSlots.d.ts +7 -0
  203. package/dist/pipeline/floatSlots.d.ts.map +1 -1
  204. package/dist/pipeline/floatSlots.js.map +1 -1
  205. package/dist/pipeline/headerFooter.d.ts +4 -1
  206. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  207. package/dist/pipeline/headerFooter.js +19 -5
  208. package/dist/pipeline/headerFooter.js.map +1 -1
  209. package/dist/pipeline/measureContentBlock.d.ts +7 -0
  210. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  211. package/dist/pipeline/measureContentBlock.js +15 -6
  212. package/dist/pipeline/measureContentBlock.js.map +1 -1
  213. package/dist/pipeline/placement.d.ts.map +1 -1
  214. package/dist/pipeline/placement.js +7 -0
  215. package/dist/pipeline/placement.js.map +1 -1
  216. package/dist/pipeline/resourceLayout.d.ts +15 -0
  217. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  218. package/dist/pipeline/resourceLayout.js +95 -15
  219. package/dist/pipeline/resourceLayout.js.map +1 -1
  220. package/dist/pipeline/styles.d.ts.map +1 -1
  221. package/dist/pipeline/styles.js +8 -5
  222. package/dist/pipeline/styles.js.map +1 -1
  223. package/dist/pipeline/textWrap.d.ts +94 -0
  224. package/dist/pipeline/textWrap.d.ts.map +1 -0
  225. package/dist/pipeline/textWrap.js +188 -0
  226. package/dist/pipeline/textWrap.js.map +1 -0
  227. package/dist/pipeline/verseLines.d.ts +22 -2
  228. package/dist/pipeline/verseLines.d.ts.map +1 -1
  229. package/dist/pipeline/verseLines.js +52 -4
  230. package/dist/pipeline/verseLines.js.map +1 -1
  231. package/dist/preflight.d.ts +46 -1
  232. package/dist/preflight.d.ts.map +1 -1
  233. package/dist/preflight.js +42 -7
  234. package/dist/preflight.js.map +1 -1
  235. package/dist/table/booktabs.d.ts +37 -0
  236. package/dist/table/booktabs.d.ts.map +1 -0
  237. package/dist/table/booktabs.js +82 -0
  238. package/dist/table/booktabs.js.map +1 -0
  239. package/dist/types.d.ts +227 -8
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/vdt.d.ts +131 -6
  242. package/dist/vdt.d.ts.map +1 -1
  243. package/dist/vdt.js +3 -2
  244. package/dist/vdt.js.map +1 -1
  245. package/dist/word/index.d.ts +1 -1
  246. package/dist/word/index.d.ts.map +1 -1
  247. package/dist/word/index.js +1 -1
  248. package/dist/word/index.js.map +1 -1
  249. package/dist/word/toMarkdown.d.ts +10 -0
  250. package/dist/word/toMarkdown.d.ts.map +1 -1
  251. package/dist/word/toMarkdown.js +16 -1
  252. package/dist/word/toMarkdown.js.map +1 -1
  253. package/package.json +1 -1
@@ -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":"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"}
@@ -76,6 +76,21 @@ export interface ResourceLayoutInput {
76
76
  /** Widest a figure's image (bitmap or SVG) may be set; the caption and
77
77
  * note keep `columnWidth`. Defaults to `columnWidth`. */
78
78
  maxBodyWidth?: number;
79
+ /** Tallest a picture's body (bitmap, SVG, video poster) may be set: a
80
+ * float scaled to the room of its slot (`placement.shrink`, #626). The
81
+ * picture is cropped within its safe area first (keeping its width),
82
+ * then scaled, width and height together, never below `minBodyScale`;
83
+ * the result records the scale (`shrinkScale`). The caption and note
84
+ * are not counted: the caller takes them off the slot's room. Ignored
85
+ * for tables and turned blocks. */
86
+ maxBodyHeight?: number;
87
+ /** The smallest scale `maxBodyHeight` sets the picture at (0–1); the
88
+ * body then stands taller than the cap. Default 0. */
89
+ minBodyScale?: number;
90
+ /** Measure the caption and note at this width instead of the slot's,
91
+ * set under the picture per `placement.align`: the layout's own rounds
92
+ * for `placement.captionMeasure: 'body'`. */
93
+ captionWidth?: number;
79
94
  /** Make a picture with a safe area (`Resource.safeArea`) this many px
80
95
  * taller (or shorter, when negative) than it would be set, by cropping
81
96
  * outside its safe area; clamped to the range the safe area allows (see
@@ -1 +1 @@
1
- {"version":3,"file":"resourceLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceLayout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resourceLayout.d.ts","sourceRoot":"","sources":["../../src/pipeline/resourceLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAyD,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9H,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,UAAU,CAAC;AAIpD,OAAO,KAAK,EACV,iBAAiB,EAEjB,0BAA0B,EAE1B,kBAAkB,EAClB,QAAQ,EAER,gBAAgB,EAChB,YAAY,EAEZ,UAAU,EAKX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,OAAO,EAMR,MAAM,QAAQ,CAAC;AAwBhB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA+B1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB;+EAC2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB;;;;oEAIgE;IAChE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;+DAC2D;IAC3D,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzD;uCACmC;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB;;;;kEAI8D;IAC9D,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF;8DAC0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;wCAMoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;2DACuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;kDAE8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;6BAIyB;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;mEAS+D;IAC/D,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED;;;sBAGsB;AACtB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;yDAGyD;AACzD,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB;mCAC+B;IAC/B,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B;+EAC2E;IAC3E,cAAc,EAAE,OAAO,EAAE,CAAC;CAC3B;AAED;;;;;qCAKqC;AACrC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,SAAS,GAAG,UAAU,EAAE,CAW9G;AAOD;wEACwE;AACxE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACnC,iBAAiB,EAAE,oBAAoB,EACvC,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE;AACrB;gDACgD;AAChD,cAAc,GAAE,MAAa,GAC5B,MAAM,CAeR;AA2CD;sCACsC;AACtC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;;;;;wCAMwC;AACxC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EAAE,EACnB,iBAAiB,EAAE,oBAAoB,EACvC,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,GACjG,UAAU,EAAE,CA6Bd;AA6ED;;;;oCAIoC;AACpC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAAG,UAAU,EAAE,CAO9I;AA4QD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBnF;AAED;;;6BAG6B;AAC7B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAe7D;AAMD;sDACsD;AACtD,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAajF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAuBrG;AAiUD;;;;;GAKG;AACH;kBACkB;AAClB,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb;qDACiD;IACjD,YAAY,EAAE,YAAY,GAAG,SAAS,CAAC;IACvC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,qDAAqD;IACrD,SAAS,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACxC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;wCAEwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,0BAA0B,CAAC;IAClC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9G,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAqF5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG;IAC/D,KAAK,EAAE,qBAAqB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB;8CAC0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;kCAC8B;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAoeA;AAoED;qEACqE;AACrE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAY/E"}
@@ -30,6 +30,7 @@
30
30
  * last one. {@link planTableSlice} picks the rows a slice can carry from the
31
31
  * row metrics the full-table layout reports.
32
32
  */
33
+ import { bitmapLayoutSize } from '../bitmapResolution';
33
34
  import { findAnchorTarget, resolveAnchorRefLabel, unprefixedId } from './crossRefs';
34
35
  import { measuringVertically, withMeasureWritingMode } from '../measure/vertical';
35
36
  import { getMeasureDirection, setMeasureDirection, shiftLineX } from '../measure/bidiLines';
@@ -43,6 +44,7 @@ import { isBlankText } from '../measure/spaces';
43
44
  import { linkSegments } from '../measure/links';
44
45
  import { graphemeCount } from '../measure/graphemes';
45
46
  import { dimensionToPx } from '../units';
47
+ import { booktabsStrokes } from '../table/booktabs';
46
48
  // Caption / table-cell / note content is parsed with the shared snippet
47
49
  // parser so measurement and the sandbox's glyph→snippet mapping agree on
48
50
  // one span list (`:ref{…}` becomes a one-char placeholder span).
@@ -414,7 +416,7 @@ function measureCellContent(spans, set, width, textAlign, listGapPx) {
414
416
  * horizontal alignment. An id that matches no bitmap / SVG resource, or a
415
417
  * payload without a file, yields null and the cell lays out text-only.
416
418
  */
417
- function fitCellImage(image, align, innerWidth, resources) {
419
+ function fitCellImage(image, align, innerWidth, resources, dpi) {
418
420
  if (!image)
419
421
  return null;
420
422
  const resource = resources.find((r) => r.id === image.resourceId);
@@ -434,7 +436,9 @@ function fitCellImage(image, align, innerWidth, resources) {
434
436
  kind = 'bitmap';
435
437
  fileId = resource.bitmap.fileId;
436
438
  format = resource.bitmap.format;
437
- const fit = fitWidth(resource.bitmap.width, resource.bitmap.height, target);
439
+ // At its natural print size (#631), never enlarged.
440
+ const natural = bitmapLayoutSize(resource.bitmap, dpi);
441
+ const fit = fitWidth(natural.width, natural.height, target);
438
442
  width = fit.width;
439
443
  height = fit.height;
440
444
  }
@@ -460,6 +464,12 @@ function fitCellImage(image, align, innerWidth, resources) {
460
464
  * on screen, but 0.5pt (≈0.67px at 96dpi) hairlines must survive intact —
461
465
  * the previous `max(1, round(px))` rounded them up to a full pixel. */
462
466
  const MIN_BORDER_PX = 0.25;
467
+ /** A booktabs rule width (px): `0` drops the rule, anything thinner than
468
+ * {@link MIN_BORDER_PX} is raised to it. `em` is the body cell size. */
469
+ function rulePx(width, dpi, bodyFontPx) {
470
+ const px = dimensionToPx(width, dpi, bodyFontPx);
471
+ return px > 0 ? Math.max(MIN_BORDER_PX, px) : 0;
472
+ }
463
473
  /**
464
474
  * Column x-edges (length = columnCount + 1) for a table model laid out at
465
475
  * `columnWidth`. `TableModel.columnWidths` are relative weights, normalised so
@@ -668,7 +678,7 @@ function layoutTableIn(model, columnWidth, style, resourceNumbering, resourceTyp
668
678
  const m = measureCellContent(spans, set, Math.max(1, cellWidth), align, style.listGapPx);
669
679
  // An embedded image sits at the top of the cell; the text (when
670
680
  // there is any) runs under it, a padding's worth below.
671
- const image = cell.hiddenBy ? null : fitCellImage(cell.image, align, Math.max(1, cellWidth), resources);
681
+ const image = cell.hiddenBy ? null : fitCellImage(cell.image, align, Math.max(1, cellWidth), resources, style.dpi);
672
682
  const textHeight = m.totalHeight;
673
683
  const textY = image ? image.height + (textHeight > 0 ? cellPaddingPx : 0) : 0;
674
684
  const lines = image && textHeight > 0 ? shiftLines(m.lines, 0, textY) : m.lines;
@@ -958,7 +968,10 @@ export function layoutResourceBlock(input) {
958
968
  if (resource.kind === 'bitmap' && resource.bitmap) {
959
969
  fileId = resource.bitmap.fileId;
960
970
  format = resource.bitmap.format;
961
- const fit = fitWidth(resource.bitmap.width, resource.bitmap.height, Math.min(columnWidth, input.maxBodyWidth ?? columnWidth));
971
+ // Its pixels at its own resolution (#631), else at `page.dpi`; the
972
+ // column caps it, a smaller picture keeps its size.
973
+ const natural = bitmapLayoutSize(resource.bitmap, dpi);
974
+ const fit = fitWidth(natural.width, natural.height, Math.min(columnWidth, input.maxBodyWidth ?? columnWidth));
962
975
  bodyWidth = fit.width;
963
976
  bodyHeight = fit.height;
964
977
  }
@@ -995,7 +1008,22 @@ export function layoutResourceBlock(input) {
995
1008
  const hBase = ts.headerItalic ? 'italic' : 'normal';
996
1009
  const hFlip = ts.headerItalic ? 'normal' : 'italic';
997
1010
  const headerTrackingPx = dimensionToPx(ts.headerLetterSpacing, dpi, headerFontPx);
1011
+ // Booktabs (#625): its own three widths, all resolved against the body
1012
+ // cell size (a larger header size must not thicken the header rule); a
1013
+ // width of 0 drops that rule.
1014
+ const booktabs = ts.borders && ts.rules === 'booktabs'
1015
+ ? {
1016
+ heavyPx: rulePx(ts.heavyRuleWidth, dpi, bodyFontPx),
1017
+ lightPx: rulePx(ts.lightRuleWidth, dpi, bodyFontPx),
1018
+ spanPx: rulePx(ts.spanRuleWidth, dpi, bodyFontPx),
1019
+ spanRules: ts.spanRules,
1020
+ spanTrimPx: Math.max(0, dimensionToPx(ts.spanRuleTrim, dpi, bodyFontPx)),
1021
+ groupRules: ts.groupRules,
1022
+ continuedFootRule: ts.continuedFootRule,
1023
+ }
1024
+ : undefined;
998
1025
  const style = {
1026
+ dpi,
999
1027
  body: {
1000
1028
  fontString: buildFontString(ts.bodyFontFamily, bodyFontPx, normalWeight),
1001
1029
  boldFontString: buildFontString(ts.bodyFontFamily, bodyFontPx, boldWeight),
@@ -1015,9 +1043,11 @@ export function layoutResourceBlock(input) {
1015
1043
  ...(ts.headerTextTransform === 'uppercase' ? { uppercase: true } : {}),
1016
1044
  },
1017
1045
  borderColor: ts.borderColor.hex,
1018
- borderWidthPx: ts.borders && ts.rules !== 'none'
1019
- ? Math.max(MIN_BORDER_PX, dimensionToPx(ts.borderWidth, dpi))
1020
- : 0,
1046
+ borderWidthPx: booktabs
1047
+ ? Math.max(booktabs.heavyPx, booktabs.lightPx, booktabs.spanPx)
1048
+ : ts.borders && ts.rules !== 'none'
1049
+ ? Math.max(MIN_BORDER_PX, dimensionToPx(ts.borderWidth, dpi))
1050
+ : 0,
1021
1051
  cellPaddingPx: dimensionToPx(ts.cellPadding, dpi, bodyFontPx),
1022
1052
  headerBackground: ts.headerBackgroundEnabled ? ts.headerBackground.hex : undefined,
1023
1053
  bodyBackground: ts.bodyBackgroundEnabled ? ts.bodyBackground.hex : undefined,
@@ -1036,9 +1066,16 @@ export function layoutResourceBlock(input) {
1036
1066
  const radiusPx = Math.min(dimensionToPx(ts.borderRadius, dpi, bodyFontPx), columnWidth / 2, height / 2);
1037
1067
  const top = slice?.continued ? 0 : radiusPx;
1038
1068
  const bottom = slice?.continues ? 0 : radiusPx;
1039
- table = radiusPx > 0 && (top > 0 || bottom > 0)
1040
- ? { ...layout, frameRadii: [top, top, bottom, bottom] }
1041
- : layout;
1069
+ // Booktabs rules are computed here, where the slice is known and the
1070
+ // cells of a table that runs the other way are already mirrored.
1071
+ const strokes = booktabs
1072
+ ? booktabsStrokes(layout, tableHeaderRowCount(resource.table.model), booktabs, slice?.continues ?? false)
1073
+ : undefined;
1074
+ table = {
1075
+ ...layout,
1076
+ ...(radiusPx > 0 && (top > 0 || bottom > 0) ? { frameRadii: [top, top, bottom, bottom] } : {}),
1077
+ ...(strokes ? { strokes } : {}),
1078
+ };
1042
1079
  tableRows = metrics;
1043
1080
  bodyWidth = columnWidth;
1044
1081
  bodyHeight = height;
@@ -1053,7 +1090,7 @@ export function layoutResourceBlock(input) {
1053
1090
  resourceType,
1054
1091
  number,
1055
1092
  resolved,
1056
- width: input.captionAside?.width ?? columnWidth,
1093
+ width: input.captionAside?.width ?? input.captionWidth ?? columnWidth,
1057
1094
  resourceNumbering,
1058
1095
  resourceTypes,
1059
1096
  resources,
@@ -1086,7 +1123,7 @@ export function layoutResourceBlock(input) {
1086
1123
  const slanted = cs.note.italic
1087
1124
  ? noteSpans.map((s) => ({ ...s, italic: s.italic || true }))
1088
1125
  : noteSpans;
1089
- measuredNote = measureSnippetLines(slanted, [noteFontString, noteBoldFontString, noteItalicFontString, noteBoldItalicFontString], Math.max(1, input.captionAside?.width ?? columnWidth), noteLineHeightPx, { textAlign: cs.note.align });
1126
+ measuredNote = measureSnippetLines(slanted, [noteFontString, noteBoldFontString, noteItalicFontString, noteBoldItalicFontString], Math.max(1, input.captionAside?.width ?? input.captionWidth ?? columnWidth), noteLineHeightPx, { textAlign: cs.note.align });
1090
1127
  }
1091
1128
  const noteHeight = measuredNote.length > 0
1092
1129
  ? measuredNote.length * noteLineHeightPx + noteGapPx
@@ -1157,6 +1194,27 @@ export function layoutResourceBlock(input) {
1157
1194
  }
1158
1195
  pageRoom = room;
1159
1196
  }
1197
+ // A float scaled to the room of its slot (`placement.shrink`, #626): the
1198
+ // caller gives the tallest body the slot holds. A picture with a safe
1199
+ // area is cropped first, keeping its width; then width and height scale
1200
+ // together, never below `minBodyScale`.
1201
+ let shrinkScale;
1202
+ // The balancing lever never grows the body past that room.
1203
+ if (input.maxBodyHeight !== undefined && picture && !rotate) {
1204
+ const cap = Math.max(0, input.maxBodyHeight);
1205
+ if (bodyHeight > cap + 0.01 && bodyHeight > 0) {
1206
+ if (flexRange)
1207
+ bodyHeight = Math.max(cap, flexRange(bodyWidth).min);
1208
+ if (bodyHeight > cap + 0.01) {
1209
+ const k = Math.max(Math.min(1, Math.max(0, input.minBodyScale ?? 0)), cap / bodyHeight);
1210
+ bodyWidth *= k;
1211
+ bodyHeight *= k;
1212
+ if (k < 1 - 1e-6)
1213
+ shrinkScale = k;
1214
+ }
1215
+ }
1216
+ pageRoom = Math.min(pageRoom ?? Infinity, Math.max(cap, bodyHeight));
1217
+ }
1160
1218
  // A picture with a safe area set taller or shorter than its own ratio:
1161
1219
  // the lever's delta, within what the safe area (and the page) allows.
1162
1220
  let bodySource;
@@ -1171,6 +1229,22 @@ export function layoutResourceBlock(input) {
1171
1229
  bodySource = safeAreaSource(intrinsic.width, intrinsic.height, safeArea, bodyWidth, bodyHeight);
1172
1230
  bodyFlex = { shrink: Math.max(0, bodyHeight - range.min), grow: Math.max(0, max - bodyHeight), delta: bodyHeight - before };
1173
1231
  }
1232
+ // A picture narrower than its slot whose caption takes its width
1233
+ // (`placement.captionMeasure: 'body'`): laid out again with the caption
1234
+ // and note at the picture's width. A narrower caption may wrap onto more
1235
+ // lines and leave the picture less room (`fitFiguresToPage`), so a few
1236
+ // rounds follow the width down.
1237
+ const captionMeasure = resource.placement?.captionMeasure ?? resourceType?.defaultPlacement?.captionMeasure;
1238
+ if (captionMeasure === 'body' && picture && !rotate && !input.captionAside
1239
+ && input.captionWidth === undefined && bodyWidth < columnWidth - 0.5) {
1240
+ let width = bodyWidth;
1241
+ let out = layoutResourceBlock({ ...input, captionWidth: width });
1242
+ for (let round = 0; round < 2 && out.block.bodyRect.width < width - 0.5; round++) {
1243
+ width = out.block.bodyRect.width;
1244
+ out = layoutResourceBlock({ ...input, captionWidth: width });
1245
+ }
1246
+ return out;
1247
+ }
1174
1248
  // --- Vertical stacking -------------------------------------------------
1175
1249
  // above: [caption band] gap [body] noteGap [note]
1176
1250
  // below: [body] gap [caption band] noteGap [note]
@@ -1182,6 +1256,11 @@ export function layoutResourceBlock(input) {
1182
1256
  : captionAbove ? 0 : bodyHeight + (captionBandHeight > 0 ? captionGapPx : 0);
1183
1257
  const bodyY = captionAbove ? captionHeight : 0;
1184
1258
  const asideDx = aside ? aside.dx : 0;
1259
+ // A caption measured to the picture (`placement.captionMeasure: 'body'`)
1260
+ // sits under it per `placement.align`, as the picture sits in the slot.
1261
+ const captionDx = !aside && input.captionWidth !== undefined && input.captionWidth < columnWidth
1262
+ ? (columnWidth - input.captionWidth) * alignFactor(resource.placement?.align ?? resourceType?.defaultPlacement?.align)
1263
+ : asideDx;
1185
1264
  // A picture narrower than its slot — shrunk to fit the page or the room
1186
1265
  // left (`layout.fitFiguresToPage`), or a bitmap smaller than the column —
1187
1266
  // sits in the slot per `placement.align`, as a float narrowed by
@@ -1206,21 +1285,21 @@ export function layoutResourceBlock(input) {
1206
1285
  })),
1207
1286
  };
1208
1287
  }
1209
- const captionLines = shiftLines(measuredCaption, asideDx + captionPaddingPx, captionBandY + captionPaddingPx);
1288
+ const captionLines = shiftLines(measuredCaption, captionDx + captionPaddingPx, captionBandY + captionPaddingPx);
1210
1289
  // A table's rules are stroked centred on the cell edges, so its outer
1211
1290
  // frame reaches half a stroke beyond the body on each side; the caption
1212
1291
  // bar spans that same outer extent, or it would read a hair narrower.
1213
1292
  const barOverhang = table ? table.borderWidthPx / 2 : 0;
1214
1293
  const captionBar = cs.backgroundEnabled && captionBandHeight > 0
1215
1294
  ? {
1216
- rect: createBoundingBox(asideDx - barOverhang || 0, captionBandY, (aside?.width ?? columnWidth) + 2 * barOverhang, captionBandHeight),
1295
+ rect: createBoundingBox(captionDx - barOverhang || 0, captionBandY, (aside?.width ?? input.captionWidth ?? columnWidth) + 2 * barOverhang, captionBandHeight),
1217
1296
  background: cs.background.hex,
1218
1297
  }
1219
1298
  : undefined;
1220
1299
  const noteY = aside
1221
1300
  ? captionBandY + captionBandHeight + noteGapPx
1222
1301
  : (captionAbove ? bodyY + bodyHeight : bodyHeight + captionHeight) + noteGapPx;
1223
- const noteLines = shiftLines(measuredNote, asideDx, noteY);
1302
+ const noteLines = shiftLines(measuredNote, captionDx, noteY);
1224
1303
  // The marker takes the note's slot (a continuing slice has no note).
1225
1304
  const continuesLines = shiftLines(measuredContinues, 0, aside ? bodyHeight + noteGapPx : noteY);
1226
1305
  const totalHeight = aside
@@ -1237,6 +1316,7 @@ export function layoutResourceBlock(input) {
1237
1316
  bodyRect,
1238
1317
  ...(bodySource ? { bodySource } : {}),
1239
1318
  ...(bodyFlex ? { bodyFlex } : {}),
1319
+ ...(shrinkScale !== undefined ? { shrinkScale } : {}),
1240
1320
  fileId,
1241
1321
  format,
1242
1322
  captionLines,