@seniorsistemas/angular-components-mcp 1.0.0-beta.4 → 1.0.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.
@@ -1,79 +1,79 @@
1
1
  {
2
- "generatedAt": "2026-03-16T18:31:27.586Z",
2
+ "generatedAt": "2026-03-17T13:59:30.989Z",
3
3
  "description": "Auto-generated from TypeScript source. Do not edit manually — run generate:dynamic-form-metadata.",
4
4
  "baseTypes": {
5
5
  "FieldConfig": {
6
- "description": "Base configuration shared by all dynamic form field types.",
6
+ "description": "Configuração base compartilhada por **todos** os tipos de campo do DynamicForm.\n\nToda interface específica de campo (ex: TextFieldConfig, SelectFieldConfig) estende esta interface.\nAs propriedades aqui definidas estão disponíveis em qualquer campo do formulário.",
7
7
  "properties": {
8
8
  "type": {
9
9
  "type": "FieldType",
10
10
  "required": true,
11
- "description": null
11
+ "description": "Tipo do campo. Deve ser um dos valores registrados em `FieldTypeMap`.\nExemplos: `'string'`, `'enum'`, `'date'`, `'lookup'`, `'boolean'`, etc.\nPara tipos opcionais (ex: `'editor'`), o provider correspondente deve ser registrado no `AppConfig` ou `AppModule`."
12
12
  },
13
13
  "required": {
14
14
  "type": "() => boolean",
15
15
  "required": false,
16
- "description": null
16
+ "description": "Função que retorna se o campo é obrigatório dinamicamente.\nUse uma função para que a obrigatoriedade possa mudar em resposta ao estado do formulário."
17
17
  },
18
18
  "id": {
19
19
  "type": "string",
20
20
  "required": false,
21
- "description": null
21
+ "description": "ID HTML do elemento de input gerado. Útil para testes automatizados e acessibilidade."
22
22
  },
23
23
  "name": {
24
24
  "type": "string",
25
25
  "required": true,
26
- "description": null
26
+ "description": "Nome do campo no modelo de dados. Deve corresponder à chave da propriedade no objeto de dados do formulário."
27
27
  },
28
28
  "label": {
29
29
  "type": "string",
30
30
  "required": false,
31
- "description": null
31
+ "description": "Rótulo exibido acima ou ao lado do campo no formulário.\nSe omitido, o campo é exibido sem label."
32
32
  },
33
33
  "infoSign": {
34
34
  "type": "string",
35
35
  "required": false,
36
- "description": null
36
+ "description": "Ícone de informação exibido ao lado do campo. Aceita classes de ícone (ex: `'ph ph-info'`)."
37
37
  },
38
38
  "tooltip": {
39
39
  "type": "string",
40
40
  "required": false,
41
- "description": null
41
+ "description": "Texto do tooltip exibido ao passar o mouse sobre o campo ou sobre o infoSign."
42
42
  },
43
43
  "placeholder": {
44
44
  "type": "string",
45
45
  "required": false,
46
- "description": null
46
+ "description": "Texto de placeholder exibido enquanto o campo estiver vazio."
47
47
  },
48
48
  "displayTimeInfoSign": {
49
49
  "type": "number",
50
50
  "required": false,
51
- "description": null
51
+ "description": "Tempo em milissegundos para exibir automaticamente o infoSign quando o campo está focado.\nÚtil para orientar o usuário após um curto intervalo de inatividade."
52
52
  },
53
53
  "useInfoSignFocusedInputRef": {
54
54
  "type": "boolean",
55
55
  "required": false,
56
- "description": null
56
+ "description": "Quando `true`, o infoSign usa a referência do input focado como âncora do tooltip.\nÚtil para garantir que o tooltip apareça próximo ao campo correto em layouts complexos."
57
57
  }
58
58
  }
59
59
  },
60
60
  "StructureConfig": {
61
- "description": "Base configuration shared by all structure types (section, row, fieldset).",
61
+ "description": "Configuração base compartilhada por **todos** os tipos de estrutura do DynamicForm.\n\nEstruturas são contêineres que agrupam campos e outras estruturas.\nOs tipos disponíveis são: `'section'`, `'row'`, `'fieldset'`.",
62
62
  "properties": {
63
63
  "type": {
64
64
  "type": "StructureType",
65
65
  "required": true,
66
- "description": null
66
+ "description": "Tipo da estrutura. Deve ser um dos valores registrados em `StructureTypeMap`.\nValores disponíveis: `'section'`, `'row'`, `'fieldset'`."
67
67
  },
68
68
  "configs": {
69
69
  "type": "(DynamicType | DynamicStructure)[]",
70
70
  "required": true,
71
- "description": null
71
+ "description": "Lista de campos e sub-estruturas contidas nesta estrutura.\nCada item pode ser um `DynamicType` (campo) ou `DynamicStructure` (estrutura aninhada)."
72
72
  },
73
73
  "header": {
74
74
  "type": "string",
75
75
  "required": false,
76
- "description": null
76
+ "description": "Título opcional exibido no cabeçalho da estrutura.\nUsado, por exemplo, como título de seções ou fieldsets."
77
77
  }
78
78
  }
79
79
  }
@@ -82,1201 +82,1204 @@
82
82
  "autocomplete": {
83
83
  "interface": "AutocompleteFieldConfig",
84
84
  "sourceFile": "autocomplete-field.ts",
85
- "description": null,
85
+ "description": "Configuração para campo de autocompletar.\n\nExibe um input de texto que sugere opções enquanto o usuário digita, buscando os dados\nvia Observable. Suporta seleção simples ou múltipla e personalização do campo exibido.",
86
86
  "ownProperties": {
87
87
  "type": {
88
88
  "type": "'autocomplete'",
89
89
  "required": true,
90
- "description": null
90
+ "description": "Tipo do campo: sempre `'autocomplete'`."
91
91
  },
92
92
  "dataKey": {
93
93
  "type": "string",
94
94
  "required": false,
95
- "description": null
95
+ "description": "Chave única de cada item da lista de sugestões. Usada para identificar o objeto selecionado."
96
96
  },
97
97
  "displayField": {
98
98
  "type": "string",
99
99
  "required": false,
100
- "description": null
100
+ "description": "Nome da propriedade do objeto de sugestão que será exibida como texto na lista e no input."
101
101
  },
102
102
  "multiple": {
103
103
  "type": "boolean",
104
104
  "required": false,
105
- "description": null
105
+ "description": "Quando `true`, permite seleção de múltiplos itens exibidos como tags/chips."
106
106
  },
107
107
  "appendTo": {
108
108
  "type": "string",
109
109
  "required": false,
110
- "description": null
110
+ "description": "Elemento DOM ao qual o painel de sugestões será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
111
111
  },
112
112
  "emptyMessage": {
113
113
  "type": "string",
114
114
  "required": false,
115
- "description": null
115
+ "description": "Mensagem exibida quando nenhuma sugestão é encontrada para o texto digitado."
116
116
  },
117
117
  "suggestionsObservable": {
118
118
  "type": "Observable<any>",
119
119
  "required": false,
120
- "description": null
120
+ "description": "Observable que emite a lista de sugestões em resposta à digitação do usuário.\nDeve emitir um array de objetos com pelo menos a propriedade `displayField`."
121
121
  },
122
122
  "onSelect": {
123
123
  "type": "(event: any) => void",
124
124
  "required": false,
125
- "description": null
125
+ "description": "Callback chamado quando o usuário seleciona um item da lista de sugestões."
126
126
  },
127
127
  "onUnselect": {
128
128
  "type": "(event: any) => void",
129
129
  "required": false,
130
- "description": null
130
+ "description": "Callback chamado quando o usuário remove um item selecionado (modo múltiplo)."
131
131
  },
132
132
  "onClear": {
133
133
  "type": "(event: any) => void",
134
134
  "required": false,
135
- "description": null
135
+ "description": "Callback chamado quando o usuário limpa o campo."
136
136
  },
137
137
  "onSearch": {
138
138
  "type": "(value: string) => void",
139
139
  "required": false,
140
- "description": null
140
+ "description": "Callback chamado a cada alteração no texto digitado. Use para disparar a busca de sugestões."
141
141
  },
142
142
  "onBlur": {
143
143
  "type": "(event: FocusEvent) => void",
144
144
  "required": false,
145
- "description": null
145
+ "description": "Callback chamado quando o campo perde o foco."
146
146
  }
147
147
  }
148
148
  },
149
149
  "number": {
150
150
  "interface": "BignumberFieldConfig",
151
151
  "sourceFile": "bignumber-field.ts",
152
- "description": null,
152
+ "description": "Configuração para campos numéricos de grande precisão.\n\nUse `type: 'number'` para números inteiros ou decimais genéricos.\nUse `type: 'double'` para números com casas decimais explícitas.\n\nSuporta controle de precisão, escala, máscaras, addons laterais e formatação regional.\nPreferível em relação ao `NumberFieldConfig` (deprecated).",
153
153
  "ownProperties": {
154
154
  "type": {
155
155
  "type": "'number' | 'double'",
156
156
  "required": true,
157
- "description": null
157
+ "description": "`'number'` — campo numérico genérico (inteiro ou decimal).\n`'double'` — campo numérico com casas decimais."
158
158
  },
159
159
  "allowNegative": {
160
160
  "type": "boolean",
161
161
  "required": false,
162
- "description": null
162
+ "description": "Permite a entrada de valores negativos."
163
163
  },
164
164
  "numberLocaleOptions": {
165
165
  "type": "NumberLocaleOptions",
166
166
  "required": false,
167
- "description": null
167
+ "description": "Opções de localização para formatação do número (separador decimal, separador de milhar).\nSe omitido, usa o locale padrão da aplicação."
168
168
  },
169
169
  "browserAutocomplete": {
170
170
  "type": "boolean",
171
171
  "required": false,
172
- "description": null
172
+ "description": "Controla o autocomplete nativo do browser."
173
173
  },
174
174
  "precision": {
175
175
  "type": "Function | number",
176
176
  "required": false,
177
- "description": null
177
+ "description": "Número total de dígitos (inteiros + decimais). Pode ser uma função para controle dinâmico."
178
178
  },
179
179
  "scale": {
180
180
  "type": "Function | number",
181
181
  "required": false,
182
- "description": null
182
+ "description": "Número de casas decimais permitidas. Pode ser uma função para controle dinâmico."
183
183
  },
184
184
  "mask": {
185
185
  "type": "stringFn | string",
186
186
  "required": false,
187
- "description": null
187
+ "description": "Máscara de entrada. Pode ser uma string fixa ou função que retorna a máscara."
188
188
  },
189
189
  "leftAddon": {
190
190
  "type": "AddonConfig",
191
191
  "required": false,
192
- "description": null
192
+ "description": "Addon exibido à esquerda do campo (ex: símbolo de moeda, unidade de medida)."
193
193
  },
194
194
  "rightAddon": {
195
195
  "type": "AddonConfig",
196
196
  "required": false,
197
- "description": null
197
+ "description": "Addon exibido à direita do campo (ex: unidade de medida, botão)."
198
198
  },
199
199
  "onBlur": {
200
200
  "type": "(event: Event) => void",
201
201
  "required": false,
202
- "description": null
202
+ "description": "Callback chamado quando o campo perde o foco."
203
203
  },
204
204
  "onFocus": {
205
205
  "type": "(event: FocusEvent) => void",
206
206
  "required": false,
207
- "description": null
207
+ "description": "Callback chamado quando o campo recebe foco."
208
208
  },
209
209
  "onComplete": {
210
210
  "type": "(event: FocusEvent) => void",
211
211
  "required": false,
212
- "description": null
212
+ "description": "Callback chamado quando a máscara é completamente preenchida."
213
213
  },
214
214
  "onInput": {
215
215
  "type": "(event: FocusEvent) => void",
216
216
  "required": false,
217
- "description": null
217
+ "description": "Callback chamado a cada alteração no valor do input."
218
218
  },
219
219
  "autoClear": {
220
220
  "type": "boolean",
221
221
  "required": false,
222
- "description": null
222
+ "description": "Quando `true`, limpa o valor do campo automaticamente ao perder o foco se o valor for inválido."
223
223
  },
224
224
  "alignTo": {
225
225
  "type": "'left' | 'right'",
226
226
  "required": false,
227
- "description": null
227
+ "description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda (padrão).\n`'right'` — alinhado à direita (comum em campos monetários)."
228
228
  }
229
229
  }
230
230
  },
231
231
  "double": {
232
232
  "interface": "BignumberFieldConfig",
233
233
  "sourceFile": "bignumber-field.ts",
234
- "description": null,
234
+ "description": "Configuração para campos numéricos de grande precisão.\n\nUse `type: 'number'` para números inteiros ou decimais genéricos.\nUse `type: 'double'` para números com casas decimais explícitas.\n\nSuporta controle de precisão, escala, máscaras, addons laterais e formatação regional.\nPreferível em relação ao `NumberFieldConfig` (deprecated).",
235
235
  "ownProperties": {
236
236
  "type": {
237
237
  "type": "'number' | 'double'",
238
238
  "required": true,
239
- "description": null
239
+ "description": "`'number'` — campo numérico genérico (inteiro ou decimal).\n`'double'` — campo numérico com casas decimais."
240
240
  },
241
241
  "allowNegative": {
242
242
  "type": "boolean",
243
243
  "required": false,
244
- "description": null
244
+ "description": "Permite a entrada de valores negativos."
245
245
  },
246
246
  "numberLocaleOptions": {
247
247
  "type": "NumberLocaleOptions",
248
248
  "required": false,
249
- "description": null
249
+ "description": "Opções de localização para formatação do número (separador decimal, separador de milhar).\nSe omitido, usa o locale padrão da aplicação."
250
250
  },
251
251
  "browserAutocomplete": {
252
252
  "type": "boolean",
253
253
  "required": false,
254
- "description": null
254
+ "description": "Controla o autocomplete nativo do browser."
255
255
  },
256
256
  "precision": {
257
257
  "type": "Function | number",
258
258
  "required": false,
259
- "description": null
259
+ "description": "Número total de dígitos (inteiros + decimais). Pode ser uma função para controle dinâmico."
260
260
  },
261
261
  "scale": {
262
262
  "type": "Function | number",
263
263
  "required": false,
264
- "description": null
264
+ "description": "Número de casas decimais permitidas. Pode ser uma função para controle dinâmico."
265
265
  },
266
266
  "mask": {
267
267
  "type": "stringFn | string",
268
268
  "required": false,
269
- "description": null
269
+ "description": "Máscara de entrada. Pode ser uma string fixa ou função que retorna a máscara."
270
270
  },
271
271
  "leftAddon": {
272
272
  "type": "AddonConfig",
273
273
  "required": false,
274
- "description": null
274
+ "description": "Addon exibido à esquerda do campo (ex: símbolo de moeda, unidade de medida)."
275
275
  },
276
276
  "rightAddon": {
277
277
  "type": "AddonConfig",
278
278
  "required": false,
279
- "description": null
279
+ "description": "Addon exibido à direita do campo (ex: unidade de medida, botão)."
280
280
  },
281
281
  "onBlur": {
282
282
  "type": "(event: Event) => void",
283
283
  "required": false,
284
- "description": null
284
+ "description": "Callback chamado quando o campo perde o foco."
285
285
  },
286
286
  "onFocus": {
287
287
  "type": "(event: FocusEvent) => void",
288
288
  "required": false,
289
- "description": null
289
+ "description": "Callback chamado quando o campo recebe foco."
290
290
  },
291
291
  "onComplete": {
292
292
  "type": "(event: FocusEvent) => void",
293
293
  "required": false,
294
- "description": null
294
+ "description": "Callback chamado quando a máscara é completamente preenchida."
295
295
  },
296
296
  "onInput": {
297
297
  "type": "(event: FocusEvent) => void",
298
298
  "required": false,
299
- "description": null
299
+ "description": "Callback chamado a cada alteração no valor do input."
300
300
  },
301
301
  "autoClear": {
302
302
  "type": "boolean",
303
303
  "required": false,
304
- "description": null
304
+ "description": "Quando `true`, limpa o valor do campo automaticamente ao perder o foco se o valor for inválido."
305
305
  },
306
306
  "alignTo": {
307
307
  "type": "'left' | 'right'",
308
308
  "required": false,
309
- "description": null
309
+ "description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda (padrão).\n`'right'` — alinhado à direita (comum em campos monetários)."
310
310
  }
311
311
  }
312
312
  },
313
313
  "blob": {
314
314
  "interface": "BlobFieldConfig",
315
315
  "sourceFile": "blob-field.ts",
316
- "description": null,
316
+ "description": "Configuração para campo de upload de arquivos binários.\n\nExibe uma área de upload com suporte a múltiplos arquivos, progresso de envio,\nvisualização de arquivos enviados e download.\n\nTodas as propriedades são obrigatórias, pois o componente depende de labels e handlers\npara opções de ação e controle dos arquivos.",
317
317
  "ownProperties": {
318
318
  "type": {
319
319
  "type": "'blob'",
320
320
  "required": true,
321
- "description": null
321
+ "description": "Tipo do campo: sempre `'blob'`."
322
322
  },
323
323
  "accept": {
324
324
  "type": "string",
325
325
  "required": true,
326
- "description": null
326
+ "description": "Tipos de arquivo aceitos no seletor de arquivo nativo (MIME types ou extensões)."
327
327
  },
328
328
  "files": {
329
329
  "type": "FileDto[]",
330
330
  "required": true,
331
- "description": null
331
+ "description": "Lista dos arquivos atualmente associados ao campo.\nDeve ser inicializada como array vazio `[]` ao criar o formulário."
332
332
  },
333
333
  "chooseLabel": {
334
334
  "type": "string",
335
335
  "required": true,
336
- "description": null
336
+ "description": "Rótulo do botão de escolher/adicionar arquivo."
337
337
  },
338
338
  "removeLabel": {
339
339
  "type": "string",
340
340
  "required": true,
341
- "description": null
341
+ "description": "Rótulo do botão de remover um arquivo da lista."
342
342
  },
343
343
  "cancelLabel": {
344
344
  "type": "string",
345
345
  "required": true,
346
- "description": null
346
+ "description": "Rótulo do botão de cancelar o upload em andamento."
347
347
  },
348
348
  "successTooltip": {
349
349
  "type": "string",
350
350
  "required": true,
351
- "description": null
351
+ "description": "Texto do tooltip exibido quando o upload é concluído com sucesso."
352
352
  },
353
353
  "multiple": {
354
354
  "type": "boolean",
355
355
  "required": true,
356
- "description": null
356
+ "description": "Permite selecionar e enviar múltiplos arquivos simultaneamente."
357
357
  },
358
358
  "onUploadFile": {
359
359
  "type": "(event: {\n files: FileDto[];\n}, field: BlobFieldConfig) => void",
360
360
  "required": true,
361
- "description": null
361
+ "description": "Callback chamado após o envio bem-sucedido de arquivos.\nRecebe a lista de arquivos enviados e a instância da configuração do campo."
362
362
  },
363
363
  "onRemoveFile": {
364
364
  "type": "(event: FileDto, field: BlobFieldConfig) => void",
365
365
  "required": true,
366
- "description": null
366
+ "description": "Callback chamado quando o usuário remove um arquivo da lista."
367
367
  },
368
368
  "onCancelUpload": {
369
369
  "type": "(event: number, field: BlobFieldConfig) => void",
370
370
  "required": true,
371
- "description": null
371
+ "description": "Callback chamado quando o usuário cancela um upload em andamento.\nO `event` é o índice do arquivo na fila de upload."
372
372
  },
373
373
  "onDownloadFile": {
374
374
  "type": "(event: {\n index: number;\n anchor: ElementRef;\n}, field: BlobFieldConfig) => void",
375
375
  "required": true,
376
- "description": null
376
+ "description": "Callback chamado quando o usuário clica para baixar um arquivo já enviado.\nRecebe o índice do arquivo e a referência ao elemento anchor de download."
377
377
  },
378
378
  "showFileUploadDate": {
379
379
  "type": "boolean",
380
380
  "required": true,
381
- "description": null
381
+ "description": "Quando `true`, exibe a data de upload de cada arquivo na lista."
382
382
  }
383
383
  }
384
384
  },
385
385
  "boolean": {
386
386
  "interface": "BooleanFieldConfig",
387
387
  "sourceFile": "boolean-field.ts",
388
- "description": null,
388
+ "description": "Configuração para campo booleano com exibição como botões de rádio (Sim/Não).\n\nExibe dois (ou três, com `showClear`) botões de rádio rotulados conforme `optionsLabel`.\nDiferente do `booleanSwitch`, este campo é mais adequado para questionários e formulários\nque precisam de rotação explícita entre as opções sim/não.",
389
389
  "ownProperties": {
390
390
  "type": {
391
391
  "type": "'boolean'",
392
392
  "required": true,
393
- "description": null
393
+ "description": "Tipo do campo: sempre `'boolean'`."
394
394
  },
395
395
  "verticalAlignment": {
396
396
  "type": "boolean",
397
397
  "required": false,
398
- "description": null
398
+ "description": "Quando `true`, os botões são empilhados verticalmente em vez de na horizontal."
399
399
  },
400
400
  "optionsLabel": {
401
401
  "type": "BooleanOptionsLabelConfig",
402
402
  "required": true,
403
- "description": null
403
+ "description": "Labels exibidas para as opções do campo. Obrigatório."
404
404
  },
405
405
  "onBlur": {
406
406
  "type": "(event: Event) => void",
407
407
  "required": false,
408
- "description": null
408
+ "description": "Callback chamado quando o campo perde o foco."
409
409
  },
410
410
  "onFocus": {
411
411
  "type": "(event: Event) => void",
412
412
  "required": false,
413
- "description": null
413
+ "description": "Callback chamado quando o campo recebe foco."
414
414
  },
415
415
  "onClick": {
416
416
  "type": "(event: any) => void",
417
417
  "required": false,
418
- "description": null
418
+ "description": "Callback chamado quando o usuário clica em uma opção."
419
419
  },
420
420
  "showClear": {
421
421
  "type": "boolean",
422
422
  "required": false,
423
- "description": null
423
+ "description": "Quando `true`, exibe um botão de limpar a seleção.\nO texto do botão é definido em `optionsLabel.clear`."
424
424
  }
425
425
  }
426
426
  },
427
427
  "booleanSwitch": {
428
428
  "interface": "BooleanSwitchFieldConfig",
429
429
  "sourceFile": "boolean-switch-field.ts",
430
- "description": null,
430
+ "description": "Configuração para campo booleano com exibição como toggle switch.\n\nRenderiza um interruptor visual de liga/desliga. Use quando o campo representa\numa preferência ou configuração que pode ser ativada ou desativada de forma imediata.\n\nDiferente do `BooleanFieldConfig` (rádio sim/não), este campo usa o componente `s-switch`.",
431
431
  "ownProperties": {
432
432
  "type": {
433
433
  "type": "'booleanSwitch'",
434
434
  "required": true,
435
- "description": null
435
+ "description": "Tipo do campo: sempre `'booleanSwitch'`."
436
436
  },
437
437
  "onChange": {
438
438
  "type": "(event: any) => void",
439
439
  "required": false,
440
- "description": null
440
+ "description": "Callback chamado quando o estado do switch muda (ligado ⇔ desligado)."
441
441
  },
442
442
  "optionsLabel": {
443
443
  "type": "BooleanOptionsLabelConfig",
444
444
  "required": false,
445
- "description": null
445
+ "description": "Labels opcionais exibidas ao lado do switch representando os estados.\nSe omitido, o switch é exibido sem labels de texto."
446
446
  }
447
447
  }
448
448
  },
449
449
  "button": {
450
450
  "interface": "ButtonFieldConfig",
451
451
  "sourceFile": "button-field.ts",
452
- "description": null,
452
+ "description": "Configuração para campo do tipo botão dentro do DynamicForm.\n\nRenderiza um botão (`s-button`) diretamente como um campo do formulário.\nÚtil para ações contextuais associadas ao formulário, como buscar dados, limpar campos\nou acionar funcionalidades sem submeter o formulário.\n\nAs propriedades visuais e comportamentais (priority, iconClass, menuOptions, etc.)\nsão herdadas diretamente de `ButtonComponent`.",
453
453
  "ownProperties": {
454
454
  "type": {
455
455
  "type": "'button'",
456
456
  "required": true,
457
- "description": null
457
+ "description": "Tipo do campo: sempre `'button'`."
458
458
  },
459
459
  "onClick": {
460
460
  "type": "(event?: any) => any",
461
461
  "required": false,
462
- "description": null
462
+ "description": "Callback chamado quando o botão é clicado."
463
463
  },
464
464
  "fullWidth": {
465
465
  "type": "boolean",
466
466
  "required": false,
467
- "description": null
467
+ "description": "Quando `true`, o botão ocupa toda a largura da célula/coluna do formulário."
468
468
  },
469
469
  "mouseEnter": {
470
470
  "type": "(button: ButtonFieldConfig) => void",
471
471
  "required": false,
472
- "description": null
472
+ "description": "Callback chamado quando o mouse entra na área do botão."
473
473
  },
474
474
  "mouseLeave": {
475
475
  "type": "(button: ButtonFieldConfig) => void",
476
476
  "required": false,
477
- "description": null
477
+ "description": "Callback chamado quando o mouse sai da área do botão."
478
478
  }
479
479
  }
480
480
  },
481
481
  "dateTime": {
482
482
  "interface": "CalendarFieldConfig",
483
483
  "sourceFile": "calendar-field.ts",
484
- "description": null,
484
+ "description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
485
485
  "ownProperties": {
486
486
  "type": {
487
487
  "type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
488
488
  "required": true,
489
- "description": null
489
+ "description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
490
490
  },
491
491
  "view": {
492
492
  "type": "'date' | 'month' | 'year'",
493
493
  "required": false,
494
- "description": null
494
+ "description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
495
495
  },
496
496
  "minDate": {
497
497
  "type": "Date",
498
498
  "required": false,
499
- "description": null
499
+ "description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
500
500
  },
501
501
  "maxDate": {
502
502
  "type": "Date",
503
503
  "required": false,
504
- "description": null
504
+ "description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
505
505
  },
506
506
  "defaultDate": {
507
507
  "type": "Date",
508
508
  "required": false,
509
- "description": null
509
+ "description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
510
510
  },
511
511
  "appendTo": {
512
512
  "type": "string",
513
513
  "required": false,
514
- "description": null
514
+ "description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
515
515
  },
516
516
  "showOnFocus": {
517
517
  "type": "boolean",
518
518
  "required": false,
519
- "description": null
519
+ "description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
520
520
  },
521
521
  "calendarLocaleOptions": {
522
522
  "type": "CalendarLocaleOptions",
523
523
  "required": false,
524
- "description": null
524
+ "description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
525
525
  },
526
526
  "onBlur": {
527
527
  "type": "(event: Event) => void",
528
528
  "required": false,
529
- "description": null
529
+ "description": "Callback chamado quando o campo perde o foco."
530
530
  },
531
531
  "onFocus": {
532
532
  "type": "(event: Event) => void",
533
533
  "required": false,
534
- "description": null
534
+ "description": "Callback chamado quando o campo recebe foco."
535
535
  },
536
536
  "onSelect": {
537
537
  "type": "(event: any) => void",
538
538
  "required": false,
539
- "description": null
539
+ "description": "Callback chamado quando o usuário seleciona uma data."
540
540
  },
541
541
  "onInput": {
542
542
  "type": "(event: any) => void",
543
543
  "required": false,
544
- "description": null
544
+ "description": "Callback chamado quando o usuário digita manualmente no campo."
545
545
  },
546
546
  "onClose": {
547
547
  "type": "(event: any) => void",
548
548
  "required": false,
549
- "description": null
549
+ "description": "Callback chamado quando o painel do calendário é fechado."
550
550
  },
551
551
  "onTodayClick": {
552
552
  "type": "(event: any) => void",
553
553
  "required": false,
554
- "description": null
554
+ "description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
555
555
  },
556
556
  "onClearClick": {
557
557
  "type": "(event: any) => void",
558
558
  "required": false,
559
- "description": null
559
+ "description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
560
560
  },
561
561
  "onMonthChange": {
562
562
  "type": "(event: any) => void",
563
563
  "required": false,
564
- "description": null
564
+ "description": "Callback chamado quando o mês visualizado muda."
565
565
  },
566
566
  "onYearChange": {
567
567
  "type": "(event: any) => void",
568
568
  "required": false,
569
- "description": null
569
+ "description": "Callback chamado quando o ano visualizado muda."
570
570
  },
571
571
  "selectionMode": {
572
572
  "type": "'single' | 'multiple'",
573
573
  "required": false,
574
- "description": null
574
+ "description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
575
575
  },
576
576
  "rangeSeparator": {
577
577
  "type": "string",
578
578
  "required": false,
579
- "description": null
579
+ "description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
580
580
  },
581
581
  "showSeconds": {
582
582
  "type": "boolean",
583
583
  "required": false,
584
- "description": null
584
+ "description": "Quando `true`, exibe o seletor de segundos no modo de hora."
585
585
  }
586
586
  }
587
587
  },
588
588
  "localDateTime": {
589
589
  "interface": "CalendarFieldConfig",
590
590
  "sourceFile": "calendar-field.ts",
591
- "description": null,
591
+ "description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
592
592
  "ownProperties": {
593
593
  "type": {
594
594
  "type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
595
595
  "required": true,
596
- "description": null
596
+ "description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
597
597
  },
598
598
  "view": {
599
599
  "type": "'date' | 'month' | 'year'",
600
600
  "required": false,
601
- "description": null
601
+ "description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
602
602
  },
603
603
  "minDate": {
604
604
  "type": "Date",
605
605
  "required": false,
606
- "description": null
606
+ "description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
607
607
  },
608
608
  "maxDate": {
609
609
  "type": "Date",
610
610
  "required": false,
611
- "description": null
611
+ "description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
612
612
  },
613
613
  "defaultDate": {
614
614
  "type": "Date",
615
615
  "required": false,
616
- "description": null
616
+ "description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
617
617
  },
618
618
  "appendTo": {
619
619
  "type": "string",
620
620
  "required": false,
621
- "description": null
621
+ "description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
622
622
  },
623
623
  "showOnFocus": {
624
624
  "type": "boolean",
625
625
  "required": false,
626
- "description": null
626
+ "description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
627
627
  },
628
628
  "calendarLocaleOptions": {
629
629
  "type": "CalendarLocaleOptions",
630
630
  "required": false,
631
- "description": null
631
+ "description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
632
632
  },
633
633
  "onBlur": {
634
634
  "type": "(event: Event) => void",
635
635
  "required": false,
636
- "description": null
636
+ "description": "Callback chamado quando o campo perde o foco."
637
637
  },
638
638
  "onFocus": {
639
639
  "type": "(event: Event) => void",
640
640
  "required": false,
641
- "description": null
641
+ "description": "Callback chamado quando o campo recebe foco."
642
642
  },
643
643
  "onSelect": {
644
644
  "type": "(event: any) => void",
645
645
  "required": false,
646
- "description": null
646
+ "description": "Callback chamado quando o usuário seleciona uma data."
647
647
  },
648
648
  "onInput": {
649
649
  "type": "(event: any) => void",
650
650
  "required": false,
651
- "description": null
651
+ "description": "Callback chamado quando o usuário digita manualmente no campo."
652
652
  },
653
653
  "onClose": {
654
654
  "type": "(event: any) => void",
655
655
  "required": false,
656
- "description": null
656
+ "description": "Callback chamado quando o painel do calendário é fechado."
657
657
  },
658
658
  "onTodayClick": {
659
659
  "type": "(event: any) => void",
660
660
  "required": false,
661
- "description": null
661
+ "description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
662
662
  },
663
663
  "onClearClick": {
664
664
  "type": "(event: any) => void",
665
665
  "required": false,
666
- "description": null
666
+ "description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
667
667
  },
668
668
  "onMonthChange": {
669
669
  "type": "(event: any) => void",
670
670
  "required": false,
671
- "description": null
671
+ "description": "Callback chamado quando o mês visualizado muda."
672
672
  },
673
673
  "onYearChange": {
674
674
  "type": "(event: any) => void",
675
675
  "required": false,
676
- "description": null
676
+ "description": "Callback chamado quando o ano visualizado muda."
677
677
  },
678
678
  "selectionMode": {
679
679
  "type": "'single' | 'multiple'",
680
680
  "required": false,
681
- "description": null
681
+ "description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
682
682
  },
683
683
  "rangeSeparator": {
684
684
  "type": "string",
685
685
  "required": false,
686
- "description": null
686
+ "description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
687
687
  },
688
688
  "showSeconds": {
689
689
  "type": "boolean",
690
690
  "required": false,
691
- "description": null
691
+ "description": "Quando `true`, exibe o seletor de segundos no modo de hora."
692
692
  }
693
693
  }
694
694
  },
695
695
  "time": {
696
696
  "interface": "CalendarFieldConfig",
697
697
  "sourceFile": "calendar-field.ts",
698
- "description": null,
698
+ "description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
699
699
  "ownProperties": {
700
700
  "type": {
701
701
  "type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
702
702
  "required": true,
703
- "description": null
703
+ "description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
704
704
  },
705
705
  "view": {
706
706
  "type": "'date' | 'month' | 'year'",
707
707
  "required": false,
708
- "description": null
708
+ "description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
709
709
  },
710
710
  "minDate": {
711
711
  "type": "Date",
712
712
  "required": false,
713
- "description": null
713
+ "description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
714
714
  },
715
715
  "maxDate": {
716
716
  "type": "Date",
717
717
  "required": false,
718
- "description": null
718
+ "description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
719
719
  },
720
720
  "defaultDate": {
721
721
  "type": "Date",
722
722
  "required": false,
723
- "description": null
723
+ "description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
724
724
  },
725
725
  "appendTo": {
726
726
  "type": "string",
727
727
  "required": false,
728
- "description": null
728
+ "description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
729
729
  },
730
730
  "showOnFocus": {
731
731
  "type": "boolean",
732
732
  "required": false,
733
- "description": null
733
+ "description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
734
734
  },
735
735
  "calendarLocaleOptions": {
736
736
  "type": "CalendarLocaleOptions",
737
737
  "required": false,
738
- "description": null
738
+ "description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
739
739
  },
740
740
  "onBlur": {
741
741
  "type": "(event: Event) => void",
742
742
  "required": false,
743
- "description": null
743
+ "description": "Callback chamado quando o campo perde o foco."
744
744
  },
745
745
  "onFocus": {
746
746
  "type": "(event: Event) => void",
747
747
  "required": false,
748
- "description": null
748
+ "description": "Callback chamado quando o campo recebe foco."
749
749
  },
750
750
  "onSelect": {
751
751
  "type": "(event: any) => void",
752
752
  "required": false,
753
- "description": null
753
+ "description": "Callback chamado quando o usuário seleciona uma data."
754
754
  },
755
755
  "onInput": {
756
756
  "type": "(event: any) => void",
757
757
  "required": false,
758
- "description": null
758
+ "description": "Callback chamado quando o usuário digita manualmente no campo."
759
759
  },
760
760
  "onClose": {
761
761
  "type": "(event: any) => void",
762
762
  "required": false,
763
- "description": null
763
+ "description": "Callback chamado quando o painel do calendário é fechado."
764
764
  },
765
765
  "onTodayClick": {
766
766
  "type": "(event: any) => void",
767
767
  "required": false,
768
- "description": null
768
+ "description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
769
769
  },
770
770
  "onClearClick": {
771
771
  "type": "(event: any) => void",
772
772
  "required": false,
773
- "description": null
773
+ "description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
774
774
  },
775
775
  "onMonthChange": {
776
776
  "type": "(event: any) => void",
777
777
  "required": false,
778
- "description": null
778
+ "description": "Callback chamado quando o mês visualizado muda."
779
779
  },
780
780
  "onYearChange": {
781
781
  "type": "(event: any) => void",
782
782
  "required": false,
783
- "description": null
783
+ "description": "Callback chamado quando o ano visualizado muda."
784
784
  },
785
785
  "selectionMode": {
786
786
  "type": "'single' | 'multiple'",
787
787
  "required": false,
788
- "description": null
788
+ "description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
789
789
  },
790
790
  "rangeSeparator": {
791
791
  "type": "string",
792
792
  "required": false,
793
- "description": null
793
+ "description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
794
794
  },
795
795
  "showSeconds": {
796
796
  "type": "boolean",
797
797
  "required": false,
798
- "description": null
798
+ "description": "Quando `true`, exibe o seletor de segundos no modo de hora."
799
799
  }
800
800
  }
801
801
  },
802
802
  "date": {
803
803
  "interface": "CalendarFieldConfig",
804
804
  "sourceFile": "calendar-field.ts",
805
- "description": null,
805
+ "description": "Configuração para campos de data e hora.\n\nQuatro variantes disponíveis:\n- `'date'` — apenas data (dia/mês/ano)\n- `'time'` — apenas hora (hora:minuto[:segundo])\n- `'dateTime'` — data com horário com timezone (UTC)\n- `'localDateTime'` — data com horário sem timezone (local da máquina)\n\nSuporta restrições de intervalo, modo de visualização (dia/mês/ano), seleção múltipla\ne localização de labels do calendário.",
806
806
  "ownProperties": {
807
807
  "type": {
808
808
  "type": "'dateTime' | 'localDateTime' | 'time' | 'date'",
809
809
  "required": true,
810
- "description": null
810
+ "description": "`'date'` — campo de data apenas.\n`'time'` — campo de hora apenas.\n`'dateTime'` — data e hora com timezone UTC.\n`'localDateTime'` — data e hora sem timezone (local)."
811
811
  },
812
812
  "view": {
813
813
  "type": "'date' | 'month' | 'year'",
814
814
  "required": false,
815
- "description": null
815
+ "description": "Modo de visualização inicial do calendário.\n`'date'` — grade de dias (padrão).\n`'month'` — selector de mês.\n`'year'` — seletor de ano."
816
816
  },
817
817
  "minDate": {
818
818
  "type": "Date",
819
819
  "required": false,
820
- "description": null
820
+ "description": "Data mínima selecionável. Datas anteriores serão desabilitadas no calendário."
821
821
  },
822
822
  "maxDate": {
823
823
  "type": "Date",
824
824
  "required": false,
825
- "description": null
825
+ "description": "Data máxima selecionável. Datas posteriores serão desabilitadas no calendário."
826
826
  },
827
827
  "defaultDate": {
828
828
  "type": "Date",
829
829
  "required": false,
830
- "description": null
830
+ "description": "Data exibida inicialmente ao abrir o calendário quando nenhuma data está selecionada."
831
831
  },
832
832
  "appendTo": {
833
833
  "type": "string",
834
834
  "required": false,
835
- "description": null
835
+ "description": "Elemento DOM ao qual o painel do calendário será anexado.\nUse `'body'` para evitar problemas de overflow em containers com `overflow: hidden`."
836
836
  },
837
837
  "showOnFocus": {
838
838
  "type": "boolean",
839
839
  "required": false,
840
- "description": null
840
+ "description": "Quando `true`, o calendário abre automaticamente ao focar o campo."
841
841
  },
842
842
  "calendarLocaleOptions": {
843
843
  "type": "CalendarLocaleOptions",
844
844
  "required": false,
845
- "description": null
845
+ "description": "Opções de localização do calendário (nomes de dias da semana, meses, etc.).\nSe omitido, usa o locale padrão da aplicação."
846
846
  },
847
847
  "onBlur": {
848
848
  "type": "(event: Event) => void",
849
849
  "required": false,
850
- "description": null
850
+ "description": "Callback chamado quando o campo perde o foco."
851
851
  },
852
852
  "onFocus": {
853
853
  "type": "(event: Event) => void",
854
854
  "required": false,
855
- "description": null
855
+ "description": "Callback chamado quando o campo recebe foco."
856
856
  },
857
857
  "onSelect": {
858
858
  "type": "(event: any) => void",
859
859
  "required": false,
860
- "description": null
860
+ "description": "Callback chamado quando o usuário seleciona uma data."
861
861
  },
862
862
  "onInput": {
863
863
  "type": "(event: any) => void",
864
864
  "required": false,
865
- "description": null
865
+ "description": "Callback chamado quando o usuário digita manualmente no campo."
866
866
  },
867
867
  "onClose": {
868
868
  "type": "(event: any) => void",
869
869
  "required": false,
870
- "description": null
870
+ "description": "Callback chamado quando o painel do calendário é fechado."
871
871
  },
872
872
  "onTodayClick": {
873
873
  "type": "(event: any) => void",
874
874
  "required": false,
875
- "description": null
875
+ "description": "Callback chamado quando o usuário clica no botão \"Hoje\"."
876
876
  },
877
877
  "onClearClick": {
878
878
  "type": "(event: any) => void",
879
879
  "required": false,
880
- "description": null
880
+ "description": "Callback chamado quando o usuário clica no botão \"Limpar\"."
881
881
  },
882
882
  "onMonthChange": {
883
883
  "type": "(event: any) => void",
884
884
  "required": false,
885
- "description": null
885
+ "description": "Callback chamado quando o mês visualizado muda."
886
886
  },
887
887
  "onYearChange": {
888
888
  "type": "(event: any) => void",
889
889
  "required": false,
890
- "description": null
890
+ "description": "Callback chamado quando o ano visualizado muda."
891
891
  },
892
892
  "selectionMode": {
893
893
  "type": "'single' | 'multiple'",
894
894
  "required": false,
895
- "description": null
895
+ "description": "Modo de seleção de datas.\n`'single'` — seleção de uma data (padrão).\n`'multiple'` — seleção de múltiplas datas incompatíveis."
896
896
  },
897
897
  "rangeSeparator": {
898
898
  "type": "string",
899
899
  "required": false,
900
- "description": null
900
+ "description": "Separador exibido entre as datas de início e fim quando `selectionMode = 'range'`."
901
901
  },
902
902
  "showSeconds": {
903
903
  "type": "boolean",
904
904
  "required": false,
905
- "description": null
905
+ "description": "Quando `true`, exibe o seletor de segundos no modo de hora."
906
906
  }
907
907
  }
908
908
  },
909
909
  "checkbox": {
910
910
  "interface": "CheckboxFieldConfig",
911
911
  "sourceFile": "checkbox-field.ts",
912
- "description": null,
912
+ "description": "Configuração para campo de múltipla escolha com checkboxes.\n\nRenderiza uma lista de checkboxes com suporte a agrupamento hierárquico via `CheckboxListData`.\nO valor do campo será um array com os valores dos itens selecionados.\n\nUse quando o usuário pode selecionar zero ou mais opções de uma lista finita.\nPara seleção única, prefira `type: 'radioButton'` ou `type: 'enum'`.",
913
913
  "ownProperties": {
914
914
  "type": {
915
915
  "type": "'checkbox'",
916
916
  "required": true,
917
- "description": null
917
+ "description": "Tipo do campo: sempre `'checkbox'`."
918
918
  },
919
919
  "data": {
920
920
  "type": "CheckboxListData",
921
921
  "required": true,
922
- "description": null
922
+ "description": "Dados que definem os itens e a estrutura hierárquica dos checkboxes.\nImportado de `@seniorsistemas/angular-components/checkbox-list`.\nCada item possui `label`, `value` e opcionalmente `children` com sub-itens."
923
923
  }
924
924
  }
925
925
  },
926
926
  "chips": {
927
927
  "interface": "ChipsFieldConfig",
928
928
  "sourceFile": "chips-field.ts",
929
- "description": null,
929
+ "description": "Configuração para campo de entrada de múltiplas tags (chips).\n\nPermite que o usuário insira vários valores de texto livres, visualizados como chips/tags.\nCada valor é adicionado ao pressionar Enter (ou o separador configurado).\nO valor do campo é um array de strings.\n\nUse para e-mails, palavras-chave, códigos ou qualquer lista de valores livres.",
930
930
  "ownProperties": {
931
931
  "type": {
932
932
  "type": "'chips'",
933
933
  "required": true,
934
- "description": null
934
+ "description": "Tipo do campo: sempre `'chips'`."
935
935
  },
936
936
  "keyFilter": {
937
937
  "type": "RegExp",
938
938
  "required": false,
939
- "description": null
939
+ "description": "Expressão regular que filtra os caracteres aceitos em cada chip."
940
940
  },
941
941
  "separator": {
942
942
  "type": "string",
943
943
  "required": false,
944
- "description": null
944
+ "description": "Caractere separador para adicionar novos chips além do Enter."
945
945
  },
946
946
  "showCopyButton": {
947
947
  "type": "boolean",
948
948
  "required": false,
949
- "description": null
949
+ "description": "Quando `true`, exibe um botão de copiar todos os chips para a área de transferência."
950
950
  },
951
951
  "onAdd": {
952
952
  "type": "(event: any) => void",
953
953
  "required": false,
954
- "description": null
954
+ "description": "Callback chamado quando um novo chip é adicionado."
955
955
  },
956
956
  "onRemove": {
957
957
  "type": "(event: any) => void",
958
958
  "required": false,
959
- "description": null
959
+ "description": "Callback chamado quando um chip é removido."
960
960
  },
961
961
  "onChipClick": {
962
962
  "type": "(event: any) => void",
963
963
  "required": false,
964
- "description": null
964
+ "description": "Callback chamado quando o usuário clica em um chip existente."
965
965
  },
966
966
  "onFocus": {
967
967
  "type": "(event: any) => void",
968
968
  "required": false,
969
- "description": null
969
+ "description": "Callback chamado quando o campo recebe foco."
970
970
  },
971
971
  "onBlur": {
972
972
  "type": "(event: any) => void",
973
973
  "required": false,
974
- "description": null
974
+ "description": "Callback chamado quando o campo perde o foco."
975
975
  },
976
976
  "onCopy": {
977
977
  "type": "(content: string) => void",
978
978
  "required": false,
979
- "description": null
979
+ "description": "Callback chamado quando o usuário copia o conteúdo dos chips.\nRecebe o texto combinado de todos os chips."
980
980
  }
981
981
  }
982
982
  },
983
983
  "contentGenerator": {
984
984
  "interface": "ContentGeneratorFieldConfig",
985
985
  "sourceFile": "content-generator-field.ts",
986
- "description": null,
986
+ "description": "Configuração para campo de área de texto com geração de conteúdo via IA.\n\nCombina um textarea completo com recursos de:\n- Geração automática de texto por IA via prompt\n- Reconhecimento de voz (speech-to-text)\n- Contexto persistente entre gerações (`keepContext`)\n\nUse `type: 'contentGenerator'` para novas implementações.\nO tipo `'textAreaIA'` está depreciado e será removido na v20.",
987
987
  "ownProperties": {
988
988
  "type": {
989
989
  "type": "'contentGenerator' | 'textAreaIA'",
990
990
  "required": true,
991
- "description": null
991
+ "description": "`'contentGenerator'` — tipo atual recomendado.\n`'textAreaIA'` — **@deprecated** Será removido na v20, use `'contentGenerator'`."
992
992
  },
993
993
  "cols": {
994
994
  "type": "number",
995
995
  "required": false,
996
- "description": null
996
+ "description": "Número de colunas de texto do textarea."
997
997
  },
998
998
  "rows": {
999
999
  "type": "number",
1000
1000
  "required": false,
1001
- "description": null
1001
+ "description": "Número de linhas visíveis do textarea."
1002
1002
  },
1003
1003
  "keyFilter": {
1004
1004
  "type": "any",
1005
1005
  "required": false,
1006
- "description": null
1006
+ "description": "Filtro de teclas aceitas. Aceita regex ou string."
1007
1007
  },
1008
1008
  "style": {
1009
1009
  "type": "Partial<CSSStyleDeclaration>",
1010
1010
  "required": false,
1011
- "description": null
1011
+ "description": "Estilos CSS inline aplicados diretamente no elemento textarea."
1012
1012
  },
1013
1013
  "prompt": {
1014
1014
  "type": "string",
1015
1015
  "required": false,
1016
- "description": null
1016
+ "description": "Prompt inicial enviado à IA para gerar conteúdo.\nDefine a instrução base para o assistente de geração de texto."
1017
1017
  },
1018
1018
  "readonly": {
1019
1019
  "type": "() => boolean",
1020
1020
  "required": false,
1021
- "description": null
1021
+ "description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
1022
1022
  },
1023
1023
  "speechRecognition": {
1024
1024
  "type": "boolean",
1025
1025
  "required": false,
1026
- "description": null
1026
+ "description": "Quando `true`, ativa o botão de reconhecimento de voz (speech-to-text).\nO conteúdo falado é convertido em texto e inserido no campo."
1027
1027
  },
1028
1028
  "keepContext": {
1029
1029
  "type": "boolean",
1030
1030
  "required": true,
1031
- "description": null
1031
+ "description": "Quando `true`, o contexto das gerações anteriores é mantido ao gerar novo conteúdo.\nPermite que a IA considere o histórico da conversa na próxima geração."
1032
1032
  },
1033
1033
  "speechRecognitionPlaceholder": {
1034
1034
  "type": "string",
1035
1035
  "required": true,
1036
- "description": null
1036
+ "description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
1037
1037
  },
1038
1038
  "maxLength": {
1039
1039
  "type": "number",
1040
1040
  "required": false,
1041
- "description": null
1041
+ "description": "Número máximo de caracteres permitidos no campo."
1042
1042
  }
1043
1043
  }
1044
1044
  },
1045
1045
  "textAreaIA": {
1046
1046
  "interface": "ContentGeneratorFieldConfig",
1047
1047
  "sourceFile": "content-generator-field.ts",
1048
- "description": null,
1048
+ "description": "Configuração para campo de área de texto com geração de conteúdo via IA.\n\nCombina um textarea completo com recursos de:\n- Geração automática de texto por IA via prompt\n- Reconhecimento de voz (speech-to-text)\n- Contexto persistente entre gerações (`keepContext`)\n\nUse `type: 'contentGenerator'` para novas implementações.\nO tipo `'textAreaIA'` está depreciado e será removido na v20.",
1049
1049
  "ownProperties": {
1050
1050
  "type": {
1051
1051
  "type": "'contentGenerator' | 'textAreaIA'",
1052
1052
  "required": true,
1053
- "description": null
1053
+ "description": "`'contentGenerator'` — tipo atual recomendado.\n`'textAreaIA'` — **@deprecated** Será removido na v20, use `'contentGenerator'`."
1054
1054
  },
1055
1055
  "cols": {
1056
1056
  "type": "number",
1057
1057
  "required": false,
1058
- "description": null
1058
+ "description": "Número de colunas de texto do textarea."
1059
1059
  },
1060
1060
  "rows": {
1061
1061
  "type": "number",
1062
1062
  "required": false,
1063
- "description": null
1063
+ "description": "Número de linhas visíveis do textarea."
1064
1064
  },
1065
1065
  "keyFilter": {
1066
1066
  "type": "any",
1067
1067
  "required": false,
1068
- "description": null
1068
+ "description": "Filtro de teclas aceitas. Aceita regex ou string."
1069
1069
  },
1070
1070
  "style": {
1071
1071
  "type": "Partial<CSSStyleDeclaration>",
1072
1072
  "required": false,
1073
- "description": null
1073
+ "description": "Estilos CSS inline aplicados diretamente no elemento textarea."
1074
1074
  },
1075
1075
  "prompt": {
1076
1076
  "type": "string",
1077
1077
  "required": false,
1078
- "description": null
1078
+ "description": "Prompt inicial enviado à IA para gerar conteúdo.\nDefine a instrução base para o assistente de geração de texto."
1079
1079
  },
1080
1080
  "readonly": {
1081
1081
  "type": "() => boolean",
1082
1082
  "required": false,
1083
- "description": null
1083
+ "description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
1084
1084
  },
1085
1085
  "speechRecognition": {
1086
1086
  "type": "boolean",
1087
1087
  "required": false,
1088
- "description": null
1088
+ "description": "Quando `true`, ativa o botão de reconhecimento de voz (speech-to-text).\nO conteúdo falado é convertido em texto e inserido no campo."
1089
1089
  },
1090
1090
  "keepContext": {
1091
1091
  "type": "boolean",
1092
1092
  "required": true,
1093
- "description": null
1093
+ "description": "Quando `true`, o contexto das gerações anteriores é mantido ao gerar novo conteúdo.\nPermite que a IA considere o histórico da conversa na próxima geração."
1094
1094
  },
1095
1095
  "speechRecognitionPlaceholder": {
1096
1096
  "type": "string",
1097
1097
  "required": true,
1098
- "description": null
1098
+ "description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
1099
1099
  },
1100
1100
  "maxLength": {
1101
1101
  "type": "number",
1102
1102
  "required": false,
1103
- "description": null
1103
+ "description": "Número máximo de caracteres permitidos no campo."
1104
1104
  }
1105
1105
  }
1106
1106
  },
1107
1107
  "countryPhonePicker": {
1108
1108
  "interface": "CountryPhonePickerConfig",
1109
1109
  "sourceFile": "country-phone-picker-field.ts",
1110
- "description": null,
1110
+ "description": "Configuração para campo de seleção de país com entrada de número de telefone.\n\nCombina um dropdown de seleção de país (com bandeira e código DDI) com um campo de telefone\nque aplica automaticamente a máscara de cada país selecionado.\n\nO valor do campo é do tipo `PhoneSelectionData`, contendo o país e o número.",
1111
1111
  "ownProperties": {
1112
1112
  "type": {
1113
1113
  "type": "'countryPhonePicker'",
1114
1114
  "required": true,
1115
- "description": null
1115
+ "description": "Tipo do campo: sempre `'countryPhonePicker'`."
1116
1116
  },
1117
1117
  "countries": {
1118
1118
  "type": "string[]",
1119
1119
  "required": true,
1120
- "description": null
1120
+ "description": "Lista de códigos de países disponíveis no dropdown.\nUse códigos ISO 3166-1 alpha-2 em maiúsculas."
1121
1121
  },
1122
1122
  "ordination": {
1123
1123
  "type": "Ordination",
1124
1124
  "required": true,
1125
- "description": null
1125
+ "description": "Critério de ordenação dos países no dropdown.\nImportado de `@seniorsistemas/angular-components/country-phone-picker`."
1126
1126
  },
1127
1127
  "onSelected": {
1128
1128
  "type": "(data: CountryPhoneData) => void",
1129
1129
  "required": true,
1130
- "description": null
1130
+ "description": "Callback obrigatório chamado quando o país é selecionado.\nRecebe os dados do país escolhido (nome, DDI, código)."
1131
1131
  },
1132
1132
  "onFocusLost": {
1133
1133
  "type": "(data: PhoneSelectionData | null) => void",
1134
1134
  "required": false,
1135
- "description": null
1135
+ "description": "Callback chamado quando o campo de telefone perde o foco.\nRecebe os dados completos da seleção (país + número), ou `null` se vazio."
1136
1136
  }
1137
1137
  }
1138
1138
  },
1139
1139
  "money": {
1140
1140
  "interface": "CurrencyFieldConfig",
1141
1141
  "sourceFile": "currency-field.ts",
1142
- "description": null,
1142
+ "description": "Configuração para campo monetário com símbolo de moeda.",
1143
1143
  "ownProperties": {
1144
1144
  "type": {
1145
1145
  "type": "'money'",
1146
1146
  "required": true,
1147
- "description": null
1147
+ "description": "Tipo do campo: sempre `'money'`."
1148
1148
  },
1149
1149
  "alignTo": {
1150
1150
  "type": "'left' | 'right'",
1151
1151
  "required": false,
1152
- "description": null
1152
+ "description": "Alinhamento do texto dentro do campo.\n`'left'` — alinhado à esquerda.\n`'right'` — alinhado à direita (comum em campos monetários)."
1153
1153
  },
1154
1154
  "currency": {
1155
1155
  "type": "() => Currency",
1156
1156
  "required": false,
1157
- "description": null
1157
+ "description": "Função que retorna o objeto de moeda a ser exibido junto ao valor.\nInclui símbolo, código e formatação."
1158
1158
  }
1159
1159
  }
1160
1160
  },
1161
1161
  "lookup": {
1162
1162
  "interface": "LookupFieldConfig",
1163
1163
  "sourceFile": "lookup-field.ts",
1164
- "description": null,
1164
+ "description": "Configuração para campo de pesquisa avançada (Lookup).\n\nExibe um input com autocompletar e botão de pesquisa que abre um diálogo com grid de resultados.\nSuporta seleção simples ou múltipla, filtros padrão, ações CRUD na seleção e configuração\ndinâmica das colunas da grade.\n\nRequer dois Observables:\n- `suggestionsObservable`: para sugestões no autocompletar\n- `searchObservable`: para a grade de resultados do diálogo",
1165
1165
  "ownProperties": {
1166
1166
  "type": {
1167
1167
  "type": "'lookup'",
1168
1168
  "required": true,
1169
- "description": null
1169
+ "description": "Tipo do campo: sempre `'lookup'`."
1170
1170
  },
1171
1171
  "defaultValue": {
1172
1172
  "type": "any",
1173
1173
  "required": false,
1174
- "description": null
1174
+ "description": "Valor padrão pré-selecionado ao inicializar o formulário."
1175
1175
  },
1176
1176
  "multiple": {
1177
1177
  "type": "boolean",
1178
1178
  "required": false,
1179
- "description": null
1179
+ "description": "Quando `true`, permite selecionar múltiplos registros exibidos como tags."
1180
1180
  },
1181
1181
  "showSearch": {
1182
1182
  "type": "boolean",
1183
1183
  "required": false,
1184
- "description": null
1184
+ "description": "Quando `true`, exibe o botão de pesquisa avançada que abre o diálogo com a grade."
1185
1185
  },
1186
1186
  "searchFields": {
1187
- "type": "any[]",
1187
+ "type": "DynamicType[]",
1188
1188
  "required": true,
1189
- "description": null
1189
+ "description": "Colunas de filtro exibidas no diálogo de pesquisa avançada.\nCada item define o campo de filtro disponível para o usuário."
1190
1190
  },
1191
1191
  "searchGridFields": {
1192
- "type": "any[]",
1192
+ "type": "DynamicType[]",
1193
1193
  "required": true,
1194
- "description": null
1194
+ "description": "Colunas exibidas na grade de resultados do diálogo de pesquisa.\nCada item define uma coluna com header e campo de dados."
1195
1195
  },
1196
1196
  "suggestionsObservable": {
1197
1197
  "type": "Observable<any[]>",
1198
1198
  "required": true,
1199
- "description": null
1199
+ "description": "Observable que emite sugestões para o autocompletar do input do lookup.\nDeve emitir um array de objetos com a propriedade `lookupDisplayField`."
1200
1200
  },
1201
1201
  "searchObservable": {
1202
1202
  "type": "Observable<SearchObservable>",
1203
1203
  "required": true,
1204
- "description": null
1204
+ "description": "Observable que emite os dados da grade do diálogo de pesquisa avançada.\nDeve emitir um objeto `SearchObservable` com `gridData` e `totalRecords`.\n\nEstrutura de `SearchObservable`: `{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string; }`",
1205
+ "imports": [
1206
+ "import { SearchObservable } from '@seniorsistemas/angular-components/dynamic-form';"
1207
+ ]
1205
1208
  },
1206
1209
  "dataKey": {
1207
1210
  "type": "string",
1208
1211
  "required": true,
1209
- "description": null
1212
+ "description": "Nome da propriedade única do objeto que identifica cada registro."
1210
1213
  },
1211
1214
  "lookupDisplayField": {
1212
1215
  "type": "string",
1213
1216
  "required": true,
1214
- "description": null
1217
+ "description": "Nome da propriedade do objeto de resultado a ser exibida no input e nas tags."
1215
1218
  },
1216
1219
  "searchTitle": {
1217
1220
  "type": "string",
1218
1221
  "required": false,
1219
- "description": null
1222
+ "description": "Título do diálogo de pesquisa avançada."
1220
1223
  },
1221
1224
  "searchEmptyTitle": {
1222
1225
  "type": "string",
1223
1226
  "required": false,
1224
- "description": null
1227
+ "description": "Mensagem exibida quando a pesquisa não retorna resultados."
1225
1228
  },
1226
1229
  "filterLabel": {
1227
1230
  "type": "string",
1228
1231
  "required": false,
1229
- "description": null
1232
+ "description": "Label do campo de filtro no diálogo."
1230
1233
  },
1231
1234
  "filterTitle": {
1232
1235
  "type": "string",
1233
1236
  "required": false,
1234
- "description": null
1237
+ "description": "Título do campo de filtro no diálogo."
1235
1238
  },
1236
1239
  "clearLabel": {
1237
1240
  "type": "string",
1238
1241
  "required": false,
1239
- "description": null
1242
+ "description": "Label do botão de limpar filtros."
1240
1243
  },
1241
1244
  "cancelLabel": {
1242
1245
  "type": "string",
1243
1246
  "required": false,
1244
- "description": null
1247
+ "description": "Label do botão de cancelar e fechar o diálogo."
1245
1248
  },
1246
1249
  "selectLabel": {
1247
1250
  "type": "string",
1248
1251
  "required": false,
1249
- "description": null
1252
+ "description": "Label do botão de confirmar a seleção no diálogo."
1250
1253
  },
1251
1254
  "emptyMessage": {
1252
1255
  "type": "string",
1253
1256
  "required": false,
1254
- "description": null
1257
+ "description": "Mensagem exibida quando nenhum registro é encontrado na grade."
1255
1258
  },
1256
1259
  "recordLabel": {
1257
1260
  "type": "string",
1258
1261
  "required": false,
1259
- "description": null
1262
+ "description": "Label para um registro (singular)."
1260
1263
  },
1261
1264
  "recordsLabel": {
1262
1265
  "type": "string",
1263
1266
  "required": false,
1264
- "description": null
1267
+ "description": "Label para múltiplos registros (plural)."
1265
1268
  },
1266
1269
  "emptyFieldLabel": {
1267
1270
  "type": "string",
1268
1271
  "required": false,
1269
- "description": null
1272
+ "description": "Label exibida quando o campo está vazio e sem seleção."
1270
1273
  },
1271
1274
  "appendTo": {
1272
1275
  "type": "string",
1273
1276
  "required": false,
1274
- "description": null
1277
+ "description": "Elemento DOM ao qual o painel de sugestões será anexado.\nUse `'body'` para evitar problemas com `overflow: hidden`."
1275
1278
  },
1276
1279
  "autocompleteForceSelection": {
1277
1280
  "type": "boolean",
1278
1281
  "required": false,
1279
- "description": null
1282
+ "description": "Quando `true`, o usuário só pode selecionar valores da lista de sugestões;\ntexto livre é descartado ao perder o foco."
1280
1283
  },
1281
1284
  "maxlength": {
1282
1285
  "type": "number | null",
@@ -1291,839 +1294,845 @@
1291
1294
  "showEditOption": {
1292
1295
  "type": "boolean",
1293
1296
  "required": false,
1294
- "description": null
1297
+ "description": "Quando `true`, exibe o botão de editar o registro selecionado."
1295
1298
  },
1296
1299
  "showRemoveOption": {
1297
1300
  "type": "boolean",
1298
1301
  "required": false,
1299
- "description": null
1302
+ "description": "Quando `true`, exibe o botão de remover registros selecionados."
1300
1303
  },
1301
1304
  "sortableColumnsDisabled": {
1302
1305
  "type": "string[]",
1303
1306
  "required": false,
1304
- "description": null
1307
+ "description": "Lista de colunas que não podem ser ordenadas na grade do diálogo."
1305
1308
  },
1306
1309
  "defaultFilter": {
1307
1310
  "type": "DefaultFilter[]",
1308
1311
  "required": false,
1309
- "description": null
1312
+ "description": "Filtros padrão aplicados automaticamente à pesquisa.\nCada item define um campo e um valor fixo ou dinâmico (função).\n\nEstrutura de `DefaultFilter`: `{ field: string; value: string | (() => string); }`",
1313
+ "imports": [
1314
+ "import { DefaultFilter } from '@seniorsistemas/angular-components/dynamic-form';"
1315
+ ]
1310
1316
  },
1311
1317
  "onLookupRequest": {
1312
1318
  "type": "(query: string) => void",
1313
1319
  "required": true,
1314
- "description": null
1320
+ "description": "Callback chamado quando o usuário digita para buscar sugestões.\nDeve atualizar o `suggestionsObservable` com os resultados da busca."
1315
1321
  },
1316
1322
  "onSearchRequest": {
1317
- "type": "(event: any) => void",
1323
+ "type": "(event: LookupSearchRequest) => void",
1318
1324
  "required": true,
1319
- "description": null
1325
+ "description": "Callback chamado quando o usuário realiza uma pesquisa no diálogo avançado.\nDeve atualizar o `searchObservable` com os resultados paginados.\n\nEstrutura de `LookupSearchRequest`: `{ filterData: Record<string, any>; first: number; rows: number; }`",
1326
+ "imports": [
1327
+ "import { LookupSearchRequest } from '@seniorsistemas/angular-components/dynamic-form';"
1328
+ ]
1320
1329
  },
1321
1330
  "onSelect": {
1322
1331
  "type": "(event: any) => void",
1323
1332
  "required": false,
1324
- "description": null
1333
+ "description": "Callback chamado quando o usuário seleciona um registro."
1325
1334
  },
1326
1335
  "onUnselect": {
1327
1336
  "type": "(event: any) => void",
1328
1337
  "required": false,
1329
- "description": null
1338
+ "description": "Callback chamado quando o usuário remove um registro selecionado (modo múltiplo)."
1330
1339
  },
1331
1340
  "onClear": {
1332
1341
  "type": "(event: any) => void",
1333
1342
  "required": false,
1334
- "description": null
1343
+ "description": "Callback chamado quando o usuário limpa todos os registros selecionados."
1335
1344
  },
1336
1345
  "onBlur": {
1337
1346
  "type": "(event: FocusEvent) => void",
1338
1347
  "required": false,
1339
- "description": null
1348
+ "description": "Callback chamado quando o campo perde o foco."
1340
1349
  },
1341
1350
  "onAdd": {
1342
1351
  "type": "() => void",
1343
1352
  "required": false,
1344
- "description": null
1353
+ "description": "Callback chamado quando o usuário clica no botão de adicionar novo registro."
1345
1354
  },
1346
1355
  "onEdit": {
1347
1356
  "type": "(selectedItem: unknown) => void",
1348
1357
  "required": false,
1349
- "description": null
1358
+ "description": "Callback chamado quando o usuário clica no botão de editar. Recebe o item selecionado."
1350
1359
  },
1351
1360
  "onRemove": {
1352
1361
  "type": "(selectedItems: unknown[]) => void",
1353
1362
  "required": false,
1354
- "description": null
1363
+ "description": "Callback chamado quando o usuário clica no botão de remover. Recebe os itens selecionados."
1355
1364
  },
1356
1365
  "onClearButtonClick": {
1357
1366
  "type": "() => void",
1358
1367
  "required": false,
1359
- "description": null
1368
+ "description": "Callback chamado quando o usuário clica no botão de limpar do campo (X)."
1360
1369
  }
1361
1370
  }
1362
1371
  },
1363
1372
  "integer": {
1364
1373
  "interface": "NumberFieldConfig",
1365
1374
  "sourceFile": "number-field.ts",
1366
- "description": null,
1375
+ "description": "Configuração para campos numéricos inteiros ou de número legado.",
1367
1376
  "ownProperties": {
1368
1377
  "type": {
1369
1378
  "type": "'integer' | 'legacyNumber'",
1370
1379
  "required": true,
1371
- "description": null
1380
+ "description": "`'integer'` — campo numérico inteiro.\n`'legacyNumber'` — campo numérico legado."
1372
1381
  },
1373
1382
  "numberLocaleOptions": {
1374
1383
  "type": "NumberLocaleOptions",
1375
1384
  "required": false,
1376
- "description": null
1385
+ "description": "Opções de localização numérica."
1377
1386
  },
1378
1387
  "browserAutocomplete": {
1379
1388
  "type": "boolean",
1380
1389
  "required": false,
1381
- "description": null
1390
+ "description": "Controla o autocomplete nativo do browser."
1382
1391
  },
1383
1392
  "precision": {
1384
1393
  "type": "Function | number",
1385
1394
  "required": false,
1386
- "description": null
1395
+ "description": "Número total de dígitos aceitos. Pode ser função para controle dinâmico."
1387
1396
  },
1388
1397
  "scale": {
1389
1398
  "type": "(() => number) | number",
1390
1399
  "required": false,
1391
- "description": null
1400
+ "description": "Número de casas decimais. Pode ser função para controle dinâmico."
1392
1401
  },
1393
1402
  "alignTo": {
1394
1403
  "type": "NumberAlignmentOption",
1395
1404
  "required": false,
1396
- "description": null
1405
+ "description": "Alinhamento do texto no campo."
1397
1406
  },
1398
1407
  "mask": {
1399
1408
  "type": "stringFn | string",
1400
1409
  "required": false,
1401
- "description": null
1410
+ "description": "Máscara de entrada. Pode ser string estática ou função."
1402
1411
  },
1403
1412
  "leftAddon": {
1404
1413
  "type": "AddonConfig",
1405
1414
  "required": false,
1406
- "description": null
1415
+ "description": "Addon exibido à esquerda do campo."
1407
1416
  },
1408
1417
  "rightAddon": {
1409
1418
  "type": "AddonConfig",
1410
1419
  "required": false,
1411
- "description": null
1420
+ "description": "Addon exibido à direita do campo."
1412
1421
  },
1413
1422
  "localizedNumber": {
1414
1423
  "type": "boolean",
1415
1424
  "required": false,
1416
- "description": null
1425
+ "description": "Quando `true`, usa o componente de número localizado."
1417
1426
  },
1418
1427
  "onBlur": {
1419
1428
  "type": "(event: Event) => void",
1420
1429
  "required": false,
1421
- "description": null
1430
+ "description": "Callback chamado quando o campo perde o foco."
1422
1431
  },
1423
1432
  "onFocus": {
1424
1433
  "type": "(event: Event) => void",
1425
1434
  "required": false,
1426
- "description": null
1435
+ "description": "Callback chamado quando o campo recebe foco."
1427
1436
  },
1428
1437
  "onComplete": {
1429
- "type": "(event: FocusEvent) => void",
1438
+ "type": "(event: Event) => void",
1430
1439
  "required": false,
1431
- "description": null
1440
+ "description": "Callback chamado quando a máscara é completamente preenchida."
1432
1441
  },
1433
1442
  "onInput": {
1434
1443
  "type": "(event: Event) => void",
1435
1444
  "required": false,
1436
- "description": null
1445
+ "description": "Callback chamado a cada alteração no valor do input."
1437
1446
  }
1438
1447
  }
1439
1448
  },
1440
1449
  "legacyNumber": {
1441
1450
  "interface": "NumberFieldConfig",
1442
1451
  "sourceFile": "number-field.ts",
1443
- "description": null,
1452
+ "description": "Configuração para campos numéricos inteiros ou de número legado.",
1444
1453
  "ownProperties": {
1445
1454
  "type": {
1446
1455
  "type": "'integer' | 'legacyNumber'",
1447
1456
  "required": true,
1448
- "description": null
1457
+ "description": "`'integer'` — campo numérico inteiro.\n`'legacyNumber'` — campo numérico legado."
1449
1458
  },
1450
1459
  "numberLocaleOptions": {
1451
1460
  "type": "NumberLocaleOptions",
1452
1461
  "required": false,
1453
- "description": null
1462
+ "description": "Opções de localização numérica."
1454
1463
  },
1455
1464
  "browserAutocomplete": {
1456
1465
  "type": "boolean",
1457
1466
  "required": false,
1458
- "description": null
1467
+ "description": "Controla o autocomplete nativo do browser."
1459
1468
  },
1460
1469
  "precision": {
1461
1470
  "type": "Function | number",
1462
1471
  "required": false,
1463
- "description": null
1472
+ "description": "Número total de dígitos aceitos. Pode ser função para controle dinâmico."
1464
1473
  },
1465
1474
  "scale": {
1466
1475
  "type": "(() => number) | number",
1467
1476
  "required": false,
1468
- "description": null
1477
+ "description": "Número de casas decimais. Pode ser função para controle dinâmico."
1469
1478
  },
1470
1479
  "alignTo": {
1471
1480
  "type": "NumberAlignmentOption",
1472
1481
  "required": false,
1473
- "description": null
1482
+ "description": "Alinhamento do texto no campo."
1474
1483
  },
1475
1484
  "mask": {
1476
1485
  "type": "stringFn | string",
1477
1486
  "required": false,
1478
- "description": null
1487
+ "description": "Máscara de entrada. Pode ser string estática ou função."
1479
1488
  },
1480
1489
  "leftAddon": {
1481
1490
  "type": "AddonConfig",
1482
1491
  "required": false,
1483
- "description": null
1492
+ "description": "Addon exibido à esquerda do campo."
1484
1493
  },
1485
1494
  "rightAddon": {
1486
1495
  "type": "AddonConfig",
1487
1496
  "required": false,
1488
- "description": null
1497
+ "description": "Addon exibido à direita do campo."
1489
1498
  },
1490
1499
  "localizedNumber": {
1491
1500
  "type": "boolean",
1492
1501
  "required": false,
1493
- "description": null
1502
+ "description": "Quando `true`, usa o componente de número localizado."
1494
1503
  },
1495
1504
  "onBlur": {
1496
1505
  "type": "(event: Event) => void",
1497
1506
  "required": false,
1498
- "description": null
1507
+ "description": "Callback chamado quando o campo perde o foco."
1499
1508
  },
1500
1509
  "onFocus": {
1501
1510
  "type": "(event: Event) => void",
1502
1511
  "required": false,
1503
- "description": null
1512
+ "description": "Callback chamado quando o campo recebe foco."
1504
1513
  },
1505
1514
  "onComplete": {
1506
- "type": "(event: FocusEvent) => void",
1515
+ "type": "(event: Event) => void",
1507
1516
  "required": false,
1508
- "description": null
1517
+ "description": "Callback chamado quando a máscara é completamente preenchida."
1509
1518
  },
1510
1519
  "onInput": {
1511
1520
  "type": "(event: Event) => void",
1512
1521
  "required": false,
1513
- "description": null
1522
+ "description": "Callback chamado a cada alteração no valor do input."
1514
1523
  }
1515
1524
  }
1516
1525
  },
1517
1526
  "password": {
1518
1527
  "interface": "PasswordFieldConfig",
1519
1528
  "sourceFile": "password-field.ts",
1520
- "description": null,
1529
+ "description": "Configuração para campo de senha com indicador de força.\n\nRenderiza um input de senha com:\n- Togglear a visibilidade da senha (mostrar/ocultar)\n- Indicador visual de força da senha (fraca/média/forte)\n- Configuração customizada das regras de validação da força",
1521
1530
  "ownProperties": {
1522
1531
  "type": {
1523
1532
  "type": "'password'",
1524
1533
  "required": true,
1525
- "description": null
1534
+ "description": "Tipo do campo: sempre `'password'`."
1526
1535
  },
1527
1536
  "inputType": {
1528
1537
  "type": "string",
1529
1538
  "required": false,
1530
- "description": null
1539
+ "description": "Tipo HTML do input."
1531
1540
  },
1532
1541
  "keyFilter": {
1533
1542
  "type": "any",
1534
1543
  "required": false,
1535
- "description": null
1544
+ "description": "Filtro de teclas aceitas. Aceita regex, string ou qualquer valor aceito pelo componente."
1536
1545
  },
1537
1546
  "maxLength": {
1538
1547
  "type": "string | number",
1539
1548
  "required": false,
1540
- "description": null
1549
+ "description": "Número máximo de caracteres permitidos."
1541
1550
  },
1542
1551
  "passwordStrength": {
1543
1552
  "type": "boolean",
1544
1553
  "required": true,
1545
- "description": null
1554
+ "description": "Quando `true`, exibe a barra de força da senha abaixo do campo.\nRequer `passwordStrengthOptions` para personalizar as regras de avaliação."
1546
1555
  },
1547
1556
  "passwordStrengthOptions": {
1548
1557
  "type": "PasswordStrengthOptions",
1549
1558
  "required": false,
1550
- "description": null
1559
+ "description": "Opções de configuração da barra de força da senha.\nObrigatório quando `passwordStrength: true`."
1551
1560
  },
1552
1561
  "showToggle": {
1553
1562
  "type": "boolean",
1554
1563
  "required": true,
1555
- "description": null
1564
+ "description": "Quando `true`, exibe o botão de alternar visibilidade da senha (olho/olho fechado)."
1556
1565
  },
1557
1566
  "style": {
1558
1567
  "type": "{\n [klass: string]: any;\n}",
1559
1568
  "required": false,
1560
- "description": null
1569
+ "description": "Estilos CSS inline aplicados ao elemento de input."
1561
1570
  },
1562
1571
  "onBlur": {
1563
1572
  "type": "(event: FocusEvent) => void",
1564
1573
  "required": false,
1565
- "description": null
1574
+ "description": "Callback chamado quando o campo perde o foco."
1566
1575
  },
1567
1576
  "onFocus": {
1568
1577
  "type": "(event: FocusEvent) => void",
1569
1578
  "required": false,
1570
- "description": null
1579
+ "description": "Callback chamado quando o campo recebe foco."
1571
1580
  },
1572
1581
  "onComplete": {
1573
1582
  "type": "(event: FocusEvent) => void",
1574
1583
  "required": false,
1575
- "description": null
1584
+ "description": "Callback chamado quando a máscara é completamente preenchida."
1576
1585
  },
1577
1586
  "onInput": {
1578
1587
  "type": "(event: Event) => void",
1579
1588
  "required": false,
1580
- "description": null
1589
+ "description": "Callback chamado a cada alteração no valor do input."
1581
1590
  }
1582
1591
  }
1583
1592
  },
1584
1593
  "profilePicture": {
1585
1594
  "interface": "ProfilePictureConfig",
1586
1595
  "sourceFile": "profile-picture.ts",
1587
- "description": null,
1596
+ "description": "Configuração para campo de foto de perfil com recorte.\n\nExibe uma área para upload e recorte de imagem de perfil.\nSuporta pré-visualização, recorte interativo (cropper), validação de tipo e tamanho,\nconfirmação de remoção e labels customizadas para todas as ações.",
1588
1597
  "ownProperties": {
1589
1598
  "type": {
1590
1599
  "type": "'profilePicture'",
1591
1600
  "required": true,
1592
- "description": null
1601
+ "description": "Tipo do campo: sempre `'profilePicture'`."
1593
1602
  },
1594
1603
  "simpleTitle": {
1595
1604
  "type": "string",
1596
1605
  "required": true,
1597
- "description": null
1606
+ "description": "Título exibido no modo simples (sem imagem carregada)."
1598
1607
  },
1599
1608
  "actionTitle": {
1600
1609
  "type": "string",
1601
1610
  "required": true,
1602
- "description": null
1611
+ "description": "Título exibido quando o painel de ações está ativo (com imagem carregada)."
1603
1612
  },
1604
1613
  "subtitle": {
1605
1614
  "type": "string",
1606
1615
  "required": true,
1607
- "description": null
1616
+ "description": "Subtexto descritivo exibido abaixo do título."
1608
1617
  },
1609
1618
  "aspectRatio": {
1610
1619
  "type": "number",
1611
1620
  "required": true,
1612
- "description": null
1621
+ "description": "Proporção de aspecto da área de recorte (largura / altura)."
1613
1622
  },
1614
1623
  "cropperLabelsConfig": {
1615
1624
  "type": "CropperLabelsConfig",
1616
1625
  "required": false,
1617
- "description": null
1626
+ "description": "Labels dos botões exibidos no diálogo do cropper.\nImportado de `@seniorsistemas/angular-components/profile-picture-picker`."
1618
1627
  },
1619
1628
  "removeButtonLabel": {
1620
1629
  "type": "string",
1621
1630
  "required": false,
1622
- "description": null
1631
+ "description": "Label do botão de remover a imagem atual."
1623
1632
  },
1624
1633
  "changeButtonLabel": {
1625
1634
  "type": "string",
1626
1635
  "required": false,
1627
- "description": null
1636
+ "description": "Label do botão de alterar a imagem atual."
1628
1637
  },
1629
1638
  "confirmationTexts": {
1630
1639
  "type": "ConfirmationTexts",
1631
1640
  "required": false,
1632
- "description": null
1641
+ "description": "Textos de confirmação exibidos no diálogo de remoção da imagem."
1633
1642
  },
1634
1643
  "maxFileSize": {
1635
1644
  "type": "number",
1636
1645
  "required": false,
1637
- "description": null
1646
+ "description": "Tamanho máximo do arquivo aceito em bytes."
1638
1647
  },
1639
1648
  "accept": {
1640
1649
  "type": "string",
1641
1650
  "required": false,
1642
- "description": null
1651
+ "description": "Tipos MIME aceitos."
1643
1652
  },
1644
1653
  "supportedExtensions": {
1645
1654
  "type": "string[]",
1646
1655
  "required": false,
1647
- "description": null
1656
+ "description": "Extensões de arquivo aceitas (com ponto)."
1648
1657
  },
1649
1658
  "onChangeImage": {
1650
1659
  "type": "(event: string | ProfilePicturePickerData) => void",
1651
1660
  "required": false,
1652
- "description": null
1661
+ "description": "Callback chamado quando a imagem é alterada após o recorte.\nRecebe a imagem em base64 ou objeto `ProfilePicturePickerData`."
1653
1662
  },
1654
1663
  "onRemovedImage": {
1655
1664
  "type": "() => void",
1656
1665
  "required": false,
1657
- "description": null
1666
+ "description": "Callback chamado quando a imagem é removida pelo usuário."
1658
1667
  },
1659
1668
  "onInvalidFile": {
1660
1669
  "type": "(event: FileValidationErrors) => void",
1661
1670
  "required": false,
1662
- "description": null
1671
+ "description": "Callback chamado quando o arquivo selecionado não passa na validação.\nRecebe os erros de validação ocorridos (ex: tamanho, extensão)."
1663
1672
  }
1664
1673
  }
1665
1674
  },
1666
1675
  "radioButton": {
1667
1676
  "interface": "RadioButtonFieldConfig",
1668
1677
  "sourceFile": "radio-button-field.ts",
1669
- "description": null,
1678
+ "description": "Configuração para campo de seleção única com radio buttons.\n\nExibe um grupo de radio buttons onde o usuário pode selecionar exatamente uma opção.\nA lista de opções é definida estaticamente via `options`.\n\nUse quando o número de opções é pequeno (até ~5 itens) e todas devem estar visíveis.\nPara listas longas, prefira `type: 'enum'` com dropdown.",
1670
1679
  "ownProperties": {
1671
1680
  "type": {
1672
1681
  "type": "'radioButton'",
1673
1682
  "required": true,
1674
- "description": null
1683
+ "description": "Tipo do campo: sempre `'radioButton'`."
1675
1684
  },
1676
1685
  "verticalAlignment": {
1677
1686
  "type": "boolean",
1678
1687
  "required": false,
1679
- "description": null
1688
+ "description": "Quando `true`, os radio buttons são exibidos verticalmente (empilhados).\nPor padrão, são exibidos horizontalmente."
1680
1689
  },
1681
1690
  "clearLabel": {
1682
1691
  "type": "string",
1683
1692
  "required": false,
1684
- "description": null
1693
+ "description": "Label do botão de limpar a seleção. Exibido quando `showClear: true`."
1685
1694
  },
1686
1695
  "options": {
1687
1696
  "type": "RationButtonOption[]",
1688
1697
  "required": true,
1689
- "description": null
1698
+ "description": "Lista de opções disponíveis para seleção. Obrigatório."
1690
1699
  },
1691
1700
  "onBlur": {
1692
1701
  "type": "(event: Event) => void",
1693
1702
  "required": false,
1694
- "description": null
1703
+ "description": "Callback chamado quando o campo perde o foco."
1695
1704
  },
1696
1705
  "onFocus": {
1697
1706
  "type": "(event: FocusEvent) => void",
1698
1707
  "required": false,
1699
- "description": null
1708
+ "description": "Callback chamado quando o campo recebe foco."
1700
1709
  },
1701
1710
  "onClick": {
1702
1711
  "type": "(event: any) => void",
1703
1712
  "required": false,
1704
- "description": null
1713
+ "description": "Callback chamado quando o usuário clica em uma opção."
1705
1714
  },
1706
1715
  "showClear": {
1707
1716
  "type": "boolean",
1708
1717
  "required": false,
1709
- "description": null
1718
+ "description": "Quando `true`, exibe um botão para limpar a seleção atual.\nO texto do botão é definido em `clearLabel`."
1710
1719
  }
1711
1720
  }
1712
1721
  },
1713
1722
  "enum": {
1714
1723
  "interface": "SelectFieldConfig",
1715
1724
  "sourceFile": "select-field.ts",
1716
- "description": null,
1725
+ "description": "Configuração para campo de seleção (dropdown/select).\n\nExibe um dropdown com lista de opções estáticas ou dinâmicas.\nSuporta seleção múltipla, filtro de pesquisa, opções editadas, grupos hierárquicos\ne badges coloridos por opção.\n\nPara listas grandes com busca no servidor, prefira `type: 'autocomplete'` ou `type: 'lookup'`.",
1717
1726
  "ownProperties": {
1718
1727
  "type": {
1719
1728
  "type": "'enum'",
1720
1729
  "required": true,
1721
- "description": null
1730
+ "description": "Tipo do campo: sempre `'enum'`."
1722
1731
  },
1723
1732
  "optionLabel": {
1724
1733
  "type": "string",
1725
1734
  "required": false,
1726
- "description": null
1735
+ "description": "Nome da propriedade do objeto de opção usada como label visível."
1727
1736
  },
1728
1737
  "optionValue": {
1729
1738
  "type": "string",
1730
1739
  "required": false,
1731
- "description": null
1740
+ "description": "Nome da propriedade do objeto de opção usada como valor armazenado."
1732
1741
  },
1733
1742
  "dataKey": {
1734
1743
  "type": "string",
1735
1744
  "required": false,
1736
- "description": null
1745
+ "description": "Chave única identificadora de cada opção. Usada para rastrear seleção corretamente."
1737
1746
  },
1738
1747
  "autoDisplayFirst": {
1739
1748
  "type": "boolean",
1740
1749
  "required": false,
1741
- "description": null
1750
+ "description": "Quando `true`, a primeira opção da lista é selecionada automaticamente."
1742
1751
  },
1743
1752
  "options": {
1744
1753
  "type": "selectOptionFn | SelectOption[]",
1745
1754
  "required": true,
1746
- "description": null
1755
+ "description": "Lista de opções disponíveis. Pode ser um array estático ou uma função que retorna o array.\nCada opção pode ter `label`, `value`, `items` (subgrupo) e `badge`."
1747
1756
  },
1748
1757
  "multiple": {
1749
1758
  "type": "boolean",
1750
1759
  "required": false,
1751
- "description": null
1760
+ "description": "Quando `true`, permite selecionar múltiplas opções.\nO valor do campo será um array."
1752
1761
  },
1753
1762
  "multipleSelectedLabel": {
1754
1763
  "type": "string",
1755
1764
  "required": false,
1756
- "description": null
1765
+ "description": "Label exibida no campo quando múltiplas opções forem selecionadas."
1757
1766
  },
1758
1767
  "onClick": {
1759
1768
  "type": "(event: any) => void",
1760
1769
  "required": false,
1761
- "description": null
1770
+ "description": "Callback chamado quando o usuário clica no dropdown."
1762
1771
  },
1763
1772
  "onChange": {
1764
1773
  "type": "(event: any) => void",
1765
1774
  "required": false,
1766
- "description": null
1775
+ "description": "Callback chamado quando o valor selecionado muda."
1767
1776
  },
1768
1777
  "emptyMessage": {
1769
1778
  "type": "string",
1770
1779
  "required": false,
1771
- "description": null
1780
+ "description": "Mensagem exibida quando a lista está vazia ou a pesquisa não retorna resultados."
1772
1781
  },
1773
1782
  "editable": {
1774
1783
  "type": "boolean",
1775
1784
  "required": false,
1776
- "description": null
1785
+ "description": "Quando `true`, o campo se torna um combobox editável, permitindo digitar um valor livre\nalém das opções da lista."
1777
1786
  },
1778
1787
  "filter": {
1779
1788
  "type": "boolean",
1780
1789
  "required": false,
1781
- "description": null
1790
+ "description": "Quando `true`, exibe um campo de pesquisa interno no dropdown para filtrar as opções."
1782
1791
  },
1783
1792
  "group": {
1784
1793
  "type": "boolean",
1785
1794
  "required": false,
1786
- "description": null
1795
+ "description": "Quando `true`, agrupa as opções por categoria usando a propriedade `items` de cada opção."
1787
1796
  },
1788
1797
  "showClear": {
1789
1798
  "type": "boolean",
1790
1799
  "required": false,
1791
- "description": null
1800
+ "description": "Quando `true`, exibe um botão de limpar a seleção (X) no campo."
1792
1801
  }
1793
1802
  }
1794
1803
  },
1795
1804
  "slider": {
1796
1805
  "interface": "SliderFieldConfig",
1797
1806
  "sourceFile": "slider-field.ts",
1798
- "description": null,
1807
+ "description": "Configuração para campo de controle deslizante (slider).\n\nExibe um slider interativo para seleção de valor numérico dentro de um intervalo.\nSuporta modo de intervalo (range) com dois pontos de seleção, orientação\nhorizontal/vertical, step configurado e exibição de prefixo/sufixo.",
1799
1808
  "ownProperties": {
1800
1809
  "type": {
1801
1810
  "type": "'slider'",
1802
1811
  "required": true,
1803
- "description": null
1812
+ "description": "Tipo do campo: sempre `'slider'`."
1804
1813
  },
1805
1814
  "onChange": {
1806
1815
  "type": "(event: any) => void",
1807
1816
  "required": false,
1808
- "description": null
1817
+ "description": "Callback chamado enquanto o usuário arrastar o slider (alteração contínua)."
1809
1818
  },
1810
1819
  "onSlideEnd": {
1811
1820
  "type": "(event: any) => void",
1812
1821
  "required": false,
1813
- "description": null
1822
+ "description": "Callback chamado quando o usuário solta o slider (fim do arraste)."
1814
1823
  },
1815
1824
  "range": {
1816
1825
  "type": "boolean",
1817
1826
  "required": false,
1818
- "description": null
1827
+ "description": "Quando `true`, exibe dois pontos de seleção para definir um intervalo (min-max).\nO valor do campo será um array `[min, max]` em vez de um número único."
1819
1828
  },
1820
1829
  "min": {
1821
1830
  "type": "number",
1822
1831
  "required": false,
1823
- "description": null
1832
+ "description": "Valor mínimo do slider."
1824
1833
  },
1825
1834
  "max": {
1826
1835
  "type": "number",
1827
1836
  "required": false,
1828
- "description": null
1837
+ "description": "Valor máximo do slider."
1829
1838
  },
1830
1839
  "step": {
1831
1840
  "type": "number",
1832
1841
  "required": false,
1833
- "description": null
1842
+ "description": "Incremento de cada passo ao mover o slider."
1834
1843
  },
1835
1844
  "orientation": {
1836
1845
  "type": "'horizontal' | 'vertical'",
1837
1846
  "required": true,
1838
- "description": "this property exist on primeng slider, currently not exist in s-slider, when it will be added, this property will be used"
1847
+ "description": "Orientação do slider.\n`'horizontal'` slider na horizontal (padrão).\n`'vertical'` slider na vertical."
1839
1848
  },
1840
1849
  "disabled": {
1841
1850
  "type": "boolean",
1842
1851
  "required": false,
1843
- "description": null
1852
+ "description": "Quando `true`, o slider fica desabilitado (não interativo e sem alteração de valor)."
1844
1853
  },
1845
1854
  "prefix": {
1846
1855
  "type": "string",
1847
1856
  "required": false,
1848
- "description": null
1857
+ "description": "Texto exibido antes do valor do slider (ex: `'R$'`, `'>'`)."
1849
1858
  },
1850
1859
  "suffix": {
1851
1860
  "type": "string",
1852
1861
  "required": false,
1853
- "description": null
1862
+ "description": "Texto exibido após o valor do slider (ex: `'km'`, `'%'`)."
1854
1863
  },
1855
1864
  "rangeSeparator": {
1856
1865
  "type": "string",
1857
1866
  "required": false,
1858
- "description": null
1867
+ "description": "Texto exibido entre os dois valores quando `range: true`."
1859
1868
  },
1860
1869
  "defaultValue": {
1861
1870
  "type": "any",
1862
1871
  "required": false,
1863
- "description": null
1872
+ "description": "Valor inicial do slider ao renderizar o formulário.\nPara modo range, passe um array `[min, max]`."
1864
1873
  }
1865
1874
  }
1866
1875
  },
1867
1876
  "starRating": {
1868
1877
  "interface": "StarRatingFieldConfig",
1869
1878
  "sourceFile": "star-rating-field.ts",
1870
- "description": null,
1879
+ "description": "Configuração para campo de avaliação com estrelas.\n\nRenderiza um componente de rating visual com estrelas clicáveis.\nO valor do campo é um número inteiro correspondente à estrela selecionada.",
1871
1880
  "ownProperties": {
1872
1881
  "type": {
1873
1882
  "type": "'starRating'",
1874
1883
  "required": true,
1875
- "description": null
1884
+ "description": "Tipo do campo: sempre `'starRating'`."
1876
1885
  },
1877
1886
  "starRange": {
1878
1887
  "type": "number",
1879
1888
  "required": true,
1880
- "description": null
1889
+ "description": "Número total de estrelas exibidas."
1881
1890
  },
1882
1891
  "disabled": {
1883
1892
  "type": "boolean | booleanFn",
1884
1893
  "required": true,
1885
- "description": null
1894
+ "description": "Quando `true` ou função que retorna `true`, o componente fica desabilitado (somente leitura).\nUse função para controle dinâmico baseado no estado do formulário."
1886
1895
  },
1887
1896
  "justifyContent": {
1888
1897
  "type": "JustifyTypes",
1889
1898
  "required": false,
1890
- "description": null
1899
+ "description": "Alinhamento horizontal das estrelas dentro da célula do formulário.\nImportado de `@seniorsistemas/angular-components/star-rating`."
1891
1900
  },
1892
1901
  "valueChange": {
1893
1902
  "type": "(star: number) => any",
1894
1903
  "required": false,
1895
- "description": null
1904
+ "description": "Callback chamado quando a estrela selecionada muda.\nRecebe o valor numérico da estrela clicada."
1896
1905
  }
1897
1906
  }
1898
1907
  },
1899
1908
  "textArea": {
1900
1909
  "interface": "TextAreaFieldConfig",
1901
1910
  "sourceFile": "text-area-field.ts",
1902
- "description": null,
1911
+ "description": "Configuração para campo de área de texto multilinha.\n\nExibe um textarea com suporte a reconhecimento de voz, controle de linhas/colunas,\nmodo somente-leitura e limite de caracteres.\n\nPara funcionalidades de geração de texto por IA, use `type: 'contentGenerator'`.",
1903
1912
  "ownProperties": {
1904
1913
  "type": {
1905
1914
  "type": "'textArea'",
1906
1915
  "required": true,
1907
- "description": null
1916
+ "description": "Tipo do campo: sempre `'textArea'`."
1908
1917
  },
1909
1918
  "cols": {
1910
1919
  "type": "number",
1911
1920
  "required": false,
1912
- "description": null
1921
+ "description": "Número de colunas de texto do textarea (largura)."
1913
1922
  },
1914
1923
  "rows": {
1915
1924
  "type": "number",
1916
1925
  "required": false,
1917
- "description": null
1926
+ "description": "Número de linhas visíveis do textarea (altura inicial)."
1918
1927
  },
1919
1928
  "keyFilter": {
1920
1929
  "type": "any",
1921
1930
  "required": false,
1922
- "description": null
1931
+ "description": "Filtro de teclas aceitas no campo. Aceita regex ou string."
1923
1932
  },
1924
1933
  "style": {
1925
1934
  "type": "Partial<CSSStyleDeclaration>",
1926
1935
  "required": false,
1927
- "description": null
1936
+ "description": "Estilos CSS inline aplicados diretamente no elemento textarea."
1928
1937
  },
1929
1938
  "readonly": {
1930
1939
  "type": "() => boolean",
1931
1940
  "required": false,
1932
- "description": null
1941
+ "description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura."
1933
1942
  },
1934
1943
  "speechRecognition": {
1935
1944
  "type": "boolean",
1936
1945
  "required": false,
1937
- "description": null
1946
+ "description": "Quando `true`, exibe o botão de reconhecimento de voz (speech-to-text)."
1938
1947
  },
1939
1948
  "keepContext": {
1940
1949
  "type": "boolean",
1941
- "required": true,
1942
- "description": null
1950
+ "required": false,
1951
+ "description": "Quando `true`, mantém o contexto das interações anteriores de voz/IA."
1943
1952
  },
1944
1953
  "speechRecognitionPlaceholder": {
1945
1954
  "type": "string",
1946
1955
  "required": false,
1947
- "description": null
1956
+ "description": "Texto de placeholder exibido na área de reconhecimento de voz enquanto o microfone está ativo."
1948
1957
  },
1949
1958
  "maxLength": {
1950
1959
  "type": "number",
1951
1960
  "required": false,
1952
- "description": null
1961
+ "description": "Número máximo de caracteres permitidos no campo."
1953
1962
  }
1954
1963
  }
1955
1964
  },
1956
1965
  "string": {
1957
1966
  "interface": "TextFieldConfig",
1958
1967
  "sourceFile": "text-field.ts",
1959
- "description": null,
1968
+ "description": "Configuração para campos de texto simples.\n\nUse `type: 'string'` para texto livre geral.\nUse `type: 'binary'` para campos que armazenam dados binários como texto (ex: base64).\n\nSuporta máscaras de entrada, addons laterais, filtro de caracteres e eventos do input.",
1960
1969
  "ownProperties": {
1961
1970
  "type": {
1962
1971
  "type": "'string' | 'binary'",
1963
1972
  "required": true,
1964
- "description": null
1973
+ "description": "`'string'` — campo de texto livre padrão.\n`'binary'` — campo de texto tratado como dado binário (ex: base64 encoding)."
1965
1974
  },
1966
1975
  "mask": {
1967
1976
  "type": "stringFn | string",
1968
1977
  "required": false,
1969
- "description": null
1978
+ "description": "Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.\nExemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).\nQuando definida, `leftAddon` e `rightAddon` não funcionam."
1970
1979
  },
1971
1980
  "readonly": {
1972
1981
  "type": "() => boolean",
1973
1982
  "required": false,
1974
- "description": null
1983
+ "description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura.\nUse uma função para controle dinâmico baseado no estado do formulário."
1975
1984
  },
1976
1985
  "characterPattern": {
1977
1986
  "type": "stringFn | string",
1978
1987
  "required": false,
1979
- "description": null
1988
+ "description": "Padrão regex para filtrar os caracteres permitidos na digitação.\nPode ser uma string de pattern ou uma função que retorna o padrão.\nExemplo: `'[a-zA-Z]'` permite apenas letras."
1980
1989
  },
1981
1990
  "unmask": {
1982
1991
  "type": "booleanFn | boolean",
1983
1992
  "required": false,
1984
- "description": null
1993
+ "description": "Quando `true`, remove os caracteres da máscara do valor enviado ao modelo.\nExemplo: com máscara CPF `'999.999.999-99'`, o valor armazenado será apenas os dígitos."
1985
1994
  },
1986
1995
  "inputType": {
1987
1996
  "type": "string",
1988
1997
  "required": false,
1989
- "description": null
1998
+ "description": "Tipo HTML do input (ex: `'text'`, `'email'`, `'tel'`, `'url'`).\nAfeta o teclado exibido em dispositivos móveis e a validação nativa do browser."
1990
1999
  },
1991
2000
  "keyFilter": {
1992
2001
  "type": "any",
1993
2002
  "required": false,
1994
- "description": null
2003
+ "description": "Filtro de teclas aceitas no campo. Aceita uma expressão regular ou string.\nExemplo: `/[0-9]/` para aceitar apenas números."
1995
2004
  },
1996
2005
  "leftAddon": {
1997
2006
  "type": "AddonConfig",
1998
2007
  "required": false,
1999
- "description": "only works if 'mask' is disabled!"
2008
+ "description": "Addon exibido à esquerda do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
2000
2009
  },
2001
2010
  "rightAddon": {
2002
2011
  "type": "AddonConfig",
2003
2012
  "required": false,
2004
- "description": "only works if 'mask' is disabled!"
2013
+ "description": "Addon exibido à direita do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
2005
2014
  },
2006
2015
  "maxLength": {
2007
2016
  "type": "string | number",
2008
2017
  "required": false,
2009
- "description": null
2018
+ "description": "Número máximo de caracteres permitidos no campo."
2010
2019
  },
2011
2020
  "browserAutocomplete": {
2012
2021
  "type": "boolean",
2013
2022
  "required": false,
2014
- "description": null
2023
+ "description": "Controla o autocomplete nativo do browser.\n`true` ativa o autocomplete; `false` desativa."
2015
2024
  },
2016
2025
  "style": {
2017
2026
  "type": "{\n [klass: string]: any;\n}",
2018
2027
  "required": false,
2019
- "description": null
2028
+ "description": "Estilos CSS inline aplicados diretamente no elemento de input."
2020
2029
  },
2021
2030
  "onBlur": {
2022
2031
  "type": "(event: Event) => void",
2023
2032
  "required": false,
2024
- "description": null
2033
+ "description": "Callback chamado quando o campo perde o foco."
2025
2034
  },
2026
2035
  "onFocus": {
2027
2036
  "type": "(event: FocusEvent) => void",
2028
2037
  "required": false,
2029
- "description": null
2038
+ "description": "Callback chamado quando o campo recebe foco."
2030
2039
  },
2031
2040
  "onComplete": {
2032
2041
  "type": "(event: FocusEvent) => void",
2033
2042
  "required": false,
2034
- "description": null
2043
+ "description": "Callback chamado quando a máscara é completamente preenchida."
2035
2044
  },
2036
2045
  "onInput": {
2037
2046
  "type": "(event: FocusEvent) => void",
2038
2047
  "required": false,
2039
- "description": null
2048
+ "description": "Callback chamado a cada alteração no valor do input."
2040
2049
  }
2041
2050
  }
2042
2051
  },
2043
2052
  "binary": {
2044
2053
  "interface": "TextFieldConfig",
2045
2054
  "sourceFile": "text-field.ts",
2046
- "description": null,
2055
+ "description": "Configuração para campos de texto simples.\n\nUse `type: 'string'` para texto livre geral.\nUse `type: 'binary'` para campos que armazenam dados binários como texto (ex: base64).\n\nSuporta máscaras de entrada, addons laterais, filtro de caracteres e eventos do input.",
2047
2056
  "ownProperties": {
2048
2057
  "type": {
2049
2058
  "type": "'string' | 'binary'",
2050
2059
  "required": true,
2051
- "description": null
2060
+ "description": "`'string'` — campo de texto livre padrão.\n`'binary'` — campo de texto tratado como dado binário (ex: base64 encoding)."
2052
2061
  },
2053
2062
  "mask": {
2054
2063
  "type": "stringFn | string",
2055
2064
  "required": false,
2056
- "description": null
2065
+ "description": "Máscara de entrada aplicada ao campo. Pode ser uma string fixa ou uma função que retorna a máscara dinamicamente.\nExemplo de máscara: `'999.999.999-99'` (CPF), `'(99) 99999-9999'` (telefone).\nQuando definida, `leftAddon` e `rightAddon` não funcionam."
2057
2066
  },
2058
2067
  "readonly": {
2059
2068
  "type": "() => boolean",
2060
2069
  "required": false,
2061
- "description": null
2070
+ "description": "Função que retorna `true` quando o campo deve estar em modo somente-leitura.\nUse uma função para controle dinâmico baseado no estado do formulário."
2062
2071
  },
2063
2072
  "characterPattern": {
2064
2073
  "type": "stringFn | string",
2065
2074
  "required": false,
2066
- "description": null
2075
+ "description": "Padrão regex para filtrar os caracteres permitidos na digitação.\nPode ser uma string de pattern ou uma função que retorna o padrão.\nExemplo: `'[a-zA-Z]'` permite apenas letras."
2067
2076
  },
2068
2077
  "unmask": {
2069
2078
  "type": "booleanFn | boolean",
2070
2079
  "required": false,
2071
- "description": null
2080
+ "description": "Quando `true`, remove os caracteres da máscara do valor enviado ao modelo.\nExemplo: com máscara CPF `'999.999.999-99'`, o valor armazenado será apenas os dígitos."
2072
2081
  },
2073
2082
  "inputType": {
2074
2083
  "type": "string",
2075
2084
  "required": false,
2076
- "description": null
2085
+ "description": "Tipo HTML do input (ex: `'text'`, `'email'`, `'tel'`, `'url'`).\nAfeta o teclado exibido em dispositivos móveis e a validação nativa do browser."
2077
2086
  },
2078
2087
  "keyFilter": {
2079
2088
  "type": "any",
2080
2089
  "required": false,
2081
- "description": null
2090
+ "description": "Filtro de teclas aceitas no campo. Aceita uma expressão regular ou string.\nExemplo: `/[0-9]/` para aceitar apenas números."
2082
2091
  },
2083
2092
  "leftAddon": {
2084
2093
  "type": "AddonConfig",
2085
2094
  "required": false,
2086
- "description": "only works if 'mask' is disabled!"
2095
+ "description": "Addon exibido à esquerda do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
2087
2096
  },
2088
2097
  "rightAddon": {
2089
2098
  "type": "AddonConfig",
2090
2099
  "required": false,
2091
- "description": "only works if 'mask' is disabled!"
2100
+ "description": "Addon exibido à direita do input (ex: ícone, texto, botão).\n**Não funciona quando `mask` está definida.**"
2092
2101
  },
2093
2102
  "maxLength": {
2094
2103
  "type": "string | number",
2095
2104
  "required": false,
2096
- "description": null
2105
+ "description": "Número máximo de caracteres permitidos no campo."
2097
2106
  },
2098
2107
  "browserAutocomplete": {
2099
2108
  "type": "boolean",
2100
2109
  "required": false,
2101
- "description": null
2110
+ "description": "Controla o autocomplete nativo do browser.\n`true` ativa o autocomplete; `false` desativa."
2102
2111
  },
2103
2112
  "style": {
2104
2113
  "type": "{\n [klass: string]: any;\n}",
2105
2114
  "required": false,
2106
- "description": null
2115
+ "description": "Estilos CSS inline aplicados diretamente no elemento de input."
2107
2116
  },
2108
2117
  "onBlur": {
2109
2118
  "type": "(event: Event) => void",
2110
2119
  "required": false,
2111
- "description": null
2120
+ "description": "Callback chamado quando o campo perde o foco."
2112
2121
  },
2113
2122
  "onFocus": {
2114
2123
  "type": "(event: FocusEvent) => void",
2115
2124
  "required": false,
2116
- "description": null
2125
+ "description": "Callback chamado quando o campo recebe foco."
2117
2126
  },
2118
2127
  "onComplete": {
2119
2128
  "type": "(event: FocusEvent) => void",
2120
2129
  "required": false,
2121
- "description": null
2130
+ "description": "Callback chamado quando a máscara é completamente preenchida."
2122
2131
  },
2123
2132
  "onInput": {
2124
2133
  "type": "(event: FocusEvent) => void",
2125
2134
  "required": false,
2126
- "description": null
2135
+ "description": "Callback chamado a cada alteração no valor do input."
2127
2136
  }
2128
2137
  }
2129
2138
  }
@@ -2132,44 +2141,44 @@
2132
2141
  "fieldset": {
2133
2142
  "interface": "FieldsetConfig",
2134
2143
  "sourceFile": "fieldset.ts",
2135
- "description": null,
2144
+ "description": "Configuração para estrutura do tipo fieldset (grupo recolhível).\n\nAgrupa campos dentro de um painel que pode ser expandido ou recolhido pelo usuário.\nÚtil para separar logicamente seções opcionais ou detalhes avançados do formulário.",
2136
2145
  "ownProperties": {
2137
2146
  "type": {
2138
2147
  "type": "'fieldset'",
2139
2148
  "required": true,
2140
- "description": null
2149
+ "description": "Tipo da estrutura: sempre `'fieldset'`."
2141
2150
  },
2142
2151
  "beforeToggle": {
2143
2152
  "type": "(event: any) => void",
2144
2153
  "required": false,
2145
- "description": null
2154
+ "description": "Callback chamado antes de o painel ser expandido ou recolhido.\nPode ser usado para cancelar a ação ou realizar operações prévias."
2146
2155
  },
2147
2156
  "afterToggle": {
2148
2157
  "type": "(event: any) => void",
2149
2158
  "required": false,
2150
- "description": null
2159
+ "description": "Callback chamado após o painel ser expandido ou recolhido."
2151
2160
  }
2152
2161
  }
2153
2162
  },
2154
2163
  "row": {
2155
2164
  "interface": "RowConfig",
2156
2165
  "sourceFile": "row.ts",
2157
- "description": null,
2166
+ "description": "Configuração para estrutura do tipo linha (row).\n\nOrganiza campos lado a lado em uma linha horizontal usando grid layout.\nCada campo dentro de um `row` pode receber propriedades adicionais de `RowAdditionalFields`,\ncomo `size`, `visible`, `errorMessages`, `footer` e `bottomTemplate`.",
2158
2167
  "ownProperties": {
2159
2168
  "type": {
2160
2169
  "type": "'row'",
2161
2170
  "required": true,
2162
- "description": null
2171
+ "description": "Tipo da estrutura: sempre `'row'`."
2163
2172
  },
2164
2173
  "fields": {
2165
2174
  "type": "RowType[]",
2166
2175
  "required": true,
2167
- "description": null
2176
+ "description": "Lista de campos e sub-estruturas dispostos em linha.\nCada item pode ter propriedades adicionais de `RowAdditionalFields` (size, visible, footer, etc.)."
2168
2177
  },
2169
2178
  "visible": {
2170
2179
  "type": "booleanFn | boolean",
2171
2180
  "required": false,
2172
- "description": null
2181
+ "description": "Controla a visibilidade da linha inteira.\nPode ser um booleano estático ou função reativa."
2173
2182
  }
2174
2183
  },
2175
2184
  "rowAdditionalFields": {
@@ -2178,27 +2187,27 @@
2178
2187
  "size": {
2179
2188
  "type": "FieldSizeConfig",
2180
2189
  "required": false,
2181
- "description": null
2190
+ "description": "Tamanho (largura) deste campo dentro da linha.\nPermite definir colunas responsivas (ex: metade da linha, terço, etc.)\nusando `FieldSizeConfig` com breakpoints."
2182
2191
  },
2183
2192
  "visible": {
2184
2193
  "type": "() => boolean",
2185
2194
  "required": false,
2186
- "description": null
2195
+ "description": "Função que retorna `true` quando o campo deve ser exibido.\nPermite ocultar/exibir o campo dinamicamente sem removê-lo da configuração."
2187
2196
  },
2188
2197
  "errorMessages": {
2189
2198
  "type": "() => {} | {}",
2190
2199
  "required": false,
2191
- "description": null
2200
+ "description": "Função que retorna um mapa de mensagens de erro customizadas para o campo.\nA chave é o nome do validador (ex: `'required'`, `'minlength'`) e o valor é a mensagem."
2192
2201
  },
2193
2202
  "bottomTemplate": {
2194
2203
  "type": "TemplateRef<Element>",
2195
2204
  "required": false,
2196
- "description": null
2205
+ "description": "Template Angular (`ng-template`) renderizado abaixo do campo.\nUse para adicionar conteúdo customizado abaixo do input, como dicas ou informações extras."
2197
2206
  },
2198
2207
  "footer": {
2199
2208
  "type": "{\n help?: {\n text: string;\n visible?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => boolean;\n };\n link?: {\n label: string;\n onClick?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => void;\n visible?: (options: {\n abstractControl: AbstractControl;\n formField: DynamicType;\n }) => boolean;\n };\n}",
2200
2209
  "required": false,
2201
- "description": null
2210
+ "description": "Rodapé exibido abaixo do campo com texto de ajuda e/ou link de ação.\nPermite adicionar orientações contextuais ou atalhos diretamente associados ao campo."
2202
2211
  }
2203
2212
  }
2204
2213
  }
@@ -2206,12 +2215,12 @@
2206
2215
  "section": {
2207
2216
  "interface": "SectionConfig",
2208
2217
  "sourceFile": "section.ts",
2209
- "description": null,
2218
+ "description": "Configuração para estrutura do tipo seção.\n\nÉ o container principal do DynamicForm, agrupa campos e outras estruturas.\nSuporta layout flexbox para controlar disposição dos filhos com `isFlex`,\n`justifyContent` e `alignItems`.",
2210
2219
  "ownProperties": {
2211
2220
  "type": {
2212
2221
  "type": "'section'",
2213
2222
  "required": true,
2214
- "description": null
2223
+ "description": "Tipo da estrutura: sempre `'section'`."
2215
2224
  },
2216
2225
  "isFlex": {
2217
2226
  "type": "boolean",
@@ -2235,32 +2244,32 @@
2235
2244
  "editor": {
2236
2245
  "interface": "EditorFieldConfig",
2237
2246
  "sourceFile": "optional-fields/editor/editor-field.ts",
2238
- "description": null,
2247
+ "description": "Configuração fornecida ao instanciar um campo do tipo 'editor'.\nUtilizado para renderizar um editor de rich text (wysiwyg).",
2239
2248
  "ownProperties": {
2240
2249
  "type": {
2241
2250
  "type": "'editor'",
2242
2251
  "required": true,
2243
- "description": null
2252
+ "description": "Define o tipo único deste campo opcional."
2244
2253
  },
2245
2254
  "formats": {
2246
2255
  "type": "string[]",
2247
2256
  "required": false,
2248
- "description": null
2257
+ "description": "Formatos suportados pelo editor (ex: 'bold', 'italic')."
2249
2258
  },
2250
2259
  "readonly": {
2251
2260
  "type": "boolean",
2252
2261
  "required": false,
2253
- "description": null
2262
+ "description": "Define se o editor estará apenas em modo leitura."
2254
2263
  },
2255
2264
  "modules": {
2256
2265
  "type": "any",
2257
2266
  "required": false,
2258
- "description": null
2267
+ "description": "Módulos adicionais do QuillJS a serem ativados no editor."
2259
2268
  },
2260
2269
  "style": {
2261
2270
  "type": "{\n [klass: string]: unknown;\n}",
2262
2271
  "required": false,
2263
- "description": null
2272
+ "description": "Estilos customizados aplicados diretamente no container do editor."
2264
2273
  }
2265
2274
  },
2266
2275
  "provider": "provideEditorField()",