import { CSSProperties, ReactNode, ReactText, HTMLAttributes } from 'react'; /** * @title Checkbox * @zh `T = string | number` * @en `T = string | number` */ export interface CheckboxProps extends Omit, 'children' | 'className' | 'onChange'> { style?: CSSProperties; className?: string | string[]; /** * @zh 是否禁用 * @en Whether to disable */ disabled?: boolean; /** * @zh 错误样式 * @en Whether to show in error style */ error?: boolean; /** * @zh 是否选中 * @en Whether the checkbox is checked */ checked?: boolean; /** * @zh 默认是否选中 * @en To set default checked */ defaultChecked?: boolean; /** * @zh 半选状态 * @en The indeterminate state of checkbox */ indeterminate?: boolean; /** * @zh 点击复选框的回调 * @en Callback when the state changes */ onChange?: (checked: boolean, e: Event) => void; /** * @zh 复选框的 value 属性 * @en To set checkbox value */ value?: T; /** * @zh 自定义 IconCheck * @en Custom IconCheck * @version 2.43.0 */ icon?: ReactNode; checkboxGroupValue?: T[]; onGroupChange?: (value: T, checked: boolean) => void; isCheckboxGroup?: boolean; children?: ReactNode | ((value: { checked: boolean; indeterminate: boolean; }) => ReactNode); } /** * @title Checkbox.Group */ export interface CheckboxGroupProps { style?: CSSProperties; className?: string | string[]; /** * @zh 整组失效 * @en Whether to disable all checkboxes in the group */ disabled?: boolean; /** * @zh 方向 * @en Arrangement direction * @defaultValue horizontal */ direction?: 'horizontal' | 'vertical'; error?: boolean; /** * @zh 默认选中的选项 * @en Initial selected value */ defaultValue?: T[]; /** * @zh 可选项 * @en Specifies options */ options?: (T | { label: ReactNode; value: T; disabled?: boolean; icon?: ReactNode; })[]; /** * @zh 选中的选项(受控模式) * @en To set value */ value?: T[]; /** * @zh 变化时的回调函数 * @en Callback when the state changes */ onChange?: (value: T[], e: Event) => void; }