@openpresentation/opf 0.1.0 → 0.2.1
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 +3831 -649
- 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 +105 -105
- package/dist/schemas.js +35 -35
- 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 +2536 -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-D7WwzKyx.d.ts} +16 -16
- package/dist/validator.d.ts +1 -1
- package/dist/validator.js +35 -35
- 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: {
|
|
@@ -74,7 +74,7 @@ declare const presentation: {
|
|
|
74
74
|
}];
|
|
75
75
|
};
|
|
76
76
|
readonly minItems: 1;
|
|
77
|
-
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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[]
|
|
77
|
+
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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.";
|
|
78
78
|
readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
79
79
|
readonly id: "executives";
|
|
80
80
|
readonly attentionBudgetMinutes: 20;
|
|
@@ -91,7 +91,7 @@ declare const presentation: {
|
|
|
91
91
|
}, {
|
|
92
92
|
readonly $ref: "#/$defs/Purpose";
|
|
93
93
|
}];
|
|
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[]
|
|
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[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
95
95
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
96
96
|
readonly id: "decide";
|
|
97
97
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -106,7 +106,7 @@ declare const presentation: {
|
|
|
106
106
|
}, {
|
|
107
107
|
readonly $ref: "#/$defs/Language";
|
|
108
108
|
}];
|
|
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[]
|
|
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[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
110
110
|
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
111
|
readonly id: "english";
|
|
112
112
|
readonly bcp47: "en-US";
|
|
@@ -125,7 +125,7 @@ declare const presentation: {
|
|
|
125
125
|
}, {
|
|
126
126
|
readonly $ref: "#/$defs/Tone";
|
|
127
127
|
}];
|
|
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[]
|
|
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[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
129
129
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
130
130
|
readonly id: "formal";
|
|
131
131
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -170,7 +170,7 @@ declare const presentation: {
|
|
|
170
170
|
}, {
|
|
171
171
|
readonly $ref: "#/$defs/Narrative";
|
|
172
172
|
}];
|
|
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[]
|
|
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[] → 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
174
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
175
175
|
readonly id: "custom-pitch";
|
|
176
176
|
readonly name: "Custom Pitch";
|
|
@@ -528,7 +528,7 @@ declare const presentation: {
|
|
|
528
528
|
};
|
|
529
529
|
readonly Organization: {
|
|
530
530
|
readonly type: "object";
|
|
531
|
-
readonly description: "An organization associated with the presentation
|
|
531
|
+
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
532
|
readonly required: ["id", "name"];
|
|
533
533
|
readonly properties: {
|
|
534
534
|
readonly id: {
|
|
@@ -639,7 +639,7 @@ declare const presentation: {
|
|
|
639
639
|
};
|
|
640
640
|
readonly Socials: {
|
|
641
641
|
readonly type: "object";
|
|
642
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
642
|
+
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
643
|
readonly additionalProperties: {
|
|
644
644
|
readonly type: "string";
|
|
645
645
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -660,7 +660,7 @@ declare const presentation: {
|
|
|
660
660
|
};
|
|
661
661
|
readonly Narrative: {
|
|
662
662
|
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
|
|
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 — 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
664
|
readonly properties: {
|
|
665
665
|
readonly id: {
|
|
666
666
|
readonly type: "string";
|
|
@@ -671,7 +671,7 @@ declare const presentation: {
|
|
|
671
671
|
readonly name: {
|
|
672
672
|
readonly type: "string";
|
|
673
673
|
readonly description: "Human-readable narrative name.";
|
|
674
|
-
readonly examples: ["Classic Story", "Problem
|
|
674
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
675
675
|
};
|
|
676
676
|
readonly summary: {
|
|
677
677
|
readonly type: "string";
|
|
@@ -744,7 +744,7 @@ declare const presentation: {
|
|
|
744
744
|
};
|
|
745
745
|
readonly NarrativeBeat: {
|
|
746
746
|
readonly type: "object";
|
|
747
|
-
readonly description: "A single narrative beat
|
|
747
|
+
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
748
|
readonly required: ["id", "name"];
|
|
749
749
|
readonly properties: {
|
|
750
750
|
readonly id: {
|
|
@@ -765,7 +765,7 @@ declare const presentation: {
|
|
|
765
765
|
};
|
|
766
766
|
readonly instructions: {
|
|
767
767
|
readonly type: "string";
|
|
768
|
-
readonly description: "Short author-facing instruction for the beat
|
|
768
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
769
769
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
770
770
|
};
|
|
771
771
|
readonly slideCount: {
|
|
@@ -780,7 +780,7 @@ declare const presentation: {
|
|
|
780
780
|
};
|
|
781
781
|
readonly layoutHint: {
|
|
782
782
|
readonly type: "string";
|
|
783
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
783
|
+
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
784
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
785
785
|
};
|
|
786
786
|
readonly thoughtCues: {
|
|
@@ -1192,12 +1192,12 @@ declare const presentation: {
|
|
|
1192
1192
|
};
|
|
1193
1193
|
readonly major: {
|
|
1194
1194
|
readonly type: "string";
|
|
1195
|
-
readonly description: "Heading (major) font family
|
|
1195
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
1196
1196
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
1197
1197
|
};
|
|
1198
1198
|
readonly minor: {
|
|
1199
1199
|
readonly type: "string";
|
|
1200
|
-
readonly description: "Body (minor) font family
|
|
1200
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
1201
1201
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
1202
1202
|
};
|
|
1203
1203
|
readonly type: {
|
|
@@ -1634,7 +1634,7 @@ declare const presentation: {
|
|
|
1634
1634
|
};
|
|
1635
1635
|
readonly layout: {
|
|
1636
1636
|
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[]
|
|
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[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
1638
1638
|
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
1639
|
};
|
|
1640
1640
|
readonly title: {
|
|
@@ -2568,7 +2568,7 @@ declare const presentation: {
|
|
|
2568
2568
|
};
|
|
2569
2569
|
readonly Catalogs: {
|
|
2570
2570
|
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[]
|
|
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[] → 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
2572
|
readonly properties: {
|
|
2573
2573
|
readonly narratives: {
|
|
2574
2574
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -2652,7 +2652,7 @@ declare const presentation: {
|
|
|
2652
2652
|
declare const audience: {
|
|
2653
2653
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2654
2654
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
2655
|
-
readonly title: "
|
|
2655
|
+
readonly title: "Audience";
|
|
2656
2656
|
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
2657
|
readonly type: "object";
|
|
2658
2658
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2753,7 +2753,7 @@ declare const audience: {
|
|
|
2753
2753
|
declare const purpose: {
|
|
2754
2754
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2755
2755
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
2756
|
-
readonly title: "
|
|
2756
|
+
readonly title: "Purpose";
|
|
2757
2757
|
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
2758
|
readonly type: "object";
|
|
2759
2759
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2841,7 +2841,7 @@ declare const purpose: {
|
|
|
2841
2841
|
declare const tone: {
|
|
2842
2842
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2843
2843
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
2844
|
-
readonly title: "
|
|
2844
|
+
readonly title: "Tone";
|
|
2845
2845
|
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
2846
|
readonly type: "object";
|
|
2847
2847
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -2938,7 +2938,7 @@ declare const tone: {
|
|
|
2938
2938
|
declare const theme: {
|
|
2939
2939
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
2940
2940
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
2941
|
-
readonly title: "
|
|
2941
|
+
readonly title: "Theme";
|
|
2942
2942
|
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
2943
|
readonly type: "object";
|
|
2944
2944
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -3047,7 +3047,7 @@ declare const theme: {
|
|
|
3047
3047
|
declare const layout: {
|
|
3048
3048
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3049
3049
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
3050
|
-
readonly title: "
|
|
3050
|
+
readonly title: "Slide Layout";
|
|
3051
3051
|
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
3052
|
readonly type: "object";
|
|
3053
3053
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -3211,7 +3211,7 @@ declare const layout: {
|
|
|
3211
3211
|
declare const chartType: {
|
|
3212
3212
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3213
3213
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
3214
|
-
readonly title: "
|
|
3214
|
+
readonly title: "Chart Type";
|
|
3215
3215
|
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
3216
|
readonly type: "object";
|
|
3217
3217
|
readonly additionalProperties: false;
|
|
@@ -3517,7 +3517,7 @@ declare const chartType: {
|
|
|
3517
3517
|
declare const narrative: {
|
|
3518
3518
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3519
3519
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
3520
|
-
readonly title: "
|
|
3520
|
+
readonly title: "Narrative Template";
|
|
3521
3521
|
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
3522
|
readonly type: "object";
|
|
3523
3523
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -3663,8 +3663,8 @@ declare const narrative: {
|
|
|
3663
3663
|
declare const socialPlatform: {
|
|
3664
3664
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3665
3665
|
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
|
|
3666
|
+
readonly title: "Social Platform";
|
|
3667
|
+
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
3668
|
readonly type: "object";
|
|
3669
3669
|
readonly required: ["$schema", "id", "name"];
|
|
3670
3670
|
readonly properties: {
|
|
@@ -3676,7 +3676,7 @@ declare const socialPlatform: {
|
|
|
3676
3676
|
readonly id: {
|
|
3677
3677
|
readonly type: "string";
|
|
3678
3678
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
3679
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
3679
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
3680
3680
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
3681
3681
|
};
|
|
3682
3682
|
readonly name: {
|
|
@@ -3686,7 +3686,7 @@ declare const socialPlatform: {
|
|
|
3686
3686
|
};
|
|
3687
3687
|
readonly summary: {
|
|
3688
3688
|
readonly type: "string";
|
|
3689
|
-
readonly description: "One-sentence positioning of the platform
|
|
3689
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
3690
3690
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
3691
3691
|
};
|
|
3692
3692
|
readonly description: {
|
|
@@ -3697,7 +3697,7 @@ declare const socialPlatform: {
|
|
|
3697
3697
|
readonly baseUrl: {
|
|
3698
3698
|
readonly type: "string";
|
|
3699
3699
|
readonly format: "uri";
|
|
3700
|
-
readonly description: "Canonical base URL of the platform
|
|
3700
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
3701
3701
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
3702
3702
|
};
|
|
3703
3703
|
readonly profileUrlPattern: {
|
|
@@ -3774,7 +3774,7 @@ declare const socialPlatform: {
|
|
|
3774
3774
|
declare const language: {
|
|
3775
3775
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3776
3776
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
3777
|
-
readonly title: "
|
|
3777
|
+
readonly title: "Language";
|
|
3778
3778
|
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
3779
|
readonly type: "object";
|
|
3780
3780
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -3873,7 +3873,7 @@ declare const language: {
|
|
|
3873
3873
|
declare const colorScheme: {
|
|
3874
3874
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
3875
3875
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
3876
|
-
readonly title: "
|
|
3876
|
+
readonly title: "Color Scheme";
|
|
3877
3877
|
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
3878
|
readonly type: "object";
|
|
3879
3879
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -4001,7 +4001,7 @@ declare const colorScheme: {
|
|
|
4001
4001
|
declare const fontScheme: {
|
|
4002
4002
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
4003
4003
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
4004
|
-
readonly title: "
|
|
4004
|
+
readonly title: "Font Scheme";
|
|
4005
4005
|
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
4006
|
readonly type: "object";
|
|
4007
4007
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|
|
@@ -4108,8 +4108,8 @@ declare const schemas: {
|
|
|
4108
4108
|
readonly presentation: {
|
|
4109
4109
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
4110
4110
|
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
|
|
4111
|
+
readonly title: "Presentation";
|
|
4112
|
+
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
4113
|
readonly type: "object";
|
|
4114
4114
|
readonly required: ["slides"];
|
|
4115
4115
|
readonly additionalProperties: false;
|
|
@@ -4122,11 +4122,11 @@ declare const schemas: {
|
|
|
4122
4122
|
readonly name: {
|
|
4123
4123
|
readonly type: "string";
|
|
4124
4124
|
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
|
|
4125
|
+
readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
|
|
4126
4126
|
};
|
|
4127
4127
|
readonly description: {
|
|
4128
4128
|
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
|
|
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 → Properties).";
|
|
4130
4130
|
readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
|
|
4131
4131
|
};
|
|
4132
4132
|
readonly filename: {
|
|
@@ -4181,7 +4181,7 @@ declare const schemas: {
|
|
|
4181
4181
|
}];
|
|
4182
4182
|
};
|
|
4183
4183
|
readonly minItems: 1;
|
|
4184
|
-
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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[]
|
|
4184
|
+
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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.";
|
|
4185
4185
|
readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
4186
4186
|
readonly id: "executives";
|
|
4187
4187
|
readonly attentionBudgetMinutes: 20;
|
|
@@ -4198,7 +4198,7 @@ declare const schemas: {
|
|
|
4198
4198
|
}, {
|
|
4199
4199
|
readonly $ref: "#/$defs/Purpose";
|
|
4200
4200
|
}];
|
|
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[]
|
|
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[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
4202
4202
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
4203
4203
|
readonly id: "decide";
|
|
4204
4204
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -4213,7 +4213,7 @@ declare const schemas: {
|
|
|
4213
4213
|
}, {
|
|
4214
4214
|
readonly $ref: "#/$defs/Language";
|
|
4215
4215
|
}];
|
|
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[]
|
|
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[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
4217
4217
|
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
4218
|
readonly id: "english";
|
|
4219
4219
|
readonly bcp47: "en-US";
|
|
@@ -4232,7 +4232,7 @@ declare const schemas: {
|
|
|
4232
4232
|
}, {
|
|
4233
4233
|
readonly $ref: "#/$defs/Tone";
|
|
4234
4234
|
}];
|
|
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[]
|
|
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[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
4236
4236
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
4237
4237
|
readonly id: "formal";
|
|
4238
4238
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -4277,7 +4277,7 @@ declare const schemas: {
|
|
|
4277
4277
|
}, {
|
|
4278
4278
|
readonly $ref: "#/$defs/Narrative";
|
|
4279
4279
|
}];
|
|
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[]
|
|
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[] → 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
4281
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
4282
4282
|
readonly id: "custom-pitch";
|
|
4283
4283
|
readonly name: "Custom Pitch";
|
|
@@ -4635,7 +4635,7 @@ declare const schemas: {
|
|
|
4635
4635
|
};
|
|
4636
4636
|
readonly Organization: {
|
|
4637
4637
|
readonly type: "object";
|
|
4638
|
-
readonly description: "An organization associated with the presentation
|
|
4638
|
+
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
4639
|
readonly required: ["id", "name"];
|
|
4640
4640
|
readonly properties: {
|
|
4641
4641
|
readonly id: {
|
|
@@ -4746,7 +4746,7 @@ declare const schemas: {
|
|
|
4746
4746
|
};
|
|
4747
4747
|
readonly Socials: {
|
|
4748
4748
|
readonly type: "object";
|
|
4749
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
4749
|
+
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
4750
|
readonly additionalProperties: {
|
|
4751
4751
|
readonly type: "string";
|
|
4752
4752
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -4767,7 +4767,7 @@ declare const schemas: {
|
|
|
4767
4767
|
};
|
|
4768
4768
|
readonly Narrative: {
|
|
4769
4769
|
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
|
|
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 — 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
4771
|
readonly properties: {
|
|
4772
4772
|
readonly id: {
|
|
4773
4773
|
readonly type: "string";
|
|
@@ -4778,7 +4778,7 @@ declare const schemas: {
|
|
|
4778
4778
|
readonly name: {
|
|
4779
4779
|
readonly type: "string";
|
|
4780
4780
|
readonly description: "Human-readable narrative name.";
|
|
4781
|
-
readonly examples: ["Classic Story", "Problem
|
|
4781
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
4782
4782
|
};
|
|
4783
4783
|
readonly summary: {
|
|
4784
4784
|
readonly type: "string";
|
|
@@ -4851,7 +4851,7 @@ declare const schemas: {
|
|
|
4851
4851
|
};
|
|
4852
4852
|
readonly NarrativeBeat: {
|
|
4853
4853
|
readonly type: "object";
|
|
4854
|
-
readonly description: "A single narrative beat
|
|
4854
|
+
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
4855
|
readonly required: ["id", "name"];
|
|
4856
4856
|
readonly properties: {
|
|
4857
4857
|
readonly id: {
|
|
@@ -4872,7 +4872,7 @@ declare const schemas: {
|
|
|
4872
4872
|
};
|
|
4873
4873
|
readonly instructions: {
|
|
4874
4874
|
readonly type: "string";
|
|
4875
|
-
readonly description: "Short author-facing instruction for the beat
|
|
4875
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
4876
4876
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
4877
4877
|
};
|
|
4878
4878
|
readonly slideCount: {
|
|
@@ -4887,7 +4887,7 @@ declare const schemas: {
|
|
|
4887
4887
|
};
|
|
4888
4888
|
readonly layoutHint: {
|
|
4889
4889
|
readonly type: "string";
|
|
4890
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
4890
|
+
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
4891
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
4892
4892
|
};
|
|
4893
4893
|
readonly thoughtCues: {
|
|
@@ -5299,12 +5299,12 @@ declare const schemas: {
|
|
|
5299
5299
|
};
|
|
5300
5300
|
readonly major: {
|
|
5301
5301
|
readonly type: "string";
|
|
5302
|
-
readonly description: "Heading (major) font family
|
|
5302
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
5303
5303
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
5304
5304
|
};
|
|
5305
5305
|
readonly minor: {
|
|
5306
5306
|
readonly type: "string";
|
|
5307
|
-
readonly description: "Body (minor) font family
|
|
5307
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
5308
5308
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
5309
5309
|
};
|
|
5310
5310
|
readonly type: {
|
|
@@ -5741,7 +5741,7 @@ declare const schemas: {
|
|
|
5741
5741
|
};
|
|
5742
5742
|
readonly layout: {
|
|
5743
5743
|
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[]
|
|
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[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
5745
5745
|
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
5746
|
};
|
|
5747
5747
|
readonly title: {
|
|
@@ -6675,7 +6675,7 @@ declare const schemas: {
|
|
|
6675
6675
|
};
|
|
6676
6676
|
readonly Catalogs: {
|
|
6677
6677
|
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[]
|
|
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[] → 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
6679
|
readonly properties: {
|
|
6680
6680
|
readonly narratives: {
|
|
6681
6681
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -6759,7 +6759,7 @@ declare const schemas: {
|
|
|
6759
6759
|
readonly audience: {
|
|
6760
6760
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6761
6761
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
6762
|
-
readonly title: "
|
|
6762
|
+
readonly title: "Audience";
|
|
6763
6763
|
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
6764
|
readonly type: "object";
|
|
6765
6765
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -6860,7 +6860,7 @@ declare const schemas: {
|
|
|
6860
6860
|
readonly purpose: {
|
|
6861
6861
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6862
6862
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
6863
|
-
readonly title: "
|
|
6863
|
+
readonly title: "Purpose";
|
|
6864
6864
|
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
6865
|
readonly type: "object";
|
|
6866
6866
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -6948,7 +6948,7 @@ declare const schemas: {
|
|
|
6948
6948
|
readonly tone: {
|
|
6949
6949
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
6950
6950
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
6951
|
-
readonly title: "
|
|
6951
|
+
readonly title: "Tone";
|
|
6952
6952
|
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
6953
|
readonly type: "object";
|
|
6954
6954
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7045,7 +7045,7 @@ declare const schemas: {
|
|
|
7045
7045
|
readonly theme: {
|
|
7046
7046
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7047
7047
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
7048
|
-
readonly title: "
|
|
7048
|
+
readonly title: "Theme";
|
|
7049
7049
|
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
7050
|
readonly type: "object";
|
|
7051
7051
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7154,7 +7154,7 @@ declare const schemas: {
|
|
|
7154
7154
|
readonly layout: {
|
|
7155
7155
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7156
7156
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
7157
|
-
readonly title: "
|
|
7157
|
+
readonly title: "Slide Layout";
|
|
7158
7158
|
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
7159
|
readonly type: "object";
|
|
7160
7160
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -7318,7 +7318,7 @@ declare const schemas: {
|
|
|
7318
7318
|
readonly chartType: {
|
|
7319
7319
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7320
7320
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
7321
|
-
readonly title: "
|
|
7321
|
+
readonly title: "Chart Type";
|
|
7322
7322
|
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
7323
|
readonly type: "object";
|
|
7324
7324
|
readonly additionalProperties: false;
|
|
@@ -7624,7 +7624,7 @@ declare const schemas: {
|
|
|
7624
7624
|
readonly narrative: {
|
|
7625
7625
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7626
7626
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
7627
|
-
readonly title: "
|
|
7627
|
+
readonly title: "Narrative Template";
|
|
7628
7628
|
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
7629
|
readonly type: "object";
|
|
7630
7630
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -7770,8 +7770,8 @@ declare const schemas: {
|
|
|
7770
7770
|
readonly socialPlatform: {
|
|
7771
7771
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7772
7772
|
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
|
|
7773
|
+
readonly title: "Social Platform";
|
|
7774
|
+
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
7775
|
readonly type: "object";
|
|
7776
7776
|
readonly required: ["$schema", "id", "name"];
|
|
7777
7777
|
readonly properties: {
|
|
@@ -7783,7 +7783,7 @@ declare const schemas: {
|
|
|
7783
7783
|
readonly id: {
|
|
7784
7784
|
readonly type: "string";
|
|
7785
7785
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
7786
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
7786
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
7787
7787
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
7788
7788
|
};
|
|
7789
7789
|
readonly name: {
|
|
@@ -7793,7 +7793,7 @@ declare const schemas: {
|
|
|
7793
7793
|
};
|
|
7794
7794
|
readonly summary: {
|
|
7795
7795
|
readonly type: "string";
|
|
7796
|
-
readonly description: "One-sentence positioning of the platform
|
|
7796
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
7797
7797
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
7798
7798
|
};
|
|
7799
7799
|
readonly description: {
|
|
@@ -7804,7 +7804,7 @@ declare const schemas: {
|
|
|
7804
7804
|
readonly baseUrl: {
|
|
7805
7805
|
readonly type: "string";
|
|
7806
7806
|
readonly format: "uri";
|
|
7807
|
-
readonly description: "Canonical base URL of the platform
|
|
7807
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
7808
7808
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
7809
7809
|
};
|
|
7810
7810
|
readonly profileUrlPattern: {
|
|
@@ -7881,7 +7881,7 @@ declare const schemas: {
|
|
|
7881
7881
|
readonly language: {
|
|
7882
7882
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7883
7883
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
7884
|
-
readonly title: "
|
|
7884
|
+
readonly title: "Language";
|
|
7885
7885
|
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
7886
|
readonly type: "object";
|
|
7887
7887
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -7980,7 +7980,7 @@ declare const schemas: {
|
|
|
7980
7980
|
readonly colorScheme: {
|
|
7981
7981
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
7982
7982
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
7983
|
-
readonly title: "
|
|
7983
|
+
readonly title: "Color Scheme";
|
|
7984
7984
|
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
7985
|
readonly type: "object";
|
|
7986
7986
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -8108,7 +8108,7 @@ declare const schemas: {
|
|
|
8108
8108
|
readonly fontScheme: {
|
|
8109
8109
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
8110
8110
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
8111
|
-
readonly title: "
|
|
8111
|
+
readonly title: "Font Scheme";
|
|
8112
8112
|
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
8113
|
readonly type: "object";
|
|
8114
8114
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|
|
@@ -8219,8 +8219,8 @@ declare const schemaEntries: readonly [{
|
|
|
8219
8219
|
readonly schema: {
|
|
8220
8220
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
8221
8221
|
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
|
|
8222
|
+
readonly title: "Presentation";
|
|
8223
|
+
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
8224
|
readonly type: "object";
|
|
8225
8225
|
readonly required: ["slides"];
|
|
8226
8226
|
readonly additionalProperties: false;
|
|
@@ -8233,11 +8233,11 @@ declare const schemaEntries: readonly [{
|
|
|
8233
8233
|
readonly name: {
|
|
8234
8234
|
readonly type: "string";
|
|
8235
8235
|
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
|
|
8236
|
+
readonly examples: ["Q4 2026 Business Review", "Series B Pitch — Acme", "The Future of Agentic Workflows"];
|
|
8237
8237
|
};
|
|
8238
8238
|
readonly description: {
|
|
8239
8239
|
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
|
|
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 → Properties).";
|
|
8241
8241
|
readonly examples: ["Quarterly business review covering revenue, product, and hiring milestones for the executive team."];
|
|
8242
8242
|
};
|
|
8243
8243
|
readonly filename: {
|
|
@@ -8292,7 +8292,7 @@ declare const schemaEntries: readonly [{
|
|
|
8292
8292
|
}];
|
|
8293
8293
|
};
|
|
8294
8294
|
readonly minItems: 1;
|
|
8295
|
-
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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[]
|
|
8295
|
+
readonly description: "Intended audiences for the presentation. Each item accepts either:\n- A string shorthand: free-form description ('Series B investors'), an audiences catalog id ('executives'), an HTTPS URL, or a 'pkg:' reference.\n- An inline Audience object 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.";
|
|
8296
8296
|
readonly examples: [["executives"], ["board", "c-suite"], ["Series B investors", "https://acme.com/decks/audiences/acme-board.json"], [{
|
|
8297
8297
|
readonly id: "executives";
|
|
8298
8298
|
readonly attentionBudgetMinutes: 20;
|
|
@@ -8309,7 +8309,7 @@ declare const schemaEntries: readonly [{
|
|
|
8309
8309
|
}, {
|
|
8310
8310
|
readonly $ref: "#/$defs/Purpose";
|
|
8311
8311
|
}];
|
|
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[]
|
|
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[] → catalogs.purposes.source → default catalog at https://www.pptx.gallery/purposes.";
|
|
8313
8313
|
readonly examples: ["Raise a Series B round of $30M", "align", "educate", "https://acme.com/decks/purposes/fundraise.json", "pkg:@acme/decks/purposes/fundraise", {
|
|
8314
8314
|
readonly id: "decide";
|
|
8315
8315
|
readonly outcome: "Approve the Q4 hiring plan";
|
|
@@ -8324,7 +8324,7 @@ declare const schemaEntries: readonly [{
|
|
|
8324
8324
|
}, {
|
|
8325
8325
|
readonly $ref: "#/$defs/Language";
|
|
8326
8326
|
}];
|
|
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[]
|
|
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[] → catalogs.languages.source → default catalog at https://www.pptx.gallery/languages.";
|
|
8328
8328
|
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
8329
|
readonly id: "english";
|
|
8330
8330
|
readonly bcp47: "en-US";
|
|
@@ -8343,7 +8343,7 @@ declare const schemaEntries: readonly [{
|
|
|
8343
8343
|
}, {
|
|
8344
8344
|
readonly $ref: "#/$defs/Tone";
|
|
8345
8345
|
}];
|
|
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[]
|
|
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[] → catalogs.tones.source → default catalog at https://www.pptx.gallery/tones.";
|
|
8347
8347
|
readonly examples: ["formal", "casual", "inspirational", "technical", "persuasive", "https://acme.com/decks/tones/acme-voice.json", "pkg:@acme/decks/tones/acme-voice", {
|
|
8348
8348
|
readonly id: "formal";
|
|
8349
8349
|
readonly voiceCues: ["Use precise, concise language."];
|
|
@@ -8388,7 +8388,7 @@ declare const schemaEntries: readonly [{
|
|
|
8388
8388
|
}, {
|
|
8389
8389
|
readonly $ref: "#/$defs/Narrative";
|
|
8390
8390
|
}];
|
|
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[]
|
|
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[] → 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
8392
|
readonly examples: ["classic-story", "problem-solution", "scqa", "pitch-deck", {
|
|
8393
8393
|
readonly id: "custom-pitch";
|
|
8394
8394
|
readonly name: "Custom Pitch";
|
|
@@ -8746,7 +8746,7 @@ declare const schemaEntries: readonly [{
|
|
|
8746
8746
|
};
|
|
8747
8747
|
readonly Organization: {
|
|
8748
8748
|
readonly type: "object";
|
|
8749
|
-
readonly description: "An organization associated with the presentation
|
|
8749
|
+
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
8750
|
readonly required: ["id", "name"];
|
|
8751
8751
|
readonly properties: {
|
|
8752
8752
|
readonly id: {
|
|
@@ -8857,7 +8857,7 @@ declare const schemaEntries: readonly [{
|
|
|
8857
8857
|
};
|
|
8858
8858
|
readonly Socials: {
|
|
8859
8859
|
readonly type: "object";
|
|
8860
|
-
readonly description: "Social media handles or URLs, keyed by platform id from the 'socialPlatforms' catalog. Each value is a string
|
|
8860
|
+
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
8861
|
readonly additionalProperties: {
|
|
8862
8862
|
readonly type: "string";
|
|
8863
8863
|
readonly description: "Handle or URL for the platform identified by the property key.";
|
|
@@ -8878,7 +8878,7 @@ declare const schemaEntries: readonly [{
|
|
|
8878
8878
|
};
|
|
8879
8879
|
readonly Narrative: {
|
|
8880
8880
|
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
|
|
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 — 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
8882
|
readonly properties: {
|
|
8883
8883
|
readonly id: {
|
|
8884
8884
|
readonly type: "string";
|
|
@@ -8889,7 +8889,7 @@ declare const schemaEntries: readonly [{
|
|
|
8889
8889
|
readonly name: {
|
|
8890
8890
|
readonly type: "string";
|
|
8891
8891
|
readonly description: "Human-readable narrative name.";
|
|
8892
|
-
readonly examples: ["Classic Story", "Problem
|
|
8892
|
+
readonly examples: ["Classic Story", "Problem → Solution", "SCQA", "Founder Pitch"];
|
|
8893
8893
|
};
|
|
8894
8894
|
readonly summary: {
|
|
8895
8895
|
readonly type: "string";
|
|
@@ -8962,7 +8962,7 @@ declare const schemaEntries: readonly [{
|
|
|
8962
8962
|
};
|
|
8963
8963
|
readonly NarrativeBeat: {
|
|
8964
8964
|
readonly type: "object";
|
|
8965
|
-
readonly description: "A single narrative beat
|
|
8965
|
+
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
8966
|
readonly required: ["id", "name"];
|
|
8967
8967
|
readonly properties: {
|
|
8968
8968
|
readonly id: {
|
|
@@ -8983,7 +8983,7 @@ declare const schemaEntries: readonly [{
|
|
|
8983
8983
|
};
|
|
8984
8984
|
readonly instructions: {
|
|
8985
8985
|
readonly type: "string";
|
|
8986
|
-
readonly description: "Short author-facing instruction for the beat
|
|
8986
|
+
readonly description: "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.";
|
|
8987
8987
|
readonly examples: ["Capture audience attention", "Introduce problem", "Detail implementation", "Inspire & conclude"];
|
|
8988
8988
|
};
|
|
8989
8989
|
readonly slideCount: {
|
|
@@ -8998,7 +8998,7 @@ declare const schemaEntries: readonly [{
|
|
|
8998
8998
|
};
|
|
8999
8999
|
readonly layoutHint: {
|
|
9000
9000
|
readonly type: "string";
|
|
9001
|
-
readonly description: "Suggested layout id for the beat's opening slide. Resolves the same way as Slide.layout
|
|
9001
|
+
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
9002
|
readonly examples: ["section-divider", "title-slide", "title-left", "two-column", "text-left"];
|
|
9003
9003
|
};
|
|
9004
9004
|
readonly thoughtCues: {
|
|
@@ -9410,12 +9410,12 @@ declare const schemaEntries: readonly [{
|
|
|
9410
9410
|
};
|
|
9411
9411
|
readonly major: {
|
|
9412
9412
|
readonly type: "string";
|
|
9413
|
-
readonly description: "Heading (major) font family
|
|
9413
|
+
readonly description: "Heading (major) font family — mirrors the OOXML majorFont entry. Pairs with 'minor'.";
|
|
9414
9414
|
readonly examples: ["Aptos Display", "Calibri", "Microsoft YaHei", "Arial Black"];
|
|
9415
9415
|
};
|
|
9416
9416
|
readonly minor: {
|
|
9417
9417
|
readonly type: "string";
|
|
9418
|
-
readonly description: "Body (minor) font family
|
|
9418
|
+
readonly description: "Body (minor) font family — mirrors the OOXML minorFont entry. Pairs with 'major'.";
|
|
9419
9419
|
readonly examples: ["Aptos", "Calibri", "Microsoft YaHei", "Arial"];
|
|
9420
9420
|
};
|
|
9421
9421
|
readonly type: {
|
|
@@ -9852,7 +9852,7 @@ declare const schemaEntries: readonly [{
|
|
|
9852
9852
|
};
|
|
9853
9853
|
readonly layout: {
|
|
9854
9854
|
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[]
|
|
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[] → catalogs.layouts.source → default catalog at https://www.pptx.gallery/layouts.";
|
|
9856
9856
|
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
9857
|
};
|
|
9858
9858
|
readonly title: {
|
|
@@ -10786,7 +10786,7 @@ declare const schemaEntries: readonly [{
|
|
|
10786
10786
|
};
|
|
10787
10787
|
readonly Catalogs: {
|
|
10788
10788
|
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[]
|
|
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[] → 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
10790
|
readonly properties: {
|
|
10791
10791
|
readonly narratives: {
|
|
10792
10792
|
readonly $ref: "#/$defs/CatalogEntry";
|
|
@@ -10873,7 +10873,7 @@ declare const schemaEntries: readonly [{
|
|
|
10873
10873
|
readonly schema: {
|
|
10874
10874
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
10875
10875
|
readonly $id: "https://openpresentation.org/schema/opf-audience/v1";
|
|
10876
|
-
readonly title: "
|
|
10876
|
+
readonly title: "Audience";
|
|
10877
10877
|
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
10878
|
readonly type: "object";
|
|
10879
10879
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -10977,7 +10977,7 @@ declare const schemaEntries: readonly [{
|
|
|
10977
10977
|
readonly schema: {
|
|
10978
10978
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
10979
10979
|
readonly $id: "https://openpresentation.org/schema/opf-purpose/v1";
|
|
10980
|
-
readonly title: "
|
|
10980
|
+
readonly title: "Purpose";
|
|
10981
10981
|
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
10982
|
readonly type: "object";
|
|
10983
10983
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11068,7 +11068,7 @@ declare const schemaEntries: readonly [{
|
|
|
11068
11068
|
readonly schema: {
|
|
11069
11069
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11070
11070
|
readonly $id: "https://openpresentation.org/schema/opf-tone/v1";
|
|
11071
|
-
readonly title: "
|
|
11071
|
+
readonly title: "Tone";
|
|
11072
11072
|
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
11073
|
readonly type: "object";
|
|
11074
11074
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11168,7 +11168,7 @@ declare const schemaEntries: readonly [{
|
|
|
11168
11168
|
readonly schema: {
|
|
11169
11169
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11170
11170
|
readonly $id: "https://openpresentation.org/schema/opf-theme/v1";
|
|
11171
|
-
readonly title: "
|
|
11171
|
+
readonly title: "Theme";
|
|
11172
11172
|
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
11173
|
readonly type: "object";
|
|
11174
11174
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11280,7 +11280,7 @@ declare const schemaEntries: readonly [{
|
|
|
11280
11280
|
readonly schema: {
|
|
11281
11281
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11282
11282
|
readonly $id: "https://openpresentation.org/schema/opf-layout/v1";
|
|
11283
|
-
readonly title: "
|
|
11283
|
+
readonly title: "Slide Layout";
|
|
11284
11284
|
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
11285
|
readonly type: "object";
|
|
11286
11286
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -11447,7 +11447,7 @@ declare const schemaEntries: readonly [{
|
|
|
11447
11447
|
readonly schema: {
|
|
11448
11448
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11449
11449
|
readonly $id: "https://openpresentation.org/schema/opf-chart-type/v1";
|
|
11450
|
-
readonly title: "
|
|
11450
|
+
readonly title: "Chart Type";
|
|
11451
11451
|
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
11452
|
readonly type: "object";
|
|
11453
11453
|
readonly additionalProperties: false;
|
|
@@ -11756,7 +11756,7 @@ declare const schemaEntries: readonly [{
|
|
|
11756
11756
|
readonly schema: {
|
|
11757
11757
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11758
11758
|
readonly $id: "https://openpresentation.org/schema/opf-narrative/v1";
|
|
11759
|
-
readonly title: "
|
|
11759
|
+
readonly title: "Narrative Template";
|
|
11760
11760
|
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
11761
|
readonly type: "object";
|
|
11762
11762
|
readonly required: ["$schema", "id", "name", "beats"];
|
|
@@ -11905,8 +11905,8 @@ declare const schemaEntries: readonly [{
|
|
|
11905
11905
|
readonly schema: {
|
|
11906
11906
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
11907
11907
|
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
|
|
11908
|
+
readonly title: "Social Platform";
|
|
11909
|
+
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
11910
|
readonly type: "object";
|
|
11911
11911
|
readonly required: ["$schema", "id", "name"];
|
|
11912
11912
|
readonly properties: {
|
|
@@ -11918,7 +11918,7 @@ declare const schemaEntries: readonly [{
|
|
|
11918
11918
|
readonly id: {
|
|
11919
11919
|
readonly type: "string";
|
|
11920
11920
|
readonly pattern: "^[a-z][a-z0-9-]*$";
|
|
11921
|
-
readonly description: "Stable slug used by OPF documents to reference this platform
|
|
11921
|
+
readonly description: "Stable slug used by OPF documents to reference this platform — appears as a property key on Socials objects. Lowercase kebab-case.";
|
|
11922
11922
|
readonly examples: ["linkedin", "x", "github", "youtube", "instagram", "facebook", "tiktok", "threads", "mastodon", "bluesky"];
|
|
11923
11923
|
};
|
|
11924
11924
|
readonly name: {
|
|
@@ -11928,7 +11928,7 @@ declare const schemaEntries: readonly [{
|
|
|
11928
11928
|
};
|
|
11929
11929
|
readonly summary: {
|
|
11930
11930
|
readonly type: "string";
|
|
11931
|
-
readonly description: "One-sentence positioning of the platform
|
|
11931
|
+
readonly description: "One-sentence positioning of the platform — what it's used for and who's on it.";
|
|
11932
11932
|
readonly examples: ["Professional social network for individuals and companies.", "Real-time microblog for news, opinions, and discussion."];
|
|
11933
11933
|
};
|
|
11934
11934
|
readonly description: {
|
|
@@ -11939,7 +11939,7 @@ declare const schemaEntries: readonly [{
|
|
|
11939
11939
|
readonly baseUrl: {
|
|
11940
11940
|
readonly type: "string";
|
|
11941
11941
|
readonly format: "uri";
|
|
11942
|
-
readonly description: "Canonical base URL of the platform
|
|
11942
|
+
readonly description: "Canonical base URL of the platform — used as the prefix when normalizing handles to full URLs.";
|
|
11943
11943
|
readonly examples: ["https://linkedin.com", "https://x.com", "https://github.com", "https://youtube.com"];
|
|
11944
11944
|
};
|
|
11945
11945
|
readonly profileUrlPattern: {
|
|
@@ -12019,7 +12019,7 @@ declare const schemaEntries: readonly [{
|
|
|
12019
12019
|
readonly schema: {
|
|
12020
12020
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12021
12021
|
readonly $id: "https://openpresentation.org/schema/opf-language/v1";
|
|
12022
|
-
readonly title: "
|
|
12022
|
+
readonly title: "Language";
|
|
12023
12023
|
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
12024
|
readonly type: "object";
|
|
12025
12025
|
readonly required: ["$schema", "id", "name", "bcp47"];
|
|
@@ -12121,7 +12121,7 @@ declare const schemaEntries: readonly [{
|
|
|
12121
12121
|
readonly schema: {
|
|
12122
12122
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12123
12123
|
readonly $id: "https://openpresentation.org/schema/opf-color-scheme/v1";
|
|
12124
|
-
readonly title: "
|
|
12124
|
+
readonly title: "Color Scheme";
|
|
12125
12125
|
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
12126
|
readonly type: "object";
|
|
12127
12127
|
readonly required: ["$schema", "id", "name"];
|
|
@@ -12252,7 +12252,7 @@ declare const schemaEntries: readonly [{
|
|
|
12252
12252
|
readonly schema: {
|
|
12253
12253
|
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
12254
12254
|
readonly $id: "https://openpresentation.org/schema/opf-font-scheme/v1";
|
|
12255
|
-
readonly title: "
|
|
12255
|
+
readonly title: "Font Scheme";
|
|
12256
12256
|
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
12257
|
readonly type: "object";
|
|
12258
12258
|
readonly required: ["$schema", "id", "name", "major", "minor"];
|