@dev-tcloud/tcloud-ui 6.15.0 → 6.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/docs/tcloud-ui-accordion.md +345 -0
  2. package/docs/tcloud-ui-actions.md +88 -0
  3. package/docs/tcloud-ui-alert-banner.md +104 -0
  4. package/docs/tcloud-ui-array-to-text.md +361 -0
  5. package/docs/tcloud-ui-breadcrumb.md +103 -0
  6. package/docs/tcloud-ui-bytes.md +109 -0
  7. package/docs/tcloud-ui-calendar.md +387 -0
  8. package/docs/tcloud-ui-card-accordion.md +266 -0
  9. package/docs/tcloud-ui-card-title.md +47 -0
  10. package/docs/tcloud-ui-card.md +40 -0
  11. package/docs/tcloud-ui-choice-issues.md +59 -0
  12. package/docs/tcloud-ui-cnpj.md +102 -0
  13. package/docs/tcloud-ui-container.md +171 -0
  14. package/docs/tcloud-ui-cpf.md +102 -0
  15. package/docs/tcloud-ui-currency.md +271 -0
  16. package/docs/tcloud-ui-data-list.md +91 -0
  17. package/docs/tcloud-ui-datebr.md +139 -0
  18. package/docs/tcloud-ui-datepicker-time.md +191 -0
  19. package/docs/tcloud-ui-datepicker.md +186 -0
  20. package/docs/tcloud-ui-dropdown-multi.md +444 -0
  21. package/docs/tcloud-ui-dropdown.md +369 -0
  22. package/docs/tcloud-ui-el-copy.md +113 -0
  23. package/docs/tcloud-ui-empty-content.md +412 -0
  24. package/docs/tcloud-ui-faq.md +496 -0
  25. package/docs/tcloud-ui-filter-bar.md +86 -0
  26. package/docs/tcloud-ui-filters.md +337 -0
  27. package/docs/tcloud-ui-hover-parent.md +467 -0
  28. package/docs/tcloud-ui-icon-button.md +104 -0
  29. package/docs/tcloud-ui-input-container.md +520 -0
  30. package/docs/tcloud-ui-input-password.md +258 -0
  31. package/docs/tcloud-ui-input-search.md +314 -0
  32. package/docs/tcloud-ui-label-token.md +286 -0
  33. package/docs/tcloud-ui-legend.md +72 -0
  34. package/docs/tcloud-ui-line-step-circle.md +98 -0
  35. package/docs/tcloud-ui-line-step-title.md +194 -0
  36. package/docs/tcloud-ui-linha-logo.md +550 -0
  37. package/docs/tcloud-ui-loading.md +88 -0
  38. package/docs/tcloud-ui-message.md +539 -0
  39. package/docs/tcloud-ui-modal.md +196 -0
  40. package/docs/tcloud-ui-monthname.md +123 -0
  41. package/docs/tcloud-ui-multi-input.md +290 -0
  42. package/docs/tcloud-ui-multi-select.md +311 -0
  43. package/docs/tcloud-ui-multiples-values.md +157 -0
  44. package/docs/tcloud-ui-not-found.md +88 -0
  45. package/docs/tcloud-ui-number-step.md +134 -0
  46. package/docs/tcloud-ui-pagination.md +579 -0
  47. package/docs/tcloud-ui-progress-bar.md +65 -0
  48. package/docs/tcloud-ui-radio.md +83 -0
  49. package/docs/tcloud-ui-reorder-items.md +418 -0
  50. package/docs/tcloud-ui-respective.md +167 -0
  51. package/docs/tcloud-ui-scroll-box.md +109 -0
  52. package/docs/tcloud-ui-search-bar.md +88 -0
  53. package/docs/tcloud-ui-search-in-object.md +143 -0
  54. package/docs/tcloud-ui-search-input.md +74 -0
  55. package/docs/tcloud-ui-skeleton-loading.md +394 -0
  56. package/docs/tcloud-ui-slide-toggle.md +210 -0
  57. package/docs/tcloud-ui-statusinfo.md +138 -0
  58. package/docs/tcloud-ui-tab-group.md +376 -0
  59. package/docs/tcloud-ui-tab-menu.md +109 -0
  60. package/docs/tcloud-ui-table.md +96 -0
  61. package/docs/tcloud-ui-tag.md +379 -0
  62. package/docs/tcloud-ui-tc-badge.md +168 -0
  63. package/docs/tcloud-ui-tc-btn.md +189 -0
  64. package/docs/tcloud-ui-tc-colors.md +204 -0
  65. package/docs/tcloud-ui-tc-form-control.md +200 -0
  66. package/docs/tcloud-ui-tc-text.md +139 -0
  67. package/docs/tcloud-ui-tc-title.md +118 -0
  68. package/docs/tcloud-ui-tcloud-form.md +55 -0
  69. package/docs/tcloud-ui-toast.md +83 -0
  70. package/docs/tcloud-ui-tooltip.md +88 -0
  71. package/docs/tcloud-ui-topology.md +232 -0
  72. package/docs/tcloud-ui-upload-area.md +195 -0
  73. package/docs/tcloud-ui-welcome.md +112 -0
  74. package/docs/tcloud-ui-wizard-steps.md +103 -0
  75. package/js/tcloud-ui-app.js +11 -0
  76. package/package.json +1 -1
  77. package/scss/tcloud-revitalizacao/components/_tcloud-ui-table.scss +95 -0
  78. package/scss/tcloud-revitalizacao/tc-rev-styles.scss +1 -1
  79. package/scss/tcloud-revitalizacao/components/_tc-rev-table.scss +0 -57
@@ -0,0 +1,345 @@
1
+ # Accordion
2
+
3
+ O componente **Accordion** fornece uma interface colapsável e expansível para organizar conteúdo em seções. Cada seção possui um título e um corpo que pode ser expandido ou contraído através de interação do usuário ou programaticamente.
4
+
5
+ ## Características
6
+
7
+ - **Expansão/Contração suave**: Animação flu ida de altura com duração de 0.35s
8
+ - **Controle programático**: Propriedades `show` e `disabled` para contolar o estado
9
+ - **Estado de carregamento**: Modo loading para indicar operações assíncronas
10
+ - **Reatividade baseada em Serviço**: Utiliza um serviço compartilhado para sincronizar estado entre componentes
11
+ - **Composição flexível**: Estrutura de componentes filhos (title e body)
12
+ - **Eventos emitidos**: Notifica quando o accordion é aberto ou fechado através da propriedade `onAction`
13
+ - **Desabilitável**: Pode ser desabilitado para evitar interação do usuário
14
+
15
+ ## Instalação
16
+
17
+ ```typescript
18
+ import { TCloudUiModule } from 'projects/tcloud-ui/src/public-api';
19
+
20
+ @Component({
21
+ imports: [TCloudUiModule],
22
+ // ... resto da configuração
23
+ })
24
+ export class MyComponent {}
25
+ ```
26
+
27
+ ## Propriedades (API)
28
+
29
+ ### Inputs
30
+
31
+ | Nome | Tipo | Descrição | Valor Default |
32
+ |------|------|-----------|---------------|
33
+ | `show` | `boolean` | Define se o accordion está expandido (true) ou contraído (false) | `false` |
34
+ | `disabled` | `boolean` | Desabilita a interação com o accordion, impedindo expansão/contração | `false` |
35
+ | `loading` | `boolean` | Ativa modo de carregamento, indicando operação assíncrona em andamento | `false` |
36
+
37
+ ### Outputs
38
+
39
+ | Nome | Tipo de Evento | Descrição |
40
+ |------|--------|-----------|
41
+ | `onAction` | `'open' \| 'close'` | Emite quando o accordion é expandido (open) ou contraído (close) |
42
+
43
+ ## Componentes Filhos
44
+
45
+ ### tcloud-ui-accordion-title
46
+
47
+ Representa o título/cabeçalho do accordion. Contém um botão de toggle com ícone de chevron que se rotaciona conforme o estado.
48
+
49
+ ```html
50
+ <tcloud-ui-accordion-title>
51
+ Título do Accordion
52
+ </tcloud-ui-accordion-title>
53
+ ```
54
+
55
+ **Características:**
56
+ - Exibe o conteúdo via `<ng-content>`
57
+ - Botão com ícone que indica estado (chevron-right quando fechado, chevron-down quando aberto)
58
+ - Responde a cliques para alternar estado
59
+ - Pode ser desabilitada junto com o accordion
60
+
61
+ ### tcloud-ui-accordion-body
62
+
63
+ Representa o corpo/conteúdo do accordion. Aplica animação de expansão/contração.
64
+
65
+ ```html
66
+ <tcloud-ui-accordion-body>
67
+ Conteúdo do Accordion
68
+ </tcloud-ui-accordion-body>
69
+ ```
70
+
71
+ **Características:**
72
+ - Aplica animação de altura: 0 (fechado) → auto (aberto)
73
+ - Duração da animação: 0.35s com easing ease-in-out
74
+ - Sincroniza automaticamente com o estado do accordion pai
75
+
76
+ ## Exemplos de Uso
77
+
78
+ ### Uso Básico
79
+
80
+ Accordion simples com título e conteúdo de texto:
81
+
82
+ ```typescript
83
+ @Component({
84
+ selector: 'app-accordion-basic',
85
+ imports: [TCloudUiModule],
86
+ template: `
87
+ <tcloud-ui-accordion>
88
+ <tcloud-ui-accordion-title>
89
+ Seção 1
90
+ </tcloud-ui-accordion-title>
91
+
92
+ <tcloud-ui-accordion-body>
93
+ Conteúdo da primeira seção
94
+ </tcloud-ui-accordion-body>
95
+ </tcloud-ui-accordion>
96
+
97
+ <tcloud-ui-accordion>
98
+ <tcloud-ui-accordion-title>
99
+ Seção 2
100
+ </tcloud-ui-accordion-title>
101
+
102
+ <tcloud-ui-accordion-body>
103
+ Conteúdo da segunda seção
104
+ </tcloud-ui-accordion-body>
105
+ </tcloud-ui-accordion>
106
+ `
107
+ })
108
+ export class AccordionBasicComponent {}
109
+ ```
110
+
111
+ ### Uso Avançado com Controle de Estado
112
+
113
+ Accordion com controle programático e sincronização de eventos:
114
+
115
+ ```typescript
116
+ @Component({
117
+ selector: 'app-accordion-advanced',
118
+ imports: [CommonModule, TCloudUiModule],
119
+ template: `
120
+ <div class="accordion-controls">
121
+ <button
122
+ (click)="expandAll()"
123
+ class="tc-btn tc-btn-primary"
124
+ >
125
+ Expandir Todos
126
+ </button>
127
+
128
+ <button
129
+ (click)="collapseAll()"
130
+ class="tc-btn"
131
+ >
132
+ Fechar Todos
133
+ </button>
134
+
135
+ <button
136
+ (click)="toggleDisable()"
137
+ [class.active]="isDisabled"
138
+ class="tc-btn"
139
+ >
140
+ {{ isDisabled ? 'Habilitar' : 'Desabilitar' }}
141
+ </button>
142
+ </div>
143
+
144
+ <div class="accordion-container">
145
+ <tcloud-ui-accordion
146
+ *ngFor="let section of sections; let i = index"
147
+ [show]="expandedStates[i]"
148
+ [disabled]="isDisabled"
149
+ [loading]="loadingStates[i]"
150
+ (onAction)="handleAction($event, i)"
151
+ >
152
+ <tcloud-ui-accordion-title>
153
+ {{ section.title }}
154
+ </tcloud-ui-accordion-title>
155
+
156
+ <tcloud-ui-accordion-body>
157
+ {{ section.content }}
158
+ </tcloud-ui-accordion-body>
159
+ </tcloud-ui-accordion>
160
+ </div>
161
+
162
+ <div class="event-log" *ngIf="lastEvent">
163
+ <p>Último evento: {{ lastEvent }}</p>
164
+ </div>
165
+ `
166
+ })
167
+ export class AccordionAdvancedComponent {
168
+ sections = [
169
+ { title: 'Informações Pessoais', content: 'Nome, e-mail, telefone' },
170
+ { title: 'Endereço', content: 'Rua, número, cidade, estado' },
171
+ { title: 'Documentação', content: 'CPF, RG, Comprovante de residência' }
172
+ ];
173
+
174
+ expandedStates: boolean[] = [true, false, false];
175
+ loadingStates: boolean[] = [false, false, false];
176
+ isDisabled: boolean = false;
177
+ lastEvent: string = '';
178
+
179
+ expandAll() {
180
+ this.expandedStates = this.expandedStates.map(() => true);
181
+ }
182
+
183
+ collapseAll() {
184
+ this.expandedStates = this.expandedStates.map(() => false);
185
+ }
186
+
187
+ toggleDisable() {
188
+ this.isDisabled = !this.isDisabled;
189
+ }
190
+
191
+ handleAction(action: 'open' | 'close', index: number) {
192
+ this.lastEvent = `Seção ${index + 1} ${action === 'open' ? 'expandida' : 'contraída'}`;
193
+
194
+ // Simular carregamento de dados
195
+ if (action === 'open') {
196
+ this.loadingStates[index] = true;
197
+ setTimeout(() => {
198
+ this.loadingStates[index] = false;
199
+ }, 2000);
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ ### Uso com Tabelas e Conteúdo Dinâmico
206
+
207
+ Accordion contendo tabelas e conteúdo complexo:
208
+
209
+ ```typescript
210
+ @Component({
211
+ selector: 'app-accordion-with-table',
212
+ imports: [CommonModule, TCloudUiModule],
213
+ template: `
214
+ <tcloud-ui-accordion
215
+ [show]="showProducts"
216
+ (onAction)="onProductsAction($event)"
217
+ >
218
+ <tcloud-ui-accordion-title>
219
+ Produtos ({{ products.length }})
220
+ </tcloud-ui-accordion-title>
221
+
222
+ <tcloud-ui-accordion-body>
223
+ <table class="products-table">
224
+ <thead>
225
+ <tr>
226
+ <th>Nome</th>
227
+ <th>Categoria</th>
228
+ <th>Preço</th>
229
+ <th>Estoque</th>
230
+ </tr>
231
+ </thead>
232
+ <tbody>
233
+ <tr *ngFor="let product of products">
234
+ <td>{{ product.name }}</td>
235
+ <td>{{ product.category }}</td>
236
+ <td>{{ product.price | currency }}</td>
237
+ <td>
238
+ <span [class.low-stock]="product.stock < 10">
239
+ {{ product.stock }}
240
+ </span>
241
+ </td>
242
+ </tr>
243
+ </tbody>
244
+ </table>
245
+ </tcloud-ui-accordion-body>
246
+ </tcloud-ui-accordion>
247
+
248
+ <tcloud-ui-accordion
249
+ [show]="showOrders"
250
+ [loading]="loadingOrders"
251
+ (onAction)="onOrdersAction($event)"
252
+ >
253
+ <tcloud-ui-accordion-title>
254
+ Pedidos Pendentes ({{ orders.length }})
255
+ </tcloud-ui-accordion-title>
256
+
257
+ <tcloud-ui-accordion-body>
258
+ <div *ngIf="loadingOrders" class="loading">
259
+ Carregando pedidos...
260
+ </div>
261
+
262
+ <div *ngIf="!loadingOrders" class="orders-list">
263
+ <div *ngFor="let order of orders" class="order-item">
264
+ <p><strong>Pedido #{{ order.id }}</strong> - {{ order.date | date:'dd/MM/yyyy' }}</p>
265
+ <p>Status: <span [class]="'status-' + order.status">{{ order.status }}</span></p>
266
+ </div>
267
+ </div>
268
+ </tcloud-ui-accordion-body>
269
+ </tcloud-ui-accordion>
270
+ `,
271
+ styles: [`
272
+ .products-table {
273
+ width: 100%;
274
+ border-collapse: collapse;
275
+ }
276
+
277
+ .low-stock {
278
+ color: #d32f2f;
279
+ font-weight: bold;
280
+ }
281
+
282
+ .orders-list {
283
+ padding: 12px 0;
284
+ }
285
+
286
+ .order-item {
287
+ padding: 8px;
288
+ border-bottom: 1px solid #eee;
289
+ }
290
+
291
+ .status-pending {
292
+ color: #ff9800;
293
+ }
294
+
295
+ .status-confirmed {
296
+ color: #4caf50;
297
+ }
298
+ `]
299
+ })
300
+ export class AccordionWithTableComponent {
301
+ showProducts: boolean = true;
302
+ showOrders: boolean = false;
303
+ loadingOrders: boolean = false;
304
+
305
+ products = [
306
+ { name: 'Notebook', category: 'Eletrônicos', price: 2500, stock: 5 },
307
+ { name: 'Mouse', category: 'Periféricos', price: 50, stock: 25 },
308
+ { name: 'Teclado', category: 'Periféricos', price: 150, stock: 8 }
309
+ ];
310
+
311
+ orders: any[] = [];
312
+
313
+ onProductsAction(action: 'open' | 'close') {
314
+ console.log('Produtos', action);
315
+ }
316
+
317
+ onOrdersAction(action: 'open' | 'close') {
318
+ console.log('Pedidos', action);
319
+
320
+ if (action === 'open') {
321
+ this.loadingOrders = true;
322
+ // Simular carregamento de dados
323
+ setTimeout(() => {
324
+ this.orders = [
325
+ { id: 'PED-001', date: new Date(), status: 'pending' },
326
+ { id: 'PED-002', date: new Date(), status: 'confirmed' },
327
+ { id: 'PED-003', date: new Date(), status: 'pending' }
328
+ ];
329
+ this.loadingOrders = false;
330
+ }, 1500);
331
+ }
332
+ }
333
+ }
334
+ ```
335
+
336
+ ## Notas de Implementação
337
+
338
+ - O componente utiliza um **serviço compartilhado** (`TCloudUiAccordionService`) fornecido no nível do componente pai
339
+ - Todos os componentes filhos (title e body) injetam o mesmo serviço e se sincronizam através de **Observables (RxJS)**
340
+ - A animação é implementada através de **Angular Animations** (trigger `expandAccordion`)
341
+ - Quando `disabled` é definido como `true`, todas as operações são ignoradas e o accordion é visualmente desabilitado
342
+ - O evento `onAction` emite apenas quando o estado é alterado dentro do componente (não quando alterado via propriedade `show`)
343
+ - A propriedade `loading` não impede interação, apenas ativa um indicador visual
344
+ - Múltiplas instâncias de accordion são **independentes** - cada uma tem seu próprio serviço
345
+ - O titulo (title) também ativa alternância ao clicar, além do botão de toggle
@@ -0,0 +1,88 @@
1
+ # Actions (ProductAction Pipe)
2
+
3
+ ## Características
4
+
5
+ O `ProductActionPipe` é um pipe Angular que traduz códigos de ações de produto para descrições legíveis em português. Suporta dois modos de operação:
6
+
7
+ - **single** (padrão): recebe uma string que pode conter múltiplas ações separadas por `&`. Quando há mais de uma ação, cada uma é traduzida individualmente e o resultado é unido com ` - `.
8
+ - **bulk**: traduz diretamente uma única ação, ignorando a lógica de split por `&`.
9
+
10
+ ### Ações Reconhecidas
11
+
12
+ | Código | Tradução |
13
+ |-------------------------------------|---------------------------------|
14
+ | `update-release` / `update_release` | Atualizar versão da release |
15
+ | `update-patch` / `update_patch` | Atualizar versão do pacote |
16
+ | `update-database-dump` / `update-global-dump` / `update_global_dump` | Dump global |
17
+ | `update-patch & update-release` | Atualizar pacote/release |
18
+
19
+ Ações não reconhecidas são retornadas sem alteração.
20
+
21
+ ## Instalação
22
+
23
+ Importe o `ProductActionPipe` no componente standalone:
24
+
25
+ ```typescript
26
+ import { ProductActionPipe } from 'tcloud-ui';
27
+
28
+ @Component({
29
+ selector: 'app-exemplo',
30
+ standalone: true,
31
+ imports: [ProductActionPipe],
32
+ template: '...'
33
+ })
34
+ export class ExemploComponent {}
35
+ ```
36
+
37
+ ## Propriedades (API)
38
+
39
+ ### Inputs (Parâmetros do Pipe)
40
+
41
+ | Nome | Tipo | Descrição | Valor Default |
42
+ |-------|-----------------------|---------------------------------------------------------------------------|---------------|
43
+ | value | `string` | String contendo a(s) ação(ões) a ser(em) traduzida(s). | — |
44
+ | type | `'bulk' \| 'single'` | Modo de operação: `single` faz split por `&`, `bulk` traduz diretamente. | `'single'` |
45
+
46
+ ## Exemplos de Uso
47
+
48
+ ### Uso Básico — Ação Única
49
+
50
+ ```html
51
+ <!-- Entrada: 'update-release' -->
52
+ <!-- Saída: 'Atualizar versão da release' -->
53
+ <span>{{ 'update-release' | productAction }}</span>
54
+ ```
55
+
56
+ ### Uso com Múltiplas Ações
57
+
58
+ ```html
59
+ <!-- Entrada: 'update-release&update-patch' -->
60
+ <!-- Saída: 'Atualizar versão da release - Atualizar versão do pacote' -->
61
+ <span>{{ 'update-release&update-patch' | productAction }}</span>
62
+ ```
63
+
64
+ ### Uso com Tipo Bulk
65
+
66
+ ```html
67
+ <!-- Entrada: 'update-database-dump' com type 'bulk' -->
68
+ <!-- Saída: 'Dump global' -->
69
+ <span>{{ 'update-database-dump' | productAction:'bulk' }}</span>
70
+ ```
71
+
72
+ ### Uso Avançado — Binding Dinâmico
73
+
74
+ ```typescript
75
+ @Component({
76
+ selector: 'app-exemplo',
77
+ standalone: true,
78
+ imports: [ProductActionPipe],
79
+ template: `
80
+ <div *ngFor="let action of actions">
81
+ {{ action | productAction }}
82
+ </div>
83
+ `
84
+ })
85
+ export class ExemploComponent {
86
+ actions = ['update-release', 'update-patch', 'update-database-dump', 'custom-action'];
87
+ }
88
+ ```
@@ -0,0 +1,104 @@
1
+ # Alert Banner
2
+
3
+ ## Características
4
+
5
+ O `TCloudUiAlertBannerComponent` é um componente Angular standalone que exibe banners de alerta com ícone, mensagem e link opcional. Suporta diferentes tipos visuais de alerta:
6
+
7
+ - **warning**: fundo e borda em tons de alerta (amarelo/laranja).
8
+ - **danger**: fundo e borda em tons de perigo (vermelho).
9
+ - **info**: fundo e borda em tons informativos (azul).
10
+ - **success**: fundo e borda em tons de sucesso (verde).
11
+
12
+ O banner possui uma borda lateral esquerda colorida com ícone de exclamação e suporta um link clicável dentro da mensagem, emitindo um evento ao ser clicado.
13
+
14
+ ## Instalação
15
+
16
+ Importe o `TCloudUiAlertBannerComponent` no componente standalone:
17
+
18
+ ```typescript
19
+ import { TCloudUiAlertBannerComponent } from 'tcloud-ui';
20
+
21
+ @Component({
22
+ selector: 'app-exemplo',
23
+ standalone: true,
24
+ imports: [TCloudUiAlertBannerComponent],
25
+ template: '...'
26
+ })
27
+ export class ExemploComponent {}
28
+ ```
29
+
30
+ ## Propriedades (API)
31
+
32
+ ### Inputs
33
+
34
+ | Nome | Tipo | Descrição | Valor Default |
35
+ |-----------|---------------------------|----------------------------------------------------|---------------|
36
+ | alertType | `'warning' \| 'danger'` | Define o tipo visual do alerta (cor de fundo/borda).| `'warning'` |
37
+ | message | `string` | Texto da mensagem exibida no banner. | `''` |
38
+ | linkText | `string` | Texto do link exibido após a mensagem. | `''` |
39
+ | linkUrl | `string` | URL do link (disponível para binding). | `''` |
40
+
41
+ ### Outputs
42
+
43
+ | Nome | Tipo de Evento | Descrição |
44
+ |-------------|----------------|--------------------------------------------|
45
+ | linkClicked | `void` | Emitido quando o link do banner é clicado. |
46
+
47
+ ## Exemplos de Uso
48
+
49
+ ### Uso Básico — Alerta Warning com Link
50
+
51
+ ```html
52
+ <tcloud-ui-alert-banner
53
+ [alertType]="'warning'"
54
+ [message]="'Atenção: esta ação não poderá ser desfeita.'"
55
+ [linkText]="'Saiba mais'"
56
+ (linkClicked)="onLinkClicked()">
57
+ </tcloud-ui-alert-banner>
58
+ ```
59
+
60
+ ### Uso Básico — Alerta Danger
61
+
62
+ ```html
63
+ <tcloud-ui-alert-banner
64
+ [alertType]="'danger'"
65
+ [message]="'Erro crítico detectado no sistema.'"
66
+ [linkText]="'Ver detalhes'"
67
+ (linkClicked)="onLinkClicked()">
68
+ </tcloud-ui-alert-banner>
69
+ ```
70
+
71
+ ### Uso Sem Link
72
+
73
+ ```html
74
+ <tcloud-ui-alert-banner
75
+ [alertType]="'warning'"
76
+ [message]="'Mensagem de alerta simples sem link.'">
77
+ </tcloud-ui-alert-banner>
78
+ ```
79
+
80
+ ### Uso Avançado — Tipo Dinâmico
81
+
82
+ ```typescript
83
+ @Component({
84
+ selector: 'app-exemplo',
85
+ standalone: true,
86
+ imports: [TCloudUiAlertBannerComponent],
87
+ template: `
88
+ <tcloud-ui-alert-banner
89
+ [alertType]="currentType"
90
+ [message]="currentMessage"
91
+ [linkText]="'Clique aqui'"
92
+ (linkClicked)="handleClick()">
93
+ </tcloud-ui-alert-banner>
94
+ `
95
+ })
96
+ export class ExemploComponent {
97
+ currentType: 'warning' | 'danger' = 'warning';
98
+ currentMessage = 'Mensagem dinâmica de alerta.';
99
+
100
+ handleClick(): void {
101
+ console.log('Link do banner clicado');
102
+ }
103
+ }
104
+ ```