@openpresentation/opf 0.1.0 → 0.2.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.
- package/LICENSE +21 -21
- package/README.md +146 -103
- package/dist/catalogs.d.ts +11 -1531
- package/dist/catalogs.js +5 -613
- package/dist/catalogs.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3862 -662
- package/dist/index.js.map +1 -1
- package/dist/previews.d.ts +40 -0
- package/dist/previews.js +447 -0
- package/dist/previews.js.map +1 -0
- package/dist/schemas.d.ts +153 -141
- package/dist/schemas.js +57 -48
- package/dist/schemas.js.map +1 -1
- package/dist/spec/catalogs/audiences/all-hands.json +23 -23
- package/dist/spec/catalogs/audiences/board.json +22 -22
- package/dist/spec/catalogs/audiences/candidates.json +23 -23
- package/dist/spec/catalogs/audiences/customers.json +23 -23
- package/dist/spec/catalogs/audiences/engineering-team.json +23 -23
- package/dist/spec/catalogs/audiences/executives.json +23 -23
- package/dist/spec/catalogs/audiences/index.json +67 -67
- package/dist/spec/catalogs/audiences/investors.json +23 -23
- package/dist/spec/catalogs/audiences/marketing-team.json +23 -23
- package/dist/spec/catalogs/audiences/regulators.json +23 -23
- package/dist/spec/catalogs/audiences/sales-team.json +23 -23
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +86 -90
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +98 -102
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +74 -78
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +86 -90
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +98 -102
- package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +74 -78
- package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +95 -99
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +95 -99
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +85 -89
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +103 -107
- package/dist/spec/catalogs/chart-types/area.json +73 -77
- package/dist/spec/catalogs/chart-types/australia.json +66 -70
- package/dist/spec/catalogs/chart-types/bar.json +63 -67
- package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +126 -130
- package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +158 -162
- package/dist/spec/catalogs/chart-types/box-and-whisker.json +94 -98
- package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +84 -88
- package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +96 -100
- package/dist/spec/catalogs/chart-types/bullet-bar.json +72 -76
- package/dist/spec/catalogs/chart-types/bullet-column-2x.json +84 -88
- package/dist/spec/catalogs/chart-types/bullet-column-3x.json +96 -100
- package/dist/spec/catalogs/chart-types/bullet-column.json +72 -76
- package/dist/spec/catalogs/chart-types/canada.json +76 -80
- package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/clustered-column.json +85 -89
- package/dist/spec/catalogs/chart-types/column.json +67 -71
- package/dist/spec/catalogs/chart-types/dot-plot-2x.json +94 -98
- package/dist/spec/catalogs/chart-types/dot-plot-3x.json +119 -123
- package/dist/spec/catalogs/chart-types/dot-plot-4x.json +144 -148
- package/dist/spec/catalogs/chart-types/dot-plot-5x.json +169 -173
- package/dist/spec/catalogs/chart-types/dot-plot-6x.json +194 -198
- package/dist/spec/catalogs/chart-types/dot-plot.json +69 -73
- package/dist/spec/catalogs/chart-types/doughnut.json +53 -57
- package/dist/spec/catalogs/chart-types/dumbbell.json +115 -119
- package/dist/spec/catalogs/chart-types/filled-radar.json +66 -70
- package/dist/spec/catalogs/chart-types/funnel.json +60 -64
- package/dist/spec/catalogs/chart-types/histogram.json +141 -145
- package/dist/spec/catalogs/chart-types/index.json +539 -843
- package/dist/spec/catalogs/chart-types/line-2x.json +95 -99
- package/dist/spec/catalogs/chart-types/line-3x.json +117 -121
- package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +139 -143
- package/dist/spec/catalogs/chart-types/line-with-high-low.json +139 -143
- package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/line-with-markers.json +74 -78
- package/dist/spec/catalogs/chart-types/line.json +73 -77
- package/dist/spec/catalogs/chart-types/pareto.json +159 -163
- package/dist/spec/catalogs/chart-types/pie.json +53 -57
- package/dist/spec/catalogs/chart-types/radar-with-markers.json +66 -70
- package/dist/spec/catalogs/chart-types/radar.json +66 -70
- package/dist/spec/catalogs/chart-types/scatter.json +87 -91
- package/dist/spec/catalogs/chart-types/sparkline-2x.json +133 -137
- package/dist/spec/catalogs/chart-types/sparkline-3x.json +169 -173
- package/dist/spec/catalogs/chart-types/sparkline-4x.json +205 -209
- package/dist/spec/catalogs/chart-types/sparkline-5x.json +241 -245
- package/dist/spec/catalogs/chart-types/sparkline-6x.json +277 -281
- package/dist/spec/catalogs/chart-types/sparkline.json +97 -101
- package/dist/spec/catalogs/chart-types/stacked-area-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/stacked-area-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +95 -99
- package/dist/spec/catalogs/chart-types/stacked-column-2x.json +85 -89
- package/dist/spec/catalogs/chart-types/stacked-column-3x.json +103 -107
- package/dist/spec/catalogs/chart-types/stacked-line-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/stacked-line-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +97 -101
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +119 -123
- package/dist/spec/catalogs/chart-types/treemap-2x.json +91 -95
- package/dist/spec/catalogs/chart-types/treemap-3x.json +112 -116
- package/dist/spec/catalogs/chart-types/treemap.json +62 -66
- package/dist/spec/catalogs/chart-types/{united-kindom.json → united-kingdom.json} +58 -62
- package/dist/spec/catalogs/chart-types/united-states.json +72 -76
- package/dist/spec/catalogs/chart-types/waterfall.json +66 -70
- package/dist/spec/catalogs/chart-types/world.json +78 -82
- package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -17
- package/dist/spec/catalogs/color-schemes/bold-red.json +17 -17
- package/dist/spec/catalogs/color-schemes/boost.json +17 -17
- package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -17
- package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -17
- package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -17
- package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -17
- package/dist/spec/catalogs/color-schemes/forest-green.json +17 -17
- package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -17
- package/dist/spec/catalogs/color-schemes/index.json +77 -77
- package/dist/spec/catalogs/color-schemes/luxury.json +17 -17
- package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -17
- package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -17
- package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -17
- package/dist/spec/catalogs/color-schemes/vibes.json +17 -17
- package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -14
- package/dist/spec/catalogs/font-schemes/aparajita.json +15 -15
- package/dist/spec/catalogs/font-schemes/aptos.json +12 -12
- package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -14
- package/dist/spec/catalogs/font-schemes/arial.json +12 -12
- package/dist/spec/catalogs/font-schemes/batang.json +14 -14
- package/dist/spec/catalogs/font-schemes/bookman.json +12 -12
- package/dist/spec/catalogs/font-schemes/calibri.json +12 -12
- package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -12
- package/dist/spec/catalogs/font-schemes/consolas.json +12 -12
- package/dist/spec/catalogs/font-schemes/constantia.json +12 -12
- package/dist/spec/catalogs/font-schemes/courier-new.json +12 -12
- package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -14
- package/dist/spec/catalogs/font-schemes/david.json +14 -14
- package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -14
- package/dist/spec/catalogs/font-schemes/fangsong.json +14 -14
- package/dist/spec/catalogs/font-schemes/garamond.json +12 -12
- package/dist/spec/catalogs/font-schemes/gautami.json +14 -14
- package/dist/spec/catalogs/font-schemes/georgia.json +12 -12
- package/dist/spec/catalogs/font-schemes/gisha.json +15 -15
- package/dist/spec/catalogs/font-schemes/grandview.json +12 -12
- package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -14
- package/dist/spec/catalogs/font-schemes/impact.json +12 -12
- package/dist/spec/catalogs/font-schemes/index.json +452 -452
- package/dist/spec/catalogs/font-schemes/kalinga.json +14 -14
- package/dist/spec/catalogs/font-schemes/kartika.json +14 -14
- package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -14
- package/dist/spec/catalogs/font-schemes/latha.json +14 -14
- package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -12
- package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -14
- package/dist/spec/catalogs/font-schemes/mangal.json +17 -17
- package/dist/spec/catalogs/font-schemes/meiryo.json +14 -14
- package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -14
- package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -17
- package/dist/spec/catalogs/font-schemes/mingliu.json +14 -14
- package/dist/spec/catalogs/font-schemes/miriam.json +14 -14
- package/dist/spec/catalogs/font-schemes/montserrat.json +12 -12
- package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -14
- package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -16
- package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -17
- package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -17
- package/dist/spec/catalogs/font-schemes/nyala.json +14 -14
- package/dist/spec/catalogs/font-schemes/open-sans.json +12 -12
- package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -14
- package/dist/spec/catalogs/font-schemes/poppins.json +12 -12
- package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -12
- package/dist/spec/catalogs/font-schemes/raavi.json +14 -14
- package/dist/spec/catalogs/font-schemes/raleway.json +12 -12
- package/dist/spec/catalogs/font-schemes/roboto.json +12 -12
- package/dist/spec/catalogs/font-schemes/rockwell.json +12 -12
- package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -16
- package/dist/spec/catalogs/font-schemes/seaford.json +12 -12
- package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -12
- package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -12
- package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -15
- package/dist/spec/catalogs/font-schemes/shruti.json +14 -14
- package/dist/spec/catalogs/font-schemes/simsun.json +14 -14
- package/dist/spec/catalogs/font-schemes/skeena.json +12 -12
- package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -15
- package/dist/spec/catalogs/font-schemes/tahoma.json +12 -12
- package/dist/spec/catalogs/font-schemes/tenorite.json +12 -12
- package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -12
- package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -16
- package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -12
- package/dist/spec/catalogs/font-schemes/tunga.json +14 -14
- package/dist/spec/catalogs/font-schemes/verdana.json +12 -12
- package/dist/spec/catalogs/font-schemes/vrinda.json +14 -14
- package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -14
- package/dist/spec/catalogs/languages/afrikaans.json +9 -9
- package/dist/spec/catalogs/languages/albanian.json +9 -9
- package/dist/spec/catalogs/languages/amharic.json +9 -9
- package/dist/spec/catalogs/languages/arabic.json +9 -9
- package/dist/spec/catalogs/languages/armenian.json +9 -9
- package/dist/spec/catalogs/languages/aymara.json +9 -9
- package/dist/spec/catalogs/languages/azerbaijani.json +9 -9
- package/dist/spec/catalogs/languages/bengali.json +9 -9
- package/dist/spec/catalogs/languages/berber-latin.json +9 -9
- package/dist/spec/catalogs/languages/bosnian-latin.json +9 -9
- package/dist/spec/catalogs/languages/bulgarian.json +9 -9
- package/dist/spec/catalogs/languages/catalan.json +9 -9
- package/dist/spec/catalogs/languages/cebuano.json +9 -9
- package/dist/spec/catalogs/languages/chinese-simplified.json +9 -9
- package/dist/spec/catalogs/languages/chinese-traditional.json +9 -9
- package/dist/spec/catalogs/languages/chittagonian.json +9 -9
- package/dist/spec/catalogs/languages/croatian.json +9 -9
- package/dist/spec/catalogs/languages/czech.json +9 -9
- package/dist/spec/catalogs/languages/danish.json +9 -9
- package/dist/spec/catalogs/languages/dutch.json +9 -9
- package/dist/spec/catalogs/languages/english-au.json +9 -9
- package/dist/spec/catalogs/languages/english-ca.json +9 -9
- package/dist/spec/catalogs/languages/english-gb.json +9 -9
- package/dist/spec/catalogs/languages/english-in.json +9 -9
- package/dist/spec/catalogs/languages/english-us.json +9 -9
- package/dist/spec/catalogs/languages/english.json +9 -9
- package/dist/spec/catalogs/languages/estonian.json +9 -9
- package/dist/spec/catalogs/languages/filipino.json +9 -9
- package/dist/spec/catalogs/languages/finnish.json +9 -9
- package/dist/spec/catalogs/languages/french.json +9 -9
- package/dist/spec/catalogs/languages/fulfulde.json +9 -9
- package/dist/spec/catalogs/languages/galician.json +9 -9
- package/dist/spec/catalogs/languages/georgian.json +9 -9
- package/dist/spec/catalogs/languages/german.json +9 -9
- package/dist/spec/catalogs/languages/greek.json +9 -9
- package/dist/spec/catalogs/languages/gujarati.json +9 -9
- package/dist/spec/catalogs/languages/hausa.json +9 -9
- package/dist/spec/catalogs/languages/hebrew.json +9 -9
- package/dist/spec/catalogs/languages/hindi.json +9 -9
- package/dist/spec/catalogs/languages/hungarian.json +9 -9
- package/dist/spec/catalogs/languages/igbo.json +9 -9
- package/dist/spec/catalogs/languages/index.json +565 -565
- package/dist/spec/catalogs/languages/indonesian.json +9 -9
- package/dist/spec/catalogs/languages/italian.json +9 -9
- package/dist/spec/catalogs/languages/japanese.json +9 -9
- package/dist/spec/catalogs/languages/kannada.json +9 -9
- package/dist/spec/catalogs/languages/kazakh.json +9 -9
- package/dist/spec/catalogs/languages/khmer.json +9 -9
- package/dist/spec/catalogs/languages/kinyarwanda.json +9 -9
- package/dist/spec/catalogs/languages/korean.json +9 -9
- package/dist/spec/catalogs/languages/kurmanji.json +9 -9
- package/dist/spec/catalogs/languages/latvian.json +9 -9
- package/dist/spec/catalogs/languages/lithuanian.json +9 -9
- package/dist/spec/catalogs/languages/macedonian.json +9 -9
- package/dist/spec/catalogs/languages/malagasy.json +9 -9
- package/dist/spec/catalogs/languages/malay.json +9 -9
- package/dist/spec/catalogs/languages/malayalam.json +9 -9
- package/dist/spec/catalogs/languages/maori.json +9 -9
- package/dist/spec/catalogs/languages/marathi.json +9 -9
- package/dist/spec/catalogs/languages/mongolian.json +9 -9
- package/dist/spec/catalogs/languages/nepali.json +9 -9
- package/dist/spec/catalogs/languages/norwegian.json +9 -9
- package/dist/spec/catalogs/languages/odia.json +9 -9
- package/dist/spec/catalogs/languages/oromo.json +9 -9
- package/dist/spec/catalogs/languages/pashto.json +9 -9
- package/dist/spec/catalogs/languages/persian.json +9 -9
- package/dist/spec/catalogs/languages/polish.json +9 -9
- package/dist/spec/catalogs/languages/portuguese.json +9 -9
- package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -9
- package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -9
- package/dist/spec/catalogs/languages/romanian.json +9 -9
- package/dist/spec/catalogs/languages/russian.json +9 -9
- package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -9
- package/dist/spec/catalogs/languages/serbian-latin.json +9 -9
- package/dist/spec/catalogs/languages/shona.json +9 -9
- package/dist/spec/catalogs/languages/slovak.json +9 -9
- package/dist/spec/catalogs/languages/slovenian.json +9 -9
- package/dist/spec/catalogs/languages/somali.json +9 -9
- package/dist/spec/catalogs/languages/spanish.json +9 -9
- package/dist/spec/catalogs/languages/swahili.json +9 -9
- package/dist/spec/catalogs/languages/swedish.json +9 -9
- package/dist/spec/catalogs/languages/tagalog.json +9 -9
- package/dist/spec/catalogs/languages/tajik.json +9 -9
- package/dist/spec/catalogs/languages/tamil.json +9 -9
- package/dist/spec/catalogs/languages/telugu.json +9 -9
- package/dist/spec/catalogs/languages/thai.json +9 -9
- package/dist/spec/catalogs/languages/turkish.json +9 -9
- package/dist/spec/catalogs/languages/ukrainian.json +9 -9
- package/dist/spec/catalogs/languages/urdu.json +9 -9
- package/dist/spec/catalogs/languages/uzbek-latin.json +9 -9
- package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -9
- package/dist/spec/catalogs/languages/xhosa.json +9 -9
- package/dist/spec/catalogs/languages/yoruba.json +9 -9
- package/dist/spec/catalogs/languages/zulu.json +9 -9
- package/dist/spec/catalogs/layouts/blank.json +6 -6
- package/dist/spec/catalogs/layouts/chart-1x.json +16 -16
- package/dist/spec/catalogs/layouts/chart-2x.json +22 -22
- package/dist/spec/catalogs/layouts/chart-3x.json +28 -28
- package/dist/spec/catalogs/layouts/code-1x.json +16 -16
- package/dist/spec/catalogs/layouts/extract/canonical.json +487 -487
- package/dist/spec/catalogs/layouts/image-1x.json +16 -16
- package/dist/spec/catalogs/layouts/image-2x.json +22 -22
- package/dist/spec/catalogs/layouts/image-3x.json +28 -28
- package/dist/spec/catalogs/layouts/image-bleed.json +10 -10
- package/dist/spec/catalogs/layouts/index.json +147 -147
- package/dist/spec/catalogs/layouts/list-1x.json +13 -13
- package/dist/spec/catalogs/layouts/list-2x.json +16 -16
- package/dist/spec/catalogs/layouts/list-3x.json +19 -19
- package/dist/spec/catalogs/layouts/list-4x.json +22 -22
- package/dist/spec/catalogs/layouts/list-5x.json +25 -25
- package/dist/spec/catalogs/layouts/list-6x.json +28 -28
- package/dist/spec/catalogs/layouts/media-1x.json +16 -16
- package/dist/spec/catalogs/layouts/number-1x.json +13 -13
- package/dist/spec/catalogs/layouts/number-2x.json +16 -16
- package/dist/spec/catalogs/layouts/number-3x.json +19 -19
- package/dist/spec/catalogs/layouts/number-4x.json +22 -22
- package/dist/spec/catalogs/layouts/number-5x.json +25 -25
- package/dist/spec/catalogs/layouts/number-6x.json +28 -28
- package/dist/spec/catalogs/layouts/table-1x.json +16 -16
- package/dist/spec/catalogs/layouts/text-1x.json +13 -13
- package/dist/spec/catalogs/layouts/text-2x.json +16 -16
- package/dist/spec/catalogs/layouts/text-3x.json +19 -19
- package/dist/spec/catalogs/layouts/title-subtitle.json +13 -13
- package/dist/spec/catalogs/layouts/title.json +10 -10
- package/dist/spec/catalogs/narratives/board-meeting.json +192 -192
- package/dist/spec/catalogs/narratives/business-narrative.json +87 -87
- package/dist/spec/catalogs/narratives/business-review.json +119 -119
- package/dist/spec/catalogs/narratives/capacity-planning.json +88 -88
- package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -80
- package/dist/spec/catalogs/narratives/classic-story.json +78 -78
- package/dist/spec/catalogs/narratives/company-intro.json +96 -96
- package/dist/spec/catalogs/narratives/conference-talk.json +54 -54
- package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -119
- package/dist/spec/catalogs/narratives/educate.json +95 -95
- package/dist/spec/catalogs/narratives/employee-review.json +87 -87
- package/dist/spec/catalogs/narratives/failure-analysis.json +104 -104
- package/dist/spec/catalogs/narratives/focus.json +120 -120
- package/dist/spec/catalogs/narratives/golden-circle.json +50 -50
- package/dist/spec/catalogs/narratives/index.json +358 -358
- package/dist/spec/catalogs/narratives/innovation.json +96 -96
- package/dist/spec/catalogs/narratives/justice.json +112 -112
- package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -111
- package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -87
- package/dist/spec/catalogs/narratives/performance-review.json +111 -111
- package/dist/spec/catalogs/narratives/persuade.json +94 -94
- package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -87
- package/dist/spec/catalogs/narratives/pitch-deck.json +107 -107
- package/dist/spec/catalogs/narratives/problem-solution.json +61 -61
- package/dist/spec/catalogs/narratives/product-launch.json +104 -104
- package/dist/spec/catalogs/narratives/project-proposal.json +104 -104
- package/dist/spec/catalogs/narratives/qbr.json +85 -85
- package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -80
- package/dist/spec/catalogs/narratives/reveal.json +87 -87
- package/dist/spec/catalogs/narratives/scqa.json +55 -55
- package/dist/spec/catalogs/narratives/status-update.json +72 -72
- package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -85
- package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -61
- package/dist/spec/catalogs/narratives/survey-analysis.json +104 -104
- package/dist/spec/catalogs/narratives/survival-story.json +103 -103
- package/dist/spec/catalogs/narratives/transformation-arc.json +50 -50
- package/dist/spec/catalogs/narratives/trend-analysis.json +79 -79
- package/dist/spec/catalogs/narratives/underdog-victory.json +87 -87
- package/dist/spec/catalogs/narratives/venture-pitch.json +109 -109
- package/dist/spec/catalogs/narratives/weekly-progress.json +103 -103
- package/dist/spec/catalogs/purposes/align.json +16 -16
- package/dist/spec/catalogs/purposes/decide.json +16 -16
- package/dist/spec/catalogs/purposes/educate.json +16 -16
- package/dist/spec/catalogs/purposes/index.json +61 -61
- package/dist/spec/catalogs/purposes/inform.json +16 -16
- package/dist/spec/catalogs/purposes/persuade.json +16 -16
- package/dist/spec/catalogs/purposes/pitch.json +16 -16
- package/dist/spec/catalogs/purposes/plan.json +16 -16
- package/dist/spec/catalogs/purposes/report.json +16 -16
- package/dist/spec/catalogs/purposes/sell.json +16 -16
- package/dist/spec/catalogs/social-platforms/bluesky.json +14 -14
- package/dist/spec/catalogs/social-platforms/facebook.json +14 -14
- package/dist/spec/catalogs/social-platforms/github.json +15 -15
- package/dist/spec/catalogs/social-platforms/index.json +68 -68
- package/dist/spec/catalogs/social-platforms/instagram.json +13 -13
- package/dist/spec/catalogs/social-platforms/linkedin.json +15 -15
- package/dist/spec/catalogs/social-platforms/mastodon.json +14 -14
- package/dist/spec/catalogs/social-platforms/threads.json +13 -13
- package/dist/spec/catalogs/social-platforms/tiktok.json +14 -14
- package/dist/spec/catalogs/social-platforms/x.json +14 -14
- package/dist/spec/catalogs/social-platforms/youtube.json +14 -14
- package/dist/spec/catalogs/themes/bold.json +13 -13
- package/dist/spec/catalogs/themes/classic.json +13 -13
- package/dist/spec/catalogs/themes/dark.json +13 -13
- package/dist/spec/catalogs/themes/index.json +31 -31
- package/dist/spec/catalogs/themes/minimal.json +13 -13
- package/dist/spec/catalogs/tones/authoritative.json +31 -31
- package/dist/spec/catalogs/tones/casual.json +31 -31
- package/dist/spec/catalogs/tones/conversational.json +31 -31
- package/dist/spec/catalogs/tones/formal.json +31 -31
- package/dist/spec/catalogs/tones/index.json +49 -49
- package/dist/spec/catalogs/tones/inspirational.json +31 -31
- package/dist/spec/catalogs/tones/persuasive.json +32 -32
- package/dist/spec/catalogs/tones/technical.json +31 -31
- package/dist/spec/openapi.yaml +776 -776
- package/dist/spec/previews/layouts/action-plan.html +1 -0
- package/dist/spec/previews/layouts/agenda.html +1 -0
- package/dist/spec/previews/layouts/appendix-index.html +1 -0
- package/dist/spec/previews/layouts/architecture-stack.html +1 -0
- package/dist/spec/previews/layouts/assumptions-dependencies.html +1 -0
- package/dist/spec/previews/layouts/before-after.html +1 -0
- package/dist/spec/previews/layouts/benchmark-target-table.html +1 -0
- package/dist/spec/previews/layouts/bullet-list.html +1 -0
- package/dist/spec/previews/layouts/business-model-canvas.html +1 -0
- package/dist/spec/previews/layouts/capability-map.html +1 -0
- package/dist/spec/previews/layouts/case-study.html +1 -0
- package/dist/spec/previews/layouts/chapter-recap.html +1 -0
- package/dist/spec/previews/layouts/circular-lifecycle.html +1 -0
- package/dist/spec/previews/layouts/comparison.html +1 -0
- package/dist/spec/previews/layouts/competitive-landscape.html +1 -0
- package/dist/spec/previews/layouts/customer-journey.html +1 -0
- package/dist/spec/previews/layouts/customer-logos.html +1 -0
- package/dist/spec/previews/layouts/dashboard.html +1 -0
- package/dist/spec/previews/layouts/data-visualization.html +1 -0
- package/dist/spec/previews/layouts/decision-tree.html +1 -0
- package/dist/spec/previews/layouts/detailed-data-table.html +1 -0
- package/dist/spec/previews/layouts/ecosystem-map.html +1 -0
- package/dist/spec/previews/layouts/executive-decision.html +1 -0
- package/dist/spec/previews/layouts/executive-summary.html +1 -0
- package/dist/spec/previews/layouts/faq.html +1 -0
- package/dist/spec/previews/layouts/feature-comparison-matrix.html +1 -0
- package/dist/spec/previews/layouts/forecast-scenario.html +1 -0
- package/dist/spec/previews/layouts/funnel-pyramid.html +1 -0
- package/dist/spec/previews/layouts/gantt-project-plan.html +1 -0
- package/dist/spec/previews/layouts/geographic-map.html +1 -0
- package/dist/spec/previews/layouts/heatmap-cohort.html +1 -0
- package/dist/spec/previews/layouts/hub-and-spoke.html +1 -0
- package/dist/spec/previews/layouts/icon-grid.html +1 -0
- package/dist/spec/previews/layouts/image-focus.html +1 -0
- package/dist/spec/previews/layouts/index.json +357 -0
- package/dist/spec/previews/layouts/key-takeaway.html +1 -0
- package/dist/spec/previews/layouts/kpi-scorecard.html +1 -0
- package/dist/spec/previews/layouts/logic-tree.html +1 -0
- package/dist/spec/previews/layouts/market-size.html +1 -0
- package/dist/spec/previews/layouts/matrix-quadrant.html +1 -0
- package/dist/spec/previews/layouts/network-dependency-map.html +1 -0
- package/dist/spec/previews/layouts/one-column-explainer.html +1 -0
- package/dist/spec/previews/layouts/org-chart.html +1 -0
- package/dist/spec/previews/layouts/persona-grid.html +1 -0
- package/dist/spec/previews/layouts/photo-grid.html +1 -0
- package/dist/spec/previews/layouts/pricing-table.html +1 -0
- package/dist/spec/previews/layouts/process-flow.html +1 -0
- package/dist/spec/previews/layouts/product-feature.html +1 -0
- package/dist/spec/previews/layouts/pros-cons.html +1 -0
- package/dist/spec/previews/layouts/qa-discussion.html +1 -0
- package/dist/spec/previews/layouts/quote-highlight.html +1 -0
- package/dist/spec/previews/layouts/raci-matrix.html +1 -0
- package/dist/spec/previews/layouts/risk-heatmap.html +1 -0
- package/dist/spec/previews/layouts/roadmap.html +1 -0
- package/dist/spec/previews/layouts/screenshot-walkthrough.html +1 -0
- package/dist/spec/previews/layouts/section-divider.html +1 -0
- package/dist/spec/previews/layouts/single-message-statement.html +1 -0
- package/dist/spec/previews/layouts/stats-metrics.html +1 -0
- package/dist/spec/previews/layouts/status-rag.html +1 -0
- package/dist/spec/previews/layouts/swimlane-process.html +1 -0
- package/dist/spec/previews/layouts/swot-analysis.html +1 -0
- package/dist/spec/previews/layouts/team-bio.html +1 -0
- package/dist/spec/previews/layouts/testimonial-grid.html +1 -0
- package/dist/spec/previews/layouts/thank-you-cta.html +1 -0
- package/dist/spec/previews/layouts/three-column.html +1 -0
- package/dist/spec/previews/layouts/timeline.html +1 -0
- package/dist/spec/previews/layouts/title-slide.html +1 -0
- package/dist/spec/previews/layouts/two-column.html +1 -0
- package/dist/spec/previews/layouts/venn-overlap.html +1 -0
- package/dist/spec/previews/layouts/waterfall-bridge.html +1 -0
- package/dist/spec/previews/layouts/wheel-radial.html +1 -0
- package/dist/spec/reference/engine-defaults.json +35 -35
- package/dist/spec/schemas/audience.schema.json +156 -156
- package/dist/spec/schemas/chart-type.schema.json +537 -537
- package/dist/spec/schemas/color-scheme.schema.json +200 -200
- package/dist/spec/schemas/font-scheme.schema.json +174 -174
- package/dist/spec/schemas/language.schema.json +158 -158
- package/dist/spec/schemas/layout.schema.json +280 -280
- package/dist/spec/schemas/narrative.schema.json +207 -207
- package/dist/spec/schemas/opf.schema.json +2543 -2537
- package/dist/spec/schemas/purpose.schema.json +92 -92
- package/dist/spec/schemas/social-platform.schema.json +183 -184
- package/dist/spec/schemas/theme.schema.json +168 -168
- package/dist/spec/schemas/tone.schema.json +146 -146
- package/dist/spec-files.d.ts +2388 -0
- package/dist/spec-files.js +3349 -0
- package/dist/spec-files.js.map +1 -0
- package/dist/types.d.ts +5 -5
- package/dist/{validator-Be5EzqAt.d.ts → validator-MwlR2F56.d.ts} +22 -24
- package/dist/validator.d.ts +1 -1
- package/dist/validator.js +66 -48
- package/dist/validator.js.map +1 -1
- package/package.json +91 -80
package/dist/schemas.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
declare const presentation: {
|
|
2
2
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3
3
|
readonly $id: "https://openpresentation.org/schema/opf/v1";
|
|
4
|
-
readonly title: "
|
|
5
|
-
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design
|
|
4
|
+
readonly title: "Presentation";
|
|
5
|
+
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
|
|
6
6
|
readonly type: "object";
|
|
7
7
|
readonly required: ["slides"];
|
|
8
8
|
readonly additionalProperties: false;
|
|
@@ -15,11 +15,11 @@ declare const presentation: {
|
|
|
15
15
|
readonly name: {
|
|
16
16
|
readonly type: "string";
|
|
17
17
|
readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
|
|
18
|
-
readonly examples: ["Q4 2026 Business Review", "Series B Pitch
|
|
18
|
+
readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
|
|
19
19
|
};
|
|
20
20
|
readonly description: {
|
|
21
21
|
readonly type: "string";
|
|
22
|
-
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File
|
|
22
|
+
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
|
|
23
23
|
readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
|
|
24
24
|
};
|
|
25
25
|
readonly filename: {
|
|
@@ -65,17 +65,21 @@ declare const presentation: {
|
|
|
65
65
|
readonly examples: ["Bob Lee", ["Bob Lee", "Carla Diaz"]];
|
|
66
66
|
};
|
|
67
67
|
readonly audience: {
|
|
68
|
-
readonly
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
readonly
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
68
|
+
readonly oneOf: [{
|
|
69
|
+
readonly type: "string";
|
|
70
|
+
}, {
|
|
71
|
+
readonly type: "array";
|
|
72
|
+
readonly items: {
|
|
73
|
+
readonly oneOf: [{
|
|
74
|
+
readonly type: "string";
|
|
75
|
+
}, {
|
|
76
|
+
readonly $ref: "#/$defs/Audience";
|
|
77
|
+
}];
|
|
78
|
+
};
|
|
79
|
+
readonly minItems: 1;
|
|
80
|
+
}];
|
|
81
|
+
readonly description: "Intended audiences for the presentation. Accepts either:\n- A single string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An array of string shorthands and/or inline Audience objects for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
|
|
82
|
+
readonly examples: ["executives", "Biology Students and Wildlife Enthusiasts", ["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
79
83
|
readonly id: "executives";
|
|
80
84
|
readonly attentionBudgetMinutes: 20;
|
|
81
85
|
}, {
|
|
@@ -91,7 +95,7 @@ declare const presentation: {
|
|
|
91
95
|
}, {
|
|
92
96
|
readonly $ref: "#/$defs/Purpose";
|
|
93
97
|
}];
|
|
94
|
-
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[]
|
|
98
|
+
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
95
99
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
96
100
|
readonly id: "decide";
|
|
97
101
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -106,7 +110,7 @@ declare const presentation: {
|
|
|
106
110
|
}, {
|
|
107
111
|
readonly $ref: "#/$defs/Language";
|
|
108
112
|
}];
|
|
109
|
-
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[]
|
|
113
|
+
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
110
114
|
readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
|
|
111
115
|
readonly id: "english";
|
|
112
116
|
readonly bcp47: "en-US";
|
|
@@ -125,7 +129,7 @@ declare const presentation: {
|
|
|
125
129
|
}, {
|
|
126
130
|
readonly $ref: "#/$defs/Tone";
|
|
127
131
|
}];
|
|
128
|
-
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[]
|
|
132
|
+
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
129
133
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
130
134
|
readonly id: "formal";
|
|
131
135
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -170,7 +174,7 @@ declare const presentation: {
|
|
|
170
174
|
}, {
|
|
171
175
|
readonly $ref: "#/$defs/Narrative";
|
|
172
176
|
}];
|
|
173
|
-
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[]
|
|
177
|
+
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
|
|
174
178
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
175
179
|
readonly id: "custom-pitch";
|
|
176
180
|
readonly name: "Custom Pitch";
|
|
@@ -528,7 +532,7 @@ declare const presentation: {
|
|
|
528
532
|
};
|
|
529
533
|
readonly Organization: {
|
|
530
534
|
readonly type: "object";
|
|
531
|
-
readonly description: "An organization associated with the presentation
|
|
535
|
+
readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
|
|
532
536
|
readonly required: ["id", "name"];
|
|
533
537
|
readonly properties: {
|
|
534
538
|
readonly id: {
|
|
@@ -639,7 +643,7 @@ declare const presentation: {
|
|
|
639
643
|
};
|
|
640
644
|
readonly Socials: {
|
|
641
645
|
readonly type: "object";
|
|
642
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
646
|
+
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
|
|
643
647
|
readonly additionalProperties: {
|
|
644
648
|
readonly type: "string";
|
|
645
649
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -660,7 +664,7 @@ declare const presentation: {
|
|
|
660
664
|
};
|
|
661
665
|
readonly Narrative: {
|
|
662
666
|
readonly type: "object";
|
|
663
|
-
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure
|
|
667
|
+
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
|
|
664
668
|
readonly properties: {
|
|
665
669
|
readonly id: {
|
|
666
670
|
readonly type: "string";
|
|
@@ -671,7 +675,7 @@ declare const presentation: {
|
|
|
671
675
|
readonly name: {
|
|
672
676
|
readonly type: "string";
|
|
673
677
|
readonly description: "Human-readable narrative name.";
|
|
674
|
-
readonly examples: ["Classic Story", "Problem
|
|
678
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
675
679
|
};
|
|
676
680
|
readonly summary: {
|
|
677
681
|
readonly type: "string";
|
|
@@ -744,7 +748,7 @@ declare const presentation: {
|
|
|
744
748
|
};
|
|
745
749
|
readonly NarrativeBeat: {
|
|
746
750
|
readonly type: "object";
|
|
747
|
-
readonly description: "A single narrative beat
|
|
751
|
+
readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
|
|
748
752
|
readonly required: ["id", "name"];
|
|
749
753
|
readonly properties: {
|
|
750
754
|
readonly id: {
|
|
@@ -765,7 +769,7 @@ declare const presentation: {
|
|
|
765
769
|
};
|
|
766
770
|
readonly instructions: {
|
|
767
771
|
readonly type: "string";
|
|
768
|
-
readonly description: "Short author-facing instruction for the beat
|
|
772
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
769
773
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
770
774
|
};
|
|
771
775
|
readonly slideCount: {
|
|
@@ -780,7 +784,7 @@ declare const presentation: {
|
|
|
780
784
|
};
|
|
781
785
|
readonly layoutHint: {
|
|
782
786
|
readonly type: "string";
|
|
783
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
787
|
+
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
|
|
784
788
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
785
789
|
};
|
|
786
790
|
readonly thoughtCues: {
|
|
@@ -1192,12 +1196,12 @@ declare const presentation: {
|
|
|
1192
1196
|
};
|
|
1193
1197
|
readonly major: {
|
|
1194
1198
|
readonly type: "string";
|
|
1195
|
-
readonly description: "Heading (major) font family
|
|
1199
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
1196
1200
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
1197
1201
|
};
|
|
1198
1202
|
readonly minor: {
|
|
1199
1203
|
readonly type: "string";
|
|
1200
|
-
readonly description: "Body (minor) font family
|
|
1204
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
1201
1205
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
1202
1206
|
};
|
|
1203
1207
|
readonly type: {
|
|
@@ -1634,7 +1638,7 @@ declare const presentation: {
|
|
|
1634
1638
|
};
|
|
1635
1639
|
readonly layout: {
|
|
1636
1640
|
readonly type: "string";
|
|
1637
|
-
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[]
|
|
1641
|
+
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
1638
1642
|
readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
|
|
1639
1643
|
};
|
|
1640
1644
|
readonly title: {
|
|
@@ -1668,7 +1672,7 @@ declare const presentation: {
|
|
|
1668
1672
|
readonly items: {
|
|
1669
1673
|
readonly $ref: "#/$defs/ListItem";
|
|
1670
1674
|
};
|
|
1671
|
-
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'.";
|
|
1675
|
+
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for layout-agnostic blocks.";
|
|
1672
1676
|
};
|
|
1673
1677
|
readonly bullets: {
|
|
1674
1678
|
readonly type: "array";
|
|
@@ -1728,7 +1732,7 @@ declare const presentation: {
|
|
|
1728
1732
|
readonly items: {
|
|
1729
1733
|
readonly $ref: "#/$defs/ContentPayload";
|
|
1730
1734
|
};
|
|
1731
|
-
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified.";
|
|
1735
|
+
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for equivalent blocks.";
|
|
1732
1736
|
};
|
|
1733
1737
|
readonly design: {
|
|
1734
1738
|
readonly $ref: "#/$defs/Design";
|
|
@@ -2568,7 +2572,7 @@ declare const presentation: {
|
|
|
2568
2572
|
};
|
|
2569
2573
|
readonly Catalogs: {
|
|
2570
2574
|
readonly type: "object";
|
|
2571
|
-
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[]
|
|
2575
|
+
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
|
|
2572
2576
|
readonly properties: {
|
|
2573
2577
|
readonly narratives: {
|
|
2574
2578
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -2652,7 +2656,7 @@ declare const presentation: {
|
|
|
2652
2656
|
declare const audience: {
|
|
2653
2657
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2654
2658
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
2655
|
-
readonly title: "
|
|
2659
|
+
readonly title: "Audience";
|
|
2656
2660
|
readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
|
|
2657
2661
|
readonly type: "object";
|
|
2658
2662
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2753,7 +2757,7 @@ declare const audience: {
|
|
|
2753
2757
|
declare const purpose: {
|
|
2754
2758
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2755
2759
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
2756
|
-
readonly title: "
|
|
2760
|
+
readonly title: "Purpose";
|
|
2757
2761
|
readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
|
|
2758
2762
|
readonly type: "object";
|
|
2759
2763
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2841,7 +2845,7 @@ declare const purpose: {
|
|
|
2841
2845
|
declare const tone: {
|
|
2842
2846
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2843
2847
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
2844
|
-
readonly title: "
|
|
2848
|
+
readonly title: "Tone";
|
|
2845
2849
|
readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
|
|
2846
2850
|
readonly type: "object";
|
|
2847
2851
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2938,7 +2942,7 @@ declare const tone: {
|
|
|
2938
2942
|
declare const theme: {
|
|
2939
2943
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2940
2944
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
2941
|
-
readonly title: "
|
|
2945
|
+
readonly title: "Theme";
|
|
2942
2946
|
readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
|
|
2943
2947
|
readonly type: "object";
|
|
2944
2948
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -3047,7 +3051,7 @@ declare const theme: {
|
|
|
3047
3051
|
declare const layout: {
|
|
3048
3052
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3049
3053
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
3050
|
-
readonly title: "
|
|
3054
|
+
readonly title: "Slide Layout";
|
|
3051
3055
|
readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
|
|
3052
3056
|
readonly type: "object";
|
|
3053
3057
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -3211,7 +3215,7 @@ declare const layout: {
|
|
|
3211
3215
|
declare const chartType: {
|
|
3212
3216
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3213
3217
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
3214
|
-
readonly title: "
|
|
3218
|
+
readonly title: "Chart Type";
|
|
3215
3219
|
readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
|
|
3216
3220
|
readonly type: "object";
|
|
3217
3221
|
readonly additionalProperties: false;
|
|
@@ -3517,7 +3521,7 @@ declare const chartType: {
|
|
|
3517
3521
|
declare const narrative: {
|
|
3518
3522
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3519
3523
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
3520
|
-
readonly title: "
|
|
3524
|
+
readonly title: "Narrative Template";
|
|
3521
3525
|
readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
|
|
3522
3526
|
readonly type: "object";
|
|
3523
3527
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -3663,8 +3667,8 @@ declare const narrative: {
|
|
|
3663
3667
|
declare const socialPlatform: {
|
|
3664
3668
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3665
3669
|
readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
|
|
3666
|
-
readonly title: "
|
|
3667
|
-
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform
|
|
3670
|
+
readonly title: "Social Platform";
|
|
3671
|
+
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
|
|
3668
3672
|
readonly type: "object";
|
|
3669
3673
|
readonly required: ["$schema", "id", "name"];
|
|
3670
3674
|
readonly properties: {
|
|
@@ -3676,7 +3680,7 @@ declare const socialPlatform: {
|
|
|
3676
3680
|
readonly id: {
|
|
3677
3681
|
readonly type: "string";
|
|
3678
3682
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
3679
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
3683
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
3680
3684
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
3681
3685
|
};
|
|
3682
3686
|
readonly name: {
|
|
@@ -3686,7 +3690,7 @@ declare const socialPlatform: {
|
|
|
3686
3690
|
};
|
|
3687
3691
|
readonly summary: {
|
|
3688
3692
|
readonly type: "string";
|
|
3689
|
-
readonly description: "One-sentence positioning of the platform
|
|
3693
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
3690
3694
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
3691
3695
|
};
|
|
3692
3696
|
readonly description: {
|
|
@@ -3697,7 +3701,7 @@ declare const socialPlatform: {
|
|
|
3697
3701
|
readonly baseUrl: {
|
|
3698
3702
|
readonly type: "string";
|
|
3699
3703
|
readonly format: "uri";
|
|
3700
|
-
readonly description: "Canonical base URL of the platform
|
|
3704
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
3701
3705
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
3702
3706
|
};
|
|
3703
3707
|
readonly profileUrlPattern: {
|
|
@@ -3774,7 +3778,7 @@ declare const socialPlatform: {
|
|
|
3774
3778
|
declare const language: {
|
|
3775
3779
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3776
3780
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
3777
|
-
readonly title: "
|
|
3781
|
+
readonly title: "Language";
|
|
3778
3782
|
readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
|
|
3779
3783
|
readonly type: "object";
|
|
3780
3784
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -3873,7 +3877,7 @@ declare const language: {
|
|
|
3873
3877
|
declare const colorScheme: {
|
|
3874
3878
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3875
3879
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
3876
|
-
readonly title: "
|
|
3880
|
+
readonly title: "Color Scheme";
|
|
3877
3881
|
readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
|
|
3878
3882
|
readonly type: "object";
|
|
3879
3883
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -4001,7 +4005,7 @@ declare const colorScheme: {
|
|
|
4001
4005
|
declare const fontScheme: {
|
|
4002
4006
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
4003
4007
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
4004
|
-
readonly title: "
|
|
4008
|
+
readonly title: "Font Scheme";
|
|
4005
4009
|
readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
|
|
4006
4010
|
readonly type: "object";
|
|
4007
4011
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|
|
@@ -4108,8 +4112,8 @@ declare const schemas: {
|
|
|
4108
4112
|
readonly presentation: {
|
|
4109
4113
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
4110
4114
|
readonly $id: "https://openpresentation.org/schema/opf/v1";
|
|
4111
|
-
readonly title: "
|
|
4112
|
-
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design
|
|
4115
|
+
readonly title: "Presentation";
|
|
4116
|
+
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
|
|
4113
4117
|
readonly type: "object";
|
|
4114
4118
|
readonly required: ["slides"];
|
|
4115
4119
|
readonly additionalProperties: false;
|
|
@@ -4122,11 +4126,11 @@ declare const schemas: {
|
|
|
4122
4126
|
readonly name: {
|
|
4123
4127
|
readonly type: "string";
|
|
4124
4128
|
readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
|
|
4125
|
-
readonly examples: ["Q4 2026 Business Review", "Series B Pitch
|
|
4129
|
+
readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
|
|
4126
4130
|
};
|
|
4127
4131
|
readonly description: {
|
|
4128
4132
|
readonly type: "string";
|
|
4129
|
-
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File
|
|
4133
|
+
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
|
|
4130
4134
|
readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
|
|
4131
4135
|
};
|
|
4132
4136
|
readonly filename: {
|
|
@@ -4172,17 +4176,21 @@ declare const schemas: {
|
|
|
4172
4176
|
readonly examples: ["Bob Lee", ["Bob Lee", "Carla Diaz"]];
|
|
4173
4177
|
};
|
|
4174
4178
|
readonly audience: {
|
|
4175
|
-
readonly
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
readonly
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4179
|
+
readonly oneOf: [{
|
|
4180
|
+
readonly type: "string";
|
|
4181
|
+
}, {
|
|
4182
|
+
readonly type: "array";
|
|
4183
|
+
readonly items: {
|
|
4184
|
+
readonly oneOf: [{
|
|
4185
|
+
readonly type: "string";
|
|
4186
|
+
}, {
|
|
4187
|
+
readonly $ref: "#/$defs/Audience";
|
|
4188
|
+
}];
|
|
4189
|
+
};
|
|
4190
|
+
readonly minItems: 1;
|
|
4191
|
+
}];
|
|
4192
|
+
readonly description: "Intended audiences for the presentation. Accepts either:\n- A single string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An array of string shorthands and/or inline Audience objects for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
|
|
4193
|
+
readonly examples: ["executives", "Biology Students and Wildlife Enthusiasts", ["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
4186
4194
|
readonly id: "executives";
|
|
4187
4195
|
readonly attentionBudgetMinutes: 20;
|
|
4188
4196
|
}, {
|
|
@@ -4198,7 +4206,7 @@ declare const schemas: {
|
|
|
4198
4206
|
}, {
|
|
4199
4207
|
readonly $ref: "#/$defs/Purpose";
|
|
4200
4208
|
}];
|
|
4201
|
-
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[]
|
|
4209
|
+
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
4202
4210
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
4203
4211
|
readonly id: "decide";
|
|
4204
4212
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -4213,7 +4221,7 @@ declare const schemas: {
|
|
|
4213
4221
|
}, {
|
|
4214
4222
|
readonly $ref: "#/$defs/Language";
|
|
4215
4223
|
}];
|
|
4216
|
-
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[]
|
|
4224
|
+
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
4217
4225
|
readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
|
|
4218
4226
|
readonly id: "english";
|
|
4219
4227
|
readonly bcp47: "en-US";
|
|
@@ -4232,7 +4240,7 @@ declare const schemas: {
|
|
|
4232
4240
|
}, {
|
|
4233
4241
|
readonly $ref: "#/$defs/Tone";
|
|
4234
4242
|
}];
|
|
4235
|
-
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[]
|
|
4243
|
+
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
4236
4244
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
4237
4245
|
readonly id: "formal";
|
|
4238
4246
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -4277,7 +4285,7 @@ declare const schemas: {
|
|
|
4277
4285
|
}, {
|
|
4278
4286
|
readonly $ref: "#/$defs/Narrative";
|
|
4279
4287
|
}];
|
|
4280
|
-
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[]
|
|
4288
|
+
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
|
|
4281
4289
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
4282
4290
|
readonly id: "custom-pitch";
|
|
4283
4291
|
readonly name: "Custom Pitch";
|
|
@@ -4635,7 +4643,7 @@ declare const schemas: {
|
|
|
4635
4643
|
};
|
|
4636
4644
|
readonly Organization: {
|
|
4637
4645
|
readonly type: "object";
|
|
4638
|
-
readonly description: "An organization associated with the presentation
|
|
4646
|
+
readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
|
|
4639
4647
|
readonly required: ["id", "name"];
|
|
4640
4648
|
readonly properties: {
|
|
4641
4649
|
readonly id: {
|
|
@@ -4746,7 +4754,7 @@ declare const schemas: {
|
|
|
4746
4754
|
};
|
|
4747
4755
|
readonly Socials: {
|
|
4748
4756
|
readonly type: "object";
|
|
4749
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
4757
|
+
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
|
|
4750
4758
|
readonly additionalProperties: {
|
|
4751
4759
|
readonly type: "string";
|
|
4752
4760
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -4767,7 +4775,7 @@ declare const schemas: {
|
|
|
4767
4775
|
};
|
|
4768
4776
|
readonly Narrative: {
|
|
4769
4777
|
readonly type: "object";
|
|
4770
|
-
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure
|
|
4778
|
+
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
|
|
4771
4779
|
readonly properties: {
|
|
4772
4780
|
readonly id: {
|
|
4773
4781
|
readonly type: "string";
|
|
@@ -4778,7 +4786,7 @@ declare const schemas: {
|
|
|
4778
4786
|
readonly name: {
|
|
4779
4787
|
readonly type: "string";
|
|
4780
4788
|
readonly description: "Human-readable narrative name.";
|
|
4781
|
-
readonly examples: ["Classic Story", "Problem
|
|
4789
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
4782
4790
|
};
|
|
4783
4791
|
readonly summary: {
|
|
4784
4792
|
readonly type: "string";
|
|
@@ -4851,7 +4859,7 @@ declare const schemas: {
|
|
|
4851
4859
|
};
|
|
4852
4860
|
readonly NarrativeBeat: {
|
|
4853
4861
|
readonly type: "object";
|
|
4854
|
-
readonly description: "A single narrative beat
|
|
4862
|
+
readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
|
|
4855
4863
|
readonly required: ["id", "name"];
|
|
4856
4864
|
readonly properties: {
|
|
4857
4865
|
readonly id: {
|
|
@@ -4872,7 +4880,7 @@ declare const schemas: {
|
|
|
4872
4880
|
};
|
|
4873
4881
|
readonly instructions: {
|
|
4874
4882
|
readonly type: "string";
|
|
4875
|
-
readonly description: "Short author-facing instruction for the beat
|
|
4883
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
4876
4884
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
4877
4885
|
};
|
|
4878
4886
|
readonly slideCount: {
|
|
@@ -4887,7 +4895,7 @@ declare const schemas: {
|
|
|
4887
4895
|
};
|
|
4888
4896
|
readonly layoutHint: {
|
|
4889
4897
|
readonly type: "string";
|
|
4890
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
4898
|
+
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
|
|
4891
4899
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
4892
4900
|
};
|
|
4893
4901
|
readonly thoughtCues: {
|
|
@@ -5299,12 +5307,12 @@ declare const schemas: {
|
|
|
5299
5307
|
};
|
|
5300
5308
|
readonly major: {
|
|
5301
5309
|
readonly type: "string";
|
|
5302
|
-
readonly description: "Heading (major) font family
|
|
5310
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
5303
5311
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
5304
5312
|
};
|
|
5305
5313
|
readonly minor: {
|
|
5306
5314
|
readonly type: "string";
|
|
5307
|
-
readonly description: "Body (minor) font family
|
|
5315
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
5308
5316
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
5309
5317
|
};
|
|
5310
5318
|
readonly type: {
|
|
@@ -5741,7 +5749,7 @@ declare const schemas: {
|
|
|
5741
5749
|
};
|
|
5742
5750
|
readonly layout: {
|
|
5743
5751
|
readonly type: "string";
|
|
5744
|
-
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[]
|
|
5752
|
+
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
5745
5753
|
readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
|
|
5746
5754
|
};
|
|
5747
5755
|
readonly title: {
|
|
@@ -5775,7 +5783,7 @@ declare const schemas: {
|
|
|
5775
5783
|
readonly items: {
|
|
5776
5784
|
readonly $ref: "#/$defs/ListItem";
|
|
5777
5785
|
};
|
|
5778
|
-
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'.";
|
|
5786
|
+
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for layout-agnostic blocks.";
|
|
5779
5787
|
};
|
|
5780
5788
|
readonly bullets: {
|
|
5781
5789
|
readonly type: "array";
|
|
@@ -5835,7 +5843,7 @@ declare const schemas: {
|
|
|
5835
5843
|
readonly items: {
|
|
5836
5844
|
readonly $ref: "#/$defs/ContentPayload";
|
|
5837
5845
|
};
|
|
5838
|
-
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified.";
|
|
5846
|
+
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for equivalent blocks.";
|
|
5839
5847
|
};
|
|
5840
5848
|
readonly design: {
|
|
5841
5849
|
readonly $ref: "#/$defs/Design";
|
|
@@ -6675,7 +6683,7 @@ declare const schemas: {
|
|
|
6675
6683
|
};
|
|
6676
6684
|
readonly Catalogs: {
|
|
6677
6685
|
readonly type: "object";
|
|
6678
|
-
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[]
|
|
6686
|
+
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
|
|
6679
6687
|
readonly properties: {
|
|
6680
6688
|
readonly narratives: {
|
|
6681
6689
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -6759,7 +6767,7 @@ declare const schemas: {
|
|
|
6759
6767
|
readonly audience: {
|
|
6760
6768
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6761
6769
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
6762
|
-
readonly title: "
|
|
6770
|
+
readonly title: "Audience";
|
|
6763
6771
|
readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
|
|
6764
6772
|
readonly type: "object";
|
|
6765
6773
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -6860,7 +6868,7 @@ declare const schemas: {
|
|
|
6860
6868
|
readonly purpose: {
|
|
6861
6869
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6862
6870
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
6863
|
-
readonly title: "
|
|
6871
|
+
readonly title: "Purpose";
|
|
6864
6872
|
readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
|
|
6865
6873
|
readonly type: "object";
|
|
6866
6874
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -6948,7 +6956,7 @@ declare const schemas: {
|
|
|
6948
6956
|
readonly tone: {
|
|
6949
6957
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6950
6958
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
6951
|
-
readonly title: "
|
|
6959
|
+
readonly title: "Tone";
|
|
6952
6960
|
readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
|
|
6953
6961
|
readonly type: "object";
|
|
6954
6962
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7045,7 +7053,7 @@ declare const schemas: {
|
|
|
7045
7053
|
readonly theme: {
|
|
7046
7054
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7047
7055
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
7048
|
-
readonly title: "
|
|
7056
|
+
readonly title: "Theme";
|
|
7049
7057
|
readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
|
|
7050
7058
|
readonly type: "object";
|
|
7051
7059
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7154,7 +7162,7 @@ declare const schemas: {
|
|
|
7154
7162
|
readonly layout: {
|
|
7155
7163
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7156
7164
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
7157
|
-
readonly title: "
|
|
7165
|
+
readonly title: "Slide Layout";
|
|
7158
7166
|
readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
|
|
7159
7167
|
readonly type: "object";
|
|
7160
7168
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7318,7 +7326,7 @@ declare const schemas: {
|
|
|
7318
7326
|
readonly chartType: {
|
|
7319
7327
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7320
7328
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
7321
|
-
readonly title: "
|
|
7329
|
+
readonly title: "Chart Type";
|
|
7322
7330
|
readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
|
|
7323
7331
|
readonly type: "object";
|
|
7324
7332
|
readonly additionalProperties: false;
|
|
@@ -7624,7 +7632,7 @@ declare const schemas: {
|
|
|
7624
7632
|
readonly narrative: {
|
|
7625
7633
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7626
7634
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
7627
|
-
readonly title: "
|
|
7635
|
+
readonly title: "Narrative Template";
|
|
7628
7636
|
readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
|
|
7629
7637
|
readonly type: "object";
|
|
7630
7638
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -7770,8 +7778,8 @@ declare const schemas: {
|
|
|
7770
7778
|
readonly socialPlatform: {
|
|
7771
7779
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7772
7780
|
readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
|
|
7773
|
-
readonly title: "
|
|
7774
|
-
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform
|
|
7781
|
+
readonly title: "Social Platform";
|
|
7782
|
+
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
|
|
7775
7783
|
readonly type: "object";
|
|
7776
7784
|
readonly required: ["$schema", "id", "name"];
|
|
7777
7785
|
readonly properties: {
|
|
@@ -7783,7 +7791,7 @@ declare const schemas: {
|
|
|
7783
7791
|
readonly id: {
|
|
7784
7792
|
readonly type: "string";
|
|
7785
7793
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
7786
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
7794
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
7787
7795
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
7788
7796
|
};
|
|
7789
7797
|
readonly name: {
|
|
@@ -7793,7 +7801,7 @@ declare const schemas: {
|
|
|
7793
7801
|
};
|
|
7794
7802
|
readonly summary: {
|
|
7795
7803
|
readonly type: "string";
|
|
7796
|
-
readonly description: "One-sentence positioning of the platform
|
|
7804
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
7797
7805
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
7798
7806
|
};
|
|
7799
7807
|
readonly description: {
|
|
@@ -7804,7 +7812,7 @@ declare const schemas: {
|
|
|
7804
7812
|
readonly baseUrl: {
|
|
7805
7813
|
readonly type: "string";
|
|
7806
7814
|
readonly format: "uri";
|
|
7807
|
-
readonly description: "Canonical base URL of the platform
|
|
7815
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
7808
7816
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
7809
7817
|
};
|
|
7810
7818
|
readonly profileUrlPattern: {
|
|
@@ -7881,7 +7889,7 @@ declare const schemas: {
|
|
|
7881
7889
|
readonly language: {
|
|
7882
7890
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7883
7891
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
7884
|
-
readonly title: "
|
|
7892
|
+
readonly title: "Language";
|
|
7885
7893
|
readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
|
|
7886
7894
|
readonly type: "object";
|
|
7887
7895
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -7980,7 +7988,7 @@ declare const schemas: {
|
|
|
7980
7988
|
readonly colorScheme: {
|
|
7981
7989
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7982
7990
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
7983
|
-
readonly title: "
|
|
7991
|
+
readonly title: "Color Scheme";
|
|
7984
7992
|
readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
|
|
7985
7993
|
readonly type: "object";
|
|
7986
7994
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -8108,7 +8116,7 @@ declare const schemas: {
|
|
|
8108
8116
|
readonly fontScheme: {
|
|
8109
8117
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
8110
8118
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
8111
|
-
readonly title: "
|
|
8119
|
+
readonly title: "Font Scheme";
|
|
8112
8120
|
readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
|
|
8113
8121
|
readonly type: "object";
|
|
8114
8122
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|
|
@@ -8219,8 +8227,8 @@ declare const schemaEntries: readonly [{
|
|
|
8219
8227
|
readonly schema: {
|
|
8220
8228
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
8221
8229
|
readonly $id: "https://openpresentation.org/schema/opf/v1";
|
|
8222
|
-
readonly title: "
|
|
8223
|
-
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design
|
|
8230
|
+
readonly title: "Presentation";
|
|
8231
|
+
readonly description: "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document → 'catalogs.<kind>.source' on the document → engine defaults → the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.";
|
|
8224
8232
|
readonly type: "object";
|
|
8225
8233
|
readonly required: ["slides"];
|
|
8226
8234
|
readonly additionalProperties: false;
|
|
@@ -8233,11 +8241,11 @@ declare const schemaEntries: readonly [{
|
|
|
8233
8241
|
readonly name: {
|
|
8234
8242
|
readonly type: "string";
|
|
8235
8243
|
readonly description: "Display name of the presentation for GUI/TUI lists, library/search indexing, OS-level metadata, and default export filenames. This is deck identity, not slide content. Use slides[].title and slides[].subtitle for text that should appear on presented slides.";
|
|
8236
|
-
readonly examples: ["Q4 2026 Business Review", "Series B Pitch
|
|
8244
|
+
readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
|
|
8237
8245
|
};
|
|
8238
8246
|
readonly description: {
|
|
8239
8247
|
readonly type: "string";
|
|
8240
|
-
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File
|
|
8248
|
+
readonly description: "Free-form prose describing what this presentation is about. Used by agents and humans as a deck-level summary; complements purpose (the goal) and narrative (the structured storyline). Round-trips to OOXML 'docProps/core.xml' as '<dc:description>' (PowerPoint surfaces this as the 'Comments' field in File → Properties).";
|
|
8241
8249
|
readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
|
|
8242
8250
|
};
|
|
8243
8251
|
readonly filename: {
|
|
@@ -8283,17 +8291,21 @@ declare const schemaEntries: readonly [{
|
|
|
8283
8291
|
readonly examples: ["Bob Lee", ["Bob Lee", "Carla Diaz"]];
|
|
8284
8292
|
};
|
|
8285
8293
|
readonly audience: {
|
|
8286
|
-
readonly
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
8290
|
-
|
|
8291
|
-
readonly
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
|
|
8295
|
-
|
|
8296
|
-
|
|
8294
|
+
readonly oneOf: [{
|
|
8295
|
+
readonly type: "string";
|
|
8296
|
+
}, {
|
|
8297
|
+
readonly type: "array";
|
|
8298
|
+
readonly items: {
|
|
8299
|
+
readonly oneOf: [{
|
|
8300
|
+
readonly type: "string";
|
|
8301
|
+
}, {
|
|
8302
|
+
readonly $ref: "#/$defs/Audience";
|
|
8303
|
+
}];
|
|
8304
|
+
};
|
|
8305
|
+
readonly minItems: 1;
|
|
8306
|
+
}];
|
|
8307
|
+
readonly description: "Intended audiences for the presentation. Accepts either:\n- A single string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An array of string shorthands and/or inline Audience objects for custom audience metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-audience/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.audiences.records[] → catalogs.audiences.source → default catalog at https://www.pptx.gallery/audiences.";
|
|
8308
|
+
readonly examples: ["executives", "Biology Students and Wildlife Enthusiasts", ["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
8297
8309
|
readonly id: "executives";
|
|
8298
8310
|
readonly attentionBudgetMinutes: 20;
|
|
8299
8311
|
}, {
|
|
@@ -8309,7 +8321,7 @@ declare const schemaEntries: readonly [{
|
|
|
8309
8321
|
}, {
|
|
8310
8322
|
readonly $ref: "#/$defs/Purpose";
|
|
8311
8323
|
}];
|
|
8312
|
-
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[]
|
|
8324
|
+
readonly description: "Primary goal of the presentation. Accepts either:\n- A string shorthand: free-form goal ('Raise a Series B round of $30M'), a purposes catalog id ('decide', 'align'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Purpose object for custom purpose metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-purpose/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.purposes.records[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
8313
8325
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
8314
8326
|
readonly id: "decide";
|
|
8315
8327
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -8324,7 +8336,7 @@ declare const schemaEntries: readonly [{
|
|
|
8324
8336
|
}, {
|
|
8325
8337
|
readonly $ref: "#/$defs/Language";
|
|
8326
8338
|
}];
|
|
8327
|
-
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[]
|
|
8339
|
+
readonly description: "Language for the presentation content. Accepts either:\n- A string shorthand: a BCP-47 language tag ('en-US', 'en-GB', 'ja-JP', 'fr'), a languages catalog id ('english', 'japanese'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Language object for custom language metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-language/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.languages.records[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
8328
8340
|
readonly examples: ["en-US", "en-GB", "es-MX", "ja-JP", "fr", "english", "japanese", "https://acme.com/decks/languages/en-acme.json", "pkg:@acme/decks/languages/en-acme", {
|
|
8329
8341
|
readonly id: "english";
|
|
8330
8342
|
readonly bcp47: "en-US";
|
|
@@ -8343,7 +8355,7 @@ declare const schemaEntries: readonly [{
|
|
|
8343
8355
|
}, {
|
|
8344
8356
|
readonly $ref: "#/$defs/Tone";
|
|
8345
8357
|
}];
|
|
8346
|
-
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[]
|
|
8358
|
+
readonly description: "Desired tone for the presentation. Accepts either:\n- A string shorthand: a tones catalog id ('formal'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Tone object for custom tone metadata or catalog-backed overrides. Object form mirrors https://openpresentation.org/schema/opf-tone/v1 without '$schema'.\n\nResolution order for catalog ids and references: inline catalogs.tones.records[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
8347
8359
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
8348
8360
|
readonly id: "formal";
|
|
8349
8361
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -8388,7 +8400,7 @@ declare const schemaEntries: readonly [{
|
|
|
8388
8400
|
}, {
|
|
8389
8401
|
readonly $ref: "#/$defs/Narrative";
|
|
8390
8402
|
}];
|
|
8391
|
-
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[]
|
|
8403
|
+
readonly description: "Structured storyline describing the deck's arc and beats. Resolves to the 'id' of a 'narratives' catalog record.\n\nAccepts two forms:\n- String shorthand for the common case: 'narrative = \"classic-story\"'. Accepts a bare id (lowercase kebab-case), an HTTPS URL pointing at a record file, or a 'pkg:' reference to a locally-installed package.\n- Object form for inline overrides or fully custom narratives: 'narrative = { id: \"classic-story\", beats: [...] }'. The object shape mirrors https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nResolution order: inline catalogs.narratives.records[] → catalogs.narratives.source → default catalog at https://www.pptx.gallery/narratives. Unknown ids produce a validation warning, not an error.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside the narrative object.";
|
|
8392
8404
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
8393
8405
|
readonly id: "custom-pitch";
|
|
8394
8406
|
readonly name: "Custom Pitch";
|
|
@@ -8746,7 +8758,7 @@ declare const schemaEntries: readonly [{
|
|
|
8746
8758
|
};
|
|
8747
8759
|
readonly Organization: {
|
|
8748
8760
|
readonly type: "object";
|
|
8749
|
-
readonly description: "An organization associated with the presentation
|
|
8761
|
+
readonly description: "An organization associated with the presentation — typically the presenting company, but also hosts, partners, clients, or sponsors. Surfaced on cover slides, footers, and brand bars; the primary organization's logo is the default deck logo unless overridden by design.logo.";
|
|
8750
8762
|
readonly required: ["id", "name"];
|
|
8751
8763
|
readonly properties: {
|
|
8752
8764
|
readonly id: {
|
|
@@ -8857,7 +8869,7 @@ declare const schemaEntries: readonly [{
|
|
|
8857
8869
|
};
|
|
8858
8870
|
readonly Socials: {
|
|
8859
8871
|
readonly type: "object";
|
|
8860
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
8872
|
+
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string — either a full URL or a platform handle (e.g., '@acme'). The catalog record for each platform carries the URL pattern, handle prefix, brand color, and themed icons used by renderers.\n\nKeys resolve to the 'id' of a 'socialPlatforms' catalog record. Resolution order: inline catalogs.socialPlatforms.records[] → catalogs.socialPlatforms.source → default catalog at https://www.pptx.gallery/social-platforms. Unknown platform keys render with engine fallbacks (the raw value as text). Used both for organization and speaker records.";
|
|
8861
8873
|
readonly additionalProperties: {
|
|
8862
8874
|
readonly type: "string";
|
|
8863
8875
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -8878,7 +8890,7 @@ declare const schemaEntries: readonly [{
|
|
|
8878
8890
|
};
|
|
8879
8891
|
readonly Narrative: {
|
|
8880
8892
|
readonly type: "object";
|
|
8881
|
-
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure
|
|
8893
|
+
readonly description: "Structured storyline used by AI to shape generated content. Mirrors the OPF Narrative Template record at https://openpresentation.org/schema/opf-narrative/v1 (sans '$schema'), so a library record and an inline narrative are interchangeable.\n\nNarrative declares the deck's intended story arc; slides may opt into beats via Slide.beat. The narrative does not constrain slide structure — validators warn on drift (orphan slides, unused beats) but never error. Slides are the source of truth; narrative is intent that travels with the deck.\n\nWhen 'id' matches a record in the resolved 'narratives' catalog, the inline fields override matching fields on the catalog record (beats merge by beat 'id'). When 'id' doesn't match, this object defines a fully custom inline narrative.\n\nDeck-level concerns that aren't part of the storyline (audience, tone, takeaway, duration) live as siblings on the presentation root rather than inside this object.";
|
|
8882
8894
|
readonly properties: {
|
|
8883
8895
|
readonly id: {
|
|
8884
8896
|
readonly type: "string";
|
|
@@ -8889,7 +8901,7 @@ declare const schemaEntries: readonly [{
|
|
|
8889
8901
|
readonly name: {
|
|
8890
8902
|
readonly type: "string";
|
|
8891
8903
|
readonly description: "Human-readable narrative name.";
|
|
8892
|
-
readonly examples: ["Classic Story", "Problem
|
|
8904
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
8893
8905
|
};
|
|
8894
8906
|
readonly summary: {
|
|
8895
8907
|
readonly type: "string";
|
|
@@ -8962,7 +8974,7 @@ declare const schemaEntries: readonly [{
|
|
|
8962
8974
|
};
|
|
8963
8975
|
readonly NarrativeBeat: {
|
|
8964
8976
|
readonly type: "object";
|
|
8965
|
-
readonly description: "A single narrative beat
|
|
8977
|
+
readonly description: "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose (e.g. 'hook', 'problem', 'evidence', 'ask'). Slides reference beats via Slide.beat. Beats may also carry slide-blueprint hints (slideType, layoutHint, thoughtCues, instructions) that guide the assigned slide.\n\nMirrors the Beat definition in narrative.schema.json (https://openpresentation.org/schema/opf-narrative/v1) so library entries and inline OPF beats are interchangeable.";
|
|
8966
8978
|
readonly required: ["id", "name"];
|
|
8967
8979
|
readonly properties: {
|
|
8968
8980
|
readonly id: {
|
|
@@ -8983,7 +8995,7 @@ declare const schemaEntries: readonly [{
|
|
|
8983
8995
|
};
|
|
8984
8996
|
readonly instructions: {
|
|
8985
8997
|
readonly type: "string";
|
|
8986
|
-
readonly description: "Short author-facing instruction for the beat
|
|
8998
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
8987
8999
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
8988
9000
|
};
|
|
8989
9001
|
readonly slideCount: {
|
|
@@ -8998,7 +9010,7 @@ declare const schemaEntries: readonly [{
|
|
|
8998
9010
|
};
|
|
8999
9011
|
readonly layoutHint: {
|
|
9000
9012
|
readonly type: "string";
|
|
9001
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
9013
|
+
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.";
|
|
9002
9014
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
9003
9015
|
};
|
|
9004
9016
|
readonly thoughtCues: {
|
|
@@ -9410,12 +9422,12 @@ declare const schemaEntries: readonly [{
|
|
|
9410
9422
|
};
|
|
9411
9423
|
readonly major: {
|
|
9412
9424
|
readonly type: "string";
|
|
9413
|
-
readonly description: "Heading (major) font family
|
|
9425
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
9414
9426
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
9415
9427
|
};
|
|
9416
9428
|
readonly minor: {
|
|
9417
9429
|
readonly type: "string";
|
|
9418
|
-
readonly description: "Body (minor) font family
|
|
9430
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
9419
9431
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
9420
9432
|
};
|
|
9421
9433
|
readonly type: {
|
|
@@ -9852,7 +9864,7 @@ declare const schemaEntries: readonly [{
|
|
|
9852
9864
|
};
|
|
9853
9865
|
readonly layout: {
|
|
9854
9866
|
readonly type: "string";
|
|
9855
|
-
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[]
|
|
9867
|
+
readonly description: "Optional slide layout reference. Resolves to the 'id' of a 'layouts' catalog record. When omitted, engines infer a layout from the slide's root payload or promoted region keys. Accepts a bare id (lowercase kebab-case, e.g. 'title-subtitle'), an HTTPS URL pointing at a record file, or a 'pkg:' reference. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.\n\nResolution order: inline catalogs.layouts.records[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
9856
9868
|
readonly examples: ["title", "title-subtitle", "text-2x", "chart-3x", "image-bleed", "blank", "https://acme.com/decks/layouts/cover.json", "pkg:@acme/decks/layouts/cover"];
|
|
9857
9869
|
};
|
|
9858
9870
|
readonly title: {
|
|
@@ -9886,7 +9898,7 @@ declare const schemaEntries: readonly [{
|
|
|
9886
9898
|
readonly items: {
|
|
9887
9899
|
readonly $ref: "#/$defs/ListItem";
|
|
9888
9900
|
};
|
|
9889
|
-
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'.";
|
|
9901
|
+
readonly description: "Full-slide generic list payload. Presence of this field infers type 'list'. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for layout-agnostic blocks.";
|
|
9890
9902
|
};
|
|
9891
9903
|
readonly bullets: {
|
|
9892
9904
|
readonly type: "array";
|
|
@@ -9946,7 +9958,7 @@ declare const schemaEntries: readonly [{
|
|
|
9946
9958
|
readonly items: {
|
|
9947
9959
|
readonly $ref: "#/$defs/ContentPayload";
|
|
9948
9960
|
};
|
|
9949
|
-
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified.";
|
|
9961
|
+
readonly description: "Layout-agnostic content blocks rendered together as a composed payload when exact placement is unspecified. At slide root, multiple content payload kinds with no explicit type, blocks, or regions are accepted as shorthand for equivalent blocks.";
|
|
9950
9962
|
};
|
|
9951
9963
|
readonly design: {
|
|
9952
9964
|
readonly $ref: "#/$defs/Design";
|
|
@@ -10786,7 +10798,7 @@ declare const schemaEntries: readonly [{
|
|
|
10786
10798
|
};
|
|
10787
10799
|
readonly Catalogs: {
|
|
10788
10800
|
readonly type: "object";
|
|
10789
|
-
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[]
|
|
10801
|
+
readonly description: "Catalog overrides for the in-document references. Every property is optional. The default catalog for a kind lives at https://www.pptx.gallery/<kind> (e.g. https://www.pptx.gallery/narratives, https://www.pptx.gallery/themes). For each kind, declaring a 'source' replaces the default registry and/or 'records' adds inline records that take precedence over anything fetched from a source.\n\nResolution order for any reference (e.g. narrative, design.theme): inline catalogs.<kind>.records[] → catalogs.<kind>.source → default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. References that are themselves URLs or 'pkg:' references skip the catalog lookup and resolve directly.";
|
|
10790
10802
|
readonly properties: {
|
|
10791
10803
|
readonly narratives: {
|
|
10792
10804
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -10873,7 +10885,7 @@ declare const schemaEntries: readonly [{
|
|
|
10873
10885
|
readonly schema: {
|
|
10874
10886
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
10875
10887
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
10876
|
-
readonly title: "
|
|
10888
|
+
readonly title: "Audience";
|
|
10877
10889
|
readonly description: "Schema for audience records in the pptx.gallery library. Each record names an audience archetype (e.g. 'executives', 'engineering-team', 'investors') and carries seniority, technical-fluency, decision-power, and attention-budget hints used by AI-driven generation. Audiences are referenced from OPF documents via audience; the engine resolves the reference against catalogs.audiences (inline) → catalogs.audiences.source → the default catalog at https://www.pptx.gallery/audiences. The audience field also accepts free-form strings; this catalog is for engine-aware audience archetypes that carry generation hints.";
|
|
10878
10890
|
readonly type: "object";
|
|
10879
10891
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -10977,7 +10989,7 @@ declare const schemaEntries: readonly [{
|
|
|
10977
10989
|
readonly schema: {
|
|
10978
10990
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
10979
10991
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
10980
|
-
readonly title: "
|
|
10992
|
+
readonly title: "Purpose";
|
|
10981
10993
|
readonly description: "Schema for purpose records in the pptx.gallery library. Each record names a presentation objective such as informing, aligning, persuading, driving a decision, or selling. Purposes are referenced from OPF documents via purpose; the engine resolves the reference against catalogs.purposes (inline) → catalogs.purposes.source → the default catalog at https://www.pptx.gallery/purposes. The purpose field also accepts free-form strings and inline Purpose objects.";
|
|
10982
10994
|
readonly type: "object";
|
|
10983
10995
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11068,7 +11080,7 @@ declare const schemaEntries: readonly [{
|
|
|
11068
11080
|
readonly schema: {
|
|
11069
11081
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11070
11082
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
11071
|
-
readonly title: "
|
|
11083
|
+
readonly title: "Tone";
|
|
11072
11084
|
readonly description: "Schema for tone records in the pptx.gallery library. Each record names a presentation tone (e.g. 'formal', 'casual', 'inspirational') and carries voice cues, anti-patterns, and sample phrases that AI-driven generation uses to shape output. Tones are referenced from OPF documents via tone; the engine resolves the reference against catalogs.tones (inline) → catalogs.tones.source → the default catalog at https://www.pptx.gallery/tones.";
|
|
11073
11085
|
readonly type: "object";
|
|
11074
11086
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11168,7 +11180,7 @@ declare const schemaEntries: readonly [{
|
|
|
11168
11180
|
readonly schema: {
|
|
11169
11181
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11170
11182
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
11171
|
-
readonly title: "
|
|
11183
|
+
readonly title: "Theme";
|
|
11172
11184
|
readonly description: "Schema for theme records in the pptx.gallery library. Each theme is a small, named bundle that pairs a color scheme, a font scheme, a default theme-controlled background, and a slide size. Themes are referenced from OPF documents via design.theme or design.theme.id; the engine resolves the reference against catalogs.themes (inline) → catalogs.themes.source → the default catalog at https://www.pptx.gallery/themes. Inline overrides on design.colorScheme / design.fontScheme / design.background / design.dimensions take precedence over a resolved theme.";
|
|
11173
11185
|
readonly type: "object";
|
|
11174
11186
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11280,7 +11292,7 @@ declare const schemaEntries: readonly [{
|
|
|
11280
11292
|
readonly schema: {
|
|
11281
11293
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11282
11294
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
11283
|
-
readonly title: "
|
|
11295
|
+
readonly title: "Slide Layout";
|
|
11284
11296
|
readonly description: "Schema for slide-layout records in the pptx.gallery library. Each record describes a semantic slide layout — what regions it exposes and what content kinds those regions are intended to hold. Layouts are referenced from OPF documents via Slide.layout; the engine resolves the reference against catalogs.layouts (inline) → catalogs.layouts.source → the default catalog at https://www.pptx.gallery/layouts. Free-form custom layout names that don't resolve through any catalog fall through to engine-defined layouts.";
|
|
11285
11297
|
readonly type: "object";
|
|
11286
11298
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11447,7 +11459,7 @@ declare const schemaEntries: readonly [{
|
|
|
11447
11459
|
readonly schema: {
|
|
11448
11460
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11449
11461
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
11450
|
-
readonly title: "
|
|
11462
|
+
readonly title: "Chart Type";
|
|
11451
11463
|
readonly description: "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.";
|
|
11452
11464
|
readonly type: "object";
|
|
11453
11465
|
readonly additionalProperties: false;
|
|
@@ -11756,7 +11768,7 @@ declare const schemaEntries: readonly [{
|
|
|
11756
11768
|
readonly schema: {
|
|
11757
11769
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11758
11770
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
11759
|
-
readonly title: "
|
|
11771
|
+
readonly title: "Narrative Template";
|
|
11760
11772
|
readonly description: "Schema for narrative template files in the openpresentation.org catalog. Each template describes a named story arc (e.g. 'problem-solution', 'scqa') as an ordered list of beats. Templates are referenced from OPF documents via narrative — either as a bare id string (e.g. 'classic-story') or as an inline object whose shape matches this schema (sans '$schema').";
|
|
11761
11773
|
readonly type: "object";
|
|
11762
11774
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -11905,8 +11917,8 @@ declare const schemaEntries: readonly [{
|
|
|
11905
11917
|
readonly schema: {
|
|
11906
11918
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11907
11919
|
readonly $id: "https://openpresentation.org/schema/opf-social-platform/v1";
|
|
11908
|
-
readonly title: "
|
|
11909
|
-
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform
|
|
11920
|
+
readonly title: "Social Platform";
|
|
11921
|
+
readonly description: "Schema for social-platform records in the pptx.gallery library. Each record describes a single social-media platform — its base URL, profile-URL pattern, handle prefix, brand color, and themed icons. Records are referenced from OPF documents indirectly: the property keys of any Socials object (Organization.socials, Speaker.socials) match record ids, and renderers use the catalog record to format URLs and pick icons. The engine resolves references against catalogs.socialPlatforms (inline) → catalogs.socialPlatforms.source → the default catalog at https://www.pptx.gallery/social-platforms.";
|
|
11910
11922
|
readonly type: "object";
|
|
11911
11923
|
readonly required: ["$schema", "id", "name"];
|
|
11912
11924
|
readonly properties: {
|
|
@@ -11918,7 +11930,7 @@ declare const schemaEntries: readonly [{
|
|
|
11918
11930
|
readonly id: {
|
|
11919
11931
|
readonly type: "string";
|
|
11920
11932
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
11921
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
11933
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
11922
11934
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
11923
11935
|
};
|
|
11924
11936
|
readonly name: {
|
|
@@ -11928,7 +11940,7 @@ declare const schemaEntries: readonly [{
|
|
|
11928
11940
|
};
|
|
11929
11941
|
readonly summary: {
|
|
11930
11942
|
readonly type: "string";
|
|
11931
|
-
readonly description: "One-sentence positioning of the platform
|
|
11943
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
11932
11944
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
11933
11945
|
};
|
|
11934
11946
|
readonly description: {
|
|
@@ -11939,7 +11951,7 @@ declare const schemaEntries: readonly [{
|
|
|
11939
11951
|
readonly baseUrl: {
|
|
11940
11952
|
readonly type: "string";
|
|
11941
11953
|
readonly format: "uri";
|
|
11942
|
-
readonly description: "Canonical base URL of the platform
|
|
11954
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
11943
11955
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
11944
11956
|
};
|
|
11945
11957
|
readonly profileUrlPattern: {
|
|
@@ -12019,7 +12031,7 @@ declare const schemaEntries: readonly [{
|
|
|
12019
12031
|
readonly schema: {
|
|
12020
12032
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12021
12033
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
12022
|
-
readonly title: "
|
|
12034
|
+
readonly title: "Language";
|
|
12023
12035
|
readonly description: "Schema for language records in the pptx.gallery library. Each record names a presentation language, carries a BCP-47 language tag, and pairs it with sensible default font schemes for PowerPoint and Google Slides output. Languages are referenced from OPF documents via language; the engine resolves the reference against catalogs.languages (inline) → catalogs.languages.source → the default catalog at https://www.pptx.gallery/languages. The presentation language field also accepts BCP-47 tags directly or inline Language objects for engine-aware language records that carry default-font hints.";
|
|
12024
12036
|
readonly type: "object";
|
|
12025
12037
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -12121,7 +12133,7 @@ declare const schemaEntries: readonly [{
|
|
|
12121
12133
|
readonly schema: {
|
|
12122
12134
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12123
12135
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
12124
|
-
readonly title: "
|
|
12136
|
+
readonly title: "Color Scheme";
|
|
12125
12137
|
readonly description: "Schema for color-scheme records in the pptx.gallery library. Each scheme is a named palette with the twelve PowerPoint color slots (six accents, two darks, two lights, plus hyperlink and followed-hyperlink), suitable for being mapped directly into OOXML theme XML. Color schemes are referenced from OPF documents via design.colorScheme or design.colorScheme.id; the engine resolves the reference against catalogs.colorSchemes (inline) -> catalogs.colorSchemes.source -> the default catalog at https://www.pptx.gallery/color-schemes. Slot overrides on design.colorScheme take precedence over the resolved scheme.\n\nThe slot fields here mirror the inline-override fields on the in-document ColorScheme type (in opf.schema.json), so library entries and inline OPF overrides are interchangeable.";
|
|
12126
12138
|
readonly type: "object";
|
|
12127
12139
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -12252,7 +12264,7 @@ declare const schemaEntries: readonly [{
|
|
|
12252
12264
|
readonly schema: {
|
|
12253
12265
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12254
12266
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
12255
|
-
readonly title: "
|
|
12267
|
+
readonly title: "Font Scheme";
|
|
12256
12268
|
readonly description: "Schema for font-scheme records in the pptx.gallery library. Each scheme pairs a major (heading) and minor (body) font family in the OOXML majorFont/minorFont sense, scoped to a target app (PowerPoint or Google Slides) and a language family (Latin, East Asian, or Complex Script). Font schemes are referenced from OPF documents via design.fontScheme or design.fontScheme.id; the engine resolves the reference against catalogs.fontSchemes (inline) → catalogs.fontSchemes.source → the default catalog at https://www.pptx.gallery/font-schemes. Role overrides on design.fontScheme (heading, body, accent, code) take precedence over the resolved scheme.";
|
|
12257
12269
|
readonly type: "object";
|
|
12258
12270
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|