@praxisui/crud 8.0.0-beta.85 → 8.0.0-beta.87

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
@@ -240,7 +240,7 @@ sequenceDiagram
240
240
  ### Pontos-Chave do Runtime
241
241
 
242
242
  1. **`crudContext` precisa ser estavel**: o componente nao usa getter dinamico no template; ele memoiza o contexto quando o metadata muda.
243
- 2. **`PraxisCrudComponent` pode completar a UX da tabela**: ele injeta automaticamente toolbar add e row actions quando o metadata declara acoes e o host nao configurou a tabela explicitamente.
243
+ 2. **`PraxisCrudComponent` pode completar a UX da tabela**: ele injeta automaticamente toolbar add e row actions quando o metadata declara acoes e o host nao configurou a tabela explicitamente. Row actions geradas pelo CRUD limitam duas acoes primarias inline por padrao e mantem descobertas/contextuais no menu overflow para preservar densidade corporativa.
244
244
  3. **A validacao estrutural do metadata e estrita, mas aceita bindings diferidos**: `route` e `formId` podem ser completados por overrides persistidos imediatamente antes da abertura.
245
245
  4. **O `CrudLauncherService` e a fonte de verdade para `openMode`**: ele mescla overrides persistidos, defaults do metadata e GlobalConfig antes de decidir `route`, `modal` ou `drawer`.
246
246
  5. **Modal e drawer nao sao equivalentes internamente**: o ramo modal usa `DynamicFormDialogHostComponent`; o ramo drawer depende do adapter provido pelo host.
@@ -4148,13 +4148,27 @@ class PraxisCrudComponent {
4148
4148
  });
4149
4149
  }
4150
4150
  if (rowActions.length) {
4151
+ const rawMaxInline = Number(crudDefaults.rowActionsMaxInline);
4152
+ const maxInline = Number.isFinite(rawMaxInline)
4153
+ ? Math.max(0, Math.floor(rawMaxInline))
4154
+ : 2;
4151
4155
  cfg.actions = cfg.actions || {};
4152
4156
  cfg.actions.row = {
4153
4157
  enabled: true,
4154
4158
  position: 'end',
4155
- width: cfg.actions?.row?.width || '120px',
4159
+ width: cfg.actions?.row?.width || crudDefaults.rowActionsWidth || '144px',
4156
4160
  display: crudDefaults.rowActionsDisplay || 'icons',
4157
- trigger: cfg.actions?.row?.trigger || 'hover',
4161
+ trigger: cfg.actions?.row?.trigger || crudDefaults.rowActionsTrigger || 'always',
4162
+ menuIcon: crudDefaults.rowActionsMenuIcon || 'more_vert',
4163
+ maxVisibleActions: maxInline,
4164
+ behavior: {
4165
+ enabled: true,
4166
+ maxInline,
4167
+ autoStrategy: 'breakpoints',
4168
+ },
4169
+ discovery: {
4170
+ enabled: crudDefaults.rowActionDiscovery !== false,
4171
+ },
4158
4172
  actions: rowActions,
4159
4173
  header: { label: cfg.actions?.row?.header?.label || '' },
4160
4174
  };
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "8.0.0-beta.85",
3
+ "version": "8.0.0-beta.87",
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": "^8.0.0-beta.85",
9
- "@praxisui/table": "^8.0.0-beta.85",
10
- "@praxisui/core": "^8.0.0-beta.85",
11
- "@praxisui/dynamic-fields": "^8.0.0-beta.85",
12
- "@praxisui/settings-panel": "^8.0.0-beta.85",
8
+ "@praxisui/dynamic-form": "^8.0.0-beta.87",
9
+ "@praxisui/table": "^8.0.0-beta.87",
10
+ "@praxisui/core": "^8.0.0-beta.87",
11
+ "@praxisui/dynamic-fields": "^8.0.0-beta.87",
12
+ "@praxisui/settings-panel": "^8.0.0-beta.87",
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": "^8.0.0-beta.85",
17
+ "@praxisui/ai": "^8.0.0-beta.87",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {