@dev-tcloud/tcloud-ui 6.23.2 → 6.25.0-beta.1

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.
@@ -2,14 +2,14 @@
2
2
 
3
3
  ## Características
4
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:
5
+ O `TCloudUiAlertBannerComponent` é um componente Angular standalone para exibir mensagens de alerta com quatro variações visuais: `warning`, `danger`, `info` e `success`.
6
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).
7
+ O conteúdo do banner pode ser fornecido de duas formas:
11
8
 
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.
9
+ - por texto simples, usando o input `message`;
10
+ - por conteúdo HTML, usando o input `content`, renderizado via `innerHTML`.
11
+
12
+ Quando `linkText` é informado, o componente renderiza uma ação clicável ao lado da mensagem e emite o evento `linkClicked`.
13
13
 
14
14
  ## Instalação
15
15
 
@@ -31,22 +31,23 @@ export class ExemploComponent {}
31
31
 
32
32
  ### Inputs
33
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). | `''` |
34
+ | Nome | Tipo | Descrição | Valor Default |
35
+ |------|------|-----------|---------------|
36
+ | alertType | `'warning' \| 'danger' \| 'info' \| 'success'` | Define a variação visual do banner. | `'warning'` |
37
+ | message | `string \| undefined` | Texto simples exibido no banner. | `undefined` |
38
+ | content | `any \| undefined` | Conteúdo HTML renderizado no corpo do banner via `innerHTML`. | `undefined` |
39
+ | linkText | `string` | Texto da ação clicável exibida ao lado da mensagem. | `''` |
40
+ | linkUrl | `string` | Valor auxiliar exposto como input. A implementação atual não aplica esse valor automaticamente ao link renderizado. | `''` |
40
41
 
41
42
  ### Outputs
42
43
 
43
- | Nome | Tipo de Evento | Descrição |
44
- |-------------|----------------|--------------------------------------------|
45
- | linkClicked | `void` | Emitido quando o link do banner é clicado. |
44
+ | Nome | Tipo de Evento | Descrição |
45
+ |------|----------------|-----------|
46
+ | linkClicked | `EventEmitter<void>` | Emitido quando a ação do banner é clicada. |
46
47
 
47
48
  ## Exemplos de Uso
48
49
 
49
- ### Uso Básico — Alerta Warning com Link
50
+ ### Uso Básico
50
51
 
51
52
  ```html
52
53
  <tcloud-ui-alert-banner
@@ -57,29 +58,27 @@ export class ExemploComponent {}
57
58
  </tcloud-ui-alert-banner>
58
59
  ```
59
60
 
60
- ### Uso Básico Alerta Danger
61
+ ### Uso com Conteúdo HTML
61
62
 
62
63
  ```html
63
64
  <tcloud-ui-alert-banner
64
- [alertType]="'danger'"
65
- [message]="'Erro crítico detectado no sistema.'"
66
- [linkText]="'Ver detalhes'"
65
+ [alertType]="'warning'"
66
+ [content]="alertContent"
67
+ [linkText]="'Saiba mais'"
67
68
  (linkClicked)="onLinkClicked()">
68
69
  </tcloud-ui-alert-banner>
69
70
  ```
70
71
 
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>
72
+ ```typescript
73
+ alertContent = '<strong>Observação:</strong><br>Texto de exemplo.';
78
74
  ```
79
75
 
80
- ### Uso Avançado — Tipo Dinâmico
76
+ ### Uso Avançado
81
77
 
82
78
  ```typescript
79
+ import { Component } from '@angular/core';
80
+ import { TCloudUiAlertBannerComponent, AlertType } from 'tcloud-ui';
81
+
83
82
  @Component({
84
83
  selector: 'app-exemplo',
85
84
  standalone: true,
@@ -94,7 +93,7 @@ export class ExemploComponent {}
94
93
  `
95
94
  })
96
95
  export class ExemploComponent {
97
- currentType: 'warning' | 'danger' = 'warning';
96
+ currentType: AlertType = 'info';
98
97
  currentMessage = 'Mensagem dinâmica de alerta.';
99
98
 
100
99
  handleClick(): void {
@@ -0,0 +1,159 @@
1
+ # TCloudUiCarousel
2
+
3
+ O componente `tcloud-ui-carousel` exibe conteúdos em formato de carrossel horizontal, com suporte a imagens ou qualquer conteúdo projetado via `ng-content`. Ele foi pensado para banners, cards e blocos visuais simples, mantendo navegação, paginação, autoplay e efeitos configuráveis por atributos.
4
+
5
+ ## Características
6
+
7
+ - Projeção de conteúdo via `ng-content`
8
+ - Cada item projetado ocupa 100% da largura disponível do carrossel
9
+ - Navegação por setas sobre a imagem
10
+ - Paginação por indicadores sobre a imagem
11
+ - Autoplay configurável
12
+ - Suporte a efeito `slide` e `fade`
13
+ - Loop opcional
14
+ - Scroll snap opcional
15
+ - Componente standalone
16
+
17
+ ## Instalação
18
+
19
+ Importe o componente diretamente em componentes standalone:
20
+
21
+ ```typescript
22
+ import { TCloudUiCarouselComponent } from 'tcloud-ui';
23
+
24
+ @Component({
25
+ standalone: true,
26
+ imports: [TCloudUiCarouselComponent],
27
+ template: `...`
28
+ })
29
+ export class ExemploCarouselComponent {}
30
+ ```
31
+
32
+ Ou utilize pelo `TCloudUiModule`, quando a aplicação já importar o módulo completo da biblioteca.
33
+
34
+ ## Uso Básico
35
+
36
+ ```html
37
+ <tcloud-ui-carousel>
38
+ <img src="assets/banner-1.png" alt="Banner 1">
39
+ <img src="assets/banner-2.png" alt="Banner 2">
40
+ <img src="assets/banner-3.png" alt="Banner 3">
41
+ </tcloud-ui-carousel>
42
+ ```
43
+
44
+ ## Uso com Configurações
45
+
46
+ ```html
47
+ <tcloud-ui-carousel
48
+ autoplay-delay="8000"
49
+ autoplay-disable-on-interaction="false"
50
+ effect="fade"
51
+ loop="true"
52
+ pagination="true"
53
+ pagination-clickable="true"
54
+ navigation="true"
55
+ speed="1000">
56
+ <img src="assets/banner-1.png" alt="Banner 1">
57
+ <img src="assets/banner-2.png" alt="Banner 2">
58
+ </tcloud-ui-carousel>
59
+ ```
60
+
61
+ ## Controlando a Largura Externamente
62
+
63
+ O carrossel ocupa `100%` da largura do container pai. Para exibir em tamanho menor, controle o wrapper externo:
64
+
65
+ ```html
66
+ <div class="carousel-wrapper">
67
+ <tcloud-ui-carousel pagination="true" navigation="true">
68
+ <img src="assets/banner-1.png" alt="Banner 1">
69
+ <img src="assets/banner-2.png" alt="Banner 2">
70
+ </tcloud-ui-carousel>
71
+ </div>
72
+ ```
73
+
74
+ ```scss
75
+ .carousel-wrapper {
76
+ width: 80%;
77
+ max-width: 900px;
78
+ margin: 0 auto;
79
+ }
80
+ ```
81
+
82
+ ## Propriedades
83
+
84
+ ### Inputs
85
+
86
+ | Propriedade | Tipo | Padrão | Descrição |
87
+ |-------------|------|--------|-----------|
88
+ | `ariaLabel` | `string` | `'Carrossel'` | Texto acessível usado para identificar a região do carrossel para leitores de tela. |
89
+ | `controlsPosition` | `'inside' \| 'outside'` | `'inside'` | Define a posição dos botões. Atualmente o uso principal é `inside`, com setas sobre o conteúdo. |
90
+ | `gap` | `string` | `'0'` | Espaçamento horizontal entre slides. Aceita qualquer valor CSS válido, como `'0'`, `'8px'` ou `'var(--size-16)'`. |
91
+ | `hideScrollbar` | `boolean` | `true` | Oculta a scrollbar horizontal do carrossel. |
92
+ | `scrollBehavior` | `ScrollBehavior` | `'smooth'` | Comportamento nativo do scroll. Aceita `'smooth'`, `'auto'` ou `'instant'`, conforme suporte do navegador. |
93
+ | `snap` | `boolean` | `true` | Faz o scroll encaixar no início de cada slide. Evita que o carrossel pare entre dois slides no efeito `slide`. |
94
+ | `autoplay-delay` | `number` | `0` | Tempo em milissegundos entre as trocas automáticas de slide. Use `0` para desativar autoplay. |
95
+ | `autoplay-disable-on-interaction` | `boolean` | `true` | Define se o autoplay deve parar quando o usuário interagir com setas ou paginação. |
96
+ | `effect` | `'slide' \| 'fade'` | `'slide'` | Tipo de transição visual entre slides. |
97
+ | `loop` | `boolean` | `false` | Permite navegação circular entre os slides. Ao avançar no último, volta para o primeiro. |
98
+ | `pagination` | `boolean` | `false` | Exibe os indicadores de paginação sobre a imagem. |
99
+ | `pagination-clickable` | `boolean` | `true` | Permite clicar nos indicadores para navegar diretamente para um slide. |
100
+ | `navigation` | `boolean` | `true` | Exibe os botões de navegação anterior e próximo sobre a imagem. |
101
+ | `speed` | `number` | `300` | Duração da animação em milissegundos. Afeta a animação customizada de slide e a transição de opacidade no `fade`. |
102
+
103
+ ### Outputs
104
+
105
+ | Output | Tipo | Descrição |
106
+ |--------|------|-----------|
107
+ | `activeIndexChange` | `EventEmitter<number>` | Emitido quando o slide ativo muda. Retorna o índice do slide, começando em `0`. |
108
+
109
+ ## Exemplos
110
+
111
+ ### Com Slide, Paginação e Setas
112
+
113
+ ```html
114
+ <tcloud-ui-carousel
115
+ effect="slide"
116
+ pagination="true"
117
+ navigation="true"
118
+ loop="true">
119
+ <img src="assets/banner-1.png" alt="Banner 1">
120
+ <img src="assets/banner-2.png" alt="Banner 2">
121
+ </tcloud-ui-carousel>
122
+ ```
123
+
124
+ ### Com Fade e Autoplay
125
+
126
+ ```html
127
+ <tcloud-ui-carousel
128
+ effect="fade"
129
+ autoplay-delay="5000"
130
+ autoplay-disable-on-interaction="false"
131
+ speed="1000"
132
+ pagination="true">
133
+ <img src="assets/banner-1.png" alt="Banner 1">
134
+ <img src="assets/banner-2.png" alt="Banner 2">
135
+ </tcloud-ui-carousel>
136
+ ```
137
+
138
+ ### Com Cards
139
+
140
+ ```html
141
+ <tcloud-ui-carousel pagination="true" navigation="true">
142
+ <article class="card">
143
+ <h3>Plano Basic</h3>
144
+ <p>Conteúdo do primeiro slide.</p>
145
+ </article>
146
+
147
+ <article class="card">
148
+ <h3>Plano Prime</h3>
149
+ <p>Conteúdo do segundo slide.</p>
150
+ </article>
151
+ </tcloud-ui-carousel>
152
+ ```
153
+
154
+ ## Observações
155
+
156
+ - Para imagens externas, prefira URLs públicas e estáveis. URLs assinadas com expiração podem fazer o carrossel parecer vazio quando vencerem.
157
+ - Para reduzir a largura visual, use um container externo em vez de alterar estilos internos do componente.
158
+ - No modo `fade`, os slides são sobrepostos e alternados por opacidade.
159
+ - No modo `slide`, o carrossel usa scroll horizontal com suporte a snap.