@praxisui/crud 6.0.0-beta.0 → 7.0.0-beta.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.
- package/README.md +97 -1
- package/drawer-adapter/index.d.ts +2 -0
- package/fesm2022/praxisui-crud.mjs +3163 -70
- package/index.d.ts +273 -15
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ keywords:
|
|
|
35
35
|
- "open mode"
|
|
36
36
|
- "drawer"
|
|
37
37
|
- "modal"
|
|
38
|
-
last_updated: "2026-
|
|
38
|
+
last_updated: "2026-04-10"
|
|
39
39
|
---
|
|
40
40
|
|
|
41
41
|
# @praxisui/crud
|
|
@@ -250,6 +250,102 @@ sequenceDiagram
|
|
|
250
250
|
|
|
251
251
|
- `projects/praxis-crud/docs/host-crud-runtime-and-openmode.md`
|
|
252
252
|
- `projects/praxis-crud/docs/adr/2026-03-drawer-adapter-light-entrypoint.md`
|
|
253
|
+
- `projects/praxis-crud/docs/adr/2026-04-crud-authoring-surface.md`
|
|
254
|
+
|
|
255
|
+
## Status de Authoring Visual
|
|
256
|
+
|
|
257
|
+
O `@praxisui/crud` publica hoje a superficie canonica de runtime do fluxo CRUD:
|
|
258
|
+
|
|
259
|
+
- shell `table + form`
|
|
260
|
+
- `crudContext`
|
|
261
|
+
- open modes `route`, `modal` e `drawer`
|
|
262
|
+
- launcher e contratos explicitos de formulario por acao
|
|
263
|
+
|
|
264
|
+
O `@praxisui/crud` tambem ja publica a Fase 1 da superficie canonica de authoring visual:
|
|
265
|
+
|
|
266
|
+
- `CrudAuthoringDocument` e helpers canonicos de parse/normalize/serialize/validate
|
|
267
|
+
- `CrudMetadataEditorComponent` como editor hospedavel da propria lib
|
|
268
|
+
- `openCrudMetadataEditor(...)` para integracao canonica com `@praxisui/settings-panel`
|
|
269
|
+
- round-trip minimo `abrir -> editar -> apply/save -> reabrir` para o documento canonico do CRUD
|
|
270
|
+
- composicao canonica com a secao inline de tabela, sem empurrar um builder paralelo para o host
|
|
271
|
+
|
|
272
|
+
Na Fase 2, essa superficie passou a cobrir um recorte mais util de `metadata.table` dentro do mesmo shell unico:
|
|
273
|
+
|
|
274
|
+
- toolbar/header visual essencial da tabela, incluindo `toolbar.layout.height` e `toolbar.actionsBackgroundColor`
|
|
275
|
+
- paginacao essencial
|
|
276
|
+
- ordenacao essencial
|
|
277
|
+
- mensagens de estado principais da lista
|
|
278
|
+
- hierarquia visual `essentials + advanced table details`, sem criar um segundo entrypoint visivel
|
|
279
|
+
|
|
280
|
+
Na Fase 3, essa superficie passou a aprofundar o authoring dos contratos de acao e formulario no proprio shell de CRUD:
|
|
281
|
+
|
|
282
|
+
- agrupamento por acao entre `binding`, `schema`, `submit` e `api`
|
|
283
|
+
- sinais canonicos de prontidao, pendencia e inconsistencias por grupo e por acao
|
|
284
|
+
- resumos editoriais no strip, no header e no topo da shell para orientar troubleshooting sem depender do bloco JSON
|
|
285
|
+
- disclosure inicial derivado, abrindo automaticamente acoes e blocos avancados que pedem atencao
|
|
286
|
+
- acabamento editorial para acoes saudaveis, com menos redundancia entre strip, header e grupos internos
|
|
287
|
+
|
|
288
|
+
Na Fase 4, essa superficie passou a cobrir o recorte minimo de apresentacao e defaults que o runtime de CRUD realmente consome:
|
|
289
|
+
|
|
290
|
+
- `defaults.modal.density`
|
|
291
|
+
- `defaults.modal.canMaximize`
|
|
292
|
+
- `defaults.modal.rememberLastState`
|
|
293
|
+
- `defaults.modal.startMaximized`
|
|
294
|
+
- `defaults.modal.disableCloseOnEsc`
|
|
295
|
+
- `defaults.modal.disableCloseOnBackdrop`
|
|
296
|
+
- `defaults.modal.fullscreenBreakpoint`
|
|
297
|
+
- `defaults.back.strategy`
|
|
298
|
+
- `defaults.back.returnTo`
|
|
299
|
+
- `defaults.back.confirmOnDirty`
|
|
300
|
+
- `actions[].back.strategy`
|
|
301
|
+
- `actions[].back.returnTo`
|
|
302
|
+
- `actions[].back.confirmOnDirty`
|
|
303
|
+
|
|
304
|
+
Fronteira fechada da Fase 4:
|
|
305
|
+
|
|
306
|
+
- o launcher e o host canonico nao consomem hoje nenhum `action.modal/*` ou outro bloco de apresentacao por acao alem de `openMode`, `formId`, `route` e `back`
|
|
307
|
+
- por isso a Fase 4 para aqui de forma intencional: ampliar alem disso exigiria inventar semantica nova de formulario dentro de `@praxisui/crud`, o que estaria errado para a plataforma
|
|
308
|
+
|
|
309
|
+
O que ainda nao existe como superficie publica canonica completa da lib:
|
|
310
|
+
|
|
311
|
+
- editor visual completo de toda a semantica de `TableConfig` e `FormConfig`
|
|
312
|
+
- builder amplo de pagina ou workflow no nivel do `@praxisui/crud`
|
|
313
|
+
- authoring visual de CRUD que cubra todos os recortes avancados alem das Fases 1, 2 e 3
|
|
314
|
+
|
|
315
|
+
Direcao atual da proxima fase:
|
|
316
|
+
|
|
317
|
+
- a proxima fase deve focar em input seeding e parameter mapping que o runtime de CRUD ja consome de forma canonica
|
|
318
|
+
- isso cobre principalmente `actions[].params` e `actions[].form.initialValue`, porque o launcher ja usa esses campos para montar `inputs` e o host de formulario ja os injeta no runtime real
|
|
319
|
+
- isso continua nao incluindo transformar `@praxisui/crud` em editor completo de `FormConfig`
|
|
320
|
+
|
|
321
|
+
Na Fase 5, essa direcao foi consolidada na superficie canonica de authoring do proprio `@praxisui/crud`:
|
|
322
|
+
|
|
323
|
+
- `actions[].params[]` com `from`, `to` e `name`
|
|
324
|
+
- `actions[].form.initialValue`
|
|
325
|
+
- separacao visual entre:
|
|
326
|
+
- valores derivados da linha selecionada
|
|
327
|
+
- seed fixo do formulario
|
|
328
|
+
- resumos avancados que ficam detalhados enquanto `submit/API` ainda pedem atencao
|
|
329
|
+
- resumos avancados curtos em acoes saudaveis
|
|
330
|
+
- indicacao explicita de que `params` e `initialValue` sao inputs opcionais do launcher, e nao trabalho bloqueante do contrato avancado
|
|
331
|
+
|
|
332
|
+
Fronteira fechada da Fase 5:
|
|
333
|
+
|
|
334
|
+
- o recorte para em `actions[].params[]` e `actions[].form.initialValue`, que ja possuem consumo canonico real no launcher e no host de formulario
|
|
335
|
+
- transformacoes arbitrarias de payload, authoring amplo de `FormConfig` e qualquer builder paralelo continuam fora de escopo
|
|
336
|
+
|
|
337
|
+
Leitura correta para apps host:
|
|
338
|
+
|
|
339
|
+
- se o objetivo e executar um CRUD, use o runtime da lib
|
|
340
|
+
- se o objetivo e authoring visual de pagina, use `@praxisui/page-builder`
|
|
341
|
+
- se o objetivo e authoring visual especifico de CRUD, use a superficie publica de `@praxisui/crud`; nao crie um builder local no app consumidor
|
|
342
|
+
|
|
343
|
+
Direcao de plataforma:
|
|
344
|
+
|
|
345
|
+
- o editor visual de CRUD nasce em `@praxisui/crud`
|
|
346
|
+
- a semantica canonica continua cobrindo metadata, tabela interna, formulario, actions, open modes e persistencia/reabertura
|
|
347
|
+
- hosts consumidores devem permanecer como demonstradores do contrato, nao como donos de um editor paralelo
|
|
348
|
+
|
|
253
349
|
To build the library, run:
|
|
254
350
|
|
|
255
351
|
```bash
|
|
@@ -71,7 +71,9 @@ interface CrudDrawerAdapter {
|
|
|
71
71
|
interface DialogConfig<D = any> extends MatDialogConfig<D> {
|
|
72
72
|
disableCloseOnBackdrop?: boolean;
|
|
73
73
|
disableCloseOnEsc?: boolean;
|
|
74
|
+
density?: 'default' | 'compact';
|
|
74
75
|
canMaximize?: boolean;
|
|
76
|
+
rememberLastState?: boolean;
|
|
75
77
|
startMaximized?: boolean;
|
|
76
78
|
fullscreenBreakpoint?: number;
|
|
77
79
|
}
|