PhoenixAgent / app /templates /base.html
VarunRS5457
Add HF Spaces deployment, batch processing, session cleanup, and UI enhancements
436fb0c
Raw
History Blame Contribute Delete
4.61 kB
<!DOCTYPE html>
<html lang="en" class="h-full">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Aseesa Ingestion Agent{% endblock %}</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
brand: {
50: '#f0f7ff',
100: '#e0effe',
200: '#bae0fd',
300: '#7cc8fb',
400: '#36adf6',
500: '#0c93e7',
600: '#0074c5',
700: '#015da0',
800: '#065084',
900: '#0b436d',
950: '#072b49',
}
}
}
}
}
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
body { font-family: 'Inter', sans-serif; }
.drop-zone {
transition: all 0.3s ease;
}
.drop-zone.dragover {
border-color: #0c93e7;
background-color: #f0f7ff;
transform: scale(1.01);
}
.fade-in {
animation: fadeIn 0.4s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.slide-up {
animation: slideUp 0.5s ease-out;
}
@keyframes slideUp {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.htmx-indicator {
display: none;
}
.htmx-request .htmx-indicator {
display: inline-flex;
}
.htmx-request.htmx-indicator {
display: inline-flex;
}
.spinner {
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.classification-btn {
transition: all 0.2s ease;
}
.classification-btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.classification-btn.selected {
ring: 2px;
transform: scale(1.02);
}
</style>
</head>
<body class="h-full bg-gray-50">
<!-- Nav -->
<nav class="bg-white border-b border-gray-200 sticky top-0 z-50">
<div class="max-w-6xl mx-auto px-6 py-4 flex items-center justify-between">
<a href="/" class="flex items-center gap-3">
<div class="w-8 h-8 bg-brand-600 rounded-lg flex items-center justify-center">
<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7v10c0 2 1 3 3 3h10c2 0 3-1 3-3V7c0-2-1-3-3-3H7C5 4 4 5 4 7z"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6M12 9v6"/>
</svg>
</div>
<span class="text-lg font-semibold text-gray-900">Aseesa Ingestion Agent</span>
</a>
<div class="flex items-center gap-6 text-sm">
<a href="/" class="text-gray-600 hover:text-brand-600 transition-colors">Upload</a>
<a href="/ui/batch" class="text-gray-600 hover:text-brand-600 transition-colors">Batch</a>
<a href="/health" class="text-gray-600 hover:text-brand-600 transition-colors">API Health</a>
</div>
</div>
</nav>
<!-- Content -->
<main class="{% block main_class %}max-w-6xl mx-auto px-6 py-8{% endblock %}">
{% block content %}{% endblock %}
</main>
<!-- Footer (hidden when page uses full-height layout) -->
{% block footer %}
<footer class="border-t border-gray-100 mt-auto">
<div class="max-w-6xl mx-auto px-6 py-4 text-center text-xs text-gray-400">
Aseesa Inc &mdash; Internal Tool &mdash; GxP Compliant
</div>
</footer>
{% endblock %}
{% block scripts %}{% endblock %}
</body>
</html>