- Add comprehensive E2E functionality tests (33 tests):
- Navigation: page loading, desktop/mobile nav links, active states
- Contact Form: validation, submission, error handling
- Language Switching: locale changes, URL preservation, dropdown behavior
- Cross-functional: combined navigation and language flows
- Accessibility: ARIA attributes for nav, menu, form labels
- Fix Next.js 15 ssr:false in server component issue:
- Create ChatbotLoader client wrapper for dynamic import
- Update layout.tsx to use ChatbotLoader instead of direct dynamic import
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created Chatbot.tsx with floating chat bubble UI
- Implemented streaming SSE message handling
- Added visitor ID persistence via localStorage for session continuity
- Integrated with /api/chat endpoint for AI responses
- Added suggested prompts for empty chat state
- Implemented error handling with retry functionality
- Added clear chat functionality
- Created responsive design with mobile support
- Created index.ts barrel export for chat components
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Created ChatMessage.tsx component with:
- ChatMessage component for displaying user/assistant messages
- Styled differently based on role (user right-aligned, assistant left-aligned)
- Framer Motion animations for smooth appearance
- Streaming indicator for real-time response display
- TypingIndicator component for loading state
- WelcomeMessage component for empty chat state
- Timestamp formatting utility
- Responsive design following existing Tailwind patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>