D110 commited on
Commit
a5330f6
·
verified ·
1 Parent(s): f4943fc

Build me a secure and non traceable chatting app that uses https and XMPP. The app's template is black and the letter should be in green . The name is Beru.BA - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +623 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Beru Ba
3
- emoji: 🦀
4
- colorFrom: pink
5
- colorTo: pink
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: beru-ba
3
+ emoji: 🐳
4
+ colorFrom: green
5
+ colorTo: red
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,623 @@
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>Beru.BA - Secure Encrypted Chat</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
+ <link href="https://unpkg.com/@chatscope/chat-ui-kit-styles/dist/default/styles.min.css" rel="stylesheet">
10
+ <script>
11
+ tailwind.config = {
12
+ theme: {
13
+ extend: {
14
+ colors: {
15
+ beruGreen: {
16
+ 100: '#d1fae5',
17
+ 200: '#a7f3d0',
18
+ 300: '#6ee7b7',
19
+ 400: '#10b981',
20
+ 500: '#059669',
21
+ 600: '#047857',
22
+ 700: '#065f46',
23
+ },
24
+ beruDark: {
25
+ 100: '#1a202c',
26
+ 200: '#171923',
27
+ 300: '#12171f',
28
+ 400: '#0d1219',
29
+ 500: '#090c11',
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ </script>
36
+ <script src="https://unpkg.com/@chatscope/chat-ui-kit-core/dist/chat-ui-kit-core.umd.js"></script>
37
+ <style>
38
+ ::-webkit-scrollbar {
39
+ width: 8px;
40
+ height: 8px;
41
+ }
42
+
43
+ ::-webkit-scrollbar-track {
44
+ background: #090c11;
45
+ }
46
+
47
+ ::-webkit-scrollbar-thumb {
48
+ background: #065f46;
49
+ border-radius: 4px;
50
+ }
51
+
52
+ ::-webkit-scrollbar-thumb:hover {
53
+ background: #047857;
54
+ }
55
+
56
+ .custom-backdrop {
57
+ background: radial-gradient(
58
+ circle at center,
59
+ rgba(15, 25, 40, 0.9) 0%,
60
+ rgba(9, 15, 27, 0.95) 100%
61
+ );
62
+ }
63
+
64
+ .status-indicator {
65
+ position: absolute;
66
+ width: 12px;
67
+ height: 12px;
68
+ border-radius: 50%;
69
+ bottom: 0;
70
+ right: 0;
71
+ border: 2px solid #090c11;
72
+ }
73
+
74
+ .presence-online {
75
+ background-color: #10b981;
76
+ }
77
+
78
+ .presence-offline {
79
+ background-color: #6b7280;
80
+ }
81
+
82
+ .presence-away {
83
+ background-color: #f59e0b;
84
+ }
85
+
86
+ .presence-dnd {
87
+ background-color: #ef4444;
88
+ }
89
+
90
+ .chat-bubble-sent {
91
+ background-color: #065f46;
92
+ border-top-right-radius: 0;
93
+ border-bottom-left-radius: 12px;
94
+ }
95
+
96
+ .chat-bubble-received {
97
+ background-color: #12171f;
98
+ border-top-left-radius: 0;
99
+ border-bottom-right-radius: 12px;
100
+ }
101
+
102
+ .encrypted-indicator {
103
+ position: absolute;
104
+ bottom: 8px;
105
+ right: 10px;
106
+ font-size: 10px;
107
+ color: #a7f3d0;
108
+ opacity: 0.7;
109
+ }
110
+
111
+ .gradient-bottom {
112
+ position: absolute;
113
+ bottom: 0;
114
+ left: 0;
115
+ right: 0;
116
+ height: 50px;
117
+ background: linear-gradient(transparent 0%, rgba(9,12,17,0.8) 40%, #090c11 100%);
118
+ }
119
+
120
+ .connection-status::after {
121
+ content: '';
122
+ display: inline-block;
123
+ width: 8px;
124
+ height: 8px;
125
+ border-radius: 50%;
126
+ margin-left: 8px;
127
+ }
128
+
129
+ .status-connected::after {
130
+ background-color: #10b981;
131
+ }
132
+
133
+ .status-encrypting::after {
134
+ background-color: #f59e0b;
135
+ animation: pulse 1.5s infinite;
136
+ }
137
+
138
+ .status-disconnected::after {
139
+ background-color: #ef4444;
140
+ }
141
+
142
+ @keyframes pulse {
143
+ 0% { opacity: 1; }
144
+ 50% { opacity: 0.5; }
145
+ 100% { opacity: 1; }
146
+ }
147
+
148
+ @keyframes connectionPulse {
149
+ 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
150
+ 70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); }
151
+ 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
152
+ }
153
+ </style>
154
+ </head>
155
+ <body class="bg-beruDark-500 text-beruGreen-400 min-h-screen font-mono overflow-hidden">
156
+ <!-- Main App Container -->
157
+ <div class="flex flex-col h-screen max-w-7xl mx-auto custom-backdrop">
158
+ <!-- Header -->
159
+ <header class="bg-beruGreen-700/10 backdrop-blur border-b border-beruDark-300">
160
+ <div class="flex justify-between items-center px-4 py-3 sm:px-6">
161
+ <div class="flex items-center">
162
+ <div class="bg-beruGreen-500 text-beruDark-500 h-10 w-10 rounded-full flex items-center justify-center mr-3 relative">
163
+ <i class="fas fa-lock text-lg"></i>
164
+ <div class="status-indicator presence-online"></div>
165
+ </div>
166
+ <div>
167
+ <h1 class="text-xl sm:text-2xl font-bold tracking-wider">BERU<span class="text-beruGreen-300">.BA</span></h1>
168
+ <div class="flex items-center">
169
+ <div id="connectionStatus" class="connection-status status-connected text-xs text-beruGreen-500 flex items-center">
170
+ <span>Secure Connection: Established</span>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </div>
175
+
176
+ <div class="flex space-x-3">
177
+ <button class="bg-beruDark-400 rounded-full h-10 w-10 flex items-center justify-center hover:bg-beruGreen-500 hover:text-beruDark-500 transition">
178
+ <i class="fas fa-sliders-h"></i>
179
+ </button>
180
+ <button class="flex items-center justify-center bg-beruGreen-500 text-beruDark-500 py-2 px-4 rounded-full hover:bg-beruGreen-400 transition text-sm font-medium">
181
+ <i class="fas fa-sign-out-alt mr-1 transform rotate-180"></i>
182
+ Logout
183
+ </button>
184
+ </div>
185
+ </div>
186
+ </header>
187
+
188
+ <!-- Main Content -->
189
+ <div class="flex flex-1 overflow-hidden">
190
+ <!-- Sidebar -->
191
+ <div class="w-full sm:w-72 lg:w-80 bg-beruDark-400/30 flex flex-col border-r border-beruDark-300">
192
+ <!-- Search -->
193
+ <div class="p-3">
194
+ <div class="relative">
195
+ <div class="absolute inset-y-0 left-0 flex items-center pl-3">
196
+ <i class="fas fa-search text-beruGreen-600"></i>
197
+ </div>
198
+ <input
199
+ type="text"
200
+ placeholder="Search contacts..."
201
+ class="w-full bg-beruDark-300 border border-beruDark-200 rounded-lg py-2 pl-10 pr-4 text-sm focus:outline-none focus:ring-1 focus:ring-beruGreen-500 placeholder-beruGreen-600"
202
+ >
203
+ </div>
204
+ </div>
205
+
206
+ <!-- New Chat Button -->
207
+ <div class="px-3">
208
+ <button class="w-full bg-beruGreen-600/20 hover:bg-beruGreen-500/30 border border-beruGreen-500/30 py-2 px-4 rounded-lg text-sm transition duration-150">
209
+ <i class="fas fa-user-plus mr-2"></i>
210
+ Start New Conversation
211
+ </button>
212
+ </div>
213
+
214
+ <!-- Contacts Header -->
215
+ <div class="px-3 py-2 mt-4 flex justify-between items-center">
216
+ <h2 class="text-xs uppercase tracking-widest text-beruGreen-600">Contacts</h2>
217
+ <span class="text-xs bg-beruDark-300 px-2 py-0.5 rounded">32</span>
218
+ </div>
219
+
220
+ <!-- Contact List -->
221
+ <div class="flex-1 overflow-y-auto py-1">
222
+ <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition">
223
+ <div class="flex items-center">
224
+ <div class="relative mr-3">
225
+ <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center">
226
+ <i class="fas fa-user text-beruGreen-500"></i>
227
+ </div>
228
+ <div class="status-indicator presence-online"></div>
229
+ </div>
230
+ <div class="flex-1">
231
+ <div class="flex justify-between">
232
+ <span class="font-medium text-sm">Alex Johnson</span>
233
+ <span class="text-xs text-beruGreen-600">12:45 PM</span>
234
+ </div>
235
+ <p class="text-xs text-beruGreen-600 truncate">Sent you the secure file...</p>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+ <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition">
241
+ <div class="flex items-center">
242
+ <div class="relative mr-3">
243
+ <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center">
244
+ <span class="text-beruGreen-500 font-bold">SI</span>
245
+ </div>
246
+ <div class="status-indicator presence-away"></div>
247
+ </div>
248
+ <div class="flex-1">
249
+ <div class="flex justify-between">
250
+ <span class="font-medium text-sm">Project Sigma</span>
251
+ <span class="text-xs text-beruGreen-600">11:22 AM</span>
252
+ </div>
253
+ <p class="text-xs text-beruGreen-600 truncate">Latest data has been encrypted...</p>
254
+ </div>
255
+ </div>
256
+ </div>
257
+
258
+ <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition">
259
+ <div class="flex items-center">
260
+ <div class="relative mr-3">
261
+ <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center">
262
+ <i class="fas fa-user-shield text-beruGreen-500"></i>
263
+ </div>
264
+ <div class="status-indicator presence-dnd"></div>
265
+ </div>
266
+ <div class="flex-1">
267
+ <div class="flex justify-between">
268
+ <span class="font-medium text-sm">Maya Rodriguez</span>
269
+ <span class="text-xs text-beruGreen-600">10:15 AM</span>
270
+ </div>
271
+ <p class="text-xs text-beruGreen-600 truncate">Are we still meeting at 2 PM?</p>
272
+ </div>
273
+ </div>
274
+ </div>
275
+
276
+ <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition">
277
+ <div class="flex items-center">
278
+ <div class="relative mr-3">
279
+ <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center">
280
+ <i class="fas fa-user-secret text-beruGreen-500"></i>
281
+ </div>
282
+ <div class="status-indicator presence-online"></div>
283
+ </div>
284
+ <div class="flex-1">
285
+ <div class="flex justify-between">
286
+ <span class="font-medium text-sm">Security Team</span>
287
+ <span class="text-xs text-beruGreen-600">09:47 AM</span>
288
+ </div>
289
+ <p class="text-xs text-beruGreen-600 truncate">Security audit requested...</p>
290
+ </div>
291
+ </div>
292
+ </div>
293
+
294
+ <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition">
295
+ <div class="flex items-center">
296
+ <div class="relative mr-3">
297
+ <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center">
298
+ <i class="fas fa-user-astronaut text-beruGreen-500"></i>
299
+ </div>
300
+ <div class="status-indicator presence-offline"></div>
301
+ </div>
302
+ <div class="flex-1">
303
+ <div class="flex justify-between">
304
+ <span class="font-medium text-sm">Robert Chen</span>
305
+ <span class="text-xs text-beruGreen-600">Yesterday</span>
306
+ </div>
307
+ <p class="text-xs text-beruGreen-600 truncate">Will send the documents tomorrow</p>
308
+ </div>
309
+ </div>
310
+ </div>
311
+ </div>
312
+ </div>
313
+
314
+ <!-- Chat Panel -->
315
+ <div class="flex-1 flex flex-col justify-between hidden sm:flex">
316
+ <!-- Chat Header -->
317
+ <div class="bg-beruDark-400/10 backdrop-blur border-b border-beruDark-300 py-3 px-6 flex items-center">
318
+ <div class="relative">
319
+ <div class="bg-beruDark-200 h-12 w-12 rounded-full flex items-center justify-center mr-3">
320
+ <i class="fas fa-user-shield text-xl text-beruGreen-500"></i>
321
+ </div>
322
+ <div class="status-indicator presence-online"></div>
323
+ </div>
324
+ <div>
325
+ <h3 class="font-bold text-lg">Maya Rodriguez</h3>
326
+ <div class="flex items-center">
327
+ <span class="text-xs text-beruGreen-500">Online</span>
328
+ <span class="text-xs px-2 text-beruGreen-400">
329
+ <i class="fas fa-shield-alt mr-1"></i>
330
+ XMPP over HTTPS
331
+ </span>
332
+ <span class="text-xs px-2 bg-beruDark-300 rounded-full">
333
+ <i class="fas fa-key mr-1"></i>
334
+ End-to-end encryption
335
+ </span>
336
+ </div>
337
+ </div>
338
+ <div class="ml-auto flex items-center space-x-3">
339
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
340
+ <i class="fas fa-phone-alt"></i>
341
+ </button>
342
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
343
+ <i class="fas fa-video"></i>
344
+ </button>
345
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
346
+ <i class="fas fa-ellipsis-v"></i>
347
+ </button>
348
+ </div>
349
+ </div>
350
+
351
+ <!-- Chat Messages -->
352
+ <div class="flex-1 overflow-y-auto py-4 px-6">
353
+ <div class="text-center">
354
+ <span class="text-xs bg-beruDark-300 px-3 py-1 rounded-full">
355
+ <i class="fas fa-lock"></i>
356
+ Today
357
+ </span>
358
+ </div>
359
+
360
+ <!-- Message received -->
361
+ <div class="mt-5 flex items-start">
362
+ <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3">
363
+ <i class="fas fa-user-shield text-sm"></i>
364
+ </div>
365
+ <div class="mr-10 max-w-2xl">
366
+ <div class="chat-bubble-received rounded-xl py-3 px-4 relative">
367
+ <p class="text-sm">All communications on this channel are encrypted using AES-256. I have sent the protocol documentation for the operation.</p>
368
+ <div class="encrypted-indicator">
369
+ <i class="fas fa-shield-alt mr-1"></i>
370
+ Encrypted
371
+ </div>
372
+ </div>
373
+ <div class="mt-2 pl-1">
374
+ <span class="text-xs text-beruGreen-600">12:45 PM</span>
375
+ </div>
376
+ </div>
377
+ </div>
378
+
379
+ <!-- Message sent -->
380
+ <div class="mt-5 flex flex-row-reverse items-start">
381
+ <div class="bg-beruGreen-600 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center ml-3">
382
+ <i class="fas fa-user text-sm text-beruDark-500"></i>
383
+ </div>
384
+ <div class="ml-10 max-w-2xl">
385
+ <div class="chat-bubble-sent rounded-xl py-3 px-4 relative">
386
+ <p class="text-sm">Received. I've set up OTR encryption for additional security. Please confirm the identity verification code: <code class="bg-beruGreen-700/30 px-1 py-0.5 rounded">172937AB5B</code></p>
387
+ <div class="encrypted-indicator">
388
+ <i class="fas fa-shield-alt mr-1"></i>
389
+ Encrypted
390
+ </div>
391
+ </div>
392
+ <div class="mt-2 pr-1 text-right">
393
+ <span class="text-xs text-beruGreen-600">12:47 PM</span>
394
+ </div>
395
+ </div>
396
+ </div>
397
+
398
+ <!-- Message received -->
399
+ <div class="mt-5 flex items-start">
400
+ <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3">
401
+ <i class="fas fa-user-shield text-sm"></i>
402
+ </div>
403
+ <div class="mr-10 max-w-2xl">
404
+ <div class="chat-bubble-received rounded-xl py-3 px-4 relative">
405
+ <p class="text-sm">Code verified. Identity confirmed. This session is now protected with perfect forward secrecy. Can we discuss Phase 3 deployment?</p>
406
+ <div class="encrypted-indicator">
407
+ <i class="fas fa-shield-alt mr-1"></i>
408
+ Encrypted
409
+ </div>
410
+ </div>
411
+ <div class="mt-2 pl-1">
412
+ <span class="text-xs text-beruGreen-600">12:48 PM</span>
413
+ </div>
414
+ </div>
415
+ </div>
416
+
417
+ <!-- File Attachment -->
418
+ <div class="mt-5 flex items-start">
419
+ <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3">
420
+ <i class="fas fa-user-shield text-sm"></i>
421
+ </div>
422
+ <div class="mr-10 max-w-2xl">
423
+ <div class="bg-beruDark-300 border border-beruDark-200 rounded-xl py-2 px-3">
424
+ <div class="flex items-center">
425
+ <div class="bg-beruGreen-900/20 p-3 rounded-lg">
426
+ <i class="fas fa-file-pdf text-beruGreen-500 text-2xl"></i>
427
+ </div>
428
+ <div class="ml-3 flex-1 min-w-0">
429
+ <div class="flex justify-between">
430
+ <span class="font-medium truncate">Phase3-Deployment-Protocol.pdf</span>
431
+ </div>
432
+ <div class="flex items-center justify-between mt-1">
433
+ <span class="text-xs text-beruGreen-600">2.3 MB • PDF</span>
434
+ <div class="flex space-x-2">
435
+ <button class="text-beruGreen-400 hover:text-beruGreen-300">
436
+ <i class="fas fa-download"></i>
437
+ </button>
438
+ </div>
439
+ </div>
440
+ </div>
441
+ </div>
442
+ </div>
443
+ <div class="text-xs py-1 pl-1 text-beruGreen-600">
444
+ <i class="fas fa-lock mr-1"></i>
445
+ File encrypted with AES-256-CBC
446
+ </div>
447
+ <div class="mt-1 pl-1">
448
+ <span class="text-xs text-beruGreen-600">12:49 PM</span>
449
+ </div>
450
+ </div>
451
+ </div>
452
+
453
+ <!-- Message sent -->
454
+ <div class="mt-5 flex flex-row-reverse items-start">
455
+ <div class="bg-beruGreen-600 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center ml-3">
456
+ <i class="fas fa-user text-sm text-beruDark-500"></i>
457
+ </div>
458
+ <div class="ml-10 max-w-2xl">
459
+ <div class="chat-bubble-sent rounded-xl py-3 px-4 relative">
460
+ <p class="text-sm">I've reviewed the protocol document. The encryption settings are fully compliant with our security standards. We can proceed with the deployment as planned.</p>
461
+ <div class="encrypted-indicator">
462
+ <i class="fas fa-shield-alt mr-1"></i>
463
+ Encrypted
464
+ </div>
465
+ </div>
466
+ <div class="mt-2 pr-1 text-right">
467
+ <span class="text-xs text-beruGreen-600">12:53 PM</span>
468
+ </div>
469
+ </div>
470
+ </div>
471
+ </div>
472
+
473
+ <!-- Message Input -->
474
+ <div class="bg-beruDark-400/10 backdrop-blur border-t border-beruDark-300 pt-3 px-6 pb-5">
475
+ <!-- File progress bar mock -->
476
+ <div class="mb-2 text-xs">
477
+ <div class="flex items-center justify-between mb-1">
478
+ <div class="text-beruGreen-400">
479
+ <i class="fas fa-lock mr-1"></i>
480
+ Encrypting file... (3.2 MB)
481
+ </div>
482
+ <div>32%</div>
483
+ </div>
484
+ <div class="w-full bg-beruDark-300 rounded-full h-2">
485
+ <div class="bg-beruGreen-600 h-2 rounded-full" style="width: 32%"></div>
486
+ </div>
487
+ </div>
488
+
489
+ <div class="flex items-center">
490
+ <div class="flex space-x-2 mr-3">
491
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
492
+ <i class="fas fa-paperclip"></i>
493
+ </button>
494
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
495
+ <i class="fas fa-image"></i>
496
+ </button>
497
+ <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
498
+ <i class="fas fa-lock"></i>
499
+ </button>
500
+ </div>
501
+
502
+ <div class="flex-1">
503
+ <div class="relative">
504
+ <textarea
505
+ id="messageInput"
506
+ placeholder="Type a secure message..."
507
+ class="w-full bg-beruDark-300 border border-beruDark-200 rounded-xl py-3 pl-4 pr-12 focus:outline-none focus:border-beruGreen-500 resize-none placeholder-beruGreen-700"
508
+ rows="1"
509
+ ></textarea>
510
+
511
+ <div class="absolute right-3 bottom-3">
512
+ <button class="bg-beruGreen-500 hover:bg-beruGreen-400 text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition">
513
+ <i class="fas fa-paper-plane"></i>
514
+ </button>
515
+ </div>
516
+ </div>
517
+ </div>
518
+ </div>
519
+
520
+ <div class="pt-2 flex items-center">
521
+ <div class="text-xs flex space-x-2">
522
+ <div class="flex items-center">
523
+ <span class="block h-2 w-2 rounded-full bg-beruGreen-500 mr-1"></span>
524
+ <span>Connection Secure</span>
525
+ </div>
526
+ <div class="flex items-center">
527
+ <i class="fas fa-shield-alt mr-1 text-beruGreen-500"></i>
528
+ <span>End-to-end encrypted</span>
529
+ </div>
530
+ </div>
531
+ <div class="ml-auto">
532
+ <div class="flex items-center text-xs">
533
+ <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23059E5A' d='M10 17l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8m0-5H5c-1.11 0-2 .89-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E"
534
+ alt="XMPP"
535
+ class="h-4 w-4 mr-1"
536
+ >
537
+ <span>XMPP</span>
538
+ <div class="w-1 h-1 rounded-full bg-beruGreen-500 mx-2"></div>
539
+ <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23059E5A' d='M18 9h-2V7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-2h2c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-4 10H8V7h6v12zm4-5v-1h-4v-1h4v-1h-4V9h4V8l3 3-3 3z'/%3E%3C/svg%3E"
540
+ alt="HTTPS"
541
+ class="h-4 w-4 mr-1 ml-2"
542
+ >
543
+ <span>HTTPS</span>
544
+ </div>
545
+ </div>
546
+ </div>
547
+ </div>
548
+ </div>
549
+
550
+ <!-- Empty chat panel for mobile -->
551
+ <div class="hidden flex-1 items-center justify-center sm:hidden">
552
+ <div class="text-center px-4">
553
+ <div class="bg-beruDark-300 h-20 w-20 rounded-full flex items-center justify-center mx-auto mb-4">
554
+ <i class="fas fa-lock text-3xl"></i>
555
+ </div>
556
+ <h3 class="text-xl font-medium mb-2">Secure Encrypted Chats</h3>
557
+ <p class="text-beruGreen-600 mb-6">Select a conversation to start messaging securely</p>
558
+ <button class="bg-beruGreen-600 hover:bg-beruGreen-500 text-beruDark-500 py-2 px-6 rounded-full font-medium">
559
+ Start New Conversation
560
+ </button>
561
+ </div>
562
+ </div>
563
+ </div>
564
+ </div>
565
+
566
+ <script>
567
+ // Handle textarea autoresize
568
+ const textarea = document.getElementById('messageInput');
569
+ textarea.addEventListener('input', function() {
570
+ this.style.height = 'auto';
571
+ this.style.height = (this.scrollHeight) + 'px';
572
+ });
573
+
574
+ // Connection status animation
575
+ const statusEl = document.getElementById('connectionStatus');
576
+ let animationTimeout;
577
+
578
+ function simulateConnection() {
579
+ // Start with encrypting status
580
+ statusEl.className = 'connection-status status-encrypting text-beruGreen-400 flex items-center';
581
+ statusEl.innerHTML = '<span>Encrypting Channel: Connecting...</span>';
582
+
583
+ // After 2 seconds, switch to connected status
584
+ animationTimeout = setTimeout(() => {
585
+ statusEl.className = 'connection-status status-connected text-beruGreen-500 flex items-center';
586
+ statusEl.innerHTML = '<span>Secure Connection: Established</span>';
587
+ // Add pulse animation class
588
+ statusEl.classList.add('animate-pulse');
589
+
590
+ // Remove pulse animation after 3 seconds
591
+ setTimeout(() => {
592
+ statusEl.classList.remove('animate-pulse');
593
+ }, 3000);
594
+ }, 2000);
595
+ }
596
+
597
+ // Start simulation when page loads
598
+ simulateConnection();
599
+
600
+ // Demo status changing
601
+ setInterval(() => {
602
+ // Normally this would be based on real connection status
603
+ const statuses = ['connected', 'encrypting'];
604
+ const status = statuses[Math.floor(Math.random() * statuses.length)];
605
+
606
+ if (status === 'connected') {
607
+ clearTimeout(animationTimeout);
608
+ statusEl.className = 'connection-status status-connected text-beruGreen-500 flex items-center';
609
+ statusEl.innerHTML = '<span>Secure Connection: Established</span>';
610
+ statusEl.classList.add('animate-pulse');
611
+
612
+ // Remove pulse animation after 3 seconds
613
+ setTimeout(() => {
614
+ statusEl.classList.remove('animate-pulse');
615
+ }, 3000);
616
+ } else if (status === 'encrypting') {
617
+ statusEl.className = 'connection-status status-encrypting text-beruGreen-400 flex items-center';
618
+ statusEl.innerHTML = '<span>Re-negotiating: Encrypting...</span>';
619
+ }
620
+ }, 10000);
621
+ </script>
622
+ <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=D110/beru-ba" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
623
+ </html>