{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "password-input",
  "title": "Password Input",
  "description": "An input component that allows users to enter a password.",
  "registryDependencies": [
    "@tetra-ui/icons",
    "@tetra-ui/input",
    "@tetra-ui/text-input"
  ],
  "files": [
    {
      "path": "ui/password-input.tsx",
      "content": "import { useState } from \"react\";\nimport { EyeIcon, EyeOffIcon } from \"./icons\";\nimport { InputAddon, InputAddonButton, InputAddonButtonIcon } from \"./input\";\nimport { TextInput, type TextInputProps } from \"./text-input\";\n\n// Types\nexport type PasswordInputProps = Omit<\n  TextInputProps,\n  \"rightElement\" | \"secureTextEntry\"\n>;\n\n// Components\nexport const PasswordInput = ({\n  onFocus,\n  onBlur,\n  disabled,\n  ...props\n}: PasswordInputProps) => {\n  const [isSecureEntry, setIsSecureEntry] = useState(true);\n\n  const Icon = isSecureEntry ? EyeOffIcon : EyeIcon;\n\n  return (\n    <TextInput\n      {...props}\n      disabled={disabled}\n      onBlur={onBlur}\n      onFocus={onFocus}\n      secureTextEntry={isSecureEntry}\n    >\n      <InputAddon align=\"inline-end\">\n        <InputAddonButton\n          disabled={disabled}\n          onPress={() => setIsSecureEntry((p) => !p)}\n          size=\"icon\"\n          variant=\"ghost\"\n        >\n          <InputAddonButtonIcon>\n            <Icon />\n          </InputAddonButtonIcon>\n        </InputAddonButton>\n      </InputAddon>\n    </TextInput>\n  );\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}
