{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input-group",
  "title": "Input Group",
  "description": "A composable inset field with addons, actions, and text or textarea controls.",
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/input-group.tsx",
      "content": "import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n  return <div role=\"group\" data-slot=\"input-group\" className={cn(\n    \"flex min-h-10 w-full min-w-0 items-center gap-2 rounded-[var(--neu-radius-control)] border border-transparent bg-[var(--neu-surface)] [background-image:var(--neu-fill-inset)] p-1 shadow-[var(--neu-shadow-inset)] transition-[border-color,box-shadow] duration-[var(--neu-duration)] motion-reduce:transition-none focus-within:border-[var(--ring)] focus-within:outline-2 focus-within:outline-solid focus-within:outline-offset-2 focus-within:outline-[color:var(--ring)] has-[[data-slot=input-group-control][aria-invalid=true]]:border-[var(--destructive)] has-[[data-slot=input-group-control][aria-invalid=true]]:outline-[color:var(--neu-error-text)] has-[[data-slot=input-group-control]:disabled]:opacity-60 has-[[data-slot=input-group-control]:disabled]:shadow-none has-[[data-slot=input-group-control]:disabled]:[background-image:none] has-[[data-slot=input-group-control]:disabled]:border-[color:var(--input)] [&>[data-slot=input-group-addon]+[data-slot=input-group-control]]:ps-0\",\n    className,\n  )} {...props} />;\n}\nfunction InputGroupAddon({ className, ...props }: React.ComponentProps<\"div\">) {\n  return <div data-slot=\"input-group-addon\" className={cn(\"flex shrink-0 items-center gap-2 px-2 first:pe-0 last:ps-0 text-sm font-normal tracking-normal text-[var(--muted-foreground)] [&_svg]:size-4 [&_svg]:shrink-0\",className)} {...props} />;\n}\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n  return <span data-slot=\"input-group-text\" className={cn(\"text-sm font-normal tracking-normal leading-5 text-[var(--muted-foreground)]\",className)} {...props} />;\n}\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n  return <input data-slot=\"input-group-control\" className={cn(\"h-7.5 min-w-0 flex-1 border-0 bg-transparent px-2 py-1 text-sm font-normal tracking-normal leading-5 text-[var(--foreground)] outline-none placeholder:text-[var(--muted-foreground)] disabled:cursor-not-allowed\",className)} {...props} />;\n}\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n  return <textarea data-slot=\"input-group-control\" className={cn(\"min-h-24 min-w-0 flex-1 resize-y border-0 bg-transparent px-2 py-2 text-sm font-normal tracking-normal leading-6 text-[var(--foreground)] outline-none placeholder:text-[var(--muted-foreground)] disabled:cursor-not-allowed\",className)} {...props} />;\n}\nfunction InputGroupButton({ className, type=\"button\", ...props }: React.ComponentProps<\"button\">) {\n  return <button type={type} data-slot=\"input-group-button\" className={cn(\"inline-flex h-7.5 shrink-0 items-center justify-center gap-2 rounded-[var(--neu-radius-small)] border border-[color:var(--neu-edge)] bg-[var(--neu-surface)] px-3 text-xs font-semibold text-[var(--foreground)] shadow-[var(--neu-shadow-raised-sm)] outline-hidden transition-shadow duration-[var(--neu-duration)] motion-reduce:transition-none hover:shadow-[var(--neu-shadow-hover)] active:shadow-[var(--neu-shadow-inset)] focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-[-2px] focus-visible:outline-[color:var(--ring)] disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none [&_svg]:size-4 [&_svg]:shrink-0\",className)} {...props} />;\n}\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}