secutorpro commited on
Commit
b1f24ee
·
verified ·
1 Parent(s): c27b0a6

systeme gihub et mcp supabase

Browse files
Files changed (2) hide show
  1. components/navbar.js +56 -1
  2. login.html +188 -0
components/navbar.js CHANGED
@@ -53,11 +53,66 @@ class CustomNavbar extends HTMLElement {
53
  .nav-link.active i {
54
  color: #60a5fa;
55
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  @media (max-width: 768px) {
57
  .nav-container {
58
  flex-direction: column;
59
  gap: 1rem;
60
- }
61
  .nav-links {
62
  flex-wrap: wrap;
63
  justify-content: center;
 
53
  .nav-link.active i {
54
  color: #60a5fa;
55
  }
56
+ .user-menu {
57
+ position: relative;
58
+ display: flex;
59
+ align-items: center;
60
+ gap: 0.75rem;
61
+ cursor: pointer;
62
+ }
63
+ .avatar {
64
+ width: 32px;
65
+ height: 32px;
66
+ border-radius: 50%;
67
+ background: #60a5fa;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ font-weight: 600;
72
+ font-size: 0.875rem;
73
+ }
74
+ .user-dropdown {
75
+ position: absolute;
76
+ top: 100%;
77
+ right: 0;
78
+ background: rgba(31, 41, 55, 0.95);
79
+ backdrop-filter: blur(10px);
80
+ border: 1px solid rgba(75, 85, 99, 0.5);
81
+ border-radius: 0.5rem;
82
+ width: 200px;
83
+ padding: 0.5rem;
84
+ margin-top: 0.5rem;
85
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
86
+ z-index: 50;
87
+ display: none;
88
+ }
89
+ .user-dropdown.show {
90
+ display: block;
91
+ }
92
+ .dropdown-item {
93
+ display: flex;
94
+ align-items: center;
95
+ gap: 0.75rem;
96
+ padding: 0.75rem;
97
+ border-radius: 0.375rem;
98
+ color: #9ca3af;
99
+ text-decoration: none;
100
+ font-size: 0.875rem;
101
+ }
102
+ .dropdown-item:hover {
103
+ background: rgba(55, 65, 81, 0.5);
104
+ color: #fff;
105
+ }
106
+ .dropdown-divider {
107
+ height: 1px;
108
+ background: rgba(75, 85, 99, 0.5);
109
+ margin: 0.5rem 0;
110
+ }
111
  @media (max-width: 768px) {
112
  .nav-container {
113
  flex-direction: column;
114
  gap: 1rem;
115
+ }
116
  .nav-links {
117
  flex-wrap: wrap;
118
  justify-content: center;
login.html ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Login - ComSync Pro</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/feather-icons"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.net.min.js"></script>
11
+ <style>
12
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
13
+ body {
14
+ font-family: 'Inter', sans-serif;
15
+ }
16
+ .gradient-border {
17
+ background: linear-gradient(135deg, #667eea, #764ba2);
18
+ padding: 2px;
19
+ border-radius: 12px;
20
+ }
21
+ </style>
22
+ </head>
23
+ <body class="bg-gray-900 text-gray-100">
24
+ <div id="vanta-bg" class="fixed inset-0 z-0"></div>
25
+ <div class="relative z-10 min-h-screen flex items-center justify-center p-4">
26
+ <div class="gradient-border w-full max-w-md">
27
+ <div class="bg-gray-800 rounded-xl p-8 border border-gray-700/50 shadow-2xl">
28
+ <div class="text-center mb-8">
29
+ <div class="flex items-center justify-center space-x-3 mb-4">
30
+ <i data-feather="radio" class="w-10 h-10 text-blue-400"></i>
31
+ <h1 class="text-3xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent">ComSync Pro</h1>
32
+ </div>
33
+ <p class="text-gray-400">Sign in to access your dashboard</p>
34
+ </div>
35
+
36
+ <form id="login-form" class="space-y-6">
37
+ <div>
38
+ <label class="block text-sm font-medium mb-2">Email</label>
39
+ <input
40
+ type="email"
41
+ id="email"
42
+ class="w-full bg-gray-700/50 rounded-lg px-4 py-3 focus:outline-none focus:ring-2 focus:ring-blue-500"
43
+ placeholder="your.email@example.com"
44
+ required
45
+ >
46
+ </div>
47
+
48
+ <div>
49
+ <div class="flex justify-between items-center mb-2">
50
+ <label class="block text-sm font-medium">Password</label>
51
+ <a href="#" class="text-sm text-blue-400 hover:text-blue-300">Forgot password?</a>
52
+ </div>
53
+ <input
54
+ type="password"
55
+ id="password"
56
+ class="w-full bg-gray-700/50 rounded-lg px-4 py-3 focus:outline-none focus:ring-2 focus:ring-blue-500"
57
+ placeholder="••••••••"
58
+ required
59
+ >
60
+ </div>
61
+
62
+ <div class="flex items-center">
63
+ <input
64
+ type="checkbox"
65
+ id="remember"
66
+ class="rounded bg-gray-700 border-gray-600 text-blue-500 focus:ring-blue-500"
67
+ >
68
+ <label for="remember" class="ml-2 text-sm">Remember me</label>
69
+ </div>
70
+
71
+ <button
72
+ type="submit"
73
+ class="w-full bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 py-3 rounded-lg font-medium transition-all"
74
+ >
75
+ Sign In
76
+ </button>
77
+ </form>
78
+
79
+ <div class="my-6 flex items-center">
80
+ <div class="flex-grow border-t border-gray-700"></div>
81
+ <span class="mx-4 text-gray-500 text-sm">OR</span>
82
+ <div class="flex-grow border-t border-gray-700"></div>
83
+ </div>
84
+
85
+ <div class="space-y-4">
86
+ <button
87
+ id="github-login"
88
+ class="w-full flex items-center justify-center space-x-2 bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-colors"
89
+ >
90
+ <i data-feather="github" class="w-5 h-5"></i>
91
+ <span>Continue with GitHub</span>
92
+ </button>
93
+
94
+ <button
95
+ id="google-login"
96
+ class="w-full flex items-center justify-center space-x-2 bg-gray-700 hover:bg-gray-600 py-3 rounded-lg transition-colors"
97
+ >
98
+ <i data-feather="smartphone" class="w-5 h-5"></i>
99
+ <span>Continue with Google</span>
100
+ </button>
101
+ </div>
102
+
103
+ <p class="text-center text-gray-400 text-sm mt-8">
104
+ Don't have an account?
105
+ <a href="#" class="text-blue-400 hover:text-blue-300">Sign up</a>
106
+ </p>
107
+ </div>
108
+ </div>
109
+ </div>
110
+
111
+ <script>
112
+ // Initialize Vanta.js background
113
+ VANTA.NET({
114
+ el: "#vanta-bg",
115
+ mouseControls: true,
116
+ touchControls: true,
117
+ gyroControls: false,
118
+ minHeight: 200.00,
119
+ minWidth: 200.00,
120
+ scale: 1.00,
121
+ scaleMobile: 1.00,
122
+ color: 0x3a82ff,
123
+ backgroundColor: 0x111827,
124
+ points: 10.00,
125
+ maxDistance: 22.00,
126
+ spacing: 18.00
127
+ });
128
+
129
+ // Initialize Feather Icons
130
+ feather.replace();
131
+
132
+ // Form submission
133
+ document.getElementById('login-form').addEventListener('submit', function(e) {
134
+ e.preventDefault();
135
+ const email = document.getElementById('email').value;
136
+ const password = document.getElementById('password').value;
137
+
138
+ // Simulate login process
139
+ console.log('Logging in with:', email, password);
140
+
141
+ // Show loading state
142
+ const submitBtn = this.querySelector('button[type="submit"]');
143
+ const originalText = submitBtn.textContent;
144
+ submitBtn.innerHTML = '<i data-feather="loader" class="w-5 h-5 animate-spin"></i>';
145
+ feather.replace();
146
+
147
+ // Simulate API call
148
+ setTimeout(() => {
149
+ submitBtn.textContent = originalText;
150
+ feather.replace();
151
+
152
+ // Redirect to dashboard on success
153
+ window.location.href = '/';
154
+ }, 1500);
155
+ });
156
+
157
+ // GitHub login
158
+ document.getElementById('github-login').addEventListener('click', function() {
159
+ const btn = this;
160
+ const originalContent = btn.innerHTML;
161
+ btn.innerHTML = '<i data-feather="loader" class="w-5 h-5 animate-spin"></i>';
162
+ feather.replace();
163
+
164
+ // Simulate OAuth flow
165
+ setTimeout(() => {
166
+ btn.innerHTML = originalContent;
167
+ feather.replace();
168
+ window.location.href = '/';
169
+ }, 1500);
170
+ });
171
+
172
+ // Google login
173
+ document.getElementById('google-login').addEventListener('click', function() {
174
+ const btn = this;
175
+ const originalContent = btn.innerHTML;
176
+ btn.innerHTML = '<i data-feather="loader" class="w-5 h-5 animate-spin"></i>';
177
+ feather.replace();
178
+
179
+ // Simulate OAuth flow
180
+ setTimeout(() => {
181
+ btn.innerHTML = originalContent;
182
+ feather.replace();
183
+ window.location.href = '/';
184
+ }, 1500);
185
+ });
186
+ </script>
187
+ </body>
188
+ </html>