@dev-tcloud/tcloud-ui 6.14.3 → 6.17.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 (92) 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-ui/styles/_claus-badge.scss +117 -0
  78. package/scss/tcloud-ui/styles/_claus-btn.scss +207 -0
  79. package/scss/tcloud-ui/styles/_claus-card.scss +12 -0
  80. package/scss/tcloud-ui/styles/_claus-colors.scss +192 -0
  81. package/scss/tcloud-ui/styles/_claus-form.scss +88 -0
  82. package/scss/tcloud-ui/styles/_claus-sizes.scss +28 -0
  83. package/scss/tcloud-ui/styles/_claus-spacers.scss +49 -0
  84. package/scss/tcloud-ui/styles/_claus-themes.scss +36 -0
  85. package/scss/tcloud-ui/styles/_claus-title.scss +24 -0
  86. package/scss/tcloud-ui/styles/_claus-typography.scss +70 -0
  87. package/scss/tcloud-ui/styles/_claus-variables.scss +131 -0
  88. package/scss/tcloud-ui/styles/_colors.scss +123 -0
  89. package/scss/tcloud-ui/styles/_tc-btn.scss +210 -0
  90. package/scss/tcloud-ui/styles/_tc-card.scss +7 -0
  91. package/scss/tcloud-ui/styles/_tc-title.scss +49 -0
  92. package/scss/tcloud-ui/styles.scss +35 -0
@@ -0,0 +1,40 @@
1
+ # Card
2
+
3
+ ## Características
4
+ - Container de conteúdo com padding responsivo: `shadow-md pad-16` em desktop e `shadow-sm pad-14` em telas menores.
5
+ - Suporta qualquer conteúdo projetado via `<ng-content>`.
6
+ - Standalone component, pronto para importação direta.
7
+
8
+ ## Instalação
9
+ Importe o componente no standalone que for usá-lo:
10
+ ```ts
11
+ import { TCloudUiCardComponent } from 'projects/tcloud-ui/src/public-api';
12
+
13
+ @Component({
14
+ selector: 'app-example',
15
+ standalone: true,
16
+ imports: [TCloudUiCardComponent],
17
+ template: `<tcloud-ui-card>...</tcloud-ui-card>`
18
+ })
19
+ export class ExampleComponent {}
20
+ ```
21
+
22
+ ## Propriedades (API)
23
+ ### Inputs
24
+ | Nome | Tipo | Descrição | Valor Default |
25
+ | --- | --- | --- | --- |
26
+ | (não possui) | - | Componente não expõe inputs. | - |
27
+
28
+ ### Outputs
29
+ | Nome | Tipo de Evento | Descrição |
30
+ | --- | --- | --- |
31
+ | (não possui) | - | Componente não emite eventos. |
32
+
33
+ ## Exemplos de Uso
34
+ ### Uso Básico
35
+ ```html
36
+ <tcloud-ui-card>
37
+ <h2>Card Title</h2>
38
+ <p>Conteúdo livre dentro do card.</p>
39
+ </tcloud-ui-card>
40
+ ```
@@ -0,0 +1,59 @@
1
+ # Choice Issues
2
+
3
+ ## Características
4
+ - Componente de decisão binária (Sim/Não) com rótulos configuráveis.
5
+ - Suporta `ngModel` (ControlValueAccessor) para two-way binding do valor booleano.
6
+ - Modo visualização (`view=true`) exibe apenas o estado atual sem permitir interação.
7
+ - Emite evento de mudança para integração com fluxos externos.
8
+
9
+ ## Instalação
10
+ ```ts
11
+ import { TCloudUiChoiceIssuesComponent } from 'projects/tcloud-ui/src/public-api';
12
+
13
+ @Component({
14
+ selector: 'app-example',
15
+ standalone: true,
16
+ imports: [TCloudUiChoiceIssuesComponent],
17
+ template: `<tcloud-ui-choice-issues></tcloud-ui-choice-issues>`
18
+ })
19
+ export class ExampleComponent {}
20
+ ```
21
+
22
+ ## Propriedades (API)
23
+ ### Inputs
24
+ | Nome | Tipo | Descrição | Valor Default |
25
+ | --- | --- | --- | --- |
26
+ | view | boolean | Quando verdadeiro, bloqueia interação e apenas exibe o estado. | false |
27
+ | titulo | string | Título exibido no topo do card. | '' |
28
+ | subTitulo | string | Subtítulo/descrição auxiliar. | '' |
29
+ | disabled | boolean | Desabilita interação. | false |
30
+ | ngModel | boolean | Valor selecionado (Sim/Não) com two-way binding. | false |
31
+
32
+ ### Outputs
33
+ | Nome | Tipo de Evento | Descrição |
34
+ | --- | --- | --- |
35
+ | onChange | EventEmitter<any> | Emite o valor ao alterar (Sim/Não). |
36
+ | ngModelChange | EventEmitter<any> | Suporte ao two-way binding de `ngModel`. |
37
+
38
+ ## Exemplos de Uso
39
+ ### Uso Básico com binding
40
+ ```html
41
+ <tcloud-ui-choice-issues
42
+ titulo="Deseja sinalizar como concluído?"
43
+ subTitulo="As ações concluídas serão enviadas para a fila de processamento"
44
+ [(ngModel)]="checked"
45
+ (onChange)="handleChange($event)">
46
+ </tcloud-ui-choice-issues>
47
+
48
+ <pre>checked: {{ checked }}</pre>
49
+ ```
50
+
51
+ ### Modo visualização (somente leitura)
52
+ ```html
53
+ <tcloud-ui-choice-issues
54
+ [view]="true"
55
+ [titulo]="'Operação concluída'"
56
+ [subTitulo]="'Status final'"
57
+ [ngModel]="true">
58
+ </tcloud-ui-choice-issues>
59
+ ```
@@ -0,0 +1,102 @@
1
+ # CNPJPipe
2
+
3
+ O pipe `cnpj` formata uma string numérica de 14 dígitos no padrão de CNPJ brasileiro (`##.###.###/####-##`). Se o valor informado não possuir exatamente 14 caracteres, o pipe retorna o valor original sem formatação.
4
+
5
+ ## Características
6
+
7
+ - Formatação automática no padrão `##.###.###/####-##`
8
+ - Validação de comprimento: aplica a máscara apenas quando o valor possui exatamente 14 dígitos
9
+ - Remoção de espaços em branco antes da formatação
10
+ - Retorno do valor original caso não possua 14 dígitos
11
+ - Pipe standalone
12
+
13
+ ## Instalação
14
+
15
+ Importe o pipe diretamente no módulo ou componente standalone:
16
+
17
+ ```typescript
18
+ import { CNPJPipe } from 'tcloud-ui';
19
+ ```
20
+
21
+ ## API
22
+
23
+ ### Sintaxe do Pipe
24
+
25
+ ```
26
+ {{ valor | cnpj }}
27
+ ```
28
+
29
+ ### Parâmetros
30
+
31
+ Este pipe não recebe parâmetros adicionais.
32
+
33
+ ### Entrada e Saída
34
+
35
+ | Entrada | Saída |
36
+ |------------------|------------------------|
37
+ | `'12345678000195'` | `'12.345.678/0001-95'` |
38
+ | `'00123456000178'` | `'00.123.456/0001-78'` |
39
+ | `'123'` | `'123'` (sem formatação) |
40
+
41
+ ## Exemplos de Uso
42
+
43
+ ### Básico — Formatação de CNPJ
44
+
45
+ ```html
46
+ <p>{{ '12345678000195' | cnpj }}</p>
47
+ <!-- Resultado: 12.345.678/0001-95 -->
48
+
49
+ <p>{{ '00123456000178' | cnpj }}</p>
50
+ <!-- Resultado: 00.123.456/0001-78 -->
51
+ ```
52
+
53
+ ```typescript
54
+ import { CNPJPipe } from 'tcloud-ui';
55
+
56
+ @Component({
57
+ standalone: true,
58
+ imports: [CNPJPipe],
59
+ template: `
60
+ <p>{{ cnpj | cnpj }}</p>
61
+ `
62
+ })
63
+ export class ExemploBasicoComponent {
64
+ cnpj = '12345678000195';
65
+ }
66
+ ```
67
+
68
+ ### Avançado — Exibição condicional em listagem
69
+
70
+ ```html
71
+ <table class="table">
72
+ <thead>
73
+ <tr>
74
+ <th>Empresa</th>
75
+ <th>CNPJ</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <tr *ngFor="let empresa of empresas">
80
+ <td>{{ empresa.nome }}</td>
81
+ <td>{{ empresa.cnpj | cnpj }}</td>
82
+ </tr>
83
+ </tbody>
84
+ </table>
85
+ ```
86
+
87
+ ```typescript
88
+ import { CNPJPipe } from 'tcloud-ui';
89
+
90
+ @Component({
91
+ standalone: true,
92
+ imports: [CommonModule, CNPJPipe],
93
+ template: `...`
94
+ })
95
+ export class ExemploAvancadoComponent {
96
+ empresas = [
97
+ { nome: 'Empresa Alpha', cnpj: '12345678000195' },
98
+ { nome: 'Empresa Beta', cnpj: '98765432000110' },
99
+ { nome: 'Empresa Gamma', cnpj: '00123456000178' }
100
+ ];
101
+ }
102
+ ```
@@ -0,0 +1,171 @@
1
+ # Container
2
+
3
+ O componente **Container** fornece uma estrutura de layout responsivo com sidebar colapsável, ideal para aplicações com navegação lateral. Ele gerencia automaticamente o estado de expansão/contração da coluna lateral e sincroniza este estado entre seus componentes filhos.
4
+
5
+ ## Características
6
+
7
+ - **Layout de duas colunas**: Suporta uma coluna lateral (navbar/menu) e uma área de conteúdo principal
8
+ - **Responsividade**: A coluna lateral pode ser expandida ou contraída dinamicamente
9
+ - **Sincronização de estado**: Utiliza um serviço centralizado para gerenciar o estado expandido/contraído
10
+ - **Composição flexível**: Aceita conteúdo através de sub-componentes (`tcloud-ui-container-col` e `tcloud-ui-container-content`)
11
+ - **Sinal reativo**: Implementa Angular Signals para reatividade eficiente
12
+
13
+ ## Instalação
14
+
15
+ ```typescript
16
+ import { TCloudUiModule } from 'projects/tcloud-ui/src/public-api';
17
+
18
+ @Component({
19
+ imports: [TCloudUiModule],
20
+ // ... resto da configuração
21
+ })
22
+ export class MyComponent {}
23
+ ```
24
+
25
+ ## Propriedades (API)
26
+
27
+ ### Inputs
28
+
29
+ | Nome | Tipo | Descrição | Valor Default |
30
+ |------|------|-----------|---------------|
31
+ | `expanded` | `boolean` | Define se o container (coluna lateral) está expandido ou contraído | `false` |
32
+
33
+ ### Métodos
34
+
35
+ | Nome | Descrição |
36
+ |------|-----------|
37
+ | `to_expanded()` | Método manual para disparar a atualização do estado expandido. Mantido por retrocompatibilidade |
38
+
39
+ ## Componentes Filhos
40
+
41
+ ### tcloud-ui-container-col
42
+
43
+ Represente a coluna lateral do container. Acessa o estado de expansão através do serviço compartilhado.
44
+
45
+ ```html
46
+ <tcloud-ui-container-col>
47
+ <!-- Conteúdo da coluna lateral -->
48
+ </tcloud-ui-container-col>
49
+ ```
50
+
51
+ ### tcloud-ui-container-content
52
+
53
+ Represente a área de conteúdo principal do container. Ajusta seu layout baseado no estado de expansão da coluna.
54
+
55
+ ```html
56
+ <tcloud-ui-container-content>
57
+ <!-- Conteúdo principal -->
58
+ </tcloud-ui-container-content>
59
+ ```
60
+
61
+ ## Exemplos de Uso
62
+
63
+ ### Uso Básico
64
+
65
+ Estrutura simples com navbar e conteúdo principal:
66
+
67
+ ```typescript
68
+ @Component({
69
+ selector: 'app-my-layout',
70
+ imports: [TCloudUiModule],
71
+ template: `
72
+ <tcloud-ui-container [expanded]="isExpanded">
73
+ <tcloud-ui-container-col>
74
+ <nav>
75
+ <!-- Menu items -->
76
+ </nav>
77
+ </tcloud-ui-container-col>
78
+
79
+ <tcloud-ui-container-content>
80
+ <main>
81
+ <!-- Conteúdo principal -->
82
+ </main>
83
+ </tcloud-ui-container-content>
84
+ </tcloud-ui-container>
85
+ `
86
+ })
87
+ export class MyLayoutComponent {
88
+ isExpanded: boolean = true;
89
+ }
90
+ ```
91
+
92
+ ### Uso Avançado com Sub-Navbar
93
+
94
+ Integração com o componente de sub-navbar para navegação colapsável:
95
+
96
+ ```typescript
97
+ @Component({
98
+ selector: 'app-advanced-layout',
99
+ imports: [CommonModule, TCloudUiModule],
100
+ template: `
101
+ <tcloud-ui-container [expanded]="submenuExpanded">
102
+ <tcloud-ui-container-col>
103
+ <tcloud-ui-sub-navbar (onSubMenuExpandChange)="submenuExpanded = $event">
104
+ <tcloud-ui-sub-navbar-item label="Dashboard">
105
+ <i class="fa-solid fa-chart-line" icon></i>
106
+ </tcloud-ui-sub-navbar-item>
107
+
108
+ <tcloud-ui-sub-navbar-item label="Usuários">
109
+ <i class="fa-solid fa-users" icon></i>
110
+ </tcloud-ui-sub-navbar-item>
111
+
112
+ <tcloud-ui-sub-navbar-item label="Configurações">
113
+ <i class="fa-solid fa-cog" icon></i>
114
+ </tcloud-ui-sub-navbar-item>
115
+ </tcloud-ui-sub-navbar>
116
+ </tcloud-ui-container-col>
117
+
118
+ <tcloud-ui-container-content>
119
+ <tcloud-ui-card>
120
+ <tcloud-ui-card-title title="Bem-vindo">
121
+ <i class="fas fa-home" icon></i>
122
+ </tcloud-ui-card-title>
123
+ <p>Conteúdo principal da aplicação</p>
124
+ </tcloud-ui-card>
125
+ </tcloud-ui-container-content>
126
+ </tcloud-ui-container>
127
+ `
128
+ })
129
+ export class AdvancedLayoutComponent {
130
+ submenuExpanded: boolean = false;
131
+ }
132
+ ```
133
+
134
+ ### Controle Programático do Expansion
135
+
136
+ ```typescript
137
+ @Component({
138
+ selector: 'app-controllable-layout',
139
+ imports: [CommonModule, TCloudUiModule],
140
+ template: `
141
+ <button (click)="toggleExpanded()" class="tc-btn">
142
+ {{ isExpanded ? 'Fechar Menu' : 'Abrir Menu' }}
143
+ </button>
144
+
145
+ <tcloud-ui-container [expanded]="isExpanded">
146
+ <tcloud-ui-container-col>
147
+ <!-- Coluna lateral -->
148
+ </tcloud-ui-container-col>
149
+
150
+ <tcloud-ui-container-content>
151
+ <!-- Conteúdo -->
152
+ </tcloud-ui-container-content>
153
+ </tcloud-ui-container>
154
+ `
155
+ })
156
+ export class ControllableLayoutComponent {
157
+ isExpanded: boolean = false;
158
+
159
+ toggleExpanded() {
160
+ this.isExpanded = !this.isExpanded;
161
+ }
162
+ }
163
+ ```
164
+
165
+ ## Notas de Implementação
166
+
167
+ - O componente utiliza **Angular Signals** para gerenciamento reativo de estado através do `ContainerService`
168
+ - O serviço é fornecido no nível do componente, garantindo isolamento de estado entre instâncias múltiplas de Container
169
+ - Ambas as colunas (`col` e `content`) acessam o mesmo sinal de estado através da injeção de dependência do serviço
170
+ - A coerção de booleanos é automática: qualquer valor truthy/falsy é convertido para `true` ou `false`
171
+ - O componente detecta mudanças no `expanded` input e dispara a sincronização de estado apenas quando o valor efetivamente muda
@@ -0,0 +1,102 @@
1
+ # CPFPipe
2
+
3
+ O pipe `cpf` formata uma string numérica de 11 dígitos no padrão de CPF brasileiro (`###.###.###-##`). Se o valor informado não possuir exatamente 11 caracteres, o pipe retorna o valor original sem formatação.
4
+
5
+ ## Características
6
+
7
+ - Formatação automática no padrão `###.###.###-##`
8
+ - Validação de comprimento: aplica a máscara apenas quando o valor possui exatamente 11 dígitos
9
+ - Remoção de espaços em branco antes da formatação
10
+ - Retorno do valor original caso não possua 11 dígitos
11
+ - Pipe standalone
12
+
13
+ ## Instalação
14
+
15
+ Importe o pipe diretamente no módulo ou componente standalone:
16
+
17
+ ```typescript
18
+ import { CPFPipe } from 'tcloud-ui';
19
+ ```
20
+
21
+ ## API
22
+
23
+ ### Sintaxe do Pipe
24
+
25
+ ```
26
+ {{ valor | cpf }}
27
+ ```
28
+
29
+ ### Parâmetros
30
+
31
+ Este pipe não recebe parâmetros adicionais.
32
+
33
+ ### Entrada e Saída
34
+
35
+ | Entrada | Saída |
36
+ |------------------|----------------------|
37
+ | `'12345678901'` | `'123.456.789-01'` |
38
+ | `'00012345678'` | `'000.123.456-78'` |
39
+ | `'123'` | `'123'` (sem formatação) |
40
+
41
+ ## Exemplos de Uso
42
+
43
+ ### Básico — Formatação de CPF
44
+
45
+ ```html
46
+ <p>{{ '12345678901' | cpf }}</p>
47
+ <!-- Resultado: 123.456.789-01 -->
48
+
49
+ <p>{{ '00012345678' | cpf }}</p>
50
+ <!-- Resultado: 000.123.456-78 -->
51
+ ```
52
+
53
+ ```typescript
54
+ import { CPFPipe } from 'tcloud-ui';
55
+
56
+ @Component({
57
+ standalone: true,
58
+ imports: [CPFPipe],
59
+ template: `
60
+ <p>{{ cpf | cpf }}</p>
61
+ `
62
+ })
63
+ export class ExemploBasicoComponent {
64
+ cpf = '12345678901';
65
+ }
66
+ ```
67
+
68
+ ### Avançado — Exibição em listagem de usuários
69
+
70
+ ```html
71
+ <table class="table">
72
+ <thead>
73
+ <tr>
74
+ <th>Nome</th>
75
+ <th>CPF</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <tr *ngFor="let usuario of usuarios">
80
+ <td>{{ usuario.nome }}</td>
81
+ <td>{{ usuario.cpf | cpf }}</td>
82
+ </tr>
83
+ </tbody>
84
+ </table>
85
+ ```
86
+
87
+ ```typescript
88
+ import { CPFPipe } from 'tcloud-ui';
89
+
90
+ @Component({
91
+ standalone: true,
92
+ imports: [CommonModule, CPFPipe],
93
+ template: `...`
94
+ })
95
+ export class ExemploAvancadoComponent {
96
+ usuarios = [
97
+ { nome: 'Rodrigo Rea', cpf: '12345678901' },
98
+ { nome: 'Maria Silva', cpf: '98765432100' },
99
+ { nome: 'João Santos', cpf: '00012345678' }
100
+ ];
101
+ }
102
+ ```