|
<!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> |
|
|
|
|
|
<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> |
|
|
|
|
|
<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> |