@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,109 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "venture-pitch",
4
+ "name": "Venture Pitch",
5
+ "summary": "Series A/B fundraising arc structured around the canonical investor questions.",
6
+ "audienceFit": [
7
+ "investors",
8
+ "venture-capitalists",
9
+ "series-a",
10
+ "series-b"
11
+ ],
12
+ "durationRange": {
13
+ "minMinutes": 10,
14
+ "maxMinutes": 30
15
+ },
16
+ "tags": [
17
+ "startup",
18
+ "fundraising",
19
+ "pitch",
20
+ "investor",
21
+ "series-a"
22
+ ],
23
+ "beats": [
24
+ {
25
+ "id": "opening",
26
+ "name": "Opening",
27
+ "instructions": "Establish identity",
28
+ "slideType": "text",
29
+ "layoutHint": "text-1x-left"
30
+ },
31
+ {
32
+ "id": "purpose",
33
+ "name": "Purpose",
34
+ "instructions": "State your mission",
35
+ "slideType": "text",
36
+ "layoutHint": "text-1x-left"
37
+ },
38
+ {
39
+ "id": "problem",
40
+ "name": "Problem",
41
+ "instructions": "Present the challenge",
42
+ "slideType": "text",
43
+ "layoutHint": "text-1x-left"
44
+ },
45
+ {
46
+ "id": "solution",
47
+ "name": "Solution",
48
+ "instructions": "Propose your idea",
49
+ "slideType": "text",
50
+ "layoutHint": "text-1x-left"
51
+ },
52
+ {
53
+ "id": "why-now",
54
+ "name": "Why Now",
55
+ "instructions": "Explain timing importance",
56
+ "slideType": "text",
57
+ "layoutHint": "text-1x-left"
58
+ },
59
+ {
60
+ "id": "market-size",
61
+ "name": "Market Size",
62
+ "instructions": "Demonstrate potential",
63
+ "slideType": "text",
64
+ "layoutHint": "text-1x-left"
65
+ },
66
+ {
67
+ "id": "competition",
68
+ "name": "Competition",
69
+ "instructions": "Analyze competitive landscape",
70
+ "slideType": "text",
71
+ "layoutHint": "text-1x-left"
72
+ },
73
+ {
74
+ "id": "product",
75
+ "name": "Product",
76
+ "instructions": "Showcase features/benefits",
77
+ "slideType": "text",
78
+ "layoutHint": "text-1x-left"
79
+ },
80
+ {
81
+ "id": "business-model",
82
+ "name": "Business Model",
83
+ "instructions": "Detail revenue streams",
84
+ "slideType": "text",
85
+ "layoutHint": "text-1x-left"
86
+ },
87
+ {
88
+ "id": "team",
89
+ "name": "Team",
90
+ "instructions": "Highlight key members",
91
+ "slideType": "text",
92
+ "layoutHint": "text-1x-left"
93
+ },
94
+ {
95
+ "id": "financials",
96
+ "name": "Financials",
97
+ "instructions": "Show projections/needs",
98
+ "slideType": "text",
99
+ "layoutHint": "text-1x-left"
100
+ },
101
+ {
102
+ "id": "closing",
103
+ "name": "Closing",
104
+ "instructions": "Reinforce brand",
105
+ "slideType": "text",
106
+ "layoutHint": "text-1x-left"
107
+ }
108
+ ]
109
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-narrative/v1",
3
+ "id": "weekly-progress",
4
+ "name": "Weekly Progress",
5
+ "summary": "Tight rhythm-of-business arc for weekly progress reports: objectives, achievements, progress, challenges, opportunities, recognition, plan, discussion, conclusion. Designed for fifteen-to-thirty-minute team check-ins, not deep dives.",
6
+ "audienceFit": [
7
+ "managers",
8
+ "teams",
9
+ "cross-functional-partners"
10
+ ],
11
+ "durationRange": {
12
+ "minMinutes": 15,
13
+ "maxMinutes": 30
14
+ },
15
+ "tags": [
16
+ "rhythm-of-business",
17
+ "weekly",
18
+ "internal",
19
+ "operations"
20
+ ],
21
+ "beats": [
22
+ {
23
+ "id": "opening",
24
+ "name": "Opening",
25
+ "description": "Open with the initiative name, the date, and the one-line headline for the week. Frame the meeting in fifteen seconds so the rest of the time is content.",
26
+ "layoutHint": "title-left",
27
+ "instructions": "Initiative name & date",
28
+ "slideType": "text"
29
+ },
30
+ {
31
+ "id": "objectives",
32
+ "name": "Objectives",
33
+ "description": "State what the team set out to do this week. Specific, measurable. The audience should be able to read this slide alone and know what 'on track' would mean.",
34
+ "instructions": "Set the expectations",
35
+ "slideType": "text",
36
+ "layoutHint": "text-1x-left"
37
+ },
38
+ {
39
+ "id": "achievements",
40
+ "name": "Achievements",
41
+ "description": "Celebrate the week's wins. Concrete, attributable, dated. Brevity here — the meeting is for what's next, not a victory lap.",
42
+ "instructions": "Celebrate success",
43
+ "slideType": "text",
44
+ "layoutHint": "text-1x-left"
45
+ },
46
+ {
47
+ "id": "overall-progress",
48
+ "name": "Overall Progress",
49
+ "description": "Evaluate performance against the objectives. Use a simple status indicator (green/yellow/red) plus the leading metric. Help the audience scan the state in seconds.",
50
+ "instructions": "Evaluate performance",
51
+ "slideType": "text",
52
+ "layoutHint": "text-1x-left"
53
+ },
54
+ {
55
+ "id": "challenges",
56
+ "name": "Challenges",
57
+ "description": "Address what's hard right now: blockers, slipping items, surfaced risks. Tie each challenge to either an owner working it or a discussion you want this week.",
58
+ "instructions": "Address difficulties",
59
+ "slideType": "text",
60
+ "layoutHint": "text-1x-left"
61
+ },
62
+ {
63
+ "id": "opportunities-for-improvement",
64
+ "name": "Opportunities for Improvement",
65
+ "description": "Surface where the team can level up. Process tweaks, tooling needs, ways of working. Improvement opportunities should feel like seeds, not corrections.",
66
+ "instructions": "Seek growth",
67
+ "slideType": "text",
68
+ "layoutHint": "text-1x-left"
69
+ },
70
+ {
71
+ "id": "highlights-recognition",
72
+ "name": "Highlights & Recognition",
73
+ "description": "Recognize specific contributions by name. Recognition belongs in the deck, not just in the meeting — written acknowledgment travels further than verbal.",
74
+ "instructions": "Appreciate efforts",
75
+ "slideType": "text",
76
+ "layoutHint": "text-1x-left"
77
+ },
78
+ {
79
+ "id": "goals-next-week",
80
+ "name": "Goals Next Week",
81
+ "description": "Plan the week ahead with three to five specific goals. Each should be small enough to finish, large enough to matter, and clearly owned.",
82
+ "instructions": "Plan ahead",
83
+ "slideType": "text",
84
+ "layoutHint": "text-1x-left"
85
+ },
86
+ {
87
+ "id": "discussion-feedback",
88
+ "name": "Discussion & Feedback",
89
+ "description": "Open the floor with two or three prompts — decisions you need, opinions you want, blockers you'd like cleared. End the recap actively.",
90
+ "instructions": "Encourage input",
91
+ "slideType": "text",
92
+ "layoutHint": "text-1x-left"
93
+ },
94
+ {
95
+ "id": "conclusion",
96
+ "name": "Conclusion",
97
+ "description": "Close with one line that motivates the team into the next week. Echo the headline so the meeting feels closed.",
98
+ "layoutHint": "title-left",
99
+ "instructions": "Recap & motivate",
100
+ "slideType": "text"
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "align",
4
+ "name": "Align",
5
+ "summary": "Create shared understanding and commitment across people who need to move together.",
6
+ "description": "Use when stakeholders need a common view of goals, constraints, priorities, or responsibilities. Emphasize shared language, explicit tradeoffs, and next steps.",
7
+ "outcome": "Stakeholders leave with the same priorities and operating assumptions.",
8
+ "successCriteria": [
9
+ "Teams agree on priorities",
10
+ "Open disagreements are surfaced",
11
+ "Owners and next steps are clear"
12
+ ],
13
+ "recommendedNarratives": ["strategic-narrative", "transformation-arc", "business-review"],
14
+ "recommendedTones": ["conversational", "authoritative"],
15
+ "tags": ["alignment", "strategy", "coordination"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "decide",
4
+ "name": "Drive a Decision",
5
+ "summary": "Frame options, evidence, tradeoffs, and a recommendation so the audience can choose.",
6
+ "description": "Use when the deck exists to get a yes/no, select among options, approve a recommendation, or resolve ambiguity. Lead with the decision needed and make the ask explicit.",
7
+ "outcome": "The audience makes or authorizes a clear decision.",
8
+ "successCriteria": [
9
+ "Decision owner understands the options",
10
+ "Recommendation and tradeoffs are explicit",
11
+ "The final ask is concrete"
12
+ ],
13
+ "recommendedNarratives": ["scqa", "board-meeting", "project-proposal"],
14
+ "recommendedTones": ["formal", "authoritative", "persuasive"],
15
+ "tags": ["decision", "recommendation", "approval"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "educate",
4
+ "name": "Educate",
5
+ "summary": "Teach a concept, process, product, or domain so the audience can use it correctly.",
6
+ "description": "Use when the primary job is learning. Structure around concepts, examples, practice, and checks for understanding rather than persuasion or reporting.",
7
+ "outcome": "The audience understands the material well enough to apply it.",
8
+ "successCriteria": [
9
+ "Definitions and examples are clear",
10
+ "Audience can apply the concept",
11
+ "Complexity builds progressively"
12
+ ],
13
+ "recommendedNarratives": ["educate", "focus", "company-intro"],
14
+ "recommendedTones": ["conversational", "technical"],
15
+ "tags": ["learning", "training", "enablement"]
16
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose-index/v1",
3
+ "version": "1",
4
+ "description": "Catalog of presentation purposes available in the openpresentation.org catalog. Each entry is a lightweight summary; full purpose records live in the per-id JSON files alongside this index. Purposes are referenced from OPF documents via purpose.",
5
+ "records": [
6
+ {
7
+ "id": "inform",
8
+ "name": "Inform",
9
+ "summary": "Give the audience clear context, facts, or status without asking for a decision.",
10
+ "file": "inform.json"
11
+ },
12
+ {
13
+ "id": "decide",
14
+ "name": "Drive a Decision",
15
+ "summary": "Frame options, evidence, tradeoffs, and a recommendation so the audience can choose.",
16
+ "file": "decide.json"
17
+ },
18
+ {
19
+ "id": "align",
20
+ "name": "Align",
21
+ "summary": "Create shared understanding and commitment across people who need to move together.",
22
+ "file": "align.json"
23
+ },
24
+ {
25
+ "id": "persuade",
26
+ "name": "Persuade",
27
+ "summary": "Change belief or win support for a specific argument, idea, or recommendation.",
28
+ "file": "persuade.json"
29
+ },
30
+ {
31
+ "id": "educate",
32
+ "name": "Educate",
33
+ "summary": "Teach a concept, process, product, or domain so the audience can use it correctly.",
34
+ "file": "educate.json"
35
+ },
36
+ {
37
+ "id": "report",
38
+ "name": "Report",
39
+ "summary": "Summarize performance, progress, or findings with enough context to interpret results.",
40
+ "file": "report.json"
41
+ },
42
+ {
43
+ "id": "pitch",
44
+ "name": "Pitch",
45
+ "summary": "Present an opportunity and ask for investment, approval, partnership, or sponsorship.",
46
+ "file": "pitch.json"
47
+ },
48
+ {
49
+ "id": "sell",
50
+ "name": "Sell",
51
+ "summary": "Move a buyer or evaluator toward purchase, adoption, renewal, or expansion.",
52
+ "file": "sell.json"
53
+ },
54
+ {
55
+ "id": "plan",
56
+ "name": "Plan",
57
+ "summary": "Establish a roadmap, operating plan, or sequence of actions with owners and next steps.",
58
+ "file": "plan.json"
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "inform",
4
+ "name": "Inform",
5
+ "summary": "Give the audience clear context, facts, or status without asking for a decision.",
6
+ "description": "Use when the deck needs to make the audience aware of current state, background, or findings. Prioritize clarity, completeness, and accurate framing over persuasion.",
7
+ "outcome": "The audience understands the situation and can repeat the important facts.",
8
+ "successCriteria": [
9
+ "Audience can summarize the key facts",
10
+ "No immediate decision is required",
11
+ "Follow-up questions are about implications, not basic context"
12
+ ],
13
+ "recommendedNarratives": ["status-update", "focus", "educate"],
14
+ "recommendedTones": ["formal", "conversational"],
15
+ "tags": ["awareness", "context", "status"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "persuade",
4
+ "name": "Persuade",
5
+ "summary": "Change belief or win support for a specific argument, idea, or recommendation.",
6
+ "description": "Use when the audience may be skeptical or undecided. Build a crisp thesis, support it with evidence, address objections, and end with a clear action.",
7
+ "outcome": "The audience accepts the argument or supports the recommendation.",
8
+ "successCriteria": [
9
+ "Main thesis is memorable",
10
+ "Evidence supports the argument",
11
+ "Likely objections are handled"
12
+ ],
13
+ "recommendedNarratives": ["problem-solution", "persuasive-sales", "golden-circle"],
14
+ "recommendedTones": ["persuasive", "authoritative"],
15
+ "tags": ["argument", "support", "belief-change"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "pitch",
4
+ "name": "Pitch",
5
+ "summary": "Present an opportunity and ask for investment, approval, partnership, or sponsorship.",
6
+ "description": "Use when the deck needs to create interest and move a high-stakes audience toward backing the opportunity. Lead with the opportunity, prove credibility, and make the ask concrete.",
7
+ "outcome": "The audience agrees to invest, sponsor, approve, or continue the conversation.",
8
+ "successCriteria": [
9
+ "Opportunity is clear",
10
+ "Evidence builds confidence",
11
+ "Ask and next step are explicit"
12
+ ],
13
+ "recommendedNarratives": ["pitch-deck", "venture-pitch", "golden-circle"],
14
+ "recommendedTones": ["persuasive", "authoritative", "inspirational"],
15
+ "tags": ["fundraising", "opportunity", "ask"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "plan",
4
+ "name": "Plan",
5
+ "summary": "Establish a roadmap, operating plan, or sequence of actions with owners and next steps.",
6
+ "description": "Use when the deck should turn strategy into coordinated action. Make sequencing, ownership, dependencies, risks, and checkpoints visible.",
7
+ "outcome": "The audience understands the plan and accepts the next actions.",
8
+ "successCriteria": [
9
+ "Milestones and owners are clear",
10
+ "Dependencies and risks are visible",
11
+ "Next steps can be executed"
12
+ ],
13
+ "recommendedNarratives": ["project-proposal", "capacity-planning", "strategic-advisory"],
14
+ "recommendedTones": ["authoritative", "technical"],
15
+ "tags": ["roadmap", "execution", "planning"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "report",
4
+ "name": "Report",
5
+ "summary": "Summarize performance, progress, or findings with enough context to interpret results.",
6
+ "description": "Use for business reviews, project updates, research summaries, and recurring operating cadences. Prioritize the metric, the movement, the reason, and the implication.",
7
+ "outcome": "The audience understands what happened, why it happened, and what it means.",
8
+ "successCriteria": [
9
+ "Key metrics are easy to scan",
10
+ "Variance and drivers are explained",
11
+ "Implications are explicit"
12
+ ],
13
+ "recommendedNarratives": ["qbr", "business-review", "status-update", "survey-analysis"],
14
+ "recommendedTones": ["formal", "technical"],
15
+ "tags": ["performance", "progress", "findings"]
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-purpose/v1",
3
+ "id": "sell",
4
+ "name": "Sell",
5
+ "summary": "Move a buyer or evaluator toward purchase, adoption, renewal, or expansion.",
6
+ "description": "Use for customer-facing decks where the goal is commercial movement. Focus on pain, value, proof, differentiation, and the next buying step.",
7
+ "outcome": "The buyer advances to the next step in the commercial process.",
8
+ "successCriteria": [
9
+ "Customer pain is named clearly",
10
+ "Value is tied to customer outcomes",
11
+ "Next commercial step is clear"
12
+ ],
13
+ "recommendedNarratives": ["persuasive-sales", "problem-solution", "challenge-resolution"],
14
+ "recommendedTones": ["persuasive", "conversational"],
15
+ "tags": ["sales", "customer", "commercial"]
16
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "bluesky",
4
+ "name": "Bluesky",
5
+ "summary": "Decentralized microblog network built on the AT Protocol.",
6
+ "description": "Bluesky handles are domain-style ('alice.bsky.social'). Profile URLs use the form 'https://bsky.app/profile/<handle>'. Renderers should pass the handle through unchanged.",
7
+ "baseUrl": "https://bsky.app",
8
+ "profileUrlPattern": "https://bsky.app/profile/{handle}",
9
+ "handlePrefix": "",
10
+ "handleExample": "alice.bsky.social",
11
+ "brandColor": "#1185FE",
12
+ "tags": ["microblog", "decentralized", "atproto"]
13
+ }
14
+
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "facebook",
4
+ "name": "Facebook",
5
+ "summary": "General-purpose social network from Meta.",
6
+ "baseUrl": "https://facebook.com",
7
+ "profileUrlPattern": "https://facebook.com/{handle}",
8
+ "companyUrlPattern": "https://facebook.com/{handle}",
9
+ "handlePrefix": "",
10
+ "handleExample": "acme",
11
+ "brandColor": "#1877F2",
12
+ "tags": ["general", "brand"]
13
+ }
14
+
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "github",
4
+ "name": "GitHub",
5
+ "summary": "Code-hosting platform for developers and organizations.",
6
+ "description": "GitHub uses the same URL pattern for users and organizations ('/<handle>'). Use the companyUrlPattern for organization references for symmetry with platforms that distinguish.",
7
+ "baseUrl": "https://github.com",
8
+ "profileUrlPattern": "https://github.com/{handle}",
9
+ "companyUrlPattern": "https://github.com/{handle}",
10
+ "handlePrefix": "",
11
+ "handleExample": "alicechen",
12
+ "brandColor": "#181717",
13
+ "tags": ["developer", "code"]
14
+ }
15
+
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform-index/v1",
3
+ "version": "1",
4
+ "description": "Catalog of social-media platforms available in the openpresentation.org catalog. Each entry is a lightweight summary; full platform records live in the per-id JSON files alongside this index. The property keys of any Socials object on Organization or Speaker resolve to ids in this catalog.",
5
+ "records": [
6
+ {
7
+ "id": "linkedin",
8
+ "name": "LinkedIn",
9
+ "summary": "Professional social network for individuals and companies.",
10
+ "file": "linkedin.json"
11
+ },
12
+ {
13
+ "id": "x",
14
+ "name": "X",
15
+ "summary": "Real-time microblog for news, opinions, and discussion. Formerly Twitter.",
16
+ "file": "x.json"
17
+ },
18
+ {
19
+ "id": "github",
20
+ "name": "GitHub",
21
+ "summary": "Code-hosting platform for developers and organizations.",
22
+ "file": "github.json"
23
+ },
24
+ {
25
+ "id": "youtube",
26
+ "name": "YouTube",
27
+ "summary": "Video-sharing platform with creator and brand channels.",
28
+ "file": "youtube.json"
29
+ },
30
+ {
31
+ "id": "instagram",
32
+ "name": "Instagram",
33
+ "summary": "Photo and short-form video network from Meta.",
34
+ "file": "instagram.json"
35
+ },
36
+ {
37
+ "id": "facebook",
38
+ "name": "Facebook",
39
+ "summary": "General-purpose social network from Meta.",
40
+ "file": "facebook.json"
41
+ },
42
+ {
43
+ "id": "tiktok",
44
+ "name": "TikTok",
45
+ "summary": "Short-form video network with strong recommendation feed.",
46
+ "file": "tiktok.json"
47
+ },
48
+ {
49
+ "id": "threads",
50
+ "name": "Threads",
51
+ "summary": "Text-first social network from Meta, integrated with Instagram identity.",
52
+ "file": "threads.json"
53
+ },
54
+ {
55
+ "id": "mastodon",
56
+ "name": "Mastodon",
57
+ "summary": "Decentralized microblog network across federated instances.",
58
+ "file": "mastodon.json"
59
+ },
60
+ {
61
+ "id": "bluesky",
62
+ "name": "Bluesky",
63
+ "summary": "Decentralized microblog network built on the AT Protocol.",
64
+ "file": "bluesky.json"
65
+ }
66
+ ]
67
+ }
68
+
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "instagram",
4
+ "name": "Instagram",
5
+ "summary": "Photo and short-form video network from Meta.",
6
+ "baseUrl": "https://instagram.com",
7
+ "profileUrlPattern": "https://instagram.com/{handle}",
8
+ "handlePrefix": "@",
9
+ "handleExample": "@acme",
10
+ "brandColor": "#E4405F",
11
+ "tags": ["photo", "video", "lifestyle"]
12
+ }
13
+
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "linkedin",
4
+ "name": "LinkedIn",
5
+ "summary": "Professional social network for individuals and companies.",
6
+ "description": "LinkedIn distinguishes between member profiles ('/in/<handle>') and company pages ('/company/<handle>'). Renderers should pick the appropriate URL pattern based on whether the parent is an Organization or a Speaker.",
7
+ "baseUrl": "https://linkedin.com",
8
+ "profileUrlPattern": "https://linkedin.com/in/{handle}",
9
+ "companyUrlPattern": "https://linkedin.com/company/{handle}",
10
+ "handlePrefix": "",
11
+ "handleExample": "alice-chen",
12
+ "brandColor": "#0A66C2",
13
+ "tags": ["professional", "default"]
14
+ }
15
+
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "mastodon",
4
+ "name": "Mastodon",
5
+ "summary": "Decentralized microblog network across federated instances.",
6
+ "description": "Mastodon profiles are instance-scoped: the canonical URL form is '<instance>/@<handle>' (e.g. https://hachyderm.io/@acme). The catalog cannot fix a single base URL — store full URLs as values, or '@<handle>@<instance>' as the rendered handle. The profileUrlPattern below is illustrative and assumes mastodon.social as a fallback.",
7
+ "baseUrl": "https://mastodon.social",
8
+ "profileUrlPattern": "https://mastodon.social/@{handle}",
9
+ "handlePrefix": "@",
10
+ "handleExample": "@alice@hachyderm.io",
11
+ "brandColor": "#6364FF",
12
+ "tags": ["microblog", "decentralized", "fediverse"]
13
+ }
14
+
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "threads",
4
+ "name": "Threads",
5
+ "summary": "Text-first social network from Meta, integrated with Instagram identity.",
6
+ "baseUrl": "https://threads.net",
7
+ "profileUrlPattern": "https://threads.net/@{handle}",
8
+ "handlePrefix": "@",
9
+ "handleExample": "@alicechen",
10
+ "brandColor": "#000000",
11
+ "tags": ["microblog", "text"]
12
+ }
13
+
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "tiktok",
4
+ "name": "TikTok",
5
+ "summary": "Short-form video network with strong recommendation feed.",
6
+ "description": "TikTok profiles are addressable as '@<handle>'. The handlePrefix is '@' and is included in the URL.",
7
+ "baseUrl": "https://tiktok.com",
8
+ "profileUrlPattern": "https://tiktok.com/@{handle}",
9
+ "handlePrefix": "@",
10
+ "handleExample": "@acme",
11
+ "brandColor": "#010101",
12
+ "tags": ["video", "short-form"]
13
+ }
14
+
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://openpresentation.org/schema/opf-social-platform/v1",
3
+ "id": "x",
4
+ "name": "X",
5
+ "summary": "Real-time microblog for news, opinions, and discussion. Formerly Twitter.",
6
+ "description": "X uses a single profile URL pattern for both individuals and organizations. Handles are conventionally rendered with an '@' prefix.",
7
+ "baseUrl": "https://x.com",
8
+ "profileUrlPattern": "https://x.com/{handle}",
9
+ "handlePrefix": "@",
10
+ "handleExample": "@alicechen",
11
+ "brandColor": "#000000",
12
+ "tags": ["microblog", "news", "default"]
13
+ }
14
+