@openpresentation/opf 0.10.0 → 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.
Files changed (85) hide show
  1. package/dist/{catalogs-HCTav5Wv.d.ts → catalogs-atkOF4Vy.d.ts} +7 -7
  2. package/dist/catalogs.d.ts +2 -2
  3. package/dist/catalogs.js +1 -1
  4. package/dist/{chunk-TWMRZ43O.js → chunk-6FU2KICU.js} +365 -327
  5. package/dist/{chunk-GCB6LGJM.js → chunk-CHKJ4QHQ.js} +225 -73
  6. package/dist/{chunk-NPOKUFEX.js → chunk-EQHZ3ZO4.js} +3 -3
  7. package/dist/{chunk-BAWLYSUN.js → chunk-FTWNWFIV.js} +180 -6
  8. package/dist/{chunk-TK3QHM3U.js → chunk-FWA5XB45.js} +54 -21
  9. package/dist/{chunk-GQSK3T7X.js → chunk-GN52EE3P.js} +146 -16
  10. package/dist/{chunk-OZULJBSG.js → chunk-RS5GZ5RW.js} +14 -0
  11. package/dist/composition-Tv9Wm3Oh.d.ts +691 -0
  12. package/dist/composition.d.ts +1 -624
  13. package/dist/composition.js +1 -1
  14. package/dist/docs.js +59 -11
  15. package/dist/examples.d.ts +1 -1
  16. package/dist/index.d.ts +65 -4
  17. package/dist/index.js +205 -7
  18. package/dist/lint.d.ts +3 -3
  19. package/dist/lint.js +5 -5
  20. package/dist/pagination.d.ts +4 -2
  21. package/dist/pagination.js +5 -5
  22. package/dist/{presentation-BMTdX6O1.d.ts → presentation-Ct42Mitb.d.ts} +51 -8
  23. package/dist/repo-readme.js +1 -1
  24. package/dist/{schemas-BYe5y8-i.d.ts → schemas-CiVmUT2p.d.ts} +6 -0
  25. package/dist/schemas.d.ts +1 -1
  26. package/dist/schemas.js +1 -1
  27. package/dist/spec/catalogs/layouts/extract/canonical.json +45 -21
  28. package/dist/spec/catalogs/layouts/index.json +10 -0
  29. package/dist/spec/catalogs/layouts/number-1x.json +1 -1
  30. package/dist/spec/catalogs/layouts/number-2x.json +2 -2
  31. package/dist/spec/catalogs/layouts/number-3x.json +3 -3
  32. package/dist/spec/catalogs/layouts/number-4x.json +4 -4
  33. package/dist/spec/catalogs/layouts/number-5x.json +5 -5
  34. package/dist/spec/catalogs/layouts/number-6x.json +6 -6
  35. package/dist/spec/catalogs/layouts/quote-1x.json +13 -0
  36. package/dist/spec/catalogs/layouts/timeline-1x.json +13 -0
  37. package/dist/spec/catalogs/narratives/board-meeting.json +21 -21
  38. package/dist/spec/catalogs/narratives/business-narrative.json +8 -8
  39. package/dist/spec/catalogs/narratives/business-review.json +12 -12
  40. package/dist/spec/catalogs/narratives/capacity-planning.json +8 -8
  41. package/dist/spec/catalogs/narratives/challenge-resolution.json +7 -7
  42. package/dist/spec/catalogs/narratives/classic-story.json +7 -7
  43. package/dist/spec/catalogs/narratives/company-intro.json +9 -9
  44. package/dist/spec/catalogs/narratives/conference-talk.json +1 -1
  45. package/dist/spec/catalogs/narratives/early-startup-pitch.json +12 -12
  46. package/dist/spec/catalogs/narratives/educate.json +9 -9
  47. package/dist/spec/catalogs/narratives/employee-review.json +8 -8
  48. package/dist/spec/catalogs/narratives/failure-analysis.json +10 -10
  49. package/dist/spec/catalogs/narratives/focus.json +12 -12
  50. package/dist/spec/catalogs/narratives/golden-circle.json +1 -1
  51. package/dist/spec/catalogs/narratives/innovation.json +9 -9
  52. package/dist/spec/catalogs/narratives/justice.json +11 -11
  53. package/dist/spec/catalogs/narratives/marketing-strategy.json +11 -11
  54. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +8 -8
  55. package/dist/spec/catalogs/narratives/performance-review.json +11 -11
  56. package/dist/spec/catalogs/narratives/persuade.json +7 -7
  57. package/dist/spec/catalogs/narratives/persuasive-sales.json +8 -8
  58. package/dist/spec/catalogs/narratives/pitch-deck.json +3 -3
  59. package/dist/spec/catalogs/narratives/problem-solution.json +2 -2
  60. package/dist/spec/catalogs/narratives/product-launch.json +10 -10
  61. package/dist/spec/catalogs/narratives/project-proposal.json +10 -10
  62. package/dist/spec/catalogs/narratives/qbr.json +3 -3
  63. package/dist/spec/catalogs/narratives/rags-to-riches.json +7 -7
  64. package/dist/spec/catalogs/narratives/reveal.json +8 -8
  65. package/dist/spec/catalogs/narratives/scqa.json +1 -1
  66. package/dist/spec/catalogs/narratives/status-update.json +6 -6
  67. package/dist/spec/catalogs/narratives/strategic-advisory.json +7 -7
  68. package/dist/spec/catalogs/narratives/strategic-narrative.json +1 -1
  69. package/dist/spec/catalogs/narratives/survey-analysis.json +10 -10
  70. package/dist/spec/catalogs/narratives/survival-story.json +10 -10
  71. package/dist/spec/catalogs/narratives/transformation-arc.json +1 -1
  72. package/dist/spec/catalogs/narratives/trend-analysis.json +7 -7
  73. package/dist/spec/catalogs/narratives/underdog-victory.json +8 -8
  74. package/dist/spec/catalogs/narratives/venture-pitch.json +12 -12
  75. package/dist/spec/catalogs/narratives/weekly-progress.json +10 -10
  76. package/dist/spec/openapi.yaml +5 -0
  77. package/dist/spec/schemas/layout.schema.json +12 -3
  78. package/dist/spec/schemas/narrative.schema.json +1 -1
  79. package/dist/spec/schemas/opf.schema.json +83 -12
  80. package/dist/spec-files.d.ts +1 -1
  81. package/dist/spec-files.js +1 -1
  82. package/dist/types.d.ts +3 -3
  83. package/dist/validator.d.ts +7 -4
  84. package/dist/validator.js +4 -4
  85. package/package.json +1 -1
@@ -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 as a hex string.",
2431
- "examples": ["#0F172A", "#1E40AF"]
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
- "type": "string",
2680
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
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
- "type": "string",
2685
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
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
- "type": "string",
2768
- "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
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",
@@ -1,5 +1,5 @@
1
1
  /** Path of a file under `spec/`, relative to the spec root. */
2
- type SpecFilePath = "README.md" | "catalogs/audiences/all-hands.json" | "catalogs/audiences/board.json" | "catalogs/audiences/candidates.json" | "catalogs/audiences/customers.json" | "catalogs/audiences/engineering-team.json" | "catalogs/audiences/executives.json" | "catalogs/audiences/index.json" | "catalogs/audiences/investors.json" | "catalogs/audiences/marketing-team.json" | "catalogs/audiences/regulators.json" | "catalogs/audiences/sales-team.json" | "catalogs/chart-types/100pct-bullet-bar-2x.json" | "catalogs/chart-types/100pct-bullet-bar-3x.json" | "catalogs/chart-types/100pct-bullet-bar.json" | "catalogs/chart-types/100pct-bullet-column-2x.json" | "catalogs/chart-types/100pct-bullet-column-3x.json" | "catalogs/chart-types/100pct-bullet-column.json" | "catalogs/chart-types/100pct-progress-bar.json" | "catalogs/chart-types/100pct-stacked-area-2x.json" | "catalogs/chart-types/100pct-stacked-area-3x.json" | "catalogs/chart-types/100pct-stacked-bar-2x.json" | "catalogs/chart-types/100pct-stacked-bar-3x.json" | "catalogs/chart-types/100pct-stacked-column-2x.json" | "catalogs/chart-types/100pct-stacked-column-3x.json" | "catalogs/chart-types/area.json" | "catalogs/chart-types/australia.json" | "catalogs/chart-types/bar.json" | "catalogs/chart-types/box-and-whisker-2x.json" | "catalogs/chart-types/box-and-whisker-3x.json" | "catalogs/chart-types/box-and-whisker.json" | "catalogs/chart-types/bullet-bar-2x.json" | "catalogs/chart-types/bullet-bar-3x.json" | "catalogs/chart-types/bullet-bar.json" | "catalogs/chart-types/bullet-column-2x.json" | "catalogs/chart-types/bullet-column-3x.json" | "catalogs/chart-types/bullet-column.json" | "catalogs/chart-types/canada.json" | "catalogs/chart-types/clustered-bar-2x.json" | "catalogs/chart-types/clustered-column.json" | "catalogs/chart-types/column.json" | "catalogs/chart-types/dot-plot-2x.json" | "catalogs/chart-types/dot-plot-3x.json" | "catalogs/chart-types/dot-plot-4x.json" | "catalogs/chart-types/dot-plot-5x.json" | "catalogs/chart-types/dot-plot-6x.json" | "catalogs/chart-types/dot-plot.json" | "catalogs/chart-types/doughnut.json" | "catalogs/chart-types/dumbbell.json" | "catalogs/chart-types/filled-radar.json" | "catalogs/chart-types/funnel.json" | "catalogs/chart-types/histogram.json" | "catalogs/chart-types/index.json" | "catalogs/chart-types/line-2x.json" | "catalogs/chart-types/line-3x.json" | "catalogs/chart-types/line-with-high-low-and-markers.json" | "catalogs/chart-types/line-with-high-low.json" | "catalogs/chart-types/line-with-markers-2x.json" | "catalogs/chart-types/line-with-markers-3x.json" | "catalogs/chart-types/line-with-markers.json" | "catalogs/chart-types/line.json" | "catalogs/chart-types/pareto.json" | "catalogs/chart-types/pie.json" | "catalogs/chart-types/radar-with-markers.json" | "catalogs/chart-types/radar.json" | "catalogs/chart-types/scatter.json" | "catalogs/chart-types/sparkline-2x.json" | "catalogs/chart-types/sparkline-3x.json" | "catalogs/chart-types/sparkline-4x.json" | "catalogs/chart-types/sparkline-5x.json" | "catalogs/chart-types/sparkline-6x.json" | "catalogs/chart-types/sparkline.json" | "catalogs/chart-types/stacked-area-2x.json" | "catalogs/chart-types/stacked-area-3x.json" | "catalogs/chart-types/stacked-bar-2x.json" | "catalogs/chart-types/stacked-bar-3x.json" | "catalogs/chart-types/stacked-column-2x.json" | "catalogs/chart-types/stacked-column-3x.json" | "catalogs/chart-types/stacked-line-2x.json" | "catalogs/chart-types/stacked-line-3x.json" | "catalogs/chart-types/stacked-line-with-markers-2x.json" | "catalogs/chart-types/stacked-line-with-markers-3x.json" | "catalogs/chart-types/treemap-2x.json" | "catalogs/chart-types/treemap-3x.json" | "catalogs/chart-types/treemap.json" | "catalogs/chart-types/united-kingdom.json" | "catalogs/chart-types/united-states.json" | "catalogs/chart-types/waterfall.json" | "catalogs/chart-types/world.json" | "catalogs/color-schemes/black-and-white.json" | "catalogs/color-schemes/bold-red.json" | "catalogs/color-schemes/boost.json" | "catalogs/color-schemes/burnt-orange.json" | "catalogs/color-schemes/cool-horizon.json" | "catalogs/color-schemes/corporate-blue.json" | "catalogs/color-schemes/deep-purple.json" | "catalogs/color-schemes/forest-green.json" | "catalogs/color-schemes/golden-yellow.json" | "catalogs/color-schemes/index.json" | "catalogs/color-schemes/luxury.json" | "catalogs/color-schemes/pastel-red.json" | "catalogs/color-schemes/slate-gray.json" | "catalogs/color-schemes/steel-blue.json" | "catalogs/color-schemes/vibes.json" | "catalogs/font-schemes/angsana-new.json" | "catalogs/font-schemes/aparajita.json" | "catalogs/font-schemes/aptos.json" | "catalogs/font-schemes/arabic-typesetting.json" | "catalogs/font-schemes/arial.json" | "catalogs/font-schemes/batang.json" | "catalogs/font-schemes/bookman.json" | "catalogs/font-schemes/calibri.json" | "catalogs/font-schemes/century-schoolbook.json" | "catalogs/font-schemes/consolas.json" | "catalogs/font-schemes/constantia.json" | "catalogs/font-schemes/courier-new.json" | "catalogs/font-schemes/daunpenh.json" | "catalogs/font-schemes/david.json" | "catalogs/font-schemes/dilleniaupc.json" | "catalogs/font-schemes/fangsong.json" | "catalogs/font-schemes/garamond.json" | "catalogs/font-schemes/gautami.json" | "catalogs/font-schemes/georgia.json" | "catalogs/font-schemes/gisha.json" | "catalogs/font-schemes/grandview.json" | "catalogs/font-schemes/gungsuh.json" | "catalogs/font-schemes/impact.json" | "catalogs/font-schemes/index.json" | "catalogs/font-schemes/kalinga.json" | "catalogs/font-schemes/kartika.json" | "catalogs/font-schemes/khmer-ui.json" | "catalogs/font-schemes/latha.json" | "catalogs/font-schemes/lucida-sans.json" | "catalogs/font-schemes/malgun-gothic.json" | "catalogs/font-schemes/mangal.json" | "catalogs/font-schemes/meiryo.json" | "catalogs/font-schemes/microsoft-jhenghei.json" | "catalogs/font-schemes/microsoft-yahei.json" | "catalogs/font-schemes/mingliu.json" | "catalogs/font-schemes/miriam.json" | "catalogs/font-schemes/montserrat.json" | "catalogs/font-schemes/ms-mincho.json" | "catalogs/font-schemes/nirmala-ui.json" | "catalogs/font-schemes/noto-naksh-arabic.json" | "catalogs/font-schemes/noto-nastaliq-urdu.json" | "catalogs/font-schemes/noto-sans-arabic.json" | "catalogs/font-schemes/noto-sans-armenian.json" | "catalogs/font-schemes/noto-sans-bengali.json" | "catalogs/font-schemes/noto-sans-devangari.json" | "catalogs/font-schemes/noto-sans-ethiopic.json" | "catalogs/font-schemes/noto-sans-georgian.json" | "catalogs/font-schemes/noto-sans-gujarati.json" | "catalogs/font-schemes/noto-sans-gurmukhi.json" | "catalogs/font-schemes/noto-sans-hebrew.json" | "catalogs/font-schemes/noto-sans-jp.json" | "catalogs/font-schemes/noto-sans-kannada.json" | "catalogs/font-schemes/noto-sans-khmer.json" | "catalogs/font-schemes/noto-sans-kr.json" | "catalogs/font-schemes/noto-sans-malayalam.json" | "catalogs/font-schemes/noto-sans-mongolian.json" | "catalogs/font-schemes/noto-sans-oriya.json" | "catalogs/font-schemes/noto-sans-sc.json" | "catalogs/font-schemes/noto-sans-tamil.json" | "catalogs/font-schemes/noto-sans-tc.json" | "catalogs/font-schemes/noto-sans-telugu.json" | "catalogs/font-schemes/noto-sans-thai.json" | "catalogs/font-schemes/noto-sans.json" | "catalogs/font-schemes/nyala.json" | "catalogs/font-schemes/open-sans.json" | "catalogs/font-schemes/pmingliu.json" | "catalogs/font-schemes/poppins.json" | "catalogs/font-schemes/pt-serif.json" | "catalogs/font-schemes/raavi.json" | "catalogs/font-schemes/raleway.json" | "catalogs/font-schemes/roboto.json" | "catalogs/font-schemes/rockwell.json" | "catalogs/font-schemes/sakkal-majalla.json" | "catalogs/font-schemes/seaford.json" | "catalogs/font-schemes/segoe-ui-light.json" | "catalogs/font-schemes/segoe-ui.json" | "catalogs/font-schemes/shonar-bangla.json" | "catalogs/font-schemes/shruti.json" | "catalogs/font-schemes/simsun.json" | "catalogs/font-schemes/skeena.json" | "catalogs/font-schemes/sylfaen.json" | "catalogs/font-schemes/tahoma.json" | "catalogs/font-schemes/tenorite.json" | "catalogs/font-schemes/times-new-roman.json" | "catalogs/font-schemes/traditional-arabic.json" | "catalogs/font-schemes/trebuchet-ms.json" | "catalogs/font-schemes/tunga.json" | "catalogs/font-schemes/verdana.json" | "catalogs/font-schemes/vrinda.json" | "catalogs/font-schemes/yu-gothic.json" | "catalogs/languages/afrikaans.json" | "catalogs/languages/albanian.json" | "catalogs/languages/amharic.json" | "catalogs/languages/arabic.json" | "catalogs/languages/armenian.json" | "catalogs/languages/aymara.json" | "catalogs/languages/azerbaijani.json" | "catalogs/languages/bengali.json" | "catalogs/languages/berber-latin.json" | "catalogs/languages/bosnian-latin.json" | "catalogs/languages/bulgarian.json" | "catalogs/languages/catalan.json" | "catalogs/languages/cebuano.json" | "catalogs/languages/chinese-simplified.json" | "catalogs/languages/chinese-traditional.json" | "catalogs/languages/chittagonian.json" | "catalogs/languages/croatian.json" | "catalogs/languages/czech.json" | "catalogs/languages/danish.json" | "catalogs/languages/dutch.json" | "catalogs/languages/english-au.json" | "catalogs/languages/english-ca.json" | "catalogs/languages/english-gb.json" | "catalogs/languages/english-in.json" | "catalogs/languages/english-us.json" | "catalogs/languages/english.json" | "catalogs/languages/estonian.json" | "catalogs/languages/filipino.json" | "catalogs/languages/finnish.json" | "catalogs/languages/french.json" | "catalogs/languages/fulfulde.json" | "catalogs/languages/galician.json" | "catalogs/languages/georgian.json" | "catalogs/languages/german.json" | "catalogs/languages/greek.json" | "catalogs/languages/gujarati.json" | "catalogs/languages/hausa.json" | "catalogs/languages/hebrew.json" | "catalogs/languages/hindi.json" | "catalogs/languages/hungarian.json" | "catalogs/languages/igbo.json" | "catalogs/languages/index.json" | "catalogs/languages/indonesian.json" | "catalogs/languages/italian.json" | "catalogs/languages/japanese.json" | "catalogs/languages/kannada.json" | "catalogs/languages/kazakh.json" | "catalogs/languages/khmer.json" | "catalogs/languages/kinyarwanda.json" | "catalogs/languages/korean.json" | "catalogs/languages/kurmanji.json" | "catalogs/languages/latvian.json" | "catalogs/languages/lithuanian.json" | "catalogs/languages/macedonian.json" | "catalogs/languages/malagasy.json" | "catalogs/languages/malay.json" | "catalogs/languages/malayalam.json" | "catalogs/languages/maori.json" | "catalogs/languages/marathi.json" | "catalogs/languages/mongolian.json" | "catalogs/languages/nepali.json" | "catalogs/languages/norwegian.json" | "catalogs/languages/odia.json" | "catalogs/languages/oromo.json" | "catalogs/languages/pashto.json" | "catalogs/languages/persian.json" | "catalogs/languages/polish.json" | "catalogs/languages/portuguese.json" | "catalogs/languages/punjabi-gurmukhi.json" | "catalogs/languages/punjabi-shahmukhi.json" | "catalogs/languages/romanian.json" | "catalogs/languages/russian.json" | "catalogs/languages/serbian-cyrillic.json" | "catalogs/languages/serbian-latin.json" | "catalogs/languages/shona.json" | "catalogs/languages/slovak.json" | "catalogs/languages/slovenian.json" | "catalogs/languages/somali.json" | "catalogs/languages/spanish.json" | "catalogs/languages/swahili.json" | "catalogs/languages/swedish.json" | "catalogs/languages/tagalog.json" | "catalogs/languages/tajik.json" | "catalogs/languages/tamil.json" | "catalogs/languages/telugu.json" | "catalogs/languages/thai.json" | "catalogs/languages/turkish.json" | "catalogs/languages/ukrainian.json" | "catalogs/languages/urdu.json" | "catalogs/languages/uzbek-latin.json" | "catalogs/languages/vietnamese-quoc-ngu.json" | "catalogs/languages/xhosa.json" | "catalogs/languages/yoruba.json" | "catalogs/languages/zulu.json" | "catalogs/layouts/blank.json" | "catalogs/layouts/chart-1x.json" | "catalogs/layouts/chart-2x.json" | "catalogs/layouts/chart-3x.json" | "catalogs/layouts/code-1x.json" | "catalogs/layouts/extract/canonical.json" | "catalogs/layouts/image-1x.json" | "catalogs/layouts/image-2x.json" | "catalogs/layouts/image-3x.json" | "catalogs/layouts/image-bleed.json" | "catalogs/layouts/index.json" | "catalogs/layouts/list-1x.json" | "catalogs/layouts/list-2x.json" | "catalogs/layouts/list-3x.json" | "catalogs/layouts/list-4x.json" | "catalogs/layouts/list-5x.json" | "catalogs/layouts/list-6x.json" | "catalogs/layouts/media-1x.json" | "catalogs/layouts/number-1x.json" | "catalogs/layouts/number-2x.json" | "catalogs/layouts/number-3x.json" | "catalogs/layouts/number-4x.json" | "catalogs/layouts/number-5x.json" | "catalogs/layouts/number-6x.json" | "catalogs/layouts/table-1x.json" | "catalogs/layouts/text-1x.json" | "catalogs/layouts/text-2x.json" | "catalogs/layouts/text-3x.json" | "catalogs/layouts/title-subtitle.json" | "catalogs/layouts/title.json" | "catalogs/narratives/board-meeting.json" | "catalogs/narratives/business-narrative.json" | "catalogs/narratives/business-review.json" | "catalogs/narratives/capacity-planning.json" | "catalogs/narratives/challenge-resolution.json" | "catalogs/narratives/classic-story.json" | "catalogs/narratives/company-intro.json" | "catalogs/narratives/conference-talk.json" | "catalogs/narratives/early-startup-pitch.json" | "catalogs/narratives/educate.json" | "catalogs/narratives/employee-review.json" | "catalogs/narratives/failure-analysis.json" | "catalogs/narratives/focus.json" | "catalogs/narratives/golden-circle.json" | "catalogs/narratives/index.json" | "catalogs/narratives/innovation.json" | "catalogs/narratives/justice.json" | "catalogs/narratives/marketing-strategy.json" | "catalogs/narratives/performance-improvement-plan.json" | "catalogs/narratives/performance-review.json" | "catalogs/narratives/persuade.json" | "catalogs/narratives/persuasive-sales.json" | "catalogs/narratives/pitch-deck.json" | "catalogs/narratives/problem-solution.json" | "catalogs/narratives/product-launch.json" | "catalogs/narratives/project-proposal.json" | "catalogs/narratives/qbr.json" | "catalogs/narratives/rags-to-riches.json" | "catalogs/narratives/reveal.json" | "catalogs/narratives/scqa.json" | "catalogs/narratives/status-update.json" | "catalogs/narratives/strategic-advisory.json" | "catalogs/narratives/strategic-narrative.json" | "catalogs/narratives/survey-analysis.json" | "catalogs/narratives/survival-story.json" | "catalogs/narratives/transformation-arc.json" | "catalogs/narratives/trend-analysis.json" | "catalogs/narratives/underdog-victory.json" | "catalogs/narratives/venture-pitch.json" | "catalogs/narratives/weekly-progress.json" | "catalogs/purposes/align.json" | "catalogs/purposes/decide.json" | "catalogs/purposes/educate.json" | "catalogs/purposes/index.json" | "catalogs/purposes/inform.json" | "catalogs/purposes/persuade.json" | "catalogs/purposes/pitch.json" | "catalogs/purposes/plan.json" | "catalogs/purposes/report.json" | "catalogs/purposes/sell.json" | "catalogs/social-platforms/bluesky.json" | "catalogs/social-platforms/facebook.json" | "catalogs/social-platforms/github.json" | "catalogs/social-platforms/index.json" | "catalogs/social-platforms/instagram.json" | "catalogs/social-platforms/linkedin.json" | "catalogs/social-platforms/mastodon.json" | "catalogs/social-platforms/threads.json" | "catalogs/social-platforms/tiktok.json" | "catalogs/social-platforms/x.json" | "catalogs/social-platforms/youtube.json" | "catalogs/themes/bold.json" | "catalogs/themes/classic.json" | "catalogs/themes/dark.json" | "catalogs/themes/index.json" | "catalogs/themes/minimal.json" | "catalogs/tones/authoritative.json" | "catalogs/tones/casual.json" | "catalogs/tones/conversational.json" | "catalogs/tones/formal.json" | "catalogs/tones/index.json" | "catalogs/tones/inspirational.json" | "catalogs/tones/persuasive.json" | "catalogs/tones/technical.json" | "openapi.yaml" | "previews/layouts/action-plan.html" | "previews/layouts/agenda.html" | "previews/layouts/appendix-index.html" | "previews/layouts/architecture-stack.html" | "previews/layouts/assumptions-dependencies.html" | "previews/layouts/before-after.html" | "previews/layouts/benchmark-target-table.html" | "previews/layouts/bullet-list.html" | "previews/layouts/business-model-canvas.html" | "previews/layouts/capability-map.html" | "previews/layouts/case-study.html" | "previews/layouts/chapter-recap.html" | "previews/layouts/circular-lifecycle.html" | "previews/layouts/comparison.html" | "previews/layouts/competitive-landscape.html" | "previews/layouts/customer-journey.html" | "previews/layouts/customer-logos.html" | "previews/layouts/dashboard.html" | "previews/layouts/data-visualization.html" | "previews/layouts/decision-tree.html" | "previews/layouts/detailed-data-table.html" | "previews/layouts/ecosystem-map.html" | "previews/layouts/executive-decision.html" | "previews/layouts/executive-summary.html" | "previews/layouts/faq.html" | "previews/layouts/feature-comparison-matrix.html" | "previews/layouts/forecast-scenario.html" | "previews/layouts/funnel-pyramid.html" | "previews/layouts/gantt-project-plan.html" | "previews/layouts/geographic-map.html" | "previews/layouts/heatmap-cohort.html" | "previews/layouts/hub-and-spoke.html" | "previews/layouts/icon-grid.html" | "previews/layouts/image-focus.html" | "previews/layouts/index.json" | "previews/layouts/key-takeaway.html" | "previews/layouts/kpi-scorecard.html" | "previews/layouts/logic-tree.html" | "previews/layouts/market-size.html" | "previews/layouts/matrix-quadrant.html" | "previews/layouts/network-dependency-map.html" | "previews/layouts/one-column-explainer.html" | "previews/layouts/org-chart.html" | "previews/layouts/persona-grid.html" | "previews/layouts/photo-grid.html" | "previews/layouts/pricing-table.html" | "previews/layouts/process-flow.html" | "previews/layouts/product-feature.html" | "previews/layouts/pros-cons.html" | "previews/layouts/qa-discussion.html" | "previews/layouts/quote-highlight.html" | "previews/layouts/raci-matrix.html" | "previews/layouts/risk-heatmap.html" | "previews/layouts/roadmap.html" | "previews/layouts/screenshot-walkthrough.html" | "previews/layouts/section-divider.html" | "previews/layouts/single-message-statement.html" | "previews/layouts/stats-metrics.html" | "previews/layouts/status-rag.html" | "previews/layouts/swimlane-process.html" | "previews/layouts/swot-analysis.html" | "previews/layouts/team-bio.html" | "previews/layouts/testimonial-grid.html" | "previews/layouts/thank-you-cta.html" | "previews/layouts/three-column.html" | "previews/layouts/timeline.html" | "previews/layouts/title-slide.html" | "previews/layouts/two-column.html" | "previews/layouts/venn-overlap.html" | "previews/layouts/waterfall-bridge.html" | "previews/layouts/wheel-radial.html" | "reference/engine-defaults.json" | "schemas/audience.schema.json" | "schemas/catalog-index.schema.json" | "schemas/chart-type.schema.json" | "schemas/color-scheme.schema.json" | "schemas/font-scheme.schema.json" | "schemas/language.schema.json" | "schemas/layout-preview-index.schema.json" | "schemas/layout.schema.json" | "schemas/narrative.schema.json" | "schemas/opf.schema.json" | "schemas/purpose.schema.json" | "schemas/social-platform.schema.json" | "schemas/theme.schema.json" | "schemas/tone.schema.json";
2
+ type SpecFilePath = "README.md" | "catalogs/audiences/all-hands.json" | "catalogs/audiences/board.json" | "catalogs/audiences/candidates.json" | "catalogs/audiences/customers.json" | "catalogs/audiences/engineering-team.json" | "catalogs/audiences/executives.json" | "catalogs/audiences/index.json" | "catalogs/audiences/investors.json" | "catalogs/audiences/marketing-team.json" | "catalogs/audiences/regulators.json" | "catalogs/audiences/sales-team.json" | "catalogs/chart-types/100pct-bullet-bar-2x.json" | "catalogs/chart-types/100pct-bullet-bar-3x.json" | "catalogs/chart-types/100pct-bullet-bar.json" | "catalogs/chart-types/100pct-bullet-column-2x.json" | "catalogs/chart-types/100pct-bullet-column-3x.json" | "catalogs/chart-types/100pct-bullet-column.json" | "catalogs/chart-types/100pct-progress-bar.json" | "catalogs/chart-types/100pct-stacked-area-2x.json" | "catalogs/chart-types/100pct-stacked-area-3x.json" | "catalogs/chart-types/100pct-stacked-bar-2x.json" | "catalogs/chart-types/100pct-stacked-bar-3x.json" | "catalogs/chart-types/100pct-stacked-column-2x.json" | "catalogs/chart-types/100pct-stacked-column-3x.json" | "catalogs/chart-types/area.json" | "catalogs/chart-types/australia.json" | "catalogs/chart-types/bar.json" | "catalogs/chart-types/box-and-whisker-2x.json" | "catalogs/chart-types/box-and-whisker-3x.json" | "catalogs/chart-types/box-and-whisker.json" | "catalogs/chart-types/bullet-bar-2x.json" | "catalogs/chart-types/bullet-bar-3x.json" | "catalogs/chart-types/bullet-bar.json" | "catalogs/chart-types/bullet-column-2x.json" | "catalogs/chart-types/bullet-column-3x.json" | "catalogs/chart-types/bullet-column.json" | "catalogs/chart-types/canada.json" | "catalogs/chart-types/clustered-bar-2x.json" | "catalogs/chart-types/clustered-column.json" | "catalogs/chart-types/column.json" | "catalogs/chart-types/dot-plot-2x.json" | "catalogs/chart-types/dot-plot-3x.json" | "catalogs/chart-types/dot-plot-4x.json" | "catalogs/chart-types/dot-plot-5x.json" | "catalogs/chart-types/dot-plot-6x.json" | "catalogs/chart-types/dot-plot.json" | "catalogs/chart-types/doughnut.json" | "catalogs/chart-types/dumbbell.json" | "catalogs/chart-types/filled-radar.json" | "catalogs/chart-types/funnel.json" | "catalogs/chart-types/histogram.json" | "catalogs/chart-types/index.json" | "catalogs/chart-types/line-2x.json" | "catalogs/chart-types/line-3x.json" | "catalogs/chart-types/line-with-high-low-and-markers.json" | "catalogs/chart-types/line-with-high-low.json" | "catalogs/chart-types/line-with-markers-2x.json" | "catalogs/chart-types/line-with-markers-3x.json" | "catalogs/chart-types/line-with-markers.json" | "catalogs/chart-types/line.json" | "catalogs/chart-types/pareto.json" | "catalogs/chart-types/pie.json" | "catalogs/chart-types/radar-with-markers.json" | "catalogs/chart-types/radar.json" | "catalogs/chart-types/scatter.json" | "catalogs/chart-types/sparkline-2x.json" | "catalogs/chart-types/sparkline-3x.json" | "catalogs/chart-types/sparkline-4x.json" | "catalogs/chart-types/sparkline-5x.json" | "catalogs/chart-types/sparkline-6x.json" | "catalogs/chart-types/sparkline.json" | "catalogs/chart-types/stacked-area-2x.json" | "catalogs/chart-types/stacked-area-3x.json" | "catalogs/chart-types/stacked-bar-2x.json" | "catalogs/chart-types/stacked-bar-3x.json" | "catalogs/chart-types/stacked-column-2x.json" | "catalogs/chart-types/stacked-column-3x.json" | "catalogs/chart-types/stacked-line-2x.json" | "catalogs/chart-types/stacked-line-3x.json" | "catalogs/chart-types/stacked-line-with-markers-2x.json" | "catalogs/chart-types/stacked-line-with-markers-3x.json" | "catalogs/chart-types/treemap-2x.json" | "catalogs/chart-types/treemap-3x.json" | "catalogs/chart-types/treemap.json" | "catalogs/chart-types/united-kingdom.json" | "catalogs/chart-types/united-states.json" | "catalogs/chart-types/waterfall.json" | "catalogs/chart-types/world.json" | "catalogs/color-schemes/black-and-white.json" | "catalogs/color-schemes/bold-red.json" | "catalogs/color-schemes/boost.json" | "catalogs/color-schemes/burnt-orange.json" | "catalogs/color-schemes/cool-horizon.json" | "catalogs/color-schemes/corporate-blue.json" | "catalogs/color-schemes/deep-purple.json" | "catalogs/color-schemes/forest-green.json" | "catalogs/color-schemes/golden-yellow.json" | "catalogs/color-schemes/index.json" | "catalogs/color-schemes/luxury.json" | "catalogs/color-schemes/pastel-red.json" | "catalogs/color-schemes/slate-gray.json" | "catalogs/color-schemes/steel-blue.json" | "catalogs/color-schemes/vibes.json" | "catalogs/font-schemes/angsana-new.json" | "catalogs/font-schemes/aparajita.json" | "catalogs/font-schemes/aptos.json" | "catalogs/font-schemes/arabic-typesetting.json" | "catalogs/font-schemes/arial.json" | "catalogs/font-schemes/batang.json" | "catalogs/font-schemes/bookman.json" | "catalogs/font-schemes/calibri.json" | "catalogs/font-schemes/century-schoolbook.json" | "catalogs/font-schemes/consolas.json" | "catalogs/font-schemes/constantia.json" | "catalogs/font-schemes/courier-new.json" | "catalogs/font-schemes/daunpenh.json" | "catalogs/font-schemes/david.json" | "catalogs/font-schemes/dilleniaupc.json" | "catalogs/font-schemes/fangsong.json" | "catalogs/font-schemes/garamond.json" | "catalogs/font-schemes/gautami.json" | "catalogs/font-schemes/georgia.json" | "catalogs/font-schemes/gisha.json" | "catalogs/font-schemes/grandview.json" | "catalogs/font-schemes/gungsuh.json" | "catalogs/font-schemes/impact.json" | "catalogs/font-schemes/index.json" | "catalogs/font-schemes/kalinga.json" | "catalogs/font-schemes/kartika.json" | "catalogs/font-schemes/khmer-ui.json" | "catalogs/font-schemes/latha.json" | "catalogs/font-schemes/lucida-sans.json" | "catalogs/font-schemes/malgun-gothic.json" | "catalogs/font-schemes/mangal.json" | "catalogs/font-schemes/meiryo.json" | "catalogs/font-schemes/microsoft-jhenghei.json" | "catalogs/font-schemes/microsoft-yahei.json" | "catalogs/font-schemes/mingliu.json" | "catalogs/font-schemes/miriam.json" | "catalogs/font-schemes/montserrat.json" | "catalogs/font-schemes/ms-mincho.json" | "catalogs/font-schemes/nirmala-ui.json" | "catalogs/font-schemes/noto-naksh-arabic.json" | "catalogs/font-schemes/noto-nastaliq-urdu.json" | "catalogs/font-schemes/noto-sans-arabic.json" | "catalogs/font-schemes/noto-sans-armenian.json" | "catalogs/font-schemes/noto-sans-bengali.json" | "catalogs/font-schemes/noto-sans-devangari.json" | "catalogs/font-schemes/noto-sans-ethiopic.json" | "catalogs/font-schemes/noto-sans-georgian.json" | "catalogs/font-schemes/noto-sans-gujarati.json" | "catalogs/font-schemes/noto-sans-gurmukhi.json" | "catalogs/font-schemes/noto-sans-hebrew.json" | "catalogs/font-schemes/noto-sans-jp.json" | "catalogs/font-schemes/noto-sans-kannada.json" | "catalogs/font-schemes/noto-sans-khmer.json" | "catalogs/font-schemes/noto-sans-kr.json" | "catalogs/font-schemes/noto-sans-malayalam.json" | "catalogs/font-schemes/noto-sans-mongolian.json" | "catalogs/font-schemes/noto-sans-oriya.json" | "catalogs/font-schemes/noto-sans-sc.json" | "catalogs/font-schemes/noto-sans-tamil.json" | "catalogs/font-schemes/noto-sans-tc.json" | "catalogs/font-schemes/noto-sans-telugu.json" | "catalogs/font-schemes/noto-sans-thai.json" | "catalogs/font-schemes/noto-sans.json" | "catalogs/font-schemes/nyala.json" | "catalogs/font-schemes/open-sans.json" | "catalogs/font-schemes/pmingliu.json" | "catalogs/font-schemes/poppins.json" | "catalogs/font-schemes/pt-serif.json" | "catalogs/font-schemes/raavi.json" | "catalogs/font-schemes/raleway.json" | "catalogs/font-schemes/roboto.json" | "catalogs/font-schemes/rockwell.json" | "catalogs/font-schemes/sakkal-majalla.json" | "catalogs/font-schemes/seaford.json" | "catalogs/font-schemes/segoe-ui-light.json" | "catalogs/font-schemes/segoe-ui.json" | "catalogs/font-schemes/shonar-bangla.json" | "catalogs/font-schemes/shruti.json" | "catalogs/font-schemes/simsun.json" | "catalogs/font-schemes/skeena.json" | "catalogs/font-schemes/sylfaen.json" | "catalogs/font-schemes/tahoma.json" | "catalogs/font-schemes/tenorite.json" | "catalogs/font-schemes/times-new-roman.json" | "catalogs/font-schemes/traditional-arabic.json" | "catalogs/font-schemes/trebuchet-ms.json" | "catalogs/font-schemes/tunga.json" | "catalogs/font-schemes/verdana.json" | "catalogs/font-schemes/vrinda.json" | "catalogs/font-schemes/yu-gothic.json" | "catalogs/languages/afrikaans.json" | "catalogs/languages/albanian.json" | "catalogs/languages/amharic.json" | "catalogs/languages/arabic.json" | "catalogs/languages/armenian.json" | "catalogs/languages/aymara.json" | "catalogs/languages/azerbaijani.json" | "catalogs/languages/bengali.json" | "catalogs/languages/berber-latin.json" | "catalogs/languages/bosnian-latin.json" | "catalogs/languages/bulgarian.json" | "catalogs/languages/catalan.json" | "catalogs/languages/cebuano.json" | "catalogs/languages/chinese-simplified.json" | "catalogs/languages/chinese-traditional.json" | "catalogs/languages/chittagonian.json" | "catalogs/languages/croatian.json" | "catalogs/languages/czech.json" | "catalogs/languages/danish.json" | "catalogs/languages/dutch.json" | "catalogs/languages/english-au.json" | "catalogs/languages/english-ca.json" | "catalogs/languages/english-gb.json" | "catalogs/languages/english-in.json" | "catalogs/languages/english-us.json" | "catalogs/languages/english.json" | "catalogs/languages/estonian.json" | "catalogs/languages/filipino.json" | "catalogs/languages/finnish.json" | "catalogs/languages/french.json" | "catalogs/languages/fulfulde.json" | "catalogs/languages/galician.json" | "catalogs/languages/georgian.json" | "catalogs/languages/german.json" | "catalogs/languages/greek.json" | "catalogs/languages/gujarati.json" | "catalogs/languages/hausa.json" | "catalogs/languages/hebrew.json" | "catalogs/languages/hindi.json" | "catalogs/languages/hungarian.json" | "catalogs/languages/igbo.json" | "catalogs/languages/index.json" | "catalogs/languages/indonesian.json" | "catalogs/languages/italian.json" | "catalogs/languages/japanese.json" | "catalogs/languages/kannada.json" | "catalogs/languages/kazakh.json" | "catalogs/languages/khmer.json" | "catalogs/languages/kinyarwanda.json" | "catalogs/languages/korean.json" | "catalogs/languages/kurmanji.json" | "catalogs/languages/latvian.json" | "catalogs/languages/lithuanian.json" | "catalogs/languages/macedonian.json" | "catalogs/languages/malagasy.json" | "catalogs/languages/malay.json" | "catalogs/languages/malayalam.json" | "catalogs/languages/maori.json" | "catalogs/languages/marathi.json" | "catalogs/languages/mongolian.json" | "catalogs/languages/nepali.json" | "catalogs/languages/norwegian.json" | "catalogs/languages/odia.json" | "catalogs/languages/oromo.json" | "catalogs/languages/pashto.json" | "catalogs/languages/persian.json" | "catalogs/languages/polish.json" | "catalogs/languages/portuguese.json" | "catalogs/languages/punjabi-gurmukhi.json" | "catalogs/languages/punjabi-shahmukhi.json" | "catalogs/languages/romanian.json" | "catalogs/languages/russian.json" | "catalogs/languages/serbian-cyrillic.json" | "catalogs/languages/serbian-latin.json" | "catalogs/languages/shona.json" | "catalogs/languages/slovak.json" | "catalogs/languages/slovenian.json" | "catalogs/languages/somali.json" | "catalogs/languages/spanish.json" | "catalogs/languages/swahili.json" | "catalogs/languages/swedish.json" | "catalogs/languages/tagalog.json" | "catalogs/languages/tajik.json" | "catalogs/languages/tamil.json" | "catalogs/languages/telugu.json" | "catalogs/languages/thai.json" | "catalogs/languages/turkish.json" | "catalogs/languages/ukrainian.json" | "catalogs/languages/urdu.json" | "catalogs/languages/uzbek-latin.json" | "catalogs/languages/vietnamese-quoc-ngu.json" | "catalogs/languages/xhosa.json" | "catalogs/languages/yoruba.json" | "catalogs/languages/zulu.json" | "catalogs/layouts/blank.json" | "catalogs/layouts/chart-1x.json" | "catalogs/layouts/chart-2x.json" | "catalogs/layouts/chart-3x.json" | "catalogs/layouts/code-1x.json" | "catalogs/layouts/extract/canonical.json" | "catalogs/layouts/image-1x.json" | "catalogs/layouts/image-2x.json" | "catalogs/layouts/image-3x.json" | "catalogs/layouts/image-bleed.json" | "catalogs/layouts/index.json" | "catalogs/layouts/list-1x.json" | "catalogs/layouts/list-2x.json" | "catalogs/layouts/list-3x.json" | "catalogs/layouts/list-4x.json" | "catalogs/layouts/list-5x.json" | "catalogs/layouts/list-6x.json" | "catalogs/layouts/media-1x.json" | "catalogs/layouts/number-1x.json" | "catalogs/layouts/number-2x.json" | "catalogs/layouts/number-3x.json" | "catalogs/layouts/number-4x.json" | "catalogs/layouts/number-5x.json" | "catalogs/layouts/number-6x.json" | "catalogs/layouts/quote-1x.json" | "catalogs/layouts/table-1x.json" | "catalogs/layouts/text-1x.json" | "catalogs/layouts/text-2x.json" | "catalogs/layouts/text-3x.json" | "catalogs/layouts/timeline-1x.json" | "catalogs/layouts/title-subtitle.json" | "catalogs/layouts/title.json" | "catalogs/narratives/board-meeting.json" | "catalogs/narratives/business-narrative.json" | "catalogs/narratives/business-review.json" | "catalogs/narratives/capacity-planning.json" | "catalogs/narratives/challenge-resolution.json" | "catalogs/narratives/classic-story.json" | "catalogs/narratives/company-intro.json" | "catalogs/narratives/conference-talk.json" | "catalogs/narratives/early-startup-pitch.json" | "catalogs/narratives/educate.json" | "catalogs/narratives/employee-review.json" | "catalogs/narratives/failure-analysis.json" | "catalogs/narratives/focus.json" | "catalogs/narratives/golden-circle.json" | "catalogs/narratives/index.json" | "catalogs/narratives/innovation.json" | "catalogs/narratives/justice.json" | "catalogs/narratives/marketing-strategy.json" | "catalogs/narratives/performance-improvement-plan.json" | "catalogs/narratives/performance-review.json" | "catalogs/narratives/persuade.json" | "catalogs/narratives/persuasive-sales.json" | "catalogs/narratives/pitch-deck.json" | "catalogs/narratives/problem-solution.json" | "catalogs/narratives/product-launch.json" | "catalogs/narratives/project-proposal.json" | "catalogs/narratives/qbr.json" | "catalogs/narratives/rags-to-riches.json" | "catalogs/narratives/reveal.json" | "catalogs/narratives/scqa.json" | "catalogs/narratives/status-update.json" | "catalogs/narratives/strategic-advisory.json" | "catalogs/narratives/strategic-narrative.json" | "catalogs/narratives/survey-analysis.json" | "catalogs/narratives/survival-story.json" | "catalogs/narratives/transformation-arc.json" | "catalogs/narratives/trend-analysis.json" | "catalogs/narratives/underdog-victory.json" | "catalogs/narratives/venture-pitch.json" | "catalogs/narratives/weekly-progress.json" | "catalogs/purposes/align.json" | "catalogs/purposes/decide.json" | "catalogs/purposes/educate.json" | "catalogs/purposes/index.json" | "catalogs/purposes/inform.json" | "catalogs/purposes/persuade.json" | "catalogs/purposes/pitch.json" | "catalogs/purposes/plan.json" | "catalogs/purposes/report.json" | "catalogs/purposes/sell.json" | "catalogs/social-platforms/bluesky.json" | "catalogs/social-platforms/facebook.json" | "catalogs/social-platforms/github.json" | "catalogs/social-platforms/index.json" | "catalogs/social-platforms/instagram.json" | "catalogs/social-platforms/linkedin.json" | "catalogs/social-platforms/mastodon.json" | "catalogs/social-platforms/threads.json" | "catalogs/social-platforms/tiktok.json" | "catalogs/social-platforms/x.json" | "catalogs/social-platforms/youtube.json" | "catalogs/themes/bold.json" | "catalogs/themes/classic.json" | "catalogs/themes/dark.json" | "catalogs/themes/index.json" | "catalogs/themes/minimal.json" | "catalogs/tones/authoritative.json" | "catalogs/tones/casual.json" | "catalogs/tones/conversational.json" | "catalogs/tones/formal.json" | "catalogs/tones/index.json" | "catalogs/tones/inspirational.json" | "catalogs/tones/persuasive.json" | "catalogs/tones/technical.json" | "openapi.yaml" | "previews/layouts/action-plan.html" | "previews/layouts/agenda.html" | "previews/layouts/appendix-index.html" | "previews/layouts/architecture-stack.html" | "previews/layouts/assumptions-dependencies.html" | "previews/layouts/before-after.html" | "previews/layouts/benchmark-target-table.html" | "previews/layouts/bullet-list.html" | "previews/layouts/business-model-canvas.html" | "previews/layouts/capability-map.html" | "previews/layouts/case-study.html" | "previews/layouts/chapter-recap.html" | "previews/layouts/circular-lifecycle.html" | "previews/layouts/comparison.html" | "previews/layouts/competitive-landscape.html" | "previews/layouts/customer-journey.html" | "previews/layouts/customer-logos.html" | "previews/layouts/dashboard.html" | "previews/layouts/data-visualization.html" | "previews/layouts/decision-tree.html" | "previews/layouts/detailed-data-table.html" | "previews/layouts/ecosystem-map.html" | "previews/layouts/executive-decision.html" | "previews/layouts/executive-summary.html" | "previews/layouts/faq.html" | "previews/layouts/feature-comparison-matrix.html" | "previews/layouts/forecast-scenario.html" | "previews/layouts/funnel-pyramid.html" | "previews/layouts/gantt-project-plan.html" | "previews/layouts/geographic-map.html" | "previews/layouts/heatmap-cohort.html" | "previews/layouts/hub-and-spoke.html" | "previews/layouts/icon-grid.html" | "previews/layouts/image-focus.html" | "previews/layouts/index.json" | "previews/layouts/key-takeaway.html" | "previews/layouts/kpi-scorecard.html" | "previews/layouts/logic-tree.html" | "previews/layouts/market-size.html" | "previews/layouts/matrix-quadrant.html" | "previews/layouts/network-dependency-map.html" | "previews/layouts/one-column-explainer.html" | "previews/layouts/org-chart.html" | "previews/layouts/persona-grid.html" | "previews/layouts/photo-grid.html" | "previews/layouts/pricing-table.html" | "previews/layouts/process-flow.html" | "previews/layouts/product-feature.html" | "previews/layouts/pros-cons.html" | "previews/layouts/qa-discussion.html" | "previews/layouts/quote-highlight.html" | "previews/layouts/raci-matrix.html" | "previews/layouts/risk-heatmap.html" | "previews/layouts/roadmap.html" | "previews/layouts/screenshot-walkthrough.html" | "previews/layouts/section-divider.html" | "previews/layouts/single-message-statement.html" | "previews/layouts/stats-metrics.html" | "previews/layouts/status-rag.html" | "previews/layouts/swimlane-process.html" | "previews/layouts/swot-analysis.html" | "previews/layouts/team-bio.html" | "previews/layouts/testimonial-grid.html" | "previews/layouts/thank-you-cta.html" | "previews/layouts/three-column.html" | "previews/layouts/timeline.html" | "previews/layouts/title-slide.html" | "previews/layouts/two-column.html" | "previews/layouts/venn-overlap.html" | "previews/layouts/waterfall-bridge.html" | "previews/layouts/wheel-radial.html" | "reference/engine-defaults.json" | "schemas/audience.schema.json" | "schemas/catalog-index.schema.json" | "schemas/chart-type.schema.json" | "schemas/color-scheme.schema.json" | "schemas/font-scheme.schema.json" | "schemas/language.schema.json" | "schemas/layout-preview-index.schema.json" | "schemas/layout.schema.json" | "schemas/narrative.schema.json" | "schemas/opf.schema.json" | "schemas/purpose.schema.json" | "schemas/social-platform.schema.json" | "schemas/theme.schema.json" | "schemas/tone.schema.json";
3
3
  /** Category of a bundled spec file. */
4
4
  type SpecFileKind = "spec" | "catalogRecord" | "catalogIndex" | "openapi" | "reference" | "schema";
5
5
  /** One entry per file shipped under `@openpresentation/opf/spec/`. */
@@ -1 +1 @@
1
- export { specFileEntries, specFileKinds, specFilePaths } from './chunk-OZULJBSG.js';
1
+ export { specFileEntries, specFileKinds, specFilePaths } from './chunk-RS5GZ5RW.js';
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { P as Presentation } from './presentation-BMTdX6O1.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-HCTav5Wv.js';
3
- export { a as SchemaName } from './schemas-BYe5y8-i.js';
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';
@@ -1,6 +1,8 @@
1
- import { P as Presentation } from './presentation-BMTdX6O1.js';
2
- import { c as CatalogKind } from './catalogs-HCTav5Wv.js';
3
- import { a as SchemaName, m as JsonSchema } from './schemas-BYe5y8-i.js';
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-GCB6LGJM.js';
2
- import './chunk-BAWLYSUN.js';
3
- import './chunk-GQSK3T7X.js';
4
- import './chunk-TWMRZ43O.js';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpresentation/opf",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Canonical Open Presentation Format schemas, catalogs, TypeScript types, and local validation.",
5
5
  "license": "MIT",
6
6
  "author": "Open Presentation",