<3/products/personal-site/remotion/

registry.tsx

import type { ComponentType } from "react";
import { AvatarOrbit } from "./scenes/AvatarOrbit";
import { CapTable } from "./scenes/CapTable";
import { CapTableTabs } from "./scenes/CapTableTabs";

// Maps scene id → its composition component. Imports the actual React
// components, so this is consumed only where the component is needed: the
// Remotion Root (bundled for Studio/render) and the client-side Player embeds.
// Server-only code (the exporter) reads scenes.meta.ts instead.

// eslint-disable-next-line @typescript-eslint/no-explicit-any
const components: Record<string, ComponentType<any>> = {
  "avatar-orbit": AvatarOrbit,
  "cap-table": CapTable,
  "cap-table-tabs": CapTableTabs,
};

export function getSceneComponent(id: string) {
  const component = components[id];
  if (!component) throw new Error(`Unknown scene id: ${id}`);
  return component;
}