@openpresentation/opf 0.10.1 → 0.11.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 (280) hide show
  1. package/dist/{catalogs-DoVmvDr7.d.ts → catalogs-DJ-B5ZyD.d.ts} +79 -9
  2. package/dist/catalogs.d.ts +2 -2
  3. package/dist/catalogs.js +1 -1
  4. package/dist/{chunk-PQJRDNA6.js → chunk-6UPHKXI5.js} +381 -34
  5. package/dist/{chunk-TU7I3KSB.js → chunk-7LF37SG3.js} +7400 -5422
  6. package/dist/{chunk-EWJNRHXA.js → chunk-BP6WMSSS.js} +3 -3
  7. package/dist/{chunk-FHGJX5QK.js → chunk-KWIOQ3QR.js} +73 -32
  8. package/dist/{chunk-D3GQIREP.js → chunk-LTSDDBNW.js} +558 -52
  9. package/dist/{chunk-ZIL7MGZU.js → chunk-M4GTWRK7.js} +333 -102
  10. package/dist/chunk-NPYN4TZ5.js +3516 -0
  11. package/dist/{chunk-RS5GZ5RW.js → chunk-SDETQV7Y.js} +161 -0
  12. package/dist/composition-DzLwY-Mi.d.ts +887 -0
  13. package/dist/composition.d.ts +1 -676
  14. package/dist/composition.js +1 -1
  15. package/dist/docs.js +80 -20
  16. package/dist/examples.d.ts +1 -1
  17. package/dist/examples.js +11 -11
  18. package/dist/font-policy.d.ts +123 -0
  19. package/dist/font-policy.js +1 -0
  20. package/dist/index.d.ts +184 -4
  21. package/dist/index.js +473 -7
  22. package/dist/lint.d.ts +3 -3
  23. package/dist/lint.js +5 -5
  24. package/dist/pagination.d.ts +6 -2
  25. package/dist/pagination.js +5 -5
  26. package/dist/{presentation-BMTdX6O1.d.ts → presentation-bceTClm8.d.ts} +297 -30
  27. package/dist/repo-readme.js +1 -1
  28. package/dist/{schemas-BYe5y8-i.d.ts → schemas-X_NniU4A.d.ts} +8 -0
  29. package/dist/schemas.d.ts +1 -1
  30. package/dist/schemas.js +1 -1
  31. package/dist/spec/catalogs/audiences/academic.json +24 -0
  32. package/dist/spec/catalogs/audiences/all-hands.json +3 -1
  33. package/dist/spec/catalogs/audiences/board.json +3 -1
  34. package/dist/spec/catalogs/audiences/customer.json +25 -0
  35. package/dist/spec/catalogs/audiences/executive.json +24 -0
  36. package/dist/spec/catalogs/audiences/general-public.json +25 -0
  37. package/dist/spec/catalogs/audiences/index.json +73 -1
  38. package/dist/spec/catalogs/audiences/internal-team.json +25 -0
  39. package/dist/spec/catalogs/audiences/investor.json +25 -0
  40. package/dist/spec/catalogs/audiences/marketing.json +25 -0
  41. package/dist/spec/catalogs/audiences/media.json +24 -0
  42. package/dist/spec/catalogs/audiences/partner.json +25 -0
  43. package/dist/spec/catalogs/audiences/regulatory.json +25 -0
  44. package/dist/spec/catalogs/audiences/sales.json +25 -0
  45. package/dist/spec/catalogs/audiences/technical.json +25 -0
  46. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +5 -0
  47. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +5 -0
  48. package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +5 -0
  49. package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +5 -0
  50. package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +5 -0
  51. package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +5 -0
  52. package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +10 -0
  53. package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +10 -0
  54. package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +6 -1
  55. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +10 -0
  56. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +6 -1
  57. package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +10 -0
  58. package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +6 -1
  59. package/dist/spec/catalogs/chart-types/area.json +5 -0
  60. package/dist/spec/catalogs/chart-types/australia.json +10 -0
  61. package/dist/spec/catalogs/chart-types/bar.json +5 -0
  62. package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +10 -0
  63. package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +10 -0
  64. package/dist/spec/catalogs/chart-types/box-and-whisker.json +5 -0
  65. package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +5 -0
  66. package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +5 -0
  67. package/dist/spec/catalogs/chart-types/bullet-bar.json +5 -0
  68. package/dist/spec/catalogs/chart-types/bullet-column-2x.json +5 -0
  69. package/dist/spec/catalogs/chart-types/bullet-column-3x.json +5 -0
  70. package/dist/spec/catalogs/chart-types/bullet-column.json +5 -0
  71. package/dist/spec/catalogs/chart-types/canada.json +10 -0
  72. package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +10 -0
  73. package/dist/spec/catalogs/chart-types/clustered-column.json +10 -0
  74. package/dist/spec/catalogs/chart-types/column.json +5 -0
  75. package/dist/spec/catalogs/chart-types/dot-plot-2x.json +5 -0
  76. package/dist/spec/catalogs/chart-types/dot-plot-3x.json +5 -0
  77. package/dist/spec/catalogs/chart-types/dot-plot-4x.json +5 -0
  78. package/dist/spec/catalogs/chart-types/dot-plot-5x.json +5 -0
  79. package/dist/spec/catalogs/chart-types/dot-plot-6x.json +5 -0
  80. package/dist/spec/catalogs/chart-types/dot-plot.json +5 -0
  81. package/dist/spec/catalogs/chart-types/doughnut.json +5 -0
  82. package/dist/spec/catalogs/chart-types/dumbbell.json +5 -0
  83. package/dist/spec/catalogs/chart-types/filled-radar.json +5 -0
  84. package/dist/spec/catalogs/chart-types/funnel.json +5 -0
  85. package/dist/spec/catalogs/chart-types/histogram.json +5 -0
  86. package/dist/spec/catalogs/chart-types/index.json +333 -233
  87. package/dist/spec/catalogs/chart-types/line-2x.json +10 -0
  88. package/dist/spec/catalogs/chart-types/line-3x.json +10 -0
  89. package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +5 -0
  90. package/dist/spec/catalogs/chart-types/line-with-high-low.json +5 -0
  91. package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +10 -0
  92. package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +10 -0
  93. package/dist/spec/catalogs/chart-types/line-with-markers.json +5 -0
  94. package/dist/spec/catalogs/chart-types/line.json +5 -0
  95. package/dist/spec/catalogs/chart-types/pareto.json +9 -14
  96. package/dist/spec/catalogs/chart-types/pie.json +5 -0
  97. package/dist/spec/catalogs/chart-types/radar-with-markers.json +5 -0
  98. package/dist/spec/catalogs/chart-types/radar.json +5 -0
  99. package/dist/spec/catalogs/chart-types/scatter.json +5 -0
  100. package/dist/spec/catalogs/chart-types/sparkline-2x.json +5 -0
  101. package/dist/spec/catalogs/chart-types/sparkline-3x.json +5 -0
  102. package/dist/spec/catalogs/chart-types/sparkline-4x.json +5 -0
  103. package/dist/spec/catalogs/chart-types/sparkline-5x.json +5 -0
  104. package/dist/spec/catalogs/chart-types/sparkline-6x.json +5 -0
  105. package/dist/spec/catalogs/chart-types/sparkline.json +5 -0
  106. package/dist/spec/catalogs/chart-types/stacked-area-2x.json +10 -0
  107. package/dist/spec/catalogs/chart-types/stacked-area-3x.json +6 -1
  108. package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +10 -0
  109. package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +6 -1
  110. package/dist/spec/catalogs/chart-types/stacked-column-2x.json +10 -0
  111. package/dist/spec/catalogs/chart-types/stacked-column-3x.json +6 -1
  112. package/dist/spec/catalogs/chart-types/stacked-line-2x.json +10 -0
  113. package/dist/spec/catalogs/chart-types/stacked-line-3x.json +6 -1
  114. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +10 -0
  115. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +6 -1
  116. package/dist/spec/catalogs/chart-types/treemap-2x.json +10 -0
  117. package/dist/spec/catalogs/chart-types/treemap-3x.json +10 -0
  118. package/dist/spec/catalogs/chart-types/treemap.json +5 -0
  119. package/dist/spec/catalogs/chart-types/united-kingdom.json +10 -0
  120. package/dist/spec/catalogs/chart-types/united-states.json +10 -0
  121. package/dist/spec/catalogs/chart-types/waterfall.json +5 -0
  122. package/dist/spec/catalogs/chart-types/world.json +6 -1
  123. package/dist/spec/catalogs/font-schemes/consolas.json +3 -0
  124. package/dist/spec/catalogs/font-schemes/courier-new.json +3 -0
  125. package/dist/spec/catalogs/languages/afrikaans.json +3 -0
  126. package/dist/spec/catalogs/languages/albanian.json +3 -0
  127. package/dist/spec/catalogs/languages/amharic.json +3 -0
  128. package/dist/spec/catalogs/languages/arabic.json +3 -0
  129. package/dist/spec/catalogs/languages/armenian.json +3 -0
  130. package/dist/spec/catalogs/languages/aymara.json +3 -0
  131. package/dist/spec/catalogs/languages/azerbaijani.json +3 -0
  132. package/dist/spec/catalogs/languages/bengali.json +3 -0
  133. package/dist/spec/catalogs/languages/berber-latin.json +3 -0
  134. package/dist/spec/catalogs/languages/bosnian-latin.json +3 -0
  135. package/dist/spec/catalogs/languages/bulgarian.json +3 -0
  136. package/dist/spec/catalogs/languages/catalan.json +3 -0
  137. package/dist/spec/catalogs/languages/cebuano.json +3 -0
  138. package/dist/spec/catalogs/languages/chinese-simplified.json +3 -0
  139. package/dist/spec/catalogs/languages/chinese-traditional.json +3 -0
  140. package/dist/spec/catalogs/languages/chittagonian.json +3 -0
  141. package/dist/spec/catalogs/languages/croatian.json +3 -0
  142. package/dist/spec/catalogs/languages/czech.json +3 -0
  143. package/dist/spec/catalogs/languages/danish.json +3 -0
  144. package/dist/spec/catalogs/languages/dutch.json +3 -0
  145. package/dist/spec/catalogs/languages/english-au.json +3 -0
  146. package/dist/spec/catalogs/languages/english-ca.json +3 -0
  147. package/dist/spec/catalogs/languages/english-gb.json +3 -0
  148. package/dist/spec/catalogs/languages/english-in.json +3 -0
  149. package/dist/spec/catalogs/languages/english-us.json +3 -0
  150. package/dist/spec/catalogs/languages/english.json +3 -0
  151. package/dist/spec/catalogs/languages/estonian.json +3 -0
  152. package/dist/spec/catalogs/languages/filipino.json +3 -0
  153. package/dist/spec/catalogs/languages/finnish.json +3 -0
  154. package/dist/spec/catalogs/languages/french.json +3 -0
  155. package/dist/spec/catalogs/languages/fulfulde.json +3 -0
  156. package/dist/spec/catalogs/languages/galician.json +3 -0
  157. package/dist/spec/catalogs/languages/georgian.json +3 -0
  158. package/dist/spec/catalogs/languages/german.json +3 -0
  159. package/dist/spec/catalogs/languages/greek.json +3 -0
  160. package/dist/spec/catalogs/languages/gujarati.json +3 -0
  161. package/dist/spec/catalogs/languages/hausa.json +3 -0
  162. package/dist/spec/catalogs/languages/hebrew.json +3 -0
  163. package/dist/spec/catalogs/languages/hindi.json +3 -0
  164. package/dist/spec/catalogs/languages/hungarian.json +3 -0
  165. package/dist/spec/catalogs/languages/igbo.json +3 -0
  166. package/dist/spec/catalogs/languages/indonesian.json +3 -0
  167. package/dist/spec/catalogs/languages/italian.json +3 -0
  168. package/dist/spec/catalogs/languages/japanese.json +3 -0
  169. package/dist/spec/catalogs/languages/kannada.json +3 -0
  170. package/dist/spec/catalogs/languages/kazakh.json +3 -0
  171. package/dist/spec/catalogs/languages/khmer.json +3 -0
  172. package/dist/spec/catalogs/languages/kinyarwanda.json +3 -0
  173. package/dist/spec/catalogs/languages/korean.json +3 -0
  174. package/dist/spec/catalogs/languages/kurmanji.json +3 -0
  175. package/dist/spec/catalogs/languages/latvian.json +3 -0
  176. package/dist/spec/catalogs/languages/lithuanian.json +3 -0
  177. package/dist/spec/catalogs/languages/macedonian.json +3 -0
  178. package/dist/spec/catalogs/languages/malagasy.json +3 -0
  179. package/dist/spec/catalogs/languages/malay.json +3 -0
  180. package/dist/spec/catalogs/languages/malayalam.json +3 -0
  181. package/dist/spec/catalogs/languages/maori.json +3 -0
  182. package/dist/spec/catalogs/languages/marathi.json +3 -0
  183. package/dist/spec/catalogs/languages/mongolian.json +3 -0
  184. package/dist/spec/catalogs/languages/nepali.json +3 -0
  185. package/dist/spec/catalogs/languages/norwegian.json +3 -0
  186. package/dist/spec/catalogs/languages/odia.json +3 -0
  187. package/dist/spec/catalogs/languages/oromo.json +3 -0
  188. package/dist/spec/catalogs/languages/pashto.json +3 -0
  189. package/dist/spec/catalogs/languages/persian.json +3 -0
  190. package/dist/spec/catalogs/languages/polish.json +3 -0
  191. package/dist/spec/catalogs/languages/portuguese.json +3 -0
  192. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +3 -0
  193. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +3 -0
  194. package/dist/spec/catalogs/languages/romanian.json +3 -0
  195. package/dist/spec/catalogs/languages/russian.json +3 -0
  196. package/dist/spec/catalogs/languages/serbian-cyrillic.json +3 -0
  197. package/dist/spec/catalogs/languages/serbian-latin.json +3 -0
  198. package/dist/spec/catalogs/languages/shona.json +3 -0
  199. package/dist/spec/catalogs/languages/slovak.json +3 -0
  200. package/dist/spec/catalogs/languages/slovenian.json +3 -0
  201. package/dist/spec/catalogs/languages/somali.json +3 -0
  202. package/dist/spec/catalogs/languages/spanish.json +3 -0
  203. package/dist/spec/catalogs/languages/swahili.json +3 -0
  204. package/dist/spec/catalogs/languages/swedish.json +3 -0
  205. package/dist/spec/catalogs/languages/tagalog.json +3 -0
  206. package/dist/spec/catalogs/languages/tajik.json +3 -0
  207. package/dist/spec/catalogs/languages/tamil.json +3 -0
  208. package/dist/spec/catalogs/languages/telugu.json +3 -0
  209. package/dist/spec/catalogs/languages/thai.json +3 -0
  210. package/dist/spec/catalogs/languages/turkish.json +3 -0
  211. package/dist/spec/catalogs/languages/ukrainian.json +3 -0
  212. package/dist/spec/catalogs/languages/urdu.json +3 -0
  213. package/dist/spec/catalogs/languages/uzbek-latin.json +3 -0
  214. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +3 -0
  215. package/dist/spec/catalogs/languages/xhosa.json +3 -0
  216. package/dist/spec/catalogs/languages/yoruba.json +3 -0
  217. package/dist/spec/catalogs/languages/zulu.json +3 -0
  218. package/dist/spec/catalogs/narratives/board-meeting.json +21 -21
  219. package/dist/spec/catalogs/narratives/business-narrative.json +8 -8
  220. package/dist/spec/catalogs/narratives/business-review.json +12 -12
  221. package/dist/spec/catalogs/narratives/capacity-planning.json +8 -8
  222. package/dist/spec/catalogs/narratives/challenge-resolution.json +7 -7
  223. package/dist/spec/catalogs/narratives/change-story.json +64 -0
  224. package/dist/spec/catalogs/narratives/classic-story.json +7 -7
  225. package/dist/spec/catalogs/narratives/company-intro.json +9 -9
  226. package/dist/spec/catalogs/narratives/conference-talk.json +1 -1
  227. package/dist/spec/catalogs/narratives/data-story.json +66 -0
  228. package/dist/spec/catalogs/narratives/early-startup-pitch.json +12 -12
  229. package/dist/spec/catalogs/narratives/educate.json +9 -9
  230. package/dist/spec/catalogs/narratives/employee-review.json +8 -8
  231. package/dist/spec/catalogs/narratives/failure-analysis.json +10 -10
  232. package/dist/spec/catalogs/narratives/focus.json +12 -12
  233. package/dist/spec/catalogs/narratives/golden-circle.json +1 -1
  234. package/dist/spec/catalogs/narratives/heros-journey.json +64 -0
  235. package/dist/spec/catalogs/narratives/index.json +81 -0
  236. package/dist/spec/catalogs/narratives/innovation.json +9 -9
  237. package/dist/spec/catalogs/narratives/justice.json +11 -11
  238. package/dist/spec/catalogs/narratives/marketing-strategy.json +11 -11
  239. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +8 -8
  240. package/dist/spec/catalogs/narratives/performance-review.json +11 -11
  241. package/dist/spec/catalogs/narratives/persuade.json +7 -7
  242. package/dist/spec/catalogs/narratives/persuasive-sales.json +8 -8
  243. package/dist/spec/catalogs/narratives/pitch-deck.json +3 -3
  244. package/dist/spec/catalogs/narratives/problem-solution.json +2 -2
  245. package/dist/spec/catalogs/narratives/product-launch.json +10 -10
  246. package/dist/spec/catalogs/narratives/project-proposal.json +10 -10
  247. package/dist/spec/catalogs/narratives/pyramid-principle.json +48 -0
  248. package/dist/spec/catalogs/narratives/qbr.json +3 -3
  249. package/dist/spec/catalogs/narratives/rags-to-riches.json +7 -7
  250. package/dist/spec/catalogs/narratives/reveal.json +8 -8
  251. package/dist/spec/catalogs/narratives/scqa.json +1 -1
  252. package/dist/spec/catalogs/narratives/situation-complication-resolution.json +56 -0
  253. package/dist/spec/catalogs/narratives/sparkline.json +56 -0
  254. package/dist/spec/catalogs/narratives/star-method.json +56 -0
  255. package/dist/spec/catalogs/narratives/status-update.json +6 -6
  256. package/dist/spec/catalogs/narratives/strategic-advisory.json +7 -7
  257. package/dist/spec/catalogs/narratives/strategic-narrative.json +1 -1
  258. package/dist/spec/catalogs/narratives/survey-analysis.json +10 -10
  259. package/dist/spec/catalogs/narratives/survival-story.json +10 -10
  260. package/dist/spec/catalogs/narratives/transformation-arc.json +1 -1
  261. package/dist/spec/catalogs/narratives/trend-analysis.json +7 -7
  262. package/dist/spec/catalogs/narratives/underdog-victory.json +8 -8
  263. package/dist/spec/catalogs/narratives/venture-pitch.json +12 -12
  264. package/dist/spec/catalogs/narratives/vision-roadmap.json +65 -0
  265. package/dist/spec/catalogs/narratives/weekly-progress.json +10 -10
  266. package/dist/spec/catalogs/narratives/what-so-what-now-what.json +48 -0
  267. package/dist/spec/openapi.yaml +5 -0
  268. package/dist/spec/reference/engine-defaults.json +2 -2
  269. package/dist/spec/reference/font-policy.json +3435 -0
  270. package/dist/spec/reference/font-policy.schema.json +328 -0
  271. package/dist/spec/schemas/chart-type.schema.json +51 -11
  272. package/dist/spec/schemas/font-scheme.schema.json +91 -1
  273. package/dist/spec/schemas/language.schema.json +10 -5
  274. package/dist/spec/schemas/opf.schema.json +241 -32
  275. package/dist/spec-files.d.ts +1 -1
  276. package/dist/spec-files.js +1 -1
  277. package/dist/types.d.ts +3 -3
  278. package/dist/validator.d.ts +7 -4
  279. package/dist/validator.js +4 -4
  280. package/package.json +6 -2
@@ -23,7 +23,7 @@
23
23
  "id": "logo",
24
24
  "name": "Logo",
25
25
  "description": "Cover slide with logos and the review period. Establishes brand identity and signals the level of formality the rest of the deck will hold to.",
26
- "layoutHint": "title-left",
26
+ "layoutHint": "title",
27
27
  "instructions": "Identity & representation",
28
28
  "slideType": "text"
29
29
  },
@@ -33,7 +33,7 @@
33
33
  "description": "Frame the meeting context and the goals for the next hour. What you'll cover, what decisions you want, what you don't intend to relitigate.",
34
34
  "instructions": "Meeting context & goals",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "review",
@@ -41,7 +41,7 @@
41
41
  "description": "Outline the recent activities in scope: launches, projects, programs. Just enough scope-setting that the rest of the deck has shared vocabulary.",
42
42
  "instructions": "Outline recent activities",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "successes",
@@ -49,7 +49,7 @@
49
49
  "description": "Recognize the achievements in the review window. Lead with outcomes the audience cares about, not effort. Specific moves earn more credibility than aggregate progress.",
50
50
  "instructions": "Recognize achievements",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "challenges",
@@ -57,7 +57,7 @@
57
57
  "description": "Address the problems faced honestly. What didn't work, what's still hard. Naming challenges in front of the audience earns more trust than letting them ask.",
58
58
  "instructions": "Address problems faced",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "solutions",
@@ -65,7 +65,7 @@
65
65
  "description": "Discuss the fixes already implemented. Pair each with the result it produced, or, if it's still in flight, with the leading indicator you're watching.",
66
66
  "instructions": "Discuss implemented fixes",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "outcome",
@@ -73,7 +73,7 @@
73
73
  "description": "Display the results achieved across the review window. Let the data carry the slide; supporting commentary should explain context, not inflate the numbers.",
74
74
  "instructions": "Display results achieved",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "insights",
@@ -81,7 +81,7 @@
81
81
  "description": "Highlight the key learnings. What was confirmed, what surprised you, what the audience should take away. Insights are the slides people quote in follow-on meetings.",
82
82
  "instructions": "Highlight key learnings",
83
83
  "slideType": "text",
84
- "layoutHint": "text-1x-left"
84
+ "layoutHint": "text-1x"
85
85
  },
86
86
  {
87
87
  "id": "future-strategy",
@@ -89,7 +89,7 @@
89
89
  "description": "Define the next steps and the strategic direction that follows from the review. Specific enough to sequence; flexible enough to adapt.",
90
90
  "instructions": "Define next steps",
91
91
  "slideType": "text",
92
- "layoutHint": "text-1x-left"
92
+ "layoutHint": "text-1x"
93
93
  },
94
94
  {
95
95
  "id": "feedback",
@@ -97,7 +97,7 @@
97
97
  "description": "Capture audience thoughts. Two or three explicit prompts where you want input or alignment. The strength of a relationship review is in the conversation it provokes.",
98
98
  "instructions": "Capture audience thoughts",
99
99
  "slideType": "text",
100
- "layoutHint": "text-1x-left"
100
+ "layoutHint": "text-1x"
101
101
  },
102
102
  {
103
103
  "id": "next-review",
@@ -105,13 +105,13 @@
105
105
  "description": "Plan for follow-up: when the next review happens, what evidence you'll bring, what decisions are deferred until then. Continuity is the point of the cadence.",
106
106
  "instructions": "Plan for follow-up",
107
107
  "slideType": "text",
108
- "layoutHint": "text-1x-left"
108
+ "layoutHint": "text-1x"
109
109
  },
110
110
  {
111
111
  "id": "closing",
112
112
  "name": "Closing",
113
113
  "description": "Recap and express optimism about the path forward. Close with the next concrete step and the people responsible for it.",
114
- "layoutHint": "title-left",
114
+ "layoutHint": "title",
115
115
  "instructions": "Recap and express optimism",
116
116
  "slideType": "text"
117
117
  }
@@ -24,7 +24,7 @@
24
24
  "id": "kickoff",
25
25
  "name": "Kickoff",
26
26
  "description": "Introduce what the planning exercise covers and the decision you need from the audience. Frame the time horizon and the resources in scope so the rest of the deck stays bounded.",
27
- "layoutHint": "title-center",
27
+ "layoutHint": "title",
28
28
  "instructions": "Introduce the topic",
29
29
  "slideType": "text"
30
30
  },
@@ -34,7 +34,7 @@
34
34
  "description": "Show why this is the right moment to plan capacity. Pipeline shifts, hiring freezes, operational stress signals. Urgency turns capacity from an annual ritual into a decision the audience leans into.",
35
35
  "instructions": "Show needs",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "situation",
@@ -42,7 +42,7 @@
42
42
  "description": "Highlight the current resource picture: people, tools, infrastructure, vendor capacity. Show utilization, not just headcount. The audience should know where slack and stress live today.",
43
43
  "instructions": "Highlight current resources",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "projection",
@@ -50,7 +50,7 @@
50
50
  "description": "Predict future demand under your base case and a sensitivity case. Tie demand to specific drivers — pipeline, launches, seasonality — so the audience can challenge the assumptions, not just the totals.",
51
51
  "instructions": "Predict future demands",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "tactics",
@@ -58,7 +58,7 @@
58
58
  "description": "Suggest the strategies for closing any gap: hiring, automation, outsourcing, prioritization. Each tactic should map to a specific demand driver and a defensible cost.",
59
59
  "instructions": "Suggest coping strategies",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "implementation",
@@ -66,7 +66,7 @@
66
66
  "description": "Discuss how the plan gets deployed. Sequencing, owners, dependencies, lead times. Capacity decisions slip the most when the rollout isn't planned with the same rigor as the sizing.",
67
67
  "instructions": "Discuss deployment plans",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "revision",
@@ -74,13 +74,13 @@
74
74
  "description": "Define the leading indicators that would trigger a re-plan, and the cadence of review. Capacity plans age fast; show the audience how the plan stays alive.",
75
75
  "instructions": "Evaluate and adjust",
76
76
  "slideType": "text",
77
- "layoutHint": "text-1x-left"
77
+ "layoutHint": "text-1x"
78
78
  },
79
79
  {
80
80
  "id": "conclusion",
81
81
  "name": "Conclusion",
82
82
  "description": "Wrap up with the specific recommendations and the decisions you need today. End with the next checkpoint and what evidence will be on the table at it.",
83
- "layoutHint": "title-left",
83
+ "layoutHint": "title",
84
84
  "instructions": "Wrap-up & recommendations",
85
85
  "slideType": "text"
86
86
  }
@@ -26,7 +26,7 @@
26
26
  "description": "Open with a specific, visible signal of the challenge — a metric heading the wrong way, a customer story, a competitive event. The hook should make the audience nod that yes, this matters.",
27
27
  "instructions": "Capture audience attention",
28
28
  "slideType": "text",
29
- "layoutHint": "text-1x-left"
29
+ "layoutHint": "text-1x"
30
30
  },
31
31
  {
32
32
  "id": "dilemma",
@@ -34,7 +34,7 @@
34
34
  "description": "State the challenge plainly. What is failing, who is feeling it, and why has it now risen to a level that demands a decision? The dilemma must feel real, not academic.",
35
35
  "instructions": "Present the problem",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "backdrop",
@@ -42,7 +42,7 @@
42
42
  "description": "Provide the context behind the dilemma: how it formed, what's been tried, what constraints exist. Just enough history that the audience trusts your diagnosis without drowning in detail.",
43
43
  "instructions": "Provide context",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "remedy",
@@ -50,7 +50,7 @@
50
50
  "description": "Propose the resolution. Lead with the recommendation, then sketch the approach. Be opinionated — vague remedies invite vague responses.",
51
51
  "instructions": "Propose a solution",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "evidence",
@@ -58,7 +58,7 @@
58
58
  "description": "Demonstrate why the remedy will work. Comparable cases, supporting data, or pilot results. Choose evidence that addresses the audience's most likely objection, not the one easiest to answer.",
59
59
  "instructions": "Demonstrate success",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "motivate",
@@ -66,13 +66,13 @@
66
66
  "description": "Make the case for acting now. Quantify the cost of delay and the upside of decisive action. Help the audience picture the room a quarter from now if they say yes.",
67
67
  "instructions": "Encourage action",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "conclusion",
73
73
  "name": "Conclusion",
74
74
  "description": "Recap the challenge, the remedy, and the specific decision you need from the audience. End with a clear ask, not a summary slide.",
75
- "layoutHint": "title-left",
75
+ "layoutHint": "title",
76
76
  "instructions": "Recap and end powerfully",
77
77
  "slideType": "text"
78
78
  }
@@ -0,0 +1,64 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "change-story",
4
+ "name": "Change Story",
5
+ "summary": "A change management narrative that addresses the emotional and rational objections employees face when asked to change.",
6
+ "description": "A change management narrative that addresses the emotional and rational objections people face when asked to change. Establish the burning platform, explain why the timing is urgent, show the chosen path and the alternatives it was chosen over, make the stakes concrete for the organization, the team, and individuals, and close on a shared vision in which the audience is the protagonist. The tone is motivational and empathetic: it acknowledges that change is hard while building conviction. Best for organizational change, transformation announcements, restructuring communications, and all-hands meetings; typical decks run 8-15 slides.",
7
+ "audienceFit": [
8
+ "employees",
9
+ "team-leads",
10
+ "cross-functional-teams"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 15,
14
+ "maxMinutes": 45
15
+ },
16
+ "tags": [
17
+ "change-management",
18
+ "transformation",
19
+ "internal",
20
+ "alignment"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "why-change",
25
+ "name": "Why Change",
26
+ "description": "Acknowledge the current state and the external or internal forces requiring change. Don't skip the burning platform.",
27
+ "instructions": "Explain why the current state cannot continue.",
28
+ "slideType": "text",
29
+ "layoutHint": "text-2x"
30
+ },
31
+ {
32
+ "id": "why-now",
33
+ "name": "Why Now",
34
+ "description": "Explain the urgency. What changes if we wait? What window is closing?",
35
+ "instructions": "Make the timing urgent and concrete.",
36
+ "slideType": "metric",
37
+ "layoutHint": "number-1x"
38
+ },
39
+ {
40
+ "id": "why-this-way",
41
+ "name": "Why This Way",
42
+ "description": "Show that alternatives were considered. Build trust by demonstrating thoughtful decision-making.",
43
+ "instructions": "Describe the proposed path and why it fits.",
44
+ "slideType": "timeline",
45
+ "layoutHint": "timeline-1x"
46
+ },
47
+ {
48
+ "id": "whats-at-stake",
49
+ "name": "What's at Stake",
50
+ "description": "Make consequences concrete for the organization, the team, and individuals. Avoid abstract language.",
51
+ "instructions": "Show the risks and rewards attached to the choice.",
52
+ "slideType": "text",
53
+ "layoutHint": "text-2x"
54
+ },
55
+ {
56
+ "id": "how-we-win-together",
57
+ "name": "How We Win Together",
58
+ "description": "Paint a shared vision of success. Make the audience the protagonist of the new story.",
59
+ "instructions": "Close with shared ownership and first commitments.",
60
+ "slideType": "text",
61
+ "layoutHint": "title"
62
+ }
63
+ ]
64
+ }
@@ -24,7 +24,7 @@
24
24
  "description": "Capture attention with a vivid moment, image, or question that sets the world of the story. The audience should immediately know what kind of room they're in. Avoid agendas — the opening is the first scene, not a preamble.",
25
25
  "instructions": "Capture audience attention",
26
26
  "slideType": "text",
27
- "layoutHint": "text-1x-left"
27
+ "layoutHint": "text-1x"
28
28
  },
29
29
  {
30
30
  "id": "context",
@@ -32,7 +32,7 @@
32
32
  "description": "Establish what's normal in this world before anything goes wrong. Just enough background for the audience to feel the stakes when the villain shows up. Keep it tight; backstory is fuel, not the engine.",
33
33
  "instructions": "Give background & importance",
34
34
  "slideType": "text",
35
- "layoutHint": "text-1x-left"
35
+ "layoutHint": "text-1x"
36
36
  },
37
37
  {
38
38
  "id": "villain",
@@ -40,7 +40,7 @@
40
40
  "description": "Introduce the antagonist — a problem, a competitor, a market force, an inertia. Give it a face and a name where you can. The clearer the villain, the more the audience cares about how the story turns out.",
41
41
  "instructions": "Introduce problem",
42
42
  "slideType": "text",
43
- "layoutHint": "text-1x-left"
43
+ "layoutHint": "text-1x"
44
44
  },
45
45
  {
46
46
  "id": "despair",
@@ -48,7 +48,7 @@
48
48
  "description": "Show what's at risk if the villain wins. Emphasize the human or business cost of inaction. Don't rush past this beat — the discomfort here is what makes the resolution land.",
49
49
  "instructions": "Emphasize negative impact",
50
50
  "slideType": "text",
51
- "layoutHint": "text-1x-left"
51
+ "layoutHint": "text-1x"
52
52
  },
53
53
  {
54
54
  "id": "hero",
@@ -56,7 +56,7 @@
56
56
  "description": "Reveal the hero of the story. Often this is the audience themselves, your team, or your product. Frame the hero by what they uniquely bring to the fight, not by their résumé.",
57
57
  "instructions": "Present solution",
58
58
  "slideType": "text",
59
- "layoutHint": "text-1x-left"
59
+ "layoutHint": "text-1x"
60
60
  },
61
61
  {
62
62
  "id": "plan",
@@ -64,13 +64,13 @@
64
64
  "description": "Walk through how the hero defeats the villain. Concrete, sequential, credible. Generic plans signal weak heroes; specific plans earn belief that the ending you're promising is reachable.",
65
65
  "instructions": "Detail implementation",
66
66
  "slideType": "text",
67
- "layoutHint": "text-1x-left"
67
+ "layoutHint": "text-1x"
68
68
  },
69
69
  {
70
70
  "id": "closing",
71
71
  "name": "Closing",
72
72
  "description": "End with the resolution and the lesson. Show what the world looks like after the villain loses, and leave the audience with the feeling — and the line — they'll repeat afterwards.",
73
- "layoutHint": "title-left",
73
+ "layoutHint": "title",
74
74
  "instructions": "Inspire & conclude",
75
75
  "slideType": "text"
76
76
  }
@@ -24,7 +24,7 @@
24
24
  "id": "logo",
25
25
  "name": "Logo",
26
26
  "description": "Cover slide with the logo, tagline, and a single line of positioning. Set the visual tone — confident, branded, uncluttered.",
27
- "layoutHint": "title-left",
27
+ "layoutHint": "title",
28
28
  "instructions": "Establish brand identity",
29
29
  "slideType": "text"
30
30
  },
@@ -34,7 +34,7 @@
34
34
  "description": "Capture the company in three or four lines: what you do, who you do it for, and how long you've been at it. Avoid jargon; an outsider should grok the business in fifteen seconds.",
35
35
  "instructions": "Capture attention",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "competitive-advantage",
@@ -42,7 +42,7 @@
42
42
  "description": "State the one or two things you do that the alternatives can't. Frame it as a structural advantage, not a feature list. The audience should leave able to repeat the differentiator in their own words.",
43
43
  "instructions": "Stand out",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "company-story",
@@ -50,7 +50,7 @@
50
50
  "description": "Share the founding insight or origin moment — why this company exists, told as a short story. Specific people, specific problems, a specific 'aha.' Story beats biography.",
51
51
  "instructions": "Share origin",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "offerings",
@@ -58,7 +58,7 @@
58
58
  "description": "Map the products and services into a coherent picture. Show how they fit together rather than listing them flat. The shape of the portfolio is itself a message.",
59
59
  "instructions": "Highlight products/services",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "ideal-customer",
@@ -66,7 +66,7 @@
66
66
  "description": "Define who you serve best. Industry, size, role, situation. Specificity here helps the audience self-select and signals you understand the customer well enough to be choosy.",
67
67
  "instructions": "Define target market",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "key-benefits",
@@ -74,7 +74,7 @@
74
74
  "description": "Translate offerings into three to five customer outcomes. Lead with the result, not the mechanism. Each benefit should answer 'what becomes easier or better for me?'",
75
75
  "instructions": "Emphasize value",
76
76
  "slideType": "text",
77
- "layoutHint": "text-1x-left"
77
+ "layoutHint": "text-1x"
78
78
  },
79
79
  {
80
80
  "id": "success-story",
@@ -82,13 +82,13 @@
82
82
  "description": "Tell one named customer's story with concrete before/after metrics. A single specific story is more persuasive than a logo grid; pick one that mirrors the audience you're presenting to.",
83
83
  "instructions": "Showcase satisfied customer",
84
84
  "slideType": "text",
85
- "layoutHint": "text-1x-left"
85
+ "layoutHint": "text-1x"
86
86
  },
87
87
  {
88
88
  "id": "closing-cta",
89
89
  "name": "Closing & CTA",
90
90
  "description": "Close with one line of why now and one specific next step — a discovery call, a pilot, a partner program. End with contact info that's easy to act on without searching.",
91
- "layoutHint": "title-left",
91
+ "layoutHint": "title",
92
92
  "instructions": "Encourage action",
93
93
  "slideType": "text"
94
94
  }
@@ -48,7 +48,7 @@
48
48
  "id": "recap",
49
49
  "name": "Recap",
50
50
  "description": "Restate the promise, the mechanism, and the call to action in a single short slide. Give the audience the line they'll repeat to a colleague and the one image that will stick with them after the lights come up.",
51
- "layoutHint": "title-left"
51
+ "layoutHint": "title"
52
52
  }
53
53
  ]
54
54
  }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "data-story",
4
+ "name": "Data Story",
5
+ "summary": "A data-first narrative that builds from evidence to insight to action, ideal for analysts and data-driven teams.",
6
+ "description": "A data-first narrative that builds from evidence to insight to action. Set the analytical context and the question the data answers, reveal the headline finding, walk through the supporting analysis and its sources, explain what it means for the business, then make a specific recommendation with its confidence level and assumptions. The tone is analytical and inductive: it builds up from data to insight. Best for analytical briefings, data team presentations, research readouts, and business reviews; typical decks run 6-15 slides.",
7
+ "audienceFit": [
8
+ "data-teams",
9
+ "operations-and-finance",
10
+ "product-managers",
11
+ "analytics-stakeholders"
12
+ ],
13
+ "durationRange": {
14
+ "minMinutes": 10,
15
+ "maxMinutes": 30
16
+ },
17
+ "tags": [
18
+ "analytics",
19
+ "data",
20
+ "insight",
21
+ "recommendation"
22
+ ],
23
+ "beats": [
24
+ {
25
+ "id": "context",
26
+ "name": "Context",
27
+ "description": "Frame why this analysis matters now. What question is this data answering?",
28
+ "instructions": "Set up the business question and data scope.",
29
+ "slideType": "list",
30
+ "layoutHint": "list-1x"
31
+ },
32
+ {
33
+ "id": "key-finding",
34
+ "name": "Key Finding",
35
+ "description": "State the single most important thing the data shows. One slide, one insight.",
36
+ "instructions": "State the one finding the audience must remember.",
37
+ "slideType": "metric",
38
+ "layoutHint": "number-1x"
39
+ },
40
+ {
41
+ "id": "analysis",
42
+ "name": "Analysis",
43
+ "description": "Unpack the data rigorously. Show sources, methodology, and supporting charts.",
44
+ "instructions": "Explain the drivers behind the finding.",
45
+ "slideCount": 2,
46
+ "slideType": "chart",
47
+ "layoutHint": "chart-1x"
48
+ },
49
+ {
50
+ "id": "implications",
51
+ "name": "Implications",
52
+ "description": "Translate findings into business language. What does this mean for strategy, operations, or customers?",
53
+ "instructions": "Translate the analysis into business consequences.",
54
+ "slideType": "text",
55
+ "layoutHint": "text-2x"
56
+ },
57
+ {
58
+ "id": "recommendation",
59
+ "name": "Recommendation",
60
+ "description": "Make an explicit, actionable recommendation backed by the data. Include confidence level and assumptions.",
61
+ "instructions": "Recommend the next decision or action.",
62
+ "slideType": "text",
63
+ "layoutHint": "title"
64
+ }
65
+ ]
66
+ }
@@ -23,7 +23,7 @@
23
23
  "id": "logo",
24
24
  "name": "Logo",
25
25
  "description": "Cover slide with the company name, logo, and one-line positioning. Simple, branded, confident.",
26
- "layoutHint": "title-left",
26
+ "layoutHint": "title",
27
27
  "instructions": "Establish presence",
28
28
  "slideType": "text"
29
29
  },
@@ -33,7 +33,7 @@
33
33
  "description": "Open by naming a large, undeniable shift in the world. Tech, regulatory, behavioral. The shift is the reason this company exists — investors should feel its weight before they hear about the product.",
34
34
  "instructions": "Highlight market transformation",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "past-struggle",
@@ -41,7 +41,7 @@
41
41
  "description": "Show what the world tried to do about the problem before the shift, and why those approaches fell short. Honest credit to predecessors makes the new game more credible.",
42
42
  "instructions": "Emphasize previous challenges",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "innovative-breakthrough",
@@ -49,7 +49,7 @@
49
49
  "description": "Present the founding insight or breakthrough that makes a new approach possible. This is the 'secret' the company is built on — name it plainly.",
50
50
  "instructions": "Present innovative solution",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "unique-offering",
@@ -57,7 +57,7 @@
57
57
  "description": "Detail the product or service. Lead with the customer-visible thing they touch; the architecture can wait. Show why this offering is structurally different from the past struggle.",
58
58
  "instructions": "Detail product or service",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "costly-issues",
@@ -65,7 +65,7 @@
65
65
  "description": "Quantify the pain customers experience without your offering. Time, dollars, opportunity cost. Specific numbers convert sympathy into urgency.",
66
66
  "instructions": "Quantify problems faced",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "effective-solutions",
@@ -73,7 +73,7 @@
73
73
  "description": "Demonstrate the customer outcome your offering produces. Before/after numbers from early users, even small N. Early-stage pitches are won by leading indicators, not by trailing ones.",
74
74
  "instructions": "Demonstrate benefits",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "unit-economics",
@@ -81,7 +81,7 @@
81
81
  "description": "Explain the financial model. Cost to acquire, gross margin, payback. Investors don't expect maturity — they expect that you've thought about it.",
82
82
  "instructions": "Explain financial model",
83
83
  "slideType": "text",
84
- "layoutHint": "text-1x-left"
84
+ "layoutHint": "text-1x"
85
85
  },
86
86
  {
87
87
  "id": "talented-team",
@@ -89,7 +89,7 @@
89
89
  "description": "Introduce the founders and key early hires. Show why this team uniquely sees and can execute on this opportunity. Insight beats résumé at the seed stage.",
90
90
  "instructions": "Introduce key players",
91
91
  "slideType": "text",
92
- "layoutHint": "text-1x-left"
92
+ "layoutHint": "text-1x"
93
93
  },
94
94
  {
95
95
  "id": "traction",
@@ -97,7 +97,7 @@
97
97
  "description": "Showcase the early signal: pilots, design partners, waitlist, retention data, anything credible. Frame it honestly — investors at this stage discount inflation aggressively.",
98
98
  "instructions": "Showcase accomplishments",
99
99
  "slideType": "text",
100
- "layoutHint": "text-1x-left"
100
+ "layoutHint": "text-1x"
101
101
  },
102
102
  {
103
103
  "id": "investment-opportunity",
@@ -105,13 +105,13 @@
105
105
  "description": "Detail the round size, structure, and use of funds. Tie the raise to specific milestones it takes the company to. Specificity here signals operational maturity.",
106
106
  "instructions": "Detail funding needs",
107
107
  "slideType": "text",
108
- "layoutHint": "text-1x-left"
108
+ "layoutHint": "text-1x"
109
109
  },
110
110
  {
111
111
  "id": "closing-logo",
112
112
  "name": "Closing Logo",
113
113
  "description": "Close on the brand and contact info. Leave the room with the line you most want repeated when the partner pitches you to the rest of the firm.",
114
- "layoutHint": "title-left",
114
+ "layoutHint": "title",
115
115
  "instructions": "Leave a lasting impression",
116
116
  "slideType": "text"
117
117
  }