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
@@ -1,4 +1,6 @@
1
+ import { presentTag } from '../locale';
1
2
  import { resolveDesignSlot, stripDesignSlotDefaults } from './headerFooter';
3
+ import { defaultTableContinuationStrings } from './tableStyle';
2
4
  const ZERO = { value: 0, unit: 'em' };
3
5
  const NUMBER_WIDTH = { value: 2, unit: 'em' };
4
6
  const HALF_EM = { value: 0.5, unit: 'em' };
@@ -12,7 +14,22 @@ export const DEFAULT_TOC_CONFIG = {
12
14
  pageNumber: { width: NUMBER_WIDTH },
13
15
  subtitle: { enabled: false, attr: 'author' },
14
16
  parts: { enabled: true, breakBefore: false },
17
+ groups: { keepTogether: false, head: 'part', minEntriesAfterHead: 2, continuation: { enabled: true } },
15
18
  };
19
+ /** A `toc.groups.head` value as written (`'part'`, `1`…`6`, or the same as
20
+ * a string: a directive's `keep="2"`), else undefined. */
21
+ export function parseTocGroupHead(value) {
22
+ if (value === 'part')
23
+ return 'part';
24
+ const n = typeof value === 'number' ? value : typeof value === 'string' && /^\s*[1-6]\s*$/.test(value) ? Number(value) : NaN;
25
+ return Number.isInteger(n) && n >= 1 && n <= 6 ? n : undefined;
26
+ }
27
+ /** The default continuation mark of a contents block in `locale`: the
28
+ * continued-table suffix of that language ("(cont.)", "(suite)",
29
+ * "(续)"…). */
30
+ export function defaultTocContinuationMark(locale) {
31
+ return defaultTableContinuationStrings(locale).continuedSuffix;
32
+ }
16
33
  function resolveEntryStyle(partial, bodyText) {
17
34
  const fontFamily = partial?.fontFamily ?? bodyText.fontFamily;
18
35
  const fontSize = partial?.fontSize ?? bodyText.fontSize;
@@ -46,7 +63,7 @@ function partialEntryStyle(partial) {
46
63
  }
47
64
  return out;
48
65
  }
49
- export function resolveTocConfig(partial, bodyText) {
66
+ export function resolveTocConfig(partial, bodyText, locale) {
50
67
  const d = DEFAULT_TOC_CONFIG;
51
68
  const levelsIn = partial?.levels && partial.levels.length > 0
52
69
  ? partial.levels
@@ -56,6 +73,7 @@ export function resolveTocConfig(partial, bodyText) {
56
73
  const pn = partial?.pageNumber;
57
74
  const sub = partial?.subtitle;
58
75
  const parts = partial?.parts;
76
+ const groups = partial?.groups;
59
77
  return {
60
78
  levels,
61
79
  unnumbered: partialEntryStyle(partial?.unnumbered),
@@ -90,6 +108,16 @@ export function resolveTocConfig(partial, bodyText) {
90
108
  marginTop: parts?.marginTop ?? ZERO,
91
109
  marginBottom: parts?.marginBottom ?? ZERO,
92
110
  },
111
+ groups: {
112
+ keepTogether: groups?.keepTogether ?? d.groups.keepTogether,
113
+ head: parseTocGroupHead(groups?.head) ?? d.groups.head,
114
+ minEntriesAfterHead: Math.max(0, Math.floor(groups?.minEntriesAfterHead ?? d.groups.minEntriesAfterHead)),
115
+ continuation: {
116
+ enabled: groups?.continuation?.enabled ?? d.groups.continuation.enabled,
117
+ // The document's language, as a continued table's (#850).
118
+ mark: groups?.continuation?.mark ?? defaultTocContinuationMark(presentTag(locale) ?? bodyText.hyphenation.tag ?? bodyText.hyphenation.locale),
119
+ },
120
+ },
93
121
  };
94
122
  }
95
123
  function stripObject(obj) {
@@ -166,6 +194,30 @@ export function stripTocDefaults(toc) {
166
194
  if (kept)
167
195
  r.parts = kept;
168
196
  }
197
+ if (toc.groups) {
198
+ const g = {};
199
+ const gd = d.groups;
200
+ if (toc.groups.keepTogether !== undefined && toc.groups.keepTogether !== gd.keepTogether)
201
+ g.keepTogether = toc.groups.keepTogether;
202
+ if (toc.groups.head !== undefined && toc.groups.head !== gd.head)
203
+ g.head = toc.groups.head;
204
+ if (toc.groups.minEntriesAfterHead !== undefined && toc.groups.minEntriesAfterHead !== gd.minEntriesAfterHead)
205
+ g.minEntriesAfterHead = toc.groups.minEntriesAfterHead;
206
+ if (toc.groups.continuation) {
207
+ const c = {};
208
+ if (toc.groups.continuation.enabled !== undefined && toc.groups.continuation.enabled !== gd.continuation.enabled)
209
+ c.enabled = toc.groups.continuation.enabled;
210
+ // The default mark follows the language: an explicit one is kept.
211
+ if (toc.groups.continuation.mark !== undefined)
212
+ c.mark = toc.groups.continuation.mark;
213
+ const kept = stripObject(c);
214
+ if (kept)
215
+ g.continuation = kept;
216
+ }
217
+ const kept = stripObject(g);
218
+ if (kept)
219
+ r.groups = kept;
220
+ }
169
221
  return stripObject(r);
170
222
  }
171
223
  //# sourceMappingURL=toc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/defaults/toc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toc.js","sourceRoot":"","sources":["../../src/defaults/toc.ts"],"names":[],"mappings":"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"}
@@ -121,7 +121,10 @@ export declare function directDesignTextBlock(block: VDTDesignTextBlock, base: '
121
121
  export declare function directChipRuns<R extends Run>(runs: R[], measure: (text: string, font: string, rtl: boolean) => number,
122
122
  /** Every run takes its own advance, in the direction it is painted in
123
123
  * ({@link measuresRunsAsPainted}): the chip is then as wide as its runs. */
124
- asPainted?: boolean): {
124
+ asPainted?: boolean,
125
+ /** The base direction, when the chip has one of its own (inline code
126
+ * reads left to right, #845); else that of its first strong letter. */
127
+ base?: 'ltr' | 'rtl'): {
125
128
  runs: (R & {
126
129
  rtl?: true;
127
130
  })[];
@@ -1 +1 @@
1
- {"version":3,"file":"bidiText.d.ts","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,QAAQ,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;kCAEkC;AAClC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,UAAQ,GAAG,MAAM,CAYhH;AAED,4EAA4E;AAC5E,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd;gDAC4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAS5E;AAED;6EAC6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAC/B,KAAK,GAAG,KAAK,CAIf;AAED;gCACgC;AAChC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AACvD;qEACqE;AACrE,aAAa,UAAQ,EACrB,SAAS,UAAQ,GAChB,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAgD7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,UAAU,SAAI,EACd,aAAa,UAAQ,GACpB,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAC1C,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AAC7D;6EAC6E;AAC7E,SAAS,UAAQ,GAChB;IAAE,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAMpD"}
1
+ {"version":3,"file":"bidiText.d.ts","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,QAAQ,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;kCAEkC;AAClC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAGhF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,aAAa,UAAQ,GAAG,MAAM,CAYhH;AAED,4EAA4E;AAC5E,UAAU,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd;gDAC4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAS5E;AAED;6EAC6E;AAC7E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,KAAK,GAAG,KAAK,GAC/B,KAAK,GAAG,KAAK,CAIf;AAED;gCACgC;AAChC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAC7B,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,GAAG,EACtC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AACvD;qEACqE;AACrE,aAAa,UAAQ,EACrB,SAAS,UAAQ,GAChB,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAgD7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,KAAK,GAAG,KAAK,EACnB,QAAQ,EAAE,OAAO,EACjB,UAAU,SAAI,EACd,aAAa,UAAQ,GACpB,IAAI,CAkBN;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,GAAG,EAC1C,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM;AAC7D;6EAC6E;AAC7E,SAAS,UAAQ;AACjB;wEACwE;AACxE,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,GACnB;IAAE,IAAI,EAAE,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAMpD"}
@@ -224,13 +224,16 @@ export function directDesignTextBlock(block, base, mirrored, trackingPx = 0, ara
224
224
  export function directChipRuns(runs, measure,
225
225
  /** Every run takes its own advance, in the direction it is painted in
226
226
  * ({@link measuresRunsAsPainted}): the chip is then as wide as its runs. */
227
- asPainted = false) {
227
+ asPainted = false,
228
+ /** The base direction, when the chip has one of its own (inline code
229
+ * reads left to right, #845); else that of its first strong letter. */
230
+ base) {
228
231
  let text = '';
229
232
  for (const r of runs)
230
233
  text += r.text;
231
234
  if (!needsBidi(text))
232
235
  return { runs };
233
- const directed = directRuns(runs, firstStrongDirection(text) ?? 'ltr', false, (r, t, rtl) => measure(t, r.fontString, rtl), false, asPainted);
236
+ const directed = directRuns(runs, base ?? firstStrongDirection(text) ?? 'ltr', false, (r, t, rtl) => measure(t, r.fontString, rtl), false, asPainted);
234
237
  return directed ?? { runs };
235
238
  }
236
239
  //# sourceMappingURL=bidiText.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bidiText.js","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bidiText.js","sourceRoot":"","sources":["../../src/design/bidiText.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,16 @@ export interface DesignFrames {
194
194
  * stands upright on the sheet, so its box in the flow is sized with the
195
195
  * picture's width and height swapped (`ResolvedImagePrimitive.upright`). */
196
196
  upright?: boolean;
197
+ /** Boxes outside the slot an element may anchor to as `'#name'`, with
198
+ * the element-to-element edges: the frames of a composed page for its
199
+ * template's decoration (#855). An element of the slot with the same id
200
+ * wins. */
201
+ named?: Readonly<Record<string, {
202
+ x: number;
203
+ y: number;
204
+ width: number;
205
+ height: number;
206
+ }>>;
197
207
  }
198
208
  export interface LayoutContext {
199
209
  container: {
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/design/layout.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import { parseInlineSnippetSpans } from '../parse/inlineSnippet';
10
10
  import { getHyphenationRulesKey, hyphenateByDictionary, hyphenateText, withoutEdgeSoftHyphens, withoutSlashJoints } from '../hyphenate';
11
11
  import { withLineEndHyphen } from '../measure/geminate';
12
12
  import { BREAKING_SPACE_RUNS_SPLIT_RE, NO_BREAK_SPACES, isBreakingSpaceRun } from '../measure/spaces';
13
- import { resolveDesignResourceId, resolveDesignText, } from './placeholders';
13
+ import { LEADER_MARK, resolveDesignResourceId, resolveDesignText, } from './placeholders';
14
+ import { fitLeader } from '../measure/leader';
14
15
  import { hasJoiningScript, joinsWithNext } from '../bidi';
15
16
  import { designBaseDirection, directRuns, directedTextWidth, measuresRunsAsPainted, paintedRunWidth } from './bidiText';
16
17
  import { composeCjkDesignParagraph, composesDesignAsCjk } from './cjkText';
@@ -163,14 +164,14 @@ function frameFor(placement, frames) {
163
164
  return frames.outer;
164
165
  return undefined;
165
166
  }
166
- function topoSort(elements, issues) {
167
+ function topoSort(elements, issues, named) {
167
168
  const byId = new Map();
168
169
  for (const el of elements)
169
170
  byId.set(el.id, el);
170
171
  // Detect dangling
171
172
  for (const el of elements) {
172
173
  const target = anchorTargetId(el.placement);
173
- if (target && !byId.has(target)) {
174
+ if (target && !byId.has(target) && !named?.[target]) {
174
175
  issues.push({ kind: 'danglingAnchor', elementId: el.id, targetId: target });
175
176
  }
176
177
  }
@@ -226,6 +227,7 @@ function resolveContainerAnchor(edge, ref) {
226
227
  return { anchorX: ref.x, anchorY: ref.y, pinX: 'start', pinY: 'start' };
227
228
  }
228
229
  }
230
+ const ELEMENT_TO_ELEMENT_EDGES = new Set(['right-of', 'left-of', 'below', 'above', 'align-top', 'align-bottom', 'align-left', 'align-right']);
229
231
  function resolveElementAnchor(edge, ref) {
230
232
  switch (edge) {
231
233
  case 'right-of':
@@ -726,7 +728,7 @@ export function layoutDesignSlot(slot, context, pageIndex) {
726
728
  .map((el) => (overrides && Object.keys(overrides).length > 0 ? applyPaletteOverrides(el, overrides) : el));
727
729
  // Topologically sort (dependencies first) to resolve geometry; paint
728
730
  // order is still the array order (first = back), restored below.
729
- const ordered = topoSort(candidates, issues);
731
+ const ordered = topoSort(candidates, issues, context.frames?.named);
730
732
  // Precompute: resolved text contents (placeholder-expanded), with the
731
733
  // `\n` escape of the template and of attribute values turned into a
732
734
  // newline before any case transform (which would make it `\N`).
@@ -769,10 +771,19 @@ export function layoutDesignSlot(slot, context, pageIndex) {
769
771
  }
770
772
  else if (target) {
771
773
  const dep = resolvedGeo.get(target);
774
+ const outside = dep ? undefined : context.frames?.named?.[target];
772
775
  if (dep) {
773
776
  refGeo = { x: dep.x, y: dep.y, width: dep.width, height: dep.height };
774
777
  useElementEdge = true;
775
778
  }
779
+ else if (outside) {
780
+ refGeo = { ...outside };
781
+ // A nine-point edge on a frame is that point of its box; an
782
+ // element edge (`below`, `right-of`…) reads as for an element.
783
+ useElementEdge = ELEMENT_TO_ELEMENT_EDGES.has(el.placement.anchor.edge);
784
+ if (!useElementEdge)
785
+ fillRef = refGeo;
786
+ }
776
787
  }
777
788
  const anchor = useElementEdge
778
789
  ? resolveElementAnchor(el.placement.anchor.edge, refGeo)
@@ -789,14 +800,22 @@ export function layoutDesignSlot(slot, context, pageIndex) {
789
800
  // A vertical element in a frame whose text is horizontal (a running
790
801
  // head on the sheet, a design of a horizontal page); in a vertical
791
802
  // flow the text already runs down.
792
- const prims = el.writingMode === 'vertical-rl' && getMeasureWritingMode() !== 'vertical-rl'
793
- ? layoutVerticalTextElement(el, textContent.get(el.id) ?? '', pin, fillRef, context.dpi, useElementEdge, textSeams.get(el.id))
794
- : layoutTextElement(el, textContent.get(el.id) ?? '', pin, fillRef, context.dpi, useElementEdge, context, textSeams.get(el.id));
803
+ const content = textContent.get(el.id) ?? '';
804
+ const turned = el.writingMode === 'vertical-rl' && getMeasureWritingMode() !== 'vertical-rl';
805
+ // A contents part row's `{leader}` (#889), on a horizontal line.
806
+ const leader = context.placeholders.leader;
807
+ const leadered = content.includes(LEADER_MARK) && leader && !turned && getMeasureWritingMode() !== 'vertical-rl';
808
+ const text = leadered ? content : content.split(LEADER_MARK).join('');
809
+ const prims = turned
810
+ ? layoutVerticalTextElement(el, text, pin, fillRef, context.dpi, useElementEdge, textSeams.get(el.id))
811
+ : leadered
812
+ ? layoutLeaderTextElement(el, text, leader, pin, fillRef, context.dpi, useElementEdge, context)
813
+ : layoutTextElement(el, text, pin, fillRef, context.dpi, useElementEdge, context, textSeams.get(el.id));
795
814
  resolvedGeo.set(el.id, prims[0]);
796
815
  primsByElement.set(el, prims);
797
816
  const truncated = prims[0].truncated;
798
817
  if (truncated) {
799
- const text = textContent.get(el.id) ?? '';
818
+ const text = content.split(LEADER_MARK).join('');
800
819
  issues.push({ kind: 'textTruncated', elementId: el.id, mode: truncated, text: el.inlineMarks ? plainDesignText(text) : text });
801
820
  }
802
821
  }
@@ -1365,6 +1384,89 @@ seams = []) {
1365
1384
  };
1366
1385
  return [main, capPrim];
1367
1386
  }
1387
+ /**
1388
+ * A text element of a contents part row whose text holds `{leader}`
1389
+ * (#889): one line, as wide as the room its placement gives it (an `auto`
1390
+ * width fills to the container's edge), the text before the mark at the
1391
+ * line's start, the text after it at its end, and between them the
1392
+ * contents' leader (`toc.leader`): its character repeated over the room
1393
+ * left, `gap` from either text, flush with the end so the leaders of the
1394
+ * rows line up, as an entry row's are (`pipeline/toc.ts`). The text before
1395
+ * the mark gives way when the line is short of room (cut by the element's
1396
+ * `overflow`, `'ellipsis-end'` for a wrapping one); fewer than three
1397
+ * repeats, or a leader turned off, leave the room blank.
1398
+ */
1399
+ function layoutLeaderTextElement(el, text, leader, pin, container, dpi, anchoredToElement, frame) {
1400
+ const at = text.indexOf(LEADER_MARK);
1401
+ const before = text.slice(0, at).trimEnd();
1402
+ const after = text.slice(at + LEADER_MARK.length).split(LEADER_MARK).join('').trimStart();
1403
+ const autoWidth = el.placement.size?.width === undefined || el.placement.size.width === 'auto';
1404
+ const single = { ...el, overflow: el.overflow === 'wrap' ? 'ellipsis-end' : el.overflow, dropCap: undefined, paragraphIndent: undefined };
1405
+ // The row's box: the room the placement gives, one line high.
1406
+ const [box] = layoutTextElement({ ...single, overflow: 'clip', placement: autoWidth ? { ...el.placement, size: { ...el.placement.size, width: 'fill' } } : el.placement }, `${before} ${after}`.trim() || ' ', pin, container, dpi, anchoredToElement, frame);
1407
+ const row = box;
1408
+ const room = row.contentWidth;
1409
+ const fontSizePx = row.fontSizePx;
1410
+ const gap = Math.max(0, dimPx(leader.gap, dpi, fontSizePx));
1411
+ // Each text on its own, as wide as it is set (cut to the room left).
1412
+ const part = (t, max) => (t
1413
+ ? layoutTextElement({ ...single, box: undefined, placement: { ...el.placement, size: { width: 'auto', maxWidth: { value: Math.max(0, max), unit: 'px' } } } }, t, pin, container, dpi, anchoredToElement, frame)[0]
1414
+ : undefined);
1415
+ const tail = part(after, room);
1416
+ const tailW = tail?.lines[0]?.width ?? 0;
1417
+ const gaps = (before ? gap : 0) + (after ? gap : 0);
1418
+ const head = part(before, room - tailW - gaps);
1419
+ const headW = head?.lines[0]?.width ?? 0;
1420
+ const free = Math.max(0, room - headW - tailW - gaps);
1421
+ const tracking = row.letterSpacingPx;
1422
+ const dots = leader.enabled
1423
+ ? fitLeader(leader.char, free, (t) => Math.max(0, flowTextWidth(t, row.fontString) + tracking * graphemeCount(t)))
1424
+ : null;
1425
+ const runsOf = (p) => {
1426
+ const line = p?.lines[0];
1427
+ if (!line || !line.text)
1428
+ return { runs: [] };
1429
+ return { runs: line.runs ?? [{ text: line.text, fontString: p.fontString, width: line.width }], ...(line.order ? { order: line.order } : {}) };
1430
+ };
1431
+ const h = runsOf(head);
1432
+ const t = runsOf(tail);
1433
+ // The leader: blank room, the run, the gap before the text after it. A
1434
+ // blank run is a box as wide as its room (`inkOffset` 0).
1435
+ const blank = (width) => ({ text: '', fontString: row.fontString, width, inkOffset: 0, leader: true });
1436
+ const fill = blank((before ? gap : 0) + free - (dots?.width ?? 0));
1437
+ const middle = dots
1438
+ ? [fill, { text: dots.text, fontString: row.fontString, width: dots.width, leader: true }, blank(after ? gap : 0)]
1439
+ : [blank(room - headW - tailW)];
1440
+ const runs = [...h.runs, ...middle, ...t.runs];
1441
+ // Paint order: the text before the mark at the line's start, which is on
1442
+ // the right of a right-to-left row on the sheet and of a left-to-right
1443
+ // one in a mirrored flow; each text keeps its own order.
1444
+ const startRight = row.startRight === true;
1445
+ const ids = (n, from, order) => (order ?? Array.from({ length: n }, (_, i) => i)).map((i) => i + from);
1446
+ const headIds = ids(h.runs.length, 0, h.order);
1447
+ const middleIds = ids(middle.length, h.runs.length);
1448
+ const tailIds = ids(t.runs.length, h.runs.length + middle.length, t.order);
1449
+ const order = startRight ? [...tailIds, ...middleIds.reverse(), ...headIds] : [...headIds, ...middleIds, ...tailIds];
1450
+ const identity = order.every((v, i) => v === i);
1451
+ const first = row.lines[0];
1452
+ const line = {
1453
+ text: runs.map((r) => r.text).join(''),
1454
+ width: room,
1455
+ baselineY: first?.baselineY ?? 0,
1456
+ topY: first?.topY ?? 0,
1457
+ height: first?.height ?? 0,
1458
+ runs,
1459
+ ...(identity ? {} : { order }),
1460
+ };
1461
+ const truncated = head?.truncated ?? tail?.truncated;
1462
+ return [{
1463
+ ...row,
1464
+ lines: [line],
1465
+ align: 'left',
1466
+ needsClip: el.overflow === 'clip',
1467
+ ...(truncated ? { truncated } : { truncated: undefined }),
1468
+ }];
1469
+ }
1368
1470
  /**
1369
1471
  * One design text element laid out on its own, its box's top left corner at
1370
1472
  * `(x, y)` and nothing around it to clamp it: the text `text` as given (no