flicker-alerts 1.0.3 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. package/index.d.ts +13 -0
  2. package/index.js +50 -40
  3. package/package.json +2 -1
package/index.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ declare module 'flicker-alerts' {
2
+ interface AlertOptions {
3
+ type: 'success' | 'info' | 'warning' | 'danger';
4
+ title: string;
5
+ message: string;
6
+ duration?: number; // Duração do alerta (opcional)
7
+ }
8
+
9
+ export default class FlickerAlerts {
10
+ static showAlert(options: AlertOptions): void;
11
+ }
12
+ }
13
+
package/index.js CHANGED
@@ -1,47 +1,57 @@
1
1
  const FlickerAlerts = {
2
2
  showAlert: function ({ type, title, message, timer = 3000 }) {
3
- // Criação do alerta
4
- const alertBox = document.createElement('div');
5
- alertBox.className = `alert-custom alert-${type}`;
6
-
7
- // Ícone
8
- const icon = document.createElement('div');
9
- icon.className = 'icon';
10
- const iconClass = {
11
- success: 'fa-check',
12
- info: 'fa-info',
13
- warning: 'fa-exclamation',
14
- danger: 'fa-times'
15
- }[type];
16
- icon.innerHTML = `<i class="fas ${iconClass}"></i>`;
17
- alertBox.appendChild(icon);
18
-
19
- // Conteúdo
20
- const content = document.createElement('div');
21
- content.innerHTML = `<strong>${title}</strong><div>${message}</div>`;
22
- alertBox.appendChild(content);
23
-
24
- // Botão de fechamento
25
- const closeButton = document.createElement('div');
26
- closeButton.className = 'close';
27
- closeButton.innerHTML = '<i class="fas fa-times"></i>';
28
- closeButton.onclick = () => alertBox.remove();
29
- alertBox.appendChild(closeButton);
30
-
31
- // Barra de progresso
32
- const progressBar = document.createElement('div');
33
- progressBar.className = `progress-bar progress-bar-${type}`;
34
- alertBox.appendChild(progressBar);
35
-
36
- // Adicionar ao container
37
- const container = document.getElementById('alerts-container');
3
+ // Verifique se está no ambiente do navegador (client-side)
4
+ if (typeof document === 'undefined') {
5
+ return; // Evita erros no servidor ou no ambiente sem DOM
6
+ }
7
+
8
+ // Criação do alerta
9
+ const alertBox = document.createElement('div');
10
+ alertBox.className = `alert-custom alert-${type}`;
11
+
12
+ // Ícone
13
+ const icon = document.createElement('div');
14
+ icon.className = 'icon';
15
+ const iconClass = {
16
+ success: 'fa-check',
17
+ info: 'fa-info',
18
+ warning: 'fa-exclamation',
19
+ danger: 'fa-times'
20
+ }[type];
21
+ icon.innerHTML = `<i class="fas ${iconClass}"></i>`;
22
+ alertBox.appendChild(icon);
23
+
24
+ // Conteúdo
25
+ const content = document.createElement('div');
26
+ content.innerHTML = `<strong>${title}</strong><div>${message}</div>`;
27
+ alertBox.appendChild(content);
28
+
29
+ // Botão de fechamento
30
+ const closeButton = document.createElement('div');
31
+ closeButton.className = 'close';
32
+ closeButton.innerHTML = '<i class="fas fa-times"></i>';
33
+ closeButton.onclick = () => alertBox.remove();
34
+ alertBox.appendChild(closeButton);
35
+
36
+ // Barra de progresso
37
+ const progressBar = document.createElement('div');
38
+ progressBar.className = `progress-bar progress-bar-${type}`;
39
+ alertBox.appendChild(progressBar);
40
+
41
+ // Adicionar ao container
42
+ const container = document.getElementById('alerts-container');
43
+ if (container) {
38
44
  container.appendChild(alertBox);
39
-
40
- // Remoção automática
41
- setTimeout(() => alertBox.remove(), timer);
45
+ }
46
+
47
+ // Remoção automática
48
+ setTimeout(() => alertBox.remove(), timer);
42
49
  }
43
- };
44
-
50
+ };
51
+
52
+ // Exportação
53
+ export default FlickerAlerts;
54
+
45
55
  // Botões de teste
46
56
  document.getElementById('success-btn').addEventListener('click', () => {
47
57
  FlickerAlerts.showAlert({ type: 'success', title: 'Sucesso', message: 'A operação foi concluída com êxito!' });
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "flicker-alerts",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Biblioteca para alertas animados",
5
5
  "main": "index.js",
6
+ "types": "index.d.ts",
6
7
  "scripts": {
7
8
  "test": "echo \"Error: no test specified\" && exit 1"
8
9
  },