Spaces:
Sleeping
Sleeping
File size: 6,009 Bytes
86a637a | 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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WHATREPO</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Syne:wght@400;600;700;800&display=swap" rel="stylesheet" />
</head>
<body>
<!-- βββ HEADER βββ -->
<header id="header">
<div class="logo">
<div class="logo-mark">
<svg width="28" height="28" viewBox="0 0 28 28" fill="none">
<rect x="1" y="1" width="11" height="11" rx="2.5" fill="var(--accent)" />
<rect x="16" y="1" width="11" height="11" rx="2.5" fill="var(--accent)" opacity="0.4"/>
<rect x="1" y="16" width="11" height="11" rx="2.5" fill="var(--accent)" opacity="0.4"/>
<rect x="16" y="16" width="11" height="11" rx="2.5" fill="var(--accent)"/>
</svg>
</div>
<span class="logo-text">WHATREPO</span>
</div>
<div class="header-right">
<div class="status-pill" id="statusPill">
<span class="status-dot" id="statusDot"></span>
<span class="status-label" id="statusLabel">idle</span>
</div>
</div>
</header>
<!-- βββ WARNING BANNER βββ -->
<div id="warningBanner" class="warning-banner hidden">
<span class="warn-icon">β </span>
<span>Repository too large to fully analyse β accuracy may be limited</span>
<button id="dismissWarning" aria-label="Dismiss">β</button>
</div>
<!-- βββ MAIN βββ -->
<main id="mainSection">
<!-- PAGE 1: Landing -->
<section id="landingPage" class="page active">
<div class="noise-overlay"></div>
<div class="grid-bg"></div>
<div class="glow-orb orb-1"></div>
<div class="glow-orb orb-2"></div>
<div class="landing-inner">
<div class="hero-eyebrow">
<span class="eyebrow-dot"></span>
<span>GitHub Intelligence</span>
</div>
<h1 class="hero-title">
<span class="title-line">Understand</span>
<span class="title-line accent-line">Any Repo.</span>
<span class="title-line">Instantly.</span>
</h1>
<p class="hero-sub">Paste a GitHub URL and talk to the codebase like a senior developer who's read everything.</p>
<div class="input-card">
<div class="input-wrap">
<span class="input-icon">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" fill="currentColor"/>
</svg>
</span>
<input
type="text"
id="repoInput"
placeholder="https://github.com/owner/repository"
autocomplete="off"
spellcheck="false"
/>
</div>
<button id="analyseBtn" class="analyse-btn">
<span>Analyse</span>
<svg class="btn-arrow-icon" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3 8H13M13 8L9 4M13 8L9 12" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
<div class="landing-hints">
<span class="hint-chip">π Architecture overview</span>
<span class="hint-chip">π¦ Dependencies</span>
<span class="hint-chip">π How to contribute</span>
<span class="hint-chip">β‘ Key patterns</span>
</div>
</div>
</section>
<!-- PAGE 2: Processing -->
<section id="processingPage" class="page">
<div class="processing-inner">
<div class="processing-header">
<div class="proc-spinner">
<svg class="spinner-ring" viewBox="0 0 50 50">
<circle cx="25" cy="25" r="20" fill="none" stroke="var(--accent)" stroke-width="2.5" stroke-dasharray="80 45" stroke-linecap="round"/>
</svg>
</div>
<div class="proc-meta">
<span class="proc-title">Analysing Repository</span>
<span class="proc-subtitle" id="procSubtitle">Connecting to GitHubβ¦</span>
</div>
</div>
<div id="stepsContainer" class="steps-container"></div>
</div>
</section>
<!-- PAGE 3: Chat -->
<section id="chatPage" class="page">
<div id="chatMessages" class="chat-messages"></div>
</section>
</main>
<!-- βββ FOOTER βββ -->
<footer id="footer" class="hidden">
<div class="chat-input-card">
<textarea
id="chatInput"
placeholder="Ask anything about this repositoryβ¦"
rows="1"
autocomplete="on"
spellcheck="false"
></textarea>
<button id="sendBtn" class="send-btn" aria-label="Send">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none">
<path d="M16 2L2 7.5L8 9.5M16 2L10.5 16L8 9.5M16 2L8 9.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
<div class="footer-hint">Press <kbd>Enter</kbd> to send Β· <kbd>Shift+Enter</kbd> for new line</div>
</footer>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js"></script>
<script src="app.js"></script>
</body>
</html>
|