@openpresentation/opf 0.1.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +146 -103
- package/dist/catalogs.d.ts +11 -1531
- package/dist/catalogs.js +5 -613
- package/dist/catalogs.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3862 -662
- package/dist/index.js.map +1 -1
- package/dist/previews.d.ts +40 -0
- package/dist/previews.js +447 -0
- package/dist/previews.js.map +1 -0
- package/dist/schemas.d.ts +153 -141
- package/dist/schemas.js +57 -48
- package/dist/schemas.js.map +1 -1
- package/dist/spec/catalogs/audiences/all-hands.json +23 -23
- package/dist/spec/catalogs/audiences/board.json +22 -22
- package/dist/spec/catalogs/audiences/candidates.json +23 -23
- package/dist/spec/catalogs/audiences/customers.json +23 -23
- package/dist/spec/catalogs/audiences/engineering-team.json +23 -23
- package/dist/spec/catalogs/audiences/executives.json +23 -23
- package/dist/spec/catalogs/audiences/index.json +67 -67
- package/dist/spec/catalogs/audiences/investors.json +23 -23
- package/dist/spec/catalogs/audiences/marketing-team.json +23 -23
- package/dist/spec/catalogs/audiences/regulators.json +23 -23
- package/dist/spec/catalogs/audiences/sales-team.json +23 -23
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +86 -90
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +98 -102
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +74 -78
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +86 -90
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +98 -102
- package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +74 -78
- package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +95 -99
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +95 -99
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +85 -89
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +103 -107
- package/dist/spec/catalogs/chart-types/area.json +73 -77
- package/dist/spec/catalogs/chart-types/australia.json +66 -70
- package/dist/spec/catalogs/chart-types/bar.json +63 -67
- package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +126 -130
- package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +158 -162
- package/dist/spec/catalogs/chart-types/box-and-whisker.json +94 -98
- package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +84 -88
- package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +96 -100
- package/dist/spec/catalogs/chart-types/bullet-bar.json +72 -76
- package/dist/spec/catalogs/chart-types/bullet-column-2x.json +84 -88
- package/dist/spec/catalogs/chart-types/bullet-column-3x.json +96 -100
- package/dist/spec/catalogs/chart-types/bullet-column.json +72 -76
- package/dist/spec/catalogs/chart-types/canada.json +76 -80
- package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/clustered-column.json +85 -89
- package/dist/spec/catalogs/chart-types/column.json +67 -71
- package/dist/spec/catalogs/chart-types/dot-plot-2x.json +94 -98
- package/dist/spec/catalogs/chart-types/dot-plot-3x.json +119 -123
- package/dist/spec/catalogs/chart-types/dot-plot-4x.json +144 -148
- package/dist/spec/catalogs/chart-types/dot-plot-5x.json +169 -173
- package/dist/spec/catalogs/chart-types/dot-plot-6x.json +194 -198
- package/dist/spec/catalogs/chart-types/dot-plot.json +69 -73
- package/dist/spec/catalogs/chart-types/doughnut.json +53 -57
- package/dist/spec/catalogs/chart-types/dumbbell.json +115 -119
- package/dist/spec/catalogs/chart-types/filled-radar.json +66 -70
- package/dist/spec/catalogs/chart-types/funnel.json +60 -64
- package/dist/spec/catalogs/chart-types/histogram.json +141 -145
- package/dist/spec/catalogs/chart-types/index.json +539 -843
- package/dist/spec/catalogs/chart-types/line-2x.json +95 -99
- package/dist/spec/catalogs/chart-types/line-3x.json +117 -121
- package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +139 -143
- package/dist/spec/catalogs/chart-types/line-with-high-low.json +139 -143
- package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/line-with-markers.json +74 -78
- package/dist/spec/catalogs/chart-types/line.json +73 -77
- package/dist/spec/catalogs/chart-types/pareto.json +159 -163
- package/dist/spec/catalogs/chart-types/pie.json +53 -57
- package/dist/spec/catalogs/chart-types/radar-with-markers.json +66 -70
- package/dist/spec/catalogs/chart-types/radar.json +66 -70
- package/dist/spec/catalogs/chart-types/scatter.json +87 -91
- package/dist/spec/catalogs/chart-types/sparkline-2x.json +133 -137
- package/dist/spec/catalogs/chart-types/sparkline-3x.json +169 -173
- package/dist/spec/catalogs/chart-types/sparkline-4x.json +205 -209
- package/dist/spec/catalogs/chart-types/sparkline-5x.json +241 -245
- package/dist/spec/catalogs/chart-types/sparkline-6x.json +277 -281
- package/dist/spec/catalogs/chart-types/sparkline.json +97 -101
- package/dist/spec/catalogs/chart-types/stacked-area-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/stacked-area-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +79 -83
- package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +95 -99
- package/dist/spec/catalogs/chart-types/stacked-column-2x.json +85 -89
- package/dist/spec/catalogs/chart-types/stacked-column-3x.json +103 -107
- package/dist/spec/catalogs/chart-types/stacked-line-2x.json +96 -100
- package/dist/spec/catalogs/chart-types/stacked-line-3x.json +118 -122
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +97 -101
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +119 -123
- package/dist/spec/catalogs/chart-types/treemap-2x.json +91 -95
- package/dist/spec/catalogs/chart-types/treemap-3x.json +112 -116
- package/dist/spec/catalogs/chart-types/treemap.json +62 -66
- package/dist/spec/catalogs/chart-types/{united-kindom.json → united-kingdom.json} +58 -62
- package/dist/spec/catalogs/chart-types/united-states.json +72 -76
- package/dist/spec/catalogs/chart-types/waterfall.json +66 -70
- package/dist/spec/catalogs/chart-types/world.json +78 -82
- package/dist/spec/catalogs/color-schemes/black-and-white.json +17 -17
- package/dist/spec/catalogs/color-schemes/bold-red.json +17 -17
- package/dist/spec/catalogs/color-schemes/boost.json +17 -17
- package/dist/spec/catalogs/color-schemes/burnt-orange.json +17 -17
- package/dist/spec/catalogs/color-schemes/cool-horizon.json +17 -17
- package/dist/spec/catalogs/color-schemes/corporate-blue.json +17 -17
- package/dist/spec/catalogs/color-schemes/deep-purple.json +17 -17
- package/dist/spec/catalogs/color-schemes/forest-green.json +17 -17
- package/dist/spec/catalogs/color-schemes/golden-yellow.json +17 -17
- package/dist/spec/catalogs/color-schemes/index.json +77 -77
- package/dist/spec/catalogs/color-schemes/luxury.json +17 -17
- package/dist/spec/catalogs/color-schemes/pastel-red.json +17 -17
- package/dist/spec/catalogs/color-schemes/slate-gray.json +17 -17
- package/dist/spec/catalogs/color-schemes/steel-blue.json +17 -17
- package/dist/spec/catalogs/color-schemes/vibes.json +17 -17
- package/dist/spec/catalogs/font-schemes/angsana-new.json +14 -14
- package/dist/spec/catalogs/font-schemes/aparajita.json +15 -15
- package/dist/spec/catalogs/font-schemes/aptos.json +12 -12
- package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +14 -14
- package/dist/spec/catalogs/font-schemes/arial.json +12 -12
- package/dist/spec/catalogs/font-schemes/batang.json +14 -14
- package/dist/spec/catalogs/font-schemes/bookman.json +12 -12
- package/dist/spec/catalogs/font-schemes/calibri.json +12 -12
- package/dist/spec/catalogs/font-schemes/century-schoolbook.json +12 -12
- package/dist/spec/catalogs/font-schemes/consolas.json +12 -12
- package/dist/spec/catalogs/font-schemes/constantia.json +12 -12
- package/dist/spec/catalogs/font-schemes/courier-new.json +12 -12
- package/dist/spec/catalogs/font-schemes/daunpenh.json +14 -14
- package/dist/spec/catalogs/font-schemes/david.json +14 -14
- package/dist/spec/catalogs/font-schemes/dilleniaupc.json +14 -14
- package/dist/spec/catalogs/font-schemes/fangsong.json +14 -14
- package/dist/spec/catalogs/font-schemes/garamond.json +12 -12
- package/dist/spec/catalogs/font-schemes/gautami.json +14 -14
- package/dist/spec/catalogs/font-schemes/georgia.json +12 -12
- package/dist/spec/catalogs/font-schemes/gisha.json +15 -15
- package/dist/spec/catalogs/font-schemes/grandview.json +12 -12
- package/dist/spec/catalogs/font-schemes/gungsuh.json +14 -14
- package/dist/spec/catalogs/font-schemes/impact.json +12 -12
- package/dist/spec/catalogs/font-schemes/index.json +452 -452
- package/dist/spec/catalogs/font-schemes/kalinga.json +14 -14
- package/dist/spec/catalogs/font-schemes/kartika.json +14 -14
- package/dist/spec/catalogs/font-schemes/khmer-ui.json +14 -14
- package/dist/spec/catalogs/font-schemes/latha.json +14 -14
- package/dist/spec/catalogs/font-schemes/lucida-sans.json +12 -12
- package/dist/spec/catalogs/font-schemes/malgun-gothic.json +14 -14
- package/dist/spec/catalogs/font-schemes/mangal.json +17 -17
- package/dist/spec/catalogs/font-schemes/meiryo.json +14 -14
- package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +14 -14
- package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +17 -17
- package/dist/spec/catalogs/font-schemes/mingliu.json +14 -14
- package/dist/spec/catalogs/font-schemes/miriam.json +14 -14
- package/dist/spec/catalogs/font-schemes/montserrat.json +12 -12
- package/dist/spec/catalogs/font-schemes/ms-mincho.json +14 -14
- package/dist/spec/catalogs/font-schemes/nirmala-ui.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +16 -16
- package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +15 -15
- package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +17 -17
- package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +14 -14
- package/dist/spec/catalogs/font-schemes/noto-sans.json +17 -17
- package/dist/spec/catalogs/font-schemes/nyala.json +14 -14
- package/dist/spec/catalogs/font-schemes/open-sans.json +12 -12
- package/dist/spec/catalogs/font-schemes/pmingliu.json +14 -14
- package/dist/spec/catalogs/font-schemes/poppins.json +12 -12
- package/dist/spec/catalogs/font-schemes/pt-serif.json +12 -12
- package/dist/spec/catalogs/font-schemes/raavi.json +14 -14
- package/dist/spec/catalogs/font-schemes/raleway.json +12 -12
- package/dist/spec/catalogs/font-schemes/roboto.json +12 -12
- package/dist/spec/catalogs/font-schemes/rockwell.json +12 -12
- package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +16 -16
- package/dist/spec/catalogs/font-schemes/seaford.json +12 -12
- package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +12 -12
- package/dist/spec/catalogs/font-schemes/segoe-ui.json +12 -12
- package/dist/spec/catalogs/font-schemes/shonar-bangla.json +15 -15
- package/dist/spec/catalogs/font-schemes/shruti.json +14 -14
- package/dist/spec/catalogs/font-schemes/simsun.json +14 -14
- package/dist/spec/catalogs/font-schemes/skeena.json +12 -12
- package/dist/spec/catalogs/font-schemes/sylfaen.json +15 -15
- package/dist/spec/catalogs/font-schemes/tahoma.json +12 -12
- package/dist/spec/catalogs/font-schemes/tenorite.json +12 -12
- package/dist/spec/catalogs/font-schemes/times-new-roman.json +12 -12
- package/dist/spec/catalogs/font-schemes/traditional-arabic.json +16 -16
- package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +12 -12
- package/dist/spec/catalogs/font-schemes/tunga.json +14 -14
- package/dist/spec/catalogs/font-schemes/verdana.json +12 -12
- package/dist/spec/catalogs/font-schemes/vrinda.json +14 -14
- package/dist/spec/catalogs/font-schemes/yu-gothic.json +14 -14
- package/dist/spec/catalogs/languages/afrikaans.json +9 -9
- package/dist/spec/catalogs/languages/albanian.json +9 -9
- package/dist/spec/catalogs/languages/amharic.json +9 -9
- package/dist/spec/catalogs/languages/arabic.json +9 -9
- package/dist/spec/catalogs/languages/armenian.json +9 -9
- package/dist/spec/catalogs/languages/aymara.json +9 -9
- package/dist/spec/catalogs/languages/azerbaijani.json +9 -9
- package/dist/spec/catalogs/languages/bengali.json +9 -9
- package/dist/spec/catalogs/languages/berber-latin.json +9 -9
- package/dist/spec/catalogs/languages/bosnian-latin.json +9 -9
- package/dist/spec/catalogs/languages/bulgarian.json +9 -9
- package/dist/spec/catalogs/languages/catalan.json +9 -9
- package/dist/spec/catalogs/languages/cebuano.json +9 -9
- package/dist/spec/catalogs/languages/chinese-simplified.json +9 -9
- package/dist/spec/catalogs/languages/chinese-traditional.json +9 -9
- package/dist/spec/catalogs/languages/chittagonian.json +9 -9
- package/dist/spec/catalogs/languages/croatian.json +9 -9
- package/dist/spec/catalogs/languages/czech.json +9 -9
- package/dist/spec/catalogs/languages/danish.json +9 -9
- package/dist/spec/catalogs/languages/dutch.json +9 -9
- package/dist/spec/catalogs/languages/english-au.json +9 -9
- package/dist/spec/catalogs/languages/english-ca.json +9 -9
- package/dist/spec/catalogs/languages/english-gb.json +9 -9
- package/dist/spec/catalogs/languages/english-in.json +9 -9
- package/dist/spec/catalogs/languages/english-us.json +9 -9
- package/dist/spec/catalogs/languages/english.json +9 -9
- package/dist/spec/catalogs/languages/estonian.json +9 -9
- package/dist/spec/catalogs/languages/filipino.json +9 -9
- package/dist/spec/catalogs/languages/finnish.json +9 -9
- package/dist/spec/catalogs/languages/french.json +9 -9
- package/dist/spec/catalogs/languages/fulfulde.json +9 -9
- package/dist/spec/catalogs/languages/galician.json +9 -9
- package/dist/spec/catalogs/languages/georgian.json +9 -9
- package/dist/spec/catalogs/languages/german.json +9 -9
- package/dist/spec/catalogs/languages/greek.json +9 -9
- package/dist/spec/catalogs/languages/gujarati.json +9 -9
- package/dist/spec/catalogs/languages/hausa.json +9 -9
- package/dist/spec/catalogs/languages/hebrew.json +9 -9
- package/dist/spec/catalogs/languages/hindi.json +9 -9
- package/dist/spec/catalogs/languages/hungarian.json +9 -9
- package/dist/spec/catalogs/languages/igbo.json +9 -9
- package/dist/spec/catalogs/languages/index.json +565 -565
- package/dist/spec/catalogs/languages/indonesian.json +9 -9
- package/dist/spec/catalogs/languages/italian.json +9 -9
- package/dist/spec/catalogs/languages/japanese.json +9 -9
- package/dist/spec/catalogs/languages/kannada.json +9 -9
- package/dist/spec/catalogs/languages/kazakh.json +9 -9
- package/dist/spec/catalogs/languages/khmer.json +9 -9
- package/dist/spec/catalogs/languages/kinyarwanda.json +9 -9
- package/dist/spec/catalogs/languages/korean.json +9 -9
- package/dist/spec/catalogs/languages/kurmanji.json +9 -9
- package/dist/spec/catalogs/languages/latvian.json +9 -9
- package/dist/spec/catalogs/languages/lithuanian.json +9 -9
- package/dist/spec/catalogs/languages/macedonian.json +9 -9
- package/dist/spec/catalogs/languages/malagasy.json +9 -9
- package/dist/spec/catalogs/languages/malay.json +9 -9
- package/dist/spec/catalogs/languages/malayalam.json +9 -9
- package/dist/spec/catalogs/languages/maori.json +9 -9
- package/dist/spec/catalogs/languages/marathi.json +9 -9
- package/dist/spec/catalogs/languages/mongolian.json +9 -9
- package/dist/spec/catalogs/languages/nepali.json +9 -9
- package/dist/spec/catalogs/languages/norwegian.json +9 -9
- package/dist/spec/catalogs/languages/odia.json +9 -9
- package/dist/spec/catalogs/languages/oromo.json +9 -9
- package/dist/spec/catalogs/languages/pashto.json +9 -9
- package/dist/spec/catalogs/languages/persian.json +9 -9
- package/dist/spec/catalogs/languages/polish.json +9 -9
- package/dist/spec/catalogs/languages/portuguese.json +9 -9
- package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +9 -9
- package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +9 -9
- package/dist/spec/catalogs/languages/romanian.json +9 -9
- package/dist/spec/catalogs/languages/russian.json +9 -9
- package/dist/spec/catalogs/languages/serbian-cyrillic.json +9 -9
- package/dist/spec/catalogs/languages/serbian-latin.json +9 -9
- package/dist/spec/catalogs/languages/shona.json +9 -9
- package/dist/spec/catalogs/languages/slovak.json +9 -9
- package/dist/spec/catalogs/languages/slovenian.json +9 -9
- package/dist/spec/catalogs/languages/somali.json +9 -9
- package/dist/spec/catalogs/languages/spanish.json +9 -9
- package/dist/spec/catalogs/languages/swahili.json +9 -9
- package/dist/spec/catalogs/languages/swedish.json +9 -9
- package/dist/spec/catalogs/languages/tagalog.json +9 -9
- package/dist/spec/catalogs/languages/tajik.json +9 -9
- package/dist/spec/catalogs/languages/tamil.json +9 -9
- package/dist/spec/catalogs/languages/telugu.json +9 -9
- package/dist/spec/catalogs/languages/thai.json +9 -9
- package/dist/spec/catalogs/languages/turkish.json +9 -9
- package/dist/spec/catalogs/languages/ukrainian.json +9 -9
- package/dist/spec/catalogs/languages/urdu.json +9 -9
- package/dist/spec/catalogs/languages/uzbek-latin.json +9 -9
- package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +9 -9
- package/dist/spec/catalogs/languages/xhosa.json +9 -9
- package/dist/spec/catalogs/languages/yoruba.json +9 -9
- package/dist/spec/catalogs/languages/zulu.json +9 -9
- package/dist/spec/catalogs/layouts/blank.json +6 -6
- package/dist/spec/catalogs/layouts/chart-1x.json +16 -16
- package/dist/spec/catalogs/layouts/chart-2x.json +22 -22
- package/dist/spec/catalogs/layouts/chart-3x.json +28 -28
- package/dist/spec/catalogs/layouts/code-1x.json +16 -16
- package/dist/spec/catalogs/layouts/extract/canonical.json +487 -487
- package/dist/spec/catalogs/layouts/image-1x.json +16 -16
- package/dist/spec/catalogs/layouts/image-2x.json +22 -22
- package/dist/spec/catalogs/layouts/image-3x.json +28 -28
- package/dist/spec/catalogs/layouts/image-bleed.json +10 -10
- package/dist/spec/catalogs/layouts/index.json +147 -147
- package/dist/spec/catalogs/layouts/list-1x.json +13 -13
- package/dist/spec/catalogs/layouts/list-2x.json +16 -16
- package/dist/spec/catalogs/layouts/list-3x.json +19 -19
- package/dist/spec/catalogs/layouts/list-4x.json +22 -22
- package/dist/spec/catalogs/layouts/list-5x.json +25 -25
- package/dist/spec/catalogs/layouts/list-6x.json +28 -28
- package/dist/spec/catalogs/layouts/media-1x.json +16 -16
- package/dist/spec/catalogs/layouts/number-1x.json +13 -13
- package/dist/spec/catalogs/layouts/number-2x.json +16 -16
- package/dist/spec/catalogs/layouts/number-3x.json +19 -19
- package/dist/spec/catalogs/layouts/number-4x.json +22 -22
- package/dist/spec/catalogs/layouts/number-5x.json +25 -25
- package/dist/spec/catalogs/layouts/number-6x.json +28 -28
- package/dist/spec/catalogs/layouts/table-1x.json +16 -16
- package/dist/spec/catalogs/layouts/text-1x.json +13 -13
- package/dist/spec/catalogs/layouts/text-2x.json +16 -16
- package/dist/spec/catalogs/layouts/text-3x.json +19 -19
- package/dist/spec/catalogs/layouts/title-subtitle.json +13 -13
- package/dist/spec/catalogs/layouts/title.json +10 -10
- package/dist/spec/catalogs/narratives/board-meeting.json +192 -192
- package/dist/spec/catalogs/narratives/business-narrative.json +87 -87
- package/dist/spec/catalogs/narratives/business-review.json +119 -119
- package/dist/spec/catalogs/narratives/capacity-planning.json +88 -88
- package/dist/spec/catalogs/narratives/challenge-resolution.json +80 -80
- package/dist/spec/catalogs/narratives/classic-story.json +78 -78
- package/dist/spec/catalogs/narratives/company-intro.json +96 -96
- package/dist/spec/catalogs/narratives/conference-talk.json +54 -54
- package/dist/spec/catalogs/narratives/early-startup-pitch.json +119 -119
- package/dist/spec/catalogs/narratives/educate.json +95 -95
- package/dist/spec/catalogs/narratives/employee-review.json +87 -87
- package/dist/spec/catalogs/narratives/failure-analysis.json +104 -104
- package/dist/spec/catalogs/narratives/focus.json +120 -120
- package/dist/spec/catalogs/narratives/golden-circle.json +50 -50
- package/dist/spec/catalogs/narratives/index.json +358 -358
- package/dist/spec/catalogs/narratives/innovation.json +96 -96
- package/dist/spec/catalogs/narratives/justice.json +112 -112
- package/dist/spec/catalogs/narratives/marketing-strategy.json +111 -111
- package/dist/spec/catalogs/narratives/performance-improvement-plan.json +87 -87
- package/dist/spec/catalogs/narratives/performance-review.json +111 -111
- package/dist/spec/catalogs/narratives/persuade.json +94 -94
- package/dist/spec/catalogs/narratives/persuasive-sales.json +87 -87
- package/dist/spec/catalogs/narratives/pitch-deck.json +107 -107
- package/dist/spec/catalogs/narratives/problem-solution.json +61 -61
- package/dist/spec/catalogs/narratives/product-launch.json +104 -104
- package/dist/spec/catalogs/narratives/project-proposal.json +104 -104
- package/dist/spec/catalogs/narratives/qbr.json +85 -85
- package/dist/spec/catalogs/narratives/rags-to-riches.json +80 -80
- package/dist/spec/catalogs/narratives/reveal.json +87 -87
- package/dist/spec/catalogs/narratives/scqa.json +55 -55
- package/dist/spec/catalogs/narratives/status-update.json +72 -72
- package/dist/spec/catalogs/narratives/strategic-advisory.json +85 -85
- package/dist/spec/catalogs/narratives/strategic-narrative.json +61 -61
- package/dist/spec/catalogs/narratives/survey-analysis.json +104 -104
- package/dist/spec/catalogs/narratives/survival-story.json +103 -103
- package/dist/spec/catalogs/narratives/transformation-arc.json +50 -50
- package/dist/spec/catalogs/narratives/trend-analysis.json +79 -79
- package/dist/spec/catalogs/narratives/underdog-victory.json +87 -87
- package/dist/spec/catalogs/narratives/venture-pitch.json +109 -109
- package/dist/spec/catalogs/narratives/weekly-progress.json +103 -103
- package/dist/spec/catalogs/purposes/align.json +16 -16
- package/dist/spec/catalogs/purposes/decide.json +16 -16
- package/dist/spec/catalogs/purposes/educate.json +16 -16
- package/dist/spec/catalogs/purposes/index.json +61 -61
- package/dist/spec/catalogs/purposes/inform.json +16 -16
- package/dist/spec/catalogs/purposes/persuade.json +16 -16
- package/dist/spec/catalogs/purposes/pitch.json +16 -16
- package/dist/spec/catalogs/purposes/plan.json +16 -16
- package/dist/spec/catalogs/purposes/report.json +16 -16
- package/dist/spec/catalogs/purposes/sell.json +16 -16
- package/dist/spec/catalogs/social-platforms/bluesky.json +14 -14
- package/dist/spec/catalogs/social-platforms/facebook.json +14 -14
- package/dist/spec/catalogs/social-platforms/github.json +15 -15
- package/dist/spec/catalogs/social-platforms/index.json +68 -68
- package/dist/spec/catalogs/social-platforms/instagram.json +13 -13
- package/dist/spec/catalogs/social-platforms/linkedin.json +15 -15
- package/dist/spec/catalogs/social-platforms/mastodon.json +14 -14
- package/dist/spec/catalogs/social-platforms/threads.json +13 -13
- package/dist/spec/catalogs/social-platforms/tiktok.json +14 -14
- package/dist/spec/catalogs/social-platforms/x.json +14 -14
- package/dist/spec/catalogs/social-platforms/youtube.json +14 -14
- package/dist/spec/catalogs/themes/bold.json +13 -13
- package/dist/spec/catalogs/themes/classic.json +13 -13
- package/dist/spec/catalogs/themes/dark.json +13 -13
- package/dist/spec/catalogs/themes/index.json +31 -31
- package/dist/spec/catalogs/themes/minimal.json +13 -13
- package/dist/spec/catalogs/tones/authoritative.json +31 -31
- package/dist/spec/catalogs/tones/casual.json +31 -31
- package/dist/spec/catalogs/tones/conversational.json +31 -31
- package/dist/spec/catalogs/tones/formal.json +31 -31
- package/dist/spec/catalogs/tones/index.json +49 -49
- package/dist/spec/catalogs/tones/inspirational.json +31 -31
- package/dist/spec/catalogs/tones/persuasive.json +32 -32
- package/dist/spec/catalogs/tones/technical.json +31 -31
- package/dist/spec/openapi.yaml +776 -776
- package/dist/spec/previews/layouts/action-plan.html +1 -0
- package/dist/spec/previews/layouts/agenda.html +1 -0
- package/dist/spec/previews/layouts/appendix-index.html +1 -0
- package/dist/spec/previews/layouts/architecture-stack.html +1 -0
- package/dist/spec/previews/layouts/assumptions-dependencies.html +1 -0
- package/dist/spec/previews/layouts/before-after.html +1 -0
- package/dist/spec/previews/layouts/benchmark-target-table.html +1 -0
- package/dist/spec/previews/layouts/bullet-list.html +1 -0
- package/dist/spec/previews/layouts/business-model-canvas.html +1 -0
- package/dist/spec/previews/layouts/capability-map.html +1 -0
- package/dist/spec/previews/layouts/case-study.html +1 -0
- package/dist/spec/previews/layouts/chapter-recap.html +1 -0
- package/dist/spec/previews/layouts/circular-lifecycle.html +1 -0
- package/dist/spec/previews/layouts/comparison.html +1 -0
- package/dist/spec/previews/layouts/competitive-landscape.html +1 -0
- package/dist/spec/previews/layouts/customer-journey.html +1 -0
- package/dist/spec/previews/layouts/customer-logos.html +1 -0
- package/dist/spec/previews/layouts/dashboard.html +1 -0
- package/dist/spec/previews/layouts/data-visualization.html +1 -0
- package/dist/spec/previews/layouts/decision-tree.html +1 -0
- package/dist/spec/previews/layouts/detailed-data-table.html +1 -0
- package/dist/spec/previews/layouts/ecosystem-map.html +1 -0
- package/dist/spec/previews/layouts/executive-decision.html +1 -0
- package/dist/spec/previews/layouts/executive-summary.html +1 -0
- package/dist/spec/previews/layouts/faq.html +1 -0
- package/dist/spec/previews/layouts/feature-comparison-matrix.html +1 -0
- package/dist/spec/previews/layouts/forecast-scenario.html +1 -0
- package/dist/spec/previews/layouts/funnel-pyramid.html +1 -0
- package/dist/spec/previews/layouts/gantt-project-plan.html +1 -0
- package/dist/spec/previews/layouts/geographic-map.html +1 -0
- package/dist/spec/previews/layouts/heatmap-cohort.html +1 -0
- package/dist/spec/previews/layouts/hub-and-spoke.html +1 -0
- package/dist/spec/previews/layouts/icon-grid.html +1 -0
- package/dist/spec/previews/layouts/image-focus.html +1 -0
- package/dist/spec/previews/layouts/index.json +357 -0
- package/dist/spec/previews/layouts/key-takeaway.html +1 -0
- package/dist/spec/previews/layouts/kpi-scorecard.html +1 -0
- package/dist/spec/previews/layouts/logic-tree.html +1 -0
- package/dist/spec/previews/layouts/market-size.html +1 -0
- package/dist/spec/previews/layouts/matrix-quadrant.html +1 -0
- package/dist/spec/previews/layouts/network-dependency-map.html +1 -0
- package/dist/spec/previews/layouts/one-column-explainer.html +1 -0
- package/dist/spec/previews/layouts/org-chart.html +1 -0
- package/dist/spec/previews/layouts/persona-grid.html +1 -0
- package/dist/spec/previews/layouts/photo-grid.html +1 -0
- package/dist/spec/previews/layouts/pricing-table.html +1 -0
- package/dist/spec/previews/layouts/process-flow.html +1 -0
- package/dist/spec/previews/layouts/product-feature.html +1 -0
- package/dist/spec/previews/layouts/pros-cons.html +1 -0
- package/dist/spec/previews/layouts/qa-discussion.html +1 -0
- package/dist/spec/previews/layouts/quote-highlight.html +1 -0
- package/dist/spec/previews/layouts/raci-matrix.html +1 -0
- package/dist/spec/previews/layouts/risk-heatmap.html +1 -0
- package/dist/spec/previews/layouts/roadmap.html +1 -0
- package/dist/spec/previews/layouts/screenshot-walkthrough.html +1 -0
- package/dist/spec/previews/layouts/section-divider.html +1 -0
- package/dist/spec/previews/layouts/single-message-statement.html +1 -0
- package/dist/spec/previews/layouts/stats-metrics.html +1 -0
- package/dist/spec/previews/layouts/status-rag.html +1 -0
- package/dist/spec/previews/layouts/swimlane-process.html +1 -0
- package/dist/spec/previews/layouts/swot-analysis.html +1 -0
- package/dist/spec/previews/layouts/team-bio.html +1 -0
- package/dist/spec/previews/layouts/testimonial-grid.html +1 -0
- package/dist/spec/previews/layouts/thank-you-cta.html +1 -0
- package/dist/spec/previews/layouts/three-column.html +1 -0
- package/dist/spec/previews/layouts/timeline.html +1 -0
- package/dist/spec/previews/layouts/title-slide.html +1 -0
- package/dist/spec/previews/layouts/two-column.html +1 -0
- package/dist/spec/previews/layouts/venn-overlap.html +1 -0
- package/dist/spec/previews/layouts/waterfall-bridge.html +1 -0
- package/dist/spec/previews/layouts/wheel-radial.html +1 -0
- package/dist/spec/reference/engine-defaults.json +35 -35
- package/dist/spec/schemas/audience.schema.json +156 -156
- package/dist/spec/schemas/chart-type.schema.json +537 -537
- package/dist/spec/schemas/color-scheme.schema.json +200 -200
- package/dist/spec/schemas/font-scheme.schema.json +174 -174
- package/dist/spec/schemas/language.schema.json +158 -158
- package/dist/spec/schemas/layout.schema.json +280 -280
- package/dist/spec/schemas/narrative.schema.json +207 -207
- package/dist/spec/schemas/opf.schema.json +2543 -2537
- package/dist/spec/schemas/purpose.schema.json +92 -92
- package/dist/spec/schemas/social-platform.schema.json +183 -184
- package/dist/spec/schemas/theme.schema.json +168 -168
- package/dist/spec/schemas/tone.schema.json +146 -146
- package/dist/spec-files.d.ts +2388 -0
- package/dist/spec-files.js +3349 -0
- package/dist/spec-files.js.map +1 -0
- package/dist/types.d.ts +5 -5
- package/dist/{validator-Be5EzqAt.d.ts → validator-MwlR2F56.d.ts} +22 -24
- package/dist/validator.d.ts +1 -1
- package/dist/validator.js +66 -48
- package/dist/validator.js.map +1 -1
- package/package.json +91 -80
|
@@ -1,537 +1,537 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://openpresentation.org/schema/opf-chart-type/v1",
|
|
4
|
-
"title": "
|
|
5
|
-
"description": "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"additionalProperties": false,
|
|
8
|
-
"required": [
|
|
9
|
-
"$schema",
|
|
10
|
-
"id",
|
|
11
|
-
"name",
|
|
12
|
-
"mappings"
|
|
13
|
-
],
|
|
14
|
-
"properties": {
|
|
15
|
-
"$schema": {
|
|
16
|
-
"type": "string",
|
|
17
|
-
"const": "https://openpresentation.org/schema/opf-chart-type/v1",
|
|
18
|
-
"description": "Identifies this record as a chart type in the open presentation catalog."
|
|
19
|
-
},
|
|
20
|
-
"id": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"pattern": "^[a-z0-9][a-z0-9-]*$",
|
|
23
|
-
"description": "Stable slug used by OPF documents to reference this chart type. Lowercase kebab-case. Chart type ids may start with a digit (e.g., '100pct-stacked-column', '3d-column') to mirror conventional chart naming.",
|
|
24
|
-
"examples": [
|
|
25
|
-
"column",
|
|
26
|
-
"clustered-column",
|
|
27
|
-
"stacked-column",
|
|
28
|
-
"doughnut",
|
|
29
|
-
"bullet-column",
|
|
30
|
-
"100pct-stacked-column"
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"name": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"description": "Stable display/programmatic name for this chart type.",
|
|
36
|
-
"examples": [
|
|
37
|
-
"COLUMN",
|
|
38
|
-
"CLUSTERED_COLUMN",
|
|
39
|
-
"DOUGHNUT",
|
|
40
|
-
"BULLET_COLUMN"
|
|
41
|
-
]
|
|
42
|
-
},
|
|
43
|
-
"label": {
|
|
44
|
-
"type": "string",
|
|
45
|
-
"description": "Human-readable label shown in chart pickers.",
|
|
46
|
-
"examples": [
|
|
47
|
-
"Column",
|
|
48
|
-
"Clustered Column",
|
|
49
|
-
"Doughnut",
|
|
50
|
-
"Bullet Column"
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
"summary": {
|
|
54
|
-
"type": "string",
|
|
55
|
-
"description": "One-sentence positioning: when to reach for this chart variant.",
|
|
56
|
-
"examples": [
|
|
57
|
-
"Single-series vertical column chart for comparing values across categories.",
|
|
58
|
-
"Bullet chart that benchmarks one value against ranked threshold bands."
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
"description": {
|
|
62
|
-
"type": "string",
|
|
63
|
-
"description": "Longer prose describing the chart and ideal use cases.",
|
|
64
|
-
"examples": [
|
|
65
|
-
"Use a clustered column when you want to compare a small number of series across the same categories — e.g., revenue by quarter for two product lines. Best with 2–4 series and ≤12 categories."
|
|
66
|
-
]
|
|
67
|
-
},
|
|
68
|
-
"mappings": {
|
|
69
|
-
"$ref": "#/$defs/ChartTypeMappings",
|
|
70
|
-
"description": "Canonical and optional renderer-specific mappings used by engines to render this chart type."
|
|
71
|
-
},
|
|
72
|
-
"group": {
|
|
73
|
-
"type": "string",
|
|
74
|
-
"description": "Top-level grouping in the chart picker (column, bar, line, area, pie, radar, etc.).",
|
|
75
|
-
"examples": [
|
|
76
|
-
"Column",
|
|
77
|
-
"Bar",
|
|
78
|
-
"Line",
|
|
79
|
-
"Area",
|
|
80
|
-
"Pie",
|
|
81
|
-
"Radar",
|
|
82
|
-
"Histogram",
|
|
83
|
-
"XY (Scatter)",
|
|
84
|
-
"Treemap",
|
|
85
|
-
"Bullet",
|
|
86
|
-
"Sparkline",
|
|
87
|
-
"Map",
|
|
88
|
-
"Other"
|
|
89
|
-
]
|
|
90
|
-
},
|
|
91
|
-
"groupSort": {
|
|
92
|
-
"type": "integer",
|
|
93
|
-
"minimum": 0,
|
|
94
|
-
"description": "Display ordering hint within the chart group.",
|
|
95
|
-
"examples": [
|
|
96
|
-
1,
|
|
97
|
-
2,
|
|
98
|
-
10
|
|
99
|
-
]
|
|
100
|
-
},
|
|
101
|
-
"complexity": {
|
|
102
|
-
"type": "string",
|
|
103
|
-
"enum": [
|
|
104
|
-
"simple",
|
|
105
|
-
"calculated",
|
|
106
|
-
"hierarchical",
|
|
107
|
-
"normalized"
|
|
108
|
-
],
|
|
109
|
-
"description": "Shape of the underlying data: a flat series ('simple'), one with engine-side calculation ('calculated'), parent-child rows ('hierarchical'), or pre-normalized rows ('normalized')."
|
|
110
|
-
},
|
|
111
|
-
"series": {
|
|
112
|
-
"type": "integer",
|
|
113
|
-
"minimum": 0,
|
|
114
|
-
"description": "Number of data series this chart type expects.",
|
|
115
|
-
"examples": [
|
|
116
|
-
1,
|
|
117
|
-
2,
|
|
118
|
-
3,
|
|
119
|
-
4
|
|
120
|
-
]
|
|
121
|
-
},
|
|
122
|
-
"categories": {
|
|
123
|
-
"type": "integer",
|
|
124
|
-
"minimum": 0,
|
|
125
|
-
"description": "Number of category labels this chart type expects on the primary axis.",
|
|
126
|
-
"examples": [
|
|
127
|
-
4,
|
|
128
|
-
6,
|
|
129
|
-
8,
|
|
130
|
-
12
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
"seriesGroups": {
|
|
134
|
-
"type": "integer",
|
|
135
|
-
"minimum": 1,
|
|
136
|
-
"description": "Number of series groups (axis bands) this chart type uses; >1 for combo or banded charts.",
|
|
137
|
-
"examples": [
|
|
138
|
-
1,
|
|
139
|
-
2,
|
|
140
|
-
3
|
|
141
|
-
]
|
|
142
|
-
},
|
|
143
|
-
"useSecondaryCategories": {
|
|
144
|
-
"type": "boolean",
|
|
145
|
-
"description": "Whether the chart type uses a secondary category axis.",
|
|
146
|
-
"examples": [
|
|
147
|
-
false,
|
|
148
|
-
true
|
|
149
|
-
]
|
|
150
|
-
},
|
|
151
|
-
"workbookRange": {
|
|
152
|
-
"type": "string",
|
|
153
|
-
"description": "A1 reference to the source range in the embedded workbook.",
|
|
154
|
-
"examples": [
|
|
155
|
-
"Sheet1!$A$1:$I$2",
|
|
156
|
-
"Sheet1!$A$1:$G$3"
|
|
157
|
-
]
|
|
158
|
-
},
|
|
159
|
-
"columns": {
|
|
160
|
-
"type": "array",
|
|
161
|
-
"items": {
|
|
162
|
-
"type": "string"
|
|
163
|
-
},
|
|
164
|
-
"description": "Column header names of the embedded workbook, in left-to-right order.",
|
|
165
|
-
"examples": [
|
|
166
|
-
[
|
|
167
|
-
"Series 1",
|
|
168
|
-
"Value"
|
|
169
|
-
],
|
|
170
|
-
[
|
|
171
|
-
"Series 1",
|
|
172
|
-
"Value 1",
|
|
173
|
-
"Value 2"
|
|
174
|
-
]
|
|
175
|
-
]
|
|
176
|
-
},
|
|
177
|
-
"dataColumns": {
|
|
178
|
-
"type": "array",
|
|
179
|
-
"items": {
|
|
180
|
-
"$ref": "#/$defs/ChartDataColumn"
|
|
181
|
-
},
|
|
182
|
-
"description": "Per-column metadata describing the role and position of each column in the workbook source.",
|
|
183
|
-
"examples": [
|
|
184
|
-
[
|
|
185
|
-
{
|
|
186
|
-
"name": "Series 1",
|
|
187
|
-
"role": "categoryLabel",
|
|
188
|
-
"type": "string",
|
|
189
|
-
"position": "row0_col0"
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
"name": "Value 1",
|
|
193
|
-
"role": "series",
|
|
194
|
-
"type": "number",
|
|
195
|
-
"position": "row1_col0"
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"name": "Value 2",
|
|
199
|
-
"role": "series",
|
|
200
|
-
"type": "number",
|
|
201
|
-
"position": "row2_col0"
|
|
202
|
-
}
|
|
203
|
-
]
|
|
204
|
-
]
|
|
205
|
-
},
|
|
206
|
-
"helperColumns": {
|
|
207
|
-
"type": "array",
|
|
208
|
-
"items": {
|
|
209
|
-
"type": "string"
|
|
210
|
-
},
|
|
211
|
-
"description": "Optional auxiliary column names used by calculated or banded charts (e.g., 'Excellent', 'Good', 'Fair', 'Poor' for a bullet chart).",
|
|
212
|
-
"examples": [
|
|
213
|
-
[
|
|
214
|
-
"Excellent",
|
|
215
|
-
"Good",
|
|
216
|
-
"Fair",
|
|
217
|
-
"Poor"
|
|
218
|
-
],
|
|
219
|
-
[
|
|
220
|
-
"Band"
|
|
221
|
-
]
|
|
222
|
-
]
|
|
223
|
-
},
|
|
224
|
-
"sampleData": {
|
|
225
|
-
"$ref": "#/$defs/ChartSampleData",
|
|
226
|
-
"description": "Inline sample dataset for previews and pickers.",
|
|
227
|
-
"examples": [
|
|
228
|
-
{
|
|
229
|
-
"headers": [
|
|
230
|
-
"Series 1",
|
|
231
|
-
"Q1 2024",
|
|
232
|
-
"Q2 2024",
|
|
233
|
-
"Q3 2024",
|
|
234
|
-
"Q4 2024"
|
|
235
|
-
],
|
|
236
|
-
"rows": [
|
|
237
|
-
[
|
|
238
|
-
"Value",
|
|
239
|
-
93810,
|
|
240
|
-
24592,
|
|
241
|
-
13278,
|
|
242
|
-
46048
|
|
243
|
-
]
|
|
244
|
-
]
|
|
245
|
-
}
|
|
246
|
-
]
|
|
247
|
-
},
|
|
248
|
-
"slideNumber": {
|
|
249
|
-
"type": "integer",
|
|
250
|
-
"minimum": 1,
|
|
251
|
-
"description": "Source slide number in the original chart-gallery deck. Carried for traceability.",
|
|
252
|
-
"examples": [
|
|
253
|
-
1,
|
|
254
|
-
2,
|
|
255
|
-
48
|
|
256
|
-
]
|
|
257
|
-
},
|
|
258
|
-
"tags": {
|
|
259
|
-
"type": "array",
|
|
260
|
-
"items": {
|
|
261
|
-
"type": "string"
|
|
262
|
-
},
|
|
263
|
-
"description": "Free-form labels for filtering and search.",
|
|
264
|
-
"examples": [
|
|
265
|
-
[
|
|
266
|
-
"column",
|
|
267
|
-
"comparison"
|
|
268
|
-
],
|
|
269
|
-
[
|
|
270
|
-
"bullet",
|
|
271
|
-
"kpi",
|
|
272
|
-
"benchmark"
|
|
273
|
-
]
|
|
274
|
-
]
|
|
275
|
-
},
|
|
276
|
-
"preview": {
|
|
277
|
-
"type": "object",
|
|
278
|
-
"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.",
|
|
279
|
-
"properties": {
|
|
280
|
-
"src": {
|
|
281
|
-
"type": "string",
|
|
282
|
-
"format": "uri",
|
|
283
|
-
"description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
|
|
284
|
-
"examples": [
|
|
285
|
-
"https://www.pptx.gallery/chart-types/clustered-column.png"
|
|
286
|
-
]
|
|
287
|
-
},
|
|
288
|
-
"thumbnailSrc": {
|
|
289
|
-
"type": "string",
|
|
290
|
-
"format": "uri",
|
|
291
|
-
"description": "Smaller thumbnail preview suited to dense grid views.",
|
|
292
|
-
"examples": [
|
|
293
|
-
"https://www.pptx.gallery/chart-types/clustered-column.thumbnail.png"
|
|
294
|
-
]
|
|
295
|
-
},
|
|
296
|
-
"vectorSrc": {
|
|
297
|
-
"type": "string",
|
|
298
|
-
"format": "uri",
|
|
299
|
-
"description": "SVG / vector preview for crisp scaling at any size.",
|
|
300
|
-
"examples": [
|
|
301
|
-
"https://www.pptx.gallery/chart-types/clustered-column.svg"
|
|
302
|
-
]
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
|
-
"$defs": {
|
|
308
|
-
"ChartTypeMappings": {
|
|
309
|
-
"type": "object",
|
|
310
|
-
"additionalProperties": false,
|
|
311
|
-
"required": [
|
|
312
|
-
"openxml"
|
|
313
|
-
],
|
|
314
|
-
"properties": {
|
|
315
|
-
"openxml": {
|
|
316
|
-
"$ref": "#/$defs/OpenXmlChartMapping",
|
|
317
|
-
"description": "Canonical mapping to Open XML chart structures."
|
|
318
|
-
},
|
|
319
|
-
"renderers": {
|
|
320
|
-
"type": "object",
|
|
321
|
-
"description": "Optional renderer-specific mappings. Keys are renderer ids; values are intentionally opaque to OPF.",
|
|
322
|
-
"additionalProperties": {
|
|
323
|
-
"type": "object",
|
|
324
|
-
"additionalProperties": true
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
},
|
|
329
|
-
"OpenXmlChartMapping": {
|
|
330
|
-
"type": "object",
|
|
331
|
-
"additionalProperties": false,
|
|
332
|
-
"properties": {
|
|
333
|
-
"element": {
|
|
334
|
-
"type": "string",
|
|
335
|
-
"description": "Primary Open XML chart element or extension chart element, such as 'barChart', 'lineChart', 'pieChart', 'treemapChart', or 'waterfallChart'.",
|
|
336
|
-
"examples": [
|
|
337
|
-
"barChart",
|
|
338
|
-
"lineChart",
|
|
339
|
-
"pieChart"
|
|
340
|
-
]
|
|
341
|
-
},
|
|
342
|
-
"barDir": {
|
|
343
|
-
"type": "string",
|
|
344
|
-
"enum": [
|
|
345
|
-
"bar",
|
|
346
|
-
"col"
|
|
347
|
-
],
|
|
348
|
-
"description": "Bar direction for Open XML barChart mappings."
|
|
349
|
-
},
|
|
350
|
-
"grouping": {
|
|
351
|
-
"type": "string",
|
|
352
|
-
"enum": [
|
|
353
|
-
"standard",
|
|
354
|
-
"clustered",
|
|
355
|
-
"stacked",
|
|
356
|
-
"percentStacked"
|
|
357
|
-
],
|
|
358
|
-
"description": "Open XML chart grouping value when the chart family supports grouping."
|
|
359
|
-
},
|
|
360
|
-
"marker": {
|
|
361
|
-
"type": "boolean",
|
|
362
|
-
"description": "Whether the chart type expects visible data markers."
|
|
363
|
-
},
|
|
364
|
-
"radarStyle": {
|
|
365
|
-
"type": "string",
|
|
366
|
-
"enum": [
|
|
367
|
-
"standard",
|
|
368
|
-
"marker",
|
|
369
|
-
"filled"
|
|
370
|
-
],
|
|
371
|
-
"description": "Open XML radarStyle value for radarChart mappings."
|
|
372
|
-
},
|
|
373
|
-
"scatterStyle": {
|
|
374
|
-
"type": "string",
|
|
375
|
-
"enum": [
|
|
376
|
-
"line",
|
|
377
|
-
"lineMarker",
|
|
378
|
-
"marker",
|
|
379
|
-
"smooth",
|
|
380
|
-
"smoothMarker"
|
|
381
|
-
],
|
|
382
|
-
"description": "Open XML scatterStyle value for scatterChart mappings."
|
|
383
|
-
},
|
|
384
|
-
"composition": {
|
|
385
|
-
"type": "string",
|
|
386
|
-
"enum": [
|
|
387
|
-
"single",
|
|
388
|
-
"mixed",
|
|
389
|
-
"extension"
|
|
390
|
-
],
|
|
391
|
-
"description": "Whether the chart maps to one standard chart element, multiple combined chart elements, or an Open XML extension chart."
|
|
392
|
-
},
|
|
393
|
-
"extension": {
|
|
394
|
-
"type": "string",
|
|
395
|
-
"description": "Optional Open XML extension namespace or element hint for extension charts.",
|
|
396
|
-
"examples": [
|
|
397
|
-
"cx:treemapChart",
|
|
398
|
-
"cx:waterfallChart"
|
|
399
|
-
]
|
|
400
|
-
},
|
|
401
|
-
"series": {
|
|
402
|
-
"type": "array",
|
|
403
|
-
"items": {
|
|
404
|
-
"$ref": "#/$defs/OpenXmlChartMapping"
|
|
405
|
-
},
|
|
406
|
-
"description": "Open XML chart elements used by mixed/composite chart types."
|
|
407
|
-
},
|
|
408
|
-
"notes": {
|
|
409
|
-
"type": "string",
|
|
410
|
-
"description": "Short implementation note for mappings that need renderer interpretation."
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
},
|
|
414
|
-
"ChartDataColumn": {
|
|
415
|
-
"type": "object",
|
|
416
|
-
"description": "One column of the embedded chart workbook, annotated with its role and grid position.",
|
|
417
|
-
"required": [
|
|
418
|
-
"name",
|
|
419
|
-
"role",
|
|
420
|
-
"type"
|
|
421
|
-
],
|
|
422
|
-
"properties": {
|
|
423
|
-
"name": {
|
|
424
|
-
"type": "string",
|
|
425
|
-
"description": "Column header name (e.g. 'Series 1', 'Value', 'Level1', 'Level2').",
|
|
426
|
-
"examples": [
|
|
427
|
-
"Series 1",
|
|
428
|
-
"Value",
|
|
429
|
-
"Level1",
|
|
430
|
-
"Level2"
|
|
431
|
-
]
|
|
432
|
-
},
|
|
433
|
-
"role": {
|
|
434
|
-
"type": "string",
|
|
435
|
-
"enum": [
|
|
436
|
-
"categoryLabel",
|
|
437
|
-
"series",
|
|
438
|
-
"helper"
|
|
439
|
-
],
|
|
440
|
-
"description": "Role this column plays: a category label (axis tick), a series (plotted values), or a helper (calculated/auxiliary)."
|
|
441
|
-
},
|
|
442
|
-
"type": {
|
|
443
|
-
"type": "string",
|
|
444
|
-
"enum": [
|
|
445
|
-
"string",
|
|
446
|
-
"number"
|
|
447
|
-
],
|
|
448
|
-
"description": "Cell value type for the column."
|
|
449
|
-
},
|
|
450
|
-
"position": {
|
|
451
|
-
"type": "string",
|
|
452
|
-
"pattern": "^row[0-9]+_col[0-9]+$",
|
|
453
|
-
"description": "Grid position of the column header in the source workbook, as 'row<N>_col<M>' (zero-indexed).",
|
|
454
|
-
"examples": [
|
|
455
|
-
"row0_col0",
|
|
456
|
-
"row1_col0",
|
|
457
|
-
"row2_col0"
|
|
458
|
-
]
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
},
|
|
462
|
-
"ChartSampleData": {
|
|
463
|
-
"type": "object",
|
|
464
|
-
"description": "Inline sample dataset for previews. Mirrors a small workbook with header row plus data rows.",
|
|
465
|
-
"required": [
|
|
466
|
-
"headers",
|
|
467
|
-
"rows"
|
|
468
|
-
],
|
|
469
|
-
"properties": {
|
|
470
|
-
"headers": {
|
|
471
|
-
"type": "array",
|
|
472
|
-
"items": {
|
|
473
|
-
"type": "string"
|
|
474
|
-
},
|
|
475
|
-
"description": "Header row labels. The first cell typically labels the series column; the rest are category labels.",
|
|
476
|
-
"examples": [
|
|
477
|
-
[
|
|
478
|
-
"Series 1",
|
|
479
|
-
"Q1 2024",
|
|
480
|
-
"Q2 2024",
|
|
481
|
-
"Q3 2024",
|
|
482
|
-
"Q4 2024",
|
|
483
|
-
"Q1 2025",
|
|
484
|
-
"Q2 2025",
|
|
485
|
-
"Q3 2025",
|
|
486
|
-
"Q4 2025"
|
|
487
|
-
]
|
|
488
|
-
]
|
|
489
|
-
},
|
|
490
|
-
"rows": {
|
|
491
|
-
"type": "array",
|
|
492
|
-
"items": {
|
|
493
|
-
"type": "array",
|
|
494
|
-
"items": {
|
|
495
|
-
"type": [
|
|
496
|
-
"string",
|
|
497
|
-
"number"
|
|
498
|
-
]
|
|
499
|
-
}
|
|
500
|
-
},
|
|
501
|
-
"description": "Two-dimensional sample data. Each row aligns by index with the headers — first cell is the row label, remaining cells are values.",
|
|
502
|
-
"examples": [
|
|
503
|
-
[
|
|
504
|
-
[
|
|
505
|
-
"Value",
|
|
506
|
-
93810,
|
|
507
|
-
24592,
|
|
508
|
-
13278,
|
|
509
|
-
46048,
|
|
510
|
-
42098,
|
|
511
|
-
39256,
|
|
512
|
-
28289,
|
|
513
|
-
23434
|
|
514
|
-
]
|
|
515
|
-
],
|
|
516
|
-
[
|
|
517
|
-
[
|
|
518
|
-
"Value 1",
|
|
519
|
-
98696,
|
|
520
|
-
81482,
|
|
521
|
-
21395,
|
|
522
|
-
87397
|
|
523
|
-
],
|
|
524
|
-
[
|
|
525
|
-
"Value 2",
|
|
526
|
-
38657,
|
|
527
|
-
40495,
|
|
528
|
-
76237,
|
|
529
|
-
88907
|
|
530
|
-
]
|
|
531
|
-
]
|
|
532
|
-
]
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openpresentation.org/schema/opf-chart-type/v1",
|
|
4
|
+
"title": "Chart Type",
|
|
5
|
+
"description": "Schema for chart-type records in the pptx.gallery catalog. Each record describes a named chart variant, its Open XML mapping, its series/category cardinality, the column structure of the underlying workbook, and a small sample dataset suitable for previews. Chart types are referenced from OPF chart content payloads; the engine resolves the reference against catalogs.chartTypes (inline) -> catalogs.chartTypes.source -> the default catalog at https://www.pptx.gallery/chart-types.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"$schema",
|
|
10
|
+
"id",
|
|
11
|
+
"name",
|
|
12
|
+
"mappings"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"$schema": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"const": "https://openpresentation.org/schema/opf-chart-type/v1",
|
|
18
|
+
"description": "Identifies this record as a chart type in the open presentation catalog."
|
|
19
|
+
},
|
|
20
|
+
"id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$",
|
|
23
|
+
"description": "Stable slug used by OPF documents to reference this chart type. Lowercase kebab-case. Chart type ids may start with a digit (e.g., '100pct-stacked-column', '3d-column') to mirror conventional chart naming.",
|
|
24
|
+
"examples": [
|
|
25
|
+
"column",
|
|
26
|
+
"clustered-column",
|
|
27
|
+
"stacked-column",
|
|
28
|
+
"doughnut",
|
|
29
|
+
"bullet-column",
|
|
30
|
+
"100pct-stacked-column"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"name": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Stable display/programmatic name for this chart type.",
|
|
36
|
+
"examples": [
|
|
37
|
+
"COLUMN",
|
|
38
|
+
"CLUSTERED_COLUMN",
|
|
39
|
+
"DOUGHNUT",
|
|
40
|
+
"BULLET_COLUMN"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"label": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Human-readable label shown in chart pickers.",
|
|
46
|
+
"examples": [
|
|
47
|
+
"Column",
|
|
48
|
+
"Clustered Column",
|
|
49
|
+
"Doughnut",
|
|
50
|
+
"Bullet Column"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"summary": {
|
|
54
|
+
"type": "string",
|
|
55
|
+
"description": "One-sentence positioning: when to reach for this chart variant.",
|
|
56
|
+
"examples": [
|
|
57
|
+
"Single-series vertical column chart for comparing values across categories.",
|
|
58
|
+
"Bullet chart that benchmarks one value against ranked threshold bands."
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"description": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Longer prose describing the chart and ideal use cases.",
|
|
64
|
+
"examples": [
|
|
65
|
+
"Use a clustered column when you want to compare a small number of series across the same categories — e.g., revenue by quarter for two product lines. Best with 2–4 series and ≤12 categories."
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"mappings": {
|
|
69
|
+
"$ref": "#/$defs/ChartTypeMappings",
|
|
70
|
+
"description": "Canonical and optional renderer-specific mappings used by engines to render this chart type."
|
|
71
|
+
},
|
|
72
|
+
"group": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Top-level grouping in the chart picker (column, bar, line, area, pie, radar, etc.).",
|
|
75
|
+
"examples": [
|
|
76
|
+
"Column",
|
|
77
|
+
"Bar",
|
|
78
|
+
"Line",
|
|
79
|
+
"Area",
|
|
80
|
+
"Pie",
|
|
81
|
+
"Radar",
|
|
82
|
+
"Histogram",
|
|
83
|
+
"XY (Scatter)",
|
|
84
|
+
"Treemap",
|
|
85
|
+
"Bullet",
|
|
86
|
+
"Sparkline",
|
|
87
|
+
"Map",
|
|
88
|
+
"Other"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"groupSort": {
|
|
92
|
+
"type": "integer",
|
|
93
|
+
"minimum": 0,
|
|
94
|
+
"description": "Display ordering hint within the chart group.",
|
|
95
|
+
"examples": [
|
|
96
|
+
1,
|
|
97
|
+
2,
|
|
98
|
+
10
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"complexity": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"enum": [
|
|
104
|
+
"simple",
|
|
105
|
+
"calculated",
|
|
106
|
+
"hierarchical",
|
|
107
|
+
"normalized"
|
|
108
|
+
],
|
|
109
|
+
"description": "Shape of the underlying data: a flat series ('simple'), one with engine-side calculation ('calculated'), parent-child rows ('hierarchical'), or pre-normalized rows ('normalized')."
|
|
110
|
+
},
|
|
111
|
+
"series": {
|
|
112
|
+
"type": "integer",
|
|
113
|
+
"minimum": 0,
|
|
114
|
+
"description": "Number of data series this chart type expects.",
|
|
115
|
+
"examples": [
|
|
116
|
+
1,
|
|
117
|
+
2,
|
|
118
|
+
3,
|
|
119
|
+
4
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"categories": {
|
|
123
|
+
"type": "integer",
|
|
124
|
+
"minimum": 0,
|
|
125
|
+
"description": "Number of category labels this chart type expects on the primary axis.",
|
|
126
|
+
"examples": [
|
|
127
|
+
4,
|
|
128
|
+
6,
|
|
129
|
+
8,
|
|
130
|
+
12
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
"seriesGroups": {
|
|
134
|
+
"type": "integer",
|
|
135
|
+
"minimum": 1,
|
|
136
|
+
"description": "Number of series groups (axis bands) this chart type uses; >1 for combo or banded charts.",
|
|
137
|
+
"examples": [
|
|
138
|
+
1,
|
|
139
|
+
2,
|
|
140
|
+
3
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"useSecondaryCategories": {
|
|
144
|
+
"type": "boolean",
|
|
145
|
+
"description": "Whether the chart type uses a secondary category axis.",
|
|
146
|
+
"examples": [
|
|
147
|
+
false,
|
|
148
|
+
true
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"workbookRange": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "A1 reference to the source range in the embedded workbook.",
|
|
154
|
+
"examples": [
|
|
155
|
+
"Sheet1!$A$1:$I$2",
|
|
156
|
+
"Sheet1!$A$1:$G$3"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"columns": {
|
|
160
|
+
"type": "array",
|
|
161
|
+
"items": {
|
|
162
|
+
"type": "string"
|
|
163
|
+
},
|
|
164
|
+
"description": "Column header names of the embedded workbook, in left-to-right order.",
|
|
165
|
+
"examples": [
|
|
166
|
+
[
|
|
167
|
+
"Series 1",
|
|
168
|
+
"Value"
|
|
169
|
+
],
|
|
170
|
+
[
|
|
171
|
+
"Series 1",
|
|
172
|
+
"Value 1",
|
|
173
|
+
"Value 2"
|
|
174
|
+
]
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"dataColumns": {
|
|
178
|
+
"type": "array",
|
|
179
|
+
"items": {
|
|
180
|
+
"$ref": "#/$defs/ChartDataColumn"
|
|
181
|
+
},
|
|
182
|
+
"description": "Per-column metadata describing the role and position of each column in the workbook source.",
|
|
183
|
+
"examples": [
|
|
184
|
+
[
|
|
185
|
+
{
|
|
186
|
+
"name": "Series 1",
|
|
187
|
+
"role": "categoryLabel",
|
|
188
|
+
"type": "string",
|
|
189
|
+
"position": "row0_col0"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "Value 1",
|
|
193
|
+
"role": "series",
|
|
194
|
+
"type": "number",
|
|
195
|
+
"position": "row1_col0"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"name": "Value 2",
|
|
199
|
+
"role": "series",
|
|
200
|
+
"type": "number",
|
|
201
|
+
"position": "row2_col0"
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"helperColumns": {
|
|
207
|
+
"type": "array",
|
|
208
|
+
"items": {
|
|
209
|
+
"type": "string"
|
|
210
|
+
},
|
|
211
|
+
"description": "Optional auxiliary column names used by calculated or banded charts (e.g., 'Excellent', 'Good', 'Fair', 'Poor' for a bullet chart).",
|
|
212
|
+
"examples": [
|
|
213
|
+
[
|
|
214
|
+
"Excellent",
|
|
215
|
+
"Good",
|
|
216
|
+
"Fair",
|
|
217
|
+
"Poor"
|
|
218
|
+
],
|
|
219
|
+
[
|
|
220
|
+
"Band"
|
|
221
|
+
]
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"sampleData": {
|
|
225
|
+
"$ref": "#/$defs/ChartSampleData",
|
|
226
|
+
"description": "Inline sample dataset for previews and pickers.",
|
|
227
|
+
"examples": [
|
|
228
|
+
{
|
|
229
|
+
"headers": [
|
|
230
|
+
"Series 1",
|
|
231
|
+
"Q1 2024",
|
|
232
|
+
"Q2 2024",
|
|
233
|
+
"Q3 2024",
|
|
234
|
+
"Q4 2024"
|
|
235
|
+
],
|
|
236
|
+
"rows": [
|
|
237
|
+
[
|
|
238
|
+
"Value",
|
|
239
|
+
93810,
|
|
240
|
+
24592,
|
|
241
|
+
13278,
|
|
242
|
+
46048
|
|
243
|
+
]
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
"slideNumber": {
|
|
249
|
+
"type": "integer",
|
|
250
|
+
"minimum": 1,
|
|
251
|
+
"description": "Source slide number in the original chart-gallery deck. Carried for traceability.",
|
|
252
|
+
"examples": [
|
|
253
|
+
1,
|
|
254
|
+
2,
|
|
255
|
+
48
|
|
256
|
+
]
|
|
257
|
+
},
|
|
258
|
+
"tags": {
|
|
259
|
+
"type": "array",
|
|
260
|
+
"items": {
|
|
261
|
+
"type": "string"
|
|
262
|
+
},
|
|
263
|
+
"description": "Free-form labels for filtering and search.",
|
|
264
|
+
"examples": [
|
|
265
|
+
[
|
|
266
|
+
"column",
|
|
267
|
+
"comparison"
|
|
268
|
+
],
|
|
269
|
+
[
|
|
270
|
+
"bullet",
|
|
271
|
+
"kpi",
|
|
272
|
+
"benchmark"
|
|
273
|
+
]
|
|
274
|
+
]
|
|
275
|
+
},
|
|
276
|
+
"preview": {
|
|
277
|
+
"type": "object",
|
|
278
|
+
"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.",
|
|
279
|
+
"properties": {
|
|
280
|
+
"src": {
|
|
281
|
+
"type": "string",
|
|
282
|
+
"format": "uri",
|
|
283
|
+
"description": "Main preview image (PNG/JPG). Used as the primary visual in picker UIs and previews of the record.",
|
|
284
|
+
"examples": [
|
|
285
|
+
"https://www.pptx.gallery/chart-types/clustered-column.png"
|
|
286
|
+
]
|
|
287
|
+
},
|
|
288
|
+
"thumbnailSrc": {
|
|
289
|
+
"type": "string",
|
|
290
|
+
"format": "uri",
|
|
291
|
+
"description": "Smaller thumbnail preview suited to dense grid views.",
|
|
292
|
+
"examples": [
|
|
293
|
+
"https://www.pptx.gallery/chart-types/clustered-column.thumbnail.png"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"vectorSrc": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"format": "uri",
|
|
299
|
+
"description": "SVG / vector preview for crisp scaling at any size.",
|
|
300
|
+
"examples": [
|
|
301
|
+
"https://www.pptx.gallery/chart-types/clustered-column.svg"
|
|
302
|
+
]
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"$defs": {
|
|
308
|
+
"ChartTypeMappings": {
|
|
309
|
+
"type": "object",
|
|
310
|
+
"additionalProperties": false,
|
|
311
|
+
"required": [
|
|
312
|
+
"openxml"
|
|
313
|
+
],
|
|
314
|
+
"properties": {
|
|
315
|
+
"openxml": {
|
|
316
|
+
"$ref": "#/$defs/OpenXmlChartMapping",
|
|
317
|
+
"description": "Canonical mapping to Open XML chart structures."
|
|
318
|
+
},
|
|
319
|
+
"renderers": {
|
|
320
|
+
"type": "object",
|
|
321
|
+
"description": "Optional renderer-specific mappings. Keys are renderer ids; values are intentionally opaque to OPF.",
|
|
322
|
+
"additionalProperties": {
|
|
323
|
+
"type": "object",
|
|
324
|
+
"additionalProperties": true
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"OpenXmlChartMapping": {
|
|
330
|
+
"type": "object",
|
|
331
|
+
"additionalProperties": false,
|
|
332
|
+
"properties": {
|
|
333
|
+
"element": {
|
|
334
|
+
"type": "string",
|
|
335
|
+
"description": "Primary Open XML chart element or extension chart element, such as 'barChart', 'lineChart', 'pieChart', 'treemapChart', or 'waterfallChart'.",
|
|
336
|
+
"examples": [
|
|
337
|
+
"barChart",
|
|
338
|
+
"lineChart",
|
|
339
|
+
"pieChart"
|
|
340
|
+
]
|
|
341
|
+
},
|
|
342
|
+
"barDir": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"enum": [
|
|
345
|
+
"bar",
|
|
346
|
+
"col"
|
|
347
|
+
],
|
|
348
|
+
"description": "Bar direction for Open XML barChart mappings."
|
|
349
|
+
},
|
|
350
|
+
"grouping": {
|
|
351
|
+
"type": "string",
|
|
352
|
+
"enum": [
|
|
353
|
+
"standard",
|
|
354
|
+
"clustered",
|
|
355
|
+
"stacked",
|
|
356
|
+
"percentStacked"
|
|
357
|
+
],
|
|
358
|
+
"description": "Open XML chart grouping value when the chart family supports grouping."
|
|
359
|
+
},
|
|
360
|
+
"marker": {
|
|
361
|
+
"type": "boolean",
|
|
362
|
+
"description": "Whether the chart type expects visible data markers."
|
|
363
|
+
},
|
|
364
|
+
"radarStyle": {
|
|
365
|
+
"type": "string",
|
|
366
|
+
"enum": [
|
|
367
|
+
"standard",
|
|
368
|
+
"marker",
|
|
369
|
+
"filled"
|
|
370
|
+
],
|
|
371
|
+
"description": "Open XML radarStyle value for radarChart mappings."
|
|
372
|
+
},
|
|
373
|
+
"scatterStyle": {
|
|
374
|
+
"type": "string",
|
|
375
|
+
"enum": [
|
|
376
|
+
"line",
|
|
377
|
+
"lineMarker",
|
|
378
|
+
"marker",
|
|
379
|
+
"smooth",
|
|
380
|
+
"smoothMarker"
|
|
381
|
+
],
|
|
382
|
+
"description": "Open XML scatterStyle value for scatterChart mappings."
|
|
383
|
+
},
|
|
384
|
+
"composition": {
|
|
385
|
+
"type": "string",
|
|
386
|
+
"enum": [
|
|
387
|
+
"single",
|
|
388
|
+
"mixed",
|
|
389
|
+
"extension"
|
|
390
|
+
],
|
|
391
|
+
"description": "Whether the chart maps to one standard chart element, multiple combined chart elements, or an Open XML extension chart."
|
|
392
|
+
},
|
|
393
|
+
"extension": {
|
|
394
|
+
"type": "string",
|
|
395
|
+
"description": "Optional Open XML extension namespace or element hint for extension charts.",
|
|
396
|
+
"examples": [
|
|
397
|
+
"cx:treemapChart",
|
|
398
|
+
"cx:waterfallChart"
|
|
399
|
+
]
|
|
400
|
+
},
|
|
401
|
+
"series": {
|
|
402
|
+
"type": "array",
|
|
403
|
+
"items": {
|
|
404
|
+
"$ref": "#/$defs/OpenXmlChartMapping"
|
|
405
|
+
},
|
|
406
|
+
"description": "Open XML chart elements used by mixed/composite chart types."
|
|
407
|
+
},
|
|
408
|
+
"notes": {
|
|
409
|
+
"type": "string",
|
|
410
|
+
"description": "Short implementation note for mappings that need renderer interpretation."
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
"ChartDataColumn": {
|
|
415
|
+
"type": "object",
|
|
416
|
+
"description": "One column of the embedded chart workbook, annotated with its role and grid position.",
|
|
417
|
+
"required": [
|
|
418
|
+
"name",
|
|
419
|
+
"role",
|
|
420
|
+
"type"
|
|
421
|
+
],
|
|
422
|
+
"properties": {
|
|
423
|
+
"name": {
|
|
424
|
+
"type": "string",
|
|
425
|
+
"description": "Column header name (e.g. 'Series 1', 'Value', 'Level1', 'Level2').",
|
|
426
|
+
"examples": [
|
|
427
|
+
"Series 1",
|
|
428
|
+
"Value",
|
|
429
|
+
"Level1",
|
|
430
|
+
"Level2"
|
|
431
|
+
]
|
|
432
|
+
},
|
|
433
|
+
"role": {
|
|
434
|
+
"type": "string",
|
|
435
|
+
"enum": [
|
|
436
|
+
"categoryLabel",
|
|
437
|
+
"series",
|
|
438
|
+
"helper"
|
|
439
|
+
],
|
|
440
|
+
"description": "Role this column plays: a category label (axis tick), a series (plotted values), or a helper (calculated/auxiliary)."
|
|
441
|
+
},
|
|
442
|
+
"type": {
|
|
443
|
+
"type": "string",
|
|
444
|
+
"enum": [
|
|
445
|
+
"string",
|
|
446
|
+
"number"
|
|
447
|
+
],
|
|
448
|
+
"description": "Cell value type for the column."
|
|
449
|
+
},
|
|
450
|
+
"position": {
|
|
451
|
+
"type": "string",
|
|
452
|
+
"pattern": "^row[0-9]+_col[0-9]+$",
|
|
453
|
+
"description": "Grid position of the column header in the source workbook, as 'row<N>_col<M>' (zero-indexed).",
|
|
454
|
+
"examples": [
|
|
455
|
+
"row0_col0",
|
|
456
|
+
"row1_col0",
|
|
457
|
+
"row2_col0"
|
|
458
|
+
]
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"ChartSampleData": {
|
|
463
|
+
"type": "object",
|
|
464
|
+
"description": "Inline sample dataset for previews. Mirrors a small workbook with header row plus data rows.",
|
|
465
|
+
"required": [
|
|
466
|
+
"headers",
|
|
467
|
+
"rows"
|
|
468
|
+
],
|
|
469
|
+
"properties": {
|
|
470
|
+
"headers": {
|
|
471
|
+
"type": "array",
|
|
472
|
+
"items": {
|
|
473
|
+
"type": "string"
|
|
474
|
+
},
|
|
475
|
+
"description": "Header row labels. The first cell typically labels the series column; the rest are category labels.",
|
|
476
|
+
"examples": [
|
|
477
|
+
[
|
|
478
|
+
"Series 1",
|
|
479
|
+
"Q1 2024",
|
|
480
|
+
"Q2 2024",
|
|
481
|
+
"Q3 2024",
|
|
482
|
+
"Q4 2024",
|
|
483
|
+
"Q1 2025",
|
|
484
|
+
"Q2 2025",
|
|
485
|
+
"Q3 2025",
|
|
486
|
+
"Q4 2025"
|
|
487
|
+
]
|
|
488
|
+
]
|
|
489
|
+
},
|
|
490
|
+
"rows": {
|
|
491
|
+
"type": "array",
|
|
492
|
+
"items": {
|
|
493
|
+
"type": "array",
|
|
494
|
+
"items": {
|
|
495
|
+
"type": [
|
|
496
|
+
"string",
|
|
497
|
+
"number"
|
|
498
|
+
]
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
"description": "Two-dimensional sample data. Each row aligns by index with the headers — first cell is the row label, remaining cells are values.",
|
|
502
|
+
"examples": [
|
|
503
|
+
[
|
|
504
|
+
[
|
|
505
|
+
"Value",
|
|
506
|
+
93810,
|
|
507
|
+
24592,
|
|
508
|
+
13278,
|
|
509
|
+
46048,
|
|
510
|
+
42098,
|
|
511
|
+
39256,
|
|
512
|
+
28289,
|
|
513
|
+
23434
|
|
514
|
+
]
|
|
515
|
+
],
|
|
516
|
+
[
|
|
517
|
+
[
|
|
518
|
+
"Value 1",
|
|
519
|
+
98696,
|
|
520
|
+
81482,
|
|
521
|
+
21395,
|
|
522
|
+
87397
|
|
523
|
+
],
|
|
524
|
+
[
|
|
525
|
+
"Value 2",
|
|
526
|
+
38657,
|
|
527
|
+
40495,
|
|
528
|
+
76237,
|
|
529
|
+
88907
|
|
530
|
+
]
|
|
531
|
+
]
|
|
532
|
+
]
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|