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"; import { BarChartBlock } from "./blocks/BarChart"; import { StompBlock } from "./blocks/Stomp"; import { DeviceMockupBlock } from "./blocks/DeviceMockup"; import { ProductShowcaseBlock } from "./blocks/ProductShowcase"; import { PaperCutBlock } from "./blocks/PaperCut"; import { IGIntroBlock } from "./blocks/IGIntro"; import { IGProfileBlock } from "./blocks/IGProfile"; import { IGFeedBlock } from "./blocks/IGFeed"; import { IGStatsBlock } from "./blocks/IGStats"; import { IGFollowCTABlock } from "./blocks/IGFollowCTA"; /** * 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, [ProductShowcaseBlock.id]: ProductShowcaseBlock, [BarChartBlock.id]: BarChartBlock, [StompBlock.id]: StompBlock, [DeviceMockupBlock.id]: DeviceMockupBlock, [PaperCutBlock.id]: PaperCutBlock, [IGIntroBlock.id]: IGIntroBlock, [IGProfileBlock.id]: IGProfileBlock, [IGFeedBlock.id]: IGFeedBlock, [IGStatsBlock.id]: IGStatsBlock, [IGFollowCTABlock.id]: IGFollowCTABlock, }; export const BLOCK_LIST = Object.values(SCENE_BLOCKS); export const getBlock = (id: string): SceneBlock | undefined => SCENE_BLOCKS[id];