@openpresentation/opf 0.11.2 → 0.11.4
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-DJ-B5ZyD.d.ts → catalogs-CUClB3nl.d.ts} +202 -5
- package/dist/catalogs.d.ts +1 -1
- package/dist/catalogs.js +1 -1
- package/dist/{chunk-BVLWFMDX.js → chunk-3H2U7FDR.js} +224 -26
- package/dist/{chunk-K7IWYODS.js → chunk-3OJN7QAW.js} +17 -4
- package/dist/{chunk-7LF37SG3.js → chunk-AEUSVEUY.js} +4915 -1640
- package/dist/{chunk-DJRZMGKY.js → chunk-FDCWQHWO.js} +143 -68
- package/dist/{chunk-SDETQV7Y.js → chunk-HJL64ETN.js} +505 -0
- package/dist/{chunk-LTSDDBNW.js → chunk-KJKASEPE.js} +262 -23
- package/dist/{chunk-SMYEM3HV.js → chunk-NSVVQ52O.js} +7 -6
- package/dist/{chunk-KZ6BT5UG.js → chunk-RXNFDGPC.js} +5 -5
- package/dist/{composition-DzLwY-Mi.d.ts → composition-Dl-d9FRj.d.ts} +93 -6
- package/dist/composition.d.ts +1 -1
- package/dist/composition.js +1 -1
- package/dist/docs.js +21 -15
- package/dist/examples.d.ts +1 -1
- package/dist/font-policy.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +11 -11
- package/dist/lint.d.ts +2 -2
- package/dist/lint.js +5 -5
- package/dist/pagination.d.ts +1 -1
- package/dist/pagination.js +5 -5
- package/dist/{presentation-bceTClm8.d.ts → presentation-j5PVrqfV.d.ts} +41 -29
- package/dist/repo-readme.js +1 -1
- package/dist/schemas.js +1 -1
- package/dist/spec/README.md +3 -2
- package/dist/spec/catalogs/audiences/index.json +2 -0
- package/dist/spec/catalogs/chart-types/box-and-whisker.json +101 -49
- package/dist/spec/catalogs/chart-types/histogram.json +130 -108
- package/dist/spec/catalogs/chart-types/index.json +2 -0
- package/dist/spec/catalogs/chart-types/pareto.json +22 -106
- package/dist/spec/catalogs/color-schemes/black-and-white.json +10 -1
- package/dist/spec/catalogs/color-schemes/bold-red.json +10 -1
- package/dist/spec/catalogs/color-schemes/boost.json +10 -1
- package/dist/spec/catalogs/color-schemes/burnt-orange.json +10 -1
- package/dist/spec/catalogs/color-schemes/cool-horizon.json +10 -1
- package/dist/spec/catalogs/color-schemes/corporate-blue.json +10 -1
- package/dist/spec/catalogs/color-schemes/deep-purple.json +10 -1
- package/dist/spec/catalogs/color-schemes/forest-green.json +10 -1
- package/dist/spec/catalogs/color-schemes/golden-yellow.json +10 -1
- package/dist/spec/catalogs/color-schemes/index.json +2 -0
- package/dist/spec/catalogs/color-schemes/luxury.json +10 -1
- package/dist/spec/catalogs/color-schemes/pastel-red.json +10 -1
- package/dist/spec/catalogs/color-schemes/slate-gray.json +10 -1
- package/dist/spec/catalogs/color-schemes/steel-blue.json +10 -1
- package/dist/spec/catalogs/color-schemes/vibes.json +10 -1
- package/dist/spec/catalogs/font-schemes/angsana-new.json +2 -1
- package/dist/spec/catalogs/font-schemes/aparajita.json +2 -1
- package/dist/spec/catalogs/font-schemes/aptos.json +2 -1
- package/dist/spec/catalogs/font-schemes/arabic-typesetting.json +2 -1
- package/dist/spec/catalogs/font-schemes/arial.json +2 -1
- package/dist/spec/catalogs/font-schemes/batang.json +2 -1
- package/dist/spec/catalogs/font-schemes/bookman.json +2 -1
- package/dist/spec/catalogs/font-schemes/calibri.json +2 -1
- package/dist/spec/catalogs/font-schemes/century-schoolbook.json +2 -1
- package/dist/spec/catalogs/font-schemes/consolas.json +2 -1
- package/dist/spec/catalogs/font-schemes/constantia.json +2 -1
- package/dist/spec/catalogs/font-schemes/courier-new.json +2 -1
- package/dist/spec/catalogs/font-schemes/daunpenh.json +2 -1
- package/dist/spec/catalogs/font-schemes/david.json +2 -1
- package/dist/spec/catalogs/font-schemes/dilleniaupc.json +2 -1
- package/dist/spec/catalogs/font-schemes/fangsong.json +2 -1
- package/dist/spec/catalogs/font-schemes/garamond.json +2 -1
- package/dist/spec/catalogs/font-schemes/gautami.json +2 -1
- package/dist/spec/catalogs/font-schemes/georgia.json +2 -1
- package/dist/spec/catalogs/font-schemes/gisha.json +2 -1
- package/dist/spec/catalogs/font-schemes/grandview.json +2 -1
- package/dist/spec/catalogs/font-schemes/gungsuh.json +2 -1
- package/dist/spec/catalogs/font-schemes/impact.json +2 -1
- package/dist/spec/catalogs/font-schemes/index.json +236 -234
- package/dist/spec/catalogs/font-schemes/kalinga.json +2 -1
- package/dist/spec/catalogs/font-schemes/kartika.json +2 -1
- package/dist/spec/catalogs/font-schemes/khmer-ui.json +2 -1
- package/dist/spec/catalogs/font-schemes/latha.json +2 -1
- package/dist/spec/catalogs/font-schemes/lucida-sans.json +2 -1
- package/dist/spec/catalogs/font-schemes/malgun-gothic.json +2 -1
- package/dist/spec/catalogs/font-schemes/mangal.json +2 -1
- package/dist/spec/catalogs/font-schemes/meiryo.json +2 -1
- package/dist/spec/catalogs/font-schemes/microsoft-jhenghei.json +2 -1
- package/dist/spec/catalogs/font-schemes/microsoft-yahei.json +2 -1
- package/dist/spec/catalogs/font-schemes/mingliu.json +2 -1
- package/dist/spec/catalogs/font-schemes/miriam.json +2 -1
- package/dist/spec/catalogs/font-schemes/montserrat.json +2 -1
- package/dist/spec/catalogs/font-schemes/ms-mincho.json +2 -1
- package/dist/spec/catalogs/font-schemes/nirmala-ui.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-naksh-arabic.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-nastaliq-urdu.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-arabic.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-armenian.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-bengali.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-devangari.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-ethiopic.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-georgian.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-gujarati.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-gurmukhi.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-hebrew.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-jp.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-kannada.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-khmer.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-kr.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-malayalam.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-mongolian.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-oriya.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-sc.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-tamil.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-tc.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-telugu.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans-thai.json +2 -1
- package/dist/spec/catalogs/font-schemes/noto-sans.json +2 -1
- package/dist/spec/catalogs/font-schemes/nyala.json +2 -1
- package/dist/spec/catalogs/font-schemes/open-sans.json +2 -1
- package/dist/spec/catalogs/font-schemes/pmingliu.json +2 -1
- package/dist/spec/catalogs/font-schemes/poppins.json +2 -1
- package/dist/spec/catalogs/font-schemes/pt-serif.json +2 -1
- package/dist/spec/catalogs/font-schemes/raavi.json +2 -1
- package/dist/spec/catalogs/font-schemes/raleway.json +2 -1
- package/dist/spec/catalogs/font-schemes/roboto.json +2 -1
- package/dist/spec/catalogs/font-schemes/rockwell.json +2 -1
- package/dist/spec/catalogs/font-schemes/sakkal-majalla.json +2 -1
- package/dist/spec/catalogs/font-schemes/seaford.json +2 -1
- package/dist/spec/catalogs/font-schemes/segoe-ui-light.json +2 -1
- package/dist/spec/catalogs/font-schemes/segoe-ui.json +2 -1
- package/dist/spec/catalogs/font-schemes/shonar-bangla.json +2 -1
- package/dist/spec/catalogs/font-schemes/shruti.json +2 -1
- package/dist/spec/catalogs/font-schemes/simsun.json +2 -1
- package/dist/spec/catalogs/font-schemes/skeena.json +2 -1
- package/dist/spec/catalogs/font-schemes/sylfaen.json +2 -1
- package/dist/spec/catalogs/font-schemes/tahoma.json +2 -1
- package/dist/spec/catalogs/font-schemes/tenorite.json +2 -1
- package/dist/spec/catalogs/font-schemes/times-new-roman.json +2 -1
- package/dist/spec/catalogs/font-schemes/traditional-arabic.json +2 -1
- package/dist/spec/catalogs/font-schemes/trebuchet-ms.json +2 -1
- package/dist/spec/catalogs/font-schemes/tunga.json +2 -1
- package/dist/spec/catalogs/font-schemes/verdana.json +2 -1
- package/dist/spec/catalogs/font-schemes/vrinda.json +2 -1
- package/dist/spec/catalogs/font-schemes/yu-gothic.json +2 -1
- package/dist/spec/catalogs/languages/index.json +2 -0
- package/dist/spec/catalogs/layouts/action-plan.json +35 -0
- package/dist/spec/catalogs/layouts/agenda.json +35 -0
- package/dist/spec/catalogs/layouts/appendix-index.json +38 -0
- package/dist/spec/catalogs/layouts/architecture-stack.json +35 -0
- package/dist/spec/catalogs/layouts/assumptions-dependencies.json +35 -0
- package/dist/spec/catalogs/layouts/before-after.json +41 -0
- package/dist/spec/catalogs/layouts/benchmark-target-table.json +35 -0
- package/dist/spec/catalogs/layouts/bullet-list.json +38 -0
- package/dist/spec/catalogs/layouts/business-model-canvas.json +35 -0
- package/dist/spec/catalogs/layouts/capability-map.json +35 -0
- package/dist/spec/catalogs/layouts/case-study.json +35 -0
- package/dist/spec/catalogs/layouts/chapter-recap.json +35 -0
- package/dist/spec/catalogs/layouts/circular-lifecycle.json +35 -0
- package/dist/spec/catalogs/layouts/comparison.json +41 -0
- package/dist/spec/catalogs/layouts/competitive-landscape.json +35 -0
- package/dist/spec/catalogs/layouts/customer-journey.json +35 -0
- package/dist/spec/catalogs/layouts/customer-logos.json +38 -0
- package/dist/spec/catalogs/layouts/dashboard.json +41 -0
- package/dist/spec/catalogs/layouts/data-visualization.json +45 -0
- package/dist/spec/catalogs/layouts/decision-tree.json +35 -0
- package/dist/spec/catalogs/layouts/detailed-data-table.json +41 -0
- package/dist/spec/catalogs/layouts/ecosystem-map.json +35 -0
- package/dist/spec/catalogs/layouts/executive-decision.json +38 -0
- package/dist/spec/catalogs/layouts/executive-summary.json +38 -0
- package/dist/spec/catalogs/layouts/faq.json +35 -0
- package/dist/spec/catalogs/layouts/feature-comparison-matrix.json +35 -0
- package/dist/spec/catalogs/layouts/forecast-scenario.json +45 -0
- package/dist/spec/catalogs/layouts/funnel-pyramid.json +38 -0
- package/dist/spec/catalogs/layouts/gantt-project-plan.json +38 -0
- package/dist/spec/catalogs/layouts/geographic-map.json +35 -0
- package/dist/spec/catalogs/layouts/heatmap-cohort.json +38 -0
- package/dist/spec/catalogs/layouts/hub-and-spoke.json +35 -0
- package/dist/spec/catalogs/layouts/icon-grid.json +35 -0
- package/dist/spec/catalogs/layouts/image-focus.json +35 -0
- package/dist/spec/catalogs/layouts/index.json +352 -0
- package/dist/spec/catalogs/layouts/key-takeaway.json +32 -0
- package/dist/spec/catalogs/layouts/kpi-scorecard.json +44 -0
- package/dist/spec/catalogs/layouts/logic-tree.json +35 -0
- package/dist/spec/catalogs/layouts/market-size.json +35 -0
- package/dist/spec/catalogs/layouts/matrix-quadrant.json +48 -0
- package/dist/spec/catalogs/layouts/network-dependency-map.json +35 -0
- package/dist/spec/catalogs/layouts/one-column-explainer.json +35 -0
- package/dist/spec/catalogs/layouts/org-chart.json +45 -0
- package/dist/spec/catalogs/layouts/persona-grid.json +35 -0
- package/dist/spec/catalogs/layouts/photo-grid.json +48 -0
- package/dist/spec/catalogs/layouts/pricing-table.json +35 -0
- package/dist/spec/catalogs/layouts/process-flow.json +35 -0
- package/dist/spec/catalogs/layouts/product-feature.json +35 -0
- package/dist/spec/catalogs/layouts/pros-cons.json +41 -0
- package/dist/spec/catalogs/layouts/qa-discussion.json +38 -0
- package/dist/spec/catalogs/layouts/quote-highlight.json +35 -0
- package/dist/spec/catalogs/layouts/raci-matrix.json +35 -0
- package/dist/spec/catalogs/layouts/risk-heatmap.json +35 -0
- package/dist/spec/catalogs/layouts/roadmap.json +35 -0
- package/dist/spec/catalogs/layouts/screenshot-walkthrough.json +35 -0
- package/dist/spec/catalogs/layouts/section-divider.json +35 -0
- package/dist/spec/catalogs/layouts/single-message-statement.json +32 -0
- package/dist/spec/catalogs/layouts/stats-metrics.json +45 -0
- package/dist/spec/catalogs/layouts/status-rag.json +35 -0
- package/dist/spec/catalogs/layouts/swimlane-process.json +35 -0
- package/dist/spec/catalogs/layouts/swot-analysis.json +48 -0
- package/dist/spec/catalogs/layouts/team-bio.json +35 -0
- package/dist/spec/catalogs/layouts/testimonial-grid.json +44 -0
- package/dist/spec/catalogs/layouts/thank-you-cta.json +35 -0
- package/dist/spec/catalogs/layouts/three-column.json +45 -0
- package/dist/spec/catalogs/layouts/timeline.json +38 -0
- package/dist/spec/catalogs/layouts/title-slide.json +35 -0
- package/dist/spec/catalogs/layouts/two-column.json +42 -0
- package/dist/spec/catalogs/layouts/venn-overlap.json +35 -0
- package/dist/spec/catalogs/layouts/waterfall-bridge.json +45 -0
- package/dist/spec/catalogs/layouts/wheel-radial.json +35 -0
- package/dist/spec/catalogs/manifest.json +111 -0
- package/dist/spec/catalogs/narratives/index.json +746 -144
- package/dist/spec/catalogs/purposes/index.json +2 -0
- package/dist/spec/catalogs/social-platforms/index.json +2 -1
- package/dist/spec/catalogs/themes/index.json +10 -8
- package/dist/spec/catalogs/tones/index.json +2 -0
- package/dist/spec/reference/font-policy.json +5 -5
- package/dist/spec/schemas/audience.schema.json +21 -0
- package/dist/spec/schemas/catalog-index.schema.json +40 -3
- package/dist/spec/schemas/catalog-manifest.schema.json +83 -0
- package/dist/spec/schemas/chart-type.schema.json +5 -0
- package/dist/spec/schemas/color-scheme.schema.json +21 -0
- package/dist/spec/schemas/font-scheme.schema.json +21 -0
- package/dist/spec/schemas/language.schema.json +21 -0
- package/dist/spec/schemas/layout.schema.json +21 -0
- package/dist/spec/schemas/narrative.schema.json +21 -0
- package/dist/spec/schemas/opf.schema.json +22 -18
- package/dist/spec/schemas/purpose.schema.json +21 -0
- package/dist/spec/schemas/social-platform.schema.json +26 -5
- package/dist/spec/schemas/theme.schema.json +21 -0
- package/dist/spec/schemas/tone.schema.json +21 -0
- package/dist/spec-files.d.ts +2 -2
- package/dist/spec-files.js +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/validator.d.ts +2 -2
- package/dist/validator.js +4 -4
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://openpresentation.org/schema/opf-catalog-index/v1",
|
|
3
|
+
"kind": "purposes",
|
|
3
4
|
"version": "1",
|
|
4
5
|
"description": "Catalog of presentation purposes available in the openpresentation.org catalog. Each entry is a lightweight summary; full purpose records live in the per-id JSON files alongside this index. Purposes are referenced from OPF documents via purpose.",
|
|
6
|
+
"contentSha256": "43d9ba617491fe1d98b527d24032d5da9bc6763a01b0ea41da421c5ec27e649c",
|
|
5
7
|
"records": [
|
|
6
8
|
{
|
|
7
9
|
"id": "inform",
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://openpresentation.org/schema/opf-catalog-index/v1",
|
|
3
|
+
"kind": "social-platforms",
|
|
3
4
|
"version": "1",
|
|
4
5
|
"description": "Catalog of social-media platforms available in the openpresentation.org catalog. Each entry is a lightweight summary; full platform records live in the per-id JSON files alongside this index. The property keys of any Socials object on Organization or Speaker resolve to ids in this catalog.",
|
|
6
|
+
"contentSha256": "22292ed144ac3caf37a86c9e644f9b648cda51ed670cbc3c0ed64915d251b375",
|
|
5
7
|
"records": [
|
|
6
8
|
{
|
|
7
9
|
"id": "linkedin",
|
|
@@ -65,4 +67,3 @@
|
|
|
65
67
|
}
|
|
66
68
|
]
|
|
67
69
|
}
|
|
68
|
-
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://openpresentation.org/schema/opf-catalog-index/v1",
|
|
3
|
+
"kind": "themes",
|
|
3
4
|
"version": "1",
|
|
4
5
|
"description": "Catalog of themes available in the openpresentation.org catalog. Each entry is a lightweight summary; full theme records live in the per-id JSON files alongside this index.",
|
|
6
|
+
"contentSha256": "5af95e3e353857bb49a2c303e66b99d74d884210070baac0b68291aad90fa8d5",
|
|
5
7
|
"records": [
|
|
6
8
|
{
|
|
7
|
-
"id": "
|
|
8
|
-
"name": "
|
|
9
|
-
"description": "A
|
|
10
|
-
"file": "
|
|
9
|
+
"id": "minimal",
|
|
10
|
+
"name": "Minimal",
|
|
11
|
+
"description": "A clean, minimalistic theme with a focus on simplicity and readability. Ideal for professional, straightforward presentations.",
|
|
12
|
+
"file": "minimal.json"
|
|
11
13
|
},
|
|
12
14
|
{
|
|
13
15
|
"id": "classic",
|
|
@@ -22,10 +24,10 @@
|
|
|
22
24
|
"file": "dark.json"
|
|
23
25
|
},
|
|
24
26
|
{
|
|
25
|
-
"id": "
|
|
26
|
-
"name": "
|
|
27
|
-
"description": "A
|
|
28
|
-
"file": "
|
|
27
|
+
"id": "bold",
|
|
28
|
+
"name": "Bold",
|
|
29
|
+
"description": "A vibrant, high-energy theme with bold colors and a dynamic, attention-grabbing style. Great for presentations that need to stand out.",
|
|
30
|
+
"file": "bold.json"
|
|
29
31
|
}
|
|
30
32
|
]
|
|
31
33
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://openpresentation.org/schema/opf-catalog-index/v1",
|
|
3
|
+
"kind": "tones",
|
|
3
4
|
"version": "1",
|
|
4
5
|
"description": "Catalog of presentation tones available in the openpresentation.org catalog. Each entry is a lightweight summary; full tone records (voice cues, anti-patterns, sample phrases) live in the per-id JSON files alongside this index. Tones are referenced from OPF documents via tone.",
|
|
6
|
+
"contentSha256": "b5a8d0933f494d09cd3b9a399c8de2032c43d253fcf432974135e841fcc9e703",
|
|
5
7
|
"records": [
|
|
6
8
|
{
|
|
7
9
|
"id": "formal",
|
|
@@ -928,8 +928,8 @@
|
|
|
928
928
|
"compatibility": "visual",
|
|
929
929
|
"measured": {
|
|
930
930
|
"replacement": "Source Sans 3",
|
|
931
|
-
"meanAbsWidthDelta": 0.
|
|
932
|
-
"meanWidthDelta": 0.
|
|
931
|
+
"meanAbsWidthDelta": 0.0158,
|
|
932
|
+
"meanWidthDelta": 0.0152,
|
|
933
933
|
"maxAbsWidthDelta": 0.0521,
|
|
934
934
|
"styles": 4,
|
|
935
935
|
"reference": "Corbel 6.01"
|
|
@@ -1357,9 +1357,9 @@
|
|
|
1357
1357
|
"compatibility": "visual",
|
|
1358
1358
|
"measured": {
|
|
1359
1359
|
"replacement": "Source Sans 3",
|
|
1360
|
-
"meanAbsWidthDelta": 0.
|
|
1361
|
-
"meanWidthDelta": 0.
|
|
1362
|
-
"maxAbsWidthDelta": 0.
|
|
1360
|
+
"meanAbsWidthDelta": 0.0511,
|
|
1361
|
+
"meanWidthDelta": 0.0039,
|
|
1362
|
+
"maxAbsWidthDelta": 0.1459,
|
|
1363
1363
|
"styles": 4,
|
|
1364
1364
|
"reference": "Gill Sans MT 1.65"
|
|
1365
1365
|
}
|
|
@@ -48,6 +48,27 @@
|
|
|
48
48
|
"Regulators"
|
|
49
49
|
]
|
|
50
50
|
},
|
|
51
|
+
"deprecation": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": ["replacedBy"],
|
|
55
|
+
"description": "Present when this audience is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
56
|
+
"properties": {
|
|
57
|
+
"replacedBy": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
60
|
+
"description": "Id of the non-deprecated audience record that documents should reference instead."
|
|
61
|
+
},
|
|
62
|
+
"reason": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"description": "Why the record is deprecated."
|
|
65
|
+
},
|
|
66
|
+
"removal": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
51
72
|
"summary": {
|
|
52
73
|
"type": "string",
|
|
53
74
|
"description": "One-sentence positioning of the audience — who they are and what they care about.",
|
|
@@ -2,15 +2,37 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://openpresentation.org/schema/opf-catalog-index/v1",
|
|
4
4
|
"title": "Catalog Index",
|
|
5
|
-
"description": "Generic shape shared by every `spec/catalogs/<kind>/index.json` file in the OPF repo. An index is a lightweight, ordered summary of the full-record JSON files that live alongside it: each entry names the record's stable id, a human-readable name, and the record's filename, plus whatever extra summary fields are useful for picker UIs (e.g. `summary`, `tags`, `bcp47`, `durationRange`). This schema describes
|
|
5
|
+
"description": "Generic shape shared by every `spec/catalogs/<kind>/index.json` file in the OPF repo and by the default-catalog index that pptx.gallery publishes at `https://www.pptx.gallery/<kind>/index.json` (spec/catalogs is a pinned snapshot of that catalog; see docs/default-catalog.md). An index is a lightweight, ordered summary of the full-record JSON files that live alongside it: each entry names the record's stable id, a human-readable name, and the record's filename, plus whatever extra summary fields are useful for picker UIs (e.g. `summary`, `tags`, `bcp47`, `durationRange`). This schema describes catalog index files themselves, not OPF documents or individual catalog records — it is not part of the OPF document contract and is intentionally excluded from the package's published/typed schema surface.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["$schema", "version", "description", "records"],
|
|
8
8
|
"additionalProperties": false,
|
|
9
|
+
"patternProperties": {
|
|
10
|
+
"^x-": {
|
|
11
|
+
"description": "Publisher extension member, such as pptx.gallery's `x-gallery` reconciliation status. Consumers ignore top-level `x-*` members, and the pinned snapshot in spec/catalogs never carries them."
|
|
12
|
+
}
|
|
13
|
+
},
|
|
9
14
|
"properties": {
|
|
10
15
|
"$schema": {
|
|
11
16
|
"type": "string",
|
|
12
17
|
"const": "https://openpresentation.org/schema/opf-catalog-index/v1"
|
|
13
18
|
},
|
|
19
|
+
"kind": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Catalog kind, as the URL segment of the default catalog (`https://www.pptx.gallery/<kind>`) and the `spec/catalogs/<kind>` directory name.",
|
|
22
|
+
"enum": [
|
|
23
|
+
"audiences",
|
|
24
|
+
"chart-types",
|
|
25
|
+
"color-schemes",
|
|
26
|
+
"font-schemes",
|
|
27
|
+
"languages",
|
|
28
|
+
"layouts",
|
|
29
|
+
"narratives",
|
|
30
|
+
"purposes",
|
|
31
|
+
"social-platforms",
|
|
32
|
+
"themes",
|
|
33
|
+
"tones"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
14
36
|
"version": {
|
|
15
37
|
"type": "string",
|
|
16
38
|
"description": "Index format version, as a string.",
|
|
@@ -20,6 +42,11 @@
|
|
|
20
42
|
"type": "string",
|
|
21
43
|
"description": "Human-readable description of what this catalog kind holds and how entries are ordered."
|
|
22
44
|
},
|
|
45
|
+
"contentSha256": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "SHA-256 (lowercase hex) of the canonical JSON of the full records this index lists, in index order, with every top-level `x-*` member removed. Canonical JSON sorts object keys and has no insignificant whitespace. Lets a consumer prove it holds exactly the published content.",
|
|
48
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
49
|
+
},
|
|
23
50
|
"records": {
|
|
24
51
|
"type": "array",
|
|
25
52
|
"description": "Ordered list of lightweight record summaries. Order defines the catalog's canonical/display order; full record data lives in the sibling JSON file named by `file`.",
|
|
@@ -35,8 +62,8 @@
|
|
|
35
62
|
"properties": {
|
|
36
63
|
"id": {
|
|
37
64
|
"type": "string",
|
|
38
|
-
"description": "Stable identifier, matching the `id` field inside the record file named by `file`.",
|
|
39
|
-
"pattern": "^[a-
|
|
65
|
+
"description": "Stable identifier, matching the `id` field inside the record file named by `file`. Lowercase kebab-case; chart-type ids may start with a digit (e.g. '100pct-stacked-bar').",
|
|
66
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
40
67
|
},
|
|
41
68
|
"name": {
|
|
42
69
|
"type": "string",
|
|
@@ -46,6 +73,16 @@
|
|
|
46
73
|
"type": "string",
|
|
47
74
|
"description": "Filename of the full record, relative to this index file's directory.",
|
|
48
75
|
"pattern": "^[^/]+\\.json$"
|
|
76
|
+
},
|
|
77
|
+
"deprecated": {
|
|
78
|
+
"type": "boolean",
|
|
79
|
+
"const": true,
|
|
80
|
+
"description": "Present on the entry of a record that carries `deprecation`. Pickers and default listings hide deprecated entries; the id keeps resolving."
|
|
81
|
+
},
|
|
82
|
+
"replacedBy": {
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "The deprecated record's `deprecation.replacedBy`, repeated so a picker can offer the replacement without loading the record.",
|
|
85
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
49
86
|
}
|
|
50
87
|
}
|
|
51
88
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://openpresentation.org/schema/opf-catalog-manifest/v1",
|
|
4
|
+
"title": "Catalog Snapshot Manifest",
|
|
5
|
+
"description": "Shape of `spec/catalogs/manifest.json`, which pins the bundled catalogs to the default OPF catalog published by pptx.gallery. It records the gallery commit the snapshot came from and, per kind, how the snapshot relates to the published catalog plus a content hash of the bundled records. Written by scripts/sync-gallery-catalog.mjs and checked by scripts/check-spec-integrity.mjs; see docs/default-catalog.md. This schema describes a repo-internal file, not an OPF document or a catalog record; it is intentionally excluded from the package's published/typed schema surface.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["$schema", "description", "publisher", "source", "kinds"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "https://openpresentation.org/schema/opf-catalog-manifest/v1"
|
|
13
|
+
},
|
|
14
|
+
"description": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"publisher": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Base URL of the default-catalog publisher. Each kind is published at `<publisher>/<kind>/index.json`.",
|
|
20
|
+
"format": "uri"
|
|
21
|
+
},
|
|
22
|
+
"source": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"description": "The published catalog files the snapshot was taken from.",
|
|
25
|
+
"required": ["repository", "commit", "path"],
|
|
26
|
+
"additionalProperties": false,
|
|
27
|
+
"properties": {
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Git repository of the publisher.",
|
|
31
|
+
"format": "uri"
|
|
32
|
+
},
|
|
33
|
+
"commit": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Full commit SHA of the publisher checkout whose published files the snapshot matches."
|
|
36
|
+
},
|
|
37
|
+
"path": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Directory in that repository holding `<kind>/index.json` and `<kind>/<id>.json`."
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"kinds": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"description": "One entry per catalog kind, keyed by the kind's URL segment.",
|
|
46
|
+
"additionalProperties": { "$ref": "#/$defs/KindEntry" }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"$defs": {
|
|
50
|
+
"KindEntry": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"required": ["mode", "records", "contentSha256", "gallery"],
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"properties": {
|
|
55
|
+
"mode": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "'mirror': the snapshot holds every published record. 'subset': the snapshot keeps its existing ids (their content comes from the publisher) while the publisher also serves records that are not reconciled for bundling yet.",
|
|
58
|
+
"enum": ["mirror", "subset"]
|
|
59
|
+
},
|
|
60
|
+
"records": {
|
|
61
|
+
"type": "integer",
|
|
62
|
+
"description": "Number of records bundled for this kind.",
|
|
63
|
+
"minimum": 0
|
|
64
|
+
},
|
|
65
|
+
"contentSha256": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "contentSha256 of the bundled records, as defined by the catalog index schema.",
|
|
68
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
69
|
+
},
|
|
70
|
+
"gallery": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"description": "The published catalog for this kind at the pinned commit.",
|
|
73
|
+
"required": ["records", "contentSha256"],
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"properties": {
|
|
76
|
+
"records": { "type": "integer", "minimum": 0 },
|
|
77
|
+
"contentSha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
"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.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
|
+
"patternProperties": {
|
|
9
|
+
"^x-": {
|
|
10
|
+
"description": "Publisher extension member, such as the `x-gallery` presentation metadata that pptx.gallery adds to the records it publishes. Engines and validators ignore top-level `x-*` members, and the pinned snapshot in spec/catalogs never carries them."
|
|
11
|
+
}
|
|
12
|
+
},
|
|
8
13
|
"required": [
|
|
9
14
|
"$schema",
|
|
10
15
|
"id",
|
|
@@ -36,6 +36,27 @@
|
|
|
36
36
|
"Forest Green"
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
|
+
"deprecation": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"required": ["replacedBy"],
|
|
43
|
+
"description": "Present when this color scheme is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
44
|
+
"properties": {
|
|
45
|
+
"replacedBy": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
48
|
+
"description": "Id of the non-deprecated color scheme record that documents should reference instead."
|
|
49
|
+
},
|
|
50
|
+
"reason": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Why the record is deprecated."
|
|
53
|
+
},
|
|
54
|
+
"removal": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
39
60
|
"summary": {
|
|
40
61
|
"type": "string",
|
|
41
62
|
"description": "One-sentence positioning of the palette — what mood it evokes and where to use it.",
|
|
@@ -40,6 +40,27 @@
|
|
|
40
40
|
"Microsoft Yahei"
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
|
+
"deprecation": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": ["replacedBy"],
|
|
47
|
+
"description": "Present when this font scheme is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
48
|
+
"properties": {
|
|
49
|
+
"replacedBy": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
52
|
+
"description": "Id of the non-deprecated font scheme record that documents should reference instead."
|
|
53
|
+
},
|
|
54
|
+
"reason": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Why the record is deprecated."
|
|
57
|
+
},
|
|
58
|
+
"removal": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
43
64
|
"major": {
|
|
44
65
|
"type": "string",
|
|
45
66
|
"description": "Heading (major) font family — mirrors the OOXML majorFont entry.",
|
|
@@ -37,6 +37,27 @@
|
|
|
37
37
|
"Chinese (simplified)"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
|
+
"deprecation": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["replacedBy"],
|
|
44
|
+
"description": "Present when this language is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
45
|
+
"properties": {
|
|
46
|
+
"replacedBy": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
49
|
+
"description": "Id of the non-deprecated language record that documents should reference instead."
|
|
50
|
+
},
|
|
51
|
+
"reason": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Why the record is deprecated."
|
|
54
|
+
},
|
|
55
|
+
"removal": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
40
61
|
"code": {
|
|
41
62
|
"type": "string",
|
|
42
63
|
"description": "ISO 639-3 (or 639-2) three-letter language code. Carried for engines that prefer ISO codes.",
|
|
@@ -36,6 +36,27 @@
|
|
|
36
36
|
"Image Bleed"
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
|
+
"deprecation": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"required": ["replacedBy"],
|
|
43
|
+
"description": "Present when this layout is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
44
|
+
"properties": {
|
|
45
|
+
"replacedBy": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
48
|
+
"description": "Id of the non-deprecated layout record that documents should reference instead."
|
|
49
|
+
},
|
|
50
|
+
"reason": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"description": "Why the record is deprecated."
|
|
53
|
+
},
|
|
54
|
+
"removal": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
39
60
|
"summary": {
|
|
40
61
|
"type": "string",
|
|
41
62
|
"description": "One-sentence positioning of the layout — when to reach for it.",
|
|
@@ -24,6 +24,27 @@
|
|
|
24
24
|
"type": "string",
|
|
25
25
|
"description": "Human-readable template name, e.g. 'Problem → Solution'."
|
|
26
26
|
},
|
|
27
|
+
"deprecation": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"required": ["replacedBy"],
|
|
31
|
+
"description": "Present when this narrative is deprecated, for example an alias kept for backward compatibility. Deprecated records stay resolvable so existing documents keep validating and rendering unchanged, but pickers and default listings exclude them and validators warn when a document references them. Same shape as the chart-type deprecation.",
|
|
32
|
+
"properties": {
|
|
33
|
+
"replacedBy": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
36
|
+
"description": "Id of the non-deprecated narrative record that documents should reference instead."
|
|
37
|
+
},
|
|
38
|
+
"reason": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Why the record is deprecated."
|
|
41
|
+
},
|
|
42
|
+
"removal": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Package version in which the record is scheduled for removal from the bundled catalog, if any."
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
27
48
|
"summary": {
|
|
28
49
|
"type": "string",
|
|
29
50
|
"description": "One-sentence description of when and why to use this narrative."
|