import type { ButtonHTMLAttributes } from 'react'; export type ButtonVariant = 'filled' | 'outlined'; export type ButtonColor = 'primary' | 'secondary' | 'emphasis' | 'destructive'; export type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'; export type IconButtonVariant = 'outlined'; export type IconButtonColor = 'primary' | 'secondary' | 'destructive'; export type IconButtonShape = 'rounded' | 'circle'; export type IconButtonSize = 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge'; export type TextButtonVariant = 'text' | 'link'; export type TextButtonSize = 'small' | 'medium' | 'large'; export type AccordionButtonSize = 'xsmall' | 'medium'; export interface BaseButtonProps extends Omit, 'type'> { /** * true로 설정 시, 기본 DOM 요소를 렌더링하지 않고 자식 컴포넌트에 props와 동작을 전달합니다. * * reference: https://www.radix-ui.com/primitives/docs/guides/composition * @default false * */ asChild?: boolean; /** @default 'button' */ type?: ButtonHTMLAttributes['type']; }