@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
91 lines (90 loc) • 3.94 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import CheckboxFoundation, { CheckboxAdapter, BasicCheckboxEvent, BasicTargetObject, BaseCheckboxProps } from '@douyinfe/semi-foundation/lib/cjs/checkbox/checkboxFoundation';
import CheckboxInner from './checkboxInner';
import BaseComponent from '../_base/baseComponent';
import '@douyinfe/semi-foundation/lib/cjs/checkbox/checkbox.css';
import { CheckboxContextType } from './context';
import { CheckboxType } from './checkboxGroup';
export interface CheckboxEvent extends BasicCheckboxEvent {
nativeEvent: {
stopImmediatePropagation: () => void;
};
}
export type TargetObject = BasicTargetObject;
export interface CheckboxProps extends BaseCheckboxProps {
'aria-describedby'?: React.AriaAttributes['aria-describedby'];
'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
'aria-invalid'?: React.AriaAttributes['aria-invalid'];
'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
'aria-required'?: React.AriaAttributes['aria-required'];
children?: React.ReactNode;
onChange?: (e: CheckboxEvent) => any;
style?: React.CSSProperties;
onMouseEnter?: React.MouseEventHandler<HTMLSpanElement>;
onMouseLeave?: React.MouseEventHandler<HTMLSpanElement>;
extra?: React.ReactNode;
'aria-label'?: React.AriaAttributes['aria-label'];
role?: React.HTMLAttributes<HTMLSpanElement>['role'];
tabIndex?: number;
addonId?: string;
extraId?: string;
type?: CheckboxType;
}
interface CheckboxState {
checked: boolean;
addonId?: string;
extraId?: string;
focusVisible?: boolean;
}
declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
static contextType: React.Context<CheckboxContextType>;
static propTypes: {
'aria-describedby': PropTypes.Requireable<string>;
'aria-errormessage': PropTypes.Requireable<string>;
'aria-invalid': PropTypes.Requireable<boolean>;
'aria-labelledby': PropTypes.Requireable<string>;
'aria-required': PropTypes.Requireable<boolean>;
checked: PropTypes.Requireable<boolean>;
defaultChecked: PropTypes.Requireable<boolean>;
disabled: PropTypes.Requireable<boolean>;
indeterminate: PropTypes.Requireable<boolean>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
value: PropTypes.Requireable<any>;
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
prefixCls: PropTypes.Requireable<string>;
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
extra: PropTypes.Requireable<PropTypes.ReactNodeLike>;
index: PropTypes.Requireable<number>;
'aria-label': PropTypes.Requireable<string>;
tabIndex: PropTypes.Requireable<number>;
preventScroll: PropTypes.Requireable<boolean>;
type: PropTypes.Requireable<string>;
};
static defaultProps: {
defaultChecked: boolean;
indeterminate: boolean;
onChange: (...args: any[]) => void;
onMouseEnter: (...args: any[]) => void;
onMouseLeave: (...args: any[]) => void;
type: string;
};
static elementType: string;
checkboxEntity: CheckboxInner;
context: CheckboxContextType;
get adapter(): CheckboxAdapter<CheckboxProps, CheckboxState>;
foundation: CheckboxFoundation;
constructor(props: CheckboxProps);
componentDidUpdate(prevProps: CheckboxProps): void;
isInGroup(): boolean;
focus(): void;
blur(): void;
handleChange: React.MouseEventHandler<HTMLSpanElement>;
handleEnterPress: (e: React.KeyboardEvent<HTMLSpanElement>) => void;
handleFocusVisible: (event: React.FocusEvent) => void;
handleBlur: (event: React.FocusEvent) => void;
render(): React.JSX.Element;
}
export default Checkbox;