@openpresentation/opf 0.1.0 → 0.2.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 (499) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +146 -103
  3. package/dist/catalogs.d.ts +11 -1531
  4. package/dist/catalogs.js +5 -613
  5. package/dist/catalogs.js.map +1 -1
  6. package/dist/index.d.ts +3 -1
  7. package/dist/index.js +3831 -649
  8. package/dist/index.js.map +1 -1
  9. package/dist/previews.d.ts +40 -0
  10. package/dist/previews.js +447 -0
  11. package/dist/previews.js.map +1 -0
  12. package/dist/schemas.d.ts +105 -105
  13. package/dist/schemas.js +35 -35
  14. package/dist/schemas.js.map +1 -1
  15. package/dist/spec/catalogs/audiences/all-hands.json +23 -23
  16. package/dist/spec/catalogs/audiences/board.json +22 -22
  17. package/dist/spec/catalogs/audiences/candidates.json +23 -23
  18. package/dist/spec/catalogs/audiences/customers.json +23 -23
  19. package/dist/spec/catalogs/audiences/engineering-team.json +23 -23
  20. package/dist/spec/catalogs/audiences/executives.json +23 -23
  21. package/dist/spec/catalogs/audiences/index.json +67 -67
  22. package/dist/spec/catalogs/audiences/investors.json +23 -23
  23. package/dist/spec/catalogs/audiences/marketing-team.json +23 -23
  24. package/dist/spec/catalogs/audiences/regulators.json +23 -23
  25. package/dist/spec/catalogs/audiences/sales-team.json +23 -23
  26. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +86 -90
  27. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +98 -102
  28. package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +74 -78
  29. package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +86 -90
  30. package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +98 -102
  31. package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +74 -78
  32. package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +95 -99
  33. package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +96 -100
  34. package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +118 -122
  35. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +79 -83
  36. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +95 -99
  37. package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +85 -89
  38. package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +103 -107
  39. package/dist/spec/catalogs/chart-types/area.json +73 -77
  40. package/dist/spec/catalogs/chart-types/australia.json +66 -70
  41. package/dist/spec/catalogs/chart-types/bar.json +63 -67
  42. package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +126 -130
  43. package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +158 -162
  44. package/dist/spec/catalogs/chart-types/box-and-whisker.json +94 -98
  45. package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +84 -88
  46. package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +96 -100
  47. package/dist/spec/catalogs/chart-types/bullet-bar.json +72 -76
  48. package/dist/spec/catalogs/chart-types/bullet-column-2x.json +84 -88
  49. package/dist/spec/catalogs/chart-types/bullet-column-3x.json +96 -100
  50. package/dist/spec/catalogs/chart-types/bullet-column.json +72 -76
  51. package/dist/spec/catalogs/chart-types/canada.json +76 -80
  52. package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +79 -83
  53. package/dist/spec/catalogs/chart-types/clustered-column.json +85 -89
  54. package/dist/spec/catalogs/chart-types/column.json +67 -71
  55. package/dist/spec/catalogs/chart-types/dot-plot-2x.json +94 -98
  56. package/dist/spec/catalogs/chart-types/dot-plot-3x.json +119 -123
  57. package/dist/spec/catalogs/chart-types/dot-plot-4x.json +144 -148
  58. package/dist/spec/catalogs/chart-types/dot-plot-5x.json +169 -173
  59. package/dist/spec/catalogs/chart-types/dot-plot-6x.json +194 -198
  60. package/dist/spec/catalogs/chart-types/dot-plot.json +69 -73
  61. package/dist/spec/catalogs/chart-types/doughnut.json +53 -57
  62. package/dist/spec/catalogs/chart-types/dumbbell.json +115 -119
  63. package/dist/spec/catalogs/chart-types/filled-radar.json +66 -70
  64. package/dist/spec/catalogs/chart-types/funnel.json +60 -64
  65. package/dist/spec/catalogs/chart-types/histogram.json +141 -145
  66. package/dist/spec/catalogs/chart-types/index.json +539 -843
  67. package/dist/spec/catalogs/chart-types/line-2x.json +95 -99
  68. package/dist/spec/catalogs/chart-types/line-3x.json +117 -121
  69. package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +139 -143
  70. package/dist/spec/catalogs/chart-types/line-with-high-low.json +139 -143
  71. package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +96 -100
  72. package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +118 -122
  73. package/dist/spec/catalogs/chart-types/line-with-markers.json +74 -78
  74. package/dist/spec/catalogs/chart-types/line.json +73 -77
  75. package/dist/spec/catalogs/chart-types/pareto.json +159 -163
  76. package/dist/spec/catalogs/chart-types/pie.json +53 -57
  77. package/dist/spec/catalogs/chart-types/radar-with-markers.json +66 -70
  78. package/dist/spec/catalogs/chart-types/radar.json +66 -70
  79. package/dist/spec/catalogs/chart-types/scatter.json +87 -91
  80. package/dist/spec/catalogs/chart-types/sparkline-2x.json +133 -137
  81. package/dist/spec/catalogs/chart-types/sparkline-3x.json +169 -173
  82. package/dist/spec/catalogs/chart-types/sparkline-4x.json +205 -209
  83. package/dist/spec/catalogs/chart-types/sparkline-5x.json +241 -245
  84. package/dist/spec/catalogs/chart-types/sparkline-6x.json +277 -281
  85. package/dist/spec/catalogs/chart-types/sparkline.json +97 -101
  86. package/dist/spec/catalogs/chart-types/stacked-area-2x.json +96 -100
  87. package/dist/spec/catalogs/chart-types/stacked-area-3x.json +118 -122
  88. package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +79 -83
  89. package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +95 -99
  90. package/dist/spec/catalogs/chart-types/stacked-column-2x.json +85 -89
  91. package/dist/spec/catalogs/chart-types/stacked-column-3x.json +103 -107
  92. package/dist/spec/catalogs/chart-types/stacked-line-2x.json +96 -100
  93. package/dist/spec/catalogs/chart-types/stacked-line-3x.json +118 -122
  94. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +97 -101
  95. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +119 -123
  96. package/dist/spec/catalogs/chart-types/treemap-2x.json +91 -95
  97. package/dist/spec/catalogs/chart-types/treemap-3x.json +112 -116
  98. package/dist/spec/catalogs/chart-types/treemap.json +62 -66
  99. package/dist/spec/catalogs/chart-types/{united-kindom.json → united-kingdom.json} +58 -62
  100. package/dist/spec/catalogs/chart-types/united-states.json +72 -76
  101. package/dist/spec/catalogs/chart-types/waterfall.json +66 -70
  102. package/dist/spec/catalogs/chart-types/world.json +78 -82
  103. package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -17
  104. package/dist/spec/catalogs/color-schemes/bold-red.json +17 -17
  105. package/dist/spec/catalogs/color-schemes/boost.json +17 -17
  106. package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -17
  107. package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -17
  108. package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -17
  109. package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -17
  110. package/dist/spec/catalogs/color-schemes/forest-green.json +17 -17
  111. package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -17
  112. package/dist/spec/catalogs/color-schemes/index.json +77 -77
  113. package/dist/spec/catalogs/color-schemes/luxury.json +17 -17
  114. package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -17
  115. package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -17
  116. package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -17
  117. package/dist/spec/catalogs/color-schemes/vibes.json +17 -17
  118. package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -14
  119. package/dist/spec/catalogs/font-schemes/aparajita.json +15 -15
  120. package/dist/spec/catalogs/font-schemes/aptos.json +12 -12
  121. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -14
  122. package/dist/spec/catalogs/font-schemes/arial.json +12 -12
  123. package/dist/spec/catalogs/font-schemes/batang.json +14 -14
  124. package/dist/spec/catalogs/font-schemes/bookman.json +12 -12
  125. package/dist/spec/catalogs/font-schemes/calibri.json +12 -12
  126. package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -12
  127. package/dist/spec/catalogs/font-schemes/consolas.json +12 -12
  128. package/dist/spec/catalogs/font-schemes/constantia.json +12 -12
  129. package/dist/spec/catalogs/font-schemes/courier-new.json +12 -12
  130. package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -14
  131. package/dist/spec/catalogs/font-schemes/david.json +14 -14
  132. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -14
  133. package/dist/spec/catalogs/font-schemes/fangsong.json +14 -14
  134. package/dist/spec/catalogs/font-schemes/garamond.json +12 -12
  135. package/dist/spec/catalogs/font-schemes/gautami.json +14 -14
  136. package/dist/spec/catalogs/font-schemes/georgia.json +12 -12
  137. package/dist/spec/catalogs/font-schemes/gisha.json +15 -15
  138. package/dist/spec/catalogs/font-schemes/grandview.json +12 -12
  139. package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -14
  140. package/dist/spec/catalogs/font-schemes/impact.json +12 -12
  141. package/dist/spec/catalogs/font-schemes/index.json +452 -452
  142. package/dist/spec/catalogs/font-schemes/kalinga.json +14 -14
  143. package/dist/spec/catalogs/font-schemes/kartika.json +14 -14
  144. package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -14
  145. package/dist/spec/catalogs/font-schemes/latha.json +14 -14
  146. package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -12
  147. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -14
  148. package/dist/spec/catalogs/font-schemes/mangal.json +17 -17
  149. package/dist/spec/catalogs/font-schemes/meiryo.json +14 -14
  150. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -14
  151. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -17
  152. package/dist/spec/catalogs/font-schemes/mingliu.json +14 -14
  153. package/dist/spec/catalogs/font-schemes/miriam.json +14 -14
  154. package/dist/spec/catalogs/font-schemes/montserrat.json +12 -12
  155. package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -14
  156. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -14
  157. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -14
  158. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -15
  159. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -16
  160. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -14
  161. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -15
  162. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -15
  163. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -14
  164. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -14
  165. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -14
  166. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -14
  167. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -14
  168. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -14
  169. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -14
  170. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -14
  171. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -14
  172. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -14
  173. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -14
  174. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -14
  175. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -17
  176. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -14
  177. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -14
  178. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -14
  179. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -14
  180. package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -17
  181. package/dist/spec/catalogs/font-schemes/nyala.json +14 -14
  182. package/dist/spec/catalogs/font-schemes/open-sans.json +12 -12
  183. package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -14
  184. package/dist/spec/catalogs/font-schemes/poppins.json +12 -12
  185. package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -12
  186. package/dist/spec/catalogs/font-schemes/raavi.json +14 -14
  187. package/dist/spec/catalogs/font-schemes/raleway.json +12 -12
  188. package/dist/spec/catalogs/font-schemes/roboto.json +12 -12
  189. package/dist/spec/catalogs/font-schemes/rockwell.json +12 -12
  190. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -16
  191. package/dist/spec/catalogs/font-schemes/seaford.json +12 -12
  192. package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -12
  193. package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -12
  194. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -15
  195. package/dist/spec/catalogs/font-schemes/shruti.json +14 -14
  196. package/dist/spec/catalogs/font-schemes/simsun.json +14 -14
  197. package/dist/spec/catalogs/font-schemes/skeena.json +12 -12
  198. package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -15
  199. package/dist/spec/catalogs/font-schemes/tahoma.json +12 -12
  200. package/dist/spec/catalogs/font-schemes/tenorite.json +12 -12
  201. package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -12
  202. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -16
  203. package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -12
  204. package/dist/spec/catalogs/font-schemes/tunga.json +14 -14
  205. package/dist/spec/catalogs/font-schemes/verdana.json +12 -12
  206. package/dist/spec/catalogs/font-schemes/vrinda.json +14 -14
  207. package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -14
  208. package/dist/spec/catalogs/languages/afrikaans.json +9 -9
  209. package/dist/spec/catalogs/languages/albanian.json +9 -9
  210. package/dist/spec/catalogs/languages/amharic.json +9 -9
  211. package/dist/spec/catalogs/languages/arabic.json +9 -9
  212. package/dist/spec/catalogs/languages/armenian.json +9 -9
  213. package/dist/spec/catalogs/languages/aymara.json +9 -9
  214. package/dist/spec/catalogs/languages/azerbaijani.json +9 -9
  215. package/dist/spec/catalogs/languages/bengali.json +9 -9
  216. package/dist/spec/catalogs/languages/berber-latin.json +9 -9
  217. package/dist/spec/catalogs/languages/bosnian-latin.json +9 -9
  218. package/dist/spec/catalogs/languages/bulgarian.json +9 -9
  219. package/dist/spec/catalogs/languages/catalan.json +9 -9
  220. package/dist/spec/catalogs/languages/cebuano.json +9 -9
  221. package/dist/spec/catalogs/languages/chinese-simplified.json +9 -9
  222. package/dist/spec/catalogs/languages/chinese-traditional.json +9 -9
  223. package/dist/spec/catalogs/languages/chittagonian.json +9 -9
  224. package/dist/spec/catalogs/languages/croatian.json +9 -9
  225. package/dist/spec/catalogs/languages/czech.json +9 -9
  226. package/dist/spec/catalogs/languages/danish.json +9 -9
  227. package/dist/spec/catalogs/languages/dutch.json +9 -9
  228. package/dist/spec/catalogs/languages/english-au.json +9 -9
  229. package/dist/spec/catalogs/languages/english-ca.json +9 -9
  230. package/dist/spec/catalogs/languages/english-gb.json +9 -9
  231. package/dist/spec/catalogs/languages/english-in.json +9 -9
  232. package/dist/spec/catalogs/languages/english-us.json +9 -9
  233. package/dist/spec/catalogs/languages/english.json +9 -9
  234. package/dist/spec/catalogs/languages/estonian.json +9 -9
  235. package/dist/spec/catalogs/languages/filipino.json +9 -9
  236. package/dist/spec/catalogs/languages/finnish.json +9 -9
  237. package/dist/spec/catalogs/languages/french.json +9 -9
  238. package/dist/spec/catalogs/languages/fulfulde.json +9 -9
  239. package/dist/spec/catalogs/languages/galician.json +9 -9
  240. package/dist/spec/catalogs/languages/georgian.json +9 -9
  241. package/dist/spec/catalogs/languages/german.json +9 -9
  242. package/dist/spec/catalogs/languages/greek.json +9 -9
  243. package/dist/spec/catalogs/languages/gujarati.json +9 -9
  244. package/dist/spec/catalogs/languages/hausa.json +9 -9
  245. package/dist/spec/catalogs/languages/hebrew.json +9 -9
  246. package/dist/spec/catalogs/languages/hindi.json +9 -9
  247. package/dist/spec/catalogs/languages/hungarian.json +9 -9
  248. package/dist/spec/catalogs/languages/igbo.json +9 -9
  249. package/dist/spec/catalogs/languages/index.json +565 -565
  250. package/dist/spec/catalogs/languages/indonesian.json +9 -9
  251. package/dist/spec/catalogs/languages/italian.json +9 -9
  252. package/dist/spec/catalogs/languages/japanese.json +9 -9
  253. package/dist/spec/catalogs/languages/kannada.json +9 -9
  254. package/dist/spec/catalogs/languages/kazakh.json +9 -9
  255. package/dist/spec/catalogs/languages/khmer.json +9 -9
  256. package/dist/spec/catalogs/languages/kinyarwanda.json +9 -9
  257. package/dist/spec/catalogs/languages/korean.json +9 -9
  258. package/dist/spec/catalogs/languages/kurmanji.json +9 -9
  259. package/dist/spec/catalogs/languages/latvian.json +9 -9
  260. package/dist/spec/catalogs/languages/lithuanian.json +9 -9
  261. package/dist/spec/catalogs/languages/macedonian.json +9 -9
  262. package/dist/spec/catalogs/languages/malagasy.json +9 -9
  263. package/dist/spec/catalogs/languages/malay.json +9 -9
  264. package/dist/spec/catalogs/languages/malayalam.json +9 -9
  265. package/dist/spec/catalogs/languages/maori.json +9 -9
  266. package/dist/spec/catalogs/languages/marathi.json +9 -9
  267. package/dist/spec/catalogs/languages/mongolian.json +9 -9
  268. package/dist/spec/catalogs/languages/nepali.json +9 -9
  269. package/dist/spec/catalogs/languages/norwegian.json +9 -9
  270. package/dist/spec/catalogs/languages/odia.json +9 -9
  271. package/dist/spec/catalogs/languages/oromo.json +9 -9
  272. package/dist/spec/catalogs/languages/pashto.json +9 -9
  273. package/dist/spec/catalogs/languages/persian.json +9 -9
  274. package/dist/spec/catalogs/languages/polish.json +9 -9
  275. package/dist/spec/catalogs/languages/portuguese.json +9 -9
  276. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -9
  277. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -9
  278. package/dist/spec/catalogs/languages/romanian.json +9 -9
  279. package/dist/spec/catalogs/languages/russian.json +9 -9
  280. package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -9
  281. package/dist/spec/catalogs/languages/serbian-latin.json +9 -9
  282. package/dist/spec/catalogs/languages/shona.json +9 -9
  283. package/dist/spec/catalogs/languages/slovak.json +9 -9
  284. package/dist/spec/catalogs/languages/slovenian.json +9 -9
  285. package/dist/spec/catalogs/languages/somali.json +9 -9
  286. package/dist/spec/catalogs/languages/spanish.json +9 -9
  287. package/dist/spec/catalogs/languages/swahili.json +9 -9
  288. package/dist/spec/catalogs/languages/swedish.json +9 -9
  289. package/dist/spec/catalogs/languages/tagalog.json +9 -9
  290. package/dist/spec/catalogs/languages/tajik.json +9 -9
  291. package/dist/spec/catalogs/languages/tamil.json +9 -9
  292. package/dist/spec/catalogs/languages/telugu.json +9 -9
  293. package/dist/spec/catalogs/languages/thai.json +9 -9
  294. package/dist/spec/catalogs/languages/turkish.json +9 -9
  295. package/dist/spec/catalogs/languages/ukrainian.json +9 -9
  296. package/dist/spec/catalogs/languages/urdu.json +9 -9
  297. package/dist/spec/catalogs/languages/uzbek-latin.json +9 -9
  298. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -9
  299. package/dist/spec/catalogs/languages/xhosa.json +9 -9
  300. package/dist/spec/catalogs/languages/yoruba.json +9 -9
  301. package/dist/spec/catalogs/languages/zulu.json +9 -9
  302. package/dist/spec/catalogs/layouts/blank.json +6 -6
  303. package/dist/spec/catalogs/layouts/chart-1x.json +16 -16
  304. package/dist/spec/catalogs/layouts/chart-2x.json +22 -22
  305. package/dist/spec/catalogs/layouts/chart-3x.json +28 -28
  306. package/dist/spec/catalogs/layouts/code-1x.json +16 -16
  307. package/dist/spec/catalogs/layouts/extract/canonical.json +487 -487
  308. package/dist/spec/catalogs/layouts/image-1x.json +16 -16
  309. package/dist/spec/catalogs/layouts/image-2x.json +22 -22
  310. package/dist/spec/catalogs/layouts/image-3x.json +28 -28
  311. package/dist/spec/catalogs/layouts/image-bleed.json +10 -10
  312. package/dist/spec/catalogs/layouts/index.json +147 -147
  313. package/dist/spec/catalogs/layouts/list-1x.json +13 -13
  314. package/dist/spec/catalogs/layouts/list-2x.json +16 -16
  315. package/dist/spec/catalogs/layouts/list-3x.json +19 -19
  316. package/dist/spec/catalogs/layouts/list-4x.json +22 -22
  317. package/dist/spec/catalogs/layouts/list-5x.json +25 -25
  318. package/dist/spec/catalogs/layouts/list-6x.json +28 -28
  319. package/dist/spec/catalogs/layouts/media-1x.json +16 -16
  320. package/dist/spec/catalogs/layouts/number-1x.json +13 -13
  321. package/dist/spec/catalogs/layouts/number-2x.json +16 -16
  322. package/dist/spec/catalogs/layouts/number-3x.json +19 -19
  323. package/dist/spec/catalogs/layouts/number-4x.json +22 -22
  324. package/dist/spec/catalogs/layouts/number-5x.json +25 -25
  325. package/dist/spec/catalogs/layouts/number-6x.json +28 -28
  326. package/dist/spec/catalogs/layouts/table-1x.json +16 -16
  327. package/dist/spec/catalogs/layouts/text-1x.json +13 -13
  328. package/dist/spec/catalogs/layouts/text-2x.json +16 -16
  329. package/dist/spec/catalogs/layouts/text-3x.json +19 -19
  330. package/dist/spec/catalogs/layouts/title-subtitle.json +13 -13
  331. package/dist/spec/catalogs/layouts/title.json +10 -10
  332. package/dist/spec/catalogs/narratives/board-meeting.json +192 -192
  333. package/dist/spec/catalogs/narratives/business-narrative.json +87 -87
  334. package/dist/spec/catalogs/narratives/business-review.json +119 -119
  335. package/dist/spec/catalogs/narratives/capacity-planning.json +88 -88
  336. package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -80
  337. package/dist/spec/catalogs/narratives/classic-story.json +78 -78
  338. package/dist/spec/catalogs/narratives/company-intro.json +96 -96
  339. package/dist/spec/catalogs/narratives/conference-talk.json +54 -54
  340. package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -119
  341. package/dist/spec/catalogs/narratives/educate.json +95 -95
  342. package/dist/spec/catalogs/narratives/employee-review.json +87 -87
  343. package/dist/spec/catalogs/narratives/failure-analysis.json +104 -104
  344. package/dist/spec/catalogs/narratives/focus.json +120 -120
  345. package/dist/spec/catalogs/narratives/golden-circle.json +50 -50
  346. package/dist/spec/catalogs/narratives/index.json +358 -358
  347. package/dist/spec/catalogs/narratives/innovation.json +96 -96
  348. package/dist/spec/catalogs/narratives/justice.json +112 -112
  349. package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -111
  350. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -87
  351. package/dist/spec/catalogs/narratives/performance-review.json +111 -111
  352. package/dist/spec/catalogs/narratives/persuade.json +94 -94
  353. package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -87
  354. package/dist/spec/catalogs/narratives/pitch-deck.json +107 -107
  355. package/dist/spec/catalogs/narratives/problem-solution.json +61 -61
  356. package/dist/spec/catalogs/narratives/product-launch.json +104 -104
  357. package/dist/spec/catalogs/narratives/project-proposal.json +104 -104
  358. package/dist/spec/catalogs/narratives/qbr.json +85 -85
  359. package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -80
  360. package/dist/spec/catalogs/narratives/reveal.json +87 -87
  361. package/dist/spec/catalogs/narratives/scqa.json +55 -55
  362. package/dist/spec/catalogs/narratives/status-update.json +72 -72
  363. package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -85
  364. package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -61
  365. package/dist/spec/catalogs/narratives/survey-analysis.json +104 -104
  366. package/dist/spec/catalogs/narratives/survival-story.json +103 -103
  367. package/dist/spec/catalogs/narratives/transformation-arc.json +50 -50
  368. package/dist/spec/catalogs/narratives/trend-analysis.json +79 -79
  369. package/dist/spec/catalogs/narratives/underdog-victory.json +87 -87
  370. package/dist/spec/catalogs/narratives/venture-pitch.json +109 -109
  371. package/dist/spec/catalogs/narratives/weekly-progress.json +103 -103
  372. package/dist/spec/catalogs/purposes/align.json +16 -16
  373. package/dist/spec/catalogs/purposes/decide.json +16 -16
  374. package/dist/spec/catalogs/purposes/educate.json +16 -16
  375. package/dist/spec/catalogs/purposes/index.json +61 -61
  376. package/dist/spec/catalogs/purposes/inform.json +16 -16
  377. package/dist/spec/catalogs/purposes/persuade.json +16 -16
  378. package/dist/spec/catalogs/purposes/pitch.json +16 -16
  379. package/dist/spec/catalogs/purposes/plan.json +16 -16
  380. package/dist/spec/catalogs/purposes/report.json +16 -16
  381. package/dist/spec/catalogs/purposes/sell.json +16 -16
  382. package/dist/spec/catalogs/social-platforms/bluesky.json +14 -14
  383. package/dist/spec/catalogs/social-platforms/facebook.json +14 -14
  384. package/dist/spec/catalogs/social-platforms/github.json +15 -15
  385. package/dist/spec/catalogs/social-platforms/index.json +68 -68
  386. package/dist/spec/catalogs/social-platforms/instagram.json +13 -13
  387. package/dist/spec/catalogs/social-platforms/linkedin.json +15 -15
  388. package/dist/spec/catalogs/social-platforms/mastodon.json +14 -14
  389. package/dist/spec/catalogs/social-platforms/threads.json +13 -13
  390. package/dist/spec/catalogs/social-platforms/tiktok.json +14 -14
  391. package/dist/spec/catalogs/social-platforms/x.json +14 -14
  392. package/dist/spec/catalogs/social-platforms/youtube.json +14 -14
  393. package/dist/spec/catalogs/themes/bold.json +13 -13
  394. package/dist/spec/catalogs/themes/classic.json +13 -13
  395. package/dist/spec/catalogs/themes/dark.json +13 -13
  396. package/dist/spec/catalogs/themes/index.json +31 -31
  397. package/dist/spec/catalogs/themes/minimal.json +13 -13
  398. package/dist/spec/catalogs/tones/authoritative.json +31 -31
  399. package/dist/spec/catalogs/tones/casual.json +31 -31
  400. package/dist/spec/catalogs/tones/conversational.json +31 -31
  401. package/dist/spec/catalogs/tones/formal.json +31 -31
  402. package/dist/spec/catalogs/tones/index.json +49 -49
  403. package/dist/spec/catalogs/tones/inspirational.json +31 -31
  404. package/dist/spec/catalogs/tones/persuasive.json +32 -32
  405. package/dist/spec/catalogs/tones/technical.json +31 -31
  406. package/dist/spec/openapi.yaml +776 -776
  407. package/dist/spec/previews/layouts/action-plan.html +1 -0
  408. package/dist/spec/previews/layouts/agenda.html +1 -0
  409. package/dist/spec/previews/layouts/appendix-index.html +1 -0
  410. package/dist/spec/previews/layouts/architecture-stack.html +1 -0
  411. package/dist/spec/previews/layouts/assumptions-dependencies.html +1 -0
  412. package/dist/spec/previews/layouts/before-after.html +1 -0
  413. package/dist/spec/previews/layouts/benchmark-target-table.html +1 -0
  414. package/dist/spec/previews/layouts/bullet-list.html +1 -0
  415. package/dist/spec/previews/layouts/business-model-canvas.html +1 -0
  416. package/dist/spec/previews/layouts/capability-map.html +1 -0
  417. package/dist/spec/previews/layouts/case-study.html +1 -0
  418. package/dist/spec/previews/layouts/chapter-recap.html +1 -0
  419. package/dist/spec/previews/layouts/circular-lifecycle.html +1 -0
  420. package/dist/spec/previews/layouts/comparison.html +1 -0
  421. package/dist/spec/previews/layouts/competitive-landscape.html +1 -0
  422. package/dist/spec/previews/layouts/customer-journey.html +1 -0
  423. package/dist/spec/previews/layouts/customer-logos.html +1 -0
  424. package/dist/spec/previews/layouts/dashboard.html +1 -0
  425. package/dist/spec/previews/layouts/data-visualization.html +1 -0
  426. package/dist/spec/previews/layouts/decision-tree.html +1 -0
  427. package/dist/spec/previews/layouts/detailed-data-table.html +1 -0
  428. package/dist/spec/previews/layouts/ecosystem-map.html +1 -0
  429. package/dist/spec/previews/layouts/executive-decision.html +1 -0
  430. package/dist/spec/previews/layouts/executive-summary.html +1 -0
  431. package/dist/spec/previews/layouts/faq.html +1 -0
  432. package/dist/spec/previews/layouts/feature-comparison-matrix.html +1 -0
  433. package/dist/spec/previews/layouts/forecast-scenario.html +1 -0
  434. package/dist/spec/previews/layouts/funnel-pyramid.html +1 -0
  435. package/dist/spec/previews/layouts/gantt-project-plan.html +1 -0
  436. package/dist/spec/previews/layouts/geographic-map.html +1 -0
  437. package/dist/spec/previews/layouts/heatmap-cohort.html +1 -0
  438. package/dist/spec/previews/layouts/hub-and-spoke.html +1 -0
  439. package/dist/spec/previews/layouts/icon-grid.html +1 -0
  440. package/dist/spec/previews/layouts/image-focus.html +1 -0
  441. package/dist/spec/previews/layouts/index.json +357 -0
  442. package/dist/spec/previews/layouts/key-takeaway.html +1 -0
  443. package/dist/spec/previews/layouts/kpi-scorecard.html +1 -0
  444. package/dist/spec/previews/layouts/logic-tree.html +1 -0
  445. package/dist/spec/previews/layouts/market-size.html +1 -0
  446. package/dist/spec/previews/layouts/matrix-quadrant.html +1 -0
  447. package/dist/spec/previews/layouts/network-dependency-map.html +1 -0
  448. package/dist/spec/previews/layouts/one-column-explainer.html +1 -0
  449. package/dist/spec/previews/layouts/org-chart.html +1 -0
  450. package/dist/spec/previews/layouts/persona-grid.html +1 -0
  451. package/dist/spec/previews/layouts/photo-grid.html +1 -0
  452. package/dist/spec/previews/layouts/pricing-table.html +1 -0
  453. package/dist/spec/previews/layouts/process-flow.html +1 -0
  454. package/dist/spec/previews/layouts/product-feature.html +1 -0
  455. package/dist/spec/previews/layouts/pros-cons.html +1 -0
  456. package/dist/spec/previews/layouts/qa-discussion.html +1 -0
  457. package/dist/spec/previews/layouts/quote-highlight.html +1 -0
  458. package/dist/spec/previews/layouts/raci-matrix.html +1 -0
  459. package/dist/spec/previews/layouts/risk-heatmap.html +1 -0
  460. package/dist/spec/previews/layouts/roadmap.html +1 -0
  461. package/dist/spec/previews/layouts/screenshot-walkthrough.html +1 -0
  462. package/dist/spec/previews/layouts/section-divider.html +1 -0
  463. package/dist/spec/previews/layouts/single-message-statement.html +1 -0
  464. package/dist/spec/previews/layouts/stats-metrics.html +1 -0
  465. package/dist/spec/previews/layouts/status-rag.html +1 -0
  466. package/dist/spec/previews/layouts/swimlane-process.html +1 -0
  467. package/dist/spec/previews/layouts/swot-analysis.html +1 -0
  468. package/dist/spec/previews/layouts/team-bio.html +1 -0
  469. package/dist/spec/previews/layouts/testimonial-grid.html +1 -0
  470. package/dist/spec/previews/layouts/thank-you-cta.html +1 -0
  471. package/dist/spec/previews/layouts/three-column.html +1 -0
  472. package/dist/spec/previews/layouts/timeline.html +1 -0
  473. package/dist/spec/previews/layouts/title-slide.html +1 -0
  474. package/dist/spec/previews/layouts/two-column.html +1 -0
  475. package/dist/spec/previews/layouts/venn-overlap.html +1 -0
  476. package/dist/spec/previews/layouts/waterfall-bridge.html +1 -0
  477. package/dist/spec/previews/layouts/wheel-radial.html +1 -0
  478. package/dist/spec/reference/engine-defaults.json +35 -35
  479. package/dist/spec/schemas/audience.schema.json +156 -156
  480. package/dist/spec/schemas/chart-type.schema.json +537 -537
  481. package/dist/spec/schemas/color-scheme.schema.json +200 -200
  482. package/dist/spec/schemas/font-scheme.schema.json +174 -174
  483. package/dist/spec/schemas/language.schema.json +158 -158
  484. package/dist/spec/schemas/layout.schema.json +280 -280
  485. package/dist/spec/schemas/narrative.schema.json +207 -207
  486. package/dist/spec/schemas/opf.schema.json +2536 -2537
  487. package/dist/spec/schemas/purpose.schema.json +92 -92
  488. package/dist/spec/schemas/social-platform.schema.json +183 -184
  489. package/dist/spec/schemas/theme.schema.json +168 -168
  490. package/dist/spec/schemas/tone.schema.json +146 -146
  491. package/dist/spec-files.d.ts +2388 -0
  492. package/dist/spec-files.js +3349 -0
  493. package/dist/spec-files.js.map +1 -0
  494. package/dist/types.d.ts +5 -5
  495. package/dist/{validator-Be5EzqAt.d.ts → validator-D7WwzKyx.d.ts} +16 -16
  496. package/dist/validator.d.ts +1 -1
  497. package/dist/validator.js +35 -35
  498. package/dist/validator.js.map +1 -1
  499. package/package.json +91 -80
@@ -1,85 +1,85 @@
1
- {
2
- "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
- "id": "strategic-advisory",
4
- "name": "Strategic Advisory",
5
- "summary": "Consulting-style advisory deck applying Minto's pyramid: title, situation/complication/question, the answer in one sentence, and three argued points with a process. Use when the audience expects a recommendation and the case for it, in that order.",
6
- "audienceFit": [
7
- "executives",
8
- "boards",
9
- "leadership-teams",
10
- "clients"
11
- ],
12
- "durationRange": {
13
- "minMinutes": 15,
14
- "maxMinutes": 45
15
- },
16
- "tags": [
17
- "consulting",
18
- "advisory",
19
- "strategy",
20
- "minto"
21
- ],
22
- "beats": [
23
- {
24
- "id": "title",
25
- "name": "Title",
26
- "description": "Open with a one-line summary statement that captures the recommendation, not the topic. The title slide is the headline of the entire engagement — make it specific enough that someone reading only this slide already understands the position.",
27
- "layoutHint": "title-left",
28
- "instructions": "Brief summary sentence",
29
- "slideType": "text"
30
- },
31
- {
32
- "id": "scq",
33
- "name": "Situation, Complication, Question",
34
- "description": "Frame the engagement on a single slide: the relevant status quo, what needs to change, and the question that needs to be resolved. This is the SCQ shorthand — context, tension, prompt. Don't yet answer."
35
- },
36
- {
37
- "id": "answer",
38
- "name": "Answer",
39
- "description": "Deliver the recommendation in a single sentence. No arguments yet, no caveats. The answer is the apex of the pyramid; the rest of the deck supports it.",
40
- "instructions": "A solution in one sentence, no arguments yet",
41
- "slideType": "text",
42
- "layoutHint": "text-1x-left"
43
- },
44
- {
45
- "id": "arguments",
46
- "name": "Arguments",
47
- "description": "Preview the three top-level arguments that defend the answer. One slide naming all three so the audience knows where the deck is going. Each argument should be a complete claim, not a topic.",
48
- "instructions": "Support the solution",
49
- "slideType": "text",
50
- "layoutHint": "text-1x-left"
51
- },
52
- {
53
- "id": "argument-1",
54
- "name": "Argument 1",
55
- "description": "Develop the first argument with supporting data, examples, and reasoning. Lead with the claim, then the evidence — Minto-style. The slide should stand alone if pulled out.",
56
- "instructions": "First key point",
57
- "slideType": "text",
58
- "layoutHint": "text-1x-left"
59
- },
60
- {
61
- "id": "argument-2",
62
- "name": "Argument 2",
63
- "description": "Develop the second argument the same way. Vary the type of evidence — quantitative, qualitative, comparative — so the audience hears the case from multiple angles.",
64
- "instructions": "Second key point",
65
- "slideType": "text",
66
- "layoutHint": "text-1x-left"
67
- },
68
- {
69
- "id": "argument-3",
70
- "name": "Argument 3",
71
- "description": "Develop the third argument and walk through the supporting process or methodology. This is often where the 'how' lives — the implementation insight that makes the recommendation feel actionable.",
72
- "instructions": "Third key point with a process",
73
- "slideType": "text",
74
- "layoutHint": "text-1x-left"
75
- },
76
- {
77
- "id": "summary",
78
- "name": "Summary",
79
- "description": "Recap the answer and arguments in a single slide and point to additional resources. Close with the explicit next step you want the audience to take.",
80
- "layoutHint": "title-left",
81
- "instructions": "Recap the answer, provide additional resources",
82
- "slideType": "text"
83
- }
84
- ]
85
- }
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "strategic-advisory",
4
+ "name": "Strategic Advisory",
5
+ "summary": "Consulting-style advisory deck applying Minto's pyramid: title, situation/complication/question, the answer in one sentence, and three argued points with a process. Use when the audience expects a recommendation and the case for it, in that order.",
6
+ "audienceFit": [
7
+ "executives",
8
+ "boards",
9
+ "leadership-teams",
10
+ "clients"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 15,
14
+ "maxMinutes": 45
15
+ },
16
+ "tags": [
17
+ "consulting",
18
+ "advisory",
19
+ "strategy",
20
+ "minto"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "title",
25
+ "name": "Title",
26
+ "description": "Open with a one-line summary statement that captures the recommendation, not the topic. The title slide is the headline of the entire engagement — make it specific enough that someone reading only this slide already understands the position.",
27
+ "layoutHint": "title-left",
28
+ "instructions": "Brief summary sentence",
29
+ "slideType": "text"
30
+ },
31
+ {
32
+ "id": "scq",
33
+ "name": "Situation, Complication, Question",
34
+ "description": "Frame the engagement on a single slide: the relevant status quo, what needs to change, and the question that needs to be resolved. This is the SCQ shorthand — context, tension, prompt. Don't yet answer."
35
+ },
36
+ {
37
+ "id": "answer",
38
+ "name": "Answer",
39
+ "description": "Deliver the recommendation in a single sentence. No arguments yet, no caveats. The answer is the apex of the pyramid; the rest of the deck supports it.",
40
+ "instructions": "A solution in one sentence, no arguments yet",
41
+ "slideType": "text",
42
+ "layoutHint": "text-1x-left"
43
+ },
44
+ {
45
+ "id": "arguments",
46
+ "name": "Arguments",
47
+ "description": "Preview the three top-level arguments that defend the answer. One slide naming all three so the audience knows where the deck is going. Each argument should be a complete claim, not a topic.",
48
+ "instructions": "Support the solution",
49
+ "slideType": "text",
50
+ "layoutHint": "text-1x-left"
51
+ },
52
+ {
53
+ "id": "argument-1",
54
+ "name": "Argument 1",
55
+ "description": "Develop the first argument with supporting data, examples, and reasoning. Lead with the claim, then the evidence — Minto-style. The slide should stand alone if pulled out.",
56
+ "instructions": "First key point",
57
+ "slideType": "text",
58
+ "layoutHint": "text-1x-left"
59
+ },
60
+ {
61
+ "id": "argument-2",
62
+ "name": "Argument 2",
63
+ "description": "Develop the second argument the same way. Vary the type of evidence — quantitative, qualitative, comparative — so the audience hears the case from multiple angles.",
64
+ "instructions": "Second key point",
65
+ "slideType": "text",
66
+ "layoutHint": "text-1x-left"
67
+ },
68
+ {
69
+ "id": "argument-3",
70
+ "name": "Argument 3",
71
+ "description": "Develop the third argument and walk through the supporting process or methodology. This is often where the 'how' lives — the implementation insight that makes the recommendation feel actionable.",
72
+ "instructions": "Third key point with a process",
73
+ "slideType": "text",
74
+ "layoutHint": "text-1x-left"
75
+ },
76
+ {
77
+ "id": "summary",
78
+ "name": "Summary",
79
+ "description": "Recap the answer and arguments in a single slide and point to additional resources. Close with the explicit next step you want the audience to take.",
80
+ "layoutHint": "title-left",
81
+ "instructions": "Recap the answer, provide additional resources",
82
+ "slideType": "text"
83
+ }
84
+ ]
85
+ }
@@ -1,61 +1,61 @@
1
- {
2
- "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
- "id": "strategic-narrative",
4
- "name": "Strategic Narrative",
5
- "summary": "The change-driven founder/sales arc: a tectonic shift creates winners and losers, the audience must respond, and your product is the only credible way to land in the winners' camp. Used for top-of-funnel sales pitches, board re-positioning, and high-stakes founder talks.",
6
- "audienceFit": [
7
- "customers",
8
- "prospects",
9
- "board",
10
- "investors",
11
- "executives"
12
- ],
13
- "durationRange": {
14
- "minMinutes": 10,
15
- "maxMinutes": 30
16
- },
17
- "tags": [
18
- "strategic",
19
- "sales",
20
- "positioning",
21
- "category"
22
- ],
23
- "beats": [
24
- {
25
- "id": "shift",
26
- "name": "The Shift",
27
- "description": "Open by naming a large, undeniable change in the world that the audience already half-believes. Technology, regulation, customer behavior, economics — pick the shift that recasts the audience's reality. The shift, not your product, is the protagonist of the first half of the deck."
28
- },
29
- {
30
- "id": "stakes",
31
- "name": "Winners and Losers",
32
- "description": "Make the consequences of the shift concrete. Who wins, who loses, by how much, on what timeframe. Use specific examples — companies, products, segments — that have already moved or are about to. The audience should feel that standing still is the riskiest choice."
33
- },
34
- {
35
- "id": "promised-land",
36
- "name": "Promised Land",
37
- "description": "Paint a vivid picture of the future state your audience could occupy if they navigate the shift well. Describe outcomes, not features. The promised land must feel desirable, achievable, and meaningfully different from where they are today."
38
- },
39
- {
40
- "id": "obstacles",
41
- "name": "Old Game",
42
- "description": "Show why the existing playbook can't get the audience to the promised land. Name the legacy approach honestly and credit what it once did, then explain why the shift has rendered it insufficient. Avoid strawmen — the more fairly you state the old game, the more credible your new game becomes."
43
- },
44
- {
45
- "id": "mechanism",
46
- "name": "New Game",
47
- "description": "Introduce your category-defining approach as the way to play the new game. Show the principles or capabilities that make it possible only now. Emphasize what's structurally different from the old game, not what's marginally better."
48
- },
49
- {
50
- "id": "evidence",
51
- "name": "Evidence",
52
- "description": "Prove the new game works. Customer outcomes, named logos, before/after data, third-party validation. Choose evidence that maps directly to the shift you opened with — proof that other audiences in the same boat made it to the promised land."
53
- },
54
- {
55
- "id": "ask",
56
- "name": "Call to Action",
57
- "description": "Close with the single decision you want the audience to make. Frame it as the obvious next move given the shift, the stakes, and the new game. Make it small enough to say yes to today and large enough to start a real engagement.",
58
- "layoutHint": "title-left"
59
- }
60
- ]
61
- }
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "strategic-narrative",
4
+ "name": "Strategic Narrative",
5
+ "summary": "The change-driven founder/sales arc: a tectonic shift creates winners and losers, the audience must respond, and your product is the only credible way to land in the winners' camp. Used for top-of-funnel sales pitches, board re-positioning, and high-stakes founder talks.",
6
+ "audienceFit": [
7
+ "customers",
8
+ "prospects",
9
+ "board",
10
+ "investors",
11
+ "executives"
12
+ ],
13
+ "durationRange": {
14
+ "minMinutes": 10,
15
+ "maxMinutes": 30
16
+ },
17
+ "tags": [
18
+ "strategic",
19
+ "sales",
20
+ "positioning",
21
+ "category"
22
+ ],
23
+ "beats": [
24
+ {
25
+ "id": "shift",
26
+ "name": "The Shift",
27
+ "description": "Open by naming a large, undeniable change in the world that the audience already half-believes. Technology, regulation, customer behavior, economics — pick the shift that recasts the audience's reality. The shift, not your product, is the protagonist of the first half of the deck."
28
+ },
29
+ {
30
+ "id": "stakes",
31
+ "name": "Winners and Losers",
32
+ "description": "Make the consequences of the shift concrete. Who wins, who loses, by how much, on what timeframe. Use specific examples — companies, products, segments — that have already moved or are about to. The audience should feel that standing still is the riskiest choice."
33
+ },
34
+ {
35
+ "id": "promised-land",
36
+ "name": "Promised Land",
37
+ "description": "Paint a vivid picture of the future state your audience could occupy if they navigate the shift well. Describe outcomes, not features. The promised land must feel desirable, achievable, and meaningfully different from where they are today."
38
+ },
39
+ {
40
+ "id": "obstacles",
41
+ "name": "Old Game",
42
+ "description": "Show why the existing playbook can't get the audience to the promised land. Name the legacy approach honestly and credit what it once did, then explain why the shift has rendered it insufficient. Avoid strawmen — the more fairly you state the old game, the more credible your new game becomes."
43
+ },
44
+ {
45
+ "id": "mechanism",
46
+ "name": "New Game",
47
+ "description": "Introduce your category-defining approach as the way to play the new game. Show the principles or capabilities that make it possible only now. Emphasize what's structurally different from the old game, not what's marginally better."
48
+ },
49
+ {
50
+ "id": "evidence",
51
+ "name": "Evidence",
52
+ "description": "Prove the new game works. Customer outcomes, named logos, before/after data, third-party validation. Choose evidence that maps directly to the shift you opened with — proof that other audiences in the same boat made it to the promised land."
53
+ },
54
+ {
55
+ "id": "ask",
56
+ "name": "Call to Action",
57
+ "description": "Close with the single decision you want the audience to make. Frame it as the obvious next move given the shift, the stakes, and the new game. Make it small enough to say yes to today and large enough to start a real engagement.",
58
+ "layoutHint": "title-left"
59
+ }
60
+ ]
61
+ }
@@ -1,104 +1,104 @@
1
- {
2
- "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
- "id": "survey-analysis",
4
- "name": "Survey Analysis",
5
- "summary": "Structured walk-through of survey results: topic, executive summary, methodology, findings, analysis, implications, recommendations. Built so a reader who only sees the second slide already knows the headline insight.",
6
- "audienceFit": [
7
- "executives",
8
- "researchers",
9
- "stakeholders",
10
- "marketing-teams"
11
- ],
12
- "durationRange": {
13
- "minMinutes": 20,
14
- "maxMinutes": 60
15
- },
16
- "tags": [
17
- "data-driven",
18
- "research",
19
- "insights",
20
- "voice-of-customer"
21
- ],
22
- "beats": [
23
- {
24
- "id": "introduction",
25
- "name": "Introduction",
26
- "description": "Open by naming the question the survey was meant to answer. Why this, why now, who commissioned it. Anchor the audience in the decision the survey is designed to inform.",
27
- "instructions": "Present survey topic",
28
- "slideType": "text",
29
- "layoutHint": "text-1x-left"
30
- },
31
- {
32
- "id": "executive-summary",
33
- "name": "Executive Summary",
34
- "description": "State the top three findings in plain language on a single slide. A reader who only sees this slide should still be able to make the right call. Avoid hedging — synthesis is the point.",
35
- "instructions": "Summarize key findings",
36
- "slideType": "text",
37
- "layoutHint": "text-1x-left"
38
- },
39
- {
40
- "id": "context",
41
- "name": "Context",
42
- "description": "Detail the situation behind the survey: prior knowledge, related research, the gap this work fills. Just enough to position the findings as new information rather than restated common sense.",
43
- "instructions": "Detail survey background",
44
- "slideType": "text",
45
- "layoutHint": "text-1x-left"
46
- },
47
- {
48
- "id": "data-methodology",
49
- "name": "Data & Methodology",
50
- "description": "Describe how the data was collected and from whom. Sample size, recruitment, instrument, timing. Be honest about limitations; methodological transparency is what gives the findings their weight.",
51
- "instructions": "Discuss sourcing and collection",
52
- "slideType": "text",
53
- "layoutHint": "text-1x-left"
54
- },
55
- {
56
- "id": "data-summary",
57
- "name": "Data Summary",
58
- "description": "Give the audience an overview of the dataset before drilling in. Demographics, response rates, distribution of key variables. Help them calibrate what 'most' and 'few' mean in this study.",
59
- "instructions": "Provide data overview",
60
- "slideType": "text",
61
- "layoutHint": "text-1x-left"
62
- },
63
- {
64
- "id": "findings",
65
- "name": "Findings",
66
- "description": "Present the key insights one at a time. Lead each finding with the claim, then the chart. Avoid burying the point under the visualization — captions should restate the insight in words.",
67
- "instructions": "Highlight key insights",
68
- "slideType": "text",
69
- "layoutHint": "text-1x-left"
70
- },
71
- {
72
- "id": "data-analysis",
73
- "name": "Data Analysis",
74
- "description": "Break down the data behind each finding: cross-tabs, segment splits, statistical confidence. This is the slide skeptics will scrutinize — make it scrutinizable.",
75
- "instructions": "Break down data",
76
- "slideType": "text",
77
- "layoutHint": "text-1x-left"
78
- },
79
- {
80
- "id": "implications",
81
- "name": "Implications",
82
- "description": "Translate findings into 'so what.' What changes for product, marketing, ops, the customer? Implications without consequences are interesting trivia, not research.",
83
- "instructions": "Discuss survey implications",
84
- "slideType": "text",
85
- "layoutHint": "text-1x-left"
86
- },
87
- {
88
- "id": "recommendations",
89
- "name": "Recommendations",
90
- "description": "Provide the actions that follow from the implications. Prioritize, attach owners, mark which require decisions. This is where research becomes useful.",
91
- "instructions": "Provide action plans",
92
- "slideType": "text",
93
- "layoutHint": "text-1x-left"
94
- },
95
- {
96
- "id": "conclusion",
97
- "name": "Conclusion",
98
- "description": "Recap the headline finding and the most important recommendation. End with the next step — a follow-on study, a workshop, a decision — so the work doesn't sit on a shelf.",
99
- "layoutHint": "title-left",
100
- "instructions": "Recap and finalize",
101
- "slideType": "text"
102
- }
103
- ]
104
- }
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "survey-analysis",
4
+ "name": "Survey Analysis",
5
+ "summary": "Structured walk-through of survey results: topic, executive summary, methodology, findings, analysis, implications, recommendations. Built so a reader who only sees the second slide already knows the headline insight.",
6
+ "audienceFit": [
7
+ "executives",
8
+ "researchers",
9
+ "stakeholders",
10
+ "marketing-teams"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 20,
14
+ "maxMinutes": 60
15
+ },
16
+ "tags": [
17
+ "data-driven",
18
+ "research",
19
+ "insights",
20
+ "voice-of-customer"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "introduction",
25
+ "name": "Introduction",
26
+ "description": "Open by naming the question the survey was meant to answer. Why this, why now, who commissioned it. Anchor the audience in the decision the survey is designed to inform.",
27
+ "instructions": "Present survey topic",
28
+ "slideType": "text",
29
+ "layoutHint": "text-1x-left"
30
+ },
31
+ {
32
+ "id": "executive-summary",
33
+ "name": "Executive Summary",
34
+ "description": "State the top three findings in plain language on a single slide. A reader who only sees this slide should still be able to make the right call. Avoid hedging — synthesis is the point.",
35
+ "instructions": "Summarize key findings",
36
+ "slideType": "text",
37
+ "layoutHint": "text-1x-left"
38
+ },
39
+ {
40
+ "id": "context",
41
+ "name": "Context",
42
+ "description": "Detail the situation behind the survey: prior knowledge, related research, the gap this work fills. Just enough to position the findings as new information rather than restated common sense.",
43
+ "instructions": "Detail survey background",
44
+ "slideType": "text",
45
+ "layoutHint": "text-1x-left"
46
+ },
47
+ {
48
+ "id": "data-methodology",
49
+ "name": "Data & Methodology",
50
+ "description": "Describe how the data was collected and from whom. Sample size, recruitment, instrument, timing. Be honest about limitations; methodological transparency is what gives the findings their weight.",
51
+ "instructions": "Discuss sourcing and collection",
52
+ "slideType": "text",
53
+ "layoutHint": "text-1x-left"
54
+ },
55
+ {
56
+ "id": "data-summary",
57
+ "name": "Data Summary",
58
+ "description": "Give the audience an overview of the dataset before drilling in. Demographics, response rates, distribution of key variables. Help them calibrate what 'most' and 'few' mean in this study.",
59
+ "instructions": "Provide data overview",
60
+ "slideType": "text",
61
+ "layoutHint": "text-1x-left"
62
+ },
63
+ {
64
+ "id": "findings",
65
+ "name": "Findings",
66
+ "description": "Present the key insights one at a time. Lead each finding with the claim, then the chart. Avoid burying the point under the visualization — captions should restate the insight in words.",
67
+ "instructions": "Highlight key insights",
68
+ "slideType": "text",
69
+ "layoutHint": "text-1x-left"
70
+ },
71
+ {
72
+ "id": "data-analysis",
73
+ "name": "Data Analysis",
74
+ "description": "Break down the data behind each finding: cross-tabs, segment splits, statistical confidence. This is the slide skeptics will scrutinize — make it scrutinizable.",
75
+ "instructions": "Break down data",
76
+ "slideType": "text",
77
+ "layoutHint": "text-1x-left"
78
+ },
79
+ {
80
+ "id": "implications",
81
+ "name": "Implications",
82
+ "description": "Translate findings into 'so what.' What changes for product, marketing, ops, the customer? Implications without consequences are interesting trivia, not research.",
83
+ "instructions": "Discuss survey implications",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "recommendations",
89
+ "name": "Recommendations",
90
+ "description": "Provide the actions that follow from the implications. Prioritize, attach owners, mark which require decisions. This is where research becomes useful.",
91
+ "instructions": "Provide action plans",
92
+ "slideType": "text",
93
+ "layoutHint": "text-1x-left"
94
+ },
95
+ {
96
+ "id": "conclusion",
97
+ "name": "Conclusion",
98
+ "description": "Recap the headline finding and the most important recommendation. End with the next step — a follow-on study, a workshop, a decision — so the work doesn't sit on a shelf.",
99
+ "layoutHint": "title-left",
100
+ "instructions": "Recap and finalize",
101
+ "slideType": "text"
102
+ }
103
+ ]
104
+ }