@openpresentation/opf 0.18.4 → 0.19.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 (760) hide show
  1. package/README.md +18 -17
  2. package/dist/browser.js +17 -19
  3. package/dist/{catalog-refs-BSfGELpt.d.ts → catalog-refs-CSHevLn1.d.ts} +1 -1
  4. package/dist/{chunk-KA3ZPFVT.js → chunk-65GDO6TJ.js} +96 -40
  5. package/dist/{chunk-JCOSZTOI.js → chunk-A6COIVTD.js} +7 -2
  6. package/dist/{chunk-ZCFSDSUX.js → chunk-AK4UXIRP.js} +1 -1
  7. package/dist/{chunk-MSFE2HUK.js → chunk-FGUQHD37.js} +16 -13
  8. package/dist/{chunk-GVOLSWAJ.js → chunk-GRN3U5JT.js} +5 -5
  9. package/dist/{chunk-TRELE6I6.js → chunk-HBFRNOP4.js} +1 -1
  10. package/dist/{chunk-R7KIASS4.js → chunk-LRPSMQ62.js} +1 -1
  11. package/dist/chunk-OOT5AY4V.js +16 -0
  12. package/dist/{chunk-FO3WGS4R.js → chunk-OVBGGGKO.js} +25 -16
  13. package/dist/{chunk-2PEWUUBR.js → chunk-R5T4H4ZV.js} +350 -314
  14. package/dist/{chunk-L5YACLWK.js → chunk-SEUJIS55.js} +2 -2
  15. package/dist/{chunk-ECP7QPGK.js → chunk-SIQWYDFF.js} +6 -6
  16. package/dist/chunk-UJSAR6GF.js +181 -0
  17. package/dist/{chunk-IM337HP5.js → chunk-V3RGXJJS.js} +4 -5
  18. package/dist/{chunk-WHHLGDCQ.js → chunk-WHKFIFN7.js} +1 -1
  19. package/dist/{chunk-K5EG3UMS.js → chunk-XWMKAJSS.js} +46 -17
  20. package/dist/{chunk-PNINP5IF.js → chunk-YAHPQRVU.js} +1 -1
  21. package/dist/{chunk-MBU42S5Y.js → chunk-ZPCKGGI6.js} +1152 -273
  22. package/dist/{composition-C-OoqvAr.d.ts → composition-DilAHoWM.d.ts} +385 -99
  23. package/dist/composition.d.ts +2 -2
  24. package/dist/composition.js +1 -2
  25. package/dist/conversion-NJQHH4QW.js +19 -0
  26. package/dist/{conversion-BxZbBd_0.d.ts → conversion-k9l5pQsq.d.ts} +11 -11
  27. package/dist/convert.d.ts +3 -3
  28. package/dist/convert.js +7 -9
  29. package/dist/data.d.ts +1 -1
  30. package/dist/data.js +2 -3
  31. package/dist/{deck-report-DiDf_Vew.d.ts → deck-report-D19fyuNu.d.ts} +3 -3
  32. package/dist/deck.d.ts +6 -6
  33. package/dist/deck.js +10 -12
  34. package/dist/diff.js +5 -7
  35. package/dist/docs.js +25 -19
  36. package/dist/examples.d.ts +1 -1
  37. package/dist/examples.js +23853 -20994
  38. package/dist/format.js +2 -2
  39. package/dist/index.d.ts +22 -21
  40. package/dist/index.js +23 -26
  41. package/dist/markdown.d.ts +4 -4
  42. package/dist/markdown.js +7 -9
  43. package/dist/node-engine.d.ts +26 -9
  44. package/dist/node-engine.js +22 -23
  45. package/dist/{pagination-BaUjDrTz.d.ts → pagination-BNj5UQn5.d.ts} +3 -3
  46. package/dist/pagination.d.ts +3 -3
  47. package/dist/pagination.js +4 -6
  48. package/dist/patch.js +4 -6
  49. package/dist/{presentation-81rNihF0.d.ts → presentation-B_e2Djga.d.ts} +35 -19
  50. package/dist/repo-readme.js +1 -1
  51. package/dist/schemas.d.ts +2 -18
  52. package/dist/schemas.js +1 -1
  53. package/dist/spec/README.md +12 -19
  54. package/dist/spec/reference/engine-vocabularies.json +1 -1
  55. package/dist/spec/schemas/catalog-index.schema.json +3 -3
  56. package/dist/spec/schemas/catalog-manifest.schema.json +1 -1
  57. package/dist/spec/schemas/chart-type.schema.json +2 -2
  58. package/dist/spec/schemas/language.schema.json +1 -1
  59. package/dist/spec/schemas/layout-preview-index.schema.json +25 -11
  60. package/dist/spec/schemas/layout.schema.json +193 -272
  61. package/dist/spec/schemas/opf.schema.json +63 -18
  62. package/dist/spec/schemas/social-platform.schema.json +1 -1
  63. package/dist/spec/schemas/theme.schema.json +60 -0
  64. package/dist/spec-files.d.ts +2 -2
  65. package/dist/spec-files.js +1 -1
  66. package/dist/types.d.ts +115 -40
  67. package/dist/{validation-types-PbGDrNUr.d.ts → validation-types-CWhPuYUt.d.ts} +2 -2
  68. package/dist/validator-Cse-AD32.d.ts +73 -0
  69. package/dist/validator.d.ts +6 -60
  70. package/dist/validator.js +3 -5
  71. package/dist/yaml.d.ts +4 -4
  72. package/dist/yaml.js +7 -9
  73. package/package.json +6 -9
  74. package/dist/catalog-schemas-CinPh5WA.d.ts +0 -12
  75. package/dist/catalog.d.ts +0 -91
  76. package/dist/catalog.js +0 -3
  77. package/dist/chunk-HXHOZ7AH.js +0 -4937
  78. package/dist/chunk-SPFV27O5.js +0 -210
  79. package/dist/chunk-TRDXRRQK.js +0 -17
  80. package/dist/chunk-WCG3THTD.js +0 -23712
  81. package/dist/conversion-SHYVL7FC.js +0 -21
  82. package/dist/spec/catalogs/audiences/academic.json +0 -24
  83. package/dist/spec/catalogs/audiences/all-hands.json +0 -25
  84. package/dist/spec/catalogs/audiences/board.json +0 -24
  85. package/dist/spec/catalogs/audiences/candidates.json +0 -23
  86. package/dist/spec/catalogs/audiences/customer.json +0 -25
  87. package/dist/spec/catalogs/audiences/engineering-team.json +0 -23
  88. package/dist/spec/catalogs/audiences/executive.json +0 -24
  89. package/dist/spec/catalogs/audiences/general-public.json +0 -25
  90. package/dist/spec/catalogs/audiences/index.json +0 -105
  91. package/dist/spec/catalogs/audiences/internal-team.json +0 -25
  92. package/dist/spec/catalogs/audiences/investor.json +0 -25
  93. package/dist/spec/catalogs/audiences/marketing.json +0 -25
  94. package/dist/spec/catalogs/audiences/media.json +0 -24
  95. package/dist/spec/catalogs/audiences/partner.json +0 -25
  96. package/dist/spec/catalogs/audiences/regulatory.json +0 -25
  97. package/dist/spec/catalogs/audiences/sales.json +0 -25
  98. package/dist/spec/catalogs/audiences/technical.json +0 -25
  99. package/dist/spec/catalogs/chart-types/100pct-stacked-area.json +0 -21
  100. package/dist/spec/catalogs/chart-types/100pct-stacked-bar.json +0 -22
  101. package/dist/spec/catalogs/chart-types/100pct-stacked-column.json +0 -22
  102. package/dist/spec/catalogs/chart-types/area.json +0 -20
  103. package/dist/spec/catalogs/chart-types/bar.json +0 -22
  104. package/dist/spec/catalogs/chart-types/box-and-whisker.json +0 -21
  105. package/dist/spec/catalogs/chart-types/column.json +0 -22
  106. package/dist/spec/catalogs/chart-types/combo.json +0 -37
  107. package/dist/spec/catalogs/chart-types/doughnut.json +0 -20
  108. package/dist/spec/catalogs/chart-types/filled-radar.json +0 -21
  109. package/dist/spec/catalogs/chart-types/funnel.json +0 -21
  110. package/dist/spec/catalogs/chart-types/histogram.json +0 -21
  111. package/dist/spec/catalogs/chart-types/index.json +0 -171
  112. package/dist/spec/catalogs/chart-types/line-with-markers.json +0 -21
  113. package/dist/spec/catalogs/chart-types/line.json +0 -20
  114. package/dist/spec/catalogs/chart-types/pareto.json +0 -22
  115. package/dist/spec/catalogs/chart-types/pie.json +0 -20
  116. package/dist/spec/catalogs/chart-types/radar-with-markers.json +0 -21
  117. package/dist/spec/catalogs/chart-types/radar.json +0 -21
  118. package/dist/spec/catalogs/chart-types/scatter.json +0 -21
  119. package/dist/spec/catalogs/chart-types/stacked-area.json +0 -21
  120. package/dist/spec/catalogs/chart-types/stacked-bar.json +0 -22
  121. package/dist/spec/catalogs/chart-types/stacked-column.json +0 -22
  122. package/dist/spec/catalogs/chart-types/stacked-line-with-markers.json +0 -22
  123. package/dist/spec/catalogs/chart-types/stacked-line.json +0 -21
  124. package/dist/spec/catalogs/chart-types/treemap.json +0 -21
  125. package/dist/spec/catalogs/chart-types/waterfall.json +0 -21
  126. package/dist/spec/catalogs/chart-types/world.json +0 -21
  127. package/dist/spec/catalogs/color-schemes/black-and-white.json +0 -26
  128. package/dist/spec/catalogs/color-schemes/bold-red.json +0 -26
  129. package/dist/spec/catalogs/color-schemes/boost.json +0 -26
  130. package/dist/spec/catalogs/color-schemes/burnt-orange.json +0 -26
  131. package/dist/spec/catalogs/color-schemes/cool-horizon.json +0 -26
  132. package/dist/spec/catalogs/color-schemes/corporate-blue.json +0 -26
  133. package/dist/spec/catalogs/color-schemes/deep-purple.json +0 -26
  134. package/dist/spec/catalogs/color-schemes/forest-green.json +0 -26
  135. package/dist/spec/catalogs/color-schemes/golden-yellow.json +0 -26
  136. package/dist/spec/catalogs/color-schemes/index.json +0 -79
  137. package/dist/spec/catalogs/color-schemes/luxury.json +0 -26
  138. package/dist/spec/catalogs/color-schemes/pastel-red.json +0 -26
  139. package/dist/spec/catalogs/color-schemes/slate-gray.json +0 -26
  140. package/dist/spec/catalogs/color-schemes/steel-blue.json +0 -26
  141. package/dist/spec/catalogs/color-schemes/vibes.json +0 -26
  142. package/dist/spec/catalogs/font-schemes/angsana-new.json +0 -15
  143. package/dist/spec/catalogs/font-schemes/aparajita.json +0 -16
  144. package/dist/spec/catalogs/font-schemes/aptos.json +0 -13
  145. package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +0 -15
  146. package/dist/spec/catalogs/font-schemes/arial.json +0 -13
  147. package/dist/spec/catalogs/font-schemes/batang.json +0 -15
  148. package/dist/spec/catalogs/font-schemes/bookman.json +0 -13
  149. package/dist/spec/catalogs/font-schemes/calibri.json +0 -13
  150. package/dist/spec/catalogs/font-schemes/century-schoolbook.json +0 -13
  151. package/dist/spec/catalogs/font-schemes/consolas.json +0 -14
  152. package/dist/spec/catalogs/font-schemes/constantia.json +0 -13
  153. package/dist/spec/catalogs/font-schemes/courier-new.json +0 -14
  154. package/dist/spec/catalogs/font-schemes/daunpenh.json +0 -15
  155. package/dist/spec/catalogs/font-schemes/david.json +0 -15
  156. package/dist/spec/catalogs/font-schemes/dilleniaupc.json +0 -15
  157. package/dist/spec/catalogs/font-schemes/fangsong.json +0 -15
  158. package/dist/spec/catalogs/font-schemes/garamond.json +0 -13
  159. package/dist/spec/catalogs/font-schemes/gautami.json +0 -15
  160. package/dist/spec/catalogs/font-schemes/georgia.json +0 -13
  161. package/dist/spec/catalogs/font-schemes/gisha.json +0 -16
  162. package/dist/spec/catalogs/font-schemes/grandview.json +0 -13
  163. package/dist/spec/catalogs/font-schemes/gungsuh.json +0 -15
  164. package/dist/spec/catalogs/font-schemes/impact.json +0 -13
  165. package/dist/spec/catalogs/font-schemes/index.json +0 -454
  166. package/dist/spec/catalogs/font-schemes/kalinga.json +0 -15
  167. package/dist/spec/catalogs/font-schemes/kartika.json +0 -15
  168. package/dist/spec/catalogs/font-schemes/khmer-ui.json +0 -15
  169. package/dist/spec/catalogs/font-schemes/latha.json +0 -15
  170. package/dist/spec/catalogs/font-schemes/lucida-sans.json +0 -13
  171. package/dist/spec/catalogs/font-schemes/malgun-gothic.json +0 -15
  172. package/dist/spec/catalogs/font-schemes/mangal.json +0 -17
  173. package/dist/spec/catalogs/font-schemes/meiryo.json +0 -15
  174. package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +0 -15
  175. package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +0 -18
  176. package/dist/spec/catalogs/font-schemes/mingliu.json +0 -15
  177. package/dist/spec/catalogs/font-schemes/miriam.json +0 -15
  178. package/dist/spec/catalogs/font-schemes/montserrat.json +0 -13
  179. package/dist/spec/catalogs/font-schemes/ms-mincho.json +0 -15
  180. package/dist/spec/catalogs/font-schemes/nirmala-ui.json +0 -15
  181. package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +0 -15
  182. package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +0 -16
  183. package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +0 -17
  184. package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +0 -15
  185. package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +0 -16
  186. package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +0 -16
  187. package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +0 -15
  188. package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +0 -15
  189. package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +0 -15
  190. package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +0 -15
  191. package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +0 -15
  192. package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +0 -15
  193. package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +0 -15
  194. package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +0 -15
  195. package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +0 -15
  196. package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +0 -15
  197. package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +0 -15
  198. package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +0 -15
  199. package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +0 -18
  200. package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +0 -15
  201. package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +0 -15
  202. package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +0 -15
  203. package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +0 -15
  204. package/dist/spec/catalogs/font-schemes/noto-sans.json +0 -18
  205. package/dist/spec/catalogs/font-schemes/nyala.json +0 -15
  206. package/dist/spec/catalogs/font-schemes/open-sans.json +0 -13
  207. package/dist/spec/catalogs/font-schemes/pmingliu.json +0 -15
  208. package/dist/spec/catalogs/font-schemes/poppins.json +0 -13
  209. package/dist/spec/catalogs/font-schemes/pt-serif.json +0 -13
  210. package/dist/spec/catalogs/font-schemes/raavi.json +0 -15
  211. package/dist/spec/catalogs/font-schemes/raleway.json +0 -13
  212. package/dist/spec/catalogs/font-schemes/roboto.json +0 -13
  213. package/dist/spec/catalogs/font-schemes/rockwell.json +0 -13
  214. package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +0 -17
  215. package/dist/spec/catalogs/font-schemes/seaford.json +0 -13
  216. package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +0 -13
  217. package/dist/spec/catalogs/font-schemes/segoe-ui.json +0 -13
  218. package/dist/spec/catalogs/font-schemes/shonar-bangla.json +0 -16
  219. package/dist/spec/catalogs/font-schemes/shruti.json +0 -15
  220. package/dist/spec/catalogs/font-schemes/simsun.json +0 -15
  221. package/dist/spec/catalogs/font-schemes/skeena.json +0 -13
  222. package/dist/spec/catalogs/font-schemes/sylfaen.json +0 -16
  223. package/dist/spec/catalogs/font-schemes/tahoma.json +0 -13
  224. package/dist/spec/catalogs/font-schemes/tenorite.json +0 -13
  225. package/dist/spec/catalogs/font-schemes/times-new-roman.json +0 -13
  226. package/dist/spec/catalogs/font-schemes/traditional-arabic.json +0 -17
  227. package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +0 -13
  228. package/dist/spec/catalogs/font-schemes/tunga.json +0 -15
  229. package/dist/spec/catalogs/font-schemes/verdana.json +0 -13
  230. package/dist/spec/catalogs/font-schemes/vrinda.json +0 -15
  231. package/dist/spec/catalogs/font-schemes/yu-gothic.json +0 -15
  232. package/dist/spec/catalogs/languages/afrikaans.json +0 -12
  233. package/dist/spec/catalogs/languages/albanian.json +0 -12
  234. package/dist/spec/catalogs/languages/amharic.json +0 -12
  235. package/dist/spec/catalogs/languages/arabic.json +0 -12
  236. package/dist/spec/catalogs/languages/armenian.json +0 -12
  237. package/dist/spec/catalogs/languages/aymara.json +0 -12
  238. package/dist/spec/catalogs/languages/azerbaijani.json +0 -12
  239. package/dist/spec/catalogs/languages/bengali.json +0 -12
  240. package/dist/spec/catalogs/languages/berber-latin.json +0 -12
  241. package/dist/spec/catalogs/languages/bosnian-latin.json +0 -12
  242. package/dist/spec/catalogs/languages/bulgarian.json +0 -12
  243. package/dist/spec/catalogs/languages/catalan.json +0 -12
  244. package/dist/spec/catalogs/languages/cebuano.json +0 -12
  245. package/dist/spec/catalogs/languages/chinese-simplified.json +0 -12
  246. package/dist/spec/catalogs/languages/chinese-traditional.json +0 -12
  247. package/dist/spec/catalogs/languages/chittagonian.json +0 -12
  248. package/dist/spec/catalogs/languages/croatian.json +0 -12
  249. package/dist/spec/catalogs/languages/czech.json +0 -12
  250. package/dist/spec/catalogs/languages/danish.json +0 -12
  251. package/dist/spec/catalogs/languages/dutch.json +0 -12
  252. package/dist/spec/catalogs/languages/english-au.json +0 -12
  253. package/dist/spec/catalogs/languages/english-ca.json +0 -12
  254. package/dist/spec/catalogs/languages/english-gb.json +0 -12
  255. package/dist/spec/catalogs/languages/english-in.json +0 -12
  256. package/dist/spec/catalogs/languages/english-us.json +0 -12
  257. package/dist/spec/catalogs/languages/english.json +0 -12
  258. package/dist/spec/catalogs/languages/estonian.json +0 -12
  259. package/dist/spec/catalogs/languages/filipino.json +0 -12
  260. package/dist/spec/catalogs/languages/finnish.json +0 -12
  261. package/dist/spec/catalogs/languages/french.json +0 -12
  262. package/dist/spec/catalogs/languages/fulfulde.json +0 -12
  263. package/dist/spec/catalogs/languages/galician.json +0 -12
  264. package/dist/spec/catalogs/languages/georgian.json +0 -12
  265. package/dist/spec/catalogs/languages/german.json +0 -12
  266. package/dist/spec/catalogs/languages/greek.json +0 -12
  267. package/dist/spec/catalogs/languages/gujarati.json +0 -12
  268. package/dist/spec/catalogs/languages/hausa.json +0 -12
  269. package/dist/spec/catalogs/languages/hebrew.json +0 -12
  270. package/dist/spec/catalogs/languages/hindi.json +0 -12
  271. package/dist/spec/catalogs/languages/hungarian.json +0 -12
  272. package/dist/spec/catalogs/languages/igbo.json +0 -12
  273. package/dist/spec/catalogs/languages/index.json +0 -567
  274. package/dist/spec/catalogs/languages/indonesian.json +0 -12
  275. package/dist/spec/catalogs/languages/italian.json +0 -12
  276. package/dist/spec/catalogs/languages/japanese.json +0 -12
  277. package/dist/spec/catalogs/languages/kannada.json +0 -12
  278. package/dist/spec/catalogs/languages/kazakh.json +0 -12
  279. package/dist/spec/catalogs/languages/khmer.json +0 -12
  280. package/dist/spec/catalogs/languages/kinyarwanda.json +0 -12
  281. package/dist/spec/catalogs/languages/korean.json +0 -12
  282. package/dist/spec/catalogs/languages/kurmanji.json +0 -12
  283. package/dist/spec/catalogs/languages/latvian.json +0 -12
  284. package/dist/spec/catalogs/languages/lithuanian.json +0 -12
  285. package/dist/spec/catalogs/languages/macedonian.json +0 -12
  286. package/dist/spec/catalogs/languages/malagasy.json +0 -12
  287. package/dist/spec/catalogs/languages/malay.json +0 -12
  288. package/dist/spec/catalogs/languages/malayalam.json +0 -12
  289. package/dist/spec/catalogs/languages/maori.json +0 -12
  290. package/dist/spec/catalogs/languages/marathi.json +0 -12
  291. package/dist/spec/catalogs/languages/mongolian.json +0 -12
  292. package/dist/spec/catalogs/languages/nepali.json +0 -12
  293. package/dist/spec/catalogs/languages/norwegian.json +0 -12
  294. package/dist/spec/catalogs/languages/odia.json +0 -12
  295. package/dist/spec/catalogs/languages/oromo.json +0 -12
  296. package/dist/spec/catalogs/languages/pashto.json +0 -12
  297. package/dist/spec/catalogs/languages/persian.json +0 -12
  298. package/dist/spec/catalogs/languages/polish.json +0 -12
  299. package/dist/spec/catalogs/languages/portuguese.json +0 -12
  300. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +0 -12
  301. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +0 -12
  302. package/dist/spec/catalogs/languages/romanian.json +0 -12
  303. package/dist/spec/catalogs/languages/russian.json +0 -12
  304. package/dist/spec/catalogs/languages/serbian-cyrillic.json +0 -12
  305. package/dist/spec/catalogs/languages/serbian-latin.json +0 -12
  306. package/dist/spec/catalogs/languages/shona.json +0 -12
  307. package/dist/spec/catalogs/languages/slovak.json +0 -12
  308. package/dist/spec/catalogs/languages/slovenian.json +0 -12
  309. package/dist/spec/catalogs/languages/somali.json +0 -12
  310. package/dist/spec/catalogs/languages/spanish.json +0 -12
  311. package/dist/spec/catalogs/languages/swahili.json +0 -12
  312. package/dist/spec/catalogs/languages/swedish.json +0 -12
  313. package/dist/spec/catalogs/languages/tagalog.json +0 -12
  314. package/dist/spec/catalogs/languages/tajik.json +0 -12
  315. package/dist/spec/catalogs/languages/tamil.json +0 -12
  316. package/dist/spec/catalogs/languages/telugu.json +0 -12
  317. package/dist/spec/catalogs/languages/thai.json +0 -12
  318. package/dist/spec/catalogs/languages/turkish.json +0 -12
  319. package/dist/spec/catalogs/languages/ukrainian.json +0 -12
  320. package/dist/spec/catalogs/languages/urdu.json +0 -12
  321. package/dist/spec/catalogs/languages/uzbek-latin.json +0 -12
  322. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +0 -12
  323. package/dist/spec/catalogs/languages/xhosa.json +0 -12
  324. package/dist/spec/catalogs/languages/yoruba.json +0 -12
  325. package/dist/spec/catalogs/languages/zulu.json +0 -12
  326. package/dist/spec/catalogs/layouts/action-plan.json +0 -29
  327. package/dist/spec/catalogs/layouts/agenda.json +0 -28
  328. package/dist/spec/catalogs/layouts/appendix-index.json +0 -30
  329. package/dist/spec/catalogs/layouts/architecture-stack.json +0 -29
  330. package/dist/spec/catalogs/layouts/assumptions-dependencies.json +0 -29
  331. package/dist/spec/catalogs/layouts/before-after.json +0 -35
  332. package/dist/spec/catalogs/layouts/benchmark-target-table.json +0 -29
  333. package/dist/spec/catalogs/layouts/blank.json +0 -16
  334. package/dist/spec/catalogs/layouts/bullet-list.json +0 -32
  335. package/dist/spec/catalogs/layouts/business-model-canvas.json +0 -94
  336. package/dist/spec/catalogs/layouts/capability-map.json +0 -80
  337. package/dist/spec/catalogs/layouts/case-study.json +0 -29
  338. package/dist/spec/catalogs/layouts/chapter-recap.json +0 -28
  339. package/dist/spec/catalogs/layouts/chart-1x-title-center.json +0 -30
  340. package/dist/spec/catalogs/layouts/chart-1x.json +0 -34
  341. package/dist/spec/catalogs/layouts/chart-2x-title-center.json +0 -36
  342. package/dist/spec/catalogs/layouts/chart-2x-vertical-title-left.json +0 -37
  343. package/dist/spec/catalogs/layouts/chart-2x.json +0 -65
  344. package/dist/spec/catalogs/layouts/chart-3x-bottom-vertical-title-left.json +0 -52
  345. package/dist/spec/catalogs/layouts/chart-3x-left-title-center.json +0 -51
  346. package/dist/spec/catalogs/layouts/chart-3x-left.json +0 -46
  347. package/dist/spec/catalogs/layouts/chart-3x-right-title-center.json +0 -51
  348. package/dist/spec/catalogs/layouts/chart-3x-right.json +0 -46
  349. package/dist/spec/catalogs/layouts/chart-3x-title-center.json +0 -39
  350. package/dist/spec/catalogs/layouts/chart-3x-top-vertical-title-left.json +0 -52
  351. package/dist/spec/catalogs/layouts/chart-3x.json +0 -83
  352. package/dist/spec/catalogs/layouts/circular-lifecycle.json +0 -29
  353. package/dist/spec/catalogs/layouts/code-1x.json +0 -29
  354. package/dist/spec/catalogs/layouts/comparison.json +0 -35
  355. package/dist/spec/catalogs/layouts/competitive-landscape.json +0 -30
  356. package/dist/spec/catalogs/layouts/customer-journey.json +0 -30
  357. package/dist/spec/catalogs/layouts/customer-logos.json +0 -32
  358. package/dist/spec/catalogs/layouts/dashboard.json +0 -67
  359. package/dist/spec/catalogs/layouts/data-visualization.json +0 -39
  360. package/dist/spec/catalogs/layouts/decision-tree.json +0 -30
  361. package/dist/spec/catalogs/layouts/detailed-data-table.json +0 -35
  362. package/dist/spec/catalogs/layouts/ecosystem-map.json +0 -30
  363. package/dist/spec/catalogs/layouts/executive-decision.json +0 -32
  364. package/dist/spec/catalogs/layouts/executive-summary.json +0 -32
  365. package/dist/spec/catalogs/layouts/extract/canonical.json +0 -575
  366. package/dist/spec/catalogs/layouts/faq.json +0 -29
  367. package/dist/spec/catalogs/layouts/feature-comparison-matrix.json +0 -29
  368. package/dist/spec/catalogs/layouts/forecast-scenario.json +0 -39
  369. package/dist/spec/catalogs/layouts/funnel-pyramid.json +0 -32
  370. package/dist/spec/catalogs/layouts/gantt-project-plan.json +0 -32
  371. package/dist/spec/catalogs/layouts/geographic-map.json +0 -30
  372. package/dist/spec/catalogs/layouts/heatmap-cohort.json +0 -32
  373. package/dist/spec/catalogs/layouts/hub-and-spoke.json +0 -29
  374. package/dist/spec/catalogs/layouts/icon-grid.json +0 -30
  375. package/dist/spec/catalogs/layouts/image-1x-crop-title-center.json +0 -32
  376. package/dist/spec/catalogs/layouts/image-1x-crop-title-left.json +0 -32
  377. package/dist/spec/catalogs/layouts/image-1x-crop.json +0 -27
  378. package/dist/spec/catalogs/layouts/image-1x-fit-title-center.json +0 -32
  379. package/dist/spec/catalogs/layouts/image-1x.json +0 -32
  380. package/dist/spec/catalogs/layouts/image-2x-crop-title-center.json +0 -38
  381. package/dist/spec/catalogs/layouts/image-2x-crop-vertical-title-left.json +0 -39
  382. package/dist/spec/catalogs/layouts/image-2x-crop-vertical.json +0 -34
  383. package/dist/spec/catalogs/layouts/image-2x-crop.json +0 -33
  384. package/dist/spec/catalogs/layouts/image-2x-fit-title-center.json +0 -38
  385. package/dist/spec/catalogs/layouts/image-2x-fit-vertical-title-left.json +0 -39
  386. package/dist/spec/catalogs/layouts/image-2x-fit-vertical.json +0 -34
  387. package/dist/spec/catalogs/layouts/image-2x.json +0 -63
  388. package/dist/spec/catalogs/layouts/image-3x-crop-title-center.json +0 -41
  389. package/dist/spec/catalogs/layouts/image-3x-crop-vertical-title-left.json +0 -42
  390. package/dist/spec/catalogs/layouts/image-3x-crop-vertical.json +0 -37
  391. package/dist/spec/catalogs/layouts/image-3x-crop.json +0 -36
  392. package/dist/spec/catalogs/layouts/image-3x-fit-title-center.json +0 -41
  393. package/dist/spec/catalogs/layouts/image-3x-fit-vertical-title-left.json +0 -42
  394. package/dist/spec/catalogs/layouts/image-3x-fit-vertical.json +0 -37
  395. package/dist/spec/catalogs/layouts/image-3x-fit.json +0 -36
  396. package/dist/spec/catalogs/layouts/image-3x.json +0 -81
  397. package/dist/spec/catalogs/layouts/image-focus.json +0 -30
  398. package/dist/spec/catalogs/layouts/image-only-1x-crop-title-center.json +0 -31
  399. package/dist/spec/catalogs/layouts/image-only-1x-fit-title-center.json +0 -31
  400. package/dist/spec/catalogs/layouts/image-only-2x-crop-title-center.json +0 -37
  401. package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical-title-left.json +0 -38
  402. package/dist/spec/catalogs/layouts/image-only-2x-crop-vertical.json +0 -33
  403. package/dist/spec/catalogs/layouts/image-only-2x-fit-title-center.json +0 -37
  404. package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical-title-left.json +0 -38
  405. package/dist/spec/catalogs/layouts/image-only-2x-fit-vertical.json +0 -33
  406. package/dist/spec/catalogs/layouts/image-only-3x-crop-title-center.json +0 -40
  407. package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical-title-left.json +0 -41
  408. package/dist/spec/catalogs/layouts/image-only-3x-crop-vertical.json +0 -36
  409. package/dist/spec/catalogs/layouts/image-only-3x-crop.json +0 -35
  410. package/dist/spec/catalogs/layouts/image-only-3x-fit-title-center.json +0 -40
  411. package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical-title-left.json +0 -41
  412. package/dist/spec/catalogs/layouts/image-only-3x-fit-vertical.json +0 -36
  413. package/dist/spec/catalogs/layouts/image-only-3x-fit.json +0 -35
  414. package/dist/spec/catalogs/layouts/index.json +0 -1399
  415. package/dist/spec/catalogs/layouts/key-takeaway.json +0 -25
  416. package/dist/spec/catalogs/layouts/kpi-scorecard.json +0 -83
  417. package/dist/spec/catalogs/layouts/list-1x-box-title-center.json +0 -32
  418. package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-center.json +0 -33
  419. package/dist/spec/catalogs/layouts/list-1x-box-vertical-title-left.json +0 -33
  420. package/dist/spec/catalogs/layouts/list-1x-box-vertical.json +0 -28
  421. package/dist/spec/catalogs/layouts/list-1x-box.json +0 -27
  422. package/dist/spec/catalogs/layouts/list-1x-itemimage-title-center.json +0 -32
  423. package/dist/spec/catalogs/layouts/list-1x-itemimage-vertical-title-center.json +0 -33
  424. package/dist/spec/catalogs/layouts/list-1x-title-center.json +0 -31
  425. package/dist/spec/catalogs/layouts/list-1x-vertical-title-center.json +0 -32
  426. package/dist/spec/catalogs/layouts/list-1x.json +0 -29
  427. package/dist/spec/catalogs/layouts/list-2x-box-title-center.json +0 -38
  428. package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-center.json +0 -39
  429. package/dist/spec/catalogs/layouts/list-2x-box-vertical-title-left.json +0 -39
  430. package/dist/spec/catalogs/layouts/list-2x-box-vertical.json +0 -34
  431. package/dist/spec/catalogs/layouts/list-2x-box.json +0 -33
  432. package/dist/spec/catalogs/layouts/list-2x-itemimage-title-center.json +0 -38
  433. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-center.json +0 -39
  434. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical-title-left.json +0 -39
  435. package/dist/spec/catalogs/layouts/list-2x-itemimage-vertical.json +0 -34
  436. package/dist/spec/catalogs/layouts/list-2x-title-center.json +0 -37
  437. package/dist/spec/catalogs/layouts/list-2x-vertical-title-center.json +0 -38
  438. package/dist/spec/catalogs/layouts/list-2x-vertical-title-left.json +0 -38
  439. package/dist/spec/catalogs/layouts/list-2x-vertical.json +0 -33
  440. package/dist/spec/catalogs/layouts/list-2x.json +0 -35
  441. package/dist/spec/catalogs/layouts/list-3x-box-title-center.json +0 -41
  442. package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-center.json +0 -42
  443. package/dist/spec/catalogs/layouts/list-3x-box-vertical-title-left.json +0 -42
  444. package/dist/spec/catalogs/layouts/list-3x-box-vertical.json +0 -37
  445. package/dist/spec/catalogs/layouts/list-3x-box.json +0 -36
  446. package/dist/spec/catalogs/layouts/list-3x-itemimage-title-center.json +0 -41
  447. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-center.json +0 -42
  448. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical-title-left.json +0 -42
  449. package/dist/spec/catalogs/layouts/list-3x-itemimage-vertical.json +0 -37
  450. package/dist/spec/catalogs/layouts/list-3x-itemimage.json +0 -36
  451. package/dist/spec/catalogs/layouts/list-3x-title-center.json +0 -40
  452. package/dist/spec/catalogs/layouts/list-3x-vertical-title-center.json +0 -41
  453. package/dist/spec/catalogs/layouts/list-3x-vertical-title-left.json +0 -41
  454. package/dist/spec/catalogs/layouts/list-3x-vertical.json +0 -36
  455. package/dist/spec/catalogs/layouts/list-3x.json +0 -38
  456. package/dist/spec/catalogs/layouts/list-4x-box-title-center.json +0 -45
  457. package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-center.json +0 -45
  458. package/dist/spec/catalogs/layouts/list-4x-box-vertical-title-left.json +0 -45
  459. package/dist/spec/catalogs/layouts/list-4x-box-vertical.json +0 -40
  460. package/dist/spec/catalogs/layouts/list-4x-box.json +0 -40
  461. package/dist/spec/catalogs/layouts/list-4x-itemimage-title-center.json +0 -45
  462. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-center.json +0 -45
  463. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical-title-left.json +0 -45
  464. package/dist/spec/catalogs/layouts/list-4x-itemimage-vertical.json +0 -40
  465. package/dist/spec/catalogs/layouts/list-4x-title-center.json +0 -44
  466. package/dist/spec/catalogs/layouts/list-4x-vertical-title-center.json +0 -44
  467. package/dist/spec/catalogs/layouts/list-4x-vertical-title-left.json +0 -44
  468. package/dist/spec/catalogs/layouts/list-4x-vertical.json +0 -39
  469. package/dist/spec/catalogs/layouts/list-4x.json +0 -42
  470. package/dist/spec/catalogs/layouts/list-5x-box-title-center.json +0 -48
  471. package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-center.json +0 -50
  472. package/dist/spec/catalogs/layouts/list-5x-box-vertical-title-left.json +0 -50
  473. package/dist/spec/catalogs/layouts/list-5x-box-vertical.json +0 -45
  474. package/dist/spec/catalogs/layouts/list-5x-box.json +0 -43
  475. package/dist/spec/catalogs/layouts/list-5x-itemimage-title-center.json +0 -48
  476. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-center.json +0 -48
  477. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical-title-left.json +0 -48
  478. package/dist/spec/catalogs/layouts/list-5x-itemimage-vertical.json +0 -43
  479. package/dist/spec/catalogs/layouts/list-5x-title-center.json +0 -47
  480. package/dist/spec/catalogs/layouts/list-5x-vertical-title-center.json +0 -47
  481. package/dist/spec/catalogs/layouts/list-5x-vertical-title-left.json +0 -47
  482. package/dist/spec/catalogs/layouts/list-5x-vertical.json +0 -42
  483. package/dist/spec/catalogs/layouts/list-5x.json +0 -45
  484. package/dist/spec/catalogs/layouts/list-6x-box-title-center.json +0 -51
  485. package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-center.json +0 -53
  486. package/dist/spec/catalogs/layouts/list-6x-box-vertical-title-left.json +0 -53
  487. package/dist/spec/catalogs/layouts/list-6x-box-vertical.json +0 -48
  488. package/dist/spec/catalogs/layouts/list-6x-box.json +0 -46
  489. package/dist/spec/catalogs/layouts/list-6x-itemimage-title-center.json +0 -51
  490. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-center.json +0 -51
  491. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical-title-left.json +0 -51
  492. package/dist/spec/catalogs/layouts/list-6x-itemimage-vertical.json +0 -46
  493. package/dist/spec/catalogs/layouts/list-6x-title-center.json +0 -50
  494. package/dist/spec/catalogs/layouts/list-6x-vertical-title-center.json +0 -50
  495. package/dist/spec/catalogs/layouts/list-6x-vertical-title-left.json +0 -50
  496. package/dist/spec/catalogs/layouts/list-6x-vertical.json +0 -45
  497. package/dist/spec/catalogs/layouts/list-6x.json +0 -48
  498. package/dist/spec/catalogs/layouts/logic-tree.json +0 -98
  499. package/dist/spec/catalogs/layouts/market-size.json +0 -53
  500. package/dist/spec/catalogs/layouts/matrix-quadrant.json +0 -42
  501. package/dist/spec/catalogs/layouts/media-1x.json +0 -29
  502. package/dist/spec/catalogs/layouts/network-dependency-map.json +0 -30
  503. package/dist/spec/catalogs/layouts/number-1x-box-title-center.json +0 -30
  504. package/dist/spec/catalogs/layouts/number-1x-box.json +0 -25
  505. package/dist/spec/catalogs/layouts/number-1x-title-center.json +0 -29
  506. package/dist/spec/catalogs/layouts/number-1x.json +0 -28
  507. package/dist/spec/catalogs/layouts/number-2x-box-title-center.json +0 -36
  508. package/dist/spec/catalogs/layouts/number-2x-box.json +0 -31
  509. package/dist/spec/catalogs/layouts/number-2x-title-center.json +0 -35
  510. package/dist/spec/catalogs/layouts/number-2x.json +0 -34
  511. package/dist/spec/catalogs/layouts/number-3x-box-title-center.json +0 -39
  512. package/dist/spec/catalogs/layouts/number-3x-box.json +0 -34
  513. package/dist/spec/catalogs/layouts/number-3x-title-center.json +0 -38
  514. package/dist/spec/catalogs/layouts/number-3x.json +0 -37
  515. package/dist/spec/catalogs/layouts/number-4x-box-title-center.json +0 -43
  516. package/dist/spec/catalogs/layouts/number-4x-box.json +0 -38
  517. package/dist/spec/catalogs/layouts/number-4x-title-center.json +0 -42
  518. package/dist/spec/catalogs/layouts/number-4x.json +0 -41
  519. package/dist/spec/catalogs/layouts/number-5x-box-title-center.json +0 -46
  520. package/dist/spec/catalogs/layouts/number-5x-box.json +0 -41
  521. package/dist/spec/catalogs/layouts/number-5x-title-center.json +0 -45
  522. package/dist/spec/catalogs/layouts/number-5x.json +0 -44
  523. package/dist/spec/catalogs/layouts/number-6x-box-title-center.json +0 -49
  524. package/dist/spec/catalogs/layouts/number-6x-box.json +0 -44
  525. package/dist/spec/catalogs/layouts/number-6x-title-center.json +0 -48
  526. package/dist/spec/catalogs/layouts/number-6x.json +0 -47
  527. package/dist/spec/catalogs/layouts/one-column-explainer.json +0 -29
  528. package/dist/spec/catalogs/layouts/org-chart.json +0 -86
  529. package/dist/spec/catalogs/layouts/persona-grid.json +0 -30
  530. package/dist/spec/catalogs/layouts/photo-grid.json +0 -43
  531. package/dist/spec/catalogs/layouts/pricing-table.json +0 -29
  532. package/dist/spec/catalogs/layouts/process-flow.json +0 -29
  533. package/dist/spec/catalogs/layouts/product-feature.json +0 -30
  534. package/dist/spec/catalogs/layouts/pros-cons.json +0 -35
  535. package/dist/spec/catalogs/layouts/qa-discussion.json +0 -30
  536. package/dist/spec/catalogs/layouts/quote-1x.json +0 -23
  537. package/dist/spec/catalogs/layouts/quote-highlight.json +0 -29
  538. package/dist/spec/catalogs/layouts/raci-matrix.json +0 -29
  539. package/dist/spec/catalogs/layouts/risk-heatmap.json +0 -29
  540. package/dist/spec/catalogs/layouts/roadmap.json +0 -29
  541. package/dist/spec/catalogs/layouts/screenshot-walkthrough.json +0 -30
  542. package/dist/spec/catalogs/layouts/section-divider.json +0 -28
  543. package/dist/spec/catalogs/layouts/single-message-statement.json +0 -25
  544. package/dist/spec/catalogs/layouts/stats-metrics.json +0 -39
  545. package/dist/spec/catalogs/layouts/status-rag.json +0 -29
  546. package/dist/spec/catalogs/layouts/swimlane-process.json +0 -30
  547. package/dist/spec/catalogs/layouts/swot-analysis.json +0 -42
  548. package/dist/spec/catalogs/layouts/table-1x.json +0 -29
  549. package/dist/spec/catalogs/layouts/team-bio.json +0 -30
  550. package/dist/spec/catalogs/layouts/testimonial-grid.json +0 -38
  551. package/dist/spec/catalogs/layouts/text-1x-box-title-center.json +0 -31
  552. package/dist/spec/catalogs/layouts/text-1x-box-title-left.json +0 -31
  553. package/dist/spec/catalogs/layouts/text-1x-center-box-title-center.json +0 -31
  554. package/dist/spec/catalogs/layouts/text-1x-center-box-title-left.json +0 -31
  555. package/dist/spec/catalogs/layouts/text-1x-center-box.json +0 -26
  556. package/dist/spec/catalogs/layouts/text-1x-center-title-center.json +0 -30
  557. package/dist/spec/catalogs/layouts/text-1x-center-title-left.json +0 -30
  558. package/dist/spec/catalogs/layouts/text-1x-center.json +0 -25
  559. package/dist/spec/catalogs/layouts/text-1x-left-box.json +0 -26
  560. package/dist/spec/catalogs/layouts/text-1x-title-center.json +0 -30
  561. package/dist/spec/catalogs/layouts/text-1x.json +0 -23
  562. package/dist/spec/catalogs/layouts/text-2x-box-title-center.json +0 -37
  563. package/dist/spec/catalogs/layouts/text-2x-box-vertical-title-left.json +0 -37
  564. package/dist/spec/catalogs/layouts/text-2x-center-box-title-center.json +0 -37
  565. package/dist/spec/catalogs/layouts/text-2x-center-box-vertical-title-left.json +0 -37
  566. package/dist/spec/catalogs/layouts/text-2x-center-box.json +0 -32
  567. package/dist/spec/catalogs/layouts/text-2x-center-title-center.json +0 -36
  568. package/dist/spec/catalogs/layouts/text-2x-center-vertical-title-left.json +0 -36
  569. package/dist/spec/catalogs/layouts/text-2x-center.json +0 -31
  570. package/dist/spec/catalogs/layouts/text-2x-left-box.json +0 -32
  571. package/dist/spec/catalogs/layouts/text-2x-title-center.json +0 -36
  572. package/dist/spec/catalogs/layouts/text-2x-vertical-title-left.json +0 -36
  573. package/dist/spec/catalogs/layouts/text-2x.json +0 -29
  574. package/dist/spec/catalogs/layouts/text-3x-box-title-center.json +0 -40
  575. package/dist/spec/catalogs/layouts/text-3x-box-vertical-title-left.json +0 -41
  576. package/dist/spec/catalogs/layouts/text-3x-center-box-title-center.json +0 -40
  577. package/dist/spec/catalogs/layouts/text-3x-center-box-vertical-title-left.json +0 -41
  578. package/dist/spec/catalogs/layouts/text-3x-center-box.json +0 -35
  579. package/dist/spec/catalogs/layouts/text-3x-center-title-center.json +0 -39
  580. package/dist/spec/catalogs/layouts/text-3x-center-vertical-title-left.json +0 -40
  581. package/dist/spec/catalogs/layouts/text-3x-center.json +0 -34
  582. package/dist/spec/catalogs/layouts/text-3x-left-box.json +0 -35
  583. package/dist/spec/catalogs/layouts/text-3x-left.json +0 -34
  584. package/dist/spec/catalogs/layouts/text-3x-title-center.json +0 -39
  585. package/dist/spec/catalogs/layouts/text-3x-vertical-title-left.json +0 -40
  586. package/dist/spec/catalogs/layouts/text-3x.json +0 -32
  587. package/dist/spec/catalogs/layouts/thank-you-cta.json +0 -28
  588. package/dist/spec/catalogs/layouts/three-column.json +0 -39
  589. package/dist/spec/catalogs/layouts/timeline-1x.json +0 -23
  590. package/dist/spec/catalogs/layouts/timeline.json +0 -32
  591. package/dist/spec/catalogs/layouts/title-center-box.json +0 -27
  592. package/dist/spec/catalogs/layouts/title-center-image-bottom.json +0 -34
  593. package/dist/spec/catalogs/layouts/title-center-image-top.json +0 -34
  594. package/dist/spec/catalogs/layouts/title-center.json +0 -26
  595. package/dist/spec/catalogs/layouts/title-left-image-bottom.json +0 -34
  596. package/dist/spec/catalogs/layouts/title-left-image-left.json +0 -34
  597. package/dist/spec/catalogs/layouts/title-left-image-right.json +0 -34
  598. package/dist/spec/catalogs/layouts/title-left-image-top.json +0 -34
  599. package/dist/spec/catalogs/layouts/title-slide.json +0 -28
  600. package/dist/spec/catalogs/layouts/title-subtitle.json +0 -23
  601. package/dist/spec/catalogs/layouts/title.json +0 -20
  602. package/dist/spec/catalogs/layouts/two-column.json +0 -36
  603. package/dist/spec/catalogs/layouts/venn-overlap.json +0 -29
  604. package/dist/spec/catalogs/layouts/waterfall-bridge.json +0 -39
  605. package/dist/spec/catalogs/layouts/wheel-radial.json +0 -29
  606. package/dist/spec/catalogs/manifest.json +0 -111
  607. package/dist/spec/catalogs/narratives/board-meeting.json +0 -192
  608. package/dist/spec/catalogs/narratives/business-narrative.json +0 -87
  609. package/dist/spec/catalogs/narratives/business-review.json +0 -119
  610. package/dist/spec/catalogs/narratives/capacity-planning.json +0 -88
  611. package/dist/spec/catalogs/narratives/challenge-resolution.json +0 -80
  612. package/dist/spec/catalogs/narratives/change-story.json +0 -64
  613. package/dist/spec/catalogs/narratives/classic-story.json +0 -78
  614. package/dist/spec/catalogs/narratives/company-intro.json +0 -96
  615. package/dist/spec/catalogs/narratives/conference-talk.json +0 -54
  616. package/dist/spec/catalogs/narratives/data-story.json +0 -65
  617. package/dist/spec/catalogs/narratives/early-startup-pitch.json +0 -119
  618. package/dist/spec/catalogs/narratives/educate.json +0 -95
  619. package/dist/spec/catalogs/narratives/employee-review.json +0 -87
  620. package/dist/spec/catalogs/narratives/failure-analysis.json +0 -104
  621. package/dist/spec/catalogs/narratives/focus.json +0 -120
  622. package/dist/spec/catalogs/narratives/golden-circle.json +0 -50
  623. package/dist/spec/catalogs/narratives/heros-journey.json +0 -64
  624. package/dist/spec/catalogs/narratives/index.json +0 -1041
  625. package/dist/spec/catalogs/narratives/innovation.json +0 -96
  626. package/dist/spec/catalogs/narratives/justice.json +0 -112
  627. package/dist/spec/catalogs/narratives/marketing-strategy.json +0 -111
  628. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +0 -87
  629. package/dist/spec/catalogs/narratives/performance-review.json +0 -111
  630. package/dist/spec/catalogs/narratives/persuade.json +0 -94
  631. package/dist/spec/catalogs/narratives/persuasive-sales.json +0 -87
  632. package/dist/spec/catalogs/narratives/pitch-deck.json +0 -107
  633. package/dist/spec/catalogs/narratives/problem-solution.json +0 -61
  634. package/dist/spec/catalogs/narratives/product-launch.json +0 -104
  635. package/dist/spec/catalogs/narratives/project-proposal.json +0 -104
  636. package/dist/spec/catalogs/narratives/pyramid-principle.json +0 -48
  637. package/dist/spec/catalogs/narratives/qbr.json +0 -85
  638. package/dist/spec/catalogs/narratives/rags-to-riches.json +0 -80
  639. package/dist/spec/catalogs/narratives/reveal.json +0 -87
  640. package/dist/spec/catalogs/narratives/scqa.json +0 -55
  641. package/dist/spec/catalogs/narratives/situation-complication-resolution.json +0 -56
  642. package/dist/spec/catalogs/narratives/sparkline.json +0 -56
  643. package/dist/spec/catalogs/narratives/star-method.json +0 -56
  644. package/dist/spec/catalogs/narratives/status-update.json +0 -72
  645. package/dist/spec/catalogs/narratives/strategic-advisory.json +0 -85
  646. package/dist/spec/catalogs/narratives/strategic-narrative.json +0 -61
  647. package/dist/spec/catalogs/narratives/survey-analysis.json +0 -104
  648. package/dist/spec/catalogs/narratives/survival-story.json +0 -103
  649. package/dist/spec/catalogs/narratives/transformation-arc.json +0 -50
  650. package/dist/spec/catalogs/narratives/trend-analysis.json +0 -79
  651. package/dist/spec/catalogs/narratives/underdog-victory.json +0 -87
  652. package/dist/spec/catalogs/narratives/venture-pitch.json +0 -109
  653. package/dist/spec/catalogs/narratives/vision-roadmap.json +0 -65
  654. package/dist/spec/catalogs/narratives/weekly-progress.json +0 -103
  655. package/dist/spec/catalogs/narratives/what-so-what-now-what.json +0 -48
  656. package/dist/spec/catalogs/purposes/align.json +0 -16
  657. package/dist/spec/catalogs/purposes/decide.json +0 -16
  658. package/dist/spec/catalogs/purposes/educate.json +0 -16
  659. package/dist/spec/catalogs/purposes/index.json +0 -63
  660. package/dist/spec/catalogs/purposes/inform.json +0 -16
  661. package/dist/spec/catalogs/purposes/persuade.json +0 -16
  662. package/dist/spec/catalogs/purposes/pitch.json +0 -16
  663. package/dist/spec/catalogs/purposes/plan.json +0 -16
  664. package/dist/spec/catalogs/purposes/report.json +0 -16
  665. package/dist/spec/catalogs/purposes/sell.json +0 -16
  666. package/dist/spec/catalogs/social-platforms/bluesky.json +0 -14
  667. package/dist/spec/catalogs/social-platforms/facebook.json +0 -14
  668. package/dist/spec/catalogs/social-platforms/github.json +0 -15
  669. package/dist/spec/catalogs/social-platforms/index.json +0 -69
  670. package/dist/spec/catalogs/social-platforms/instagram.json +0 -13
  671. package/dist/spec/catalogs/social-platforms/linkedin.json +0 -15
  672. package/dist/spec/catalogs/social-platforms/mastodon.json +0 -14
  673. package/dist/spec/catalogs/social-platforms/threads.json +0 -13
  674. package/dist/spec/catalogs/social-platforms/tiktok.json +0 -14
  675. package/dist/spec/catalogs/social-platforms/x.json +0 -14
  676. package/dist/spec/catalogs/social-platforms/youtube.json +0 -14
  677. package/dist/spec/catalogs/themes/bold.json +0 -13
  678. package/dist/spec/catalogs/themes/classic.json +0 -13
  679. package/dist/spec/catalogs/themes/dark.json +0 -13
  680. package/dist/spec/catalogs/themes/index.json +0 -33
  681. package/dist/spec/catalogs/themes/minimal.json +0 -13
  682. package/dist/spec/catalogs/tones/authoritative.json +0 -31
  683. package/dist/spec/catalogs/tones/casual.json +0 -31
  684. package/dist/spec/catalogs/tones/conversational.json +0 -31
  685. package/dist/spec/catalogs/tones/formal.json +0 -31
  686. package/dist/spec/catalogs/tones/index.json +0 -51
  687. package/dist/spec/catalogs/tones/inspirational.json +0 -31
  688. package/dist/spec/catalogs/tones/persuasive.json +0 -32
  689. package/dist/spec/catalogs/tones/technical.json +0 -31
  690. package/dist/spec/previews/layouts/action-plan.html +0 -1
  691. package/dist/spec/previews/layouts/agenda.html +0 -1
  692. package/dist/spec/previews/layouts/appendix-index.html +0 -1
  693. package/dist/spec/previews/layouts/architecture-stack.html +0 -1
  694. package/dist/spec/previews/layouts/assumptions-dependencies.html +0 -1
  695. package/dist/spec/previews/layouts/before-after.html +0 -1
  696. package/dist/spec/previews/layouts/benchmark-target-table.html +0 -1
  697. package/dist/spec/previews/layouts/bullet-list.html +0 -1
  698. package/dist/spec/previews/layouts/business-model-canvas.html +0 -1
  699. package/dist/spec/previews/layouts/capability-map.html +0 -1
  700. package/dist/spec/previews/layouts/case-study.html +0 -1
  701. package/dist/spec/previews/layouts/chapter-recap.html +0 -1
  702. package/dist/spec/previews/layouts/circular-lifecycle.html +0 -1
  703. package/dist/spec/previews/layouts/comparison.html +0 -1
  704. package/dist/spec/previews/layouts/competitive-landscape.html +0 -1
  705. package/dist/spec/previews/layouts/customer-journey.html +0 -1
  706. package/dist/spec/previews/layouts/customer-logos.html +0 -1
  707. package/dist/spec/previews/layouts/dashboard.html +0 -1
  708. package/dist/spec/previews/layouts/data-visualization.html +0 -1
  709. package/dist/spec/previews/layouts/decision-tree.html +0 -1
  710. package/dist/spec/previews/layouts/detailed-data-table.html +0 -1
  711. package/dist/spec/previews/layouts/ecosystem-map.html +0 -1
  712. package/dist/spec/previews/layouts/executive-decision.html +0 -1
  713. package/dist/spec/previews/layouts/executive-summary.html +0 -1
  714. package/dist/spec/previews/layouts/faq.html +0 -1
  715. package/dist/spec/previews/layouts/feature-comparison-matrix.html +0 -1
  716. package/dist/spec/previews/layouts/forecast-scenario.html +0 -1
  717. package/dist/spec/previews/layouts/funnel-pyramid.html +0 -1
  718. package/dist/spec/previews/layouts/gantt-project-plan.html +0 -1
  719. package/dist/spec/previews/layouts/geographic-map.html +0 -1
  720. package/dist/spec/previews/layouts/heatmap-cohort.html +0 -1
  721. package/dist/spec/previews/layouts/hub-and-spoke.html +0 -1
  722. package/dist/spec/previews/layouts/icon-grid.html +0 -1
  723. package/dist/spec/previews/layouts/image-focus.html +0 -1
  724. package/dist/spec/previews/layouts/index.json +0 -357
  725. package/dist/spec/previews/layouts/key-takeaway.html +0 -1
  726. package/dist/spec/previews/layouts/kpi-scorecard.html +0 -1
  727. package/dist/spec/previews/layouts/logic-tree.html +0 -1
  728. package/dist/spec/previews/layouts/market-size.html +0 -1
  729. package/dist/spec/previews/layouts/matrix-quadrant.html +0 -1
  730. package/dist/spec/previews/layouts/network-dependency-map.html +0 -1
  731. package/dist/spec/previews/layouts/one-column-explainer.html +0 -1
  732. package/dist/spec/previews/layouts/org-chart.html +0 -1
  733. package/dist/spec/previews/layouts/persona-grid.html +0 -1
  734. package/dist/spec/previews/layouts/photo-grid.html +0 -1
  735. package/dist/spec/previews/layouts/pricing-table.html +0 -1
  736. package/dist/spec/previews/layouts/process-flow.html +0 -1
  737. package/dist/spec/previews/layouts/product-feature.html +0 -1
  738. package/dist/spec/previews/layouts/pros-cons.html +0 -1
  739. package/dist/spec/previews/layouts/qa-discussion.html +0 -1
  740. package/dist/spec/previews/layouts/quote-highlight.html +0 -1
  741. package/dist/spec/previews/layouts/raci-matrix.html +0 -1
  742. package/dist/spec/previews/layouts/risk-heatmap.html +0 -1
  743. package/dist/spec/previews/layouts/roadmap.html +0 -1
  744. package/dist/spec/previews/layouts/screenshot-walkthrough.html +0 -1
  745. package/dist/spec/previews/layouts/section-divider.html +0 -1
  746. package/dist/spec/previews/layouts/single-message-statement.html +0 -1
  747. package/dist/spec/previews/layouts/stats-metrics.html +0 -1
  748. package/dist/spec/previews/layouts/status-rag.html +0 -1
  749. package/dist/spec/previews/layouts/swimlane-process.html +0 -1
  750. package/dist/spec/previews/layouts/swot-analysis.html +0 -1
  751. package/dist/spec/previews/layouts/team-bio.html +0 -1
  752. package/dist/spec/previews/layouts/testimonial-grid.html +0 -1
  753. package/dist/spec/previews/layouts/thank-you-cta.html +0 -1
  754. package/dist/spec/previews/layouts/three-column.html +0 -1
  755. package/dist/spec/previews/layouts/timeline.html +0 -1
  756. package/dist/spec/previews/layouts/title-slide.html +0 -1
  757. package/dist/spec/previews/layouts/two-column.html +0 -1
  758. package/dist/spec/previews/layouts/venn-overlap.html +0 -1
  759. package/dist/spec/previews/layouts/waterfall-bridge.html +0 -1
  760. package/dist/spec/previews/layouts/wheel-radial.html +0 -1
@@ -1,47 +1,50 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://openpresentation.org/schema/opf-layout/v1",
3
+ "$id": "https://openpresentation.org/schema/opf-layout/v2",
4
4
  "title": "Slide Layout",
5
- "description": "Schema for slide-layout records. Each record describes a semantic slide layout: what regions it exposes, what content kinds those regions are intended to hold, how they are arranged (composition) and its design hints. Documents reference a layout from Slide.layout; a slide without a layout, or whose layout resolves nowhere, composes automatically.\n\nA document references a record as a bare id or 'name:id' and resolves it in its own catalogs groups first, then in the catalog the host registered for the group's source; engines never fetch a catalog. A published record file carries '$schema' and 'id'; the copy a document embeds under catalogs.<group>.<kind>.<id> carries neither (the key is the id) and no 'x-*' display metadata.",
5
+ "description": "Schema for slide-layout records (OPF 0.19). A layout is a grid template: 'areas' names the cells of a grid in the notation of CSS grid-template-areas, 'columns' and 'rows' size its tracks, and 'regions' says, for every body area, which content kinds it takes and how several blocks share it. Slide content stays flat: engines bind a slide's blocks to the regions by reading order, role and kind (bindRegions in @openpresentation/opf), a block may pin itself to a region with 'region', and an empty region collapses into a neighbour. Built-in and custom layouts are records of this one schema; a custom layout is embedded under catalogs.custom.layouts or shipped in a catalog. Documents reference a layout from Slide.layout; a slide without a layout, with layout 'auto', or whose layout resolves nowhere composes automatically.\n\nA document references a record as a bare id or 'name:id' and resolves it in its own catalogs groups first, then in the catalog the host registered for the group's source; engines never fetch a catalog. A published record file carries '$schema' and 'id'; the copy a document embeds under catalogs.<group>.<kind>.<id> carries neither (the key is the id) and no 'x-*' display metadata.",
6
6
  "type": "object",
7
7
  "required": [
8
8
  "$schema",
9
9
  "id",
10
- "name"
10
+ "name",
11
+ "areas"
11
12
  ],
12
13
  "properties": {
13
14
  "$schema": {
14
15
  "type": "string",
15
- "const": "https://openpresentation.org/schema/opf-layout/v1",
16
- "description": "Identifies a published record file as a layout record. Required in a published file; an embedded copy omits it."
16
+ "const": "https://openpresentation.org/schema/opf-layout/v2",
17
+ "description": "Identifies a published record file as a layout template. Required in a published file; an embedded copy omits it."
17
18
  },
18
19
  "id": {
19
20
  "type": "string",
20
21
  "pattern": "^[a-z][a-z0-9-]*$",
21
- "description": "The layout's id in its catalog, lowercase kebab-case. Required in a published record file; a document references the record by it (a bare id, or 'name:id' for a named group) and embeds it keyed by it, without this field.",
22
+ "description": "The layout's id in its catalog, lowercase kebab-case. Required in a published record file; a document references the record by it (a bare id, or 'name:id' for a named group) and embeds it keyed by it, without this field. 'auto' is reserved: Slide.layout 'auto' is automatic composition, so no catalog may define a layout of that id.",
22
23
  "examples": [
23
- "title",
24
- "title-subtitle",
25
- "chart-1x",
26
- "image-focus"
27
- ]
24
+ "cover",
25
+ "pillars",
26
+ "chart-beside",
27
+ "roadmap-split"
28
+ ],
29
+ "not": {
30
+ "const": "auto"
31
+ }
28
32
  },
29
33
  "name": {
30
34
  "type": "string",
31
- "description": "Human-readable layout name shown in layout pickers.",
35
+ "description": "Human-readable layout name, shown in layout pickers and as the PowerPoint layout name.",
32
36
  "examples": [
33
- "Title",
34
- "Title Subtitle",
35
- "Chart 1x",
36
- "Image Bleed"
37
+ "Cover",
38
+ "Pillars",
39
+ "Chart beside"
37
40
  ]
38
41
  },
39
42
  "summary": {
40
43
  "type": "string",
41
- "description": "One-sentence positioning of the layout — when to reach for it.",
44
+ "description": "One-sentence positioning of the layout \u2014 when to reach for it.",
42
45
  "examples": [
43
- "Slide title aligned left over a single content area — flexible workhorse layout.",
44
- "Title plus a single chart on the left and supporting copy on the right."
46
+ "Two to six ideas of equal weight, as cards.",
47
+ "A chart with the takeaway beside it."
45
48
  ]
46
49
  },
47
50
  "description": {
@@ -53,12 +56,92 @@
53
56
  },
54
57
  "design": {
55
58
  "$ref": "#/$defs/DesignHints",
56
- "description": "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). Composition, the renderer and the PPTX exporter all read the one result."
59
+ "description": "The layout's design defaults, 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. Per key the slide's design wins, then the deck's design, then the resolved theme's design, then this record's design, then the engine default. Composition, the renderer and the PPTX exporter all read the one result."
57
60
  },
58
- "placeholders": {
61
+ "areas": {
59
62
  "type": "array",
60
- "items": { "$ref": "#/$defs/PlaceholderEntry" },
61
- "description": "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, which counts the leaves of placeholder groups), 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. An entry may instead be a placeholder group ({ \"type\": \"group\", \"composition\", \"placeholders\" }) that arranges its own regions inside one cell of this record's composition, so a record can say 'two stacked panels beside a chart' once; groups nest at most three levels. Slide content stays flat: its body payloads fill the leaf regions in reading order (depth first, in array order). Slide content itself lives either in root payload fields, blocks or promoted region keys on Slide. Chrome (slide number, footer, date) is not included here; it is owned by Design.header / Design.footer."
63
+ "minItems": 1,
64
+ "maxItems": 12,
65
+ "items": {
66
+ "type": "string"
67
+ },
68
+ "description": "The grid, in the notation of CSS grid-template-areas: each string is a row, each word a cell, and a name repeated over adjacent cells spans them; '.' is an empty cell. Words are lowercase names ([a-z][a-z0-9-]*) or '.', separated by spaces, and every row has the same number of words (at most 12 rows and 12 columns). A name's cells must form one filled rectangle. 'title' and 'subtitle' are heading areas: 'title' holds the slide's heading group (tag, title and subtitle, stacked) and a 'subtitle' area takes the subtitle out of it; they have no regions entry, and a 'subtitle' area needs a 'title' area. A layout with no 'title' area gets an implicit auto row on top for a slide that has headings. Every other name is a body region and needs an entry in 'regions'. The grid rules a schema cannot express are the validate finding opf/layout-template.",
69
+ "examples": [
70
+ [
71
+ "title",
72
+ "body"
73
+ ],
74
+ [
75
+ "title title",
76
+ "timeline notes",
77
+ "timeline metrics"
78
+ ]
79
+ ]
80
+ },
81
+ "columns": {
82
+ "type": "array",
83
+ "minItems": 1,
84
+ "maxItems": 12,
85
+ "items": {
86
+ "type": "number",
87
+ "exclusiveMinimum": 0,
88
+ "maximum": 100
89
+ },
90
+ "description": "Relative column widths, one per cell of a row; the columns share the content width in proportion, separated by the gap. Omitted: all 1. Columns are numbers only.",
91
+ "examples": [
92
+ [
93
+ 1,
94
+ 1
95
+ ],
96
+ [
97
+ 3,
98
+ 2
99
+ ]
100
+ ]
101
+ },
102
+ "rows": {
103
+ "type": "array",
104
+ "minItems": 1,
105
+ "maxItems": 12,
106
+ "items": {
107
+ "oneOf": [
108
+ {
109
+ "type": "number",
110
+ "exclusiveMinimum": 0,
111
+ "maximum": 100
112
+ },
113
+ {
114
+ "const": "auto"
115
+ }
116
+ ]
117
+ },
118
+ "description": "Relative row heights, one per string of 'areas'. 'auto' is the height the row's content needs at the starting text size (at most half the content box; areas that span several rows do not size it); the numeric rows share the rest in proportion. An auto row whose areas are all empty has no height. Omitted: all 1.",
119
+ "examples": [
120
+ [
121
+ "auto",
122
+ 1
123
+ ],
124
+ [
125
+ "auto",
126
+ 1,
127
+ "auto"
128
+ ]
129
+ ]
130
+ },
131
+ "regions": {
132
+ "type": "object",
133
+ "propertyNames": {
134
+ "pattern": "^[a-z][a-z0-9-]*$"
135
+ },
136
+ "additionalProperties": {
137
+ "$ref": "#/$defs/Region"
138
+ },
139
+ "description": "One entry per body area, keyed by the area's name. Region names may not be 'title', 'subtitle', 'tag', 'auto' or one of the promoted-region words ('left', 'center', 'right', 'top', 'middle', 'bottom'), so a Markdown block's region= option stays unambiguous. Region rules the schema cannot express (an area without a region, a region without an area, a reserved name) are the validate finding opf/layout-region."
140
+ },
141
+ "overflowRegion": {
142
+ "type": "string",
143
+ "pattern": "^[a-z][a-z0-9-]*$",
144
+ "description": "The region where content that no region accepts goes, whatever its 'accepts', while it has room; content beyond every region's room is drawn there too, with the warning opf/layout-unplaced. Omitted: the first primary region (in reading order) whose flow is not 'none'."
62
145
  },
63
146
  "tags": {
64
147
  "type": "array",
@@ -90,7 +173,7 @@
90
173
  "format": "uri",
91
174
  "description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
92
175
  "examples": [
93
- "https://example.com/layouts/title-subtitle.png"
176
+ "https://example.com/layouts/cover.png"
94
177
  ]
95
178
  },
96
179
  "thumbnailSrc": {
@@ -98,7 +181,7 @@
98
181
  "format": "uri",
99
182
  "description": "Smaller thumbnail preview suited to dense grid views.",
100
183
  "examples": [
101
- "https://example.com/layouts/title-subtitle.thumbnail.png"
184
+ "https://example.com/layouts/cover.thumbnail.png"
102
185
  ]
103
186
  },
104
187
  "vectorSrc": {
@@ -106,254 +189,115 @@
106
189
  "format": "uri",
107
190
  "description": "SVG / vector preview for crisp scaling at any size.",
108
191
  "examples": [
109
- "https://www.pptx.gallery/layout-previews/title-subtitle.svg"
192
+ "https://www.pptx.gallery/layout-previews/cover.svg"
110
193
  ]
111
194
  }
112
195
  }
113
196
  },
114
197
  "composition": {
198
+ "type": "object",
199
+ "description": "Only 'gap', 'padding', 'minFontSize' and 'overflow', with their 0.18 meaning. A template's regions replace composition.mode, columns and weights.",
115
200
  "$ref": "#/$defs/Composition"
116
201
  }
117
202
  },
118
203
  "$defs": {
119
- "PlaceholderEntry": {
120
- "description": "One entry of a layout's placeholders: a region (Placeholder) or, when its type is 'group', a placeholder group (PlaceholderGroup).",
121
- "if": {
122
- "type": "object",
123
- "required": [
124
- "type"
125
- ],
126
- "properties": {
127
- "type": {
128
- "const": "group"
129
- }
130
- }
131
- },
132
- "then": {
133
- "$ref": "#/$defs/PlaceholderGroup"
134
- },
135
- "else": {
136
- "$ref": "#/$defs/Placeholder"
137
- }
138
- },
139
- "PlaceholderGroup": {
204
+ "Region": {
140
205
  "type": "object",
141
206
  "additionalProperties": false,
142
207
  "required": [
143
- "type",
144
- "placeholders"
208
+ "accepts"
145
209
  ],
146
- "description": "A placeholder group: regions arranged by their own composition inside one cell of the record's composition, the way a content group (a block with blocks) arranges its children. Slide content fills the group's leaf regions in reading order, as part of one flat sequence for the whole record. A group holds body regions and groups only (no title, subtitle or tag, and no placement), and groups nest at most three levels inside a record: this is the first. Groups draw nothing of their own and have no slide path; design.chartPrimary is shorthand for a record whose root holds the chart and one group of the other content.",
210
+ "description": "One body region of a layout: which content it takes and how several blocks share it.",
147
211
  "properties": {
148
- "type": {
149
- "const": "group",
150
- "description": "Marks the entry as a placeholder group."
151
- },
152
- "composition": {
153
- "$ref": "#/$defs/Composition",
154
- "description": "How the group arranges its regions, with the semantics of a content group's composition: only minFontSize and overflow inherit from the enclosing composition; padding defaults to 0 and gap is a fraction of the group's short edge. Omitted, the group arranges its regions automatically."
155
- },
156
- "placeholders": {
212
+ "accepts": {
157
213
  "type": "array",
158
214
  "minItems": 1,
215
+ "uniqueItems": true,
159
216
  "items": {
160
- "$ref": "#/$defs/PlaceholderGroupEntry2"
217
+ "type": "string",
218
+ "enum": [
219
+ "text",
220
+ "list",
221
+ "image",
222
+ "video",
223
+ "chart",
224
+ "table",
225
+ "code",
226
+ "metric",
227
+ "quote",
228
+ "timeline",
229
+ "group"
230
+ ]
161
231
  },
162
- "description": "The group's regions and nested groups, in reading order."
163
- }
164
- }
165
- },
166
- "PlaceholderGroupEntry2": {
167
- "description": "An entry of a first-level group: a region (GroupedPlaceholder) or a second-level group (PlaceholderGroup2).",
168
- "if": {
169
- "type": "object",
170
- "required": [
171
- "type"
172
- ],
173
- "properties": {
174
- "type": {
175
- "const": "group"
176
- }
177
- }
178
- },
179
- "then": {
180
- "$ref": "#/$defs/PlaceholderGroup2"
181
- },
182
- "else": {
183
- "$ref": "#/$defs/GroupedPlaceholder"
184
- }
185
- },
186
- "PlaceholderGroup2": {
187
- "type": "object",
188
- "additionalProperties": false,
189
- "required": [
190
- "type",
191
- "placeholders"
192
- ],
193
- "description": "A placeholder group nested in another (the second level). Same fields as PlaceholderGroup.",
194
- "properties": {
195
- "type": {
196
- "const": "group",
197
- "description": "Marks the entry as a placeholder group."
198
- },
199
- "composition": {
200
- "$ref": "#/$defs/Composition",
201
- "description": "How the group arranges its regions; see PlaceholderGroup.composition."
202
- },
203
- "placeholders": {
204
- "type": "array",
205
- "minItems": 1,
206
- "items": {
207
- "$ref": "#/$defs/PlaceholderGroupEntry3"
208
- },
209
- "description": "The group's regions and nested groups, in reading order."
210
- }
211
- }
212
- },
213
- "PlaceholderGroupEntry3": {
214
- "description": "An entry of a second-level group: a region (GroupedPlaceholder) or a third-level group (PlaceholderGroup3).",
215
- "if": {
216
- "type": "object",
217
- "required": [
218
- "type"
219
- ],
220
- "properties": {
221
- "type": {
222
- "const": "group"
223
- }
224
- }
225
- },
226
- "then": {
227
- "$ref": "#/$defs/PlaceholderGroup3"
228
- },
229
- "else": {
230
- "$ref": "#/$defs/GroupedPlaceholder"
231
- }
232
- },
233
- "PlaceholderGroup3": {
234
- "type": "object",
235
- "additionalProperties": false,
236
- "required": [
237
- "type",
238
- "placeholders"
239
- ],
240
- "description": "The innermost placeholder group (the third level): it holds regions only, never another group.",
241
- "properties": {
242
- "type": {
243
- "const": "group",
244
- "description": "Marks the entry as a placeholder group."
245
- },
246
- "composition": {
247
- "$ref": "#/$defs/Composition",
248
- "description": "How the group arranges its regions; see PlaceholderGroup.composition."
232
+ "description": "Content kinds the region takes: the body content kinds, and 'group' for a content group of any content. A group is also accepted where every one of its leaf kinds is.",
233
+ "examples": [
234
+ [
235
+ "text",
236
+ "list"
237
+ ],
238
+ [
239
+ "image",
240
+ "video"
241
+ ]
242
+ ]
249
243
  },
250
- "placeholders": {
251
- "type": "array",
252
- "minItems": 1,
253
- "items": {
254
- "$ref": "#/$defs/GroupedPlaceholder"
255
- },
256
- "description": "The group's regions, in reading order."
257
- }
258
- }
259
- },
260
- "GroupedPlaceholder": {
261
- "type": "object",
262
- "additionalProperties": false,
263
- "required": [
264
- "type"
265
- ],
266
- "description": "A region inside a placeholder group: a body content kind only. Headings ('title', 'subtitle', 'tag') stay at the record's top level, and only a top-level image placeholder may carry a placement.",
267
- "properties": {
268
- "type": {
244
+ "role": {
269
245
  "type": "string",
270
246
  "enum": [
271
- "text",
272
- "list",
273
- "image",
274
- "video",
275
- "chart",
276
- "table",
277
- "code",
278
- "metric",
279
- "quote",
280
- "timeline"
247
+ "primary",
248
+ "secondary",
249
+ "media",
250
+ "supporting"
281
251
  ],
282
- "description": "The content kind of the region, from the one OPF content-kind vocabulary (see Placeholder.type)."
283
- }
284
- }
285
- },
286
- "Placeholder": {
287
- "type": "object",
288
- "required": [
289
- "type"
290
- ],
291
- "description": "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.",
292
- "if": {
293
- "required": [
294
- "placement"
295
- ]
296
- },
297
- "then": {
298
- "properties": {
299
- "type": {
300
- "const": "image"
301
- }
302
- }
303
- },
304
- "properties": {
305
- "type": {
252
+ "description": "Which content the region wants first. Binding gives a picture (image, video) to a media region first, then primary, secondary, supporting; every other kind to a primary region first, then secondary, supporting, media; of two equal regions the first in reading order fills first. A supporting region receives content only when no primary or secondary region that accepts it has room, or by a pin. Default 'primary'."
253
+ },
254
+ "flow": {
306
255
  "type": "string",
307
256
  "enum": [
308
- "title",
309
- "subtitle",
310
- "tag",
311
- "text",
312
- "list",
313
- "image",
314
- "video",
315
- "chart",
316
- "table",
317
- "code",
318
- "metric",
319
- "quote",
320
- "timeline"
257
+ "none",
258
+ "grid",
259
+ "column",
260
+ "auto"
321
261
  ],
322
- "description": "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."
262
+ "description": "How several blocks share the region: 'none' one block fills it; 'grid' by count (1 fills, 2 side by side, 3 in a row, 4 as 2 x 2, 5 as 3 + 2, 6 as 3 x 2, 7 to 12 in four columns; rows and columns swap in a portrait region; a short last row is centred); 'column' stacked with equal heights; 'auto' a grid when every block is short and a column when any block is long (more than 6 estimated lines in its grid cell at the starting size). design.contentDirection turns every flowing region into one row or one column. Default 'auto'."
323
263
  },
324
- "placement": {
325
- "$ref": "#/$defs/ImagePlacement",
326
- "description": "Image placeholders only. Bleeds the slide's image for this region to one slide edge, as an image block's placement does: the n-th image placeholder (counting the image regions of placeholder groups too, in reading order) places the slide's n-th top-level image (Slide.image or an image block in blocks) unless that block sets its own placement. Only a top-level image placeholder may carry a placement; a region inside a placeholder group cannot bleed to a slide edge. The headings and the other content compose in the rest of the slide."
327
- }
328
- }
329
- },
330
- "ImagePlacement": {
331
- "type": "object",
332
- "additionalProperties": false,
333
- "required": [
334
- "edge"
335
- ],
336
- "description": "The same object as ImagePlacement in opf.schema.json: a band along one slide edge for the image, edge to edge, with the rest of the slide left to the headings and the other content.",
337
- "properties": {
338
- "edge": {
264
+ "max": {
265
+ "type": "integer",
266
+ "minimum": 1,
267
+ "maximum": 12,
268
+ "description": "Blocks the region holds on one slide. Default 1 for flow 'none' (which requires 1), else 6. Content beyond every region's room is drawn in the overflow region with the warning opf/layout-unplaced, and paginate moves it to a continuation slide."
269
+ },
270
+ "bleed": {
271
+ "type": "boolean",
272
+ "description": "The region's outer edges that lie on the content box's edge extend to the slide edge, as a placed image does. A bled region is never drawn as a card. Default false."
273
+ },
274
+ "listColumns": {
275
+ "oneOf": [
276
+ {
277
+ "const": "auto"
278
+ },
279
+ {
280
+ "const": 1
281
+ }
282
+ ],
283
+ "description": "'auto': a list in the region that does not fit its cell at the starting size (a lone list, or one of several blocks) flows into up to three columns before it shrinks, as a list payload's columns: 'auto'. Default 1."
284
+ },
285
+ "anchor": {
339
286
  "type": "string",
340
287
  "enum": [
341
- "left",
342
- "right",
343
288
  "top",
289
+ "middle",
344
290
  "bottom"
345
291
  ],
346
- "description": "The slide edge the image bleeds to. In a right-to-left deck 'left' is the start side, drawn at the right."
292
+ "description": "Vertical position of the region's content when it is shorter than the region. Default 'top'."
347
293
  },
348
- "size": {
349
- "type": "number",
350
- "minimum": 0.1,
351
- "maximum": 0.9,
352
- "description": "Share of the slide width (left, right) or height (top, bottom) given to the band. Default 0.5."
353
- },
354
- "inset": {
355
- "type": "boolean",
356
- "description": "Draw the frame inside the slide padding on every side of the band instead of edge to edge. Default false."
294
+ "empty": {
295
+ "type": "string",
296
+ "enum": [
297
+ "collapse",
298
+ "keep"
299
+ ],
300
+ "description": "What the region does on a slide that gives it no content: 'collapse' (default) joins its cells to a neighbouring area that shares the full length of one of its edges and is not itself empty; 'keep' leaves the space."
357
301
  }
358
302
  }
359
303
  },
@@ -369,7 +313,7 @@
369
313
  "center",
370
314
  "right"
371
315
  ],
372
- "description": "Horizontal alignment of the title placeholder."
316
+ "description": "Horizontal alignment of the title heading area."
373
317
  },
374
318
  "contentAlignment": {
375
319
  "type": "string",
@@ -390,7 +334,7 @@
390
334
  "horizontal",
391
335
  "vertical"
392
336
  ],
393
- "description": "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."
337
+ "description": "Axis along which parallel body content is arranged: 'vertical' is a column, 'horizontal' a row. On a layout slide it turns every flowing region into one row or one column; the slide's own composition.mode, columns and weights rank above it."
394
338
  },
395
339
  "chartPrimary": {
396
340
  "type": "string",
@@ -401,7 +345,7 @@
401
345
  "left",
402
346
  "right"
403
347
  ],
404
- "description": "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. It is shorthand for a placeholder group: a record can state the same structure explicitly as a root row or column of the chart and one PlaceholderGroup of the other regions, weighted 3:2."
348
+ "description": "Where the primary chart sits relative to supporting content on automatic slides. Template layouts express this arrangement with their regions; chartPrimary does not override a template."
405
349
  },
406
350
  "imageFit": {
407
351
  "type": "string",
@@ -419,30 +363,18 @@
419
363
  "image"
420
364
  ],
421
365
  "description": "Marker style of lists: 'character' draws the glyph, 'image' draws the deck's icon logo as a picture bullet."
366
+ },
367
+ "mirror": {
368
+ "type": "boolean",
369
+ "description": "Draw the layout mirrored: each row's cells and the column sizes reversed, so a 'beside' layout puts its picture, chart or table at the end. Logical: a right-to-left deck mirrors on top. Binding and reading order do not change."
422
370
  }
423
371
  }
424
372
  },
425
373
  "Composition": {
426
374
  "type": "object",
427
375
  "additionalProperties": false,
428
- "description": "Portable dynamic composition. Slide fields override the resolved layout. Nested groups (placeholder groups here, content groups in a slide) arrange their children independently, inheriting only minFontSize and overflow. Explicit promoted regions retain their positions.",
376
+ "description": "A template's composition: only gap, padding, minFontSize and overflow, with their 0.18 meaning. A slide's composition overrides them; a slide's composition.mode, columns and weights arrange its first primary flowing region.",
429
377
  "properties": {
430
- "mode": {
431
- "type": "string",
432
- "enum": [
433
- "auto",
434
- "grid",
435
- "row",
436
- "column"
437
- ],
438
- "description": "auto chooses a grid from available space and content; grid uses columns; row and column use one horizontal or vertical track."
439
- },
440
- "columns": {
441
- "type": "integer",
442
- "minimum": 1,
443
- "maximum": 12,
444
- "description": "Column count for grid. In auto mode this caps the number of columns."
445
- },
446
378
  "gap": {
447
379
  "type": "number",
448
380
  "minimum": 0,
@@ -455,17 +387,6 @@
455
387
  "maximum": 0.2,
456
388
  "description": "Inset as a fraction of the container short edge. Default 0.08 on a slide, 0 inside a group."
457
389
  },
458
- "weights": {
459
- "type": "array",
460
- "minItems": 1,
461
- "maxItems": 12,
462
- "items": {
463
- "type": "number",
464
- "exclusiveMinimum": 0,
465
- "maximum": 100
466
- },
467
- "description": "Relative track sizes: columns for row/grid/auto, rows for column. Omitted tracks have weight 1; extra weights are ignored."
468
- },
469
390
  "minFontSize": {
470
391
  "type": "number",
471
392
  "minimum": 8,