PasswordInput
PasswordInput — поле ввода пароля на Password Input из Ark UI. Внешне это Input: та же оболочка Field (label, error, iconLeft), та же шкала size и форма radius. Ввод скрыт, справа стоит кнопка с глазом — она показывает и снова скрывает пароль; место iconRight занято ею, поэтому такого пропа нет. Значение — контролируемая модель: пара value / onValueChange. autoComplete подсказывает менеджеру паролей, вводится действующий пароль (current-password, по умолчанию) или придумывается новый (new-password). strengthMeter включает под полем индикатор надёжности; по умолчанию он выключен. Уровень индикатор считает сам (zxcvbn) либо получает готовым через strengthLevel.
Использует: ButtonIcon, Field
Используется в: PasswordInputField
Анатомия
Примеры
Индикатор надёжности
strengthMeter рисует под полем шкалу из четырёх делений и подпись уровня. Оценивается стойкость к подбору, а не состав: словари частых паролей, клавиатурные дорожки, даты, повторы, замены вроде p@ssw0rd — поэтому Password1! получает «Слабый». Считает @zxcvbn-ts/core; библиотека и словари тяжёлые и грузятся отдельным чанком при первом вводе, до этого шкала пуста. Пароли кириллицей со словарями не сверяются и оцениваются выше, чем того стоят. Индикатор — подсказка, а не валидация: требования к паролю задаёт схема формы.
Запрет слабого пароля
Индикатор сам ничего не запрещает. Чтобы не принимать слабый пароль, уровень берут хуком usePasswordStrength, сравнивают с порогом и отдают текст в error. Тот же уровень передают в strengthLevel — поле не считает его второй раз.
Ошибка
Непустой error помечает поле как invalid (красная рамка) и рисует текст ошибки под ним — так же, как у Input.
В форме
В формах на useAppForm поле подключается как field.PasswordInputField: значение и ошибку оно берёт из поля формы, а валидируется теми же схемами и валидаторами, что и InputField. Ошибка показывается после первого ввода.
Размер, иконка и форма
Визуальные пропсы те же, что у Input: size — ступень шкалы (поле зеркалит кнопку), radius="circle" — таблетка, iconLeft — декоративная иконка слева.
API
| Prop | Type | Default |
|---|---|---|
valueЗначение поля (контролируемая модель) | string | - |
onValueChangeВызывается при изменении значения | (value: string) => void | - |
placeholderПлейсхолдер поля | string | - |
autoCompleteПодсказка браузеру и менеджеру паролей: вводится действующий пароль или придумывается новый | "current-password" | "new-password" | - |
strengthMeterПоказывать под полем индикатор надёжности пароля. Оценивается стойкость к подбору (zxcvbn); библиотека загружается при первом вводе | boolean | false |
strengthLevelУровень надёжности, посчитанный снаружи: 0 — пароль не введён, 1–4 — от слабого к надёжному. Заменяет встроенную оценку | PasswordStrengthLevel | - |
sizeРазмер компонента | Size | - |
radiusСкругление углов: circle — «таблетка» | Radius | - |
labelТекст лейбла над контролом | ReactNode | - |
invalidПомечает поле ошибочным: контрол получает | FieldArkRootProps["invalid"] | - |
disabledОтключает поле: контрол внутри становится недоступен | FieldArkRootProps["disabled"] | - |
requiredПомечает поле обязательным | FieldArkRootProps["required"] | - |
readOnlyЗначение видно, но изменить его нельзя | FieldArkRootProps["readOnly"] | - |
errorТекст ошибки под контролом; при наличии поле помечается как invalid | ReactNode | - |
iconLeftДекоративная иконка слева внутри контрола | Icon | - |
Наследуется от Pick<VisualProps, K>, Omit<FieldShellProps, "iconRight">