@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.
- package/docs/tcloud-ui-carousel.md +159 -0
- package/fesm2022/dev-tcloud-tcloud-ui.mjs +393 -6
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/js/tcloud-ui-app.js +2 -2
- package/lib/_modules/tcloud-ui-carousel/tcloud-ui-carousel.component.d.ts +134 -0
- package/lib/tcloud-ui.module.d.ts +54 -53
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/scss/components/custom/table.scss +55 -44
- package/scss/tcloud-ui/styles/_claus-colors.scss +136 -173
- package/scss/tcloud-ui/styles/_claus-variables.scss +226 -32
|
@@ -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.
|