@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
@@ -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
  }
@@ -26,7 +26,7 @@
26
26
  "description": "Start at the bottom. Describe the humble beginning, the constraint, the moment before anything had been built. Concrete details — a place, a year, a feeling — earn the audience's investment in what follows.",
27
27
  "instructions": "Humble beginning",
28
28
  "slideType": "text",
29
- "layoutHint": "text-1x-left"
29
+ "layoutHint": "text-1x"
30
30
  },
31
31
  {
32
32
  "id": "inspiration",
@@ -34,7 +34,7 @@
34
34
  "description": "Show the moment the protagonist found their calling. A conversation, a customer, a problem they couldn't unsee. The inspiration is the engine that pushes the rest of the story uphill.",
35
35
  "instructions": "Discover true calling",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "opportunity",
@@ -42,7 +42,7 @@
42
42
  "description": "Reveal the chance the protagonist took. Why this and not something safer? Make the choice visible — opportunities only count when there was something else they passed up to grab them.",
43
43
  "instructions": "Spot golden chance",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "adversity",
@@ -50,7 +50,7 @@
50
50
  "description": "Walk through the hardest stretch. Concrete failures, near-misses, moments of doubt. Resist the temptation to skip past the pain — the audience trusts the win more when the loss was real.",
51
51
  "instructions": "Face hardest struggles",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "overcoming",
@@ -58,7 +58,7 @@
58
58
  "description": "Show how the obstacles got beaten. What changed, what was learned, what hard call was made. The transition from 'rags' to 'riches' should feel earned, not granted.",
59
59
  "instructions": "Surmount tough obstacles",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "impactful-change",
@@ -66,13 +66,13 @@
66
66
  "description": "Describe the moment the world tipped. The customer who said yes, the product that broke through, the metric that turned. One concrete transformation lands harder than a montage.",
67
67
  "instructions": "Alter the status quo",
68
68
  "slideType": "text",
69
- "layoutHint": "text-1x-left"
69
+ "layoutHint": "text-1x"
70
70
  },
71
71
  {
72
72
  "id": "lasting-legacy",
73
73
  "name": "Lasting Legacy",
74
74
  "description": "Close on what the journey means for those who come next. The lesson, the people changed, the work that endures. Leave the audience with a takeaway that outlives the story.",
75
- "layoutHint": "title-left",
75
+ "layoutHint": "title",
76
76
  "instructions": "Create enduring effect",
77
77
  "slideType": "text"
78
78
  }
@@ -25,7 +25,7 @@
25
25
  "description": "Open with a personal experience that establishes why the topic matters to you. Specificity earns intimacy; intimacy earns the audience's permission to be moved.",
26
26
  "instructions": "Share personal experiences to connect with the audience",
27
27
  "slideType": "text",
28
- "layoutHint": "text-1x-left"
28
+ "layoutHint": "text-1x"
29
29
  },
30
30
  {
31
31
  "id": "research-exposition",
@@ -33,7 +33,7 @@
33
33
  "description": "Lay out the scientific or empirical data that backs the premise. Be rigorous but not academic — the audience needs to understand the evidence well enough to defend it later.",
34
34
  "instructions": "Unravel scientific data backing the premise",
35
35
  "slideType": "text",
36
- "layoutHint": "text-1x-left"
36
+ "layoutHint": "text-1x"
37
37
  },
38
38
  {
39
39
  "id": "real-life-anecdote",
@@ -41,7 +41,7 @@
41
41
  "description": "Illustrate the research with a story from the field. Make the abstract finding feel like something that happens to people the audience could imagine being.",
42
42
  "instructions": "Illustrate with stories to make the point relatable",
43
43
  "slideType": "text",
44
- "layoutHint": "text-1x-left"
44
+ "layoutHint": "text-1x"
45
45
  },
46
46
  {
47
47
  "id": "critical-insights",
@@ -49,7 +49,7 @@
49
49
  "description": "Summarize the two or three findings the audience must walk away with. Distill them into language a non-specialist could repeat without distortion.",
50
50
  "instructions": "Summarize key points",
51
51
  "slideType": "text",
52
- "layoutHint": "text-1x-left"
52
+ "layoutHint": "text-1x"
53
53
  },
54
54
  {
55
55
  "id": "break-stereotypes",
@@ -57,7 +57,7 @@
57
57
  "description": "Question redundant norms or beliefs the research undermines. Be specific about what's being challenged so the audience knows what to update.",
58
58
  "instructions": "Question redundant norms and belief systems",
59
59
  "slideType": "text",
60
- "layoutHint": "text-1x-left"
60
+ "layoutHint": "text-1x"
61
61
  },
62
62
  {
63
63
  "id": "empowering-advice",
@@ -65,7 +65,7 @@
65
65
  "description": "Translate the insights into a small, actionable practice. The advice should be doable today, not only next quarter — the goal is movement, not aspiration.",
66
66
  "instructions": "Motivational message to act upon",
67
67
  "slideType": "text",
68
- "layoutHint": "text-1x-left"
68
+ "layoutHint": "text-1x"
69
69
  },
70
70
  {
71
71
  "id": "authenticity",
@@ -73,13 +73,13 @@
73
73
  "description": "Speak honestly about your own struggle with the topic. Vulnerability, used with restraint, is what turns research into a felt truth.",
74
74
  "instructions": "Honest and real communication to demonstrate authenticity",
75
75
  "slideType": "text",
76
- "layoutHint": "text-1x-left"
76
+ "layoutHint": "text-1x"
77
77
  },
78
78
  {
79
79
  "id": "close-with-impact",
80
80
  "name": "Close With Impact",
81
81
  "description": "End on a motivational high — the line, image, or invitation you want to follow the audience out of the room. Close the talk where it began, transformed.",
82
- "layoutHint": "title-left",
82
+ "layoutHint": "title",
83
83
  "instructions": "End on a motivational high",
84
84
  "slideType": "text"
85
85
  }
@@ -39,7 +39,7 @@
39
39
  "id": "answer",
40
40
  "name": "Answer",
41
41
  "description": "Deliver the recommendation in a single sentence, up front. No arguments yet, no caveats — just the conclusion the rest of the deck will defend. This is the apex of the Minto pyramid; everything that follows supports it.",
42
- "layoutHint": "title-left"
42
+ "layoutHint": "title"
43
43
  },
44
44
  {
45
45
  "id": "key-arguments",
@@ -24,7 +24,7 @@
24
24
  "id": "headline",
25
25
  "name": "Headline",
26
26
  "description": "Open with the single most important sentence the audience needs to know — on track, off track, or shifted. The headline replaces 'how's it going' with a clear answer.",
27
- "layoutHint": "title-left",
27
+ "layoutHint": "title",
28
28
  "instructions": "Title & date",
29
29
  "slideType": "text"
30
30
  },
@@ -34,7 +34,7 @@
34
34
  "description": "State the objective for the period and what was promised. One slide, three lines. Frames the rest of the update so progress is read against a clear bar.",
35
35
  "instructions": "Summary/objectives",
36
36
  "slideType": "text",
37
- "layoutHint": "text-1x-left"
37
+ "layoutHint": "text-1x"
38
38
  },
39
39
  {
40
40
  "id": "progress",
@@ -42,7 +42,7 @@
42
42
  "description": "Walk through the actions taken since the last update. Specific, attributable, dated. Avoid effort theater — list outcomes and material moves, not activity for its own sake.",
43
43
  "instructions": "Explain actions taken",
44
44
  "slideType": "text",
45
- "layoutHint": "text-1x-left"
45
+ "layoutHint": "text-1x"
46
46
  },
47
47
  {
48
48
  "id": "results",
@@ -50,7 +50,7 @@
50
50
  "description": "Show the outcomes those actions produced. Metrics, customer signals, decisions made. Keep the comparison crisp — versus plan, versus last period, versus benchmark.",
51
51
  "instructions": "Show outcomes",
52
52
  "slideType": "text",
53
- "layoutHint": "text-1x-left"
53
+ "layoutHint": "text-1x"
54
54
  },
55
55
  {
56
56
  "id": "action-plan",
@@ -58,13 +58,13 @@
58
58
  "description": "Outline the next steps and who owns them. Be specific about the next decision point and what would have to happen to slip the schedule.",
59
59
  "instructions": "Outline next steps",
60
60
  "slideType": "text",
61
- "layoutHint": "text-1x-left"
61
+ "layoutHint": "text-1x"
62
62
  },
63
63
  {
64
64
  "id": "feedback",
65
65
  "name": "Feedback",
66
66
  "description": "Invite the audience to weigh in: where you'd like input, where you need a decision, where help would unblock you. End the update with an open hand, not a closed file.",
67
- "layoutHint": "title-left",
67
+ "layoutHint": "title",
68
68
  "instructions": "Ask for response",
69
69
  "slideType": "text"
70
70
  }
@@ -24,7 +24,7 @@
24
24
  "id": "title",
25
25
  "name": "Title",
26
26
  "description": "Open with a one-line summary statement that captures the recommendation, not the topic. The title slide is the headline of the entire engagement — make it specific enough that someone reading only this slide already understands the position.",
27
- "layoutHint": "title-left",
27
+ "layoutHint": "title",
28
28
  "instructions": "Brief summary sentence",
29
29
  "slideType": "text"
30
30
  },
@@ -39,7 +39,7 @@
39
39
  "description": "Deliver the recommendation in a single sentence. No arguments yet, no caveats. The answer is the apex of the pyramid; the rest of the deck supports it.",
40
40
  "instructions": "A solution in one sentence, no arguments yet",
41
41
  "slideType": "text",
42
- "layoutHint": "text-1x-left"
42
+ "layoutHint": "text-1x"
43
43
  },
44
44
  {
45
45
  "id": "arguments",
@@ -47,7 +47,7 @@
47
47
  "description": "Preview the three top-level arguments that defend the answer. One slide naming all three so the audience knows where the deck is going. Each argument should be a complete claim, not a topic.",
48
48
  "instructions": "Support the solution",
49
49
  "slideType": "text",
50
- "layoutHint": "text-1x-left"
50
+ "layoutHint": "text-1x"
51
51
  },
52
52
  {
53
53
  "id": "argument-1",
@@ -55,7 +55,7 @@
55
55
  "description": "Develop the first argument with supporting data, examples, and reasoning. Lead with the claim, then the evidence — Minto-style. The slide should stand alone if pulled out.",
56
56
  "instructions": "First key point",
57
57
  "slideType": "text",
58
- "layoutHint": "text-1x-left"
58
+ "layoutHint": "text-1x"
59
59
  },
60
60
  {
61
61
  "id": "argument-2",
@@ -63,7 +63,7 @@
63
63
  "description": "Develop the second argument the same way. Vary the type of evidence — quantitative, qualitative, comparative — so the audience hears the case from multiple angles.",
64
64
  "instructions": "Second key point",
65
65
  "slideType": "text",
66
- "layoutHint": "text-1x-left"
66
+ "layoutHint": "text-1x"
67
67
  },
68
68
  {
69
69
  "id": "argument-3",
@@ -71,13 +71,13 @@
71
71
  "description": "Develop the third argument and walk through the supporting process or methodology. This is often where the 'how' lives — the implementation insight that makes the recommendation feel actionable.",
72
72
  "instructions": "Third key point with a process",
73
73
  "slideType": "text",
74
- "layoutHint": "text-1x-left"
74
+ "layoutHint": "text-1x"
75
75
  },
76
76
  {
77
77
  "id": "summary",
78
78
  "name": "Summary",
79
79
  "description": "Recap the answer and arguments in a single slide and point to additional resources. Close with the explicit next step you want the audience to take.",
80
- "layoutHint": "title-left",
80
+ "layoutHint": "title",
81
81
  "instructions": "Recap the answer, provide additional resources",
82
82
  "slideType": "text"
83
83
  }
@@ -55,7 +55,7 @@
55
55
  "id": "ask",
56
56
  "name": "Call to Action",
57
57
  "description": "Close with the single decision you want the audience to make. Frame it as the obvious next move given the shift, the stakes, and the new game. Make it small enough to say yes to today and large enough to start a real engagement.",
58
- "layoutHint": "title-left"
58
+ "layoutHint": "title"
59
59
  }
60
60
  ]
61
61
  }