@openpresentation/opf 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +103 -0
- package/dist/catalogs.d.ts +33933 -0
- package/dist/catalogs.js +19113 -0
- package/dist/catalogs.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +25815 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +12361 -0
- package/dist/schemas.js +6266 -0
- package/dist/schemas.js.map +1 -0
- package/dist/spec/catalogs/audiences/all-hands.json +23 -0
- package/dist/spec/catalogs/audiences/board.json +22 -0
- package/dist/spec/catalogs/audiences/candidates.json +23 -0
- package/dist/spec/catalogs/audiences/customers.json +23 -0
- package/dist/spec/catalogs/audiences/engineering-team.json +23 -0
- package/dist/spec/catalogs/audiences/executives.json +23 -0
- package/dist/spec/catalogs/audiences/index.json +67 -0
- package/dist/spec/catalogs/audiences/investors.json +23 -0
- package/dist/spec/catalogs/audiences/marketing-team.json +23 -0
- package/dist/spec/catalogs/audiences/regulators.json +23 -0
- package/dist/spec/catalogs/audiences/sales-team.json +23 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +90 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +102 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +78 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +90 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +102 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +78 -0
- package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +99 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +100 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +122 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +83 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +99 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +89 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +107 -0
- package/dist/spec/catalogs/chart-types/area.json +77 -0
- package/dist/spec/catalogs/chart-types/australia.json +70 -0
- package/dist/spec/catalogs/chart-types/bar.json +67 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +130 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +162 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker.json +98 -0
- package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +88 -0
- package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +100 -0
- package/dist/spec/catalogs/chart-types/bullet-bar.json +76 -0
- package/dist/spec/catalogs/chart-types/bullet-column-2x.json +88 -0
- package/dist/spec/catalogs/chart-types/bullet-column-3x.json +100 -0
- package/dist/spec/catalogs/chart-types/bullet-column.json +76 -0
- package/dist/spec/catalogs/chart-types/canada.json +80 -0
- package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +83 -0
- package/dist/spec/catalogs/chart-types/clustered-column.json +89 -0
- package/dist/spec/catalogs/chart-types/column.json +71 -0
- package/dist/spec/catalogs/chart-types/dot-plot-2x.json +98 -0
- package/dist/spec/catalogs/chart-types/dot-plot-3x.json +123 -0
- package/dist/spec/catalogs/chart-types/dot-plot-4x.json +148 -0
- package/dist/spec/catalogs/chart-types/dot-plot-5x.json +173 -0
- package/dist/spec/catalogs/chart-types/dot-plot-6x.json +198 -0
- package/dist/spec/catalogs/chart-types/dot-plot.json +73 -0
- package/dist/spec/catalogs/chart-types/doughnut.json +57 -0
- package/dist/spec/catalogs/chart-types/dumbbell.json +119 -0
- package/dist/spec/catalogs/chart-types/filled-radar.json +70 -0
- package/dist/spec/catalogs/chart-types/funnel.json +64 -0
- package/dist/spec/catalogs/chart-types/histogram.json +145 -0
- package/dist/spec/catalogs/chart-types/index.json +843 -0
- package/dist/spec/catalogs/chart-types/line-2x.json +99 -0
- package/dist/spec/catalogs/chart-types/line-3x.json +121 -0
- package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +143 -0
- package/dist/spec/catalogs/chart-types/line-with-high-low.json +143 -0
- package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +100 -0
- package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +122 -0
- package/dist/spec/catalogs/chart-types/line-with-markers.json +78 -0
- package/dist/spec/catalogs/chart-types/line.json +77 -0
- package/dist/spec/catalogs/chart-types/pareto.json +163 -0
- package/dist/spec/catalogs/chart-types/pie.json +57 -0
- package/dist/spec/catalogs/chart-types/radar-with-markers.json +70 -0
- package/dist/spec/catalogs/chart-types/radar.json +70 -0
- package/dist/spec/catalogs/chart-types/scatter.json +91 -0
- package/dist/spec/catalogs/chart-types/sparkline-2x.json +137 -0
- package/dist/spec/catalogs/chart-types/sparkline-3x.json +173 -0
- package/dist/spec/catalogs/chart-types/sparkline-4x.json +209 -0
- package/dist/spec/catalogs/chart-types/sparkline-5x.json +245 -0
- package/dist/spec/catalogs/chart-types/sparkline-6x.json +281 -0
- package/dist/spec/catalogs/chart-types/sparkline.json +101 -0
- package/dist/spec/catalogs/chart-types/stacked-area-2x.json +100 -0
- package/dist/spec/catalogs/chart-types/stacked-area-3x.json +122 -0
- package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +83 -0
- package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +99 -0
- package/dist/spec/catalogs/chart-types/stacked-column-2x.json +89 -0
- package/dist/spec/catalogs/chart-types/stacked-column-3x.json +107 -0
- package/dist/spec/catalogs/chart-types/stacked-line-2x.json +100 -0
- package/dist/spec/catalogs/chart-types/stacked-line-3x.json +122 -0
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +101 -0
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +123 -0
- package/dist/spec/catalogs/chart-types/treemap-2x.json +95 -0
- package/dist/spec/catalogs/chart-types/treemap-3x.json +116 -0
- package/dist/spec/catalogs/chart-types/treemap.json +66 -0
- package/dist/spec/catalogs/chart-types/united-kindom.json +62 -0
- package/dist/spec/catalogs/chart-types/united-states.json +76 -0
- package/dist/spec/catalogs/chart-types/waterfall.json +70 -0
- package/dist/spec/catalogs/chart-types/world.json +82 -0
- package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -0
- package/dist/spec/catalogs/color-schemes/bold-red.json +17 -0
- package/dist/spec/catalogs/color-schemes/boost.json +17 -0
- package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -0
- package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -0
- package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -0
- package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -0
- package/dist/spec/catalogs/color-schemes/forest-green.json +17 -0
- package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -0
- package/dist/spec/catalogs/color-schemes/index.json +77 -0
- package/dist/spec/catalogs/color-schemes/luxury.json +17 -0
- package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -0
- package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -0
- package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -0
- package/dist/spec/catalogs/color-schemes/vibes.json +17 -0
- package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -0
- package/dist/spec/catalogs/font-schemes/aparajita.json +15 -0
- package/dist/spec/catalogs/font-schemes/aptos.json +12 -0
- package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -0
- package/dist/spec/catalogs/font-schemes/arial.json +12 -0
- package/dist/spec/catalogs/font-schemes/batang.json +14 -0
- package/dist/spec/catalogs/font-schemes/bookman.json +12 -0
- package/dist/spec/catalogs/font-schemes/calibri.json +12 -0
- package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -0
- package/dist/spec/catalogs/font-schemes/consolas.json +12 -0
- package/dist/spec/catalogs/font-schemes/constantia.json +12 -0
- package/dist/spec/catalogs/font-schemes/courier-new.json +12 -0
- package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -0
- package/dist/spec/catalogs/font-schemes/david.json +14 -0
- package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -0
- package/dist/spec/catalogs/font-schemes/fangsong.json +14 -0
- package/dist/spec/catalogs/font-schemes/garamond.json +12 -0
- package/dist/spec/catalogs/font-schemes/gautami.json +14 -0
- package/dist/spec/catalogs/font-schemes/georgia.json +12 -0
- package/dist/spec/catalogs/font-schemes/gisha.json +15 -0
- package/dist/spec/catalogs/font-schemes/grandview.json +12 -0
- package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -0
- package/dist/spec/catalogs/font-schemes/impact.json +12 -0
- package/dist/spec/catalogs/font-schemes/index.json +452 -0
- package/dist/spec/catalogs/font-schemes/kalinga.json +14 -0
- package/dist/spec/catalogs/font-schemes/kartika.json +14 -0
- package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -0
- package/dist/spec/catalogs/font-schemes/latha.json +14 -0
- package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -0
- package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -0
- package/dist/spec/catalogs/font-schemes/mangal.json +17 -0
- package/dist/spec/catalogs/font-schemes/meiryo.json +14 -0
- package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -0
- package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -0
- package/dist/spec/catalogs/font-schemes/mingliu.json +14 -0
- package/dist/spec/catalogs/font-schemes/miriam.json +14 -0
- package/dist/spec/catalogs/font-schemes/montserrat.json +12 -0
- package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -0
- package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -0
- package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -0
- package/dist/spec/catalogs/font-schemes/nyala.json +14 -0
- package/dist/spec/catalogs/font-schemes/open-sans.json +12 -0
- package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -0
- package/dist/spec/catalogs/font-schemes/poppins.json +12 -0
- package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -0
- package/dist/spec/catalogs/font-schemes/raavi.json +14 -0
- package/dist/spec/catalogs/font-schemes/raleway.json +12 -0
- package/dist/spec/catalogs/font-schemes/roboto.json +12 -0
- package/dist/spec/catalogs/font-schemes/rockwell.json +12 -0
- package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -0
- package/dist/spec/catalogs/font-schemes/seaford.json +12 -0
- package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -0
- package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -0
- package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -0
- package/dist/spec/catalogs/font-schemes/shruti.json +14 -0
- package/dist/spec/catalogs/font-schemes/simsun.json +14 -0
- package/dist/spec/catalogs/font-schemes/skeena.json +12 -0
- package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -0
- package/dist/spec/catalogs/font-schemes/tahoma.json +12 -0
- package/dist/spec/catalogs/font-schemes/tenorite.json +12 -0
- package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -0
- package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -0
- package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -0
- package/dist/spec/catalogs/font-schemes/tunga.json +14 -0
- package/dist/spec/catalogs/font-schemes/verdana.json +12 -0
- package/dist/spec/catalogs/font-schemes/vrinda.json +14 -0
- package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -0
- package/dist/spec/catalogs/languages/afrikaans.json +9 -0
- package/dist/spec/catalogs/languages/albanian.json +9 -0
- package/dist/spec/catalogs/languages/amharic.json +9 -0
- package/dist/spec/catalogs/languages/arabic.json +9 -0
- package/dist/spec/catalogs/languages/armenian.json +9 -0
- package/dist/spec/catalogs/languages/aymara.json +9 -0
- package/dist/spec/catalogs/languages/azerbaijani.json +9 -0
- package/dist/spec/catalogs/languages/bengali.json +9 -0
- package/dist/spec/catalogs/languages/berber-latin.json +9 -0
- package/dist/spec/catalogs/languages/bosnian-latin.json +9 -0
- package/dist/spec/catalogs/languages/bulgarian.json +9 -0
- package/dist/spec/catalogs/languages/catalan.json +9 -0
- package/dist/spec/catalogs/languages/cebuano.json +9 -0
- package/dist/spec/catalogs/languages/chinese-simplified.json +9 -0
- package/dist/spec/catalogs/languages/chinese-traditional.json +9 -0
- package/dist/spec/catalogs/languages/chittagonian.json +9 -0
- package/dist/spec/catalogs/languages/croatian.json +9 -0
- package/dist/spec/catalogs/languages/czech.json +9 -0
- package/dist/spec/catalogs/languages/danish.json +9 -0
- package/dist/spec/catalogs/languages/dutch.json +9 -0
- package/dist/spec/catalogs/languages/english-au.json +9 -0
- package/dist/spec/catalogs/languages/english-ca.json +9 -0
- package/dist/spec/catalogs/languages/english-gb.json +9 -0
- package/dist/spec/catalogs/languages/english-in.json +9 -0
- package/dist/spec/catalogs/languages/english-us.json +9 -0
- package/dist/spec/catalogs/languages/english.json +9 -0
- package/dist/spec/catalogs/languages/estonian.json +9 -0
- package/dist/spec/catalogs/languages/filipino.json +9 -0
- package/dist/spec/catalogs/languages/finnish.json +9 -0
- package/dist/spec/catalogs/languages/french.json +9 -0
- package/dist/spec/catalogs/languages/fulfulde.json +9 -0
- package/dist/spec/catalogs/languages/galician.json +9 -0
- package/dist/spec/catalogs/languages/georgian.json +9 -0
- package/dist/spec/catalogs/languages/german.json +9 -0
- package/dist/spec/catalogs/languages/greek.json +9 -0
- package/dist/spec/catalogs/languages/gujarati.json +9 -0
- package/dist/spec/catalogs/languages/hausa.json +9 -0
- package/dist/spec/catalogs/languages/hebrew.json +9 -0
- package/dist/spec/catalogs/languages/hindi.json +9 -0
- package/dist/spec/catalogs/languages/hungarian.json +9 -0
- package/dist/spec/catalogs/languages/igbo.json +9 -0
- package/dist/spec/catalogs/languages/index.json +565 -0
- package/dist/spec/catalogs/languages/indonesian.json +9 -0
- package/dist/spec/catalogs/languages/italian.json +9 -0
- package/dist/spec/catalogs/languages/japanese.json +9 -0
- package/dist/spec/catalogs/languages/kannada.json +9 -0
- package/dist/spec/catalogs/languages/kazakh.json +9 -0
- package/dist/spec/catalogs/languages/khmer.json +9 -0
- package/dist/spec/catalogs/languages/kinyarwanda.json +9 -0
- package/dist/spec/catalogs/languages/korean.json +9 -0
- package/dist/spec/catalogs/languages/kurmanji.json +9 -0
- package/dist/spec/catalogs/languages/latvian.json +9 -0
- package/dist/spec/catalogs/languages/lithuanian.json +9 -0
- package/dist/spec/catalogs/languages/macedonian.json +9 -0
- package/dist/spec/catalogs/languages/malagasy.json +9 -0
- package/dist/spec/catalogs/languages/malay.json +9 -0
- package/dist/spec/catalogs/languages/malayalam.json +9 -0
- package/dist/spec/catalogs/languages/maori.json +9 -0
- package/dist/spec/catalogs/languages/marathi.json +9 -0
- package/dist/spec/catalogs/languages/mongolian.json +9 -0
- package/dist/spec/catalogs/languages/nepali.json +9 -0
- package/dist/spec/catalogs/languages/norwegian.json +9 -0
- package/dist/spec/catalogs/languages/odia.json +9 -0
- package/dist/spec/catalogs/languages/oromo.json +9 -0
- package/dist/spec/catalogs/languages/pashto.json +9 -0
- package/dist/spec/catalogs/languages/persian.json +9 -0
- package/dist/spec/catalogs/languages/polish.json +9 -0
- package/dist/spec/catalogs/languages/portuguese.json +9 -0
- package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -0
- package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -0
- package/dist/spec/catalogs/languages/romanian.json +9 -0
- package/dist/spec/catalogs/languages/russian.json +9 -0
- package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -0
- package/dist/spec/catalogs/languages/serbian-latin.json +9 -0
- package/dist/spec/catalogs/languages/shona.json +9 -0
- package/dist/spec/catalogs/languages/slovak.json +9 -0
- package/dist/spec/catalogs/languages/slovenian.json +9 -0
- package/dist/spec/catalogs/languages/somali.json +9 -0
- package/dist/spec/catalogs/languages/spanish.json +9 -0
- package/dist/spec/catalogs/languages/swahili.json +9 -0
- package/dist/spec/catalogs/languages/swedish.json +9 -0
- package/dist/spec/catalogs/languages/tagalog.json +9 -0
- package/dist/spec/catalogs/languages/tajik.json +9 -0
- package/dist/spec/catalogs/languages/tamil.json +9 -0
- package/dist/spec/catalogs/languages/telugu.json +9 -0
- package/dist/spec/catalogs/languages/thai.json +9 -0
- package/dist/spec/catalogs/languages/turkish.json +9 -0
- package/dist/spec/catalogs/languages/ukrainian.json +9 -0
- package/dist/spec/catalogs/languages/urdu.json +9 -0
- package/dist/spec/catalogs/languages/uzbek-latin.json +9 -0
- package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -0
- package/dist/spec/catalogs/languages/xhosa.json +9 -0
- package/dist/spec/catalogs/languages/yoruba.json +9 -0
- package/dist/spec/catalogs/languages/zulu.json +9 -0
- package/dist/spec/catalogs/layouts/blank.json +6 -0
- package/dist/spec/catalogs/layouts/chart-1x.json +16 -0
- package/dist/spec/catalogs/layouts/chart-2x.json +22 -0
- package/dist/spec/catalogs/layouts/chart-3x.json +28 -0
- package/dist/spec/catalogs/layouts/code-1x.json +16 -0
- package/dist/spec/catalogs/layouts/extract/canonical.json +487 -0
- package/dist/spec/catalogs/layouts/image-1x.json +16 -0
- package/dist/spec/catalogs/layouts/image-2x.json +22 -0
- package/dist/spec/catalogs/layouts/image-3x.json +28 -0
- package/dist/spec/catalogs/layouts/image-bleed.json +10 -0
- package/dist/spec/catalogs/layouts/index.json +147 -0
- package/dist/spec/catalogs/layouts/list-1x.json +13 -0
- package/dist/spec/catalogs/layouts/list-2x.json +16 -0
- package/dist/spec/catalogs/layouts/list-3x.json +19 -0
- package/dist/spec/catalogs/layouts/list-4x.json +22 -0
- package/dist/spec/catalogs/layouts/list-5x.json +25 -0
- package/dist/spec/catalogs/layouts/list-6x.json +28 -0
- package/dist/spec/catalogs/layouts/media-1x.json +16 -0
- package/dist/spec/catalogs/layouts/number-1x.json +13 -0
- package/dist/spec/catalogs/layouts/number-2x.json +16 -0
- package/dist/spec/catalogs/layouts/number-3x.json +19 -0
- package/dist/spec/catalogs/layouts/number-4x.json +22 -0
- package/dist/spec/catalogs/layouts/number-5x.json +25 -0
- package/dist/spec/catalogs/layouts/number-6x.json +28 -0
- package/dist/spec/catalogs/layouts/table-1x.json +16 -0
- package/dist/spec/catalogs/layouts/text-1x.json +13 -0
- package/dist/spec/catalogs/layouts/text-2x.json +16 -0
- package/dist/spec/catalogs/layouts/text-3x.json +19 -0
- package/dist/spec/catalogs/layouts/title-subtitle.json +13 -0
- package/dist/spec/catalogs/layouts/title.json +10 -0
- package/dist/spec/catalogs/narratives/board-meeting.json +192 -0
- package/dist/spec/catalogs/narratives/business-narrative.json +87 -0
- package/dist/spec/catalogs/narratives/business-review.json +119 -0
- package/dist/spec/catalogs/narratives/capacity-planning.json +88 -0
- package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -0
- package/dist/spec/catalogs/narratives/classic-story.json +78 -0
- package/dist/spec/catalogs/narratives/company-intro.json +96 -0
- package/dist/spec/catalogs/narratives/conference-talk.json +54 -0
- package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -0
- package/dist/spec/catalogs/narratives/educate.json +95 -0
- package/dist/spec/catalogs/narratives/employee-review.json +87 -0
- package/dist/spec/catalogs/narratives/failure-analysis.json +104 -0
- package/dist/spec/catalogs/narratives/focus.json +120 -0
- package/dist/spec/catalogs/narratives/golden-circle.json +50 -0
- package/dist/spec/catalogs/narratives/index.json +358 -0
- package/dist/spec/catalogs/narratives/innovation.json +96 -0
- package/dist/spec/catalogs/narratives/justice.json +112 -0
- package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -0
- package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -0
- package/dist/spec/catalogs/narratives/performance-review.json +111 -0
- package/dist/spec/catalogs/narratives/persuade.json +94 -0
- package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -0
- package/dist/spec/catalogs/narratives/pitch-deck.json +107 -0
- package/dist/spec/catalogs/narratives/problem-solution.json +61 -0
- package/dist/spec/catalogs/narratives/product-launch.json +104 -0
- package/dist/spec/catalogs/narratives/project-proposal.json +104 -0
- package/dist/spec/catalogs/narratives/qbr.json +85 -0
- package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -0
- package/dist/spec/catalogs/narratives/reveal.json +87 -0
- package/dist/spec/catalogs/narratives/scqa.json +55 -0
- package/dist/spec/catalogs/narratives/status-update.json +72 -0
- package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -0
- package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -0
- package/dist/spec/catalogs/narratives/survey-analysis.json +104 -0
- package/dist/spec/catalogs/narratives/survival-story.json +103 -0
- package/dist/spec/catalogs/narratives/transformation-arc.json +50 -0
- package/dist/spec/catalogs/narratives/trend-analysis.json +79 -0
- package/dist/spec/catalogs/narratives/underdog-victory.json +87 -0
- package/dist/spec/catalogs/narratives/venture-pitch.json +109 -0
- package/dist/spec/catalogs/narratives/weekly-progress.json +103 -0
- package/dist/spec/catalogs/purposes/align.json +16 -0
- package/dist/spec/catalogs/purposes/decide.json +16 -0
- package/dist/spec/catalogs/purposes/educate.json +16 -0
- package/dist/spec/catalogs/purposes/index.json +61 -0
- package/dist/spec/catalogs/purposes/inform.json +16 -0
- package/dist/spec/catalogs/purposes/persuade.json +16 -0
- package/dist/spec/catalogs/purposes/pitch.json +16 -0
- package/dist/spec/catalogs/purposes/plan.json +16 -0
- package/dist/spec/catalogs/purposes/report.json +16 -0
- package/dist/spec/catalogs/purposes/sell.json +16 -0
- package/dist/spec/catalogs/social-platforms/bluesky.json +14 -0
- package/dist/spec/catalogs/social-platforms/facebook.json +14 -0
- package/dist/spec/catalogs/social-platforms/github.json +15 -0
- package/dist/spec/catalogs/social-platforms/index.json +68 -0
- package/dist/spec/catalogs/social-platforms/instagram.json +13 -0
- package/dist/spec/catalogs/social-platforms/linkedin.json +15 -0
- package/dist/spec/catalogs/social-platforms/mastodon.json +14 -0
- package/dist/spec/catalogs/social-platforms/threads.json +13 -0
- package/dist/spec/catalogs/social-platforms/tiktok.json +14 -0
- package/dist/spec/catalogs/social-platforms/x.json +14 -0
- package/dist/spec/catalogs/social-platforms/youtube.json +14 -0
- package/dist/spec/catalogs/themes/bold.json +13 -0
- package/dist/spec/catalogs/themes/classic.json +13 -0
- package/dist/spec/catalogs/themes/dark.json +13 -0
- package/dist/spec/catalogs/themes/index.json +31 -0
- package/dist/spec/catalogs/themes/minimal.json +13 -0
- package/dist/spec/catalogs/tones/authoritative.json +31 -0
- package/dist/spec/catalogs/tones/casual.json +31 -0
- package/dist/spec/catalogs/tones/conversational.json +31 -0
- package/dist/spec/catalogs/tones/formal.json +31 -0
- package/dist/spec/catalogs/tones/index.json +49 -0
- package/dist/spec/catalogs/tones/inspirational.json +31 -0
- package/dist/spec/catalogs/tones/persuasive.json +32 -0
- package/dist/spec/catalogs/tones/technical.json +31 -0
- package/dist/spec/openapi.yaml +776 -0
- package/dist/spec/reference/engine-defaults.json +35 -0
- package/dist/spec/schemas/audience.schema.json +156 -0
- package/dist/spec/schemas/chart-type.schema.json +537 -0
- package/dist/spec/schemas/color-scheme.schema.json +200 -0
- package/dist/spec/schemas/font-scheme.schema.json +174 -0
- package/dist/spec/schemas/language.schema.json +158 -0
- package/dist/spec/schemas/layout.schema.json +280 -0
- package/dist/spec/schemas/narrative.schema.json +207 -0
- package/dist/spec/schemas/opf.schema.json +2537 -0
- package/dist/spec/schemas/purpose.schema.json +92 -0
- package/dist/spec/schemas/social-platform.schema.json +184 -0
- package/dist/spec/schemas/theme.schema.json +168 -0
- package/dist/spec/schemas/tone.schema.json +146 -0
- package/dist/types.d.ts +1102 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/validator-Be5EzqAt.d.ts +2700 -0
- package/dist/validator.d.ts +3 -0
- package/dist/validator.js +6694 -0
- package/dist/validator.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openpresentation.org/schema/opf-layout/v1",
|
|
4
|
+
"title": "OPF 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
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openpresentation.org/schema/opf-narrative/v1",
|
|
4
|
+
"title": "OPF Narrative Template",
|
|
5
|
+
"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').",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"$schema",
|
|
9
|
+
"id",
|
|
10
|
+
"name",
|
|
11
|
+
"beats"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"$schema": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"const": "https://openpresentation.org/schema/opf-narrative/v1"
|
|
17
|
+
},
|
|
18
|
+
"id": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
21
|
+
"description": "Stable slug used by OPF documents to reference this template, e.g. 'problem-solution'. Lowercase kebab-case."
|
|
22
|
+
},
|
|
23
|
+
"name": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Human-readable template name, e.g. 'Problem → Solution'."
|
|
26
|
+
},
|
|
27
|
+
"summary": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "One-sentence description of when and why to use this narrative."
|
|
30
|
+
},
|
|
31
|
+
"description": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Longer prose describing the narrative arc and ideal use cases. Used by AI-driven generation to seed deck-level direction.",
|
|
34
|
+
"examples": [
|
|
35
|
+
"Open with the cost of slow agentic workflows, contrast with what becomes possible at sub-second latency, then walk through our architecture and benchmark results, ending with a concrete adoption ask."
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"audienceFit": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": {
|
|
41
|
+
"type": "string"
|
|
42
|
+
},
|
|
43
|
+
"description": "Audiences this narrative works well for, e.g. ['executives', 'investors', 'customers']."
|
|
44
|
+
},
|
|
45
|
+
"durationRange": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"description": "Typical talk-length window this narrative suits.",
|
|
48
|
+
"properties": {
|
|
49
|
+
"minMinutes": {
|
|
50
|
+
"type": "number",
|
|
51
|
+
"exclusiveMinimum": 0
|
|
52
|
+
},
|
|
53
|
+
"maxMinutes": {
|
|
54
|
+
"type": "number",
|
|
55
|
+
"exclusiveMinimum": 0
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"tags": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"description": "Free-form labels for filtering and search, e.g. ['business', 'pitch', 'internal']."
|
|
65
|
+
},
|
|
66
|
+
"preview": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"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.",
|
|
69
|
+
"properties": {
|
|
70
|
+
"src": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"format": "uri",
|
|
73
|
+
"description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
|
|
74
|
+
"examples": [
|
|
75
|
+
"https://www.pptx.gallery/narratives/classic-story.png"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"thumbnailSrc": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"format": "uri",
|
|
81
|
+
"description": "Smaller thumbnail preview suited to dense grid views.",
|
|
82
|
+
"examples": [
|
|
83
|
+
"https://www.pptx.gallery/narratives/classic-story.thumbnail.png"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"vectorSrc": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"format": "uri",
|
|
89
|
+
"description": "SVG / vector preview for crisp scaling at any size.",
|
|
90
|
+
"examples": [
|
|
91
|
+
"https://www.pptx.gallery/narratives/classic-story.svg"
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"beats": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"minItems": 1,
|
|
99
|
+
"items": {
|
|
100
|
+
"$ref": "#/$defs/Beat"
|
|
101
|
+
},
|
|
102
|
+
"description": "Ordered list of beats that make up the narrative arc."
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"$defs": {
|
|
106
|
+
"Beat": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"description": "A single narrative beat — a labeled segment of the story arc with a specific dramatic purpose. Mirrors the NarrativeBeat definition in opf.schema.json so library entries and inline OPF beats are interchangeable.",
|
|
109
|
+
"required": [
|
|
110
|
+
"id",
|
|
111
|
+
"name"
|
|
112
|
+
],
|
|
113
|
+
"properties": {
|
|
114
|
+
"id": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
117
|
+
"description": "Stable slug used by Slide.beat to reference this beat. Lowercase kebab-case.",
|
|
118
|
+
"examples": [
|
|
119
|
+
"opening",
|
|
120
|
+
"problem",
|
|
121
|
+
"evidence",
|
|
122
|
+
"ask",
|
|
123
|
+
"next-steps"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"name": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"description": "Human-readable beat name, e.g. 'The Problem'.",
|
|
129
|
+
"examples": [
|
|
130
|
+
"Opening",
|
|
131
|
+
"The Problem",
|
|
132
|
+
"Why Now",
|
|
133
|
+
"The Ask"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"description": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"description": "Curator-written prose that explains what this beat should accomplish.",
|
|
139
|
+
"examples": [
|
|
140
|
+
"Quantify the pain customers feel today, with one striking stat the audience can repeat afterward."
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"instructions": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "Short author-facing instruction for the beat — typically one phrase. Complements 'description' with a concise directive.",
|
|
146
|
+
"examples": [
|
|
147
|
+
"Capture audience attention",
|
|
148
|
+
"Introduce problem",
|
|
149
|
+
"Detail implementation",
|
|
150
|
+
"Inspire & conclude"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"slideCount": {
|
|
154
|
+
"type": "integer",
|
|
155
|
+
"minimum": 1,
|
|
156
|
+
"description": "Optional explicit slide count for this beat. Defaults to 1 when omitted; values >1 are reserved for beats that intentionally span multiple slides. Prefer decomposing a heavy beat into multiple beats over setting a high slideCount. The validator emits a warning if the deck's actual count differs significantly.",
|
|
157
|
+
"examples": [
|
|
158
|
+
1,
|
|
159
|
+
2,
|
|
160
|
+
3
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
"slideType": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"enum": [
|
|
166
|
+
"text",
|
|
167
|
+
"list",
|
|
168
|
+
"image",
|
|
169
|
+
"shape",
|
|
170
|
+
"chart",
|
|
171
|
+
"table",
|
|
172
|
+
"video",
|
|
173
|
+
"code",
|
|
174
|
+
"metric",
|
|
175
|
+
"quote",
|
|
176
|
+
"timeline"
|
|
177
|
+
],
|
|
178
|
+
"description": "Default content kind for the beat's slide. Mirrors ContentPayload.type and helps engines choose a sensible layout when only the beat is specified."
|
|
179
|
+
},
|
|
180
|
+
"layoutHint": {
|
|
181
|
+
"type": "string",
|
|
182
|
+
"description": "Suggested layout id for the beat's opening slide, e.g. 'section-divider', 'title-slide', 'text-left'. Resolves the same way as Slide.layout — against catalogs.layouts and the default catalog at https://www.pptx.gallery/layouts.",
|
|
183
|
+
"examples": [
|
|
184
|
+
"section-divider",
|
|
185
|
+
"title-slide",
|
|
186
|
+
"title-left",
|
|
187
|
+
"two-column",
|
|
188
|
+
"text-left"
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
"thoughtCues": {
|
|
192
|
+
"type": "array",
|
|
193
|
+
"items": {
|
|
194
|
+
"type": "string"
|
|
195
|
+
},
|
|
196
|
+
"description": "Optional speaker or thinking cues attached to the beat. Surfaced in presenter notes.",
|
|
197
|
+
"examples": [
|
|
198
|
+
[
|
|
199
|
+
"What pain is the audience feeling right now?",
|
|
200
|
+
"Why hasn't anyone solved this yet?"
|
|
201
|
+
]
|
|
202
|
+
]
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|