{
  "name": "transition-slide",
  "type": "registry:ui",
  "description": "Slide transition helper for TransitionSeries",
  "dependencies": [
    "remotion",
    "@remotion/transitions"
  ],
  "registryDependencies": [
    "transition-timing"
  ],
  "files": [
    {
      "path": "registry/bases/default/primitives/transition-slide.tsx",
      "type": "registry:ui",
      "content": "import { slide } from \"@remotion/transitions/slide\";\nimport {\n  resolveTransitionTiming,\n  type TransitionVariant,\n} from \"@/remotion/lib/transition-timing\";\n\nexport type SlideDirection =\n  | \"from-left\"\n  | \"from-right\"\n  | \"from-top\"\n  | \"from-bottom\";\n\nexport type TransitionSlideConfig = {\n  durationInFrames?: number;\n  direction?: SlideDirection;\n  variant?: TransitionVariant;\n};\n\n/** Slide transition config for use with TransitionSeries.Transition */\nexport function transitionSlide({\n  durationInFrames = 22,\n  direction = \"from-left\",\n  variant = \"editorial\",\n}: TransitionSlideConfig = {}) {\n  return {\n    presentation: slide({ direction }),\n    timing: resolveTransitionTiming({ durationInFrames, variant }),\n  };\n}\n\n/** Total overlap frames consumed by a slide transition */\nexport function getTransitionSlideDuration(\n  config: TransitionSlideConfig = {},\n  fps: number,\n): number {\n  return transitionSlide(config).timing.getDurationInFrames({ fps });\n}\n"
    }
  ],
  "atlas": {
    "lane": "cuts",
    "drive": "time",
    "tier": "core"
  }
}