@yandex/ui
Version:
Yandex UI components
89 lines (88 loc) • 4.38 kB
TypeScript
import React, { Ref, FocusEventHandler, MouseEventHandler, ReactNode } from 'react';
import { Omit } from '../typings/utility-types';
import { IWithControlProps } from '../withControl/withControl';
import { IWithControlProps as IWithControlDesktopProps } from '../withControl/withControl@desktop';
import { ICheckboxControlProps } from './Control/Checkbox-Control';
import './Checkbox.css';
export declare const cnCheckbox: import("@bem-react/classname").ClassNameFormatter;
export declare type CheckboxControlProps = Omit<ICheckboxControlProps, 'size'>;
export interface ICheckboxProps extends IWithControlProps<HTMLInputElement>, IWithControlDesktopProps<HTMLInputElement>, CheckboxControlProps {
/**
* Событие, которое вызывается при потере фокуса компонентом. Например, при клике на другом месте экрана
*/
onBlur?: FocusEventHandler<HTMLElement>;
/**
* Событие, которое вызывается при нажатии на компонент
*/
onClick?: MouseEventHandler<HTMLElement>;
/**
* Событие, которое возникает при получении компонентом фокуса
*/
onFocus?: FocusEventHandler<HTMLElement>;
/**
* Событие по своему действию похоже на `onClick` и возникает в момент нажатия кнопки мыши.
* `onClick` в каком-то смысле является комбинацией событий `onMouseDown` и `onMouseUp`
*/
onMouseDown?: MouseEventHandler<HTMLElement>;
/**
* Событие по своему действию противоположно событию `onMouseDown` и происходит при отпускании кнопки мыши.
* Курсор должен находится в пределах HTML-элемента, к которому добавлен атрибут `onmouseup`
*/
onMouseUp?: MouseEventHandler<HTMLElement>;
/**
* Обработчик события `onMouseLeave`
*/
onMouseLeave?: MouseEventHandler<HTMLElement>;
/**
* Обработчик события `onMouseEnter`
*/
onMouseEnter?: MouseEventHandler<HTMLElement>;
/**
* Состояние фокуса на компоненте
*/
focused?: boolean;
/**
* Неактивное состояние компонента.
* Состояние, при котором компонент отображается, но недоступен для действий пользователя
*/
disabled?: boolean;
/**
* Состояние нажатия на компоненте
*/
pressed?: boolean;
/**
* Состояние, которое возникает при наведении на компонент курсором
*/
hovered?: boolean;
/**
* Ссылка на корневой DOM-элемент компонента
*/
innerRef?: Ref<HTMLElement>;
/**
* Текст подписи к чекбоксу
*/
label?: ReactNode;
/**
* Визуально переводит чекбокс в неопределенное состояние. Не влияет на состояние, указанное в `checked`.
*
* Может использоваться в дереве чекбоксов, чтобы показать состояние родительского чекбокса,
* когда хотя бы один вложенный чекбокс отмечен, но не все.
*
* Если свойство задано родительскому чекбоксу,
* то в `aria-controls` необходимо добавить `id` всех вложенных чекбоксов
*/
indeterminate?: boolean;
/**
* Состояние переключателя: включен или выключен
*/
checked?: boolean;
/**
* Всплывающая подсказка
*/
title?: string;
/**
* Устанавливает фокус в компонент при монтировании
*/
autoFocus?: boolean;
}
export declare const Checkbox: React.ComponentClass<ICheckboxProps, any>;