@openpresentation/opf 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{catalogs-DoVmvDr7.d.ts → catalogs-DJ-B5ZyD.d.ts} +79 -9
- package/dist/catalogs.d.ts +2 -2
- package/dist/catalogs.js +1 -1
- package/dist/{chunk-PQJRDNA6.js → chunk-6UPHKXI5.js} +381 -34
- package/dist/{chunk-TU7I3KSB.js → chunk-7LF37SG3.js} +7400 -5422
- package/dist/{chunk-EWJNRHXA.js → chunk-BP6WMSSS.js} +3 -3
- package/dist/{chunk-FHGJX5QK.js → chunk-KWIOQ3QR.js} +73 -32
- package/dist/{chunk-D3GQIREP.js → chunk-LTSDDBNW.js} +558 -52
- package/dist/{chunk-ZIL7MGZU.js → chunk-M4GTWRK7.js} +333 -102
- package/dist/chunk-NPYN4TZ5.js +3516 -0
- package/dist/{chunk-RS5GZ5RW.js → chunk-SDETQV7Y.js} +161 -0
- package/dist/composition-DzLwY-Mi.d.ts +887 -0
- package/dist/composition.d.ts +1 -676
- package/dist/composition.js +1 -1
- package/dist/docs.js +80 -20
- package/dist/examples.d.ts +1 -1
- package/dist/examples.js +11 -11
- package/dist/font-policy.d.ts +123 -0
- package/dist/font-policy.js +1 -0
- package/dist/index.d.ts +184 -4
- package/dist/index.js +473 -7
- package/dist/lint.d.ts +3 -3
- package/dist/lint.js +5 -5
- package/dist/pagination.d.ts +6 -2
- package/dist/pagination.js +5 -5
- package/dist/{presentation-BMTdX6O1.d.ts → presentation-bceTClm8.d.ts} +297 -30
- package/dist/repo-readme.js +1 -1
- package/dist/{schemas-BYe5y8-i.d.ts → schemas-X_NniU4A.d.ts} +8 -0
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.js +1 -1
- package/dist/spec/catalogs/audiences/academic.json +24 -0
- package/dist/spec/catalogs/audiences/all-hands.json +3 -1
- package/dist/spec/catalogs/audiences/board.json +3 -1
- package/dist/spec/catalogs/audiences/customer.json +25 -0
- package/dist/spec/catalogs/audiences/executive.json +24 -0
- package/dist/spec/catalogs/audiences/general-public.json +25 -0
- package/dist/spec/catalogs/audiences/index.json +73 -1
- package/dist/spec/catalogs/audiences/internal-team.json +25 -0
- package/dist/spec/catalogs/audiences/investor.json +25 -0
- package/dist/spec/catalogs/audiences/marketing.json +25 -0
- package/dist/spec/catalogs/audiences/media.json +24 -0
- package/dist/spec/catalogs/audiences/partner.json +25 -0
- package/dist/spec/catalogs/audiences/regulatory.json +25 -0
- package/dist/spec/catalogs/audiences/sales.json +25 -0
- package/dist/spec/catalogs/audiences/technical.json +25 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-bar.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-bullet-column.json +5 -0
- package/dist/spec/catalogs/chart-types/100pct-progress-bar.json +10 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-area-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-bar-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/100pct-stacked-column-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/area.json +5 -0
- package/dist/spec/catalogs/chart-types/australia.json +10 -0
- package/dist/spec/catalogs/chart-types/bar.json +5 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker-3x.json +10 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-bar-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-bar-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-bar.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-column-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-column-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/bullet-column.json +5 -0
- package/dist/spec/catalogs/chart-types/canada.json +10 -0
- package/dist/spec/catalogs/chart-types/clustered-bar-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/clustered-column.json +10 -0
- package/dist/spec/catalogs/chart-types/column.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot-4x.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot-5x.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot-6x.json +5 -0
- package/dist/spec/catalogs/chart-types/dot-plot.json +5 -0
- package/dist/spec/catalogs/chart-types/doughnut.json +5 -0
- package/dist/spec/catalogs/chart-types/dumbbell.json +5 -0
- package/dist/spec/catalogs/chart-types/filled-radar.json +5 -0
- package/dist/spec/catalogs/chart-types/funnel.json +5 -0
- package/dist/spec/catalogs/chart-types/histogram.json +5 -0
- package/dist/spec/catalogs/chart-types/index.json +333 -233
- package/dist/spec/catalogs/chart-types/line-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/line-3x.json +10 -0
- package/dist/spec/catalogs/chart-types/line-with-high-low-and-markers.json +5 -0
- package/dist/spec/catalogs/chart-types/line-with-high-low.json +5 -0
- package/dist/spec/catalogs/chart-types/line-with-markers-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/line-with-markers-3x.json +10 -0
- package/dist/spec/catalogs/chart-types/line-with-markers.json +5 -0
- package/dist/spec/catalogs/chart-types/line.json +5 -0
- package/dist/spec/catalogs/chart-types/pareto.json +9 -14
- package/dist/spec/catalogs/chart-types/pie.json +5 -0
- package/dist/spec/catalogs/chart-types/radar-with-markers.json +5 -0
- package/dist/spec/catalogs/chart-types/radar.json +5 -0
- package/dist/spec/catalogs/chart-types/scatter.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline-2x.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline-3x.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline-4x.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline-5x.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline-6x.json +5 -0
- package/dist/spec/catalogs/chart-types/sparkline.json +5 -0
- package/dist/spec/catalogs/chart-types/stacked-area-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/stacked-area-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/stacked-bar-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/stacked-bar-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/stacked-column-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/stacked-column-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/stacked-line-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/stacked-line-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/stacked-line-with-markers-3x.json +6 -1
- package/dist/spec/catalogs/chart-types/treemap-2x.json +10 -0
- package/dist/spec/catalogs/chart-types/treemap-3x.json +10 -0
- package/dist/spec/catalogs/chart-types/treemap.json +5 -0
- package/dist/spec/catalogs/chart-types/united-kingdom.json +10 -0
- package/dist/spec/catalogs/chart-types/united-states.json +10 -0
- package/dist/spec/catalogs/chart-types/waterfall.json +5 -0
- package/dist/spec/catalogs/chart-types/world.json +6 -1
- package/dist/spec/catalogs/font-schemes/consolas.json +3 -0
- package/dist/spec/catalogs/font-schemes/courier-new.json +3 -0
- package/dist/spec/catalogs/languages/afrikaans.json +3 -0
- package/dist/spec/catalogs/languages/albanian.json +3 -0
- package/dist/spec/catalogs/languages/amharic.json +3 -0
- package/dist/spec/catalogs/languages/arabic.json +3 -0
- package/dist/spec/catalogs/languages/armenian.json +3 -0
- package/dist/spec/catalogs/languages/aymara.json +3 -0
- package/dist/spec/catalogs/languages/azerbaijani.json +3 -0
- package/dist/spec/catalogs/languages/bengali.json +3 -0
- package/dist/spec/catalogs/languages/berber-latin.json +3 -0
- package/dist/spec/catalogs/languages/bosnian-latin.json +3 -0
- package/dist/spec/catalogs/languages/bulgarian.json +3 -0
- package/dist/spec/catalogs/languages/catalan.json +3 -0
- package/dist/spec/catalogs/languages/cebuano.json +3 -0
- package/dist/spec/catalogs/languages/chinese-simplified.json +3 -0
- package/dist/spec/catalogs/languages/chinese-traditional.json +3 -0
- package/dist/spec/catalogs/languages/chittagonian.json +3 -0
- package/dist/spec/catalogs/languages/croatian.json +3 -0
- package/dist/spec/catalogs/languages/czech.json +3 -0
- package/dist/spec/catalogs/languages/danish.json +3 -0
- package/dist/spec/catalogs/languages/dutch.json +3 -0
- package/dist/spec/catalogs/languages/english-au.json +3 -0
- package/dist/spec/catalogs/languages/english-ca.json +3 -0
- package/dist/spec/catalogs/languages/english-gb.json +3 -0
- package/dist/spec/catalogs/languages/english-in.json +3 -0
- package/dist/spec/catalogs/languages/english-us.json +3 -0
- package/dist/spec/catalogs/languages/english.json +3 -0
- package/dist/spec/catalogs/languages/estonian.json +3 -0
- package/dist/spec/catalogs/languages/filipino.json +3 -0
- package/dist/spec/catalogs/languages/finnish.json +3 -0
- package/dist/spec/catalogs/languages/french.json +3 -0
- package/dist/spec/catalogs/languages/fulfulde.json +3 -0
- package/dist/spec/catalogs/languages/galician.json +3 -0
- package/dist/spec/catalogs/languages/georgian.json +3 -0
- package/dist/spec/catalogs/languages/german.json +3 -0
- package/dist/spec/catalogs/languages/greek.json +3 -0
- package/dist/spec/catalogs/languages/gujarati.json +3 -0
- package/dist/spec/catalogs/languages/hausa.json +3 -0
- package/dist/spec/catalogs/languages/hebrew.json +3 -0
- package/dist/spec/catalogs/languages/hindi.json +3 -0
- package/dist/spec/catalogs/languages/hungarian.json +3 -0
- package/dist/spec/catalogs/languages/igbo.json +3 -0
- package/dist/spec/catalogs/languages/indonesian.json +3 -0
- package/dist/spec/catalogs/languages/italian.json +3 -0
- package/dist/spec/catalogs/languages/japanese.json +3 -0
- package/dist/spec/catalogs/languages/kannada.json +3 -0
- package/dist/spec/catalogs/languages/kazakh.json +3 -0
- package/dist/spec/catalogs/languages/khmer.json +3 -0
- package/dist/spec/catalogs/languages/kinyarwanda.json +3 -0
- package/dist/spec/catalogs/languages/korean.json +3 -0
- package/dist/spec/catalogs/languages/kurmanji.json +3 -0
- package/dist/spec/catalogs/languages/latvian.json +3 -0
- package/dist/spec/catalogs/languages/lithuanian.json +3 -0
- package/dist/spec/catalogs/languages/macedonian.json +3 -0
- package/dist/spec/catalogs/languages/malagasy.json +3 -0
- package/dist/spec/catalogs/languages/malay.json +3 -0
- package/dist/spec/catalogs/languages/malayalam.json +3 -0
- package/dist/spec/catalogs/languages/maori.json +3 -0
- package/dist/spec/catalogs/languages/marathi.json +3 -0
- package/dist/spec/catalogs/languages/mongolian.json +3 -0
- package/dist/spec/catalogs/languages/nepali.json +3 -0
- package/dist/spec/catalogs/languages/norwegian.json +3 -0
- package/dist/spec/catalogs/languages/odia.json +3 -0
- package/dist/spec/catalogs/languages/oromo.json +3 -0
- package/dist/spec/catalogs/languages/pashto.json +3 -0
- package/dist/spec/catalogs/languages/persian.json +3 -0
- package/dist/spec/catalogs/languages/polish.json +3 -0
- package/dist/spec/catalogs/languages/portuguese.json +3 -0
- package/dist/spec/catalogs/languages/punjabi-gurmukhi.json +3 -0
- package/dist/spec/catalogs/languages/punjabi-shahmukhi.json +3 -0
- package/dist/spec/catalogs/languages/romanian.json +3 -0
- package/dist/spec/catalogs/languages/russian.json +3 -0
- package/dist/spec/catalogs/languages/serbian-cyrillic.json +3 -0
- package/dist/spec/catalogs/languages/serbian-latin.json +3 -0
- package/dist/spec/catalogs/languages/shona.json +3 -0
- package/dist/spec/catalogs/languages/slovak.json +3 -0
- package/dist/spec/catalogs/languages/slovenian.json +3 -0
- package/dist/spec/catalogs/languages/somali.json +3 -0
- package/dist/spec/catalogs/languages/spanish.json +3 -0
- package/dist/spec/catalogs/languages/swahili.json +3 -0
- package/dist/spec/catalogs/languages/swedish.json +3 -0
- package/dist/spec/catalogs/languages/tagalog.json +3 -0
- package/dist/spec/catalogs/languages/tajik.json +3 -0
- package/dist/spec/catalogs/languages/tamil.json +3 -0
- package/dist/spec/catalogs/languages/telugu.json +3 -0
- package/dist/spec/catalogs/languages/thai.json +3 -0
- package/dist/spec/catalogs/languages/turkish.json +3 -0
- package/dist/spec/catalogs/languages/ukrainian.json +3 -0
- package/dist/spec/catalogs/languages/urdu.json +3 -0
- package/dist/spec/catalogs/languages/uzbek-latin.json +3 -0
- package/dist/spec/catalogs/languages/vietnamese-quoc-ngu.json +3 -0
- package/dist/spec/catalogs/languages/xhosa.json +3 -0
- package/dist/spec/catalogs/languages/yoruba.json +3 -0
- package/dist/spec/catalogs/languages/zulu.json +3 -0
- package/dist/spec/catalogs/narratives/board-meeting.json +21 -21
- package/dist/spec/catalogs/narratives/business-narrative.json +8 -8
- package/dist/spec/catalogs/narratives/business-review.json +12 -12
- package/dist/spec/catalogs/narratives/capacity-planning.json +8 -8
- package/dist/spec/catalogs/narratives/challenge-resolution.json +7 -7
- package/dist/spec/catalogs/narratives/change-story.json +64 -0
- package/dist/spec/catalogs/narratives/classic-story.json +7 -7
- package/dist/spec/catalogs/narratives/company-intro.json +9 -9
- package/dist/spec/catalogs/narratives/conference-talk.json +1 -1
- package/dist/spec/catalogs/narratives/data-story.json +66 -0
- package/dist/spec/catalogs/narratives/early-startup-pitch.json +12 -12
- package/dist/spec/catalogs/narratives/educate.json +9 -9
- package/dist/spec/catalogs/narratives/employee-review.json +8 -8
- package/dist/spec/catalogs/narratives/failure-analysis.json +10 -10
- package/dist/spec/catalogs/narratives/focus.json +12 -12
- package/dist/spec/catalogs/narratives/golden-circle.json +1 -1
- package/dist/spec/catalogs/narratives/heros-journey.json +64 -0
- package/dist/spec/catalogs/narratives/index.json +81 -0
- package/dist/spec/catalogs/narratives/innovation.json +9 -9
- package/dist/spec/catalogs/narratives/justice.json +11 -11
- package/dist/spec/catalogs/narratives/marketing-strategy.json +11 -11
- package/dist/spec/catalogs/narratives/performance-improvement-plan.json +8 -8
- package/dist/spec/catalogs/narratives/performance-review.json +11 -11
- package/dist/spec/catalogs/narratives/persuade.json +7 -7
- package/dist/spec/catalogs/narratives/persuasive-sales.json +8 -8
- package/dist/spec/catalogs/narratives/pitch-deck.json +3 -3
- package/dist/spec/catalogs/narratives/problem-solution.json +2 -2
- package/dist/spec/catalogs/narratives/product-launch.json +10 -10
- package/dist/spec/catalogs/narratives/project-proposal.json +10 -10
- package/dist/spec/catalogs/narratives/pyramid-principle.json +48 -0
- package/dist/spec/catalogs/narratives/qbr.json +3 -3
- package/dist/spec/catalogs/narratives/rags-to-riches.json +7 -7
- package/dist/spec/catalogs/narratives/reveal.json +8 -8
- package/dist/spec/catalogs/narratives/scqa.json +1 -1
- package/dist/spec/catalogs/narratives/situation-complication-resolution.json +56 -0
- package/dist/spec/catalogs/narratives/sparkline.json +56 -0
- package/dist/spec/catalogs/narratives/star-method.json +56 -0
- package/dist/spec/catalogs/narratives/status-update.json +6 -6
- package/dist/spec/catalogs/narratives/strategic-advisory.json +7 -7
- package/dist/spec/catalogs/narratives/strategic-narrative.json +1 -1
- package/dist/spec/catalogs/narratives/survey-analysis.json +10 -10
- package/dist/spec/catalogs/narratives/survival-story.json +10 -10
- package/dist/spec/catalogs/narratives/transformation-arc.json +1 -1
- package/dist/spec/catalogs/narratives/trend-analysis.json +7 -7
- package/dist/spec/catalogs/narratives/underdog-victory.json +8 -8
- package/dist/spec/catalogs/narratives/venture-pitch.json +12 -12
- package/dist/spec/catalogs/narratives/vision-roadmap.json +65 -0
- package/dist/spec/catalogs/narratives/weekly-progress.json +10 -10
- package/dist/spec/catalogs/narratives/what-so-what-now-what.json +48 -0
- package/dist/spec/openapi.yaml +5 -0
- package/dist/spec/reference/engine-defaults.json +2 -2
- package/dist/spec/reference/font-policy.json +3435 -0
- package/dist/spec/reference/font-policy.schema.json +328 -0
- package/dist/spec/schemas/chart-type.schema.json +51 -11
- package/dist/spec/schemas/font-scheme.schema.json +91 -1
- package/dist/spec/schemas/language.schema.json +10 -5
- package/dist/spec/schemas/opf.schema.json +241 -32
- package/dist/spec-files.d.ts +1 -1
- package/dist/spec-files.js +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/validator.d.ts +7 -4
- package/dist/validator.js +4 -4
- package/package.json +6 -2
|
@@ -3,7 +3,7 @@ var presentation = {
|
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"$id": "https://openpresentation.org/schema/opf/v1",
|
|
5
5
|
"title": "Presentation",
|
|
6
|
-
"description": "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design \u2014 the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document \u2192 'catalogs.<kind>.source' on the document \u2192 engine defaults \u2192 the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry.",
|
|
6
|
+
"description": "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design \u2014 the engine handles OOXML complexity.\n\nFields that reference catalog records (narrative, language, tone, audience, purpose, design.theme / design.theme.id, design.colorScheme / design.colorScheme.id, design.fontScheme / design.fontScheme.id, Slide.layout, Chart.type, Organization.socials / Speaker.socials) resolve through the catalog system: inline 'catalogs.<kind>.records[]' on the document \u2192 'catalogs.<kind>.source' on the document \u2192 engine defaults \u2192 the default catalog at https://www.pptx.gallery/<kind>. Every reference resolves to the catalog record's 'id' field. When an OPF document omits a reference entirely, the engine falls back to engine defaults (see /spec/reference/engine-defaults.json for a reference example). The defaults file is engine configuration; it is not part of the OPF document contract and has no JSON Schema.\n\nMost catalog references accept the bare 'id' as a string for the common case (e.g. narrative = 'classic-story', design.colorScheme = 'cool-horizon'). Audience, purpose, tone, design, and language object forms use 'id' as a base catalog reference plus inline overrides. Asset references use 'asset:<id>' strings that point into the top-level assets registry, and content color fields (rich-text runs, styled table cells) accept hex values, color-scheme slot/role names, or 'var:<id>' references into the top-level variables map.",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"required": [
|
|
9
9
|
"slides"
|
|
@@ -284,6 +284,10 @@ var presentation = {
|
|
|
284
284
|
"$ref": "#/$defs/Design",
|
|
285
285
|
"description": "Optional design system covering theme, color scheme, font scheme, dimensions, background, logo, watermark, header, and footer applied to the deck. When omitted, engines use their default design configuration."
|
|
286
286
|
},
|
|
287
|
+
"variables": {
|
|
288
|
+
"$ref": "#/$defs/Variables",
|
|
289
|
+
"description": "Optional named color variables for values the deck uses in more than one place or wants to name for intent (e.g. a risk red, a brand highlight). Content color fields reference entries as 'var:<id>' strings. Variables complement the color scheme: scheme slots and roles stay the primary vocabulary; variables cover deck-specific named colors that have no scheme slot."
|
|
290
|
+
},
|
|
287
291
|
"narrative": {
|
|
288
292
|
"oneOf": [
|
|
289
293
|
{
|
|
@@ -658,6 +662,18 @@ Deck-level concerns that aren't part of the storyline (audience, tone, takeaway,
|
|
|
658
662
|
"zh-Hans"
|
|
659
663
|
]
|
|
660
664
|
},
|
|
665
|
+
"ooxmlLang": {
|
|
666
|
+
"type": "string",
|
|
667
|
+
"description": "Curated culture tag for OOXML text-run language attributes (a:rPr/@lang, a:endParaRPr/@lang), in the language-[Script-]REGION form Office recognizes (e.g. 'ja-JP', 'ar-SA', 'ms-MY', 'nb-NO', 'fil-PH', 'zh-CN'). Engines emit it instead of 'bcp47' when the document names the language by catalog id or by a tag without a region; a region-bearing tag written by the author is emitted as written. Curated rather than inferred so output does not depend on the runtime's locale data.",
|
|
668
|
+
"examples": [
|
|
669
|
+
"en-US",
|
|
670
|
+
"ja-JP",
|
|
671
|
+
"ar-SA",
|
|
672
|
+
"ms-MY",
|
|
673
|
+
"nb-NO",
|
|
674
|
+
"zh-CN"
|
|
675
|
+
]
|
|
676
|
+
},
|
|
661
677
|
"code": {
|
|
662
678
|
"type": "string",
|
|
663
679
|
"description": "ISO 639-3 or 639-2 language code carried for engines that prefer ISO codes.",
|
|
@@ -674,26 +690,32 @@ Deck-level concerns that aren't part of the storyline (audience, tone, takeaway,
|
|
|
674
690
|
"ltr",
|
|
675
691
|
"rtl"
|
|
676
692
|
],
|
|
677
|
-
"description": "Base text direction for the language."
|
|
693
|
+
"description": "Base text direction for the language. When omitted, engines derive it from the script: Arabic (Arab), Hebrew (Hebr), Syriac (Syrc), Thaana (Thaa), N'Ko (Nkoo), Adlam (Adlm), Samaritan (Samr), Mandaic (Mand) and Hanifi Rohingya (Rohg) are right-to-left; every other script is left-to-right. Bundled language records state it explicitly."
|
|
678
694
|
},
|
|
679
695
|
"script": {
|
|
680
696
|
"type": "string",
|
|
681
|
-
"description": "ISO 15924 script code
|
|
697
|
+
"description": "ISO 15924 script code of the language's writing system. The script selects the OOXML font slot the language's text uses: East Asian scripts (Hans, Hant, Hani, Jpan, Kore, Hang, Hira, Kana, Bopo, Yiii) use the eastAsian slot; complex scripts (for example Arab, Hebr, Syrc, Thaa, Deva, Beng, Guru, Gujr, Orya, Taml, Telu, Knda, Mlym, Sinh, Thai, Laoo, Tibt, Mymr, Khmr, Mong) use the complexScript slot; every other script (Latn, Cyrl, Grek, Armn, Geor, Ethi, ...) uses the latin slot. When omitted, engines infer it from the BCP-47 tag. Bundled language records state it explicitly. See docs/programs/font-fidelity-everywhere/script-font-model.md.",
|
|
682
698
|
"examples": [
|
|
683
699
|
"Latn",
|
|
684
|
-
"Arab",
|
|
685
700
|
"Cyrl",
|
|
701
|
+
"Grek",
|
|
702
|
+
"Arab",
|
|
703
|
+
"Hebr",
|
|
704
|
+
"Jpan",
|
|
705
|
+
"Kore",
|
|
686
706
|
"Hans",
|
|
687
|
-
"Hant"
|
|
707
|
+
"Hant",
|
|
708
|
+
"Deva",
|
|
709
|
+
"Thai"
|
|
688
710
|
]
|
|
689
711
|
},
|
|
690
712
|
"fontScheme": {
|
|
691
713
|
"type": "string",
|
|
692
|
-
"description": "Default font-scheme id for this language when targeting PowerPoint output."
|
|
714
|
+
"description": "Default font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Its major/minor families fill the language's script slot (eastAsian or complexScript, chosen by 'script') unless the effective design font scheme sets that slot itself; the latin slot always follows the design font scheme."
|
|
693
715
|
},
|
|
694
716
|
"googleFontScheme": {
|
|
695
717
|
"type": "string",
|
|
696
|
-
"description": "Default font-scheme id for this language when targeting Google Slides output."
|
|
718
|
+
"description": "Default font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Used in place of 'fontScheme' when resolving script fonts for Google Slides output."
|
|
697
719
|
},
|
|
698
720
|
"summary": {
|
|
699
721
|
"type": "string",
|
|
@@ -882,7 +904,7 @@ Deck-level concerns that aren't part of the storyline (audience, tone, takeaway,
|
|
|
882
904
|
},
|
|
883
905
|
"socials": {
|
|
884
906
|
"$ref": "#/$defs/Socials",
|
|
885
|
-
"description": "Optional social media handles or URLs for the organization."
|
|
907
|
+
"description": "Optional social media handles or URLs for the organization. The primary organization's socials render in header/footer zones that set socials: true; otherwise they are authoring metadata."
|
|
886
908
|
}
|
|
887
909
|
}
|
|
888
910
|
},
|
|
@@ -968,7 +990,7 @@ Deck-level concerns that aren't part of the storyline (audience, tone, takeaway,
|
|
|
968
990
|
},
|
|
969
991
|
"socials": {
|
|
970
992
|
"$ref": "#/$defs/Socials",
|
|
971
|
-
"description": "Optional social media handles or URLs for the speaker."
|
|
993
|
+
"description": "Optional social media handles or URLs for the speaker. Authoring metadata: no header/footer field renders speaker socials yet."
|
|
972
994
|
}
|
|
973
995
|
}
|
|
974
996
|
},
|
|
@@ -1462,12 +1484,149 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1462
1484
|
"left",
|
|
1463
1485
|
"right"
|
|
1464
1486
|
],
|
|
1465
|
-
"description": "Where the slide-level image sits relative to the content. 'background' is a full-bleed image behind the content."
|
|
1487
|
+
"description": "Where the slide-level image sits relative to the content. 'background' is a full-bleed image behind the content. The other positions give the image a band along that edge (see size) and compose headings and content in the rest of the slide."
|
|
1488
|
+
},
|
|
1489
|
+
"alt": {
|
|
1490
|
+
"type": "string",
|
|
1491
|
+
"description": "Alternative text for the slide-level image. Overrides the alt text of a referenced asset."
|
|
1492
|
+
},
|
|
1493
|
+
"fill": {
|
|
1494
|
+
"type": "string",
|
|
1495
|
+
"enum": [
|
|
1496
|
+
"crop",
|
|
1497
|
+
"fit"
|
|
1498
|
+
],
|
|
1499
|
+
"description": "How the image fills its frame: 'crop' covers the frame from the center; 'fit' shows the whole image centered inside it. Overrides design.imageFill for this image. Default: design.imageFill, else 'crop'."
|
|
1500
|
+
},
|
|
1501
|
+
"size": {
|
|
1502
|
+
"type": "number",
|
|
1503
|
+
"minimum": 0.1,
|
|
1504
|
+
"maximum": 0.9,
|
|
1505
|
+
"description": "Share of the slide width (left/right) or height (top/bottom) given to the image band. Ignored for 'background'. Default 0.5."
|
|
1506
|
+
},
|
|
1507
|
+
"inset": {
|
|
1508
|
+
"type": "boolean",
|
|
1509
|
+
"description": "Place the frame inside the slide padding instead of edge to edge, like a card. Default false."
|
|
1510
|
+
},
|
|
1511
|
+
"aspectRatio": {
|
|
1512
|
+
"type": "number",
|
|
1513
|
+
"exclusiveMinimum": 0,
|
|
1514
|
+
"maximum": 10,
|
|
1515
|
+
"description": "Width-to-height ratio of the frame. The frame becomes the largest centered box with this ratio inside the band or slide, for example 2.39 for a cinematic letterbox or 0.5 for a phone-shaped frame. 'circle' always uses 1."
|
|
1516
|
+
},
|
|
1517
|
+
"shape": {
|
|
1518
|
+
"type": "string",
|
|
1519
|
+
"enum": [
|
|
1520
|
+
"rectangle",
|
|
1521
|
+
"rounded",
|
|
1522
|
+
"circle",
|
|
1523
|
+
"hexagon"
|
|
1524
|
+
],
|
|
1525
|
+
"description": "Mask applied to the frame, exported as the picture's native preset geometry (rect, roundRect, ellipse, hexagon). 'circle' makes the frame square. Default 'rectangle'."
|
|
1526
|
+
},
|
|
1527
|
+
"cornerRadius": {
|
|
1528
|
+
"type": "number",
|
|
1529
|
+
"minimum": 0,
|
|
1530
|
+
"maximum": 0.5,
|
|
1531
|
+
"description": "Corner radius for shape 'rounded' as a fraction of the frame's shorter side. Default 0.16667, PowerPoint's roundRect default."
|
|
1532
|
+
},
|
|
1533
|
+
"border": {
|
|
1534
|
+
"type": "object",
|
|
1535
|
+
"additionalProperties": false,
|
|
1536
|
+
"required": [
|
|
1537
|
+
"color",
|
|
1538
|
+
"width"
|
|
1539
|
+
],
|
|
1540
|
+
"properties": {
|
|
1541
|
+
"color": {
|
|
1542
|
+
"$ref": "#/$defs/ColorRef",
|
|
1543
|
+
"description": "Line color: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference."
|
|
1544
|
+
},
|
|
1545
|
+
"width": {
|
|
1546
|
+
"type": "number",
|
|
1547
|
+
"minimum": 0,
|
|
1548
|
+
"maximum": 64,
|
|
1549
|
+
"description": "Line width in reference pixels at a 720-pixel short edge, centered on the frame outline like a native picture line. 0 removes the line."
|
|
1550
|
+
}
|
|
1551
|
+
},
|
|
1552
|
+
"description": "Solid line along the frame's shape. A thick dark border on a rounded portrait frame gives a device bezel."
|
|
1553
|
+
},
|
|
1554
|
+
"opacity": {
|
|
1555
|
+
"type": "number",
|
|
1556
|
+
"minimum": 0,
|
|
1557
|
+
"maximum": 1,
|
|
1558
|
+
"description": "Image opacity from 0 to 1, exported as a native alphaModFix. The border and overlay keep their own opacity. Default 1."
|
|
1559
|
+
},
|
|
1560
|
+
"recolor": {
|
|
1561
|
+
"oneOf": [
|
|
1562
|
+
{
|
|
1563
|
+
"type": "string",
|
|
1564
|
+
"const": "grayscale",
|
|
1565
|
+
"description": "Replace each pixel with its luminance, exported as native a:grayscl."
|
|
1566
|
+
},
|
|
1567
|
+
{
|
|
1568
|
+
"type": "object",
|
|
1569
|
+
"additionalProperties": false,
|
|
1570
|
+
"required": [
|
|
1571
|
+
"dark",
|
|
1572
|
+
"light"
|
|
1573
|
+
],
|
|
1574
|
+
"properties": {
|
|
1575
|
+
"dark": {
|
|
1576
|
+
"$ref": "#/$defs/ColorRef",
|
|
1577
|
+
"description": "Color at luminance 0."
|
|
1578
|
+
},
|
|
1579
|
+
"light": {
|
|
1580
|
+
"$ref": "#/$defs/ColorRef",
|
|
1581
|
+
"description": "Color at luminance 1."
|
|
1582
|
+
}
|
|
1583
|
+
},
|
|
1584
|
+
"description": "Duotone: map each pixel's luminance linearly from dark to light, exported as native a:duotone."
|
|
1585
|
+
}
|
|
1586
|
+
],
|
|
1587
|
+
"description": "Color treatment for the image pixels. Luminance uses Rec. 601 weights (0.299, 0.587, 0.114) on sRGB values."
|
|
1588
|
+
},
|
|
1589
|
+
"overlay": {
|
|
1590
|
+
"type": "object",
|
|
1591
|
+
"additionalProperties": false,
|
|
1592
|
+
"required": [
|
|
1593
|
+
"color",
|
|
1594
|
+
"opacity"
|
|
1595
|
+
],
|
|
1596
|
+
"properties": {
|
|
1597
|
+
"color": {
|
|
1598
|
+
"$ref": "#/$defs/ColorRef",
|
|
1599
|
+
"description": "Overlay fill color."
|
|
1600
|
+
},
|
|
1601
|
+
"opacity": {
|
|
1602
|
+
"type": "number",
|
|
1603
|
+
"minimum": 0,
|
|
1604
|
+
"maximum": 1,
|
|
1605
|
+
"description": "Overlay fill opacity."
|
|
1606
|
+
},
|
|
1607
|
+
"edge": {
|
|
1608
|
+
"type": "string",
|
|
1609
|
+
"enum": [
|
|
1610
|
+
"top",
|
|
1611
|
+
"bottom",
|
|
1612
|
+
"left",
|
|
1613
|
+
"right"
|
|
1614
|
+
],
|
|
1615
|
+
"description": "Cover only a band along this edge of the frame, for example a caption strip. Rectangle frames only; other shapes report unsupported-image-treatment and draw no overlay. Omit to cover the whole frame."
|
|
1616
|
+
},
|
|
1617
|
+
"size": {
|
|
1618
|
+
"type": "number",
|
|
1619
|
+
"minimum": 0.05,
|
|
1620
|
+
"maximum": 1,
|
|
1621
|
+
"description": "Band share of the frame for an edge overlay. Default 0.3."
|
|
1622
|
+
}
|
|
1623
|
+
},
|
|
1624
|
+
"description": "Solid scrim drawn over the image in the frame's shape, beneath headings and content, for example to keep overlaid text readable. Exported as a native shape above the picture."
|
|
1466
1625
|
}
|
|
1467
1626
|
}
|
|
1468
1627
|
}
|
|
1469
1628
|
],
|
|
1470
|
-
"description": "Optional slide-level image
|
|
1629
|
+
"description": "Optional slide-level image, separate from content images. It applies to a slide that sets its own design.slideImage, and to slides whose layout declares slideImage: true or whose root image is the same source as a deck-level value. A root image with the same source becomes the slide image instead of a content item. Blur, shadows, soft edges, background removal and device artwork are not part of the treatment vocabulary; see docs/image-treatments.md."
|
|
1471
1630
|
},
|
|
1472
1631
|
"contentDirection": {
|
|
1473
1632
|
"type": "string",
|
|
@@ -1815,7 +1974,7 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1815
1974
|
},
|
|
1816
1975
|
"FontScheme": {
|
|
1817
1976
|
"type": "object",
|
|
1818
|
-
"description": "Typography selections used by the design system. The pair fields (major, minor) and refinement fields (type, app, languageFamily) mirror font-scheme.schema.json (https://openpresentation.org/schema/opf-font-scheme/v1) so library records and inline OPF overrides are interchangeable on those fields.\n\nTwo parallel models are supported and may be mixed:\n- OOXML pairs (major, minor) - heading and body family names that round-trip directly to PowerPoint majorFont/minorFont entries.\n- Abstract roles (heading, body, accent, code) - OPF-specific Font objects the engine maps onto the OOXML pair when serializing. Convenient for inline overrides and for adding accent/code roles that don't have a direct OOXML slot; not part of the catalog record schema.\n\nIn design.fontScheme, 'id' resolves a fontSchemes catalog record as the base; pair and role overrides on the same object take precedence over the resolved scheme. The string shorthand on design.fontScheme is equivalent to setting only 'id'.",
|
|
1977
|
+
"description": "Typography selections used by the design system. The pair fields (major, minor) and refinement fields (type, app, languageFamily) mirror font-scheme.schema.json (https://openpresentation.org/schema/opf-font-scheme/v1) so library records and inline OPF overrides are interchangeable on those fields.\n\nTwo parallel models are supported and may be mixed:\n- OOXML pairs (major, minor) - heading and body family names that round-trip directly to PowerPoint majorFont/minorFont entries.\n- Abstract roles (heading, body, accent, code) - OPF-specific Font objects the engine maps onto the OOXML pair when serializing. Convenient for inline overrides and for adding accent/code roles that don't have a direct OOXML slot. Catalog records may also carry 'code' (for example the consolas and courier-new records); heading, body and accent are not part of the catalog record schema.\n\nIn design.fontScheme, 'id' resolves a fontSchemes catalog record as the base; pair and role overrides on the same object take precedence over the resolved scheme. The string shorthand on design.fontScheme is equivalent to setting only 'id'.",
|
|
1819
1978
|
"properties": {
|
|
1820
1979
|
"id": {
|
|
1821
1980
|
"type": "string",
|
|
@@ -1851,6 +2010,58 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1851
2010
|
"Arial"
|
|
1852
2011
|
]
|
|
1853
2012
|
},
|
|
2013
|
+
"eastAsian": {
|
|
2014
|
+
"type": "object",
|
|
2015
|
+
"additionalProperties": false,
|
|
2016
|
+
"minProperties": 1,
|
|
2017
|
+
"description": "East Asian script fonts. Maps to the OOXML a:ea element of majorFont (major) and minorFont (minor), and to run-level a:ea. When set, they fill the eastAsian slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'ea' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for East Asian languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.",
|
|
2018
|
+
"properties": {
|
|
2019
|
+
"major": {
|
|
2020
|
+
"type": "string",
|
|
2021
|
+
"description": "Heading (major) eastAsian font family \u2014 mirrors majorFont a:ea.",
|
|
2022
|
+
"examples": [
|
|
2023
|
+
"Noto Sans JP",
|
|
2024
|
+
"Meiryo",
|
|
2025
|
+
"Microsoft YaHei"
|
|
2026
|
+
]
|
|
2027
|
+
},
|
|
2028
|
+
"minor": {
|
|
2029
|
+
"type": "string",
|
|
2030
|
+
"description": "Body (minor) eastAsian font family \u2014 mirrors minorFont a:ea.",
|
|
2031
|
+
"examples": [
|
|
2032
|
+
"Noto Sans JP",
|
|
2033
|
+
"Meiryo",
|
|
2034
|
+
"Microsoft YaHei"
|
|
2035
|
+
]
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
},
|
|
2039
|
+
"complexScript": {
|
|
2040
|
+
"type": "object",
|
|
2041
|
+
"additionalProperties": false,
|
|
2042
|
+
"minProperties": 1,
|
|
2043
|
+
"description": "Complex-script fonts (for example Arabic, Hebrew, Indic and Thai). Maps to the OOXML a:cs element of majorFont (major) and minorFont (minor), and to run-level a:cs. When set, they fill the complexScript slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'cs' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for complex-script languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.",
|
|
2044
|
+
"properties": {
|
|
2045
|
+
"major": {
|
|
2046
|
+
"type": "string",
|
|
2047
|
+
"description": "Heading (major) complexScript font family \u2014 mirrors majorFont a:cs.",
|
|
2048
|
+
"examples": [
|
|
2049
|
+
"Noto Sans Arabic",
|
|
2050
|
+
"Arial",
|
|
2051
|
+
"Mangal"
|
|
2052
|
+
]
|
|
2053
|
+
},
|
|
2054
|
+
"minor": {
|
|
2055
|
+
"type": "string",
|
|
2056
|
+
"description": "Body (minor) complexScript font family \u2014 mirrors minorFont a:cs.",
|
|
2057
|
+
"examples": [
|
|
2058
|
+
"Noto Sans Arabic",
|
|
2059
|
+
"Arial",
|
|
2060
|
+
"Mangal"
|
|
2061
|
+
]
|
|
2062
|
+
}
|
|
2063
|
+
}
|
|
2064
|
+
},
|
|
1854
2065
|
"type": {
|
|
1855
2066
|
"type": "string",
|
|
1856
2067
|
"enum": [
|
|
@@ -1875,7 +2086,7 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1875
2086
|
"ea",
|
|
1876
2087
|
"cs"
|
|
1877
2088
|
],
|
|
1878
|
-
"description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts."
|
|
2089
|
+
"description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts. As the design font scheme, an 'ea' or 'cs' scheme also fills that script slot with its own major/minor families when its languages list is empty or names the presentation language."
|
|
1879
2090
|
},
|
|
1880
2091
|
"heading": {
|
|
1881
2092
|
"$ref": "#/$defs/Font",
|
|
@@ -1891,7 +2102,7 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1891
2102
|
},
|
|
1892
2103
|
"code": {
|
|
1893
2104
|
"$ref": "#/$defs/Font",
|
|
1894
|
-
"description": "Abstract role: monospaced font used for code blocks. No direct OOXML slot."
|
|
2105
|
+
"description": "Abstract role: monospaced font used for code blocks and inline code. No direct OOXML slot. Resolution: this override, then the resolved catalog record's 'code' (for example Consolas for the consolas scheme), then the engine fallback Roboto Mono. Heading and body families are never used as the code fallback."
|
|
1895
2106
|
}
|
|
1896
2107
|
}
|
|
1897
2108
|
},
|
|
@@ -1982,6 +2193,109 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
1982
2193
|
"#0F172AFF"
|
|
1983
2194
|
]
|
|
1984
2195
|
},
|
|
2196
|
+
"ColorRef": {
|
|
2197
|
+
"anyOf": [
|
|
2198
|
+
{
|
|
2199
|
+
"$ref": "#/$defs/HexColor"
|
|
2200
|
+
},
|
|
2201
|
+
{
|
|
2202
|
+
"type": "string",
|
|
2203
|
+
"enum": [
|
|
2204
|
+
"accent1",
|
|
2205
|
+
"accent2",
|
|
2206
|
+
"accent3",
|
|
2207
|
+
"accent4",
|
|
2208
|
+
"accent5",
|
|
2209
|
+
"accent6",
|
|
2210
|
+
"dark1",
|
|
2211
|
+
"dark2",
|
|
2212
|
+
"light1",
|
|
2213
|
+
"light2",
|
|
2214
|
+
"hyperlink",
|
|
2215
|
+
"followedHyperlink",
|
|
2216
|
+
"primary",
|
|
2217
|
+
"secondary",
|
|
2218
|
+
"accent",
|
|
2219
|
+
"background",
|
|
2220
|
+
"surface",
|
|
2221
|
+
"text",
|
|
2222
|
+
"textSecondary"
|
|
2223
|
+
]
|
|
2224
|
+
},
|
|
2225
|
+
{
|
|
2226
|
+
"type": "string",
|
|
2227
|
+
"pattern": "^var:[a-z][a-z0-9-]*$"
|
|
2228
|
+
}
|
|
2229
|
+
],
|
|
2230
|
+
"description": "A color value or reference, enforced on styled table cell fill and text colors and on cell border colors. Three forms:\n- Literal hex: '#RGB', '#RRGGBB', or '#RRGGBBAA'.\n- Color-scheme name, resolved through the effective color scheme after design resolution: an OOXML slot ('accent1'-'accent6', 'dark1', 'dark2', 'light1', 'light2', 'hyperlink', 'followedHyperlink') or an abstract role ('primary', 'secondary', 'accent', 'background', 'surface', 'text', 'textSecondary'). Roles resolve through the same role-to-slot mapping engines already apply to color schemes.\n- Variable reference: 'var:<id>' into the top-level variables map.\n\nNames keep content theme-portable: re-theming the deck updates every named reference, where a literal hex stays frozen. Unknown 'var:' ids produce a validation warning, never an error, and engines fall back to their default text color. TextRun.color documents the same three forms but remains an open string so imported decks with unrecognized run colors stay valid; validators warn there instead of erroring.",
|
|
2231
|
+
"examples": [
|
|
2232
|
+
"#0F4C81",
|
|
2233
|
+
"accent2",
|
|
2234
|
+
"text",
|
|
2235
|
+
"var:risk"
|
|
2236
|
+
]
|
|
2237
|
+
},
|
|
2238
|
+
"Variables": {
|
|
2239
|
+
"type": "object",
|
|
2240
|
+
"propertyNames": {
|
|
2241
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
2242
|
+
},
|
|
2243
|
+
"additionalProperties": {
|
|
2244
|
+
"$ref": "#/$defs/Variable"
|
|
2245
|
+
},
|
|
2246
|
+
"description": "Named color variables, keyed by stable kebab-case id. Content color fields reference entries as 'var:<id>' strings. Each value is a hex string shorthand or a Variable object.",
|
|
2247
|
+
"examples": [
|
|
2248
|
+
{
|
|
2249
|
+
"risk": "#B42318",
|
|
2250
|
+
"highlight": {
|
|
2251
|
+
"type": "color",
|
|
2252
|
+
"value": "#0F4C81",
|
|
2253
|
+
"description": "Brand highlight for emphasized runs."
|
|
2254
|
+
}
|
|
2255
|
+
}
|
|
2256
|
+
]
|
|
2257
|
+
},
|
|
2258
|
+
"Variable": {
|
|
2259
|
+
"oneOf": [
|
|
2260
|
+
{
|
|
2261
|
+
"$ref": "#/$defs/HexColor"
|
|
2262
|
+
},
|
|
2263
|
+
{
|
|
2264
|
+
"type": "object",
|
|
2265
|
+
"required": [
|
|
2266
|
+
"type",
|
|
2267
|
+
"value"
|
|
2268
|
+
],
|
|
2269
|
+
"additionalProperties": false,
|
|
2270
|
+
"properties": {
|
|
2271
|
+
"type": {
|
|
2272
|
+
"type": "string",
|
|
2273
|
+
"enum": [
|
|
2274
|
+
"color"
|
|
2275
|
+
],
|
|
2276
|
+
"description": "Variable kind. Only 'color' is defined today; other kinds may be added when content surfaces exist to consume them."
|
|
2277
|
+
},
|
|
2278
|
+
"value": {
|
|
2279
|
+
"$ref": "#/$defs/HexColor",
|
|
2280
|
+
"description": "Hex color this variable resolves to."
|
|
2281
|
+
},
|
|
2282
|
+
"description": {
|
|
2283
|
+
"type": "string",
|
|
2284
|
+
"description": "Optional prose describing what the variable is for, surfaced by pickers and agents."
|
|
2285
|
+
}
|
|
2286
|
+
}
|
|
2287
|
+
}
|
|
2288
|
+
],
|
|
2289
|
+
"description": 'A single named variable. A hex string is shorthand for { "type": "color", "value": value }.',
|
|
2290
|
+
"examples": [
|
|
2291
|
+
"#B42318",
|
|
2292
|
+
{
|
|
2293
|
+
"type": "color",
|
|
2294
|
+
"value": "#B42318",
|
|
2295
|
+
"description": "Risk emphasis."
|
|
2296
|
+
}
|
|
2297
|
+
]
|
|
2298
|
+
},
|
|
1985
2299
|
"BackgroundShortcut": {
|
|
1986
2300
|
"oneOf": [
|
|
1987
2301
|
{
|
|
@@ -2196,11 +2510,11 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2196
2510
|
"properties": {
|
|
2197
2511
|
"preset": {
|
|
2198
2512
|
"type": "string",
|
|
2199
|
-
"description": "Pattern preset or engine-defined pattern id.",
|
|
2513
|
+
"description": "Pattern preset or engine-defined pattern id. DrawingML preset names (ECMA-376 ST_PresetPatternVal, for example pct5, ltHorz, wdUpDiag) are portable: PPTX export writes them as native pattern fills and import returns the same name. Engine-defined ids are renderer-specific; the legacy preview id diagStripe remains accepted and exports as wdUpDiag.",
|
|
2200
2514
|
"examples": [
|
|
2201
2515
|
"pct5",
|
|
2202
2516
|
"ltHorz",
|
|
2203
|
-
"
|
|
2517
|
+
"wdUpDiag"
|
|
2204
2518
|
]
|
|
2205
2519
|
},
|
|
2206
2520
|
"foregroundColor": {
|
|
@@ -2322,7 +2636,7 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2322
2636
|
},
|
|
2323
2637
|
"HeaderFooterItem": {
|
|
2324
2638
|
"type": "object",
|
|
2325
|
-
"description": "One header/footer zone.
|
|
2639
|
+
"description": "One header/footer zone. Every configured field renders; fields in one zone stack top to bottom in the order image, text, organization, section, slide number, date. Put a date and a slide number in different zones to keep each on the zone's single line.",
|
|
2326
2640
|
"properties": {
|
|
2327
2641
|
"text": {
|
|
2328
2642
|
"type": "string",
|
|
@@ -2342,7 +2656,18 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2342
2656
|
},
|
|
2343
2657
|
"slideNumber": {
|
|
2344
2658
|
"type": "boolean",
|
|
2345
|
-
"description": "Whether to render the current slide number in this zone."
|
|
2659
|
+
"description": "Whether to render the current slide number in this zone. PPTX export writes a native slide-number field when its value fits within one accepted text line; a value split across lines exports as static text with a diagnostic."
|
|
2660
|
+
},
|
|
2661
|
+
"slideNumberFormat": {
|
|
2662
|
+
"type": "string",
|
|
2663
|
+
"pattern": "[{]current[}]",
|
|
2664
|
+
"description": 'Template for the slide number when slideNumber is true. {current} is the displayed slide number (a native PPTX field when its value fits within one accepted text line); {total} is the number of slides in the rendered or exported deck, written as fixed text because PowerPoint has no slide-count field. Other characters are literal. Defaults to "{current}".',
|
|
2665
|
+
"examples": [
|
|
2666
|
+
"{current}",
|
|
2667
|
+
"{current} / {total}",
|
|
2668
|
+
"A-{current}",
|
|
2669
|
+
"Page {current} of {total}"
|
|
2670
|
+
]
|
|
2346
2671
|
},
|
|
2347
2672
|
"date": {
|
|
2348
2673
|
"oneOf": [
|
|
@@ -2353,7 +2678,23 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2353
2678
|
"type": "string"
|
|
2354
2679
|
}
|
|
2355
2680
|
],
|
|
2356
|
-
"description": "
|
|
2681
|
+
"description": "true renders the current date: the renderer or exporter must be given an explicit ISO date by its host (core never reads a clock). PPTX export writes a native date field only for a supported dateFormat whose complete value fits within one accepted text line; otherwise it writes static text with a diagnostic. Native PowerPoint refresh and save/reopen compatibility require separate verification. A string is fixed: with dateFormat it must be an ISO YYYY-MM-DD date and is formatted; without dateFormat it is literal text rendered as written.",
|
|
2682
|
+
"examples": [
|
|
2683
|
+
true,
|
|
2684
|
+
"2026-04-23",
|
|
2685
|
+
"April 2026"
|
|
2686
|
+
]
|
|
2687
|
+
},
|
|
2688
|
+
"dateFormat": {
|
|
2689
|
+
"type": "string",
|
|
2690
|
+
"minLength": 1,
|
|
2691
|
+
"description": `Date pattern for date. Tokens: yyyy (2026), yy (26), MMMM (April), MMM (Apr), MM (04), M (4), dd (09), d (9), EEEE (Thursday), EEE (Thu). Text in single quotes and other non-letter characters are literal. Month and weekday names are English, independent of host locale. Defaults to "M/d/yyyy" for a current date. PPTX export writes a native current-date field only when its complete value fits within one accepted text line and the pattern matches a PowerPoint en-US date field ('M/d/yyyy'; 'EEEE, MMMM d, yyyy'; 'd MMMM yyyy'; 'MMMM d, yyyy'; 'd-MMM-yy'; 'MMMM yy'; 'MMM-yy'). Other patterns and wrapped fields export as static text with a diagnostic. Full provenance can recover generated-date intent from unchanged supported wrapped dates on OPF reimport; the existing PPTX text remains static.`,
|
|
2692
|
+
"examples": [
|
|
2693
|
+
"MMM d, yyyy",
|
|
2694
|
+
"yyyy-MM-dd",
|
|
2695
|
+
"MMM yyyy",
|
|
2696
|
+
"MMMM d, yyyy"
|
|
2697
|
+
]
|
|
2357
2698
|
},
|
|
2358
2699
|
"organization": {
|
|
2359
2700
|
"type": "boolean",
|
|
@@ -2362,6 +2703,10 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2362
2703
|
"section": {
|
|
2363
2704
|
"type": "boolean",
|
|
2364
2705
|
"description": "Whether to render the current slide section label."
|
|
2706
|
+
},
|
|
2707
|
+
"socials": {
|
|
2708
|
+
"type": "boolean",
|
|
2709
|
+
"description": "Whether to render the primary organization's social profiles from organization.socials, one line per platform in key order. A handle is formatted through the platform's socialPlatforms record (companyUrlPattern, else profileUrlPattern, else baseUrl, with handlePrefix stripped) and shown as that profile URL without its 'https://' scheme; a value that is already a URL is shown without an 'https://' scheme; an unknown platform key shows the raw value. Exporters link each line to its full URL when one exists. Speaker socials are not rendered by this field."
|
|
2365
2710
|
}
|
|
2366
2711
|
}
|
|
2367
2712
|
},
|
|
@@ -2713,6 +3058,10 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2713
3058
|
},
|
|
2714
3059
|
"composition": {
|
|
2715
3060
|
"$ref": "#/$defs/Composition"
|
|
3061
|
+
},
|
|
3062
|
+
"extensions": {
|
|
3063
|
+
"type": "object",
|
|
3064
|
+
"description": 'Custom data passthrough for agent workflows at slide scope; ignored by the engine but preserved across read/write round-trips. Use for review state, generation provenance, or authoring conventions such as { "authoring": { "locked": true } }.'
|
|
2716
3065
|
}
|
|
2717
3066
|
}
|
|
2718
3067
|
},
|
|
@@ -2721,6 +3070,18 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
2721
3070
|
"description": "A content leaf or recursively composed group. A group contains blocks and optional composition; it cannot mix blocks with leaf payload fields. Groups may nest up to 32 levels.",
|
|
2722
3071
|
"additionalProperties": false,
|
|
2723
3072
|
"properties": {
|
|
3073
|
+
"id": {
|
|
3074
|
+
"type": "string",
|
|
3075
|
+
"description": "Optional stable identifier for this payload, unique among slide and payload ids in the document. Use when another system needs to address the payload across edits \u2014 patch-style agent edits, comments, review state, or generation provenance. Identity survives reordering where array indexes do not.",
|
|
3076
|
+
"examples": [
|
|
3077
|
+
"kpi-adoption",
|
|
3078
|
+
"churn-quote"
|
|
3079
|
+
]
|
|
3080
|
+
},
|
|
3081
|
+
"extensions": {
|
|
3082
|
+
"type": "object",
|
|
3083
|
+
"description": "Custom data passthrough for agent workflows at payload scope; ignored by the engine but preserved across read/write round-trips."
|
|
3084
|
+
},
|
|
2724
3085
|
"type": {
|
|
2725
3086
|
"type": "string",
|
|
2726
3087
|
"enum": [
|
|
@@ -3587,10 +3948,11 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
3587
3948
|
},
|
|
3588
3949
|
"color": {
|
|
3589
3950
|
"type": "string",
|
|
3590
|
-
"description": "Run text color
|
|
3951
|
+
"description": "Run text color. Documented forms: a hex string ('#RGB', '#RRGGBB', '#RRGGBBAA'), a color-scheme slot or role name resolved through the effective color scheme ('accent2', 'text'), or a 'var:<id>' reference into the top-level variables map. Prefer names over hex so runs survive re-theming. Any other string stays schema-valid so imported decks keep validating: validators warn and renderers fall back to the theme text color.",
|
|
3591
3952
|
"examples": [
|
|
3592
3953
|
"#0F172A",
|
|
3593
|
-
"
|
|
3954
|
+
"accent2",
|
|
3955
|
+
"var:risk"
|
|
3594
3956
|
]
|
|
3595
3957
|
},
|
|
3596
3958
|
"fontSize": {
|
|
@@ -3638,13 +4000,12 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
3638
4000
|
"properties": {
|
|
3639
4001
|
"type": {
|
|
3640
4002
|
"type": "string",
|
|
3641
|
-
"description": "Chart type id. Resolves to the id of a chartTypes catalog record; renderers map that record through mappings.openxml and any renderer-specific mapping they understand.",
|
|
4003
|
+
"description": "Chart type id. Resolves to the id of a chartTypes catalog record; renderers map that record through mappings.openxml and any renderer-specific mapping they understand. The bundled catalog covers the chart types Aspose.Slides officially supports; deprecated ids still resolve but validate with a warning naming their replacement.",
|
|
3642
4004
|
"examples": [
|
|
3643
|
-
"bar",
|
|
3644
4005
|
"column",
|
|
4006
|
+
"bar",
|
|
3645
4007
|
"line",
|
|
3646
4008
|
"pie",
|
|
3647
|
-
"donut",
|
|
3648
4009
|
"doughnut",
|
|
3649
4010
|
"area",
|
|
3650
4011
|
"scatter",
|
|
@@ -3652,7 +4013,7 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
3652
4013
|
"waterfall",
|
|
3653
4014
|
"funnel",
|
|
3654
4015
|
"treemap",
|
|
3655
|
-
"
|
|
4016
|
+
"stacked-column-3x"
|
|
3656
4017
|
]
|
|
3657
4018
|
},
|
|
3658
4019
|
"data": {
|
|
@@ -3933,14 +4294,12 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
3933
4294
|
"additionalProperties": false,
|
|
3934
4295
|
"properties": {
|
|
3935
4296
|
"fill": {
|
|
3936
|
-
"
|
|
3937
|
-
"
|
|
3938
|
-
"description": "Explicit RGB or RGBA color. Eight-digit colors include alpha; #00000000 is transparent."
|
|
4297
|
+
"$ref": "#/$defs/ColorRef",
|
|
4298
|
+
"description": "Cell background: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference. Eight-digit hex colors include alpha; #00000000 is transparent."
|
|
3939
4299
|
},
|
|
3940
4300
|
"color": {
|
|
3941
|
-
"
|
|
3942
|
-
"
|
|
3943
|
-
"description": "Default text color, overridden by individual rich run colors."
|
|
4301
|
+
"$ref": "#/$defs/ColorRef",
|
|
4302
|
+
"description": "Default text color, overridden by individual rich run colors. Accepts a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference."
|
|
3944
4303
|
},
|
|
3945
4304
|
"align": {
|
|
3946
4305
|
"type": "string",
|
|
@@ -4021,9 +4380,8 @@ Resolution order: inline catalogs.fontSchemes.records[] -> catalogs.fontSchemes.
|
|
|
4021
4380
|
],
|
|
4022
4381
|
"properties": {
|
|
4023
4382
|
"color": {
|
|
4024
|
-
"
|
|
4025
|
-
"
|
|
4026
|
-
"description": "Explicit RGB or RGBA color. Eight-digit colors include alpha; #00000000 is transparent."
|
|
4383
|
+
"$ref": "#/$defs/ColorRef",
|
|
4384
|
+
"description": "Border color: a hex color, a color-scheme slot or role name, or a 'var:<id>' variable reference. Eight-digit hex colors include alpha; #00000000 is transparent."
|
|
4027
4385
|
},
|
|
4028
4386
|
"width": {
|
|
4029
4387
|
"type": "number",
|
|
@@ -5170,7 +5528,7 @@ var chartType = {
|
|
|
5170
5528
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
5171
5529
|
"$id": "https://openpresentation.org/schema/opf-chart-type/v1",
|
|
5172
5530
|
"title": "Chart Type",
|
|
5173
|
-
"description":
|
|
5531
|
+
"description": 'Schema for chart-type records in the pptx.gallery catalog. The bundled catalog holds one record per chart type that Aspose.Slides officially supports (see mappings.renderers["aspose-slides"].chartType). 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.',
|
|
5174
5532
|
"type": "object",
|
|
5175
5533
|
"additionalProperties": false,
|
|
5176
5534
|
"required": [
|
|
@@ -5191,11 +5549,11 @@ var chartType = {
|
|
|
5191
5549
|
"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.",
|
|
5192
5550
|
"examples": [
|
|
5193
5551
|
"column",
|
|
5194
|
-
"
|
|
5195
|
-
"stacked-column",
|
|
5552
|
+
"bar",
|
|
5553
|
+
"stacked-column-3x",
|
|
5196
5554
|
"doughnut",
|
|
5197
|
-
"
|
|
5198
|
-
"100pct-stacked-column"
|
|
5555
|
+
"treemap",
|
|
5556
|
+
"100pct-stacked-column-3x"
|
|
5199
5557
|
]
|
|
5200
5558
|
},
|
|
5201
5559
|
"name": {
|
|
@@ -5203,9 +5561,9 @@ var chartType = {
|
|
|
5203
5561
|
"description": "Stable display/programmatic name for this chart type.",
|
|
5204
5562
|
"examples": [
|
|
5205
5563
|
"COLUMN",
|
|
5206
|
-
"
|
|
5564
|
+
"STACKED_COLUMN_3X",
|
|
5207
5565
|
"DOUGHNUT",
|
|
5208
|
-
"
|
|
5566
|
+
"TREEMAP"
|
|
5209
5567
|
]
|
|
5210
5568
|
},
|
|
5211
5569
|
"label": {
|
|
@@ -5213,9 +5571,9 @@ var chartType = {
|
|
|
5213
5571
|
"description": "Human-readable label shown in chart pickers.",
|
|
5214
5572
|
"examples": [
|
|
5215
5573
|
"Column",
|
|
5216
|
-
"
|
|
5574
|
+
"Stacked Column",
|
|
5217
5575
|
"Doughnut",
|
|
5218
|
-
"
|
|
5576
|
+
"Treemap"
|
|
5219
5577
|
]
|
|
5220
5578
|
},
|
|
5221
5579
|
"summary": {
|
|
@@ -5237,6 +5595,10 @@ var chartType = {
|
|
|
5237
5595
|
"$ref": "#/$defs/ChartTypeMappings",
|
|
5238
5596
|
"description": "Canonical and optional renderer-specific mappings used by engines to render this chart type."
|
|
5239
5597
|
},
|
|
5598
|
+
"deprecation": {
|
|
5599
|
+
"$ref": "#/$defs/ChartTypeDeprecation",
|
|
5600
|
+
"description": "Present when this chart type is deprecated. Deprecated records stay resolvable so existing documents keep validating, but pickers and default listings exclude them, validators warn when a document references them, and they are removed in the release named by `removal`."
|
|
5601
|
+
},
|
|
5240
5602
|
"group": {
|
|
5241
5603
|
"type": "string",
|
|
5242
5604
|
"description": "Top-level grouping in the chart picker (column, bar, line, area, pie, radar, etc.).",
|
|
@@ -5473,6 +5835,35 @@ var chartType = {
|
|
|
5473
5835
|
}
|
|
5474
5836
|
},
|
|
5475
5837
|
"$defs": {
|
|
5838
|
+
"ChartTypeDeprecation": {
|
|
5839
|
+
"type": "object",
|
|
5840
|
+
"additionalProperties": false,
|
|
5841
|
+
"required": [
|
|
5842
|
+
"replacedBy"
|
|
5843
|
+
],
|
|
5844
|
+
"properties": {
|
|
5845
|
+
"replacedBy": {
|
|
5846
|
+
"type": "string",
|
|
5847
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$",
|
|
5848
|
+
"description": "Id of the non-deprecated chart type that documents should reference instead.",
|
|
5849
|
+
"examples": [
|
|
5850
|
+
"column",
|
|
5851
|
+
"stacked-column-3x"
|
|
5852
|
+
]
|
|
5853
|
+
},
|
|
5854
|
+
"reason": {
|
|
5855
|
+
"type": "string",
|
|
5856
|
+
"description": "Why the record is deprecated."
|
|
5857
|
+
},
|
|
5858
|
+
"removal": {
|
|
5859
|
+
"type": "string",
|
|
5860
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog.",
|
|
5861
|
+
"examples": [
|
|
5862
|
+
"0.12.0"
|
|
5863
|
+
]
|
|
5864
|
+
}
|
|
5865
|
+
}
|
|
5866
|
+
},
|
|
5476
5867
|
"ChartTypeMappings": {
|
|
5477
5868
|
"type": "object",
|
|
5478
5869
|
"additionalProperties": false,
|
|
@@ -5486,11 +5877,18 @@ var chartType = {
|
|
|
5486
5877
|
},
|
|
5487
5878
|
"renderers": {
|
|
5488
5879
|
"type": "object",
|
|
5489
|
-
"description":
|
|
5880
|
+
"description": 'Optional renderer-specific mappings. Keys are renderer ids; values are intentionally opaque to OPF. The bundled catalog records the matching Aspose.Slides ChartType enumeration member under the "aspose-slides" key, e.g. {"aspose-slides": {"chartType": "StackedColumn"}}.',
|
|
5490
5881
|
"additionalProperties": {
|
|
5491
5882
|
"type": "object",
|
|
5492
5883
|
"additionalProperties": true
|
|
5493
|
-
}
|
|
5884
|
+
},
|
|
5885
|
+
"examples": [
|
|
5886
|
+
{
|
|
5887
|
+
"aspose-slides": {
|
|
5888
|
+
"chartType": "ClusteredColumn"
|
|
5889
|
+
}
|
|
5890
|
+
}
|
|
5891
|
+
]
|
|
5494
5892
|
}
|
|
5495
5893
|
}
|
|
5496
5894
|
},
|
|
@@ -6171,13 +6569,25 @@ var language = {
|
|
|
6171
6569
|
"zh-Hans"
|
|
6172
6570
|
]
|
|
6173
6571
|
},
|
|
6572
|
+
"ooxmlLang": {
|
|
6573
|
+
"type": "string",
|
|
6574
|
+
"description": "Curated culture tag for OOXML text-run language attributes (a:rPr/@lang, a:endParaRPr/@lang), in the language-[Script-]REGION form Office recognizes (e.g. 'ja-JP', 'ar-SA', 'ms-MY', 'nb-NO', 'fil-PH', 'zh-CN'). Engines emit it instead of 'bcp47' when the document names the language by catalog id or by a tag without a region; a region-bearing tag written by the author is emitted as written. Curated rather than inferred so output does not depend on the runtime's locale data.",
|
|
6575
|
+
"examples": [
|
|
6576
|
+
"en-US",
|
|
6577
|
+
"ja-JP",
|
|
6578
|
+
"ar-SA",
|
|
6579
|
+
"ms-MY",
|
|
6580
|
+
"nb-NO",
|
|
6581
|
+
"zh-CN"
|
|
6582
|
+
]
|
|
6583
|
+
},
|
|
6174
6584
|
"direction": {
|
|
6175
6585
|
"type": "string",
|
|
6176
6586
|
"enum": [
|
|
6177
6587
|
"ltr",
|
|
6178
6588
|
"rtl"
|
|
6179
6589
|
],
|
|
6180
|
-
"description": "Base text direction for the language.",
|
|
6590
|
+
"description": "Base text direction for the language. When omitted, engines derive it from the script: Arabic (Arab), Hebrew (Hebr), Syriac (Syrc), Thaana (Thaa), N'Ko (Nkoo), Adlam (Adlm), Samaritan (Samr), Mandaic (Mand) and Hanifi Rohingya (Rohg) are right-to-left; every other script is left-to-right. Bundled language records state it explicitly.",
|
|
6181
6591
|
"examples": [
|
|
6182
6592
|
"ltr",
|
|
6183
6593
|
"rtl"
|
|
@@ -6185,18 +6595,24 @@ var language = {
|
|
|
6185
6595
|
},
|
|
6186
6596
|
"script": {
|
|
6187
6597
|
"type": "string",
|
|
6188
|
-
"description": "ISO 15924 script code
|
|
6598
|
+
"description": "ISO 15924 script code of the language's writing system. The script selects the OOXML font slot the language's text uses: East Asian scripts (Hans, Hant, Hani, Jpan, Kore, Hang, Hira, Kana, Bopo, Yiii) use the eastAsian slot; complex scripts (for example Arab, Hebr, Syrc, Thaa, Deva, Beng, Guru, Gujr, Orya, Taml, Telu, Knda, Mlym, Sinh, Thai, Laoo, Tibt, Mymr, Khmr, Mong) use the complexScript slot; every other script (Latn, Cyrl, Grek, Armn, Geor, Ethi, ...) uses the latin slot. When omitted, engines infer it from the BCP-47 tag. Bundled language records state it explicitly. See docs/programs/font-fidelity-everywhere/script-font-model.md.",
|
|
6189
6599
|
"examples": [
|
|
6190
6600
|
"Latn",
|
|
6191
|
-
"Arab",
|
|
6192
6601
|
"Cyrl",
|
|
6602
|
+
"Grek",
|
|
6603
|
+
"Arab",
|
|
6604
|
+
"Hebr",
|
|
6605
|
+
"Jpan",
|
|
6606
|
+
"Kore",
|
|
6193
6607
|
"Hans",
|
|
6194
|
-
"Hant"
|
|
6608
|
+
"Hant",
|
|
6609
|
+
"Deva",
|
|
6610
|
+
"Thai"
|
|
6195
6611
|
]
|
|
6196
6612
|
},
|
|
6197
6613
|
"fontScheme": {
|
|
6198
6614
|
"type": "string",
|
|
6199
|
-
"description": "Default font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.",
|
|
6615
|
+
"description": "Default font-scheme id for this language when targeting PowerPoint output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Its major/minor families fill the language's script slot (eastAsian or complexScript, chosen by 'script') unless the effective design font scheme sets that slot itself; the latin slot always follows the design font scheme.",
|
|
6200
6616
|
"examples": [
|
|
6201
6617
|
"aptos",
|
|
6202
6618
|
"microsoft-yahei",
|
|
@@ -6205,7 +6621,7 @@ var language = {
|
|
|
6205
6621
|
},
|
|
6206
6622
|
"googleFontScheme": {
|
|
6207
6623
|
"type": "string",
|
|
6208
|
-
"description": "Default font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does.",
|
|
6624
|
+
"description": "Default font-scheme id for this language when targeting Google Slides output. Resolves against catalogs.fontSchemes the same way design.fontScheme or design.fontScheme.id does. Used in place of 'fontScheme' when resolving script fonts for Google Slides output.",
|
|
6209
6625
|
"examples": [
|
|
6210
6626
|
"roboto",
|
|
6211
6627
|
"noto-sans",
|
|
@@ -6539,6 +6955,96 @@ var fontScheme = {
|
|
|
6539
6955
|
"Microsoft YaHei"
|
|
6540
6956
|
]
|
|
6541
6957
|
},
|
|
6958
|
+
"code": {
|
|
6959
|
+
"type": "object",
|
|
6960
|
+
"description": "Optional monospaced font for code blocks and inline code. It has the same shape as the OPF FontScheme 'code' role, so a record and an inline design.fontScheme override are interchangeable. OOXML has no code slot, so exporters write this family on code runs. When neither design.fontScheme nor the resolved record defines 'code', engines fall back to Roboto Mono.",
|
|
6961
|
+
"required": [
|
|
6962
|
+
"family"
|
|
6963
|
+
],
|
|
6964
|
+
"properties": {
|
|
6965
|
+
"family": {
|
|
6966
|
+
"type": "string",
|
|
6967
|
+
"description": "Monospaced font family name.",
|
|
6968
|
+
"examples": [
|
|
6969
|
+
"Consolas",
|
|
6970
|
+
"Courier New"
|
|
6971
|
+
]
|
|
6972
|
+
},
|
|
6973
|
+
"weight": {
|
|
6974
|
+
"type": "number",
|
|
6975
|
+
"description": "Numeric font weight (e.g., 400 for regular, 700 for bold)."
|
|
6976
|
+
},
|
|
6977
|
+
"style": {
|
|
6978
|
+
"type": "string",
|
|
6979
|
+
"enum": [
|
|
6980
|
+
"normal",
|
|
6981
|
+
"italic"
|
|
6982
|
+
],
|
|
6983
|
+
"description": "Font style."
|
|
6984
|
+
},
|
|
6985
|
+
"letterSpacing": {
|
|
6986
|
+
"type": "number",
|
|
6987
|
+
"description": "Letter spacing (tracking) in ems."
|
|
6988
|
+
}
|
|
6989
|
+
},
|
|
6990
|
+
"examples": [
|
|
6991
|
+
{
|
|
6992
|
+
"family": "Consolas"
|
|
6993
|
+
}
|
|
6994
|
+
]
|
|
6995
|
+
},
|
|
6996
|
+
"eastAsian": {
|
|
6997
|
+
"type": "object",
|
|
6998
|
+
"additionalProperties": false,
|
|
6999
|
+
"minProperties": 1,
|
|
7000
|
+
"description": "East Asian script fonts. Maps to the OOXML a:ea element of majorFont (major) and minorFont (minor), and to run-level a:ea. When set, they fill the eastAsian slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'ea' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for East Asian languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.",
|
|
7001
|
+
"properties": {
|
|
7002
|
+
"major": {
|
|
7003
|
+
"type": "string",
|
|
7004
|
+
"description": "Heading (major) eastAsian font family \u2014 mirrors majorFont a:ea.",
|
|
7005
|
+
"examples": [
|
|
7006
|
+
"Noto Sans JP",
|
|
7007
|
+
"Meiryo",
|
|
7008
|
+
"Microsoft YaHei"
|
|
7009
|
+
]
|
|
7010
|
+
},
|
|
7011
|
+
"minor": {
|
|
7012
|
+
"type": "string",
|
|
7013
|
+
"description": "Body (minor) eastAsian font family \u2014 mirrors minorFont a:ea.",
|
|
7014
|
+
"examples": [
|
|
7015
|
+
"Noto Sans JP",
|
|
7016
|
+
"Meiryo",
|
|
7017
|
+
"Microsoft YaHei"
|
|
7018
|
+
]
|
|
7019
|
+
}
|
|
7020
|
+
}
|
|
7021
|
+
},
|
|
7022
|
+
"complexScript": {
|
|
7023
|
+
"type": "object",
|
|
7024
|
+
"additionalProperties": false,
|
|
7025
|
+
"minProperties": 1,
|
|
7026
|
+
"description": "Complex-script fonts (for example Arabic, Hebrew, Indic and Thai). Maps to the OOXML a:cs element of majorFont (major) and minorFont (minor), and to run-level a:cs. When set, they fill the complexScript slot for every language; when omitted, the slot comes from this scheme's own major/minor when languageFamily is 'cs' and the scheme's languages list is empty or names the presentation language, then from the presentation language's font scheme for complex-script languages, and otherwise from the latin (major/minor) families. A missing 'major' or 'minor' falls back to the other.",
|
|
7027
|
+
"properties": {
|
|
7028
|
+
"major": {
|
|
7029
|
+
"type": "string",
|
|
7030
|
+
"description": "Heading (major) complexScript font family \u2014 mirrors majorFont a:cs.",
|
|
7031
|
+
"examples": [
|
|
7032
|
+
"Noto Sans Arabic",
|
|
7033
|
+
"Arial",
|
|
7034
|
+
"Mangal"
|
|
7035
|
+
]
|
|
7036
|
+
},
|
|
7037
|
+
"minor": {
|
|
7038
|
+
"type": "string",
|
|
7039
|
+
"description": "Body (minor) complexScript font family \u2014 mirrors minorFont a:cs.",
|
|
7040
|
+
"examples": [
|
|
7041
|
+
"Noto Sans Arabic",
|
|
7042
|
+
"Arial",
|
|
7043
|
+
"Mangal"
|
|
7044
|
+
]
|
|
7045
|
+
}
|
|
7046
|
+
}
|
|
7047
|
+
},
|
|
6542
7048
|
"type": {
|
|
6543
7049
|
"type": "string",
|
|
6544
7050
|
"enum": [
|
|
@@ -6563,7 +7069,7 @@ var fontScheme = {
|
|
|
6563
7069
|
"ea",
|
|
6564
7070
|
"cs"
|
|
6565
7071
|
],
|
|
6566
|
-
"description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts."
|
|
7072
|
+
"description": "OOXML font-language family this scheme is intended for: 'latin' for Latin-script content, 'ea' for East Asian scripts, 'cs' for Complex Scripts. As the design font scheme, an 'ea' or 'cs' scheme also fills that script slot with its own major/minor families when its languages list is empty or names the presentation language."
|
|
6567
7073
|
},
|
|
6568
7074
|
"languages": {
|
|
6569
7075
|
"type": "array",
|