@szum-tech/design-system
Version:
Szum-Tech design system with tailwindcss support
53 lines (48 loc) • 1.67 kB
TypeScript
import * as React from 'react';
import { VariantProps } from 'class-variance-authority';
import * as class_variance_authority_types from 'class-variance-authority/types';
declare const buttonVariants: (props?: {
variant?: "link" | "default" | "outline" | "secondary" | "ghost" | "error";
size?: "default" | "sm" | "xs" | "lg" | "icon-xs" | "icon-sm" | "icon" | "icon-lg";
fullWidth?: boolean;
} & class_variance_authority_types.ClassProp) => string;
type ButtonCvaProps = VariantProps<typeof buttonVariants>;
type ButtonSizeType = NonNullable<ButtonCvaProps["size"]>;
type ButtonVariantType = NonNullable<ButtonCvaProps["variant"]>;
type ButtonProps = React.ComponentProps<"button"> & {
/**
* Defines button full width
*/
fullWidth?: boolean;
/**
* Defines button variant
*/
variant?: ButtonVariantType;
/**
* Defines button size
*/
size?: ButtonSizeType;
/**
* Defines button content
*/
children?: React.ReactNode;
/**
* Defines left icon
*/
startIcon?: React.ReactElement;
/**
* Defines right icon
*/
endIcon?: React.ReactElement;
/**
* Defines is button is in loading state
*/
loading?: boolean;
/**
* Defines is position of loading icon
*/
loadingPosition?: "start" | "end" | "center";
asChild?: boolean;
};
declare function Button({ asChild, variant, disabled, fullWidth, loadingPosition: loadingPositionProp, children, type, loading, size, endIcon, startIcon, className, ...props }: ButtonProps): React.JSX.Element;
export { Button, type ButtonProps, type ButtonSizeType, type ButtonVariantType };