@dev-tcloud/tcloud-ui 6.24.0 → 6.25.0-beta.2

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.
@@ -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.