offerpk3 commited on
Commit
414b6fa
·
verified ·
1 Parent(s): 504806c

Add 2 files

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +565 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Bigwhale
3
- emoji: 📊
4
- colorFrom: red
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: bigwhale
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: green
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,565 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>FraudShield Pro Dashboard</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ @keyframes pulse {
11
+ 0%, 100% { opacity: 1; }
12
+ 50% { opacity: 0.5; }
13
+ }
14
+ .pulse-animation {
15
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
16
+ }
17
+ .trend-btn.active {
18
+ @apply bg-blue-600 text-white shadow-md;
19
+ }
20
+ .card-hover {
21
+ transition: all 0.3s ease;
22
+ }
23
+ .card-hover:hover {
24
+ transform: translateY(-2px);
25
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
26
+ }
27
+ .risk-high {
28
+ background-color: rgba(220, 38, 38, 0.1);
29
+ border-left: 4px solid rgb(220, 38, 38);
30
+ }
31
+ .risk-medium {
32
+ background-color: rgba(234, 179, 8, 0.1);
33
+ border-left: 4px solid rgb(234, 179, 8);
34
+ }
35
+ .risk-low {
36
+ background-color: rgba(34, 197, 94, 0.1);
37
+ border-left: 4px solid rgb(34, 197, 94);
38
+ }
39
+ .chart-container {
40
+ position: relative;
41
+ height: 250px;
42
+ width: 100%;
43
+ }
44
+ .chart-bar {
45
+ position: absolute;
46
+ bottom: 0;
47
+ width: 30px;
48
+ transition: height 0.5s ease;
49
+ }
50
+ </style>
51
+ </head>
52
+ <body class="bg-gray-50">
53
+ <div class="min-h-screen p-6">
54
+ <!-- Header -->
55
+ <div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-8">
56
+ <div>
57
+ <h1 class="text-3xl font-bold text-gray-800">FraudShield Pro</h1>
58
+ <p class="text-gray-500">Real-time fraud detection dashboard</p>
59
+ </div>
60
+ <div class="mt-4 md:mt-0 flex items-center space-x-4">
61
+ <div class="relative">
62
+ <i class="fas fa-bell absolute left-3 top-3 text-gray-400"></i>
63
+ <div class="absolute -top-1 -right-1 h-4 w-4 bg-red-500 rounded-full flex items-center justify-center text-white text-xs">3</div>
64
+ <button class="pl-10 pr-4 py-2 bg-white rounded shadow hover:bg-gray-50 focus:outline-none">
65
+ Alerts
66
+ </button>
67
+ </div>
68
+ <div class="flex items-center space-x-2">
69
+ <div class="h-8 w-8 rounded-full bg-blue-500 flex items-center justify-center text-white">
70
+ <span>AD</span>
71
+ </div>
72
+ <span class="font-medium">Admin</span>
73
+ </div>
74
+ </div>
75
+ </div>
76
+
77
+ <!-- Stats Cards -->
78
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
79
+ <div class="bg-white p-6 rounded-xl shadow card-hover">
80
+ <div class="flex justify-between items-start">
81
+ <div>
82
+ <p class="text-gray-500 font-medium">Fraud Attempts</p>
83
+ <h2 class="text-3xl font-bold mt-2">87</h2>
84
+ <p class="text-sm text-gray-500 mt-1">+12% from last week</p>
85
+ </div>
86
+ <div class="bg-red-100 p-3 rounded-full">
87
+ <i class="fas fa-shield-alt text-red-500 text-xl"></i>
88
+ </div>
89
+ </div>
90
+ <div class="mt-4 pt-4 border-t border-gray-100 flex justify-between items-center">
91
+ <span class="text-sm text-gray-500">Last 24 hours</span>
92
+ <a href="fraud-attempts.html" class="text-blue-600 hover:underline text-sm font-medium">View all</a>
93
+ </div>
94
+ </div>
95
+
96
+ <div class="bg-white p-6 rounded-xl shadow card-hover">
97
+ <div class="flex justify-between items-start">
98
+ <div>
99
+ <p class="text-gray-500 font-medium">Active Cards</p>
100
+ <h2 class="text-3xl font-bold mt-2">3,542</h2>
101
+ <p class="text-sm text-gray-500 mt-1">+5% from last month</p>
102
+ </div>
103
+ <div class="bg-blue-100 p-3 rounded-full">
104
+ <i class="far fa-credit-card text-blue-500 text-xl"></i>
105
+ </div>
106
+ </div>
107
+ <div class="mt-4 pt-4 border-t border-gray-100 flex justify-between items-center">
108
+ <span class="text-sm text-gray-500">Monitored</span>
109
+ <a href="active-cards.html" class="text-blue-600 hover:underline text-sm font-medium">Manage</a>
110
+ </div>
111
+ </div>
112
+
113
+ <div class="bg-white p-6 rounded-xl shadow card-hover">
114
+ <div class="flex justify-between items-start">
115
+ <div>
116
+ <p class="text-gray-500 font-medium">Blocked IPs</p>
117
+ <h2 class="text-3xl font-bold mt-2">42</h2>
118
+ <p class="text-sm text-gray-500 mt-1">+8 new today</p>
119
+ </div>
120
+ <div class="bg-purple-100 p-3 rounded-full">
121
+ <i class="fas fa-ban text-purple-500 text-xl"></i>
122
+ </div>
123
+ </div>
124
+ <div class="mt-4 pt-4 border-t border-gray-100 flex justify-between items-center">
125
+ <span class="text-sm text-gray-500">Current blacklist</span>
126
+ <a href="blocked-ips.html" class="text-blue-600 hover:underline text-sm font-medium">View list</a>
127
+ </div>
128
+ </div>
129
+
130
+ <div class="bg-white p-6 rounded-xl shadow card-hover">
131
+ <div class="flex justify-between items-start">
132
+ <div>
133
+ <p class="text-gray-500 font-medium">Prevented Loss</p>
134
+ <h2 class="text-3xl font-bold mt-2">$124K</h2>
135
+ <p class="text-sm text-gray-500 mt-1">Potential fraud</p>
136
+ </div>
137
+ <div class="bg-green-100 p-3 rounded-full">
138
+ <i class="fas fa-dollar-sign text-green-500 text-xl"></i>
139
+ </div>
140
+ </div>
141
+ <div class="mt-4 pt-4 border-t border-gray-100 flex justify-between items-center">
142
+ <span class="text-sm text-gray-500">This month</span>
143
+ <a href="savings.html" class="text-blue-600 hover:underline text-sm font-medium">Details</a>
144
+ </div>
145
+ </div>
146
+ </div>
147
+
148
+ <!-- Main Content Area -->
149
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8">
150
+ <!-- Fraud Detection Trend -->
151
+ <div class="lg:col-span-2 bg-white p-6 rounded-xl shadow">
152
+ <div class="flex justify-between items-center mb-6">
153
+ <div>
154
+ <h2 class="text-xl font-bold">Fraud Detection Trend</h2>
155
+ <p class="text-gray-500">Last 30 days activity</p>
156
+ </div>
157
+ <div class="space-x-2">
158
+ <button class="trend-btn px-3 py-1 border rounded-lg text-sm hover:bg-gray-50" data-period="week">Week</button>
159
+ <button class="trend-btn px-3 py-1 border rounded-lg text-sm hover:bg-gray-50" data-period="month">Month</button>
160
+ <button class="trend-btn active px-3 py-1 border rounded-lg text-sm" data-period="year">Year</button>
161
+ </div>
162
+ </div>
163
+
164
+ <div class="chart-container" id="trendChart">
165
+ <!-- Chart will be generated by JavaScript -->
166
+ </div>
167
+
168
+ <div class="mt-6 flex justify-center space-x-6">
169
+ <div class="flex items-center">
170
+ <div class="h-3 w-3 rounded-full bg-red-500 mr-2"></div>
171
+ <span class="text-sm text-gray-600">High Risk</span>
172
+ </div>
173
+ <div class="flex items-center">
174
+ <div class="h-3 w-3 rounded-full bg-yellow-500 mr-2"></div>
175
+ <span class="text-sm text-gray-600">Medium Risk</span>
176
+ </div>
177
+ <div class="flex items-center">
178
+ <div class="h-3 w-3 rounded-full bg-green-500 mr-2"></div>
179
+ <span class="text-sm text-gray-600">Low Risk</span>
180
+ </div>
181
+ </div>
182
+ </div>
183
+
184
+ <!-- System Status -->
185
+ <div class="bg-white p-6 rounded-xl shadow">
186
+ <h2 class="text-xl font-bold mb-6">System Status</h2>
187
+
188
+ <div class="space-y-4">
189
+ <div>
190
+ <div class="flex justify-between items-center mb-1">
191
+ <span class="font-medium">API Monitoring</span>
192
+ <span class="text-green-500 text-sm font-medium">Active</span>
193
+ </div>
194
+ <div class="w-full bg-gray-200 rounded-full h-2">
195
+ <div class="bg-green-500 h-2 rounded-full" style="width: 100%"></div>
196
+ </div>
197
+ </div>
198
+
199
+ <div>
200
+ <div class="flex justify-between items-center mb-1">
201
+ <span class="font-medium">Database</span>
202
+ <span class="text-green-500 text-sm font-medium">Stable</span>
203
+ </div>
204
+ <div class="w-full bg-gray-200 rounded-full h-2">
205
+ <div class="bg-green-500 h-2 rounded-full" style="width: 95%"></div>
206
+ </div>
207
+ </div>
208
+
209
+ <div>
210
+ <div class="flex justify-between items-center mb-1">
211
+ <span class="font-medium">Fraud Detection</span>
212
+ <span class="text-green-500 text-sm font-medium">Running</span>
213
+ </div>
214
+ <div class="w-full bg-gray-200 rounded-full h-2">
215
+ <div class="bg-green-500 h-2 rounded-full" style="width: 98%"></div>
216
+ </div>
217
+ </div>
218
+
219
+ <div>
220
+ <div class="flex justify-between items-center mb-1">
221
+ <span class="font-medium">Storage</span>
222
+ <span class="text-yellow-500 text-sm font-medium">65% used</span>
223
+ </div>
224
+ <div class="w-full bg-gray-200 rounded-full h-2">
225
+ <div class="bg-yellow-500 h-2 rounded-full" style="width: 65%"></div>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ <div class="mt-8">
231
+ <h3 class="font-medium mb-3">Recent Alerts</h3>
232
+ <div class="space-y-3">
233
+ <div class="p-3 rounded-lg bg-red-50 flex items-start">
234
+ <div class="mr-3 mt-1">
235
+ <i class="fas fa-exclamation-circle text-red-500"></i>
236
+ </div>
237
+ <div>
238
+ <p class="font-medium">High risk transaction</p>
239
+ <p class="text-sm text-gray-600">Card ending 7890 from new IP</p>
240
+ <p class="text-xs text-gray-500 mt-1">2 minutes ago</p>
241
+ </div>
242
+ </div>
243
+
244
+ <div class="p-3 rounded-lg bg-yellow-50 flex items-start">
245
+ <div class="mr-3 mt-1">
246
+ <i class="fas fa-exclamation-triangle text-yellow-500"></i>
247
+ </div>
248
+ <div>
249
+ <p class="font-medium">Multiple failed logins</p>
250
+ <p class="text-sm text-gray-600">From IP 192.168.1.45</p>
251
+ <p class="text-xs text-gray-500 mt-1">15 minutes ago</p>
252
+ </div>
253
+ </div>
254
+ </div>
255
+ </div>
256
+ </div>
257
+ </div>
258
+
259
+ <!-- Recent Activity Section -->
260
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
261
+ <!-- Recent Fraud Attempts -->
262
+ <div class="lg:col-span-2 bg-white p-6 rounded-xl shadow">
263
+ <div class="flex justify-between items-center mb-6">
264
+ <h2 class="text-xl font-bold">Recent Fraud Attempts</h2>
265
+ <div class="flex space-x-2">
266
+ <button class="px-3 py-1 border rounded-lg text-sm hover:bg-gray-50">Filter</button>
267
+ <button class="px-3 py-1 bg-blue-600 text-white rounded-lg text-sm hover:bg-blue-700">Export</button>
268
+ </div>
269
+ </div>
270
+
271
+ <div class="overflow-x-auto">
272
+ <table class="min-w-full divide-y divide-gray-200">
273
+ <thead class="bg-gray-50">
274
+ <tr>
275
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Type</th>
276
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Details</th>
277
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Risk</th>
278
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Time</th>
279
+ <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Action</th>
280
+ </tr>
281
+ </thead>
282
+ <tbody class="bg-white divide-y divide-gray-200">
283
+ <tr class="risk-high hover:bg-gray-50">
284
+ <td class="px-6 py-4 whitespace-nowrap">
285
+ <div class="flex items-center">
286
+ <div class="flex-shrink-0 h-10 w-10 bg-red-100 rounded-full flex items-center justify-center">
287
+ <i class="fas fa-credit-card text-red-500"></i>
288
+ </div>
289
+ <div class="ml-4">
290
+ <div class="text-sm font-medium text-gray-900">Card Fraud</div>
291
+ <div class="text-sm text-gray-500">Visa •••• 7890</div>
292
+ </div>
293
+ </div>
294
+ </td>
295
+ <td class="px-6 py-4 whitespace-nowrap">
296
+ <div class="text-sm text-gray-900">Multiple countries</div>
297
+ <div class="text-sm text-gray-500">IP: 45.67.89.123</div>
298
+ </td>
299
+ <td class="px-6 py-4 whitespace-nowrap">
300
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">High</span>
301
+ </td>
302
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">5 min ago</td>
303
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
304
+ <a href="#" class="text-blue-600 hover:text-blue-900">Block</a>
305
+ </td>
306
+ </tr>
307
+ <tr class="risk-medium hover:bg-gray-50">
308
+ <td class="px-6 py-4 whitespace-nowrap">
309
+ <div class="flex items-center">
310
+ <div class="flex-shrink-0 h-10 w-10 bg-yellow-100 rounded-full flex items-center justify-center">
311
+ <i class="fas fa-user text-yellow-500"></i>
312
+ </div>
313
+ <div class="ml-4">
314
+ <div class="text-sm font-medium text-gray-900">Account Takeover</div>
315
+ <div class="text-sm text-gray-500">User: johndoe</div>
316
+ </div>
317
+ </div>
318
+ </td>
319
+ <td class="px-6 py-4 whitespace-nowrap">
320
+ <div class="text-sm text-gray-900">Multiple failed logins</div>
321
+ <div class="text-sm text-gray-500">IP: 192.168.1.45</div>
322
+ </td>
323
+ <td class="px-6 py-4 whitespace-nowrap">
324
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Medium</span>
325
+ </td>
326
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">12 min ago</td>
327
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
328
+ <a href="#" class="text-blue-600 hover:text-blue-900">Review</a>
329
+ </td>
330
+ </tr>
331
+ <tr class="risk-low hover:bg-gray-50">
332
+ <td class="px-6 py-4 whitespace-nowrap">
333
+ <div class="flex items-center">
334
+ <div class="flex-shrink-0 h-10 w-10 bg-green-100 rounded-full flex items-center justify-center">
335
+ <i class="fas fa-globe text-green-500"></i>
336
+ </div>
337
+ <div class="ml-4">
338
+ <div class="text-sm font-medium text-gray-900">Proxy Detected</div>
339
+ <div class="text-sm text-gray-500">New IP location</div>
340
+ </div>
341
+ </div>
342
+ </td>
343
+ <td class="px-6 py-4 whitespace-nowrap">
344
+ <div class="text-sm text-gray-900">VPN/proxy usage</div>
345
+ <div class="text-sm text-gray-500">IP: 87.65.43.21</div>
346
+ </td>
347
+ <td class="px-6 py-4 whitespace-nowrap">
348
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Low</span>
349
+ </td>
350
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">25 min ago</td>
351
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
352
+ <a href="#" class="text-blue-600 hover:text-blue-900">Monitor</a>
353
+ </td>
354
+ </tr>
355
+ <tr class="risk-high hover:bg-gray-50">
356
+ <td class="px-6 py-4 whitespace-nowrap">
357
+ <div class="flex items-center">
358
+ <div class="flex-shrink-0 h-10 w-10 bg-red-100 rounded-full flex items-center justify-center">
359
+ <i class="fas fa-user-plus text-red-500"></i>
360
+ </div>
361
+ <div class="ml-4">
362
+ <div class="text-sm font-medium text-gray-900">Fake Account</div>
363
+ <div class="text-sm text-gray-500">Suspicious registration</div>
364
+ </div>
365
+ </div>
366
+ </td>
367
+ <td class="px-6 py-4 whitespace-nowrap">
368
+ <div class="text-sm text-gray-900">Fake details detected</div>
369
+ <div class="text-sm text-gray-500">IP: 123.45.67.89</div>
370
+ </td>
371
+ <td class="px-6 py-4 whitespace-nowrap">
372
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">High</span>
373
+ </td>
374
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">42 min ago</td>
375
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium">
376
+ <a href="#" class="text-blue-600 hover:text-blue-900">Block</a>
377
+ </td>
378
+ </tr>
379
+ </tbody>
380
+ </table>
381
+ </div>
382
+
383
+ <div class="mt-4 flex justify-between items-center">
384
+ <span class="text-sm text-gray-500">Showing 4 of 87 attempts</span>
385
+ <a href="all-attempts.html" class="inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none">
386
+ View All Attempts
387
+ </a>
388
+ </div>
389
+ </div>
390
+
391
+ <!-- Quick Actions & Recent Users -->
392
+ <div class="bg-white p-6 rounded-xl shadow">
393
+ <h2 class="text-xl font-bold mb-6">Quick Actions</h2>
394
+
395
+ <div class="grid grid-cols-2 gap-4 mb-8">
396
+ <button class="p-3 bg-blue-50 rounded-lg flex flex-col items-center justify-center hover:bg-blue-100 transition">
397
+ <div class="h-10 w-10 bg-blue-100 rounded-full flex items-center justify-center mb-2">
398
+ <i class="fas fa-ban text-blue-500"></i>
399
+ </div>
400
+ <span class="text-sm font-medium text-center">Block IP</span>
401
+ </button>
402
+ <button class="p-3 bg-purple-50 rounded-lg flex flex-col items-center justify-center hover:bg-purple-100 transition">
403
+ <div class="h-10 w-10 bg-purple-100 rounded-full flex items-center justify-center mb-2">
404
+ <i class="fas fa-user-shield text-purple-500"></i>
405
+ </div>
406
+ <span class="text-sm font-medium text-center">Add Rule</span>
407
+ </button>
408
+ <button class="p-3 bg-green-50 rounded-lg flex flex-col items-center justify-center hover:bg-green-100 transition">
409
+ <div class="h-10 w-10 bg-green-100 rounded-full flex items-center justify-center mb-2">
410
+ <i class="fas fa-file-export text-green-500"></i>
411
+ </div>
412
+ <span class="text-sm font-medium text-center">Export Data</span>
413
+ </button>
414
+ <button class="p-3 bg-yellow-50 rounded-lg flex flex-col items-center justify-center hover:bg-yellow-100 transition">
415
+ <div class="h-10 w-10 bg-yellow-100 rounded-full flex items-center justify-center mb-2">
416
+ <i class="fas fa-cog text-yellow-500"></i>
417
+ </div>
418
+ <span class="text-sm font-medium text-center">Settings</span>
419
+ </button>
420
+ </div>
421
+
422
+ <h2 class="text-xl font-bold mb-6">Recent Users</h2>
423
+
424
+ <div class="space-y-4">
425
+ <div class="flex items-center p-3 hover:bg-gray-50 rounded-lg transition">
426
+ <div class="h-10 w-10 rounded-full bg-blue-100 flex items-center justify-center mr-3">
427
+ <span class="text-blue-600 font-medium">JD</span>
428
+ </div>
429
+ <div class="flex-1">
430
+ <p class="font-medium">John Doe</p>
431
+ <p class="text-sm text-gray-500">Admin</p>
432
+ </div>
433
+ <span class="text-green-500 text-sm font-medium">Active</span>
434
+ </div>
435
+
436
+ <div class="flex items-center p-3 hover:bg-gray-50 rounded-lg transition">
437
+ <div class="h-10 w-10 rounded-full bg-purple-100 flex items-center justify-center mr-3">
438
+ <span class="text-purple-600 font-medium">AS</span>
439
+ </div>
440
+ <div class="flex-1">
441
+ <p class="font-medium">Alice Smith</p>
442
+ <p class="text-sm text-gray-500">Analyst</p>
443
+ </div>
444
+ <span class="text-green-500 text-sm font-medium">Active</span>
445
+ </div>
446
+
447
+ <div class="flex items-center p-3 hover:bg-gray-50 rounded-lg transition">
448
+ <div class="h-10 w-10 rounded-full bg-yellow-100 flex items-center justify-center mr-3">
449
+ <span class="text-yellow-600 font-medium">RJ</span>
450
+ </div>
451
+ <div class="flex-1">
452
+ <p class="font-medium">Robert Johnson</p>
453
+ <p class="text-sm text-gray-500">Operator</p>
454
+ </div>
455
+ <span class="text-yellow-500 text-sm font-medium">Pending</span>
456
+ </div>
457
+
458
+ <div class="flex items-center p-3 hover:bg-gray-50 rounded-lg transition">
459
+ <div class="h-10 w-10 rounded-full bg-red-100 flex items-center justify-center mr-3">
460
+ <span class="text-red-600 font-medium">MB</span>
461
+ </div>
462
+ <div class="flex-1">
463
+ <p class="font-medium">Maria Brown</p>
464
+ <p class="text-sm text-gray-500">Operator</p>
465
+ </div>
466
+ <span class="text-red-500 text-sm font-medium">Blocked</span>
467
+ </div>
468
+ </div>
469
+
470
+ <div class="mt-4">
471
+ <a href="all-users.html" class="inline-flex items-center px-4 py-2 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none">
472
+ View All Users
473
+ </a>
474
+ </div>
475
+ </div>
476
+ </div>
477
+ </div>
478
+
479
+ <script>
480
+ // Trend buttons functionality
481
+ const buttons = document.querySelectorAll('.trend-btn');
482
+ const trendChart = document.getElementById('trendChart');
483
+
484
+ // Generate random data for the chart
485
+ function generateChartData(period) {
486
+ let data = [];
487
+ let count = period === 'week' ? 7 : period === 'month' ? 30 : 12;
488
+
489
+ for (let i = 0; i < count; i++) {
490
+ data.push({
491
+ high: Math.floor(Math.random() * 20) + 5,
492
+ medium: Math.floor(Math.random() * 30) + 10,
493
+ low: Math.floor(Math.random() * 50) + 20,
494
+ label: period === 'year' ? `Month ${i+1}` : `Day ${i+1}`
495
+ });
496
+ }
497
+
498
+ return data;
499
+ }
500
+
501
+ // Render chart function
502
+ function renderChart(period) {
503
+ const data = generateChartData(period);
504
+ const maxValue = Math.max(...data.map(d => d.high + d.medium + d.low));
505
+ const barWidth = 100 / data.length;
506
+
507
+ let chartHTML = '';
508
+
509
+ // Create bars
510
+ data.forEach((item, index) => {
511
+ const total = item.high + item.medium + item.low;
512
+ const barHeight = (total / maxValue) * 100;
513
+
514
+ const highHeight = (item.high / total) * barHeight;
515
+ const mediumHeight = (item.medium / total) * barHeight;
516
+ const lowHeight = (item.low / total) * barHeight;
517
+
518
+ chartHTML += `
519
+ <div class="chart-bar" style="left: ${index * barWidth}%; width: ${barWidth - 2}%">
520
+ <div class="absolute bottom-0 w-full bg-green-500" style="height: ${lowHeight}%"></div>
521
+ <div class="absolute bottom-0 w-full bg-yellow-500" style="height: ${mediumHeight}%; bottom: ${lowHeight}%"></div>
522
+ <div class="absolute bottom-0 w-full bg-red-500" style="height: ${highHeight}%; bottom: ${lowHeight + mediumHeight}%"></div>
523
+ <div class="absolute -bottom-6 w-full text-center text-xs text-gray-500">${item.label}</div>
524
+ </div>
525
+ `;
526
+ });
527
+
528
+ trendChart.innerHTML = chartHTML;
529
+ }
530
+
531
+ // Initialize chart with month data
532
+ renderChart('year');
533
+
534
+ // Add event listeners to buttons
535
+ buttons.forEach(btn => {
536
+ btn.addEventListener('click', () => {
537
+ const period = btn.getAttribute('data-period');
538
+ buttons.forEach(b => b.classList.remove('bg-blue-600', 'text-white', 'shadow-md'));
539
+ btn.classList.add('bg-blue-600', 'text-white', 'shadow-md');
540
+ renderChart(period);
541
+ });
542
+ });
543
+
544
+ // Simulate real-time updates
545
+ setInterval(() => {
546
+ // Find a random row in the table to update
547
+ const rows = document.querySelectorAll('tbody tr');
548
+ if (rows.length > 0) {
549
+ const randomRow = rows[Math.floor(Math.random() * rows.length)];
550
+ const timeCell = randomRow.querySelector('td:nth-child(4)');
551
+ if (timeCell) {
552
+ // Update the time to "just now" and add pulse animation
553
+ timeCell.textContent = 'just now';
554
+ timeCell.classList.add('pulse-animation');
555
+
556
+ // Remove animation after 2 seconds
557
+ setTimeout(() => {
558
+ timeCell.classList.remove('pulse-animation');
559
+ }, 2000);
560
+ }
561
+ }
562
+ }, 5000);
563
+ </script>
564
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=offerpk3/bigwhale" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
565
+ </html>