import { CSSProperties, ReactNode, ReactText, HTMLAttributes } from 'react';
/**
* @title Checkbox
* `T = string | number`
*/
export interface CheckboxProps extends Omit, 'children' | 'className' | 'onChange'> {
style?: CSSProperties;
className?: string | string[];
/**
* 是否禁用
*/
disabled?: boolean;
/**
* 错误样式
*/
error?: boolean;
/**
* 是否选中
*/
checked?: boolean;
/**
* 默认是否选中
*/
defaultChecked?: boolean;
/**
* 半选状态
*/
indeterminate?: boolean;
/**
* 静态展示
*/
quickStatic?: boolean;
/**
* 静态展示
*/
quickStaticStr?: boolean;
/**
* 点击复选框的回调
*/
onChange?: (checked: boolean, e: Event) => void;
/**
* 复选框的 value 属性
*/
value?: T;
/**
* 自定义 IconCheck
*/
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[];
/**
* 整组失效
*/
disabled?: boolean;
/**
* 方向
* @defaultValue horizontal
*/
direction?: 'horizontal' | 'vertical';
error?: boolean;
/**
* 默认选中的选项
*/
defaultValue?: T[];
/**
* 可选项
*/
options?: (T | {
label: ReactNode;
value: T;
disabled?: boolean;
icon?: ReactNode;
})[];
/**
* 选中的选项(受控模式)
*/
value?: T[];
/**
* 变化时的回调函数
*/
onChange?: (value: T[], e: Event) => void;
}