{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "shimmer-button",
  "title": "Shimmer Button",
  "description": "Button with a light sheen that sweeps across its surface.",
  "dependencies": [
    "@vllnt/ui@^0.2.1"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/shimmer-button/shimmer-button.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@vllnt/ui\";\n\n/** Props for {@link ShimmerButton}. */\nexport type ShimmerButtonProps = React.ComponentPropsWithoutRef<\"button\"> & {\n  /** Seconds for one shimmer sweep across the button. Defaults to `2`. */\n  shimmerDuration?: number;\n};\n\n/**\n * Button with a light sheen that sweeps across its surface on a loop.\n *\n * Respects `prefers-reduced-motion`: the sheen stays parked off-screen.\n *\n * @example\n * ```tsx\n * <ShimmerButton>Get started</ShimmerButton>\n * ```\n */\nexport const ShimmerButton = ({\n  children,\n  className,\n  ref,\n  shimmerDuration = 2,\n  ...props\n}: ShimmerButtonProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n  return (\n    <button\n      className={cn(\n        \"relative inline-flex items-center justify-center overflow-hidden rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n        className,\n      )}\n      ref={ref}\n      type=\"button\"\n      {...props}\n    >\n      <span\n        aria-hidden=\"true\"\n        className=\"pointer-events-none absolute inset-0 -translate-x-full animate-shimmer motion-reduce:animate-none\"\n        style={{\n          animationDuration: `${shimmerDuration}s`,\n          background:\n            \"linear-gradient(90deg, transparent, oklch(var(--primary-foreground) / 0.4), transparent)\",\n        }}\n      />\n      <span className=\"relative z-10 inline-flex items-center gap-2\">\n        {children}\n      </span>\n    </button>\n  );\n};\nShimmerButton.displayName = \"ShimmerButton\";\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component",
  "version": "0.2.1",
  "stability": "stable"
}
