@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,232 @@
1
+ # Topology Pipes
2
+
3
+ O conjunto de pipes `topology` fornece quatro pipes independentes para tradução de valores de topologia de infraestrutura TOTVS Cloud: status de servidores, regiões de datacenter, tipos de ambiente e produtos. Cada pipe realiza a conversão de chaves internas para nomes legíveis em português.
4
+
5
+ ## Características
6
+
7
+ - Quatro pipes especializados: `topologyStatus`, `topologyRegion`, `topologyEnvironment` e `topologyProduct`
8
+ - Tradução de chaves de infraestrutura para nomes legíveis
9
+ - Comparação case-insensitive no pipe de status
10
+ - Suporte a subproduto no pipe de produto (ex: Protheus como Smart ERP via `origin`)
11
+ - Retorna o valor original quando não encontra correspondência (exceto `topologyEnvironment` que retorna "Ambiente Indefinido")
12
+ - Todos os pipes são standalone
13
+
14
+ ## Instalação
15
+
16
+ Importe os pipes diretamente no módulo ou componente standalone:
17
+
18
+ ```typescript
19
+ import {
20
+ TopologyStatusPipe,
21
+ TopologyRegionPipe,
22
+ TopologyEnvironmentPipe,
23
+ TopologyProductPipe
24
+ } from 'tcloud-ui';
25
+ ```
26
+
27
+ ---
28
+
29
+ ## TopologyStatusPipe
30
+
31
+ ### Sintaxe
32
+
33
+ ```
34
+ {{ valor | topologyStatus }}
35
+ ```
36
+
37
+ ### Mapa de Status
38
+
39
+ | Chave | Valor |
40
+ |---------------|-------------------|
41
+ | `ok` / `done` | Disponível |
42
+ | `error` | Indisponível |
43
+ | `deleting` | Apagando... |
44
+ | `stopped` | Desligado |
45
+ | `new` | Em criação |
46
+ | `dr_new` | Configurando DR |
47
+ | `dr_done` | DR configurado |
48
+ | `maintenance` | Em manutenção |
49
+ | `migrating` | Migrando |
50
+
51
+ ---
52
+
53
+ ## TopologyRegionPipe
54
+
55
+ ### Sintaxe
56
+
57
+ ```
58
+ {{ valor | topologyRegion }}
59
+ ```
60
+
61
+ ### Mapa de Regiões
62
+
63
+ | Chave | Valor |
64
+ |----------|--------|
65
+ | `zone_1` | TESP01 |
66
+ | `zone_2` | TESP02 |
67
+ | `tesp03` | TESP03 |
68
+ | `tesp04` | TESP04 |
69
+ | `tesp05` | TESP05 |
70
+ | `tece01` | TECE01 |
71
+ | `tesp06` | TESP06 |
72
+
73
+ ---
74
+
75
+ ## TopologyEnvironmentPipe
76
+
77
+ ### Sintaxe
78
+
79
+ ```
80
+ {{ valor | topologyEnvironment }}
81
+ ```
82
+
83
+ ### Mapa de Ambientes
84
+
85
+ | Chave | Valor |
86
+ |----------------|----------------------|
87
+ | `production` | Produção |
88
+ | `qa` | Qualidade |
89
+ | `development` | Desenvolvimento |
90
+ | `troubleshoot` | Troubleshoot |
91
+ | `audit` | Auditoria |
92
+ | `historical` | Histórico |
93
+ | *(outros)* | Ambiente Indefinido |
94
+
95
+ ---
96
+
97
+ ## TopologyProductPipe
98
+
99
+ ### Sintaxe
100
+
101
+ ```
102
+ {{ valor | topologyProduct }}
103
+ {{ valor | topologyProduct:origin }}
104
+ ```
105
+
106
+ ### Parâmetros
107
+
108
+ | Parâmetro | Tipo | Obrigatório | Descrição |
109
+ |-----------|----------|-------------|----------------------------------------------------------------------|
110
+ | `origin` | `string` | Não | Origem do produto. Quando `'smarterp'` e valor `'protheus'`, retorna "Smart ERP" |
111
+
112
+ ### Mapa de Produtos
113
+
114
+ | Chave | Valor |
115
+ |-------------------|-------------------|
116
+ | `2c` | Carol Connect |
117
+ | `bioenergia` | Bioenergia |
118
+ | `consinco` | Consinco |
119
+ | `datasul` | Datasul |
120
+ | `fluig` | Fluig |
121
+ | `iaas` | IaaS |
122
+ | `license_server` | License Server |
123
+ | `logix` | Logix |
124
+ | `paas` | Outros |
125
+ | `pep` | PEP |
126
+ | `protheus` | Protheus |
127
+ | `pvi` | PVI |
128
+ | `rm` | RM |
129
+ | `rms` | RMS |
130
+ | `sfa` | SFA |
131
+ | `sisjuri` | Sisjuri |
132
+ | `smarterp` | Smart ERP |
133
+ | `smartrm` | RM |
134
+ | `smartrm_cluster` | Smart RM Cluster |
135
+ | `smartrm_control` | Smart RM Control |
136
+ | `taf` | TAF |
137
+ | `totvsagro` | TOTVS Agro |
138
+ | `totvsmoda` | TOTVS Moda |
139
+ | `treports` | TReports |
140
+ | `tss` | TSS |
141
+ | `winthor` | Winthor |
142
+
143
+ ---
144
+
145
+ ## Exemplos de Uso
146
+
147
+ ### Básico — Tradução de status e ambiente
148
+
149
+ ```html
150
+ <p>{{ 'ok' | topologyStatus }}</p>
151
+ <!-- Resultado: Disponível -->
152
+
153
+ <p>{{ 'production' | topologyEnvironment }}</p>
154
+ <!-- Resultado: Produção -->
155
+ ```
156
+
157
+ ```typescript
158
+ import { TopologyStatusPipe, TopologyEnvironmentPipe } from 'tcloud-ui';
159
+
160
+ @Component({
161
+ standalone: true,
162
+ imports: [TopologyStatusPipe, TopologyEnvironmentPipe],
163
+ template: `
164
+ <span>{{ servidor.status | topologyStatus }}</span>
165
+ <span>{{ servidor.ambiente | topologyEnvironment }}</span>
166
+ `
167
+ })
168
+ export class ExemploBasicoComponent {
169
+ servidor = { status: 'ok', ambiente: 'production' };
170
+ }
171
+ ```
172
+
173
+ ### Avançado — Listagem de servidores com todos os pipes
174
+
175
+ ```html
176
+ <table class="table">
177
+ <thead>
178
+ <tr>
179
+ <th>Produto</th>
180
+ <th>Ambiente</th>
181
+ <th>Região</th>
182
+ <th>Status</th>
183
+ </tr>
184
+ </thead>
185
+ <tbody>
186
+ <tr *ngFor="let srv of servidores">
187
+ <td>{{ srv.produto | topologyProduct }}</td>
188
+ <td>{{ srv.ambiente | topologyEnvironment }}</td>
189
+ <td>{{ srv.regiao | topologyRegion }}</td>
190
+ <td>{{ srv.status | topologyStatus }}</td>
191
+ </tr>
192
+ </tbody>
193
+ </table>
194
+ ```
195
+
196
+ ```typescript
197
+ import {
198
+ TopologyStatusPipe,
199
+ TopologyRegionPipe,
200
+ TopologyEnvironmentPipe,
201
+ TopologyProductPipe
202
+ } from 'tcloud-ui';
203
+
204
+ @Component({
205
+ standalone: true,
206
+ imports: [
207
+ CommonModule,
208
+ TopologyStatusPipe,
209
+ TopologyRegionPipe,
210
+ TopologyEnvironmentPipe,
211
+ TopologyProductPipe
212
+ ],
213
+ template: `...`
214
+ })
215
+ export class ExemploAvancadoComponent {
216
+ servidores = [
217
+ { produto: 'protheus', ambiente: 'production', regiao: 'zone_1', status: 'ok' },
218
+ { produto: 'rm', ambiente: 'qa', regiao: 'tesp03', status: 'maintenance' },
219
+ { produto: 'datasul', ambiente: 'development', regiao: 'tece01', status: 'new' }
220
+ ];
221
+ }
222
+ ```
223
+
224
+ ### Avançado — Produto com origin (Smart ERP)
225
+
226
+ ```html
227
+ <p>{{ 'protheus' | topologyProduct:'smarterp' }}</p>
228
+ <!-- Resultado: Smart ERP -->
229
+
230
+ <p>{{ 'protheus' | topologyProduct }}</p>
231
+ <!-- Resultado: Protheus -->
232
+ ```
@@ -0,0 +1,195 @@
1
+ # TCloudUiUploadArea
2
+
3
+ Componente de área de upload com suporte a drag-and-drop, pré-visualização de imagens, reordenação por arraste e validação de arquivos.
4
+
5
+ ---
6
+
7
+ ## Seletor
8
+
9
+ ```html
10
+ <tcloud-ui-upload-area></tcloud-ui-upload-area>
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Inputs
16
+
17
+ | Nome | Tipo | Default | Descrição |
18
+ |------|------|---------|-----------|
19
+ | `maxFiles` | `number \| undefined` | `undefined` | Número máximo de arquivos permitidos. Se `undefined`, não há limite. |
20
+ | `acceptedFileTypes` | `AcceptedFileType[] \| undefined` | `undefined` | Lista de tipos MIME aceitos. Se `undefined`, todos os tipos são aceitos. Utiliza o enum `AcceptedFileType`. |
21
+ | `imageDimensions` | `ImageDimensions \| undefined` | `undefined` | Dimensões permitidas para imagens (largura x altura em pixels). Se `strict: true`, valida exatamente; caso contrário, aceita até as dimensões informadas. |
22
+ | `showProgress` | `boolean` | `false` | Exibe barra de progresso animada durante o carregamento dos arquivos. |
23
+ | `preloadedImages` | `PreloadedImage[] \| string[]` | — | Imagens pré-carregadas para modo de edição. Aceita array de URLs (strings) ou objetos `PreloadedImage` com `url`, `key` e `order`. As imagens são baixadas e convertidas em `File`. |
24
+
25
+ ---
26
+
27
+ ## Outputs
28
+
29
+ | Nome | Tipo emitido | Descrição |
30
+ |------|-------------|-----------|
31
+ | `onChange` | `ImageItem[]` | Evento centralizado emitido sempre que houver mudança (adição, remoção ou reordenação). |
32
+ | `filesSelected` | `File[]` | Emitido quando novos arquivos são selecionados ou arrastados. |
33
+ | `imagesReordered` | `string[]` | Emitido após reordenação das imagens (array de previews atualizado). |
34
+ | `imagesRemoved` | `string[]` | Emitido após remoção de uma imagem (array de previews atualizado). |
35
+ | `onError` | `string` | Emitido quando ocorre um erro ou aviso (tipo rejeitado, limite atingido, dimensões inválidas). |
36
+ | `onProgress` | `number` | Emitido durante o carregamento, informando o progresso de 0 a 100. |
37
+
38
+ ---
39
+
40
+ ## Enums
41
+
42
+ ### AcceptedFileType
43
+
44
+ ```typescript
45
+ enum AcceptedFileType {
46
+ // Imagens
47
+ JPEG = 'image/jpeg',
48
+ JPG = 'image/jpg',
49
+ PNG = 'image/png',
50
+ GIF = 'image/gif',
51
+ WEBP = 'image/webp',
52
+ SVG = 'image/svg+xml',
53
+ BMP = 'image/bmp',
54
+ ICO = 'image/x-icon',
55
+
56
+ // Vídeos
57
+ MP4 = 'video/mp4',
58
+ WEBM = 'video/webm',
59
+ OGG = 'video/ogg',
60
+ AVI = 'video/x-msvideo',
61
+ MOV = 'video/quicktime',
62
+ WMV = 'video/x-ms-wmv',
63
+ FLV = 'video/x-flv',
64
+ MKV = 'video/x-matroska'
65
+ }
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Interfaces
71
+
72
+ ### PreloadedImage
73
+
74
+ ```typescript
75
+ interface PreloadedImage {
76
+ url: string;
77
+ key?: string;
78
+ order?: number;
79
+ }
80
+ ```
81
+
82
+ ### ImageDimensions
83
+
84
+ ```typescript
85
+ interface ImageDimensions {
86
+ width: number;
87
+ height: number;
88
+ strict?: boolean; // true = exato, false = máximo
89
+ }
90
+ ```
91
+
92
+ ### ImageItem
93
+
94
+ ```typescript
95
+ interface ImageItem {
96
+ name: string; // Nome original do arquivo
97
+ new_name: string; // Nome gerado aleatoriamente
98
+ order: number; // Posição na lista (1-based)
99
+ preview?: string; // Data URL ou URL para preview
100
+ file: File; // Objeto File do arquivo
101
+ }
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Exemplos de Uso
107
+
108
+ ### Básico
109
+
110
+ ```html
111
+ <tcloud-ui-upload-area
112
+ (onChange)="onImagesChange($event)"
113
+ ></tcloud-ui-upload-area>
114
+ ```
115
+
116
+ ### Com limite de arquivos e tipos aceitos
117
+
118
+ ```html
119
+ <tcloud-ui-upload-area
120
+ [maxFiles]="5"
121
+ [acceptedFileTypes]="acceptedTypes"
122
+ (onChange)="onImagesChange($event)"
123
+ (onError)="onError($event)"
124
+ ></tcloud-ui-upload-area>
125
+ ```
126
+
127
+ ```typescript
128
+ import { AcceptedFileType } from 'tcloud-ui';
129
+
130
+ acceptedTypes = [
131
+ AcceptedFileType.JPEG,
132
+ AcceptedFileType.PNG,
133
+ AcceptedFileType.WEBP
134
+ ];
135
+ ```
136
+
137
+ ### Com barra de progresso e validação de dimensões
138
+
139
+ ```html
140
+ <tcloud-ui-upload-area
141
+ [maxFiles]="10"
142
+ [showProgress]="true"
143
+ [imageDimensions]="{ width: 1920, height: 1080 }"
144
+ (onChange)="onImagesChange($event)"
145
+ (onError)="onError($event)"
146
+ (onProgress)="onProgress($event)"
147
+ ></tcloud-ui-upload-area>
148
+ ```
149
+
150
+ ### Com imagens pré-carregadas (modo edição)
151
+
152
+ ```html
153
+ <tcloud-ui-upload-area
154
+ [preloadedImages]="existingImages"
155
+ (onChange)="onImagesChange($event)"
156
+ ></tcloud-ui-upload-area>
157
+ ```
158
+
159
+ ```typescript
160
+ // Usando array de strings (URLs)
161
+ existingImages = [
162
+ 'https://example.com/img1.jpg',
163
+ 'https://example.com/img2.jpg'
164
+ ];
165
+
166
+ // Ou usando objetos PreloadedImage
167
+ existingImages: PreloadedImage[] = [
168
+ { url: 'https://example.com/img1.jpg', key: 'img1', order: 1 },
169
+ { url: 'https://example.com/img2.jpg', key: 'img2', order: 2 }
170
+ ];
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Funcionalidades
176
+
177
+ - **Drag and Drop**: Arraste arquivos do sistema para a área de upload.
178
+ - **Clique para selecionar**: Clique na área para abrir o seletor de arquivos.
179
+ - **Pré-visualização**: Exibe thumbnails das imagens selecionadas.
180
+ - **Reordenação**: Arraste e solte as imagens para alterar a ordem.
181
+ - **Remoção**: Botão "×" para remover imagens individualmente.
182
+ - **Validação de tipos**: Filtra arquivos por tipo MIME usando o enum `AcceptedFileType`.
183
+ - **Validação de dimensões**: Valida largura e altura das imagens (exata ou máxima).
184
+ - **Limite de arquivos**: Controla o número máximo de arquivos.
185
+ - **Barra de progresso**: Exibe progresso animado durante o carregamento com efeito shimmer.
186
+ - **Imagens pré-carregadas**: Suporte a modo edição com imagens existentes (baixa URLs e converte para `File`).
187
+ - **Tratamento de erros**: Detecta imagens que falharam ao carregar e exibe placeholder de erro.
188
+
189
+ ---
190
+
191
+ ## Importação
192
+
193
+ ```typescript
194
+ import { TCloudUiUploadAreaComponent, AcceptedFileType, PreloadedImage, ImageDimensions, ImageItem } from 'tcloud-ui';
195
+ ```
@@ -0,0 +1,112 @@
1
+ # TCloudUiWelcome
2
+
3
+ O componente `tcloud-ui-welcome` exibe uma seção de boas-vindas com imagem opcional, título, descrição e área de conteúdo projetado via `ng-content`. É ideal para páginas iniciais, estados vazios ou telas introdutórias. O título e a descrição são renderizados via `innerHTML`, permitindo uso de HTML. Quando uma imagem é fornecida, o layout se divide em colunas (4/8); sem imagem, o conteúdo ocupa a largura total (12 colunas).
4
+
5
+ ## Características
6
+
7
+ - Layout responsivo com grid de colunas (imagem 4 cols + conteúdo 8 cols, ou conteúdo 12 cols sem imagem)
8
+ - Imagem opcional com tamanho configurável (`small`, `normal`, `big`)
9
+ - Título e descrição com suporte a HTML (`innerHTML`)
10
+ - Tamanho de fonte da descrição configurável (`small`, `normal`, `big`)
11
+ - Projeção de conteúdo via `ng-content` para botões ou ações customizadas
12
+ - Componente standalone
13
+
14
+ ## Instalação
15
+
16
+ Importe o componente diretamente no módulo ou componente standalone:
17
+
18
+ ```typescript
19
+ import { TCloudUiWelcomeComponent } from 'tcloud-ui';
20
+ ```
21
+
22
+ ## Propriedades
23
+
24
+ ### Inputs
25
+
26
+ | Propriedade | Tipo | Padrão | Descrição |
27
+ |---------------|-----------------------------------|------------|-------------------------------------------------------------------------------------|
28
+ | `imgSrc` | `string` | `''` | URL da imagem exibida ao lado do conteúdo. Quando vazio, o conteúdo ocupa 12 colunas |
29
+ | `title` | `string` | `''` | Título da seção de boas-vindas. Aceita HTML via `innerHTML` |
30
+ | `description` | `string` | `''` | Texto descritivo abaixo do título. Aceita HTML via `innerHTML` |
31
+ | `size` | `'small' \| 'normal' \| 'big'` | `'small'` | Define o tamanho da imagem |
32
+ | `font` | `'small' \| 'normal' \| 'big'` | `'normal'` | Define o tamanho da fonte da descrição |
33
+ | `mirrored` | `boolean` | `false` | Espelha o layout (inverte a posição da imagem e do conteúdo) |
34
+
35
+ ### Outputs
36
+
37
+ Este componente não possui outputs.
38
+
39
+ ## Exemplos de Uso
40
+
41
+ ### Básico — Boas-vindas com imagem e botão de ação
42
+
43
+ ```html
44
+ <tcloud-ui-welcome
45
+ [imgSrc]="'https://example.com/welcome.svg'"
46
+ [title]="'Bem-vindo ao Sistema'"
47
+ [description]="'Comece criando seu primeiro registro.'">
48
+ <button class="tc-btn tc-btn-primary" type="button">
49
+ Criar Registro
50
+ </button>
51
+ </tcloud-ui-welcome>
52
+ ```
53
+
54
+ ```typescript
55
+ import { TCloudUiWelcomeComponent } from 'tcloud-ui';
56
+
57
+ @Component({
58
+ standalone: true,
59
+ imports: [TCloudUiWelcomeComponent],
60
+ template: `...`
61
+ })
62
+ export class ExemploBasicoComponent {}
63
+ ```
64
+
65
+ ### Avançado — Descrição com HTML e múltiplas ações
66
+
67
+ ```html
68
+ <tcloud-ui-welcome
69
+ [imgSrc]="'https://tcloud.totvs.com.br/assets/img/commercial-event-art.svg'"
70
+ [title]="'Bem vindo a Janela de Manutenções Programadas'"
71
+ [description]="descricaoHTML"
72
+ [size]="'big'"
73
+ [font]="'big'">
74
+ <button class="tc-btn tc-btn-primary" type="button" (click)="criarAgendamento()">
75
+ Criar Agendamentos
76
+ </button>
77
+ </tcloud-ui-welcome>
78
+ ```
79
+
80
+ ```typescript
81
+ import { TCloudUiWelcomeComponent } from 'tcloud-ui';
82
+
83
+ @Component({
84
+ standalone: true,
85
+ imports: [TCloudUiWelcomeComponent],
86
+ template: `...`
87
+ })
88
+ export class ExemploAvancadoComponent {
89
+ descricaoHTML = `
90
+ <p>Aqui você pode criar agendamentos, utilizando as ações disponíveis no catálogo de ações do seu ambiente.</p>
91
+ <p>Se você precisa agendar uma ação solicitada por alguma manutenção programada pela TOTVS,
92
+ acesse o menu lateral: "Janela de Manutenção" - "Agendamentos Pendentes"</p>
93
+ `;
94
+
95
+ criarAgendamento() {
96
+ console.log('Abrindo formulário de agendamento');
97
+ }
98
+ }
99
+ ```
100
+
101
+ ### Avançado — Sem imagem, apenas texto centralizado
102
+
103
+ ```html
104
+ <tcloud-ui-welcome
105
+ [title]="'Nenhum dado disponível'"
106
+ [description]="'Utilize o botão abaixo para importar seus dados.'"
107
+ [font]="'small'">
108
+ <button class="tc-btn tc-btn-outline-primary" type="button">
109
+ Importar Dados
110
+ </button>
111
+ </tcloud-ui-welcome>
112
+ ```
@@ -0,0 +1,103 @@
1
+ # Wizard Steps
2
+
3
+ Componente de wizard/stepper que exibe uma sequência de etapas com suporte a direções horizontal e vertical. Cada etapa pode ter estados de concluído, atual e próximo, com animação de barra de progresso e clique opcional nas etapas.
4
+
5
+ ## Características
6
+
7
+ - Layout horizontal e vertical
8
+ - Estados visuais: concluído (com ícone de check), atual (destacado) e próximo
9
+ - Barra de progresso animada entre as etapas concluídas
10
+ - Suporte a clique nas etapas já concluídas (quando habilitado)
11
+ - Descrição opcional por etapa
12
+
13
+ ## Instalação
14
+
15
+ ```typescript
16
+ import { TCloudUiModule } from 'tcloud-ui';
17
+ ```
18
+
19
+ Adicione `TCloudUiModule` aos imports do seu componente/módulo.
20
+
21
+ ## Propriedades (API)
22
+
23
+ ### Inputs
24
+
25
+ | Nome | Tipo | Descrição | Valor Default |
26
+ |----------------|--------------------------------|-------------------------------------------------|------------------|
27
+ | steps | `WizardStep[]` | Lista de etapas do wizard (obrigatório) | — |
28
+ | currentStep | `number` | Índice da etapa atual (base 0) | `0` |
29
+ | direction | `'horizontal' \| 'vertical'` | Direção do layout do wizard | `'horizontal'` |
30
+ | stepClickable | `boolean` | Permite clicar em etapas concluídas/atuais | `false` |
31
+
32
+ ### Outputs
33
+
34
+ | Nome | Tipo de Evento | Descrição |
35
+ |--------------|------------------------------------------|----------------------------------------------------|
36
+ | onStepClick | `{ step: WizardStep, index: number }` | Emitido ao clicar em uma etapa (quando habilitado) |
37
+
38
+ ### Tipo WizardStep
39
+
40
+ ```typescript
41
+ type WizardStep = {
42
+ title: string;
43
+ description?: string;
44
+ completed?: boolean;
45
+ }
46
+ ```
47
+
48
+ ## Exemplos de Uso
49
+
50
+ ### Uso Básico
51
+
52
+ ```html
53
+ <tcloud-ui-wizard-steps
54
+ [steps]="steps"
55
+ [currentStep]="1">
56
+ </tcloud-ui-wizard-steps>
57
+ ```
58
+
59
+ ```typescript
60
+ steps: WizardStep[] = [
61
+ { title: 'Dados pessoais', description: 'Informações do usuário' },
62
+ { title: 'Endereço', description: 'Localização e CEP' },
63
+ { title: 'Pagamento', description: 'Forma de pagamento' },
64
+ { title: 'Confirmação', description: 'Revisão e envio' }
65
+ ];
66
+ ```
67
+
68
+ ### Uso Avançado — Steps clicáveis com controle de etapa
69
+
70
+ ```html
71
+ <tcloud-ui-wizard-steps
72
+ [steps]="steps"
73
+ [currentStep]="currentStep"
74
+ [stepClickable]="true"
75
+ (onStepClick)="onStepClicked($event)">
76
+ </tcloud-ui-wizard-steps>
77
+ ```
78
+
79
+ ```typescript
80
+ currentStep = 2;
81
+
82
+ steps: WizardStep[] = [
83
+ { title: 'Dados pessoais', completed: true },
84
+ { title: 'Endereço', completed: true },
85
+ { title: 'Pagamento' },
86
+ { title: 'Confirmação' }
87
+ ];
88
+
89
+ onStepClicked(event: { step: WizardStep, index: number }) {
90
+ console.log('Etapa clicada:', event);
91
+ this.currentStep = event.index + 1;
92
+ }
93
+ ```
94
+
95
+ ### Layout Vertical
96
+
97
+ ```html
98
+ <tcloud-ui-wizard-steps
99
+ [steps]="steps"
100
+ [currentStep]="currentStep"
101
+ direction="vertical">
102
+ </tcloud-ui-wizard-steps>
103
+ ```