{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "masked-gradient-headline",
  "type": "registry:component",
  "title": "Masked gradient headline",
  "description": "A gradient text headline that wipes in from left to right with a clip path reveal when it scrolls into view. Accepts any children as the heading text.",
  "dependencies": [
    "motion"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/premium/masked-gradient-headline.tsx",
      "type": "registry:ui",
      "target": "components/ui/masked-gradient-headline.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { motion, useReducedMotion } from \"motion/react\"\nimport { cn } from \"@/lib/utils\"\n\nfunction MaskedGradientHeadline({\n  children = \"Details that make it feel inevitable.\",\n  className,\n}: {\n  children?: React.ReactNode\n  className?: string\n}) {\n  const reduce = useReducedMotion()\n  return (\n    <motion.h2\n      data-slot=\"masked-gradient-headline\"\n      data-tier=\"premium\"\n      initial={reduce ? false : { clipPath: \"inset(0 100% 0 0)\" }}\n      whileInView={{ clipPath: \"inset(0 0% 0 0)\" }}\n      viewport={{ once: true, amount: 0.6 }}\n      transition={{ duration: 0.85, ease: [0.22, 1, 0.36, 1] }}\n      className={cn(\n        \"text-4xl font-medium tracking-[-0.030em] sm:text-5xl\",\n        \"bg-[linear-gradient(100deg,var(--fg)_0%,var(--accent)_60%,var(--accent-2)_100%)]\",\n        \"bg-clip-text text-transparent\",\n        className\n      )}\n    >\n      {children}\n    </motion.h2>\n  )\n}\nexport { MaskedGradientHeadline }\n"
    }
  ]
}
