{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "agent-text-input",
  "type": "registry:ui",
  "description": "Text input for sending messages to the agent",
  "files": [
    {
      "path": "components/ui/AgentTextInput.tsx",
      "content": "import { useState } from \"react\";\nimport { useAgentConversation, useAgentState } from \"@deepgram/react\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface AgentTextInputProps {\n  className?: string;\n  placeholder?: string;\n  disabled?: boolean;\n  onSend?: (text: string) => void;\n  submitButton?: React.ReactNode;\n}\n\nconst SendIcon = () => (\n  <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n    <path d=\"m22 2-7 20-4-9-9-4Z\" />\n    <path d=\"M22 2 11 13\" />\n  </svg>\n);\n\nexport function AgentTextInput({\n  className,\n  placeholder = \"Type a message…\",\n  disabled = false,\n  onSend,\n  submitButton,\n}: AgentTextInputProps) {\n  const [value, setValue] = useState(\"\");\n  const { sendUserMessage } = useAgentConversation();\n  const { isActive } = useAgentState();\n\n  function handleSend() {\n    const text = value.trim();\n    if (!text || !isActive || disabled) return;\n    sendUserMessage(text);\n    onSend?.(text);\n    setValue(\"\");\n  }\n\n  const isDisabled = disabled || !isActive;\n\n  return (\n    <div className={cn(\"dg:flex dg:items-center dg:gap-2 dg:flex-1\", className)} data-agent-text-input>\n      <Textarea\n        value={value}\n        onChange={(e) => setValue(e.target.value)}\n        onKeyDown={(e) => {\n          if (e.key === \"Enter\" && !e.shiftKey) { e.preventDefault(); handleSend(); }\n        }}\n        placeholder={placeholder}\n        disabled={isDisabled}\n        aria-label=\"Message input\"\n        rows={1}\n        className=\"dg:min-h-[42px] dg:max-h-[120px] dg:resize-none dg:py-2.5 dg:text-sm\"\n      />\n      {submitButton !== undefined ? (\n        <Button\n          variant=\"ghost\"\n          size=\"icon\"\n          onClick={handleSend}\n          disabled={isDisabled || !value.trim()}\n          aria-label=\"Send\"\n          className=\"dg:shrink-0 dg:text-muted-foreground dg:hover:text-primary\"\n        >\n          {submitButton}\n        </Button>\n      ) : (\n        <Button\n          variant=\"ghost\"\n          size=\"icon\"\n          onClick={handleSend}\n          disabled={isDisabled || !value.trim()}\n          aria-label=\"Send\"\n          className=\"dg:shrink-0 dg:text-muted-foreground dg:hover:text-primary\"\n        >\n          <SendIcon />\n        </Button>\n      )}\n    </div>\n  );\n}\n",
      "type": "registry:ui",
      "target": ""
    }
  ],
  "dependencies": [
    "@deepgram/react"
  ],
  "registryDependencies": [
    "utils",
    "button",
    "textarea"
  ]
}
