{ "name": "ai-input-search", "type": "registry:component", "dependencies": [ "motion" ], "registryDependencies": [ "textarea" ], "files": [ { "type": "registry:component", "content": "\"use client\";\n\n/**\n * @author: @kokonutui\n * @description: AI Input Search\n * @version: 1.0.0\n * @date: 2025-06-26\n * @license: MIT\n * @website: https://kokonutui.com\n * @github: https://github.com/kokonut-labs/kokonutui\n */\n\nimport { Globe, Paperclip, Send } from \"lucide-react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { useState } from \"react\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { useAutoResizeTextarea } from \"@/hooks/use-auto-resize-textarea\";\nimport { cn } from \"@/lib/utils\";\n\ninterface AIInputSearchProps {\n placeholder?: string;\n searchLabel?: string;\n onSubmit?: (value: string) => void;\n className?: string;\n}\n\nexport default function AI_Input_Search({\n placeholder = \"Search the web...\",\n searchLabel = \"Search\",\n onSubmit,\n className,\n}: AIInputSearchProps) {\n const [value, setValue] = useState(\"\");\n const { textareaRef, adjustHeight } = useAutoResizeTextarea({\n minHeight: 52,\n maxHeight: 200,\n });\n const [showSearch, setShowSearch] = useState(true);\n const [isFocused, setIsFocused] = useState(false);\n\n const handleSubmit = () => {\n onSubmit?.(value);\n setValue(\"\");\n adjustHeight(true);\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n };\n\n const handleContainerClick = () => {\n if (textareaRef.current) {\n textareaRef.current.focus();\n }\n };\n\n return (\n