@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,776 @@
1
+ openapi: 3.1.0
2
+ info:
3
+ title: pptx.dev API
4
+ version: "1.0.0"
5
+ description: |
6
+ REST API for parsing, validating, converting, generating, and rendering presentations.
7
+ OPF (Open Presentation Format) is the JSON contract; schema URL: `https://openpresentation.org/schema/opf/v1`.
8
+
9
+ **Authentication:** Send `Authorization: Bearer <Clerk API key>` on every request, or use a signed-in browser session (Studio). `POST /v1/preview` is anonymous (IP rate-limited) for the OPF Playground.
10
+
11
+ Human-readable docs: [pptx.dev/docs](https://www.pptx.dev/docs)
12
+ contact:
13
+ name: pptx.dev
14
+ url: https://www.pptx.dev
15
+ license:
16
+ name: MIT
17
+ url: https://opensource.org/licenses/MIT
18
+
19
+ servers:
20
+ - url: https://api.pptx.dev
21
+ description: Production API
22
+ - url: http://localhost:3000/api
23
+ description: Local Next.js App Router (`/api` prefix)
24
+
25
+ tags:
26
+ - name: playground
27
+ description: Anonymous OPF playground helpers (IP rate limits)
28
+ - name: validate
29
+ description: OPF schema validation (no billing for validation)
30
+ - name: parse
31
+ description: Upload and inspect .pptx files
32
+ - name: convert
33
+ description: PPTX to OPF
34
+ - name: generate
35
+ description: OPF to PPTX and exports
36
+ - name: render
37
+ description: PPTX to web or raster/vector previews
38
+
39
+ security:
40
+ - bearerAuth: []
41
+
42
+ paths:
43
+ /v1/validate:
44
+ post:
45
+ operationId: validateOpf
46
+ tags: [validate]
47
+ summary: Validate OPF JSON
48
+ description: Validates an OPF document against the schema. Returns structured errors and warnings.
49
+ requestBody:
50
+ required: true
51
+ content:
52
+ application/json:
53
+ schema:
54
+ $ref: "#/components/schemas/OpfDocument"
55
+ examples:
56
+ minimal:
57
+ summary: Minimal OPF
58
+ value:
59
+ $schema: "https://openpresentation.org/schema/opf/v1"
60
+ meta:
61
+ title: Example
62
+ design:
63
+ theme: corporate-minimal
64
+ slides:
65
+ - id: s1
66
+ layout: title-slide
67
+ elements:
68
+ - id: h1
69
+ type: text
70
+ content:
71
+ text: Hello
72
+ responses:
73
+ "200":
74
+ description: Validation result
75
+ content:
76
+ application/json:
77
+ schema:
78
+ $ref: "#/components/schemas/ValidateResponse"
79
+ "400":
80
+ description: Bad request (wrong Content-Type or invalid JSON)
81
+ content:
82
+ application/json:
83
+ schema:
84
+ $ref: "#/components/schemas/ErrorResponse"
85
+ "401":
86
+ $ref: "#/components/responses/Unauthorized"
87
+ "500":
88
+ $ref: "#/components/responses/InternalError"
89
+
90
+ /v1/preview:
91
+ post:
92
+ operationId: previewOpf
93
+ tags: [playground]
94
+ summary: OPF preview summary (anonymous)
95
+ description: |
96
+ Validates OPF JSON (body max 256 KB) for live preview without an API key.
97
+ Per-IP limits: 30 requests/minute and 500/hour (separate fixed windows).
98
+ `format=web` returns `textRuns` per slide (similar to `/v1/render?format=web`).
99
+ `format=svg|png` returns `svg: null` per slide with an `export` stub until the engine ships.
100
+ security: []
101
+ parameters:
102
+ - name: format
103
+ in: query
104
+ required: false
105
+ schema:
106
+ type: string
107
+ enum: [web, svg, png]
108
+ default: svg
109
+ description: Preview representation
110
+ - name: slides
111
+ in: query
112
+ required: false
113
+ schema:
114
+ type: string
115
+ description: Comma-separated 1-based slide numbers (subset of slides to return)
116
+ requestBody:
117
+ required: true
118
+ content:
119
+ application/json:
120
+ schema:
121
+ $ref: "#/components/schemas/OpfDocument"
122
+ responses:
123
+ "200":
124
+ description: Valid OPF — preview payload (`slides` shape depends on `format`)
125
+ content:
126
+ application/json:
127
+ schema:
128
+ $ref: "#/components/schemas/PreviewResponse"
129
+ "400":
130
+ description: Bad request (wrong Content-Type, invalid JSON, bad `format`/`slides`)
131
+ content:
132
+ application/json:
133
+ schema:
134
+ $ref: "#/components/schemas/ErrorResponse"
135
+ "413":
136
+ description: Request body larger than 256 KB
137
+ content:
138
+ application/json:
139
+ schema:
140
+ $ref: "#/components/schemas/ErrorResponse"
141
+ "422":
142
+ description: OPF failed validation
143
+ content:
144
+ application/json:
145
+ schema:
146
+ $ref: "#/components/schemas/ErrorResponse"
147
+ "429":
148
+ description: Rate limit exceeded
149
+ content:
150
+ application/json:
151
+ schema:
152
+ $ref: "#/components/schemas/ErrorResponse"
153
+ "500":
154
+ $ref: "#/components/responses/InternalError"
155
+
156
+ /v1/parse:
157
+ post:
158
+ operationId: parsePptx
159
+ tags: [parse]
160
+ summary: Parse a .pptx upload
161
+ description: Upload a `.pptx` file and receive a `parseId` for follow-up GET endpoints.
162
+ requestBody:
163
+ required: true
164
+ content:
165
+ multipart/form-data:
166
+ schema:
167
+ type: object
168
+ required: [file]
169
+ properties:
170
+ file:
171
+ type: string
172
+ format: binary
173
+ description: PowerPoint file (.pptx)
174
+ responses:
175
+ "200":
176
+ description: Parse job created
177
+ content:
178
+ application/json:
179
+ schema:
180
+ $ref: "#/components/schemas/ParseAcceptedResponse"
181
+ "400":
182
+ description: Missing file or not a .pptx
183
+ content:
184
+ application/json:
185
+ schema:
186
+ $ref: "#/components/schemas/ErrorResponse"
187
+ "401":
188
+ $ref: "#/components/responses/Unauthorized"
189
+ "500":
190
+ $ref: "#/components/responses/InternalError"
191
+
192
+ /v1/convert:
193
+ post:
194
+ operationId: convertPptxToOpf
195
+ tags: [convert]
196
+ summary: Convert .pptx to OPF JSON
197
+ description: Reverse of `/v1/generate` — imports an existing deck as OPF.
198
+ requestBody:
199
+ required: true
200
+ content:
201
+ multipart/form-data:
202
+ schema:
203
+ type: object
204
+ required: [file]
205
+ properties:
206
+ file:
207
+ type: string
208
+ format: binary
209
+ responses:
210
+ "200":
211
+ description: OPF document
212
+ content:
213
+ application/json:
214
+ schema:
215
+ $ref: "#/components/schemas/OpfDocument"
216
+ "400":
217
+ description: Missing file or not a .pptx
218
+ content:
219
+ application/json:
220
+ schema:
221
+ $ref: "#/components/schemas/ErrorResponse"
222
+ "401":
223
+ $ref: "#/components/responses/Unauthorized"
224
+ "500":
225
+ $ref: "#/components/responses/InternalError"
226
+
227
+ /v1/generate:
228
+ post:
229
+ operationId: generateFromOpf
230
+ tags: [generate]
231
+ summary: Generate output from OPF
232
+ description: |
233
+ Validates OPF, then enqueues or returns generation status. Query `format` selects the target
234
+ (`pptx`, `pdf`, `png`, `svg`). The PPTX engine may return `202 Accepted` while work is stubbed or async.
235
+ parameters:
236
+ - name: format
237
+ in: query
238
+ required: false
239
+ schema:
240
+ type: string
241
+ enum: [pptx, pdf, png, svg]
242
+ default: pptx
243
+ description: Output format
244
+ requestBody:
245
+ required: true
246
+ content:
247
+ application/json:
248
+ schema:
249
+ $ref: "#/components/schemas/OpfDocument"
250
+ responses:
251
+ "202":
252
+ description: Accepted — generation stub or async pipeline
253
+ content:
254
+ application/json:
255
+ schema:
256
+ $ref: "#/components/schemas/GenerateAcceptedResponse"
257
+ "400":
258
+ description: Invalid format or wrong Content-Type
259
+ content:
260
+ application/json:
261
+ schema:
262
+ $ref: "#/components/schemas/ErrorResponse"
263
+ "401":
264
+ $ref: "#/components/responses/Unauthorized"
265
+ "422":
266
+ description: OPF failed validation
267
+ content:
268
+ application/json:
269
+ schema:
270
+ $ref: "#/components/schemas/ErrorResponse"
271
+ "500":
272
+ $ref: "#/components/responses/InternalError"
273
+
274
+ /v1/render:
275
+ post:
276
+ operationId: renderPptx
277
+ tags: [render]
278
+ summary: Render a .pptx for web or export
279
+ description: |
280
+ Parses upload, stores result, and returns slide data (`format=web`) or an acceptance payload
281
+ for raster/vector engines (`svg`, `png`).
282
+ parameters:
283
+ - name: format
284
+ in: query
285
+ required: false
286
+ schema:
287
+ type: string
288
+ enum: [web, svg, png]
289
+ default: web
290
+ - name: slides
291
+ in: query
292
+ required: false
293
+ schema:
294
+ type: string
295
+ description: Comma-separated 1-based slide numbers (e.g. `1,3,5`)
296
+ requestBody:
297
+ required: true
298
+ content:
299
+ multipart/form-data:
300
+ schema:
301
+ type: object
302
+ required: [file]
303
+ properties:
304
+ file:
305
+ type: string
306
+ format: binary
307
+ responses:
308
+ "200":
309
+ description: Web slide payload
310
+ content:
311
+ application/json:
312
+ schema:
313
+ $ref: "#/components/schemas/RenderWebResponse"
314
+ "202":
315
+ description: Export pipeline not ready — stub response
316
+ content:
317
+ application/json:
318
+ schema:
319
+ $ref: "#/components/schemas/RenderAcceptedResponse"
320
+ "400":
321
+ description: Invalid format, slides, or missing file
322
+ content:
323
+ application/json:
324
+ schema:
325
+ $ref: "#/components/schemas/ErrorResponse"
326
+ "401":
327
+ $ref: "#/components/responses/Unauthorized"
328
+ "500":
329
+ $ref: "#/components/responses/InternalError"
330
+
331
+ /v1/parse/{parseId}/metadata:
332
+ get:
333
+ operationId: getParseMetadata
334
+ tags: [parse]
335
+ summary: Get document metadata for a parse
336
+ parameters:
337
+ - $ref: "#/components/parameters/ParseId"
338
+ responses:
339
+ "200":
340
+ description: Metadata buckets (core, app, custom)
341
+ content:
342
+ application/json:
343
+ schema:
344
+ $ref: "#/components/schemas/ParseMetadataResponse"
345
+ "400":
346
+ description: Bad request
347
+ content:
348
+ application/json:
349
+ schema:
350
+ $ref: "#/components/schemas/ErrorResponse"
351
+ "401":
352
+ $ref: "#/components/responses/Unauthorized"
353
+ "404":
354
+ description: Parse expired or unknown
355
+ content:
356
+ application/json:
357
+ schema:
358
+ $ref: "#/components/schemas/ErrorResponse"
359
+
360
+ /v1/parse/{parseId}/slides/{index}:
361
+ get:
362
+ operationId: getParseSlide
363
+ tags: [parse]
364
+ summary: Get one slide by index
365
+ parameters:
366
+ - $ref: "#/components/parameters/ParseId"
367
+ - name: index
368
+ in: path
369
+ required: true
370
+ schema:
371
+ type: integer
372
+ minimum: 0
373
+ description: Zero-based slide index
374
+ responses:
375
+ "200":
376
+ description: Slide payload
377
+ content:
378
+ application/json:
379
+ schema:
380
+ $ref: "#/components/schemas/ParseSlideResponse"
381
+ "400":
382
+ description: Invalid index
383
+ content:
384
+ application/json:
385
+ schema:
386
+ $ref: "#/components/schemas/ErrorResponse"
387
+ "401":
388
+ $ref: "#/components/responses/Unauthorized"
389
+ "404":
390
+ description: Parse or slide not found
391
+ content:
392
+ application/json:
393
+ schema:
394
+ $ref: "#/components/schemas/ErrorResponse"
395
+
396
+ /v1/parse/{parseId}/text:
397
+ get:
398
+ operationId: getParseAllText
399
+ tags: [parse]
400
+ summary: Get flattened text for all slides
401
+ parameters:
402
+ - $ref: "#/components/parameters/ParseId"
403
+ responses:
404
+ "200":
405
+ description: Text per slide
406
+ content:
407
+ application/json:
408
+ schema:
409
+ $ref: "#/components/schemas/ParseTextResponse"
410
+ "401":
411
+ $ref: "#/components/responses/Unauthorized"
412
+ "404":
413
+ description: Parse expired or unknown
414
+ content:
415
+ application/json:
416
+ schema:
417
+ $ref: "#/components/schemas/ErrorResponse"
418
+
419
+ components:
420
+ securitySchemes:
421
+ bearerAuth:
422
+ type: http
423
+ scheme: bearer
424
+ description: Clerk user or org API key (`ppx_…`), or session cookie from signed-in Studio user.
425
+
426
+ parameters:
427
+ ParseId:
428
+ name: parseId
429
+ in: path
430
+ required: true
431
+ schema:
432
+ type: string
433
+ description: Identifier returned by `POST /v1/parse` or `/v1/render`
434
+
435
+ responses:
436
+ Unauthorized:
437
+ description: Missing or invalid credentials
438
+ content:
439
+ application/json:
440
+ schema:
441
+ $ref: "#/components/schemas/ErrorResponse"
442
+ InternalError:
443
+ description: Server error
444
+ content:
445
+ application/json:
446
+ schema:
447
+ $ref: "#/components/schemas/ErrorResponse"
448
+
449
+ schemas:
450
+ ErrorResponse:
451
+ type: object
452
+ required: [error]
453
+ properties:
454
+ error:
455
+ $ref: "#/components/schemas/ApiError"
456
+
457
+ ApiError:
458
+ type: object
459
+ required: [code, message, requestId]
460
+ properties:
461
+ code:
462
+ type: string
463
+ enum:
464
+ - invalid_request
465
+ - unauthorized
466
+ - forbidden
467
+ - not_found
468
+ - rate_limited
469
+ - idempotency_conflict
470
+ - internal_error
471
+ message:
472
+ type: string
473
+ details:
474
+ type: object
475
+ additionalProperties: true
476
+ description: Optional structured details for the error code.
477
+ requestId:
478
+ type: string
479
+
480
+ OpfDocument:
481
+ type: object
482
+ description: OPF v1 document. See https://www.pptx.dev/docs/opf for field reference.
483
+ additionalProperties: true
484
+ properties:
485
+ $schema:
486
+ type: string
487
+ const: "https://openpresentation.org/schema/opf/v1"
488
+ meta:
489
+ type: object
490
+ additionalProperties: true
491
+ design:
492
+ type: object
493
+ additionalProperties: true
494
+ slides:
495
+ type: array
496
+ items:
497
+ type: object
498
+ additionalProperties: true
499
+
500
+ ValidationIssue:
501
+ type: object
502
+ required: [path, message]
503
+ properties:
504
+ path:
505
+ type: string
506
+ message:
507
+ type: string
508
+
509
+ ValidateResponse:
510
+ type: object
511
+ required: [valid, errors, warnings]
512
+ properties:
513
+ valid:
514
+ type: boolean
515
+ errors:
516
+ type: array
517
+ items:
518
+ $ref: "#/components/schemas/ValidationIssue"
519
+ warnings:
520
+ type: array
521
+ items:
522
+ $ref: "#/components/schemas/ValidationIssue"
523
+
524
+ PreviewWebSlide:
525
+ type: object
526
+ required: [index, slideNumber, id, layout, hidden, textRuns, speakerNotes]
527
+ properties:
528
+ index:
529
+ type: integer
530
+ minimum: 0
531
+ slideNumber:
532
+ type: integer
533
+ minimum: 1
534
+ id:
535
+ type: string
536
+ layout:
537
+ type: string
538
+ hidden:
539
+ type: boolean
540
+ textRuns:
541
+ type: array
542
+ items:
543
+ type: object
544
+ additionalProperties: true
545
+ speakerNotes:
546
+ type: string
547
+
548
+ PreviewRasterSlide:
549
+ type: object
550
+ required: [index, slideNumber, id, layout, svg]
551
+ properties:
552
+ index:
553
+ type: integer
554
+ minimum: 0
555
+ slideNumber:
556
+ type: integer
557
+ minimum: 1
558
+ id:
559
+ type: string
560
+ layout:
561
+ type: string
562
+ svg:
563
+ type: string
564
+ nullable: true
565
+
566
+ PreviewExportStub:
567
+ type: object
568
+ required: [status, message]
569
+ properties:
570
+ status:
571
+ type: string
572
+ example: accepted
573
+ message:
574
+ type: string
575
+
576
+ PreviewResponse:
577
+ type: object
578
+ required: [status, format, slideCount, dimensions, meta, design, slides, warnings]
579
+ properties:
580
+ status:
581
+ type: string
582
+ example: ok
583
+ format:
584
+ type: string
585
+ enum: [web, svg, png]
586
+ slideCount:
587
+ type: integer
588
+ minimum: 0
589
+ dimensions:
590
+ type: object
591
+ required: [widthPx, heightPx, preset]
592
+ properties:
593
+ widthPx:
594
+ type: integer
595
+ heightPx:
596
+ type: integer
597
+ preset:
598
+ type: string
599
+ meta:
600
+ type: object
601
+ required: [title]
602
+ properties:
603
+ title:
604
+ type: string
605
+ filename:
606
+ type: string
607
+ description: Suggested download filename including extension (resolved from meta.filename or title).
608
+ subtitle:
609
+ type: string
610
+ design:
611
+ type: object
612
+ properties:
613
+ theme:
614
+ type: string
615
+ export:
616
+ $ref: "#/components/schemas/PreviewExportStub"
617
+ slides:
618
+ type: array
619
+ items:
620
+ oneOf:
621
+ - $ref: "#/components/schemas/PreviewWebSlide"
622
+ - $ref: "#/components/schemas/PreviewRasterSlide"
623
+ warnings:
624
+ type: array
625
+ items:
626
+ $ref: "#/components/schemas/ValidationIssue"
627
+
628
+ ParseAcceptedResponse:
629
+ type: object
630
+ required: [parseId, slideCount, width, height]
631
+ properties:
632
+ parseId:
633
+ type: string
634
+ slideCount:
635
+ type: integer
636
+ width:
637
+ type: integer
638
+ description: Slide width in EMUs
639
+ height:
640
+ type: integer
641
+ description: Slide height in EMUs
642
+
643
+ GenerateAcceptedResponse:
644
+ type: object
645
+ required: [status, message, format, slideCount, validationWarnings]
646
+ properties:
647
+ status:
648
+ type: string
649
+ example: accepted
650
+ message:
651
+ type: string
652
+ format:
653
+ type: string
654
+ filename:
655
+ type: string
656
+ description: Suggested output filename including extension (from meta.filename or title slug).
657
+ slideCount:
658
+ type: integer
659
+ validationWarnings:
660
+ type: array
661
+ items:
662
+ type: string
663
+
664
+ TextRun:
665
+ type: object
666
+ additionalProperties: true
667
+ properties:
668
+ text:
669
+ type: string
670
+ bold:
671
+ type: boolean
672
+ italic:
673
+ type: boolean
674
+ underline:
675
+ type: boolean
676
+ fontSize:
677
+ type: number
678
+ fontFamily:
679
+ type: string
680
+ color:
681
+ type: string
682
+ alignment:
683
+ type: string
684
+
685
+ RenderWebResponse:
686
+ type: object
687
+ required: [parseId, format, dimensions, slideCount, slides, metadata, viewerUrl]
688
+ properties:
689
+ parseId:
690
+ type: string
691
+ format:
692
+ type: string
693
+ enum: [web]
694
+ dimensions:
695
+ type: object
696
+ additionalProperties: true
697
+ slideCount:
698
+ type: integer
699
+ slides:
700
+ type: array
701
+ items:
702
+ type: object
703
+ additionalProperties: true
704
+ metadata:
705
+ type: object
706
+ additionalProperties: true
707
+ viewerUrl:
708
+ type: string
709
+ description: Relative URL to the web viewer
710
+
711
+ RenderAcceptedResponse:
712
+ type: object
713
+ required: [status, message, parseId, format, slideCount, viewerUrl]
714
+ properties:
715
+ status:
716
+ type: string
717
+ example: accepted
718
+ message:
719
+ type: string
720
+ parseId:
721
+ type: string
722
+ format:
723
+ type: string
724
+ slideCount:
725
+ type: integer
726
+ viewerUrl:
727
+ type: string
728
+
729
+ ParseMetadataResponse:
730
+ type: object
731
+ required: [parseId, core, app, custom]
732
+ properties:
733
+ parseId:
734
+ type: string
735
+ core:
736
+ type: object
737
+ additionalProperties: true
738
+ app:
739
+ type: object
740
+ additionalProperties: true
741
+ custom:
742
+ type: object
743
+ additionalProperties: true
744
+
745
+ ParseSlideResponse:
746
+ type: object
747
+ required: [index, slideNumber, hidden, width, height, textRuns]
748
+ properties:
749
+ index:
750
+ type: integer
751
+ slideNumber:
752
+ type: integer
753
+ hidden:
754
+ type: boolean
755
+ width:
756
+ type: integer
757
+ height:
758
+ type: integer
759
+ textRuns:
760
+ type: array
761
+ items:
762
+ $ref: "#/components/schemas/TextRun"
763
+ speakerNotes:
764
+ type: string
765
+
766
+ ParseTextResponse:
767
+ type: object
768
+ required: [parseId, slides]
769
+ properties:
770
+ parseId:
771
+ type: string
772
+ slides:
773
+ type: array
774
+ items:
775
+ type: object
776
+ additionalProperties: true