PasswordInput 密码输入

保留原生密码与表单语义,并提供可受控的显隐操作。

Beta

示例

直接操作示例,查看组件在具体任务中的状态与反馈。

密码值和显隐状态都由宿主本地持有;Provider 只提供组件内部的显隐按钮文案。
本地凭据编辑
当前密码已隐藏,共 12 个字符。
宿主持有显示状态,并获得每次显示或隐藏变化。
密码当前隐藏
只读、禁用和校验失败分别对应查看、锁定和修正。

使用建议

密码值始终由原生控件和宿主持有

继续使用 value、defaultValue、name、form 与 autoComplete;visible 只控制输入类型,不复制、缓存或提交密码内容。

显隐状态可以受控

用 visible 与 onVisibleChange 对接宿主状态;指针切换保留已聚焦输入和选区,readOnly 仍可查看,disabled 则禁止切换。

内部显隐标签跟随 Provider

按钮默认读取 MonkeysProvider 的 passwordInput 消息;字段标签、错误、密码策略和账户流程仍由宿主业务 i18n 管理。

引入方式

从已验证的公开子路径导入组件;全局样式接入方式见安装指南。

import { BasePasswordInput } from '@inf-monkeys-tech/monkeys-design/components/base';

当前限制

  • PasswordInput 不提供密码生成、强度评估、泄露检查、存储或安全策略;浏览器密码管理器与自动填充策略由宿主配置并验证。
  • T17 尚缺 manual keyboard/focus、deterministic visual 与 packed React 18/19 证据;显隐后的焦点、选区、自动填充和移动端行为尚未完成最终人工闭环。
  • Manual keyboard/focus review, deterministic visual evidence, and packed React 18/19 checks are pending T17/T23.
export interface BasePasswordInputProps
  extends Omit<
    InputHTMLAttributes<HTMLInputElement>,
    'className' | 'disabled' | 'readOnly' | 'style' | 'type'
  > {
  visible?: boolean;
  defaultVisible?: boolean;
  onVisibleChange?: (visible: boolean) => void;
  showPasswordLabel?: string;
  hidePasswordLabel?: string;
  invalid?: boolean;
  disabled?: boolean;
  readOnly?: boolean;
  appearance?: BaseAppearance;
  className?: string;
  classNames?: BasePasswordInputClassNames;
  style?: CSSProperties;
}
属性说明类型默认值
visible密码内容当前的受控可见状态。boolean
defaultVisible非受控模式下密码内容是否默认可见。booleanfalse
onVisibleChange密码可见状态变化时调用的回调。(visible: boolean) => void
showPasswordLabel显示密码操作的可访问名称。string
hidePasswordLabel隐藏密码操作的可访问名称。string
invalid是否进入无效状态并应用相应的校验样式与语义。booleanfalse
disabled是否禁用该组件及其可交互行为。booleanfalse
readOnly是否将控件设为只读,同时保留聚焦与内容读取能力。booleanfalse
appearance覆盖组件使用的外观令牌或局部样式配置。BaseAppearance
className追加到组件根元素的 CSS 类名。string
classNames按组件公开的结构插槽分别追加 CSS 类名。BasePasswordInputClassNames
style追加到组件根元素的内联样式。CSSProperties