{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input",
  "type": "registry:ui",
  "title": "Input",
  "description": "The base text input with sm, default and lg sizes and designed hover, focus, disabled, read only and invalid states. A drop in shadcn style input for React.",
  "dependencies": [
    "@base-ui/react",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/input.tsx",
      "type": "registry:ui",
      "target": "components/ui/input.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Input as InputPrimitive } from \"@base-ui/react/input\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst inputVariants = cva(\n  [\n    \"w-full min-w-0 rounded-lg border border-border bg-surface text-fg\",\n    \"px-3 shadow-xs\",\n    \"text-sm\",\n    \"outline-none\",\n    \"placeholder:text-fg-subtle\",\n    \"transition-[border-color,box-shadow,background-color] duration-[140ms] ease-hairline\",\n    \"hover:border-border-strong\",\n    \"focus-visible:border-accent focus-visible:shadow-[0_0_0_3px_var(--accent-soft)]\",\n    \"disabled:cursor-not-allowed disabled:bg-sunken disabled:text-fg-muted disabled:shadow-none\",\n    \"aria-invalid:border-danger aria-invalid:focus-visible:shadow-[0_0_0_3px_color-mix(in_oklch,var(--danger)_14%,transparent)]\",\n    \"file:mr-3 file:h-full file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-fg\",\n    \"read-only:bg-sunken read-only:focus-visible:shadow-none\",\n  ].join(\" \"),\n  {\n    variants: {\n      size: {\n        sm: \"h-8 text-[0.8125rem]\",\n        default: \"h-9\",\n        lg: \"h-11 px-3.5 text-[0.9375rem]\",\n      },\n    },\n    defaultVariants: { size: \"default\" },\n  }\n)\n\ntype InputProps = Omit<React.ComponentProps<\"input\">, \"size\" | \"prefix\"> &\n  VariantProps<typeof inputVariants>\n\nfunction Input({ className, type, size = \"default\", ...props }: InputProps) {\n  return (\n    <InputPrimitive\n      type={type}\n      data-slot=\"input\"\n      className={cn(inputVariants({ size, className }))}\n      {...props}\n    />\n  )\n}\n\nexport { Input, inputVariants }\nexport type { InputProps }\n"
    }
  ]
}
