{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "scroll-reveal",
  "type": "registry:component",
  "title": "Scroll reveal",
  "description": "A React wrapper that slides its children up into place once they scroll into view, with configurable offset and delay. Renders still for reduced motion.",
  "dependencies": [
    "motion"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/premium/scroll-reveal.tsx",
      "type": "registry:ui",
      "target": "components/ui/scroll-reveal.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { motion, useReducedMotion } from \"motion/react\"\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollReveal({\n  children,\n  className,\n  y = 18,\n  delay = 0,\n}: {\n  children: React.ReactNode\n  className?: string\n  y?: number\n  delay?: number\n}) {\n  const reduce = useReducedMotion()\n  return (\n    <motion.div\n      data-slot=\"scroll-reveal\"\n      data-tier=\"premium\"\n      initial={reduce ? false : { y }}\n      whileInView={{ y: 0 }}\n      viewport={{ once: true, amount: 0.35 }}\n      transition={{ duration: 0.55, delay, ease: [0.22, 1, 0.36, 1] }}\n      className={cn(className)}\n    >\n      {children}\n    </motion.div>\n  )\n}\nexport { ScrollReveal }\n"
    }
  ]
}
