Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Dashboard - Wash</title> | |
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | |
| <link rel="stylesheet" href="../style.css"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <script> | |
| tailwind.config = { | |
| theme: { | |
| extend: { | |
| colors: { | |
| primary: { | |
| 50: '#eff6ff', | |
| 100: '#dbeafe', | |
| 500: '#3b82f6', | |
| 600: '#2563eb', | |
| 700: '#1d4ed8' | |
| } | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| </head> | |
| <body class="bg-gray-50"> | |
| <div class="flex h-screen"> | |
| <!-- Sidebar --> | |
| <div class="w-64 bg-white border-r border-gray-200 flex flex-col"> | |
| <!-- Logo --> | |
| <div class="p-6 border-b border-gray-200"> | |
| <logo-player></logo-player> | |
| <div class="text-sm text-gray-500 mt-1">Clean docs for LLMs</div> | |
| </div> | |
| <!-- Navigation --> | |
| <nav class="flex-1 p-4"> | |
| <ul class="space-y-2"> | |
| <li> | |
| <a href="#" class="flex items-center px-3 py-2 text-sm font-medium text-primary-600 bg-primary-50 rounded-md"> | |
| <i data-feather="home" class="w-5 h-5 mr-3"></i> | |
| Dashboard | |
| </a> | |
| </li> | |
| <li> | |
| <a href="usage.html" class="flex items-center px-3 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-md transition"> | |
| <i data-feather="activity" class="w-5 h-5 mr-3"></i> | |
| Usage | |
| </a> | |
| </li> | |
| <li> | |
| <a href="api-keys.html" class="flex items-center px-3 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-md transition"> | |
| <i data-feather="key" class="w-5 h-5 mr-3"></i> | |
| API Keys | |
| </a> | |
| </li> | |
| <li> | |
| <a href="#" class="flex items-center px-3 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-md transition"> | |
| <i data-feather="credit-card" class="w-5 h-5 mr-3"></i> | |
| Billing | |
| </a> | |
| </li> | |
| <li> | |
| <a href="#" class="flex items-center px-3 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 hover:bg-gray-50 rounded-md transition"> | |
| <i data-feather="file-text" class="w-5 h-5 mr-3"></i> | |
| Logs | |
| </a> | |
| </li> | |
| </ul> | |
| </nav> | |
| <!-- User info --> | |
| <div class="p-4 border-t border-gray-200"> | |
| <div class="flex items-center"> | |
| <div class="w-8 h-8 bg-primary-100 rounded-full flex items-center justify-center"> | |
| <span class="text-primary-600 text-sm font-medium">JD</span> | |
| </div> | |
| <div class="ml-3"> | |
| <div class="text-sm font-medium text-gray-900">john@company.com</div> | |
| <div class="text-xs text-gray-500">Starter Plan</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Main Panel --> | |
| <div class="flex-1 flex flex-col overflow-hidden"> | |
| <!-- Top Bar --> | |
| <div class="bg-white border-b border-gray-200 px-6 py-4"> | |
| <div class="flex items-center justify-between"> | |
| <div class="flex items-center space-x-6"> | |
| <div> | |
| <span class="text-sm text-gray-600">Credits left:</span> | |
| <span class="font-semibold text-gray-900">4,237 / 5,000</span> | |
| <span class="text-sm text-gray-500">this month</span> | |
| </div> | |
| <div> | |
| <span class="text-sm text-gray-600">Current plan:</span> | |
| <span class="font-semibold text-gray-900">Starter – $49/mo</span> | |
| </div> | |
| </div> | |
| <button class="bg-primary-600 text-white px-6 py-2 rounded-lg font-semibold hover:bg-primary-700 transition"> | |
| Upgrade – lock 50% discount | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Content Area --> | |
| <div class="flex-1 overflow-auto p-6"> | |
| <!-- Drop Zone (shown when empty) --> | |
| <div id="drop-zone" class="drop-zone border-2 border-dashed border-gray-300 rounded-lg p-12 text-center bg-white mb-6"> | |
| <div class="mx-auto w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4"> | |
| <i data-feather="upload-cloud" class="w-8 h-8 text-gray-400"></i> | |
| </div> | |
| <h3 class="text-lg font-semibold text-gray-900 mb-2">Drag & drop files here</h3> | |
| <p class="text-gray-600 mb-4">or click to upload</p> | |
| <p class="text-sm text-gray-500 mb-6">Supports PDF, DOCX, PPTX, images, and text files</p> | |
| <input type="file" id="file-input" multiple class="hidden" accept=".pdf,.docx,.pptx,.jpg,.jpeg,.png,.gif,.txt"> | |
| <button onclick="document.getElementById('file-input').click()" class="bg-primary-600 text-white px-6 py-2 rounded-lg font-medium hover:bg-primary-700 transition"> | |
| Choose Files | |
| </button> | |
| </div> | |
| <!-- Jobs Table --> | |
| <div class="bg-white rounded-lg shadow-sm border border-gray-200"> | |
| <div class="px-6 py-4 border-b border-gray-200"> | |
| <h3 class="text-lg font-semibold text-gray-900">Recent Jobs</h3> | |
| </div> | |
| <div class="overflow-x-auto"> | |
| <table class="w-full"> | |
| <thead class="bg-gray-50 border-b border-gray-200"> | |
| <tr> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">File name</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Threats found</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Time</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Output</th> | |
| </tr> | |
| </thead> | |
| <tbody id="jobs-table" class="bg-white divide-y divide-gray-200"> | |
| <!-- Jobs will be populated here --> | |
| </tbody> | |
| </table> | |
| </div> | |
| <div class="px-6 py-4 border-t border-gray-200 flex justify-between items-center"> | |
| <button class="text-primary-600 hover:text-primary-700 font-medium">Load more</button> | |
| <button class="text-gray-600 hover:text-gray-700 font-medium">Export CSV</button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Right Panel (Job Details) --> | |
| <div id="job-details-panel" class="w-96 bg-white border-l border-gray-200 transform translate-x-full transition-transform duration-300 ease-in-out overflow-auto"> | |
| <div class="p-6"> | |
| <div class="flex items-center justify-between mb-6"> | |
| <h3 class="text-lg font-semibold text-gray-900">Job Details</h3> | |
| <button onclick="closeJobDetails()" class="text-gray-400 hover:text-gray-600"> | |
| <i data-feather="x" class="w-6 h-6"></i> | |
| </button> | |
| </div> | |
| <div id="job-details-content"> | |
| <div class="text-center text-gray-500 py-8"> | |
| <i data-feather="file" class="w-12 h-12 mx-auto mb-4 text-gray-300"></i> | |
| <p>Select a job to view details</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <script src="../components/logo-player.js"></script> | |
| <script src="../script.js"></script> | |
| <script src="dashboard.js"></script> | |
| <script>feather.replace();</script> | |
| </body> | |
| </html> | |