@praxisui/crud 9.0.0-beta.73 → 9.0.0-beta.74

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-07-12T01:34:40.567Z",
3
+ "generatedAt": "2026-07-16T21:05:04.797Z",
4
4
  "packageName": "@praxisui/crud",
5
- "packageVersion": "9.0.0-beta.73",
5
+ "packageVersion": "9.0.0-beta.74",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 2,
@@ -226,12 +226,17 @@ class CrudLauncherService {
226
226
  const local = action.openMode ?? metadata.defaults?.openMode;
227
227
  if (local)
228
228
  return local;
229
- // Global fallback (action-specific, then general), then hard fallback 'route'
229
+ // Global fallback (action-specific, then general). A canonical CRUD
230
+ // operation without an explicit route can still be materialized through
231
+ // the inferred form contract, so it must not fall through to a route that
232
+ // does not exist.
230
233
  try {
231
234
  const globalCrud = this.global.getCrud();
232
235
  const actionName = action.action;
233
236
  const globalMode = (actionName && globalCrud?.actionDefaults?.[actionName]?.openMode) ?? globalCrud?.defaults?.openMode;
234
- let resolved = globalMode ?? 'route';
237
+ let resolved = globalMode ?? (this.isCanonicalCrudAction(action.action) && !action.route
238
+ ? 'drawer'
239
+ : 'route');
235
240
  // Safety: if modal/drawer but there is no formId and the action cannot be inferred, degrade to route.
236
241
  if ((resolved === 'modal' || resolved === 'drawer') &&
237
242
  !action.formId &&
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "9.0.0-beta.73",
3
+ "version": "9.0.0-beta.74",
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.0-beta.73",
9
- "@praxisui/table": "^9.0.0-beta.73",
10
- "@praxisui/core": "^9.0.0-beta.73",
11
- "@praxisui/dynamic-fields": "^9.0.0-beta.73",
12
- "@praxisui/settings-panel": "^9.0.0-beta.73",
8
+ "@praxisui/dynamic-form": "^9.0.0-beta.74",
9
+ "@praxisui/table": "^9.0.0-beta.74",
10
+ "@praxisui/core": "^9.0.0-beta.74",
11
+ "@praxisui/dynamic-fields": "^9.0.0-beta.74",
12
+ "@praxisui/settings-panel": "^9.0.0-beta.74",
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.0-beta.73",
17
+ "@praxisui/ai": "^9.0.0-beta.74",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {