Files
flatrender/services/remotion/src/scenes/registry.ts
T

49 lines
2.1 KiB
TypeScript
Raw Normal View History

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<string, SceneBlock> = {
[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];