@openpresentation/opf 0.11.0 → 0.11.2

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 (240) hide show
  1. package/dist/{catalogs-atkOF4Vy.d.ts → catalogs-DJ-B5ZyD.d.ts} +78 -8
  2. package/dist/catalogs.d.ts +2 -2
  3. package/dist/catalogs.js +1 -1
  4. package/dist/{chunk-6FU2KICU.js → chunk-7LF37SG3.js} +7084 -5106
  5. package/dist/{chunk-FTWNWFIV.js → chunk-BVLWFMDX.js} +348 -36
  6. package/dist/{chunk-CHKJ4QHQ.js → chunk-DJRZMGKY.js} +113 -32
  7. package/dist/{chunk-EQHZ3ZO4.js → chunk-K7IWYODS.js} +3 -3
  8. package/dist/chunk-KZ6BT5UG.js +3591 -0
  9. package/dist/{chunk-GN52EE3P.js → chunk-LTSDDBNW.js} +425 -40
  10. package/dist/{chunk-RS5GZ5RW.js → chunk-SDETQV7Y.js} +161 -0
  11. package/dist/{chunk-FWA5XB45.js → chunk-SMYEM3HV.js} +45 -25
  12. package/dist/{composition-Tv9Wm3Oh.d.ts → composition-DzLwY-Mi.d.ts} +200 -4
  13. package/dist/composition.d.ts +1 -1
  14. package/dist/composition.js +1 -1
  15. package/dist/docs.js +50 -20
  16. package/dist/examples.d.ts +1 -1
  17. package/dist/examples.js +11 -11
  18. package/dist/font-policy.d.ts +127 -0
  19. package/dist/font-policy.js +1 -0
  20. package/dist/index.d.ts +129 -10
  21. package/dist/index.js +280 -12
  22. package/dist/lint.d.ts +3 -3
  23. package/dist/lint.js +5 -5
  24. package/dist/pagination.d.ts +5 -1
  25. package/dist/pagination.js +5 -5
  26. package/dist/{presentation-Ct42Mitb.d.ts → presentation-bceTClm8.d.ts} +246 -22
  27. package/dist/repo-readme.js +1 -1
  28. package/dist/{schemas-CiVmUT2p.d.ts → schemas-X_NniU4A.d.ts} +2 -0
  29. package/dist/schemas.d.ts +1 -1
  30. package/dist/schemas.js +1 -1
  31. package/dist/spec/catalogs/audiences/academic.json +24 -0
  32. package/dist/spec/catalogs/audiences/all-hands.json +3 -1
  33. package/dist/spec/catalogs/audiences/board.json +3 -1
  34. package/dist/spec/catalogs/audiences/customer.json +25 -0
  35. package/dist/spec/catalogs/audiences/executive.json +24 -0
  36. package/dist/spec/catalogs/audiences/general-public.json +25 -0
  37. package/dist/spec/catalogs/audiences/index.json +73 -1
  38. package/dist/spec/catalogs/audiences/internal-team.json +25 -0
  39. package/dist/spec/catalogs/audiences/investor.json +25 -0
  40. package/dist/spec/catalogs/audiences/marketing.json +25 -0
  41. package/dist/spec/catalogs/audiences/media.json +24 -0
  42. package/dist/spec/catalogs/audiences/partner.json +25 -0
  43. package/dist/spec/catalogs/audiences/regulatory.json +25 -0
  44. package/dist/spec/catalogs/audiences/sales.json +25 -0
  45. package/dist/spec/catalogs/audiences/technical.json +25 -0
  46. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +5 -0
  47. package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +5 -0
  48. package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +5 -0
  49. package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +5 -0
  50. package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +5 -0
  51. package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +5 -0
  52. package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +10 -0
  53. package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +10 -0
  54. package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +6 -1
  55. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +10 -0
  56. package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +6 -1
  57. package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +10 -0
  58. package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +6 -1
  59. package/dist/spec/catalogs/chart-types/area.json +5 -0
  60. package/dist/spec/catalogs/chart-types/australia.json +10 -0
  61. package/dist/spec/catalogs/chart-types/bar.json +5 -0
  62. package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +10 -0
  63. package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +10 -0
  64. package/dist/spec/catalogs/chart-types/box-and-whisker.json +5 -0
  65. package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +5 -0
  66. package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +5 -0
  67. package/dist/spec/catalogs/chart-types/bullet-bar.json +5 -0
  68. package/dist/spec/catalogs/chart-types/bullet-column-2x.json +5 -0
  69. package/dist/spec/catalogs/chart-types/bullet-column-3x.json +5 -0
  70. package/dist/spec/catalogs/chart-types/bullet-column.json +5 -0
  71. package/dist/spec/catalogs/chart-types/canada.json +10 -0
  72. package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +10 -0
  73. package/dist/spec/catalogs/chart-types/clustered-column.json +10 -0
  74. package/dist/spec/catalogs/chart-types/column.json +5 -0
  75. package/dist/spec/catalogs/chart-types/dot-plot-2x.json +5 -0
  76. package/dist/spec/catalogs/chart-types/dot-plot-3x.json +5 -0
  77. package/dist/spec/catalogs/chart-types/dot-plot-4x.json +5 -0
  78. package/dist/spec/catalogs/chart-types/dot-plot-5x.json +5 -0
  79. package/dist/spec/catalogs/chart-types/dot-plot-6x.json +5 -0
  80. package/dist/spec/catalogs/chart-types/dot-plot.json +5 -0
  81. package/dist/spec/catalogs/chart-types/doughnut.json +5 -0
  82. package/dist/spec/catalogs/chart-types/dumbbell.json +5 -0
  83. package/dist/spec/catalogs/chart-types/filled-radar.json +5 -0
  84. package/dist/spec/catalogs/chart-types/funnel.json +5 -0
  85. package/dist/spec/catalogs/chart-types/histogram.json +5 -0
  86. package/dist/spec/catalogs/chart-types/index.json +333 -233
  87. package/dist/spec/catalogs/chart-types/line-2x.json +10 -0
  88. package/dist/spec/catalogs/chart-types/line-3x.json +10 -0
  89. package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +5 -0
  90. package/dist/spec/catalogs/chart-types/line-with-high-low.json +5 -0
  91. package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +10 -0
  92. package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +10 -0
  93. package/dist/spec/catalogs/chart-types/line-with-markers.json +5 -0
  94. package/dist/spec/catalogs/chart-types/line.json +5 -0
  95. package/dist/spec/catalogs/chart-types/pareto.json +9 -14
  96. package/dist/spec/catalogs/chart-types/pie.json +5 -0
  97. package/dist/spec/catalogs/chart-types/radar-with-markers.json +5 -0
  98. package/dist/spec/catalogs/chart-types/radar.json +5 -0
  99. package/dist/spec/catalogs/chart-types/scatter.json +5 -0
  100. package/dist/spec/catalogs/chart-types/sparkline-2x.json +5 -0
  101. package/dist/spec/catalogs/chart-types/sparkline-3x.json +5 -0
  102. package/dist/spec/catalogs/chart-types/sparkline-4x.json +5 -0
  103. package/dist/spec/catalogs/chart-types/sparkline-5x.json +5 -0
  104. package/dist/spec/catalogs/chart-types/sparkline-6x.json +5 -0
  105. package/dist/spec/catalogs/chart-types/sparkline.json +5 -0
  106. package/dist/spec/catalogs/chart-types/stacked-area-2x.json +10 -0
  107. package/dist/spec/catalogs/chart-types/stacked-area-3x.json +6 -1
  108. package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +10 -0
  109. package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +6 -1
  110. package/dist/spec/catalogs/chart-types/stacked-column-2x.json +10 -0
  111. package/dist/spec/catalogs/chart-types/stacked-column-3x.json +6 -1
  112. package/dist/spec/catalogs/chart-types/stacked-line-2x.json +10 -0
  113. package/dist/spec/catalogs/chart-types/stacked-line-3x.json +6 -1
  114. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +10 -0
  115. package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +6 -1
  116. package/dist/spec/catalogs/chart-types/treemap-2x.json +10 -0
  117. package/dist/spec/catalogs/chart-types/treemap-3x.json +10 -0
  118. package/dist/spec/catalogs/chart-types/treemap.json +5 -0
  119. package/dist/spec/catalogs/chart-types/united-kingdom.json +10 -0
  120. package/dist/spec/catalogs/chart-types/united-states.json +10 -0
  121. package/dist/spec/catalogs/chart-types/waterfall.json +5 -0
  122. package/dist/spec/catalogs/chart-types/world.json +6 -1
  123. package/dist/spec/catalogs/font-schemes/consolas.json +3 -0
  124. package/dist/spec/catalogs/font-schemes/courier-new.json +3 -0
  125. package/dist/spec/catalogs/languages/afrikaans.json +3 -0
  126. package/dist/spec/catalogs/languages/albanian.json +3 -0
  127. package/dist/spec/catalogs/languages/amharic.json +3 -0
  128. package/dist/spec/catalogs/languages/arabic.json +3 -0
  129. package/dist/spec/catalogs/languages/armenian.json +3 -0
  130. package/dist/spec/catalogs/languages/aymara.json +3 -0
  131. package/dist/spec/catalogs/languages/azerbaijani.json +3 -0
  132. package/dist/spec/catalogs/languages/bengali.json +3 -0
  133. package/dist/spec/catalogs/languages/berber-latin.json +3 -0
  134. package/dist/spec/catalogs/languages/bosnian-latin.json +3 -0
  135. package/dist/spec/catalogs/languages/bulgarian.json +3 -0
  136. package/dist/spec/catalogs/languages/catalan.json +3 -0
  137. package/dist/spec/catalogs/languages/cebuano.json +3 -0
  138. package/dist/spec/catalogs/languages/chinese-simplified.json +3 -0
  139. package/dist/spec/catalogs/languages/chinese-traditional.json +3 -0
  140. package/dist/spec/catalogs/languages/chittagonian.json +3 -0
  141. package/dist/spec/catalogs/languages/croatian.json +3 -0
  142. package/dist/spec/catalogs/languages/czech.json +3 -0
  143. package/dist/spec/catalogs/languages/danish.json +3 -0
  144. package/dist/spec/catalogs/languages/dutch.json +3 -0
  145. package/dist/spec/catalogs/languages/english-au.json +3 -0
  146. package/dist/spec/catalogs/languages/english-ca.json +3 -0
  147. package/dist/spec/catalogs/languages/english-gb.json +3 -0
  148. package/dist/spec/catalogs/languages/english-in.json +3 -0
  149. package/dist/spec/catalogs/languages/english-us.json +3 -0
  150. package/dist/spec/catalogs/languages/english.json +3 -0
  151. package/dist/spec/catalogs/languages/estonian.json +3 -0
  152. package/dist/spec/catalogs/languages/filipino.json +3 -0
  153. package/dist/spec/catalogs/languages/finnish.json +3 -0
  154. package/dist/spec/catalogs/languages/french.json +3 -0
  155. package/dist/spec/catalogs/languages/fulfulde.json +3 -0
  156. package/dist/spec/catalogs/languages/galician.json +3 -0
  157. package/dist/spec/catalogs/languages/georgian.json +3 -0
  158. package/dist/spec/catalogs/languages/german.json +3 -0
  159. package/dist/spec/catalogs/languages/greek.json +3 -0
  160. package/dist/spec/catalogs/languages/gujarati.json +3 -0
  161. package/dist/spec/catalogs/languages/hausa.json +3 -0
  162. package/dist/spec/catalogs/languages/hebrew.json +3 -0
  163. package/dist/spec/catalogs/languages/hindi.json +3 -0
  164. package/dist/spec/catalogs/languages/hungarian.json +3 -0
  165. package/dist/spec/catalogs/languages/igbo.json +3 -0
  166. package/dist/spec/catalogs/languages/indonesian.json +3 -0
  167. package/dist/spec/catalogs/languages/italian.json +3 -0
  168. package/dist/spec/catalogs/languages/japanese.json +3 -0
  169. package/dist/spec/catalogs/languages/kannada.json +3 -0
  170. package/dist/spec/catalogs/languages/kazakh.json +3 -0
  171. package/dist/spec/catalogs/languages/khmer.json +3 -0
  172. package/dist/spec/catalogs/languages/kinyarwanda.json +3 -0
  173. package/dist/spec/catalogs/languages/korean.json +3 -0
  174. package/dist/spec/catalogs/languages/kurmanji.json +3 -0
  175. package/dist/spec/catalogs/languages/latvian.json +3 -0
  176. package/dist/spec/catalogs/languages/lithuanian.json +3 -0
  177. package/dist/spec/catalogs/languages/macedonian.json +3 -0
  178. package/dist/spec/catalogs/languages/malagasy.json +3 -0
  179. package/dist/spec/catalogs/languages/malay.json +3 -0
  180. package/dist/spec/catalogs/languages/malayalam.json +3 -0
  181. package/dist/spec/catalogs/languages/maori.json +3 -0
  182. package/dist/spec/catalogs/languages/marathi.json +3 -0
  183. package/dist/spec/catalogs/languages/mongolian.json +3 -0
  184. package/dist/spec/catalogs/languages/nepali.json +3 -0
  185. package/dist/spec/catalogs/languages/norwegian.json +3 -0
  186. package/dist/spec/catalogs/languages/odia.json +3 -0
  187. package/dist/spec/catalogs/languages/oromo.json +3 -0
  188. package/dist/spec/catalogs/languages/pashto.json +3 -0
  189. package/dist/spec/catalogs/languages/persian.json +3 -0
  190. package/dist/spec/catalogs/languages/polish.json +3 -0
  191. package/dist/spec/catalogs/languages/portuguese.json +3 -0
  192. package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +3 -0
  193. package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +3 -0
  194. package/dist/spec/catalogs/languages/romanian.json +3 -0
  195. package/dist/spec/catalogs/languages/russian.json +3 -0
  196. package/dist/spec/catalogs/languages/serbian-cyrillic.json +3 -0
  197. package/dist/spec/catalogs/languages/serbian-latin.json +3 -0
  198. package/dist/spec/catalogs/languages/shona.json +3 -0
  199. package/dist/spec/catalogs/languages/slovak.json +3 -0
  200. package/dist/spec/catalogs/languages/slovenian.json +3 -0
  201. package/dist/spec/catalogs/languages/somali.json +3 -0
  202. package/dist/spec/catalogs/languages/spanish.json +3 -0
  203. package/dist/spec/catalogs/languages/swahili.json +3 -0
  204. package/dist/spec/catalogs/languages/swedish.json +3 -0
  205. package/dist/spec/catalogs/languages/tagalog.json +3 -0
  206. package/dist/spec/catalogs/languages/tajik.json +3 -0
  207. package/dist/spec/catalogs/languages/tamil.json +3 -0
  208. package/dist/spec/catalogs/languages/telugu.json +3 -0
  209. package/dist/spec/catalogs/languages/thai.json +3 -0
  210. package/dist/spec/catalogs/languages/turkish.json +3 -0
  211. package/dist/spec/catalogs/languages/ukrainian.json +3 -0
  212. package/dist/spec/catalogs/languages/urdu.json +3 -0
  213. package/dist/spec/catalogs/languages/uzbek-latin.json +3 -0
  214. package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +3 -0
  215. package/dist/spec/catalogs/languages/xhosa.json +3 -0
  216. package/dist/spec/catalogs/languages/yoruba.json +3 -0
  217. package/dist/spec/catalogs/languages/zulu.json +3 -0
  218. package/dist/spec/catalogs/narratives/change-story.json +64 -0
  219. package/dist/spec/catalogs/narratives/data-story.json +66 -0
  220. package/dist/spec/catalogs/narratives/heros-journey.json +64 -0
  221. package/dist/spec/catalogs/narratives/index.json +81 -0
  222. package/dist/spec/catalogs/narratives/pyramid-principle.json +48 -0
  223. package/dist/spec/catalogs/narratives/situation-complication-resolution.json +56 -0
  224. package/dist/spec/catalogs/narratives/sparkline.json +56 -0
  225. package/dist/spec/catalogs/narratives/star-method.json +56 -0
  226. package/dist/spec/catalogs/narratives/vision-roadmap.json +65 -0
  227. package/dist/spec/catalogs/narratives/what-so-what-now-what.json +48 -0
  228. package/dist/spec/reference/engine-defaults.json +2 -2
  229. package/dist/spec/reference/font-policy.json +3510 -0
  230. package/dist/spec/reference/font-policy.schema.json +338 -0
  231. package/dist/spec/schemas/chart-type.schema.json +51 -11
  232. package/dist/spec/schemas/font-scheme.schema.json +91 -1
  233. package/dist/spec/schemas/language.schema.json +10 -5
  234. package/dist/spec/schemas/opf.schema.json +158 -20
  235. package/dist/spec-files.d.ts +1 -1
  236. package/dist/spec-files.js +1 -1
  237. package/dist/types.d.ts +3 -3
  238. package/dist/validator.d.ts +3 -3
  239. package/dist/validator.js +4 -4
  240. package/package.json +6 -2
@@ -413,6 +413,11 @@
413
413
  "description": "BCP-47 language tag used for locale-aware rendering, proofing, and accessibility metadata. Use 'en-GB' for UK English; 'en-UK' is not a valid BCP-47 region form.",
414
414
  "examples": ["en", "en-US", "en-GB", "ar-SA", "zh-Hans"]
415
415
  },
416
+ "ooxmlLang": {
417
+ "type": "string",
418
+ "description": "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.",
419
+ "examples": ["en-US", "ja-JP", "ar-SA", "ms-MY", "nb-NO", "zh-CN"]
420
+ },
416
421
  "code": {
417
422
  "type": "string",
418
423
  "description": "ISO 639-3 or 639-2 language code carried for engines that prefer ISO codes.",
@@ -421,20 +426,20 @@
421
426
  "direction": {
422
427
  "type": "string",
423
428
  "enum": ["ltr", "rtl"],
424
- "description": "Base text direction for the language."
429
+ "description": "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."
425
430
  },
426
431
  "script": {
427
432
  "type": "string",
428
- "description": "ISO 15924 script code when the writing system should be explicit.",
429
- "examples": ["Latn", "Arab", "Cyrl", "Hans", "Hant"]
433
+ "description": "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.",
434
+ "examples": ["Latn", "Cyrl", "Grek", "Arab", "Hebr", "Jpan", "Kore", "Hans", "Hant", "Deva", "Thai"]
430
435
  },
431
436
  "fontScheme": {
432
437
  "type": "string",
433
- "description": "Default font-scheme id for this language when targeting PowerPoint output."
438
+ "description": "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."
434
439
  },
435
440
  "googleFontScheme": {
436
441
  "type": "string",
437
- "description": "Default font-scheme id for this language when targeting Google Slides output."
442
+ "description": "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."
438
443
  },
439
444
  "summary": {
440
445
  "type": "string",
@@ -563,7 +568,7 @@
563
568
  },
564
569
  "socials": {
565
570
  "$ref": "#/$defs/Socials",
566
- "description": "Optional social media handles or URLs for the organization."
571
+ "description": "Optional social media handles or URLs for the organization. The primary organization's socials render in header/footer zones that set socials: true; otherwise they are authoring metadata."
567
572
  }
568
573
  }
569
574
  },
@@ -623,7 +628,7 @@
623
628
  },
624
629
  "socials": {
625
630
  "$ref": "#/$defs/Socials",
626
- "description": "Optional social media handles or URLs for the speaker."
631
+ "description": "Optional social media handles or URLs for the speaker. Authoring metadata: no header/footer field renders speaker socials yet."
627
632
  }
628
633
  }
629
634
  },
@@ -913,12 +918,92 @@
913
918
  "position": {
914
919
  "type": "string",
915
920
  "enum": ["background", "top", "bottom", "left", "right"],
916
- "description": "Where the slide-level image sits relative to the content. 'background' is a full-bleed image behind the content."
921
+ "description": "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 (see size) and compose headings and content in the rest of the slide."
922
+ },
923
+ "alt": {
924
+ "type": "string",
925
+ "description": "Alternative text for the slide-level image. Overrides the alt text of a referenced asset."
926
+ },
927
+ "fill": {
928
+ "type": "string",
929
+ "enum": ["crop", "fit"],
930
+ "description": "How the image fills its frame: 'crop' covers the frame from the center; 'fit' shows the whole image centered inside it. Overrides design.imageFill for this image. Default: design.imageFill, else 'crop'."
931
+ },
932
+ "size": {
933
+ "type": "number",
934
+ "minimum": 0.1,
935
+ "maximum": 0.9,
936
+ "description": "Share of the slide width (left/right) or height (top/bottom) given to the image band. Ignored for 'background'. Default 0.5."
937
+ },
938
+ "inset": {
939
+ "type": "boolean",
940
+ "description": "Place the frame inside the slide padding instead of edge to edge, like a card. Default false."
941
+ },
942
+ "aspectRatio": {
943
+ "type": "number",
944
+ "exclusiveMinimum": 0,
945
+ "maximum": 10,
946
+ "description": "Width-to-height ratio of the frame. The frame becomes the largest centered box with this ratio inside the band or slide, for example 2.39 for a cinematic letterbox or 0.5 for a phone-shaped frame. 'circle' always uses 1."
947
+ },
948
+ "shape": {
949
+ "type": "string",
950
+ "enum": ["rectangle", "rounded", "circle", "hexagon"],
951
+ "description": "Mask applied to the frame, exported as the picture's native preset geometry (rect, roundRect, ellipse, hexagon). 'circle' makes the frame square. Default 'rectangle'."
952
+ },
953
+ "cornerRadius": {
954
+ "type": "number",
955
+ "minimum": 0,
956
+ "maximum": 0.5,
957
+ "description": "Corner radius for shape 'rounded' as a fraction of the frame's shorter side. Default 0.16667, PowerPoint's roundRect default."
958
+ },
959
+ "border": {
960
+ "type": "object",
961
+ "additionalProperties": false,
962
+ "required": ["color", "width"],
963
+ "properties": {
964
+ "color": { "$ref": "#/$defs/ColorRef", "description": "Line color: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference." },
965
+ "width": { "type": "number", "minimum": 0, "maximum": 64, "description": "Line width in reference pixels at a 720-pixel short edge, centered on the frame outline like a native picture line. 0 removes the line." }
966
+ },
967
+ "description": "Solid line along the frame's shape. A thick dark border on a rounded portrait frame gives a device bezel."
968
+ },
969
+ "opacity": {
970
+ "type": "number",
971
+ "minimum": 0,
972
+ "maximum": 1,
973
+ "description": "Image opacity from 0 to 1, exported as a native alphaModFix. The border and overlay keep their own opacity. Default 1."
974
+ },
975
+ "recolor": {
976
+ "oneOf": [
977
+ { "type": "string", "const": "grayscale", "description": "Replace each pixel with its luminance, exported as native a:grayscl." },
978
+ {
979
+ "type": "object",
980
+ "additionalProperties": false,
981
+ "required": ["dark", "light"],
982
+ "properties": {
983
+ "dark": { "$ref": "#/$defs/ColorRef", "description": "Color at luminance 0." },
984
+ "light": { "$ref": "#/$defs/ColorRef", "description": "Color at luminance 1." }
985
+ },
986
+ "description": "Duotone: map each pixel's luminance linearly from dark to light, exported as native a:duotone."
987
+ }
988
+ ],
989
+ "description": "Color treatment for the image pixels. Luminance uses Rec. 601 weights (0.299, 0.587, 0.114) on sRGB values."
990
+ },
991
+ "overlay": {
992
+ "type": "object",
993
+ "additionalProperties": false,
994
+ "required": ["color", "opacity"],
995
+ "properties": {
996
+ "color": { "$ref": "#/$defs/ColorRef", "description": "Overlay fill color." },
997
+ "opacity": { "type": "number", "minimum": 0, "maximum": 1, "description": "Overlay fill opacity." },
998
+ "edge": { "type": "string", "enum": ["top", "bottom", "left", "right"], "description": "Cover only a band along this edge of the frame, for example a caption strip. Rectangle frames only; other shapes report unsupported-image-treatment and draw no overlay. Omit to cover the whole frame." },
999
+ "size": { "type": "number", "minimum": 0.05, "maximum": 1, "description": "Band share of the frame for an edge overlay. Default 0.3." }
1000
+ },
1001
+ "description": "Solid scrim drawn over the image in the frame's shape, beneath headings and content, for example to keep overlaid text readable. Exported as a native shape above the picture."
917
1002
  }
918
1003
  }
919
1004
  }
920
1005
  ],
921
- "description": "Optional slide-level image treatment used by layouts that support a decorative or editorial image separate from content images."
1006
+ "description": "Optional slide-level image, separate from content images. It applies to a slide that sets its own design.slideImage, and to slides whose layout declares slideImage: true or whose root image is the same source as a deck-level value. A root image with the same source becomes the slide image instead of a content item. Blur, shadows, soft edges, background removal and device artwork are not part of the treatment vocabulary; see docs/image-treatments.md."
922
1007
  },
923
1008
  "contentDirection": {
924
1009
  "type": "string",
@@ -1117,7 +1202,7 @@
1117
1202
  },
1118
1203
  "FontScheme": {
1119
1204
  "type": "object",
1120
- "description": "Typography selections used by the design system. The pair fields (major, minor) and refinement fields (type, app, languageFamily) mirror font-scheme.schema.json (https://openpresentation.org/schema/opf-font-scheme/v1) so library records and inline OPF overrides are interchangeable on those fields.\n\nTwo parallel models are supported and may be mixed:\n- OOXML pairs (major, minor) - heading and body family names that round-trip directly to PowerPoint majorFont/minorFont entries.\n- Abstract roles (heading, body, accent, code) - OPF-specific Font objects the engine maps onto the OOXML pair when serializing. Convenient for inline overrides and for adding accent/code roles that don't have a direct OOXML slot; not part of the catalog record schema.\n\nIn design.fontScheme, 'id' resolves a fontSchemes catalog record as the base; pair and role overrides on the same object take precedence over the resolved scheme. The string shorthand on design.fontScheme is equivalent to setting only 'id'.",
1205
+ "description": "Typography selections used by the design system. The pair fields (major, minor) and refinement fields (type, app, languageFamily) mirror font-scheme.schema.json (https://openpresentation.org/schema/opf-font-scheme/v1) so library records and inline OPF overrides are interchangeable on those fields.\n\nTwo parallel models are supported and may be mixed:\n- OOXML pairs (major, minor) - heading and body family names that round-trip directly to PowerPoint majorFont/minorFont entries.\n- Abstract roles (heading, body, accent, code) - OPF-specific Font objects the engine maps onto the OOXML pair when serializing. Convenient for inline overrides and for adding accent/code roles that don't have a direct OOXML slot. Catalog records may also carry 'code' (for example the consolas and courier-new records); heading, body and accent are not part of the catalog record schema.\n\nIn design.fontScheme, 'id' resolves a fontSchemes catalog record as the base; pair and role overrides on the same object take precedence over the resolved scheme. The string shorthand on design.fontScheme is equivalent to setting only 'id'.",
1121
1206
  "properties": {
1122
1207
  "id": {
1123
1208
  "type": "string",
@@ -1134,6 +1219,42 @@
1134
1219
  "description": "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.",
1135
1220
  "examples": ["Aptos", "Calibri", "Microsoft YaHei", "Arial"]
1136
1221
  },
1222
+ "eastAsian": {
1223
+ "type": "object",
1224
+ "additionalProperties": false,
1225
+ "minProperties": 1,
1226
+ "description": "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.",
1227
+ "properties": {
1228
+ "major": {
1229
+ "type": "string",
1230
+ "description": "Heading (major) eastAsian font family — mirrors majorFont a:ea.",
1231
+ "examples": ["Noto Sans JP", "Meiryo", "Microsoft YaHei"]
1232
+ },
1233
+ "minor": {
1234
+ "type": "string",
1235
+ "description": "Body (minor) eastAsian font family — mirrors minorFont a:ea.",
1236
+ "examples": ["Noto Sans JP", "Meiryo", "Microsoft YaHei"]
1237
+ }
1238
+ }
1239
+ },
1240
+ "complexScript": {
1241
+ "type": "object",
1242
+ "additionalProperties": false,
1243
+ "minProperties": 1,
1244
+ "description": "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.",
1245
+ "properties": {
1246
+ "major": {
1247
+ "type": "string",
1248
+ "description": "Heading (major) complexScript font family — mirrors majorFont a:cs.",
1249
+ "examples": ["Noto Sans Arabic", "Arial", "Mangal"]
1250
+ },
1251
+ "minor": {
1252
+ "type": "string",
1253
+ "description": "Body (minor) complexScript font family — mirrors minorFont a:cs.",
1254
+ "examples": ["Noto Sans Arabic", "Arial", "Mangal"]
1255
+ }
1256
+ }
1257
+ },
1137
1258
  "type": {
1138
1259
  "type": "string",
1139
1260
  "enum": ["sans-serif", "serif", "monospace"],
@@ -1147,7 +1268,7 @@
1147
1268
  "languageFamily": {
1148
1269
  "type": "string",
1149
1270
  "enum": ["latin", "ea", "cs"],
1150
- "description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts."
1271
+ "description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts. As the design font scheme, an 'ea' or 'cs' scheme also fills that script slot with its own major/minor families when its languages list is empty or names the presentation language."
1151
1272
  },
1152
1273
  "heading": {
1153
1274
  "$ref": "#/$defs/Font",
@@ -1163,7 +1284,7 @@
1163
1284
  },
1164
1285
  "code": {
1165
1286
  "$ref": "#/$defs/Font",
1166
- "description": "Abstract role: monospaced font used for code blocks. No direct OOXML slot."
1287
+ "description": "Abstract role: monospaced font used for code blocks and inline code. No direct OOXML slot. Resolution: this override, then the resolved catalog record's 'code' (for example Consolas for the consolas scheme), then the engine fallback Roboto Mono. Heading and body families are never used as the code fallback."
1167
1288
  }
1168
1289
  }
1169
1290
  },
@@ -1447,8 +1568,8 @@
1447
1568
  "properties": {
1448
1569
  "preset": {
1449
1570
  "type": "string",
1450
- "description": "Pattern preset or engine-defined pattern id.",
1451
- "examples": ["pct5", "ltHorz", "diagStripe"]
1571
+ "description": "Pattern preset or engine-defined pattern id. DrawingML preset names (ECMA-376 ST_PresetPatternVal, for example pct5, ltHorz, wdUpDiag) are portable: PPTX export writes them as native pattern fills and import returns the same name. Engine-defined ids are renderer-specific; the legacy preview id diagStripe remains accepted and exports as wdUpDiag.",
1572
+ "examples": ["pct5", "ltHorz", "wdUpDiag"]
1452
1573
  },
1453
1574
  "foregroundColor": {
1454
1575
  "type": "string",
@@ -1563,7 +1684,7 @@
1563
1684
  },
1564
1685
  "HeaderFooterItem": {
1565
1686
  "type": "object",
1566
- "description": "One header/footer zone. Fields may be combined when the renderer supports it; otherwise renderers should prefer image, then text-like generated content.",
1687
+ "description": "One header/footer zone. Every configured field renders; fields in one zone stack top to bottom in the order image, text, organization, section, slide number, date. Put a date and a slide number in different zones to keep each on the zone's single line.",
1567
1688
  "properties": {
1568
1689
  "text": {
1569
1690
  "type": "string",
@@ -1577,14 +1698,27 @@
1577
1698
  },
1578
1699
  "slideNumber": {
1579
1700
  "type": "boolean",
1580
- "description": "Whether to render the current slide number in this zone."
1701
+ "description": "Whether to render the current slide number in this zone. PPTX export writes a native slide-number field when its value fits within one accepted text line; a value split across lines exports as static text with a diagnostic."
1702
+ },
1703
+ "slideNumberFormat": {
1704
+ "type": "string",
1705
+ "pattern": "[{]current[}]",
1706
+ "description": "Template for the slide number when slideNumber is true. {current} is the displayed slide number (a native PPTX field when its value fits within one accepted text line); {total} is the number of slides in the rendered or exported deck, written as fixed text because PowerPoint has no slide-count field. Other characters are literal. Defaults to \"{current}\".",
1707
+ "examples": ["{current}", "{current} / {total}", "A-{current}", "Page {current} of {total}"]
1581
1708
  },
1582
1709
  "date": {
1583
1710
  "oneOf": [
1584
1711
  { "type": "boolean" },
1585
1712
  { "type": "string" }
1586
1713
  ],
1587
- "description": "Whether to render the presentation date, or a literal date string to render."
1714
+ "description": "true renders the current date: the renderer or exporter must be given an explicit ISO date by its host (core never reads a clock). PPTX export writes a native date field only for a supported dateFormat whose complete value fits within one accepted text line; otherwise it writes static text with a diagnostic. Native PowerPoint refresh and save/reopen compatibility require separate verification. A string is fixed: with dateFormat it must be an ISO YYYY-MM-DD date and is formatted; without dateFormat it is literal text rendered as written.",
1715
+ "examples": [true, "2026-04-23", "April 2026"]
1716
+ },
1717
+ "dateFormat": {
1718
+ "type": "string",
1719
+ "minLength": 1,
1720
+ "description": "Date pattern for date. Tokens: yyyy (2026), yy (26), MMMM (April), MMM (Apr), MM (04), M (4), dd (09), d (9), EEEE (Thursday), EEE (Thu). Text in single quotes and other non-letter characters are literal. Month and weekday names are English, independent of host locale. Defaults to \"M/d/yyyy\" for a current date. PPTX export writes a native current-date field only when its complete value fits within one accepted text line and the pattern matches a PowerPoint en-US date field ('M/d/yyyy'; 'EEEE, MMMM d, yyyy'; 'd MMMM yyyy'; 'MMMM d, yyyy'; 'd-MMM-yy'; 'MMMM yy'; 'MMM-yy'). Other patterns and wrapped fields export as static text with a diagnostic. Full provenance can recover generated-date intent from unchanged supported wrapped dates on OPF reimport; the existing PPTX text remains static.",
1721
+ "examples": ["MMM d, yyyy", "yyyy-MM-dd", "MMM yyyy", "MMMM d, yyyy"]
1588
1722
  },
1589
1723
  "organization": {
1590
1724
  "type": "boolean",
@@ -1593,6 +1727,10 @@
1593
1727
  "section": {
1594
1728
  "type": "boolean",
1595
1729
  "description": "Whether to render the current slide section label."
1730
+ },
1731
+ "socials": {
1732
+ "type": "boolean",
1733
+ "description": "Whether to render the primary organization's social profiles from organization.socials, one line per platform in key order. A handle is formatted through the platform's socialPlatforms record (companyUrlPattern, else profileUrlPattern, else baseUrl, with handlePrefix stripped) and shown as that profile URL without its 'https://' scheme; a value that is already a URL is shown without an 'https://' scheme; an unknown platform key shows the raw value. Exporters link each line to its full URL when one exists. Speaker socials are not rendered by this field."
1596
1734
  }
1597
1735
  }
1598
1736
  },
@@ -2539,10 +2677,10 @@
2539
2677
  "properties": {
2540
2678
  "type": {
2541
2679
  "type": "string",
2542
- "description": "Chart type id. Resolves to the id of a chartTypes catalog record; renderers map that record through mappings.openxml and any renderer-specific mapping they understand.",
2680
+ "description": "Chart type id. Resolves to the id of a chartTypes catalog record; renderers map that record through mappings.openxml and any renderer-specific mapping they understand. The bundled catalog covers the chart types Aspose.Slides officially supports; deprecated ids still resolve but validate with a warning naming their replacement.",
2543
2681
  "examples": [
2544
- "bar", "column", "line", "pie", "donut", "doughnut", "area", "scatter", "radar",
2545
- "waterfall", "funnel", "treemap", "combo"
2682
+ "column", "bar", "line", "pie", "doughnut", "area", "scatter", "radar",
2683
+ "waterfall", "funnel", "treemap", "stacked-column-3x"
2546
2684
  ]
2547
2685
  },
2548
2686
  "data": {
@@ -1,5 +1,5 @@
1
1
  /** Path of a file under `spec/`, relative to the spec root. */
2
- type SpecFilePath = "README.md" | "catalogs/audiences/all-hands.json" | "catalogs/audiences/board.json" | "catalogs/audiences/candidates.json" | "catalogs/audiences/customers.json" | "catalogs/audiences/engineering-team.json" | "catalogs/audiences/executives.json" | "catalogs/audiences/index.json" | "catalogs/audiences/investors.json" | "catalogs/audiences/marketing-team.json" | "catalogs/audiences/regulators.json" | "catalogs/audiences/sales-team.json" | "catalogs/chart-types/100pct-bullet-bar-2x.json" | "catalogs/chart-types/100pct-bullet-bar-3x.json" | "catalogs/chart-types/100pct-bullet-bar.json" | "catalogs/chart-types/100pct-bullet-column-2x.json" | "catalogs/chart-types/100pct-bullet-column-3x.json" | "catalogs/chart-types/100pct-bullet-column.json" | "catalogs/chart-types/100pct-progress-bar.json" | "catalogs/chart-types/100pct-stacked-area-2x.json" | "catalogs/chart-types/100pct-stacked-area-3x.json" | "catalogs/chart-types/100pct-stacked-bar-2x.json" | "catalogs/chart-types/100pct-stacked-bar-3x.json" | "catalogs/chart-types/100pct-stacked-column-2x.json" | "catalogs/chart-types/100pct-stacked-column-3x.json" | "catalogs/chart-types/area.json" | "catalogs/chart-types/australia.json" | "catalogs/chart-types/bar.json" | "catalogs/chart-types/box-and-whisker-2x.json" | "catalogs/chart-types/box-and-whisker-3x.json" | "catalogs/chart-types/box-and-whisker.json" | "catalogs/chart-types/bullet-bar-2x.json" | "catalogs/chart-types/bullet-bar-3x.json" | "catalogs/chart-types/bullet-bar.json" | "catalogs/chart-types/bullet-column-2x.json" | "catalogs/chart-types/bullet-column-3x.json" | "catalogs/chart-types/bullet-column.json" | "catalogs/chart-types/canada.json" | "catalogs/chart-types/clustered-bar-2x.json" | "catalogs/chart-types/clustered-column.json" | "catalogs/chart-types/column.json" | "catalogs/chart-types/dot-plot-2x.json" | "catalogs/chart-types/dot-plot-3x.json" | "catalogs/chart-types/dot-plot-4x.json" | "catalogs/chart-types/dot-plot-5x.json" | "catalogs/chart-types/dot-plot-6x.json" | "catalogs/chart-types/dot-plot.json" | "catalogs/chart-types/doughnut.json" | "catalogs/chart-types/dumbbell.json" | "catalogs/chart-types/filled-radar.json" | "catalogs/chart-types/funnel.json" | "catalogs/chart-types/histogram.json" | "catalogs/chart-types/index.json" | "catalogs/chart-types/line-2x.json" | "catalogs/chart-types/line-3x.json" | "catalogs/chart-types/line-with-high-low-and-markers.json" | "catalogs/chart-types/line-with-high-low.json" | "catalogs/chart-types/line-with-markers-2x.json" | "catalogs/chart-types/line-with-markers-3x.json" | "catalogs/chart-types/line-with-markers.json" | "catalogs/chart-types/line.json" | "catalogs/chart-types/pareto.json" | "catalogs/chart-types/pie.json" | "catalogs/chart-types/radar-with-markers.json" | "catalogs/chart-types/radar.json" | "catalogs/chart-types/scatter.json" | "catalogs/chart-types/sparkline-2x.json" | "catalogs/chart-types/sparkline-3x.json" | "catalogs/chart-types/sparkline-4x.json" | "catalogs/chart-types/sparkline-5x.json" | "catalogs/chart-types/sparkline-6x.json" | "catalogs/chart-types/sparkline.json" | "catalogs/chart-types/stacked-area-2x.json" | "catalogs/chart-types/stacked-area-3x.json" | "catalogs/chart-types/stacked-bar-2x.json" | "catalogs/chart-types/stacked-bar-3x.json" | "catalogs/chart-types/stacked-column-2x.json" | "catalogs/chart-types/stacked-column-3x.json" | "catalogs/chart-types/stacked-line-2x.json" | "catalogs/chart-types/stacked-line-3x.json" | "catalogs/chart-types/stacked-line-with-markers-2x.json" | "catalogs/chart-types/stacked-line-with-markers-3x.json" | "catalogs/chart-types/treemap-2x.json" | "catalogs/chart-types/treemap-3x.json" | "catalogs/chart-types/treemap.json" | "catalogs/chart-types/united-kingdom.json" | "catalogs/chart-types/united-states.json" | "catalogs/chart-types/waterfall.json" | "catalogs/chart-types/world.json" | "catalogs/color-schemes/black-and-white.json" | "catalogs/color-schemes/bold-red.json" | "catalogs/color-schemes/boost.json" | "catalogs/color-schemes/burnt-orange.json" | "catalogs/color-schemes/cool-horizon.json" | "catalogs/color-schemes/corporate-blue.json" | "catalogs/color-schemes/deep-purple.json" | "catalogs/color-schemes/forest-green.json" | "catalogs/color-schemes/golden-yellow.json" | "catalogs/color-schemes/index.json" | "catalogs/color-schemes/luxury.json" | "catalogs/color-schemes/pastel-red.json" | "catalogs/color-schemes/slate-gray.json" | "catalogs/color-schemes/steel-blue.json" | "catalogs/color-schemes/vibes.json" | "catalogs/font-schemes/angsana-new.json" | "catalogs/font-schemes/aparajita.json" | "catalogs/font-schemes/aptos.json" | "catalogs/font-schemes/arabic-typesetting.json" | "catalogs/font-schemes/arial.json" | "catalogs/font-schemes/batang.json" | "catalogs/font-schemes/bookman.json" | "catalogs/font-schemes/calibri.json" | "catalogs/font-schemes/century-schoolbook.json" | "catalogs/font-schemes/consolas.json" | "catalogs/font-schemes/constantia.json" | "catalogs/font-schemes/courier-new.json" | "catalogs/font-schemes/daunpenh.json" | "catalogs/font-schemes/david.json" | "catalogs/font-schemes/dilleniaupc.json" | "catalogs/font-schemes/fangsong.json" | "catalogs/font-schemes/garamond.json" | "catalogs/font-schemes/gautami.json" | "catalogs/font-schemes/georgia.json" | "catalogs/font-schemes/gisha.json" | "catalogs/font-schemes/grandview.json" | "catalogs/font-schemes/gungsuh.json" | "catalogs/font-schemes/impact.json" | "catalogs/font-schemes/index.json" | "catalogs/font-schemes/kalinga.json" | "catalogs/font-schemes/kartika.json" | "catalogs/font-schemes/khmer-ui.json" | "catalogs/font-schemes/latha.json" | "catalogs/font-schemes/lucida-sans.json" | "catalogs/font-schemes/malgun-gothic.json" | "catalogs/font-schemes/mangal.json" | "catalogs/font-schemes/meiryo.json" | "catalogs/font-schemes/microsoft-jhenghei.json" | "catalogs/font-schemes/microsoft-yahei.json" | "catalogs/font-schemes/mingliu.json" | "catalogs/font-schemes/miriam.json" | "catalogs/font-schemes/montserrat.json" | "catalogs/font-schemes/ms-mincho.json" | "catalogs/font-schemes/nirmala-ui.json" | "catalogs/font-schemes/noto-naksh-arabic.json" | "catalogs/font-schemes/noto-nastaliq-urdu.json" | "catalogs/font-schemes/noto-sans-arabic.json" | "catalogs/font-schemes/noto-sans-armenian.json" | "catalogs/font-schemes/noto-sans-bengali.json" | "catalogs/font-schemes/noto-sans-devangari.json" | "catalogs/font-schemes/noto-sans-ethiopic.json" | "catalogs/font-schemes/noto-sans-georgian.json" | "catalogs/font-schemes/noto-sans-gujarati.json" | "catalogs/font-schemes/noto-sans-gurmukhi.json" | "catalogs/font-schemes/noto-sans-hebrew.json" | "catalogs/font-schemes/noto-sans-jp.json" | "catalogs/font-schemes/noto-sans-kannada.json" | "catalogs/font-schemes/noto-sans-khmer.json" | "catalogs/font-schemes/noto-sans-kr.json" | "catalogs/font-schemes/noto-sans-malayalam.json" | "catalogs/font-schemes/noto-sans-mongolian.json" | "catalogs/font-schemes/noto-sans-oriya.json" | "catalogs/font-schemes/noto-sans-sc.json" | "catalogs/font-schemes/noto-sans-tamil.json" | "catalogs/font-schemes/noto-sans-tc.json" | "catalogs/font-schemes/noto-sans-telugu.json" | "catalogs/font-schemes/noto-sans-thai.json" | "catalogs/font-schemes/noto-sans.json" | "catalogs/font-schemes/nyala.json" | "catalogs/font-schemes/open-sans.json" | "catalogs/font-schemes/pmingliu.json" | "catalogs/font-schemes/poppins.json" | "catalogs/font-schemes/pt-serif.json" | "catalogs/font-schemes/raavi.json" | "catalogs/font-schemes/raleway.json" | "catalogs/font-schemes/roboto.json" | "catalogs/font-schemes/rockwell.json" | "catalogs/font-schemes/sakkal-majalla.json" | "catalogs/font-schemes/seaford.json" | "catalogs/font-schemes/segoe-ui-light.json" | "catalogs/font-schemes/segoe-ui.json" | "catalogs/font-schemes/shonar-bangla.json" | "catalogs/font-schemes/shruti.json" | "catalogs/font-schemes/simsun.json" | "catalogs/font-schemes/skeena.json" | "catalogs/font-schemes/sylfaen.json" | "catalogs/font-schemes/tahoma.json" | "catalogs/font-schemes/tenorite.json" | "catalogs/font-schemes/times-new-roman.json" | "catalogs/font-schemes/traditional-arabic.json" | "catalogs/font-schemes/trebuchet-ms.json" | "catalogs/font-schemes/tunga.json" | "catalogs/font-schemes/verdana.json" | "catalogs/font-schemes/vrinda.json" | "catalogs/font-schemes/yu-gothic.json" | "catalogs/languages/afrikaans.json" | "catalogs/languages/albanian.json" | "catalogs/languages/amharic.json" | "catalogs/languages/arabic.json" | "catalogs/languages/armenian.json" | "catalogs/languages/aymara.json" | "catalogs/languages/azerbaijani.json" | "catalogs/languages/bengali.json" | "catalogs/languages/berber-latin.json" | "catalogs/languages/bosnian-latin.json" | "catalogs/languages/bulgarian.json" | "catalogs/languages/catalan.json" | "catalogs/languages/cebuano.json" | "catalogs/languages/chinese-simplified.json" | "catalogs/languages/chinese-traditional.json" | "catalogs/languages/chittagonian.json" | "catalogs/languages/croatian.json" | "catalogs/languages/czech.json" | "catalogs/languages/danish.json" | "catalogs/languages/dutch.json" | "catalogs/languages/english-au.json" | "catalogs/languages/english-ca.json" | "catalogs/languages/english-gb.json" | "catalogs/languages/english-in.json" | "catalogs/languages/english-us.json" | "catalogs/languages/english.json" | "catalogs/languages/estonian.json" | "catalogs/languages/filipino.json" | "catalogs/languages/finnish.json" | "catalogs/languages/french.json" | "catalogs/languages/fulfulde.json" | "catalogs/languages/galician.json" | "catalogs/languages/georgian.json" | "catalogs/languages/german.json" | "catalogs/languages/greek.json" | "catalogs/languages/gujarati.json" | "catalogs/languages/hausa.json" | "catalogs/languages/hebrew.json" | "catalogs/languages/hindi.json" | "catalogs/languages/hungarian.json" | "catalogs/languages/igbo.json" | "catalogs/languages/index.json" | "catalogs/languages/indonesian.json" | "catalogs/languages/italian.json" | "catalogs/languages/japanese.json" | "catalogs/languages/kannada.json" | "catalogs/languages/kazakh.json" | "catalogs/languages/khmer.json" | "catalogs/languages/kinyarwanda.json" | "catalogs/languages/korean.json" | "catalogs/languages/kurmanji.json" | "catalogs/languages/latvian.json" | "catalogs/languages/lithuanian.json" | "catalogs/languages/macedonian.json" | "catalogs/languages/malagasy.json" | "catalogs/languages/malay.json" | "catalogs/languages/malayalam.json" | "catalogs/languages/maori.json" | "catalogs/languages/marathi.json" | "catalogs/languages/mongolian.json" | "catalogs/languages/nepali.json" | "catalogs/languages/norwegian.json" | "catalogs/languages/odia.json" | "catalogs/languages/oromo.json" | "catalogs/languages/pashto.json" | "catalogs/languages/persian.json" | "catalogs/languages/polish.json" | "catalogs/languages/portuguese.json" | "catalogs/languages/punjabi-gurmukhi.json" | "catalogs/languages/punjabi-shahmukhi.json" | "catalogs/languages/romanian.json" | "catalogs/languages/russian.json" | "catalogs/languages/serbian-cyrillic.json" | "catalogs/languages/serbian-latin.json" | "catalogs/languages/shona.json" | "catalogs/languages/slovak.json" | "catalogs/languages/slovenian.json" | "catalogs/languages/somali.json" | "catalogs/languages/spanish.json" | "catalogs/languages/swahili.json" | "catalogs/languages/swedish.json" | "catalogs/languages/tagalog.json" | "catalogs/languages/tajik.json" | "catalogs/languages/tamil.json" | "catalogs/languages/telugu.json" | "catalogs/languages/thai.json" | "catalogs/languages/turkish.json" | "catalogs/languages/ukrainian.json" | "catalogs/languages/urdu.json" | "catalogs/languages/uzbek-latin.json" | "catalogs/languages/vietnamese-quoc-ngu.json" | "catalogs/languages/xhosa.json" | "catalogs/languages/yoruba.json" | "catalogs/languages/zulu.json" | "catalogs/layouts/blank.json" | "catalogs/layouts/chart-1x.json" | "catalogs/layouts/chart-2x.json" | "catalogs/layouts/chart-3x.json" | "catalogs/layouts/code-1x.json" | "catalogs/layouts/extract/canonical.json" | "catalogs/layouts/image-1x.json" | "catalogs/layouts/image-2x.json" | "catalogs/layouts/image-3x.json" | "catalogs/layouts/image-bleed.json" | "catalogs/layouts/index.json" | "catalogs/layouts/list-1x.json" | "catalogs/layouts/list-2x.json" | "catalogs/layouts/list-3x.json" | "catalogs/layouts/list-4x.json" | "catalogs/layouts/list-5x.json" | "catalogs/layouts/list-6x.json" | "catalogs/layouts/media-1x.json" | "catalogs/layouts/number-1x.json" | "catalogs/layouts/number-2x.json" | "catalogs/layouts/number-3x.json" | "catalogs/layouts/number-4x.json" | "catalogs/layouts/number-5x.json" | "catalogs/layouts/number-6x.json" | "catalogs/layouts/quote-1x.json" | "catalogs/layouts/table-1x.json" | "catalogs/layouts/text-1x.json" | "catalogs/layouts/text-2x.json" | "catalogs/layouts/text-3x.json" | "catalogs/layouts/timeline-1x.json" | "catalogs/layouts/title-subtitle.json" | "catalogs/layouts/title.json" | "catalogs/narratives/board-meeting.json" | "catalogs/narratives/business-narrative.json" | "catalogs/narratives/business-review.json" | "catalogs/narratives/capacity-planning.json" | "catalogs/narratives/challenge-resolution.json" | "catalogs/narratives/classic-story.json" | "catalogs/narratives/company-intro.json" | "catalogs/narratives/conference-talk.json" | "catalogs/narratives/early-startup-pitch.json" | "catalogs/narratives/educate.json" | "catalogs/narratives/employee-review.json" | "catalogs/narratives/failure-analysis.json" | "catalogs/narratives/focus.json" | "catalogs/narratives/golden-circle.json" | "catalogs/narratives/index.json" | "catalogs/narratives/innovation.json" | "catalogs/narratives/justice.json" | "catalogs/narratives/marketing-strategy.json" | "catalogs/narratives/performance-improvement-plan.json" | "catalogs/narratives/performance-review.json" | "catalogs/narratives/persuade.json" | "catalogs/narratives/persuasive-sales.json" | "catalogs/narratives/pitch-deck.json" | "catalogs/narratives/problem-solution.json" | "catalogs/narratives/product-launch.json" | "catalogs/narratives/project-proposal.json" | "catalogs/narratives/qbr.json" | "catalogs/narratives/rags-to-riches.json" | "catalogs/narratives/reveal.json" | "catalogs/narratives/scqa.json" | "catalogs/narratives/status-update.json" | "catalogs/narratives/strategic-advisory.json" | "catalogs/narratives/strategic-narrative.json" | "catalogs/narratives/survey-analysis.json" | "catalogs/narratives/survival-story.json" | "catalogs/narratives/transformation-arc.json" | "catalogs/narratives/trend-analysis.json" | "catalogs/narratives/underdog-victory.json" | "catalogs/narratives/venture-pitch.json" | "catalogs/narratives/weekly-progress.json" | "catalogs/purposes/align.json" | "catalogs/purposes/decide.json" | "catalogs/purposes/educate.json" | "catalogs/purposes/index.json" | "catalogs/purposes/inform.json" | "catalogs/purposes/persuade.json" | "catalogs/purposes/pitch.json" | "catalogs/purposes/plan.json" | "catalogs/purposes/report.json" | "catalogs/purposes/sell.json" | "catalogs/social-platforms/bluesky.json" | "catalogs/social-platforms/facebook.json" | "catalogs/social-platforms/github.json" | "catalogs/social-platforms/index.json" | "catalogs/social-platforms/instagram.json" | "catalogs/social-platforms/linkedin.json" | "catalogs/social-platforms/mastodon.json" | "catalogs/social-platforms/threads.json" | "catalogs/social-platforms/tiktok.json" | "catalogs/social-platforms/x.json" | "catalogs/social-platforms/youtube.json" | "catalogs/themes/bold.json" | "catalogs/themes/classic.json" | "catalogs/themes/dark.json" | "catalogs/themes/index.json" | "catalogs/themes/minimal.json" | "catalogs/tones/authoritative.json" | "catalogs/tones/casual.json" | "catalogs/tones/conversational.json" | "catalogs/tones/formal.json" | "catalogs/tones/index.json" | "catalogs/tones/inspirational.json" | "catalogs/tones/persuasive.json" | "catalogs/tones/technical.json" | "openapi.yaml" | "previews/layouts/action-plan.html" | "previews/layouts/agenda.html" | "previews/layouts/appendix-index.html" | "previews/layouts/architecture-stack.html" | "previews/layouts/assumptions-dependencies.html" | "previews/layouts/before-after.html" | "previews/layouts/benchmark-target-table.html" | "previews/layouts/bullet-list.html" | "previews/layouts/business-model-canvas.html" | "previews/layouts/capability-map.html" | "previews/layouts/case-study.html" | "previews/layouts/chapter-recap.html" | "previews/layouts/circular-lifecycle.html" | "previews/layouts/comparison.html" | "previews/layouts/competitive-landscape.html" | "previews/layouts/customer-journey.html" | "previews/layouts/customer-logos.html" | "previews/layouts/dashboard.html" | "previews/layouts/data-visualization.html" | "previews/layouts/decision-tree.html" | "previews/layouts/detailed-data-table.html" | "previews/layouts/ecosystem-map.html" | "previews/layouts/executive-decision.html" | "previews/layouts/executive-summary.html" | "previews/layouts/faq.html" | "previews/layouts/feature-comparison-matrix.html" | "previews/layouts/forecast-scenario.html" | "previews/layouts/funnel-pyramid.html" | "previews/layouts/gantt-project-plan.html" | "previews/layouts/geographic-map.html" | "previews/layouts/heatmap-cohort.html" | "previews/layouts/hub-and-spoke.html" | "previews/layouts/icon-grid.html" | "previews/layouts/image-focus.html" | "previews/layouts/index.json" | "previews/layouts/key-takeaway.html" | "previews/layouts/kpi-scorecard.html" | "previews/layouts/logic-tree.html" | "previews/layouts/market-size.html" | "previews/layouts/matrix-quadrant.html" | "previews/layouts/network-dependency-map.html" | "previews/layouts/one-column-explainer.html" | "previews/layouts/org-chart.html" | "previews/layouts/persona-grid.html" | "previews/layouts/photo-grid.html" | "previews/layouts/pricing-table.html" | "previews/layouts/process-flow.html" | "previews/layouts/product-feature.html" | "previews/layouts/pros-cons.html" | "previews/layouts/qa-discussion.html" | "previews/layouts/quote-highlight.html" | "previews/layouts/raci-matrix.html" | "previews/layouts/risk-heatmap.html" | "previews/layouts/roadmap.html" | "previews/layouts/screenshot-walkthrough.html" | "previews/layouts/section-divider.html" | "previews/layouts/single-message-statement.html" | "previews/layouts/stats-metrics.html" | "previews/layouts/status-rag.html" | "previews/layouts/swimlane-process.html" | "previews/layouts/swot-analysis.html" | "previews/layouts/team-bio.html" | "previews/layouts/testimonial-grid.html" | "previews/layouts/thank-you-cta.html" | "previews/layouts/three-column.html" | "previews/layouts/timeline.html" | "previews/layouts/title-slide.html" | "previews/layouts/two-column.html" | "previews/layouts/venn-overlap.html" | "previews/layouts/waterfall-bridge.html" | "previews/layouts/wheel-radial.html" | "reference/engine-defaults.json" | "schemas/audience.schema.json" | "schemas/catalog-index.schema.json" | "schemas/chart-type.schema.json" | "schemas/color-scheme.schema.json" | "schemas/font-scheme.schema.json" | "schemas/language.schema.json" | "schemas/layout-preview-index.schema.json" | "schemas/layout.schema.json" | "schemas/narrative.schema.json" | "schemas/opf.schema.json" | "schemas/purpose.schema.json" | "schemas/social-platform.schema.json" | "schemas/theme.schema.json" | "schemas/tone.schema.json";
2
+ type SpecFilePath = "README.md" | "catalogs/audiences/academic.json" | "catalogs/audiences/all-hands.json" | "catalogs/audiences/board.json" | "catalogs/audiences/candidates.json" | "catalogs/audiences/customer.json" | "catalogs/audiences/customers.json" | "catalogs/audiences/engineering-team.json" | "catalogs/audiences/executive.json" | "catalogs/audiences/executives.json" | "catalogs/audiences/general-public.json" | "catalogs/audiences/index.json" | "catalogs/audiences/internal-team.json" | "catalogs/audiences/investor.json" | "catalogs/audiences/investors.json" | "catalogs/audiences/marketing-team.json" | "catalogs/audiences/marketing.json" | "catalogs/audiences/media.json" | "catalogs/audiences/partner.json" | "catalogs/audiences/regulators.json" | "catalogs/audiences/regulatory.json" | "catalogs/audiences/sales-team.json" | "catalogs/audiences/sales.json" | "catalogs/audiences/technical.json" | "catalogs/chart-types/100pct-bullet-bar-2x.json" | "catalogs/chart-types/100pct-bullet-bar-3x.json" | "catalogs/chart-types/100pct-bullet-bar.json" | "catalogs/chart-types/100pct-bullet-column-2x.json" | "catalogs/chart-types/100pct-bullet-column-3x.json" | "catalogs/chart-types/100pct-bullet-column.json" | "catalogs/chart-types/100pct-progress-bar.json" | "catalogs/chart-types/100pct-stacked-area-2x.json" | "catalogs/chart-types/100pct-stacked-area-3x.json" | "catalogs/chart-types/100pct-stacked-bar-2x.json" | "catalogs/chart-types/100pct-stacked-bar-3x.json" | "catalogs/chart-types/100pct-stacked-column-2x.json" | "catalogs/chart-types/100pct-stacked-column-3x.json" | "catalogs/chart-types/area.json" | "catalogs/chart-types/australia.json" | "catalogs/chart-types/bar.json" | "catalogs/chart-types/box-and-whisker-2x.json" | "catalogs/chart-types/box-and-whisker-3x.json" | "catalogs/chart-types/box-and-whisker.json" | "catalogs/chart-types/bullet-bar-2x.json" | "catalogs/chart-types/bullet-bar-3x.json" | "catalogs/chart-types/bullet-bar.json" | "catalogs/chart-types/bullet-column-2x.json" | "catalogs/chart-types/bullet-column-3x.json" | "catalogs/chart-types/bullet-column.json" | "catalogs/chart-types/canada.json" | "catalogs/chart-types/clustered-bar-2x.json" | "catalogs/chart-types/clustered-column.json" | "catalogs/chart-types/column.json" | "catalogs/chart-types/dot-plot-2x.json" | "catalogs/chart-types/dot-plot-3x.json" | "catalogs/chart-types/dot-plot-4x.json" | "catalogs/chart-types/dot-plot-5x.json" | "catalogs/chart-types/dot-plot-6x.json" | "catalogs/chart-types/dot-plot.json" | "catalogs/chart-types/doughnut.json" | "catalogs/chart-types/dumbbell.json" | "catalogs/chart-types/filled-radar.json" | "catalogs/chart-types/funnel.json" | "catalogs/chart-types/histogram.json" | "catalogs/chart-types/index.json" | "catalogs/chart-types/line-2x.json" | "catalogs/chart-types/line-3x.json" | "catalogs/chart-types/line-with-high-low-and-markers.json" | "catalogs/chart-types/line-with-high-low.json" | "catalogs/chart-types/line-with-markers-2x.json" | "catalogs/chart-types/line-with-markers-3x.json" | "catalogs/chart-types/line-with-markers.json" | "catalogs/chart-types/line.json" | "catalogs/chart-types/pareto.json" | "catalogs/chart-types/pie.json" | "catalogs/chart-types/radar-with-markers.json" | "catalogs/chart-types/radar.json" | "catalogs/chart-types/scatter.json" | "catalogs/chart-types/sparkline-2x.json" | "catalogs/chart-types/sparkline-3x.json" | "catalogs/chart-types/sparkline-4x.json" | "catalogs/chart-types/sparkline-5x.json" | "catalogs/chart-types/sparkline-6x.json" | "catalogs/chart-types/sparkline.json" | "catalogs/chart-types/stacked-area-2x.json" | "catalogs/chart-types/stacked-area-3x.json" | "catalogs/chart-types/stacked-bar-2x.json" | "catalogs/chart-types/stacked-bar-3x.json" | "catalogs/chart-types/stacked-column-2x.json" | "catalogs/chart-types/stacked-column-3x.json" | "catalogs/chart-types/stacked-line-2x.json" | "catalogs/chart-types/stacked-line-3x.json" | "catalogs/chart-types/stacked-line-with-markers-2x.json" | "catalogs/chart-types/stacked-line-with-markers-3x.json" | "catalogs/chart-types/treemap-2x.json" | "catalogs/chart-types/treemap-3x.json" | "catalogs/chart-types/treemap.json" | "catalogs/chart-types/united-kingdom.json" | "catalogs/chart-types/united-states.json" | "catalogs/chart-types/waterfall.json" | "catalogs/chart-types/world.json" | "catalogs/color-schemes/black-and-white.json" | "catalogs/color-schemes/bold-red.json" | "catalogs/color-schemes/boost.json" | "catalogs/color-schemes/burnt-orange.json" | "catalogs/color-schemes/cool-horizon.json" | "catalogs/color-schemes/corporate-blue.json" | "catalogs/color-schemes/deep-purple.json" | "catalogs/color-schemes/forest-green.json" | "catalogs/color-schemes/golden-yellow.json" | "catalogs/color-schemes/index.json" | "catalogs/color-schemes/luxury.json" | "catalogs/color-schemes/pastel-red.json" | "catalogs/color-schemes/slate-gray.json" | "catalogs/color-schemes/steel-blue.json" | "catalogs/color-schemes/vibes.json" | "catalogs/font-schemes/angsana-new.json" | "catalogs/font-schemes/aparajita.json" | "catalogs/font-schemes/aptos.json" | "catalogs/font-schemes/arabic-typesetting.json" | "catalogs/font-schemes/arial.json" | "catalogs/font-schemes/batang.json" | "catalogs/font-schemes/bookman.json" | "catalogs/font-schemes/calibri.json" | "catalogs/font-schemes/century-schoolbook.json" | "catalogs/font-schemes/consolas.json" | "catalogs/font-schemes/constantia.json" | "catalogs/font-schemes/courier-new.json" | "catalogs/font-schemes/daunpenh.json" | "catalogs/font-schemes/david.json" | "catalogs/font-schemes/dilleniaupc.json" | "catalogs/font-schemes/fangsong.json" | "catalogs/font-schemes/garamond.json" | "catalogs/font-schemes/gautami.json" | "catalogs/font-schemes/georgia.json" | "catalogs/font-schemes/gisha.json" | "catalogs/font-schemes/grandview.json" | "catalogs/font-schemes/gungsuh.json" | "catalogs/font-schemes/impact.json" | "catalogs/font-schemes/index.json" | "catalogs/font-schemes/kalinga.json" | "catalogs/font-schemes/kartika.json" | "catalogs/font-schemes/khmer-ui.json" | "catalogs/font-schemes/latha.json" | "catalogs/font-schemes/lucida-sans.json" | "catalogs/font-schemes/malgun-gothic.json" | "catalogs/font-schemes/mangal.json" | "catalogs/font-schemes/meiryo.json" | "catalogs/font-schemes/microsoft-jhenghei.json" | "catalogs/font-schemes/microsoft-yahei.json" | "catalogs/font-schemes/mingliu.json" | "catalogs/font-schemes/miriam.json" | "catalogs/font-schemes/montserrat.json" | "catalogs/font-schemes/ms-mincho.json" | "catalogs/font-schemes/nirmala-ui.json" | "catalogs/font-schemes/noto-naksh-arabic.json" | "catalogs/font-schemes/noto-nastaliq-urdu.json" | "catalogs/font-schemes/noto-sans-arabic.json" | "catalogs/font-schemes/noto-sans-armenian.json" | "catalogs/font-schemes/noto-sans-bengali.json" | "catalogs/font-schemes/noto-sans-devangari.json" | "catalogs/font-schemes/noto-sans-ethiopic.json" | "catalogs/font-schemes/noto-sans-georgian.json" | "catalogs/font-schemes/noto-sans-gujarati.json" | "catalogs/font-schemes/noto-sans-gurmukhi.json" | "catalogs/font-schemes/noto-sans-hebrew.json" | "catalogs/font-schemes/noto-sans-jp.json" | "catalogs/font-schemes/noto-sans-kannada.json" | "catalogs/font-schemes/noto-sans-khmer.json" | "catalogs/font-schemes/noto-sans-kr.json" | "catalogs/font-schemes/noto-sans-malayalam.json" | "catalogs/font-schemes/noto-sans-mongolian.json" | "catalogs/font-schemes/noto-sans-oriya.json" | "catalogs/font-schemes/noto-sans-sc.json" | "catalogs/font-schemes/noto-sans-tamil.json" | "catalogs/font-schemes/noto-sans-tc.json" | "catalogs/font-schemes/noto-sans-telugu.json" | "catalogs/font-schemes/noto-sans-thai.json" | "catalogs/font-schemes/noto-sans.json" | "catalogs/font-schemes/nyala.json" | "catalogs/font-schemes/open-sans.json" | "catalogs/font-schemes/pmingliu.json" | "catalogs/font-schemes/poppins.json" | "catalogs/font-schemes/pt-serif.json" | "catalogs/font-schemes/raavi.json" | "catalogs/font-schemes/raleway.json" | "catalogs/font-schemes/roboto.json" | "catalogs/font-schemes/rockwell.json" | "catalogs/font-schemes/sakkal-majalla.json" | "catalogs/font-schemes/seaford.json" | "catalogs/font-schemes/segoe-ui-light.json" | "catalogs/font-schemes/segoe-ui.json" | "catalogs/font-schemes/shonar-bangla.json" | "catalogs/font-schemes/shruti.json" | "catalogs/font-schemes/simsun.json" | "catalogs/font-schemes/skeena.json" | "catalogs/font-schemes/sylfaen.json" | "catalogs/font-schemes/tahoma.json" | "catalogs/font-schemes/tenorite.json" | "catalogs/font-schemes/times-new-roman.json" | "catalogs/font-schemes/traditional-arabic.json" | "catalogs/font-schemes/trebuchet-ms.json" | "catalogs/font-schemes/tunga.json" | "catalogs/font-schemes/verdana.json" | "catalogs/font-schemes/vrinda.json" | "catalogs/font-schemes/yu-gothic.json" | "catalogs/languages/afrikaans.json" | "catalogs/languages/albanian.json" | "catalogs/languages/amharic.json" | "catalogs/languages/arabic.json" | "catalogs/languages/armenian.json" | "catalogs/languages/aymara.json" | "catalogs/languages/azerbaijani.json" | "catalogs/languages/bengali.json" | "catalogs/languages/berber-latin.json" | "catalogs/languages/bosnian-latin.json" | "catalogs/languages/bulgarian.json" | "catalogs/languages/catalan.json" | "catalogs/languages/cebuano.json" | "catalogs/languages/chinese-simplified.json" | "catalogs/languages/chinese-traditional.json" | "catalogs/languages/chittagonian.json" | "catalogs/languages/croatian.json" | "catalogs/languages/czech.json" | "catalogs/languages/danish.json" | "catalogs/languages/dutch.json" | "catalogs/languages/english-au.json" | "catalogs/languages/english-ca.json" | "catalogs/languages/english-gb.json" | "catalogs/languages/english-in.json" | "catalogs/languages/english-us.json" | "catalogs/languages/english.json" | "catalogs/languages/estonian.json" | "catalogs/languages/filipino.json" | "catalogs/languages/finnish.json" | "catalogs/languages/french.json" | "catalogs/languages/fulfulde.json" | "catalogs/languages/galician.json" | "catalogs/languages/georgian.json" | "catalogs/languages/german.json" | "catalogs/languages/greek.json" | "catalogs/languages/gujarati.json" | "catalogs/languages/hausa.json" | "catalogs/languages/hebrew.json" | "catalogs/languages/hindi.json" | "catalogs/languages/hungarian.json" | "catalogs/languages/igbo.json" | "catalogs/languages/index.json" | "catalogs/languages/indonesian.json" | "catalogs/languages/italian.json" | "catalogs/languages/japanese.json" | "catalogs/languages/kannada.json" | "catalogs/languages/kazakh.json" | "catalogs/languages/khmer.json" | "catalogs/languages/kinyarwanda.json" | "catalogs/languages/korean.json" | "catalogs/languages/kurmanji.json" | "catalogs/languages/latvian.json" | "catalogs/languages/lithuanian.json" | "catalogs/languages/macedonian.json" | "catalogs/languages/malagasy.json" | "catalogs/languages/malay.json" | "catalogs/languages/malayalam.json" | "catalogs/languages/maori.json" | "catalogs/languages/marathi.json" | "catalogs/languages/mongolian.json" | "catalogs/languages/nepali.json" | "catalogs/languages/norwegian.json" | "catalogs/languages/odia.json" | "catalogs/languages/oromo.json" | "catalogs/languages/pashto.json" | "catalogs/languages/persian.json" | "catalogs/languages/polish.json" | "catalogs/languages/portuguese.json" | "catalogs/languages/punjabi-gurmukhi.json" | "catalogs/languages/punjabi-shahmukhi.json" | "catalogs/languages/romanian.json" | "catalogs/languages/russian.json" | "catalogs/languages/serbian-cyrillic.json" | "catalogs/languages/serbian-latin.json" | "catalogs/languages/shona.json" | "catalogs/languages/slovak.json" | "catalogs/languages/slovenian.json" | "catalogs/languages/somali.json" | "catalogs/languages/spanish.json" | "catalogs/languages/swahili.json" | "catalogs/languages/swedish.json" | "catalogs/languages/tagalog.json" | "catalogs/languages/tajik.json" | "catalogs/languages/tamil.json" | "catalogs/languages/telugu.json" | "catalogs/languages/thai.json" | "catalogs/languages/turkish.json" | "catalogs/languages/ukrainian.json" | "catalogs/languages/urdu.json" | "catalogs/languages/uzbek-latin.json" | "catalogs/languages/vietnamese-quoc-ngu.json" | "catalogs/languages/xhosa.json" | "catalogs/languages/yoruba.json" | "catalogs/languages/zulu.json" | "catalogs/layouts/blank.json" | "catalogs/layouts/chart-1x.json" | "catalogs/layouts/chart-2x.json" | "catalogs/layouts/chart-3x.json" | "catalogs/layouts/code-1x.json" | "catalogs/layouts/extract/canonical.json" | "catalogs/layouts/image-1x.json" | "catalogs/layouts/image-2x.json" | "catalogs/layouts/image-3x.json" | "catalogs/layouts/image-bleed.json" | "catalogs/layouts/index.json" | "catalogs/layouts/list-1x.json" | "catalogs/layouts/list-2x.json" | "catalogs/layouts/list-3x.json" | "catalogs/layouts/list-4x.json" | "catalogs/layouts/list-5x.json" | "catalogs/layouts/list-6x.json" | "catalogs/layouts/media-1x.json" | "catalogs/layouts/number-1x.json" | "catalogs/layouts/number-2x.json" | "catalogs/layouts/number-3x.json" | "catalogs/layouts/number-4x.json" | "catalogs/layouts/number-5x.json" | "catalogs/layouts/number-6x.json" | "catalogs/layouts/quote-1x.json" | "catalogs/layouts/table-1x.json" | "catalogs/layouts/text-1x.json" | "catalogs/layouts/text-2x.json" | "catalogs/layouts/text-3x.json" | "catalogs/layouts/timeline-1x.json" | "catalogs/layouts/title-subtitle.json" | "catalogs/layouts/title.json" | "catalogs/narratives/board-meeting.json" | "catalogs/narratives/business-narrative.json" | "catalogs/narratives/business-review.json" | "catalogs/narratives/capacity-planning.json" | "catalogs/narratives/challenge-resolution.json" | "catalogs/narratives/change-story.json" | "catalogs/narratives/classic-story.json" | "catalogs/narratives/company-intro.json" | "catalogs/narratives/conference-talk.json" | "catalogs/narratives/data-story.json" | "catalogs/narratives/early-startup-pitch.json" | "catalogs/narratives/educate.json" | "catalogs/narratives/employee-review.json" | "catalogs/narratives/failure-analysis.json" | "catalogs/narratives/focus.json" | "catalogs/narratives/golden-circle.json" | "catalogs/narratives/heros-journey.json" | "catalogs/narratives/index.json" | "catalogs/narratives/innovation.json" | "catalogs/narratives/justice.json" | "catalogs/narratives/marketing-strategy.json" | "catalogs/narratives/performance-improvement-plan.json" | "catalogs/narratives/performance-review.json" | "catalogs/narratives/persuade.json" | "catalogs/narratives/persuasive-sales.json" | "catalogs/narratives/pitch-deck.json" | "catalogs/narratives/problem-solution.json" | "catalogs/narratives/product-launch.json" | "catalogs/narratives/project-proposal.json" | "catalogs/narratives/pyramid-principle.json" | "catalogs/narratives/qbr.json" | "catalogs/narratives/rags-to-riches.json" | "catalogs/narratives/reveal.json" | "catalogs/narratives/scqa.json" | "catalogs/narratives/situation-complication-resolution.json" | "catalogs/narratives/sparkline.json" | "catalogs/narratives/star-method.json" | "catalogs/narratives/status-update.json" | "catalogs/narratives/strategic-advisory.json" | "catalogs/narratives/strategic-narrative.json" | "catalogs/narratives/survey-analysis.json" | "catalogs/narratives/survival-story.json" | "catalogs/narratives/transformation-arc.json" | "catalogs/narratives/trend-analysis.json" | "catalogs/narratives/underdog-victory.json" | "catalogs/narratives/venture-pitch.json" | "catalogs/narratives/vision-roadmap.json" | "catalogs/narratives/weekly-progress.json" | "catalogs/narratives/what-so-what-now-what.json" | "catalogs/purposes/align.json" | "catalogs/purposes/decide.json" | "catalogs/purposes/educate.json" | "catalogs/purposes/index.json" | "catalogs/purposes/inform.json" | "catalogs/purposes/persuade.json" | "catalogs/purposes/pitch.json" | "catalogs/purposes/plan.json" | "catalogs/purposes/report.json" | "catalogs/purposes/sell.json" | "catalogs/social-platforms/bluesky.json" | "catalogs/social-platforms/facebook.json" | "catalogs/social-platforms/github.json" | "catalogs/social-platforms/index.json" | "catalogs/social-platforms/instagram.json" | "catalogs/social-platforms/linkedin.json" | "catalogs/social-platforms/mastodon.json" | "catalogs/social-platforms/threads.json" | "catalogs/social-platforms/tiktok.json" | "catalogs/social-platforms/x.json" | "catalogs/social-platforms/youtube.json" | "catalogs/themes/bold.json" | "catalogs/themes/classic.json" | "catalogs/themes/dark.json" | "catalogs/themes/index.json" | "catalogs/themes/minimal.json" | "catalogs/tones/authoritative.json" | "catalogs/tones/casual.json" | "catalogs/tones/conversational.json" | "catalogs/tones/formal.json" | "catalogs/tones/index.json" | "catalogs/tones/inspirational.json" | "catalogs/tones/persuasive.json" | "catalogs/tones/technical.json" | "openapi.yaml" | "previews/layouts/action-plan.html" | "previews/layouts/agenda.html" | "previews/layouts/appendix-index.html" | "previews/layouts/architecture-stack.html" | "previews/layouts/assumptions-dependencies.html" | "previews/layouts/before-after.html" | "previews/layouts/benchmark-target-table.html" | "previews/layouts/bullet-list.html" | "previews/layouts/business-model-canvas.html" | "previews/layouts/capability-map.html" | "previews/layouts/case-study.html" | "previews/layouts/chapter-recap.html" | "previews/layouts/circular-lifecycle.html" | "previews/layouts/comparison.html" | "previews/layouts/competitive-landscape.html" | "previews/layouts/customer-journey.html" | "previews/layouts/customer-logos.html" | "previews/layouts/dashboard.html" | "previews/layouts/data-visualization.html" | "previews/layouts/decision-tree.html" | "previews/layouts/detailed-data-table.html" | "previews/layouts/ecosystem-map.html" | "previews/layouts/executive-decision.html" | "previews/layouts/executive-summary.html" | "previews/layouts/faq.html" | "previews/layouts/feature-comparison-matrix.html" | "previews/layouts/forecast-scenario.html" | "previews/layouts/funnel-pyramid.html" | "previews/layouts/gantt-project-plan.html" | "previews/layouts/geographic-map.html" | "previews/layouts/heatmap-cohort.html" | "previews/layouts/hub-and-spoke.html" | "previews/layouts/icon-grid.html" | "previews/layouts/image-focus.html" | "previews/layouts/index.json" | "previews/layouts/key-takeaway.html" | "previews/layouts/kpi-scorecard.html" | "previews/layouts/logic-tree.html" | "previews/layouts/market-size.html" | "previews/layouts/matrix-quadrant.html" | "previews/layouts/network-dependency-map.html" | "previews/layouts/one-column-explainer.html" | "previews/layouts/org-chart.html" | "previews/layouts/persona-grid.html" | "previews/layouts/photo-grid.html" | "previews/layouts/pricing-table.html" | "previews/layouts/process-flow.html" | "previews/layouts/product-feature.html" | "previews/layouts/pros-cons.html" | "previews/layouts/qa-discussion.html" | "previews/layouts/quote-highlight.html" | "previews/layouts/raci-matrix.html" | "previews/layouts/risk-heatmap.html" | "previews/layouts/roadmap.html" | "previews/layouts/screenshot-walkthrough.html" | "previews/layouts/section-divider.html" | "previews/layouts/single-message-statement.html" | "previews/layouts/stats-metrics.html" | "previews/layouts/status-rag.html" | "previews/layouts/swimlane-process.html" | "previews/layouts/swot-analysis.html" | "previews/layouts/team-bio.html" | "previews/layouts/testimonial-grid.html" | "previews/layouts/thank-you-cta.html" | "previews/layouts/three-column.html" | "previews/layouts/timeline.html" | "previews/layouts/title-slide.html" | "previews/layouts/two-column.html" | "previews/layouts/venn-overlap.html" | "previews/layouts/waterfall-bridge.html" | "previews/layouts/wheel-radial.html" | "reference/engine-defaults.json" | "reference/font-policy.json" | "reference/font-policy.schema.json" | "schemas/audience.schema.json" | "schemas/catalog-index.schema.json" | "schemas/chart-type.schema.json" | "schemas/color-scheme.schema.json" | "schemas/font-scheme.schema.json" | "schemas/language.schema.json" | "schemas/layout-preview-index.schema.json" | "schemas/layout.schema.json" | "schemas/narrative.schema.json" | "schemas/opf.schema.json" | "schemas/purpose.schema.json" | "schemas/social-platform.schema.json" | "schemas/theme.schema.json" | "schemas/tone.schema.json";
3
3
  /** Category of a bundled spec file. */
4
4
  type SpecFileKind = "spec" | "catalogRecord" | "catalogIndex" | "openapi" | "reference" | "schema";
5
5
  /** One entry per file shipped under `@openpresentation/opf/spec/`. */
@@ -1 +1 @@
1
- export { specFileEntries, specFileKinds, specFilePaths } from './chunk-RS5GZ5RW.js';
1
+ export { specFileEntries, specFileKinds, specFilePaths } from './chunk-SDETQV7Y.js';
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { P as Presentation } from './presentation-Ct42Mitb.js';
2
- export { A as Audience, C as CatalogKind, e as ChartType, f as ColorScheme, F as FontScheme, L as Language, g as Layout, N as Narrative, P as Purpose, S as SocialPlatform, T as Theme, h as Tone } from './catalogs-atkOF4Vy.js';
3
- export { a as SchemaName } from './schemas-CiVmUT2p.js';
1
+ export { P as Presentation } from './presentation-bceTClm8.js';
2
+ export { A as Audience, C as CatalogKind, e as ChartType, f as ColorScheme, F as FontScheme, L as Language, g as Layout, N as Narrative, P as Purpose, S as SocialPlatform, T as Theme, h as Tone } from './catalogs-DJ-B5ZyD.js';
3
+ export { a as SchemaName } from './schemas-X_NniU4A.js';
4
4
  export { ValidationIssue, ValidationResult } from './validator.js';
@@ -1,6 +1,6 @@
1
- import { P as Presentation } from './presentation-Ct42Mitb.js';
2
- import { C as CatalogKind } from './catalogs-atkOF4Vy.js';
3
- import { a as SchemaName, m as JsonSchema } from './schemas-CiVmUT2p.js';
1
+ import { P as Presentation } from './presentation-bceTClm8.js';
2
+ import { C as CatalogKind } from './catalogs-DJ-B5ZyD.js';
3
+ import { a as SchemaName, m as JsonSchema } from './schemas-X_NniU4A.js';
4
4
 
5
5
  declare const promotedRegionKeys: readonly ["left", "center", "right", "left+center", "center+right", "left+center+right", "top", "middle", "bottom", "top+middle", "middle+bottom", "top+middle+bottom", "top:left", "top:center", "top:right", "top:left+center", "top:center+right", "top:left+center+right", "middle:left", "middle:center", "middle:right", "middle:left+center", "middle:center+right", "middle:left+center+right", "bottom:left", "bottom:center", "bottom:right", "bottom:left+center", "bottom:center+right", "bottom:left+center+right", "top+middle:left", "top+middle:center", "top+middle:right", "top+middle:left+center", "top+middle:center+right", "top+middle:left+center+right", "middle+bottom:left", "middle+bottom:center", "middle+bottom:right", "middle+bottom:left+center", "middle+bottom:center+right", "middle+bottom:left+center+right", "top+middle+bottom:left", "top+middle+bottom:center", "top+middle+bottom:right", "top+middle+bottom:left+center", "top+middle+bottom:center+right", "top+middle+bottom:left+center+right"];
6
6
 
package/dist/validator.js CHANGED
@@ -1,4 +1,4 @@
1
- export { OPFValidationError, assertValid, assertValidCatalogRecord, assertValidPresentation, promotedRegionKeys, validate, validateCatalogRecord, validatePresentation } from './chunk-CHKJ4QHQ.js';
2
- import './chunk-FTWNWFIV.js';
3
- import './chunk-GN52EE3P.js';
4
- import './chunk-6FU2KICU.js';
1
+ export { OPFValidationError, assertValid, assertValidCatalogRecord, assertValidPresentation, promotedRegionKeys, validate, validateCatalogRecord, validatePresentation } from './chunk-DJRZMGKY.js';
2
+ import './chunk-BVLWFMDX.js';
3
+ import './chunk-LTSDDBNW.js';
4
+ import './chunk-7LF37SG3.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpresentation/opf",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "Canonical Open Presentation Format schemas, catalogs, TypeScript types, and local validation.",
5
5
  "license": "MIT",
6
6
  "author": "Open Presentation",
@@ -84,6 +84,10 @@
84
84
  "types": "./dist/data.d.ts",
85
85
  "import": "./dist/data.js"
86
86
  },
87
+ "./font-policy": {
88
+ "types": "./dist/font-policy.d.ts",
89
+ "import": "./dist/font-policy.js"
90
+ },
87
91
  "./lint": {
88
92
  "types": "./dist/lint.d.ts",
89
93
  "import": "./dist/lint.js"
@@ -103,7 +107,7 @@
103
107
  "generate": "node scripts/generate.mjs && node scripts/generate-previews.mjs && node scripts/generate-content.mjs",
104
108
  "build": "pnpm run generate && tsup && node scripts/copy-spec.mjs",
105
109
  "typecheck": "pnpm run generate && node ../../scripts/typecheck.mjs --noEmit",
106
- "test": "pnpm run build && node ../../scripts/run-node-tests.mjs && node test/composition.mjs && node test/pagination.mjs && node test/data.mjs && node test/rich-text.mjs && node test/lists.mjs",
110
+ "test": "pnpm run build && node ../../scripts/run-node-tests.mjs && node test/composition.mjs && node test/pagination.mjs && node test/data.mjs && node test/rich-text.mjs && node test/rich-tab.mjs && node test/lists.mjs",
107
111
  "test:packed": "node test/packed-install-smoke.mjs",
108
112
  "pack:dry-run": "pnpm run build && npm pack --dry-run --cache /tmp/opf-npm-cache"
109
113
  },