@openpresentation/opf 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{catalogs-DoVmvDr7.d.ts → catalogs-atkOF4Vy.d.ts} +2 -2
- package/dist/catalogs.d.ts +2 -2
- package/dist/catalogs.js +1 -1
- package/dist/{chunk-TU7I3KSB.js → chunk-6FU2KICU.js} +306 -306
- package/dist/{chunk-ZIL7MGZU.js → chunk-CHKJ4QHQ.js} +223 -73
- package/dist/{chunk-EWJNRHXA.js → chunk-EQHZ3ZO4.js} +3 -3
- package/dist/{chunk-PQJRDNA6.js → chunk-FTWNWFIV.js} +72 -1
- package/dist/{chunk-FHGJX5QK.js → chunk-FWA5XB45.js} +33 -12
- package/dist/{chunk-D3GQIREP.js → chunk-GN52EE3P.js} +133 -12
- package/dist/composition-Tv9Wm3Oh.d.ts +691 -0
- package/dist/composition.d.ts +1 -676
- package/dist/composition.js +1 -1
- package/dist/docs.js +38 -8
- package/dist/examples.d.ts +1 -1
- package/dist/index.d.ts +65 -4
- package/dist/index.js +204 -6
- package/dist/lint.d.ts +3 -3
- package/dist/lint.js +5 -5
- package/dist/pagination.d.ts +2 -2
- package/dist/pagination.js +5 -5
- package/dist/{presentation-BMTdX6O1.d.ts → presentation-Ct42Mitb.d.ts} +51 -8
- package/dist/repo-readme.js +1 -1
- package/dist/{schemas-BYe5y8-i.d.ts → schemas-CiVmUT2p.d.ts} +6 -0
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.js +1 -1
- 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/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/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/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/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/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/weekly-progress.json +10 -10
- package/dist/spec/openapi.yaml +5 -0
- package/dist/spec/schemas/opf.schema.json +83 -12
- package/dist/types.d.ts +3 -3
- package/dist/validator.d.ts +7 -4
- package/dist/validator.js +4 -4
- package/package.json +1 -1
|
@@ -26,84 +26,84 @@
|
|
|
26
26
|
"name": "Opening",
|
|
27
27
|
"instructions": "Establish identity",
|
|
28
28
|
"slideType": "text",
|
|
29
|
-
"layoutHint": "text-1x
|
|
29
|
+
"layoutHint": "text-1x"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"id": "purpose",
|
|
33
33
|
"name": "Purpose",
|
|
34
34
|
"instructions": "State your mission",
|
|
35
35
|
"slideType": "text",
|
|
36
|
-
"layoutHint": "text-1x
|
|
36
|
+
"layoutHint": "text-1x"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"id": "problem",
|
|
40
40
|
"name": "Problem",
|
|
41
41
|
"instructions": "Present the challenge",
|
|
42
42
|
"slideType": "text",
|
|
43
|
-
"layoutHint": "text-1x
|
|
43
|
+
"layoutHint": "text-1x"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"id": "solution",
|
|
47
47
|
"name": "Solution",
|
|
48
48
|
"instructions": "Propose your idea",
|
|
49
49
|
"slideType": "text",
|
|
50
|
-
"layoutHint": "text-1x
|
|
50
|
+
"layoutHint": "text-1x"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"id": "why-now",
|
|
54
54
|
"name": "Why Now",
|
|
55
55
|
"instructions": "Explain timing importance",
|
|
56
56
|
"slideType": "text",
|
|
57
|
-
"layoutHint": "text-1x
|
|
57
|
+
"layoutHint": "text-1x"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"id": "market-size",
|
|
61
61
|
"name": "Market Size",
|
|
62
62
|
"instructions": "Demonstrate potential",
|
|
63
63
|
"slideType": "text",
|
|
64
|
-
"layoutHint": "text-1x
|
|
64
|
+
"layoutHint": "text-1x"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"id": "competition",
|
|
68
68
|
"name": "Competition",
|
|
69
69
|
"instructions": "Analyze competitive landscape",
|
|
70
70
|
"slideType": "text",
|
|
71
|
-
"layoutHint": "text-1x
|
|
71
|
+
"layoutHint": "text-1x"
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
"id": "product",
|
|
75
75
|
"name": "Product",
|
|
76
76
|
"instructions": "Showcase features/benefits",
|
|
77
77
|
"slideType": "text",
|
|
78
|
-
"layoutHint": "text-1x
|
|
78
|
+
"layoutHint": "text-1x"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"id": "business-model",
|
|
82
82
|
"name": "Business Model",
|
|
83
83
|
"instructions": "Detail revenue streams",
|
|
84
84
|
"slideType": "text",
|
|
85
|
-
"layoutHint": "text-1x
|
|
85
|
+
"layoutHint": "text-1x"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"id": "team",
|
|
89
89
|
"name": "Team",
|
|
90
90
|
"instructions": "Highlight key members",
|
|
91
91
|
"slideType": "text",
|
|
92
|
-
"layoutHint": "text-1x
|
|
92
|
+
"layoutHint": "text-1x"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"id": "financials",
|
|
96
96
|
"name": "Financials",
|
|
97
97
|
"instructions": "Show projections/needs",
|
|
98
98
|
"slideType": "text",
|
|
99
|
-
"layoutHint": "text-1x
|
|
99
|
+
"layoutHint": "text-1x"
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
"id": "closing",
|
|
103
103
|
"name": "Closing",
|
|
104
104
|
"instructions": "Reinforce brand",
|
|
105
105
|
"slideType": "text",
|
|
106
|
-
"layoutHint": "text-1x
|
|
106
|
+
"layoutHint": "text-1x"
|
|
107
107
|
}
|
|
108
108
|
]
|
|
109
109
|
}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"id": "opening",
|
|
24
24
|
"name": "Opening",
|
|
25
25
|
"description": "Open with the initiative name, the date, and the one-line headline for the week. Frame the meeting in fifteen seconds so the rest of the time is content.",
|
|
26
|
-
"layoutHint": "title
|
|
26
|
+
"layoutHint": "title",
|
|
27
27
|
"instructions": "Initiative name & date",
|
|
28
28
|
"slideType": "text"
|
|
29
29
|
},
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"description": "State what the team set out to do this week. Specific, measurable. The audience should be able to read this slide alone and know what 'on track' would mean.",
|
|
34
34
|
"instructions": "Set the expectations",
|
|
35
35
|
"slideType": "text",
|
|
36
|
-
"layoutHint": "text-1x
|
|
36
|
+
"layoutHint": "text-1x"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"id": "achievements",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"description": "Celebrate the week's wins. Concrete, attributable, dated. Brevity here — the meeting is for what's next, not a victory lap.",
|
|
42
42
|
"instructions": "Celebrate success",
|
|
43
43
|
"slideType": "text",
|
|
44
|
-
"layoutHint": "text-1x
|
|
44
|
+
"layoutHint": "text-1x"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"id": "overall-progress",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"description": "Evaluate performance against the objectives. Use a simple status indicator (green/yellow/red) plus the leading metric. Help the audience scan the state in seconds.",
|
|
50
50
|
"instructions": "Evaluate performance",
|
|
51
51
|
"slideType": "text",
|
|
52
|
-
"layoutHint": "text-1x
|
|
52
|
+
"layoutHint": "text-1x"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"id": "challenges",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"description": "Address what's hard right now: blockers, slipping items, surfaced risks. Tie each challenge to either an owner working it or a discussion you want this week.",
|
|
58
58
|
"instructions": "Address difficulties",
|
|
59
59
|
"slideType": "text",
|
|
60
|
-
"layoutHint": "text-1x
|
|
60
|
+
"layoutHint": "text-1x"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"id": "opportunities-for-improvement",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"description": "Surface where the team can level up. Process tweaks, tooling needs, ways of working. Improvement opportunities should feel like seeds, not corrections.",
|
|
66
66
|
"instructions": "Seek growth",
|
|
67
67
|
"slideType": "text",
|
|
68
|
-
"layoutHint": "text-1x
|
|
68
|
+
"layoutHint": "text-1x"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"id": "highlights-recognition",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"description": "Recognize specific contributions by name. Recognition belongs in the deck, not just in the meeting — written acknowledgment travels further than verbal.",
|
|
74
74
|
"instructions": "Appreciate efforts",
|
|
75
75
|
"slideType": "text",
|
|
76
|
-
"layoutHint": "text-1x
|
|
76
|
+
"layoutHint": "text-1x"
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"id": "goals-next-week",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"description": "Plan the week ahead with three to five specific goals. Each should be small enough to finish, large enough to matter, and clearly owned.",
|
|
82
82
|
"instructions": "Plan ahead",
|
|
83
83
|
"slideType": "text",
|
|
84
|
-
"layoutHint": "text-1x
|
|
84
|
+
"layoutHint": "text-1x"
|
|
85
85
|
},
|
|
86
86
|
{
|
|
87
87
|
"id": "discussion-feedback",
|
|
@@ -89,13 +89,13 @@
|
|
|
89
89
|
"description": "Open the floor with two or three prompts — decisions you need, opinions you want, blockers you'd like cleared. End the recap actively.",
|
|
90
90
|
"instructions": "Encourage input",
|
|
91
91
|
"slideType": "text",
|
|
92
|
-
"layoutHint": "text-1x
|
|
92
|
+
"layoutHint": "text-1x"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"id": "conclusion",
|
|
96
96
|
"name": "Conclusion",
|
|
97
97
|
"description": "Close with one line that motivates the team into the next week. Echo the headline so the meeting feels closed.",
|
|
98
|
-
"layoutHint": "title
|
|
98
|
+
"layoutHint": "title",
|
|
99
99
|
"instructions": "Recap & motivate",
|
|
100
100
|
"slideType": "text"
|
|
101
101
|
}
|
package/dist/spec/openapi.yaml
CHANGED
|
@@ -493,6 +493,10 @@ components:
|
|
|
493
493
|
type: object
|
|
494
494
|
additionalProperties: true
|
|
495
495
|
description: Optional design system (theme, colorScheme, fontScheme, dimensions, background, logo, header, footer, etc).
|
|
496
|
+
variables:
|
|
497
|
+
type: object
|
|
498
|
+
additionalProperties: true
|
|
499
|
+
description: Optional named color variables referenced from content color fields as `var:<id>` strings.
|
|
496
500
|
assets:
|
|
497
501
|
type: object
|
|
498
502
|
additionalProperties: true
|
|
@@ -719,6 +723,7 @@ components:
|
|
|
719
723
|
type: string
|
|
720
724
|
color:
|
|
721
725
|
type: string
|
|
726
|
+
description: Hex color, color-scheme slot/role name, or `var:<id>` variable reference (ColorRef in the canonical schema).
|
|
722
727
|
alignment:
|
|
723
728
|
type: string
|
|
724
729
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"$id": "https://openpresentation.org/schema/opf/v1",
|
|
4
4
|
"title": "Presentation",
|
|
5
|
-
"description": "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — 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 → 'catalogs.<kind>.source' on the document → engine defaults → 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.",
|
|
5
|
+
"description": "Open-source JSON format for describing PowerPoint presentations. Agents describe narratives, content, audience, reusable assets, and design — 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 → 'catalogs.<kind>.source' on the document → engine defaults → 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.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["slides"],
|
|
8
8
|
"additionalProperties": false,
|
|
@@ -176,6 +176,10 @@
|
|
|
176
176
|
"$ref": "#/$defs/Design",
|
|
177
177
|
"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."
|
|
178
178
|
},
|
|
179
|
+
"variables": {
|
|
180
|
+
"$ref": "#/$defs/Variables",
|
|
181
|
+
"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."
|
|
182
|
+
},
|
|
179
183
|
"narrative": {
|
|
180
184
|
"oneOf": [
|
|
181
185
|
{ "type": "string" },
|
|
@@ -1223,6 +1227,63 @@
|
|
|
1223
1227
|
"description": "Hex color shorthand accepted by selected string fields.",
|
|
1224
1228
|
"examples": ["#fff", "#ffff00", "#0F172AFF"]
|
|
1225
1229
|
},
|
|
1230
|
+
"ColorRef": {
|
|
1231
|
+
"anyOf": [
|
|
1232
|
+
{ "$ref": "#/$defs/HexColor" },
|
|
1233
|
+
{
|
|
1234
|
+
"type": "string",
|
|
1235
|
+
"enum": [
|
|
1236
|
+
"accent1", "accent2", "accent3", "accent4", "accent5", "accent6",
|
|
1237
|
+
"dark1", "dark2", "light1", "light2", "hyperlink", "followedHyperlink",
|
|
1238
|
+
"primary", "secondary", "accent", "background", "surface", "text", "textSecondary"
|
|
1239
|
+
]
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"type": "string",
|
|
1243
|
+
"pattern": "^var:[a-z][a-z0-9-]*$"
|
|
1244
|
+
}
|
|
1245
|
+
],
|
|
1246
|
+
"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.",
|
|
1247
|
+
"examples": ["#0F4C81", "accent2", "text", "var:risk"]
|
|
1248
|
+
},
|
|
1249
|
+
"Variables": {
|
|
1250
|
+
"type": "object",
|
|
1251
|
+
"propertyNames": {
|
|
1252
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
1253
|
+
},
|
|
1254
|
+
"additionalProperties": { "$ref": "#/$defs/Variable" },
|
|
1255
|
+
"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.",
|
|
1256
|
+
"examples": [
|
|
1257
|
+
{ "risk": "#B42318", "highlight": { "type": "color", "value": "#0F4C81", "description": "Brand highlight for emphasized runs." } }
|
|
1258
|
+
]
|
|
1259
|
+
},
|
|
1260
|
+
"Variable": {
|
|
1261
|
+
"oneOf": [
|
|
1262
|
+
{ "$ref": "#/$defs/HexColor" },
|
|
1263
|
+
{
|
|
1264
|
+
"type": "object",
|
|
1265
|
+
"required": ["type", "value"],
|
|
1266
|
+
"additionalProperties": false,
|
|
1267
|
+
"properties": {
|
|
1268
|
+
"type": {
|
|
1269
|
+
"type": "string",
|
|
1270
|
+
"enum": ["color"],
|
|
1271
|
+
"description": "Variable kind. Only 'color' is defined today; other kinds may be added when content surfaces exist to consume them."
|
|
1272
|
+
},
|
|
1273
|
+
"value": {
|
|
1274
|
+
"$ref": "#/$defs/HexColor",
|
|
1275
|
+
"description": "Hex color this variable resolves to."
|
|
1276
|
+
},
|
|
1277
|
+
"description": {
|
|
1278
|
+
"type": "string",
|
|
1279
|
+
"description": "Optional prose describing what the variable is for, surfaced by pickers and agents."
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
],
|
|
1284
|
+
"description": "A single named variable. A hex string is shorthand for { \"type\": \"color\", \"value\": value }.",
|
|
1285
|
+
"examples": ["#B42318", { "type": "color", "value": "#B42318", "description": "Risk emphasis." }]
|
|
1286
|
+
},
|
|
1226
1287
|
"BackgroundShortcut": {
|
|
1227
1288
|
"oneOf": [
|
|
1228
1289
|
{ "$ref": "#/$defs/ThemeBackgroundSlot" },
|
|
@@ -1811,6 +1872,10 @@
|
|
|
1811
1872
|
},
|
|
1812
1873
|
"composition": {
|
|
1813
1874
|
"$ref": "#/$defs/Composition"
|
|
1875
|
+
},
|
|
1876
|
+
"extensions": {
|
|
1877
|
+
"type": "object",
|
|
1878
|
+
"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 } }."
|
|
1814
1879
|
}
|
|
1815
1880
|
}
|
|
1816
1881
|
},
|
|
@@ -1819,6 +1884,15 @@
|
|
|
1819
1884
|
"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.",
|
|
1820
1885
|
"additionalProperties": false,
|
|
1821
1886
|
"properties": {
|
|
1887
|
+
"id": {
|
|
1888
|
+
"type": "string",
|
|
1889
|
+
"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 — patch-style agent edits, comments, review state, or generation provenance. Identity survives reordering where array indexes do not.",
|
|
1890
|
+
"examples": ["kpi-adoption", "churn-quote"]
|
|
1891
|
+
},
|
|
1892
|
+
"extensions": {
|
|
1893
|
+
"type": "object",
|
|
1894
|
+
"description": "Custom data passthrough for agent workflows at payload scope; ignored by the engine but preserved across read/write round-trips."
|
|
1895
|
+
},
|
|
1822
1896
|
"type": {
|
|
1823
1897
|
"type": "string",
|
|
1824
1898
|
"enum": ["text", "list", "image", "chart", "table", "video", "code", "metric", "quote", "timeline",
|
|
@@ -2427,8 +2501,8 @@
|
|
|
2427
2501
|
},
|
|
2428
2502
|
"color": {
|
|
2429
2503
|
"type": "string",
|
|
2430
|
-
"description": "Run text color
|
|
2431
|
-
"examples": ["#0F172A", "
|
|
2504
|
+
"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.",
|
|
2505
|
+
"examples": ["#0F172A", "accent2", "var:risk"]
|
|
2432
2506
|
},
|
|
2433
2507
|
"fontSize": {
|
|
2434
2508
|
"type": "number",
|
|
@@ -2676,14 +2750,12 @@
|
|
|
2676
2750
|
"additionalProperties": false,
|
|
2677
2751
|
"properties": {
|
|
2678
2752
|
"fill": {
|
|
2679
|
-
"
|
|
2680
|
-
"
|
|
2681
|
-
"description": "Explicit RGB or RGBA color. Eight-digit colors include alpha; #00000000 is transparent."
|
|
2753
|
+
"$ref": "#/$defs/ColorRef",
|
|
2754
|
+
"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."
|
|
2682
2755
|
},
|
|
2683
2756
|
"color": {
|
|
2684
|
-
"
|
|
2685
|
-
"
|
|
2686
|
-
"description": "Default text color, overridden by individual rich run colors."
|
|
2757
|
+
"$ref": "#/$defs/ColorRef",
|
|
2758
|
+
"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."
|
|
2687
2759
|
},
|
|
2688
2760
|
"align": {
|
|
2689
2761
|
"type": "string",
|
|
@@ -2764,9 +2836,8 @@
|
|
|
2764
2836
|
],
|
|
2765
2837
|
"properties": {
|
|
2766
2838
|
"color": {
|
|
2767
|
-
"
|
|
2768
|
-
"
|
|
2769
|
-
"description": "Explicit RGB or RGBA color. Eight-digit colors include alpha; #00000000 is transparent."
|
|
2839
|
+
"$ref": "#/$defs/ColorRef",
|
|
2840
|
+
"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."
|
|
2770
2841
|
},
|
|
2771
2842
|
"width": {
|
|
2772
2843
|
"type": "number",
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { P as Presentation } from './presentation-
|
|
2
|
-
export { A as Audience,
|
|
3
|
-
export { a as SchemaName } from './schemas-
|
|
1
|
+
export { P as Presentation } from './presentation-Ct42Mitb.js';
|
|
2
|
+
export { A as Audience, C as CatalogKind, e as ChartType, f as ColorScheme, F as FontScheme, L as Language, g as Layout, N as Narrative, P as Purpose, S as SocialPlatform, T as Theme, h as Tone } from './catalogs-atkOF4Vy.js';
|
|
3
|
+
export { a as SchemaName } from './schemas-CiVmUT2p.js';
|
|
4
4
|
export { ValidationIssue, ValidationResult } from './validator.js';
|
package/dist/validator.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { P as Presentation } from './presentation-
|
|
2
|
-
import {
|
|
3
|
-
import { a as SchemaName, m as JsonSchema } from './schemas-
|
|
1
|
+
import { P as Presentation } from './presentation-Ct42Mitb.js';
|
|
2
|
+
import { C as CatalogKind } from './catalogs-atkOF4Vy.js';
|
|
3
|
+
import { a as SchemaName, m as JsonSchema } from './schemas-CiVmUT2p.js';
|
|
4
|
+
|
|
5
|
+
declare const promotedRegionKeys: readonly ["left", "center", "right", "left+center", "center+right", "left+center+right", "top", "middle", "bottom", "top+middle", "middle+bottom", "top+middle+bottom", "top:left", "top:center", "top:right", "top:left+center", "top:center+right", "top:left+center+right", "middle:left", "middle:center", "middle:right", "middle:left+center", "middle:center+right", "middle:left+center+right", "bottom:left", "bottom:center", "bottom:right", "bottom:left+center", "bottom:center+right", "bottom:left+center+right", "top+middle:left", "top+middle:center", "top+middle:right", "top+middle:left+center", "top+middle:center+right", "top+middle:left+center+right", "middle+bottom:left", "middle+bottom:center", "middle+bottom:right", "middle+bottom:left+center", "middle+bottom:center+right", "middle+bottom:left+center+right", "top+middle+bottom:left", "top+middle+bottom:center", "top+middle+bottom:right", "top+middle+bottom:left+center", "top+middle+bottom:center+right", "top+middle+bottom:left+center+right"];
|
|
4
6
|
|
|
5
7
|
interface ValidationIssue {
|
|
6
8
|
path: string;
|
|
@@ -23,6 +25,7 @@ declare class OPFValidationError extends Error {
|
|
|
23
25
|
readonly result: ValidationResult;
|
|
24
26
|
constructor(result: ValidationResult);
|
|
25
27
|
}
|
|
28
|
+
|
|
26
29
|
declare function validate(value: unknown, schemaOrKind?: SchemaOrKind): ValidationResult;
|
|
27
30
|
declare function assertValid<T = unknown>(value: T, schemaOrKind?: SchemaOrKind): T;
|
|
28
31
|
declare function validatePresentation(value: unknown): ValidationResult;
|
|
@@ -30,4 +33,4 @@ declare function assertValidPresentation(value: unknown): asserts value is Prese
|
|
|
30
33
|
declare function validateCatalogRecord(kind: CatalogKind, value: unknown): ValidationResult;
|
|
31
34
|
declare function assertValidCatalogRecord(kind: CatalogKind, value: unknown): void;
|
|
32
35
|
|
|
33
|
-
export { OPFValidationError, type SchemaOrKind, type ValidationIssue, type ValidationResult, assertValid, assertValidCatalogRecord, assertValidPresentation, validate, validateCatalogRecord, validatePresentation };
|
|
36
|
+
export { OPFValidationError, type SchemaOrKind, type ValidationIssue, type ValidationResult, assertValid, assertValidCatalogRecord, assertValidPresentation, promotedRegionKeys, validate, validateCatalogRecord, validatePresentation };
|
package/dist/validator.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { OPFValidationError, assertValid, assertValidCatalogRecord, assertValidPresentation, validate, validateCatalogRecord, validatePresentation } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
export { OPFValidationError, assertValid, assertValidCatalogRecord, assertValidPresentation, promotedRegionKeys, validate, validateCatalogRecord, validatePresentation } from './chunk-CHKJ4QHQ.js';
|
|
2
|
+
import './chunk-FTWNWFIV.js';
|
|
3
|
+
import './chunk-GN52EE3P.js';
|
|
4
|
+
import './chunk-6FU2KICU.js';
|
package/package.json
CHANGED