zarm
Version:
基于 React 的移动端UI库
41 lines (40 loc) • 2.1 kB
TypeScript
import React, { ChangeEvent, ReactNode } from 'react';
import type { HTMLProps } from '../utils/utilityTypes';
import type { BaseCheckboxProps } from './interface';
export interface CheckboxCssVars {
'--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 CheckboxProps = BaseCheckboxProps & HTMLProps<CheckboxCssVars> & {
renderIcon?: (props: CheckboxProps) => ReactNode;
render?: (props: CheckboxProps) => ReactNode;
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
};
export interface CheckboxRef {
check: () => void;
uncheck: () => void;
toggle: () => void;
}
declare const Checkbox: React.ForwardRefExoticComponent<BaseCheckboxProps & HTMLProps<CheckboxCssVars> & {
renderIcon?: (props: CheckboxProps) => ReactNode;
render?: (props: CheckboxProps) => ReactNode;
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
} & React.RefAttributes<CheckboxRef>>;
export default Checkbox;