@openpresentation/opf 0.14.0 → 0.16.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 (360) hide show
  1. package/README.md +28 -38
  2. package/dist/catalog-refs-_anZs-Qz.d.ts +128 -0
  3. package/dist/catalog-schemas-BZCjgAxu.d.ts +12 -0
  4. package/dist/catalog.d.ts +91 -0
  5. package/dist/{chunk-XOZ4KMSR.js → catalog.js} +17018 -8816
  6. package/dist/{chart-data-B_3z9VTb.d.ts → chart-data-BnNqgnC-.d.ts} +1 -1
  7. package/dist/{chunk-BFLVSVA7.js → chunk-3XDRQYWZ.js} +1 -1
  8. package/dist/{chunk-6OXY2CP3.js → chunk-5PDN7BN6.js} +503 -239
  9. package/dist/{chunk-CSQHPVGL.js → chunk-5TO6I3GB.js} +1 -1
  10. package/dist/{chunk-4LDGKLUC.js → chunk-5UEUAW57.js} +4 -2
  11. package/dist/{chunk-5ZU6JAPP.js → chunk-6OR326EA.js} +1 -1
  12. package/dist/{chunk-XIZUK2XM.js → chunk-BSYQDWT4.js} +15 -3
  13. package/dist/{chunk-UPQQD7MA.js → chunk-FQSIIADJ.js} +15 -6
  14. package/dist/{chunk-D3TY4TT6.js → chunk-HXHOZ7AH.js} +1407 -154
  15. package/dist/chunk-K4DQQIT4.js +319 -0
  16. package/dist/chunk-KINQFU6X.js +51 -0
  17. package/dist/{chunk-4VJDTF55.js → chunk-NAWQR7MN.js} +1 -1
  18. package/dist/{chunk-JDJBDYSR.js → chunk-PX5AWL7Y.js} +333 -857
  19. package/dist/{chunk-Q2TCMN56.js → chunk-SMLMI6IZ.js} +5 -2
  20. package/dist/chunk-SPFV27O5.js +210 -0
  21. package/dist/chunk-TRDXRRQK.js +17 -0
  22. package/dist/{chunk-Z65B2B77.js → chunk-UM24JFUE.js} +2 -2
  23. package/dist/{chunk-LS2FMPI5.js → chunk-WEDGVC5W.js} +969 -886
  24. package/dist/{composition-_WEwBe2a.d.ts → composition-D4ADF5c-.d.ts} +319 -115
  25. package/dist/composition.d.ts +3 -2
  26. package/dist/composition.js +2 -2
  27. package/dist/convert.d.ts +14 -17
  28. package/dist/convert.js +36 -39
  29. package/dist/data.d.ts +28 -11
  30. package/dist/data.js +3 -3
  31. package/dist/deck.d.ts +77 -0
  32. package/dist/deck.js +12 -0
  33. package/dist/diff.d.ts +1 -1
  34. package/dist/diff.js +7 -7
  35. package/dist/docs.js +33 -33
  36. package/dist/examples.d.ts +1 -1
  37. package/dist/examples.js +51761 -4783
  38. package/dist/{finding-C_por275.d.ts → finding-CT_f_vbD.d.ts} +2 -2
  39. package/dist/format.js +2 -2
  40. package/dist/index.d.ts +227 -77
  41. package/dist/index.js +343 -258
  42. package/dist/json-BFSdESOE.d.ts +19 -0
  43. package/dist/markdown.d.ts +20 -9
  44. package/dist/markdown.js +9 -9
  45. package/dist/{pagination-BZpXLvFL.d.ts → pagination-DzZPFheM.d.ts} +31 -31
  46. package/dist/pagination.d.ts +4 -5
  47. package/dist/pagination.js +6 -6
  48. package/dist/patch.d.ts +1 -1
  49. package/dist/patch.js +6 -6
  50. package/dist/{presentation-C5eHkevA.d.ts → presentation-COrFuj2g.d.ts} +398 -558
  51. package/dist/repo-readme.js +1 -1
  52. package/dist/schemas.d.ts +298 -1
  53. package/dist/schemas.js +1 -1
  54. package/dist/spec/README.md +1 -1
  55. package/dist/spec/catalogs/font-schemes/angsana-new.json +1 -1
  56. package/dist/spec/catalogs/font-schemes/aparajita.json +2 -2
  57. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +1 -1
  58. package/dist/spec/catalogs/font-schemes/batang.json +1 -1
  59. package/dist/spec/catalogs/font-schemes/daunpenh.json +1 -1
  60. package/dist/spec/catalogs/font-schemes/david.json +1 -1
  61. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +1 -1
  62. package/dist/spec/catalogs/font-schemes/fangsong.json +1 -1
  63. package/dist/spec/catalogs/font-schemes/gautami.json +1 -1
  64. package/dist/spec/catalogs/font-schemes/gisha.json +2 -2
  65. package/dist/spec/catalogs/font-schemes/gungsuh.json +1 -1
  66. package/dist/spec/catalogs/font-schemes/index.json +1 -1
  67. package/dist/spec/catalogs/font-schemes/kalinga.json +1 -1
  68. package/dist/spec/catalogs/font-schemes/kartika.json +1 -1
  69. package/dist/spec/catalogs/font-schemes/khmer-ui.json +1 -1
  70. package/dist/spec/catalogs/font-schemes/latha.json +1 -1
  71. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +1 -1
  72. package/dist/spec/catalogs/font-schemes/mangal.json +3 -3
  73. package/dist/spec/catalogs/font-schemes/meiryo.json +1 -1
  74. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +1 -1
  75. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +4 -4
  76. package/dist/spec/catalogs/font-schemes/mingliu.json +1 -1
  77. package/dist/spec/catalogs/font-schemes/miriam.json +1 -1
  78. package/dist/spec/catalogs/font-schemes/ms-mincho.json +1 -1
  79. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +1 -1
  80. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +1 -1
  81. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +2 -2
  82. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +3 -3
  83. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +1 -1
  84. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +2 -2
  85. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +2 -2
  86. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +1 -1
  87. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +1 -1
  88. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +1 -1
  89. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +1 -1
  90. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +1 -1
  91. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +1 -1
  92. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +1 -1
  93. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +1 -1
  94. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +1 -1
  95. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +1 -1
  96. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +1 -1
  97. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +1 -1
  98. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +4 -4
  99. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +1 -1
  100. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +1 -1
  101. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +1 -1
  102. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +1 -1
  103. package/dist/spec/catalogs/font-schemes/noto-sans.json +4 -4
  104. package/dist/spec/catalogs/font-schemes/nyala.json +1 -1
  105. package/dist/spec/catalogs/font-schemes/pmingliu.json +1 -1
  106. package/dist/spec/catalogs/font-schemes/raavi.json +1 -1
  107. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +3 -3
  108. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +2 -2
  109. package/dist/spec/catalogs/font-schemes/shruti.json +1 -1
  110. package/dist/spec/catalogs/font-schemes/simsun.json +1 -1
  111. package/dist/spec/catalogs/font-schemes/sylfaen.json +2 -2
  112. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +3 -3
  113. package/dist/spec/catalogs/font-schemes/tunga.json +1 -1
  114. package/dist/spec/catalogs/font-schemes/vrinda.json +1 -1
  115. package/dist/spec/catalogs/font-schemes/yu-gothic.json +1 -1
  116. package/dist/spec/catalogs/layouts/business-model-canvas.json +66 -1
  117. package/dist/spec/catalogs/layouts/capability-map.json +53 -6
  118. package/dist/spec/catalogs/layouts/chart-1x-title-center.json +30 -0
  119. package/dist/spec/catalogs/layouts/chart-2x-title-center.json +36 -0
  120. package/dist/spec/catalogs/layouts/chart-2x-vertical-title-left.json +37 -0
  121. package/dist/spec/catalogs/layouts/chart-2x.json +32 -8
  122. package/dist/spec/catalogs/layouts/chart-3x-bottom-vertical-title-left.json +52 -0
  123. package/dist/spec/catalogs/layouts/chart-3x-left-title-center.json +51 -0
  124. package/dist/spec/catalogs/layouts/chart-3x-left.json +46 -0
  125. package/dist/spec/catalogs/layouts/chart-3x-right-title-center.json +51 -0
  126. package/dist/spec/catalogs/layouts/chart-3x-right.json +46 -0
  127. package/dist/spec/catalogs/layouts/chart-3x-title-center.json +39 -0
  128. package/dist/spec/catalogs/layouts/chart-3x-top-vertical-title-left.json +52 -0
  129. package/dist/spec/catalogs/layouts/chart-3x.json +48 -12
  130. package/dist/spec/catalogs/layouts/competitive-landscape.json +1 -4
  131. package/dist/spec/catalogs/layouts/customer-journey.json +1 -4
  132. package/dist/spec/catalogs/layouts/dashboard.json +37 -5
  133. package/dist/spec/catalogs/layouts/decision-tree.json +1 -4
  134. package/dist/spec/catalogs/layouts/ecosystem-map.json +1 -4
  135. package/dist/spec/catalogs/layouts/extract/canonical.json +0 -9
  136. package/dist/spec/catalogs/layouts/geographic-map.json +1 -4
  137. package/dist/spec/catalogs/layouts/icon-grid.json +1 -4
  138. package/dist/spec/catalogs/layouts/image-1x-crop-title-center.json +32 -0
  139. package/dist/spec/catalogs/layouts/image-1x-crop-title-left.json +32 -0
  140. package/dist/spec/catalogs/layouts/image-1x-crop.json +27 -0
  141. package/dist/spec/catalogs/layouts/image-1x-fit-title-center.json +32 -0
  142. package/dist/spec/catalogs/layouts/image-1x.json +3 -0
  143. package/dist/spec/catalogs/layouts/image-2x-crop-title-center.json +38 -0
  144. package/dist/spec/catalogs/layouts/image-2x-crop-vertical-title-left.json +39 -0
  145. package/dist/spec/catalogs/layouts/image-2x-crop-vertical.json +34 -0
  146. package/dist/spec/catalogs/layouts/image-2x-crop.json +33 -0
  147. package/dist/spec/catalogs/layouts/image-2x-fit-title-center.json +38 -0
  148. package/dist/spec/catalogs/layouts/image-2x-fit-vertical-title-left.json +39 -0
  149. package/dist/spec/catalogs/layouts/image-2x-fit-vertical.json +34 -0
  150. package/dist/spec/catalogs/layouts/image-2x.json +35 -8
  151. package/dist/spec/catalogs/layouts/image-3x-crop-title-center.json +41 -0
  152. package/dist/spec/catalogs/layouts/image-3x-crop-vertical-title-left.json +42 -0
  153. package/dist/spec/catalogs/layouts/image-3x-crop-vertical.json +37 -0
  154. package/dist/spec/catalogs/layouts/image-3x-crop.json +36 -0
  155. package/dist/spec/catalogs/layouts/image-3x-fit-title-center.json +41 -0
  156. package/dist/spec/catalogs/layouts/image-3x-fit-vertical-title-left.json +42 -0
  157. package/dist/spec/catalogs/layouts/image-3x-fit-vertical.json +37 -0
  158. package/dist/spec/catalogs/layouts/image-3x-fit.json +36 -0
  159. package/dist/spec/catalogs/layouts/image-3x.json +51 -12
  160. package/dist/spec/catalogs/layouts/image-focus.json +3 -6
  161. package/dist/spec/catalogs/layouts/image-only-1x-crop-title-center.json +31 -0
  162. package/dist/spec/catalogs/layouts/image-only-1x-fit-title-center.json +31 -0
  163. package/dist/spec/catalogs/layouts/image-only-2x-crop-title-center.json +37 -0
  164. package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical-title-left.json +38 -0
  165. package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical.json +33 -0
  166. package/dist/spec/catalogs/layouts/image-only-2x-fit-title-center.json +37 -0
  167. package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical-title-left.json +38 -0
  168. package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical.json +33 -0
  169. package/dist/spec/catalogs/layouts/image-only-3x-crop-title-center.json +40 -0
  170. package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical-title-left.json +41 -0
  171. package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical.json +36 -0
  172. package/dist/spec/catalogs/layouts/image-only-3x-crop.json +35 -0
  173. package/dist/spec/catalogs/layouts/image-only-3x-fit-title-center.json +40 -0
  174. package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical-title-left.json +41 -0
  175. package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical.json +36 -0
  176. package/dist/spec/catalogs/layouts/image-only-3x-fit.json +35 -0
  177. package/dist/spec/catalogs/layouts/index.json +1041 -151
  178. package/dist/spec/catalogs/layouts/kpi-scorecard.json +48 -3
  179. package/dist/spec/catalogs/layouts/list-1x-box-title-center.json +32 -0
  180. package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-center.json +33 -0
  181. package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-left.json +33 -0
  182. package/dist/spec/catalogs/layouts/list-1x-box-vertical.json +28 -0
  183. package/dist/spec/catalogs/layouts/list-1x-box.json +27 -0
  184. package/dist/spec/catalogs/layouts/list-1x-itemimage-title-center.json +32 -0
  185. package/dist/spec/catalogs/layouts/list-1x-itemimage-vertical-title-center.json +33 -0
  186. package/dist/spec/catalogs/layouts/list-1x-title-center.json +31 -0
  187. package/dist/spec/catalogs/layouts/list-1x-vertical-title-center.json +32 -0
  188. package/dist/spec/catalogs/layouts/list-2x-box-title-center.json +38 -0
  189. package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-center.json +39 -0
  190. package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-left.json +39 -0
  191. package/dist/spec/catalogs/layouts/list-2x-box-vertical.json +34 -0
  192. package/dist/spec/catalogs/layouts/list-2x-box.json +33 -0
  193. package/dist/spec/catalogs/layouts/list-2x-itemimage-title-center.json +38 -0
  194. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-center.json +39 -0
  195. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-left.json +39 -0
  196. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical.json +34 -0
  197. package/dist/spec/catalogs/layouts/list-2x-title-center.json +37 -0
  198. package/dist/spec/catalogs/layouts/list-2x-vertical-title-center.json +38 -0
  199. package/dist/spec/catalogs/layouts/list-2x-vertical-title-left.json +38 -0
  200. package/dist/spec/catalogs/layouts/list-2x-vertical.json +33 -0
  201. package/dist/spec/catalogs/layouts/list-3x-box-title-center.json +41 -0
  202. package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-center.json +42 -0
  203. package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-left.json +42 -0
  204. package/dist/spec/catalogs/layouts/list-3x-box-vertical.json +37 -0
  205. package/dist/spec/catalogs/layouts/list-3x-box.json +36 -0
  206. package/dist/spec/catalogs/layouts/list-3x-itemimage-title-center.json +41 -0
  207. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-center.json +42 -0
  208. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-left.json +42 -0
  209. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical.json +37 -0
  210. package/dist/spec/catalogs/layouts/list-3x-itemimage.json +36 -0
  211. package/dist/spec/catalogs/layouts/list-3x-title-center.json +40 -0
  212. package/dist/spec/catalogs/layouts/list-3x-vertical-title-center.json +41 -0
  213. package/dist/spec/catalogs/layouts/list-3x-vertical-title-left.json +41 -0
  214. package/dist/spec/catalogs/layouts/list-3x-vertical.json +36 -0
  215. package/dist/spec/catalogs/layouts/list-4x-box-title-center.json +45 -0
  216. package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-center.json +45 -0
  217. package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-left.json +45 -0
  218. package/dist/spec/catalogs/layouts/list-4x-box-vertical.json +40 -0
  219. package/dist/spec/catalogs/layouts/list-4x-box.json +40 -0
  220. package/dist/spec/catalogs/layouts/list-4x-itemimage-title-center.json +45 -0
  221. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-center.json +45 -0
  222. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-left.json +45 -0
  223. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical.json +40 -0
  224. package/dist/spec/catalogs/layouts/list-4x-title-center.json +44 -0
  225. package/dist/spec/catalogs/layouts/list-4x-vertical-title-center.json +44 -0
  226. package/dist/spec/catalogs/layouts/list-4x-vertical-title-left.json +44 -0
  227. package/dist/spec/catalogs/layouts/list-4x-vertical.json +39 -0
  228. package/dist/spec/catalogs/layouts/list-5x-box-title-center.json +48 -0
  229. package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-center.json +50 -0
  230. package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-left.json +50 -0
  231. package/dist/spec/catalogs/layouts/list-5x-box-vertical.json +45 -0
  232. package/dist/spec/catalogs/layouts/list-5x-box.json +43 -0
  233. package/dist/spec/catalogs/layouts/list-5x-itemimage-title-center.json +48 -0
  234. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-center.json +48 -0
  235. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-left.json +48 -0
  236. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical.json +43 -0
  237. package/dist/spec/catalogs/layouts/list-5x-title-center.json +47 -0
  238. package/dist/spec/catalogs/layouts/list-5x-vertical-title-center.json +47 -0
  239. package/dist/spec/catalogs/layouts/list-5x-vertical-title-left.json +47 -0
  240. package/dist/spec/catalogs/layouts/list-5x-vertical.json +42 -0
  241. package/dist/spec/catalogs/layouts/list-6x-box-title-center.json +51 -0
  242. package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-center.json +53 -0
  243. package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-left.json +53 -0
  244. package/dist/spec/catalogs/layouts/list-6x-box-vertical.json +48 -0
  245. package/dist/spec/catalogs/layouts/list-6x-box.json +46 -0
  246. package/dist/spec/catalogs/layouts/list-6x-itemimage-title-center.json +51 -0
  247. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-center.json +51 -0
  248. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-left.json +51 -0
  249. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical.json +46 -0
  250. package/dist/spec/catalogs/layouts/list-6x-title-center.json +50 -0
  251. package/dist/spec/catalogs/layouts/list-6x-vertical-title-center.json +50 -0
  252. package/dist/spec/catalogs/layouts/list-6x-vertical-title-left.json +50 -0
  253. package/dist/spec/catalogs/layouts/list-6x-vertical.json +45 -0
  254. package/dist/spec/catalogs/layouts/logic-tree.json +69 -0
  255. package/dist/spec/catalogs/layouts/market-size.json +26 -2
  256. package/dist/spec/catalogs/layouts/network-dependency-map.json +1 -4
  257. package/dist/spec/catalogs/layouts/number-1x-box-title-center.json +30 -0
  258. package/dist/spec/catalogs/layouts/number-1x-box.json +25 -0
  259. package/dist/spec/catalogs/layouts/number-1x-title-center.json +29 -0
  260. package/dist/spec/catalogs/layouts/number-2x-box-title-center.json +36 -0
  261. package/dist/spec/catalogs/layouts/number-2x-box.json +31 -0
  262. package/dist/spec/catalogs/layouts/number-2x-title-center.json +35 -0
  263. package/dist/spec/catalogs/layouts/number-3x-box-title-center.json +39 -0
  264. package/dist/spec/catalogs/layouts/number-3x-box.json +34 -0
  265. package/dist/spec/catalogs/layouts/number-3x-title-center.json +38 -0
  266. package/dist/spec/catalogs/layouts/number-4x-box-title-center.json +43 -0
  267. package/dist/spec/catalogs/layouts/number-4x-box.json +38 -0
  268. package/dist/spec/catalogs/layouts/number-4x-title-center.json +42 -0
  269. package/dist/spec/catalogs/layouts/number-5x-box-title-center.json +46 -0
  270. package/dist/spec/catalogs/layouts/number-5x-box.json +41 -0
  271. package/dist/spec/catalogs/layouts/number-5x-title-center.json +45 -0
  272. package/dist/spec/catalogs/layouts/number-6x-box-title-center.json +49 -0
  273. package/dist/spec/catalogs/layouts/number-6x-box.json +44 -0
  274. package/dist/spec/catalogs/layouts/number-6x-title-center.json +48 -0
  275. package/dist/spec/catalogs/layouts/org-chart.json +53 -6
  276. package/dist/spec/catalogs/layouts/persona-grid.json +1 -4
  277. package/dist/spec/catalogs/layouts/photo-grid.json +1 -4
  278. package/dist/spec/catalogs/layouts/product-feature.json +1 -4
  279. package/dist/spec/catalogs/layouts/screenshot-walkthrough.json +1 -4
  280. package/dist/spec/catalogs/layouts/swimlane-process.json +1 -4
  281. package/dist/spec/catalogs/layouts/team-bio.json +1 -4
  282. package/dist/spec/catalogs/layouts/text-1x-box-title-center.json +31 -0
  283. package/dist/spec/catalogs/layouts/text-1x-box-title-left.json +31 -0
  284. package/dist/spec/catalogs/layouts/text-1x-center-box-title-center.json +31 -0
  285. package/dist/spec/catalogs/layouts/text-1x-center-box-title-left.json +31 -0
  286. package/dist/spec/catalogs/layouts/text-1x-center-box.json +26 -0
  287. package/dist/spec/catalogs/layouts/text-1x-center-title-center.json +30 -0
  288. package/dist/spec/catalogs/layouts/text-1x-center-title-left.json +30 -0
  289. package/dist/spec/catalogs/layouts/text-1x-center.json +25 -0
  290. package/dist/spec/catalogs/layouts/text-1x-left-box.json +26 -0
  291. package/dist/spec/catalogs/layouts/text-1x-title-center.json +30 -0
  292. package/dist/spec/catalogs/layouts/text-2x-box-title-center.json +37 -0
  293. package/dist/spec/catalogs/layouts/text-2x-box-vertical-title-left.json +37 -0
  294. package/dist/spec/catalogs/layouts/text-2x-center-box-title-center.json +37 -0
  295. package/dist/spec/catalogs/layouts/text-2x-center-box-vertical-title-left.json +37 -0
  296. package/dist/spec/catalogs/layouts/text-2x-center-box.json +32 -0
  297. package/dist/spec/catalogs/layouts/text-2x-center-title-center.json +36 -0
  298. package/dist/spec/catalogs/layouts/text-2x-center-vertical-title-left.json +36 -0
  299. package/dist/spec/catalogs/layouts/text-2x-center.json +31 -0
  300. package/dist/spec/catalogs/layouts/text-2x-left-box.json +32 -0
  301. package/dist/spec/catalogs/layouts/text-2x-title-center.json +36 -0
  302. package/dist/spec/catalogs/layouts/text-2x-vertical-title-left.json +36 -0
  303. package/dist/spec/catalogs/layouts/text-3x-box-title-center.json +40 -0
  304. package/dist/spec/catalogs/layouts/text-3x-box-vertical-title-left.json +41 -0
  305. package/dist/spec/catalogs/layouts/text-3x-center-box-title-center.json +40 -0
  306. package/dist/spec/catalogs/layouts/text-3x-center-box-vertical-title-left.json +41 -0
  307. package/dist/spec/catalogs/layouts/text-3x-center-box.json +35 -0
  308. package/dist/spec/catalogs/layouts/text-3x-center-title-center.json +39 -0
  309. package/dist/spec/catalogs/layouts/text-3x-center-vertical-title-left.json +40 -0
  310. package/dist/spec/catalogs/layouts/text-3x-center.json +34 -0
  311. package/dist/spec/catalogs/layouts/text-3x-left-box.json +35 -0
  312. package/dist/spec/catalogs/layouts/text-3x-left.json +34 -0
  313. package/dist/spec/catalogs/layouts/text-3x-title-center.json +39 -0
  314. package/dist/spec/catalogs/layouts/text-3x-vertical-title-left.json +40 -0
  315. package/dist/spec/catalogs/layouts/title-center-box.json +27 -0
  316. package/dist/spec/catalogs/layouts/title-center-image-bottom.json +34 -0
  317. package/dist/spec/catalogs/layouts/title-center-image-top.json +34 -0
  318. package/dist/spec/catalogs/layouts/title-center.json +26 -0
  319. package/dist/spec/catalogs/layouts/title-left-image-bottom.json +34 -0
  320. package/dist/spec/catalogs/layouts/title-left-image-left.json +34 -0
  321. package/dist/spec/catalogs/layouts/title-left-image-right.json +34 -0
  322. package/dist/spec/catalogs/layouts/title-left-image-top.json +34 -0
  323. package/dist/spec/catalogs/manifest.json +18 -18
  324. package/dist/spec/catalogs/narratives/heros-journey.json +1 -1
  325. package/dist/spec/catalogs/narratives/index.json +1 -1
  326. package/dist/spec/openapi.yaml +3 -3
  327. package/dist/spec/reference/engine-defaults.json +22 -30
  328. package/dist/spec/reference/engine-vocabularies.json +1577 -0
  329. package/dist/spec/schemas/audience.schema.json +5 -26
  330. package/dist/spec/schemas/catalog-manifest.schema.json +3 -3
  331. package/dist/spec/schemas/chart-type.schema.json +2 -35
  332. package/dist/spec/schemas/color-scheme.schema.json +3 -24
  333. package/dist/spec/schemas/finding.schema.json +1 -1
  334. package/dist/spec/schemas/font-scheme.schema.json +6 -37
  335. package/dist/spec/schemas/language.schema.json +7 -28
  336. package/dist/spec/schemas/layout.schema.json +227 -55
  337. package/dist/spec/schemas/narrative.schema.json +4 -24
  338. package/dist/spec/schemas/opf.schema.json +410 -374
  339. package/dist/spec/schemas/purpose.schema.json +5 -26
  340. package/dist/spec/schemas/social-platform.schema.json +2 -23
  341. package/dist/spec/schemas/theme.schema.json +9 -37
  342. package/dist/spec/schemas/tone.schema.json +4 -25
  343. package/dist/spec-files.d.ts +1 -1
  344. package/dist/spec-files.js +1 -1
  345. package/dist/types.d.ts +1103 -4
  346. package/dist/{validation-types-zh03LeZy.d.ts → validation-types-HxIgJfKx.d.ts} +7 -7
  347. package/dist/validator.d.ts +15 -12
  348. package/dist/validator.js +5 -5
  349. package/dist/yaml.d.ts +22 -7
  350. package/dist/yaml.js +9 -321
  351. package/package.json +9 -9
  352. package/dist/catalogs-D-yyQWCQ.d.ts +0 -1343
  353. package/dist/catalogs.d.ts +0 -2
  354. package/dist/catalogs.js +0 -2
  355. package/dist/chunk-PIQXLBBJ.js +0 -445
  356. package/dist/chunk-S5W34SIJ.js +0 -1
  357. package/dist/previews.d.ts +0 -40
  358. package/dist/previews.js +0 -1
  359. package/dist/schemas-DDpqAgyS.d.ts +0 -284
  360. package/dist/spec/catalogs/layouts/image-bleed.json +0 -20
@@ -1,1343 +0,0 @@
1
- import { S as SchemaName } from './schemas-DDpqAgyS.js';
2
-
3
- /**
4
- * Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executive', 'engineering-team', 'investor') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.
5
- */
6
- interface Audience {
7
- /**
8
- * Identifies this record as an audience in the openpresentation.org catalog.
9
- */
10
- $schema: "https://openpresentation.org/schema/opf-audience/v1";
11
- /**
12
- * Stable slug used by OPF documents to reference this audience via audience. Lowercase kebab-case.
13
- */
14
- id: string;
15
- /**
16
- * Human-readable audience name shown in pickers.
17
- */
18
- name: string;
19
- /**
20
- * Present when this audience is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
21
- */
22
- deprecation?: {
23
- /**
24
- * Id of the non-deprecated audience record that documents should reference instead.
25
- */
26
- replacedBy: string;
27
- /**
28
- * Why the record is deprecated.
29
- */
30
- reason?: string;
31
- /**
32
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
33
- */
34
- removal?: string;
35
- };
36
- /**
37
- * One-sentence positioning of the audience — who they are and what they care about.
38
- */
39
- summary?: string;
40
- /**
41
- * Longer prose describing the audience archetype and how to address them.
42
- */
43
- description?: string;
44
- /**
45
- * Typical seniority level of the audience. Engines use this as a hint for default depth and pacing.
46
- */
47
- seniority?: ("ic" | "manager" | "director" | "vp" | "c-suite" | "mixed");
48
- /**
49
- * Typical technical fluency of the audience. AI generation uses this to decide whether to expand or assume technical terminology.
50
- */
51
- technicalFluency?: ("low" | "medium" | "high" | "mixed");
52
- /**
53
- * Whether the audience is expected to be informed, to advise, or to actually decide. Shapes the strength of the closing ask.
54
- */
55
- decisionPower?: ("informational" | "advisory" | "decision-maker");
56
- /**
57
- * Realistic upper bound on this audience's focused attention for a single presentation, in minutes. Used as a hint when comparing against duration and the resolved narrative's duration range.
58
- */
59
- attentionBudgetMinutes?: number;
60
- /**
61
- * Soft cross-link: narrative-catalog ids that work well for this audience. Used by picker UIs to suggest narratives once an audience is chosen. Validators warn on unknown ids; never error.
62
- */
63
- recommendedNarratives?: string[];
64
- /**
65
- * Soft cross-link: tone-catalog ids that work well for this audience.
66
- */
67
- recommendedTones?: string[];
68
- /**
69
- * Free-form labels for filtering and search.
70
- */
71
- tags?: string[];
72
- /**
73
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional.
74
- */
75
- preview?: {
76
- /**
77
- * Main preview image (PNG/JPG).
78
- */
79
- src?: string;
80
- /**
81
- * Smaller thumbnail preview suited to dense grid views.
82
- */
83
- thumbnailSrc?: string;
84
- /**
85
- * SVG / vector preview for crisp scaling at any size.
86
- */
87
- vectorSrc?: string;
88
- [k: string]: unknown;
89
- };
90
- [k: string]: unknown;
91
- }
92
-
93
- /**
94
- * Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.
95
- */
96
- interface Purpose {
97
- /**
98
- * Identifies this record as a purpose in the openpresentation.org catalog.
99
- */
100
- $schema: "https://openpresentation.org/schema/opf-purpose/v1";
101
- /**
102
- * Stable slug used by OPF documents to reference this purpose via purpose. Lowercase kebab-case.
103
- */
104
- id: string;
105
- /**
106
- * Human-readable purpose name shown in pickers.
107
- */
108
- name: string;
109
- /**
110
- * Present when this purpose is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
111
- */
112
- deprecation?: {
113
- /**
114
- * Id of the non-deprecated purpose record that documents should reference instead.
115
- */
116
- replacedBy: string;
117
- /**
118
- * Why the record is deprecated.
119
- */
120
- reason?: string;
121
- /**
122
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
123
- */
124
- removal?: string;
125
- };
126
- /**
127
- * One-sentence positioning of the purpose — what this deck is trying to accomplish.
128
- */
129
- summary?: string;
130
- /**
131
- * Longer prose describing when to use this purpose and how it should shape a deck.
132
- */
133
- description?: string;
134
- /**
135
- * Desired audience outcome after the presentation.
136
- */
137
- outcome?: string;
138
- /**
139
- * Observable signals that the deck accomplished this purpose.
140
- */
141
- successCriteria?: string[];
142
- /**
143
- * Soft cross-link: narrative-catalog ids that work well for this purpose.
144
- */
145
- recommendedNarratives?: string[];
146
- /**
147
- * Soft cross-link: tone-catalog ids that work well for this purpose.
148
- */
149
- recommendedTones?: string[];
150
- /**
151
- * Free-form labels for filtering and search.
152
- */
153
- tags?: string[];
154
- /**
155
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional.
156
- */
157
- preview?: {
158
- /**
159
- * Main preview image (PNG/JPG).
160
- */
161
- src?: string;
162
- /**
163
- * Smaller thumbnail preview suited to dense grid views.
164
- */
165
- thumbnailSrc?: string;
166
- /**
167
- * SVG / vector preview for crisp scaling at any size.
168
- */
169
- vectorSrc?: string;
170
- [k: string]: unknown;
171
- };
172
- [k: string]: unknown;
173
- }
174
-
175
- /**
176
- * Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.
177
- */
178
- interface Tone {
179
- /**
180
- * Identifies this record as a tone in the openpresentation.org catalog.
181
- */
182
- $schema: "https://openpresentation.org/schema/opf-tone/v1";
183
- /**
184
- * Stable slug used by OPF documents to reference this tone via tone. Lowercase kebab-case.
185
- */
186
- id: string;
187
- /**
188
- * Human-readable tone name shown in pickers.
189
- */
190
- name: string;
191
- /**
192
- * Present when this tone is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
193
- */
194
- deprecation?: {
195
- /**
196
- * Id of the non-deprecated tone record that documents should reference instead.
197
- */
198
- replacedBy: string;
199
- /**
200
- * Why the record is deprecated.
201
- */
202
- reason?: string;
203
- /**
204
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
205
- */
206
- removal?: string;
207
- };
208
- /**
209
- * One-sentence positioning of the tone — when to reach for it.
210
- */
211
- summary?: string;
212
- /**
213
- * Longer prose describing the tone and the kinds of decks it suits.
214
- */
215
- description?: string;
216
- /**
217
- * Short directives that shape AI generation toward this tone. Phrased as imperatives, e.g. 'use second-person', 'favor short sentences', 'lead with the recommendation'.
218
- */
219
- voiceCues?: string[];
220
- /**
221
- * Anti-patterns that AI generation should not produce when this tone is active.
222
- */
223
- avoid?: string[];
224
- /**
225
- * Short example phrases that exemplify this tone. Used by picker UIs and as few-shot examples for AI generation.
226
- */
227
- samplePhrases?: string[];
228
- /**
229
- * Soft cross-link: narrative-catalog ids this tone pairs well with. Used by picker UIs to suggest narratives once a tone is chosen. Validators warn on unknown ids; never error.
230
- */
231
- recommendedNarratives?: string[];
232
- /**
233
- * Free-form labels for filtering and search.
234
- */
235
- tags?: string[];
236
- /**
237
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional.
238
- */
239
- preview?: {
240
- /**
241
- * Main preview image (PNG/JPG).
242
- */
243
- src?: string;
244
- /**
245
- * Smaller thumbnail preview suited to dense grid views.
246
- */
247
- thumbnailSrc?: string;
248
- /**
249
- * SVG / vector preview for crisp scaling at any size.
250
- */
251
- vectorSrc?: string;
252
- [k: string]: unknown;
253
- };
254
- [k: string]: unknown;
255
- }
256
-
257
- /**
258
- * PowerPoint theme-controlled slide background slot from the active color scheme. These are slots, not assumptions about actual colors: light1 is usually white and dark1 is usually black by convention, but the color scheme controls the real values.
259
- *
260
- * This interface was referenced by `Theme`'s JSON-Schema
261
- * via the `definition` "ThemeBackgroundSlot".
262
- */
263
- type ThemeBackgroundSlot = ("light1" | "light2" | "dark1" | "dark2");
264
- /**
265
- * Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.
266
- */
267
- interface Theme {
268
- /**
269
- * Identifies this record as a theme in the openpresentation.org catalog.
270
- */
271
- $schema: "https://openpresentation.org/schema/opf-theme/v1";
272
- /**
273
- * Stable slug used by OPF documents to reference this theme via design.theme. Lowercase kebab-case.
274
- */
275
- id: string;
276
- /**
277
- * Human-readable theme name shown in pickers.
278
- */
279
- name: string;
280
- /**
281
- * Present when this theme is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
282
- */
283
- deprecation?: {
284
- /**
285
- * Id of the non-deprecated theme record that documents should reference instead.
286
- */
287
- replacedBy: string;
288
- /**
289
- * Why the record is deprecated.
290
- */
291
- reason?: string;
292
- /**
293
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
294
- */
295
- removal?: string;
296
- };
297
- /**
298
- * One-sentence positioning of the theme — when to reach for it.
299
- */
300
- summary?: string;
301
- /**
302
- * Longer prose describing what the theme looks and feels like and the kinds of decks it suits.
303
- */
304
- description?: string;
305
- /**
306
- * Catalog reference to the theme's default color scheme — resolved against catalogs.colorSchemes the same way design.colorScheme or design.colorScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference.
307
- */
308
- colorScheme?: string;
309
- /**
310
- * Catalog reference to the theme's default font scheme — resolved against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id is. Accepts a bare id, HTTPS URL, or 'pkg:' reference.
311
- */
312
- fontScheme?: string;
313
- background?: ThemeBackground;
314
- /**
315
- * Default slide size for this theme. Accepts the same preset values as design.dimensions.preset.
316
- */
317
- dimensions?: ("16:9" | "4:3" | "16:10" | "1:1" | "4:5" | "9:16" | "letter" | "a4" | "widescreen" | "standard");
318
- /**
319
- * Free-form labels for filtering and search.
320
- */
321
- tags?: string[];
322
- /**
323
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
324
- */
325
- preview?: {
326
- /**
327
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
328
- */
329
- src?: string;
330
- /**
331
- * Smaller thumbnail preview suited to dense grid views.
332
- */
333
- thumbnailSrc?: string;
334
- /**
335
- * SVG / vector preview for crisp scaling at any size.
336
- */
337
- vectorSrc?: string;
338
- [k: string]: unknown;
339
- };
340
- [k: string]: unknown;
341
- }
342
- /**
343
- * Theme-controlled PowerPoint slide background. The slot is resolved through the active color scheme and remains theme-aware.
344
- *
345
- * This interface was referenced by `Theme`'s JSON-Schema
346
- * via the `definition` "ThemeBackground".
347
- */
348
- interface ThemeBackground {
349
- /**
350
- * Theme-controlled background fill.
351
- */
352
- type: "theme";
353
- slot: ThemeBackgroundSlot;
354
- [k: string]: unknown;
355
- }
356
-
357
- /**
358
- * Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.
359
- */
360
- interface Layout {
361
- /**
362
- * Identifies this record as a slide layout in the openpresentation.org catalog.
363
- */
364
- $schema: "https://openpresentation.org/schema/opf-layout/v1";
365
- /**
366
- * Stable slug used by OPF documents to reference this layout via Slide.layout. Lowercase kebab-case.
367
- */
368
- id: string;
369
- /**
370
- * Human-readable layout name shown in layout pickers.
371
- */
372
- name: string;
373
- /**
374
- * Present when this layout is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
375
- */
376
- deprecation?: {
377
- /**
378
- * Id of the non-deprecated layout record that documents should reference instead.
379
- */
380
- replacedBy: string;
381
- /**
382
- * Why the record is deprecated.
383
- */
384
- reason?: string;
385
- /**
386
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
387
- */
388
- removal?: string;
389
- };
390
- /**
391
- * One-sentence positioning of the layout — when to reach for it.
392
- */
393
- summary?: string;
394
- /**
395
- * Longer prose describing the layout structure and ideal use cases.
396
- */
397
- description?: string;
398
- design?: DesignHints;
399
- /**
400
- * Ordered regions the layout exposes. This is the single source of truth for what the layout holds: the content kind, the number of body regions and whether it has a title, subtitle or tag are derived from it (layoutContent in @openpresentation/opf), never stored separately. The engine fills 'title', 'subtitle' and 'tag' placeholders from Slide.title, Slide.subtitle and Slide.tag. The other placeholders are content-kind regions that composition uses to size the body and that pickers use to match layouts. Slide content itself lives either in root payload fields or promoted region keys on Slide. Chrome (slide number, footer, date) is not included here; it is owned by Design.header / Design.footer.
401
- */
402
- placeholders?: Placeholder[];
403
- /**
404
- * Free-form labels for filtering and search.
405
- */
406
- tags?: string[];
407
- /**
408
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
409
- */
410
- preview?: {
411
- /**
412
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
413
- */
414
- src?: string;
415
- /**
416
- * Smaller thumbnail preview suited to dense grid views.
417
- */
418
- thumbnailSrc?: string;
419
- /**
420
- * SVG / vector preview for crisp scaling at any size.
421
- */
422
- vectorSrc?: string;
423
- [k: string]: unknown;
424
- };
425
- composition?: Composition;
426
- [k: string]: unknown;
427
- }
428
- /**
429
- * The layout's design hints, with the same keys and values as the deck's design and a slide's design (a slide overrides exactly what its layout sets, by the same name). An absent key means the layout has no opinion. Every key is applied from the record as the lowest-precedence default, per key: the slide's design, then the deck's design, then this record's design, then the engine default, so a layout value nobody overrides is honored without copying it anywhere (a layout's composition.mode still ranks above contentDirection; slideImage.position is the fallback position of a slide image the layout reserves). Composition, the renderer and the PPTX exporter all read the one result.
430
- */
431
- interface DesignHints {
432
- /**
433
- * Horizontal alignment of the title placeholder.
434
- */
435
- titleAlignment?: ("left" | "center" | "right");
436
- /**
437
- * Horizontal alignment of the body regions.
438
- */
439
- contentAlignment?: ("left" | "center" | "right");
440
- /**
441
- * Whether the body regions are drawn inside a visible card or surface.
442
- */
443
- contentBox?: boolean;
444
- /**
445
- * Axis along which parallel body content is arranged: 'vertical' is a column, 'horizontal' a row. Composition applies it when neither the slide nor this layout's composition sets a mode, below the slide's and the deck's design.contentDirection and above automatic selection.
446
- */
447
- contentDirection?: ("horizontal" | "vertical");
448
- /**
449
- * Where the primary chart sits relative to the other body content. Composition applies it below the slide's and the deck's design.chartPrimary, with the semantics described there.
450
- */
451
- chartPrimary?: ("none" | "top" | "bottom" | "left" | "right");
452
- /**
453
- * How images fill their region: 'crop' covers the region, 'fit' shows the whole image.
454
- */
455
- imageFill?: ("crop" | "fit");
456
- /**
457
- * Marker style of lists: 'character' draws the glyph, 'image' draws the deck's icon logo as a picture bullet.
458
- */
459
- listBullet?: ("character" | "image");
460
- /**
461
- * A slide-level image region the layout reserves, separate from any content image. Its presence is what lets a deck-wide design.slideImage apply to slides on this layout. The image itself comes from the slide or the deck design.
462
- */
463
- slideImage?: {
464
- /**
465
- * Where the slide-level image sits relative to the content. 'background' is a full-bleed image behind the content; the other positions give the image a band along that edge. Used when the slide's or deck's design.slideImage gives no position.
466
- */
467
- position: ("background" | "top" | "bottom" | "left" | "right");
468
- };
469
- }
470
- /**
471
- * A single region inside a slide layout. Title, subtitle, and tag placeholders bind to the corresponding Slide fields; every other placeholder describes the content kind that region holds. The array order in the surrounding 'placeholders' field preserves layout region order.
472
- *
473
- * This interface was referenced by `Layout`'s JSON-Schema
474
- * via the `definition` "Placeholder".
475
- */
476
- interface Placeholder {
477
- /**
478
- * The content kind of the region. This is the one OPF content-kind vocabulary: the same words name a slide's payload fields (text, items, image, video, chart, table, code, metric, quote, timeline). 'title', 'subtitle' and 'tag' are the heading kinds and bind to Slide.title, Slide.subtitle and Slide.tag. 'text' holds text and bullets; 'list' holds items. 'image' is filled by an image payload and 'video' by a video payload. 'metric', 'quote', 'timeline', 'chart', 'table' and 'code' are filled by the payload of the same name; a metric region shows the metric payload with its optional label, description, unit, delta, trend and sentiment.
479
- */
480
- type: ("title" | "subtitle" | "tag" | "text" | "list" | "image" | "video" | "chart" | "table" | "code" | "metric" | "quote" | "timeline");
481
- [k: string]: unknown;
482
- }
483
- /**
484
- * Portable dynamic composition. Slide fields override the resolved layout. Nested groups arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their positions.
485
- *
486
- * This interface was referenced by `Layout`'s JSON-Schema
487
- * via the `definition` "Composition".
488
- */
489
- interface Composition {
490
- /**
491
- * auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track.
492
- */
493
- mode?: ("auto" | "grid" | "row" | "column");
494
- /**
495
- * Column count for grid. In auto mode this caps the number of columns.
496
- */
497
- columns?: number;
498
- /**
499
- * Space between cells as a fraction of the container short edge (canvas at slide root). Default 0.03333333333333333.
500
- */
501
- gap?: number;
502
- /**
503
- * Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group.
504
- */
505
- padding?: number;
506
- /**
507
- * Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored.
508
- *
509
- * @minItems 1
510
- * @maxItems 12
511
- */
512
- weights?: [number] | [number, number] | [number, number, number] | [number, number, number, number] | [number, number, number, number, number] | [number, number, number, number, number, number] | [number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number] | [number, number, number, number, number, number, number, number, number, number, number, number];
513
- /**
514
- * Minimum readable text size in reference pixels at a 720-pixel canvas short edge. Default 16. Overflow is diagnosed when text cannot fit at this size.
515
- */
516
- minFontSize?: number;
517
- /**
518
- * warn returns diagnostics for content that does not fit; error rejects layout. Content is never silently removed. Default warn.
519
- */
520
- overflow?: ("warn" | "error");
521
- }
522
-
523
- /**
524
- * Schema for chart-type records in the pptx.gallery catalog. The bundled catalog holds one record per chart type that Aspose.Slides officially supports (see mappings.renderers["aspose-slides"].chartType), plus the column-and-line combination 'combo' (mappings.openxml.composition "mixed"). Each record names a chart variant, its Open XML mapping, how many data series it expects and how pickers group it. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.
525
- */
526
- interface ChartType {
527
- /**
528
- * Identifies this record as a chart type in the open presentation catalog.
529
- */
530
- $schema: "https://openpresentation.org/schema/opf-chart-type/v1";
531
- /**
532
- * Stable slug used by OPF documents to reference this chart type (`chart.type`). Lowercase kebab-case. Chart type ids may start with a digit (e.g., '100pct-stacked-column', '3d-column') to mirror conventional chart naming.
533
- */
534
- id: string;
535
- /**
536
- * Human-readable name of the chart type, as a chart picker shows it.
537
- */
538
- name: string;
539
- /**
540
- * One-sentence positioning: when to reach for this chart variant.
541
- */
542
- summary?: string;
543
- /**
544
- * Longer prose describing the chart and ideal use cases.
545
- */
546
- description?: string;
547
- mappings: ChartTypeMappings;
548
- deprecation?: ChartTypeDeprecation;
549
- /**
550
- * Top-level grouping in the chart picker.
551
- */
552
- group?: string;
553
- /**
554
- * Display ordering hint within the chart group.
555
- */
556
- groupSort?: number;
557
- /**
558
- * Shape of the underlying data: a flat series ('simple'), one with engine-side calculation ('calculated'), parent-child rows ('hierarchical'), or pre-normalized rows ('normalized'). The editor offers only 'simple' types as switch targets for a chart's existing data.
559
- */
560
- complexity?: ("simple" | "calculated" | "hierarchical" | "normalized");
561
- /**
562
- * Number of data series this chart type expects: exactly that many, except that a stacked or percent-stacked type and a combination (composition 'mixed', such as combo) expect at least that many. The editor offers a type that expects more than one series only for data with a fitting number of value columns; a one-series type fits one value column, and column, bar, line, area and radar types fit any number.
563
- */
564
- series?: number;
565
- /**
566
- * Free-form labels for filtering and search.
567
- */
568
- tags?: string[];
569
- /**
570
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
571
- */
572
- preview?: {
573
- /**
574
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
575
- */
576
- src?: string;
577
- /**
578
- * Smaller thumbnail preview suited to dense grid views.
579
- */
580
- thumbnailSrc?: string;
581
- /**
582
- * SVG / vector preview for crisp scaling at any size.
583
- */
584
- vectorSrc?: string;
585
- [k: string]: unknown;
586
- };
587
- /**
588
- * Publisher extension member, such as the `x-gallery` presentation metadata that pptx.gallery adds to the records it publishes. Engines and validators ignore top-level `x-*` members, and the pinned snapshot in spec/catalogs never carries them.
589
- *
590
- * This interface was referenced by `ChartType`'s JSON-Schema definition
591
- * via the `patternProperty` "^x-".
592
- */
593
- [k: string]: {
594
- [k: string]: unknown;
595
- } | "https://openpresentation.org/schema/opf-chart-type/v1" | string | ChartTypeMappings | ChartTypeDeprecation | number | "simple" | "calculated" | "hierarchical" | "normalized" | string[] | {
596
- /**
597
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
598
- */
599
- src?: string;
600
- /**
601
- * Smaller thumbnail preview suited to dense grid views.
602
- */
603
- thumbnailSrc?: string;
604
- /**
605
- * SVG / vector preview for crisp scaling at any size.
606
- */
607
- vectorSrc?: string;
608
- [k: string]: unknown;
609
- } | undefined;
610
- }
611
- /**
612
- * Canonical and optional renderer-specific mappings used by engines to render this chart type.
613
- */
614
- interface ChartTypeMappings {
615
- openxml: OpenXmlChartMapping;
616
- /**
617
- * Optional renderer-specific mappings. Keys are renderer ids; values are intentionally opaque to OPF. The bundled catalog records the matching Aspose.Slides ChartType enumeration member under the "aspose-slides" key, e.g. {"aspose-slides": {"chartType": "StackedColumn"}}; a mixed composition names the ChartType it starts from and the series type it switches series to, e.g. {"chartType": "ClusteredColumn", "lineSeriesType": "LineWithMarkers"}.
618
- */
619
- renderers?: {
620
- [k: string]: {
621
- [k: string]: unknown;
622
- };
623
- };
624
- }
625
- /**
626
- * Canonical mapping to Open XML chart structures.
627
- */
628
- interface OpenXmlChartMapping {
629
- /**
630
- * Primary Open XML chart element or extension chart element, such as 'barChart', 'lineChart', 'pieChart', 'treemapChart', or 'waterfallChart'.
631
- */
632
- element?: string;
633
- /**
634
- * Bar direction for Open XML barChart mappings.
635
- */
636
- barDir?: ("bar" | "col");
637
- /**
638
- * Open XML chart grouping value when the chart family supports grouping.
639
- */
640
- grouping?: ("standard" | "clustered" | "stacked" | "percentStacked");
641
- /**
642
- * Whether the chart type expects visible data markers.
643
- */
644
- marker?: boolean;
645
- /**
646
- * Open XML radarStyle value for radarChart mappings.
647
- */
648
- radarStyle?: ("standard" | "marker" | "filled");
649
- /**
650
- * Open XML scatterStyle value for scatterChart mappings.
651
- */
652
- scatterStyle?: ("line" | "lineMarker" | "marker" | "smooth" | "smoothMarker");
653
- /**
654
- * Whether the chart maps to one standard chart element, multiple combined chart elements, or an Open XML extension chart.
655
- */
656
- composition?: ("single" | "mixed" | "extension");
657
- /**
658
- * Optional Open XML extension namespace or element hint for extension charts.
659
- */
660
- extension?: string;
661
- /**
662
- * Open XML chart elements used by mixed/composite chart types.
663
- */
664
- series?: OpenXmlChartMapping1[];
665
- /**
666
- * Short implementation note for mappings that need renderer interpretation.
667
- */
668
- notes?: string;
669
- }
670
- /**
671
- * This interface was referenced by `ChartType`'s JSON-Schema
672
- * via the `definition` "OpenXmlChartMapping".
673
- */
674
- interface OpenXmlChartMapping1 {
675
- /**
676
- * Primary Open XML chart element or extension chart element, such as 'barChart', 'lineChart', 'pieChart', 'treemapChart', or 'waterfallChart'.
677
- */
678
- element?: string;
679
- /**
680
- * Bar direction for Open XML barChart mappings.
681
- */
682
- barDir?: ("bar" | "col");
683
- /**
684
- * Open XML chart grouping value when the chart family supports grouping.
685
- */
686
- grouping?: ("standard" | "clustered" | "stacked" | "percentStacked");
687
- /**
688
- * Whether the chart type expects visible data markers.
689
- */
690
- marker?: boolean;
691
- /**
692
- * Open XML radarStyle value for radarChart mappings.
693
- */
694
- radarStyle?: ("standard" | "marker" | "filled");
695
- /**
696
- * Open XML scatterStyle value for scatterChart mappings.
697
- */
698
- scatterStyle?: ("line" | "lineMarker" | "marker" | "smooth" | "smoothMarker");
699
- /**
700
- * Whether the chart maps to one standard chart element, multiple combined chart elements, or an Open XML extension chart.
701
- */
702
- composition?: ("single" | "mixed" | "extension");
703
- /**
704
- * Optional Open XML extension namespace or element hint for extension charts.
705
- */
706
- extension?: string;
707
- /**
708
- * Open XML chart elements used by mixed/composite chart types.
709
- */
710
- series?: OpenXmlChartMapping1[];
711
- /**
712
- * Short implementation note for mappings that need renderer interpretation.
713
- */
714
- notes?: string;
715
- }
716
- /**
717
- * Present when this chart type is deprecated. A deprecated record stays resolvable so existing documents keep validating, validators warn when a document references it, and pickers and generators should not offer it. The bundled default catalog holds no deprecated records; a publisher or an inline `catalogs.chartTypes.records` entry can still use the field.
718
- */
719
- interface ChartTypeDeprecation {
720
- /**
721
- * Id of the non-deprecated chart type that documents should reference instead.
722
- */
723
- replacedBy: string;
724
- /**
725
- * Why the record is deprecated.
726
- */
727
- reason?: string;
728
- /**
729
- * Package version in which the record is scheduled for removal from the bundled catalog.
730
- */
731
- removal?: string;
732
- }
733
-
734
- /**
735
- * Schema for narrative template files in the openpresentation.org catalog. A narrative is a plan: a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats, each saying what its slide must do. A document points at one with the string 'narrative' (a catalog id, an HTTPS URL or a 'pkg:' reference) and links its slides to beats with 'slides[].beat'. A custom narrative is a record in 'catalogs.narratives.records'. Core validate warns about a 'slides[].beat' id the resolved narrative does not define (opf/unknown-beat) and about a root 'duration' outside this record's 'duration' range (opf/duration-outside-narrative), and reports a beat no slide references (opf/unused-beat).
736
- */
737
- interface Narrative {
738
- $schema: "https://openpresentation.org/schema/opf-narrative/v1";
739
- /**
740
- * Stable slug used by OPF documents to reference this template, e.g. 'problem-solution'. Lowercase kebab-case.
741
- */
742
- id: string;
743
- /**
744
- * Human-readable template name, e.g. 'Problem → Solution'.
745
- */
746
- name: string;
747
- /**
748
- * Present when this narrative is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
749
- */
750
- deprecation?: {
751
- /**
752
- * Id of the non-deprecated narrative record that documents should reference instead.
753
- */
754
- replacedBy: string;
755
- /**
756
- * Why the record is deprecated.
757
- */
758
- reason?: string;
759
- /**
760
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
761
- */
762
- removal?: string;
763
- };
764
- /**
765
- * One-sentence description of when and why to use this narrative.
766
- */
767
- summary?: string;
768
- /**
769
- * Longer prose describing the narrative arc and ideal use cases. Used by AI-driven generation to seed deck-level direction.
770
- */
771
- description?: string;
772
- /**
773
- * Audiences this narrative works well for, e.g. ['executive', 'investor', 'customer'].
774
- */
775
- audienceFit?: string[];
776
- /**
777
- * Typical talk length this narrative suits, as a range in minutes. A deck's own target is the root 'duration' (one number); core validate warns when that target lies outside this range, and when 'min' is greater than 'max'.
778
- */
779
- duration?: {
780
- /**
781
- * Shortest talk length, in minutes, this narrative suits.
782
- */
783
- min?: number;
784
- /**
785
- * Longest talk length, in minutes, this narrative suits.
786
- */
787
- max?: number;
788
- };
789
- /**
790
- * Free-form labels for filtering and search, e.g. ['business', 'pitch', 'internal'].
791
- */
792
- tags?: string[];
793
- /**
794
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
795
- */
796
- preview?: {
797
- /**
798
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
799
- */
800
- src?: string;
801
- /**
802
- * Smaller thumbnail preview suited to dense grid views.
803
- */
804
- thumbnailSrc?: string;
805
- /**
806
- * SVG / vector preview for crisp scaling at any size.
807
- */
808
- vectorSrc?: string;
809
- [k: string]: unknown;
810
- };
811
- /**
812
- * Ordered list of beats that make up the narrative arc.
813
- *
814
- * @minItems 1
815
- */
816
- beats: [Beat, ...(Beat)[]];
817
- [k: string]: unknown;
818
- }
819
- /**
820
- * A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose. One beat is one slide: 'type' is that slide's Slide.type and 'layout' is its Slide.layout, so a planner copies them straight into a skeleton deck. Split a heavy beat into several beats rather than giving it several slides.
821
- *
822
- * This interface was referenced by `Narrative`'s JSON-Schema
823
- * via the `definition` "Beat".
824
- */
825
- interface Beat {
826
- /**
827
- * Stable slug used by Slide.beat to reference this beat. Lowercase kebab-case.
828
- */
829
- id: string;
830
- /**
831
- * Human-readable beat name, e.g. 'The Problem'.
832
- */
833
- name: string;
834
- /**
835
- * Curator-written prose that explains what this beat should accomplish.
836
- */
837
- description?: string;
838
- /**
839
- * Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.
840
- */
841
- instructions?: string;
842
- /**
843
- * Default content kind for the beat's slide: the same values as Slide.type. Helps engines and planners choose a layout when only the beat is known.
844
- */
845
- type?: ("text" | "list" | "image" | "video" | "chart" | "table" | "code" | "metric" | "quote" | "timeline");
846
- /**
847
- * Suggested layout id for the beat's slide, e.g. 'section-divider', 'title-slide', 'text-left'. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.
848
- */
849
- layout?: string;
850
- /**
851
- * Optional speaker or thinking cues for the beat: questions the slide should answer. A planner or author turns them into the slide's notes; no engine copies them there on its own.
852
- */
853
- thoughtCues?: string[];
854
- [k: string]: unknown;
855
- }
856
-
857
- /**
858
- * Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, and brand color. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and engines use the catalog record's URL patterns and handle prefix to format and link the profile URL. The brand color is catalog metadata for authoring UIs: engines (opf-render, opf-pptx) render the profile URL, not brand colors. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.
859
- */
860
- interface SocialPlatform {
861
- /**
862
- * Identifies this record as a social-platform entry in the openpresentation.org catalog.
863
- */
864
- $schema: "https://openpresentation.org/schema/opf-social-platform/v1";
865
- /**
866
- * Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.
867
- */
868
- id: string;
869
- /**
870
- * Human-readable platform name shown in pickers and footers.
871
- */
872
- name: string;
873
- /**
874
- * Present when this social platform is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
875
- */
876
- deprecation?: {
877
- /**
878
- * Id of the non-deprecated social platform record that documents should reference instead.
879
- */
880
- replacedBy: string;
881
- /**
882
- * Why the record is deprecated.
883
- */
884
- reason?: string;
885
- /**
886
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
887
- */
888
- removal?: string;
889
- };
890
- /**
891
- * One-sentence positioning of the platform — what it's used for and who's on it.
892
- */
893
- summary?: string;
894
- /**
895
- * Longer prose describing the platform and any rendering conventions (e.g., handle prefixes, distributed instances).
896
- */
897
- description?: string;
898
- /**
899
- * Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.
900
- */
901
- baseUrl?: string;
902
- /**
903
- * URL pattern for individual member profiles. Use '{handle}' as the placeholder for the handle (with the prefix already stripped).
904
- */
905
- profileUrlPattern?: string;
906
- /**
907
- * Optional URL pattern for organization / company pages, when the platform distinguishes them from member profiles. Use '{handle}' as the placeholder.
908
- */
909
- companyUrlPattern?: string;
910
- /**
911
- * Conventional prefix character displayed before the handle (e.g. '@' for X / Mastodon / Threads / TikTok). Empty string when no prefix is used. Renderers strip it before substituting into URL patterns.
912
- */
913
- handlePrefix?: string;
914
- /**
915
- * Example handle in its conventional rendered form, used by picker UIs and validation hints.
916
- */
917
- handleExample?: string;
918
- /**
919
- * Brand color (hex) for branded icon chips, link styling, or section accents in authoring UIs. Catalog metadata: engines do not draw it.
920
- */
921
- brandColor?: string;
922
- /**
923
- * Free-form labels for filtering and search.
924
- */
925
- tags?: string[];
926
- /**
927
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
928
- */
929
- preview?: {
930
- /**
931
- * Main preview image (PNG/JPG).
932
- */
933
- src?: string;
934
- /**
935
- * Smaller thumbnail preview suited to dense grid views.
936
- */
937
- thumbnailSrc?: string;
938
- /**
939
- * SVG / vector preview for crisp scaling at any size.
940
- */
941
- vectorSrc?: string;
942
- [k: string]: unknown;
943
- };
944
- [k: string]: unknown;
945
- }
946
-
947
- /**
948
- * Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.
949
- */
950
- interface Language {
951
- /**
952
- * Identifies this record as a language in the openpresentation.org catalog.
953
- */
954
- $schema: "https://openpresentation.org/schema/opf-language/v1";
955
- /**
956
- * Stable slug used by OPF documents to reference this language via language. Lowercase kebab-case.
957
- */
958
- id: string;
959
- /**
960
- * Human-readable language name.
961
- */
962
- name: string;
963
- /**
964
- * Present when this language is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
965
- */
966
- deprecation?: {
967
- /**
968
- * Id of the non-deprecated language record that documents should reference instead.
969
- */
970
- replacedBy: string;
971
- /**
972
- * Why the record is deprecated.
973
- */
974
- reason?: string;
975
- /**
976
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
977
- */
978
- removal?: string;
979
- };
980
- /**
981
- * ISO 639-3 (or 639-2) three-letter language code. Carried for engines that prefer ISO codes.
982
- */
983
- code?: string;
984
- /**
985
- * BCP-47 language tag for this record. Use 'en-GB' for UK English; 'en-UK' is not a valid BCP-47 region form.
986
- */
987
- bcp47: string;
988
- /**
989
- * Curated culture tag for OOXML text-run language attributes (a:rPr/@lang, a:endParaRPr/@lang), in the language-[Script-]REGION form Office recognizes (e.g. 'ja-JP', 'ar-SA', 'ms-MY', 'nb-NO', 'fil-PH', 'zh-CN'). Engines emit it instead of 'bcp47' when the document names the language by catalog id or by a tag without a region; a region-bearing tag written by the author is emitted as written. Curated rather than inferred so output does not depend on the runtime's locale data.
990
- */
991
- ooxmlLang?: string;
992
- /**
993
- * Base text direction for the language. When omitted, engines derive it from the script: Arabic (Arab), Hebrew (Hebr), Syriac (Syrc), Thaana (Thaa), N'Ko (Nkoo), Adlam (Adlm), Samaritan (Samr), Mandaic (Mand) and Hanifi Rohingya (Rohg) are right-to-left; every other script is left-to-right. Bundled language records state it explicitly.
994
- */
995
- direction?: ("ltr" | "rtl");
996
- /**
997
- * ISO 15924 script code of the language's writing system. The script selects the OOXML font slot the language's text uses: East Asian scripts (Hans, Hant, Hani, Jpan, Kore, Hang, Hira, Kana, Bopo, Yiii) use the eastAsian slot; complex scripts (for example Arab, Hebr, Syrc, Thaa, Deva, Beng, Guru, Gujr, Orya, Taml, Telu, Knda, Mlym, Sinh, Thai, Laoo, Tibt, Mymr, Khmr, Mong) use the complexScript slot; every other script (Latn, Cyrl, Grek, Armn, Geor, Ethi, ...) uses the latin slot. When omitted, engines infer it from the BCP-47 tag. Bundled language records state it explicitly. See docs/programs/font-fidelity-everywhere/script-font-model.md.
998
- */
999
- script?: string;
1000
- /**
1001
- * Default font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Its major/minor families fill the language's script slot (eastAsian or complexScript, chosen by 'script') unless the effective design font scheme sets that slot itself; the latin slot always follows the design font scheme.
1002
- */
1003
- fontScheme?: string;
1004
- /**
1005
- * Default font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Used in place of 'fontScheme' when resolving script fonts for Google Slides output.
1006
- */
1007
- googleFontScheme?: string;
1008
- /**
1009
- * One-sentence note about coverage or font defaults.
1010
- */
1011
- summary?: string;
1012
- /**
1013
- * Longer prose describing the language record and any font-pairing rationale.
1014
- */
1015
- description?: string;
1016
- /**
1017
- * Free-form labels for filtering and search.
1018
- */
1019
- tags?: string[];
1020
- /**
1021
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
1022
- */
1023
- preview?: {
1024
- /**
1025
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
1026
- */
1027
- src?: string;
1028
- /**
1029
- * Smaller thumbnail preview suited to dense grid views.
1030
- */
1031
- thumbnailSrc?: string;
1032
- /**
1033
- * SVG / vector preview for crisp scaling at any size.
1034
- */
1035
- vectorSrc?: string;
1036
- [k: string]: unknown;
1037
- };
1038
- [k: string]: unknown;
1039
- }
1040
-
1041
- /**
1042
- * Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.
1043
- *
1044
- * The slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.
1045
- */
1046
- interface ColorScheme {
1047
- /**
1048
- * Identifies this record as a color scheme in the openpresentation.org catalog.
1049
- */
1050
- $schema: "https://openpresentation.org/schema/opf-color-scheme/v1";
1051
- /**
1052
- * Stable slug used by OPF documents to reference this color scheme. Lowercase kebab-case.
1053
- */
1054
- id: string;
1055
- /**
1056
- * Human-readable scheme name shown in pickers.
1057
- */
1058
- name: string;
1059
- /**
1060
- * Present when this color scheme is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
1061
- */
1062
- deprecation?: {
1063
- /**
1064
- * Id of the non-deprecated color scheme record that documents should reference instead.
1065
- */
1066
- replacedBy: string;
1067
- /**
1068
- * Why the record is deprecated.
1069
- */
1070
- reason?: string;
1071
- /**
1072
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
1073
- */
1074
- removal?: string;
1075
- };
1076
- /**
1077
- * One-sentence positioning of the palette — what mood it evokes and where to use it.
1078
- */
1079
- summary?: string;
1080
- /**
1081
- * Longer prose describing the palette and its intended use.
1082
- */
1083
- description?: string;
1084
- /**
1085
- * Accent 1 color (hex). Mirrors the OOXML accent1 slot.
1086
- */
1087
- accent1?: string;
1088
- /**
1089
- * Accent 2 color (hex). Mirrors the OOXML accent2 slot.
1090
- */
1091
- accent2?: string;
1092
- /**
1093
- * Accent 3 color (hex). Mirrors the OOXML accent3 slot.
1094
- */
1095
- accent3?: string;
1096
- /**
1097
- * Accent 4 color (hex). Mirrors the OOXML accent4 slot.
1098
- */
1099
- accent4?: string;
1100
- /**
1101
- * Accent 5 color (hex). Mirrors the OOXML accent5 slot.
1102
- */
1103
- accent5?: string;
1104
- /**
1105
- * Accent 6 color (hex). Mirrors the OOXML accent6 slot.
1106
- */
1107
- accent6?: string;
1108
- /**
1109
- * Dark 1 color (hex). Typically the deepest neutral; OOXML dark1.
1110
- */
1111
- dark1?: string;
1112
- /**
1113
- * Dark 2 color (hex). Secondary dark; OOXML dark2.
1114
- */
1115
- dark2?: string;
1116
- /**
1117
- * Light 1 color (hex). Typically the slide canvas; OOXML lt1.
1118
- */
1119
- light1?: string;
1120
- /**
1121
- * Light 2 color (hex). Secondary light surface; OOXML lt2.
1122
- */
1123
- light2?: string;
1124
- /**
1125
- * Hyperlink color (hex). OOXML hlink.
1126
- */
1127
- hyperlink?: string;
1128
- /**
1129
- * Followed-hyperlink color (hex). OOXML folHlink.
1130
- */
1131
- followedHyperlink?: string;
1132
- /**
1133
- * Free-form labels for filtering and search.
1134
- */
1135
- tags?: string[];
1136
- /**
1137
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
1138
- */
1139
- preview?: {
1140
- /**
1141
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
1142
- */
1143
- src?: string;
1144
- /**
1145
- * Smaller thumbnail preview suited to dense grid views.
1146
- */
1147
- thumbnailSrc?: string;
1148
- /**
1149
- * SVG / vector preview for crisp scaling at any size.
1150
- */
1151
- vectorSrc?: string;
1152
- [k: string]: unknown;
1153
- };
1154
- [k: string]: unknown;
1155
- }
1156
-
1157
- /**
1158
- * Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (powerpoint or google-slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code), each a font family name, take precedence over the resolved scheme.
1159
- */
1160
- interface FontScheme {
1161
- /**
1162
- * Identifies this record as a font scheme in the openpresentation.org catalog.
1163
- */
1164
- $schema: "https://openpresentation.org/schema/opf-font-scheme/v1";
1165
- /**
1166
- * Stable slug used by OPF documents to reference this font scheme. Lowercase kebab-case.
1167
- */
1168
- id: string;
1169
- /**
1170
- * Human-readable scheme name shown in pickers.
1171
- */
1172
- name: string;
1173
- /**
1174
- * Present when this font scheme is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.
1175
- */
1176
- deprecation?: {
1177
- /**
1178
- * Id of the non-deprecated font scheme record that documents should reference instead.
1179
- */
1180
- replacedBy: string;
1181
- /**
1182
- * Why the record is deprecated.
1183
- */
1184
- reason?: string;
1185
- /**
1186
- * Package version in which the record is scheduled for removal from the bundled catalog, if any.
1187
- */
1188
- removal?: string;
1189
- };
1190
- /**
1191
- * Heading (major) font family — mirrors the OOXML majorFont entry.
1192
- */
1193
- major: string;
1194
- /**
1195
- * Body (minor) font family — mirrors the OOXML minorFont entry.
1196
- */
1197
- minor: string;
1198
- /**
1199
- * Optional monospaced font family name for code blocks and for inline code runs (TextRun.code). It has the same shape as the OPF FontScheme 'code' role, so a record and an inline design.fontScheme override are interchangeable. OOXML has no code slot, so exporters write this family on code runs. When neither design.fontScheme nor the resolved record defines 'code', engines fall back to Roboto Mono.
1200
- */
1201
- code?: string;
1202
- /**
1203
- * East Asian script fonts. Maps to the OOXML a:ea element of majorFont (major) and minorFont (minor), and to run-level a:ea. When set, they fill the eastAsian slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'ea' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for East Asian languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.
1204
- */
1205
- eastAsian?: {
1206
- /**
1207
- * Heading (major) eastAsian font family — mirrors majorFont a:ea.
1208
- */
1209
- major?: string;
1210
- /**
1211
- * Body (minor) eastAsian font family — mirrors minorFont a:ea.
1212
- */
1213
- minor?: string;
1214
- };
1215
- /**
1216
- * Complex-script fonts (for example Arabic, Hebrew, Indic and Thai). Maps to the OOXML a:cs element of majorFont (major) and minorFont (minor), and to run-level a:cs. When set, they fill the complexScript slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'cs' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for complex-script languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.
1217
- */
1218
- complexScript?: {
1219
- /**
1220
- * Heading (major) complexScript font family — mirrors majorFont a:cs.
1221
- */
1222
- major?: string;
1223
- /**
1224
- * Body (minor) complexScript font family — mirrors minorFont a:cs.
1225
- */
1226
- minor?: string;
1227
- };
1228
- /**
1229
- * High-level typographic class of the scheme.
1230
- */
1231
- type?: ("sans-serif" | "serif" | "monospace");
1232
- /**
1233
- * Target application this font pairing is intended for. Metadata for pickers and catalog filters: no engine changes its output by it.
1234
- */
1235
- app?: ("powerpoint" | "google-slides");
1236
- /**
1237
- * Font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' (or 'eastAsian', the same value) for East Asian scripts, 'cs' (or 'complexScript', the same value) for Complex Scripts. The long names match the 'eastAsian' and 'complexScript' slot keys; the short names match the OOXML a:ea and a:cs elements; core reads both spellings as one value. As the design font scheme, an 'ea'/'eastAsian' or 'cs'/'complexScript' scheme also fills that script slot with its own major/minor families when its languages list is empty or names the presentation language.
1238
- */
1239
- languageFamily?: ("latin" | "ea" | "cs" | "eastAsian" | "complexScript");
1240
- /**
1241
- * Optional list of languages catalog ids (see the languages catalog, https://www.pptx.gallery/languages) this scheme is curated for. Useful for picker UIs that group fonts by language coverage. As the design font scheme, an 'ea' or 'cs' scheme fills its script slot only when this list is empty or names the presentation language by id.
1242
- */
1243
- languages?: string[];
1244
- /**
1245
- * Short specimen string used by picker UIs to preview the scheme.
1246
- */
1247
- textSample?: string;
1248
- /**
1249
- * One-sentence positioning of the font pairing.
1250
- */
1251
- summary?: string;
1252
- /**
1253
- * Longer prose describing the font scheme and where it shines.
1254
- */
1255
- description?: string;
1256
- /**
1257
- * Free-form labels for filtering and search.
1258
- */
1259
- tags?: string[];
1260
- /**
1261
- * Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.
1262
- */
1263
- preview?: {
1264
- /**
1265
- * Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.
1266
- */
1267
- src?: string;
1268
- /**
1269
- * Smaller thumbnail preview suited to dense grid views.
1270
- */
1271
- thumbnailSrc?: string;
1272
- /**
1273
- * SVG / vector preview for crisp scaling at any size.
1274
- */
1275
- vectorSrc?: string;
1276
- [k: string]: unknown;
1277
- };
1278
- [k: string]: unknown;
1279
- }
1280
-
1281
- /** Structural shape shared by every bundled catalog record. */
1282
- interface CatalogRecord {
1283
- readonly id: string;
1284
- }
1285
- /** A lightweight summary entry inside a catalog's `index.json`. */
1286
- interface CatalogIndexRecord {
1287
- readonly id: string;
1288
- readonly name: string;
1289
- readonly file: string;
1290
- readonly [key: string]: unknown;
1291
- }
1292
- /** Parsed shape of a catalog's `index.json`. */
1293
- interface CatalogIndex {
1294
- readonly $schema: string;
1295
- /** Catalog kind as its default-catalog URL segment, e.g. `chart-types`. */
1296
- readonly kind?: string;
1297
- readonly version: string;
1298
- readonly description: string;
1299
- /** SHA-256 of the canonical JSON of the index-ordered records (see docs/default-catalog.md). */
1300
- readonly contentSha256?: string;
1301
- readonly records: readonly CatalogIndexRecord[];
1302
- readonly [key: string]: unknown;
1303
- }
1304
- declare const audiences: readonly Audience[];
1305
- declare const purposes: readonly Purpose[];
1306
- declare const tones: readonly Tone[];
1307
- declare const themes: readonly Theme[];
1308
- declare const layouts: readonly Layout[];
1309
- declare const chartTypes: readonly ChartType[];
1310
- declare const narratives: readonly Narrative[];
1311
- declare const socialPlatforms: readonly SocialPlatform[];
1312
- declare const languages: readonly Language[];
1313
- declare const colorSchemes: readonly ColorScheme[];
1314
- declare const fontSchemes: readonly FontScheme[];
1315
- declare const catalogs: {
1316
- readonly audiences: readonly Audience[];
1317
- readonly purposes: readonly Purpose[];
1318
- readonly tones: readonly Tone[];
1319
- readonly themes: readonly Theme[];
1320
- readonly layouts: readonly Layout[];
1321
- readonly chartTypes: readonly ChartType[];
1322
- readonly narratives: readonly Narrative[];
1323
- readonly socialPlatforms: readonly SocialPlatform[];
1324
- readonly languages: readonly Language[];
1325
- readonly colorSchemes: readonly ColorScheme[];
1326
- readonly fontSchemes: readonly FontScheme[];
1327
- };
1328
- type CatalogKind = keyof typeof catalogs;
1329
- declare const catalogIndexes: Record<CatalogKind, CatalogIndex>;
1330
- declare const catalogSchemaNames: Record<CatalogKind, SchemaName>;
1331
- declare const catalogKinds: readonly ["audiences", "purposes", "tones", "themes", "layouts", "chartTypes", "narratives", "socialPlatforms", "languages", "colorSchemes", "fontSchemes"];
1332
- /** One entry per bundled catalog kind, with its records and index resolved. */
1333
- interface CatalogEntry {
1334
- readonly kind: CatalogKind;
1335
- readonly schemaName: SchemaName;
1336
- readonly dir: string;
1337
- readonly files: readonly string[];
1338
- readonly records: readonly CatalogRecord[];
1339
- readonly index: CatalogIndex;
1340
- }
1341
- declare const catalogEntries: readonly CatalogEntry[];
1342
-
1343
- export { type Audience as A, type CatalogKind as C, type FontScheme as F, type Language as L, type Narrative as N, type Purpose as P, type SocialPlatform as S, type Theme as T, type ChartType as a, type ColorScheme as b, type Layout as c, type Tone as d, type CatalogEntry as e, type CatalogIndex as f, type CatalogIndexRecord as g, type CatalogRecord as h, audiences as i, catalogEntries as j, catalogIndexes as k, catalogKinds as l, catalogSchemaNames as m, catalogs as n, chartTypes as o, colorSchemes as p, fontSchemes as q, languages as r, layouts as s, narratives as t, purposes as u, socialPlatforms as v, themes as w, tones as x };