{
  "name": "live-code-split",
  "type": "registry:block",
  "description": "Code editor with live preview",
  "dependencies": [
    "remotion",
    "@remotion/transitions"
  ],
  "registryDependencies": [
    "code-reveal",
    "device-mockup-zoom",
    "motion-tokens",
    "transition-fade"
  ],
  "composition": {
    "id": "LiveCodeSplit",
    "component": "LiveCodeSplit",
    "durationInFrames": 180,
    "fps": 30,
    "width": 1920,
    "height": 1080,
    "importPath": "@/compositions/live-code-split/index"
  },
  "files": [
    {
      "path": "registry/bases/default/compositions/live-code-split/index.tsx",
      "type": "registry:block",
      "content": "import { AbsoluteFill } from \"remotion\";\nimport { TransitionSeries } from \"@remotion/transitions\";\nimport { transitionFade } from \"@/remotion/primitives/transition-fade\";\nimport { CodeReveal } from \"@/remotion/scenes/code-reveal\";\nimport { DeviceMockupZoom } from \"@/remotion/scenes/device-mockup-zoom\";\nimport { DURATION } from \"@/remotion/lib/motion-tokens\";\n\nconst SAMPLE = `export const Clip = () => (\n  <TitleCard title=\"Live preview\" />\n);`;\n\nconst SCENE_DURATIONS = {\n  code: 90,\n  device: 90,\n} as const;\n\nexport type LiveCodeSplitProps = {\n  code?: string;\n};\n\nexport const LiveCodeSplit: React.FC<LiveCodeSplitProps> = ({\n  code = SAMPLE,\n}) => {\n  const fade = transitionFade({ durationInFrames: DURATION.fast });\n\n  return (\n    <AbsoluteFill style={{ background: \"#080810\" }}>\n      <TransitionSeries>\n        <TransitionSeries.Sequence durationInFrames={SCENE_DURATIONS.code}>\n          <CodeReveal code={code} title=\"Composition.tsx\" />\n        </TransitionSeries.Sequence>\n        <TransitionSeries.Transition {...fade} />\n        <TransitionSeries.Sequence durationInFrames={SCENE_DURATIONS.device}>\n          <DeviceMockupZoom device=\"laptop\" />\n        </TransitionSeries.Sequence>\n      </TransitionSeries>\n    </AbsoluteFill>\n  );\n};\n"
    }
  ],
  "atlas": {
    "lane": "reels",
    "drive": "time",
    "tier": "advanced"
  }
}