@praxisui/dynamic-form 1.0.0-beta.61 → 1.0.0-beta.62

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 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
- ## 🔰 Exemplos / Quickstart
47
+ ## Documentation
48
48
 
49
- Para ver esta biblioteca em funcionamento em uma aplicação completa, utilize o projeto de exemplo (Quickstart):
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
- - Repositório: https://github.com/codexrodrigues/praxis-ui-quickstart
52
- - O Quickstart demonstra a integração das bibliotecas `@praxisui/*` em um app Angular, incluindo instalação, configuração e uso em telas reais.
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.