import type { SceneBlock } from "./types"; import { TitleCardBlock } from "./blocks/TitleCard"; import { CharacterSceneBlock } from "./blocks/CharacterScene"; import { ImageCaptionBlock } from "./blocks/ImageCaption"; import { KineticQuoteBlock } from "./blocks/KineticQuote"; import { SlideshowBlock } from "./blocks/Slideshow"; import { OutroCTABlock } from "./blocks/OutroCTA"; import { LogoRevealBlock } from "./blocks/LogoReveal"; import { StatCounterBlock } from "./blocks/StatCounter"; /** * The scene-block registry. A FlexStory template is an ordered list of these * blocks; new template types = new blocks. Each block declares its editable * fields + duration range (so the studio can clamp per-block, not globally). */ export const SCENE_BLOCKS: Record = { [TitleCardBlock.id]: TitleCardBlock, [CharacterSceneBlock.id]: CharacterSceneBlock, [ImageCaptionBlock.id]: ImageCaptionBlock, [KineticQuoteBlock.id]: KineticQuoteBlock, [SlideshowBlock.id]: SlideshowBlock, [OutroCTABlock.id]: OutroCTABlock, [LogoRevealBlock.id]: LogoRevealBlock, [StatCounterBlock.id]: StatCounterBlock, }; export const BLOCK_LIST = Object.values(SCENE_BLOCKS); export const getBlock = (id: string): SceneBlock | undefined => SCENE_BLOCKS[id];