Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
99 lines (99 loc) · 3.2 KB
/
Copy pathindex.html
File metadata and controls
99 lines (99 loc) · 3.2 KB
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
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>FooSimpAI</title>
<!-- Tailwind via CDN with Configuration -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
colors: {
border: "hsl(var(--border))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
}
}
}
}
</script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Inter', sans-serif;
}
/* Custom Scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: #a1a1aa;
border-radius: 4px;
}
.dark ::-webkit-scrollbar-thumb {
background: #52525b;
}
::-webkit-scrollbar-thumb:hover {
background: #71717a;
}
#error-display {
display: none;
position: fixed;
bottom: 20px;
right: 20px;
max-width: 400px;
background: #7f1d1d;
color: #fecaca;
padding: 16px;
border-radius: 8px;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
z-index: 9999;
font-family: monospace;
font-size: 12px;
}
</style>
<script type="importmap">
{
"imports": {
"react/": "https://esm.sh/react@^19.2.3/",
"react": "https://esm.sh/react@^19.2.3",
"react-dom/": "https://esm.sh/react-dom@^19.2.3/",
"lucide-react": "https://esm.sh/lucide-react@^0.561.0",
"@vitejs/plugin-react": "https://esm.sh/@vitejs/plugin-react@^5.1.2",
"vite": "https://esm.sh/vite@^7.2.7"
}
}
</script>
</head>
<body class="bg-slate-100 text-slate-900 dark:bg-neutral-950 dark:text-slate-100 transition-colors duration-200">
<div id="root">
<!-- Loading State -->
<div class="fixed inset-0 flex flex-col items-center justify-center text-slate-500 bg-black">
<svg class="animate-spin h-10 w-10 text-blue-600 mb-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
</svg>
<p class="font-medium text-slate-400">Loading Interface...</p>
</div>
</div>
<div id="error-display"></div>
<script>
window.addEventListener('error', function(event) {
const el = document.getElementById('error-display');
if (el) {
el.style.display = 'block';
el.innerText = 'Error: ' + event.message;
}
});
</script>
<!-- Vite entry point -->
<script type="module" src="./index.tsx"></script>
</body>
</html>