postext 1.47.0 → 1.48.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 (332) hide show
  1. package/dist/__tests__/bundle/designOverflowPin.test.js +1 -1
  2. package/dist/__tests__/bundle/gridBreakRulesPin.test.js +2 -2
  3. package/dist/__tests__/bundle/shapingLanguagePin.test.js +3 -3
  4. package/dist/__tests__/bundle/taskBoxPin.test.js +1 -1
  5. package/dist/__tests__/bundle.test.js +1 -1
  6. package/dist/__tests__/codeBlocks.test.js +1 -1
  7. package/dist/__tests__/composed/cardShapes.test.d.ts +2 -0
  8. package/dist/__tests__/composed/cardShapes.test.d.ts.map +1 -0
  9. package/dist/__tests__/composed/cardShapes.test.js +82 -0
  10. package/dist/__tests__/composed/cardShapes.test.js.map +1 -0
  11. package/dist/__tests__/composed/connectors.test.d.ts +2 -0
  12. package/dist/__tests__/composed/connectors.test.d.ts.map +1 -0
  13. package/dist/__tests__/composed/connectors.test.js +349 -0
  14. package/dist/__tests__/composed/connectors.test.js.map +1 -0
  15. package/dist/__tests__/composed/decorationSidePoints.test.d.ts +2 -0
  16. package/dist/__tests__/composed/decorationSidePoints.test.d.ts.map +1 -0
  17. package/dist/__tests__/composed/decorationSidePoints.test.js +164 -0
  18. package/dist/__tests__/composed/decorationSidePoints.test.js.map +1 -0
  19. package/dist/__tests__/composed/fit.test.js +2 -1
  20. package/dist/__tests__/composed/fit.test.js.map +1 -1
  21. package/dist/__tests__/composed/fixtures/connectors.d.ts +33 -0
  22. package/dist/__tests__/composed/fixtures/connectors.d.ts.map +1 -0
  23. package/dist/__tests__/composed/fixtures/connectors.js +142 -0
  24. package/dist/__tests__/composed/fixtures/connectors.js.map +1 -0
  25. package/dist/__tests__/composed/fixtures/grid.d.ts +32 -0
  26. package/dist/__tests__/composed/fixtures/grid.d.ts.map +1 -0
  27. package/dist/__tests__/composed/fixtures/grid.js +53 -0
  28. package/dist/__tests__/composed/fixtures/grid.js.map +1 -0
  29. package/dist/__tests__/composed/fixtures/legendMap.d.ts +24 -0
  30. package/dist/__tests__/composed/fixtures/legendMap.d.ts.map +1 -0
  31. package/dist/__tests__/composed/fixtures/legendMap.js +117 -0
  32. package/dist/__tests__/composed/fixtures/legendMap.js.map +1 -0
  33. package/dist/__tests__/composed/fixtures/mapParts.d.ts +58 -0
  34. package/dist/__tests__/composed/fixtures/mapParts.d.ts.map +1 -0
  35. package/dist/__tests__/composed/fixtures/mapParts.js +192 -0
  36. package/dist/__tests__/composed/fixtures/mapParts.js.map +1 -0
  37. package/dist/__tests__/composed/fixtures/modules.d.ts +55 -0
  38. package/dist/__tests__/composed/fixtures/modules.d.ts.map +1 -0
  39. package/dist/__tests__/composed/fixtures/modules.js +123 -0
  40. package/dist/__tests__/composed/fixtures/modules.js.map +1 -0
  41. package/dist/__tests__/composed/grid.test.d.ts +2 -0
  42. package/dist/__tests__/composed/grid.test.d.ts.map +1 -0
  43. package/dist/__tests__/composed/grid.test.js +357 -0
  44. package/dist/__tests__/composed/grid.test.js.map +1 -0
  45. package/dist/__tests__/composed/groups.test.js +6 -3
  46. package/dist/__tests__/composed/groups.test.js.map +1 -1
  47. package/dist/__tests__/composed/labelLegend.test.d.ts +2 -0
  48. package/dist/__tests__/composed/labelLegend.test.d.ts.map +1 -0
  49. package/dist/__tests__/composed/labelLegend.test.js +268 -0
  50. package/dist/__tests__/composed/labelLegend.test.js.map +1 -0
  51. package/dist/__tests__/composed/labelsChecks.test.js.map +1 -1
  52. package/dist/__tests__/composed/leaders.test.d.ts +2 -0
  53. package/dist/__tests__/composed/leaders.test.d.ts.map +1 -0
  54. package/dist/__tests__/composed/leaders.test.js +372 -0
  55. package/dist/__tests__/composed/leaders.test.js.map +1 -0
  56. package/dist/__tests__/composed/modules.test.d.ts +2 -0
  57. package/dist/__tests__/composed/modules.test.d.ts.map +1 -0
  58. package/dist/__tests__/composed/modules.test.js +352 -0
  59. package/dist/__tests__/composed/modules.test.js.map +1 -0
  60. package/dist/__tests__/composed/overConnectors.test.d.ts +2 -0
  61. package/dist/__tests__/composed/overConnectors.test.d.ts.map +1 -0
  62. package/dist/__tests__/composed/overConnectors.test.js +232 -0
  63. package/dist/__tests__/composed/overConnectors.test.js.map +1 -0
  64. package/dist/__tests__/composed/overlap.test.d.ts +2 -0
  65. package/dist/__tests__/composed/overlap.test.d.ts.map +1 -0
  66. package/dist/__tests__/composed/overlap.test.js +339 -0
  67. package/dist/__tests__/composed/overlap.test.js.map +1 -0
  68. package/dist/__tests__/composedTemplates.test.js +1 -1
  69. package/dist/__tests__/design/boxShape.test.d.ts +2 -0
  70. package/dist/__tests__/design/boxShape.test.d.ts.map +1 -0
  71. package/dist/__tests__/design/boxShape.test.js +126 -0
  72. package/dist/__tests__/design/boxShape.test.js.map +1 -0
  73. package/dist/__tests__/design/boxShapePaint.test.d.ts +2 -0
  74. package/dist/__tests__/design/boxShapePaint.test.d.ts.map +1 -0
  75. package/dist/__tests__/design/boxShapePaint.test.js +130 -0
  76. package/dist/__tests__/design/boxShapePaint.test.js.map +1 -0
  77. package/dist/__tests__/design/openerBottomAnchor.test.js.map +1 -1
  78. package/dist/__tests__/design/pathBlock.test.d.ts +2 -0
  79. package/dist/__tests__/design/pathBlock.test.d.ts.map +1 -0
  80. package/dist/__tests__/design/pathBlock.test.js +194 -0
  81. package/dist/__tests__/design/pathBlock.test.js.map +1 -0
  82. package/dist/__tests__/design/pathElement.test.d.ts +2 -0
  83. package/dist/__tests__/design/pathElement.test.d.ts.map +1 -0
  84. package/dist/__tests__/design/pathElement.test.js +257 -0
  85. package/dist/__tests__/design/pathElement.test.js.map +1 -0
  86. package/dist/__tests__/design/svgPath.test.d.ts +2 -0
  87. package/dist/__tests__/design/svgPath.test.d.ts.map +1 -0
  88. package/dist/__tests__/design/svgPath.test.js +144 -0
  89. package/dist/__tests__/design/svgPath.test.js.map +1 -0
  90. package/dist/__tests__/exports.test.js +52 -0
  91. package/dist/__tests__/exports.test.js.map +1 -1
  92. package/dist/__tests__/hardBreaks.test.js +1 -1
  93. package/dist/__tests__/headingInlineMarks.test.js +1 -1
  94. package/dist/__tests__/labelGlyphPaint.test.d.ts +2 -0
  95. package/dist/__tests__/labelGlyphPaint.test.d.ts.map +1 -0
  96. package/dist/__tests__/labelGlyphPaint.test.js +86 -0
  97. package/dist/__tests__/labelGlyphPaint.test.js.map +1 -0
  98. package/dist/__tests__/mathSizeMigration.test.js +2 -2
  99. package/dist/__tests__/migrate/labelsOnPictures.test.js +1 -1
  100. package/dist/__tests__/migrate/labelsOnPictures.test.js.map +1 -1
  101. package/dist/__tests__/parse/containers.test.js +1 -1
  102. package/dist/__tests__/parse/containers.test.js.map +1 -1
  103. package/dist/__tests__/pipeline/calloutInlineResourceGap.test.js +1 -1
  104. package/dist/__tests__/pipeline/calloutLabelGlyph.test.d.ts +2 -0
  105. package/dist/__tests__/pipeline/calloutLabelGlyph.test.d.ts.map +1 -0
  106. package/dist/__tests__/pipeline/calloutLabelGlyph.test.js +198 -0
  107. package/dist/__tests__/pipeline/calloutLabelGlyph.test.js.map +1 -0
  108. package/dist/__tests__/pipeline/calloutShapes.test.d.ts +2 -0
  109. package/dist/__tests__/pipeline/calloutShapes.test.d.ts.map +1 -0
  110. package/dist/__tests__/pipeline/calloutShapes.test.js +159 -0
  111. package/dist/__tests__/pipeline/calloutShapes.test.js.map +1 -0
  112. package/dist/__tests__/pipeline/calloutSplitMinLinesChild.test.js +1 -1
  113. package/dist/__tests__/pipeline/colonListRoom.test.js +1 -1
  114. package/dist/__tests__/pipeline/compoundBreaks.test.js +1 -1
  115. package/dist/__tests__/pipeline/dashBreaks.test.js +1 -1
  116. package/dist/__tests__/pipeline/headingSplitOrphans.test.js +1 -1
  117. package/dist/__tests__/pipeline/inlineFigureSpace.test.js +1 -1
  118. package/dist/__tests__/pipeline/paragraphContainerTail.test.js +1 -1
  119. package/dist/__tests__/pipeline/raggedOptimal.test.js +1 -1
  120. package/dist/__tests__/verseLines.test.js +1 -1
  121. package/dist/bundle/configVersion.d.ts +12 -3
  122. package/dist/bundle/configVersion.d.ts.map +1 -1
  123. package/dist/bundle/configVersion.js +16 -5
  124. package/dist/bundle/configVersion.js.map +1 -1
  125. package/dist/canvas-backend/blockRender.js +3 -3
  126. package/dist/canvas-backend/blockRender.js.map +1 -1
  127. package/dist/canvas-backend/composed.d.ts +4 -2
  128. package/dist/canvas-backend/composed.d.ts.map +1 -1
  129. package/dist/canvas-backend/composed.js +12 -7
  130. package/dist/canvas-backend/composed.js.map +1 -1
  131. package/dist/canvas-backend/headerFooter.d.ts +17 -1
  132. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  133. package/dist/canvas-backend/headerFooter.js +64 -1
  134. package/dist/canvas-backend/headerFooter.js.map +1 -1
  135. package/dist/canvas-backend/index.d.ts.map +1 -1
  136. package/dist/canvas-backend/index.js +7 -1
  137. package/dist/canvas-backend/index.js.map +1 -1
  138. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  139. package/dist/canvas-backend/renderResourceBlock.js +17 -6
  140. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  141. package/dist/canvas-backend/swatch.d.ts +20 -1
  142. package/dist/canvas-backend/swatch.d.ts.map +1 -1
  143. package/dist/canvas-backend/swatch.js +51 -1
  144. package/dist/canvas-backend/swatch.js.map +1 -1
  145. package/dist/comics/layoutPage.d.ts.map +1 -1
  146. package/dist/comics/layoutPage.js +6 -1
  147. package/dist/comics/layoutPage.js.map +1 -1
  148. package/dist/composed/continuation.d.ts +10 -2
  149. package/dist/composed/continuation.d.ts.map +1 -1
  150. package/dist/composed/continuation.js +10 -2
  151. package/dist/composed/continuation.js.map +1 -1
  152. package/dist/composed/document.d.ts +45 -1
  153. package/dist/composed/document.d.ts.map +1 -1
  154. package/dist/composed/document.js +76 -17
  155. package/dist/composed/document.js.map +1 -1
  156. package/dist/composed/labelText.d.ts +6 -2
  157. package/dist/composed/labelText.d.ts.map +1 -1
  158. package/dist/composed/labelText.js +19 -3
  159. package/dist/composed/labelText.js.map +1 -1
  160. package/dist/composed/labels.d.ts +57 -3
  161. package/dist/composed/labels.d.ts.map +1 -1
  162. package/dist/composed/labels.js +261 -12
  163. package/dist/composed/labels.js.map +1 -1
  164. package/dist/composed/modules.d.ts +30 -0
  165. package/dist/composed/modules.d.ts.map +1 -0
  166. package/dist/composed/modules.js +194 -0
  167. package/dist/composed/modules.js.map +1 -0
  168. package/dist/composed/overlap.d.ts +52 -0
  169. package/dist/composed/overlap.d.ts.map +1 -0
  170. package/dist/composed/overlap.js +611 -0
  171. package/dist/composed/overlap.js.map +1 -0
  172. package/dist/composed/paint.d.ts +28 -5
  173. package/dist/composed/paint.d.ts.map +1 -1
  174. package/dist/composed/paint.js +26 -5
  175. package/dist/composed/paint.js.map +1 -1
  176. package/dist/composed/reflowLog.d.ts +6 -1
  177. package/dist/composed/reflowLog.d.ts.map +1 -1
  178. package/dist/composed/reflowLog.js +43 -0
  179. package/dist/composed/reflowLog.js.map +1 -1
  180. package/dist/composed/repeat.d.ts +66 -0
  181. package/dist/composed/repeat.d.ts.map +1 -0
  182. package/dist/composed/repeat.js +217 -0
  183. package/dist/composed/repeat.js.map +1 -0
  184. package/dist/composed/slotChecks.d.ts +1 -1
  185. package/dist/composed/slotChecks.d.ts.map +1 -1
  186. package/dist/composed/slotChecks.js +114 -8
  187. package/dist/composed/slotChecks.js.map +1 -1
  188. package/dist/composed/sourceMap.d.ts.map +1 -1
  189. package/dist/composed/sourceMap.js +16 -4
  190. package/dist/composed/sourceMap.js.map +1 -1
  191. package/dist/composed/spread.d.ts.map +1 -1
  192. package/dist/composed/spread.js +6 -2
  193. package/dist/composed/spread.js.map +1 -1
  194. package/dist/composed/templates.d.ts +22 -2
  195. package/dist/composed/templates.d.ts.map +1 -1
  196. package/dist/composed/templates.js +159 -9
  197. package/dist/composed/templates.js.map +1 -1
  198. package/dist/composed/types.d.ts +140 -7
  199. package/dist/composed/types.d.ts.map +1 -1
  200. package/dist/composed/validate.d.ts +1 -1
  201. package/dist/composed/validate.d.ts.map +1 -1
  202. package/dist/composed/validate.js +101 -4
  203. package/dist/composed/validate.js.map +1 -1
  204. package/dist/composed/wrap.d.ts.map +1 -1
  205. package/dist/composed/wrap.js +95 -17
  206. package/dist/composed/wrap.js.map +1 -1
  207. package/dist/configWarnings.d.ts +7 -1
  208. package/dist/configWarnings.d.ts.map +1 -1
  209. package/dist/configWarnings.js +275 -4
  210. package/dist/configWarnings.js.map +1 -1
  211. package/dist/contrast.d.ts.map +1 -1
  212. package/dist/contrast.js +8 -0
  213. package/dist/contrast.js.map +1 -1
  214. package/dist/defaults/calloutStyles.d.ts +10 -1
  215. package/dist/defaults/calloutStyles.d.ts.map +1 -1
  216. package/dist/defaults/calloutStyles.js +46 -7
  217. package/dist/defaults/calloutStyles.js.map +1 -1
  218. package/dist/defaults/headerFooter.d.ts.map +1 -1
  219. package/dist/defaults/headerFooter.js +38 -0
  220. package/dist/defaults/headerFooter.js.map +1 -1
  221. package/dist/design/boxShape.d.ts +101 -0
  222. package/dist/design/boxShape.d.ts.map +1 -0
  223. package/dist/design/boxShape.js +398 -0
  224. package/dist/design/boxShape.js.map +1 -0
  225. package/dist/design/connector.d.ts +75 -0
  226. package/dist/design/connector.d.ts.map +1 -0
  227. package/dist/design/connector.js +325 -0
  228. package/dist/design/connector.js.map +1 -0
  229. package/dist/design/layout.d.ts +56 -3
  230. package/dist/design/layout.d.ts.map +1 -1
  231. package/dist/design/layout.js +214 -12
  232. package/dist/design/layout.js.map +1 -1
  233. package/dist/design/logicalEdges.d.ts +7 -0
  234. package/dist/design/logicalEdges.d.ts.map +1 -1
  235. package/dist/design/logicalEdges.js +28 -0
  236. package/dist/design/logicalEdges.js.map +1 -1
  237. package/dist/design/pathBlock.d.ts +69 -0
  238. package/dist/design/pathBlock.d.ts.map +1 -0
  239. package/dist/design/pathBlock.js +286 -0
  240. package/dist/design/pathBlock.js.map +1 -0
  241. package/dist/design/svgPath.d.ts +48 -0
  242. package/dist/design/svgPath.d.ts.map +1 -0
  243. package/dist/design/svgPath.js +402 -0
  244. package/dist/design/svgPath.js.map +1 -0
  245. package/dist/fonts/usage.d.ts +5 -0
  246. package/dist/fonts/usage.d.ts.map +1 -1
  247. package/dist/fonts/usage.js +36 -3
  248. package/dist/fonts/usage.js.map +1 -1
  249. package/dist/html-backend.d.ts.map +1 -1
  250. package/dist/html-backend.js +127 -22
  251. package/dist/html-backend.js.map +1 -1
  252. package/dist/index.d.ts +19 -9
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +13 -5
  255. package/dist/index.js.map +1 -1
  256. package/dist/measure/cache.js +1 -1
  257. package/dist/measure/cache.js.map +1 -1
  258. package/dist/measure/inlineIcon.d.ts +34 -0
  259. package/dist/measure/inlineIcon.d.ts.map +1 -0
  260. package/dist/measure/inlineIcon.js +89 -0
  261. package/dist/measure/inlineIcon.js.map +1 -0
  262. package/dist/measure/rich.d.ts +2 -1
  263. package/dist/measure/rich.d.ts.map +1 -1
  264. package/dist/measure/rich.js +6 -0
  265. package/dist/measure/rich.js.map +1 -1
  266. package/dist/migrate/pageDesign.d.ts.map +1 -1
  267. package/dist/migrate/pageDesign.js +4 -2
  268. package/dist/migrate/pageDesign.js.map +1 -1
  269. package/dist/migrate/textToMarkdown.js +2 -0
  270. package/dist/migrate/textToMarkdown.js.map +1 -1
  271. package/dist/parse/blockParser.d.ts.map +1 -1
  272. package/dist/parse/blockParser.js +171 -20
  273. package/dist/parse/blockParser.js.map +1 -1
  274. package/dist/parse/index.d.ts +1 -1
  275. package/dist/parse/index.d.ts.map +1 -1
  276. package/dist/parse/index.js.map +1 -1
  277. package/dist/parse/inlineFormatting.d.ts +11 -3
  278. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  279. package/dist/parse/inlineFormatting.js +63 -5
  280. package/dist/parse/inlineFormatting.js.map +1 -1
  281. package/dist/parse/inlineSnippet.d.ts +2 -1
  282. package/dist/parse/inlineSnippet.d.ts.map +1 -1
  283. package/dist/parse/inlineSnippet.js +3 -2
  284. package/dist/parse/inlineSnippet.js.map +1 -1
  285. package/dist/parse/sourceMapping.d.ts.map +1 -1
  286. package/dist/parse/sourceMapping.js +8 -1
  287. package/dist/parse/sourceMapping.js.map +1 -1
  288. package/dist/parse/types.d.ts +71 -1
  289. package/dist/parse/types.d.ts.map +1 -1
  290. package/dist/pipeline/build.d.ts.map +1 -1
  291. package/dist/pipeline/build.js +23 -11
  292. package/dist/pipeline/build.js.map +1 -1
  293. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  294. package/dist/pipeline/buildMeasurement.js +23 -11
  295. package/dist/pipeline/buildMeasurement.js.map +1 -1
  296. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  297. package/dist/pipeline/calloutLayout.js +142 -32
  298. package/dist/pipeline/calloutLayout.js.map +1 -1
  299. package/dist/pipeline/composedLayout.d.ts +1 -33
  300. package/dist/pipeline/composedLayout.d.ts.map +1 -1
  301. package/dist/pipeline/composedLayout.js +526 -36
  302. package/dist/pipeline/composedLayout.js.map +1 -1
  303. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  304. package/dist/pipeline/contentWarnings.js +46 -1
  305. package/dist/pipeline/contentWarnings.js.map +1 -1
  306. package/dist/pipeline/continuation.d.ts.map +1 -1
  307. package/dist/pipeline/continuation.js +3 -2
  308. package/dist/pipeline/continuation.js.map +1 -1
  309. package/dist/pipeline/headerFooter.d.ts +19 -1
  310. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  311. package/dist/pipeline/headerFooter.js +145 -5
  312. package/dist/pipeline/headerFooter.js.map +1 -1
  313. package/dist/pipeline/partPalette.d.ts.map +1 -1
  314. package/dist/pipeline/partPalette.js +40 -1
  315. package/dist/pipeline/partPalette.js.map +1 -1
  316. package/dist/pipeline/resourceLayout.d.ts +1 -1
  317. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  318. package/dist/pipeline/resourceLayout.js +44 -15
  319. package/dist/pipeline/resourceLayout.js.map +1 -1
  320. package/dist/preflight.d.ts.map +1 -1
  321. package/dist/preflight.js +36 -1
  322. package/dist/preflight.js.map +1 -1
  323. package/dist/types.d.ts +305 -22
  324. package/dist/types.d.ts.map +1 -1
  325. package/dist/vdt.d.ts +384 -11
  326. package/dist/vdt.d.ts.map +1 -1
  327. package/dist/vdt.js.map +1 -1
  328. package/package.json +1 -1
  329. package/dist/composed/round2Types.d.ts +0 -185
  330. package/dist/composed/round2Types.d.ts.map +0 -1
  331. package/dist/composed/round2Types.js +0 -2
  332. package/dist/composed/round2Types.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import { composedPages, takenBlocks } from './document';
2
- import { resolvePageTemplate } from './templates';
1
+ import { composedPages, pageModuleUses, takenBlocks } from './document';
2
+ import { isModuleTemplate, repeatInstance, repeatInstanceName, resolvePageTemplate } from './templates';
3
+ import { pageRepeats } from './repeat';
3
4
  import { nextFrameOf } from './geometry';
4
5
  /** Style id of a story's box. Not a user style: no configuration can name
5
6
  * it. A story whose frame is missing on its page (a variant dropped it)
@@ -44,11 +45,16 @@ export function chainHead(template, name) {
44
45
  }
45
46
  return at;
46
47
  }
48
+ /** The flow frame of a template: the frame with `flow` that no grid
49
+ * repeats (an instance takes its own item's content only, #1061). */
50
+ function flowFrameOf(template, repeated) {
51
+ return template.frames.find((f) => f.flow && !repeated.has(f.name));
52
+ }
47
53
  /** Which story each slot of `page` goes to: the head of its frame's chain,
48
54
  * or undefined for content left outside every story. */
49
- function storyOf(template, variantNames) {
55
+ function storyOf(template, variantNames, repeated) {
50
56
  const names = new Set(template.frames.map((f) => f.name));
51
- const flow = template.frames.find((f) => f.flow);
57
+ const flow = flowFrameOf(template, repeated);
52
58
  return (slot) => {
53
59
  if (slot !== undefined && names.has(slot))
54
60
  return chainHead(template, slot);
@@ -85,8 +91,9 @@ export function wrapComposedPages(blocks, config) {
85
91
  let at = 0;
86
92
  let wrapped = 0;
87
93
  for (const page of pages) {
88
- const template = resolvePageTemplate(config, page.template);
89
- if (!template)
94
+ // With the page's modules (#1062) laid in it; a module is never a page.
95
+ const template = resolvePageTemplate(config, page.template, { modules: pageModuleUses(page) });
96
+ if (!template || isModuleTemplate(template))
90
97
  continue;
91
98
  const start = blocks.findIndex((b, i) => i >= at && b.type === 'containerStart' && b.containerName === 'composedPage' && b.composedPage?.fenceIndex === page.fenceIndex);
92
99
  if (start < 0)
@@ -118,7 +125,8 @@ function endOf(blocks, start) {
118
125
  /** The blocks between a page's fences, regrouped: its stories (each a box
119
126
  * of the frame style), then what no story takes. */
120
127
  function regroupPage(blocks, page, template, variantNames, nextId) {
121
- const story = storyOf(template, variantNames);
128
+ const repeats = pageRepeats(page, template);
129
+ const story = storyOf(template, variantNames, repeats.repeated);
122
130
  /** Pieces per frame name (a frame's own content), in Markdown order. */
123
131
  const pieces = new Map();
124
132
  const loose = [];
@@ -132,22 +140,59 @@ function regroupPage(blocks, page, template, variantNames, nextId) {
132
140
  pieces.set(frame, list);
133
141
  };
134
142
  const names = new Set(template.frames.map((f) => f.name));
135
- const flow = template.frames.find((f) => f.flow)?.name;
143
+ const flow = flowFrameOf(template, repeats.repeated)?.name;
136
144
  const taken = new Map();
137
145
  for (const f of template.frames) {
146
+ if (repeats.repeated.has(f.name))
147
+ continue;
138
148
  for (const idx of takenBlocks(page, f.takes))
139
149
  if (!taken.has(idx))
140
150
  taken.set(idx, f.name);
141
151
  }
142
152
  for (const [slot, indices] of Object.entries(page.slots)) {
153
+ // A grid's frames take their content item by item (#1061).
154
+ if (repeats.repeated.has(slot))
155
+ continue;
143
156
  put(names.has(slot) || variantNames.has(slot) ? slot : flow, indices);
144
157
  }
158
+ /** The `:::frame` fence each instance's content came in (#1061). */
159
+ const instanceFences = new Map();
160
+ for (const item of repeats.items) {
161
+ for (const [f, indices] of item.frames) {
162
+ const name = repeatInstanceName(f, item.item);
163
+ put(name, indices);
164
+ const fence = item.fences.get(f);
165
+ if (fence !== undefined)
166
+ instanceFences.set(name, fence);
167
+ }
168
+ }
169
+ // Items past a grid's `max` go where content naming no frame goes.
170
+ for (const o of repeats.overflow)
171
+ put(flow, o.indices);
145
172
  for (const i of page.unassigned)
146
173
  put(taken.get(i) ?? flow, [i]);
174
+ // A module's content that names no slot (#1062): the module's `takes`
175
+ // frame, else its flow frame, else the page's (a module not laid).
176
+ for (const m of page.modules) {
177
+ const laid = template.modules?.find((x) => x.name === m.fence.name);
178
+ const own = new Map();
179
+ for (const [take, frame] of Object.entries(laid?.takes ?? {})) {
180
+ for (const idx of takenBlocks({ firstHeadings: m.firstHeadings, tocRows: [] }, take))
181
+ if (!own.has(idx))
182
+ own.set(idx, frame);
183
+ }
184
+ for (const i of m.unassigned)
185
+ put(own.get(i) ?? laid?.flow ?? flow, [i]);
186
+ }
147
187
  // The attributes of a slot's first `:::frame` fence (its `label`,
148
188
  // `title`): the frame's tab and title.
149
189
  const fenceAttrs = new Map();
150
190
  const fenceAttrSources = new Map();
191
+ const readFence = (key, b) => {
192
+ fenceAttrs.set(key, Object.fromEntries(Object.entries(b.containerAttrs ?? {}).filter(([k]) => k !== 'slot')));
193
+ if (b.containerAttrSources)
194
+ fenceAttrSources.set(key, Object.fromEntries(Object.entries(b.containerAttrSources).filter(([k]) => k !== 'slot')));
195
+ };
151
196
  for (let i = 0; i < blocks.length; i++) {
152
197
  const b = blocks[i];
153
198
  if (b.type !== 'containerStart' || b.containerName !== 'frame' || i < 0)
@@ -155,21 +200,39 @@ function regroupPage(blocks, page, template, variantNames, nextId) {
155
200
  if (b.sourceStart < page.sourceStart || b.sourceStart > page.sourceEnd)
156
201
  continue;
157
202
  const slot = b.slot?.name;
158
- if (slot === undefined || fenceAttrs.has(slot))
203
+ if (slot === undefined || fenceAttrs.has(slot) || repeats.repeated.has(slot))
159
204
  continue;
160
- fenceAttrs.set(slot, Object.fromEntries(Object.entries(b.containerAttrs ?? {}).filter(([k]) => k !== 'slot')));
161
- if (b.containerAttrSources)
162
- fenceAttrSources.set(slot, Object.fromEntries(Object.entries(b.containerAttrSources).filter(([k]) => k !== 'slot')));
205
+ readFence(slot, b);
163
206
  }
207
+ // Each instance is dressed by its own item's fence (#1061).
208
+ for (const [name, at] of instanceFences)
209
+ readFence(name, blocks[at]);
164
210
  // Stories: each chain's frames' pieces, head first.
165
211
  const stories = [];
166
212
  const done = new Set();
213
+ /** An instance's story (#1061): the instance of its chain's head, the
214
+ * chain's frames of the set as the same item's instances. */
215
+ const instanceStory = (name) => {
216
+ const at = repeatInstance(name);
217
+ if (!at || !repeats.repeated.has(at.frame) || !names.has(at.frame))
218
+ return undefined;
219
+ const inSet = (f) => repeats.repeated.has(f);
220
+ const baseHead = chainHead(template, at.frame);
221
+ const head = inSet(baseHead) ? baseHead : at.frame;
222
+ const chain = frameChain(template, head).map((f) => f.name);
223
+ // (A link out of the set is not followed: an instance's content is its
224
+ // item's.)
225
+ const stop = chain.findIndex((f) => !inSet(f));
226
+ const kept = stop < 0 ? chain : chain.slice(0, Math.max(1, stop));
227
+ return { head: repeatInstanceName(head, at.item), chain: kept.map((f) => repeatInstanceName(f, at.item)) };
228
+ };
167
229
  for (const name of pieces.keys()) {
168
- const head = names.has(name) ? story(name) : name;
230
+ const inst = names.has(name) ? undefined : instanceStory(name);
231
+ const head = names.has(name) ? story(name) : inst?.head ?? name;
169
232
  if (done.has(head))
170
233
  continue;
171
234
  done.add(head);
172
- const chain = names.has(head) ? frameChain(template, head).map((f) => f.name) : [head];
235
+ const chain = names.has(head) ? frameChain(template, head).map((f) => f.name) : inst?.chain ?? [head];
173
236
  const indices = [];
174
237
  for (const f of chain)
175
238
  indices.push(...(pieces.get(f) ?? []).slice().sort((a, b) => a - b));
@@ -204,7 +267,10 @@ function regroupPage(blocks, page, template, variantNames, nextId) {
204
267
  // A frame's own `direction` (#944): its story is set in it, as a box
205
268
  // fenced `{dir=…}` is; a block or a box inside that writes its own
206
269
  // `dir` keeps it.
207
- const frameDir = names.has(s.head) ? frameChain(template, s.head)[0]?.direction : undefined;
270
+ // An instance of a repeated frame (#1061) is set as its frame.
271
+ const base = names.has(s.head) ? s.head : repeatInstance(s.head)?.frame;
272
+ const baseFrame = base !== undefined && names.has(base) ? base : undefined;
273
+ const frameDir = baseFrame !== undefined ? frameChain(template, baseFrame)[0]?.direction : undefined;
208
274
  // Boxes inside the story that write their own `dir` are open while
209
275
  // their blocks pass: those keep the direction they were given.
210
276
  const owning = [];
@@ -235,14 +301,15 @@ function regroupPage(blocks, page, template, variantNames, nextId) {
235
301
  // A frame set in columns (`columns`), alone in its story: its content
236
302
  // is a `:::columns` group of the box (a chain's frames may differ in
237
303
  // columns; they are set in one).
238
- const chain = names.has(s.head) ? frameChain(template, s.head) : [];
304
+ const chain = names.has(s.head) ? frameChain(template, s.head) : baseFrame !== undefined ? [template.frames.find((f) => f.name === baseFrame)] : [];
239
305
  const cols = chain.length === 1 && chain[0].columns > 1 ? chain[0] : undefined;
240
306
  if (cols) {
241
307
  const gap = cols.columnGap ? { gap: `${cols.columnGap.value}${cols.columnGap.unit}` } : {};
242
308
  out.push({ type: 'containerStart', text: '', spans: [], containerName: 'columns', containerAttrs: { count: String(cols.columns), ...gap }, containerId: id + COLUMNS_ID_OFFSET, sourceStart: first.sourceStart, sourceEnd: first.sourceStart, sourceMap: [] });
243
309
  }
310
+ const instance = baseFrame !== undefined && baseFrame !== s.head ? s.head : undefined;
244
311
  for (const i of s.indices)
245
- out.push(directed(blocks[i]));
312
+ out.push(directed(instance !== undefined ? withInstanceLabels(blocks[i], page.fenceIndex, baseFrame, instance) : blocks[i]));
246
313
  if (cols)
247
314
  out.push({ type: 'containerEnd', text: '', spans: [], containerName: 'columns', containerId: id + COLUMNS_ID_OFFSET, sourceStart: last.sourceEnd, sourceEnd: last.sourceEnd, sourceMap: [] });
248
315
  out.push({ type: 'containerEnd', text: '', spans: [], containerName: 'callout', containerId: id, sourceStart: last.sourceEnd, sourceEnd: last.sourceEnd, sourceMap: [] });
@@ -251,6 +318,17 @@ function regroupPage(blocks, page, template, variantNames, nextId) {
251
318
  out.push(blocks[i]);
252
319
  return out;
253
320
  }
321
+ /** A figure of an instance's content with its labels' ids named by the
322
+ * instance (#1061): `cp<n>:card[2]:label:<anchor>`, one per item, not the
323
+ * frame's id the parser gave every item alike. */
324
+ function withInstanceLabels(b, fenceIndex, frame, instance) {
325
+ const labels = b.figure?.labels;
326
+ const from = `cp${fenceIndex}:${frame}:label:`;
327
+ if (!labels || !labels.some((l) => l.id?.startsWith(from)))
328
+ return b;
329
+ const to = `cp${fenceIndex}:${instance}:label:`;
330
+ return { ...b, figure: { ...b.figure, labels: labels.map((l) => (l.id?.startsWith(from) ? { ...l, id: to + l.id.slice(from.length) } : l)) } };
331
+ }
254
332
  /** Whether a block sets its own direction in the Markdown (a heading's or
255
333
  * a box's `{dir=…}`), which a frame's `direction` leaves as written. */
256
334
  function ownsDirection(b) {
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/composed/wrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../src/composed/wrap.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,13 @@ import type { ConfigWarning } from './vdt';
38
38
  * - page templates and label styles (see `validatePageTemplates`), and a
39
39
  * box style whose `extends` names no style or comes back to itself;
40
40
  * - the design texts that hold the book's content instead of placeholders
41
- * (`contentInConfig`, #849, tuned by `checks.contentInConfig`).
41
+ * (`contentInConfig`, #849, tuned by `checks.contentInConfig`);
42
+ * - a design element's point along a side (`anchor.at`) or size edge
43
+ * (`size.width.edge`…) outside its choices (`unknownConfigValue`, #1055);
44
+ * - a path element's keys, path data, `viewBox` and
45
+ * `preserveAspectRatio` (#1060);
46
+ * - box shapes (#1059): corner and side keys a box does not have, a label
47
+ * tab's `position` outside its choices, a joined tab with an `offset`.
42
48
  * Pure.
43
49
  */
44
50
  export declare function collectConfigWarnings(config: PostextConfig | undefined, options?: ConfigWarningOptions): ConfigWarning[];
@@ -1 +1 @@
1
- {"version":3,"file":"configWarnings.d.ts","sourceRoot":"","sources":["../src/configWarnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAOV,aAAa,EAgBb,QAAQ,EAGR,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AAgD3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,aAAa,EAAE,CAQ5H;AA8BD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC;+CAC2C;IAC3C,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAChC;;;gBAGY;IACZ,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AA6qBD;kEACkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAkBD;;;8CAG8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;iEAGiE;AACjE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,iBAAiB,CAiBjJ"}
1
+ {"version":3,"file":"configWarnings.d.ts","sourceRoot":"","sources":["../src/configWarnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EASV,aAAa,EAgBb,QAAQ,EAGR,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AAkD3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,aAAa,EAAE,CAW5H;AAkRD,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC;+CAC2C;IAC3C,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAChC;;;gBAGY;IACZ,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AA6qBD;kEACkE;AAClE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAkBD;;;8CAG8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;iEAGiE;AACjE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,OAAO,GAAE,oBAAyB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,iBAAiB,CAiBjJ"}
@@ -26,13 +26,15 @@ import { isTabStopAlign, parseTabStopPosition } from './defaults/tabStops';
26
26
  import { resolveContentInConfigCheck } from './defaults/checks';
27
27
  import { stripPlaceholders } from './pipeline/placeholders';
28
28
  import { configDesignSlots } from './design/slots';
29
+ import { parseSvgPath, pathViewBox } from './design/svgPath';
30
+ import { CONNECTOR_CAPS, CONNECTOR_ROUTINGS, CONNECTOR_SIDES, connectorPaintsOver } from './design/connector';
29
31
  import { metadataText } from './frontmatter';
30
32
  import { DROP_CAP_PUNCTUATION, DROP_CAP_SHORT_PARAGRAPH, isDropCap, readDropCap } from './defaults/dropCap';
31
33
  import { outputProfileInfo } from './color/catalogue';
32
34
  import { CODE_OVERFLOWS, CODE_TOKEN_KINDS } from './defaults/codeStyle';
33
35
  import { closestKey } from './util/closestKey';
34
36
  import { isResourceCounterReset } from './defaults/resourceTypes';
35
- import { calloutStyleChain } from './defaults/calloutStyles';
37
+ import { calloutStyleChain, labelIconKind, labelIconScale } from './defaults/calloutStyles';
36
38
  import { validatePageTemplates } from './composed/validate';
37
39
  import { LINE_NUMBERS_ALIGNS, LINE_NUMBERS_COUNTS, LINE_NUMBERS_MULTI_COLUMN, LINE_NUMBERS_POSITIONS, LINE_NUMBERS_RESTARTS } from './defaults/lineNumbers';
38
40
  /** The format fields and the decimal spelling each falls back to. A
@@ -82,7 +84,13 @@ function percentText(n) {
82
84
  * - page templates and label styles (see `validatePageTemplates`), and a
83
85
  * box style whose `extends` names no style or comes back to itself;
84
86
  * - the design texts that hold the book's content instead of placeholders
85
- * (`contentInConfig`, #849, tuned by `checks.contentInConfig`).
87
+ * (`contentInConfig`, #849, tuned by `checks.contentInConfig`);
88
+ * - a design element's point along a side (`anchor.at`) or size edge
89
+ * (`size.width.edge`…) outside its choices (`unknownConfigValue`, #1055);
90
+ * - a path element's keys, path data, `viewBox` and
91
+ * `preserveAspectRatio` (#1060);
92
+ * - box shapes (#1059): corner and side keys a box does not have, a label
93
+ * tab's `position` outside its choices, a joined tab with an `offset`.
86
94
  * Pure.
87
95
  */
88
96
  export function collectConfigWarnings(config, options = {}) {
@@ -91,10 +99,234 @@ export function collectConfigWarnings(config, options = {}) {
91
99
  return [
92
100
  ...collectValueWarnings(config), ...collectSideColumnWarnings(config), ...collectColumnCountWarnings(config), ...collectUnknownKeyWarnings(config),
93
101
  ...collectCjkGridWarnings(config), ...collectChoiceWarnings(config), ...collectNumeralsWarnings(config),
94
- ...collectPageTemplateWarnings(config, options), ...collectCalloutStyleWarnings(config),
102
+ ...collectPageTemplateWarnings(config, options), ...collectCalloutStyleWarnings(config), ...collectLabelIconWarnings(config),
95
103
  ...collectContentInConfigWarnings(config, options),
104
+ ...collectDesignAnchorWarnings(config),
105
+ ...collectDesignPathWarnings(config), ...collectBoxShapeWarnings(config),
106
+ ...collectConnectorWarnings(config),
96
107
  ];
97
108
  }
109
+ /** Connectors (#1056): one outside a page template's decoration (a
110
+ * running head, a heading design, a part page, a box design has no frames
111
+ * to join: not drawn), and a `routing`, `startCap` / `endCap`, an `over`
112
+ * that is not a boolean (#1076) or an end's `side` / `at` outside its
113
+ * choices (`unknownConfigValue`). */
114
+ function collectConnectorWarnings(config) {
115
+ const out = [];
116
+ const word = (path, value, choices, used) => {
117
+ if (value === undefined || (typeof value === 'string' && choices.includes(value)))
118
+ return;
119
+ const suggestion = typeof value === 'string' ? closestKey(value, choices) : undefined;
120
+ out.push({ kind: 'unknownConfigValue', path, value: String(value), used, ...(suggestion ? { suggestion } : {}) });
121
+ };
122
+ for (const slot of configDesignSlots(config)) {
123
+ slot.slot.elements.forEach((el, i) => {
124
+ const e = el;
125
+ if (!e || typeof e !== 'object' || e.kind !== 'connector')
126
+ return;
127
+ const path = `${slot.path}.elements[${i}]`;
128
+ if (slot.kind !== 'decoration') {
129
+ out.push({ kind: 'unknownConfigValue', path: `${path}.kind`, value: 'connector', used: '' });
130
+ return;
131
+ }
132
+ word(`${path}.routing`, e.routing, CONNECTOR_ROUTINGS, 'elbow');
133
+ word(`${path}.startCap`, e.startCap, CONNECTOR_CAPS, 'none');
134
+ word(`${path}.endCap`, e.endCap, CONNECTOR_CAPS, 'none');
135
+ // Over the frames or under them (#1076): a boolean; anything else is
136
+ // read as unset (over when an end names a picture's anchor).
137
+ if (e.over !== undefined && typeof e.over !== 'boolean') {
138
+ const used = connectorPaintsOver({ from: e.from, to: e.to });
139
+ out.push({ kind: 'unknownConfigValue', path: `${path}.over`, value: String(e.over), used: String(used) });
140
+ }
141
+ const end = (raw, at) => {
142
+ if (!raw || typeof raw !== 'object')
143
+ return;
144
+ const r = raw;
145
+ word(`${at}.side`, r.side, CONNECTOR_SIDES, '');
146
+ // An anchor of the frame's picture (#1057): a name; which names the
147
+ // picture has is known only once the page is laid out.
148
+ if (r.anchor !== undefined && (typeof r.anchor !== 'string' || r.anchor.trim() === '')) {
149
+ out.push({ kind: 'unknownConfigValue', path: `${at}.anchor`, value: String(r.anchor), used: '' });
150
+ }
151
+ const pos = r.at;
152
+ if (pos === undefined)
153
+ return;
154
+ if (typeof pos === 'number' && Number.isFinite(pos)) {
155
+ if (pos < 0 || pos > 1)
156
+ out.push({ kind: 'unknownConfigValue', path: `${at}.at`, value: String(pos), used: String(Math.max(0, Math.min(1, pos))) });
157
+ }
158
+ else
159
+ word(`${at}.at`, pos, SIDE_POSITIONS, 'center');
160
+ };
161
+ end(e.from, `${path}.from`);
162
+ if (Array.isArray(e.to))
163
+ e.to.forEach((t, k) => end(t, `${path}.to[${k}]`));
164
+ else
165
+ end(e.to, `${path}.to`);
166
+ });
167
+ }
168
+ return out;
169
+ }
170
+ const DESIGN_PATH_KEYS = {
171
+ kind: true, id: true, parity: true, pages: true, pin: true, reserve: true, placement: true,
172
+ d: true, viewBox: true, fill: true, stroke: true, width: true, dash: true, preserveAspectRatio: true,
173
+ };
174
+ /** The longest piece of bad path data a warning repeats. */
175
+ const PATH_DATA_SAMPLE = 60;
176
+ /** The path elements of every design slot (#1060): a key a path element
177
+ * does not have (`unknownConfigKey`); path data that cannot be read (its
178
+ * first characters in `value`) and a `viewBox` that is no pair of
179
+ * positive numbers (`unknownConfigValue`, `used` empty: the element draws
180
+ * nothing); a `preserveAspectRatio` other than `none` and `meet`
181
+ * (`used: 'none'`). */
182
+ function collectDesignPathWarnings(config) {
183
+ const out = [];
184
+ const names = Object.keys(DESIGN_PATH_KEYS);
185
+ for (const slot of configDesignSlots(config)) {
186
+ slot.slot.elements.forEach((el, i) => {
187
+ if (!el || typeof el !== 'object' || el.kind !== 'path')
188
+ return;
189
+ const path = `${slot.path}.elements[${i}]`;
190
+ for (const key of Object.keys(el)) {
191
+ if (Object.prototype.hasOwnProperty.call(DESIGN_PATH_KEYS, key))
192
+ continue;
193
+ const suggestion = closestKey(key, names);
194
+ out.push({ kind: 'unknownConfigKey', path: `${path}.${key}`, value: key, used: '', ...(suggestion ? { suggestion } : {}) });
195
+ }
196
+ const e = el;
197
+ const d = e.d;
198
+ const parsed = typeof d === 'string' ? parseSvgPath(d) : undefined;
199
+ if (!parsed?.ok) {
200
+ const text = typeof d === 'string' ? d : String(d);
201
+ const sample = text.length > PATH_DATA_SAMPLE ? `${text.slice(0, PATH_DATA_SAMPLE - 1)}…` : text;
202
+ out.push({ kind: 'unknownConfigValue', path: `${path}.d`, value: sample, used: '' });
203
+ }
204
+ if (e.viewBox !== undefined && !pathViewBox(e.viewBox)) {
205
+ out.push({ kind: 'unknownConfigValue', path: `${path}.viewBox`, value: JSON.stringify(e.viewBox) ?? String(e.viewBox), used: '' });
206
+ }
207
+ const par = e.preserveAspectRatio;
208
+ if (par !== undefined && par !== 'none' && par !== 'meet') {
209
+ const suggestion = closestKey(String(par), ['none', 'meet']);
210
+ out.push({ kind: 'unknownConfigValue', path: `${path}.preserveAspectRatio`, value: String(par), used: 'none', ...(suggestion ? { suggestion } : {}) });
211
+ }
212
+ });
213
+ }
214
+ return out;
215
+ }
216
+ const CORNER_KEYS = ['topLeft', 'topRight', 'bottomRight', 'bottomLeft'];
217
+ const SIDE_KEYS = ['top', 'right', 'bottom', 'left'];
218
+ const BORDER_SIDE_KEYS = ['enabled', 'color', 'width'];
219
+ const LABEL_POSITIONS = ['top-right', 'top-left', 'top-start', 'top-end', 'bottom-right', 'bottom-left', 'bottom-start', 'bottom-end'];
220
+ /** The keys of `value` (a plain object) that are not in `known`, as
221
+ * `unknownConfigKey` warnings under `path`. */
222
+ function unknownKeys(value, known, path, out) {
223
+ if (!value || typeof value !== 'object' || Array.isArray(value))
224
+ return;
225
+ for (const [key, v] of Object.entries(value)) {
226
+ if (v === undefined || known.includes(key))
227
+ continue;
228
+ const suggestion = closestKey(key, known);
229
+ out.push({ kind: 'unknownConfigKey', path: `${path}.${key}`, value: key, used: '', ...(suggestion ? { suggestion } : {}) });
230
+ }
231
+ }
232
+ /** A corner radius that names its corners and a border per side (#1059):
233
+ * keys they do not have. */
234
+ function shapeKeyWarnings(radius, sides, radiusPath, sidesPath, out) {
235
+ if (radius && typeof radius === 'object' && !('value' in radius && 'unit' in radius))
236
+ unknownKeys(radius, CORNER_KEYS, radiusPath, out);
237
+ if (!sides || typeof sides !== 'object' || Array.isArray(sides))
238
+ return;
239
+ unknownKeys(sides, SIDE_KEYS, sidesPath, out);
240
+ for (const k of SIDE_KEYS)
241
+ unknownKeys(sides[k], BORDER_SIDE_KEYS, `${sidesPath}.${k}`, out);
242
+ }
243
+ /** Box shapes (#1059): a box style's `borderRadius` corners and
244
+ * `border.sides`, a design box's `borderRadius` and `borderSides` (keys
245
+ * they do not have: `unknownConfigKey`); a label tab's `position` outside
246
+ * its choices, and a joined tab with an `offset` (it stands on the edge:
247
+ * the offset is not read) — `unknownConfigValue`. */
248
+ function collectBoxShapeWarnings(config) {
249
+ const out = [];
250
+ (config.calloutStyles ?? []).forEach((s, i) => {
251
+ if (!s || typeof s !== 'object')
252
+ return;
253
+ const path = `calloutStyles[${i}]`;
254
+ shapeKeyWarnings(s.borderRadius, s.border?.sides, `${path}.borderRadius`, `${path}.border.sides`, out);
255
+ const label = s.label;
256
+ if (!label || typeof label !== 'object')
257
+ return;
258
+ const position = label.position;
259
+ if (position !== undefined && !LABEL_POSITIONS.includes(position)) {
260
+ const suggestion = typeof position === 'string' ? closestKey(position, LABEL_POSITIONS) : undefined;
261
+ const used = typeof position === 'string' && position.startsWith('bottom-') ? 'bottom-left' : 'top-left';
262
+ out.push({ kind: 'unknownConfigValue', path: `${path}.label.position`, value: String(position), used, ...(suggestion ? { suggestion } : {}) });
263
+ }
264
+ const offset = label.offset;
265
+ if (label.joined === true && offset && typeof offset === 'object' && typeof offset.value === 'number' && offset.value !== 0) {
266
+ out.push({ kind: 'unknownConfigValue', path: `${path}.label.offset`, value: String(offset.value), used: '0' });
267
+ }
268
+ });
269
+ for (const slot of configDesignSlots(config)) {
270
+ slot.slot.elements.forEach((el, i) => {
271
+ if (!el || typeof el !== 'object')
272
+ return;
273
+ const path = `${slot.path}.elements[${i}]`;
274
+ // A box element's `style`, a text element's `box`.
275
+ for (const key of ['style', 'box']) {
276
+ const box = el[key];
277
+ if (!box || typeof box !== 'object')
278
+ continue;
279
+ const b = box;
280
+ shapeKeyWarnings(b.borderRadius, b.borderSides, `${path}.${key}.borderRadius`, `${path}.${key}.borderSides`, out);
281
+ }
282
+ });
283
+ }
284
+ return out;
285
+ }
286
+ const SIDE_POSITIONS = ['start', 'center', 'end'];
287
+ const SIZE_TO_EDGES = ['top', 'bottom', 'left', 'right', 'center'];
288
+ /** The points along a side and the edges of a size of every design
289
+ * element (#1055): an `anchor.at` that is no side position — a word other
290
+ * than `start`, `center` and `end` (ignored: the edge's own point), a
291
+ * number outside 0…1 (held there) — and a `{ to, edge }` size whose edge
292
+ * is none of `top`, `bottom`, `left`, `right` and `center` (`'fill'`). */
293
+ function collectDesignAnchorWarnings(config) {
294
+ const out = [];
295
+ for (const slot of configDesignSlots(config)) {
296
+ slot.slot.elements.forEach((el, i) => {
297
+ const placement = el?.placement;
298
+ if (!placement || typeof placement !== 'object')
299
+ return;
300
+ const path = `${slot.path}.elements[${i}].placement`;
301
+ const anchor = placement.anchor;
302
+ const at = anchor && typeof anchor === 'object' ? anchor.at : undefined;
303
+ if (at !== undefined) {
304
+ if (typeof at === 'number' && Number.isFinite(at)) {
305
+ if (at < 0 || at > 1)
306
+ out.push({ kind: 'unknownConfigValue', path: `${path}.anchor.at`, value: String(at), used: String(Math.max(0, Math.min(1, at))) });
307
+ }
308
+ else if (typeof at !== 'string' || !SIDE_POSITIONS.includes(at)) {
309
+ const suggestion = typeof at === 'string' ? closestKey(at, SIDE_POSITIONS) : undefined;
310
+ out.push({ kind: 'unknownConfigValue', path: `${path}.anchor.at`, value: String(at), used: '', ...(suggestion ? { suggestion } : {}) });
311
+ }
312
+ }
313
+ const size = placement.size;
314
+ if (!size || typeof size !== 'object')
315
+ return;
316
+ for (const key of ['width', 'height', 'maxWidth']) {
317
+ const v = size[key];
318
+ if (!v || typeof v !== 'object' || !('to' in v))
319
+ continue;
320
+ const edge = v.edge;
321
+ if (typeof edge === 'string' && SIZE_TO_EDGES.includes(edge))
322
+ continue;
323
+ const suggestion = typeof edge === 'string' ? closestKey(edge, SIZE_TO_EDGES) : undefined;
324
+ out.push({ kind: 'unknownConfigValue', path: `${path}.size.${key}.edge`, value: String(edge), used: 'fill', ...(suggestion ? { suggestion } : {}) });
325
+ }
326
+ });
327
+ }
328
+ return out;
329
+ }
98
330
  /** Box styles based on another (#905): an `extends` that names no style
99
331
  * (`calloutStyleExtendsUnknown`) or that comes back to the style
100
332
  * (`calloutStyleExtendsCycle`, once per loop, on its first style). */
@@ -126,6 +358,45 @@ function collectCalloutStyleWarnings(config) {
126
358
  });
127
359
  return out;
128
360
  }
361
+ const LABEL_ICON_KEYS = {
362
+ kind: true, resourceId: true, width: true, gap: true, placement: true, tint: true,
363
+ glyph: true, fontFamily: true, fontWeight: true, scale: true, color: true,
364
+ };
365
+ /** The icon of a box style's label tab (#981, #995, #1054): a key it does
366
+ * not have (`unknownConfigKey`), and a `kind`, `placement` or `scale`
367
+ * the engine does not read (`unknownConfigValue`, with what it reads
368
+ * instead). */
369
+ function collectLabelIconWarnings(config) {
370
+ const out = [];
371
+ (config.calloutStyles ?? []).forEach((s, i) => {
372
+ const icon = s?.label?.icon;
373
+ if (!icon || typeof icon !== 'object' || Array.isArray(icon))
374
+ return;
375
+ const path = `calloutStyles[${i}].label.icon`;
376
+ const names = Object.keys(LABEL_ICON_KEYS);
377
+ for (const [key, value] of Object.entries(icon)) {
378
+ if (value === undefined || Object.prototype.hasOwnProperty.call(LABEL_ICON_KEYS, key))
379
+ continue;
380
+ const suggestion = closestKey(key, names);
381
+ out.push({ kind: 'unknownConfigKey', path: `${path}.${key}`, value: key, used: '', ...(suggestion ? { suggestion } : {}) });
382
+ }
383
+ const ic = icon;
384
+ const kind = ic.kind;
385
+ if (kind !== undefined && kind !== 'resource' && kind !== 'glyph') {
386
+ const suggestion = closestKey(String(kind), ['resource', 'glyph']);
387
+ out.push({ kind: 'unknownConfigValue', path: `${path}.kind`, value: String(kind), used: labelIconKind(ic), ...(suggestion ? { suggestion } : {}) });
388
+ }
389
+ const placement = ic.placement;
390
+ if (placement !== undefined && placement !== 'beside' && placement !== 'inside') {
391
+ const suggestion = closestKey(String(placement), ['beside', 'inside']);
392
+ out.push({ kind: 'unknownConfigValue', path: `${path}.placement`, value: String(placement), used: 'beside', ...(suggestion ? { suggestion } : {}) });
393
+ }
394
+ if (ic.scale !== undefined && labelIconScale(ic.scale) !== ic.scale) {
395
+ out.push({ kind: 'unknownConfigValue', path: `${path}.scale`, value: String(ic.scale), used: String(labelIconScale(ic.scale)) });
396
+ }
397
+ });
398
+ return out;
399
+ }
129
400
  /** Page templates and label styles (#853): see `validatePageTemplates`.
130
401
  * Lengths in different units are compared at the page's dpi, an em at
131
402
  * the body text's size. */
@@ -133,7 +404,7 @@ function collectPageTemplateWarnings(config, options) {
133
404
  const overrides = config.htmlViewer?.overrides;
134
405
  const any = config.pageTemplates !== undefined || config.labelStyles !== undefined
135
406
  || overrides?.pageTemplates !== undefined || overrides?.labelStyles !== undefined
136
- || (options.resources ?? []).some((r) => r.anchors?.some((a) => a.style !== undefined));
407
+ || (options.resources ?? []).some((r) => r.anchors?.some((a) => a.style !== undefined || a.labelAt !== undefined || a.leader !== undefined));
137
408
  if (!any)
138
409
  return [];
139
410
  const resolved = resolveAllConfig(config);