@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.
Files changed (70) hide show
  1. package/dist/{catalogs-DoVmvDr7.d.ts → catalogs-atkOF4Vy.d.ts} +2 -2
  2. package/dist/catalogs.d.ts +2 -2
  3. package/dist/catalogs.js +1 -1
  4. package/dist/{chunk-TU7I3KSB.js → chunk-6FU2KICU.js} +306 -306
  5. package/dist/{chunk-ZIL7MGZU.js → chunk-CHKJ4QHQ.js} +223 -73
  6. package/dist/{chunk-EWJNRHXA.js → chunk-EQHZ3ZO4.js} +3 -3
  7. package/dist/{chunk-PQJRDNA6.js → chunk-FTWNWFIV.js} +72 -1
  8. package/dist/{chunk-FHGJX5QK.js → chunk-FWA5XB45.js} +33 -12
  9. package/dist/{chunk-D3GQIREP.js → chunk-GN52EE3P.js} +133 -12
  10. package/dist/composition-Tv9Wm3Oh.d.ts +691 -0
  11. package/dist/composition.d.ts +1 -676
  12. package/dist/composition.js +1 -1
  13. package/dist/docs.js +38 -8
  14. package/dist/examples.d.ts +1 -1
  15. package/dist/index.d.ts +65 -4
  16. package/dist/index.js +204 -6
  17. package/dist/lint.d.ts +3 -3
  18. package/dist/lint.js +5 -5
  19. package/dist/pagination.d.ts +2 -2
  20. package/dist/pagination.js +5 -5
  21. package/dist/{presentation-BMTdX6O1.d.ts → presentation-Ct42Mitb.d.ts} +51 -8
  22. package/dist/repo-readme.js +1 -1
  23. package/dist/{schemas-BYe5y8-i.d.ts → schemas-CiVmUT2p.d.ts} +6 -0
  24. package/dist/schemas.d.ts +1 -1
  25. package/dist/schemas.js +1 -1
  26. package/dist/spec/catalogs/narratives/board-meeting.json +21 -21
  27. package/dist/spec/catalogs/narratives/business-narrative.json +8 -8
  28. package/dist/spec/catalogs/narratives/business-review.json +12 -12
  29. package/dist/spec/catalogs/narratives/capacity-planning.json +8 -8
  30. package/dist/spec/catalogs/narratives/challenge-resolution.json +7 -7
  31. package/dist/spec/catalogs/narratives/classic-story.json +7 -7
  32. package/dist/spec/catalogs/narratives/company-intro.json +9 -9
  33. package/dist/spec/catalogs/narratives/conference-talk.json +1 -1
  34. package/dist/spec/catalogs/narratives/early-startup-pitch.json +12 -12
  35. package/dist/spec/catalogs/narratives/educate.json +9 -9
  36. package/dist/spec/catalogs/narratives/employee-review.json +8 -8
  37. package/dist/spec/catalogs/narratives/failure-analysis.json +10 -10
  38. package/dist/spec/catalogs/narratives/focus.json +12 -12
  39. package/dist/spec/catalogs/narratives/golden-circle.json +1 -1
  40. package/dist/spec/catalogs/narratives/innovation.json +9 -9
  41. package/dist/spec/catalogs/narratives/justice.json +11 -11
  42. package/dist/spec/catalogs/narratives/marketing-strategy.json +11 -11
  43. package/dist/spec/catalogs/narratives/performance-improvement-plan.json +8 -8
  44. package/dist/spec/catalogs/narratives/performance-review.json +11 -11
  45. package/dist/spec/catalogs/narratives/persuade.json +7 -7
  46. package/dist/spec/catalogs/narratives/persuasive-sales.json +8 -8
  47. package/dist/spec/catalogs/narratives/pitch-deck.json +3 -3
  48. package/dist/spec/catalogs/narratives/problem-solution.json +2 -2
  49. package/dist/spec/catalogs/narratives/product-launch.json +10 -10
  50. package/dist/spec/catalogs/narratives/project-proposal.json +10 -10
  51. package/dist/spec/catalogs/narratives/qbr.json +3 -3
  52. package/dist/spec/catalogs/narratives/rags-to-riches.json +7 -7
  53. package/dist/spec/catalogs/narratives/reveal.json +8 -8
  54. package/dist/spec/catalogs/narratives/scqa.json +1 -1
  55. package/dist/spec/catalogs/narratives/status-update.json +6 -6
  56. package/dist/spec/catalogs/narratives/strategic-advisory.json +7 -7
  57. package/dist/spec/catalogs/narratives/strategic-narrative.json +1 -1
  58. package/dist/spec/catalogs/narratives/survey-analysis.json +10 -10
  59. package/dist/spec/catalogs/narratives/survival-story.json +10 -10
  60. package/dist/spec/catalogs/narratives/transformation-arc.json +1 -1
  61. package/dist/spec/catalogs/narratives/trend-analysis.json +7 -7
  62. package/dist/spec/catalogs/narratives/underdog-victory.json +8 -8
  63. package/dist/spec/catalogs/narratives/venture-pitch.json +12 -12
  64. package/dist/spec/catalogs/narratives/weekly-progress.json +10 -10
  65. package/dist/spec/openapi.yaml +5 -0
  66. package/dist/spec/schemas/opf.schema.json +83 -12
  67. package/dist/types.d.ts +3 -3
  68. package/dist/validator.d.ts +7 -4
  69. package/dist/validator.js +4 -4
  70. package/package.json +1 -1
@@ -25,7 +25,7 @@
25
25
  "description": "Open by establishing the product or service this strategy is for, and what window of time it covers. One slide that tells the audience exactly which world they're being asked to weigh in on.",
26
26
  "instructions": "Establish product/service specifics",
27
27
  "slideType": "text",
28
- "layoutHint": "text-1x-left"
28
+ "layoutHint": "text-1x"
29
29
  },
30
30
  {
31
31
  "id": "objective",
@@ -33,7 +33,7 @@
33
33
  "description": "State the marketing goals in measurable terms: revenue, pipeline, awareness, share. Two or three goals, ranked. Goals without ranking get equal energy and equal mediocrity.",
34
34
  "instructions": "Share marketing goals",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "customer",
@@ -41,7 +41,7 @@
41
41
  "description": "Detail the target audience. Segments, jobs-to-be-done, decision criteria, where they live in the buying cycle. Specificity here is the foundation everything else stands on.",
42
42
  "instructions": "Detail target audience",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "market",
@@ -49,7 +49,7 @@
49
49
  "description": "Describe the market landscape: size, growth, segments, behavioral trends. Use external data for credibility and your own research for nuance. Show how the market is changing, not just how big it is.",
50
50
  "instructions": "Discuss market landscape",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "competition",
@@ -57,7 +57,7 @@
57
57
  "description": "Map the competitive set honestly. Direct, indirect, and substitutes. A 2x2 or feature-comparison framework helps; what matters is that the audience trusts your read of the field.",
58
58
  "instructions": "Analyze competitive environment",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "strategy",
@@ -65,7 +65,7 @@
65
65
  "description": "Articulate the marketing approach in one sentence and a single supporting frame. Positioning, primary motion, where you choose to play and not play. Clarity here is what makes the tactics that follow coherent.",
66
66
  "instructions": "Elaborate marketing approach",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "product",
@@ -73,7 +73,7 @@
73
73
  "description": "Highlight the unique value the product brings to the strategy. Lead with the customer outcome; tie it directly back to the customer beat. Avoid feature soup.",
74
74
  "instructions": "Highlight unique value",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "price",
@@ -81,7 +81,7 @@
81
81
  "description": "Justify pricing and packaging. Show the logic — cost-plus, value-based, competitor-anchored — and the levers you'll use over the period. Price decisions are strategy decisions.",
82
82
  "instructions": "Justify pricing strategy",
83
83
  "slideType": "text",
84
- "layoutHint": "text-1x-left"
84
+ "layoutHint": "text-1x"
85
85
  },
86
86
  {
87
87
  "id": "place",
@@ -89,7 +89,7 @@
89
89
  "description": "Describe distribution channels and the role each plays. Direct, partner, marketplace, retail. Channel mix is often where strategies quietly succeed or fail.",
90
90
  "instructions": "Discuss distribution channels",
91
91
  "slideType": "text",
92
- "layoutHint": "text-1x-left"
92
+ "layoutHint": "text-1x"
93
93
  },
94
94
  {
95
95
  "id": "promotion",
@@ -97,13 +97,13 @@
97
97
  "description": "Reveal the campaign and content tactics that bring the strategy to market. Pair each tactic with the audience and metric it serves. Avoid listing channels for their own sake.",
98
98
  "instructions": "Reveal promotional tactics",
99
99
  "slideType": "text",
100
- "layoutHint": "text-1x-left"
100
+ "layoutHint": "text-1x"
101
101
  },
102
102
  {
103
103
  "id": "summary",
104
104
  "name": "Summary",
105
105
  "description": "Recap the strategy in a single page: customer, position, motion, expected outcome. End with the decision or commitment you need from the audience.",
106
- "layoutHint": "title-left",
106
+ "layoutHint": "title",
107
107
  "instructions": "Recap key points",
108
108
  "slideType": "text"
109
109
  }
@@ -25,7 +25,7 @@
25
25
  "description": "Begin respectfully and set a constructive tone. Be clear about what this conversation is and isn't. The opening shouldn't catastrophize or sugarcoat — clarity is kinder than either.",
26
26
  "instructions": "Begin respectfully and positively",
27
27
  "slideType": "text",
28
- "layoutHint": "text-1x-left"
28
+ "layoutHint": "text-1x"
29
29
  },
30
30
  {
31
31
  "id": "set-expectations",
@@ -33,7 +33,7 @@
33
33
  "description": "Detail the level of performance expected in the role. Specific behaviors, deliverables, and standards. Expectations the employee can't quote back are expectations they can't meet.",
34
34
  "instructions": "Detail desired performance",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "identify-problems",
@@ -41,7 +41,7 @@
41
41
  "description": "Name the gap between expected and observed performance. Use specific examples and dates rather than impressions. Avoid characterizing the person; focus on the work product and the impact.",
42
42
  "instructions": "Highlight struggles and weaknesses",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "possible-solutions",
@@ -49,7 +49,7 @@
49
49
  "description": "Suggest improvement strategies tailored to the gaps named above. Behavior changes, structural changes, support structures. Frame them as paths the employee can choose, not orders to follow.",
50
50
  "instructions": "Suggest improvement strategies",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "offer-resources",
@@ -57,7 +57,7 @@
57
57
  "description": "Make explicit what tools, coaching, training, or peer support is available. Resources demonstrate that the organization is investing in the outcome, not setting the employee up to fail.",
58
58
  "instructions": "Propose help and tools",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "motivate-change",
@@ -65,7 +65,7 @@
65
65
  "description": "Connect improvement to what the employee values: their growth, their team, their career. Inspire action without minimizing the seriousness of the situation.",
66
66
  "instructions": "Inspire improvement action",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "follow-up",
@@ -73,13 +73,13 @@
73
73
  "description": "Schedule the check-ins. Frequency, format, criteria for progress. Predictable follow-up turns a PIP from a threat into a plan.",
74
74
  "instructions": "Schedule progress check-ins",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "conclusion",
80
80
  "name": "Conclusion",
81
81
  "description": "Close with confidence in the path forward and a clear restatement of what success looks like. End the meeting having both raised the bar and reaffirmed the relationship.",
82
- "layoutHint": "title-left",
82
+ "layoutHint": "title",
83
83
  "instructions": "Encourage and remind success",
84
84
  "slideType": "text"
85
85
  }
@@ -23,7 +23,7 @@
23
23
  "id": "briefing",
24
24
  "name": "Briefing",
25
25
  "description": "Frame what this review covers: the period, the unit, the standard you're measuring against. One slide that lets the audience know exactly what they're being asked to evaluate.",
26
- "layoutHint": "title-center",
26
+ "layoutHint": "title",
27
27
  "instructions": "Outline presentation objective",
28
28
  "slideType": "text"
29
29
  },
@@ -33,7 +33,7 @@
33
33
  "description": "Lead with the headline result. On track, ahead, or behind, and by how much. Resist softening — clear numbers up front earn credibility for the analysis that follows.",
34
34
  "instructions": "Summarize performance findings",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "key-metrics",
@@ -41,7 +41,7 @@
41
41
  "description": "Walk through the pivotal indicators. One chart per metric, clear comparison period, target or benchmark visible on the same frame. Help the audience see the data the way you do.",
42
42
  "instructions": "Review pivotal indicators",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "team-performance",
@@ -49,7 +49,7 @@
49
49
  "description": "Examine collective achievements and how the team contributed. Avoid generic praise; cite specific moves and the people behind them where the audience would expect it.",
50
50
  "instructions": "Examine collective achievements",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "highlight",
@@ -57,7 +57,7 @@
57
57
  "description": "Spotlight one standout contribution that defined the period. A landmark deal, a launch, a fix, a hire. One vivid example sticks longer than a list of accomplishments.",
58
58
  "instructions": "Show key contribution",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "analysis",
@@ -65,7 +65,7 @@
65
65
  "description": "Dig under the metrics. What drove the numbers, what held them back, what's signal versus noise. Analysis is where the audience learns whether you actually understand the system you're reporting on.",
66
66
  "instructions": "Uncover data insights",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "success",
@@ -73,7 +73,7 @@
73
73
  "description": "Reinforce the past triumphs that show the system works. Briefly — the audience came for what's next, not a victory lap. Wins earn permission for the harder slides ahead.",
74
74
  "instructions": "Reinforce past triumphs",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "challenges",
@@ -81,7 +81,7 @@
81
81
  "description": "Name the obstacles encountered honestly. What didn't move, what regressed, what the team is still wrestling with. Understated challenges read as missed signal, not modesty.",
82
82
  "instructions": "Highlight encountered obstacles",
83
83
  "slideType": "text",
84
- "layoutHint": "text-1x-left"
84
+ "layoutHint": "text-1x"
85
85
  },
86
86
  {
87
87
  "id": "adjustments",
@@ -89,7 +89,7 @@
89
89
  "description": "Identify the changes you're making in response. New tactics, reallocations, sunsets. Each adjustment should map to a challenge above — adjustments without diagnosis feel arbitrary.",
90
90
  "instructions": "Identify necessary changes",
91
91
  "slideType": "text",
92
- "layoutHint": "text-1x-left"
92
+ "layoutHint": "text-1x"
93
93
  },
94
94
  {
95
95
  "id": "strategy-evolution",
@@ -97,13 +97,13 @@
97
97
  "description": "Show how the strategy itself evolves heading into the next period. Refinements, sharpened bets, dropped initiatives. The audience should see continuity as well as change.",
98
98
  "instructions": "Plan for improvement",
99
99
  "slideType": "text",
100
- "layoutHint": "text-1x-left"
100
+ "layoutHint": "text-1x"
101
101
  },
102
102
  {
103
103
  "id": "discussion",
104
104
  "name": "Discussion",
105
105
  "description": "Open the floor with two or three specific prompts. End the review actively — questions you want answered, decisions you want made — so the meeting yields more than the deck.",
106
- "layoutHint": "title-left",
106
+ "layoutHint": "title",
107
107
  "instructions": "Promote active discourse",
108
108
  "slideType": "text"
109
109
  }
@@ -25,7 +25,7 @@
25
25
  "description": "Open with a moment, image, or claim the audience can't easily look away from. The first sixty seconds buy you the next twenty minutes — spend them on something specific and emotionally charged, not on housekeeping.",
26
26
  "instructions": "Draw in the audience with a compelling opener",
27
27
  "slideType": "text",
28
- "layoutHint": "text-1x-left"
28
+ "layoutHint": "text-1x"
29
29
  },
30
30
  {
31
31
  "id": "challenge-status-quo",
@@ -43,7 +43,7 @@
43
43
  "description": "Anchor the issue in a specific person, place, or moment. Story is what gets the argument past the audience's defenses. Pick a story that personalizes the data without overstating it.",
44
44
  "instructions": "Share significant stories to illuminate the issue",
45
45
  "slideType": "text",
46
- "layoutHint": "text-1x-left"
46
+ "layoutHint": "text-1x"
47
47
  },
48
48
  {
49
49
  "id": "statistic-shock",
@@ -51,7 +51,7 @@
51
51
  "description": "Drop in a single statistic that recasts the scale of the problem. One number, presented well, lands harder than a dashboard. Cite the source so the audience can repeat it with confidence.",
52
52
  "instructions": "Use impactful stats to highlight the gravity of the issue",
53
53
  "slideType": "text",
54
- "layoutHint": "text-1x-left"
54
+ "layoutHint": "text-1x"
55
55
  },
56
56
  {
57
57
  "id": "historical-context",
@@ -59,7 +59,7 @@
59
59
  "description": "Show how the issue evolved. Why it has the shape it does today, what was tried, what was missed. Historical context turns 'this is broken' into 'this stayed broken for these reasons.'",
60
60
  "instructions": "Show the evolution or history of the issue",
61
61
  "slideType": "text",
62
- "layoutHint": "text-1x-left"
62
+ "layoutHint": "text-1x"
63
63
  },
64
64
  {
65
65
  "id": "weave-narrative",
@@ -72,7 +72,7 @@
72
72
  "description": "Deliver the surprising or significant turn. The fact, finding, or reframing the rest of the talk has been earning. The revelation should redirect, not merely confirm.",
73
73
  "instructions": "Deliver a surprising or significant discovery",
74
74
  "slideType": "text",
75
- "layoutHint": "text-1x-left"
75
+ "layoutHint": "text-1x"
76
76
  },
77
77
  {
78
78
  "id": "propose-solution",
@@ -80,13 +80,13 @@
80
80
  "description": "Advocate for the change you want. Concrete enough to be acted on, broad enough to inspire. Pair the solution with the smallest credible first step.",
81
81
  "instructions": "Advocate for change or propose an actionable solution",
82
82
  "slideType": "text",
83
- "layoutHint": "text-1x-left"
83
+ "layoutHint": "text-1x"
84
84
  },
85
85
  {
86
86
  "id": "final-question",
87
87
  "name": "Final Question",
88
88
  "description": "Close on a question rather than a summary. The right closing question follows the audience out of the room and into their conversations afterward.",
89
- "layoutHint": "title-left",
89
+ "layoutHint": "title",
90
90
  "instructions": "Finish with a thought-provoking question to stimulate audience thinking",
91
91
  "slideType": "text"
92
92
  }
@@ -25,7 +25,7 @@
25
25
  "description": "Open with a brief framing of who you are and why this conversation is worth the prospect's next thirty minutes. Keep credentials short; the audience cares about their problem, not your résumé.",
26
26
  "instructions": "Name & logo",
27
27
  "slideType": "text",
28
- "layoutHint": "text-1x-left"
28
+ "layoutHint": "text-1x"
29
29
  },
30
30
  {
31
31
  "id": "big-change",
@@ -33,7 +33,7 @@
33
33
  "description": "Name the market shift the prospect's industry is living through. Make it concrete, recent, and undeniable. The change — not the product — is the reason they should care.",
34
34
  "instructions": "Highlight market shift",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "response-to-change",
@@ -41,7 +41,7 @@
41
41
  "description": "Show how the change is creating winners and losers in the prospect's space. Use named examples where you can. The goal is for the prospect to wonder which side they'll end up on.",
42
42
  "instructions": "Show winners & losers",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "benefits",
@@ -49,7 +49,7 @@
49
49
  "description": "Paint the outcome a winner experiences: a vivid picture of the prospect's life on the other side of the change. Lead with what changes for them, not with what your product does.",
50
50
  "instructions": "Describe benefits, paint a vivid picture",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "capabilities",
@@ -57,7 +57,7 @@
57
57
  "description": "Reveal the unique capabilities that make those outcomes possible. Frame them as the 'magic gifts' the prospect needs to win the new game. Highlight what's structurally different from the alternatives.",
58
58
  "instructions": "Present unique features as 'magic gifts' to the customer",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "evidence",
@@ -65,13 +65,13 @@
65
65
  "description": "Share customer testimonials, case studies, and measurable outcomes from organizations like the prospect's. Pick evidence that maps to the benefits you promised, not generic logos.",
66
66
  "instructions": "Share testimonials",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "call-to-action",
72
72
  "name": "Call to Action",
73
73
  "description": "Ask for the next step in the sales process. Be specific: a pilot, a workshop, a follow-on conversation with a named stakeholder. Make the smallest credible commitment that keeps momentum.",
74
- "layoutHint": "title-left",
74
+ "layoutHint": "title",
75
75
  "instructions": "Encourage decision-making",
76
76
  "slideType": "text"
77
77
  },
@@ -79,7 +79,7 @@
79
79
  "id": "close",
80
80
  "name": "Close",
81
81
  "description": "Close with a final image and contact path. Leave the prospect with one line about why they're better off acting now than later, and clear instructions for how to engage.",
82
- "layoutHint": "title-left",
82
+ "layoutHint": "title",
83
83
  "instructions": "Logo & contact info",
84
84
  "slideType": "text"
85
85
  }
@@ -24,7 +24,7 @@
24
24
  "id": "opening",
25
25
  "name": "Opening",
26
26
  "description": "Open with the company name, logo, and a one-line tagline that doubles as a positioning statement. Set the visual tone for the deck. Keep it confident and uncluttered — this is the cover.",
27
- "layoutHint": "title-left"
27
+ "layoutHint": "title"
28
28
  },
29
29
  {
30
30
  "id": "purpose",
@@ -95,13 +95,13 @@
95
95
  "id": "ask",
96
96
  "name": "The Ask",
97
97
  "description": "State the round size, intended use of funds, and what milestones the capital takes you to. Be specific — investors should leave knowing exactly what you want and what they get.",
98
- "layoutHint": "title-left"
98
+ "layoutHint": "title"
99
99
  },
100
100
  {
101
101
  "id": "closing",
102
102
  "name": "Closing",
103
103
  "description": "Close on a strong final image: logo, contact info, and the one line you most want the investor to remember. Leave space for the conversation that follows.",
104
- "layoutHint": "title-left"
104
+ "layoutHint": "title"
105
105
  }
106
106
  ]
107
107
  }
@@ -24,7 +24,7 @@
24
24
  "id": "hook",
25
25
  "name": "Hook",
26
26
  "description": "Open with a striking question, statistic, customer quote, or moment that earns the audience's attention. The goal is to make them want to hear what comes next, not to convey information.",
27
- "layoutHint": "title-center"
27
+ "layoutHint": "title"
28
28
  },
29
29
  {
30
30
  "id": "problem",
@@ -55,7 +55,7 @@
55
55
  "id": "ask",
56
56
  "name": "The Ask",
57
57
  "description": "State a clear, specific call to action. What do you want the audience to do, decide, or commit to next? Make the smallest credible ask that moves things forward, and make it unambiguous.",
58
- "layoutHint": "title-left"
58
+ "layoutHint": "title"
59
59
  }
60
60
  ]
61
61
  }
@@ -24,7 +24,7 @@
24
24
  "id": "opening",
25
25
  "name": "Opening",
26
26
  "description": "Open with the company brand and a confident visual. Set the tone — this is a moment, not a meeting. One slide that signals the audience is somewhere worth being.",
27
- "layoutHint": "title-left",
27
+ "layoutHint": "title",
28
28
  "instructions": "Show company branding",
29
29
  "slideType": "text"
30
30
  },
@@ -34,7 +34,7 @@
34
34
  "description": "Hook the audience with the promise of the talk. Tell them, in one sentence, what they're about to see and why it matters to them. Specific promises buy patient audiences.",
35
35
  "instructions": "Hook the audience",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "context",
@@ -42,7 +42,7 @@
42
42
  "description": "Set the stage with the world the product enters. The customer reality, the market state, the unmet expectation. Context turns the launch from a product release into a moment in a larger story.",
43
43
  "instructions": "Set the stage",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "conflict",
@@ -50,7 +50,7 @@
50
50
  "description": "Introduce the villain — the problem, friction, or status quo the product opposes. Make the conflict concrete enough that the audience can name a moment they've felt it themselves.",
51
51
  "instructions": "Introduce villain/problem",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "stakes",
@@ -58,7 +58,7 @@
58
58
  "description": "Emphasize what's at risk if the conflict isn't resolved. Quantify, personalize, dramatize. Stakes are what convert a curious audience into an invested one.",
59
59
  "instructions": "Emphasize importance",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "reveal",
@@ -66,7 +66,7 @@
66
66
  "description": "Showcase the product. One striking visual, one defining capability, one sentence that captures what's new. Earn the applause line; don't bury it under a bullet list.",
67
67
  "instructions": "Showcase the solution",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "raise-stakes",
@@ -74,7 +74,7 @@
74
74
  "description": "Highlight where the alternatives fall short and what they cost the customer. Re-energize the room midway by sharpening the contrast with the reveal.",
75
75
  "instructions": "Highlight shortcomings of alternatives",
76
76
  "slideType": "text",
77
- "layoutHint": "text-1x-left"
77
+ "layoutHint": "text-1x"
78
78
  },
79
79
  {
80
80
  "id": "raise-stakes-again",
@@ -82,7 +82,7 @@
82
82
  "description": "Reinforce why change is non-negotiable now. A second beat of stakes, framed differently — perhaps a customer voice or a future cost. Cement the reason to act.",
83
83
  "instructions": "Reinforce the need for change",
84
84
  "slideType": "text",
85
- "layoutHint": "text-1x-left"
85
+ "layoutHint": "text-1x"
86
86
  },
87
87
  {
88
88
  "id": "sell",
@@ -90,13 +90,13 @@
90
90
  "description": "Make the audience want the product. Lead with the outcome it produces in their lives. Pricing, packaging, availability go here, but only after the desire is built.",
91
91
  "instructions": "Make them want your solution",
92
92
  "slideType": "text",
93
- "layoutHint": "text-1x-left"
93
+ "layoutHint": "text-1x"
94
94
  },
95
95
  {
96
96
  "id": "cta",
97
97
  "name": "Call to Action",
98
98
  "description": "Close with the single action you want from the audience. Pre-order, sign up, attend, share. Make it simple, specific, and immediate.",
99
- "layoutHint": "title-left",
99
+ "layoutHint": "title",
100
100
  "instructions": "Inspire action",
101
101
  "slideType": "text"
102
102
  }
@@ -26,7 +26,7 @@
26
26
  "description": "Open with the proposal in one slide: the project name, the audience, the goal, and the headline benefit. If a sponsor reads only this slide, they should still know what they're being asked to approve.",
27
27
  "instructions": "Audience hook & objectives",
28
28
  "slideType": "text",
29
- "layoutHint": "text-1x-left"
29
+ "layoutHint": "text-1x"
30
30
  },
31
31
  {
32
32
  "id": "problem-statement",
@@ -34,7 +34,7 @@
34
34
  "description": "Articulate the problem this project solves and why it deserves resources now. Tie it to a known business goal or pain. Vague problems produce vague approvals.",
35
35
  "instructions": "Highlight struggles & project necessity",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "core-concept",
@@ -42,7 +42,7 @@
42
42
  "description": "Describe the central idea of the project in plain language. The 'what' before the 'how.' A reader should be able to repeat the concept in one sentence after this slide.",
43
43
  "instructions": "Share actionable idea",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "benefits",
@@ -50,7 +50,7 @@
50
50
  "description": "Quantify the impact: revenue, cost, risk, customer, capability. Use numbers where possible and clear comparisons where not. Each benefit should map to a metric the sponsor cares about.",
51
51
  "instructions": "Spotlight key metrics",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "justification",
@@ -58,7 +58,7 @@
58
58
  "description": "Connect the project to broader strategy, OKRs, or constraints the audience already cares about. Show why this project is more important than the alternatives competing for the same resources.",
59
59
  "instructions": "Strategic alignment & significance",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "approach",
@@ -66,7 +66,7 @@
66
66
  "description": "Lay out how the project will be executed: the solution, the team shape, the budget envelope. Enough detail to feel credible, not so much that it pre-commits to choices that will mature in flight.",
67
67
  "instructions": "Solution, resources, & budget",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "timeline",
@@ -74,7 +74,7 @@
74
74
  "description": "Show the project phases on a timeline, with major milestones and decision points marked. Sponsors are buying a sequence of bets, not a single launch — make those bets visible.",
75
75
  "instructions": "Outline project phases",
76
76
  "slideType": "text",
77
- "layoutHint": "text-1x-left"
77
+ "layoutHint": "text-1x"
78
78
  },
79
79
  {
80
80
  "id": "risks",
@@ -82,7 +82,7 @@
82
82
  "description": "Name the top risks honestly and pair each with a mitigation or open question. Listing risks without mitigations signals you haven't thought it through; hiding risks signals worse.",
83
83
  "instructions": "Consider potential challenges",
84
84
  "slideType": "text",
85
- "layoutHint": "text-1x-left"
85
+ "layoutHint": "text-1x"
86
86
  },
87
87
  {
88
88
  "id": "outlook",
@@ -90,13 +90,13 @@
90
90
  "description": "Paint the picture of what the organization looks like a quarter or year after the project ships. Stretch beyond the immediate deliverable to the second-order benefits.",
91
91
  "instructions": "Envision project impact",
92
92
  "slideType": "text",
93
- "layoutHint": "text-1x-left"
93
+ "layoutHint": "text-1x"
94
94
  },
95
95
  {
96
96
  "id": "wrap-up",
97
97
  "name": "Wrap Up",
98
98
  "description": "Recap the proposal and state the specific decision you're asking for: approval, budget, headcount, sponsorship. Make it easy to say yes today.",
99
- "layoutHint": "title-left",
99
+ "layoutHint": "title",
100
100
  "instructions": "Summarize & persuade",
101
101
  "slideType": "text"
102
102
  }
@@ -23,7 +23,7 @@
23
23
  "id": "objectives",
24
24
  "name": "Objectives",
25
25
  "description": "Open with what this review is for and what decisions you want out of it. Frame the scope and the hour ahead, so the audience knows what they're being asked to weigh in on.",
26
- "layoutHint": "title-center",
26
+ "layoutHint": "title",
27
27
  "instructions": "Set the expectations",
28
28
  "slideType": "text"
29
29
  },
@@ -53,7 +53,7 @@
53
53
  "description": "Name the misses and headwinds honestly. What didn't work, what's still hard, what got harder. Pretending things are fine costs more credibility than acknowledging they aren't.",
54
54
  "instructions": "Address difficulties",
55
55
  "slideType": "text",
56
- "layoutHint": "text-1x-left"
56
+ "layoutHint": "text-1x"
57
57
  },
58
58
  {
59
59
  "id": "insights",
@@ -79,7 +79,7 @@
79
79
  "id": "asks",
80
80
  "name": "Asks",
81
81
  "description": "Specific, named requests of the audience. Decisions needed, resources required, escalations to unblock. End with clarity on what happens next and who owns it.",
82
- "layoutHint": "title-left"
82
+ "layoutHint": "title"
83
83
  }
84
84
  ]
85
85
  }