{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "rise-button",
  "title": "Rise Button",
  "description": "A button with a rising overlay animation on hover.",
  "files": [
    {
      "path": "components/library/rise-button.tsx",
      "content": "\n\nimport React, { forwardRef } from 'react'\n\nexport interface RiseButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children?: React.ReactNode\n  size?: 'sm' | 'md' | 'lg'\n  variant?: 'primary' | 'destructive' | 'outline' | 'ghost' | 'square'\n}\n\nconst sizeClasses: Record<NonNullable<RiseButtonProps['size']>, string> = {\n  sm: 'px-3 py-2 text-sm',\n  md: 'px-6 py-3 text-sm',\n  lg: 'px-8 py-4 text-base',\n}\n\nconst variantClasses: Record<NonNullable<RiseButtonProps['variant']>, string> = {\n  primary: 'bg-amber-500 text-white',\n  destructive: 'bg-red-600 text-white',\n  outline: 'bg-transparent text-amber-600 border border-amber-500',\n  ghost: 'bg-transparent text-amber-600',\n  square: 'bg-amber-500 text-white',\n}\n\nexport const RiseButton = forwardRef<HTMLButtonElement, RiseButtonProps>(\n  ({ children = 'Rise Button', size = 'md', variant = 'primary', className = '', ...rest }, ref) => {\n    const overlayClass = variant === 'outline' || variant === 'ghost' ? 'bg-amber-100/20' : 'bg-amber-600'\n\n    const isSquare = variant === 'square'\n\n    return (\n      <button\n        ref={ref}\n        className={`relative inline-flex items-center justify-center overflow-hidden group transition-all duration-200 ease-out hover:scale-105 active:scale-95 ${sizeClasses[size]} ${variantClasses[variant]} font-semibold ${className}`}\n        {...rest}\n      >\n        {/* rising overlay */}\n        <span className={`absolute inset-0 w-full ${overlayClass} translate-y-full group-hover:translate-y-0 transition-transform duration-300 ease-in-out pointer-events-none`} />\n\n        {/* if square variant, render corner accents behind content */}\n        {isSquare && (\n          <>\n            <span className=\"absolute right-0 top-0 border-r-2 border-t-2 border-white translate-x-0 translate-y-0 size-4\" />\n            <span className=\"absolute left-0 top-0 border-l-2 border-t-2 border-white translate-x-0 translate-y-0 size-4\" />\n            <span className=\"absolute right-0 bottom-0 border-r-2 border-b-2 border-white translate-x-0 translate-y-0 size-4\" />\n            <span className=\"absolute left-0 bottom-0 border-l-2 border-b-2 border-white translate-x-0 translate-y-0 size-4\" />\n            <span className=\"absolute inset-0 pointer-events-none rounded-sm border border-white/20\" />\n          </>\n        )}\n\n        <span className=\"relative z-10\">{children}</span>\n      </button>\n    )\n  }\n)\n\nRiseButton.displayName = 'RiseButton'\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}