postext 1.33.11 → 1.34.1

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 (303) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/bundle/designOverflowPin.test.js +1 -1
  3. package/dist/__tests__/bundle/gridBreakRulesPin.test.js +2 -2
  4. package/dist/__tests__/bundle/shapingLanguagePin.test.js +3 -3
  5. package/dist/__tests__/bundle/taskBoxPin.test.js +1 -1
  6. package/dist/__tests__/bundle.test.js +34 -2
  7. package/dist/__tests__/bundle.test.js.map +1 -1
  8. package/dist/__tests__/codeBlocks.test.js +89 -1
  9. package/dist/__tests__/codeBlocks.test.js.map +1 -1
  10. package/dist/__tests__/composed/corpus.test.d.ts +2 -0
  11. package/dist/__tests__/composed/corpus.test.d.ts.map +1 -0
  12. package/dist/__tests__/composed/corpus.test.js +33 -0
  13. package/dist/__tests__/composed/corpus.test.js.map +1 -0
  14. package/dist/__tests__/composed/fixtures/page8.d.ts +20 -0
  15. package/dist/__tests__/composed/fixtures/page8.d.ts.map +1 -0
  16. package/dist/__tests__/composed/fixtures/page8.js +159 -0
  17. package/dist/__tests__/composed/fixtures/page8.js.map +1 -0
  18. package/dist/__tests__/composed/layout.test.d.ts +2 -0
  19. package/dist/__tests__/composed/layout.test.d.ts.map +1 -0
  20. package/dist/__tests__/composed/layout.test.js +387 -0
  21. package/dist/__tests__/composed/layout.test.js.map +1 -0
  22. package/dist/__tests__/composed/slotChecks.test.d.ts +2 -0
  23. package/dist/__tests__/composed/slotChecks.test.d.ts.map +1 -0
  24. package/dist/__tests__/composed/slotChecks.test.js +151 -0
  25. package/dist/__tests__/composed/slotChecks.test.js.map +1 -0
  26. package/dist/__tests__/composedPaint.test.d.ts +2 -0
  27. package/dist/__tests__/composedPaint.test.d.ts.map +1 -0
  28. package/dist/__tests__/composedPaint.test.js +191 -0
  29. package/dist/__tests__/composedPaint.test.js.map +1 -0
  30. package/dist/__tests__/composedTemplates.test.d.ts +2 -0
  31. package/dist/__tests__/composedTemplates.test.d.ts.map +1 -0
  32. package/dist/__tests__/composedTemplates.test.js +349 -0
  33. package/dist/__tests__/composedTemplates.test.js.map +1 -0
  34. package/dist/__tests__/contentInConfig.test.d.ts +2 -0
  35. package/dist/__tests__/contentInConfig.test.d.ts.map +1 -0
  36. package/dist/__tests__/contentInConfig.test.js +201 -0
  37. package/dist/__tests__/contentInConfig.test.js.map +1 -0
  38. package/dist/__tests__/defaults/stripRoundTrip.test.js +6 -3
  39. package/dist/__tests__/defaults/stripRoundTrip.test.js.map +1 -1
  40. package/dist/__tests__/exports.test.js +34 -0
  41. package/dist/__tests__/exports.test.js.map +1 -1
  42. package/dist/__tests__/hardBreaks.test.js +1 -1
  43. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  44. package/dist/__tests__/highlightMarks.test.d.ts +2 -0
  45. package/dist/__tests__/highlightMarks.test.d.ts.map +1 -0
  46. package/dist/__tests__/highlightMarks.test.js +169 -0
  47. package/dist/__tests__/highlightMarks.test.js.map +1 -0
  48. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  49. package/dist/__tests__/parse/composedPages.test.d.ts +2 -0
  50. package/dist/__tests__/parse/composedPages.test.d.ts.map +1 -0
  51. package/dist/__tests__/parse/composedPages.test.js +323 -0
  52. package/dist/__tests__/parse/composedPages.test.js.map +1 -0
  53. package/dist/__tests__/parse/containers.test.js +2 -2
  54. package/dist/__tests__/parse/containers.test.js.map +1 -1
  55. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  56. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  57. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  58. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  59. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  60. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  61. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  62. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  63. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  64. package/dist/__tests__/tocGroups.test.d.ts +2 -0
  65. package/dist/__tests__/tocGroups.test.d.ts.map +1 -0
  66. package/dist/__tests__/tocGroups.test.js +213 -0
  67. package/dist/__tests__/tocGroups.test.js.map +1 -0
  68. package/dist/__tests__/tocPartLeader.test.d.ts +2 -0
  69. package/dist/__tests__/tocPartLeader.test.d.ts.map +1 -0
  70. package/dist/__tests__/tocPartLeader.test.js +133 -0
  71. package/dist/__tests__/tocPartLeader.test.js.map +1 -0
  72. package/dist/__tests__/verseLines.test.js +1 -1
  73. package/dist/bundle/api.d.ts +8 -0
  74. package/dist/bundle/api.d.ts.map +1 -1
  75. package/dist/bundle/api.js +6 -3
  76. package/dist/bundle/api.js.map +1 -1
  77. package/dist/bundle/codec.d.ts +5 -0
  78. package/dist/bundle/codec.d.ts.map +1 -1
  79. package/dist/bundle/codec.js +4 -0
  80. package/dist/bundle/codec.js.map +1 -1
  81. package/dist/bundle/configVersion.d.ts +16 -5
  82. package/dist/bundle/configVersion.d.ts.map +1 -1
  83. package/dist/bundle/configVersion.js +17 -4
  84. package/dist/bundle/configVersion.js.map +1 -1
  85. package/dist/bundle/index.d.ts +2 -2
  86. package/dist/bundle/index.d.ts.map +1 -1
  87. package/dist/bundle/index.js +1 -1
  88. package/dist/bundle/index.js.map +1 -1
  89. package/dist/bundle/manifest.d.ts +14 -0
  90. package/dist/bundle/manifest.d.ts.map +1 -1
  91. package/dist/bundle/manifest.js +13 -0
  92. package/dist/bundle/manifest.js.map +1 -1
  93. package/dist/bundle/types.d.ts +11 -3
  94. package/dist/bundle/types.d.ts.map +1 -1
  95. package/dist/canvas-backend/annotations.d.ts +6 -0
  96. package/dist/canvas-backend/annotations.d.ts.map +1 -1
  97. package/dist/canvas-backend/annotations.js +39 -0
  98. package/dist/canvas-backend/annotations.js.map +1 -1
  99. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  100. package/dist/canvas-backend/blockRender.js +6 -1
  101. package/dist/canvas-backend/blockRender.js.map +1 -1
  102. package/dist/canvas-backend/composed.d.ts +15 -0
  103. package/dist/canvas-backend/composed.d.ts.map +1 -0
  104. package/dist/canvas-backend/composed.js +41 -0
  105. package/dist/canvas-backend/composed.js.map +1 -0
  106. package/dist/canvas-backend/index.d.ts.map +1 -1
  107. package/dist/canvas-backend/index.js +15 -1
  108. package/dist/canvas-backend/index.js.map +1 -1
  109. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  110. package/dist/canvas-backend/renderResourceBlock.js +4 -1
  111. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  112. package/dist/composed/document.d.ts +43 -0
  113. package/dist/composed/document.d.ts.map +1 -0
  114. package/dist/composed/document.js +88 -0
  115. package/dist/composed/document.js.map +1 -0
  116. package/dist/composed/geometry.d.ts +108 -0
  117. package/dist/composed/geometry.d.ts.map +1 -0
  118. package/dist/composed/geometry.js +241 -0
  119. package/dist/composed/geometry.js.map +1 -0
  120. package/dist/composed/paint.d.ts +41 -0
  121. package/dist/composed/paint.d.ts.map +1 -0
  122. package/dist/composed/paint.js +83 -0
  123. package/dist/composed/paint.js.map +1 -0
  124. package/dist/composed/slotChecks.d.ts +29 -0
  125. package/dist/composed/slotChecks.d.ts.map +1 -0
  126. package/dist/composed/slotChecks.js +109 -0
  127. package/dist/composed/slotChecks.js.map +1 -0
  128. package/dist/composed/templates.d.ts +133 -0
  129. package/dist/composed/templates.d.ts.map +1 -0
  130. package/dist/composed/templates.js +702 -0
  131. package/dist/composed/templates.js.map +1 -0
  132. package/dist/composed/types.d.ts +361 -0
  133. package/dist/composed/types.d.ts.map +1 -0
  134. package/dist/composed/types.js +2 -0
  135. package/dist/composed/types.js.map +1 -0
  136. package/dist/composed/validate.d.ts +26 -0
  137. package/dist/composed/validate.d.ts.map +1 -0
  138. package/dist/composed/validate.js +276 -0
  139. package/dist/composed/validate.js.map +1 -0
  140. package/dist/composed/wrap.d.ts +52 -0
  141. package/dist/composed/wrap.d.ts.map +1 -0
  142. package/dist/composed/wrap.js +234 -0
  143. package/dist/composed/wrap.js.map +1 -0
  144. package/dist/configWarnings.d.ts +19 -3
  145. package/dist/configWarnings.d.ts.map +1 -1
  146. package/dist/configWarnings.js +171 -41
  147. package/dist/configWarnings.js.map +1 -1
  148. package/dist/defaults/checks.d.ts +7 -0
  149. package/dist/defaults/checks.d.ts.map +1 -0
  150. package/dist/defaults/checks.js +49 -0
  151. package/dist/defaults/checks.js.map +1 -0
  152. package/dist/defaults/codeStyle.d.ts.map +1 -1
  153. package/dist/defaults/codeStyle.js +1 -0
  154. package/dist/defaults/codeStyle.js.map +1 -1
  155. package/dist/defaults/index.d.ts +2 -0
  156. package/dist/defaults/index.d.ts.map +1 -1
  157. package/dist/defaults/index.js +35 -0
  158. package/dist/defaults/index.js.map +1 -1
  159. package/dist/defaults/markStyles.d.ts +23 -0
  160. package/dist/defaults/markStyles.d.ts.map +1 -0
  161. package/dist/defaults/markStyles.js +80 -0
  162. package/dist/defaults/markStyles.js.map +1 -0
  163. package/dist/defaults/shared.d.ts.map +1 -1
  164. package/dist/defaults/shared.js +12 -0
  165. package/dist/defaults/shared.js.map +1 -1
  166. package/dist/defaults/toc.d.ts +17 -2
  167. package/dist/defaults/toc.d.ts.map +1 -1
  168. package/dist/defaults/toc.js +53 -1
  169. package/dist/defaults/toc.js.map +1 -1
  170. package/dist/design/bidiText.d.ts +4 -1
  171. package/dist/design/bidiText.d.ts.map +1 -1
  172. package/dist/design/bidiText.js +5 -2
  173. package/dist/design/bidiText.js.map +1 -1
  174. package/dist/design/layout.d.ts +10 -0
  175. package/dist/design/layout.d.ts.map +1 -1
  176. package/dist/design/layout.js +110 -8
  177. package/dist/design/layout.js.map +1 -1
  178. package/dist/design/placeholders.d.ts +28 -2
  179. package/dist/design/placeholders.d.ts.map +1 -1
  180. package/dist/design/placeholders.js +24 -1
  181. package/dist/design/placeholders.js.map +1 -1
  182. package/dist/design/richText.d.ts +2 -0
  183. package/dist/design/richText.d.ts.map +1 -1
  184. package/dist/design/richText.js.map +1 -1
  185. package/dist/design/slots.d.ts +29 -0
  186. package/dist/design/slots.d.ts.map +1 -0
  187. package/dist/design/slots.js +48 -0
  188. package/dist/design/slots.js.map +1 -0
  189. package/dist/highlightMarks.d.ts +33 -0
  190. package/dist/highlightMarks.d.ts.map +1 -0
  191. package/dist/highlightMarks.js +209 -0
  192. package/dist/highlightMarks.js.map +1 -0
  193. package/dist/html-backend.d.ts.map +1 -1
  194. package/dist/html-backend.js +65 -8
  195. package/dist/html-backend.js.map +1 -1
  196. package/dist/htmlAnnotations.d.ts +5 -0
  197. package/dist/htmlAnnotations.d.ts.map +1 -1
  198. package/dist/htmlAnnotations.js +16 -0
  199. package/dist/htmlAnnotations.js.map +1 -1
  200. package/dist/index.d.ts +21 -5
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +14 -3
  203. package/dist/index.js.map +1 -1
  204. package/dist/knuthPlass/richAdapter.d.ts +3 -0
  205. package/dist/knuthPlass/richAdapter.d.ts.map +1 -1
  206. package/dist/knuthPlass/richAdapter.js +3 -2
  207. package/dist/knuthPlass/richAdapter.js.map +1 -1
  208. package/dist/measure/cache.js +3 -3
  209. package/dist/measure/cache.js.map +1 -1
  210. package/dist/measure/chipEdges.d.ts +13 -1
  211. package/dist/measure/chipEdges.d.ts.map +1 -1
  212. package/dist/measure/chipEdges.js +59 -1
  213. package/dist/measure/chipEdges.js.map +1 -1
  214. package/dist/measure/links.d.ts.map +1 -1
  215. package/dist/measure/links.js +78 -5
  216. package/dist/measure/links.js.map +1 -1
  217. package/dist/measure/rich.d.ts +3 -0
  218. package/dist/measure/rich.d.ts.map +1 -1
  219. package/dist/measure/rich.js +19 -4
  220. package/dist/measure/rich.js.map +1 -1
  221. package/dist/parse/blockParser.d.ts.map +1 -1
  222. package/dist/parse/blockParser.js +295 -36
  223. package/dist/parse/blockParser.js.map +1 -1
  224. package/dist/parse/index.d.ts +1 -1
  225. package/dist/parse/index.d.ts.map +1 -1
  226. package/dist/parse/index.js.map +1 -1
  227. package/dist/parse/indexMarks.d.ts.map +1 -1
  228. package/dist/parse/indexMarks.js +24 -0
  229. package/dist/parse/indexMarks.js.map +1 -1
  230. package/dist/parse/inlineFormatting.d.ts +14 -0
  231. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  232. package/dist/parse/inlineFormatting.js +104 -5
  233. package/dist/parse/inlineFormatting.js.map +1 -1
  234. package/dist/parse/links.js +1 -1
  235. package/dist/parse/links.js.map +1 -1
  236. package/dist/parse/softBreaks.js +1 -1
  237. package/dist/parse/softBreaks.js.map +1 -1
  238. package/dist/parse/sourceMapping.d.ts.map +1 -1
  239. package/dist/parse/sourceMapping.js +19 -3
  240. package/dist/parse/sourceMapping.js.map +1 -1
  241. package/dist/parse/types.d.ts +119 -2
  242. package/dist/parse/types.d.ts.map +1 -1
  243. package/dist/pipeline/build.d.ts.map +1 -1
  244. package/dist/pipeline/build.js +318 -287
  245. package/dist/pipeline/build.js.map +1 -1
  246. package/dist/pipeline/calloutLayout.d.ts +33 -0
  247. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  248. package/dist/pipeline/calloutLayout.js +91 -2
  249. package/dist/pipeline/calloutLayout.js.map +1 -1
  250. package/dist/pipeline/codeInline.d.ts +10 -1
  251. package/dist/pipeline/codeInline.d.ts.map +1 -1
  252. package/dist/pipeline/codeInline.js +96 -15
  253. package/dist/pipeline/codeInline.js.map +1 -1
  254. package/dist/pipeline/composedLayout.d.ts +88 -0
  255. package/dist/pipeline/composedLayout.d.ts.map +1 -0
  256. package/dist/pipeline/composedLayout.js +320 -0
  257. package/dist/pipeline/composedLayout.js.map +1 -0
  258. package/dist/pipeline/config.d.ts.map +1 -1
  259. package/dist/pipeline/config.js +18 -2
  260. package/dist/pipeline/config.js.map +1 -1
  261. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  262. package/dist/pipeline/contentWarnings.js +105 -1
  263. package/dist/pipeline/contentWarnings.js.map +1 -1
  264. package/dist/pipeline/floatSlots.js +1 -1
  265. package/dist/pipeline/floatSlots.js.map +1 -1
  266. package/dist/pipeline/frameLayout.d.ts +120 -0
  267. package/dist/pipeline/frameLayout.d.ts.map +1 -0
  268. package/dist/pipeline/frameLayout.js +279 -0
  269. package/dist/pipeline/frameLayout.js.map +1 -0
  270. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  271. package/dist/pipeline/headerFooter.js +48 -3
  272. package/dist/pipeline/headerFooter.js.map +1 -1
  273. package/dist/pipeline/pageRoles.d.ts +1 -0
  274. package/dist/pipeline/pageRoles.d.ts.map +1 -1
  275. package/dist/pipeline/pageRoles.js +3 -0
  276. package/dist/pipeline/pageRoles.js.map +1 -1
  277. package/dist/pipeline/placeholders.d.ts +7 -0
  278. package/dist/pipeline/placeholders.d.ts.map +1 -1
  279. package/dist/pipeline/placeholders.js +41 -0
  280. package/dist/pipeline/placeholders.js.map +1 -1
  281. package/dist/pipeline/placement.js +1 -1
  282. package/dist/pipeline/placement.js.map +1 -1
  283. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  284. package/dist/pipeline/resourceLayout.js +5 -3
  285. package/dist/pipeline/resourceLayout.js.map +1 -1
  286. package/dist/pipeline/tabs.js +1 -1
  287. package/dist/pipeline/tabs.js.map +1 -1
  288. package/dist/pipeline/textWrap.js +1 -1
  289. package/dist/pipeline/textWrap.js.map +1 -1
  290. package/dist/pipeline/toc.d.ts +11 -1
  291. package/dist/pipeline/toc.d.ts.map +1 -1
  292. package/dist/pipeline/toc.js +147 -8
  293. package/dist/pipeline/toc.js.map +1 -1
  294. package/dist/types.d.ts +168 -3
  295. package/dist/types.d.ts.map +1 -1
  296. package/dist/util/closestKey.d.ts +4 -0
  297. package/dist/util/closestKey.d.ts.map +1 -0
  298. package/dist/util/closestKey.js +40 -0
  299. package/dist/util/closestKey.js.map +1 -0
  300. package/dist/vdt.d.ts +293 -7
  301. package/dist/vdt.d.ts.map +1 -1
  302. package/dist/vdt.js.map +1 -1
  303. package/package.json +1 -1
@@ -15,6 +15,8 @@ import { onTextWidthCacheClear, measureLanguageKey } from '../measure/canvas';
15
15
  import { fitLeader } from '../measure/leader';
16
16
  import { faceReadsScript, getMeasureScriptContext, isLetterless, scriptTextWidth } from '../measure/script';
17
17
  import { measuresRunsAsPainted } from '../design/bidiText';
18
+ import { suffixJoiner } from '../parse/inlineFormatting';
19
+ import { parseTocGroupHead } from '../defaults/toc';
18
20
  import { dimensionToPx } from '../units';
19
21
  import { buildFontString, measureRichBlock } from '../measure';
20
22
  import { markerTextWidth } from './lists';
@@ -39,19 +41,57 @@ export function expandTocDirectives(blocks, outline, resolved) {
39
41
  return blocks;
40
42
  }
41
43
  const out = [];
44
+ // Block numbers run on across the contents of the document (#850).
45
+ const groupIds = { next: 0 };
42
46
  for (const b of blocks) {
43
47
  if (b.type !== 'directive' || b.directiveName !== 'toc') {
44
48
  out.push(b);
45
49
  continue;
46
50
  }
47
- out.push(...tocBlocksFor(b, outline, resolved));
51
+ out.push(...tocBlocksFor(b, outline, resolved, groupIds));
48
52
  }
49
53
  return out;
50
54
  }
51
- function tocBlocksFor(directive, outline, resolved) {
55
+ /** The heading levels a `:::toc{levels="…"}` lists (#850): a range
56
+ * (`"1-2"`), a single level (`"2"`) or a list of either (`"1,3"`), levels
57
+ * 1 to 6. Undefined when the attribute is absent or names no level: the
58
+ * levels of `toc.levels` are listed. */
59
+ export function parseTocLevelsAttr(value) {
60
+ if (value === undefined)
61
+ return undefined;
62
+ const out = new Set();
63
+ for (const piece of value.split(/[,\s]+/u)) {
64
+ const m = /^([1-6])(?:\s*[-–]\s*([1-6]))?$/u.exec(piece.trim());
65
+ if (!m)
66
+ continue;
67
+ const a = Number(m[1]);
68
+ const b = m[2] !== undefined ? Number(m[2]) : a;
69
+ for (let l = Math.min(a, b); l <= Math.max(a, b); l++)
70
+ out.add(l);
71
+ }
72
+ return out.size > 0 ? out : undefined;
73
+ }
74
+ /** What heads the blocks a contents keeps together (#850): its
75
+ * directive's `keep` (`"part"`, `"1"`…`"6"`, `"none"`), else
76
+ * `toc.groups.head` when `toc.groups.keepTogether` is on. Undefined: the
77
+ * contents keeps nothing together. */
78
+ export function tocKeepOf(attrs, resolved) {
79
+ const groups = resolved.toc.groups;
80
+ const keep = attrs?.keep?.trim().toLowerCase();
81
+ if (keep !== undefined && keep.length > 0) {
82
+ if (keep === 'none' || keep === 'false' || keep === 'off')
83
+ return undefined;
84
+ return parseTocGroupHead(keep) ?? (groups.keepTogether ? groups.head : undefined);
85
+ }
86
+ return groups.keepTogether ? groups.head : undefined;
87
+ }
88
+ function tocBlocksFor(directive, outline, resolved, groupIds) {
52
89
  const toc = resolved.toc;
53
- const listedLevels = new Set(toc.levels.map((l) => l.level));
54
- const out = [];
90
+ const attrs = directive.directiveAttrs;
91
+ // `levels="1-2"` lists those heading levels, each in its own style when
92
+ // `toc.levels` gives one (the nearest level above it otherwise).
93
+ const listedLevels = parseTocLevelsAttr(attrs?.levels) ?? new Set(toc.levels.map((l) => l.level));
94
+ const rows = [];
55
95
  const base = { sourceStart: directive.sourceStart, sourceEnd: directive.sourceEnd };
56
96
  let partRows = 0;
57
97
  // The numbers of each level's numbered entries, for the number column.
@@ -73,7 +113,7 @@ function tocBlocksFor(directive, outline, resolved) {
73
113
  continue;
74
114
  // Every part but the first opens a fresh page of the contents.
75
115
  if (toc.parts.breakBefore && partRows > 0) {
76
- out.push({ ...base, type: 'directive', text: '', spans: [], sourceMap: [], directiveName: 'pagebreak', directiveAttrs: {} });
116
+ rows.push({ block: { ...base, type: 'directive', text: '', spans: [], sourceMap: [], directiveName: 'pagebreak', directiveAttrs: {} } });
77
117
  }
78
118
  partRows++;
79
119
  const info = {
@@ -82,7 +122,7 @@ function tocBlocksFor(directive, outline, resolved) {
82
122
  ...(entry.pageIndex !== undefined ? { pageIndex: entry.pageIndex } : {}),
83
123
  ...(entry.palette ? { palette: entry.palette } : {}),
84
124
  };
85
- out.push({ ...base, type: 'paragraph', text: '', spans: [], sourceMap: [], toc: info });
125
+ rows.push({ block: { ...base, type: 'paragraph', text: '', spans: [], sourceMap: [], toc: info }, rank: 0 });
86
126
  continue;
87
127
  }
88
128
  if (!listedLevels.has(entry.level))
@@ -101,10 +141,105 @@ function tocBlocksFor(directive, outline, resolved) {
101
141
  };
102
142
  // Every character maps to the directive line, so a click on the
103
143
  // contents lands on `:::toc`.
104
- out.push({ ...base, type: 'paragraph', text, spans, sourceMap: new Array(text.length).fill(directive.sourceStart), toc: info });
144
+ rows.push({ block: { ...base, type: 'paragraph', text, spans, sourceMap: new Array(text.length).fill(directive.sourceStart), toc: info }, rank: entry.level });
145
+ }
146
+ const keep = tocKeepOf(attrs, resolved);
147
+ return keep === undefined ? rows.map((r) => r.block) : groupTocRows(rows, keep === 'part' ? 0 : keep, resolved, groupIds);
148
+ }
149
+ /**
150
+ * The rows of a contents with its blocks marked (#850): a head row (rank
151
+ * `head`: `0` a part row, else an entry of that level) and every row under
152
+ * it down to the next row of the same or a higher rank. A part row right
153
+ * above a heading head goes with its block, as its first row. With
154
+ * `toc.groups.continuation.enabled`, a repeat of the head row with the
155
+ * continuation mark stands before every entry under it: the layout sets
156
+ * it only where a cut block goes on in a fresh column, and skips it
157
+ * everywhere else. A head with nothing under it makes no block.
158
+ */
159
+ function groupTocRows(rows, head, resolved, groupIds) {
160
+ const groups = resolved.toc.groups;
161
+ // Each block: the index of its first row, its head row, its last row.
162
+ const spans = [];
163
+ let open;
164
+ for (let i = 0; i < rows.length; i++) {
165
+ const rank = rows[i].rank;
166
+ if (rank === undefined)
167
+ continue;
168
+ if (rank === head) {
169
+ if (open && open.last > open.head)
170
+ spans.push(open);
171
+ const prev = i > 0 ? rows[i - 1] : undefined;
172
+ // A part row right above a heading head opens the block with it.
173
+ const lead = head > 0 && prev?.rank === 0 ? i - 1 : i;
174
+ open = { first: lead, head: i, last: i };
175
+ }
176
+ else if (rank < head) {
177
+ if (open && open.last > open.head)
178
+ spans.push(open);
179
+ open = undefined;
180
+ }
181
+ else if (open) {
182
+ open.last = i;
183
+ }
184
+ }
185
+ if (open && open.last > open.head)
186
+ spans.push(open);
187
+ const byRow = new Map();
188
+ for (const span of spans) {
189
+ const id = groupIds.next++;
190
+ for (let i = span.first; i <= span.last; i++)
191
+ byRow.set(i, { id, span });
192
+ }
193
+ const mark = groups.continuation.mark.trim();
194
+ const out = [];
195
+ for (let i = 0; i < rows.length; i++) {
196
+ const row = rows[i];
197
+ const at = byRow.get(i);
198
+ if (!at || !row.block.toc) {
199
+ out.push(row.block);
200
+ continue;
201
+ }
202
+ const headBlock = rows[at.span.head].block;
203
+ const title = headBlock.toc.kind === 'part' ? (headBlock.toc.title ?? '') : headBlock.text;
204
+ const group = {
205
+ id: at.id,
206
+ role: i === at.span.head ? 'head' : 'member',
207
+ ...(i === at.span.first ? { lead: true } : {}),
208
+ minEntries: groups.minEntriesAfterHead,
209
+ title,
210
+ };
211
+ // The repeated head row, before each entry under the head.
212
+ if (groups.continuation.enabled && i > at.span.head && row.rank !== 0) {
213
+ out.push(continuationRow(headBlock, mark, { ...group, role: 'continuation' }));
214
+ }
215
+ out.push({ ...row.block, toc: { ...row.block.toc, group } });
105
216
  }
106
217
  return out;
107
218
  }
219
+ /** The head row `head` repeated at the top of the column a cut block goes
220
+ * on in: its number and title, then `mark` (in italics, after a space or
221
+ * solid after a wide character), with no leader and no page label. */
222
+ function continuationRow(head, mark, group) {
223
+ const info = head.toc;
224
+ const rest = { ...info };
225
+ delete rest.pageLabel;
226
+ delete rest.subtitle;
227
+ if (info.kind === 'part') {
228
+ const title = info.title ?? '';
229
+ const joined = mark.length === 0 ? title : `${title}${title.length > 0 ? suffixJoiner(mark) : ''}${mark}`;
230
+ return { ...head, toc: { ...rest, title: joined, group } };
231
+ }
232
+ if (mark.length === 0)
233
+ return { ...head, toc: { ...rest, group } };
234
+ const tail = `${head.text.length > 0 ? suffixJoiner(mark) : ''}${mark}`;
235
+ return {
236
+ ...head,
237
+ text: head.text + tail,
238
+ spans: [...head.spans, { text: tail, bold: false, italic: true }],
239
+ sourceMap: [...head.sourceMap, ...new Array(tail.length).fill(head.sourceStart)],
240
+ toc: { ...rest, group },
241
+ };
242
+ }
108
243
  /**
109
244
  * The advance of a contents number in `font`. `rtl`: the entry reads right
110
245
  * to left, so its number is painted right to left
@@ -213,7 +348,11 @@ export function measureTocBlock(rawBlock, columnWidth, ctx) {
213
348
  };
214
349
  }
215
350
  // --- Entry -----------------------------------------------------------
216
- const level = toc.levels.find((l) => l.level === info.level) ?? toc.levels[0];
351
+ // A level `toc.levels` does not style (one a `levels="1-3"` lists) takes
352
+ // the style of the nearest level above it.
353
+ const level = toc.levels.find((l) => l.level === info.level)
354
+ ?? toc.levels.filter((l) => l.level < info.level).sort((a, b) => b.level - a.level)[0]
355
+ ?? toc.levels[0];
217
356
  const entry = info.numbered ? level : { ...level, ...toc.unnumbered };
218
357
  const fontSizePx = dimensionToPx(entry.fontSize, dpi);
219
358
  const lineHeightPx = lineHeightPxOf(entry.lineHeight, fontSizePx, dpi);
@@ -1 +1 @@
1
- {"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/pipeline/toc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/pipeline/toc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI/D,OAAO,EAAE,eAAe,EAAwB,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;yBAEyB;AACzB;;sEAEsE;AACtE,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAC;IACxC,mEAAmE;IACnE,gCAAgC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9G,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAA+B,EAC/B,OAA4C,EAC5C,QAAwB;IAExB,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC;QACzF,OAAO,MAAwB,CAAC;IAClC,CAAC;IACD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,mEAAmE;IACnE,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACnF,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;yCAGyC;AACzC,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACxC,CAAC;AAED;;;uCAGuC;AACvC,MAAM,UAAU,SAAS,CAAC,KAAmD,EAAE,QAAwB;IACrG,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC;QAC5E,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAUD,SAAS,YAAY,CACnB,SAAuB,EACvB,OAAgC,EAChC,QAAwB,EACxB,QAA0B;IAE1B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IACzB,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC;IACvC,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IACpF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,uEAAuE;IACvE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAS;QAC3H,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;YACnC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,SAAS;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YACjC,+DAA+D;YAC/D,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3I,CAAC;YACD,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,GAAiB;gBACzB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAC1F,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7G,SAAS;QACX,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,SAAS;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAiB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAC/D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,MAAM,IAAI,GAAiB;YACzB,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACjF,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F,CAAC;QACF,gEAAgE;QAChE,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACzK,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5H,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,IAAuB,EAAE,IAAY,EAAE,QAAwB,EAAE,QAA0B;IAC/G,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IACnC,sEAAsE;IACtE,MAAM,KAAK,GAAoD,EAAE,CAAC;IAClE,IAAI,IAA+D,CAAC;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7C,iEAAiE;YACjE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+E,CAAC;IACrG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC;QAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,GAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7F,MAAM,KAAK,GAAiB;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAC5C,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,UAAU,EAAE,MAAM,CAAC,mBAAmB;YACtC,KAAK;SACN,CAAC;QACF,2DAA2D;QAC3D,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;uEAEuE;AACvE,SAAS,eAAe,CAAC,IAAkB,EAAE,IAAY,EAAE,KAAmB;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAI,CAAC;IACvB,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC;IACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QAC1G,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IACxE,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;QACtB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjE,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxF,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,GAAY;IAC/D,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrI,CAAC;AAED;yEACyE;AACzE,IAAI,WAAW,GAAG,IAAI,OAAO,EAA0C,CAAC;AACxE,8DAA8D;AAC9D,qBAAqB,CAAC,GAAG,EAAE;IACzB,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AACH,SAAS,YAAY,CAAC,OAA0B,EAAE,IAAY,EAAE,GAAY;IAC1E,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACnB,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,yEAAyE;IACzE,MAAM,GAAG,GAAG,kBAAkB,EAAE,GAAG,CAAC,GAAG,IAAI,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5F,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,UAA2C,EAAE,UAAkB,EAAE,GAAW;IAClG,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;IAChG,OAAO,aAAa,CAAC,UAAiD,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACpE,MAAM,IAAI,GAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,UAAyC,EAAE,UAAkB,EAAE,KAAa,EAAE,GAAY;IACpH,MAAM,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACjI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,WAAmB,EACnB,GAAwB;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAI,CAAC;IAC3B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9B,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAE/B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,KAAK,GAAe;YACxB,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxF,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACrB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,cAAc,CAAC;YACpE,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC;YAC1E,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,KAAK;SACrB,CAAC;QACF,MAAM,IAAI,GAAY;YACpB,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,GAAG;YACtF,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI;SAClD,CAAC;QACF,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrG,OAAO;YACL,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE;YACjH,YAAY,EAAE,QAAQ;YACtB,QAAQ;YACR,SAAS;YACT,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,2CAA2C;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;WACvD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;WACnF,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;IACpB,MAAM,KAAK,GAAgC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;IACnG,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,oBAAoB,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IAC9B,MAAM,KAAK,GAAe;QACxB,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB;QAClE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK;QACrE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK;QACnC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC;QAC5D,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,UAAU,CAAC;QAClE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK;KAC3C,CAAC;IAEF,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,gDAAgD;IAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QACtH,CAAC,CAAC,EAAE,CAAC;IACP,+DAA+D;IAC/D,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC;IAChF,MAAM,aAAa,GAAG,SAAS;QAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACtI,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC;IACpD,IAAI,UAAuC,CAAC;IAC5C,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACpE,UAAU,GAAG;YACX,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG;YACnG,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACvF,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;YAC/C,gEAAgE;YAChE,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,qBAAqB,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,8CAA8C;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC;IAC1B,MAAM,eAAe,GAAG,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7H,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAgB,CACrD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAClF,IAAI,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC5D,CAAC;IACF,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC;QAClG,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;QAC3E,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC;IACrD,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;QACrC,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;QACzC,IAAI,CAAC,GAAG,QAAQ,CAAC;QACjB,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;YACpF,mEAAmE;YACnE,sEAAsE;YACtE,oEAAoE;YACpE,8CAA8C;YAC9C,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACnL,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;gBAC5C,SAAS,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1K,CAAC,IAAI,KAAK,CAAC;YACb,CAAC;QACH,CAAC;QACD,SAAS,CAAC,UAAU,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC;QAC9I,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,0DAA0D;IAC1D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxH,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,gBAAgB,CAClC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EACzF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC7F,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;oBAAE,SAAS;gBACnC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;gBACzB,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAC/C,oEAAoE;IACpE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;IAC1C,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1G,OAAO;QACL,IAAI,EAAE;YACJ,KAAK;YACL,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YAC7C,YAAY,EAAE,QAAQ;YACtB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,qBAAqB;YACrB,iBAAiB,EAAE,KAAK;SACzB;QACD,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE,aAAa;QACvB,SAAS;QACT,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { ArabicNumeralStyle, EastAsianNumeralStyle, NumberFormatStyle, NumeralStyle } from './numbering';
2
+ import type { LabelStyle, PageTemplate } from './composed/types';
3
+ export type { FrameSize, FrameGridCell, FrameFitConfig, FrameOverflowConfig, FrameConfig, FrameGroupConfig, PageTemplateGrid, PageTemplatePatch, PageTemplate, LabelStyle, ComposedPagesConfigKeys, PageSide, ResolvePageTemplateOptions, ResolvedFrameFit, ResolvedFrame, ResolvedFrameGroup, ResolvedPageTemplate, ResolvedLabelStyle, } from './composed/types';
2
4
  /** @deprecated Legacy content-model resource used by the VDT renderer
3
5
  * (`VDTBlock.resource`). The Resources-panel feature uses the newer
4
6
  * `Resource` / `ResourceType` model below. Retained until the renderer
@@ -417,6 +419,18 @@ export interface ResourceAnchor {
417
419
  };
418
420
  /** The face: a region no balloon covers. */
419
421
  face?: ResourceSafeArea;
422
+ /** The label's measure, a fraction of the picture's width. Unset: the
423
+ * label's natural width. */
424
+ width?: number;
425
+ /** Which side of the label stands at (x, y): its start, its centre or
426
+ * its end, in the label's direction. Default `'center'`. */
427
+ align?: 'start' | 'center' | 'end';
428
+ /** Which edge of the label stands at y. Default `'middle'`. */
429
+ verticalAlign?: 'top' | 'middle' | 'bottom';
430
+ /** Degrees, clockwise, around (x, y). Default 0. */
431
+ rotate?: number;
432
+ /** A `labelStyles` id. */
433
+ style?: string;
420
434
  }
421
435
  /** A user-managed resource instance. Binary payloads (bitmaps, SVGs) are
422
436
  * stored out-of-band (IndexedDB in the sandbox) and referenced by
@@ -1927,8 +1941,11 @@ export interface CodeTokenStyle {
1927
1941
  bold?: boolean;
1928
1942
  italic?: boolean;
1929
1943
  }
1930
- /** Inline code (`` `x` ``) set in a code face (#624). The span is set as
1931
- * one unit, as a chip is: it never breaks across lines. */
1944
+ /** Inline code (`` `x` ``) set in a code face (#624). The span is set in
1945
+ * a box, as a chip is; since #845 a line may break at its spaces and
1946
+ * after a hyphen between a letter or digit and a letter (the box is cut
1947
+ * there, and nothing is added), and the spaces inside it keep the code
1948
+ * face's width. */
1932
1949
  export interface InlineCodeStyleConfig {
1933
1950
  /** Default: `codeStyle.fontFamily`. */
1934
1951
  fontFamily?: string;
@@ -1952,6 +1969,12 @@ export interface InlineCodeStyleConfig {
1952
1969
  /** Room above and below the text band; paints outside the line box.
1953
1970
  * Default `0.1em`. */
1954
1971
  paddingY?: Dimension;
1972
+ /** The face of the Arabic, Hebrew, Syriac, Thaana and CJK letters inline
1973
+ * code holds (`:index[الكشيدة]`, a ruby's kanji): `'text'` (the
1974
+ * default) sets them in the face of the text around the code, since a
1975
+ * code face rarely has them; `'code'` keeps them in the code face, for
1976
+ * one that does (#845). */
1977
+ otherScripts?: 'text' | 'code';
1955
1978
  }
1956
1979
  /** Code listings (#624): ```` ``` ```` and `~~~` fences, and indented code
1957
1980
  * behind {@link indentedCode}, set line by line in a box. */
@@ -2061,6 +2084,7 @@ export interface ResolvedInlineCodeStyleConfig {
2061
2084
  borderRadius: Dimension;
2062
2085
  paddingX: Dimension;
2063
2086
  paddingY: Dimension;
2087
+ otherScripts: 'text' | 'code';
2064
2088
  }
2065
2089
  export interface ResolvedCodeStyleConfig {
2066
2090
  blocks: boolean;
@@ -3540,6 +3564,57 @@ export interface ChipStyleConfig {
3540
3564
  * against glued punctuation. Default `0.25em`. */
3541
3565
  gap?: Dimension;
3542
3566
  }
3567
+ /**
3568
+ * A named highlight style, selected by the inline `:mark[text]{style="<id>"}`
3569
+ * (#888; a mark without `style`, or with an id no style declares, takes the
3570
+ * first style). A mark is a coloured band behind a phrase, as a textbook
3571
+ * highlights its key words: unlike a chip it is ordinary text, set and
3572
+ * broken over lines like the words around it, and the band follows each
3573
+ * piece of it on its line. Its horizontal padding and rounded ends are
3574
+ * drawn at the true start and end of the phrase only; where the phrase
3575
+ * breaks, the band stops square at the last letter of the line.
3576
+ *
3577
+ * The band takes no room: it is painted under the text, from 0.8 em above
3578
+ * the baseline to 0.25 em below it (the em of the marked text), grown by
3579
+ * the vertical padding, and its horizontal padding reaches into the word
3580
+ * spaces around the phrase. The layout of the text is the same as without
3581
+ * the mark.
3582
+ */
3583
+ export interface MarkStyleConfig {
3584
+ id: string;
3585
+ /** Human-readable name (editor UI only). Defaults to {@link id}. */
3586
+ name?: string;
3587
+ /** Band colour. Default a pale yellow (`#fff0a0`). */
3588
+ background?: ColorValue;
3589
+ /** Colour of the marked text. Default the text's own. */
3590
+ color?: ColorValue;
3591
+ /** Corner radius of the band's two ends, clamped to half its height.
3592
+ * Default `0.2em`. */
3593
+ borderRadius?: Dimension;
3594
+ /** How far the band reaches past the first and the last letter of the
3595
+ * phrase, into the space beside it. Default `0.15em`. */
3596
+ paddingX?: Dimension;
3597
+ /** Room above and below the text band. Default `0.05em`. */
3598
+ paddingY?: Dimension;
3599
+ /** Room above the text band, in place of {@link paddingY}. */
3600
+ paddingTop?: Dimension;
3601
+ /** Room below the text band, in place of {@link paddingY}. */
3602
+ paddingBottom?: Dimension;
3603
+ }
3604
+ export interface ResolvedMarkStyleConfig {
3605
+ id: string;
3606
+ name: string;
3607
+ background: ColorValue;
3608
+ /** Unset: the text's own. */
3609
+ color?: ColorValue;
3610
+ borderRadius: Dimension;
3611
+ paddingX: Dimension;
3612
+ paddingY: Dimension;
3613
+ /** Unset: `paddingY`. */
3614
+ paddingTop?: Dimension;
3615
+ /** Unset: `paddingY`. */
3616
+ paddingBottom?: Dimension;
3617
+ }
3543
3618
  export interface ResolvedChipStyleConfig {
3544
3619
  id: string;
3545
3620
  name: string;
@@ -5608,6 +5683,40 @@ export interface ResolvedContrastConfig {
5608
5683
  mode: ContrastMode;
5609
5684
  reversedText: ResolvedContrastReversedTextConfig;
5610
5685
  }
5686
+ /** The content check (`checks.contentInConfig`, #849): a design text
5687
+ * element of the configuration — a running head, a heading or part
5688
+ * design, a contents part row — whose `content` holds more literal text
5689
+ * than a short label. The text of a book belongs in its Markdown; a design
5690
+ * keeps placeholders (`{titleText}`, `{chapterTitle}`…) and, at most, a
5691
+ * word or two of its own ("Chapter {chapterNumber}"). Layout ignores it. */
5692
+ export interface ContentInConfigCheckConfig {
5693
+ /** Run the check. Defaults to true. */
5694
+ enabled?: boolean;
5695
+ /** Literal text a design may carry whatever its length: the book's
5696
+ * title, the publisher's name. Compared without case, spacing or
5697
+ * punctuation, after the placeholders are removed; an entry found inside
5698
+ * a longer text is taken out before the rest is counted. */
5699
+ allow?: string[];
5700
+ /** Most words a design text may hold beyond its placeholders. Defaults
5701
+ * to 2. */
5702
+ maxWords?: number;
5703
+ /** Most letters and digits a design text may hold beyond its
5704
+ * placeholders. Defaults to 24. */
5705
+ maxChars?: number;
5706
+ }
5707
+ export interface ResolvedContentInConfigCheckConfig {
5708
+ enabled: boolean;
5709
+ allow: string[];
5710
+ maxWords: number;
5711
+ maxChars: number;
5712
+ }
5713
+ /** Checks that read the configuration itself and change no page (#849). */
5714
+ export interface ChecksConfig {
5715
+ contentInConfig?: ContentInConfigCheckConfig;
5716
+ }
5717
+ export interface ResolvedChecksConfig {
5718
+ contentInConfig: ResolvedContentInConfigCheckConfig;
5719
+ }
5611
5720
  /** An ICC output profile the user uploaded (their printer's), stored
5612
5721
  * out-of-band like a font or a picture. */
5613
5722
  export interface CustomOutputProfile {
@@ -5720,8 +5829,10 @@ export type HeaderFooterHAlign = 'left' | 'center' | 'right';
5720
5829
  * - `'opener'` — the first block in reading order is a heading whose level
5721
5830
  * spans the page or forces a page break before it (a chapter opener);
5722
5831
  * - `'comic'` — a comic page (`:::page`, `VDTPage.comic` set);
5832
+ * - `'composed'` — a composed page (`::::page{template}`, `VDTPage.composed`
5833
+ * set, #855);
5723
5834
  * - `'body'` — everything else. */
5724
- export type PageRole = 'body' | 'opener' | 'part' | 'blank' | 'comic';
5835
+ export type PageRole = 'body' | 'opener' | 'part' | 'blank' | 'comic' | 'composed';
5725
5836
  /** Which page roles a design element renders on. `'all'` (default) renders
5726
5837
  * on every page the parity filter admits. */
5727
5838
  export type PageRoleFilter = 'all' | PageRole;
@@ -6372,6 +6483,45 @@ export interface TocConfig {
6372
6483
  marginTop?: Dimension;
6373
6484
  marginBottom?: Dimension;
6374
6485
  };
6486
+ /** The blocks of the contents (#850): a head row (a part row, or an
6487
+ * entry of a heading level) and every entry under it, down to the next
6488
+ * head of the same or a higher rank, kept on one column and page. A
6489
+ * `:::toc{keep="…"}` overrides it for one contents. */
6490
+ groups?: TocGroupsConfig;
6491
+ }
6492
+ /** What heads a block of the contents (`toc.groups.head`): a part row, or
6493
+ * the entry of a heading level. */
6494
+ export type TocGroupHead = 'part' | 1 | 2 | 3 | 4 | 5 | 6;
6495
+ /** `toc.groups` (#850). */
6496
+ export interface TocGroupsConfig {
6497
+ /** Keep each block whole: one that does not fit in the room left moves
6498
+ * to the next column or page, its head row with it. A block taller than
6499
+ * a full column is cut, and the column it goes on in opens with its head
6500
+ * row again. Default `false`. */
6501
+ keepTogether?: boolean;
6502
+ /** What heads a block. Default `'part'`. */
6503
+ head?: TocGroupHead;
6504
+ /** The fewest entries a cut block keeps under its head row: the head
6505
+ * moves on rather than stand with fewer. Default `2`. */
6506
+ minEntriesAfterHead?: number;
6507
+ /** The head row repeated at the top of the column a cut block goes on
6508
+ * in. */
6509
+ continuation?: {
6510
+ /** Default `true`. */
6511
+ enabled?: boolean;
6512
+ /** Set after the repeated title. Default: the document language's
6513
+ * continued-table suffix ("(cont.)", "(suite)", "(续)"…). */
6514
+ mark?: string;
6515
+ };
6516
+ }
6517
+ export interface ResolvedTocGroupsConfig {
6518
+ keepTogether: boolean;
6519
+ head: TocGroupHead;
6520
+ minEntriesAfterHead: number;
6521
+ continuation: {
6522
+ enabled: boolean;
6523
+ mark: string;
6524
+ };
6375
6525
  }
6376
6526
  export interface ResolvedTocEntryStyleConfig {
6377
6527
  fontFamily: string;
@@ -6428,6 +6578,7 @@ export interface ResolvedTocConfig {
6428
6578
  marginTop: Dimension;
6429
6579
  marginBottom: Dimension;
6430
6580
  };
6581
+ groups: ResolvedTocGroupsConfig;
6431
6582
  }
6432
6583
  /** The letter heads of an index: the first letter of each group of
6433
6584
  * entries, set above them. */
@@ -6964,6 +7115,9 @@ export interface PostextConfig {
6964
7115
  /** Named chip styles for the inline `:chip[text]{style="…"}`. Defaults
6965
7116
  * to a single `chip` style when unset. */
6966
7117
  chipStyles?: ChipStyleConfig[];
7118
+ /** Named highlight styles for the inline `:mark[text]{style="…"}`
7119
+ * (#888). Defaults to a single pale yellow `mark` style when unset. */
7120
+ markStyles?: MarkStyleConfig[];
6967
7121
  /** Part dividers (`:::part` containers): page breaks, body area,
6968
7122
  * opener design and body typography. */
6969
7123
  parts?: PartsConfig;
@@ -7042,11 +7196,22 @@ export interface PostextConfig {
7042
7196
  /** Comic pages (`:::page`): panel grid, panel and balloon styles,
7043
7197
  * lettering, cast. */
7044
7198
  comics?: ComicsConfig;
7199
+ /** Page templates (composed pages, #846): named frames, groups and
7200
+ * decoration that a `::::page{template="…"}` fence pours its Markdown
7201
+ * into, slot by slot. Validated (see `validatePageTemplates`): a
7202
+ * template's warnings carry a JSON-pointer `path`. */
7203
+ pageTemplates?: PageTemplate[];
7204
+ /** Named styles of the labels set at a picture's anchors (`::label`,
7205
+ * `ResourceAnchor.style`). */
7206
+ labelStyles?: LabelStyle[];
7045
7207
  pdfGeneration?: PdfGenerationConfig;
7046
7208
  /** Print production: PDF/X, output profile, black, preflight. */
7047
7209
  print?: PrintConfig;
7048
7210
  /** The contrast check: level, rendition, reversed text. */
7049
7211
  contrast?: ContrastConfig;
7212
+ /** Checks of the configuration itself (#849): the content check of the
7213
+ * design texts (`contentInConfig`). Layout ignores them. */
7214
+ checks?: ChecksConfig;
7050
7215
  colorPalette?: ColorPaletteEntry[];
7051
7216
  /** User-provided font families. Referenced the same way as Google Fonts:
7052
7217
  * set `bodyText.fontFamily` (or any other font-family field) to the