Slide module exports
The shape the runtime expects from each slides/<id>/index.tsx.
import type { Page, SlideMeta } from '@open-slide/core';
const Cover: Page = () => <div>{/* ... */}</div>;
export const meta: SlideMeta = {
title: 'Cover',
theme: 'dark',
};
export const notes = {
0: 'Open with the analyst quote.',
};
export default [Cover] satisfies Page[];Default export
Page[] — the array of components, in display order. Each component fills
its container; the runtime renders one at a time onto the 1920×1080 canvas.
type Page = ComponentType;meta (optional)
type SlideMeta = {
/** Display title for the deck — used in the slide browser. */
title?: string;
/** UI hint: 'light' inverts the chrome over a light deck. */
theme?: 'light' | 'dark';
};notes (optional)
A map of page index → markdown string. Surfaced in presenter mode.
export const notes: Record<number, string> = {
0: 'Open with a smile.',
3: 'Pause for questions.',
};Imports from @open-slide/core
import {
CANVAS_WIDTH, // 1920
CANVAS_HEIGHT, // 1080
ImagePlaceholder, // sized empty placeholder for layout drafting
} from '@open-slide/core';
import type {
Page,
SlideMeta,
SlideModule,
ImagePlaceholderProps,
} from '@open-slide/core';