UNPKG

@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
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;