import { noop } from 'es-toolkit'; import type { CSSProperties, FC, MouseEvent, ReactNode } from 'react'; import { Icon, type IconName } from './Icon/Icon.tsx'; interface ButtonProps { label?: string; title?: string; iconName?: IconName; iconClassname?: string; iconComponent?: ReactNode; active?: boolean; onClick?: (evt: MouseEvent) => void; children?: ReactNode; className?: string; style?: CSSProperties; dataId?: string; size?: 'small' | 'regular'; type?: 'regular' | 'transparent'; left?: ReactNode; right?: ReactNode; } export const Button: FC = ({ label, title, iconName, iconClassname, iconComponent, onClick, active = false, children, className, style, dataId, type = 'regular', size = 'regular', left = null, right = null, }) => { // 색은 App.css의 테마 토큰이 data-type/data-active로 준다 — 여기서는 배치만 · 높이 = 크기 단 42(글 14 · 둥글기 8) const classParts = [ 'font-semibold h-[42px] text-sm rounded-lg flex flex-row justify-start w-full items-center', size === 'regular' ? 'pl-2 pr-2 gap-2' : '', size === 'small' ? 'pl-2 pr-2 gap-0' : '', className || '', ]; return ( <> ); };