@praxisui/dynamic-fields 1.0.0-beta.30 → 1.0.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -1
- package/fesm2022/praxisui-dynamic-fields.mjs +29619 -3398
- package/fesm2022/praxisui-dynamic-fields.mjs.map +1 -1
- package/index.d.ts +2464 -251
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -33,7 +33,25 @@ npm install @praxisui/dynamic-fields
|
|
|
33
33
|
}
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
Sem essas variáveis, a aparência deriva do tema M3 (tokens `--
|
|
36
|
+
Sem essas variáveis, a aparência deriva do tema M3 (tokens `--md-sys-*`).
|
|
37
|
+
|
|
38
|
+
Tema e escopo (host)
|
|
39
|
+
- A classe de tema é decisão do host (`.dark-theme` ou `.theme-dark`/`.theme-light`); mantenha tokens e componentes no mesmo escopo.
|
|
40
|
+
|
|
41
|
+
### Tokens M3 obrigatórios (host)
|
|
42
|
+
|
|
43
|
+
Para que os componentes reflitam corretamente o tema do app host, garanta no mínimo:
|
|
44
|
+
|
|
45
|
+
- Superfícies: `--md-sys-color-surface`, `--md-sys-color-surface-variant`, `--md-sys-color-surface-container-*`
|
|
46
|
+
- Texto/contorno: `--md-sys-color-on-surface`, `--md-sys-color-on-surface-variant`, `--md-sys-color-outline`, `--md-sys-color-outline-variant`
|
|
47
|
+
- Semânticos: `--md-sys-color-primary`, `--md-sys-color-secondary`, `--md-sys-color-tertiary`, `--md-sys-color-error`
|
|
48
|
+
- Containers: `--md-sys-color-primary-container`, `--md-sys-color-secondary-container`, `--md-sys-color-tertiary-container`, `--md-sys-color-error-container`
|
|
49
|
+
- Elevação: `--md-sys-elevation-level1`–`--md-sys-elevation-level3`
|
|
50
|
+
|
|
51
|
+
Notas:
|
|
52
|
+
- Color pickers agora derivam paletas por padrão de tokens M3. Se quiser cores específicas, use `paletteColors`/`paletteSettings`.
|
|
53
|
+
- A classe de tema é decisão do host (`.dark-theme` ou `.theme-dark`/`.theme-light`); mantenha tokens e componentes no mesmo escopo.
|
|
54
|
+
- Datepicker usa `panelClass="pdx-datepicker-panel"`; personalize o overlay via essa classe no tema do host.
|
|
37
55
|
|
|
38
56
|
Peers (instale no app host):
|
|
39
57
|
- `@angular/core` `^20.1.0`, `@angular/common` `^20.1.0`, `@angular/forms` `^20.1.0`
|
|
@@ -455,3 +473,67 @@ const field: FieldMetadata = {
|
|
|
455
473
|
- Suporta `setInputMetadata` ou signal `metadata` com `.set(...)` para hot updates.
|
|
456
474
|
- Opcional: aceita `[readonlyMode]`, `[disabledMode]`, `[visible]`, `[presentationMode]`.
|
|
457
475
|
- O `controlType` do campo coincide com o `id` do `ComponentDocMeta` (para resolver título/ícone no editor).
|
|
476
|
+
|
|
477
|
+
### 🧼 Botão de limpar (clearButton)
|
|
478
|
+
|
|
479
|
+
Muitos campos suportam um botão de limpar configurável via metadata. Ele aparece como um `mat-icon-button` no suffix do `mat-form-field` e respeita `readonly`, `disabled` e `presentationMode`.
|
|
480
|
+
|
|
481
|
+
Exemplo de uso:
|
|
482
|
+
|
|
483
|
+
```ts
|
|
484
|
+
const field: FieldMetadata = {
|
|
485
|
+
name: 'search',
|
|
486
|
+
label: 'Buscar',
|
|
487
|
+
controlType: FieldControlType.INPUT,
|
|
488
|
+
clearButton: {
|
|
489
|
+
enabled: true,
|
|
490
|
+
icon: 'mi:clear',
|
|
491
|
+
iconColor: 'primary', // ou cor CSS (#496ddb, rgb(73,109,219), red)
|
|
492
|
+
tooltip: 'Limpar',
|
|
493
|
+
ariaLabel: 'Limpar busca',
|
|
494
|
+
showOnlyWhenFilled: true,
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
Observações:
|
|
500
|
+
- `iconColor` aceita tokens de tema (`primary`, `accent`, `warn`) ou cores CSS.
|
|
501
|
+
- Em campos com comportamentos especializados (ex.: currency), o clear também limpa o valor visual.
|
|
502
|
+
- `clearButton` também aceita boolean (`true/false`) por compatibilidade retroativa.
|
|
503
|
+
- No `pdx-color-picker`, o clear é exibido no menu interno, mas aceita `clearButton` como boolean ou objeto (ícone/cor/tooltip).
|
|
504
|
+
|
|
505
|
+
### ⭐ Filter Inline Rating (faixa)
|
|
506
|
+
|
|
507
|
+
Use `controlType: 'filter-rating-inline'` quando o filtro de avaliação precisar trabalhar com intervalo no toolbar.
|
|
508
|
+
|
|
509
|
+
Contrato de valor (payload):
|
|
510
|
+
- `null` => sem filtro aplicado
|
|
511
|
+
- `{ start: number | null, end: number | null }` => faixa de avaliação
|
|
512
|
+
|
|
513
|
+
Exemplo:
|
|
514
|
+
|
|
515
|
+
```ts
|
|
516
|
+
const ratingRangeField: FieldMetadata = {
|
|
517
|
+
name: 'ratingRange',
|
|
518
|
+
label: 'Avaliação',
|
|
519
|
+
controlType: 'filter-rating-inline',
|
|
520
|
+
min: 1,
|
|
521
|
+
max: 5,
|
|
522
|
+
allowHalf: true,
|
|
523
|
+
ratingToneLowColor: '#ef4444',
|
|
524
|
+
ratingToneMidColor: '#f59e0b',
|
|
525
|
+
ratingToneHighColor: '#22a45d',
|
|
526
|
+
ratingBadgeColor: '#f59e0b',
|
|
527
|
+
clearButton: { enabled: true, showOnlyWhenFilled: true },
|
|
528
|
+
};
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
Compatibilidade corporativa:
|
|
532
|
+
- `FieldControlType.RATING` continua sendo valor único (ex.: `4`).
|
|
533
|
+
- A conversão para faixa ocorre apenas com `controlType` explícito de inline rating (`filter-rating-inline` ou aliases inline).
|
|
534
|
+
- Para permitir meia estrela, use `allowHalf: true` (ou `step: 0.5` quando precisar de controle manual).
|
|
535
|
+
- Cores das estrelas no popover podem ser definidas por:
|
|
536
|
+
- `ratingToneLowColor`
|
|
537
|
+
- `ratingToneMidColor`
|
|
538
|
+
- `ratingToneHighColor`
|
|
539
|
+
- `ratingBadgeColor`
|