onairos
Version:
The Onairos Library is a collection of functions that enable Applications to connect and communicate data with Onairos Identities via User Authorization. Integration for developers is seamless, simple and effective for all applications. LLM SDK capabiliti
50 lines (43 loc) • 1.34 kB
JSX
import React from 'react';
/**
* Button Component
* A customizable button component with various style variants
*/
export function Button({
children,
className = '',
variant = 'default',
size = 'default',
onClick,
disabled = false,
...props
}) {
// Base classes
const baseClasses = 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none';
// Size classes
const sizeClasses = {
default: 'h-10 py-2 px-4',
sm: 'h-9 px-3',
lg: 'h-11 px-8',
};
// Variant classes
const variantClasses = {
default: 'bg-black text-white hover:bg-black/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: 'underline-offset-4 hover:underline text-primary',
};
const classes = `${baseClasses} ${sizeClasses[size]} ${variantClasses[variant]} ${className}`;
return (
<button
className={classes}
onClick={onClick}
disabled={disabled}
{...props}
>
{children}
</button>
);
}
export default Button;