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
@@ -13,6 +13,7 @@ import { runMeasurement } from './buildMeasurement';
13
13
  import { linkSegments } from '../measure/links';
14
14
  import { kashidaMeasureOptions } from '../measure/kashida';
15
15
  import { measureVerse } from './verse';
16
+ import { measureVerseLines, verseLinesSettings, versesLineByLine } from './verseLines';
16
17
  import { composesAsCjk } from '../measure/cjkCompose';
17
18
  import { measuringVertically } from '../measure/vertical';
18
19
  import { resolveRefSpans, resolveSwatchSpans, shiftResourceBlockX } from './resourceLayout';
@@ -26,6 +27,12 @@ import { dimensionToPx } from '../units';
26
27
  import { joiningScriptIn, mostlyJoiningScript } from '../measure/joining';
27
28
  import { getMeasureDirection, mirrorLineSpans, shiftLineX } from '../measure/bidiLines';
28
29
  import { startEndAsLeftRight } from '../defaults/shared';
30
+ import { prepareTabs } from './tabs';
31
+ import { resolveResourceWrap } from './textWrap';
32
+ import { fullPlainOffset, paragraphDropCap, prepareDropCap } from './dropCap';
33
+ import { lineIndentAt, lineInsetsAt } from '../measure/types';
34
+ import { measureCodeLines } from './codeLines';
35
+ import { withInlineCode } from './codeInline';
29
36
  /** Index of the `containerStart` marker that the `containerEnd` at `endIdx`
30
37
  * closes, when there is one. */
31
38
  function containerStartOf(blocks, endIdx) {
@@ -44,68 +51,12 @@ function containerStartOf(blocks, endIdx) {
44
51
  * there is nothing to place inline: empty text, an unknown resource id, or a
45
52
  * resource that floats to a page band.
46
53
  */
47
- export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts) {
48
- const { resolved, bodyStyle, contentBlocks, cache, bodyOffset } = ctx;
49
- // A block of an expanded `:::toc`: title, number, leader, page label.
50
- if (rawBlock.toc)
51
- return measureTocBlock(rawBlock, columnWidth, ctx);
52
- // A block of an expanded `:::index`: an entry and its page numbers.
53
- if (rawBlock.index)
54
- return measureIndexBlock(rawBlock, columnWidth, ctx);
55
- const kind = resolveBlockKind(rawBlock, {
56
- ...ctx,
57
- blockIdx,
58
- paragraphStyleOverride: opts?.styleOverride,
59
- });
60
- const { style, vdtType, listBullet } = kind;
61
- let contentBlock = kind.contentBlock;
62
- const mathEnabled = resolved.math.enabled;
63
- // --- Resource blocks (image / svg / table + caption) -----------------
64
- // Laid out as one atomic group. Unknown ids produce nothing (the warnings
65
- // phase surfaces them); floated resources are anchored by their directive
66
- // but land in a page band, so they are never measured inline.
67
- if (vdtType === 'resource') {
68
- if (!kind.resource || ctx.floatedIds.has(kind.resource.id))
69
- return null;
70
- // A resource narrower than its column (`placement.width`) sits in it
71
- // per `placement.align`.
72
- const rawFrac = kind.resource.placement?.width ?? kind.resourceType?.defaultPlacement?.width;
73
- const frac = typeof rawFrac === 'number' && rawFrac > 0 && rawFrac < 1 ? rawFrac : 1;
74
- const align = startEndAsLeftRight(kind.resource.placement?.align ?? kind.resourceType?.defaultPlacement?.align ?? 'left');
75
- const embedWidth = columnWidth * frac;
76
- const { resourceBlock, measured } = runMeasurement({
77
- vdtType,
78
- rawBlock,
79
- contentBlock,
80
- style,
81
- measureMaxWidth: embedWidth,
82
- measureOptions: { textAlign: style.textAlign },
83
- mathEnabled,
84
- useRich: false,
85
- resolved,
86
- resources: ctx.resources,
87
- resourceTypes: ctx.resourceTypes,
88
- resourceNumbering: ctx.resourceNumbering,
89
- ...(ctx.captionCitations ? { captionCitations: ctx.captionCitations } : {}),
90
- resource: kind.resource,
91
- resourceType: kind.resourceType,
92
- resourceNumber: kind.resourceNumber,
93
- ...(opts?.figureMaxBodyWidth !== undefined ? { maxBodyWidth: opts.figureMaxBodyWidth } : {}),
94
- ...(opts?.figureHeightDelta ? { bodyHeightDelta: opts.figureHeightDelta } : {}),
95
- ...(opts?.uprightMaxLength !== undefined ? { upright: { maxLength: opts.uprightMaxLength } } : {}),
96
- });
97
- if (!resourceBlock)
98
- return null;
99
- if (frac < 1) {
100
- const dx = (columnWidth - embedWidth) * (align === 'center' ? 0.5 : align === 'right' ? 1 : 0);
101
- // An upright block (a vertical page) moves its frame along the flow.
102
- if (resourceBlock.rotation)
103
- resourceBlock.rotation.originX += dx;
104
- else
105
- shiftResourceBlockX(resourceBlock, dx);
106
- }
107
- return { kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: [], resourceBlock };
108
- }
54
+ /** The spans of a block as they are measured: inline maths rendered,
55
+ * `:ref` labels, footnote markers, swatches and chips resolved, small
56
+ * capitals and Chinese and Japanese annotations applied. */
57
+ function resolveInlineSpans(block, style, ctx) {
58
+ const { resolved, bodyStyle } = ctx;
59
+ let contentBlock = block;
109
60
  // Resolve inline math on spans (no-op when the block has no math).
110
61
  contentBlock = enrichMathSpans(contentBlock, style, resolved);
111
62
  // Resolve inline `:ref{…}` spans to their computed label so references
@@ -178,16 +129,195 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
178
129
  spans: resolveAnnotationSpans(contentBlock.spans, { cjk: resolved.cjk, dpi: resolved.page.dpi, fontString: style.fontString, fontSizePx: style.fontSizePx }),
179
130
  };
180
131
  }
132
+ return contentBlock;
133
+ }
134
+ /** The stanzas of the poem `raw` (a stanza of the line layout, #620) sets,
135
+ * in order, as content indices: the run of blocks around it that carry
136
+ * the same poem. */
137
+ function poemStanzaIndices(contentBlocks, raw, blockIdx) {
138
+ const stanza = raw.verse?.stanza;
139
+ const at = contentBlocks[blockIdx] === raw ? blockIdx : contentBlocks.indexOf(raw);
140
+ if (!stanza || at < 0)
141
+ return [];
142
+ const of = (i) => contentBlocks[i]?.verse?.stanza;
143
+ let from = at;
144
+ while (from > 0 && of(from - 1)?.poem === stanza.poem && of(from - 1).index === of(from).index - 1)
145
+ from--;
146
+ let to = at;
147
+ while (to + 1 < contentBlocks.length && of(to + 1)?.poem === stanza.poem && of(to + 1).index === of(to).index + 1)
148
+ to++;
149
+ return Array.from({ length: to - from + 1 }, (_, k) => from + k);
150
+ }
151
+ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts) {
152
+ const { resolved, contentBlocks, cache, bodyOffset } = ctx;
153
+ // A block of an expanded `:::toc`: title, number, leader, page label.
154
+ if (rawBlock.toc)
155
+ return measureTocBlock(rawBlock, columnWidth, ctx);
156
+ // A block of an expanded `:::index`: an entry and its page numbers.
157
+ if (rawBlock.index)
158
+ return measureIndexBlock(rawBlock, columnWidth, ctx);
159
+ const kind = resolveBlockKind(rawBlock, {
160
+ ...ctx,
161
+ blockIdx,
162
+ paragraphStyleOverride: opts?.styleOverride,
163
+ });
164
+ // A code listing (#624): line by line as written, in its box's measure.
165
+ if (rawBlock.type === 'code') {
166
+ const mirrored = getMeasureDirection() === 'rtl' && !measuringVertically();
167
+ const measured = measureCodeLines({
168
+ block: rawBlock,
169
+ fontSizePx: kind.style.fontSizePx,
170
+ lineHeightPx: kind.style.lineHeightPx,
171
+ color: kind.style.color,
172
+ measure: columnWidth,
173
+ resolved,
174
+ bodyOffset,
175
+ ...(mirrored ? { mirrored: true } : {}),
176
+ });
177
+ if (measured.lines.length === 0)
178
+ return null;
179
+ const code = {
180
+ ...(rawBlock.code?.lang ? { lang: rawBlock.code.lang } : {}),
181
+ ...(measured.numbers ? { numbers: measured.numbers } : {}),
182
+ ...(measured.fit ? { fit: measured.fit } : {}),
183
+ };
184
+ return {
185
+ kind,
186
+ contentBlock: rawBlock,
187
+ measured: { lines: measured.lines, totalHeight: measured.totalHeight },
188
+ prefixLen: 0,
189
+ absoluteSourceMap: rawBlock.sourceMap.map((o) => o + bodyOffset),
190
+ code,
191
+ ...(mirrored ? { direction: 'ltr' } : {}),
192
+ };
193
+ }
194
+ const { style, vdtType, listBullet } = kind;
195
+ let contentBlock = kind.contentBlock;
196
+ const mathEnabled = resolved.math.enabled;
197
+ // --- Resource blocks (image / svg / table + caption) -----------------
198
+ // Laid out as one atomic group. Unknown ids produce nothing (the warnings
199
+ // phase surfaces them); floated resources are anchored by their directive
200
+ // but land in a page band, so they are never measured inline.
201
+ if (vdtType === 'resource') {
202
+ if (!kind.resource || ctx.floatedIds.has(kind.resource.id))
203
+ return null;
204
+ // A resource narrower than its column (`placement.width`) sits in it
205
+ // per `placement.align`.
206
+ // A picture text wraps round (#627) takes its share of the column at
207
+ // its side (horizontal text only).
208
+ const wrap = measuringVertically() ? undefined : resolveResourceWrap(kind.resource, kind.resourceType, resolved.layout.wrap);
209
+ const rawFrac = kind.resource.placement?.width ?? kind.resourceType?.defaultPlacement?.width;
210
+ const frac = wrap ? wrap.width : typeof rawFrac === 'number' && rawFrac > 0 && rawFrac < 1 ? rawFrac : 1;
211
+ const align = wrap ? wrap.side : startEndAsLeftRight(kind.resource.placement?.align ?? kind.resourceType?.defaultPlacement?.align ?? 'left');
212
+ const embedWidth = columnWidth * frac;
213
+ const { resourceBlock, measured } = runMeasurement({
214
+ vdtType,
215
+ rawBlock,
216
+ contentBlock,
217
+ style,
218
+ measureMaxWidth: embedWidth,
219
+ measureOptions: { textAlign: style.textAlign },
220
+ mathEnabled,
221
+ useRich: false,
222
+ resolved,
223
+ resources: ctx.resources,
224
+ resourceTypes: ctx.resourceTypes,
225
+ resourceNumbering: ctx.resourceNumbering,
226
+ ...(ctx.captionCitations ? { captionCitations: ctx.captionCitations } : {}),
227
+ resource: kind.resource,
228
+ resourceType: kind.resourceType,
229
+ resourceNumber: kind.resourceNumber,
230
+ ...(opts?.figureMaxBodyWidth !== undefined ? { maxBodyWidth: opts.figureMaxBodyWidth } : {}),
231
+ ...(opts?.figureHeightDelta ? { bodyHeightDelta: opts.figureHeightDelta } : {}),
232
+ ...(opts?.uprightMaxLength !== undefined ? { upright: { maxLength: opts.uprightMaxLength } } : {}),
233
+ });
234
+ if (!resourceBlock)
235
+ return null;
236
+ if (frac < 1) {
237
+ const dx = (columnWidth - embedWidth) * (align === 'center' ? 0.5 : align === 'right' ? 1 : 0);
238
+ // An upright block (a vertical page) moves its frame along the flow.
239
+ if (resourceBlock.rotation)
240
+ resourceBlock.rotation.originX += dx;
241
+ else
242
+ shiftResourceBlockX(resourceBlock, dx);
243
+ }
244
+ return { kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: [], resourceBlock };
245
+ }
246
+ // Inline code in the code face (#624, `codeStyle.inline`), before the
247
+ // spans are resolved: they still match the parsed text then.
248
+ contentBlock = withInlineCode(contentBlock, rawBlock, resolved, style.fontSizePx);
249
+ contentBlock = resolveInlineSpans(contentBlock, style, ctx);
181
250
  // The orientation marks of vertical text change nothing in horizontal
182
251
  // text, which is measured as before them.
183
252
  const vertical = measuringVertically();
184
- const hasRichSpans = contentBlock.spans.some((s) => s.bold || s.italic || s.mathRender || s.ref || s.footnote || s.swatch || s.chip || s.script || s.smallCaps || s.fixedSpace || s.labelTab
253
+ // Tabs (#622): a tab character is a tab only under tab stops, and only
254
+ // the formatted-text breaker sets tabs.
255
+ const hasRichFonts = !!(style.boldFontString && style.italicFontString && style.boldItalicFontString);
256
+ const prepared = prepareTabs(contentBlock, style, resolved, { vertical, rich: hasRichFonts });
257
+ contentBlock = prepared.block;
258
+ // A drop cap (#623): the initial comes out of the text the measurers
259
+ // break, and the lines it stands beside are indented by it.
260
+ let dropCap;
261
+ const capSettings = vdtType === 'paragraph' && !opts?.dropCap?.skip ? paragraphDropCap(rawBlock, blockIdx, style, ctx) : undefined;
262
+ if (capSettings) {
263
+ if (!opts?.dropCap)
264
+ ctx.dropCapNotes?.delete(blockIdx);
265
+ const shrunk = opts?.dropCap?.lines;
266
+ const settings = shrunk !== undefined ? { ...capSettings, lines: shrunk, sink: Math.min(capSettings.sink, shrunk) } : capSettings;
267
+ if (vertical) {
268
+ ctx.dropCapNotes?.set(blockIdx, { reason: 'verticalText' });
269
+ }
270
+ else {
271
+ const prep = prepareDropCap(contentBlock, settings, style, resolved, opts?.dropCap?.leadInWords);
272
+ if (typeof prep === 'string')
273
+ ctx.dropCapNotes?.set(blockIdx, { reason: prep });
274
+ else {
275
+ dropCap = prep;
276
+ contentBlock = prep.block;
277
+ }
278
+ }
279
+ }
280
+ const hasRichSpans = contentBlock.spans.some((s) => s.bold || s.italic || s.mathRender || s.ref || s.footnote || s.swatch || s.chip || s.script || s.smallCaps || s.fixedSpace || s.labelTab || s.tab
185
281
  || s.emphasisMark || s.properName !== undefined || s.bookTitle || s.ruby || s.warichu || s.inserted || s.sideline || s.kunten
186
282
  // An inline `:rtl[…]` / `:ltr[…]` isolate is read on the spans.
187
283
  || s.direction !== undefined
188
284
  || (vertical && (s.combineUpright || s.orientation)));
189
285
  // List items reserve horizontal space for indent + bullet + gap.
190
- const { measureMaxWidth, lineXShift, measureFirstLineIndent, measureHangingIndent, } = computeMeasureViewport(columnWidth, style, listBullet);
286
+ const { measureMaxWidth, lineXShift, measureFirstLineIndent, measureHangingIndent, measureLineIndents, } = computeMeasureViewport(columnWidth, style, listBullet);
287
+ // A poem in the line layout (#620): each line of verse measured on its
288
+ // own by `pipeline/verseLines.ts`, against the poem's other stanzas
289
+ // (their longest line centres the poem); none of the paragraph's levers
290
+ // apply but the word spaces' shrink, down to `minWordSpacing`, that
291
+ // keeps a line a little too wide on one line.
292
+ if (contentBlock.verse?.stanza && versesLineByLine(rawBlock, resolved)) {
293
+ const direction = contentBlock.direction ?? getMeasureDirection();
294
+ const indices = poemStanzaIndices(contentBlocks, rawBlock, blockIdx);
295
+ const poem = indices.length === 0 ? [contentBlock] : indices.map((j) => {
296
+ if (j === blockIdx)
297
+ return contentBlock;
298
+ const sibling = resolveBlockKind(contentBlocks[j], { ...ctx, blockIdx: j, paragraphStyleOverride: opts?.styleOverride });
299
+ return prepareTabs(resolveInlineSpans(sibling.contentBlock, sibling.style, ctx), sibling.style, resolved, { vertical, rich: hasRichFonts }).block;
300
+ });
301
+ const measured = measureVerseLines({
302
+ contentBlock,
303
+ poem,
304
+ style,
305
+ measureMaxWidth,
306
+ settings: verseLinesSettings(contentBlock.verse.attrs, style, resolved, vertical),
307
+ direction,
308
+ frameDirection: getMeasureDirection(),
309
+ minWordSpacing: resolved.bodyText.minWordSpacing,
310
+ ...(cache ? { cache } : {}),
311
+ });
312
+ if (measured.lines.length === 0)
313
+ return null;
314
+ if (lineXShift > 0)
315
+ for (const line of measured.lines)
316
+ shiftLineX(line, lineXShift);
317
+ const linked = { ...measured, lines: linkSegments(measured.lines, contentBlock.spans) };
318
+ const { prefixLen, absoluteSourceMap } = stampSourceRanges(linked, rawBlock, contentBlock, bodyOffset, ctx.source);
319
+ return { kind, contentBlock, measured: linked, prefixLen, absoluteSourceMap };
320
+ }
191
321
  // A poem (#378): its bayts are laid out by `pipeline/verse.ts`, each
192
322
  // hemistich measured on its own; none of the paragraph's levers apply.
193
323
  if (contentBlock.verse) {
@@ -269,7 +399,6 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
269
399
  || (vdtType === 'listItem' && resolved.bodyText.avoidRuntsInLists));
270
400
  // Tracking is measured on the rich path (per-token canvas widths); left
271
401
  // undefined when unused so the common-case cache keys stay unchanged.
272
- const hasRichFonts = !!(style.boldFontString && style.italicFontString && style.boldItalicFontString);
273
402
  // The style's own tracking (a heading level's `letterSpacing`, EF-83),
274
403
  // plus what column balancing asks of a loose paragraph.
275
404
  const letterSpacingPx = hasRichFonts
@@ -283,6 +412,15 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
283
412
  // The paragraph's base direction: its own (`{dir=…}`), else the
284
413
  // document's (`setMeasureDirection`). Passed only when the block sets
285
414
  // one, so the measurements of every other block keep their cache keys.
415
+ // The drop cap's lines (#623): its width and gap on each line it sinks,
416
+ // the paragraph's own indents after them (its first-line indent dropped).
417
+ const capIndents = dropCap
418
+ ? (() => {
419
+ const base = { firstLineIndentPx: effectiveFirstLineIndent, hangingIndent: measureHangingIndent, ...(measureLineIndents ? { lineIndentsPx: measureLineIndents } : {}) };
420
+ const after = dropCap.sink === 0 ? 0 : lineIndentAt(base, dropCap.sink);
421
+ return [...dropCap.indents, measureHangingIndent || measureLineIndents ? after : 0];
422
+ })()
423
+ : undefined;
286
424
  const measureOptions = {
287
425
  ...(contentBlock.direction !== undefined ? { direction: contentBlock.direction } : {}),
288
426
  textAlign: style.textAlign,
@@ -290,11 +428,17 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
290
428
  // A paragraph style's own `wordBreak`: passed only when set, so the
291
429
  // measurements of every other block keep their cache keys.
292
430
  ...(style.cjkWordBreak !== undefined ? { cjkWordBreak: style.cjkWordBreak } : {}),
293
- firstLineIndentPx: effectiveFirstLineIndent,
294
- hangingIndent: measureHangingIndent,
431
+ firstLineIndentPx: capIndents ? 0 : effectiveFirstLineIndent,
432
+ hangingIndent: capIndents ? false : measureHangingIndent,
433
+ // A first-line indent paired with a hanging one (#620), or the lines a
434
+ // drop cap shortens (#623): passed only then, so every other block
435
+ // keeps its cache key.
436
+ ...(capIndents ? { lineIndentsPx: capIndents } : measureLineIndents ? { lineIndentsPx: measureLineIndents } : {}),
295
437
  // A numbered bibliography entry (#290): its label in a column as wide
296
438
  // as the turnover lines' indent.
297
- ...(measureHangingIndent && contentBlock.spans.some((s) => s.labelTab) ? { labelColumnPx: measureFirstLineIndent } : {}),
439
+ ...(measureHangingIndent && !measureLineIndents && !capIndents && contentBlock.spans.some((s) => s.labelTab) ? { labelColumnPx: measureFirstLineIndent } : {}),
440
+ // Tab stops (#622): passed only to a block that holds a tab.
441
+ ...(prepared.tabs ? { tabs: prepared.tabs } : {}),
298
442
  optimal: resolved.bodyText.optimalLineBreaking,
299
443
  maxStretchRatio: resolved.bodyText.maxWordSpacing,
300
444
  minShrinkRatio: resolved.bodyText.minWordSpacing,
@@ -312,6 +456,7 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
312
456
  })),
313
457
  }
314
458
  : {}),
459
+ ...(opts?.lineInsets && opts.lineInsets.length > 0 ? { lineInsets: opts.lineInsets } : {}),
315
460
  looseness: opts?.looseness,
316
461
  letterSpacingPx: letterSpacingPx !== 0 ? letterSpacingPx : undefined,
317
462
  hyphenationZonePx: style.hyphenationZonePx,
@@ -427,6 +572,25 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
427
572
  }
428
573
  if (measured.lines.length === 0)
429
574
  return null;
575
+ if (dropCap) {
576
+ // A lead-in of the whole first line: its words, counted on this
577
+ // setting, set again in small capitals (two settings at most).
578
+ if (dropCap.settings.leadIn?.words === 'line' && opts?.dropCap?.leadInWords === undefined) {
579
+ const first = measured.lines[0];
580
+ const words = first.text.trim().split(/\s+/).filter((w) => w.length > 0).length - (first.hyphenated && measured.lines.length > 1 ? 1 : 0);
581
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { ...opts?.dropCap, leadInWords: Math.max(1, words) } });
582
+ }
583
+ // A paragraph of fewer lines than the initial sinks.
584
+ const n = measured.lines.length;
585
+ if (n < dropCap.sink && opts?.dropCap?.lines === undefined) {
586
+ const handling = dropCap.settings.shortParagraph;
587
+ ctx.dropCapNotes?.set(blockIdx, { reason: 'shortParagraph', handling, ...(handling === 'shrink' ? { lines: n } : {}) });
588
+ if (handling === 'skip')
589
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { skip: true } });
590
+ if (handling === 'shrink')
591
+ return measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, { ...opts, dropCap: { ...opts?.dropCap, lines: n } });
592
+ }
593
+ }
430
594
  // A callout style's end mark (a proof's ∎, #530): flush right on the
431
595
  // last line.
432
596
  if (contentBlock.endMark !== undefined)
@@ -440,7 +604,7 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
440
604
  // marker the room on its right (`mirrorListMarker`).
441
605
  const opposite = contentBlock.direction !== undefined && contentBlock.direction !== getMeasureDirection();
442
606
  if (opposite) {
443
- mirrorLineSpans(measured.lines, measureMaxWidth, measureOptions.restWidths);
607
+ mirrorLineSpans(measured.lines, measureMaxWidth, measureOptions.restWidths, measureOptions.lineInsets);
444
608
  }
445
609
  const xShift = opposite ? Math.max(0, columnWidth - lineXShift - measureMaxWidth) : lineXShift;
446
610
  if (xShift > 0) {
@@ -453,6 +617,57 @@ export function measureContentBlock(rawBlock, blockIdx, columnWidth, ctx, opts)
453
617
  measured = { ...measured, lines: linkSegments(measured.lines, contentBlock.spans) };
454
618
  // Per-line source-range mapping using the block's plain→source map.
455
619
  // Accounts for heading numbering prefix which prepends chars with no source.
620
+ if (dropCap) {
621
+ // The lines were cut from the text without the initial: they are
622
+ // stamped against it, and their plain offsets then count past it, so
623
+ // they index the paragraph's own text and source map.
624
+ const { start, end } = dropCap.removed;
625
+ const strippedRaw = {
626
+ ...rawBlock,
627
+ text: rawBlock.text.slice(0, start) + rawBlock.text.slice(end),
628
+ sourceMap: [...rawBlock.sourceMap.slice(0, start), ...rawBlock.sourceMap.slice(end)],
629
+ sourceStart: start === 0 ? rawBlock.sourceMap[end] ?? rawBlock.sourceStart : rawBlock.sourceStart,
630
+ };
631
+ stampSourceRanges(measured, strippedRaw, contentBlock, bodyOffset, ctx.source);
632
+ for (const line of measured.lines) {
633
+ if (line.plainStart !== undefined)
634
+ line.plainStart = fullPlainOffset(dropCap, line.plainStart);
635
+ if (line.plainEnd !== undefined)
636
+ line.plainEnd = fullPlainOffset(dropCap, line.plainEnd);
637
+ }
638
+ const map = rawBlock.sourceMap;
639
+ const width = dropCap.width;
640
+ // Beside a wrapped picture (#627) the initial stands past its inset.
641
+ const capInset = lineInsetsAt(measureOptions.lineInsets, 0);
642
+ const capX = (opposite ? measureMaxWidth - width - capInset.end : capInset.start) + xShift;
643
+ const placed = {
644
+ text: dropCap.text,
645
+ fontString: dropCap.fontString,
646
+ fontSizePx: dropCap.fontSizePx,
647
+ color: dropCap.color,
648
+ width,
649
+ x: capX,
650
+ lines: dropCap.lines,
651
+ sink: dropCap.sink,
652
+ rise: dropCap.rise,
653
+ minLines: dropCap.settings.shortParagraph === 'reserve' ? dropCap.sink : 0,
654
+ plainStart: dropCap.plainStart,
655
+ plainEnd: dropCap.plainEnd,
656
+ // From the block's start when it opens the paragraph (markup before
657
+ // the letter, `**L`, included), so the block's range is unchanged.
658
+ ...(map.length > dropCap.plainStart
659
+ ? { sourceStart: (dropCap.plainStart === 0 ? rawBlock.sourceStart : map[dropCap.plainStart]) + bodyOffset, sourceEnd: map[dropCap.plainEnd - 1] + 1 + bodyOffset }
660
+ : {}),
661
+ word: dropCap.word,
662
+ wordRest: dropCap.wordRest,
663
+ ...(dropCap.hang ? { hang: { ...dropCap.hang, x: opposite ? capX + width : capX - dropCap.hang.width } } : {}),
664
+ };
665
+ return {
666
+ kind, contentBlock, measured, prefixLen: 0, absoluteSourceMap: rawBlock.sourceMap.map((o) => o + bodyOffset), mathDisplayRender,
667
+ ...(trackingPx !== 0 ? { letterSpacingPx: trackingPx } : {}),
668
+ dropCap: placed,
669
+ };
670
+ }
456
671
  const { prefixLen, absoluteSourceMap } = stampSourceRanges(measured, rawBlock, contentBlock, bodyOffset, ctx.source);
457
672
  return {
458
673
  kind, contentBlock, measured, prefixLen, absoluteSourceMap, mathDisplayRender,
@@ -1 +1 @@
1
- {"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measureContentBlock.js","sourceRoot":"","sources":["../../src/pipeline/measureContentBlock.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { VDTDocument } from '../vdt';
3
3
  /** The colour of a block's text a setting sets: its running text, bold and
4
4
  * italic runs, references, list marker (a bullet or a number), or a
5
5
  * number's separator. */
6
- export type TextColorRole = 'color' | 'bold' | 'italic' | 'ref' | 'bullet' | 'separator';
6
+ export type TextColorRole = 'color' | 'bold' | 'italic' | 'ref' | 'bullet' | 'separator' | 'dropCap' | 'code';
7
7
  /** The colours of a contents row: the entry's text (bold and italic runs
8
8
  * included), its number, and its page number and subtitle. */
9
9
  export type TocColorRole = 'color' | 'number' | 'segment';
@@ -1 +1 @@
1
- {"version":3,"file":"partPalette.d.ts","sourceRoot":"","sources":["../../src/pipeline/partPalette.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAsB,iBAAiB,EAAc,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,KAAK,EAA4C,WAAW,EAAwD,MAAM,QAAQ,CAAC;AAqB1I;;0BAE0B;AAC1B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzF;+DAC+D;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;oEAEoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,GAAG,SAAS,GAAG,WAAW,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GACvG,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAEjF;uEACuE;AACvE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AA+InG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,GACtC,eAAe,CAajB;AAmLD;;;;4DAI4D;AAC5D,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3C,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,EACrD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,GAC3E,IAAI,CAyBN"}
1
+ {"version":3,"file":"partPalette.d.ts","sourceRoot":"","sources":["../../src/pipeline/partPalette.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAsB,iBAAiB,EAAc,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/G,OAAO,KAAK,EAA4C,WAAW,EAAwD,MAAM,QAAQ,CAAC;AAsB1I;;0BAE0B;AAC1B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9G;+DAC+D;AAC/D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;oEAEoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,aAAa,GACrB,QAAQ,aAAa,EAAE,GAAG,OAAO,YAAY,EAAE,GAAG,SAAS,GAAG,WAAW,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GACvG,OAAO,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,CAAC;AAEjF;uEACuE;AACvE,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AA4JnG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3C,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,GACtC,eAAe,CAajB;AAqLD;;;;4DAI4D;AAC5D,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC3C,WAAW,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,EACrD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,GAC3E,IAAI,CAyBN"}
@@ -19,6 +19,7 @@
19
19
  // (`flowColorValues`). A cell's own fill follows its own link.
20
20
  import { resolveAllConfig } from './config';
21
21
  import { mergeCaptionStyle } from '../defaults/captionStyle';
22
+ import { CODE_BOX_STYLE_ID } from './codeBlocks';
22
23
  /** The colours a block's text is painted in: the VDT field and the kind of
23
24
  * setting each one comes from. */
24
25
  const TEXT_FIELDS = [
@@ -89,6 +90,10 @@ function frameRoles(rest) {
89
90
  function kindsOfPath(path, cfg) {
90
91
  if (path.some((k) => DESIGN_KEYS.has(k)))
91
92
  return [];
93
+ // A body paragraph's drop cap (#623), set by a paragraph style or a
94
+ // heading level or style.
95
+ if (path.includes('dropCap'))
96
+ return ['text:dropCap'];
92
97
  const [top, second] = path;
93
98
  const index = Number(second);
94
99
  // The setting inside a style, indices left out (`note.color`).
@@ -140,6 +145,20 @@ function kindsOfPath(path, cfg) {
140
145
  }
141
146
  case 'captionStyle':
142
147
  return [`caption:${rest(1)}`];
148
+ case 'codeStyle': {
149
+ // Code listings (#624): the code and its tokens, the box's frame
150
+ // (a box of the build's own style), inline code (a chip).
151
+ const setting = rest(1);
152
+ if (second === 'inline')
153
+ return [`chip:${rest(2)}@${CODE_BOX_STYLE_ID}`];
154
+ if (setting === 'background' || setting === 'highlightBackground')
155
+ return [`box:fill@${CODE_BOX_STYLE_ID}`];
156
+ if (setting === 'border.color')
157
+ return [`box:border@${CODE_BOX_STYLE_ID}`];
158
+ if (second === 'titleStyle' || second === 'label')
159
+ return frameRoles(setting).map((role) => `box:${role}@${CODE_BOX_STYLE_ID}`);
160
+ return ['text:code'];
161
+ }
143
162
  default:
144
163
  return [];
145
164
  }
@@ -323,8 +342,11 @@ function recolorBlock(block, r) {
323
342
  rec[key] = r.by(groups)(rec[key]);
324
343
  }
325
344
  // A run with a colour of its own: a contents entry's page number or
326
- // subtitle.
327
- recolorLines(block.lines, r.by(toc ? [['toc:segment']] : heading ?? []), r);
345
+ // subtitle; a token of a code listing (#624).
346
+ recolorLines(block.lines, r.by(toc ? [['toc:segment']] : block.type === 'code' ? [['text:code'], ['text:color']] : heading ?? []), r);
347
+ // A drop cap (#623): its own setting's colour, or the paragraph's.
348
+ if (block.dropCap)
349
+ block.dropCap.color = r.by([['text:dropCap'], ['text:color']])(block.dropCap.color) ?? block.dropCap.color;
328
350
  // A callout frame's decoration (background, border, stripe, title) is a
329
351
  // design overlay resolved from the style's palette-linked colours.
330
352
  if (block.type === 'callout' && block.designOverlay)