@praxisui/crud 9.0.36 → 9.0.38

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,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-29T20:24:51.350Z",
3
+ "generatedAt": "2026-08-30T02:26:55.462Z",
4
4
  "packageName": "@praxisui/crud",
5
- "packageVersion": "9.0.36",
5
+ "packageVersion": "9.0.38",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 2,
@@ -402,6 +402,110 @@
402
402
  "scope": "shell"
403
403
  }
404
404
  ],
405
+ "ports": [
406
+ {
407
+ "id": "rowClick",
408
+ "label": "Row Click",
409
+ "direction": "output",
410
+ "semanticKind": "event",
411
+ "schema": {
412
+ "id": "PraxisTableRowClickEvent",
413
+ "kind": "structural-shape",
414
+ "ref": "{ row: any; index: number }"
415
+ },
416
+ "cardinality": "stream",
417
+ "description": "Clique encaminhado pela tabela interna. O registro deve permanecer JSON-safe para composição e persistência em state.",
418
+ "exposure": {
419
+ "public": true,
420
+ "group": "selection"
421
+ }
422
+ },
423
+ {
424
+ "id": "selectionChange",
425
+ "label": "Selection Change",
426
+ "direction": "output",
427
+ "semanticKind": "event",
428
+ "schema": {
429
+ "id": "PraxisTableSelectionChangeEvent",
430
+ "kind": "structural-shape",
431
+ "ref": "{ trigger: string; row?: any; selectedRows: any[]; selectedCount: number; tableId?: string }"
432
+ },
433
+ "cardinality": "stream",
434
+ "description": "Seleção encaminhada pela tabela interna. Linhas selecionadas devem permanecer JSON-safe para composição e persistência em state.",
435
+ "exposure": {
436
+ "public": true,
437
+ "group": "selection"
438
+ }
439
+ },
440
+ {
441
+ "id": "resourceEvent",
442
+ "label": "Resource Event",
443
+ "direction": "output",
444
+ "semanticKind": "event",
445
+ "schema": {
446
+ "id": "PraxisResourceEvent",
447
+ "kind": "ts-type",
448
+ "ref": "PraxisResourceEvent"
449
+ },
450
+ "cardinality": "stream",
451
+ "description": "Envelope canônico encaminhado pela tabela interna para interações de recurso governadas.",
452
+ "exposure": {
453
+ "public": true,
454
+ "group": "resource-runtime"
455
+ }
456
+ },
457
+ {
458
+ "id": "afterOpen",
459
+ "label": "After Open",
460
+ "direction": "output",
461
+ "semanticKind": "event",
462
+ "schema": {
463
+ "id": "PraxisCrudAfterOpenEvent",
464
+ "kind": "structural-shape",
465
+ "ref": "{ mode: 'route' | 'modal' | 'drawer'; action: string }"
466
+ },
467
+ "cardinality": "stream",
468
+ "description": "Lifecycle externo emitido depois que o launcher materializa a abertura da ação CRUD.",
469
+ "exposure": {
470
+ "public": true,
471
+ "group": "lifecycle"
472
+ }
473
+ },
474
+ {
475
+ "id": "afterSave",
476
+ "label": "After Save",
477
+ "direction": "output",
478
+ "semanticKind": "event",
479
+ "schema": {
480
+ "id": "PraxisCrudAfterSaveEvent",
481
+ "kind": "structural-shape",
482
+ "ref": "{ id: string | number; data: unknown }"
483
+ },
484
+ "cardinality": "stream",
485
+ "description": "Resultado semântico normalizado após save. O payload data deve permanecer JSON-safe para composição.",
486
+ "exposure": {
487
+ "public": true,
488
+ "group": "lifecycle"
489
+ }
490
+ },
491
+ {
492
+ "id": "afterDelete",
493
+ "label": "After Delete",
494
+ "direction": "output",
495
+ "semanticKind": "event",
496
+ "schema": {
497
+ "id": "PraxisCrudAfterDeleteEvent",
498
+ "kind": "structural-shape",
499
+ "ref": "{ id: string | number }"
500
+ },
501
+ "cardinality": "stream",
502
+ "description": "Resultado semântico normalizado após delete e antes da atualização da tabela.",
503
+ "exposure": {
504
+ "public": true,
505
+ "group": "lifecycle"
506
+ }
507
+ }
508
+ ],
405
509
  "configEditor": {
406
510
  "component": "[ref:PraxisCrudWidgetConfigEditor]",
407
511
  "title": "Configurar CRUD"
@@ -7000,6 +7000,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
7000
7000
  args: ['crudEditor']
7001
7001
  }] } });
7002
7002
 
7003
+ const PRAXIS_CRUD_PORTS = [
7004
+ {
7005
+ id: 'rowClick',
7006
+ label: 'Row Click',
7007
+ direction: 'output',
7008
+ semanticKind: 'event',
7009
+ schema: {
7010
+ id: 'PraxisTableRowClickEvent',
7011
+ kind: 'structural-shape',
7012
+ ref: '{ row: any; index: number }',
7013
+ },
7014
+ cardinality: 'stream',
7015
+ description: 'Clique encaminhado pela tabela interna. O registro deve permanecer JSON-safe para composição e persistência em state.',
7016
+ exposure: { public: true, group: 'selection' },
7017
+ },
7018
+ {
7019
+ id: 'selectionChange',
7020
+ label: 'Selection Change',
7021
+ direction: 'output',
7022
+ semanticKind: 'event',
7023
+ schema: {
7024
+ id: 'PraxisTableSelectionChangeEvent',
7025
+ kind: 'structural-shape',
7026
+ ref: '{ trigger: string; row?: any; selectedRows: any[]; selectedCount: number; tableId?: string }',
7027
+ },
7028
+ cardinality: 'stream',
7029
+ description: 'Seleção encaminhada pela tabela interna. Linhas selecionadas devem permanecer JSON-safe para composição e persistência em state.',
7030
+ exposure: { public: true, group: 'selection' },
7031
+ },
7032
+ {
7033
+ id: 'resourceEvent',
7034
+ label: 'Resource Event',
7035
+ direction: 'output',
7036
+ semanticKind: 'event',
7037
+ schema: {
7038
+ id: 'PraxisResourceEvent',
7039
+ kind: 'ts-type',
7040
+ ref: 'PraxisResourceEvent',
7041
+ },
7042
+ cardinality: 'stream',
7043
+ description: 'Envelope canônico encaminhado pela tabela interna para interações de recurso governadas.',
7044
+ exposure: { public: true, group: 'resource-runtime' },
7045
+ },
7046
+ {
7047
+ id: 'afterOpen',
7048
+ label: 'After Open',
7049
+ direction: 'output',
7050
+ semanticKind: 'event',
7051
+ schema: {
7052
+ id: 'PraxisCrudAfterOpenEvent',
7053
+ kind: 'structural-shape',
7054
+ ref: "{ mode: 'route' | 'modal' | 'drawer'; action: string }",
7055
+ },
7056
+ cardinality: 'stream',
7057
+ description: 'Lifecycle externo emitido depois que o launcher materializa a abertura da ação CRUD.',
7058
+ exposure: { public: true, group: 'lifecycle' },
7059
+ },
7060
+ {
7061
+ id: 'afterSave',
7062
+ label: 'After Save',
7063
+ direction: 'output',
7064
+ semanticKind: 'event',
7065
+ schema: {
7066
+ id: 'PraxisCrudAfterSaveEvent',
7067
+ kind: 'structural-shape',
7068
+ ref: '{ id: string | number; data: unknown }',
7069
+ },
7070
+ cardinality: 'stream',
7071
+ description: 'Resultado semântico normalizado após save. O payload data deve permanecer JSON-safe para composição.',
7072
+ exposure: { public: true, group: 'lifecycle' },
7073
+ },
7074
+ {
7075
+ id: 'afterDelete',
7076
+ label: 'After Delete',
7077
+ direction: 'output',
7078
+ semanticKind: 'event',
7079
+ schema: {
7080
+ id: 'PraxisCrudAfterDeleteEvent',
7081
+ kind: 'structural-shape',
7082
+ ref: '{ id: string | number }',
7083
+ },
7084
+ cardinality: 'stream',
7085
+ description: 'Resultado semântico normalizado após delete e antes da atualização da tabela.',
7086
+ exposure: { public: true, group: 'lifecycle' },
7087
+ },
7088
+ ];
7003
7089
  /** Metadata for PraxisCrudComponent */
7004
7090
  const PRAXIS_CRUD_COMPONENT_METADATA = {
7005
7091
  id: 'praxis-crud',
@@ -7327,6 +7413,7 @@ const PRAXIS_CRUD_COMPONENT_METADATA = {
7327
7413
  description: 'Emitido quando o editor canônico do CRUD salva um documento e publica o patch de inputs do widget para hosts como praxis-dynamic-page.',
7328
7414
  },
7329
7415
  ],
7416
+ ports: PRAXIS_CRUD_PORTS,
7330
7417
  actions: [
7331
7418
  {
7332
7419
  id: 'create',
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "9.0.36",
3
+ "version": "9.0.38",
4
4
  "description": "CRUD building blocks for Praxis UI: integrates dynamic forms and tables with unified configuration and services.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
- "@praxisui/dynamic-form": "^9.0.36",
9
- "@praxisui/table": "^9.0.36",
10
- "@praxisui/core": "^9.0.36",
11
- "@praxisui/dynamic-fields": "^9.0.36",
12
- "@praxisui/settings-panel": "^9.0.36",
8
+ "@praxisui/dynamic-form": "^9.0.38",
9
+ "@praxisui/table": "^9.0.38",
10
+ "@praxisui/core": "^9.0.38",
11
+ "@praxisui/dynamic-fields": "^9.0.38",
12
+ "@praxisui/settings-panel": "^9.0.38",
13
13
  "@angular/cdk": "^21.0.0",
14
14
  "@angular/forms": "^21.0.0",
15
15
  "@angular/material": "^21.0.0",
16
16
  "@angular/router": "^21.0.0",
17
- "@praxisui/ai": "^9.0.36",
17
+ "@praxisui/ai": "^9.0.38",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {