-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
105 lines (97 loc) · 4.25 KB
/
index.html
File metadata and controls
105 lines (97 loc) · 4.25 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
100
101
102
103
104
105
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>IronTrack Pro</title>
<!-- PWA Configuration -->
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#0f172a" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="IronTrack" />
<!-- iOS Icon -->
<link rel="apple-touch-icon" href="https://cdn-icons-png.flaticon.com/512/2548/2548533.png" />
<!-- Tailwind CSS via CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: 'var(--color-primary)',
secondary: 'var(--color-secondary)',
dark: 'var(--bg-body)',
surface: 'var(--bg-card)',
},
animation: {
'set-pop': 'set-pop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)',
'check-in': 'check-in 0.3s ease-out forwards',
},
keyframes: {
'set-pop': {
'0%': { transform: 'scale(1)' },
'50%': { transform: 'scale(1.03)', backgroundColor: 'rgba(16, 185, 129, 0.1)' },
'100%': { transform: 'scale(1)' },
},
'check-in': {
'0%': { transform: 'scale(0) rotate(-45deg)', opacity: '0' },
'100%': { transform: 'scale(1) rotate(0deg)', opacity: '1' },
}
}
}
}
}
</script>
<style>
:root {
--color-primary: #6366f1;
--color-secondary: #10b981;
--bg-body: #0f172a;
--bg-card: #1e293b;
--text-main: #f8fafc;
--text-muted: #94a3b8;
--border-color: #334155;
}
body {
background-color: var(--bg-body);
color: var(--text-main);
overscroll-behavior-y: none;
transition: background-color 0.3s ease, color 0.3s ease;
}
.text-white, .text-slate-100, .text-slate-200 { color: var(--text-main) !important; }
.text-gray-300, .text-gray-400, .text-gray-500, .text-slate-300, .text-slate-400, .text-slate-500 { color: var(--text-muted) !important; }
.border-slate-700, .border-slate-600 { border-color: var(--border-color) !important; }
.bg-dark, .bg-slate-900 { background-color: var(--bg-body) !important; }
.bg-surface, .bg-slate-800 { background-color: var(--bg-card) !important; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
#error-display { display: none; padding: 20px; color: #ef4444; background: #1e1e1e; position: absolute; top:0; left:0; width:100%; height:100vh; z-index: 9999; overflow: auto; }
</style>
<script type="importmap">
{
"imports": {
"react/": "https://aistudiocdn.com/react@^19.2.1/",
"react": "https://aistudiocdn.com/react@^19.2.1",
"@google/genai": "https://aistudiocdn.com/@google/genai@^1.31.0",
"lucide-react": "https://aistudiocdn.com/lucide-react@^0.556.0",
"recharts": "https://aistudiocdn.com/recharts@^3.5.1",
"vite": "https://aistudiocdn.com/vite@^7.2.6",
"@vitejs/plugin-react": "https://aistudiocdn.com/@vitejs/plugin-react@^5.1.1",
"react-dom": "https://aistudiocdn.com/react-dom@^19.2.1",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.1/"
}
}
</script>
</head>
<body>
<div id="error-display"></div>
<div id="root">
<div style="display: flex; justify-content: center; align-items: center; height: 100vh; flex-direction: column; color: #6366f1;">
<svg class="animate-spin" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>
<p style="margin-top: 20px; font-family: sans-serif;">Caricamento IronTrack...</p>
</div>
</div>
<script type="module" src="index.tsx"></script>
</body>
</html>