@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
|
@@ -1,280 +1,280 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://openpresentation.org/schema/opf-layout/v1",
|
|
4
|
-
"title": "
|
|
5
|
-
"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.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": [
|
|
8
|
-
"$schema",
|
|
9
|
-
"id",
|
|
10
|
-
"name"
|
|
11
|
-
],
|
|
12
|
-
"properties": {
|
|
13
|
-
"$schema": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"const": "https://openpresentation.org/schema/opf-layout/v1",
|
|
16
|
-
"description": "Identifies this record as a slide layout in the openpresentation.org catalog."
|
|
17
|
-
},
|
|
18
|
-
"id": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"pattern": "^[a-z][a-z0-9-]*$",
|
|
21
|
-
"description": "Stable slug used by OPF documents to reference this layout via Slide.layout. Lowercase kebab-case.",
|
|
22
|
-
"examples": [
|
|
23
|
-
"title",
|
|
24
|
-
"title-subtitle",
|
|
25
|
-
"chart-1x",
|
|
26
|
-
"image-bleed"
|
|
27
|
-
]
|
|
28
|
-
},
|
|
29
|
-
"name": {
|
|
30
|
-
"type": "string",
|
|
31
|
-
"description": "Human-readable layout name shown in layout pickers.",
|
|
32
|
-
"examples": [
|
|
33
|
-
"Title",
|
|
34
|
-
"Title Subtitle",
|
|
35
|
-
"Chart 1x",
|
|
36
|
-
"Image Bleed"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
"summary": {
|
|
40
|
-
"type": "string",
|
|
41
|
-
"description": "One-sentence positioning of the layout — when to reach for it.",
|
|
42
|
-
"examples": [
|
|
43
|
-
"Slide title aligned left over a single content area — flexible workhorse layout.",
|
|
44
|
-
"Title plus a single chart on the left and supporting copy on the right."
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
"description": {
|
|
48
|
-
"type": "string",
|
|
49
|
-
"description": "Longer prose describing the layout structure and ideal use cases.",
|
|
50
|
-
"examples": [
|
|
51
|
-
"Two equal-width columns under a left-aligned slide title. Use when comparing two ideas, before/after pairs, or paired text + image content."
|
|
52
|
-
]
|
|
53
|
-
},
|
|
54
|
-
"contentType": {
|
|
55
|
-
"type": "string",
|
|
56
|
-
"enum": [
|
|
57
|
-
"Title",
|
|
58
|
-
"Text",
|
|
59
|
-
"List",
|
|
60
|
-
"Image",
|
|
61
|
-
"Number",
|
|
62
|
-
"Chart"
|
|
63
|
-
],
|
|
64
|
-
"description": "Primary kind of content the layout holds. Drives pickers and AI placement decisions."
|
|
65
|
-
},
|
|
66
|
-
"contentMultiple": {
|
|
67
|
-
"type": "string",
|
|
68
|
-
"enum": [
|
|
69
|
-
"None",
|
|
70
|
-
"1x",
|
|
71
|
-
"2x",
|
|
72
|
-
"3x",
|
|
73
|
-
"4x",
|
|
74
|
-
"5x",
|
|
75
|
-
"6x"
|
|
76
|
-
],
|
|
77
|
-
"description": "How many parallel content blocks the layout exposes ('2x' = two-column, '3x' = three-up, etc.)."
|
|
78
|
-
},
|
|
79
|
-
"contentAlignment": {
|
|
80
|
-
"type": "string",
|
|
81
|
-
"enum": [
|
|
82
|
-
"None",
|
|
83
|
-
"Left",
|
|
84
|
-
"Center"
|
|
85
|
-
],
|
|
86
|
-
"description": "Default horizontal alignment of the content area."
|
|
87
|
-
},
|
|
88
|
-
"contentBox": {
|
|
89
|
-
"type": "boolean",
|
|
90
|
-
"description": "Whether the content area is rendered inside a visible box / card.",
|
|
91
|
-
"examples": [
|
|
92
|
-
false,
|
|
93
|
-
true
|
|
94
|
-
]
|
|
95
|
-
},
|
|
96
|
-
"contentTypeChartPrimary": {
|
|
97
|
-
"type": "string",
|
|
98
|
-
"enum": [
|
|
99
|
-
"None",
|
|
100
|
-
"Top",
|
|
101
|
-
"Bottom",
|
|
102
|
-
"Left",
|
|
103
|
-
"Right"
|
|
104
|
-
],
|
|
105
|
-
"description": "For chart layouts, where the primary chart sits relative to the rest of the content."
|
|
106
|
-
},
|
|
107
|
-
"contentTypeImageFill": {
|
|
108
|
-
"type": "string",
|
|
109
|
-
"enum": [
|
|
110
|
-
"None",
|
|
111
|
-
"Crop",
|
|
112
|
-
"Fit"
|
|
113
|
-
],
|
|
114
|
-
"description": "For image layouts, how the image fills its slot."
|
|
115
|
-
},
|
|
116
|
-
"contentTypeListBullet": {
|
|
117
|
-
"type": "string",
|
|
118
|
-
"enum": [
|
|
119
|
-
"None",
|
|
120
|
-
"Character",
|
|
121
|
-
"Image"
|
|
122
|
-
],
|
|
123
|
-
"description": "For list layouts, how bullets are rendered."
|
|
124
|
-
},
|
|
125
|
-
"contentTypeListHeading": {
|
|
126
|
-
"type": "boolean",
|
|
127
|
-
"description": "For list layouts, whether each list item carries a heading.",
|
|
128
|
-
"examples": [
|
|
129
|
-
false,
|
|
130
|
-
true
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
"slideTag": {
|
|
134
|
-
"type": "boolean",
|
|
135
|
-
"description": "Whether the layout includes a small slide-level tag / label region above or near the title.",
|
|
136
|
-
"examples": [
|
|
137
|
-
false,
|
|
138
|
-
true
|
|
139
|
-
]
|
|
140
|
-
},
|
|
141
|
-
"slideTitle": {
|
|
142
|
-
"type": "boolean",
|
|
143
|
-
"description": "Whether the layout includes a slide title region.",
|
|
144
|
-
"examples": [
|
|
145
|
-
true,
|
|
146
|
-
false
|
|
147
|
-
]
|
|
148
|
-
},
|
|
149
|
-
"slideSubtitle": {
|
|
150
|
-
"type": "boolean",
|
|
151
|
-
"description": "Whether the layout includes a slide-level subtitle or supporting-description region. When placeholders is present, this is true exactly when the layout exposes a placeholder with type 'subtitle'.",
|
|
152
|
-
"examples": [
|
|
153
|
-
false,
|
|
154
|
-
true
|
|
155
|
-
]
|
|
156
|
-
},
|
|
157
|
-
"slideTitleAlignment": {
|
|
158
|
-
"type": "string",
|
|
159
|
-
"enum": [
|
|
160
|
-
"None",
|
|
161
|
-
"Left",
|
|
162
|
-
"Center"
|
|
163
|
-
],
|
|
164
|
-
"description": "Horizontal alignment of the slide title region."
|
|
165
|
-
},
|
|
166
|
-
"slideImage": {
|
|
167
|
-
"type": "boolean",
|
|
168
|
-
"description": "Whether the layout includes a dedicated slide-level image region (separate from any content image).",
|
|
169
|
-
"examples": [
|
|
170
|
-
false,
|
|
171
|
-
true
|
|
172
|
-
]
|
|
173
|
-
},
|
|
174
|
-
"slideImageAlignment": {
|
|
175
|
-
"type": "string",
|
|
176
|
-
"enum": [
|
|
177
|
-
"None",
|
|
178
|
-
"Top",
|
|
179
|
-
"Bottom",
|
|
180
|
-
"Left",
|
|
181
|
-
"Right",
|
|
182
|
-
"Background"
|
|
183
|
-
],
|
|
184
|
-
"description": "Where the slide-level image sits relative to the content."
|
|
185
|
-
},
|
|
186
|
-
"slideLayoutDirection": {
|
|
187
|
-
"type": "string",
|
|
188
|
-
"enum": [
|
|
189
|
-
"None",
|
|
190
|
-
"Horizontal",
|
|
191
|
-
"Vertical"
|
|
192
|
-
],
|
|
193
|
-
"description": "Axis along which the layout's primary regions are arranged."
|
|
194
|
-
},
|
|
195
|
-
"placeholders": {
|
|
196
|
-
"type": "array",
|
|
197
|
-
"items": { "$ref": "#/$defs/Placeholder" },
|
|
198
|
-
"description": "Ordered regions the layout exposes. The engine fills 'title', 'subtitle', and 'tag' placeholders from Slide.title, Slide.subtitle, and Slide.tag. Other placeholders are content-kind hints for renderers and pickers. Slide content itself lives either in root payload fields or promoted region keys on Slide. Chrome — slide number, footer, date — is not included here; it is owned by Design.header / Design.footer."
|
|
199
|
-
},
|
|
200
|
-
"tags": {
|
|
201
|
-
"type": "array",
|
|
202
|
-
"items": {
|
|
203
|
-
"type": "string"
|
|
204
|
-
},
|
|
205
|
-
"description": "Free-form labels for filtering and search.",
|
|
206
|
-
"examples": [
|
|
207
|
-
[
|
|
208
|
-
"title",
|
|
209
|
-
"minimal"
|
|
210
|
-
],
|
|
211
|
-
[
|
|
212
|
-
"chart",
|
|
213
|
-
"kpi"
|
|
214
|
-
],
|
|
215
|
-
[
|
|
216
|
-
"two-column",
|
|
217
|
-
"comparison"
|
|
218
|
-
]
|
|
219
|
-
]
|
|
220
|
-
},
|
|
221
|
-
"preview": {
|
|
222
|
-
"type": "object",
|
|
223
|
-
"description": "Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.",
|
|
224
|
-
"properties": {
|
|
225
|
-
"src": {
|
|
226
|
-
"type": "string",
|
|
227
|
-
"format": "uri",
|
|
228
|
-
"description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
|
|
229
|
-
"examples": [
|
|
230
|
-
"https://www.pptx.gallery/layouts/title-left.png"
|
|
231
|
-
]
|
|
232
|
-
},
|
|
233
|
-
"thumbnailSrc": {
|
|
234
|
-
"type": "string",
|
|
235
|
-
"format": "uri",
|
|
236
|
-
"description": "Smaller thumbnail preview suited to dense grid views.",
|
|
237
|
-
"examples": [
|
|
238
|
-
"https://www.pptx.gallery/layouts/title-left.thumbnail.png"
|
|
239
|
-
]
|
|
240
|
-
},
|
|
241
|
-
"vectorSrc": {
|
|
242
|
-
"type": "string",
|
|
243
|
-
"format": "uri",
|
|
244
|
-
"description": "SVG / vector preview for crisp scaling at any size.",
|
|
245
|
-
"examples": [
|
|
246
|
-
"https://www.pptx.gallery/layouts/title-left.svg"
|
|
247
|
-
]
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
},
|
|
252
|
-
"$defs": {
|
|
253
|
-
"Placeholder": {
|
|
254
|
-
"type": "object",
|
|
255
|
-
"required": [
|
|
256
|
-
"type"
|
|
257
|
-
],
|
|
258
|
-
"description": "A single region inside a slide layout. Title, subtitle, and tag placeholders bind to the corresponding Slide fields; other placeholders describe the intended content kind for that region. The array order in the surrounding 'placeholders' field preserves layout region order.",
|
|
259
|
-
"properties": {
|
|
260
|
-
"type": {
|
|
261
|
-
"type": "string",
|
|
262
|
-
"enum": [
|
|
263
|
-
"title",
|
|
264
|
-
"subtitle",
|
|
265
|
-
"tag",
|
|
266
|
-
"text",
|
|
267
|
-
"list",
|
|
268
|
-
"chart",
|
|
269
|
-
"picture",
|
|
270
|
-
"table",
|
|
271
|
-
"media",
|
|
272
|
-
"diagram",
|
|
273
|
-
"code"
|
|
274
|
-
],
|
|
275
|
-
"description": "OPF placeholder kind. 'text' and 'list' are flexible textual content regions. The named kinds describe a specific content role used by pickers, AI generation, and engine defaulting."
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openpresentation.org/schema/opf-layout/v1",
|
|
4
|
+
"title": "Slide Layout",
|
|
5
|
+
"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.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"$schema",
|
|
9
|
+
"id",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"$schema": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"const": "https://openpresentation.org/schema/opf-layout/v1",
|
|
16
|
+
"description": "Identifies this record as a slide layout in the openpresentation.org catalog."
|
|
17
|
+
},
|
|
18
|
+
"id": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
21
|
+
"description": "Stable slug used by OPF documents to reference this layout via Slide.layout. Lowercase kebab-case.",
|
|
22
|
+
"examples": [
|
|
23
|
+
"title",
|
|
24
|
+
"title-subtitle",
|
|
25
|
+
"chart-1x",
|
|
26
|
+
"image-bleed"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"name": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Human-readable layout name shown in layout pickers.",
|
|
32
|
+
"examples": [
|
|
33
|
+
"Title",
|
|
34
|
+
"Title Subtitle",
|
|
35
|
+
"Chart 1x",
|
|
36
|
+
"Image Bleed"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"summary": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "One-sentence positioning of the layout — when to reach for it.",
|
|
42
|
+
"examples": [
|
|
43
|
+
"Slide title aligned left over a single content area — flexible workhorse layout.",
|
|
44
|
+
"Title plus a single chart on the left and supporting copy on the right."
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"description": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Longer prose describing the layout structure and ideal use cases.",
|
|
50
|
+
"examples": [
|
|
51
|
+
"Two equal-width columns under a left-aligned slide title. Use when comparing two ideas, before/after pairs, or paired text + image content."
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"contentType": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"enum": [
|
|
57
|
+
"Title",
|
|
58
|
+
"Text",
|
|
59
|
+
"List",
|
|
60
|
+
"Image",
|
|
61
|
+
"Number",
|
|
62
|
+
"Chart"
|
|
63
|
+
],
|
|
64
|
+
"description": "Primary kind of content the layout holds. Drives pickers and AI placement decisions."
|
|
65
|
+
},
|
|
66
|
+
"contentMultiple": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"enum": [
|
|
69
|
+
"None",
|
|
70
|
+
"1x",
|
|
71
|
+
"2x",
|
|
72
|
+
"3x",
|
|
73
|
+
"4x",
|
|
74
|
+
"5x",
|
|
75
|
+
"6x"
|
|
76
|
+
],
|
|
77
|
+
"description": "How many parallel content blocks the layout exposes ('2x' = two-column, '3x' = three-up, etc.)."
|
|
78
|
+
},
|
|
79
|
+
"contentAlignment": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": [
|
|
82
|
+
"None",
|
|
83
|
+
"Left",
|
|
84
|
+
"Center"
|
|
85
|
+
],
|
|
86
|
+
"description": "Default horizontal alignment of the content area."
|
|
87
|
+
},
|
|
88
|
+
"contentBox": {
|
|
89
|
+
"type": "boolean",
|
|
90
|
+
"description": "Whether the content area is rendered inside a visible box / card.",
|
|
91
|
+
"examples": [
|
|
92
|
+
false,
|
|
93
|
+
true
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
"contentTypeChartPrimary": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"enum": [
|
|
99
|
+
"None",
|
|
100
|
+
"Top",
|
|
101
|
+
"Bottom",
|
|
102
|
+
"Left",
|
|
103
|
+
"Right"
|
|
104
|
+
],
|
|
105
|
+
"description": "For chart layouts, where the primary chart sits relative to the rest of the content."
|
|
106
|
+
},
|
|
107
|
+
"contentTypeImageFill": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"enum": [
|
|
110
|
+
"None",
|
|
111
|
+
"Crop",
|
|
112
|
+
"Fit"
|
|
113
|
+
],
|
|
114
|
+
"description": "For image layouts, how the image fills its slot."
|
|
115
|
+
},
|
|
116
|
+
"contentTypeListBullet": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"enum": [
|
|
119
|
+
"None",
|
|
120
|
+
"Character",
|
|
121
|
+
"Image"
|
|
122
|
+
],
|
|
123
|
+
"description": "For list layouts, how bullets are rendered."
|
|
124
|
+
},
|
|
125
|
+
"contentTypeListHeading": {
|
|
126
|
+
"type": "boolean",
|
|
127
|
+
"description": "For list layouts, whether each list item carries a heading.",
|
|
128
|
+
"examples": [
|
|
129
|
+
false,
|
|
130
|
+
true
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
"slideTag": {
|
|
134
|
+
"type": "boolean",
|
|
135
|
+
"description": "Whether the layout includes a small slide-level tag / label region above or near the title.",
|
|
136
|
+
"examples": [
|
|
137
|
+
false,
|
|
138
|
+
true
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"slideTitle": {
|
|
142
|
+
"type": "boolean",
|
|
143
|
+
"description": "Whether the layout includes a slide title region.",
|
|
144
|
+
"examples": [
|
|
145
|
+
true,
|
|
146
|
+
false
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
"slideSubtitle": {
|
|
150
|
+
"type": "boolean",
|
|
151
|
+
"description": "Whether the layout includes a slide-level subtitle or supporting-description region. When placeholders is present, this is true exactly when the layout exposes a placeholder with type 'subtitle'.",
|
|
152
|
+
"examples": [
|
|
153
|
+
false,
|
|
154
|
+
true
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"slideTitleAlignment": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"enum": [
|
|
160
|
+
"None",
|
|
161
|
+
"Left",
|
|
162
|
+
"Center"
|
|
163
|
+
],
|
|
164
|
+
"description": "Horizontal alignment of the slide title region."
|
|
165
|
+
},
|
|
166
|
+
"slideImage": {
|
|
167
|
+
"type": "boolean",
|
|
168
|
+
"description": "Whether the layout includes a dedicated slide-level image region (separate from any content image).",
|
|
169
|
+
"examples": [
|
|
170
|
+
false,
|
|
171
|
+
true
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"slideImageAlignment": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"enum": [
|
|
177
|
+
"None",
|
|
178
|
+
"Top",
|
|
179
|
+
"Bottom",
|
|
180
|
+
"Left",
|
|
181
|
+
"Right",
|
|
182
|
+
"Background"
|
|
183
|
+
],
|
|
184
|
+
"description": "Where the slide-level image sits relative to the content."
|
|
185
|
+
},
|
|
186
|
+
"slideLayoutDirection": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"enum": [
|
|
189
|
+
"None",
|
|
190
|
+
"Horizontal",
|
|
191
|
+
"Vertical"
|
|
192
|
+
],
|
|
193
|
+
"description": "Axis along which the layout's primary regions are arranged."
|
|
194
|
+
},
|
|
195
|
+
"placeholders": {
|
|
196
|
+
"type": "array",
|
|
197
|
+
"items": { "$ref": "#/$defs/Placeholder" },
|
|
198
|
+
"description": "Ordered regions the layout exposes. The engine fills 'title', 'subtitle', and 'tag' placeholders from Slide.title, Slide.subtitle, and Slide.tag. Other placeholders are content-kind hints for renderers and pickers. Slide content itself lives either in root payload fields or promoted region keys on Slide. Chrome — slide number, footer, date — is not included here; it is owned by Design.header / Design.footer."
|
|
199
|
+
},
|
|
200
|
+
"tags": {
|
|
201
|
+
"type": "array",
|
|
202
|
+
"items": {
|
|
203
|
+
"type": "string"
|
|
204
|
+
},
|
|
205
|
+
"description": "Free-form labels for filtering and search.",
|
|
206
|
+
"examples": [
|
|
207
|
+
[
|
|
208
|
+
"title",
|
|
209
|
+
"minimal"
|
|
210
|
+
],
|
|
211
|
+
[
|
|
212
|
+
"chart",
|
|
213
|
+
"kpi"
|
|
214
|
+
],
|
|
215
|
+
[
|
|
216
|
+
"two-column",
|
|
217
|
+
"comparison"
|
|
218
|
+
]
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"preview": {
|
|
222
|
+
"type": "object",
|
|
223
|
+
"description": "Visual previews of the record, used by picker UIs and inline rendering. All sub-fields are optional; engines fall back gracefully when previews aren't available.",
|
|
224
|
+
"properties": {
|
|
225
|
+
"src": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"format": "uri",
|
|
228
|
+
"description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
|
|
229
|
+
"examples": [
|
|
230
|
+
"https://www.pptx.gallery/layouts/title-left.png"
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
"thumbnailSrc": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"format": "uri",
|
|
236
|
+
"description": "Smaller thumbnail preview suited to dense grid views.",
|
|
237
|
+
"examples": [
|
|
238
|
+
"https://www.pptx.gallery/layouts/title-left.thumbnail.png"
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
"vectorSrc": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"format": "uri",
|
|
244
|
+
"description": "SVG / vector preview for crisp scaling at any size.",
|
|
245
|
+
"examples": [
|
|
246
|
+
"https://www.pptx.gallery/layouts/title-left.svg"
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
"$defs": {
|
|
253
|
+
"Placeholder": {
|
|
254
|
+
"type": "object",
|
|
255
|
+
"required": [
|
|
256
|
+
"type"
|
|
257
|
+
],
|
|
258
|
+
"description": "A single region inside a slide layout. Title, subtitle, and tag placeholders bind to the corresponding Slide fields; other placeholders describe the intended content kind for that region. The array order in the surrounding 'placeholders' field preserves layout region order.",
|
|
259
|
+
"properties": {
|
|
260
|
+
"type": {
|
|
261
|
+
"type": "string",
|
|
262
|
+
"enum": [
|
|
263
|
+
"title",
|
|
264
|
+
"subtitle",
|
|
265
|
+
"tag",
|
|
266
|
+
"text",
|
|
267
|
+
"list",
|
|
268
|
+
"chart",
|
|
269
|
+
"picture",
|
|
270
|
+
"table",
|
|
271
|
+
"media",
|
|
272
|
+
"diagram",
|
|
273
|
+
"code"
|
|
274
|
+
],
|
|
275
|
+
"description": "OPF placeholder kind. 'text' and 'list' are flexible textual content regions. The named kinds describe a specific content role used by pickers, AI generation, and engine defaulting."
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|