File size: 4,670 Bytes
c9f1afa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat - RepoRover</title>
    <link href="https://www.svgrepo.com/show/530491/search-alt.svg" rel="icon" type="image/svg+xml">
    <script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Spline+Sans:wght@400;500;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="static/css/styles.css">
</head>
<body class="bg-gray-50 text-gray-900">
    <div class="flex flex-col h-screen">
        <header class="flex items-center justify-between px-6 py-4 border-b border-gray-200 bg-white">
          <div class="flex items-center gap-3">
            <img src="static/logo.svg" alt="RepoRover Logo" class="w-8 h-8">
            <h1 class="text-xl font-bold text-gray-900">
              <span class="font-normal text-gray-500">Repository:</span> <span id="chat-repo-name"></span>
            </h1>
          </div>
        </header>

        <main id="chat-messages" class="flex-1 overflow-y-auto p-6 space-y-8">
            <div class="flex items-start gap-4">
                <div class="flex-shrink-0 size-10 rounded-full bg-[var(--primary-color)] flex items-center justify-center text-white font-bold text-xl">
                    R
                </div>
                <div class="bg-white p-4 rounded-lg rounded-tl-none shadow-sm max-w-lg">
                    <p class="font-bold text-gray-900 mb-1">RepoRover</p>
                    <p class="text-gray-700" id="welcome-message">
                        Hello! I'm RepoRover, your AI assistant for understanding code repositories. How can I help you analyze the repository today?
                    </p>
                </div>
            </div>
        </main>

        <footer class="bg-white border-t border-gray-200 p-4">
            <div class="max-w-4xl mx-auto">
                <form id="chat-form" class="flex items-center gap-3">
                    <div class="flex-1 relative">
                        <textarea id="chat-input" 
                                  class="w-full min-h-12 max-h-32 p-3 pr-4 border border-gray-300 rounded-2xl resize-none focus:ring-2 focus:ring-[var(--primary-color)] focus:border-transparent transition-all duration-200 leading-relaxed scrollbar-none overflow-hidden" 
                                  placeholder="Ask a follow-up question about the repository..." 
                                  rows="1"
                                  style="field-sizing: content;"></textarea>
                    </div>
                    
                    <!-- Send button -->
                    <button type="submit" 
                            id="send-btn"
                            class="flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-[var(--primary-color)] text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-[var(--primary-color)] transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed transform hover:scale-105 active:scale-95"
                            disabled>
                        <svg class="w-5 h-5 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
                            <path d="M5 12h14M12 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path>
                        </svg>
                    </button>
                </form>
                
                <!-- Typing indicator -->
                <div id="typing-status" class="mt-2 px-1 opacity-0 transition-opacity duration-300">
                    <div class="flex items-center gap-2 text-sm text-gray-500">
                        <div class="flex items-center gap-1">
                            <div class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 0ms;"></div>
                            <div class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 150ms;"></div>
                            <div class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 300ms;"></div>
                        </div>
                        <span>RepoRover is thinking...</span>
                    </div>
                </div>
            </div>
        </footer>
    </div>

    <script src="static/js/chat.js"></script>
</body>
</html>