zarm
Version:
基于 React 的移动端UI库
39 lines (38 loc) • 2 kB
TypeScript
import React, { ChangeEvent, ReactNode } from 'react';
import type { HTMLProps } from '../utils/utilityTypes';
import type { BaseRadioProps } from './interface';
export interface RadioCssVars {
'--icon-size'?: React.CSSProperties['height'];
'--icon-background'?: React.CSSProperties['background'];
'--icon-border-radius'?: React.CSSProperties['borderRadius'];
'--icon-border-width'?: React.CSSProperties['borderWidth'];
'--icon-border-color'?: React.CSSProperties['borderColor'];
'--tick-font-size'?: React.CSSProperties['fontSize'];
'--tick-color'?: React.CSSProperties['color'];
'--tick-transition'?: React.CSSProperties['transition'];
'--text-margin-horizontal'?: React.CSSProperties['marginLeft'];
'--active-opacity'?: React.CSSProperties['opacity'];
'--checked-icon-background'?: React.CSSProperties['background'];
'--checked-icon-border-color'?: React.CSSProperties['borderColor'];
'--checked-tick-color'?: React.CSSProperties['color'];
'--disabled-icon-background'?: React.CSSProperties['background'];
'--disabled-icon-border-color'?: React.CSSProperties['borderColor'];
'--disabled-text-color'?: React.CSSProperties['color'];
'--disabled-tick-color'?: React.CSSProperties['color'];
'--group-spacing-vertical'?: React.CSSProperties['marginBottom'];
'--group-spacing-horizontal'?: React.CSSProperties['marginRight'];
}
export declare type RadioProps = BaseRadioProps & HTMLProps<RadioCssVars> & {
renderIcon?: (props: RadioProps) => ReactNode;
render?: (props: RadioProps) => ReactNode;
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
};
export interface RadioRef {
check: () => void;
}
declare const Radio: React.ForwardRefExoticComponent<BaseRadioProps & HTMLProps<RadioCssVars> & {
renderIcon?: (props: RadioProps) => ReactNode;
render?: (props: RadioProps) => ReactNode;
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
} & React.RefAttributes<RadioRef>>;
export default Radio;