EXcco commited on
Commit
35a8e95
·
verified ·
1 Parent(s): cb3770a

The receipt should look exactly as the official banco do Brasil bank receipt looks - Initial Deployment

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +534 -18
  3. prompts.txt +6 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Banco Do Brasil Receipt Alert
3
- emoji: 🏢
4
- colorFrom: pink
5
- colorTo: red
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: banco-do-brasil-receipt-alert
3
+ emoji: 🐳
4
+ colorFrom: gray
5
+ colorTo: pink
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,535 @@
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>PIX BANK Receipt Generator</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
10
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
12
+ <script src="https://unpkg.com/feather-icons"></script>
13
+ <style>
14
+ .receipt-container {
15
+ background: #f5f5f5;
16
+ border: 1px solid #ccc;
17
+ border-radius: 0;
18
+ box-shadow: none;
19
+ transition: all 0.3s ease;
20
+ }
21
+ .receipt-paper {
22
+ background: white;
23
+ border-radius: 0;
24
+ box-shadow: none;
25
+ position: relative;
26
+ overflow: hidden;
27
+ font-family: 'Arial', sans-serif;
28
+ font-size: 11px;
29
+ line-height: 1.1;
30
+ color: #000;
31
+ padding: 15px;
32
+ border: 1px solid #999;
33
+ }
34
+ .bank-header {
35
+ text-align: center;
36
+ border-bottom: 2px solid #0066b3;
37
+ padding-bottom: 8px;
38
+ margin-bottom: 10px;
39
+ }
40
+ .bank-logo-container {
41
+ display: flex;
42
+ justify-content: center;
43
+ align-items: center;
44
+ margin-bottom: 5px;
45
+ gap: 8px;
46
+ }
47
+ .bank-logo {
48
+ height: 25px;
49
+ width: auto;
50
+ }
51
+ .bank-name {
52
+ font-weight: bold;
53
+ font-size: 14px;
54
+ color: #0066b3;
55
+ text-transform: uppercase;
56
+ }
57
+ .receipt-title {
58
+ font-size: 12px;
59
+ font-weight: bold;
60
+ color: #333;
61
+ }
62
+ .transaction-details {
63
+ margin-bottom: 10px;
64
+ }
65
+ .detail-row {
66
+ display: flex;
67
+ margin-bottom: 3px;
68
+ padding: 1px 0;
69
+ }
70
+ .detail-label {
71
+ font-weight: bold;
72
+ min-width: 140px;
73
+ color: #333;
74
+ }
75
+ .detail-value {
76
+ flex: 1;
77
+ color: #555;
78
+ }
79
+ .separator {
80
+ border-top: 1px dotted #999;
81
+ margin: 6px 0;
82
+ }
83
+ .section-title {
84
+ font-weight: bold;
85
+ color: #0066b3;
86
+ margin: 8px 0 4px 0;
87
+ font-size: 11px;
88
+ text-transform: uppercase;
89
+ }
90
+ .authentication-code {
91
+ background: #f0f0f0;
92
+ border: 1px solid #ddd;
93
+ padding: 5px;
94
+ margin: 10px 0;
95
+ text-align: center;
96
+ font-size: 9px;
97
+ }
98
+ .auth-code-label {
99
+ font-weight: bold;
100
+ margin-bottom: 2px;
101
+ color: #333;
102
+ }
103
+ .auth-code-value {
104
+ font-family: 'Courier New', monospace;
105
+ font-size: 8px;
106
+ letter-spacing: 0.5px;
107
+ color: #666;
108
+ }
109
+ .footer {
110
+ text-align: center;
111
+ font-size: 9px;
112
+ margin-top: 12px;
113
+ border-top: 1px solid #ddd;
114
+ padding-top: 8px;
115
+ color: #666;
116
+ }
117
+ .print-button {
118
+ background: #0066b3;
119
+ border: none;
120
+ border-radius: 2px;
121
+ transition: all 0.3s ease;
122
+ }
123
+ .print-button:hover {
124
+ background: #004c8c;
125
+ transform: none;
126
+ box-shadow: none;
127
+ }
128
+ .form-input:focus {
129
+ box-shadow: 0 0 0 2px rgba(0, 102, 179, 0.3);
130
+ border-color: #0066b3;
131
+ }
132
+ .status-completed {
133
+ color: #008000;
134
+ font-weight: bold;
135
+ }
136
+ .amount-value {
137
+ font-weight: bold;
138
+ color: #000;
139
+ }
140
+ @media print {
141
+ body * {
142
+ visibility: hidden;
143
+ }
144
+ .receipt-container, .receipt-container * {
145
+ visibility: visible;
146
+ }
147
+ .receipt-container {
148
+ position: absolute;
149
+ left: 0;
150
+ top: 0;
151
+ width: 100%;
152
+ border: none;
153
+ background: white;
154
+ }
155
+ .no-print {
156
+ display: none !important;
157
+ }
158
+ }
159
+ </style>
160
+ </head>
161
+ <body class="bg-gray-50 min-h-screen font-sans">
162
+ <div class="container mx-auto px-4 py-8">
163
+ <!-- Header -->
164
+ <header class="text-center mb-8" data-aos="fade-down">
165
+ <h1 class="text-3xl md:text-4xl font-bold text-gray-800 mb-2">
166
+ <i data-feather="credit-card" class="inline-block mr-2"></i>
167
+ PIX BANK Receipt Generator
168
+ </h1>
169
+ <p class="text-gray-600">Create professional PIX transaction receipts instantly</p>
170
+ </header>
171
+
172
+ <!-- Main Content -->
173
+ <div class="grid md:grid-cols-2 gap-8 max-w-6xl mx-auto">
174
+ <!-- Input Form -->
175
+ <div class="receipt-container p-6 no-print" data-aos="fade-right">
176
+ <h2 class="text-xl font-semibold text-gray-800 mb-6 flex items-center">
177
+ <i data-feather="edit-3" class="mr-2"></i>
178
+ Transaction Details
179
+ </h2>
180
+
181
+ <form id="receiptForm" class="space-y-4">
182
+ <div>
183
+ <label class="block text-sm font-medium text-gray-700 mb-1">Sender Name</label>
184
+ <input type="text" id="senderName" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Enter sender's name">
185
+ </div>
186
+
187
+ <div>
188
+ <label class="block text-sm font-medium text-gray-700 mb-1">Receiver Name</label>
189
+ <input type="text" id="receiverName" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Enter receiver's name">
190
+ </div>
191
+
192
+ <div>
193
+ <label class="block text-sm font-medium text-gray-700 mb-1">Amount (BRL)</label>
194
+ <input type="number" id="amount" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="0.00" step="0.01" min="0">
195
+ </div>
196
+
197
+ <div>
198
+ <label class="block text-sm font-medium text-gray-700 mb-1">Transaction Date</label>
199
+ <input type="datetime-local" id="transactionDate" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
200
+ </div>
201
+
202
+ <div>
203
+ <label class="block text-sm font-medium text-gray-700 mb-1">Transaction ID</label>
204
+ <input type="text" id="transactionId" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="e.g., PIX123456789">
205
+ </div>
206
+
207
+ <div>
208
+ <label class="block text-sm font-medium text-gray-700 mb-1">PIX Payment Method</label>
209
+ <select id="pixMethod" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
210
+ <option value="cpf">CPF/CNPJ Key</option>
211
+ <option value="email">Email Key</option>
212
+ <option value="phone">Phone Key</option>
213
+ <option value="random">Random Key</option>
214
+ <option value="qr">QR Code Payment</option>
215
+ </select>
216
+ </div>
217
+
218
+ <div id="pixKeyField" class="hidden">
219
+ <label class="block text-sm font-medium text-gray-700 mb-1">PIX Key</label>
220
+ <input type="text" id="pixKey" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Enter PIX key">
221
+ </div>
222
+
223
+ <div>
224
+ <label class="block text-sm font-medium text-gray-700 mb-1">Description (Optional)</label>
225
+ <textarea id="description" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" rows="2" placeholder="Transaction purpose..."></textarea>
226
+ </div>
227
+
228
+ <div>
229
+ <label class="block text-sm font-medium text-gray-700 mb-1">Recipient Email (for notification)</label>
230
+ <input type="email" id="recipientEmail" class="form-input w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="recipient@example.com">
231
+ </div>
232
+
233
+ <button type="button" onclick="generateReceiptAndNotify()" class="print-button w-full py-3 px-6 text-white font-semibold rounded-lg flex items-center justify-center">
234
+ <i data-feather="file-text" class="mr-2"></i>
235
+ Generate Receipt & Send Notification
236
+ </button>
237
+ </form>
238
+ </div>
239
+
240
+ <!-- Receipt Preview -->
241
+ <div class="receipt-container p-4" data-aos="fade-left">
242
+ <div class="receipt-paper p-4">
243
+ <!-- Bank Header -->
244
+ <div class="bank-header">
245
+ <div style="display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 4px;">
246
+ <img src="https://static.photos/finance/120x40/1" alt="Banco do Brasil" style="height: 25px;">
247
+ <div class="bank-name">BANCO DO BRASIL</div>
248
+ </div>
249
+ <div>COMPROVANTE DE TRANSFERÊNCIA PIX</div>
250
+ </div>
251
+
252
+ <!-- Transaction Details -->
253
+ <div class="transaction-details">
254
+ <div class="section-title">DADOS DA TRANSFERÊNCIA</div>
255
+
256
+ <div class="detail-row">
257
+ <span class="detail-label">Identificador:</span>
258
+ <span id="previewId" class="detail-value">PIX000000000</span>
259
+ </div>
260
+ <div class="detail-row">
261
+ <span class="detail-label">Data/Hora:</span>
262
+ <span id="previewDate" class="detail-value">DD/MM/AAAA HH:MM:SS</span>
263
+ </div>
264
+
265
+ <div class="separator"></div>
266
+
267
+ <div class="section-title">PARTICIPANTES</div>
268
+ <div class="detail-row">
269
+ <span class="detail-label">Origem:</span>
270
+ <span id="previewSender" class="detail-value">NOME DO REMETENTE</span>
271
+ </div>
272
+ <div class="detail-row">
273
+ <span class="detail-label">Destino:</span>
274
+ <span id="previewReceiver" class="detail-value">NOME DO DESTINATÁRIO</span>
275
+ </div>
276
+
277
+ <div class="separator"></div>
278
+
279
+ <div class="section-title">VALORES</div>
280
+ <div class="detail-row">
281
+ <span class="detail-label">Valor:</span>
282
+ <span id="previewAmount" class="detail-value amount-value">R$ 0,00</span>
283
+ </div>
284
+
285
+ <div class="separator"></div>
286
+
287
+ <div class="section-title">INFORMAÇÕES DA OPERAÇÃO</div>
288
+ <div class="detail-row">
289
+ <span class="detail-label">Tipo:</span>
290
+ <span class="detail-value">PIX - Transferência</span>
291
+ </div>
292
+ <div class="detail-row">
293
+ <span class="detail-label">Situação:</span>
294
+ <span class="detail-value status-completed">CONCLUÍDO</span>
295
+ </div>
296
+ <div class="detail-row">
297
+ <span class="detail-label">Método:</span>
298
+ <span id="previewPixMethod" class="detail-value">Chave CPF/CNPJ</span>
299
+ </div>
300
+ <div id="pixKeyRow" class="detail-row hidden">
301
+ <span class="detail-label">Chave:</span>
302
+ <span id="previewPixKey" class="detail-value">-</span>
303
+ </div>
304
+ <div class="detail-row">
305
+ <span class="detail-label">Descrição:</span>
306
+ <span id="previewDescription" class="detail-value">-</span>
307
+ </div>
308
+ </div>
309
+
310
+ <!-- Authentication Code -->
311
+ <div class="authentication-code">
312
+ <div class="auth-code-label">CÓDIGO DE AUTENTICAÇÃO</div>
313
+ <div class="auth-code-value">BRPIX2024123456789ABCDEF</div>
314
+ </div>
315
+
316
+ <!-- Footer -->
317
+ <div class="footer">
318
+ <div>Este comprovante não substitui o extrato bancário</div>
319
+ <div>Transação realizada via Sistema PIX - Banco Central do Brasil</div>
320
+ <div>Data de impressão: <span id="printDate"></span></div>
321
+ </div>
322
+ </div>
323
+
324
+ <!-- Print Button -->
325
+ <button onclick="printReceipt()" class="print-button w-full mt-6 py-3 px-6 text-white font-semibold rounded-lg flex items-center justify-center no-print">
326
+ <i data-feather="printer" class="mr-2"></i>
327
+ Print Receipt
328
+ </button>
329
+ </div>
330
+ </div>
331
+
332
+ <!-- Info Section -->
333
+ <div class="max-w-4xl mx-auto mt-12 text-center" data-aos="fade-up">
334
+ <div class="bg-blue-50 border border-blue-200 rounded-lg p-6">
335
+ <i data-feather="info" class="text-blue-600 text-2xl mb-3"></i>
336
+ <h3 class="text-lg font-semibold text-blue-800 mb-2">About PIX Transactions</h3>
337
+ <p class="text-blue-700">PIX is Brazil's instant payment system, allowing transfers 24/7 with immediate settlement. This receipt generator creates professional documentation for your PIX transactions.</p>
338
+ </div>
339
+ </div>
340
+ </div>
341
+
342
+ <script>
343
+ // Initialize AOS and Feather Icons
344
+ AOS.init({
345
+ duration: 800,
346
+ once: true
347
+ });
348
+ feather.replace();
349
+
350
+ // Set default transaction date to current date/time
351
+ document.getElementById('transactionDate').value = new Date().toISOString().slice(0, 16);
352
+
353
+ // PIX Method selection handler
354
+ document.getElementById('pixMethod').addEventListener('change', function() {
355
+ const keyField = document.getElementById('pixKeyField');
356
+ const keyInput = document.getElementById('pixKey');
357
+
358
+ if (this.value === 'qr') {
359
+ keyField.classList.add('hidden');
360
+ keyInput.required = false;
361
+ } else {
362
+ keyField.classList.remove('hidden');
363
+ keyInput.required = true;
364
+
365
+ // Set placeholder based on method
366
+ const placeholders = {
367
+ 'cpf': 'Enter CPF/CNPJ (e.g., 123.456.789-00)',
368
+ 'email': 'Enter email address',
369
+ 'phone': 'Enter phone number (e.g., +55 11 99999-9999)',
370
+ 'random': 'Enter random key'
371
+ };
372
+ keyInput.placeholder = placeholders[this.value] || 'Enter PIX key';
373
+ }
374
+ });
375
+
376
+ // Generate random transaction ID if empty
377
+ document.getElementById('transactionId').addEventListener('blur', function() {
378
+ if (!this.value) {
379
+ this.value = 'PIX' + Math.random().toString(36).substr(2, 9).toUpperCase();
380
+ }
381
+ });
382
+
383
+ // Generate receipt function
384
+ function generateReceipt() {
385
+ const sender = document.getElementById('senderName').value || 'Sender Name';
386
+ const receiver = document.getElementById('receiverName').value || 'Receiver Name';
387
+ const amount = document.getElementById('amount').value || '0.00';
388
+ const date = document.getElementById('transactionDate').value;
389
+ const transactionId = document.getElementById('transactionId').value || 'PIX000000000';
390
+ const pixMethod = document.getElementById('pixMethod').value;
391
+ const pixKey = document.getElementById('pixKey').value;
392
+ const description = document.getElementById('description').value || 'No description provided';
393
+
394
+ // Format date
395
+ const formattedDate = new Date(date).toLocaleString('pt-BR', {
396
+ day: '2-digit',
397
+ month: '2-digit',
398
+ year: 'numeric',
399
+ hour: '2-digit',
400
+ minute: '2-digit'
401
+ });
402
+
403
+ // Format amount
404
+ const formattedAmount = new Intl.NumberFormat('pt-BR', {
405
+ style: 'currency',
406
+ currency: 'BRL'
407
+ }).format(amount);
408
+
409
+ // Update PIX method display
410
+ const methodNames = {
411
+ 'cpf': 'Chave CPF/CNPJ',
412
+ 'email': 'Chave Email',
413
+ 'phone': 'Chave Telefone',
414
+ 'random': 'Chave Aleatória',
415
+ 'qr': 'QR Code'
416
+ };
417
+
418
+ // Update preview
419
+ document.getElementById('previewSender').textContent = sender;
420
+ document.getElementById('previewReceiver').textContent = receiver;
421
+ document.getElementById('previewAmount').textContent = formattedAmount;
422
+ document.getElementById('previewDate').textContent = formattedDate;
423
+ document.getElementById('previewId').textContent = transactionId;
424
+ document.getElementById('previewPixMethod').textContent = methodNames[pixMethod];
425
+ document.getElementById('previewDescription').textContent = description;
426
+
427
+ // Show/hide PIX key based on method
428
+ const pixKeyRow = document.getElementById('pixKeyRow');
429
+ const previewPixKey = document.getElementById('previewPixKey');
430
+
431
+ if (pixMethod !== 'qr' && pixKey) {
432
+ pixKeyRow.classList.remove('hidden');
433
+ previewPixKey.textContent = pixKey;
434
+ } else {
435
+ pixKeyRow.classList.add('hidden');
436
+ }
437
+
438
+ // Show success animation
439
+ const receiptPaper = document.querySelector('.receipt-paper');
440
+ receiptPaper.style.transform = 'scale(1.02)';
441
+ setTimeout(() => {
442
+ receiptPaper.style.transform = 'scale(1)';
443
+ }, 300);
444
+ }
445
+
446
+ // Print receipt function
447
+ function printReceipt() {
448
+ window.print();
449
+ }
450
+
451
+ // Set print date
452
+ const currentDate = new Date().toLocaleDateString('pt-BR');
453
+ document.getElementById('printDate').textContent = currentDate;
454
+
455
+ // Auto-generate receipt on form changes (exclude email field)
456
+ const formInputs = document.querySelectorAll('#receiptForm input:not(#recipientEmail), #receiptForm textarea');
457
+ formInputs.forEach(input => {
458
+ input.addEventListener('input', generateReceipt);
459
+ });
460
+
461
+ // Initial generation
462
+ generateReceipt();
463
+
464
+ // Update print date on print
465
+ function printReceipt() {
466
+ document.getElementById('printDate').textContent = new Date().toLocaleDateString('pt-BR');
467
+ setTimeout(() => {
468
+ window.print();
469
+ }, 100);
470
+ }
471
+
472
+ // Generate receipt and send email notification
473
+ function generateReceiptAndNotify() {
474
+ generateReceipt();
475
+
476
+ const recipientEmail = document.getElementById('recipientEmail').value;
477
+ const amount = document.getElementById('amount').value || '0.00';
478
+ const sender = document.getElementById('senderName').value || 'Sender';
479
+
480
+ if (recipientEmail) {
481
+ // Show sending notification
482
+ const button = document.querySelector('.print-button');
483
+ const originalText = button.innerHTML;
484
+ button.innerHTML = '<i data-feather="send" class="mr-2"></i>Sending Notification...';
485
+ button.disabled = true;
486
+ feather.replace();
487
+
488
+ // Simulate email sending (in a real implementation, this would call a backend API)
489
+ setTimeout(() => {
490
+ // Show success message
491
+ showNotification('Email notification sent successfully!', 'success');
492
+
493
+ // Reset button
494
+ button.innerHTML = originalText;
495
+ button.disabled = false;
496
+ feather.replace();
497
+ }, 2000);
498
+ } else {
499
+ showNotification('Please enter recipient email for notification', 'warning');
500
+ }
501
+ }
502
+
503
+ // Notification function
504
+ function showNotification(message, type = 'info') {
505
+ // Remove any existing notification
506
+ const existingNotification = document.querySelector('.notification-toast');
507
+ if (existingNotification) {
508
+ existingNotification.remove();
509
+ }
510
+
511
+ // Create notification
512
+ const notification = document.createElement('div');
513
+ notification.className = `notification-toast fixed top-4 right-4 z-50 px-6 py-3 rounded-lg shadow-lg text-white font-semibold ${
514
+ type === 'success' ? 'bg-green-600' :
515
+ type === 'warning' ? 'bg-yellow-600' :
516
+ 'bg-blue-600'
517
+ }`;
518
+ notification.innerHTML = `
519
+ <div class="flex items-center">
520
+ <i data-feather="${type === 'success' ? 'check-circle' : type === 'warning' ? 'alert-circle' : 'info'}" class="mr-2"></i>
521
+ ${message}
522
+ </div>
523
+ `;
524
+
525
+ document.body.appendChild(notification);
526
+ feather.replace();
527
+
528
+ // Auto remove after 3 seconds
529
+ setTimeout(() => {
530
+ notification.remove();
531
+ }, 3000);
532
+ }
533
+ </script>
534
+ </body>
535
  </html>
prompts.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ #create fully functional real-time " PIX BANK Receipt Generator"
2
+ #Should be exactly as the official pix banking receipt be
3
+ And an email notification feature to enable recipient's get an instant Credit alert email notification once a receipt is generated
4
+ Add realtime pix payment options to Transaction Details section
5
+ Add the banco do Brazil logo
6
+ The receipt should look exactly as the official banco do Brasil bank receipt looks