"use client" import React, { useState, useEffect, forwardRef, useImperativeHandle } from "react" import { Input } from "@/app/_components/ui/input" import { motion, AnimatePresence } from "framer-motion" import { Search, Send, BarChart2, Globe, Video, PlaneTakeoff, AudioLines, X } from "lucide-react" import { cn } from "../_lib/utils" import useDebounce from "../_hooks/use-debounce" import { toast } from "sonner" export interface Action { id: string label: string icon: React.ReactNode description?: string shortcut?: string category?: string onClick?: () => void prefix?: string regex?: RegExp placeholder?: string } export interface ActionSearchBarProps { actions?: Action[] defaultActions?: boolean autoFocus?: boolean isFloating?: boolean placeholder?: string onSearch?: (query: string) => void onActionSelect?: (actionId: string) => void onSuggestionSelect?: (suggestion: any) => void className?: string inputClassName?: string dropdownClassName?: string showShortcutHint?: boolean commandKey?: string value?: string onChange?: (value: string) => void activeActionId?: string | null onClearAction?: () => void showActiveAction?: boolean } const defaultActionsList: Action[] = [ { id: "1", label: "Book tickets", icon: , description: "Operator", shortcut: "⌘K", category: "Agent", }, { id: "2", label: "Summarize", icon: , description: "gpt-4o", shortcut: "⌘cmd+p", category: "Command", }, { id: "3", label: "Screen Studio", icon: