import { ReactNode } from 'react' import Interactive from '../interactive' import classNames from 'classnames' import './style.scss' export interface ButtonProps { size?: 'small' | 'medium' | 'large' color?: | 'primary' | 'secondary' | 'secondary-high-contrast' | 'tertiary' | 'critical' | 'boundary' | 'consul' | 'nomad' | 'packer' | 'terraform' | 'vagrant' | 'vault' | 'waypoint' | 'hashicorp' // alias to primary isFullWidth?: boolean isIconOnly?: boolean icon?: ReactNode iconPosition?: 'leading' | 'trailing' text?: string href?: string isHrefExternal?: boolean onClick?: () => void className?: string } export default function Button({ size = 'medium', color = 'primary', isFullWidth, isIconOnly, icon, iconPosition = 'leading', text, href, isHrefExternal, onClick, className, ...rest }: ButtonProps) { return ( {isIconOnly ? (
{icon}
) : icon ? ( iconPosition === 'leading' ? ( <>
{icon}
{text}
) : ( <>
{text}
{icon}
) ) : (
{text}
)}
) }