import { ChangeEvent, PropsWithChildren, ReactNode } from 'react'; import { CheckboxStatus } from '../../../types/checkbox.types'; import { CheckboxProps } from '../../Inputs/Checkbox/Checkbox.types'; import { ProductIconName } from '../../DataDisplays/ProductIcon/ProductIcon.types'; interface CheckboxCardBaseProps { className?: string; testId?: string; isWide?: boolean; } interface CheckboxCardMainProps extends CheckboxCardBaseProps, CheckboxStatus { onChange?: (event: ChangeEvent) => void; title: string; description?: string; name?: string; value?: string; containerClassName?: string; } interface NormalLayoutProps extends CheckboxCardMainProps { isWide?: false; iconName: ProductIconName; } interface WideLayoutProps extends CheckboxCardMainProps { isWide: true; iconName?: ProductIconName; } export type CheckboxCardProps = NormalLayoutProps | WideLayoutProps; interface CheckboxCardContainerBaseProps extends CheckboxStatus { className?: string; children: ReactNode; } export interface CheckboxCardContainerProps extends CheckboxCardContainerBaseProps { isWide?: boolean; } interface CheckboxCardIconBaseProps { iconName: ProductIconName; } export interface CheckboxCardIconProps extends CheckboxCardIconBaseProps, CheckboxStatus { } export interface StyledCheckboxProps extends CheckboxProps { isWide: boolean; } export interface CheckboxCardTitleContainerProps extends PropsWithChildren { isWide: boolean; } export {};