# TimeField: API

## Пропсы корня

| Проп | Тип | По умолчанию | Обязательный | Описание |
| --- | --- | --- | --- | --- |
| `value` | `string` | — | Нет | Контролируемое время в виде строки `HH:mm` (`HH:mm:ss`, когда формат содержит секунды); `''`, пока в поле нет полного значения. |
| `defaultValue` | `string` | `''` | Нет | Начальное время для неконтролируемого использования, как у `value`. По умолчанию `''` — пустое поле. |
| `onChangeValue` | `(value: string) => void` | — | Нет | Вызывается со временем при его изменении и с `''`, когда текст очищен или не заполнен до конца. |
| `format` | `'HH:mm' \| 'HH:mm:ss'` | `'HH:mm'` | Нет | Формат времени для маски ввода и разбора в нотации шаблонов дат Unicode, как у `DateTimeField.timeFormat`. Примеры: "HH:mm" — часы и минуты. "HH:mm:ss" — часы, минуты и секунды. |
| `min` | `string` | — | Нет | Самое раннее допустимое время в виде строки `HH:mm` или `HH:mm:ss`. Как у нативного `<input type="time">`, полное время раньше `min` ограничивается им. |
| `max` | `string` | — | Нет | Самое позднее допустимое время в виде строки `HH:mm` или `HH:mm:ss`. Как у нативного `<input type="time">`, полное время позже `max` ограничивается им. |
| `step` | `number` | `1` | Нет | Шаг ArrowUp / ArrowDown для минут или секунд под кареткой, с переходом по кругу в пределах диапазона сегмента. Как у нативного `<input type="time">` со `step`, часы всегда меняются на один. `0` отключает шаг стрелками. По умолчанию `1`. |
| `size` | `TextFieldSize` | — | Нет | Визуальный размер текстового поля. Влияет на отступы, размер шрифта и общую высоту. 'sm': компактное поле; 'md': по умолчанию; 'lg': просторная раскладка |
| `ref` | `Ref<HTMLDivElement>` | — | Нет | Ref, передаваемый на элемент-обёртку. Полезен для программного управления, фокуса или интеграции. |
| `error` | `boolean` | — | Нет | Показывает поле ввода в состоянии ошибки. |

Также принимает все атрибуты `<div>`.

## Дочерние части

- `TimeFieldInput`: поле ввода с маской, связанное с контекстом времени корня.

### `TimeFieldInput`

| Проп | Тип | По умолчанию | Обязательный | Описание |
| --- | --- | --- | --- | --- |
| `ref` | `Ref<HTMLInputElement>` | — | Нет | Ref, передаваемый на нижележащий нативный элемент `<input>`. |

Также принимает все атрибуты `<input>`.

## Типы

- `TimeFieldProps`
- `TimeFieldInputProps`

## Модель состояния

- Корень принимает `value`, `defaultValue` и `onChangeValue` как время `HH:mm` (`HH:mm:ss`, если формат содержит секунды), как нативный `<input type="time">`; `TimeFieldInput` показывает его в заданном формате и по-прежнему вызывает собственные `onChange` и `onInput`. Пока текст пустой или неполный, значение равно `''`. Сброс формы восстанавливает `defaultValue`, если поле не контролируемое.
- Полное время за пределами `min` или `max` заменяется ближайшей границей. При изменении `min` или `max` введённый текст снова ограничивается так же, как при вводе, с вызовом `input`.
