"use client"; import type { ChatStatus } from "ai"; import { Loader2Icon, SendIcon, SquareIcon, XIcon } from "lucide-react"; import type { ComponentProps, HTMLAttributes, KeyboardEventHandler, } from "react"; import { Children } from "react"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; import { cn } from "@/lib/utils"; export type PromptInputProps = HTMLAttributes; export const PromptInput = ({ className, ...props }: PromptInputProps) => (
); export type PromptInputTextareaProps = ComponentProps & { minHeight?: number; maxHeight?: number; disableAutoResize?: boolean; resizeOnNewLinesOnly?: boolean; }; export const PromptInputTextarea = ({ onChange, className, placeholder = "What would you like to know?", minHeight = 48, maxHeight = 164, disableAutoResize = false, resizeOnNewLinesOnly = false, ...props }: PromptInputTextareaProps) => { const handleKeyDown: KeyboardEventHandler = (e) => { if (e.key === "Enter") { if (e.nativeEvent.isComposing) { return; } if (e.shiftKey) { return; } e.preventDefault(); const form = e.currentTarget.form; const submitButton = form?.querySelector( 'button[type="submit"]' ) as HTMLButtonElement | null; if (submitButton?.disabled) { return; } form?.requestSubmit(); } }; return (