@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,96 @@
1
+ # TCloud UI Table
2
+
3
+ Componente Angular standalone que encapsula uma tabela estilizada com projeção de conteúdo, suporte a tabela zebrada e classe responsiva para adaptação em telas menores.
4
+
5
+ ## Características
6
+
7
+ - ✅ Projeção via `ng-content` para `<thead>` e `<tbody>` usando seletores `tc-thead` e `tc-tbody`
8
+ - ✅ Habilita classe responsiva opcional (`tc-table-responsive`) para melhor visualização em mobile
9
+ - ✅ Suporte a linhas zebradas (`tc-table-striped`) configurável por input
10
+ - ✅ Standalone, mas também exportado pelo `TCloudUiModule`
11
+
12
+ ## Instalação
13
+
14
+ Importe o módulo agregador:
15
+
16
+ ```typescript
17
+ import { TCloudUiModule } from 'projects/tcloud-ui/src/public-api';
18
+
19
+ @NgModule({
20
+ imports: [TCloudUiModule]
21
+ })
22
+ export class MyModule {}
23
+ ```
24
+
25
+ Ou importe apenas o componente standalone:
26
+
27
+ ```typescript
28
+ import { TCloudUiTableComponent } from 'projects/tcloud-ui/src/lib/_modules/tcloud-ui-table/tcloud-ui-table.component';
29
+
30
+ @Component({
31
+ standalone: true,
32
+ imports: [TCloudUiTableComponent]
33
+ })
34
+ export class MyStandaloneComponent {}
35
+ ```
36
+
37
+ ## Uso Básico
38
+
39
+ ```html
40
+ <tcloud-ui-table>
41
+ <thead tc-thead>
42
+ <tr>
43
+ <th>Nome</th>
44
+ <th>Email</th>
45
+ </tr>
46
+ </thead>
47
+ <tbody tc-tbody>
48
+ <tr>
49
+ <td>Ana</td>
50
+ <td>ana@email.com</td>
51
+ </tr>
52
+ <tr>
53
+ <td>Bruno</td>
54
+ <td>bruno@email.com</td>
55
+ </tr>
56
+ </tbody>
57
+ </tcloud-ui-table>
58
+ ```
59
+
60
+ ## Uso Avançado
61
+
62
+ Tabela responsiva, com linhas zebradas e labels de dados para mobile:
63
+
64
+ ```html
65
+ <tcloud-ui-table [responsive]="true" [striped]="true">
66
+ <thead tc-thead>
67
+ <tr>
68
+ <th TCalign="start">Nome</th>
69
+ <th TCalign="end">Email</th>
70
+ <th>Status</th>
71
+ </tr>
72
+ </thead>
73
+ <tbody tc-tbody>
74
+ <tr>
75
+ <td TCalign="start" tc-data-label="Nome">Info</td>
76
+ <td TCalign="end" tc-data-label="Email">info@email.com</td>
77
+ <td tc-data-label="Status">Ativo</td>
78
+ </tr>
79
+ </tbody>
80
+ </tcloud-ui-table>
81
+ ```
82
+
83
+ ## API
84
+
85
+ ### Componente: `tcloud-ui-table`
86
+
87
+ #### Inputs
88
+
89
+ | Propriedade | Tipo | Padrão | Descrição | Obrigatório |
90
+ |-------------|------|--------|-----------|-------------|
91
+ | `responsive` | `boolean` | `true` | Adiciona classe responsiva para melhorar exibição em telas pequenas. | ❌ |
92
+ | `striped` | `boolean` | `false` | Ativa listras alternadas nas linhas da tabela. | ❌ |
93
+
94
+ #### Outputs
95
+
96
+ Nenhum output público disponível.
@@ -0,0 +1,379 @@
1
+ # Tag
2
+
3
+ ## Características
4
+
5
+ O componente `tcloud-ui-tag` é um componente versátil para exibir tags/badges customizáveis com suporte a múltiplas cores, variantes (filled/outline), tamanhos (sm/md/lg) e formatos (rectangle/pill). Ideal para categorizar informações, indicar status ou destacar conteúdo importante.
6
+
7
+ ## Instalação
8
+
9
+ Para utilizar o componente Tag, importe o módulo `TCloudUiModule`:
10
+
11
+ ```typescript
12
+ import { TCloudUiModule } from '@tcloud-ui/lib';
13
+ import { Component } from '@angular/core';
14
+
15
+ @Component({
16
+ selector: 'app-example',
17
+ standalone: true,
18
+ imports: [TCloudUiModule],
19
+ template: `<tcloud-ui-tag ...>Texto da Tag</tcloud-ui-tag>`
20
+ })
21
+ export class ExampleComponent {}
22
+ ```
23
+
24
+ Ou importe diretamente o componente e a enum de cores:
25
+
26
+ ```typescript
27
+ import { TCloudUiTagComponent, TagColorsEnum } from '@tcloud-ui/lib';
28
+
29
+ @Component({
30
+ selector: 'app-example',
31
+ standalone: true,
32
+ imports: [TCloudUiTagComponent],
33
+ template: `<tcloud-ui-tag ...>Texto da Tag</tcloud-ui-tag>`
34
+ })
35
+ export class ExampleComponent {}
36
+ ```
37
+
38
+ ## Propriedades (API)
39
+
40
+ ### Inputs
41
+
42
+ | Nome | Tipo | Descrição | Valor Default |
43
+ |------|------|-----------|---------------|
44
+ | `size` | `'sm' \| 'md' \| 'lg' \| 'regular'` | Tamanho da tag | `'md'` |
45
+ | `color` | `TagColorsEnum \| string` | Cor da tag (veja enum abaixo) | `'primary-500'` |
46
+ | `variant` | `'filled' \| 'outline' \| ''` | Estilo visual da tag | `'filled'` |
47
+ | `shape` | `'pill' \| 'rectangle'` | Formato da tag | `'rectangle'` |
48
+ | `fullWidth` | `boolean` | Se a tag ocupa toda a largura do container | `false` |
49
+
50
+ ### Enum de Cores Disponíveis
51
+
52
+ ```typescript
53
+ export enum TagColorsEnum {
54
+ 'neutral-50', 'neutral-100', 'neutral-200', 'neutral-300', 'neutral-400',
55
+ 'neutral-500', 'neutral-600', 'neutral-700', 'neutral-800', 'neutral-900',
56
+ 'primary-300', 'primary-400', 'primary-500', 'primary-600', 'primary-700',
57
+ 'danger-300', 'danger-400', 'danger-500',
58
+ 'alert-300', 'alert-400', 'alert-500',
59
+ 'info-300', 'info-400', 'info-500',
60
+ 'success-300', 'success-400', 'success-500'
61
+ }
62
+ ```
63
+
64
+ ## Exemplos de Uso
65
+
66
+ ### Uso Básico
67
+
68
+ ```typescript
69
+ import { Component } from '@angular/core';
70
+ import { TCloudUiModule } from '@tcloud-ui/lib';
71
+
72
+ @Component({
73
+ selector: 'app-basic-tag',
74
+ standalone: true,
75
+ imports: [TCloudUiModule],
76
+ template: `
77
+ <tcloud-ui-tag>Informação</tcloud-ui-tag>
78
+ <tcloud-ui-tag [color]="'danger-500'">Erro</tcloud-ui-tag>
79
+ <tcloud-ui-tag [color]="'success-500'">Sucesso</tcloud-ui-tag>
80
+ `
81
+ })
82
+ export class BasicTagComponent {}
83
+ ```
84
+
85
+ ### Tags com Diferentes Tamanhos
86
+
87
+ ```typescript
88
+ import { Component } from '@angular/core';
89
+ import { TCloudUiModule } from '@tcloud-ui/lib';
90
+
91
+ @Component({
92
+ selector: 'app-sizes-tag',
93
+ standalone: true,
94
+ imports: [TCloudUiModule],
95
+ template: `
96
+ <div class="container">
97
+ <tcloud-ui-tag size="sm">Pequeno</tcloud-ui-tag>
98
+ <tcloud-ui-tag size="md">Médio</tcloud-ui-tag>
99
+ <tcloud-ui-tag size="lg">Grande</tcloud-ui-tag>
100
+ </div>
101
+ `,
102
+ styles: [`
103
+ .container {
104
+ display: flex;
105
+ gap: 1rem;
106
+ align-items: center;
107
+ }
108
+ `]
109
+ })
110
+ export class SizesTagComponent {}
111
+ ```
112
+
113
+ ### Variantes Filled e Outline
114
+
115
+ ```typescript
116
+ import { Component } from '@angular/core';
117
+ import { TCloudUiModule } from '@tcloud-ui/lib';
118
+
119
+ @Component({
120
+ selector: 'app-variants-tag',
121
+ standalone: true,
122
+ imports: [TCloudUiModule],
123
+ template: `
124
+ <div>
125
+ <div class="group">
126
+ <h4>Variante Filled (preenchida)</h4>
127
+ <tcloud-ui-tag variant="filled" [color]="'primary-500'">Primária</tcloud-ui-tag>
128
+ <tcloud-ui-tag variant="filled" [color]="'success-500'">Sucesso</tcloud-ui-tag>
129
+ <tcloud-ui-tag variant="filled" [color]="'danger-500'">Perigo</tcloud-ui-tag>
130
+ </div>
131
+
132
+ <div class="group">
133
+ <h4>Variante Outline (só contorno)</h4>
134
+ <tcloud-ui-tag variant="outline" [color]="'primary-500'">Primária</tcloud-ui-tag>
135
+ <tcloud-ui-tag variant="outline" [color]="'success-500'">Sucesso</tcloud-ui-tag>
136
+ <tcloud-ui-tag variant="outline" [color]="'danger-500'">Perigo</tcloud-ui-tag>
137
+ </div>
138
+ </div>
139
+ `,
140
+ styles: [`
141
+ .group {
142
+ display: flex;
143
+ gap: 0.5rem;
144
+ margin-bottom: 1rem;
145
+ align-items: center;
146
+ }
147
+ `]
148
+ })
149
+ export class VariantsTagComponent {}
150
+ ```
151
+
152
+ ### Formatos Pill e Rectangle
153
+
154
+ ```typescript
155
+ import { Component } from '@angular/core';
156
+ import { TCloudUiModule } from '@tcloud-ui/lib';
157
+
158
+ @Component({
159
+ selector: 'app-shapes-tag',
160
+ standalone: true,
161
+ imports: [TCloudUiModule],
162
+ template: `
163
+ <div class="container">
164
+ <div class="group">
165
+ <h4>Rectangle (padrão)</h4>
166
+ <tcloud-ui-tag shape="rectangle">Normal</tcloud-ui-tag>
167
+ </div>
168
+
169
+ <div class="group">
170
+ <h4>Pill (arredondado)</h4>
171
+ <tcloud-ui-tag shape="pill">Arredondado</tcloud-ui-tag>
172
+ </div>
173
+ </div>
174
+ `,
175
+ styles: [`
176
+ .container {
177
+ display: flex;
178
+ gap: 2rem;
179
+ }
180
+ .group h4 {
181
+ margin-bottom: 0.5rem;
182
+ }
183
+ `]
184
+ })
185
+ export class ShapesTagComponent {}
186
+ ```
187
+
188
+ ### Tags para Status
189
+
190
+ ```typescript
191
+ import { Component } from '@angular/core';
192
+ import { TCloudUiModule } from '@tcloud-ui/lib';
193
+
194
+ @Component({
195
+ selector: 'app-status-tags',
196
+ standalone: true,
197
+ imports: [TCloudUiModule],
198
+ template: `
199
+ <div class="container">
200
+ <div class="item">
201
+ <p>Status: Ativo</p>
202
+ <tcloud-ui-tag [color]="'success-500'" shape="pill">✓ Ativo</tcloud-ui-tag>
203
+ </div>
204
+
205
+ <div class="item">
206
+ <p>Status: Pendente</p>
207
+ <tcloud-ui-tag [color]="'alert-500'" shape="pill">⏱ Pendente</tcloud-ui-tag>
208
+ </div>
209
+
210
+ <div class="item">
211
+ <p>Status: Inativo</p>
212
+ <tcloud-ui-tag [color]="'neutral-500'" shape="pill">✗ Inativo</tcloud-ui-tag>
213
+ </div>
214
+
215
+ <div class="item">
216
+ <p>Status: Erro</p>
217
+ <tcloud-ui-tag [color]="'danger-500'" shape="pill">✗ Erro</tcloud-ui-tag>
218
+ </div>
219
+ </div>
220
+ `,
221
+ styles: [`
222
+ .container {
223
+ display: grid;
224
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
225
+ gap: 1.5rem;
226
+ }
227
+ .item p {
228
+ margin: 0 0 0.5rem 0;
229
+ font-weight: 500;
230
+ }
231
+ `]
232
+ })
233
+ export class StatusTagsComponent {}
234
+ ```
235
+
236
+ ### Cores Disponíveis
237
+
238
+ ```typescript
239
+ import { Component } from '@angular/core';
240
+ import { TCloudUiModule } from '@tcloud-ui/lib';
241
+
242
+ @Component({
243
+ selector: 'app-color-palette',
244
+ standalone: true,
245
+ imports: [TCloudUiModule],
246
+ template: `
247
+ <div class="color-grid">
248
+ <!-- Neutras -->
249
+ <div>
250
+ <h5>Neutras</h5>
251
+ <tcloud-ui-tag [color]="'neutral-300'">neutral-300</tcloud-ui-tag>
252
+ <tcloud-ui-tag [color]="'neutral-500'">neutral-500</tcloud-ui-tag>
253
+ <tcloud-ui-tag [color]="'neutral-700'">neutral-700</tcloud-ui-tag>
254
+ </div>
255
+
256
+ <!-- Primárias -->
257
+ <div>
258
+ <h5>Primárias</h5>
259
+ <tcloud-ui-tag [color]="'primary-300'">primary-300</tcloud-ui-tag>
260
+ <tcloud-ui-tag [color]="'primary-500'">primary-500</tcloud-ui-tag>
261
+ <tcloud-ui-tag [color]="'primary-700'">primary-700</tcloud-ui-tag>
262
+ </div>
263
+
264
+ <!-- Danger -->
265
+ <div>
266
+ <h5>Risco/Erro</h5>
267
+ <tcloud-ui-tag [color]="'danger-300'">danger-300</tcloud-ui-tag>
268
+ <tcloud-ui-tag [color]="'danger-500'">danger-500</tcloud-ui-tag>
269
+ </div>
270
+
271
+ <!-- Success -->
272
+ <div>
273
+ <h5>Sucesso</h5>
274
+ <tcloud-ui-tag [color]="'success-300'">success-300</tcloud-ui-tag>
275
+ <tcloud-ui-tag [color]="'success-500'">success-500</tcloud-ui-tag>
276
+ </div>
277
+
278
+ <!-- Info -->
279
+ <div>
280
+ <h5>Informação</h5>
281
+ <tcloud-ui-tag [color]="'info-300'">info-300</tcloud-ui-tag>
282
+ <tcloud-ui-tag [color]="'info-500'">info-500</tcloud-ui-tag>
283
+ </div>
284
+
285
+ <!-- Alert -->
286
+ <div>
287
+ <h5>Alerta</h5>
288
+ <tcloud-ui-tag [color]="'alert-300'">alert-300</tcloud-ui-tag>
289
+ <tcloud-ui-tag [color]="'alert-500'">alert-500</tcloud-ui-tag>
290
+ </div>
291
+ </div>
292
+ `,
293
+ styles: [`
294
+ .color-grid {
295
+ display: grid;
296
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
297
+ gap: 1.5rem;
298
+ }
299
+ .color-grid div {
300
+ display: flex;
301
+ flex-direction: column;
302
+ gap: 0.5rem;
303
+ }
304
+ .color-grid h5 {
305
+ margin: 0 0 0.5rem 0;
306
+ font-size: 0.875rem;
307
+ font-weight: 600;
308
+ color: var(--c-neutral-600);
309
+ }
310
+ `]
311
+ })
312
+ export class ColorPaletteComponent {}
313
+ ```
314
+
315
+ ### Tags de Categoria
316
+
317
+ ```typescript
318
+ import { Component } from '@angular/core';
319
+ import { TCloudUiModule } from '@tcloud-ui/lib';
320
+ import { CommonModule } from '@angular/common';
321
+
322
+ @Component({
323
+ selector: 'app-category-tags',
324
+ standalone: true,
325
+ imports: [CommonModule, TCloudUiModule],
326
+ template: `
327
+ <div class="categories">
328
+ <h4>Categorias de Produto</h4>
329
+ <div class="tag-list">
330
+ <tcloud-ui-tag
331
+ *ngFor="let category of categories"
332
+ [color]="category.color"
333
+ shape="pill"
334
+ variant="filled"
335
+ >
336
+ {{ category.label }}
337
+ </tcloud-ui-tag>
338
+ </div>
339
+ </div>
340
+ `,
341
+ styles: [`
342
+ .categories {
343
+ padding: 1rem;
344
+ }
345
+ .tag-list {
346
+ display: flex;
347
+ gap: 0.5rem;
348
+ flex-wrap: wrap;
349
+ }
350
+ `]
351
+ })
352
+ export class CategoryTagsComponent {
353
+ categories = [
354
+ { label: 'Eletrônicos', color: 'primary-500' },
355
+ { label: 'Livros', color: 'info-500' },
356
+ { label: 'Roupas', color: 'alert-500' },
357
+ { label: 'Alimentos', color: 'success-500' },
358
+ { label: 'Beleza', color: 'primary-300' }
359
+ ];
360
+ }
361
+ ```
362
+
363
+ ## Notas de Implementação
364
+
365
+ - O componente usa Angular signals (input) para reatividade
366
+ - As cores são combinadas dinamicamente usando interpolação de classes CSS
367
+ - O componente suporta `<ng-content>` para conteúdo flexível
368
+ - O `:host` display é `block`, permitindo controle de layout
369
+ - As variantes filled e outline combinam cores de background e texto de forma dinâmica
370
+ - O formato pill usa `border-radius: var(--bor-radius-pill)` para arredondamento máximo
371
+ - Tags preenchem a largura do container quando `fullWidth=true`
372
+
373
+ ## Casos de Uso
374
+
375
+ - Indicar status (ativo/inativo, sucesso/erro)
376
+ - Categorizar conteúdo (tags de artikel, labels de categoria)
377
+ - Destacar informações importantes (badges, notificações)
378
+ - Mostrar tecnologias ou skills (em profiles)
379
+ - Filtros visuais em listas
@@ -0,0 +1,168 @@
1
+ # Layout — `.tc-badge`
2
+
3
+ ## Características
4
+
5
+ - Labels coloridas para indicar status, categorias e metadados inline.
6
+ - Seis variantes semânticas: `primary`, `success`, `danger`, `alert`, `info` e `neutral`.
7
+ - Dois estilos visuais: **filled** (padrão — fundo suave com borda) e **solid** (fundo cheio) via `.tc-badge-solid`.
8
+ - Três tamanhos: `tc-badge-sm`, padrão e `tc-badge-lg`.
9
+ - Estado desabilitado via `.tc-badge-disabled` — reduz opacidade e bloqueia interação.
10
+ - Cores baseadas nos tokens `--c-*` do design system — adapta-se automaticamente ao dark mode.
11
+ - Não há componente Angular envolvido — as classes são aplicadas diretamente em `<span>` ou qualquer tag inline.
12
+
13
+ ## Instalação
14
+
15
+ As classes são fornecidas pelo stylesheet global do projeto. Nenhuma importação de módulo Angular é necessária.
16
+ Certifique-se de que o stylesheet principal do `tcloud-ui` está incluído na aplicação:
17
+
18
+ ```ts
19
+ // angular.json — styles
20
+ "styles": [
21
+ "projects/tcloud-ui/assets/scss/tcloud-ui.scss"
22
+ ]
23
+ ```
24
+
25
+ ---
26
+
27
+ ## API — Classes
28
+
29
+ ### Variantes de cor
30
+
31
+ | Classe completa | Tokens usados | Uso recomendado |
32
+ |---|---|---|
33
+ | `tc-badge tc-badge-primary` | `--c-primary-300 / 400 / 700` | Informação principal — identificação de categoria |
34
+ | `tc-badge tc-badge-success` | `--c-success-300 / 400 / 700` | Confirmação — status ativo, aprovado, concluído |
35
+ | `tc-badge tc-badge-danger` | `--c-danger-300 / 400 / 700` | Alerta crítico — erro, expirado, rejeitado |
36
+ | `tc-badge tc-badge-alert` | `--c-alert-300 / 400 / 700` | Atenção — pendente, em revisão |
37
+ | `tc-badge tc-badge-info` | `--c-info-300 / 400 / 700` | Informativo — novidade, dica |
38
+ | `tc-badge tc-badge-neutral` | `--c-neutral-200 / 300 / 600` | Neutro — rascunho, inativo |
39
+
40
+ ---
41
+
42
+ ### Estilo solid — `.tc-badge-solid`
43
+
44
+ Adicione `.tc-badge-solid` junto à classe de cor para obter fundo cheio em vez do estilo suave padrão.
45
+
46
+ ```html
47
+ <span class="tc-badge tc-badge-solid tc-badge-primary">Label</span>
48
+ ```
49
+
50
+ ---
51
+
52
+ ### Tamanhos
53
+
54
+ | Modificador | `padding` | `font-size` |
55
+ |---|---|---|
56
+ | `tc-badge-sm` | `1px 7px` | `0.6875rem` |
57
+ | *(padrão)* | `2px 10px` | `0.75rem` |
58
+ | `tc-badge-lg` | `4px 14px` | `0.875rem` |
59
+
60
+ ---
61
+
62
+ ### Estado desabilitado — `.tc-badge-disabled`
63
+
64
+ Aplique `.tc-badge-disabled` para reduzir a opacidade e bloquear interação do usuário. Compatível com todas as variantes de cor.
65
+
66
+ ---
67
+
68
+ ## Exemplos de Uso
69
+
70
+ ### Uso Básico
71
+
72
+ ```html
73
+ <!-- Filled (padrão) -->
74
+ <span class="tc-badge tc-badge-primary">Primary</span>
75
+ <span class="tc-badge tc-badge-success">Ativo</span>
76
+ <span class="tc-badge tc-badge-danger">Expirado</span>
77
+ <span class="tc-badge tc-badge-alert">Pendente</span>
78
+ <span class="tc-badge tc-badge-info">Novidade</span>
79
+ <span class="tc-badge tc-badge-neutral">Rascunho</span>
80
+
81
+ <!-- Solid (fundo cheio) -->
82
+ <span class="tc-badge tc-badge-solid tc-badge-primary">Design</span>
83
+ <span class="tc-badge tc-badge-solid tc-badge-success">Frontend</span>
84
+
85
+ <!-- Tamanhos -->
86
+ <span class="tc-badge tc-badge-primary tc-badge-sm">Pequeno</span>
87
+ <span class="tc-badge tc-badge-primary">Padrão</span>
88
+ <span class="tc-badge tc-badge-primary tc-badge-lg">Grande</span>
89
+
90
+ <!-- Desabilitado -->
91
+ <span class="tc-badge tc-badge-primary tc-badge-disabled">Desabilitado</span>
92
+ ```
93
+
94
+ ---
95
+
96
+ ### Uso Avançado
97
+
98
+ #### Status de pedido em tabela
99
+
100
+ ```html
101
+ <table>
102
+ <tbody>
103
+ <tr>
104
+ <td>Pedido #1042</td>
105
+ <td><span class="tc-badge tc-badge-alert">Pendente</span></td>
106
+ </tr>
107
+ <tr>
108
+ <td>Pedido #1043</td>
109
+ <td><span class="tc-badge tc-badge-primary">Em análise</span></td>
110
+ </tr>
111
+ <tr>
112
+ <td>Pedido #1044</td>
113
+ <td><span class="tc-badge tc-badge-success">Aprovado</span></td>
114
+ </tr>
115
+ <tr>
116
+ <td>Pedido #1045</td>
117
+ <td><span class="tc-badge tc-badge-danger">Cancelado</span></td>
118
+ </tr>
119
+ </tbody>
120
+ </table>
121
+ ```
122
+
123
+ #### Categorias com solid em lista de cards
124
+
125
+ ```html
126
+ <div class="card">
127
+ <h4 class="tc-title">Componente de Botão</h4>
128
+ <div style="display: flex; gap: 6px; margin-top: 8px;">
129
+ <span class="tc-badge tc-badge-solid tc-badge-primary">Design</span>
130
+ <span class="tc-badge tc-badge-solid tc-badge-success">Frontend</span>
131
+ <span class="tc-badge tc-badge-solid tc-badge-info">Documentado</span>
132
+ </div>
133
+ </div>
134
+ ```
135
+
136
+ #### Badge dinâmico com Angular — class binding
137
+
138
+ ```html
139
+ <span
140
+ class="tc-badge"
141
+ [ngClass]="{
142
+ 'tc-badge-success': status === 'ativo',
143
+ 'tc-badge-danger': status === 'inativo',
144
+ 'tc-badge-alert': status === 'pendente',
145
+ 'tc-badge-neutral': status === 'rascunho'
146
+ }"
147
+ >
148
+ {{ status | titlecase }}
149
+ </span>
150
+ ```
151
+
152
+ ```ts
153
+ export class ExampleComponent {
154
+ status: 'ativo' | 'inativo' | 'pendente' | 'rascunho' = 'pendente';
155
+ }
156
+ ```
157
+
158
+ #### Badge para contagem (notificações)
159
+
160
+ ```html
161
+ <div style="position: relative; display: inline-flex;">
162
+ <button class="tc-btn tc-btn-outline-neutral">Notificações</button>
163
+ <span class="tc-badge tc-badge-solid tc-badge-danger tc-badge-sm"
164
+ style="position: absolute; top: -6px; right: -6px;">
165
+ 3
166
+ </span>
167
+ </div>
168
+ ```