import { Composition } from "remotion";
import { ASPECTS } from "./lib/aspect";
import { TEMPLATES } from "./templates";
import { Three3DTest } from "./compositions/Three3DTest";
import { AssetSheet } from "./compositions/AssetSheet";
import { StoryScenes, STORY_SCENES_DURATION } from "./compositions/StoryScenes";
import { FlexStory, flexStorySchema, flexStoryDefaults, calcFlexStoryMetadata } from "./compositions/FlexStory";
import { LogoMotion3D, logoMotion3DSchema, logoMotion3DDefaults } from "./compositions/LogoMotion3D";
import { CHARACTER_JOURNEY } from "./scenes/presets";
import {
IlluminatedCircles,
illuminatedCirclesSchema,
} from "./compositions/IlluminatedCircles";
import {
KineticQuote,
kineticQuoteSchema,
} from "./compositions/KineticQuote";
import {
GradientPromo,
gradientPromoSchema,
} from "./compositions/GradientPromo";
import {
VerticalStory,
verticalStorySchema,
} from "./compositions/VerticalStory";
const FPS = 30;
export const RemotionRoot: React.FC = () => {
return (
<>
{/* Logo intro — 16:9 */}
{/* Kinetic typography quote — 1:1 social */}
{/* Marketing / sale promo — 16:9 */}
{/* Vertical social story — 9:16 */}
{/* Tech/3D logo motion — quality-preview composition */}
{ASPECTS.map((a) => (
))}
{/* 3D feasibility test */}
{/* Dev preview: vendored CC0 character library (not a customer template) */}
{/* 2.5D story scenes proof (Three.js room + flat CC0 characters) — dev preview */}
{ASPECTS.map((a) => (
))}
{/* FlexStory — the scene engine: an ordered list of editable scene blocks,
duration computed dynamically from the per-scene durations. */}
{ASPECTS.map((a) => (
))}
{/* CharacterJourney — pilot template: a curated FlexStory scene list (theme + story). */}
{ASPECTS.map((a) => (
))}
{/* Branded templates — each registered in all three aspects. A template may
supply a dedicated component per aspect (componentsByAspect) when its
design differs structurally; otherwise the shared `component` adapts
responsively. */}
{TEMPLATES.flatMap((tpl) =>
ASPECTS.map((a) => (
))
)}
>
);
};