{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "comp-23",
  "type": "registry:component",
  "registryDependencies": [
    "https://coss.com/origin/r/input.json",
    "https://coss.com/origin/r/label.json"
  ],
  "files": [
    {
      "path": "registry/default/components/comp-23.tsx",
      "content": "\"use client\";\n\nimport { EyeIcon, EyeOffIcon } from \"lucide-react\";\nimport { useId, useState } from \"react\";\n\nimport { Input } from \"@/registry/default/ui/input\";\nimport { Label } from \"@/registry/default/ui/label\";\n\nexport default function Component() {\n  const id = useId();\n  const [isVisible, setIsVisible] = useState<boolean>(false);\n\n  const toggleVisibility = () => setIsVisible((prevState) => !prevState);\n\n  return (\n    <div className=\"*:not-first:mt-2\">\n      <Label htmlFor={id}>Show/hide password input</Label>\n      <div className=\"relative\">\n        <Input\n          className=\"pe-9\"\n          id={id}\n          placeholder=\"Password\"\n          type={isVisible ? \"text\" : \"password\"}\n        />\n        <button\n          aria-controls=\"password\"\n          aria-label={isVisible ? \"Hide password\" : \"Show password\"}\n          aria-pressed={isVisible}\n          className=\"absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-muted-foreground/80 outline-none transition-[color,box-shadow] hover:text-foreground focus:z-10 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n          onClick={toggleVisibility}\n          type=\"button\"\n        >\n          {isVisible ? (\n            <EyeOffIcon aria-hidden=\"true\" size={16} />\n          ) : (\n            <EyeIcon aria-hidden=\"true\" size={16} />\n          )}\n        </button>\n      </div>\n    </div>\n  );\n}\n",
      "type": "registry:component"
    }
  ],
  "meta": {
    "tags": [
      "input",
      "label",
      "button",
      "password"
    ]
  }
}