flicker-alerts 1.0.31 → 1.0.33

Sign up to get free protection for your applications and to get access to all the features.
package/index.d.ts CHANGED
@@ -1,20 +1,21 @@
1
1
  declare module 'flicker-alerts' {
2
2
  // Definição das opções para os alertas
3
3
  interface AlertOptions {
4
- type: 'success' | 'info' | 'warning' | 'danger';
4
+ type: 'success' | 'info' | 'warning' | 'danger'; // Tipos de alerta disponíveis
5
5
  title: string;
6
6
  message: string;
7
- duration?: number; // Duração opcional do alerta
7
+ timer?: number; // Duração opcional do alerta (em milissegundos)
8
8
  position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'center' | 'top-center' | 'bottom-center'; // Posições possíveis do alerta
9
9
  }
10
10
 
11
11
  // Definição das opções para os modais
12
12
  interface ModalOptions {
13
- type: 'warning' | 'danger' | 'info' | 'success'; // Tipos de modais disponíveis
13
+ type: 'warning' | 'delete' ; // Tipos de modal disponíveis
14
14
  title: string;
15
15
  message: string;
16
16
  onConfirm?: () => void; // Função executada no botão de confirmação
17
17
  onCancel?: () => void; // Função executada no botão de cancelamento
18
+ timer?: number; // Duração opcional do modal (em milissegundos)
18
19
  }
19
20
 
20
21
  // Classe principal para a biblioteca FlickerAlerts
package/index.html ADDED
@@ -0,0 +1,283 @@
1
+ <!DOCTYPE html>
2
+ <html lang="pt-BR">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>FlickerAlerts</title>
7
+ <link
8
+ href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
9
+ rel="stylesheet"
10
+ />
11
+ <link
12
+ rel="stylesheet"
13
+ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
14
+ />
15
+ <link rel="stylesheet" href="style.css" />
16
+ <style>
17
+ /* Estilo para os botões */
18
+ .btn {
19
+ font-size: 14px;
20
+ padding: 8px 16px;
21
+ border-radius: 8px;
22
+ width: 100%;
23
+ /* Botões ocupam 100% do espaço das colunas */
24
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
25
+ }
26
+
27
+ .btn:hover {
28
+ transform: scale(1.05);
29
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
30
+ }
31
+
32
+ /* Botões específicos */
33
+ .btn-success {
34
+ background-color: #28a745;
35
+ color: white;
36
+ }
37
+
38
+ .btn-info {
39
+ background-color: #17a2b8;
40
+ color: white;
41
+ }
42
+
43
+ .btn-warning {
44
+ background-color: #ffc107;
45
+ color: black;
46
+ }
47
+
48
+ .btn-danger {
49
+ background-color: #dc3545;
50
+ color: white;
51
+ }
52
+
53
+ .container {
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: center;
57
+ gap: 20px;
58
+ margin-top: 30px;
59
+ }
60
+
61
+ /* Área da documentação */
62
+ .doc-section {
63
+ margin-top: 30px;
64
+ width: 100%;
65
+ max-width: 800px;
66
+ }
67
+
68
+ .doc-section h3 {
69
+ margin-bottom: 10px;
70
+ font-size: 22px;
71
+ text-align: center;
72
+ }
73
+
74
+ .doc-section p {
75
+ font-size: 16px;
76
+ line-height: 1.5;
77
+ }
78
+
79
+ .doc-section pre {
80
+ background-color: #1e1e1e;
81
+ /* Fundo escuro estilo VSCode */
82
+ color: #dcdcdc;
83
+ /* Texto claro */
84
+ padding: 10px;
85
+ border-radius: 4px;
86
+ font-size: 14px;
87
+ overflow-x: auto;
88
+ border: 1px solid #333;
89
+ /* Bordas discretas */
90
+ font-family: "Courier New", Courier, monospace;
91
+ /* Fonte monoespaçada */
92
+ }
93
+
94
+ .doc-section ul {
95
+ padding-left: 20px;
96
+ }
97
+
98
+ .doc-section li {
99
+ margin-bottom: 10px;
100
+ }
101
+
102
+ /* Ajustes para os botões */
103
+ .row {
104
+ display: flex;
105
+ justify-content: center;
106
+ gap: 10px;
107
+ }
108
+
109
+ .col {
110
+ flex: 1 1 100%;
111
+ max-width: 200px;
112
+ /* Limita o tamanho dos botões */
113
+ }
114
+ </style>
115
+ </head>
116
+
117
+ <body>
118
+ <div class="container">
119
+ <h1>FlickerAlerts</h1>
120
+
121
+ <!-- Linha com botões -->
122
+ <div class="row">
123
+ <div class="col">
124
+ <button class="btn btn-success" id="success-btn">
125
+ Alerta Sucesso
126
+ </button>
127
+ </div>
128
+ <div class="col">
129
+ <button class="btn btn-info" id="info-btn">Mostrar Info</button>
130
+ </div>
131
+ <div class="col">
132
+ <button class="btn btn-warning" id="warning-btn">
133
+ Alerta Alerta
134
+ </button>
135
+ </div>
136
+ <div class="col">
137
+ <button class="btn btn-danger" id="error-btn">Alerta Erro</button>
138
+ </div>
139
+ </div>
140
+ <div class="row">
141
+ <div class="col">
142
+ <button class="btn btn-warning" id="modal-warning-btn">Modal de Alerta</button>
143
+ </div>
144
+ <div class="col">
145
+ <button class="btn btn-danger" id="modal-delete-btn">Modal de Deletar</button>
146
+ </div>
147
+ </div>
148
+
149
+ <!-- Área para exibir alertas no canto superior direito -->
150
+ <div id="alerts-container" class="top-right"></div>
151
+
152
+ <!-- Documentação -->
153
+ <div class="doc-section">
154
+ <h3>
155
+ <a class="linkedin" href="https://www.linkedin.com/in/bruno-carneiro-9a51aa190/" target="_blank">
156
+ <i class="fab fa-linkedin"></i> LinkedIn
157
+ </a>
158
+ </h3>
159
+
160
+ <h3>Documentação de Uso</h3>
161
+ <p>
162
+ <strong>FlickerAlerts</strong> é uma biblioteca simples para criar alertas animados de sucesso, erro, aviso e informações.
163
+ Eles podem ser exibidos automaticamente ou ser fechados manualmente pelo usuário.
164
+ </p>
165
+
166
+ <h4>Importação</h4>
167
+ <p>Esses links são essenciais para o funcionamento adequado dos estilos do Bootstrap e dos ícones do Font Awesome.</p>
168
+ <p class="text-import"> <!-- Importação do Bootstrap -->
169
+ "https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
170
+
171
+ <!-- Importação do Font Awesome -->
172
+ "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
173
+ </p>
174
+
175
+ <h4>Instalação</h4>
176
+ <p>Instale via <code>npm</code>:</p>
177
+ <pre><code>npm install flicker-alerts</code></pre>
178
+
179
+ <h4>Uso</h4>
180
+ <p>
181
+ Após a instalação, a biblioteca será importada no seu código. Você não precisará mais incluir o arquivo <code>script</code> diretamente no HTML.
182
+ Em vez disso, use a função <code>showAlert</code> em seus componentes.
183
+ </p>
184
+
185
+ <h4>Uso no Angular</h4>
186
+ <p>
187
+ Com o <code>FlickerAlerts</code> instalado, importe-o no seu componente Angular e utilize-o conforme mostrado abaixo:
188
+ </p>
189
+ <pre><code>
190
+ <strong class="text-import">import FlickerAlerts from 'flicker-alerts';</strong>
191
+
192
+ export class AppComponent {
193
+ showAlert() {
194
+ FlickerAlerts.showAlert({
195
+ type: 'success', <strong class="text-comment">// Opções: 'success', 'info', 'warning', 'danger'</strong>
196
+ title: 'Título',
197
+ message: 'Mensagem personalizada',
198
+ position: 'top-right' <br>
199
+ <strong class="text-comment"> // Opções: 'top-right', 'top-left', 'bottom-right', 'bottom-left', 'center', 'top-center', 'bottom-center'</strong>
200
+ });
201
+ }
202
+ }
203
+ </code></pre>
204
+
205
+ <p>
206
+ Caso o estilo da biblioteca não esteja sendo aplicado corretamente, adicione o caminho do CSS no arquivo <code>angular.json</code>:
207
+ <code>"styles": ["node_modules/flicker-alerts/style.css"]</code>
208
+ </p>
209
+
210
+ <h4>Uso no React</h4>
211
+ <p>
212
+ Com o <code>FlickerAlerts</code> instalado, você pode usá-lo no seu componente React assim:
213
+ </p>
214
+ <pre><code>
215
+ <strong class="text-import">import FlickerAlerts from 'flicker-alerts';</strong>
216
+
217
+ const showAlert = () => {
218
+ FlickerAlerts.showAlert({
219
+ type: 'success', <strong class="text-comment">// Opções: 'success', 'info', 'warning', 'danger'</strong>
220
+ title: 'Título',
221
+ message: 'Mensagem personalizada',
222
+ position: 'top-right' <br>
223
+ <strong class="text-comment"> // Opções: 'top-right', 'top-left', 'bottom-right', 'bottom-left', 'center', 'top-center', 'bottom-center'</strong>
224
+ });
225
+ };
226
+ </code></pre>
227
+
228
+ <p>
229
+ Caso o estilo da biblioteca não esteja sendo aplicado corretamente, basta importar o CSS diretamente no arquivo principal, como
230
+ <code>index.js</code> ou <code>App.js</code>:
231
+ <code>import 'flicker-alerts/style.css';</code>
232
+ </p>
233
+
234
+ <h4> Modais</h4>
235
+ <p> Aqui estão as instruções para usar modais com <code>FlickerAlerts</code>. </p>
236
+
237
+ <h4>Uso no Angular</h4>
238
+ <pre><code>
239
+ <strong class="text-import">import FlickerAlerts from 'flicker-alerts';</strong>
240
+
241
+ export class AppComponent {
242
+ showModal() {
243
+ FlickerAlerts.showModal({
244
+ type: 'warning', <strong class="text-comment">// Tipos: 'warning', 'delete'</strong>
245
+ title: 'Título do Modal',
246
+ message: 'Mensagem personalizada para o modal.',
247
+ onConfirm: () => { console.log('Confirmado!'); },
248
+ onCancel: () => { console.log('Cancelado!'); }
249
+ });
250
+ }
251
+ }
252
+ </code></pre>
253
+
254
+ <h4>Uso no React</h4>
255
+ <p>
256
+ Com o <code>FlickerAlerts</code> instalado, você pode usá-lo no seu componente React assim:
257
+ </p>
258
+ <pre><code>
259
+ <strong class="text-import">import FlickerAlerts from 'flicker-alerts';</strong>
260
+
261
+ const showModal = () => {
262
+ FlickerAlerts.showModal({
263
+ type: 'delete', <strong class="text-comment">// Tipos: 'warning', 'delete'</strong>
264
+ title: 'Título do Modal',
265
+ message: 'Mensagem personalizada para o modal.',
266
+ onConfirm: () => { console.log('Deletado com sucesso!'); },
267
+ onCancel: () => { console.log('Cancelado!'); }
268
+ });
269
+ };
270
+ </code></pre>
271
+
272
+ <p>
273
+ Caso o estilo da biblioteca não esteja sendo aplicado corretamente, adicione o caminho do CSS no arquivo <code>angular.json</code> ou
274
+ <code>index.js</code> para React:
275
+ <code>import 'flicker-alerts/style.css';</code>
276
+ </p>
277
+ </div>
278
+ </div>
279
+
280
+ <script src="index.js" type="module"></script>
281
+ </body>
282
+
283
+ </html>
package/index.js CHANGED
@@ -1,6 +1,3 @@
1
-
2
-
3
-
4
1
  const FlickerAlerts = {
5
2
  showAlert: function ({ type, title, message, timer = 3000, position = 'top-right' }) {
6
3
  if (typeof window !== 'undefined' && typeof document !== 'undefined') {
@@ -38,7 +35,7 @@ const FlickerAlerts = {
38
35
  divider.className = 'divider';
39
36
  console.log(`Created divider for ${type}`); // Para depuração
40
37
  alertBox.appendChild(divider);
41
-
38
+
42
39
  // Conteúdo
43
40
  const content = document.createElement('div');
44
41
  content.innerHTML = `<div class="title">${title}</div><div class="message">${message}</div>`;
@@ -75,9 +72,6 @@ const FlickerAlerts = {
75
72
  },
76
73
  };
77
74
 
78
-
79
-
80
-
81
75
  // Botões de teste - Eles podem ser removidos se não forem necessários
82
76
  if (typeof document !== 'undefined') {
83
77
  document.getElementById('success-btn')?.addEventListener('click', () => {
@@ -97,12 +91,8 @@ if (typeof document !== 'undefined') {
97
91
  });
98
92
  }
99
93
 
100
- // Exportação
101
- export default FlickerAlerts;
102
-
103
-
104
94
  const FlickerModals = {
105
- showModal: function ({ type, title, message, onConfirm, onCancel }) {
95
+ showModal: function ({ type, title, message, timer = 3000, onConfirm, onCancel }) {
106
96
  if (typeof window !== 'undefined' && typeof document !== 'undefined') {
107
97
  let container = document.getElementById('modals-container');
108
98
  if (!container) {
@@ -230,4 +220,4 @@ if (typeof document !== 'undefined') {
230
220
  });
231
221
  }
232
222
 
233
-
223
+ export default FlickerAlerts;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flicker-alerts",
3
- "version": "1.0.31",
3
+ "version": "1.0.33",
4
4
  "description": "Biblioteca para alertas animados",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -16,6 +16,6 @@
16
16
  "author": "https://www.linkedin.com/in/bruno-carneiro-9a51aa190/",
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
- "flicker-alerts": "^1.0.31"
19
+ "flicker-alerts": "^1.0.33"
20
20
  }
21
21
  }
package/style.css CHANGED
@@ -1,4 +1,4 @@
1
- @import '@fortawesome/fontawesome-free/css/all.min.css';
1
+
2
2
 
3
3
  #alerts-container {
4
4
  position: fixed;