Spaces:
Running
Running
Download src/components/ui/Button.tsx from PYTHAI/bankML-UIF: direct link, hf CLI and curl.
- Browser
- Download file 1.63 kB
-
https://huggingface.co/spaces/PYTHAI/bankML-UIF/resolve/main/src/components/ui/Button.tsx
- Command line
-
hf download hf://spaces/PYTHAI/bankML-UIF/src/components/ui/Button.tsx
-
curl -L -o Button.tsx https://huggingface.co/spaces/PYTHAI/bankML-UIF/resolve/main/src/components/ui/Button.tsx
1.63 kB
| import React from 'react'; | |
| interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> { | |
| children: React.ReactNode; | |
| variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'; | |
| size?: 'default' | 'sm' | 'lg' | 'icon'; | |
| className?: string; | |
| } | |
| export const Button: React.FC<ButtonProps> = ({ | |
| children, | |
| onClick, | |
| className = '', | |
| disabled, | |
| variant = 'default', | |
| size = 'default', | |
| ...props | |
| }) => { | |
| const baseClasses = "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"; | |
| const variantClasses = { | |
| default: "bg-primary text-primary-foreground hover:bg-primary/90", | |
| destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", | |
| outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", | |
| secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", | |
| ghost: "hover:bg-accent hover:text-accent-foreground", | |
| link: "text-primary underline-offset-4 hover:underline" | |
| }; | |
| const sizeClasses = { | |
| default: "h-10 px-4 py-2", | |
| sm: "h-9 rounded-md px-3", | |
| lg: "h-11 rounded-md px-8", | |
| icon: "h-10 w-10" | |
| }; | |
| return ( | |
| <button | |
| onClick={onClick} | |
| disabled={disabled} | |
| className={`${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${className}`} | |
| {...props} | |
| > | |
| {children} | |
| </button> | |
| ); | |
| }; |