{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "shimmer-text",
  "title": "Shimmer Text",
  "description": "Text with a bright light band that sweeps across it.",
  "dependencies": [
    "@vllnt/ui@^0.2.1"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/shimmer-text/shimmer-text.tsx",
      "content": "import * as React from \"react\";\n\nimport { cn } from \"@vllnt/ui\";\n\n/** Props for {@link ShimmerText}. */\nexport type ShimmerTextProps = React.ComponentPropsWithoutRef<\"span\"> & {\n  /** Content shown muted with a bright band passing across it. */\n  children: React.ReactNode;\n  /** Seconds for one light-band pass. Defaults to `3`. */\n  duration?: number;\n};\n\n/**\n * Muted text with a brighter light band that sweeps across on a loop.\n *\n * Respects `prefers-reduced-motion`: the band holds still.\n *\n * @example\n * ```tsx\n * <ShimmerText>Loading your workspace</ShimmerText>\n * ```\n */\nexport const ShimmerText = ({\n  children,\n  className,\n  duration = 3,\n  ref,\n  style,\n  ...props\n}: ShimmerTextProps & { ref?: React.Ref<HTMLSpanElement> }) => {\n  return (\n    <span\n      className={cn(\"relative inline-block text-muted-foreground\", className)}\n      ref={ref}\n      {...props}\n    >\n      {children}\n      <span\n        aria-hidden=\"true\"\n        className=\"absolute inset-0 animate-[vllnt-text-shimmer_linear_infinite] bg-clip-text text-transparent motion-reduce:animate-none\"\n        style={{\n          animationDuration: `${duration}s`,\n          background:\n            \"linear-gradient(90deg, transparent 0%, oklch(var(--foreground)) 50%, transparent 100%)\",\n          backgroundSize: \"200% auto\",\n          ...style,\n        }}\n      >\n        {children}\n      </span>\n    </span>\n  );\n};\nShimmerText.displayName = \"ShimmerText\";\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component",
  "version": "0.2.1",
  "stability": "stable"
}
