@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,95 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "educate",
4
+ "name": "Educate",
5
+ "summary": "Engaging-explainer arc inspired by Mary Roach: surprise the audience with a fact, walk them through evidence and anecdote, scrutinize the assumptions, then close on a memorable insight. For technical, scientific, or analytical talks that need to feel more like discovery than instruction.",
6
+ "audienceFit": [
7
+ "general-audience",
8
+ "students",
9
+ "practitioners"
10
+ ],
11
+ "durationRange": {
12
+ "minMinutes": 15,
13
+ "maxMinutes": 45
14
+ },
15
+ "tags": [
16
+ "keynote",
17
+ "education",
18
+ "explainer",
19
+ "science"
20
+ ],
21
+ "beats": [
22
+ {
23
+ "id": "introduction",
24
+ "name": "Introduction",
25
+ "description": "Introduce the topic in a way that respects the audience's time and curiosity. Frame why this question is worth asking, and signal the shape of the journey ahead without giving away the destination.",
26
+ "instructions": "Introduce the topic",
27
+ "slideType": "text",
28
+ "layoutHint": "text-1x-left"
29
+ },
30
+ {
31
+ "id": "surprising-fact",
32
+ "name": "Surprising Fact",
33
+ "description": "Lead with a single curious fact that recasts how the audience thinks about the topic. The fact should be small, specific, and unforgettable — the cognitive door the rest of the talk walks through.",
34
+ "instructions": "Share a curious fact",
35
+ "slideType": "text",
36
+ "layoutHint": "text-1x-left"
37
+ },
38
+ {
39
+ "id": "experiment",
40
+ "name": "Experiment",
41
+ "description": "Walk through a method, study, or thought experiment that probes the surprising fact. Show how knowledge here gets made — the audience should feel like they're shoulder-to-shoulder with the investigator.",
42
+ "instructions": "Explain a tried method",
43
+ "slideType": "text",
44
+ "layoutHint": "text-1x-left"
45
+ },
46
+ {
47
+ "id": "amusing-anecdote",
48
+ "name": "Amusing Anecdote",
49
+ "description": "Drop in a story or moment from the field that brings the topic to human scale. Personality and humor here keep the audience leaning forward; technical depth without warmth loses the room.",
50
+ "instructions": "Relay an interesting story",
51
+ "slideType": "text",
52
+ "layoutHint": "text-1x-left"
53
+ },
54
+ {
55
+ "id": "intriguing-information",
56
+ "name": "Intriguing Information",
57
+ "description": "Layer in the more complex data or detail. By this point the audience is invested enough to do real work alongside you. Visualize generously — make the numbers tangible.",
58
+ "instructions": "Share complex data",
59
+ "slideType": "text",
60
+ "layoutHint": "text-1x-left"
61
+ },
62
+ {
63
+ "id": "skeptical-scrutiny",
64
+ "name": "Skeptical Scrutiny",
65
+ "description": "Question the easy interpretations. Challenge the audience's defaults and your own. Showing where the evidence is contested is what separates a teacher from a publicist.",
66
+ "instructions": "Encourage questioning of accepted truths",
67
+ "slideType": "text",
68
+ "layoutHint": "text-1x-left"
69
+ },
70
+ {
71
+ "id": "extraordinary-explanation",
72
+ "name": "Extraordinary Explanation",
73
+ "description": "Present the most counterintuitive or beautiful explanation the topic offers. Take your time here — this is the payoff slide the audience came for.",
74
+ "instructions": "Break down unusual research findings",
75
+ "slideType": "text",
76
+ "layoutHint": "text-1x-left"
77
+ },
78
+ {
79
+ "id": "unconventional-use",
80
+ "name": "Unconventional Use",
81
+ "description": "Show an unexpected application or implication of the idea. Surprise reinforces the lesson and gives the audience a story to retell tomorrow.",
82
+ "instructions": "Expand on unique aspects",
83
+ "slideType": "text",
84
+ "layoutHint": "text-1x-left"
85
+ },
86
+ {
87
+ "id": "captivating-conclusion",
88
+ "name": "Captivating Conclusion",
89
+ "description": "Close with a thoughtful, slightly poetic wrap-up. Echo the surprising fact, name the lesson, and leave the audience with a new question instead of a tidy answer.",
90
+ "layoutHint": "title-left",
91
+ "instructions": "Provide a thoughtful wrap-up",
92
+ "slideType": "text"
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "employee-review",
4
+ "name": "Employee Review",
5
+ "summary": "Constructive performance-review arc that recognizes work, gives candid feedback, and sets growth goals together. For one-on-one performance conversations and formal year-end reviews.",
6
+ "audienceFit": [
7
+ "employee",
8
+ "manager",
9
+ "hr-partner"
10
+ ],
11
+ "durationRange": {
12
+ "minMinutes": 30,
13
+ "maxMinutes": 60
14
+ },
15
+ "tags": [
16
+ "workforce",
17
+ "hr",
18
+ "review",
19
+ "manager"
20
+ ],
21
+ "beats": [
22
+ {
23
+ "id": "introduction",
24
+ "name": "Introduction",
25
+ "description": "Open with the period covered and the spirit of the conversation: collaborative, honest, growth-focused. Frame the meeting so both sides know what to expect.",
26
+ "layoutHint": "title-left",
27
+ "instructions": "Name & date",
28
+ "slideType": "text"
29
+ },
30
+ {
31
+ "id": "performance",
32
+ "name": "Performance",
33
+ "description": "Review job execution against the role's expectations. Specific examples, dated. Avoid characterizing the person; describe the work and its impact.",
34
+ "instructions": "Review job execution",
35
+ "slideType": "text",
36
+ "layoutHint": "text-1x-left"
37
+ },
38
+ {
39
+ "id": "achievements",
40
+ "name": "Achievements",
41
+ "description": "Acknowledge what went well. Name the projects, the moves, the moments where the employee made a difference. Specific recognition lands harder than generic praise.",
42
+ "instructions": "Acknowledge success",
43
+ "slideType": "text",
44
+ "layoutHint": "text-1x-left"
45
+ },
46
+ {
47
+ "id": "feedback",
48
+ "name": "Feedback",
49
+ "description": "Provide constructive feedback grounded in observation. Distinguish patterns from one-offs. Tell the employee something they can act on, not something they can only feel.",
50
+ "instructions": "Provide positive remarks",
51
+ "slideType": "text",
52
+ "layoutHint": "text-1x-left"
53
+ },
54
+ {
55
+ "id": "constructive-criticism",
56
+ "name": "Constructive Criticism",
57
+ "description": "Suggest improvements in language that respects the employee's intelligence. Pair each piece of criticism with a concrete example and a specific behavior change you'd like to see.",
58
+ "instructions": "Suggest improvements",
59
+ "slideType": "text",
60
+ "layoutHint": "text-1x-left"
61
+ },
62
+ {
63
+ "id": "development-opportunities",
64
+ "name": "Development Opportunities",
65
+ "description": "Highlight growth areas and the experiences that could stretch the employee. Frame development as an investment, not a fix.",
66
+ "instructions": "Highlight growth areas",
67
+ "slideType": "text",
68
+ "layoutHint": "text-1x-left"
69
+ },
70
+ {
71
+ "id": "goals",
72
+ "name": "Goals",
73
+ "description": "Outline next-period goals together. Specific, measurable, with explicit support. The strongest goals are co-authored, not handed down.",
74
+ "instructions": "Outline next steps",
75
+ "slideType": "text",
76
+ "layoutHint": "text-1x-left"
77
+ },
78
+ {
79
+ "id": "mentoring",
80
+ "name": "Mentoring",
81
+ "description": "Encourage continued learning through mentorship, training, peer pairings. Close the review with the message that growth is a shared responsibility, not a one-way evaluation.",
82
+ "layoutHint": "title-left",
83
+ "instructions": "Encourage continuous learning",
84
+ "slideType": "text"
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,104 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "failure-analysis",
4
+ "name": "Failure Analysis",
5
+ "summary": "Walk through what went wrong, why, and what changes — a structured post-mortem for stakeholder reviews. Pairs honest accountability with a credible recovery plan.",
6
+ "audienceFit": [
7
+ "leadership",
8
+ "customers",
9
+ "stakeholders",
10
+ "partners"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 15,
14
+ "maxMinutes": 45
15
+ },
16
+ "tags": [
17
+ "postmortem",
18
+ "incident",
19
+ "review",
20
+ "accountability"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "opening-remark",
25
+ "name": "Opening Remark",
26
+ "description": "Set an empathetic, accountable tone before any analysis. Acknowledge the impact on the people in the room and the customers affected. Authenticity here earns you the credibility you'll need for the rest of the deck.",
27
+ "instructions": "Set an empathetic tone",
28
+ "slideType": "text",
29
+ "layoutHint": "text-1x-left"
30
+ },
31
+ {
32
+ "id": "incident-breakdown",
33
+ "name": "Incident Breakdown",
34
+ "description": "Walk through what happened, in time order. Stick to facts: what systems, what users, what timeline. No causal claims yet — just an accurate, neutral reconstruction the audience can trust.",
35
+ "instructions": "Detail the failure",
36
+ "slideType": "text",
37
+ "layoutHint": "text-1x-left"
38
+ },
39
+ {
40
+ "id": "impact-analysis",
41
+ "name": "Impact Analysis",
42
+ "description": "Quantify the damage. Customer-hours lost, revenue at risk, SLA breaches, downstream knock-ons. Be specific and direct; vague impact statements undermine the rest of the post-mortem.",
43
+ "instructions": "Describe failure's effects",
44
+ "slideType": "text",
45
+ "layoutHint": "text-1x-left"
46
+ },
47
+ {
48
+ "id": "root-cause",
49
+ "name": "Root Cause",
50
+ "description": "Trace the failure to its underlying cause, not the most visible symptom. Use a 'five whys' or fishbone framing if useful. Distinguish between the proximate trigger and the systemic conditions that allowed it.",
51
+ "instructions": "Analyze underlying reasons",
52
+ "slideType": "text",
53
+ "layoutHint": "text-1x-left"
54
+ },
55
+ {
56
+ "id": "proposed-solutions",
57
+ "name": "Proposed Solutions",
58
+ "description": "Present the corrective actions you're taking. Lead with the highest-leverage fix; sequence the rest. For each action, name an owner and a date — solutions without owners are aspirations.",
59
+ "instructions": "Suggest corrective measures",
60
+ "slideType": "text",
61
+ "layoutHint": "text-1x-left"
62
+ },
63
+ {
64
+ "id": "action-plan",
65
+ "name": "Action Plan",
66
+ "description": "Lay out the rollout: what ships when, how it's verified, who signs off. Show that 'fixed' has a definition and a deadline, not just intent.",
67
+ "instructions": "Map out steps",
68
+ "slideType": "text",
69
+ "layoutHint": "text-1x-left"
70
+ },
71
+ {
72
+ "id": "evaluate-outcome",
73
+ "name": "Evaluate Outcome",
74
+ "description": "Define the metrics that will tell you the fix worked. Pre/post comparisons, monitoring SLOs, error budgets — whatever proves the failure mode is closed and not just deferred.",
75
+ "instructions": "Assess corrective actions",
76
+ "slideType": "text",
77
+ "layoutHint": "text-1x-left"
78
+ },
79
+ {
80
+ "id": "lessons-learned",
81
+ "name": "Lessons Learned",
82
+ "description": "Distill the broader lessons that outlive this specific incident. What does the team or organization now know that it didn't before? What patterns will you watch for elsewhere?",
83
+ "instructions": "Reflect on failure lessons",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "preventive-measures",
89
+ "name": "Preventive Measures",
90
+ "description": "List the systemic safeguards being added — process changes, automated checks, on-call procedures, review gates. Show how this category of failure becomes harder to recur, not just this specific instance.",
91
+ "instructions": "List safeguards",
92
+ "slideType": "text",
93
+ "layoutHint": "text-1x-left"
94
+ },
95
+ {
96
+ "id": "closing-thoughts",
97
+ "name": "Closing Thoughts",
98
+ "description": "Close with humility and forward momentum. Re-affirm accountability, thank the audience for their patience, and signal confidence in the path forward without overclaiming.",
99
+ "layoutHint": "title-left",
100
+ "instructions": "Empathize, trust, and encourage",
101
+ "slideType": "text"
102
+ }
103
+ ]
104
+ }
@@ -0,0 +1,120 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "focus",
4
+ "name": "Focus",
5
+ "summary": "Long-term, principle-driven business arc inspired by Jeff Bezos's 1997 letter to shareholders: name the focus, account for performance, articulate the framework, and commit to the discipline that will keep the company on track. For founder letters, all-hands narratives, and any deck where the audience needs to feel the through-line.",
6
+ "audienceFit": [
7
+ "shareholders",
8
+ "leadership",
9
+ "all-hands",
10
+ "board"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 20,
14
+ "maxMinutes": 45
15
+ },
16
+ "tags": [
17
+ "inspirational",
18
+ "leadership",
19
+ "principles",
20
+ "all-hands"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "welcome",
25
+ "name": "Welcome",
26
+ "description": "Open with a brief framing of what this update is for and what you intend to leave the audience with. Set the tone — long-term, candid, principle-driven.",
27
+ "instructions": "Overview and objectives",
28
+ "slideType": "text",
29
+ "layoutHint": "text-1x-left"
30
+ },
31
+ {
32
+ "id": "accomplishments",
33
+ "name": "Accomplishments",
34
+ "description": "Showcase the period's most material wins, briefly. The audience came for what's next; wins earn permission for the harder slides ahead, but they aren't the headline.",
35
+ "instructions": "Showcase recent achievements",
36
+ "slideType": "text",
37
+ "layoutHint": "text-1x-left"
38
+ },
39
+ {
40
+ "id": "potential",
41
+ "name": "Potential",
42
+ "description": "Detail the market and customer opportunities ahead. Size them honestly and connect them to the work already underway. Potential without specifics reads as wishful.",
43
+ "instructions": "Detail market opportunities",
44
+ "slideType": "text",
45
+ "layoutHint": "text-1x-left"
46
+ },
47
+ {
48
+ "id": "competitive-edge",
49
+ "name": "Competitive Edge",
50
+ "description": "Reveal the strategic positioning that gives the business its advantage. Frame it as a structural moat, not a list of features. The audience should be able to repeat the moat in their own words.",
51
+ "instructions": "Reveal strategic positioning",
52
+ "slideType": "text",
53
+ "layoutHint": "text-1x-left"
54
+ },
55
+ {
56
+ "id": "long-term-vision",
57
+ "name": "Long-Term Vision",
58
+ "description": "Emphasize the long-term view that anchors decisions. Quarters serve years; years serve decades. Anchor the audience in the time horizon you actually run the business on.",
59
+ "instructions": "Emphasize focused future orientation",
60
+ "slideType": "text",
61
+ "layoutHint": "text-1x-left"
62
+ },
63
+ {
64
+ "id": "performance-metrics",
65
+ "name": "Performance Metrics",
66
+ "description": "Illuminate the indicators that show the long-term thesis is working. Choose metrics that compound — retention, NPS, unit economics — over those that flatter.",
67
+ "instructions": "Illuminate growth indicators",
68
+ "slideType": "text",
69
+ "layoutHint": "text-1x-left"
70
+ },
71
+ {
72
+ "id": "growth-achievement",
73
+ "name": "Growth Achievement",
74
+ "description": "Certify the tangible progress against the long-term plan. Year-over-year, cohort behavior, expanded reach. Growth, in this beat, is evidence that the strategy is real.",
75
+ "instructions": "Certify tangible progress",
76
+ "slideType": "text",
77
+ "layoutHint": "text-1x-left"
78
+ },
79
+ {
80
+ "id": "strategic-framework",
81
+ "name": "Strategic Framework",
82
+ "description": "Explain the principles that guide decisions. Customer obsession, long-term thinking, frugality, ownership — whatever the actual operating discipline is. Principles are the connective tissue between strategy and behavior.",
83
+ "instructions": "Explain decision principles",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "expansion",
89
+ "name": "Expansion",
90
+ "description": "Detail the next areas of growth: products, segments, geographies. Tie each to the principles above so the audience sees expansion as continuity rather than scatter.",
91
+ "instructions": "Detail growth potential",
92
+ "slideType": "text",
93
+ "layoutHint": "text-1x-left"
94
+ },
95
+ {
96
+ "id": "future-objectives",
97
+ "name": "Future Objectives",
98
+ "description": "Forecast the targets and commitments for the period ahead. Be specific enough to be held accountable. Vague objectives are how strategies erode.",
99
+ "instructions": "Forecast upcoming targets",
100
+ "slideType": "text",
101
+ "layoutHint": "text-1x-left"
102
+ },
103
+ {
104
+ "id": "acknowledgment",
105
+ "name": "Acknowledgment",
106
+ "description": "Recognize the contributions of teams, customers, and partners that made the period possible. Specific names land harder than blanket thanks.",
107
+ "instructions": "Recognize contributions and successes",
108
+ "slideType": "text",
109
+ "layoutHint": "text-1x-left"
110
+ },
111
+ {
112
+ "id": "closing-remarks",
113
+ "name": "Closing Remarks",
114
+ "description": "Recap the focus, thank the audience, and inspire the work ahead. End with the line you most want quoted in tomorrow's newsletter.",
115
+ "layoutHint": "title-left",
116
+ "instructions": "Recap, thank, inspire",
117
+ "slideType": "text"
118
+ }
119
+ ]
120
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "golden-circle",
4
+ "name": "Golden Circle (Why / How / What)",
5
+ "summary": "Simon Sinek's keynote arc: lead with belief, follow with method, finish with proof. Best for brand stories, mission-driven keynotes, and any deck where the audience needs to feel why before they can evaluate what.",
6
+ "audienceFit": [
7
+ "customers",
8
+ "employees",
9
+ "general-audience",
10
+ "press"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 10,
14
+ "maxMinutes": 30
15
+ },
16
+ "tags": [
17
+ "keynote",
18
+ "brand",
19
+ "mission",
20
+ "sinek"
21
+ ],
22
+ "beats": [
23
+ {
24
+ "id": "why",
25
+ "name": "Why",
26
+ "description": "Open with the belief or purpose that animates the work. Why does this exist, and why should anyone care beyond commerce? State it plainly and emotionally — the why is meant to be felt before it is understood."
27
+ },
28
+ {
29
+ "id": "how",
30
+ "name": "How",
31
+ "description": "Translate the belief into the principles that guide how you operate. The values, decisions, and trade-offs that make your approach distinctive. The 'how' is what people who share your why recognize as familiar."
32
+ },
33
+ {
34
+ "id": "what",
35
+ "name": "What",
36
+ "description": "Show the products, services, or outputs that the why and how produce. Concrete examples, not abstractions. The what is the artifact of the belief — proof that the why is more than rhetoric."
37
+ },
38
+ {
39
+ "id": "proof",
40
+ "name": "Proof",
41
+ "description": "Demonstrate the impact in lives, customers, or outcomes. Stories beat statistics here; specific people and moments earn the audience's belief better than aggregate numbers. End with proof that what you do works because of why you do it."
42
+ },
43
+ {
44
+ "id": "invitation",
45
+ "name": "Invitation",
46
+ "description": "Close by inviting the audience to share the belief — to buy, build, join, or evangelize. The strongest invitations don't argue; they assume alignment and offer a way in.",
47
+ "layoutHint": "title-left"
48
+ }
49
+ ]
50
+ }