{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input",
  "title": "Input",
  "description": "Text input that reads Field wiring.",
  "dependencies": [],
  "registryDependencies": [
    "@hjconsult/lib",
    "@hjconsult/field"
  ],
  "files": [
    {
      "path": "src/components/input/index.tsx",
      "content": "'use client'\n\nimport type { ComponentPropsWithoutRef, Ref } from 'react'\nimport { cn } from '../../lib'\nimport { useFieldControl } from '../field/context'\n\n/** Shared chrome for text controls (Input, Textarea, custom selects). */\nexport const inputClassName = cn(\n  'flex w-full min-w-0 rounded-lg border border-line bg-surface px-3.5 font-body text-body text-fg',\n  'placeholder:text-fg-subtle',\n  'motion-safe:transition-[border-color,box-shadow,background-color] motion-safe:duration-[var(--hj-motion-duration-fast)] motion-safe:ease-out-expo',\n  'hover:border-line-strong',\n  'focus-visible:border-focus focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus/30',\n  'aria-invalid:border-danger aria-invalid:focus-visible:border-danger aria-invalid:focus-visible:ring-danger/30',\n  'disabled:cursor-not-allowed disabled:opacity-50 read-only:bg-surface-raised',\n)\n\nexport interface InputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size'> {\n  ref?: Ref<HTMLInputElement>\n}\n\nexport function Input({ className, type = 'text', ...props }: InputProps) {\n  const wired = useFieldControl(props)\n  return <input type={type} className={cn(inputClassName, 'h-11', className)} {...wired} />\n}\n",
      "type": "registry:ui",
      "target": "hj/components/input/index.tsx"
    }
  ],
  "cssVars": {},
  "type": "registry:ui"
}