postext 1.36.0 → 1.38.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 (300) hide show
  1. package/dist/__tests__/comics/frames.test.d.ts +2 -0
  2. package/dist/__tests__/comics/frames.test.d.ts.map +1 -0
  3. package/dist/__tests__/comics/frames.test.js +251 -0
  4. package/dist/__tests__/comics/frames.test.js.map +1 -0
  5. package/dist/__tests__/composed/continuation.test.d.ts +2 -0
  6. package/dist/__tests__/composed/continuation.test.d.ts.map +1 -0
  7. package/dist/__tests__/composed/continuation.test.js +352 -0
  8. package/dist/__tests__/composed/continuation.test.js.map +1 -0
  9. package/dist/__tests__/composed/continuationRules.test.d.ts +2 -0
  10. package/dist/__tests__/composed/continuationRules.test.d.ts.map +1 -0
  11. package/dist/__tests__/composed/continuationRules.test.js +389 -0
  12. package/dist/__tests__/composed/continuationRules.test.js.map +1 -0
  13. package/dist/__tests__/composed/contrast.test.d.ts +2 -0
  14. package/dist/__tests__/composed/contrast.test.d.ts.map +1 -0
  15. package/dist/__tests__/composed/contrast.test.js +124 -0
  16. package/dist/__tests__/composed/contrast.test.js.map +1 -0
  17. package/dist/__tests__/composed/corpus.test.js +7 -1
  18. package/dist/__tests__/composed/corpus.test.js.map +1 -1
  19. package/dist/__tests__/composed/coverImages.test.d.ts +2 -0
  20. package/dist/__tests__/composed/coverImages.test.d.ts.map +1 -0
  21. package/dist/__tests__/composed/coverImages.test.js +75 -0
  22. package/dist/__tests__/composed/coverImages.test.js.map +1 -0
  23. package/dist/__tests__/composed/decorationSize.test.d.ts +2 -0
  24. package/dist/__tests__/composed/decorationSize.test.d.ts.map +1 -0
  25. package/dist/__tests__/composed/decorationSize.test.js +79 -0
  26. package/dist/__tests__/composed/decorationSize.test.js.map +1 -0
  27. package/dist/__tests__/composed/emptyFrames.test.d.ts +2 -0
  28. package/dist/__tests__/composed/emptyFrames.test.d.ts.map +1 -0
  29. package/dist/__tests__/composed/emptyFrames.test.js +129 -0
  30. package/dist/__tests__/composed/emptyFrames.test.js.map +1 -0
  31. package/dist/__tests__/composed/fit.test.js +19 -10
  32. package/dist/__tests__/composed/fit.test.js.map +1 -1
  33. package/dist/__tests__/composed/groups.test.js +34 -0
  34. package/dist/__tests__/composed/groups.test.js.map +1 -1
  35. package/dist/__tests__/composed/headingDesigns.test.d.ts +2 -0
  36. package/dist/__tests__/composed/headingDesigns.test.d.ts.map +1 -0
  37. package/dist/__tests__/composed/headingDesigns.test.js +262 -0
  38. package/dist/__tests__/composed/headingDesigns.test.js.map +1 -0
  39. package/dist/__tests__/composed/labels.test.d.ts +2 -0
  40. package/dist/__tests__/composed/labels.test.d.ts.map +1 -0
  41. package/dist/__tests__/composed/labels.test.js +326 -0
  42. package/dist/__tests__/composed/labels.test.js.map +1 -0
  43. package/dist/__tests__/composed/outsidePrint.test.js +5 -2
  44. package/dist/__tests__/composed/outsidePrint.test.js.map +1 -1
  45. package/dist/__tests__/composed/ruledFrames.test.d.ts +2 -0
  46. package/dist/__tests__/composed/ruledFrames.test.d.ts.map +1 -0
  47. package/dist/__tests__/composed/ruledFrames.test.js +93 -0
  48. package/dist/__tests__/composed/ruledFrames.test.js.map +1 -0
  49. package/dist/__tests__/composed/sourceMap.test.js +26 -0
  50. package/dist/__tests__/composed/sourceMap.test.js.map +1 -1
  51. package/dist/__tests__/composed/spread.test.js +82 -0
  52. package/dist/__tests__/composed/spread.test.js.map +1 -1
  53. package/dist/__tests__/composed/spreadLabels.test.d.ts +2 -0
  54. package/dist/__tests__/composed/spreadLabels.test.d.ts.map +1 -0
  55. package/dist/__tests__/composed/spreadLabels.test.js +131 -0
  56. package/dist/__tests__/composed/spreadLabels.test.js.map +1 -0
  57. package/dist/__tests__/exports.test.js +23 -0
  58. package/dist/__tests__/exports.test.js.map +1 -1
  59. package/dist/__tests__/migrate/fixtures/textbookPort.d.ts +14 -0
  60. package/dist/__tests__/migrate/fixtures/textbookPort.d.ts.map +1 -0
  61. package/dist/__tests__/migrate/fixtures/textbookPort.js +116 -0
  62. package/dist/__tests__/migrate/fixtures/textbookPort.js.map +1 -0
  63. package/dist/__tests__/migrate/labelsOnPictures.test.d.ts +2 -0
  64. package/dist/__tests__/migrate/labelsOnPictures.test.d.ts.map +1 -0
  65. package/dist/__tests__/migrate/labelsOnPictures.test.js +114 -0
  66. package/dist/__tests__/migrate/labelsOnPictures.test.js.map +1 -0
  67. package/dist/__tests__/migrate/textToMarkdown.test.d.ts +2 -0
  68. package/dist/__tests__/migrate/textToMarkdown.test.d.ts.map +1 -0
  69. package/dist/__tests__/migrate/textToMarkdown.test.js +268 -0
  70. package/dist/__tests__/migrate/textToMarkdown.test.js.map +1 -0
  71. package/dist/__tests__/paragraphDropCap.test.js +38 -0
  72. package/dist/__tests__/paragraphDropCap.test.js.map +1 -1
  73. package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts +2 -0
  74. package/dist/__tests__/paragraphStyleLetterSpacing.test.d.ts.map +1 -0
  75. package/dist/__tests__/paragraphStyleLetterSpacing.test.js +89 -0
  76. package/dist/__tests__/paragraphStyleLetterSpacing.test.js.map +1 -0
  77. package/dist/__tests__/pictureBelowPrintSize.test.d.ts +2 -0
  78. package/dist/__tests__/pictureBelowPrintSize.test.d.ts.map +1 -0
  79. package/dist/__tests__/pictureBelowPrintSize.test.js +82 -0
  80. package/dist/__tests__/pictureBelowPrintSize.test.js.map +1 -0
  81. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js +1 -1
  82. package/dist/__tests__/pipeline/paragraphStyleFaces.test.js.map +1 -1
  83. package/dist/__tests__/resourceTypePartial.test.d.ts +2 -0
  84. package/dist/__tests__/resourceTypePartial.test.d.ts.map +1 -0
  85. package/dist/__tests__/resourceTypePartial.test.js +60 -0
  86. package/dist/__tests__/resourceTypePartial.test.js.map +1 -0
  87. package/dist/canvas-backend/composed.d.ts +8 -2
  88. package/dist/canvas-backend/composed.d.ts.map +1 -1
  89. package/dist/canvas-backend/composed.js +52 -29
  90. package/dist/canvas-backend/composed.js.map +1 -1
  91. package/dist/canvas-backend/headerFooter.d.ts.map +1 -1
  92. package/dist/canvas-backend/headerFooter.js +13 -0
  93. package/dist/canvas-backend/headerFooter.js.map +1 -1
  94. package/dist/canvas-backend/index.d.ts.map +1 -1
  95. package/dist/canvas-backend/index.js +53 -24
  96. package/dist/canvas-backend/index.js.map +1 -1
  97. package/dist/canvas-backend/renderResourceBlock.d.ts +5 -1
  98. package/dist/canvas-backend/renderResourceBlock.d.ts.map +1 -1
  99. package/dist/canvas-backend/renderResourceBlock.js +60 -1
  100. package/dist/canvas-backend/renderResourceBlock.js.map +1 -1
  101. package/dist/comics/frames.d.ts +82 -0
  102. package/dist/comics/frames.d.ts.map +1 -0
  103. package/dist/comics/frames.js +182 -0
  104. package/dist/comics/frames.js.map +1 -0
  105. package/dist/comics/index.d.ts +4 -1
  106. package/dist/comics/index.d.ts.map +1 -1
  107. package/dist/comics/index.js +3 -1
  108. package/dist/comics/index.js.map +1 -1
  109. package/dist/comics/layoutPage.d.ts +9 -0
  110. package/dist/comics/layoutPage.d.ts.map +1 -1
  111. package/dist/comics/layoutPage.js +53 -68
  112. package/dist/comics/layoutPage.js.map +1 -1
  113. package/dist/comics/page.d.ts.map +1 -1
  114. package/dist/comics/page.js +10 -1
  115. package/dist/comics/page.js.map +1 -1
  116. package/dist/comics/sourceMap.d.ts +60 -0
  117. package/dist/comics/sourceMap.d.ts.map +1 -0
  118. package/dist/comics/sourceMap.js +166 -0
  119. package/dist/comics/sourceMap.js.map +1 -0
  120. package/dist/comics/spread.d.ts.map +1 -1
  121. package/dist/comics/spread.js +6 -0
  122. package/dist/comics/spread.js.map +1 -1
  123. package/dist/comics/textPanels.d.ts +113 -0
  124. package/dist/comics/textPanels.d.ts.map +1 -0
  125. package/dist/comics/textPanels.js +327 -0
  126. package/dist/comics/textPanels.js.map +1 -0
  127. package/dist/comics/transform.d.ts +6 -2
  128. package/dist/comics/transform.d.ts.map +1 -1
  129. package/dist/comics/transform.js +14 -1
  130. package/dist/comics/transform.js.map +1 -1
  131. package/dist/comics/types.d.ts +10 -0
  132. package/dist/comics/types.d.ts.map +1 -1
  133. package/dist/composed/continuation.d.ts +152 -0
  134. package/dist/composed/continuation.d.ts.map +1 -0
  135. package/dist/composed/continuation.js +189 -0
  136. package/dist/composed/continuation.js.map +1 -0
  137. package/dist/composed/groups.d.ts +3 -0
  138. package/dist/composed/groups.d.ts.map +1 -1
  139. package/dist/composed/groups.js +34 -4
  140. package/dist/composed/groups.js.map +1 -1
  141. package/dist/composed/labels.d.ts +154 -0
  142. package/dist/composed/labels.d.ts.map +1 -0
  143. package/dist/composed/labels.js +524 -0
  144. package/dist/composed/labels.js.map +1 -0
  145. package/dist/composed/pageMemo.d.ts +3 -2
  146. package/dist/composed/pageMemo.d.ts.map +1 -1
  147. package/dist/composed/pageMemo.js +3 -1
  148. package/dist/composed/pageMemo.js.map +1 -1
  149. package/dist/composed/paint.d.ts +28 -3
  150. package/dist/composed/paint.d.ts.map +1 -1
  151. package/dist/composed/paint.js +48 -2
  152. package/dist/composed/paint.js.map +1 -1
  153. package/dist/composed/reflowLog.d.ts +3 -1
  154. package/dist/composed/reflowLog.d.ts.map +1 -1
  155. package/dist/composed/reflowLog.js +20 -6
  156. package/dist/composed/reflowLog.js.map +1 -1
  157. package/dist/composed/rules.d.ts +31 -0
  158. package/dist/composed/rules.d.ts.map +1 -0
  159. package/dist/composed/rules.js +45 -0
  160. package/dist/composed/rules.js.map +1 -0
  161. package/dist/composed/slotChecks.d.ts +2 -1
  162. package/dist/composed/slotChecks.d.ts.map +1 -1
  163. package/dist/composed/slotChecks.js +56 -2
  164. package/dist/composed/slotChecks.js.map +1 -1
  165. package/dist/composed/sourceMap.d.ts +0 -21
  166. package/dist/composed/sourceMap.d.ts.map +1 -1
  167. package/dist/composed/sourceMap.js +102 -8
  168. package/dist/composed/sourceMap.js.map +1 -1
  169. package/dist/composed/spread.d.ts +23 -5
  170. package/dist/composed/spread.d.ts.map +1 -1
  171. package/dist/composed/spread.js +52 -27
  172. package/dist/composed/spread.js.map +1 -1
  173. package/dist/composed/templates.d.ts +11 -0
  174. package/dist/composed/templates.d.ts.map +1 -1
  175. package/dist/composed/templates.js +51 -2
  176. package/dist/composed/templates.js.map +1 -1
  177. package/dist/composed/types.d.ts +43 -3
  178. package/dist/composed/types.d.ts.map +1 -1
  179. package/dist/composed/validate.d.ts.map +1 -1
  180. package/dist/composed/validate.js +5 -3
  181. package/dist/composed/validate.js.map +1 -1
  182. package/dist/configWarnings.d.ts +15 -0
  183. package/dist/configWarnings.d.ts.map +1 -1
  184. package/dist/configWarnings.js +40 -18
  185. package/dist/configWarnings.js.map +1 -1
  186. package/dist/contrast.d.ts +5 -3
  187. package/dist/contrast.d.ts.map +1 -1
  188. package/dist/contrast.js +46 -5
  189. package/dist/contrast.js.map +1 -1
  190. package/dist/defaults/headerFooter.d.ts.map +1 -1
  191. package/dist/defaults/headerFooter.js +4 -0
  192. package/dist/defaults/headerFooter.js.map +1 -1
  193. package/dist/defaults/paragraphStyles.d.ts +1 -1
  194. package/dist/defaults/paragraphStyles.d.ts.map +1 -1
  195. package/dist/defaults/paragraphStyles.js +5 -1
  196. package/dist/defaults/paragraphStyles.js.map +1 -1
  197. package/dist/defaults/resourceTypes.d.ts +15 -0
  198. package/dist/defaults/resourceTypes.d.ts.map +1 -1
  199. package/dist/defaults/resourceTypes.js +39 -1
  200. package/dist/defaults/resourceTypes.js.map +1 -1
  201. package/dist/design/layout.d.ts +7 -0
  202. package/dist/design/layout.d.ts.map +1 -1
  203. package/dist/design/layout.js +109 -16
  204. package/dist/design/layout.js.map +1 -1
  205. package/dist/design/slots.d.ts +12 -10
  206. package/dist/design/slots.d.ts.map +1 -1
  207. package/dist/design/slots.js +26 -2
  208. package/dist/design/slots.js.map +1 -1
  209. package/dist/fonts/faces.d.ts.map +1 -1
  210. package/dist/fonts/faces.js +6 -0
  211. package/dist/fonts/faces.js.map +1 -1
  212. package/dist/highlightMarks.d.ts.map +1 -1
  213. package/dist/highlightMarks.js +6 -0
  214. package/dist/highlightMarks.js.map +1 -1
  215. package/dist/html-backend.d.ts.map +1 -1
  216. package/dist/html-backend.js +83 -7
  217. package/dist/html-backend.js.map +1 -1
  218. package/dist/htmlComic.d.ts +3 -0
  219. package/dist/htmlComic.d.ts.map +1 -1
  220. package/dist/htmlComic.js +2 -0
  221. package/dist/htmlComic.js.map +1 -1
  222. package/dist/index.d.ts +12 -8
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +7 -3
  225. package/dist/index.js.map +1 -1
  226. package/dist/migrate/markdownRuns.d.ts +70 -0
  227. package/dist/migrate/markdownRuns.d.ts.map +1 -0
  228. package/dist/migrate/markdownRuns.js +215 -0
  229. package/dist/migrate/markdownRuns.js.map +1 -0
  230. package/dist/migrate/pageDesign.d.ts +152 -0
  231. package/dist/migrate/pageDesign.d.ts.map +1 -0
  232. package/dist/migrate/pageDesign.js +573 -0
  233. package/dist/migrate/pageDesign.js.map +1 -0
  234. package/dist/migrate/textToMarkdown.d.ts +156 -0
  235. package/dist/migrate/textToMarkdown.d.ts.map +1 -0
  236. package/dist/migrate/textToMarkdown.js +913 -0
  237. package/dist/migrate/textToMarkdown.js.map +1 -0
  238. package/dist/parse/blockParser.js +26 -0
  239. package/dist/parse/blockParser.js.map +1 -1
  240. package/dist/pipeline/build.d.ts.map +1 -1
  241. package/dist/pipeline/build.js +388 -41
  242. package/dist/pipeline/build.js.map +1 -1
  243. package/dist/pipeline/buildMeasurement.d.ts.map +1 -1
  244. package/dist/pipeline/buildMeasurement.js +12 -1
  245. package/dist/pipeline/buildMeasurement.js.map +1 -1
  246. package/dist/pipeline/calloutLayout.d.ts +25 -1
  247. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  248. package/dist/pipeline/calloutLayout.js +100 -2
  249. package/dist/pipeline/calloutLayout.js.map +1 -1
  250. package/dist/pipeline/composedLayout.d.ts +16 -2
  251. package/dist/pipeline/composedLayout.d.ts.map +1 -1
  252. package/dist/pipeline/composedLayout.js +337 -70
  253. package/dist/pipeline/composedLayout.js.map +1 -1
  254. package/dist/pipeline/contentWarnings.d.ts +15 -0
  255. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  256. package/dist/pipeline/contentWarnings.js +106 -1
  257. package/dist/pipeline/contentWarnings.js.map +1 -1
  258. package/dist/pipeline/dropCap.d.ts +5 -0
  259. package/dist/pipeline/dropCap.d.ts.map +1 -1
  260. package/dist/pipeline/dropCap.js +23 -2
  261. package/dist/pipeline/dropCap.js.map +1 -1
  262. package/dist/pipeline/frameLayout.d.ts +21 -3
  263. package/dist/pipeline/frameLayout.d.ts.map +1 -1
  264. package/dist/pipeline/frameLayout.js +52 -4
  265. package/dist/pipeline/frameLayout.js.map +1 -1
  266. package/dist/pipeline/headerFooter.d.ts +11 -1
  267. package/dist/pipeline/headerFooter.d.ts.map +1 -1
  268. package/dist/pipeline/headerFooter.js +210 -68
  269. package/dist/pipeline/headerFooter.js.map +1 -1
  270. package/dist/pipeline/measureContentBlock.d.ts +1 -1
  271. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  272. package/dist/pipeline/measureContentBlock.js +4 -1
  273. package/dist/pipeline/measureContentBlock.js.map +1 -1
  274. package/dist/pipeline/mirrorFrame.d.ts.map +1 -1
  275. package/dist/pipeline/mirrorFrame.js +25 -2
  276. package/dist/pipeline/mirrorFrame.js.map +1 -1
  277. package/dist/pipeline/resourceLayout.d.ts +28 -0
  278. package/dist/pipeline/resourceLayout.d.ts.map +1 -1
  279. package/dist/pipeline/resourceLayout.js +21 -0
  280. package/dist/pipeline/resourceLayout.js.map +1 -1
  281. package/dist/pipeline/resourceNumbering.d.ts.map +1 -1
  282. package/dist/pipeline/resourceNumbering.js +13 -4
  283. package/dist/pipeline/resourceNumbering.js.map +1 -1
  284. package/dist/pipeline/styles.d.ts +1 -1
  285. package/dist/pipeline/styles.d.ts.map +1 -1
  286. package/dist/pipeline/styles.js +4 -0
  287. package/dist/pipeline/styles.js.map +1 -1
  288. package/dist/preflight.js +5 -1
  289. package/dist/preflight.js.map +1 -1
  290. package/dist/types.d.ts +45 -2
  291. package/dist/types.d.ts.map +1 -1
  292. package/dist/vdt.d.ts +228 -9
  293. package/dist/vdt.d.ts.map +1 -1
  294. package/dist/vdt.js.map +1 -1
  295. package/dist/word/toDocx.d.ts.map +1 -1
  296. package/dist/word/toDocx.js +14 -0
  297. package/dist/word/toDocx.js.map +1 -1
  298. package/dist/word/word.test.js +11 -1
  299. package/dist/word/word.test.js.map +1 -1
  300. package/package.json +1 -1
@@ -119,6 +119,12 @@ export interface ComicPanelSource {
119
119
  * in a page that has none. */
120
120
  implicit?: true;
121
121
  items: ComicScriptItem[];
122
+ /** A text panel (`::panel{text}`, #885): the range of its body, the
123
+ * Markdown poured into its frame (absolute; from the line after the
124
+ * `::panel` line to the end of its last line with text). Its lines are
125
+ * no script: `items` is empty. Absent for a panel lettered from a
126
+ * script. */
127
+ text?: ComicSourceRange;
122
128
  }
123
129
  /** A comic page or strip as written. */
124
130
  export interface ComicPageSource {
@@ -144,6 +150,10 @@ export interface ComicPageSource {
144
150
  stray: ComicSourceRange[];
145
151
  /** The closing `:::` was found (an unclosed page runs to the end). */
146
152
  closed: boolean;
153
+ /** Ordinal of the fence among the comic fences of its text (`:::page`
154
+ * and `:::strip` counted together, from 0), set by the block parser: the
155
+ * stable ids of the comic's frames and balloons (#885). */
156
+ fenceIndex?: number;
147
157
  sourceStart: number;
148
158
  sourceEnd: number;
149
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comics/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/comics/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Continuation on other pages (#859, DESIGN §5.6): a frame whose content
3
+ * the reflow ladder (#858) cannot make fit and whose
4
+ * `overflow.continueIn` is `'next-page'` or `'template:<id>'` is cut at its
5
+ * foot with its mark, and the rest goes on on a page added after the
6
+ * composed page, built from a template:
7
+ *
8
+ * - `'next-page'`: the page's `overflowTemplate`, or, unset, the same
9
+ * template with only the frames that go on filled (the others take no
10
+ * room: their heights follow their empty content and they leave their
11
+ * groups);
12
+ * - `'template:<id>'`: that template.
13
+ *
14
+ * On the added page the content goes on in the frame of the same name,
15
+ * else the template's flow frame, else its first frame free. The frames of
16
+ * one page that go on to the same template share one added page; a frame
17
+ * whose content still does not fit there goes on again (with its own
18
+ * `overflow.continueIn`, else the rule that brought it), up to
19
+ * {@link MAX_CONTINUATION_PAGES} pages after the fence's own.
20
+ *
21
+ * Pure helpers: `build.ts` adds the pages, `composedLayout.ts` lays them.
22
+ */
23
+ import type { CalloutCut } from '../pipeline/frameLayout';
24
+ import type { PlannedCallout } from '../pipeline/calloutLayout';
25
+ import type { ResolvedFrame, ResolvedPageTemplate } from './types';
26
+ /** How many pages, one after another, the content of one composed page may
27
+ * go on to: the generation of added pages after which what still does not
28
+ * fit is cut (`frameContinuationLimit`). */
29
+ export declare const MAX_CONTINUATION_PAGES = 16;
30
+ /** A story of a composed page (`composedLayout.ts`'s `ComposedStory`). */
31
+ interface Story {
32
+ startIdx: number;
33
+ plan: PlannedCallout;
34
+ }
35
+ /** Content a frame sends on to another page. */
36
+ export interface ComposedContinuation {
37
+ /** The frame that cut it, on the page it comes from, and that frame's
38
+ * id (`VDTFrame.id`). */
39
+ frame: string;
40
+ fromFrameId: string;
41
+ /** The first frame of the sending frame's chain on its page (the frame
42
+ * itself when no frame comes before it): a story threaded through
43
+ * frames goes on in the frame its chain starts in (#919). */
44
+ head: string;
45
+ /** Where it goes on: `'next-page'`, `'template:<id>'` or `'page:<id>'`
46
+ * (its `{attr.x}` read from the fence). */
47
+ rule: string;
48
+ /** The template of the page it comes from (`'next-page'` reads its
49
+ * `overflowTemplate`). */
50
+ template: string;
51
+ /** Whether that page was itself an added page laid with the template's
52
+ * frames collapsed (a `'next-page'` with no `overflowTemplate`): the
53
+ * next one is laid alike. */
54
+ collapsed: boolean;
55
+ /** The story, where it stands, the pieces laid so far (its blocks go on
56
+ * as `<headBlockId>-cont-<n>`) and its head box's id. */
57
+ story: Story;
58
+ cut: CalloutCut;
59
+ pieces: number;
60
+ headBlockId: string;
61
+ /** The frame of the fence's own page that first sent it on: the pieces
62
+ * on later pages are `cp<fence>:<slot>~<k>`. */
63
+ slot: string;
64
+ /** Empty frames that follow the sending frame in its stack and go with
65
+ * the rest to the added page (#912): on a template laid again for what
66
+ * goes on, they keep their size after the frame that takes it. */
67
+ trailing?: readonly string[];
68
+ /** The sending frame's `overflow.fromMark` (#917). */
69
+ fromMark?: string;
70
+ }
71
+ /** What a page added by continuation receives. */
72
+ export interface ComposedContinuationInput {
73
+ /** By the frame of this page that takes each one. */
74
+ receivers: ReadonlyMap<string, ComposedContinuation>;
75
+ /** `<k>` of `~<k>`: 1 on the pages the fence's own page adds, 2 on the
76
+ * pages those add, and so on. */
77
+ generation: number;
78
+ /** The template laid again for its continuations only (`'next-page'`
79
+ * with no `overflowTemplate`): frames that receive nothing take no
80
+ * room. */
81
+ collapse: boolean;
82
+ /** The last page continuation may add: what still does not fit stays
83
+ * here, cut at the frame's foot. */
84
+ last: boolean;
85
+ /** A later page fence a story jumps to (#917, `'page:<id>'`): the page
86
+ * is the fence's own, with its own content and frame ids; the frames
87
+ * that take the story go on to pages added after it (`'next-page'`). */
88
+ jump?: true;
89
+ }
90
+ /** `continueIn` sends content to another page. */
91
+ export declare function continuesOffPage(continueIn: string | undefined): boolean;
92
+ /** The page an added page is built from for `c`: its template id, and
93
+ * whether the template's frames that receive nothing collapse. */
94
+ export declare function continuationTarget(c: Pick<ComposedContinuation, 'rule' | 'template' | 'collapsed'>, overflowTemplateOf: (id: string) => string | undefined): {
95
+ template: string;
96
+ collapse: boolean;
97
+ };
98
+ /**
99
+ * The frames of `template` that take `list`, in order: each goes on in
100
+ * the frame of its name, else the flow frame, else the first frame no
101
+ * other continuation took. A story threaded through a chain of frames
102
+ * goes on where its chain starts (#919): in the frame of the chain head's
103
+ * name, else the flow frame, else the frame of the sending frame's name.
104
+ * Those that find no free frame are `left` for another page.
105
+ */
106
+ export declare function assignReceivers(template: Pick<ResolvedPageTemplate, 'frames'>, list: readonly ComposedContinuation[]): {
107
+ receivers: Map<string, ComposedContinuation>;
108
+ left: ComposedContinuation[];
109
+ };
110
+ /**
111
+ * The template an added page is laid with: the receivers (and the frames
112
+ * their chains go on in on that page) continue as the rule that brought
113
+ * the content, unless they send content off the page themselves; on the
114
+ * last page allowed nothing goes on; with `collapse`, every other frame
115
+ * takes no room and leaves its group, but the empty frames that came
116
+ * along with the content (`trailing`, #912).
117
+ */
118
+ /**
119
+ * The frames of a later page fence that take the stories jumping to it
120
+ * (#917), in order: the frame `'page:<id>#<frame>'` names, else the frame
121
+ * of the sending chain's head name, else the first frame of the page its
122
+ * own content leaves empty (`holds`: the frame's chain holds a story of
123
+ * the fence). Those that find none are `left`: they go on after it.
124
+ */
125
+ export declare function assignJumpReceivers(template: Pick<ResolvedPageTemplate, 'frames'>, list: readonly ComposedContinuation[], holds: (name: string) => boolean): {
126
+ receivers: Map<string, ComposedContinuation>;
127
+ left: ComposedContinuation[];
128
+ };
129
+ /** Whether content `frame` sends on lands on the same template laid again
130
+ * with its other frames collapsed (`'next-page'` with no other
131
+ * `overflowTemplate`), as {@link continuationTarget} decides. */
132
+ export declare function continuesCollapsed(template: Pick<ResolvedPageTemplate, 'id' | 'overflowTemplate'>, frame: Pick<ResolvedFrame, 'overflow'>, collapsed: boolean): boolean;
133
+ /**
134
+ * The empty frames that go with the rest of `frame` to the page it goes
135
+ * on to (#912): those right after it in its stack that hold no story
136
+ * (`holds` says which do) and are not pinned, up to the first that holds
137
+ * one. An answer space under an activity box follows the end of its text.
138
+ */
139
+ export declare function trailingFrames(template: Pick<ResolvedPageTemplate, 'frames' | 'groups'>, frame: string, holds: (name: string) => boolean): string[];
140
+ /** `template` with `names` taking no room: `'auto'` (`empty`: no height
141
+ * at all, for a frame whose content goes on whole) with no min/max and
142
+ * out of their groups (#859, #912). A group's frames that stay start
143
+ * where its first frame did when that one leaves and they have no
144
+ * placement of their own. */
145
+ export declare function collapseFrames(template: ResolvedPageTemplate, names: ReadonlySet<string>, empty?: ReadonlySet<string>): ResolvedPageTemplate;
146
+ /** The frames a page added by continuation lays with no room: with
147
+ * `collapse`, every frame that neither receives content (nor is in the
148
+ * chain it goes on in) nor came along with it (`trailing`, #912). */
149
+ export declare function collapsedOnAddedPage(template: Pick<ResolvedPageTemplate, 'frames'>, input: ComposedContinuationInput): Set<string>;
150
+ export declare function continuationTemplate(template: ResolvedPageTemplate, input: ComposedContinuationInput): ResolvedPageTemplate;
151
+ export {};
152
+ //# sourceMappingURL=continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../src/composed/continuation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ import { nextFrameOf } from './geometry';
2
+ import { continueInPage, continueInTemplate } from './templates';
3
+ /** How many pages, one after another, the content of one composed page may
4
+ * go on to: the generation of added pages after which what still does not
5
+ * fit is cut (`frameContinuationLimit`). */
6
+ export const MAX_CONTINUATION_PAGES = 16;
7
+ /** `continueIn` sends content to another page. */
8
+ export function continuesOffPage(continueIn) {
9
+ return continueIn === 'next-page' || continueInTemplate(continueIn) !== undefined || continueInPage(continueIn) !== undefined;
10
+ }
11
+ /** The page an added page is built from for `c`: its template id, and
12
+ * whether the template's frames that receive nothing collapse. */
13
+ export function continuationTarget(c, overflowTemplateOf) {
14
+ const named = continueInTemplate(c.rule);
15
+ if (named !== undefined)
16
+ return { template: named, collapse: false };
17
+ // 'next-page': the template's overflow template, or the template again.
18
+ const over = overflowTemplateOf(c.template);
19
+ if (over !== undefined && over !== c.template)
20
+ return { template: over, collapse: false };
21
+ return { template: c.template, collapse: over === undefined || c.collapsed };
22
+ }
23
+ /**
24
+ * The frames of `template` that take `list`, in order: each goes on in
25
+ * the frame of its name, else the flow frame, else the first frame no
26
+ * other continuation took. A story threaded through a chain of frames
27
+ * goes on where its chain starts (#919): in the frame of the chain head's
28
+ * name, else the flow frame, else the frame of the sending frame's name.
29
+ * Those that find no free frame are `left` for another page.
30
+ */
31
+ export function assignReceivers(template, list) {
32
+ const receivers = new Map();
33
+ const left = [];
34
+ const names = new Set(template.frames.map((f) => f.name));
35
+ const flow = template.frames.find((f) => f.flow)?.name;
36
+ for (const c of list) {
37
+ const first = c.head !== undefined && c.head !== c.frame ? [c.head, flow, c.frame] : [c.frame, flow];
38
+ const take = [...first, ...template.frames.map((f) => f.name)].find((n) => n !== undefined && names.has(n) && !receivers.has(n));
39
+ if (take === undefined)
40
+ left.push(c);
41
+ else
42
+ receivers.set(take, c);
43
+ }
44
+ return { receivers, left };
45
+ }
46
+ /**
47
+ * The template an added page is laid with: the receivers (and the frames
48
+ * their chains go on in on that page) continue as the rule that brought
49
+ * the content, unless they send content off the page themselves; on the
50
+ * last page allowed nothing goes on; with `collapse`, every other frame
51
+ * takes no room and leaves its group, but the empty frames that came
52
+ * along with the content (`trailing`, #912).
53
+ */
54
+ /**
55
+ * The frames of a later page fence that take the stories jumping to it
56
+ * (#917), in order: the frame `'page:<id>#<frame>'` names, else the frame
57
+ * of the sending chain's head name, else the first frame of the page its
58
+ * own content leaves empty (`holds`: the frame's chain holds a story of
59
+ * the fence). Those that find none are `left`: they go on after it.
60
+ */
61
+ export function assignJumpReceivers(template, list, holds) {
62
+ const receivers = new Map();
63
+ const left = [];
64
+ const free = template.frames.map((f) => f.name).filter((n) => !holds(n));
65
+ for (const c of list) {
66
+ const named = continueInPage(c.rule)?.frame;
67
+ const take = [named, c.head, c.frame, ...free].find((n) => n !== undefined && free.includes(n) && !receivers.has(n));
68
+ if (take === undefined)
69
+ left.push(c);
70
+ else
71
+ receivers.set(take, c);
72
+ }
73
+ return { receivers, left };
74
+ }
75
+ /** Whether content `frame` sends on lands on the same template laid again
76
+ * with its other frames collapsed (`'next-page'` with no other
77
+ * `overflowTemplate`), as {@link continuationTarget} decides. */
78
+ export function continuesCollapsed(template, frame, collapsed) {
79
+ if (frame.overflow.continueIn !== 'next-page')
80
+ return false;
81
+ const over = template.overflowTemplate;
82
+ return over === undefined || (over === template.id && collapsed);
83
+ }
84
+ /**
85
+ * The empty frames that go with the rest of `frame` to the page it goes
86
+ * on to (#912): those right after it in its stack that hold no story
87
+ * (`holds` says which do) and are not pinned, up to the first that holds
88
+ * one. An answer space under an activity box follows the end of its text.
89
+ */
90
+ export function trailingFrames(template, frame, holds) {
91
+ const g = template.groups.find((gr) => gr.kind === 'stack' && gr.frames.includes(frame));
92
+ if (!g)
93
+ return [];
94
+ const byName = new Map(template.frames.map((f) => [f.name, f]));
95
+ const out = [];
96
+ for (const name of g.frames.slice(g.frames.indexOf(frame) + 1)) {
97
+ const f = byName.get(name);
98
+ if (!f)
99
+ continue;
100
+ if (f.pin || holds(name))
101
+ break;
102
+ out.push(name);
103
+ }
104
+ return out;
105
+ }
106
+ /** `template` with `names` taking no room: `'auto'` (`empty`: no height
107
+ * at all, for a frame whose content goes on whole) with no min/max and
108
+ * out of their groups (#859, #912). A group's frames that stay start
109
+ * where its first frame did when that one leaves and they have no
110
+ * placement of their own. */
111
+ export function collapseFrames(template, names, empty = new Set()) {
112
+ if (names.size === 0)
113
+ return template;
114
+ const byName = new Map(template.frames.map((f) => [f.name, f]));
115
+ /** A frame that stays and opens its group takes the placement of the
116
+ * group's first frame. */
117
+ const inherit = new Map();
118
+ const groups = template.groups.map((g) => {
119
+ const frames = g.frames.filter((n) => !names.has(n));
120
+ const lead = byName.get(g.frames[0] ?? '');
121
+ const first = byName.get(frames[0] ?? '');
122
+ if (lead && first && lead !== first && names.has(lead.name) && lead.placement && !first.placement && !first.grid)
123
+ inherit.set(first.name, lead.placement);
124
+ return frames.length === g.frames.length ? g : { ...g, frames };
125
+ });
126
+ const frames = template.frames.map((f) => {
127
+ if (inherit.has(f.name))
128
+ return { ...f, placement: inherit.get(f.name) };
129
+ if (!names.has(f.name))
130
+ return f;
131
+ // A frame whose content goes on whole (#912) is laid with no height,
132
+ // so it keeps none of it.
133
+ const out = { ...f, height: empty.has(f.name) ? { value: 0, unit: 'mm' } : 'auto', grow: 0 };
134
+ delete out.minHeight;
135
+ delete out.maxHeight;
136
+ return out;
137
+ });
138
+ return { ...template, frames, groups };
139
+ }
140
+ /** The frames a page added by continuation lays with no room: with
141
+ * `collapse`, every frame that neither receives content (nor is in the
142
+ * chain it goes on in) nor came along with it (`trailing`, #912). */
143
+ export function collapsedOnAddedPage(template, input) {
144
+ if (!input.collapse)
145
+ return new Set();
146
+ const byName = new Map(template.frames.map((f) => [f.name, f]));
147
+ const kept = new Set();
148
+ for (const [name, c] of input.receivers) {
149
+ for (let n = name; n !== undefined && byName.has(n) && !kept.has(n); n = nextFrameOf(byName.get(n)))
150
+ kept.add(n);
151
+ for (const t of c.trailing ?? [])
152
+ kept.add(t);
153
+ }
154
+ return new Set(template.frames.map((f) => f.name).filter((n) => !kept.has(n)));
155
+ }
156
+ export function continuationTemplate(template, input) {
157
+ const byName = new Map(template.frames.map((f) => [f.name, f]));
158
+ /** Frames the received content fills, with the rule it came by. */
159
+ const filled = new Map();
160
+ for (const [name, c] of input.receivers) {
161
+ const seen = new Set();
162
+ for (let n = name; n !== undefined && byName.has(n) && !seen.has(n); n = nextFrameOf(byName.get(n))) {
163
+ seen.add(n);
164
+ if (!filled.has(n))
165
+ filled.set(n, c.rule);
166
+ }
167
+ }
168
+ const frames = template.frames.map((f) => {
169
+ const rule = filled.get(f.name);
170
+ if (rule !== undefined) {
171
+ const own = f.overflow.continueIn;
172
+ if (input.last && continuesOffPage(own)) {
173
+ const overflow = { ...f.overflow };
174
+ delete overflow.continueIn;
175
+ return { ...f, overflow };
176
+ }
177
+ // The last frame of the chain goes on as the content came, unless
178
+ // it says where itself; after a jump (#917), on the pages added
179
+ // after the one it jumped to.
180
+ const inherited = continueInPage(rule) !== undefined ? 'next-page' : rule;
181
+ if (!input.last && nextFrameOf(f) === undefined && !continuesOffPage(own))
182
+ return { ...f, overflow: { ...f.overflow, continueIn: inherited } };
183
+ return f;
184
+ }
185
+ return f;
186
+ });
187
+ return collapseFrames({ ...template, frames }, collapsedOnAddedPage(template, input));
188
+ }
189
+ //# sourceMappingURL=continuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../src/composed/continuation.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,9 @@ export interface GroupItem {
35
35
  fixedHeight: boolean;
36
36
  /** The content's height at a width (rows negotiate widths with it). */
37
37
  need?: (width: number) => number;
38
+ /** The least height a stack cuts the frame to when nothing more yields
39
+ * (#911): its `minHeight`. Default `min`. */
40
+ floor?: number;
38
41
  }
39
42
  export interface GroupLayoutInput {
40
43
  kind: 'stack' | 'row';
@@ -1 +1 @@
1
- {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/composed/groups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEvF,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;iCAE6B;IAC7B,GAAG,EAAE,IAAI,CAAC;IACV;gDAC4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB;0DACsD;IACtD,GAAG,EAAE,IAAI,CAAC;IACV;;;4BAGwB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,CAAC;IACpD,sBAAsB;IACtB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;0EACsE;IACtE,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD;;+BAE+B;AAC/B,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAqBrG;AAYD,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAEtE;AAoMD,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE1E;kDACkD;AAClD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAKxH;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,YAAY,EAAE,CAuEvG"}
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/composed/groups.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEvF,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;iCAE6B;IAC7B,GAAG,EAAE,IAAI,CAAC;IACV;gDAC4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC;kDAC8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB;0DACsD;IACtD,GAAG,EAAE,IAAI,CAAC;IACV;;;4BAGwB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,CAAC;IACpD,sBAAsB;IACtB,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;0EACsE;IACtE,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD;;+BAE+B;AAC/B,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAqBrG;AAYD,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAEtE;AAgOD,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE1E;kDACkD;AAClD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAKxH;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAAG,YAAY,EAAE,CAuEvG"}
@@ -85,8 +85,32 @@ function layoutStack(input) {
85
85
  rects = place(heights);
86
86
  }
87
87
  if (bottomOf(rects) - foot > EPS) {
88
- // Nothing more yields: no frame runs past the group's foot.
89
- rects = rects.map((r) => ({ ...r, height: Math.max(0, Math.min(r.height, foot - r.y)) }));
88
+ // Nothing more yields: the frames nearest the foot give way first, each
89
+ // down to the least it may have (its `minHeight`; a fixed height its
90
+ // own: an answer space, a picture slot), their content running past
91
+ // their foot; so a box that grew does not push an empty frame under it
92
+ // off the page (#911).
93
+ for (let k = flow.length - 1; k >= 0; k--) {
94
+ const excess = bottomOf(rects) - foot;
95
+ if (excess <= EPS)
96
+ break;
97
+ const it = flow[k];
98
+ const floor = it.floor ?? it.min;
99
+ const least = it.fixedHeight && floor <= EPS ? heights[k] : Math.min(heights[k], floor);
100
+ const give = Math.min(excess, heights[k] - least);
101
+ if (give <= EPS)
102
+ continue;
103
+ heights[k] = heights[k] - give;
104
+ rects = place(heights);
105
+ }
106
+ }
107
+ if (bottomOf(rects) - foot > EPS) {
108
+ // Still too tall with every frame at its least: no frame runs past the
109
+ // group's foot (what is cut shows as the frame's overflow).
110
+ rects = rects.map((r) => {
111
+ const y = Math.min(r.y, foot);
112
+ return { ...r, y, height: Math.max(0, Math.min(r.height, foot - y)) };
113
+ });
90
114
  return named(flow, rects, input.items);
91
115
  }
92
116
  if (input.elastic)
@@ -120,8 +144,14 @@ function layoutRow(input) {
120
144
  const obstacles = [...(input.obstacles ?? []), ...pins];
121
145
  const widths = flow.map((i) => clamp(i.own.width, i.minWidth, i.maxWidth));
122
146
  const declaredH = flow.map((i) => clamp(i.fixedHeight ? i.own.height : i.want, i.min, i.max));
123
- /** The row's height: its box's, or the tallest frame's. */
124
- const rowH = input.elastic ? Math.max(0, ...declaredH) : box.height;
147
+ /** The heights the template writes: a fixed height, else `minHeight`
148
+ * (an `'auto'` frame declares no more). */
149
+ const writtenH = flow.map((i) => (i.fixedHeight ? declaredH[flow.indexOf(i)] : Math.min(i.min, i.max)));
150
+ /** The row's height: its box's; with none, the tallest height its frames
151
+ * write (#927: `'auto'` cards with a `minHeight` negotiate widths at it
152
+ * before the row grows), or, when they write none, the tallest
153
+ * content's. */
154
+ const rowH = !input.elastic ? box.height : Math.max(0, ...writtenH) > EPS ? Math.max(0, ...writtenH) : Math.max(0, ...declaredH);
125
155
  /** The height a frame has in the row: a fixed one its own, the others
126
156
  * the row's. */
127
157
  const heightIn = (k, h) => (flow[k].fixedHeight ? Math.min(declaredH[k], h) : clamp(h, flow[k].min, flow[k].max));
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/composed/groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/composed/groups.ts"],"names":[],"mappings":"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"}