import { z } from 'zod/v4' import { DimensionEnum, IconEnum, VariantEnum } from './general' const ButtonTypeEnum = z.enum(['button', 'submit', 'reset']) const ButtonArrangementEnum = z.enum(['hiddenLabel', 'leadingIcon', 'leadingLabel']) const ButtonSizeEnum = z.enum(['sm', 'md', 'lg']) export const ButtonPropsSchema = z.object({ arrangement: ButtonArrangementEnum.default('leadingLabel'), disabled: z.boolean().default(false), href: z.string().nullable(), icon: IconEnum.nullable(), label: z.string(), size: ButtonSizeEnum.default('md'), type: ButtonTypeEnum.default('button'), variant: VariantEnum.default('secondary'), width: DimensionEnum.default('fit') }) export type ButtonProps = { label: string type?: z.infer href?: string icon?: z.infer | null arrangement?: z.infer disabled?: boolean variant?: z.infer size?: z.infer width?: z.infer onClick?: () => void // additional onMouseEnter?: () => void // additional onMouseLeave?: () => void // additional className?: string // additional }