"use client"; import * as React from "react"; interface FloatingChatButtonProps { onClick: () => void; isOpen?: boolean; unreadCount?: number; position?: "bottom-right" | "bottom-left" | "top-right" | "top-left"; size?: "sm" | "md" | "lg"; color?: string; className?: string; disabled?: boolean; ariaLabel?: string; } export function FloatingChatButton({ onClick, isOpen = false, unreadCount = 0, position = "bottom-right", size = "md", color = "#3B82F6", className = "", disabled = false, ariaLabel = "Open chat", }: FloatingChatButtonProps) { // Position classes const positionClasses = { "bottom-right": "bottom-4 right-4", "bottom-left": "bottom-4 left-4", "top-right": "top-4 right-4", "top-left": "top-4 left-4", }; // Size classes const sizeClasses = { sm: "w-12 h-12 text-sm", md: "w-14 h-14 text-base", lg: "w-16 h-16 text-lg", }; const baseClasses = [ "fixed z-50 rounded-full shadow-lg", "flex items-center justify-center", "transition-all duration-200 ease-in-out", "hover:scale-110 focus:scale-110", "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500", isOpen ? "rotate-45" : "", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:shadow-xl", positionClasses[position], sizeClasses[size], className, ] .filter(Boolean) .join(" "); return ( ); } // Type exports for compatibility export interface Message { id: string; text: string; sender: "user" | "bot"; timestamp: Date; type?: "text" | "image" | "file"; metadata?: Record; } export interface AgentConfig { id: string; name: string; description: string; systemPrompt: string; model: string; temperature: number; maxTokens: number; enabled: boolean; createdAt: Date; updatedAt: Date; }