v0.4.0
Minor Changes
-
#10
f425776Thanks @RostiMelk! - Framework-level improvements driven by real agent runs.Template.layout— Next.js-style automatic chrome. Templates declare a layout component once; the framework wraps every<Slide>'s children with it. Curated and agent-authored slides share the same chrome (background, logo, footer, safe-zone padding) without any template-specific imports in custom components. Per-slide variation via<Slide layoutProps={{ ... }}>; opt-out via<Slide noLayout>. NewdefineLayout<P>()helper gives template authors typedlayoutProps.Presentation-scale typography.
text-*classes now resolve to projection-readable sizes by default (text-xs= 12pt,text-base= 20pt,text-4xl= 48pt,text-9xl= 96pt). The old web scale (8–72pt) was invisible when projected. Also addstext-role-<name>classes that resolve viatemplate.typographyso agents can pick a role (text-role-title) instead of a size — guaranteeing typographic consistency across a deck.New
slides_previewMCP tool. Renders slide specs to PNG images via SVG + resvg and returns them inline as MCP image content blocks. The agent can visually review its own output and self-correct layout issues. OptionalslideIndicesparameter to preview only specific slides.New
slides_patch_componentMCP tool. Search/replace patches instead of full-file rewrites — saves hundreds of tokens per edit cycle when fixing a className or tweaking a prop. Falls back toslides_edit_componentfor major rewrites.additionalImportAllowlistpackages now get linked into the deck'snode_modulesautomatically. Templates that opt in extras packages (chrome helpers, etc.) are now actually importable from custom components.Module cache fix.
loadDeckTemplatenow cache-busts component imports, not justindex.ts—slides_edit_componentchanges take effect immediately instead of getting masked by stale ESM cache.Plus minor:
slides_listhints whenTemplate.skillis set; harness agent loop passes image content blocks through so vision works onslides_previewoutput.