### Базовое применение

```tsx
const Component = (props) => <input {...props} />
const EnhancedComponent = withControl(Component)

const render = () => <EnhancedComponent onBlur={() => alert('hello')} />
```

### Props

#### withControl

<!-- props:start -->
| Свойство        | Тип                                                                                                                                                                                                                                                               |  Описание                                                                                                                                 |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |  ---------------------------------------------------------------------------------------------------------------------------------------- |
| Component        | `ComponentType<TProps extends IWithControlProps>`                                                                                                                                                                                                                                                      | Оборачиваемый компонент                                                                              |
<!-- props:end -->

#### Компонент, возвращаемый withControl


<!-- props:start -->
| Свойство        | Тип                                                                                                                                                                                                                                                               |  По умолчанию | Описание                                                                                                                                 |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |  ------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| disabled?        | `false \| true`                                                                                                                                                                                                                                                      | `false` | Неактивное состояние компонента. Состояние, при котором меню отображается, но недоступно для действий пользователя                                                                               |
| focused?        | `false \| true`                                                                                                                                                                                                                                                      | `false` | Состояние фокуса на компоненте |
| pressed?        | `false \| true`                                                                                                                                                                                                                                                      | `false` | Состояние нажатия на компоненте                                                 |
| onBlur?        | `(event: FocusEvent<HTMLElement>) => void`                                                                                                                                                                                                                                                      | - | Событие, которое вызывается при потере фокуса компонентом, например при клике на другом месте экрана                                                                               |
| onFocus?        | `(event: FocusEvent<HTMLElement>) => void`                                                                                                                                                                                                                                                      | - | Событие, которое возникает при получении компонентом фокуса                                                                              |
| onMouseDown?        | `(event: MouseEvent<ContainerElement, MouseEvent>) => void`                                                                                                                                                                                                                                                      | - | Событие по своему действию похоже на onClick и возникает в момент нажатия кнопки мыши; onClick в каком-то смысле является комбинацией событий onMouseDown и onMouseUp         |
| onMouseUp?        | `(event: MouseEvent<ContainerElement, MouseEvent>) => void`                                                                                                                                                                                                                                                      | - | Обработчик события onMouseUp                      |
| controlRef?        | `RefObject<HTMLInputElement>`                                                                                                                                                                                                                                                      | - | Ссылка на DOM-элемент нативного контрола                                                                                |
<!-- props:end -->
