postext 1.23.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/__tests__/bundle/bitmapInfo.test.d.ts +2 -0
  2. package/dist/__tests__/bundle/bitmapInfo.test.d.ts.map +1 -0
  3. package/dist/__tests__/bundle/bitmapInfo.test.js +78 -0
  4. package/dist/__tests__/bundle/bitmapInfo.test.js.map +1 -0
  5. package/dist/__tests__/bundle/designOverflowPin.test.d.ts +2 -0
  6. package/dist/__tests__/bundle/designOverflowPin.test.d.ts.map +1 -0
  7. package/dist/__tests__/bundle/designOverflowPin.test.js +87 -0
  8. package/dist/__tests__/bundle/designOverflowPin.test.js.map +1 -0
  9. package/dist/__tests__/bundle.test.js +1 -1
  10. package/dist/__tests__/bundle.test.js.map +1 -1
  11. package/dist/__tests__/codeBlocks.test.js +1 -1
  12. package/dist/__tests__/codeBlocks.test.js.map +1 -1
  13. package/dist/__tests__/design/designTextOverflow.test.d.ts +2 -0
  14. package/dist/__tests__/design/designTextOverflow.test.d.ts.map +1 -0
  15. package/dist/__tests__/design/designTextOverflow.test.js +102 -0
  16. package/dist/__tests__/design/designTextOverflow.test.js.map +1 -0
  17. package/dist/__tests__/exports.test.js +11 -0
  18. package/dist/__tests__/exports.test.js.map +1 -1
  19. package/dist/__tests__/frontmatterInvalid.test.d.ts +2 -0
  20. package/dist/__tests__/frontmatterInvalid.test.d.ts.map +1 -0
  21. package/dist/__tests__/frontmatterInvalid.test.js +101 -0
  22. package/dist/__tests__/frontmatterInvalid.test.js.map +1 -0
  23. package/dist/__tests__/hardBreaks.test.js +1 -1
  24. package/dist/__tests__/hardBreaks.test.js.map +1 -1
  25. package/dist/__tests__/headingFirstLineIndent.test.d.ts +2 -0
  26. package/dist/__tests__/headingFirstLineIndent.test.d.ts.map +1 -0
  27. package/dist/__tests__/headingFirstLineIndent.test.js +185 -0
  28. package/dist/__tests__/headingFirstLineIndent.test.js.map +1 -0
  29. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  30. package/dist/__tests__/headingInlineMarks.test.js.map +1 -1
  31. package/dist/__tests__/headingLetterSpacing.test.js +1 -1
  32. package/dist/__tests__/headingLetterSpacing.test.js.map +1 -1
  33. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  34. package/dist/__tests__/mathSizeMigration.test.js.map +1 -1
  35. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts +2 -0
  36. package/dist/__tests__/pipeline/bitmapResolution.test.d.ts.map +1 -0
  37. package/dist/__tests__/pipeline/bitmapResolution.test.js +139 -0
  38. package/dist/__tests__/pipeline/bitmapResolution.test.js.map +1 -0
  39. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  40. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js.map +1 -1
  41. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  42. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js.map +1 -1
  43. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  44. package/dist/__tests__/pipeline/colonListRoom.test.js.map +1 -1
  45. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  46. package/dist/__tests__/pipeline/compoundBreaks.test.js.map +1 -1
  47. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  48. package/dist/__tests__/pipeline/dashBreaks.test.js.map +1 -1
  49. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts +2 -0
  50. package/dist/__tests__/pipeline/designTextTruncated.test.d.ts.map +1 -0
  51. package/dist/__tests__/pipeline/designTextTruncated.test.js +116 -0
  52. package/dist/__tests__/pipeline/designTextTruncated.test.js.map +1 -0
  53. package/dist/__tests__/pipeline/floatPlacement.test.js +3 -3
  54. package/dist/__tests__/pipeline/floatPlacement.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/floatShrink.test.d.ts +2 -0
  56. package/dist/__tests__/pipeline/floatShrink.test.d.ts.map +1 -0
  57. package/dist/__tests__/pipeline/floatShrink.test.js +298 -0
  58. package/dist/__tests__/pipeline/floatShrink.test.js.map +1 -0
  59. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  60. package/dist/__tests__/pipeline/headingSplitOrphans.test.js.map +1 -1
  61. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  62. package/dist/__tests__/pipeline/inlineFigureSpace.test.js.map +1 -1
  63. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  64. package/dist/__tests__/pipeline/paragraphContainerTail.test.js.map +1 -1
  65. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  66. package/dist/__tests__/pipeline/raggedOptimal.test.js.map +1 -1
  67. package/dist/__tests__/pipeline/textWrap.test.d.ts +2 -0
  68. package/dist/__tests__/pipeline/textWrap.test.d.ts.map +1 -0
  69. package/dist/__tests__/pipeline/textWrap.test.js +453 -0
  70. package/dist/__tests__/pipeline/textWrap.test.js.map +1 -0
  71. package/dist/__tests__/preflight.test.js +30 -1
  72. package/dist/__tests__/preflight.test.js.map +1 -1
  73. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts +2 -0
  74. package/dist/__tests__/presets/showcaseDesignOverflow.test.d.ts.map +1 -0
  75. package/dist/__tests__/presets/showcaseDesignOverflow.test.js +58 -0
  76. package/dist/__tests__/presets/showcaseDesignOverflow.test.js.map +1 -0
  77. package/dist/__tests__/table/booktabs.test.d.ts +2 -0
  78. package/dist/__tests__/table/booktabs.test.d.ts.map +1 -0
  79. package/dist/__tests__/table/booktabs.test.js +290 -0
  80. package/dist/__tests__/table/booktabs.test.js.map +1 -0
  81. package/dist/__tests__/textWrapMeasure.test.d.ts +2 -0
  82. package/dist/__tests__/textWrapMeasure.test.d.ts.map +1 -0
  83. package/dist/__tests__/textWrapMeasure.test.js +162 -0
  84. package/dist/__tests__/textWrapMeasure.test.js.map +1 -0
  85. package/dist/__tests__/verseLines.test.js +134 -4
  86. package/dist/__tests__/verseLines.test.js.map +1 -1
  87. package/dist/bitmapResolution.d.ts +42 -0
  88. package/dist/bitmapResolution.d.ts.map +1 -0
  89. package/dist/bitmapResolution.js +82 -0
  90. package/dist/bitmapResolution.js.map +1 -0
  91. package/dist/bundle/codec.d.ts +9 -2
  92. package/dist/bundle/codec.d.ts.map +1 -1
  93. package/dist/bundle/codec.js +24 -2
  94. package/dist/bundle/codec.js.map +1 -1
  95. package/dist/bundle/configVersion.d.ts +49 -8
  96. package/dist/bundle/configVersion.d.ts.map +1 -1
  97. package/dist/bundle/configVersion.js +161 -6
  98. package/dist/bundle/configVersion.js.map +1 -1
  99. package/dist/bundle/index.d.ts +3 -3
  100. package/dist/bundle/index.d.ts.map +1 -1
  101. package/dist/bundle/index.js +2 -2
  102. package/dist/bundle/index.js.map +1 -1
  103. package/dist/bundle/manifest.d.ts +12 -2
  104. package/dist/bundle/manifest.d.ts.map +1 -1
  105. package/dist/bundle/manifest.js +132 -6
  106. package/dist/bundle/manifest.js.map +1 -1
  107. package/dist/bundle/types.d.ts +28 -2
  108. package/dist/bundle/types.d.ts.map +1 -1
  109. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  110. package/dist/canvas-backend/blockRender.js +6 -4
  111. package/dist/canvas-backend/blockRender.js.map +1 -1
  112. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  113. package/dist/canvas-backend/renderResourceBlock.js +15 -1
  114. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  115. package/dist/configWarnings.js +29 -2
  116. package/dist/configWarnings.js.map +1 -1
  117. package/dist/defaults/headerFooter.d.ts +21 -6
  118. package/dist/defaults/headerFooter.d.ts.map +1 -1
  119. package/dist/defaults/headerFooter.js +37 -14
  120. package/dist/defaults/headerFooter.js.map +1 -1
  121. package/dist/defaults/headings.d.ts +5 -4
  122. package/dist/defaults/headings.d.ts.map +1 -1
  123. package/dist/defaults/headings.js +15 -4
  124. package/dist/defaults/headings.js.map +1 -1
  125. package/dist/defaults/index.d.ts +1 -1
  126. package/dist/defaults/index.d.ts.map +1 -1
  127. package/dist/defaults/index.js +1 -1
  128. package/dist/defaults/index.js.map +1 -1
  129. package/dist/defaults/layout.d.ts +30 -1
  130. package/dist/defaults/layout.d.ts.map +1 -1
  131. package/dist/defaults/layout.js +105 -1
  132. package/dist/defaults/layout.js.map +1 -1
  133. package/dist/defaults/parts.js +4 -4
  134. package/dist/defaults/parts.js.map +1 -1
  135. package/dist/defaults/tableStyle.d.ts.map +1 -1
  136. package/dist/defaults/tableStyle.js +44 -0
  137. package/dist/defaults/tableStyle.js.map +1 -1
  138. package/dist/defaults/toc.js +2 -2
  139. package/dist/defaults/verse.d.ts +2 -1
  140. package/dist/defaults/verse.d.ts.map +1 -1
  141. package/dist/defaults/verse.js +6 -1
  142. package/dist/defaults/verse.js.map +1 -1
  143. package/dist/design/layout.d.ts +15 -1
  144. package/dist/design/layout.d.ts.map +1 -1
  145. package/dist/design/layout.js +28 -4
  146. package/dist/design/layout.js.map +1 -1
  147. package/dist/frontmatter.d.ts +20 -0
  148. package/dist/frontmatter.d.ts.map +1 -1
  149. package/dist/frontmatter.js +69 -3
  150. package/dist/frontmatter.js.map +1 -1
  151. package/dist/html-backend.d.ts.map +1 -1
  152. package/dist/html-backend.js +22 -4
  153. package/dist/html-backend.js.map +1 -1
  154. package/dist/index.d.ts +13 -8
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +6 -3
  157. package/dist/index.js.map +1 -1
  158. package/dist/measure/bidiLines.d.ts +4 -3
  159. package/dist/measure/bidiLines.d.ts.map +1 -1
  160. package/dist/measure/bidiLines.js +12 -7
  161. package/dist/measure/bidiLines.js.map +1 -1
  162. package/dist/measure/cjkCompose.d.ts.map +1 -1
  163. package/dist/measure/cjkCompose.js +7 -3
  164. package/dist/measure/cjkCompose.js.map +1 -1
  165. package/dist/measure/hardBreaks.d.ts.map +1 -1
  166. package/dist/measure/hardBreaks.js +13 -1
  167. package/dist/measure/hardBreaks.js.map +1 -1
  168. package/dist/measure/index.d.ts +3 -3
  169. package/dist/measure/index.d.ts.map +1 -1
  170. package/dist/measure/index.js +4 -4
  171. package/dist/measure/index.js.map +1 -1
  172. package/dist/measure/plain.d.ts.map +1 -1
  173. package/dist/measure/plain.js +11 -7
  174. package/dist/measure/plain.js.map +1 -1
  175. package/dist/measure/rich.d.ts.map +1 -1
  176. package/dist/measure/rich.js +9 -6
  177. package/dist/measure/rich.js.map +1 -1
  178. package/dist/measure/types.d.ts +49 -3
  179. package/dist/measure/types.d.ts.map +1 -1
  180. package/dist/measure/types.js +67 -3
  181. package/dist/measure/types.js.map +1 -1
  182. package/dist/pipeline/build.d.ts.map +1 -1
  183. package/dist/pipeline/build.js +488 -31
  184. package/dist/pipeline/build.js.map +1 -1
  185. package/dist/pipeline/buildBlockKind.d.ts +5 -0
  186. package/dist/pipeline/buildBlockKind.d.ts.map +1 -1
  187. package/dist/pipeline/buildBlockKind.js +14 -1
  188. package/dist/pipeline/buildBlockKind.js.map +1 -1
  189. package/dist/pipeline/buildMeasurement.js +1 -1
  190. package/dist/pipeline/buildMeasurement.js.map +1 -1
  191. package/dist/pipeline/columnBalancing.d.ts.map +1 -1
  192. package/dist/pipeline/columnBalancing.js +5 -0
  193. package/dist/pipeline/columnBalancing.js.map +1 -1
  194. package/dist/pipeline/contentWarnings.d.ts +16 -0
  195. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  196. package/dist/pipeline/contentWarnings.js +113 -17
  197. package/dist/pipeline/contentWarnings.js.map +1 -1
  198. package/dist/pipeline/floatPlacement.d.ts +34 -4
  199. package/dist/pipeline/floatPlacement.d.ts.map +1 -1
  200. package/dist/pipeline/floatPlacement.js +35 -5
  201. package/dist/pipeline/floatPlacement.js.map +1 -1
  202. package/dist/pipeline/floatSlots.d.ts +7 -0
  203. package/dist/pipeline/floatSlots.d.ts.map +1 -1
  204. package/dist/pipeline/floatSlots.js.map +1 -1
  205. package/dist/pipeline/headerFooter.d.ts +4 -1
  206. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  207. package/dist/pipeline/headerFooter.js +19 -5
  208. package/dist/pipeline/headerFooter.js.map +1 -1
  209. package/dist/pipeline/measureContentBlock.d.ts +7 -0
  210. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  211. package/dist/pipeline/measureContentBlock.js +15 -6
  212. package/dist/pipeline/measureContentBlock.js.map +1 -1
  213. package/dist/pipeline/placement.d.ts.map +1 -1
  214. package/dist/pipeline/placement.js +7 -0
  215. package/dist/pipeline/placement.js.map +1 -1
  216. package/dist/pipeline/resourceLayout.d.ts +15 -0
  217. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  218. package/dist/pipeline/resourceLayout.js +95 -15
  219. package/dist/pipeline/resourceLayout.js.map +1 -1
  220. package/dist/pipeline/styles.d.ts.map +1 -1
  221. package/dist/pipeline/styles.js +8 -5
  222. package/dist/pipeline/styles.js.map +1 -1
  223. package/dist/pipeline/textWrap.d.ts +94 -0
  224. package/dist/pipeline/textWrap.d.ts.map +1 -0
  225. package/dist/pipeline/textWrap.js +188 -0
  226. package/dist/pipeline/textWrap.js.map +1 -0
  227. package/dist/pipeline/verseLines.d.ts +22 -2
  228. package/dist/pipeline/verseLines.d.ts.map +1 -1
  229. package/dist/pipeline/verseLines.js +52 -4
  230. package/dist/pipeline/verseLines.js.map +1 -1
  231. package/dist/preflight.d.ts +46 -1
  232. package/dist/preflight.d.ts.map +1 -1
  233. package/dist/preflight.js +42 -7
  234. package/dist/preflight.js.map +1 -1
  235. package/dist/table/booktabs.d.ts +37 -0
  236. package/dist/table/booktabs.d.ts.map +1 -0
  237. package/dist/table/booktabs.js +82 -0
  238. package/dist/table/booktabs.js.map +1 -0
  239. package/dist/types.d.ts +227 -8
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/vdt.d.ts +131 -6
  242. package/dist/vdt.d.ts.map +1 -1
  243. package/dist/vdt.js +3 -2
  244. package/dist/vdt.js.map +1 -1
  245. package/dist/word/index.d.ts +1 -1
  246. package/dist/word/index.d.ts.map +1 -1
  247. package/dist/word/index.js +1 -1
  248. package/dist/word/index.js.map +1 -1
  249. package/dist/word/toMarkdown.d.ts +10 -0
  250. package/dist/word/toMarkdown.d.ts.map +1 -1
  251. package/dist/word/toMarkdown.js +16 -1
  252. package/dist/word/toMarkdown.js.map +1 -1
  253. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAqDxC,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,GAAG,GAAG,GAAG,CAAC;AAEhB,SAAS,UAAU,CAAC,UAA8B;IAChD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,IAAI,CAAC,KAAyB;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,CAAC,KAAK,aAAa,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,8BAA8B;AAC9B,SAAS,WAAW,CAAC,GAAgB,EAAE,SAA0C;IAC/E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgD,CAAC;IACpE,MAAM,IAAI,GAAG,CAAC,CAAuB,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5H,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,SAAS,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM;QAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK;QAAE,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;YAAE,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACjG,OAAO,GAAG,CAAC;AACb,CAAC;AAgBD;;;2EAG2E;AAC3E,MAAM,UAAU,sBAAsB,CAAC,GAAgB,EAAE,UAA6D,EAAE;IACtH,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAgB,EAAE,UAA4B,EAAE;IAChF,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,GAAgB,EAAE,OAAyB,EAAE,MAAgC;IACjG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,EAAE,CAAC;IACxE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAE5B,MAAM,UAAU,GAAG,CAAC,GAAW,EAA2B,EAAE;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;IACpE,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;QACvC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3E,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,iCAAiC;IACjC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,SAAiB,EAAE,IAAkB,EAAE,EAAE;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACtD,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/J,CAAC;IACH,CAAC,CAAC;IAEF,4DAA4D;IAC5D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,UAAU,GAAG,CAAC,MAA0B,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa,EAAE,KAAa,EAAE,SAAiB,EAAE,IAAiB,EAAE,UAAmB,EAAE,GAAsC,EAAE,EAAE;QACnN,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,MAAM,IAAI,GAAG,MAAM,IAAI,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpI,MAAM,GAAG,GAAG,UAAU,IAAI,QAAQ,EAAE,EAAE,CAAC;QACvC,IAAI,EAAE,CAAC,OAAO,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAClJ,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM;gBAC5F,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE;gBAClG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM;aAC/C,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;YAC7F,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/G,IAAI,CAAC,EAAE,CAAC,OAAO;gBAAE,OAAO;YACxB,IAAI,GAAG,GAAG,EAAE,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,oBAAoB;oBAC1B,QAAQ,EAAE,GAAG,GAAG,EAAE,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;oBACzE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB;oBAC7E,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM;iBAC/C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC/J,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,KAAyB,EAAE,SAAiB,EAAE,IAAiB,EAAE,EAAE;QACrG,IAAI,OAAO,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO;QACjD,IAAI,OAAO,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpN,CAAC;QACD,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACtC,MAAM,IAAI,GAAgB;YACxB,CAAC,EAAE,GAAG,CAAC,UAAU;YACjB,CAAC,EAAE,GAAG,CAAC,UAAU;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU;SACzC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7B,sDAAsD;QACtD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAE,SAAiB,EAAE,UAAkB,EAAE,GAAqC,EAAE,QAAiB,EAAE,EAAE;YAChJ,IAAI,SAAqE,CAAC;YAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtJ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,GAAG;wBAAE,SAAS;oBACnB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAChE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,WAAW,GAAG,IAAI;wBAAE,SAAS;oBAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,IAAI,IAAI,CAAC;wBAAE,SAAS;oBACxB,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACjC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;wBACxD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;wBAChG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzH,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,QAAQ,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBACpB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/H,4CAA4C;oBAC5C,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;wBAAE,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3I,CAAC;YACH,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI;oBACtE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI;oBAC1I,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzH,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,wDAAwD;QACxD,MAAM,aAAa,GAAG,CAAC,IAAiB,EAAE,EAAE;YAC1C,IAAI,QAAQ,IAAI,MAAM,IAAI,CAAC;gBAAE,OAAO;YACpC,MAAM,IAAI,GAAyD;gBACjE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;gBACzB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;gBACxB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBACtD,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;aAC1D,CAAC;YACF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC/B,qEAAqE;gBACrE,IAAI,GAAG,GAAG,SAAS,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrH,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,IAA+B,EAAE,EAAE;YACpD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBACnC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACtB,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW;wBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACvH,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;wBAC1C,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;wBACxD,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9B,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;wBAAE,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC7B,+DAA+D;oBAC/D,mBAAmB;oBACnB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC1D,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;wBAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5G,IAAI,CAAC,GAAG;wBAAE,SAAS;oBACnB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,WAAW,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;wBAChE,GAAG,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;4BACtE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;4BACtF,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACzI,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,KAA+B,EAAE,EAAE;YACrD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM;oBAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5G,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;wBAAE,SAAS;oBAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC7N,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACvG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM;gBAAE,SAAS;YAC3B,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YAC/D,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;YAC/B,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;oBAAE,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/G,MAAM,IAAI,GAAgB,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrJ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;oBACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBAClI,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBACvB,IAAI,KAAK,EAAE,CAAC;oBACV,sEAAsE;oBACtE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO;wBAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;wBACtE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;oBACxB,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBACjG,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;wBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;wBACvB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;4BAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBACxI,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7F,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The rules of a `'booktabs'` table (#625): LaTeX's `\toprule`, `\midrule`,
3
+ * `\cmidrule` and `\bottomrule`, computed once from a laid-out table (or a
4
+ * slice of one) so that every renderer strokes the same lines.
5
+ */
6
+ import type { TableContinuedFootRule, TableSpanRules } from '../types';
7
+ import type { VDTResourceTableLayout, VDTTableStroke } from '../vdt';
8
+ /** The widths (px) and options of a booktabs table, resolved. */
9
+ export interface BooktabsRuleSpec {
10
+ /** Top and bottom rules. */
11
+ heavyPx: number;
12
+ /** Rule under the header rows, group rules, a `'light'` continued foot. */
13
+ lightPx: number;
14
+ /** Rules under spanning header cells. */
15
+ spanPx: number;
16
+ spanRules: TableSpanRules;
17
+ /** How much a `'trimmed'` span rule is shortened at each end. */
18
+ spanTrimPx: number;
19
+ groupRules: boolean;
20
+ continuedFootRule: TableContinuedFootRule;
21
+ }
22
+ /**
23
+ * The strokes of a booktabs table laid out with its top at y = 0 (cells and
24
+ * `rowEdges` in the table's frame, already mirrored for a table that runs
25
+ * the other way): a heavy rule on the top edge, a light rule under the last
26
+ * header row, a rule under every header cell spanning several columns above
27
+ * that row, a light rule above each group-head body row (`groupRules`) and a
28
+ * heavy rule under the last row — or the `continuedFootRule` when the table
29
+ * (slice) goes on overleaf. A continuation slice repeats the header rows, so
30
+ * it gets the top and header rules again. Strokes of zero width are left
31
+ * out.
32
+ *
33
+ * `headerRowCount` is the model's (`tableHeaderRowCount`): its rows are
34
+ * the first ones of every slice.
35
+ */
36
+ export declare function booktabsStrokes(table: Pick<VDTResourceTableLayout, 'cells' | 'rowEdges' | 'columnEdges'>, headerRowCount: number, spec: BooktabsRuleSpec, continues: boolean): VDTTableStroke[];
37
+ //# sourceMappingURL=booktabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booktabs.d.ts","sourceRoot":"","sources":["../../src/table/booktabs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAErE,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,sBAAsB,CAAC;CAC3C;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC,EACzE,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,OAAO,GACjB,cAAc,EAAE,CA6DlB"}
@@ -0,0 +1,82 @@
1
+ /** Edges closer than this are the same edge (rounding of summed heights). */
2
+ const EPS = 0.01;
3
+ /**
4
+ * The strokes of a booktabs table laid out with its top at y = 0 (cells and
5
+ * `rowEdges` in the table's frame, already mirrored for a table that runs
6
+ * the other way): a heavy rule on the top edge, a light rule under the last
7
+ * header row, a rule under every header cell spanning several columns above
8
+ * that row, a light rule above each group-head body row (`groupRules`) and a
9
+ * heavy rule under the last row — or the `continuedFootRule` when the table
10
+ * (slice) goes on overleaf. A continuation slice repeats the header rows, so
11
+ * it gets the top and header rules again. Strokes of zero width are left
12
+ * out.
13
+ *
14
+ * `headerRowCount` is the model's (`tableHeaderRowCount`): its rows are
15
+ * the first ones of every slice.
16
+ */
17
+ export function booktabsStrokes(table, headerRowCount, spec, continues) {
18
+ const { cells, rowEdges, columnEdges } = table;
19
+ const rowCount = rowEdges.length - 1;
20
+ if (rowCount <= 0 || cells.length === 0)
21
+ return [];
22
+ const left = Math.min(...columnEdges);
23
+ const right = Math.max(...columnEdges);
24
+ const top = rowEdges[0] ?? 0;
25
+ const bottom = rowEdges[rowCount] ?? top;
26
+ const colCount = columnEdges.length - 1;
27
+ const strokes = [];
28
+ const rule = (x1, x2, y, widthPx) => {
29
+ if (widthPx > 0 && x2 - x1 > EPS)
30
+ strokes.push({ x1, y1: y, x2, y2: y, widthPx });
31
+ };
32
+ rule(left, right, top, spec.heavyPx);
33
+ // The header rows open every slice: they end at the edge of the slice's
34
+ // `headerRowCount`-th row.
35
+ const headRows = Math.min(headerRowCount, rowCount);
36
+ const headerBottom = headRows > 0 ? rowEdges[headRows] ?? top : top;
37
+ const hasHeaderRule = headRows > 0 && headerBottom < bottom - EPS;
38
+ if (headRows > 0 && spec.spanRules !== 'none') {
39
+ for (const cell of cells) {
40
+ if (cell.row >= headerRowCount || cell.colSpan <= 1)
41
+ continue;
42
+ const y = cell.rect.y + cell.rect.height;
43
+ if (y >= headerBottom - EPS)
44
+ continue;
45
+ const trim = spec.spanRules === 'trimmed' ? spec.spanTrimPx : 0;
46
+ rule(cell.rect.x + trim, cell.rect.x + cell.rect.width - trim, y, spec.spanPx);
47
+ }
48
+ }
49
+ if (hasHeaderRule)
50
+ rule(left, right, headerBottom, spec.lightPx);
51
+ if (spec.groupRules) {
52
+ // A body row heads a group when its only cell runs across every column
53
+ // (in a table of several), or when all its cells are header cells —
54
+ // the rows `TableRowMetrics.groupHeaderRow` marks.
55
+ const rows = new Map();
56
+ for (const cell of cells) {
57
+ if (cell.row < headerRowCount)
58
+ continue;
59
+ const r = rows.get(cell.row) ?? { primaries: 0, fullSpan: false, allHeader: true, y: cell.rect.y };
60
+ r.primaries++;
61
+ if (cell.colSpan >= colCount)
62
+ r.fullSpan = true;
63
+ if (!cell.isHeader)
64
+ r.allHeader = false;
65
+ r.y = Math.min(r.y, cell.rect.y);
66
+ rows.set(cell.row, r);
67
+ }
68
+ for (const r of rows.values()) {
69
+ const heads = (r.primaries === 1 && r.fullSpan && colCount > 1) || r.allHeader;
70
+ // Not on the row that opens the slice: the top or header rule is there.
71
+ if (heads && r.y > headerBottom + EPS && r.y < bottom - EPS)
72
+ rule(left, right, r.y, spec.lightPx);
73
+ }
74
+ }
75
+ const foot = !continues ? spec.heavyPx
76
+ : spec.continuedFootRule === 'bottom' ? spec.heavyPx
77
+ : spec.continuedFootRule === 'light' ? spec.lightPx
78
+ : 0;
79
+ rule(left, right, bottom, foot);
80
+ return strokes;
81
+ }
82
+ //# sourceMappingURL=booktabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booktabs.js","sourceRoot":"","sources":["../../src/table/booktabs.ts"],"names":[],"mappings":"AAuBA,6EAA6E;AAC7E,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAyE,EACzE,cAAsB,EACtB,IAAsB,EACtB,SAAkB;IAElB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,CAAS,EAAE,OAAe,EAAE,EAAE;QAClE,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAErC,wEAAwE;IACxE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,IAAI,YAAY,GAAG,MAAM,GAAG,GAAG,CAAC;IAElE,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;gBAAE,SAAS;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,IAAI,YAAY,GAAG,GAAG;gBAAE,SAAS;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEjE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,uEAAuE;QACvE,oEAAoE;QACpE,mDAAmD;QACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmF,CAAC;QACxG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,GAAG,cAAc;gBAAE,SAAS;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnG,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ;gBAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;YACxC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;YAC/E,wEAAwE;YACxE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG;gBAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;QACpC,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;YACpD,CAAC,CAAC,IAAI,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;gBACnD,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -88,7 +88,79 @@ export interface ResourcePlacement {
88
88
  * figure's top (its bottom for a bottom float). A page without such a
89
89
  * column keeps the caption under the figure. Column floats only. */
90
90
  captionSide?: boolean;
91
- }
91
+ /** Scale a floated picture (bitmap, SVG, a video's poster) down, keeping
92
+ * its proportions, to the room a slot has, instead of moving it on
93
+ * (#626). `'never'`: a float either fits a slot at its size or waits
94
+ * for a later one. `'page'`: a float too tall for the band of a fresh
95
+ * page — the content area less what already stands there: an opener,
96
+ * other floats, footnotes, the float gap — shrinks to that band.
97
+ * `'slot'`: as `'page'`, and a float too tall for a slot of the page it
98
+ * is cited on (or for a fresh page's band beside another float) shrinks
99
+ * to it when it fits there at {@link minScale} or more; the slots are
100
+ * tried in their usual order. A picture with a safe area is cropped
101
+ * within it first. Tables (which split), floated boxes, comic strips,
102
+ * rotated floats and inline embeds are never scaled by it. Default:
103
+ * the type's `defaultPlacement`, then `layout.floatShrink.mode`, then
104
+ * `'never'`. */
105
+ shrink?: FloatShrinkMode;
106
+ /** The smallest scale {@link shrink} sets a picture at, 0 to 1 (default
107
+ * 0.7, then `layout.floatShrink.minScale`). A slot that needs less is
108
+ * passed over; on a fresh page, where the float has nowhere else to go,
109
+ * it is set at this scale and runs past the band. */
110
+ minScale?: number;
111
+ /** The measure of a picture's caption and note when the picture is
112
+ * narrower than its slot (scaled by {@link shrink} or
113
+ * `layout.fitFiguresToPage`, or a bitmap smaller than the column):
114
+ * `'slot'` (the default) keeps the slot's measure; `'body'` sets them
115
+ * as wide as the picture, under it per {@link align}. */
116
+ captionMeasure?: 'slot' | 'body';
117
+ /** Run the text beside the resource (#627): it sits at this side of its
118
+ * column, and the lines beside it are set to the measure left over,
119
+ * {@link wrapGap} clear of its box (caption included), then return to
120
+ * the full measure under it. `'left'` / `'right'` are sides of the body
121
+ * flow, as {@link align}'s (on a right-to-left document's mirrored
122
+ * pages `'left'` is the sheet's right); `'start'` / `'end'` are the
123
+ * same sides by their logical names. Applies to an inline embed
124
+ * (`position: 'here'`, the text after the `::resource` line runs beside
125
+ * it) and to a `span: 'column'` float at the head or foot of one column
126
+ * (the column's first or last lines run beside it); a page-span float,
127
+ * a float across several columns, a side-column float, a rotated one
128
+ * and anything in vertical text keep their whole band. The resource
129
+ * takes {@link width} of the column, or `layout.wrap.defaultWidth`
130
+ * when it sets none. Where the text left beside it would be narrower
131
+ * than `layout.wrap.minTextWidth`, or the resource shorter than
132
+ * `layout.wrap.minLinesBeside` lines, it takes its band whole and a
133
+ * `textWrap` warning says so. Default `'none'`. */
134
+ wrap?: WrapSide;
135
+ /** The space between a wrapped resource's box (caption included) and
136
+ * the text beside it, and under it before the text runs full width
137
+ * again (rounded up to whole grid lines). Default `layout.wrap.gap`,
138
+ * else one body line, the float gap. */
139
+ wrapGap?: Dimension;
140
+ }
141
+ /** The side of its column a resource or a box sits on with text running
142
+ * beside it (see `ResourcePlacement.wrap`, #627). */
143
+ export type WrapSide = 'none' | 'left' | 'right' | 'start' | 'end';
144
+ /** The document's text wrap settings (`LayoutConfig.wrap`, #627). */
145
+ export interface TextWrapConfig {
146
+ /** Default `ResourcePlacement.wrapGap`: the space between a wrapped
147
+ * picture and the text. Default: one body line (the float gap). */
148
+ gap?: Dimension;
149
+ /** The narrowest measure the text beside a wrapped picture may take: a
150
+ * length, or a share of the column (`0.3`). Narrower, the picture takes
151
+ * its band whole (`textWrap` warning). Default 12 em of body text. */
152
+ minTextWidth?: Dimension | number;
153
+ /** The fewest lines of text worth setting beside a picture. A picture
154
+ * shorter than that (gap included) takes its band whole (`textWrap`
155
+ * warning). Default 2. */
156
+ minLinesBeside?: number;
157
+ /** The share of the column a wrapped resource takes when its placement
158
+ * sets no `width`, 0 to 1. Default 0.45. */
159
+ defaultWidth?: number;
160
+ }
161
+ /** How a floated picture is scaled to the room of a slot (see
162
+ * `ResourcePlacement.shrink`). */
163
+ export type FloatShrinkMode = 'never' | 'page' | 'slot';
92
164
  /** A user-definable category of resource (e.g. "Figure", "Table"). Drives
93
165
  * numbering, caption prefixes, and inline-reference labels. */
94
166
  export interface ResourceType {
@@ -351,8 +423,21 @@ export interface Resource {
351
423
  bitmap?: {
352
424
  fileId: string;
353
425
  format: string;
426
+ /** The file's width in pixels (not its print size). */
354
427
  width: number;
428
+ /** The file's height in pixels. */
355
429
  height: number;
430
+ /** Pixels per inch of the picture at its natural print size (#631):
431
+ * its natural width in layout px is `width × page.dpi / resolution`
432
+ * (the height likewise), and the column still caps it. Absent:
433
+ * `layout.bitmapResolution` decides (by default the pixels are read
434
+ * at `page.dpi`). */
435
+ resolution?: number;
436
+ /** The resolution stored in the file (PNG `pHYs`, JPEG JFIF / EXIF,
437
+ * WebP EXIF; a Word picture's printed extent), as the host read it,
438
+ * horizontal ppi. Used under `layout.bitmapResolution: 'file'`, where
439
+ * 72 and 96 count as unset; shown by the Sandbox. */
440
+ fileResolution?: number;
356
441
  };
357
442
  /** Present when `kind === 'svg'`. */
358
443
  svg?: {
@@ -756,6 +841,10 @@ export interface PageConfig {
756
841
  width?: Dimension;
757
842
  height?: Dimension;
758
843
  margins?: PageMargins;
844
+ /** Layout px per inch: every length is converted at this rate, and a
845
+ * bitmap without a resolution of its own (see `Resource.bitmap.resolution`
846
+ * and `layout.bitmapResolution`) is laid out one pixel per layout px.
847
+ * Default 300. */
759
848
  dpi?: number;
760
849
  cutLines?: CutLinesConfig;
761
850
  baselineGrid?: BaselineGridConfig;
@@ -857,6 +946,25 @@ export interface LayoutConfig {
857
946
  * pages are sized for their figures; the HTML viewer, whose pages are as
858
947
  * tall as the screen, turns it on. */
859
948
  fitFiguresToPage?: boolean;
949
+ /** How a bitmap without its own `resolution` takes its natural print
950
+ * size (#631): `'document'` (default) reads its pixels at `page.dpi`;
951
+ * a number is the ppi of every such bitmap; `'file'` uses the
952
+ * resolution read from the file (`Resource.bitmap.fileResolution`),
953
+ * 72 and 96 counting as unset, else `page.dpi`. The column caps the
954
+ * natural size either way; a smaller picture is never enlarged. */
955
+ bitmapResolution?: BitmapResolution;
956
+ /** The document's default for scaling a floated picture to the room of
957
+ * its slot (#626): `mode` as `ResourcePlacement.shrink`, `minScale` as
958
+ * `ResourcePlacement.minScale` (default 0.7). A resource's placement,
959
+ * then its type's `defaultPlacement`, override it. Default
960
+ * `{ mode: 'never' }`. Unlike {@link fitFiguresToPage}, a hard cap at
961
+ * the content area, this looks at the band the float would take. */
962
+ floatShrink?: FloatShrinkConfig;
963
+ /** Text wrap round a resource or a box narrower than its column (#627):
964
+ * the gap, the narrowest text measure, the fewest lines beside and the
965
+ * default width (see {@link TextWrapConfig}). A resource opts in with
966
+ * `placement.wrap`, a box with its `wrap` attribute. */
967
+ wrap?: TextWrapConfig;
860
968
  /** On the closing page of a chapter (and of the document), move the
861
969
  * page-wide figures and tables set below the last band of text up to sit
862
970
  * one float gap under it, stacked in their order, instead of at the page
@@ -909,6 +1017,22 @@ export interface LayoutConfig {
909
1017
  * document's writing mode unless it sets its own. */
910
1018
  writingMode?: WritingMode;
911
1019
  }
1020
+ /** How bitmaps without a resolution of their own are sized (see
1021
+ * `LayoutConfig.bitmapResolution`): `'document'`, `'file'` or a ppi. */
1022
+ export type BitmapResolution = 'document' | 'file' | number;
1023
+ /** The document default for scaling floated pictures (see
1024
+ * `LayoutConfig.floatShrink`). */
1025
+ export interface FloatShrinkConfig {
1026
+ mode?: FloatShrinkMode;
1027
+ minScale?: number;
1028
+ }
1029
+ /** {@link TextWrapConfig} resolved; `gap` absent is one body line. */
1030
+ export interface ResolvedTextWrapConfig {
1031
+ gap?: Dimension;
1032
+ minTextWidth: Dimension | number;
1033
+ minLinesBeside: number;
1034
+ defaultWidth: number;
1035
+ }
912
1036
  /** Where an inline resource keeps the float gap (see
913
1037
  * `LayoutConfig.inlineResourceGap`). */
914
1038
  export type InlineResourceGap = 'around' | 'above';
@@ -927,6 +1051,12 @@ export interface ResolvedLayoutConfig {
927
1051
  lineWidth: Dimension;
928
1052
  };
929
1053
  fitFiguresToPage: boolean;
1054
+ bitmapResolution: BitmapResolution;
1055
+ floatShrink: {
1056
+ mode: FloatShrinkMode;
1057
+ minScale: number;
1058
+ };
1059
+ wrap: ResolvedTextWrapConfig;
930
1060
  hugClosingFloats: boolean;
931
1061
  inlineResourceGap: InlineResourceGap;
932
1062
  inlineResourceGapInBoxes: boolean;
@@ -1426,6 +1556,13 @@ export interface VerseConfig {
1426
1556
  * column (a haiku, a tanka): it moves on whole when it does not fit.
1427
1557
  * Default `0`, off. */
1428
1558
  keepStanzas?: number;
1559
+ /** A line of verse a little wider than the measure tightens its word
1560
+ * spaces, down to `bodyText.minWordSpacing` of their natural width, and
1561
+ * stays on one line; only a line that does not fit even then turns
1562
+ * over. `false`: every line wider than the measure turns over, as
1563
+ * postext 1.23 set them (configurations stored by 1.23 are read with it
1564
+ * when they hold a poem set line by line). Default `true`. */
1565
+ tighten?: boolean;
1429
1566
  }
1430
1567
  export interface ResolvedVerseConfig {
1431
1568
  layout: 'auto' | 'bayt';
@@ -1435,6 +1572,7 @@ export interface ResolvedVerseConfig {
1435
1572
  turnoverMark: string;
1436
1573
  stanzaSpace: number;
1437
1574
  keepStanzas: number;
1575
+ tighten: boolean;
1438
1576
  }
1439
1577
  /** What `lineNumbers` counts (#621): `'verse'`, the lines of `:::verse`
1440
1578
  * poems (a turnover takes no number); `'all'`, every laid-out line of the
@@ -1875,14 +2013,50 @@ export interface TableStyleConfig {
1875
2013
  borderWidth?: Dimension;
1876
2014
  /** Inner padding inside each cell. Default `0.375em`. */
1877
2015
  cellPadding?: Dimension;
1878
- /** Which rules to stroke when {@link borders} is on. Default `'grid'`. */
2016
+ /** Which rules to stroke when {@link borders} is on. Default `'grid'`.
2017
+ * `'booktabs'` strokes its own widths ({@link heavyRuleWidth},
2018
+ * {@link lightRuleWidth}, {@link spanRuleWidth}) and ignores
2019
+ * {@link borderWidth}. */
1879
2020
  rules?: TableRules;
1880
2021
  /** Corner radius of the table's outer frame. Default `0` (square). The
1881
2022
  * cell fills are clipped to the rounded frame, whatever the rules (with
1882
2023
  * `'none'` the fills alone show the rounded shape); the inner rules stay
1883
2024
  * straight. A table split across pages rounds the top corners of its
1884
- * first part and the bottom corners of its last. */
2025
+ * first part and the bottom corners of its last. `'booktabs'` rules
2026
+ * have no frame to round: they stay straight (the fills are still
2027
+ * clipped). */
1885
2028
  borderRadius?: Dimension;
2029
+ /** `'booktabs'` (#625): width of the rules above the table and under its
2030
+ * last row (LaTeX `\heavyrulewidth`). An `em` value is relative to
2031
+ * {@link bodyFontSize}. Default `0.08em`. */
2032
+ heavyRuleWidth?: Dimension;
2033
+ /** `'booktabs'`: width of the rule under the header rows and of the
2034
+ * group rules (`\lightrulewidth`). An `em` value is relative to
2035
+ * {@link bodyFontSize}. Default `0.05em`. */
2036
+ lightRuleWidth?: Dimension;
2037
+ /** `'booktabs'`: width of the rules under header cells that span several
2038
+ * columns (`\cmidrulewidth`). An `em` value is relative to
2039
+ * {@link bodyFontSize}. Default `0.03em`. */
2040
+ spanRuleWidth?: Dimension;
2041
+ /** `'booktabs'`: the rules under header cells that span more than one
2042
+ * column, above the last header row: shortened at both ends by
2043
+ * {@link spanRuleTrim} so neighbouring rules do not touch
2044
+ * (`'trimmed'`, the default, `\cmidrule(lr)`), across the whole cell
2045
+ * (`'full'`), or none (`'none'`). */
2046
+ spanRules?: TableSpanRules;
2047
+ /** `'booktabs'`: how much a `'trimmed'` span rule is shortened at each
2048
+ * end. An `em` value is relative to {@link bodyFontSize}. Default
2049
+ * `0.5em`. */
2050
+ spanRuleTrim?: Dimension;
2051
+ /** `'booktabs'`: a light rule above every body row that heads a group
2052
+ * (one cell across every column, or all header cells), except one that
2053
+ * opens a page. Default `false`. */
2054
+ groupRules?: boolean;
2055
+ /** `'booktabs'`: the rule that closes a part of a split table that goes
2056
+ * on overleaf: the heavy bottom rule (`'bottom'`), a light rule
2057
+ * (`'light'`, the default: the heavy rule closes only the real last
2058
+ * row), or none (`'none'`). */
2059
+ continuedFootRule?: TableContinuedFootRule;
1886
2060
  /** What happens to a table taller than the space a page offers: continue
1887
2061
  * it on the following pages (`'split'`, the default), keep only the rows
1888
2062
  * that fit (`'clip'`), or leave it out (`'hide'`). See {@link TableOverflow}. */
@@ -1914,8 +2088,17 @@ export interface ResolvedNamedTableStyleConfig extends ResolvedTableStyleConfig
1914
2088
  /** Letter case of a table's header cells (`TableStyleConfig.headerTextTransform`). */
1915
2089
  export type TableTextTransform = 'none' | 'uppercase';
1916
2090
  /** Rule pattern of a table: the full cell grid, horizontal rules only (top
1917
- * and bottom edge of every row), the outer frame only, or none. */
1918
- export type TableRules = 'grid' | 'horizontal' | 'outer' | 'none';
2091
+ * and bottom edge of every row), the outer frame only, none, or the
2092
+ * booktabs pattern of journal tables (#625): a heavy rule above the table
2093
+ * and under its last row, a light rule under the header, short rules
2094
+ * under spanning header cells and no vertical rules. */
2095
+ export type TableRules = 'grid' | 'horizontal' | 'outer' | 'none' | 'booktabs';
2096
+ /** Rules of a `'booktabs'` table under header cells that span several
2097
+ * columns (`TableStyleConfig.spanRules`). */
2098
+ export type TableSpanRules = 'trimmed' | 'full' | 'none';
2099
+ /** What closes a part of a `'booktabs'` table that continues on the next
2100
+ * page (`TableStyleConfig.continuedFootRule`). */
2101
+ export type TableContinuedFootRule = 'bottom' | 'light' | 'none';
1919
2102
  /** Behaviour of a table taller than the page: `'split'` breaks it between
1920
2103
  * rows and continues on the following pages, repeating the header rows and
1921
2104
  * suffixing the caption; `'clip'` keeps the leading rows that fit and drops
@@ -1944,6 +2127,13 @@ export interface ResolvedTableStyleConfig {
1944
2127
  cellPadding: Dimension;
1945
2128
  rules: TableRules;
1946
2129
  borderRadius: Dimension;
2130
+ heavyRuleWidth: Dimension;
2131
+ lightRuleWidth: Dimension;
2132
+ spanRuleWidth: Dimension;
2133
+ spanRules: TableSpanRules;
2134
+ spanRuleTrim: Dimension;
2135
+ groupRules: boolean;
2136
+ continuedFootRule: TableContinuedFootRule;
1947
2137
  overflow: TableOverflow;
1948
2138
  continuedSuffix: string;
1949
2139
  continuesMarkerEnabled: boolean;
@@ -3258,6 +3448,18 @@ export interface HeadingLevelConfig {
3258
3448
  * book). The measure narrows by it; a centred heading centres in what is
3259
3449
  * left. Default `0`. */
3260
3450
  indent?: Dimension;
3451
+ /** Indent of the heading's first line only (#636), measured from
3452
+ * {@link indent} (so the first line starts `indent + firstLineIndent`
3453
+ * in): the lines it wraps onto start at `indent`, as a body paragraph's
3454
+ * turnover lines start at the margin. GB/T 9704 sets every level of
3455
+ * head two cells in with its turnover back at the margin:
3456
+ * `{ value: 2, unit: 'em' }`. `em` is the BODY size, as for `indent`,
3457
+ * so two ems are two cells of the body grid at any heading size. A
3458
+ * numbered heading's number comes after the indent. A centred heading
3459
+ * takes it as a centred body paragraph does: its first line centres in
3460
+ * the room after the indent. A heading overrides it with
3461
+ * `{firstLineIndent=N}` (`0` clears it). Default `0`. */
3462
+ firstLineIndent?: Dimension;
3261
3463
  /** 字取り (jidori, JLReq §3.7.3, §4.1): a heading shorter than this many
3262
3464
  * of its own characters is spaced out evenly to fill exactly that width
3263
3465
  * (`jidori: 3` sets 序章 as 序 章). Applies to a heading that fits one
@@ -3307,6 +3509,8 @@ export interface ResolvedHeadingLevelConfig {
3307
3509
  lineSpan?: number;
3308
3510
  /** Absent unless set (see {@link HeadingLevelConfig.indent}). */
3309
3511
  indent?: Dimension;
3512
+ /** Absent unless set (see {@link HeadingLevelConfig.firstLineIndent}). */
3513
+ firstLineIndent?: Dimension;
3310
3514
  /** Absent unless set (see {@link HeadingLevelConfig.jidori}). */
3311
3515
  jidori?: number;
3312
3516
  /** Absent unless set (see {@link HeadingLevelConfig.dropCap}); a heading
@@ -4993,7 +5197,16 @@ export interface ElementBoxStyle {
4993
5197
  * mid-word only when what the boundary leaves, that punctuation dropped,
4994
5198
  * is less than half of what fits (a long word, a URL). A no-break space
4995
5199
  * or hyphen (U+2011) is no boundary. `'ellipsis-middle'` cuts anywhere but
4996
- * drops the spaces beside it. */
5200
+ * drops the spaces beside it.
5201
+ *
5202
+ * An element that sets none takes its slot's default (#628): `'wrap'` in a
5203
+ * heading design (`advancedDesign.slot`, an opener or an in-column title)
5204
+ * and on a part page (`parts.design`, `parts.versoDesign`), where a long
5205
+ * title should break onto more lines; `'ellipsis-end'` in a running head
5206
+ * or folio (`header`, `footer`, a heading style's own) and in a contents
5207
+ * part row (`toc.parts.design`, whose row has a fixed height). A line cut
5208
+ * by an ellipsis, or clipped with ink past the box, is reported as a
5209
+ * `designTextTruncated` content warning. */
4997
5210
  export type TextOverflow = 'wrap' | 'ellipsis-start' | 'ellipsis-end' | 'ellipsis-middle' | 'clip';
4998
5211
  /** Outline drawn around the glyphs of a design text (a hollow display
4999
5212
  * number, a title that stands off a photograph). */
@@ -5074,7 +5287,11 @@ export interface DesignTextElement {
5074
5287
  * number, a malformed dimension) sets the default leading. */
5075
5288
  lineHeight?: number | Dimension;
5076
5289
  letterSpacing?: Dimension;
5077
- overflow: TextOverflow;
5290
+ /** What a line wider than the element's room does (see
5291
+ * {@link TextOverflow}). Unset, the slot decides: `'wrap'` in heading
5292
+ * and part designs, `'ellipsis-end'` in running heads, folios and
5293
+ * contents part rows. */
5294
+ overflow?: TextOverflow;
5078
5295
  /** When true, break long words at syllable boundaries while wrapping.
5079
5296
  * Uses the document's active hyphenation locale. */
5080
5297
  hyphenate?: boolean;
@@ -5197,8 +5414,10 @@ export interface DesignSlot {
5197
5414
  /** Array order = paint order: first = back, last = front. */
5198
5415
  elements: DesignElement[];
5199
5416
  }
5200
- export interface ResolvedDesignTextElement extends Omit<DesignTextElement, 'fontFamily' | 'fontWeight' | 'italic' | 'color' | 'align' | 'verticalAlign' | 'lineHeight' | 'parity'> {
5417
+ export interface ResolvedDesignTextElement extends Omit<DesignTextElement, 'fontFamily' | 'fontWeight' | 'italic' | 'color' | 'align' | 'verticalAlign' | 'lineHeight' | 'parity' | 'overflow'> {
5201
5418
  parity: PageParity;
5419
+ /** The element's own `overflow`, else its slot's default. */
5420
+ overflow: TextOverflow;
5202
5421
  fontFamily: string;
5203
5422
  fontWeight: number;
5204
5423
  italic: boolean;