'use client'
import { useState } from 'react'
import { Sparkles, X } from 'lucide-react'
import { cn } from '@/lib/utils'
import { ChatInput } from './chat-input'
import { ChatMessages } from './chat-messages'
import { ChatSuggestions } from './chat-suggestions'
import { RateLimitMessage } from './rate-limit-message'
import { useDocsChat } from './use-docs-chat'
/**
* Floating chat widget for documentation assistant
*
* UI Specs (uit FO):
* - Trigger button: 56x56px, amber gradient, Sparkles icon, fixed bottom-6 right-6
* - Panel: 384px breed, max 80vh, slide-in animatie
*/
export function DocsChatWidget() {
const [isOpen, setIsOpen] = useState(false)
const { messages, isLoading, isStreaming, error, isRateLimited, rateLimitResetTime, sendMessage, clearError, clearRateLimit } = useDocsChat()
return (
<>
{/* Floating trigger button */}
{/* Chat panel */}
{/* Header */}
EPD Assistent
Stel vragen over het EPD
{/* Error banner */}
{error && (
)}
{/* Messages */}
{/* Rate limit message */}
{isRateLimited && (
)}
{/* Suggestions - show only when just welcome message and not rate limited */}
{!isRateLimited && messages.length === 1 && messages[0].id === 'welcome' && (
)}
{/* Input */}
>
)
}