@openpresentation/opf 0.11.1 → 0.11.3

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 (235) hide show
  1. package/dist/{catalogs-DJ-B5ZyD.d.ts → catalogs-CUClB3nl.d.ts} +202 -5
  2. package/dist/catalogs.d.ts +1 -1
  3. package/dist/catalogs.js +1 -1
  4. package/dist/{chunk-BP6WMSSS.js → chunk-57NWIYX3.js} +17 -4
  5. package/dist/{chunk-7LF37SG3.js → chunk-AEUSVEUY.js} +4915 -1640
  6. package/dist/{chunk-6UPHKXI5.js → chunk-BVLWFMDX.js} +40 -4
  7. package/dist/{chunk-SDETQV7Y.js → chunk-HJL64ETN.js} +505 -0
  8. package/dist/{chunk-M4GTWRK7.js → chunk-JCXHSTSM.js} +143 -68
  9. package/dist/{chunk-LTSDDBNW.js → chunk-JTXCMVVP.js} +245 -10
  10. package/dist/{chunk-NPYN4TZ5.js → chunk-RXNFDGPC.js} +113 -38
  11. package/dist/{chunk-KWIOQ3QR.js → chunk-UDPSGTZI.js} +3 -3
  12. package/dist/composition.js +1 -1
  13. package/dist/docs.js +23 -17
  14. package/dist/examples.d.ts +1 -1
  15. package/dist/font-policy.d.ts +4 -0
  16. package/dist/font-policy.js +1 -1
  17. package/dist/index.d.ts +3 -3
  18. package/dist/index.js +11 -11
  19. package/dist/lint.d.ts +2 -2
  20. package/dist/lint.js +5 -5
  21. package/dist/pagination.js +5 -5
  22. package/dist/{presentation-bceTClm8.d.ts → presentation-Cn6vTOCP.d.ts} +13 -13
  23. package/dist/repo-readme.js +1 -1
  24. package/dist/schemas.js +1 -1
  25. package/dist/spec/README.md +3 -2
  26. package/dist/spec/catalogs/audiences/index.json +2 -0
  27. package/dist/spec/catalogs/chart-types/box-and-whisker.json +101 -49
  28. package/dist/spec/catalogs/chart-types/histogram.json +130 -108
  29. package/dist/spec/catalogs/chart-types/index.json +2 -0
  30. package/dist/spec/catalogs/chart-types/pareto.json +22 -106
  31. package/dist/spec/catalogs/color-schemes/black-and-white.json +10 -1
  32. package/dist/spec/catalogs/color-schemes/bold-red.json +10 -1
  33. package/dist/spec/catalogs/color-schemes/boost.json +10 -1
  34. package/dist/spec/catalogs/color-schemes/burnt-orange.json +10 -1
  35. package/dist/spec/catalogs/color-schemes/cool-horizon.json +10 -1
  36. package/dist/spec/catalogs/color-schemes/corporate-blue.json +10 -1
  37. package/dist/spec/catalogs/color-schemes/deep-purple.json +10 -1
  38. package/dist/spec/catalogs/color-schemes/forest-green.json +10 -1
  39. package/dist/spec/catalogs/color-schemes/golden-yellow.json +10 -1
  40. package/dist/spec/catalogs/color-schemes/index.json +2 -0
  41. package/dist/spec/catalogs/color-schemes/luxury.json +10 -1
  42. package/dist/spec/catalogs/color-schemes/pastel-red.json +10 -1
  43. package/dist/spec/catalogs/color-schemes/slate-gray.json +10 -1
  44. package/dist/spec/catalogs/color-schemes/steel-blue.json +10 -1
  45. package/dist/spec/catalogs/color-schemes/vibes.json +10 -1
  46. package/dist/spec/catalogs/font-schemes/angsana-new.json +2 -1
  47. package/dist/spec/catalogs/font-schemes/aparajita.json +2 -1
  48. package/dist/spec/catalogs/font-schemes/aptos.json +2 -1
  49. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +2 -1
  50. package/dist/spec/catalogs/font-schemes/arial.json +2 -1
  51. package/dist/spec/catalogs/font-schemes/batang.json +2 -1
  52. package/dist/spec/catalogs/font-schemes/bookman.json +2 -1
  53. package/dist/spec/catalogs/font-schemes/calibri.json +2 -1
  54. package/dist/spec/catalogs/font-schemes/century-schoolbook.json +2 -1
  55. package/dist/spec/catalogs/font-schemes/consolas.json +2 -1
  56. package/dist/spec/catalogs/font-schemes/constantia.json +2 -1
  57. package/dist/spec/catalogs/font-schemes/courier-new.json +2 -1
  58. package/dist/spec/catalogs/font-schemes/daunpenh.json +2 -1
  59. package/dist/spec/catalogs/font-schemes/david.json +2 -1
  60. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +2 -1
  61. package/dist/spec/catalogs/font-schemes/fangsong.json +2 -1
  62. package/dist/spec/catalogs/font-schemes/garamond.json +2 -1
  63. package/dist/spec/catalogs/font-schemes/gautami.json +2 -1
  64. package/dist/spec/catalogs/font-schemes/georgia.json +2 -1
  65. package/dist/spec/catalogs/font-schemes/gisha.json +2 -1
  66. package/dist/spec/catalogs/font-schemes/grandview.json +2 -1
  67. package/dist/spec/catalogs/font-schemes/gungsuh.json +2 -1
  68. package/dist/spec/catalogs/font-schemes/impact.json +2 -1
  69. package/dist/spec/catalogs/font-schemes/index.json +236 -234
  70. package/dist/spec/catalogs/font-schemes/kalinga.json +2 -1
  71. package/dist/spec/catalogs/font-schemes/kartika.json +2 -1
  72. package/dist/spec/catalogs/font-schemes/khmer-ui.json +2 -1
  73. package/dist/spec/catalogs/font-schemes/latha.json +2 -1
  74. package/dist/spec/catalogs/font-schemes/lucida-sans.json +2 -1
  75. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +2 -1
  76. package/dist/spec/catalogs/font-schemes/mangal.json +2 -1
  77. package/dist/spec/catalogs/font-schemes/meiryo.json +2 -1
  78. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +2 -1
  79. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +2 -1
  80. package/dist/spec/catalogs/font-schemes/mingliu.json +2 -1
  81. package/dist/spec/catalogs/font-schemes/miriam.json +2 -1
  82. package/dist/spec/catalogs/font-schemes/montserrat.json +2 -1
  83. package/dist/spec/catalogs/font-schemes/ms-mincho.json +2 -1
  84. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +2 -1
  85. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +2 -1
  86. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +2 -1
  87. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +2 -1
  88. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +2 -1
  89. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +2 -1
  90. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +2 -1
  91. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +2 -1
  92. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +2 -1
  93. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +2 -1
  94. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +2 -1
  95. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +2 -1
  96. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +2 -1
  97. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +2 -1
  98. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +2 -1
  99. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +2 -1
  100. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +2 -1
  101. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +2 -1
  102. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +2 -1
  103. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +2 -1
  104. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +2 -1
  105. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +2 -1
  106. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +2 -1
  107. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +2 -1
  108. package/dist/spec/catalogs/font-schemes/noto-sans.json +2 -1
  109. package/dist/spec/catalogs/font-schemes/nyala.json +2 -1
  110. package/dist/spec/catalogs/font-schemes/open-sans.json +2 -1
  111. package/dist/spec/catalogs/font-schemes/pmingliu.json +2 -1
  112. package/dist/spec/catalogs/font-schemes/poppins.json +2 -1
  113. package/dist/spec/catalogs/font-schemes/pt-serif.json +2 -1
  114. package/dist/spec/catalogs/font-schemes/raavi.json +2 -1
  115. package/dist/spec/catalogs/font-schemes/raleway.json +2 -1
  116. package/dist/spec/catalogs/font-schemes/roboto.json +2 -1
  117. package/dist/spec/catalogs/font-schemes/rockwell.json +2 -1
  118. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +2 -1
  119. package/dist/spec/catalogs/font-schemes/seaford.json +2 -1
  120. package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +2 -1
  121. package/dist/spec/catalogs/font-schemes/segoe-ui.json +2 -1
  122. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +2 -1
  123. package/dist/spec/catalogs/font-schemes/shruti.json +2 -1
  124. package/dist/spec/catalogs/font-schemes/simsun.json +2 -1
  125. package/dist/spec/catalogs/font-schemes/skeena.json +2 -1
  126. package/dist/spec/catalogs/font-schemes/sylfaen.json +2 -1
  127. package/dist/spec/catalogs/font-schemes/tahoma.json +2 -1
  128. package/dist/spec/catalogs/font-schemes/tenorite.json +2 -1
  129. package/dist/spec/catalogs/font-schemes/times-new-roman.json +2 -1
  130. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +2 -1
  131. package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +2 -1
  132. package/dist/spec/catalogs/font-schemes/tunga.json +2 -1
  133. package/dist/spec/catalogs/font-schemes/verdana.json +2 -1
  134. package/dist/spec/catalogs/font-schemes/vrinda.json +2 -1
  135. package/dist/spec/catalogs/font-schemes/yu-gothic.json +2 -1
  136. package/dist/spec/catalogs/languages/index.json +2 -0
  137. package/dist/spec/catalogs/layouts/action-plan.json +35 -0
  138. package/dist/spec/catalogs/layouts/agenda.json +35 -0
  139. package/dist/spec/catalogs/layouts/appendix-index.json +38 -0
  140. package/dist/spec/catalogs/layouts/architecture-stack.json +35 -0
  141. package/dist/spec/catalogs/layouts/assumptions-dependencies.json +35 -0
  142. package/dist/spec/catalogs/layouts/before-after.json +41 -0
  143. package/dist/spec/catalogs/layouts/benchmark-target-table.json +35 -0
  144. package/dist/spec/catalogs/layouts/bullet-list.json +38 -0
  145. package/dist/spec/catalogs/layouts/business-model-canvas.json +35 -0
  146. package/dist/spec/catalogs/layouts/capability-map.json +35 -0
  147. package/dist/spec/catalogs/layouts/case-study.json +35 -0
  148. package/dist/spec/catalogs/layouts/chapter-recap.json +35 -0
  149. package/dist/spec/catalogs/layouts/circular-lifecycle.json +35 -0
  150. package/dist/spec/catalogs/layouts/comparison.json +41 -0
  151. package/dist/spec/catalogs/layouts/competitive-landscape.json +35 -0
  152. package/dist/spec/catalogs/layouts/customer-journey.json +35 -0
  153. package/dist/spec/catalogs/layouts/customer-logos.json +38 -0
  154. package/dist/spec/catalogs/layouts/dashboard.json +41 -0
  155. package/dist/spec/catalogs/layouts/data-visualization.json +45 -0
  156. package/dist/spec/catalogs/layouts/decision-tree.json +35 -0
  157. package/dist/spec/catalogs/layouts/detailed-data-table.json +41 -0
  158. package/dist/spec/catalogs/layouts/ecosystem-map.json +35 -0
  159. package/dist/spec/catalogs/layouts/executive-decision.json +38 -0
  160. package/dist/spec/catalogs/layouts/executive-summary.json +38 -0
  161. package/dist/spec/catalogs/layouts/faq.json +35 -0
  162. package/dist/spec/catalogs/layouts/feature-comparison-matrix.json +35 -0
  163. package/dist/spec/catalogs/layouts/forecast-scenario.json +45 -0
  164. package/dist/spec/catalogs/layouts/funnel-pyramid.json +38 -0
  165. package/dist/spec/catalogs/layouts/gantt-project-plan.json +38 -0
  166. package/dist/spec/catalogs/layouts/geographic-map.json +35 -0
  167. package/dist/spec/catalogs/layouts/heatmap-cohort.json +38 -0
  168. package/dist/spec/catalogs/layouts/hub-and-spoke.json +35 -0
  169. package/dist/spec/catalogs/layouts/icon-grid.json +35 -0
  170. package/dist/spec/catalogs/layouts/image-focus.json +35 -0
  171. package/dist/spec/catalogs/layouts/index.json +352 -0
  172. package/dist/spec/catalogs/layouts/key-takeaway.json +32 -0
  173. package/dist/spec/catalogs/layouts/kpi-scorecard.json +44 -0
  174. package/dist/spec/catalogs/layouts/logic-tree.json +35 -0
  175. package/dist/spec/catalogs/layouts/market-size.json +35 -0
  176. package/dist/spec/catalogs/layouts/matrix-quadrant.json +48 -0
  177. package/dist/spec/catalogs/layouts/network-dependency-map.json +35 -0
  178. package/dist/spec/catalogs/layouts/one-column-explainer.json +35 -0
  179. package/dist/spec/catalogs/layouts/org-chart.json +45 -0
  180. package/dist/spec/catalogs/layouts/persona-grid.json +35 -0
  181. package/dist/spec/catalogs/layouts/photo-grid.json +48 -0
  182. package/dist/spec/catalogs/layouts/pricing-table.json +35 -0
  183. package/dist/spec/catalogs/layouts/process-flow.json +35 -0
  184. package/dist/spec/catalogs/layouts/product-feature.json +35 -0
  185. package/dist/spec/catalogs/layouts/pros-cons.json +41 -0
  186. package/dist/spec/catalogs/layouts/qa-discussion.json +38 -0
  187. package/dist/spec/catalogs/layouts/quote-highlight.json +35 -0
  188. package/dist/spec/catalogs/layouts/raci-matrix.json +35 -0
  189. package/dist/spec/catalogs/layouts/risk-heatmap.json +35 -0
  190. package/dist/spec/catalogs/layouts/roadmap.json +35 -0
  191. package/dist/spec/catalogs/layouts/screenshot-walkthrough.json +35 -0
  192. package/dist/spec/catalogs/layouts/section-divider.json +35 -0
  193. package/dist/spec/catalogs/layouts/single-message-statement.json +32 -0
  194. package/dist/spec/catalogs/layouts/stats-metrics.json +45 -0
  195. package/dist/spec/catalogs/layouts/status-rag.json +35 -0
  196. package/dist/spec/catalogs/layouts/swimlane-process.json +35 -0
  197. package/dist/spec/catalogs/layouts/swot-analysis.json +48 -0
  198. package/dist/spec/catalogs/layouts/team-bio.json +35 -0
  199. package/dist/spec/catalogs/layouts/testimonial-grid.json +44 -0
  200. package/dist/spec/catalogs/layouts/thank-you-cta.json +35 -0
  201. package/dist/spec/catalogs/layouts/three-column.json +45 -0
  202. package/dist/spec/catalogs/layouts/timeline.json +38 -0
  203. package/dist/spec/catalogs/layouts/title-slide.json +35 -0
  204. package/dist/spec/catalogs/layouts/two-column.json +42 -0
  205. package/dist/spec/catalogs/layouts/venn-overlap.json +35 -0
  206. package/dist/spec/catalogs/layouts/waterfall-bridge.json +45 -0
  207. package/dist/spec/catalogs/layouts/wheel-radial.json +35 -0
  208. package/dist/spec/catalogs/manifest.json +111 -0
  209. package/dist/spec/catalogs/narratives/index.json +746 -144
  210. package/dist/spec/catalogs/purposes/index.json +2 -0
  211. package/dist/spec/catalogs/social-platforms/index.json +2 -1
  212. package/dist/spec/catalogs/themes/index.json +10 -8
  213. package/dist/spec/catalogs/tones/index.json +2 -0
  214. package/dist/spec/reference/font-policy.json +113 -38
  215. package/dist/spec/reference/font-policy.schema.json +10 -0
  216. package/dist/spec/schemas/audience.schema.json +21 -0
  217. package/dist/spec/schemas/catalog-index.schema.json +40 -3
  218. package/dist/spec/schemas/catalog-manifest.schema.json +83 -0
  219. package/dist/spec/schemas/chart-type.schema.json +5 -0
  220. package/dist/spec/schemas/color-scheme.schema.json +21 -0
  221. package/dist/spec/schemas/font-scheme.schema.json +21 -0
  222. package/dist/spec/schemas/language.schema.json +21 -0
  223. package/dist/spec/schemas/layout.schema.json +21 -0
  224. package/dist/spec/schemas/narrative.schema.json +21 -0
  225. package/dist/spec/schemas/opf.schema.json +5 -5
  226. package/dist/spec/schemas/purpose.schema.json +21 -0
  227. package/dist/spec/schemas/social-platform.schema.json +26 -5
  228. package/dist/spec/schemas/theme.schema.json +21 -0
  229. package/dist/spec/schemas/tone.schema.json +21 -0
  230. package/dist/spec-files.d.ts +2 -2
  231. package/dist/spec-files.js +1 -1
  232. package/dist/types.d.ts +2 -2
  233. package/dist/validator.d.ts +2 -2
  234. package/dist/validator.js +4 -4
  235. package/package.json +1 -1
@@ -319,6 +319,21 @@ function placeTextLines(lines, box, alignment = "left", rasterPadding = 0) {
319
319
  }
320
320
  return { alignment, rasterPadding, lines: placed, height, overflow };
321
321
  }
322
+ function translateTextFit(fit, dy) {
323
+ if (!dy || !fit.placement) return fit;
324
+ return {
325
+ ...fit,
326
+ placement: {
327
+ ...fit.placement,
328
+ lines: fit.placement.lines.map((line) => ({
329
+ ...line,
330
+ y: line.y + dy,
331
+ baseline: line.baseline + dy,
332
+ outline: line.outline ? { ...line.outline, y: line.outline.y + dy } : line.outline
333
+ }))
334
+ }
335
+ };
336
+ }
322
337
  var OPFCompositionError = class extends Error {
323
338
  constructor(diagnostics, explanation) {
324
339
  super("Slide content does not fit its composition.");
@@ -332,6 +347,7 @@ var OPFCompositionError = class extends Error {
332
347
  };
333
348
  var fields = ["text", "items", "bullets", "image", "video", "chart", "table", "code", "metric", "quote", "timeline"];
334
349
  var headings = /* @__PURE__ */ new Set(["title", "subtitle", "tag"]);
350
+ var COVER_LAYOUT_IDS = /* @__PURE__ */ new Set(["title", "title-subtitle"]);
335
351
  var rows = ["top", "middle", "bottom"];
336
352
  var columns = ["left", "center", "right"];
337
353
  var record2 = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : {};
@@ -1520,7 +1536,16 @@ function composeSlide(input, options = {}) {
1520
1536
  const furniture = measuredFurniture.configured || measuredFurniture.diagnostics.length ? measuredFurniture : void 0;
1521
1537
  if (furniture) diagnostics.push(...furniture.diagnostics);
1522
1538
  const bodyBottom = Math.min(area.bottom - padding, furniture && furniture.footerTop < height ? furniture.footerTop - gap * 0.5 : height - padding);
1523
- let y = Math.max(area.top + padding, furniture?.headerBottom ? furniture.headerBottom + gap * 0.5 : padding);
1539
+ const headingTop = Math.max(area.top + padding, furniture?.headerBottom ? furniture.headerBottom + gap * 0.5 : padding);
1540
+ const layoutPlaceholders = Array.isArray(layout.placeholders) ? layout.placeholders : [];
1541
+ const headingOnlyLayout = COVER_LAYOUT_IDS.has(String(layout.id ?? "")) || layoutPlaceholders.length > 0 && layoutPlaceholders.every((placeholder) => headings.has(placeholder.type ?? ""));
1542
+ const regions = Object.keys(slide).filter((key) => regionParts(key)).sort();
1543
+ const emptyPayload = (value) => value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0;
1544
+ const emptyHost = (host) => emptyPayload(host.blocks) && fields.every((field) => emptyPayload(host[field]));
1545
+ const hasBodyPayload = regions.some((key) => !emptyHost(record2(slide[key]))) || !emptyPayload(slide.blocks) || fields.some((field) => !emptyPayload(slide[field]));
1546
+ const isCover = !hasBodyPayload && (headingOnlyLayout || !layout.id && !layoutPlaceholders.some((placeholder) => !headings.has(placeholder.type ?? "")));
1547
+ let y = headingTop;
1548
+ const headingItems = [];
1524
1549
  for (const field of ["tag", "title", "subtitle"]) {
1525
1550
  if (!slide[field]) continue;
1526
1551
  const requested = (field === "title" ? 54 : field === "tag" ? 16 : 25) * scale;
@@ -1529,10 +1554,22 @@ function composeSlide(input, options = {}) {
1529
1554
  const text = fitPlacedText(field, slide[field], String(slide[field]), box, requested, minSize, `${path}.${field}`);
1530
1555
  box.height = Math.min(maxHeight, Math.max(text.lines.length * text.lineHeight, text.placement?.height ?? 0));
1531
1556
  if (furniture && box.y + box.height > bodyBottom + 0.01) diagnostics.push({ code: "text-overflow", path: `${path}.${field}`, message: "Repeated furniture leaves too little room for this heading. Change the header/footer or slide design." });
1532
- items.push({ path: `${path}.${field}`, field, type: "text", value: slide[field], payload: { text: slide[field] }, box, text, textStyle: styleFor(field, `${path}.${field}`), composition, alignment: alignmentFor(field) });
1557
+ const item = { path: `${path}.${field}`, field, type: "text", value: slide[field], payload: { text: slide[field] }, box, text, textStyle: styleFor(field, `${path}.${field}`), composition, alignment: alignmentFor(field) };
1558
+ headingItems.push(item);
1559
+ items.push(item);
1533
1560
  y += box.height + gap * 0.5;
1534
1561
  }
1535
- if (items.length) y += gap * 0.5;
1562
+ if (headingItems.length) {
1563
+ if (isCover) {
1564
+ const last = headingItems[headingItems.length - 1];
1565
+ const shift = Math.max(0, (bodyBottom - (last.box.y + last.box.height)) / 2);
1566
+ if (shift) for (const item of headingItems) {
1567
+ item.box.y += shift;
1568
+ if (item.text) item.text = translateTextFit(item.text, shift);
1569
+ }
1570
+ y = last.box.y + last.box.height + gap;
1571
+ } else y += gap * 0.5;
1572
+ }
1536
1573
  const contentBox = { x: area.left + padding, y, width: area.right - area.left - padding * 2, height: Math.max(scale, bodyBottom - y) };
1537
1574
  const collect = (host, basePath, depth = 0, ancestors = []) => {
1538
1575
  if (Array.isArray(host.blocks)) {
@@ -1551,7 +1588,6 @@ function composeSlide(input, options = {}) {
1551
1588
  }
1552
1589
  return fields.filter((field) => host[field] !== void 0).map((field) => ({ field, type: host.type ?? kind(field), value: host[field], path: `${basePath}.${field}`, payload: { type: host.type ?? kind(field), [field]: host[field] } }));
1553
1590
  };
1554
- const regions = Object.keys(slide).filter((key) => regionParts(key)).sort();
1555
1591
  const pending = regions.length ? regions.flatMap((key) => collect(record2(slide[key]), `${path}.${key}`).map((item) => ({ ...item, region: regionParts(key) }))) : Array.isArray(slide.blocks) ? slide.blocks.flatMap((block, index) => collect(record2(block), `${path}.blocks.${index}`)) : collect(slideImage?.replacesContent ? { ...slide, image: void 0 } : slide, path);
1556
1592
  const groups = [], flows = [];
1557
1593
  const decisions = options.explain ? [] : void 0;