"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") { // Don't submit if IME composition is in progress if (e.nativeEvent.isComposing) { return; } if (e.shiftKey) { // Allow newline return; } // Submit on Enter (without Shift) e.preventDefault(); const form = e.currentTarget.form; if (form) { form.requestSubmit(); } } }; return (