import { HTMLButtonAttributes, HTMLAnchorAttributes } from 'svelte/elements'; import { DefaultProps, SvelteUIColor, SvelteUINumberSize, SvelteUIGradient } from '../../styles'; import { LoaderProps } from '../Loader/Loader'; export type ButtonVariant = | 'filled' | 'light' | 'outline' | 'default' | 'white' | 'gradient' | 'subtle'; interface ButtonPropsInternal extends DefaultProps { variant?: ButtonVariant; color?: SvelteUIColor; size?: SvelteUINumberSize; radius?: SvelteUINumberSize | number; gradient?: SvelteUIGradient; loaderPosition?: 'left' | 'right'; loaderProps?: LoaderProps; href?: string; external?: boolean; disabled?: boolean; compact?: boolean; loading?: boolean; uppercase?: boolean; fullSize?: boolean; ripple?: boolean; } export type ButtonProps = ButtonPropsInternal & HTMLButtonAttributes & HTMLAnchorAttributes;