@praxisui/dynamic-form 1.0.0-beta.61 → 1.0.0-beta.63
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 +54 -5
- package/fesm2022/praxisui-dynamic-form.mjs +1455 -321
- package/fesm2022/praxisui-dynamic-form.mjs.map +1 -1
- package/index.d.ts +165 -5
- package/package.json +11 -10
package/README.md
CHANGED
|
@@ -44,12 +44,17 @@ last_updated: "2026-03-12"
|
|
|
44
44
|
|
|
45
45
|
> Standalone dynamic form component with schema-driven UI, native field cascades, settings integration, and a built-in configuration editor.
|
|
46
46
|
|
|
47
|
-
##
|
|
47
|
+
## Documentation
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
- Official documentation: https://praxisui.dev
|
|
50
|
+
- Quickstart reference app: https://github.com/codexrodrigues/praxis-ui-quickstart
|
|
51
|
+
- Recommended for: schema-driven screens that need runtime forms, settings integration and contract-first metadata
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
## When to use
|
|
54
|
+
|
|
55
|
+
- Build forms from metadata instead of hand-coding each screen
|
|
56
|
+
- Keep runtime editing and layout governance inside the host application
|
|
57
|
+
- Integrate with other `@praxisui/*` packages through shared contracts and settings flows
|
|
53
58
|
|
|
54
59
|
## Install
|
|
55
60
|
|
|
@@ -291,6 +296,7 @@ Notas:
|
|
|
291
296
|
- A surface editorial ja suporta widgets reais compartilhados para hero, rich text, legal notice, user context summary e footer links.
|
|
292
297
|
- `formBlocksBeforeActions` renderiza depois das secoes e antes da area principal de acoes, sendo o slot recomendado para blocos contextuais como `form:user-context-summary`.
|
|
293
298
|
- `formBlocksAfter` permanece como slot de fechamento e continua renderizando depois do formulario inteiro, incluindo os CTAs.
|
|
299
|
+
- secoes agora suportam `appearance` (`card|plain|step`) e `stepLabel` para cabecalhos mais estruturados.
|
|
294
300
|
|
|
295
301
|
See public exports: `projects/praxis-dynamic-form/src/public-api.ts`.
|
|
296
302
|
|
|
@@ -316,7 +322,7 @@ Os paths micro são normalizados para `fieldMetadata[].<prop>` para garantir que
|
|
|
316
322
|
- Semântica de limpeza: valores `null` em `properties/propertiesWhenFalse` removem o override e retornam ao valor base do layout; ausência mantém o valor base.
|
|
317
323
|
- Whitelist por tipo (somente propriedades a seguir são aplicadas; demais são descartadas e logadas em dev):
|
|
318
324
|
- `field`: `visible`, `required`, `readonly`, `disabled`, `className`, `style`, `label`, `description`, `placeholder`, `hint`, `tooltip`, `prefixIcon`, `suffixIcon`, `prefixText`, `suffixText`, `defaultValue`, `options` (array `{label,value,disabled?}`), `appearance` (`fill|outline`), `color` (`primary|accent|warn`), `floatLabel` (`auto|always|never`), `hintPosition` (`start|end`), `validators` (primitivos por chave).
|
|
319
|
-
- `section`: `visible`, `title`, `description`, `icon`, `className`, `style`, `collapsible`, `collapsed`, `headerTooltip`, `headerAlign` (`start|center`), gaps (`gapBottom`, `titleGapBottom`, `descriptionGapBottom`), cores/tipografia (`titleColor`, `descriptionColor`, `titleStyle`, `descriptionStyle`).
|
|
325
|
+
- `section`: `visible`, `title`, `description`, `icon`, `className`, `style`, `collapsible`, `collapsed`, `headerTooltip`, `headerAlign` (`start|center`), `appearance` (`card|plain|step`), `stepLabel`, gaps (`gapBottom`, `titleGapBottom`, `descriptionGapBottom`), cores/tipografia (`titleColor`, `descriptionColor`, `titleStyle`, `descriptionStyle`).
|
|
320
326
|
- `action`: `visible`, `disabled`, `loading`, `label`, `icon`, `tooltip`, `color` (`primary|accent|warn|basic`), `variant` (`raised|stroked|flat|fab`), `size` (`small|medium|large`), `className`, `style`.
|
|
321
327
|
- `row`: `visible`, `gap`, `rowGap`, `className`, `style`.
|
|
322
328
|
- `column`: `visible`, `span`, `offset`, `order`, `hidden`, `align` (`start|center|end|stretch`), `padding`, `className`, `style`.
|
|
@@ -441,6 +447,49 @@ Ou por seção, via metadado `titleGapBottom` (em pixels), que aplica inline som
|
|
|
441
447
|
- `@praxisui/dynamic-form` `0.0.x` → Angular `20.x`
|
|
442
448
|
- Module format: `ESM2022`
|
|
443
449
|
|
|
450
|
+
## Crash Recovery Checkpoint
|
|
451
|
+
|
|
452
|
+
Estado registrado em `2026-03-15` para retomada rapida do trabalho de E2E do editor `/form-config-editor`.
|
|
453
|
+
|
|
454
|
+
Suites Playwright ja adicionadas e validadas:
|
|
455
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-smoke.playwright.spec.ts`
|
|
456
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-layout.playwright.spec.ts`
|
|
457
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-rules.playwright.spec.ts`
|
|
458
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-cascades.playwright.spec.ts`
|
|
459
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-json.playwright.spec.ts`
|
|
460
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-hooks.playwright.spec.ts`
|
|
461
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-actions.playwright.spec.ts`
|
|
462
|
+
- `projects/praxis-dynamic-form/test-dev/e2e/form-config-editor-actions-custom.playwright.spec.ts`
|
|
463
|
+
|
|
464
|
+
Cobertura ja estabilizada:
|
|
465
|
+
- smoke das tabs principais do editor integrado
|
|
466
|
+
- `Layout`
|
|
467
|
+
- `Regras`
|
|
468
|
+
- `Cascatas`
|
|
469
|
+
- `JSON` com edicao real e bloqueio de payload invalido
|
|
470
|
+
- `Hooks`
|
|
471
|
+
- `Acoes` (`Botoes Padrao` e `Layout`)
|
|
472
|
+
- `Acoes` customizadas profundas (`showAlert` simples e estruturado)
|
|
473
|
+
- `Comportamento`
|
|
474
|
+
- `Mensagens`
|
|
475
|
+
- `Dicas e Tooltips`
|
|
476
|
+
|
|
477
|
+
Ajuste tecnico aplicado durante essa fase:
|
|
478
|
+
- [praxis-dynamic-form-config-editor.ts](/mnt/d/Developer/praxis-plataform/praxis-ui-angular/projects/praxis-dynamic-form/src/lib/config-editor/praxis-dynamic-form-config-editor.ts) agora chama `this.jsonEditor?.updateJsonFromConfig(this.editedConfig)` em `onConfigChange(...)` para manter o editor JSON sincronizado com mudancas vindas de abas como `Hooks`.
|
|
479
|
+
- [actions-editor.component.ts](/mnt/d/Developer/praxis-plataform/praxis-ui-angular/projects/praxis-dynamic-form/src/lib/actions-editor/actions-editor.component.ts) agora mescla catalogo legado + catalogo global do app para o editor de acoes customizadas.
|
|
480
|
+
- [actions-editor.component.ts](/mnt/d/Developer/praxis-plataform/praxis-ui-angular/projects/praxis-dynamic-form/src/lib/actions-editor/actions-editor.component.ts) agora preserva draft local dos campos globais e usa `track` estavel em `actions.custom`.
|
|
481
|
+
|
|
482
|
+
Comando base usado para rerodar suites isoladas:
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
node ./node_modules/playwright/cli.js test --config tools/e2e/playwright/praxis-dynamic-form-config-editor.playwright.config.ts <spec>
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Se houver crash, retomar daqui:
|
|
489
|
+
1. garantir que o app esteja no ar
|
|
490
|
+
2. rerodar a ultima suite alterada
|
|
491
|
+
3. proximo alvo pendente: consolidar a bateria completa ou seguir para outra area residual do editor
|
|
492
|
+
|
|
444
493
|
## License
|
|
445
494
|
|
|
446
495
|
Apache-2.0 – see the `LICENSE` packaged with this library or the repository root.
|