@yandex/ui
Version:
Yandex UI components
75 lines (74 loc) • 3.31 kB
TypeScript
import React, { ReactElement, ReactNode, Ref, CSSProperties, MouseEventHandler } from 'react';
import { RenderOverride } from '../lib/render-override';
import { IWithControlProps } from '../withControl/withControl';
import { IIconProps } from '../Icon/Icon';
import { ITextinputControlProps } from './Control/Textinput-Control';
import './Textinput.css';
export declare const cnTextinput: import("@bem-react/classname").ClassNameFormatter;
export interface ITextinputProps extends ITextinputControlProps, IWithControlProps<HTMLInputElement> {
/**
* Событие, которое вызывается при нажатии на компонент
*/
onClick?: MouseEventHandler<HTMLElement>;
/**
* Событие по своему действию похоже на `onClick` и возникает в момент нажатия кнопки мыши.
* `onClick` в каком-то смысле является комбинацией событий `onMouseDown` и `onMouseUp`
*/
onMouseDown?: MouseEventHandler<HTMLElement>;
/**
* Событие по своему действию противоположно событию `onMouseDown` и происходит при отпускании кнопки мыши.
* Курсор должен находится в пределах HTML-элемента, к которому добавлен атрибут `onmouseup`
*/
onMouseUp?: MouseEventHandler<HTMLElement>;
/**
* Состояние фокуса на компоненте
*/
focused?: boolean;
/**
* Состояние нажатия на компоненте
*/
pressed?: boolean;
/**
* Дополнительный контент после контрола
*/
addonAfter?: ReactNode;
/**
* Дополнительный контент перед контролом
*/
addonBefore?: ReactNode;
/**
* Иконка слева от содержимого текстового поля
*/
iconLeft?: ReactElement<IIconProps>;
/**
* Иконка справа от содержимого текстового поля
*/
iconRight?: ReactElement<IIconProps>;
/**
* Ссылка на корневой DOM элемент компонента
*/
innerRef?: Ref<HTMLSpanElement>;
/**
* Пользовательские стили на корневом DOM элементе.
*/
style?: CSSProperties;
/**
* Текст-подсказка, появляющаяся после компонента.
* Может иметь различное визуальное оформление в зависимости от свойства `state`.
*/
hint?: string;
/**
* Визуальное состояние компонента.
* Может использоваться при проверке формы на корректность.
*/
state?: 'error';
/**
* Всплывающая подсказка
*/
title?: string;
/**
* Переопределяет компонент `Control`
*/
renderControl?: RenderOverride<ITextinputControlProps>;
}
export declare const Textinput: React.ComponentClass<ITextinputProps, any>;