import React, { useState, useEffect } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { Brain, FileText, Upload, Sparkles, MessageSquare, Plus, ChevronRight } from 'lucide-react'; const HeroAnimation = () => { // Animation States: 'upload' | 'processing' | 'chat' | 'mindmap' const [step, setStep] = useState('upload'); // Cycle through the animation loop useEffect(() => { const sequence = async () => { while (true) { setStep('upload'); await new Promise(r => setTimeout(r, 2000)); // Show upload setStep('processing'); await new Promise(r => setTimeout(r, 1500)); // Show processing setStep('chat'); await new Promise(r => setTimeout(r, 2000)); // Show chat typing setStep('mindmap'); await new Promise(r => setTimeout(r, 4000)); // Show mind map // Reset loop setStep('reset'); await new Promise(r => setTimeout(r, 500)); } }; sequence(); }, []); return (
{/* Window Controls */}
vertical.ai / notebook
{/* 1. Sidebar (Static) */}
New Note
{[1, 2, 3].map((i) => (
))}
{/* Active Paper Upload */} {step !== 'reset' && (
Attention_Is_All_You_Need.pdf
)}
{/* 2. Main Area */}
{/* Chat Area */}
{/* User Message */} {(step === 'processing' || step === 'chat' || step === 'mindmap') && (
Explain the Transformer architecture logic.
)}
{/* AI Response */} {(step === 'chat' || step === 'mindmap') && (
Vertical AI Verified Sources

The Transformer architecture replaces RNNs with self-attention mechanisms.

)}
{/* Processing Overlay */} {step === 'processing' && (
Analyzing Knowledge Graph...
)}
{/* Mind Map Overlay (Pops up at end) */} {step === 'mindmap' && (
Concept Map
{/* Mock Graph Nodes */}
Attention {/* Satellite Nodes */} {[0, 1, 2].map((i) => (
))} {/* Connecting Lines */}
)}
); }; export default HeroAnimation;