mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
17faf0b651
Removes redundant focus ring and offset classes from multiple UI elements to streamline visual consistency and reduce CSS complexity. Updates snippet manager header structure for improved layout clarity.
39 lines
1.6 KiB
TypeScript
Executable File
39 lines
1.6 KiB
TypeScript
Executable File
import * as React from "react"
|
|
import { cn } from "../../lib/utils"
|
|
|
|
export interface ButtonProps
|
|
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link"
|
|
size?: "default" | "sm" | "lg" | "icon"
|
|
}
|
|
|
|
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
|
({ className, variant = "default", size = "default", ...props }, ref) => {
|
|
return (
|
|
<button
|
|
className={cn(
|
|
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 cursor-pointer",
|
|
{
|
|
"bg-primary text-primary-foreground hover:bg-primary/90": variant === "default",
|
|
"bg-destructive text-destructive-foreground hover:bg-destructive/90": variant === "destructive",
|
|
"border border-input bg-background hover:bg-accent hover:text-accent-foreground": variant === "outline",
|
|
"bg-secondary text-secondary-foreground hover:bg-secondary/80": variant === "secondary",
|
|
"hover:bg-accent hover:text-accent-foreground": variant === "ghost",
|
|
"text-primary underline-offset-4 hover:underline": variant === "link",
|
|
"h-10 px-4 py-2": size === "default",
|
|
"h-9 rounded-md px-3": size === "sm",
|
|
"h-11 rounded-md px-8": size === "lg",
|
|
"h-10 w-10": size === "icon",
|
|
},
|
|
className
|
|
)}
|
|
ref={ref}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
)
|
|
Button.displayName = "Button"
|
|
|
|
export { Button }
|