postext 1.24.0 → 1.25.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 (331) hide show
  1. package/dist/__tests__/bundle/cjkRulesPin.test.d.ts +2 -0
  2. package/dist/__tests__/bundle/cjkRulesPin.test.d.ts.map +1 -0
  3. package/dist/__tests__/bundle/cjkRulesPin.test.js +78 -0
  4. package/dist/__tests__/bundle/cjkRulesPin.test.js.map +1 -0
  5. package/dist/__tests__/bundle/designOverflowPin.test.js +4 -2
  6. package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -1
  7. package/dist/__tests__/bundle/flowColumnsPin.test.d.ts +2 -0
  8. package/dist/__tests__/bundle/flowColumnsPin.test.d.ts.map +1 -0
  9. package/dist/__tests__/bundle/flowColumnsPin.test.js +40 -0
  10. package/dist/__tests__/bundle/flowColumnsPin.test.js.map +1 -0
  11. package/dist/__tests__/bundle/gridBalancingPin.test.d.ts +2 -0
  12. package/dist/__tests__/bundle/gridBalancingPin.test.d.ts.map +1 -0
  13. package/dist/__tests__/bundle/gridBalancingPin.test.js +53 -0
  14. package/dist/__tests__/bundle/gridBalancingPin.test.js.map +1 -0
  15. package/dist/__tests__/bundle/inlineTableSplitPin.test.d.ts +2 -0
  16. package/dist/__tests__/bundle/inlineTableSplitPin.test.d.ts.map +1 -0
  17. package/dist/__tests__/bundle/inlineTableSplitPin.test.js +43 -0
  18. package/dist/__tests__/bundle/inlineTableSplitPin.test.js.map +1 -0
  19. package/dist/__tests__/bundle/openerHeadFloatsPin.test.d.ts +2 -0
  20. package/dist/__tests__/bundle/openerHeadFloatsPin.test.d.ts.map +1 -0
  21. package/dist/__tests__/bundle/openerHeadFloatsPin.test.js +50 -0
  22. package/dist/__tests__/bundle/openerHeadFloatsPin.test.js.map +1 -0
  23. package/dist/__tests__/bundle.test.js +11 -1
  24. package/dist/__tests__/bundle.test.js.map +1 -1
  25. package/dist/__tests__/cjk/annotationsRender.test.js +5 -2
  26. package/dist/__tests__/cjk/annotationsRender.test.js.map +1 -1
  27. package/dist/__tests__/cjk/circledNumbers.test.d.ts +2 -0
  28. package/dist/__tests__/cjk/circledNumbers.test.d.ts.map +1 -0
  29. package/dist/__tests__/cjk/circledNumbers.test.js +83 -0
  30. package/dist/__tests__/cjk/circledNumbers.test.js.map +1 -0
  31. package/dist/__tests__/cjk/gridBalancing.test.d.ts +2 -0
  32. package/dist/__tests__/cjk/gridBalancing.test.d.ts.map +1 -0
  33. package/dist/__tests__/cjk/gridBalancing.test.js +227 -0
  34. package/dist/__tests__/cjk/gridBalancing.test.js.map +1 -0
  35. package/dist/__tests__/cjk/justifyRender.test.js +2 -1
  36. package/dist/__tests__/cjk/justifyRender.test.js.map +1 -1
  37. package/dist/__tests__/cjk/titleBreaks.test.d.ts +2 -0
  38. package/dist/__tests__/cjk/titleBreaks.test.d.ts.map +1 -0
  39. package/dist/__tests__/cjk/titleBreaks.test.js +76 -0
  40. package/dist/__tests__/cjk/titleBreaks.test.js.map +1 -0
  41. package/dist/__tests__/cjk/wordJoiner.test.js +13 -4
  42. package/dist/__tests__/cjk/wordJoiner.test.js.map +1 -1
  43. package/dist/__tests__/codeBlocks.test.js +1 -1
  44. package/dist/__tests__/design/cjkDesignText.test.d.ts +2 -0
  45. package/dist/__tests__/design/cjkDesignText.test.d.ts.map +1 -0
  46. package/dist/__tests__/design/cjkDesignText.test.js +130 -0
  47. package/dist/__tests__/design/cjkDesignText.test.js.map +1 -0
  48. package/dist/__tests__/design/cjkDesignTextRender.test.d.ts +2 -0
  49. package/dist/__tests__/design/cjkDesignTextRender.test.d.ts.map +1 -0
  50. package/dist/__tests__/design/cjkDesignTextRender.test.js +100 -0
  51. package/dist/__tests__/design/cjkDesignTextRender.test.js.map +1 -0
  52. package/dist/__tests__/exports.test.js +49 -0
  53. package/dist/__tests__/exports.test.js.map +1 -1
  54. package/dist/__tests__/hardBreaks.test.js +1 -1
  55. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  56. package/dist/__tests__/headingNumberSpans.test.d.ts +2 -0
  57. package/dist/__tests__/headingNumberSpans.test.d.ts.map +1 -0
  58. package/dist/__tests__/headingNumberSpans.test.js +96 -0
  59. package/dist/__tests__/headingNumberSpans.test.js.map +1 -0
  60. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  61. package/dist/__tests__/multipleColumns.test.js +207 -0
  62. package/dist/__tests__/multipleColumns.test.js.map +1 -1
  63. package/dist/__tests__/parse/citations.test.js +29 -0
  64. package/dist/__tests__/parse/citations.test.js.map +1 -1
  65. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +10 -6
  66. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -1
  67. package/dist/__tests__/pipeline/calloutOverflow.test.js +4 -2
  68. package/dist/__tests__/pipeline/calloutOverflow.test.js.map +1 -1
  69. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  70. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js +6 -5
  71. package/dist/__tests__/pipeline/calloutTallKeepTogether.test.js.map +1 -1
  72. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  73. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  74. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  75. package/dist/__tests__/pipeline/floatCitingPage.test.d.ts +2 -0
  76. package/dist/__tests__/pipeline/floatCitingPage.test.d.ts.map +1 -0
  77. package/dist/__tests__/pipeline/floatCitingPage.test.js +241 -0
  78. package/dist/__tests__/pipeline/floatCitingPage.test.js.map +1 -0
  79. package/dist/__tests__/pipeline/floatOverInlineResource.test.js +18 -6
  80. package/dist/__tests__/pipeline/floatOverInlineResource.test.js.map +1 -1
  81. package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
  82. package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
  83. package/dist/__tests__/pipeline/flowColumns.test.d.ts +2 -0
  84. package/dist/__tests__/pipeline/flowColumns.test.d.ts.map +1 -0
  85. package/dist/__tests__/pipeline/flowColumns.test.js +261 -0
  86. package/dist/__tests__/pipeline/flowColumns.test.js.map +1 -0
  87. package/dist/__tests__/pipeline/headingKeepFitEps.test.d.ts +2 -0
  88. package/dist/__tests__/pipeline/headingKeepFitEps.test.d.ts.map +1 -0
  89. package/dist/__tests__/pipeline/headingKeepFitEps.test.js +83 -0
  90. package/dist/__tests__/pipeline/headingKeepFitEps.test.js.map +1 -0
  91. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  92. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  93. package/dist/__tests__/pipeline/inlineTableSplit.test.d.ts +2 -0
  94. package/dist/__tests__/pipeline/inlineTableSplit.test.d.ts.map +1 -0
  95. package/dist/__tests__/pipeline/inlineTableSplit.test.js +238 -0
  96. package/dist/__tests__/pipeline/inlineTableSplit.test.js.map +1 -0
  97. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  98. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  99. package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js +3 -2
  100. package/dist/__tests__/pipeline/resolvedPaletteCopy.test.js.map +1 -1
  101. package/dist/__tests__/pipeline/sideBoxAfterText.test.d.ts +2 -0
  102. package/dist/__tests__/pipeline/sideBoxAfterText.test.d.ts.map +1 -0
  103. package/dist/__tests__/pipeline/sideBoxAfterText.test.js +163 -0
  104. package/dist/__tests__/pipeline/sideBoxAfterText.test.js.map +1 -0
  105. package/dist/__tests__/prepareFonts.test.d.ts +2 -0
  106. package/dist/__tests__/prepareFonts.test.d.ts.map +1 -0
  107. package/dist/__tests__/prepareFonts.test.js +358 -0
  108. package/dist/__tests__/prepareFonts.test.js.map +1 -0
  109. package/dist/__tests__/svgFonts.test.d.ts +2 -0
  110. package/dist/__tests__/svgFonts.test.d.ts.map +1 -0
  111. package/dist/__tests__/svgFonts.test.js +286 -0
  112. package/dist/__tests__/svgFonts.test.js.map +1 -0
  113. package/dist/__tests__/verseLines.test.js +1 -1
  114. package/dist/__tests__/vertical/measurePaint.test.js +16 -0
  115. package/dist/__tests__/vertical/measurePaint.test.js.map +1 -1
  116. package/dist/bundle/adapters.d.ts +31 -7
  117. package/dist/bundle/adapters.d.ts.map +1 -1
  118. package/dist/bundle/adapters.js +113 -34
  119. package/dist/bundle/adapters.js.map +1 -1
  120. package/dist/bundle/codec.d.ts.map +1 -1
  121. package/dist/bundle/codec.js +1 -0
  122. package/dist/bundle/codec.js.map +1 -1
  123. package/dist/bundle/configVersion.d.ts +127 -10
  124. package/dist/bundle/configVersion.d.ts.map +1 -1
  125. package/dist/bundle/configVersion.js +260 -9
  126. package/dist/bundle/configVersion.js.map +1 -1
  127. package/dist/bundle/index.d.ts +3 -3
  128. package/dist/bundle/index.d.ts.map +1 -1
  129. package/dist/bundle/index.js +2 -2
  130. package/dist/bundle/index.js.map +1 -1
  131. package/dist/bundle/manifest.d.ts.map +1 -1
  132. package/dist/bundle/manifest.js +3 -2
  133. package/dist/bundle/manifest.js.map +1 -1
  134. package/dist/bundle/types.d.ts +4 -0
  135. package/dist/bundle/types.d.ts.map +1 -1
  136. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  137. package/dist/canvas-backend/headerFooter.js +3 -1
  138. package/dist/canvas-backend/headerFooter.js.map +1 -1
  139. package/dist/columnRule.d.ts.map +1 -1
  140. package/dist/columnRule.js +5 -2
  141. package/dist/columnRule.js.map +1 -1
  142. package/dist/configWarnings.js +1 -1
  143. package/dist/configWarnings.js.map +1 -1
  144. package/dist/defaults/cjk.d.ts +2 -1
  145. package/dist/defaults/cjk.d.ts.map +1 -1
  146. package/dist/defaults/cjk.js +17 -1
  147. package/dist/defaults/cjk.js.map +1 -1
  148. package/dist/defaults/diagramStyle.d.ts.map +1 -1
  149. package/dist/defaults/diagramStyle.js +6 -0
  150. package/dist/defaults/diagramStyle.js.map +1 -1
  151. package/dist/defaults/headings.d.ts.map +1 -1
  152. package/dist/defaults/headings.js +3 -0
  153. package/dist/defaults/headings.js.map +1 -1
  154. package/dist/defaults/index.d.ts +1 -1
  155. package/dist/defaults/index.d.ts.map +1 -1
  156. package/dist/defaults/index.js +1 -1
  157. package/dist/defaults/index.js.map +1 -1
  158. package/dist/defaults/layout.d.ts +5 -0
  159. package/dist/defaults/layout.d.ts.map +1 -1
  160. package/dist/defaults/layout.js +32 -0
  161. package/dist/defaults/layout.js.map +1 -1
  162. package/dist/defaults/tableStyle.d.ts.map +1 -1
  163. package/dist/defaults/tableStyle.js +6 -0
  164. package/dist/defaults/tableStyle.js.map +1 -1
  165. package/dist/design/cjkText.d.ts +34 -0
  166. package/dist/design/cjkText.d.ts.map +1 -0
  167. package/dist/design/cjkText.js +82 -0
  168. package/dist/design/cjkText.js.map +1 -0
  169. package/dist/design/layout.d.ts.map +1 -1
  170. package/dist/design/layout.js +103 -5
  171. package/dist/design/layout.js.map +1 -1
  172. package/dist/design/richText.d.ts +24 -0
  173. package/dist/design/richText.d.ts.map +1 -1
  174. package/dist/design/richText.js +37 -1
  175. package/dist/design/richText.js.map +1 -1
  176. package/dist/fonts/buildWithFonts.d.ts +19 -0
  177. package/dist/fonts/buildWithFonts.d.ts.map +1 -0
  178. package/dist/fonts/buildWithFonts.js +16 -0
  179. package/dist/fonts/buildWithFonts.js.map +1 -0
  180. package/dist/fonts/faces.d.ts +88 -0
  181. package/dist/fonts/faces.d.ts.map +1 -0
  182. package/dist/fonts/faces.js +264 -0
  183. package/dist/fonts/faces.js.map +1 -0
  184. package/dist/fonts/fontSet.d.ts +34 -0
  185. package/dist/fonts/fontSet.d.ts.map +1 -0
  186. package/dist/fonts/fontSet.js +173 -0
  187. package/dist/fonts/fontSet.js.map +1 -0
  188. package/dist/fonts/prepare.d.ts +120 -0
  189. package/dist/fonts/prepare.d.ts.map +1 -0
  190. package/dist/fonts/prepare.js +375 -0
  191. package/dist/fonts/prepare.js.map +1 -0
  192. package/dist/html-backend.d.ts +17 -0
  193. package/dist/html-backend.d.ts.map +1 -1
  194. package/dist/html-backend.js +87 -3
  195. package/dist/html-backend.js.map +1 -1
  196. package/dist/index.d.ts +25 -5
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +18 -2
  199. package/dist/index.js.map +1 -1
  200. package/dist/measure/cache.d.ts.map +1 -1
  201. package/dist/measure/cache.js +32 -2
  202. package/dist/measure/cache.js.map +1 -1
  203. package/dist/measure/canvas.d.ts +15 -0
  204. package/dist/measure/canvas.d.ts.map +1 -1
  205. package/dist/measure/canvas.js +68 -4
  206. package/dist/measure/canvas.js.map +1 -1
  207. package/dist/measure/cjk.d.ts.map +1 -1
  208. package/dist/measure/cjk.js +4 -1
  209. package/dist/measure/cjk.js.map +1 -1
  210. package/dist/measure/cjkClasses.d.ts +17 -0
  211. package/dist/measure/cjkClasses.d.ts.map +1 -1
  212. package/dist/measure/cjkClasses.js +41 -1
  213. package/dist/measure/cjkClasses.js.map +1 -1
  214. package/dist/measure/cjkCompose.d.ts.map +1 -1
  215. package/dist/measure/cjkCompose.js +119 -7
  216. package/dist/measure/cjkCompose.js.map +1 -1
  217. package/dist/measure/cjkPunctuation.d.ts +18 -1
  218. package/dist/measure/cjkPunctuation.d.ts.map +1 -1
  219. package/dist/measure/cjkPunctuation.js +13 -1
  220. package/dist/measure/cjkPunctuation.js.map +1 -1
  221. package/dist/measure/font.d.ts +8 -0
  222. package/dist/measure/font.d.ts.map +1 -1
  223. package/dist/measure/font.js +13 -2
  224. package/dist/measure/font.js.map +1 -1
  225. package/dist/measure/fontString.d.ts +14 -0
  226. package/dist/measure/fontString.d.ts.map +1 -0
  227. package/dist/measure/fontString.js +55 -0
  228. package/dist/measure/fontString.js.map +1 -0
  229. package/dist/measure/index.d.ts +4 -1
  230. package/dist/measure/index.d.ts.map +1 -1
  231. package/dist/measure/index.js +3 -1
  232. package/dist/measure/index.js.map +1 -1
  233. package/dist/measure/types.d.ts +4 -0
  234. package/dist/measure/types.d.ts.map +1 -1
  235. package/dist/measure/types.js.map +1 -1
  236. package/dist/parse/citations.d.ts.map +1 -1
  237. package/dist/parse/citations.js +7 -3
  238. package/dist/parse/citations.js.map +1 -1
  239. package/dist/pipeline/build.d.ts +36 -0
  240. package/dist/pipeline/build.d.ts.map +1 -1
  241. package/dist/pipeline/build.js +1065 -193
  242. package/dist/pipeline/build.js.map +1 -1
  243. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  244. package/dist/pipeline/buildBlockKind.js +20 -6
  245. package/dist/pipeline/buildBlockKind.js.map +1 -1
  246. package/dist/pipeline/buildMeasurement.d.ts +6 -0
  247. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  248. package/dist/pipeline/buildMeasurement.js +3 -2
  249. package/dist/pipeline/buildMeasurement.js.map +1 -1
  250. package/dist/pipeline/calloutLayout.d.ts +59 -0
  251. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  252. package/dist/pipeline/calloutLayout.js +287 -65
  253. package/dist/pipeline/calloutLayout.js.map +1 -1
  254. package/dist/pipeline/columnBalancing.d.ts +20 -0
  255. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  256. package/dist/pipeline/columnBalancing.js +22 -4
  257. package/dist/pipeline/columnBalancing.js.map +1 -1
  258. package/dist/pipeline/columnsGroup.d.ts +61 -0
  259. package/dist/pipeline/columnsGroup.d.ts.map +1 -0
  260. package/dist/pipeline/columnsGroup.js +88 -0
  261. package/dist/pipeline/columnsGroup.js.map +1 -0
  262. package/dist/pipeline/config.d.ts +28 -0
  263. package/dist/pipeline/config.d.ts.map +1 -1
  264. package/dist/pipeline/config.js +67 -8
  265. package/dist/pipeline/config.js.map +1 -1
  266. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  267. package/dist/pipeline/contentWarnings.js +28 -0
  268. package/dist/pipeline/contentWarnings.js.map +1 -1
  269. package/dist/pipeline/floatPlacement.d.ts +16 -2
  270. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  271. package/dist/pipeline/floatPlacement.js +12 -4
  272. package/dist/pipeline/floatPlacement.js.map +1 -1
  273. package/dist/pipeline/floatSlots.d.ts +9 -3
  274. package/dist/pipeline/floatSlots.d.ts.map +1 -1
  275. package/dist/pipeline/floatSlots.js +15 -6
  276. package/dist/pipeline/floatSlots.js.map +1 -1
  277. package/dist/pipeline/flowColumns.d.ts +41 -0
  278. package/dist/pipeline/flowColumns.d.ts.map +1 -0
  279. package/dist/pipeline/flowColumns.js +116 -0
  280. package/dist/pipeline/flowColumns.js.map +1 -0
  281. package/dist/pipeline/measureContentBlock.d.ts +13 -1
  282. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  283. package/dist/pipeline/measureContentBlock.js +20 -5
  284. package/dist/pipeline/measureContentBlock.js.map +1 -1
  285. package/dist/pipeline/partPalette.d.ts +3 -0
  286. package/dist/pipeline/partPalette.d.ts.map +1 -1
  287. package/dist/pipeline/partPalette.js +5 -0
  288. package/dist/pipeline/partPalette.js.map +1 -1
  289. package/dist/pipeline/placement.d.ts +19 -0
  290. package/dist/pipeline/placement.d.ts.map +1 -1
  291. package/dist/pipeline/placement.js +5 -2
  292. package/dist/pipeline/placement.js.map +1 -1
  293. package/dist/pipeline/resourceLayout.d.ts +26 -0
  294. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  295. package/dist/pipeline/resourceLayout.js +53 -3
  296. package/dist/pipeline/resourceLayout.js.map +1 -1
  297. package/dist/pipeline/toc.d.ts.map +1 -1
  298. package/dist/pipeline/toc.js +6 -1
  299. package/dist/pipeline/toc.js.map +1 -1
  300. package/dist/svg/fontRegistry.d.ts +66 -0
  301. package/dist/svg/fontRegistry.d.ts.map +1 -0
  302. package/dist/svg/fontRegistry.js +294 -0
  303. package/dist/svg/fontRegistry.js.map +1 -0
  304. package/dist/svg/fonts.d.ts +140 -0
  305. package/dist/svg/fonts.d.ts.map +1 -0
  306. package/dist/svg/fonts.js +642 -0
  307. package/dist/svg/fonts.js.map +1 -0
  308. package/dist/svg/image.d.ts +44 -0
  309. package/dist/svg/image.d.ts.map +1 -0
  310. package/dist/svg/image.js +67 -0
  311. package/dist/svg/image.js.map +1 -0
  312. package/dist/types.d.ts +138 -2
  313. package/dist/types.d.ts.map +1 -1
  314. package/dist/util/stableHash.d.ts +20 -0
  315. package/dist/util/stableHash.d.ts.map +1 -0
  316. package/dist/util/stableHash.js +59 -0
  317. package/dist/util/stableHash.js.map +1 -0
  318. package/dist/vdt.d.ts +118 -3
  319. package/dist/vdt.d.ts.map +1 -1
  320. package/dist/vdt.js.map +1 -1
  321. package/dist/worker/client.d.ts +8 -0
  322. package/dist/worker/client.d.ts.map +1 -1
  323. package/dist/worker/client.js +22 -0
  324. package/dist/worker/client.js.map +1 -1
  325. package/dist/worker/fonts.d.ts +1 -13
  326. package/dist/worker/fonts.d.ts.map +1 -1
  327. package/dist/worker/fonts.js +3 -61
  328. package/dist/worker/fonts.js.map +1 -1
  329. package/dist/worker/layout.worker.js +23 -16
  330. package/dist/worker/layout.worker.js.map +1 -1
  331. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cjkDesignText.test.js","sourceRoot":"","sources":["../../../src/__tests__/design/cjkDesignText.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cjkDesignTextRender.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cjkDesignTextRender.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/design/cjkDesignTextRender.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { renderHeaderFooterSlot } from '../../canvas-backend/headerFooter';
3
+ import { renderToHtml } from '../../html-backend';
4
+ import { buildDocument } from '../../pipeline';
5
+ import { installSizedStub, stubCharWidth } from '../vertical/stub';
6
+ // #637: a design run whose width is its box (a CJK mark that gave up
7
+ // blank) paints its glyphs `inkOffset` into it, on canvas and in HTML.
8
+ installSizedStub();
9
+ function recordingCtx() {
10
+ const calls = [];
11
+ const state = { font: '20px Test', fillStyle: '', strokeStyle: '', lineWidth: 1, letterSpacing: '0px', textBaseline: 'alphabetic' };
12
+ const stack = [];
13
+ const ctx = {
14
+ ...state,
15
+ save() { stack.push({ ...this }); },
16
+ restore() { Object.assign(this, stack.pop()); },
17
+ beginPath() { },
18
+ rect() { },
19
+ clip() { },
20
+ measureText(s) {
21
+ let w = 0;
22
+ for (const ch of s)
23
+ w += stubCharWidth(ch, 20);
24
+ return { width: w };
25
+ },
26
+ fillText(text, x) { calls.push({ text, x }); },
27
+ strokeText() { },
28
+ };
29
+ return { ctx: ctx, calls };
30
+ }
31
+ const slot = () => ({
32
+ bbox: { x: 0, y: 0, width: 400, height: 40 },
33
+ blocks: [{
34
+ kind: 'text',
35
+ bbox: { x: 10, y: 0, width: 400, height: 30 },
36
+ fontString: '20px Test',
37
+ color: '#111111',
38
+ clip: false,
39
+ lines: [{
40
+ text: '见《说文》,此',
41
+ xOffset: 0,
42
+ baselineY: 20,
43
+ width: 120,
44
+ runs: [
45
+ { text: '见', fontString: '20px Test', width: 20 },
46
+ // An opening bracket that gave up the half em before its glyph.
47
+ { text: '《', fontString: '20px Test', width: 10, inkOffset: -10 },
48
+ { text: '说文', fontString: '20px Test', width: 40 },
49
+ // A closing bracket and a comma that gave up the half em after.
50
+ { text: '》', fontString: '20px Test', width: 10, inkOffset: 0 },
51
+ { text: ',', fontString: '20px Test', width: 10, inkOffset: 0 },
52
+ { text: '此', fontString: '20px Test', width: 20 },
53
+ ],
54
+ }],
55
+ }],
56
+ });
57
+ describe('CJK design runs (#637)', () => {
58
+ it('canvas paints each glyph at x + inkOffset and advances by the box', () => {
59
+ const { ctx, calls } = recordingCtx();
60
+ renderHeaderFooterSlot(ctx, slot());
61
+ const at = (t) => calls.find((c) => c.text === t || c.text.startsWith(t)).x;
62
+ expect(at('见')).toBe(10);
63
+ expect(at('《')).toBe(20);
64
+ expect(at('说')).toBe(40);
65
+ expect(at('》')).toBe(80);
66
+ expect(at(',')).toBe(90);
67
+ expect(at('此')).toBe(100);
68
+ });
69
+ it('a built heading design sets its Chinese note as boxed runs in HTML', () => {
70
+ const pt = (value) => ({ value, unit: 'pt' });
71
+ const config = {
72
+ locale: 'zh-Hans',
73
+ page: { width: pt(400), height: pt(400), dpi: 72, margins: { top: pt(20), bottom: pt(20), left: pt(20), right: pt(20) } },
74
+ layout: { layoutType: 'single' },
75
+ header: { elements: [] },
76
+ footer: { elements: [] },
77
+ bodyText: { fontSize: pt(20), lineHeight: pt(30), firstLineIndent: pt(0), hyphenation: { enabled: false } },
78
+ headings: {
79
+ levels: [{
80
+ level: 1,
81
+ advancedDesign: {
82
+ enabled: true,
83
+ slot: {
84
+ elements: [{
85
+ kind: 'text', id: 'note', content: '{titleText}', fontSize: pt(20),
86
+ placement: { anchor: { to: 'container', edge: 'top-left' }, size: { width: pt(300) } },
87
+ }],
88
+ },
89
+ },
90
+ }],
91
+ },
92
+ };
93
+ const doc = buildDocument({ markdown: '# 人物,页码;条目。\n\n正文。' }, config);
94
+ const html = renderToHtml(doc);
95
+ // , and ; gave up their half em: boxes 10 px wide.
96
+ expect(html).toMatch(/display:inline-block;width:10\.000px;">,</);
97
+ expect(html).toMatch(/display:inline-block;width:10\.000px;">;</);
98
+ });
99
+ });
100
+ //# sourceMappingURL=cjkDesignTextRender.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cjkDesignTextRender.test.js","sourceRoot":"","sources":["../../../src/__tests__/design/cjkDesignTextRender.test.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,7 @@ describe("package exports", () => {
104
104
  "cjkGridGeometry",
105
105
  "cjkGridCells",
106
106
  "CHARACTER_GRID_COLOR",
107
+ "balancingOnByDefault",
107
108
  "findLooseLines",
108
109
  "drawLooseLines",
109
110
  "lineLooseness",
@@ -289,6 +290,7 @@ describe("package exports", () => {
289
290
  "resolvePageConfig",
290
291
  "DEFAULT_LAYOUT_CONFIG",
291
292
  "DEFAULT_FLOAT_MIN_SCALE",
293
+ "DEFAULT_MAX_TOP_FRACTION",
292
294
  "DEFAULT_TEXT_WRAP",
293
295
  "DEFAULT_COLUMN_RULE",
294
296
  "DEFAULT_COLUMN_BALANCING",
@@ -549,6 +551,51 @@ describe("package exports", () => {
549
551
  "placeholderRender",
550
552
  "clearMathCache",
551
553
  "applySingleInkToSvg",
554
+ "svgFontRequests",
555
+ "svgDeclaredFontFamilies",
556
+ "inlineSvgFonts",
557
+ "inlineSvgFontsSync",
558
+ "inlineSvgFontsDetailed",
559
+ "inlineSvgFontsDetailedSync",
560
+ "chainSvgFontProviders",
561
+ "injectSvgStyle",
562
+ "fontFaceRule",
563
+ "sniffFontFormat",
564
+ "parseFontFamilyList",
565
+ "isFontFaceOnlyStyleSheet",
566
+ "DEFAULT_SVG_FONT_MAX_BYTES",
567
+ "registerFontBytes",
568
+ "registerFontUrl",
569
+ "unregisterFontFamily",
570
+ "clearRegisteredFonts",
571
+ "registeredFontGeneration",
572
+ "registeredFontProvider",
573
+ "registeredFontSyncProvider",
574
+ "parseUnicodeRange",
575
+ "registeredFontFiles",
576
+ "prepareFonts",
577
+ "withLoadedFonts",
578
+ "fontSampleText",
579
+ "configFontFaces",
580
+ "buildDocumentWithFonts",
581
+ "watchFonts",
582
+ "onFontsChanged",
583
+ "syncFontSet",
584
+ "documentFontFaces",
585
+ "documentFontFamilies",
586
+ "fontFallbacks",
587
+ "defaultFontSet",
588
+ "evictFontFamilies",
589
+ "measurementGeneration",
590
+ "parseFontString",
591
+ "invalidateConfig",
592
+ "stableStringify",
593
+ "stableHash",
594
+ "hashString",
595
+ "hashStringWide",
596
+ "registerSvgImage",
597
+ "prepareSvgMarkup",
598
+ "decodeSvgImage",
552
599
  "openBundle",
553
600
  "createBundle",
554
601
  "buildBundle",
@@ -558,6 +605,8 @@ describe("package exports", () => {
558
605
  "bundleVideoUrl",
559
606
  "bundleResourceBytes",
560
607
  "bundleFontProvider",
608
+ "bundleSvgFontProvider",
609
+ "svgInlinesFonts",
561
610
  "readBundle",
562
611
  "planBundle",
563
612
  "resolveBundleFiles",
@@ -1 +1 @@
1
- {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":"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"}
@@ -192,7 +192,7 @@ describe('the measurers (#620)', () => {
192
192
  describe('CONFIG_VERSION 9 (#620)', () => {
193
193
  const stored = { bodyText: { fontSize: pt(10) } };
194
194
  it('pins documents stored before #620 whose text holds a forced break', () => {
195
- expect(CONFIG_VERSION).toBe(10);
195
+ expect(CONFIG_VERSION).toBe(11);
196
196
  for (const content of ['One line\\\nnext', 'a \\\\ b', 'a\\\\\nb', '> quote\\\n> more']) {
197
197
  expect(migrateConfig(stored, 8, { content }).bodyText?.hardLineBreaks).toBe(false);
198
198
  }
@@ -114,7 +114,7 @@ describe('heading marks in configurations stored before they printed (EF-122 pin
114
114
  expect(pinLegacyHeadingMarks(named)).toBe(named);
115
115
  const today = { headings: { fontFamily: 'Georgia' } };
116
116
  expect(migrateConfig(today, CONFIG_VERSION, { content: MARKED })).toBe(today);
117
- expect(CONFIG_VERSION).toBe(10);
117
+ expect(CONFIG_VERSION).toBe(11);
118
118
  });
119
119
  it('lays an unversioned document out as postext 1.4 did', () => {
120
120
  const migrated = migrateConfig(config(), undefined, { content: MARKED });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=headingNumberSpans.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headingNumberSpans.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/headingNumberSpans.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildDocument } from '../index';
3
+ import { installSizedStub } from './vertical/stub';
4
+ // A heading number joins the title's first span only when that span is
5
+ // plain text: a ruby base, emphasis dots, a name or title line, a warichu,
6
+ // a tcy cell or a language tag leave the number a span of its own, so the
7
+ // annotation never covers it (#638). CJK characters measure 1 em, Latin
8
+ // letters ½ em (`vertical/stub.ts`).
9
+ installSizedStub();
10
+ const pt = (value) => ({ value, unit: 'pt' });
11
+ const config = (extra = {}, numbered = true) => ({
12
+ locale: 'zh-Hant-TW',
13
+ page: { width: pt(440), height: pt(600), dpi: 72, margins: { top: pt(20), bottom: pt(20), left: pt(20), right: pt(20) } },
14
+ layout: { layoutType: 'single' },
15
+ header: { elements: [] },
16
+ footer: { elements: [] },
17
+ bodyText: { fontSize: pt(20), lineHeight: pt(40), textAlign: 'justify', firstLineIndent: pt(0), hyphenation: { enabled: false } },
18
+ ...(numbered ? { headings: { levels: [{ level: 1, numberingTemplate: '第{1}課' }] } } : {}),
19
+ ...extra,
20
+ });
21
+ const vertical = { layout: { layoutType: 'single', writingMode: 'vertical-rl' } };
22
+ const heading = (doc) => doc.blocks.find((b) => b.type === 'heading');
23
+ const segmentsOf = (b) => b.lines.flatMap((l) => l.segments ?? []).filter((s) => s.kind === 'text');
24
+ const build = (md, extra = {}, numbered = true) => heading(buildDocument({ markdown: `${md}\n\n正文。` }, config(extra, numbered)));
25
+ describe('a heading number and the title\'s first span (#638)', () => {
26
+ const cases = [
27
+ ['pinyin ruby, horizontal', '# {寓言|yù|yán}兩則', {}],
28
+ ['pinyin ruby, vertical', '# {寓言|yù|yán}兩則', vertical],
29
+ ['zhuyin, horizontal (right of the base)', '# {寓言|ㄩˋ|ㄧㄢˊ}兩則', {}],
30
+ ['zhuyin, vertical', '# {寓言|ㄩˋ|ㄧㄢˊ}兩則', vertical],
31
+ ];
32
+ for (const [name, md, extra] of cases) {
33
+ it(`keeps a ruby base to its own character: ${name}`, () => {
34
+ const segs = segmentsOf(build(md, extra));
35
+ expect(segs.slice(0, 3).map((s) => s.text).join('')).toBe('第1課');
36
+ const firstRuby = segs.find((s) => s.ruby);
37
+ expect(firstRuby.text).toBe('寓');
38
+ // The base is one character wide, as in the same title unnumbered.
39
+ const unnumbered = segmentsOf(build(md, extra, false)).find((s) => s.ruby);
40
+ expect(unnumbered.text).toBe('寓');
41
+ expect(firstRuby.ruby.baseWidth).toBe(unnumbered.ruby.baseWidth);
42
+ expect(firstRuby.ruby.position).toBe(unnumbered.ruby.position);
43
+ // No reading lands on the number.
44
+ expect(segs.filter((s) => s.text.includes('第') || s.text.includes('課')).every((s) => !s.ruby)).toBe(true);
45
+ });
46
+ }
47
+ it('zhuyin stands right of the base in horizontal text', () => {
48
+ const seg = segmentsOf(build('# {寓言|ㄩˋ|ㄧㄢˊ}兩則')).find((s) => s.ruby);
49
+ expect(seg.ruby.position).toBe('right');
50
+ });
51
+ const marked = [
52
+ ['emphasis dots', '# :dots[文字]之美', {}, (s) => !!s.cjkMarks],
53
+ ['emphasis dots', '# :dots[文字]之美', vertical, (s) => !!s.cjkMarks],
54
+ ['a book title', '# :book[石頭記]考', {}, (s) => !!s.cjkMarks],
55
+ ['a book title', '# :book[石頭記]考', vertical, (s) => !!s.cjkMarks],
56
+ ['a proper name', '# :name[賈寶玉]傳', {}, (s) => !!s.cjkMarks],
57
+ ['a proper name', '# :name[賈寶玉]傳', vertical, (s) => !!s.cjkMarks],
58
+ ['a warichu', '# :warichu[甲戌側批]正文', {}, (s) => !!s.warichu],
59
+ ['a warichu', '# :warichu[甲戌側批]正文', vertical, (s) => !!s.warichu],
60
+ ['a tcy cell', '# :tcy[12]月', vertical, (s) => !!s.tcy],
61
+ // Segments carry an isolate's language in Japanese text.
62
+ ['a language tag', '# :ltr[Moby Dick]{lang=en}を読む', { locale: 'ja' }, (s) => s.lang === 'en'],
63
+ ['a language tag', '# :ltr[Moby Dick]{lang=en}を読む', { ...vertical, locale: 'ja' }, (s) => s.lang === 'en'],
64
+ ];
65
+ for (const [name, md, extra, carries] of marked) {
66
+ it(`leaves the number unmarked before ${name} (${extra.layout?.writingMode === 'vertical-rl' ? 'vertical' : 'horizontal'})`, () => {
67
+ const segs = segmentsOf(build(md, extra));
68
+ // The leading segments that hold the number: 第1課, nothing else.
69
+ const numberSegs = [];
70
+ for (const s of segs) {
71
+ if (numberSegs.map((n) => n.text).join('').replace(/\s/g, '').length >= 3)
72
+ break;
73
+ numberSegs.push(s);
74
+ }
75
+ expect(numberSegs.map((s) => s.text).join('').replace(/\s/g, '')).toBe('第1課');
76
+ for (const s of numberSegs) {
77
+ expect(s.ruby).toBeUndefined();
78
+ expect(s.cjkMarks).toBeUndefined();
79
+ expect(s.warichu).toBeUndefined();
80
+ expect(s.tcy).toBeUndefined();
81
+ expect(s.lang).toBeUndefined();
82
+ }
83
+ // The annotated run keeps its mark.
84
+ expect(segs.slice(numberSegs.length).some(carries)).toBe(true);
85
+ });
86
+ }
87
+ it('keeps a plain Latin title joined to its number, as before', () => {
88
+ const doc = buildDocument({ markdown: '# Introduction\n\nText.' }, config({ locale: 'en', headings: { levels: [{ level: 1, numberingTemplate: '{1}.' }] } }));
89
+ const block = heading(doc);
90
+ expect(block.numberPrefix).toBe('1.');
91
+ expect(block.lines.map((l) => l.text).join('')).toBe('1. Introduction');
92
+ const segs = block.lines.flatMap((l) => l.segments ?? []);
93
+ expect(segs.map((s) => [s.kind, s.text, s.width])).toEqual([['text', '1.', 18], ['space', ' ', 4.5], ['text', 'Introduction', 108]]);
94
+ });
95
+ });
96
+ //# sourceMappingURL=headingNumberSpans.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headingNumberSpans.test.js","sourceRoot":"","sources":["../../src/__tests__/headingNumberSpans.test.ts"],"names":[],"mappings":"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"}
@@ -141,8 +141,8 @@ describe('maths in configurations written before postext 1.5 (EF-75)', () => {
141
141
  });
142
142
  it('writes bundles for today\'s rules, which read back unpinned', async () => {
143
143
  const { manifest, bytes } = await createBundle({ name: 'Now', chapters: [{ markdown: CHAPTER }], config: BODY });
144
- expect(CONFIG_VERSION).toBe(10);
145
- expect(manifest.configVersion).toBe(10);
144
+ expect(CONFIG_VERSION).toBe(11);
145
+ expect(manifest.configVersion).toBe(11);
146
146
  const again = await openBundle(bytes);
147
147
  expect(again.config.math).toBeUndefined();
148
148
  // …and a 1.4 bundle, opened and written again, is read back as it was
@@ -141,4 +141,211 @@ describe('a closing page cut level keeps its floats (#505)', () => {
141
141
  expect(floatOf(doc, 'v').page.index).toBe(0);
142
142
  });
143
143
  });
144
+ describe('floats under a page-span opener (#639)', () => {
145
+ const W = (740 - 3 * 12) / 4;
146
+ const X = (i) => 30 + i * (W + 12);
147
+ const LINE = 11;
148
+ const headings = (span, extra = {}) => ({
149
+ headings: { levels: [{ level: 1, span, breakBefore: { enabled: false } }] },
150
+ calloutStyles: [{ id: 'note' }],
151
+ ...extra,
152
+ });
153
+ const box = (attrs = '', text = 'Box text.') => `:::callout{type="note" placement="top"${attrs}}\n${text}\n:::`;
154
+ const frameOf = (doc) => (doc.pages[0].floats ?? []).find((b) => b.type === 'callout');
155
+ const opener = (doc) => doc.pages[0].columns[0].blocks[0];
156
+ /** The y the first block after the opener starts at in column `i` (the
157
+ * first block of any other column). */
158
+ const textTop = (doc, i) => textColumns(doc.pages[0])[i].blocks[i === 0 ? 1 : 0].bbox.y;
159
+ /** The grid-rounded band a top float `height` px tall takes. */
160
+ const band = (height) => Math.ceil((height + LINE - 0.01) / LINE) * LINE;
161
+ it('a box across two columns heads columns 1 and 2 under the opener', () => {
162
+ const doc = build(`# Opener\n\n${box(' columns="2"')}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')));
163
+ const frame = frameOf(doc);
164
+ const head = textColumns(doc.pages[0])[2].bbox.y;
165
+ expect(frame.bbox.x).toBeCloseTo(X(0), 3);
166
+ expect(frame.bbox.width).toBeCloseTo(2 * W + 12, 3);
167
+ // Under the opener's band, level with the heads of the other columns.
168
+ expect(frame.bbox.y).toBeGreaterThanOrEqual(opener(doc).bbox.y + opener(doc).bbox.height - 0.01);
169
+ expect(frame.bbox.y).toBeCloseTo(head, 3);
170
+ // The text of both columns starts under the box, on the same line.
171
+ expect(textTop(doc, 0)).toBeCloseTo(frame.bbox.y + band(frame.bbox.height), 3);
172
+ expect(textTop(doc, 1)).toBeCloseTo(textTop(doc, 0), 3);
173
+ expect(textTop(doc, 2)).toBeCloseTo(head, 3);
174
+ // The opener's column keeps its box (the opener stands in it) and
175
+ // records where the float's band ends; column 2 starts there.
176
+ const cols = textColumns(doc.pages[0]);
177
+ expect(cols[0].bbox.y).toBeCloseTo(opener(doc).bbox.y, 3);
178
+ expect(cols[0].headFloatFoot).toBeCloseTo(textTop(doc, 0), 3);
179
+ expect(cols[1].bbox.y).toBeCloseTo(cols[0].headFloatFoot, 3);
180
+ expect(cols[1].headFloatFoot).toBeUndefined();
181
+ });
182
+ it('the column rule never runs through a float under the opener', () => {
183
+ const box2 = build(`# Opener\n\n${box(' columns="2"')}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')));
184
+ const frame = frameOf(box2);
185
+ const rules = columnRuleSegments(box2.pages[0].columns);
186
+ // Gutter 1|2 starts under the box; gutter 2|3 runs beside it from the
187
+ // band's head, where column 3 starts; gutter 3|4 too.
188
+ expect(rules).toHaveLength(3);
189
+ expect(rules[0].top).toBeCloseTo(frame.bbox.y + band(frame.bbox.height), 3);
190
+ expect(rules[1].top).toBeCloseTo(frame.bbox.y, 3);
191
+ expect(rules[1].x).toBeGreaterThan(frame.bbox.x + frame.bbox.width);
192
+ expect(rules[2].top).toBeCloseTo(frame.bbox.y, 3);
193
+ // A one-column box: the rule beside it runs the length of column 2,
194
+ // right of the box.
195
+ const box1 = build(`# Opener\n\n${box()}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')));
196
+ const one = frameOf(box1);
197
+ const beside = columnRuleSegments(box1.pages[0].columns)[0];
198
+ expect(beside.top).toBeCloseTo(one.bbox.y, 3);
199
+ expect(beside.x).toBeGreaterThan(one.bbox.x + one.bbox.width);
200
+ });
201
+ it('a figure across two columns embedded after the opener does too', () => {
202
+ const doc = build(`# Opener\n\n::resource{id="a"}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')), [picture('a', { position: 'top', columns: 2 })]);
203
+ const { page, f } = floatOf(doc, 'a');
204
+ expect(page.index).toBe(0);
205
+ expect(f.bbox.x).toBeCloseTo(X(0), 3);
206
+ expect(f.bbox.width).toBeCloseTo(2 * W + 12, 3);
207
+ expect(f.bbox.y).toBeCloseTo(textColumns(page)[2].bbox.y, 3);
208
+ expect(textTop(doc, 0)).toBeCloseTo(f.bbox.y + band(f.bbox.height), 3);
209
+ expect(textTop(doc, 1)).toBeCloseTo(textTop(doc, 0), 3);
210
+ });
211
+ it('a one-column box heads column 1, and a second one stacks under it', () => {
212
+ const one = build(`# Opener\n\n${box()}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')));
213
+ const frame = frameOf(one);
214
+ expect(frame.bbox.x).toBeCloseTo(X(0), 3);
215
+ expect(frame.bbox.width).toBeCloseTo(W, 3);
216
+ expect(frame.bbox.y).toBeCloseTo(textColumns(one.pages[0])[1].bbox.y, 3);
217
+ expect(textTop(one, 0)).toBeCloseTo(frame.bbox.y + band(frame.bbox.height), 3);
218
+ // Column 2 starts at its head, as before.
219
+ expect(textTop(one, 1)).toBeCloseTo(frame.bbox.y, 3);
220
+ const two = build(`# Opener\n\n${box()}\n\n${box('', 'Second box.')}\n\n${BODY}\n\n${BODY}`, config(4, headings('page')));
221
+ const frames = two.pages[0].floats.filter((b) => b.type === 'callout');
222
+ expect(frames.map((b) => Math.round(b.bbox.x))).toEqual([Math.round(X(0)), Math.round(X(0))]);
223
+ expect(frames[1].bbox.y).toBeCloseTo(frames[0].bbox.y + band(frames[0].bbox.height), 3);
224
+ expect(textTop(two, 0)).toBeCloseTo(frames[1].bbox.y + band(frames[1].bbox.height), 3);
225
+ });
226
+ it('a heading right under the float starts there, with no space above it', () => {
227
+ const cfg = config(4, { headings: { levels: [{ level: 1, span: 'page', breakBefore: { enabled: false } }, { level: 2, marginTop: pt(22) }] }, calloutStyles: [{ id: 'note' }] });
228
+ const doc = build(`# Opener\n\n${box()}\n\n## Sub\n\n${BODY}\n\n${BODY}`, cfg);
229
+ const frame = frameOf(doc);
230
+ expect(textTop(doc, 0)).toBeCloseTo(frame.bbox.y + band(frame.bbox.height), 3);
231
+ });
232
+ it('a heading with no room left under the float moves on alone: the opener stays', () => {
233
+ // The box takes all but a line or two of column 1: the heading and
234
+ // the lines kept with it open column 2, and the opener is not taken
235
+ // along as a heading stranded at a column's foot would be.
236
+ const tall = Array.from({ length: 78 }, (_, i) => `Line ${i + 1}.`).join('\n\n');
237
+ const cfg = config(4, { headings: { levels: [{ level: 1, span: 'page', breakBefore: { enabled: false } }] }, calloutStyles: [{ id: 'note', padding: { top: pt(0), right: pt(0), bottom: pt(0), left: pt(0) } }] });
238
+ const doc = build(`# Opener\n\n${box('', tall)}\n\n## Sub\n\n${BODY}\n\n${BODY}`, cfg);
239
+ const cols = textColumns(doc.pages[0]);
240
+ const frame = frameOf(doc);
241
+ expect(doc.pages[0].columns[0].blocks[0]).toBe(opener(doc));
242
+ expect(opener(doc).headingLevel).toBe(1);
243
+ expect(frame.bbox.x).toBeCloseTo(X(0), 3);
244
+ expect(cols[0].bbox.y + cols[0].bbox.height - (frame.bbox.y + frame.bbox.height)).toBeLessThan(5 * LINE);
245
+ // Nothing fits under the box; `## Sub` heads column 2.
246
+ expect(cols[0].blocks).toHaveLength(1);
247
+ expect(cols[1].blocks[0].type).toBe('heading');
248
+ expect(cols[1].blocks[0].headingLevel).toBe(2);
249
+ expect(doc.blocks.filter((b) => b.type === 'heading' && b.headingLevel === 1)).toHaveLength(1);
250
+ });
251
+ it('a closing page cut level keeps the float under its opener', () => {
252
+ // The level cut of the closing band goes no higher than the float's
253
+ // band, as for a float heading an empty column: cut higher, the capped
254
+ // pass would send the box to a page of its own.
255
+ const tall = Array.from({ length: 40 }, (_, i) => `Line ${i + 1}.`).join('\n\n');
256
+ const cfg = config(4, { headings: { levels: [{ level: 1, span: 'page', breakBefore: { enabled: false } }] }, calloutStyles: [{ id: 'note', padding: { top: pt(0), right: pt(0), bottom: pt(0), left: pt(0) } }] });
257
+ const doc = build(`# Opener\n\n${box('', tall)}\n\n${BODY}`, cfg);
258
+ expect(doc.pages).toHaveLength(1);
259
+ const frame = frameOf(doc);
260
+ expect(frame.bbox.x).toBeCloseTo(X(0), 3);
261
+ const cols = textColumns(doc.pages[0]);
262
+ // The band is cut level at or under the float's band.
263
+ expect(cols.every((c) => c.trailingCap)).toBe(true);
264
+ const cut = cols[1].bbox.y + cols[1].bbox.height;
265
+ expect(cut).toBeGreaterThanOrEqual(cols[0].headFloatFoot - 0.01);
266
+ for (const c of cols.slice(1))
267
+ expect(c.bbox.y + c.bbox.height).toBeCloseTo(cut, 3);
268
+ });
269
+ it('an opener set mid-page offers the head of its own column too', () => {
270
+ const cfg = config(4, {
271
+ headings: { levels: [{ level: 1, span: 'page', breakBefore: { enabled: false } }, { level: 2, span: 'page', spanBreak: false }] },
272
+ calloutStyles: [{ id: 'note' }],
273
+ });
274
+ const doc = build(`# Opener\n\n${BODY}\n\n## Mid\n\n${box(' columns="2"')}\n\n${BODY}`, cfg);
275
+ const mid = doc.blocks.find((b) => b.type === 'heading' && b.headingLevel === 2);
276
+ const frame = frameOf(doc);
277
+ expect(mid.pageIndex).toBe(0);
278
+ expect(mid.bbox.y).toBeGreaterThan(opener(doc).bbox.y + 100);
279
+ expect(frame.bbox.x).toBeCloseTo(X(0), 3);
280
+ expect(frame.bbox.y).toBeGreaterThanOrEqual(mid.bbox.y + mid.bbox.height - 0.01);
281
+ const cols = doc.pages[0].columns.filter((c) => (c.band ?? 0) === (doc.pages[0].columns[mid.columnIndex].band ?? 0));
282
+ expect(frame.bbox.y).toBeCloseTo(cols[2].bbox.y, 3);
283
+ });
284
+ it('text wraps round a narrow box under the opener as at any column head', () => {
285
+ const two = { ...config(4, headings('page')), layout: { layoutType: 'double' } };
286
+ const doc = build(`# Opener\n\n${box(' wrap="left" width="0.4"', 'Wrapped box of a few words here that takes some lines.')}\n\n${BODY}\n\n${BODY}`, two);
287
+ const frame = frameOf(doc);
288
+ const col = doc.pages[0].columns[0];
289
+ expect(frame.bbox.x).toBeCloseTo(col.bbox.x, 3);
290
+ expect(doc.contentWarnings ?? []).toEqual([]);
291
+ // The paragraph starts level with the box and its first lines run
292
+ // beside it; the lines under it take the whole measure.
293
+ const para = col.blocks[1];
294
+ expect(para.bbox.y).toBeCloseTo(frame.bbox.y, 3);
295
+ expect(para.lines[0].bbox.x).toBeGreaterThan(frame.bbox.x + frame.bbox.width - para.bbox.x - 0.01);
296
+ expect(para.lines[0].bbox.width).toBeLessThan(col.bbox.width - frame.bbox.width);
297
+ expect(para.lines[para.lines.length - 2].bbox.width).toBeGreaterThan(col.bbox.width - 40);
298
+ });
299
+ it('a float cited in the text still follows its citing line', () => {
300
+ // The paragraph that cites it is set first (a float never stands above
301
+ // the line that cites it), so column 1 has no head left.
302
+ const doc = build(`# Opener\n\nSee :ref{id="a"}. ${BODY}\n\n${BODY}`, config(4, headings('page')), [picture('a', { position: 'top', columns: 2 })]);
303
+ expect(floatOf(doc, 'a').f.bbox.x).toBeGreaterThan(X(1) - 0.5);
304
+ expect(textTop(doc, 0)).toBeCloseTo(textColumns(doc.pages[0])[1].bbox.y, 3);
305
+ });
306
+ it("a span: 'column' heading keeps its column: the float lands from column 2, as before", () => {
307
+ for (const markdown of [
308
+ `# Opener\n\n${box(' columns="2"')}\n\n${BODY}\n\n${BODY}`,
309
+ `# Opener\n\n${box()}\n\n${BODY}\n\n${BODY}`,
310
+ ]) {
311
+ const now = build(markdown, config(4, headings('column')));
312
+ const off = build(markdown, config(4, headings('column', { layout: { layoutType: 'multiple', columnCount: 4, gutterWidth: pt(12), columnRule: { enabled: true }, floatsUnderOpener: false } })));
313
+ expect(frameOf(now).bbox.x).toBeCloseTo(X(1), 3);
314
+ expect(frameOf(now).bbox.y).toBeCloseTo(30, 3);
315
+ expect(JSON.stringify(now.pages) === JSON.stringify(off.pages)).toBe(true);
316
+ }
317
+ const fig = build(`# Opener\n\n::resource{id="a"}\n\n${BODY}\n\n${BODY}`, config(4, headings('column')), [picture('a', { position: 'top', columns: 2 })]);
318
+ expect(floatOf(fig, 'a').f.bbox.x).toBeCloseTo(X(1), 3);
319
+ });
320
+ it('a single text column under its opener is unchanged', () => {
321
+ const markdown = `# Opener\n\n${box()}\n\n${BODY}\n\n${BODY}\n\n${BODY}`;
322
+ // (A side column that only takes floats is no text column.)
323
+ for (const layout of [{ layoutType: 'single' }, { layoutType: 'oneAndHalf', sideColumnRole: 'floats' }]) {
324
+ const now = build(markdown, { ...config(4, headings('page')), layout });
325
+ const off = build(markdown, { ...config(4, headings('page')), layout: { ...layout, floatsUnderOpener: false } });
326
+ expect(JSON.stringify(now.pages) === JSON.stringify(off.pages)).toBe(true);
327
+ expect(frameOf(now)).toBeUndefined();
328
+ }
329
+ });
330
+ it('layout.floatsUnderOpener: false keeps the slots of postext 1.24', () => {
331
+ const off = (span) => config(4, headings(span, { layout: { layoutType: 'multiple', columnCount: 4, gutterWidth: pt(12), columnRule: { enabled: true }, floatsUnderOpener: false } }));
332
+ const two = build(`# Opener\n\n${box(' columns="2"')}\n\n${BODY}\n\n${BODY}`, off('page'));
333
+ expect(frameOf(two).bbox.x).toBeCloseTo(X(1), 3);
334
+ expect(textTop(two, 0)).toBeCloseTo(textColumns(two.pages[0])[3].bbox.y, 3);
335
+ const one = build(`# Opener\n\n${box()}\n\n${BODY}\n\n${BODY}`, off('page'));
336
+ expect(frameOf(one).bbox.x).toBeCloseTo(X(1), 3);
337
+ const fig = build(`# Opener\n\n::resource{id="a"}\n\n${BODY}\n\n${BODY}`, off('page'), [picture('a', { position: 'top', columns: 2 })]);
338
+ expect(floatOf(fig, 'a').f.bbox.x).toBeCloseTo(X(1), 3);
339
+ });
340
+ it('does the same in vertical text', () => {
341
+ const cfg = { ...config(4, headings('page')), layout: { layoutType: 'multiple', columnCount: 4, gutterWidth: pt(12), writingMode: 'vertical-rl' } };
342
+ const doc = build(`# Opener\n\n${box(' columns="2"')}\n\n${BODY}\n\n${BODY}`, cfg);
343
+ const frame = frameOf(doc);
344
+ const cols = textColumns(doc.pages[0]);
345
+ expect(frame.bbox.x).toBeCloseTo(cols[0].bbox.x, 3);
346
+ expect(frame.bbox.width).toBeCloseTo(cols[1].bbox.x + cols[1].bbox.width - cols[0].bbox.x, 3);
347
+ expect(frame.bbox.y).toBeCloseTo(cols[2].bbox.y, 3);
348
+ expect(textTop(doc, 0)).toBeCloseTo(cols[1].bbox.y, 3);
349
+ });
350
+ });
144
351
  //# sourceMappingURL=multipleColumns.test.js.map