@openpresentation/opf 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/catalogs.d.ts +33933 -0
  4. package/dist/catalogs.js +19113 -0
  5. package/dist/catalogs.js.map +1 -0
  6. package/dist/index.d.ts +4 -0
  7. package/dist/index.js +25815 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/schemas.d.ts +12361 -0
  10. package/dist/schemas.js +6266 -0
  11. package/dist/schemas.js.map +1 -0
  12. package/dist/spec/catalogs/audiences/all-hands.json +23 -0
  13. package/dist/spec/catalogs/audiences/board.json +22 -0
  14. package/dist/spec/catalogs/audiences/candidates.json +23 -0
  15. package/dist/spec/catalogs/audiences/customers.json +23 -0
  16. package/dist/spec/catalogs/audiences/engineering-team.json +23 -0
  17. package/dist/spec/catalogs/audiences/executives.json +23 -0
  18. package/dist/spec/catalogs/audiences/index.json +67 -0
  19. package/dist/spec/catalogs/audiences/investors.json +23 -0
  20. package/dist/spec/catalogs/audiences/marketing-team.json +23 -0
  21. package/dist/spec/catalogs/audiences/regulators.json +23 -0
  22. package/dist/spec/catalogs/audiences/sales-team.json +23 -0
  23. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +90 -0
  24. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +102 -0
  25. package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +78 -0
  26. package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +90 -0
  27. package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +102 -0
  28. package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +78 -0
  29. package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +99 -0
  30. package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +100 -0
  31. package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +122 -0
  32. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +83 -0
  33. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +99 -0
  34. package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +89 -0
  35. package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +107 -0
  36. package/dist/spec/catalogs/chart-types/area.json +77 -0
  37. package/dist/spec/catalogs/chart-types/australia.json +70 -0
  38. package/dist/spec/catalogs/chart-types/bar.json +67 -0
  39. package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +130 -0
  40. package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +162 -0
  41. package/dist/spec/catalogs/chart-types/box-and-whisker.json +98 -0
  42. package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +88 -0
  43. package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +100 -0
  44. package/dist/spec/catalogs/chart-types/bullet-bar.json +76 -0
  45. package/dist/spec/catalogs/chart-types/bullet-column-2x.json +88 -0
  46. package/dist/spec/catalogs/chart-types/bullet-column-3x.json +100 -0
  47. package/dist/spec/catalogs/chart-types/bullet-column.json +76 -0
  48. package/dist/spec/catalogs/chart-types/canada.json +80 -0
  49. package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +83 -0
  50. package/dist/spec/catalogs/chart-types/clustered-column.json +89 -0
  51. package/dist/spec/catalogs/chart-types/column.json +71 -0
  52. package/dist/spec/catalogs/chart-types/dot-plot-2x.json +98 -0
  53. package/dist/spec/catalogs/chart-types/dot-plot-3x.json +123 -0
  54. package/dist/spec/catalogs/chart-types/dot-plot-4x.json +148 -0
  55. package/dist/spec/catalogs/chart-types/dot-plot-5x.json +173 -0
  56. package/dist/spec/catalogs/chart-types/dot-plot-6x.json +198 -0
  57. package/dist/spec/catalogs/chart-types/dot-plot.json +73 -0
  58. package/dist/spec/catalogs/chart-types/doughnut.json +57 -0
  59. package/dist/spec/catalogs/chart-types/dumbbell.json +119 -0
  60. package/dist/spec/catalogs/chart-types/filled-radar.json +70 -0
  61. package/dist/spec/catalogs/chart-types/funnel.json +64 -0
  62. package/dist/spec/catalogs/chart-types/histogram.json +145 -0
  63. package/dist/spec/catalogs/chart-types/index.json +843 -0
  64. package/dist/spec/catalogs/chart-types/line-2x.json +99 -0
  65. package/dist/spec/catalogs/chart-types/line-3x.json +121 -0
  66. package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +143 -0
  67. package/dist/spec/catalogs/chart-types/line-with-high-low.json +143 -0
  68. package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +100 -0
  69. package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +122 -0
  70. package/dist/spec/catalogs/chart-types/line-with-markers.json +78 -0
  71. package/dist/spec/catalogs/chart-types/line.json +77 -0
  72. package/dist/spec/catalogs/chart-types/pareto.json +163 -0
  73. package/dist/spec/catalogs/chart-types/pie.json +57 -0
  74. package/dist/spec/catalogs/chart-types/radar-with-markers.json +70 -0
  75. package/dist/spec/catalogs/chart-types/radar.json +70 -0
  76. package/dist/spec/catalogs/chart-types/scatter.json +91 -0
  77. package/dist/spec/catalogs/chart-types/sparkline-2x.json +137 -0
  78. package/dist/spec/catalogs/chart-types/sparkline-3x.json +173 -0
  79. package/dist/spec/catalogs/chart-types/sparkline-4x.json +209 -0
  80. package/dist/spec/catalogs/chart-types/sparkline-5x.json +245 -0
  81. package/dist/spec/catalogs/chart-types/sparkline-6x.json +281 -0
  82. package/dist/spec/catalogs/chart-types/sparkline.json +101 -0
  83. package/dist/spec/catalogs/chart-types/stacked-area-2x.json +100 -0
  84. package/dist/spec/catalogs/chart-types/stacked-area-3x.json +122 -0
  85. package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +83 -0
  86. package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +99 -0
  87. package/dist/spec/catalogs/chart-types/stacked-column-2x.json +89 -0
  88. package/dist/spec/catalogs/chart-types/stacked-column-3x.json +107 -0
  89. package/dist/spec/catalogs/chart-types/stacked-line-2x.json +100 -0
  90. package/dist/spec/catalogs/chart-types/stacked-line-3x.json +122 -0
  91. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +101 -0
  92. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +123 -0
  93. package/dist/spec/catalogs/chart-types/treemap-2x.json +95 -0
  94. package/dist/spec/catalogs/chart-types/treemap-3x.json +116 -0
  95. package/dist/spec/catalogs/chart-types/treemap.json +66 -0
  96. package/dist/spec/catalogs/chart-types/united-kindom.json +62 -0
  97. package/dist/spec/catalogs/chart-types/united-states.json +76 -0
  98. package/dist/spec/catalogs/chart-types/waterfall.json +70 -0
  99. package/dist/spec/catalogs/chart-types/world.json +82 -0
  100. package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -0
  101. package/dist/spec/catalogs/color-schemes/bold-red.json +17 -0
  102. package/dist/spec/catalogs/color-schemes/boost.json +17 -0
  103. package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -0
  104. package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -0
  105. package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -0
  106. package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -0
  107. package/dist/spec/catalogs/color-schemes/forest-green.json +17 -0
  108. package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -0
  109. package/dist/spec/catalogs/color-schemes/index.json +77 -0
  110. package/dist/spec/catalogs/color-schemes/luxury.json +17 -0
  111. package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -0
  112. package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -0
  113. package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -0
  114. package/dist/spec/catalogs/color-schemes/vibes.json +17 -0
  115. package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -0
  116. package/dist/spec/catalogs/font-schemes/aparajita.json +15 -0
  117. package/dist/spec/catalogs/font-schemes/aptos.json +12 -0
  118. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -0
  119. package/dist/spec/catalogs/font-schemes/arial.json +12 -0
  120. package/dist/spec/catalogs/font-schemes/batang.json +14 -0
  121. package/dist/spec/catalogs/font-schemes/bookman.json +12 -0
  122. package/dist/spec/catalogs/font-schemes/calibri.json +12 -0
  123. package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -0
  124. package/dist/spec/catalogs/font-schemes/consolas.json +12 -0
  125. package/dist/spec/catalogs/font-schemes/constantia.json +12 -0
  126. package/dist/spec/catalogs/font-schemes/courier-new.json +12 -0
  127. package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -0
  128. package/dist/spec/catalogs/font-schemes/david.json +14 -0
  129. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -0
  130. package/dist/spec/catalogs/font-schemes/fangsong.json +14 -0
  131. package/dist/spec/catalogs/font-schemes/garamond.json +12 -0
  132. package/dist/spec/catalogs/font-schemes/gautami.json +14 -0
  133. package/dist/spec/catalogs/font-schemes/georgia.json +12 -0
  134. package/dist/spec/catalogs/font-schemes/gisha.json +15 -0
  135. package/dist/spec/catalogs/font-schemes/grandview.json +12 -0
  136. package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -0
  137. package/dist/spec/catalogs/font-schemes/impact.json +12 -0
  138. package/dist/spec/catalogs/font-schemes/index.json +452 -0
  139. package/dist/spec/catalogs/font-schemes/kalinga.json +14 -0
  140. package/dist/spec/catalogs/font-schemes/kartika.json +14 -0
  141. package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -0
  142. package/dist/spec/catalogs/font-schemes/latha.json +14 -0
  143. package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -0
  144. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -0
  145. package/dist/spec/catalogs/font-schemes/mangal.json +17 -0
  146. package/dist/spec/catalogs/font-schemes/meiryo.json +14 -0
  147. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -0
  148. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -0
  149. package/dist/spec/catalogs/font-schemes/mingliu.json +14 -0
  150. package/dist/spec/catalogs/font-schemes/miriam.json +14 -0
  151. package/dist/spec/catalogs/font-schemes/montserrat.json +12 -0
  152. package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -0
  153. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -0
  154. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -0
  155. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -0
  156. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -0
  157. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -0
  158. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -0
  159. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -0
  160. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -0
  161. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -0
  162. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -0
  163. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -0
  164. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -0
  165. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -0
  166. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -0
  167. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -0
  168. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -0
  169. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -0
  170. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -0
  171. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -0
  172. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -0
  173. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -0
  174. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -0
  175. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -0
  176. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -0
  177. package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -0
  178. package/dist/spec/catalogs/font-schemes/nyala.json +14 -0
  179. package/dist/spec/catalogs/font-schemes/open-sans.json +12 -0
  180. package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -0
  181. package/dist/spec/catalogs/font-schemes/poppins.json +12 -0
  182. package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -0
  183. package/dist/spec/catalogs/font-schemes/raavi.json +14 -0
  184. package/dist/spec/catalogs/font-schemes/raleway.json +12 -0
  185. package/dist/spec/catalogs/font-schemes/roboto.json +12 -0
  186. package/dist/spec/catalogs/font-schemes/rockwell.json +12 -0
  187. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -0
  188. package/dist/spec/catalogs/font-schemes/seaford.json +12 -0
  189. package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -0
  190. package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -0
  191. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -0
  192. package/dist/spec/catalogs/font-schemes/shruti.json +14 -0
  193. package/dist/spec/catalogs/font-schemes/simsun.json +14 -0
  194. package/dist/spec/catalogs/font-schemes/skeena.json +12 -0
  195. package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -0
  196. package/dist/spec/catalogs/font-schemes/tahoma.json +12 -0
  197. package/dist/spec/catalogs/font-schemes/tenorite.json +12 -0
  198. package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -0
  199. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -0
  200. package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -0
  201. package/dist/spec/catalogs/font-schemes/tunga.json +14 -0
  202. package/dist/spec/catalogs/font-schemes/verdana.json +12 -0
  203. package/dist/spec/catalogs/font-schemes/vrinda.json +14 -0
  204. package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -0
  205. package/dist/spec/catalogs/languages/afrikaans.json +9 -0
  206. package/dist/spec/catalogs/languages/albanian.json +9 -0
  207. package/dist/spec/catalogs/languages/amharic.json +9 -0
  208. package/dist/spec/catalogs/languages/arabic.json +9 -0
  209. package/dist/spec/catalogs/languages/armenian.json +9 -0
  210. package/dist/spec/catalogs/languages/aymara.json +9 -0
  211. package/dist/spec/catalogs/languages/azerbaijani.json +9 -0
  212. package/dist/spec/catalogs/languages/bengali.json +9 -0
  213. package/dist/spec/catalogs/languages/berber-latin.json +9 -0
  214. package/dist/spec/catalogs/languages/bosnian-latin.json +9 -0
  215. package/dist/spec/catalogs/languages/bulgarian.json +9 -0
  216. package/dist/spec/catalogs/languages/catalan.json +9 -0
  217. package/dist/spec/catalogs/languages/cebuano.json +9 -0
  218. package/dist/spec/catalogs/languages/chinese-simplified.json +9 -0
  219. package/dist/spec/catalogs/languages/chinese-traditional.json +9 -0
  220. package/dist/spec/catalogs/languages/chittagonian.json +9 -0
  221. package/dist/spec/catalogs/languages/croatian.json +9 -0
  222. package/dist/spec/catalogs/languages/czech.json +9 -0
  223. package/dist/spec/catalogs/languages/danish.json +9 -0
  224. package/dist/spec/catalogs/languages/dutch.json +9 -0
  225. package/dist/spec/catalogs/languages/english-au.json +9 -0
  226. package/dist/spec/catalogs/languages/english-ca.json +9 -0
  227. package/dist/spec/catalogs/languages/english-gb.json +9 -0
  228. package/dist/spec/catalogs/languages/english-in.json +9 -0
  229. package/dist/spec/catalogs/languages/english-us.json +9 -0
  230. package/dist/spec/catalogs/languages/english.json +9 -0
  231. package/dist/spec/catalogs/languages/estonian.json +9 -0
  232. package/dist/spec/catalogs/languages/filipino.json +9 -0
  233. package/dist/spec/catalogs/languages/finnish.json +9 -0
  234. package/dist/spec/catalogs/languages/french.json +9 -0
  235. package/dist/spec/catalogs/languages/fulfulde.json +9 -0
  236. package/dist/spec/catalogs/languages/galician.json +9 -0
  237. package/dist/spec/catalogs/languages/georgian.json +9 -0
  238. package/dist/spec/catalogs/languages/german.json +9 -0
  239. package/dist/spec/catalogs/languages/greek.json +9 -0
  240. package/dist/spec/catalogs/languages/gujarati.json +9 -0
  241. package/dist/spec/catalogs/languages/hausa.json +9 -0
  242. package/dist/spec/catalogs/languages/hebrew.json +9 -0
  243. package/dist/spec/catalogs/languages/hindi.json +9 -0
  244. package/dist/spec/catalogs/languages/hungarian.json +9 -0
  245. package/dist/spec/catalogs/languages/igbo.json +9 -0
  246. package/dist/spec/catalogs/languages/index.json +565 -0
  247. package/dist/spec/catalogs/languages/indonesian.json +9 -0
  248. package/dist/spec/catalogs/languages/italian.json +9 -0
  249. package/dist/spec/catalogs/languages/japanese.json +9 -0
  250. package/dist/spec/catalogs/languages/kannada.json +9 -0
  251. package/dist/spec/catalogs/languages/kazakh.json +9 -0
  252. package/dist/spec/catalogs/languages/khmer.json +9 -0
  253. package/dist/spec/catalogs/languages/kinyarwanda.json +9 -0
  254. package/dist/spec/catalogs/languages/korean.json +9 -0
  255. package/dist/spec/catalogs/languages/kurmanji.json +9 -0
  256. package/dist/spec/catalogs/languages/latvian.json +9 -0
  257. package/dist/spec/catalogs/languages/lithuanian.json +9 -0
  258. package/dist/spec/catalogs/languages/macedonian.json +9 -0
  259. package/dist/spec/catalogs/languages/malagasy.json +9 -0
  260. package/dist/spec/catalogs/languages/malay.json +9 -0
  261. package/dist/spec/catalogs/languages/malayalam.json +9 -0
  262. package/dist/spec/catalogs/languages/maori.json +9 -0
  263. package/dist/spec/catalogs/languages/marathi.json +9 -0
  264. package/dist/spec/catalogs/languages/mongolian.json +9 -0
  265. package/dist/spec/catalogs/languages/nepali.json +9 -0
  266. package/dist/spec/catalogs/languages/norwegian.json +9 -0
  267. package/dist/spec/catalogs/languages/odia.json +9 -0
  268. package/dist/spec/catalogs/languages/oromo.json +9 -0
  269. package/dist/spec/catalogs/languages/pashto.json +9 -0
  270. package/dist/spec/catalogs/languages/persian.json +9 -0
  271. package/dist/spec/catalogs/languages/polish.json +9 -0
  272. package/dist/spec/catalogs/languages/portuguese.json +9 -0
  273. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -0
  274. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -0
  275. package/dist/spec/catalogs/languages/romanian.json +9 -0
  276. package/dist/spec/catalogs/languages/russian.json +9 -0
  277. package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -0
  278. package/dist/spec/catalogs/languages/serbian-latin.json +9 -0
  279. package/dist/spec/catalogs/languages/shona.json +9 -0
  280. package/dist/spec/catalogs/languages/slovak.json +9 -0
  281. package/dist/spec/catalogs/languages/slovenian.json +9 -0
  282. package/dist/spec/catalogs/languages/somali.json +9 -0
  283. package/dist/spec/catalogs/languages/spanish.json +9 -0
  284. package/dist/spec/catalogs/languages/swahili.json +9 -0
  285. package/dist/spec/catalogs/languages/swedish.json +9 -0
  286. package/dist/spec/catalogs/languages/tagalog.json +9 -0
  287. package/dist/spec/catalogs/languages/tajik.json +9 -0
  288. package/dist/spec/catalogs/languages/tamil.json +9 -0
  289. package/dist/spec/catalogs/languages/telugu.json +9 -0
  290. package/dist/spec/catalogs/languages/thai.json +9 -0
  291. package/dist/spec/catalogs/languages/turkish.json +9 -0
  292. package/dist/spec/catalogs/languages/ukrainian.json +9 -0
  293. package/dist/spec/catalogs/languages/urdu.json +9 -0
  294. package/dist/spec/catalogs/languages/uzbek-latin.json +9 -0
  295. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -0
  296. package/dist/spec/catalogs/languages/xhosa.json +9 -0
  297. package/dist/spec/catalogs/languages/yoruba.json +9 -0
  298. package/dist/spec/catalogs/languages/zulu.json +9 -0
  299. package/dist/spec/catalogs/layouts/blank.json +6 -0
  300. package/dist/spec/catalogs/layouts/chart-1x.json +16 -0
  301. package/dist/spec/catalogs/layouts/chart-2x.json +22 -0
  302. package/dist/spec/catalogs/layouts/chart-3x.json +28 -0
  303. package/dist/spec/catalogs/layouts/code-1x.json +16 -0
  304. package/dist/spec/catalogs/layouts/extract/canonical.json +487 -0
  305. package/dist/spec/catalogs/layouts/image-1x.json +16 -0
  306. package/dist/spec/catalogs/layouts/image-2x.json +22 -0
  307. package/dist/spec/catalogs/layouts/image-3x.json +28 -0
  308. package/dist/spec/catalogs/layouts/image-bleed.json +10 -0
  309. package/dist/spec/catalogs/layouts/index.json +147 -0
  310. package/dist/spec/catalogs/layouts/list-1x.json +13 -0
  311. package/dist/spec/catalogs/layouts/list-2x.json +16 -0
  312. package/dist/spec/catalogs/layouts/list-3x.json +19 -0
  313. package/dist/spec/catalogs/layouts/list-4x.json +22 -0
  314. package/dist/spec/catalogs/layouts/list-5x.json +25 -0
  315. package/dist/spec/catalogs/layouts/list-6x.json +28 -0
  316. package/dist/spec/catalogs/layouts/media-1x.json +16 -0
  317. package/dist/spec/catalogs/layouts/number-1x.json +13 -0
  318. package/dist/spec/catalogs/layouts/number-2x.json +16 -0
  319. package/dist/spec/catalogs/layouts/number-3x.json +19 -0
  320. package/dist/spec/catalogs/layouts/number-4x.json +22 -0
  321. package/dist/spec/catalogs/layouts/number-5x.json +25 -0
  322. package/dist/spec/catalogs/layouts/number-6x.json +28 -0
  323. package/dist/spec/catalogs/layouts/table-1x.json +16 -0
  324. package/dist/spec/catalogs/layouts/text-1x.json +13 -0
  325. package/dist/spec/catalogs/layouts/text-2x.json +16 -0
  326. package/dist/spec/catalogs/layouts/text-3x.json +19 -0
  327. package/dist/spec/catalogs/layouts/title-subtitle.json +13 -0
  328. package/dist/spec/catalogs/layouts/title.json +10 -0
  329. package/dist/spec/catalogs/narratives/board-meeting.json +192 -0
  330. package/dist/spec/catalogs/narratives/business-narrative.json +87 -0
  331. package/dist/spec/catalogs/narratives/business-review.json +119 -0
  332. package/dist/spec/catalogs/narratives/capacity-planning.json +88 -0
  333. package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -0
  334. package/dist/spec/catalogs/narratives/classic-story.json +78 -0
  335. package/dist/spec/catalogs/narratives/company-intro.json +96 -0
  336. package/dist/spec/catalogs/narratives/conference-talk.json +54 -0
  337. package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -0
  338. package/dist/spec/catalogs/narratives/educate.json +95 -0
  339. package/dist/spec/catalogs/narratives/employee-review.json +87 -0
  340. package/dist/spec/catalogs/narratives/failure-analysis.json +104 -0
  341. package/dist/spec/catalogs/narratives/focus.json +120 -0
  342. package/dist/spec/catalogs/narratives/golden-circle.json +50 -0
  343. package/dist/spec/catalogs/narratives/index.json +358 -0
  344. package/dist/spec/catalogs/narratives/innovation.json +96 -0
  345. package/dist/spec/catalogs/narratives/justice.json +112 -0
  346. package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -0
  347. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -0
  348. package/dist/spec/catalogs/narratives/performance-review.json +111 -0
  349. package/dist/spec/catalogs/narratives/persuade.json +94 -0
  350. package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -0
  351. package/dist/spec/catalogs/narratives/pitch-deck.json +107 -0
  352. package/dist/spec/catalogs/narratives/problem-solution.json +61 -0
  353. package/dist/spec/catalogs/narratives/product-launch.json +104 -0
  354. package/dist/spec/catalogs/narratives/project-proposal.json +104 -0
  355. package/dist/spec/catalogs/narratives/qbr.json +85 -0
  356. package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -0
  357. package/dist/spec/catalogs/narratives/reveal.json +87 -0
  358. package/dist/spec/catalogs/narratives/scqa.json +55 -0
  359. package/dist/spec/catalogs/narratives/status-update.json +72 -0
  360. package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -0
  361. package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -0
  362. package/dist/spec/catalogs/narratives/survey-analysis.json +104 -0
  363. package/dist/spec/catalogs/narratives/survival-story.json +103 -0
  364. package/dist/spec/catalogs/narratives/transformation-arc.json +50 -0
  365. package/dist/spec/catalogs/narratives/trend-analysis.json +79 -0
  366. package/dist/spec/catalogs/narratives/underdog-victory.json +87 -0
  367. package/dist/spec/catalogs/narratives/venture-pitch.json +109 -0
  368. package/dist/spec/catalogs/narratives/weekly-progress.json +103 -0
  369. package/dist/spec/catalogs/purposes/align.json +16 -0
  370. package/dist/spec/catalogs/purposes/decide.json +16 -0
  371. package/dist/spec/catalogs/purposes/educate.json +16 -0
  372. package/dist/spec/catalogs/purposes/index.json +61 -0
  373. package/dist/spec/catalogs/purposes/inform.json +16 -0
  374. package/dist/spec/catalogs/purposes/persuade.json +16 -0
  375. package/dist/spec/catalogs/purposes/pitch.json +16 -0
  376. package/dist/spec/catalogs/purposes/plan.json +16 -0
  377. package/dist/spec/catalogs/purposes/report.json +16 -0
  378. package/dist/spec/catalogs/purposes/sell.json +16 -0
  379. package/dist/spec/catalogs/social-platforms/bluesky.json +14 -0
  380. package/dist/spec/catalogs/social-platforms/facebook.json +14 -0
  381. package/dist/spec/catalogs/social-platforms/github.json +15 -0
  382. package/dist/spec/catalogs/social-platforms/index.json +68 -0
  383. package/dist/spec/catalogs/social-platforms/instagram.json +13 -0
  384. package/dist/spec/catalogs/social-platforms/linkedin.json +15 -0
  385. package/dist/spec/catalogs/social-platforms/mastodon.json +14 -0
  386. package/dist/spec/catalogs/social-platforms/threads.json +13 -0
  387. package/dist/spec/catalogs/social-platforms/tiktok.json +14 -0
  388. package/dist/spec/catalogs/social-platforms/x.json +14 -0
  389. package/dist/spec/catalogs/social-platforms/youtube.json +14 -0
  390. package/dist/spec/catalogs/themes/bold.json +13 -0
  391. package/dist/spec/catalogs/themes/classic.json +13 -0
  392. package/dist/spec/catalogs/themes/dark.json +13 -0
  393. package/dist/spec/catalogs/themes/index.json +31 -0
  394. package/dist/spec/catalogs/themes/minimal.json +13 -0
  395. package/dist/spec/catalogs/tones/authoritative.json +31 -0
  396. package/dist/spec/catalogs/tones/casual.json +31 -0
  397. package/dist/spec/catalogs/tones/conversational.json +31 -0
  398. package/dist/spec/catalogs/tones/formal.json +31 -0
  399. package/dist/spec/catalogs/tones/index.json +49 -0
  400. package/dist/spec/catalogs/tones/inspirational.json +31 -0
  401. package/dist/spec/catalogs/tones/persuasive.json +32 -0
  402. package/dist/spec/catalogs/tones/technical.json +31 -0
  403. package/dist/spec/openapi.yaml +776 -0
  404. package/dist/spec/reference/engine-defaults.json +35 -0
  405. package/dist/spec/schemas/audience.schema.json +156 -0
  406. package/dist/spec/schemas/chart-type.schema.json +537 -0
  407. package/dist/spec/schemas/color-scheme.schema.json +200 -0
  408. package/dist/spec/schemas/font-scheme.schema.json +174 -0
  409. package/dist/spec/schemas/language.schema.json +158 -0
  410. package/dist/spec/schemas/layout.schema.json +280 -0
  411. package/dist/spec/schemas/narrative.schema.json +207 -0
  412. package/dist/spec/schemas/opf.schema.json +2537 -0
  413. package/dist/spec/schemas/purpose.schema.json +92 -0
  414. package/dist/spec/schemas/social-platform.schema.json +184 -0
  415. package/dist/spec/schemas/theme.schema.json +168 -0
  416. package/dist/spec/schemas/tone.schema.json +146 -0
  417. package/dist/types.d.ts +1102 -0
  418. package/dist/types.js +3 -0
  419. package/dist/types.js.map +1 -0
  420. package/dist/validator-Be5EzqAt.d.ts +2700 -0
  421. package/dist/validator.d.ts +3 -0
  422. package/dist/validator.js +6694 -0
  423. package/dist/validator.js.map +1 -0
  424. package/package.json +80 -0
@@ -0,0 +1,358 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative-index/v1",
3
+ "version": "1",
4
+ "description": "Catalog of narrative templates available in the openpresentation.org catalog. Each entry is a lightweight summary; full beat definitions live in the per-template JSON files alongside this index. Entries are grouped by usage: foundational arcs first, then pitches, sales and GTM, strategy and consulting, storytelling, keynotes and inspiration, rhythm-of-business reviews, data-driven analyses, and workforce reviews.",
5
+ "templates": [
6
+ {
7
+ "id": "problem-solution",
8
+ "name": "Problem → Solution",
9
+ "summary": "Classic business arc: name the pain, raise the stakes, present your fix, show how it works, prove it, ask.",
10
+ "audienceFit": ["customers", "stakeholders", "executives", "internal-teams"],
11
+ "durationRange": { "minMinutes": 5, "maxMinutes": 30 },
12
+ "tags": ["business", "sales", "general", "proposal"],
13
+ "file": "problem-solution.json"
14
+ },
15
+ {
16
+ "id": "scqa",
17
+ "name": "SCQA (Situation–Complication–Question–Answer)",
18
+ "summary": "Minto's pyramid principle: surface the recommendation up front, then layer key arguments and supporting evidence beneath it.",
19
+ "audienceFit": ["executives", "boards", "leadership-teams"],
20
+ "durationRange": { "minMinutes": 5, "maxMinutes": 20 },
21
+ "tags": ["executive", "strategy", "consulting", "minto", "pyramid"],
22
+ "file": "scqa.json"
23
+ },
24
+ {
25
+ "id": "strategic-narrative",
26
+ "name": "Strategic Narrative",
27
+ "summary": "Change-driven sales/founder arc: a tectonic shift creates winners and losers, and your product is the way to land in the winners' camp.",
28
+ "audienceFit": ["customers", "prospects", "board", "investors", "executives"],
29
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
30
+ "tags": ["strategic", "sales", "positioning", "category"],
31
+ "file": "strategic-narrative.json"
32
+ },
33
+ {
34
+ "id": "golden-circle",
35
+ "name": "Golden Circle (Why / How / What)",
36
+ "summary": "Sinek's keynote arc: lead with belief, follow with method, finish with proof.",
37
+ "audienceFit": ["customers", "employees", "general-audience", "press"],
38
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
39
+ "tags": ["keynote", "brand", "mission", "sinek"],
40
+ "file": "golden-circle.json"
41
+ },
42
+ {
43
+ "id": "conference-talk",
44
+ "name": "Conference Talk",
45
+ "summary": "Stage-talk arc for industry events: hook, promise, evidence, mechanism, application, recap.",
46
+ "audienceFit": ["practitioners", "general-audience", "industry-peers"],
47
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
48
+ "tags": ["talk", "conference", "keynote", "education"],
49
+ "file": "conference-talk.json"
50
+ },
51
+ {
52
+ "id": "transformation-arc",
53
+ "name": "Transformation Arc (Before / After / Bridge)",
54
+ "summary": "Marketing-copy arc adapted for slides: paint the painful before, contrast the vivid after, deliver the bridge between them.",
55
+ "audienceFit": ["customers", "prospects", "marketing-teams", "general-audience"],
56
+ "durationRange": { "minMinutes": 3, "maxMinutes": 15 },
57
+ "tags": ["marketing", "copywriting", "pitch", "persuasive"],
58
+ "file": "transformation-arc.json"
59
+ },
60
+ {
61
+ "id": "pitch-deck",
62
+ "name": "Startup Pitch Deck",
63
+ "summary": "Canonical investor-pitch arc drawn from Sequoia and YC templates; optimized for 10–20 minute meetings.",
64
+ "audienceFit": ["investors", "venture-capitalists", "angels", "advisors"],
65
+ "durationRange": { "minMinutes": 10, "maxMinutes": 20 },
66
+ "tags": ["startup", "fundraising", "pitch", "investor"],
67
+ "file": "pitch-deck.json"
68
+ },
69
+ {
70
+ "id": "early-startup-pitch",
71
+ "name": "Early-Stage Startup Pitch",
72
+ "summary": "Seed and pre-seed pitch arc tuned for vision-heavy stories where revenue and traction are still thin.",
73
+ "audienceFit": ["seed-investors", "angels", "advisors"],
74
+ "durationRange": { "minMinutes": 10, "maxMinutes": 20 },
75
+ "tags": ["startup", "fundraising", "seed", "pitch"],
76
+ "file": "early-startup-pitch.json"
77
+ },
78
+ {
79
+ "id": "venture-pitch",
80
+ "name": "Venture Pitch",
81
+ "summary": "Series A/B fundraising arc structured around the canonical investor questions.",
82
+ "audienceFit": ["investors", "venture-capitalists", "series-a", "series-b"],
83
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
84
+ "tags": ["startup", "fundraising", "pitch", "investor", "series-a"],
85
+ "file": "venture-pitch.json"
86
+ },
87
+ {
88
+ "id": "persuasive-sales",
89
+ "name": "Persuasive Sales",
90
+ "summary": "Top-of-funnel sales arc anchored in market change, leading to your unique capabilities, supported by proof, ending with a clear ask.",
91
+ "audienceFit": ["prospects", "customers", "buyers"],
92
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
93
+ "tags": ["sales", "go-to-market", "outbound", "discovery"],
94
+ "file": "persuasive-sales.json"
95
+ },
96
+ {
97
+ "id": "company-intro",
98
+ "name": "Company Intro",
99
+ "summary": "Standard company-overview deck: who you are, what's distinctive, who you serve, why they win.",
100
+ "audienceFit": ["prospects", "partners", "press", "candidates"],
101
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
102
+ "tags": ["overview", "go-to-market", "marketing", "intro"],
103
+ "file": "company-intro.json"
104
+ },
105
+ {
106
+ "id": "marketing-strategy",
107
+ "name": "Marketing Strategy",
108
+ "summary": "Comprehensive go-to-market strategy arc structured around the 4Ps; for category launches and annual plans.",
109
+ "audienceFit": ["marketing-leaders", "executives", "cross-functional-partners"],
110
+ "durationRange": { "minMinutes": 30, "maxMinutes": 60 },
111
+ "tags": ["go-to-market", "marketing", "strategy", "planning"],
112
+ "file": "marketing-strategy.json"
113
+ },
114
+ {
115
+ "id": "product-launch",
116
+ "name": "Product Launch",
117
+ "summary": "Persuasive launch arc: brand, promise, conflict, stakes, reveal, raised stakes, sell, call to action.",
118
+ "audienceFit": ["customers", "press", "general-audience", "partners"],
119
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
120
+ "tags": ["startup", "launch", "marketing", "keynote"],
121
+ "file": "product-launch.json"
122
+ },
123
+ {
124
+ "id": "strategic-advisory",
125
+ "name": "Strategic Advisory",
126
+ "summary": "Consulting-style advisory deck applying Minto's pyramid: title, SCQ, answer, three argued points, summary.",
127
+ "audienceFit": ["executives", "boards", "leadership-teams", "clients"],
128
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
129
+ "tags": ["consulting", "advisory", "strategy", "minto"],
130
+ "file": "strategic-advisory.json"
131
+ },
132
+ {
133
+ "id": "challenge-resolution",
134
+ "name": "Challenge → Resolution",
135
+ "summary": "Identify a current business challenge, trace its origins, and recommend an actionable resolution.",
136
+ "audienceFit": ["executives", "managers", "stakeholders", "internal-teams"],
137
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
138
+ "tags": ["management", "strategy", "consulting", "advisory"],
139
+ "file": "challenge-resolution.json"
140
+ },
141
+ {
142
+ "id": "project-proposal",
143
+ "name": "Project Proposal",
144
+ "summary": "Internal proposal arc for greenlighting a project: hook, problem, idea, benefits, justification, plan, timeline, risks, outlook, ask.",
145
+ "audienceFit": ["executives", "sponsors", "managers", "internal-teams"],
146
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
147
+ "tags": ["management", "proposal", "internal", "planning"],
148
+ "file": "project-proposal.json"
149
+ },
150
+ {
151
+ "id": "failure-analysis",
152
+ "name": "Failure Analysis",
153
+ "summary": "Walk through what went wrong, why, and what changes — a structured post-mortem for stakeholder reviews.",
154
+ "audienceFit": ["leadership", "customers", "stakeholders", "partners"],
155
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
156
+ "tags": ["postmortem", "incident", "review", "accountability"],
157
+ "file": "failure-analysis.json"
158
+ },
159
+ {
160
+ "id": "classic-story",
161
+ "name": "Classic Story",
162
+ "summary": "Movie-style narrative arc applied to any topic: open the scene, introduce the villain, raise the stakes, send in the hero, deliver the plan, close with hope.",
163
+ "audienceFit": ["general-audience", "customers", "internal-teams"],
164
+ "durationRange": { "minMinutes": 5, "maxMinutes": 30 },
165
+ "tags": ["storytelling", "general", "engagement"],
166
+ "file": "classic-story.json"
167
+ },
168
+ {
169
+ "id": "business-narrative",
170
+ "name": "Business Narrative",
171
+ "summary": "Tell a business strategy or solution as a story: setting, challenge, tension, hero, plan, outcome.",
172
+ "audienceFit": ["internal-teams", "leadership", "cross-functional-partners"],
173
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
174
+ "tags": ["management", "storytelling", "internal", "strategy"],
175
+ "file": "business-narrative.json"
176
+ },
177
+ {
178
+ "id": "rags-to-riches",
179
+ "name": "Rags to Riches",
180
+ "summary": "Underdog journey from initial failure to eventual success — for founder stories and brand stories where the lesson is grit.",
181
+ "audienceFit": ["general-audience", "customers", "press", "candidates"],
182
+ "durationRange": { "minMinutes": 5, "maxMinutes": 20 },
183
+ "tags": ["storytelling", "founder", "brand", "inspirational"],
184
+ "file": "rags-to-riches.json"
185
+ },
186
+ {
187
+ "id": "underdog-victory",
188
+ "name": "Underdog Victory",
189
+ "summary": "Story arc of someone or something overlooked who triumphs in the end — for founder narratives and team-building decks.",
190
+ "audienceFit": ["general-audience", "internal-teams", "candidates"],
191
+ "durationRange": { "minMinutes": 5, "maxMinutes": 20 },
192
+ "tags": ["storytelling", "inspirational", "founder", "team"],
193
+ "file": "underdog-victory.json"
194
+ },
195
+ {
196
+ "id": "survival-story",
197
+ "name": "Survival Story",
198
+ "summary": "Narrative arc of overcoming adversity through determination — for brand stories and leadership talks where the lesson lives in the comeback.",
199
+ "audienceFit": ["general-audience", "internal-teams", "press"],
200
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
201
+ "tags": ["storytelling", "inspirational", "founder", "comeback"],
202
+ "file": "survival-story.json"
203
+ },
204
+ {
205
+ "id": "educate",
206
+ "name": "Educate",
207
+ "summary": "Engaging-explainer arc inspired by Mary Roach: surprise, evidence, anecdote, scrutiny, memorable insight.",
208
+ "audienceFit": ["general-audience", "students", "practitioners"],
209
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
210
+ "tags": ["keynote", "education", "explainer", "science"],
211
+ "file": "educate.json"
212
+ },
213
+ {
214
+ "id": "persuade",
215
+ "name": "Persuade",
216
+ "summary": "Argument-driven keynote arc inspired by Ken Robinson: grip, challenge, story, statistic, revelation, proposal, question.",
217
+ "audienceFit": ["general-audience", "policymakers", "industry-peers"],
218
+ "durationRange": { "minMinutes": 15, "maxMinutes": 30 },
219
+ "tags": ["keynote", "persuasive", "advocacy", "talk"],
220
+ "file": "persuade.json"
221
+ },
222
+ {
223
+ "id": "reveal",
224
+ "name": "Reveal",
225
+ "summary": "Insight-driven keynote arc inspired by Amy Cuddy: connect through story, ground in research, advise, demonstrate authenticity.",
226
+ "audienceFit": ["general-audience", "academics", "professionals"],
227
+ "durationRange": { "minMinutes": 15, "maxMinutes": 25 },
228
+ "tags": ["keynote", "research", "talk", "inspirational"],
229
+ "file": "reveal.json"
230
+ },
231
+ {
232
+ "id": "justice",
233
+ "name": "Justice",
234
+ "summary": "Advocacy arc inspired by 'I Have a Dream': inequality, dream, urgency, unity, call to action, hope.",
235
+ "audienceFit": ["general-audience", "advocates", "policymakers", "community"],
236
+ "durationRange": { "minMinutes": 10, "maxMinutes": 30 },
237
+ "tags": ["inspirational", "advocacy", "movement", "keynote"],
238
+ "file": "justice.json"
239
+ },
240
+ {
241
+ "id": "innovation",
242
+ "name": "Innovation",
243
+ "summary": "Keynote-style product reveal inspired by Steve Jobs's 2007 iPhone launch: stage, reveal, demonstrate, wow, differentiate, recategorize.",
244
+ "audienceFit": ["customers", "press", "developers", "general-audience"],
245
+ "durationRange": { "minMinutes": 20, "maxMinutes": 60 },
246
+ "tags": ["inspirational", "keynote", "launch", "product"],
247
+ "file": "innovation.json"
248
+ },
249
+ {
250
+ "id": "focus",
251
+ "name": "Focus",
252
+ "summary": "Long-term, principle-driven business arc inspired by Bezos's 1997 shareholder letter: focus, performance, framework, discipline.",
253
+ "audienceFit": ["shareholders", "leadership", "all-hands", "board"],
254
+ "durationRange": { "minMinutes": 20, "maxMinutes": 45 },
255
+ "tags": ["inspirational", "leadership", "principles", "all-hands"],
256
+ "file": "focus.json"
257
+ },
258
+ {
259
+ "id": "qbr",
260
+ "name": "Quarterly Business Review",
261
+ "summary": "Standard internal QBR arc: recap, performance, wins, challenges, insights, plan, risks, asks.",
262
+ "audienceFit": ["leadership", "executives", "cross-functional-partners"],
263
+ "durationRange": { "minMinutes": 30, "maxMinutes": 90 },
264
+ "tags": ["internal", "review", "operations", "reporting"],
265
+ "file": "qbr.json"
266
+ },
267
+ {
268
+ "id": "business-review",
269
+ "name": "Business Review",
270
+ "summary": "Full-loop review of recent activities — closer to a customer-facing or partner-facing relationship review than a status update.",
271
+ "audienceFit": ["customers", "partners", "stakeholders", "leadership"],
272
+ "durationRange": { "minMinutes": 30, "maxMinutes": 90 },
273
+ "tags": ["customer-relationship", "review", "operations"],
274
+ "file": "business-review.json"
275
+ },
276
+ {
277
+ "id": "board-meeting",
278
+ "name": "Board Meeting",
279
+ "summary": "Comprehensive board update covering CEO commentary, key metrics, financials, functional updates, and forward-looking topics.",
280
+ "audienceFit": ["board", "directors", "executives", "investors"],
281
+ "durationRange": { "minMinutes": 60, "maxMinutes": 180 },
282
+ "tags": ["rhythm-of-business", "board", "governance", "executive"],
283
+ "file": "board-meeting.json"
284
+ },
285
+ {
286
+ "id": "weekly-progress",
287
+ "name": "Weekly Progress",
288
+ "summary": "Tight rhythm-of-business arc for weekly progress reports — designed for fifteen-to-thirty-minute team check-ins.",
289
+ "audienceFit": ["managers", "teams", "cross-functional-partners"],
290
+ "durationRange": { "minMinutes": 15, "maxMinutes": 30 },
291
+ "tags": ["rhythm-of-business", "weekly", "internal", "operations"],
292
+ "file": "weekly-progress.json"
293
+ },
294
+ {
295
+ "id": "status-update",
296
+ "name": "Status Update",
297
+ "summary": "Concise progress-report arc for keeping a stakeholder informed: headline, brief, progress, results, plan, feedback.",
298
+ "audienceFit": ["stakeholders", "managers", "customers", "executives"],
299
+ "durationRange": { "minMinutes": 5, "maxMinutes": 15 },
300
+ "tags": ["reporting", "operations", "customer-relationship", "weekly"],
301
+ "file": "status-update.json"
302
+ },
303
+ {
304
+ "id": "performance-review",
305
+ "name": "Performance Review",
306
+ "summary": "Analytical review of individual, team, or company performance grounded in metrics and adjustments for the next period.",
307
+ "audienceFit": ["leadership", "managers", "teams"],
308
+ "durationRange": { "minMinutes": 20, "maxMinutes": 60 },
309
+ "tags": ["data-driven", "review", "operations", "metrics"],
310
+ "file": "performance-review.json"
311
+ },
312
+ {
313
+ "id": "survey-analysis",
314
+ "name": "Survey Analysis",
315
+ "summary": "Structured walk-through of survey results: topic, executive summary, methodology, findings, analysis, implications, recommendations.",
316
+ "audienceFit": ["executives", "researchers", "stakeholders", "marketing-teams"],
317
+ "durationRange": { "minMinutes": 20, "maxMinutes": 60 },
318
+ "tags": ["data-driven", "research", "insights", "voice-of-customer"],
319
+ "file": "survey-analysis.json"
320
+ },
321
+ {
322
+ "id": "trend-analysis",
323
+ "name": "Trend Analysis",
324
+ "summary": "Identify and discuss data-driven patterns to understand performance and forecast what's next.",
325
+ "audienceFit": ["executives", "analysts", "leadership"],
326
+ "durationRange": { "minMinutes": 15, "maxMinutes": 45 },
327
+ "tags": ["data-driven", "forecasting", "strategy", "analysis"],
328
+ "file": "trend-analysis.json"
329
+ },
330
+ {
331
+ "id": "employee-review",
332
+ "name": "Employee Review",
333
+ "summary": "Constructive performance-review arc that recognizes work, gives candid feedback, and sets growth goals together.",
334
+ "audienceFit": ["employee", "manager", "hr-partner"],
335
+ "durationRange": { "minMinutes": 30, "maxMinutes": 60 },
336
+ "tags": ["workforce", "hr", "review", "manager"],
337
+ "file": "employee-review.json"
338
+ },
339
+ {
340
+ "id": "performance-improvement-plan",
341
+ "name": "Performance Improvement Plan",
342
+ "summary": "Structured PIP arc that helps a struggling employee see expectations, understand the gap, and walk a credible improvement path.",
343
+ "audienceFit": ["employee", "manager", "hr-partner"],
344
+ "durationRange": { "minMinutes": 30, "maxMinutes": 60 },
345
+ "tags": ["workforce", "hr", "performance", "manager"],
346
+ "file": "performance-improvement-plan.json"
347
+ },
348
+ {
349
+ "id": "capacity-planning",
350
+ "name": "Capacity Planning",
351
+ "summary": "Workforce and operational capacity-planning arc: kickoff, urgency, current state, projection, tactics, implementation, revision.",
352
+ "audienceFit": ["leadership", "operations", "hr-partners", "finance"],
353
+ "durationRange": { "minMinutes": 20, "maxMinutes": 45 },
354
+ "tags": ["workforce", "operations", "planning", "resource-management"],
355
+ "file": "capacity-planning.json"
356
+ }
357
+ ]
358
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "innovation",
4
+ "name": "Innovation",
5
+ "summary": "Keynote-style product reveal inspired by Steve Jobs's 2007 iPhone launch: stage-set, reveal, demonstrate, wow, differentiate, reframe the category, build excitement, call to action, and thank the audience. For category-defining product moments.",
6
+ "audienceFit": [
7
+ "customers",
8
+ "press",
9
+ "developers",
10
+ "general-audience"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 20,
14
+ "maxMinutes": 60
15
+ },
16
+ "tags": [
17
+ "inspirational",
18
+ "keynote",
19
+ "launch",
20
+ "product"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "opening",
25
+ "name": "Opening",
26
+ "description": "Set the stage. Tell the audience they're about to see something that matters, without yet showing it. The pause before the reveal is part of the reveal.",
27
+ "layoutHint": "title-left",
28
+ "instructions": "Set the stage",
29
+ "slideType": "text"
30
+ },
31
+ {
32
+ "id": "revelation",
33
+ "name": "Revelation",
34
+ "description": "Announce the product. One image, one name, one sentence. Anything more competes with the moment. The slide should feel like the curtain going up.",
35
+ "instructions": "Announce product",
36
+ "slideType": "text",
37
+ "layoutHint": "text-1x-left"
38
+ },
39
+ {
40
+ "id": "demonstration",
41
+ "name": "Demonstration",
42
+ "description": "Show the product in real use. Choose a single defining workflow that captures what the product does and how it feels. Live beats canned wherever possible.",
43
+ "instructions": "Showcase the product",
44
+ "slideType": "text",
45
+ "layoutHint": "text-1x-left"
46
+ },
47
+ {
48
+ "id": "wow-factor",
49
+ "name": "Wow Factor",
50
+ "description": "Highlight the cutting-edge feature that earns the headline. One thing, presented well — the audience should leave able to repeat it in a sentence.",
51
+ "instructions": "Highlight cutting-edge features",
52
+ "slideType": "text",
53
+ "layoutHint": "text-1x-left"
54
+ },
55
+ {
56
+ "id": "differentiation",
57
+ "name": "Differentiation",
58
+ "description": "Make the contrast with existing alternatives unmistakable. Use comparisons that the audience already understands; don't argue against straw versions of the competition.",
59
+ "instructions": "Distinctive factors",
60
+ "slideType": "text",
61
+ "layoutHint": "text-1x-left"
62
+ },
63
+ {
64
+ "id": "revolution",
65
+ "name": "Revolution",
66
+ "description": "Reframe the category. Show how the product changes what the playing field looks like, not just where you sit on it. This is the slide pundits will quote.",
67
+ "instructions": "Change in the playing field",
68
+ "slideType": "text",
69
+ "layoutHint": "text-1x-left"
70
+ },
71
+ {
72
+ "id": "excitement",
73
+ "name": "Excitement",
74
+ "description": "Build anticipation around what's next: availability, partnerships, what the audience can imagine doing with the product. Excitement is how the room exits the keynote into the world.",
75
+ "instructions": "Build anticipation",
76
+ "slideType": "text",
77
+ "layoutHint": "text-1x-left"
78
+ },
79
+ {
80
+ "id": "call-to-action",
81
+ "name": "Call to Action",
82
+ "description": "Give the audience the action that channels the excitement. Pre-order, try it, tell others. Be specific so the energy converts into behavior.",
83
+ "instructions": "Urge to explore",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "gratitude",
89
+ "name": "Gratitude",
90
+ "description": "Thank the team that built it and the audience that came. Brief, sincere, not perfunctory. The closing thanks is the period at the end of the keynote.",
91
+ "layoutHint": "title-left",
92
+ "instructions": "Thank the audience",
93
+ "slideType": "text"
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "justice",
4
+ "name": "Justice",
5
+ "summary": "Advocacy arc inspired by the rhetorical structure of Martin Luther King Jr.'s 'I Have a Dream' speech: name the inequality, share the dream, build urgency, layer further visions, emphasize unity, call to action, and close on hope. For movement-building keynotes and mission-driven speeches.",
6
+ "audienceFit": [
7
+ "general-audience",
8
+ "advocates",
9
+ "policymakers",
10
+ "community"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 10,
14
+ "maxMinutes": 30
15
+ },
16
+ "tags": [
17
+ "inspirational",
18
+ "advocacy",
19
+ "movement",
20
+ "keynote"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "introduction",
25
+ "name": "Introduction",
26
+ "description": "Set the stage with a moment that earns the audience's full attention. Speak in the moral register the rest of the talk will require. Avoid throat-clearing — open as if the speech were already underway.",
27
+ "instructions": "Set the stage",
28
+ "slideType": "text",
29
+ "layoutHint": "text-1x-left"
30
+ },
31
+ {
32
+ "id": "give-context",
33
+ "name": "Give Context",
34
+ "description": "Place the issue in its historical and current context. What promises were made, what has and hasn't been kept. Context turns the speech from opinion into accountability.",
35
+ "instructions": "Put in historical and current context",
36
+ "slideType": "text",
37
+ "layoutHint": "text-1x-left"
38
+ },
39
+ {
40
+ "id": "highlight-inequality",
41
+ "name": "Highlight Inequality",
42
+ "description": "Show specific, undeniable examples of the inequality at issue. Concrete moments and people, not abstractions. The audience should feel the gap between what is and what was promised.",
43
+ "instructions": "Show examples of inequality",
44
+ "slideType": "text",
45
+ "layoutHint": "text-1x-left"
46
+ },
47
+ {
48
+ "id": "share-dream",
49
+ "name": "Share the Dream",
50
+ "description": "Describe the future you envision in vivid, specific detail. The dream must be both ambitious and recognizable — a world the audience can picture themselves living in.",
51
+ "instructions": "Describe your vision",
52
+ "slideType": "text",
53
+ "layoutHint": "text-1x-left"
54
+ },
55
+ {
56
+ "id": "create-urgency",
57
+ "name": "Create Urgency",
58
+ "description": "Explain why the time for change is now. The cost of waiting, the moment that won't return. Urgency converts shared vision into shared movement.",
59
+ "instructions": "Explain the need for immediate change",
60
+ "slideType": "text",
61
+ "layoutHint": "text-1x-left"
62
+ },
63
+ {
64
+ "id": "another-dream",
65
+ "name": "Continue the Vision",
66
+ "description": "Layer additional visions of the future in parallel structure. Repetition and rhythm build momentum the way a single image cannot.",
67
+ "instructions": "Continue to elaborate on your vision",
68
+ "slideType": "text",
69
+ "layoutHint": "text-1x-left"
70
+ },
71
+ {
72
+ "id": "emphasize-unity",
73
+ "name": "Emphasize Unity",
74
+ "description": "Speak to the collective power of the audience together. Name common ground that crosses lines the issue normally divides. Unity is the engine that turns dream into march.",
75
+ "instructions": "Talk about collective power",
76
+ "slideType": "text",
77
+ "layoutHint": "text-1x-left"
78
+ },
79
+ {
80
+ "id": "last-dream",
81
+ "name": "Final Vision",
82
+ "description": "Deliver one more, fully realized vision of the world you're calling for. Specific enough to be remembered, expansive enough to inspire.",
83
+ "instructions": "Further share dreams of ideal in-depth",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "call-to-action",
89
+ "name": "Call to Action",
90
+ "description": "Ask the audience to participate in the change. Be specific about what 'doing something' looks like — show, march, give, vote, organize. Vague CTAs produce vague action.",
91
+ "instructions": "Ask audience to participate in change",
92
+ "slideType": "text",
93
+ "layoutHint": "text-1x-left"
94
+ },
95
+ {
96
+ "id": "show-determination",
97
+ "name": "Show Determination",
98
+ "description": "Encourage persistence in the face of resistance. Acknowledge what will be hard. Determination, named honestly, is more durable than easy optimism.",
99
+ "instructions": "Encourage persistence",
100
+ "slideType": "text",
101
+ "layoutHint": "text-1x-left"
102
+ },
103
+ {
104
+ "id": "create-hope",
105
+ "name": "Create Hope",
106
+ "description": "Close on hope grounded in evidence: progress already made, victories already won, ground already moved. Hope as a conclusion lands strongest when it sounds like it has been earned.",
107
+ "layoutHint": "title-left",
108
+ "instructions": "Inspire hope for future",
109
+ "slideType": "text"
110
+ }
111
+ ]
112
+ }