import { ChangeEvent, ReactNode, HTMLAttributes } from 'react';
/**
* @title Radio
*/
export interface RadioProps extends Omit, 'children' | 'onChange'> {
/**
* @zh 是否禁用
* @en Whether the radio is disabled
*/
disabled?: boolean;
/**
* @zh 控件的 `value`
* @en The value of radio
*/
value?: T;
/**
* @zh 是否选中(受控模式)
* @en Whether the radio is checked (Controlled)
*/
checked?: boolean;
/**
* @zh 初始是否选中
* @en Whether the radio is initially selected
*/
defaultChecked?: boolean;
/**
* @zh 值变化的回调
* @en Callback when radio status change
*/
onChange?: (checked: boolean, event: ChangeEvent) => void;
children?: ReactNode;
/**
* @zh 是否只读
* @en Whether the radio is readonly
*/
readonly?: boolean;
}
/**
* @title Radio.Group
*/
export interface RadioGroupProps extends Omit, 'children' | 'onChange'> {
disabled?: boolean;
/**
* @zh `Radio` 的 name
* @en `Radio`'s name attr
*/
name?: string;
/**
* @zh 单选的类型,是单选还是按钮
* @en type of `Radio`
* @defaultValue radio
*/
type?: 'radio' | 'button';
/**
* @zh 点击单选的回调
* @en Callback when radio status change
*/
onChange?: (value: any, event: ChangeEvent) => void;
/**
* @zh 默认选中的值
* @en To set default value
*/
defaultValue?: any;
/**
* @zh 选中的值(受控模式)
* @en To set value
*/
value?: any;
children: ReactNode;
/**
* @zh 是否只读
* @en Whether the radio group is readonly
*/
readonly?: boolean;
}
export interface RadioGroupContextProps {
type: 'radio' | 'button';
value?: any;
disabled?: boolean;
group?: boolean;
name?: RadioGroupProps['name'];
onChangeValue?: (value: any, event: ChangeEvent) => void;
/**
* @zh 是否只读
* @en Whether the radio group is readonly
*/
readonly?: boolean;
}