postext 1.22.3 → 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 (427) 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.d.ts +2 -0
  12. package/dist/__tests__/codeBlocks.test.d.ts.map +1 -0
  13. package/dist/__tests__/codeBlocks.test.js +550 -0
  14. package/dist/__tests__/codeBlocks.test.js.map +1 -0
  15. package/dist/__tests__/design/designTextOverflow.test.d.ts +2 -0
  16. package/dist/__tests__/design/designTextOverflow.test.d.ts.map +1 -0
  17. package/dist/__tests__/design/designTextOverflow.test.js +102 -0
  18. package/dist/__tests__/design/designTextOverflow.test.js.map +1 -0
  19. package/dist/__tests__/exports.test.js +30 -0
  20. package/dist/__tests__/exports.test.js.map +1 -1
  21. package/dist/__tests__/frontmatterInvalid.test.d.ts +2 -0
  22. package/dist/__tests__/frontmatterInvalid.test.d.ts.map +1 -0
  23. package/dist/__tests__/frontmatterInvalid.test.js +101 -0
  24. package/dist/__tests__/frontmatterInvalid.test.js.map +1 -0
  25. package/dist/__tests__/hardBreaks.test.d.ts +2 -0
  26. package/dist/__tests__/hardBreaks.test.d.ts.map +1 -0
  27. package/dist/__tests__/hardBreaks.test.js +226 -0
  28. package/dist/__tests__/hardBreaks.test.js.map +1 -0
  29. package/dist/__tests__/headingFirstLineIndent.test.d.ts +2 -0
  30. package/dist/__tests__/headingFirstLineIndent.test.d.ts.map +1 -0
  31. package/dist/__tests__/headingFirstLineIndent.test.js +185 -0
  32. package/dist/__tests__/headingFirstLineIndent.test.js.map +1 -0
  33. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  34. package/dist/__tests__/headingInlineMarks.test.js.map +1 -1
  35. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  36. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  37. package/dist/__tests__/lineNumbers.test.d.ts +2 -0
  38. package/dist/__tests__/lineNumbers.test.d.ts.map +1 -0
  39. package/dist/__tests__/lineNumbers.test.js +304 -0
  40. package/dist/__tests__/lineNumbers.test.js.map +1 -0
  41. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  42. package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
  43. package/dist/__tests__/paragraphDropCap.test.d.ts +2 -0
  44. package/dist/__tests__/paragraphDropCap.test.d.ts.map +1 -0
  45. package/dist/__tests__/paragraphDropCap.test.js +442 -0
  46. package/dist/__tests__/paragraphDropCap.test.js.map +1 -0
  47. package/dist/__tests__/paragraphStyleIndent.test.js +26 -2
  48. package/dist/__tests__/paragraphStyleIndent.test.js.map +1 -1
  49. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts +2 -0
  50. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts.map +1 -0
  51. package/dist/__tests__/pipeline/bitmapResolution.test.js +139 -0
  52. package/dist/__tests__/pipeline/bitmapResolution.test.js.map +1 -0
  53. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  54. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  56. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
  57. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  58. package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
  59. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  60. package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
  61. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  62. package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
  63. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts +2 -0
  64. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts.map +1 -0
  65. package/dist/__tests__/pipeline/designTextTruncated.test.js +116 -0
  66. package/dist/__tests__/pipeline/designTextTruncated.test.js.map +1 -0
  67. package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
  68. package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
  69. package/dist/__tests__/pipeline/floatShrink.test.d.ts +2 -0
  70. package/dist/__tests__/pipeline/floatShrink.test.d.ts.map +1 -0
  71. package/dist/__tests__/pipeline/floatShrink.test.js +298 -0
  72. package/dist/__tests__/pipeline/floatShrink.test.js.map +1 -0
  73. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  74. package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
  75. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  76. package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
  77. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  78. package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
  79. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +7 -1
  80. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
  81. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  82. package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
  83. package/dist/__tests__/pipeline/textWrap.test.d.ts +2 -0
  84. package/dist/__tests__/pipeline/textWrap.test.d.ts.map +1 -0
  85. package/dist/__tests__/pipeline/textWrap.test.js +453 -0
  86. package/dist/__tests__/pipeline/textWrap.test.js.map +1 -0
  87. package/dist/__tests__/preflight.test.js +30 -1
  88. package/dist/__tests__/preflight.test.js.map +1 -1
  89. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts +2 -0
  90. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts.map +1 -0
  91. package/dist/__tests__/presets/showcaseDesignOverflow.test.js +58 -0
  92. package/dist/__tests__/presets/showcaseDesignOverflow.test.js.map +1 -0
  93. package/dist/__tests__/tabStops.test.d.ts +2 -0
  94. package/dist/__tests__/tabStops.test.d.ts.map +1 -0
  95. package/dist/__tests__/tabStops.test.js +394 -0
  96. package/dist/__tests__/tabStops.test.js.map +1 -0
  97. package/dist/__tests__/table/booktabs.test.d.ts +2 -0
  98. package/dist/__tests__/table/booktabs.test.d.ts.map +1 -0
  99. package/dist/__tests__/table/booktabs.test.js +290 -0
  100. package/dist/__tests__/table/booktabs.test.js.map +1 -0
  101. package/dist/__tests__/textWrapMeasure.test.d.ts +2 -0
  102. package/dist/__tests__/textWrapMeasure.test.d.ts.map +1 -0
  103. package/dist/__tests__/textWrapMeasure.test.js +162 -0
  104. package/dist/__tests__/textWrapMeasure.test.js.map +1 -0
  105. package/dist/__tests__/verseLines.test.d.ts +2 -0
  106. package/dist/__tests__/verseLines.test.d.ts.map +1 -0
  107. package/dist/__tests__/verseLines.test.js +505 -0
  108. package/dist/__tests__/verseLines.test.js.map +1 -0
  109. package/dist/bitmapResolution.d.ts +42 -0
  110. package/dist/bitmapResolution.d.ts.map +1 -0
  111. package/dist/bitmapResolution.js +82 -0
  112. package/dist/bitmapResolution.js.map +1 -0
  113. package/dist/bundle/codec.d.ts +9 -2
  114. package/dist/bundle/codec.d.ts.map +1 -1
  115. package/dist/bundle/codec.js +24 -2
  116. package/dist/bundle/codec.js.map +1 -1
  117. package/dist/bundle/configVersion.d.ts +119 -8
  118. package/dist/bundle/configVersion.d.ts.map +1 -1
  119. package/dist/bundle/configVersion.js +395 -6
  120. package/dist/bundle/configVersion.js.map +1 -1
  121. package/dist/bundle/index.d.ts +3 -3
  122. package/dist/bundle/index.d.ts.map +1 -1
  123. package/dist/bundle/index.js +2 -2
  124. package/dist/bundle/index.js.map +1 -1
  125. package/dist/bundle/manifest.d.ts +12 -2
  126. package/dist/bundle/manifest.d.ts.map +1 -1
  127. package/dist/bundle/manifest.js +132 -6
  128. package/dist/bundle/manifest.js.map +1 -1
  129. package/dist/bundle/types.d.ts +28 -2
  130. package/dist/bundle/types.d.ts.map +1 -1
  131. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  132. package/dist/canvas-backend/blockRender.js +45 -9
  133. package/dist/canvas-backend/blockRender.js.map +1 -1
  134. package/dist/canvas-backend/index.d.ts.map +1 -1
  135. package/dist/canvas-backend/index.js +3 -0
  136. package/dist/canvas-backend/index.js.map +1 -1
  137. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  138. package/dist/canvas-backend/renderResourceBlock.js +15 -1
  139. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  140. package/dist/cjkMarks.js +1 -1
  141. package/dist/cjkMarks.js.map +1 -1
  142. package/dist/code/highlight.d.ts +34 -0
  143. package/dist/code/highlight.d.ts.map +1 -0
  144. package/dist/code/highlight.js +406 -0
  145. package/dist/code/highlight.js.map +1 -0
  146. package/dist/configWarnings.d.ts.map +1 -1
  147. package/dist/configWarnings.js +220 -4
  148. package/dist/configWarnings.js.map +1 -1
  149. package/dist/defaults/bodyText.d.ts.map +1 -1
  150. package/dist/defaults/bodyText.js +25 -0
  151. package/dist/defaults/bodyText.js.map +1 -1
  152. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  153. package/dist/defaults/calloutStyles.js +7 -0
  154. package/dist/defaults/calloutStyles.js.map +1 -1
  155. package/dist/defaults/codeStyle.d.ts +29 -0
  156. package/dist/defaults/codeStyle.d.ts.map +1 -0
  157. package/dist/defaults/codeStyle.js +284 -0
  158. package/dist/defaults/codeStyle.js.map +1 -0
  159. package/dist/defaults/dropCap.d.ts +49 -0
  160. package/dist/defaults/dropCap.d.ts.map +1 -0
  161. package/dist/defaults/dropCap.js +66 -0
  162. package/dist/defaults/dropCap.js.map +1 -0
  163. package/dist/defaults/headerFooter.d.ts +21 -6
  164. package/dist/defaults/headerFooter.d.ts.map +1 -1
  165. package/dist/defaults/headerFooter.js +37 -14
  166. package/dist/defaults/headerFooter.js.map +1 -1
  167. package/dist/defaults/headings.d.ts +5 -4
  168. package/dist/defaults/headings.d.ts.map +1 -1
  169. package/dist/defaults/headings.js +26 -4
  170. package/dist/defaults/headings.js.map +1 -1
  171. package/dist/defaults/index.d.ts +4 -1
  172. package/dist/defaults/index.d.ts.map +1 -1
  173. package/dist/defaults/index.js +20 -1
  174. package/dist/defaults/index.js.map +1 -1
  175. package/dist/defaults/layout.d.ts +30 -1
  176. package/dist/defaults/layout.d.ts.map +1 -1
  177. package/dist/defaults/layout.js +105 -1
  178. package/dist/defaults/layout.js.map +1 -1
  179. package/dist/defaults/lineNumbers.d.ts +19 -0
  180. package/dist/defaults/lineNumbers.d.ts.map +1 -0
  181. package/dist/defaults/lineNumbers.js +101 -0
  182. package/dist/defaults/lineNumbers.js.map +1 -0
  183. package/dist/defaults/paragraphStyles.d.ts.map +1 -1
  184. package/dist/defaults/paragraphStyles.js +20 -0
  185. package/dist/defaults/paragraphStyles.js.map +1 -1
  186. package/dist/defaults/parts.js +4 -4
  187. package/dist/defaults/parts.js.map +1 -1
  188. package/dist/defaults/tabStops.d.ts +29 -0
  189. package/dist/defaults/tabStops.d.ts.map +1 -0
  190. package/dist/defaults/tabStops.js +94 -0
  191. package/dist/defaults/tabStops.js.map +1 -0
  192. package/dist/defaults/tableStyle.d.ts.map +1 -1
  193. package/dist/defaults/tableStyle.js +44 -0
  194. package/dist/defaults/tableStyle.js.map +1 -1
  195. package/dist/defaults/toc.js +2 -2
  196. package/dist/defaults/verse.d.ts +11 -0
  197. package/dist/defaults/verse.d.ts.map +1 -0
  198. package/dist/defaults/verse.js +57 -0
  199. package/dist/defaults/verse.js.map +1 -0
  200. package/dist/design/layout.d.ts +15 -1
  201. package/dist/design/layout.d.ts.map +1 -1
  202. package/dist/design/layout.js +28 -4
  203. package/dist/design/layout.js.map +1 -1
  204. package/dist/fonts/usage.d.ts +7 -0
  205. package/dist/fonts/usage.d.ts.map +1 -1
  206. package/dist/fonts/usage.js +71 -0
  207. package/dist/fonts/usage.js.map +1 -1
  208. package/dist/frontmatter.d.ts +20 -0
  209. package/dist/frontmatter.d.ts.map +1 -1
  210. package/dist/frontmatter.js +69 -3
  211. package/dist/frontmatter.js.map +1 -1
  212. package/dist/html-backend.d.ts.map +1 -1
  213. package/dist/html-backend.js +107 -15
  214. package/dist/html-backend.js.map +1 -1
  215. package/dist/index.d.ts +18 -10
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +9 -4
  218. package/dist/index.js.map +1 -1
  219. package/dist/measure/bidiLines.d.ts +4 -3
  220. package/dist/measure/bidiLines.d.ts.map +1 -1
  221. package/dist/measure/bidiLines.js +14 -9
  222. package/dist/measure/bidiLines.js.map +1 -1
  223. package/dist/measure/cache.js +2 -2
  224. package/dist/measure/cache.js.map +1 -1
  225. package/dist/measure/cjkCompose.d.ts.map +1 -1
  226. package/dist/measure/cjkCompose.js +10 -6
  227. package/dist/measure/cjkCompose.js.map +1 -1
  228. package/dist/measure/hardBreaks.d.ts +46 -0
  229. package/dist/measure/hardBreaks.d.ts.map +1 -0
  230. package/dist/measure/hardBreaks.js +228 -0
  231. package/dist/measure/hardBreaks.js.map +1 -0
  232. package/dist/measure/index.d.ts +4 -3
  233. package/dist/measure/index.d.ts.map +1 -1
  234. package/dist/measure/index.js +5 -4
  235. package/dist/measure/index.js.map +1 -1
  236. package/dist/measure/leader.d.ts +20 -0
  237. package/dist/measure/leader.d.ts.map +1 -0
  238. package/dist/measure/leader.js +46 -0
  239. package/dist/measure/leader.js.map +1 -0
  240. package/dist/measure/links.js +1 -1
  241. package/dist/measure/links.js.map +1 -1
  242. package/dist/measure/plain.d.ts.map +1 -1
  243. package/dist/measure/plain.js +23 -26
  244. package/dist/measure/plain.js.map +1 -1
  245. package/dist/measure/rich.d.ts +19 -0
  246. package/dist/measure/rich.d.ts.map +1 -1
  247. package/dist/measure/rich.js +215 -39
  248. package/dist/measure/rich.js.map +1 -1
  249. package/dist/measure/tabs.d.ts +103 -0
  250. package/dist/measure/tabs.d.ts.map +1 -0
  251. package/dist/measure/tabs.js +123 -0
  252. package/dist/measure/tabs.js.map +1 -0
  253. package/dist/measure/types.d.ts +72 -2
  254. package/dist/measure/types.d.ts.map +1 -1
  255. package/dist/measure/types.js +87 -3
  256. package/dist/measure/types.js.map +1 -1
  257. package/dist/parse/blockParser.d.ts +13 -6
  258. package/dist/parse/blockParser.d.ts.map +1 -1
  259. package/dist/parse/blockParser.js +457 -87
  260. package/dist/parse/blockParser.js.map +1 -1
  261. package/dist/parse/codeFence.d.ts +18 -0
  262. package/dist/parse/codeFence.d.ts.map +1 -0
  263. package/dist/parse/codeFence.js +52 -0
  264. package/dist/parse/codeFence.js.map +1 -0
  265. package/dist/parse/index.d.ts +1 -1
  266. package/dist/parse/index.d.ts.map +1 -1
  267. package/dist/parse/index.js.map +1 -1
  268. package/dist/parse/indexMarks.d.ts +3 -1
  269. package/dist/parse/indexMarks.d.ts.map +1 -1
  270. package/dist/parse/indexMarks.js +22 -2
  271. package/dist/parse/indexMarks.js.map +1 -1
  272. package/dist/parse/inlineFormatting.d.ts +50 -0
  273. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  274. package/dist/parse/inlineFormatting.js +94 -0
  275. package/dist/parse/inlineFormatting.js.map +1 -1
  276. package/dist/parse/sourceMapping.d.ts.map +1 -1
  277. package/dist/parse/sourceMapping.js +65 -1
  278. package/dist/parse/sourceMapping.js.map +1 -1
  279. package/dist/parse/types.d.ts +144 -9
  280. package/dist/parse/types.d.ts.map +1 -1
  281. package/dist/pipeline/build.d.ts.map +1 -1
  282. package/dist/pipeline/build.js +629 -47
  283. package/dist/pipeline/build.js.map +1 -1
  284. package/dist/pipeline/buildBlockKind.d.ts +5 -0
  285. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  286. package/dist/pipeline/buildBlockKind.js +74 -2
  287. package/dist/pipeline/buildBlockKind.js.map +1 -1
  288. package/dist/pipeline/buildHelpers.d.ts +3 -0
  289. package/dist/pipeline/buildHelpers.d.ts.map +1 -1
  290. package/dist/pipeline/buildHelpers.js +7 -2
  291. package/dist/pipeline/buildHelpers.js.map +1 -1
  292. package/dist/pipeline/buildMeasurement.js +1 -1
  293. package/dist/pipeline/buildMeasurement.js.map +1 -1
  294. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  295. package/dist/pipeline/calloutLayout.js +33 -2
  296. package/dist/pipeline/calloutLayout.js.map +1 -1
  297. package/dist/pipeline/chips.d.ts.map +1 -1
  298. package/dist/pipeline/chips.js +4 -0
  299. package/dist/pipeline/chips.js.map +1 -1
  300. package/dist/pipeline/codeBlocks.d.ts +38 -0
  301. package/dist/pipeline/codeBlocks.d.ts.map +1 -0
  302. package/dist/pipeline/codeBlocks.js +146 -0
  303. package/dist/pipeline/codeBlocks.js.map +1 -0
  304. package/dist/pipeline/codeInline.d.ts +22 -0
  305. package/dist/pipeline/codeInline.d.ts.map +1 -0
  306. package/dist/pipeline/codeInline.js +93 -0
  307. package/dist/pipeline/codeInline.js.map +1 -0
  308. package/dist/pipeline/codeLines.d.ts +91 -0
  309. package/dist/pipeline/codeLines.d.ts.map +1 -0
  310. package/dist/pipeline/codeLines.js +399 -0
  311. package/dist/pipeline/codeLines.js.map +1 -0
  312. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  313. package/dist/pipeline/columnBalancing.js +5 -0
  314. package/dist/pipeline/columnBalancing.js.map +1 -1
  315. package/dist/pipeline/config.d.ts.map +1 -1
  316. package/dist/pipeline/config.js +8 -1
  317. package/dist/pipeline/config.js.map +1 -1
  318. package/dist/pipeline/contentWarnings.d.ts +25 -0
  319. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  320. package/dist/pipeline/contentWarnings.js +173 -19
  321. package/dist/pipeline/contentWarnings.js.map +1 -1
  322. package/dist/pipeline/continuation.d.ts.map +1 -1
  323. package/dist/pipeline/continuation.js +9 -2
  324. package/dist/pipeline/continuation.js.map +1 -1
  325. package/dist/pipeline/dropCap.d.ts +128 -0
  326. package/dist/pipeline/dropCap.d.ts.map +1 -0
  327. package/dist/pipeline/dropCap.js +412 -0
  328. package/dist/pipeline/dropCap.js.map +1 -0
  329. package/dist/pipeline/floatPlacement.d.ts +34 -4
  330. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  331. package/dist/pipeline/floatPlacement.js +35 -5
  332. package/dist/pipeline/floatPlacement.js.map +1 -1
  333. package/dist/pipeline/floatSlots.d.ts +7 -0
  334. package/dist/pipeline/floatSlots.d.ts.map +1 -1
  335. package/dist/pipeline/floatSlots.js.map +1 -1
  336. package/dist/pipeline/hardBreaks.d.ts +19 -0
  337. package/dist/pipeline/hardBreaks.d.ts.map +1 -0
  338. package/dist/pipeline/hardBreaks.js +36 -0
  339. package/dist/pipeline/hardBreaks.js.map +1 -0
  340. package/dist/pipeline/headerFooter.d.ts +4 -1
  341. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  342. package/dist/pipeline/headerFooter.js +23 -6
  343. package/dist/pipeline/headerFooter.js.map +1 -1
  344. package/dist/pipeline/lineNumbers.d.ts +37 -0
  345. package/dist/pipeline/lineNumbers.d.ts.map +1 -0
  346. package/dist/pipeline/lineNumbers.js +441 -0
  347. package/dist/pipeline/lineNumbers.js.map +1 -0
  348. package/dist/pipeline/measureContentBlock.d.ts +38 -5
  349. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  350. package/dist/pipeline/measureContentBlock.js +284 -69
  351. package/dist/pipeline/measureContentBlock.js.map +1 -1
  352. package/dist/pipeline/partPalette.d.ts +1 -1
  353. package/dist/pipeline/partPalette.d.ts.map +1 -1
  354. package/dist/pipeline/partPalette.js +24 -2
  355. package/dist/pipeline/partPalette.js.map +1 -1
  356. package/dist/pipeline/placement.d.ts.map +1 -1
  357. package/dist/pipeline/placement.js +7 -0
  358. package/dist/pipeline/placement.js.map +1 -1
  359. package/dist/pipeline/resourceLayout.d.ts +15 -0
  360. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  361. package/dist/pipeline/resourceLayout.js +95 -15
  362. package/dist/pipeline/resourceLayout.js.map +1 -1
  363. package/dist/pipeline/styles.d.ts +18 -2
  364. package/dist/pipeline/styles.d.ts.map +1 -1
  365. package/dist/pipeline/styles.js +23 -8
  366. package/dist/pipeline/styles.js.map +1 -1
  367. package/dist/pipeline/tabs.d.ts +35 -0
  368. package/dist/pipeline/tabs.d.ts.map +1 -0
  369. package/dist/pipeline/tabs.js +99 -0
  370. package/dist/pipeline/tabs.js.map +1 -0
  371. package/dist/pipeline/textWrap.d.ts +94 -0
  372. package/dist/pipeline/textWrap.d.ts.map +1 -0
  373. package/dist/pipeline/textWrap.js +188 -0
  374. package/dist/pipeline/textWrap.js.map +1 -0
  375. package/dist/pipeline/toc.d.ts.map +1 -1
  376. package/dist/pipeline/toc.js +3 -38
  377. package/dist/pipeline/toc.js.map +1 -1
  378. package/dist/pipeline/verseLines.d.ts +98 -0
  379. package/dist/pipeline/verseLines.d.ts.map +1 -0
  380. package/dist/pipeline/verseLines.js +293 -0
  381. package/dist/pipeline/verseLines.js.map +1 -0
  382. package/dist/preflight.d.ts +46 -1
  383. package/dist/preflight.d.ts.map +1 -1
  384. package/dist/preflight.js +43 -7
  385. package/dist/preflight.js.map +1 -1
  386. package/dist/table/booktabs.d.ts +37 -0
  387. package/dist/table/booktabs.d.ts.map +1 -0
  388. package/dist/table/booktabs.js +82 -0
  389. package/dist/table/booktabs.js.map +1 -0
  390. package/dist/types.d.ts +787 -12
  391. package/dist/types.d.ts.map +1 -1
  392. package/dist/vdt.d.ts +367 -9
  393. package/dist/vdt.d.ts.map +1 -1
  394. package/dist/vdt.js +9 -2
  395. package/dist/vdt.js.map +1 -1
  396. package/dist/word/docxRead.d.ts.map +1 -1
  397. package/dist/word/docxRead.js +15 -0
  398. package/dist/word/docxRead.js.map +1 -1
  399. package/dist/word/index.d.ts +1 -1
  400. package/dist/word/index.d.ts.map +1 -1
  401. package/dist/word/index.js +1 -1
  402. package/dist/word/index.js.map +1 -1
  403. package/dist/word/inline.d.ts +6 -1
  404. package/dist/word/inline.d.ts.map +1 -1
  405. package/dist/word/inline.js +35 -1
  406. package/dist/word/inline.js.map +1 -1
  407. package/dist/word/model.d.ts +14 -0
  408. package/dist/word/model.d.ts.map +1 -1
  409. package/dist/word/model.js.map +1 -1
  410. package/dist/word/template.d.ts +12 -3
  411. package/dist/word/template.d.ts.map +1 -1
  412. package/dist/word/template.js +13 -3
  413. package/dist/word/template.js.map +1 -1
  414. package/dist/word/toDocx.d.ts.map +1 -1
  415. package/dist/word/toDocx.js +52 -8
  416. package/dist/word/toDocx.js.map +1 -1
  417. package/dist/word/toMarkdown.d.ts +15 -1
  418. package/dist/word/toMarkdown.d.ts.map +1 -1
  419. package/dist/word/toMarkdown.js +133 -7
  420. package/dist/word/toMarkdown.js.map +1 -1
  421. package/dist/word/word.test.js +124 -2
  422. package/dist/word/word.test.js.map +1 -1
  423. package/dist/worker/fonts.d.ts +2 -1
  424. package/dist/worker/fonts.d.ts.map +1 -1
  425. package/dist/worker/fonts.js +6 -2
  426. package/dist/worker/fonts.js.map +1 -1
  427. package/package.json +1 -1
@@ -0,0 +1,441 @@
1
+ // Line numbers in the margin (#621). A pass over the finished layout:
2
+ // once a pass has placed every line and stamped its page labels, the
3
+ // lines are walked in reading order (page by page, column by column, top
4
+ // to bottom), counted, and every Nth one gets its number in a design slot
5
+ // of its page (`VDTPage.lineNumbers`). The numbers are painted where the
6
+ // layout leaves room for them and never move a line, so balancing and
7
+ // re-breaks cannot invalidate them: each pass counts its own layout.
8
+ //
9
+ // What is counted (`lineNumbers.count`):
10
+ // - `'verse'`: the lines of `:::verse` poems, once per line of verse — a
11
+ // turnover (`VDTLine.verseLine.turnover`, the ʿajuz of a staggered
12
+ // bayt) takes no number;
13
+ // - `'all'`: every line of body paragraphs, list items, quotations and
14
+ // verse.
15
+ // Never: headings, captions, tables and pictures, display maths, design
16
+ // text, notes, the contents and the index, and the text of a callout —
17
+ // unless the paragraph style the text is set in says `lineNumbers: true`
18
+ // (a style with `lineNumbers: false` is never counted).
19
+ //
20
+ // The count starts again at `lineNumbers.restart` (a chapter, a section,
21
+ // a page, a poem), at a `:::numbering{lines=N}` directive, and at a poem
22
+ // whose fence sets `lineStart=N`.
23
+ import { createBoundingBox, flowRectToPage, pageIsVertical, } from '../vdt';
24
+ import { buildFontString } from '../measure';
25
+ import { measureTextWidth } from '../measure/canvas';
26
+ import { dimensionToPx } from '../units';
27
+ import { formatNumeral, parseNumberFormat } from '../numbering';
28
+ import { isRtlScriptChar } from '../bidi';
29
+ import { resolvedLocale } from './config';
30
+ /** A whole number ≥ `min` written in a directive attribute. */
31
+ function wholeAttr(value, min) {
32
+ if (value === undefined)
33
+ return undefined;
34
+ const n = Number(value.trim());
35
+ return Number.isInteger(n) && n >= min ? n : undefined;
36
+ }
37
+ /** The numbering a poem's fence asks for. */
38
+ export function poemNumbering(attrs) {
39
+ const numbered = attrs?.numbered?.trim().toLowerCase();
40
+ const interval = wholeAttr(attrs?.interval, 1);
41
+ const lineStart = wholeAttr(attrs?.lineStart, 0);
42
+ return {
43
+ numbered: numbered !== 'false' && numbered !== 'no' && numbered !== '0',
44
+ ...(interval !== undefined ? { interval } : {}),
45
+ ...(lineStart !== undefined ? { lineStart } : {}),
46
+ };
47
+ }
48
+ /** The poem a content block sets, as numbered in the document (bayt
49
+ * poems, one block each, are numbered after their index). */
50
+ function poemKey(block, index) {
51
+ return block.verse?.stanza ? block.verse.stanza.poem : -1 - index;
52
+ }
53
+ /** Whether a content block opens a poem. */
54
+ function opensPoem(block) {
55
+ return block.verse !== undefined && (block.verse.stanza === undefined || block.verse.stanza.index === 0);
56
+ }
57
+ /** The events of `blocks`, by content index. */
58
+ function lineCountEvents(blocks) {
59
+ const events = new Map();
60
+ const push = (i, e) => {
61
+ const list = events.get(i);
62
+ if (list)
63
+ list.push(e);
64
+ else
65
+ events.set(i, [e]);
66
+ };
67
+ blocks.forEach((b, i) => {
68
+ if (b.type === 'heading' && b.level)
69
+ push(i, { kind: 'heading', level: b.level });
70
+ else if (b.type === 'directive' && b.directiveName === 'numbering') {
71
+ const next = wholeAttr(b.directiveAttrs?.lines, 0);
72
+ if (next !== undefined)
73
+ push(i, { kind: 'numbering', next });
74
+ }
75
+ else if (opensPoem(b)) {
76
+ const { lineStart } = poemNumbering(b.verse.attrs);
77
+ push(i, { kind: 'poem', poem: poemKey(b, i), ...(lineStart !== undefined ? { lineStart } : {}) });
78
+ }
79
+ });
80
+ return events;
81
+ }
82
+ /** The running count: the last number given, whether the next counted
83
+ * line is the first after a restart, and whether the count restarted. */
84
+ class LineCounter {
85
+ cfg;
86
+ value;
87
+ fresh;
88
+ restarted = false;
89
+ constructor(cfg, inherited) {
90
+ this.cfg = cfg;
91
+ const continues = inherited !== undefined && cfg.restart !== 'page' && cfg.restart !== 'poem';
92
+ this.value = continues ? inherited : cfg.startAt - 1;
93
+ this.fresh = !continues;
94
+ if (!continues && inherited !== undefined)
95
+ this.restarted = true;
96
+ }
97
+ /** Start again so that the next line is numbered `next`. */
98
+ restart(next = this.cfg.startAt) {
99
+ this.value = next - 1;
100
+ this.fresh = true;
101
+ this.restarted = true;
102
+ }
103
+ apply(e) {
104
+ if (e.kind === 'numbering')
105
+ this.restart(e.next);
106
+ else if (e.kind === 'heading') {
107
+ if ((this.cfg.restart === 'chapter' && e.level === 1) || (this.cfg.restart === 'section' && e.level <= 2))
108
+ this.restart();
109
+ }
110
+ else if (e.lineStart !== undefined)
111
+ this.restart(e.lineStart);
112
+ else if (this.cfg.restart === 'poem')
113
+ this.restart();
114
+ }
115
+ /** Count one line: its number, and whether it is printed. */
116
+ next(interval) {
117
+ this.value += 1;
118
+ const first = this.fresh;
119
+ this.fresh = false;
120
+ return { n: this.value, printed: this.value % interval === 0 || (first && this.cfg.numberFirst) };
121
+ }
122
+ }
123
+ /** Whether the text of a paragraph style is counted: its own
124
+ * `lineNumbers`, else `fallback`. */
125
+ function styleCounts(resolved, styleId, fallback) {
126
+ if (!styleId)
127
+ return fallback;
128
+ const own = resolved.paragraphStyles.find((s) => s.id === styleId)?.lineNumbers;
129
+ return own ?? fallback;
130
+ }
131
+ /** Blocks whose lines are never counted. */
132
+ function neverCounted(block) {
133
+ return block.type === 'heading' || block.type === 'resource' || block.type === 'mathDisplay' || block.type === 'callout'
134
+ || block.hidden === true || block.designOverlay !== undefined
135
+ || block.footnoteNote !== undefined || block.tocEntry !== undefined || block.tocPart !== undefined
136
+ || block.indexLevel !== undefined || block.bibEntry !== undefined || block.comic !== undefined;
137
+ }
138
+ /** How the lines of `block` are counted: not at all, as verse (a line of
139
+ * verse once, its turnovers not), or line by line (prose). */
140
+ function blockCounting(block, raw, resolved, cfg) {
141
+ if (neverCounted(block))
142
+ return 'none';
143
+ const styleId = block.paragraphStyleId;
144
+ // A box's text is counted only when its style opts in.
145
+ if (block.containerId !== undefined) {
146
+ if (!styleCounts(resolved, styleId, false))
147
+ return 'none';
148
+ return raw?.verse ? 'verse' : 'prose';
149
+ }
150
+ if (raw?.verse) {
151
+ if (!poemNumbering(raw.verse.attrs).numbered)
152
+ return 'none';
153
+ return styleCounts(resolved, styleId, true) ? 'verse' : 'none';
154
+ }
155
+ return styleCounts(resolved, styleId, cfg.count === 'all') ? 'prose' : 'none';
156
+ }
157
+ /** Whether a line of a poem takes a number: a line of verse, not a
158
+ * turnover or the second line of a staggered bayt. */
159
+ function isLineOfVerse(line) {
160
+ if (line.verseLine)
161
+ return !line.verseLine.turnover;
162
+ if (line.verse)
163
+ return line.verse.part !== 'ajuz';
164
+ return false;
165
+ }
166
+ /** The overlaps of side-column numbers with floats, per document. */
167
+ const overlapWarnings = new WeakMap();
168
+ /** The `lineNumberOverlap` warnings of the last pass laid out as `doc`. */
169
+ export function lineNumberWarnings(doc) {
170
+ return overlapWarnings.get(doc) ?? [];
171
+ }
172
+ /**
173
+ * Count the lines of `doc` and set the numbers of the printed ones in
174
+ * `page.lineNumbers` (with `page.lineNumberMarks`), and the last number in
175
+ * `doc.lastLineNumber`. `blocks` are the parsed content blocks the layout
176
+ * was built from (`VDTBlock.contentIndex` points into them);
177
+ * `continuation.lineNumber` is the number the count goes on from. A
178
+ * vertical document gets no numbers.
179
+ */
180
+ export function buildLineNumbers(doc, blocks, continuation) {
181
+ const resolved = doc.config;
182
+ const cfg = resolved.lineNumbers;
183
+ if (!cfg?.enabled || resolved.layout.writingMode === 'vertical-rl')
184
+ return;
185
+ const dpi = resolved.page.dpi;
186
+ const bodyPx = dimensionToPx(resolved.bodyText.fontSize, dpi);
187
+ const sizePx = dimensionToPx(cfg.fontSize, dpi, bodyPx);
188
+ const gapPx = dimensionToPx(cfg.gap, dpi, sizePx);
189
+ const font = buildFontString(cfg.fontFamily, sizePx, cfg.fontWeight === 400 ? 'normal' : String(cfg.fontWeight), cfg.italic ? 'italic' : 'normal');
190
+ const style = parseNumberFormat(cfg.format, resolvedLocale(resolved)) ?? 'decimal';
191
+ const events = lineCountEvents(blocks);
192
+ const eventIndices = [...events.keys()].sort((a, b) => a - b);
193
+ let nextEvent = 0;
194
+ const counter = new LineCounter(cfg, continuation?.lineNumber);
195
+ const poems = new Map();
196
+ const warnings = [];
197
+ const offset = doc.pageIndexOffset ?? 0;
198
+ for (const page of doc.pages) {
199
+ if (pageIsVertical(page))
200
+ continue;
201
+ if (cfg.restart === 'page')
202
+ counter.restart();
203
+ const pending = [];
204
+ for (const column of page.columns) {
205
+ if (column.kind === 'side')
206
+ continue;
207
+ for (const block of column.blocks) {
208
+ const c = block.contentIndex;
209
+ if (c !== undefined) {
210
+ while (nextEvent < eventIndices.length && eventIndices[nextEvent] <= c) {
211
+ for (const e of events.get(eventIndices[nextEvent]))
212
+ counter.apply(e);
213
+ nextEvent++;
214
+ }
215
+ }
216
+ const raw = c !== undefined ? blocks[c] : undefined;
217
+ const counting = blockCounting(block, raw, resolved, cfg);
218
+ if (counting === 'none')
219
+ continue;
220
+ let interval = cfg.interval;
221
+ if (raw?.verse) {
222
+ const key = poemKey(raw, c);
223
+ let poem = poems.get(key);
224
+ if (!poem) {
225
+ poem = poemNumbering(raw.verse.attrs);
226
+ poems.set(key, poem);
227
+ }
228
+ interval = poem.interval ?? interval;
229
+ }
230
+ block.lines.forEach((line, lineIndex) => {
231
+ if (counting === 'verse' ? !isLineOfVerse(line) : line.text.length === 0 && !line.segments?.length)
232
+ return;
233
+ const { n, printed } = counter.next(interval);
234
+ if (!printed)
235
+ return;
236
+ pending.push({
237
+ mark: { number: n, label: formatNumeral(n, style, resolved.numerals), columnIndex: column.index, blockId: block.id, lineIndex },
238
+ baseline: line.baseline,
239
+ column,
240
+ line,
241
+ block,
242
+ });
243
+ });
244
+ }
245
+ }
246
+ if (pending.length > 0)
247
+ placeNumbers(page, pending, { cfg, resolved, font, sizePx, gapPx, offset, warnings });
248
+ }
249
+ doc.lastLineNumber = counter.value;
250
+ if (counter.restarted)
251
+ doc.lineNumberRestarted = true;
252
+ if (warnings.length > 0)
253
+ overlapWarnings.set(doc, warnings);
254
+ }
255
+ /** The physical side of a column the numbers of `position` stand on
256
+ * (`'side'` is placed apart). */
257
+ function sideFor(position, page, ctx) {
258
+ const recto = (page.index + ctx.offset) % 2 === 0;
259
+ const outerRight = recto !== (ctx.resolved.page.binding === 'right');
260
+ const rtl = ctx.resolved.direction === 'rtl';
261
+ switch (position) {
262
+ case 'left': return 'left';
263
+ case 'right': return 'right';
264
+ case 'inner': return outerRight ? 'left' : 'right';
265
+ case 'start': return rtl ? 'right' : 'left';
266
+ case 'end': return rtl ? 'left' : 'right';
267
+ default: return outerRight ? 'right' : 'left';
268
+ }
269
+ }
270
+ /** Set the numbers of one page in its slot. */
271
+ function placeNumbers(page, pending, ctx) {
272
+ const { cfg, font, sizePx, gapPx } = ctx;
273
+ const widths = pending.map((p) => measureTextWidth(p.mark.label, font));
274
+ const widest = Math.max(...widths);
275
+ const ascent = sizePx * 0.8;
276
+ const physical = new Map();
277
+ const rectOf = (col) => {
278
+ let r = physical.get(col);
279
+ if (!r) {
280
+ r = flowRectToPage(page, col.bbox);
281
+ physical.set(col, r);
282
+ }
283
+ return r;
284
+ };
285
+ const sideColumns = page.columns.filter((c) => c.kind === 'side');
286
+ // Text columns side by side in one band.
287
+ const bandColumns = (col) => page.columns
288
+ .filter((c) => (c.kind ?? 'text') === 'text' && (c.band ?? 0) === (col.band ?? 0))
289
+ .sort((a, b) => rectOf(a).x - rectOf(b).x);
290
+ const sideRule = (col) => {
291
+ const base = sideFor(cfg.position === 'side' ? 'outer' : cfg.position, page, ctx);
292
+ if ((col.kind ?? 'text') !== 'text')
293
+ return base;
294
+ const band = bandColumns(col);
295
+ if (band.length < 2)
296
+ return base;
297
+ const at = band.indexOf(col);
298
+ if (cfg.multiColumn === 'gutter')
299
+ return at === 0 ? 'right' : 'left';
300
+ if (cfg.multiColumn === 'outer-edges') {
301
+ if (at === 0)
302
+ return 'left';
303
+ if (at === band.length - 1)
304
+ return 'right';
305
+ }
306
+ return base;
307
+ };
308
+ // The side column beside a text column, when numbers go there.
309
+ const sideColumnOf = (col, baseline) => {
310
+ if (cfg.position !== 'side' || sideColumns.length === 0)
311
+ return undefined;
312
+ return sideColumns.find((s) => {
313
+ const r = rectOf(s);
314
+ return baseline >= r.y && baseline <= r.y + r.height;
315
+ }) ?? sideColumns.find((s) => (s.band ?? 0) === (col.band ?? 0)) ?? sideColumns[0];
316
+ };
317
+ const floats = cfg.position === 'side'
318
+ ? [...(page.floats ?? []), ...sideColumns.flatMap((s) => s.blocks)].map((b) => ({ block: b, rect: flowRectToPage(page, b.bbox) }))
319
+ : [];
320
+ const textBlocks = [];
321
+ const marks = [];
322
+ pending.forEach((p, i) => {
323
+ const w = widths[i];
324
+ const col = rectOf(p.column);
325
+ const side = sideColumnOf(p.column, p.baseline);
326
+ let x;
327
+ if (side) {
328
+ const s = rectOf(side);
329
+ if (s.x >= col.x) {
330
+ // The side column on the right: flush with its left edge.
331
+ x = cfg.align === 'right' ? s.x + widest - w : s.x;
332
+ }
333
+ else {
334
+ const edge = s.x + s.width;
335
+ x = cfg.align === 'left' ? edge - widest : edge - w;
336
+ }
337
+ }
338
+ else if (sideRule(p.column) === 'left') {
339
+ const edge = col.x - gapPx;
340
+ x = cfg.align === 'left' ? edge - widest : edge - w;
341
+ }
342
+ else {
343
+ const edge = col.x + col.width + gapPx;
344
+ x = cfg.align === 'right' ? edge + widest - w : edge;
345
+ }
346
+ const bbox = createBoundingBox(x, p.baseline - ascent, w, sizePx);
347
+ if (side) {
348
+ const hit = floats.find((f) => f.rect.x < bbox.x + bbox.width && bbox.x < f.rect.x + f.rect.width
349
+ && f.rect.y < bbox.y + bbox.height && bbox.y < f.rect.y + f.rect.height);
350
+ if (hit) {
351
+ const start = p.line.sourceStart ?? p.block.sourceStart;
352
+ const end = p.line.sourceEnd ?? p.block.sourceEnd;
353
+ ctx.warnings.push({
354
+ kind: 'lineNumberOverlap',
355
+ number: p.mark.label,
356
+ pageIndex: page.index,
357
+ ...(start !== undefined && end !== undefined ? { sourceStart: start, sourceEnd: end } : {}),
358
+ });
359
+ }
360
+ }
361
+ const label = p.mark.label;
362
+ const rtl = [...label].some((ch) => isRtlScriptChar(ch.codePointAt(0)));
363
+ textBlocks.push({
364
+ kind: 'text',
365
+ bbox,
366
+ fontString: font,
367
+ color: cfg.color.hex,
368
+ lines: [{
369
+ text: label,
370
+ xOffset: 0,
371
+ baselineY: p.baseline,
372
+ width: w,
373
+ ...(rtl ? { runs: [{ text: label, fontString: font, width: w, rtl: true }] } : {}),
374
+ }],
375
+ clip: false,
376
+ artifact: true,
377
+ ...(rtl ? { direction: 'rtl' } : {}),
378
+ });
379
+ marks.push(p.mark);
380
+ });
381
+ const left = Math.min(...textBlocks.map((b) => b.bbox.x));
382
+ const top = Math.min(...textBlocks.map((b) => b.bbox.y));
383
+ const right = Math.max(...textBlocks.map((b) => b.bbox.x + b.bbox.width));
384
+ const bottom = Math.max(...textBlocks.map((b) => b.bbox.y + b.bbox.height));
385
+ page.lineNumbers = { bbox: createBoundingBox(left, top, right - left, bottom - top), blocks: textBlocks };
386
+ page.lineNumberMarks = marks;
387
+ }
388
+ /** Recolour the numbers of the pages whose part or section palette
389
+ * overrides the entry `lineNumbers.color` links to. */
390
+ export function recolorLineNumbers(doc, palettes) {
391
+ const linked = doc.config.lineNumbers?.color.paletteId;
392
+ if (!linked)
393
+ return;
394
+ for (const page of doc.pages) {
395
+ const hex = palettes[page.index]?.[linked];
396
+ if (!hex || !page.lineNumbers)
397
+ continue;
398
+ for (const b of page.lineNumbers.blocks)
399
+ if (b.kind === 'text')
400
+ b.color = hex;
401
+ }
402
+ }
403
+ /**
404
+ * The number of the last line of verse in `blocks` (#621), counted from
405
+ * `before` as the layout counts it, when `lineNumbers` counts verse: a
406
+ * book laid out one chapter at a time hands it on (`continuationAfter`).
407
+ * Undefined when the count does not depend on the text alone (line
408
+ * numbers off, or every line counted, which only the layout knows), so
409
+ * the caller keeps what it had.
410
+ */
411
+ export function lastVerseLineNumber(blocks, resolved, before) {
412
+ const cfg = resolved.lineNumbers;
413
+ if (!cfg?.enabled || cfg.count !== 'verse' || cfg.restart === 'page' || resolved.layout.writingMode === 'vertical-rl')
414
+ return undefined;
415
+ // Prose styles that opt in are counted line by line: only the layout
416
+ // knows their lines.
417
+ if (resolved.paragraphStyles.some((s) => s.lineNumbers === true))
418
+ return undefined;
419
+ const counter = new LineCounter(cfg, before);
420
+ const events = lineCountEvents(blocks);
421
+ let insideBox = 0;
422
+ blocks.forEach((b, i) => {
423
+ for (const e of events.get(i) ?? [])
424
+ counter.apply(e);
425
+ if (b.type === 'containerStart' && b.containerName === 'callout')
426
+ insideBox++;
427
+ else if (b.type === 'containerEnd' && b.containerName === 'callout')
428
+ insideBox = Math.max(0, insideBox - 1);
429
+ if (!b.verse || !poemNumbering(b.verse.attrs).numbered)
430
+ return;
431
+ // A poem in a box is counted only when its style opts in.
432
+ const styleId = b.verse.attrs.style?.trim();
433
+ if (!styleCounts(resolved, styleId, insideBox === 0))
434
+ return;
435
+ const lines = b.verse.stanza ? b.verse.stanza.lines.length : b.text.split('\n').filter((l) => l.trim().length > 0).length;
436
+ for (let k = 0; k < lines; k++)
437
+ counter.next(1);
438
+ });
439
+ return counter.value;
440
+ }
441
+ //# sourceMappingURL=lineNumbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineNumbers.js","sourceRoot":"","sources":["../../src/pipeline/lineNumbers.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@ import { type BlockKind, type BlockKindContext } from './buildBlockKind';
17
17
  import { type AnchorRefContext } from './resourceLayout';
18
18
  import type { ResourceNumberingMap } from './resourceNumbering';
19
19
  import type { CaptionCitations } from './citations';
20
+ import { type MeasuredDropCap } from './dropCap';
21
+ import { type LineInsetStep } from '../measure/types';
22
+ import type { VDTBlock } from '../vdt';
20
23
  /** Everything `measureContentBlock` needs that is constant across one
21
24
  * placement pass. Built once before the loop; `blockIdx` and the paragraph
22
25
  * style override are per-call (see `measureContentBlock` arguments). */
@@ -52,6 +55,17 @@ export interface BlockMeasureContext extends Omit<BlockKindContext, 'blockIdx' |
52
55
  * script (Arabic…), which is set without it. The build reports them
53
56
  * (`joiningScriptLetterSpacing`). */
54
57
  joiningLetterSpacing?: Set<number>;
58
+ /** Filled by the measurement: the content indices of the paragraphs a
59
+ * drop cap was meant to open and could not as configured (#623), and
60
+ * why; the build reports them (`dropCap` content warnings). */
61
+ dropCapNotes?: Map<number, DropCapNote>;
62
+ }
63
+ /** Why a paragraph's drop cap was not set as configured (see
64
+ * `BlockMeasureContext.dropCapNotes`). */
65
+ export interface DropCapNote {
66
+ reason: 'shortParagraph' | 'joiningScript' | 'verticalText' | 'noLetter' | 'split';
67
+ handling?: 'reserve' | 'shrink' | 'skip';
68
+ lines?: number;
55
69
  }
56
70
  export interface MeasuredContentBlock {
57
71
  kind: BlockKind;
@@ -68,6 +82,15 @@ export interface MeasuredContentBlock {
68
82
  /** Tracking the text was measured with (px per glyph), when column
69
83
  * balancing asked for it — renderers must paint the block with it. */
70
84
  letterSpacingPx?: number;
85
+ /** A paragraph a drop cap opens (#623): the letter, relative to the
86
+ * column. Its lines were set short of it. */
87
+ dropCap?: MeasuredDropCap;
88
+ /** A code listing (#624): its language, numbers and fit (see
89
+ * `VDTBlock.code`). */
90
+ code?: NonNullable<VDTBlock['code']>;
91
+ /** A code listing set from the far side of a mirrored frame (#624): its
92
+ * block reads left to right. */
93
+ direction?: 'ltr';
71
94
  }
72
95
  export interface MeasureContentBlockOptions {
73
96
  /** Column-balancing "run a paragraph long" — Knuth-Plass looseness. Left
@@ -103,11 +126,21 @@ export interface MeasureContentBlockOptions {
103
126
  fromLine: number;
104
127
  columnWidth: number;
105
128
  }[];
129
+ /** Lines set short beside a picture that text wraps round (#627, see
130
+ * `MeasureBlockOptions.lineInsets`): `startInsetPx` is the room the
131
+ * picture takes on the column's left in the flow, `endInsetPx` on its
132
+ * right; both add to the block's own indents. Such a measurement is not
133
+ * cached. */
134
+ lineInsets?: readonly LineInsetStep[];
135
+ /** Internal to the drop cap (#623): the paragraph measured again set
136
+ * without it (`skip`), with the initial over `lines` lines (a short
137
+ * paragraph's `'shrink'`), or with a lead-in of `leadInWords` words
138
+ * (the first line's, counted by the first setting). */
139
+ dropCap?: {
140
+ skip?: true;
141
+ lines?: number;
142
+ leadInWords?: number;
143
+ };
106
144
  }
107
- /**
108
- * Resolve and measure one content block at `columnWidth`. Returns `null` when
109
- * there is nothing to place inline: empty text, an unknown resource id, or a
110
- * resource that floats to a page band.
111
- */
112
145
  export declare function measureContentBlock(rawBlock: ContentBlock, blockIdx: number, columnWidth: number, ctx: BlockMeasureContext, opts?: MeasureContentBlockOptions): MeasuredContentBlock | null;
113
146
  //# sourceMappingURL=measureContentBlock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"measureContentBlock.d.ts","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measureContentBlock.d.ts","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}