@praxisui/core 9.0.5-rc.2 → 9.0.5-rc.20
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 +5 -3
- package/ai/component-registry.json +309 -115
- package/fesm2022/praxisui-core.mjs +622 -67
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +521 -9
package/README.md
CHANGED
|
@@ -215,7 +215,7 @@ it must not infer authorization from a `canonicalOperations` boolean or discard
|
|
|
215
215
|
|
|
216
216
|
`ResourceRecordOpenService` materializes the minimal `ResourceRecordOpenRef` published by governed analytics. It resolves the target resource catalog, loads the real item, follows its HATEOAS `surfaces` relation, requires the exact item surface to be available for the current context, and only then delegates to `ResourceSurfaceOpenAdapterService`. Consumers must not replace this flow with `${item.id}`, a copied surface path, a label match, or a prebuilt `surface.open` payload.
|
|
217
217
|
|
|
218
|
-
When a discovered item surface publishes `relatedResource`, `ResourceSurfaceOpenAdapterService` delegates to `RelatedResourceSurfaceResolverService`. The resulting table targets the canonical child resource and receives the parent identity through `queryContext.filters`; it does not prefetch the item projection and rebuild a host-local table before opening. When the child surface publishes `childParentField`, related create actions seed that field through `actions[].form.initialValue`, and both create/update command policies project it into `groupedCommand.contextFields`. The field therefore remains in the schema-backed form and submit payload without rendering a redundant lookup for context the dossier already established. The materializer declares `openMode: "drawer"` but does not redefine drawer geometry: positioning, viewport height, focus, and close behavior remain owned by `@praxisui/crud`. This keeps the drawer responsive and preserves child operations, empty states, endpoint routing, and resource identity from the backend contract.
|
|
218
|
+
When a discovered item surface publishes `relatedResource`, `ResourceSurfaceOpenAdapterService` delegates to `RelatedResourceSurfaceResolverService`. The resulting table targets the canonical child resource and receives the parent identity through `queryContext.filters`; it does not prefetch the item projection and rebuild a host-local table before opening. When the child surface publishes `childParentField`, related create actions seed that field through `actions[].form.initialValue`, and both create/update command policies project it into `groupedCommand.contextFields`. The field therefore remains in the schema-backed form and submit payload without rendering a redundant lookup for context the dossier already established. The generated related-resource empty state is informational: CREATE remains the stable, capability-governed toolbar action instead of being duplicated inside the empty state. An explicit host `emptyState.actions` declaration is preserved when the product journey intentionally needs a different contextual action. The materializer declares `openMode: "drawer"` but does not redefine drawer geometry: positioning, viewport height, focus, and close behavior remain owned by `@praxisui/crud`. This keeps the drawer responsive and preserves child operations, empty states, endpoint routing, and resource identity from the backend contract.
|
|
219
219
|
|
|
220
220
|
## Schema And Metadata
|
|
221
221
|
|
|
@@ -283,7 +283,7 @@ Widget-local settings dispatch remains only a fallback when the canonical Settin
|
|
|
283
283
|
|
|
284
284
|
## Domain Governance
|
|
285
285
|
|
|
286
|
-
`DomainKnowledgeService` and `DomainRuleService` are shared clients for governed semantic decision flows exposed by `praxis-config-starter`. Runtime surfaces should treat materializations as derived projections of backend-governed decisions, not as frontend-owned business rules.
|
|
286
|
+
`DomainKnowledgeService` and `DomainRuleService` are shared clients for governed semantic decision flows exposed by `praxis-config-starter`. `getDefinitionCapabilities` returns the authenticated principal's server-scoped `CREATE_NEW_VERSION` action per definition; consumers must not treat projection metadata such as editor support as authorization. For change workspaces, `getChangeWorkspaceCapabilities` returns the authenticated principal's `availableActions` and stable blockers; consumers must not infer submit, review or promotion authority from lifecycle status. `DomainRuleService` also exposes the safe RuleSet version catalog, active head/status, redacted execution summary, aggregate host alignment, forward activation and rollback protected by the current head ETag. The same client projects immutable rollout-policy versions, their independent anti-ABA head, maker-checker approval, activation and append-only timeline; policy authority and lifecycle validation remain server-owned. It also exposes the two-phase operational rollout through a recoverable human catalog, redacted readiness, create/cancel commands and candidate activation bound to the rollout identity. Consumers must obey the Config-owned `availableActions`; they must not recalculate quorum or head validity. Execution summaries contain only aggregate outcome counts, distinct-host count and observation timestamps for an immutable snapshot. Host-status summaries contain only aligned, snapshot-drifted, runtime-incompatible, unavailable and stale counts derived against the active head and its approved compatibility coordinates; facts and host identities remain outside Angular. Runtime surfaces should treat materializations as derived projections of backend-governed decisions, not as frontend-owned business rules.
|
|
287
287
|
|
|
288
288
|
## Public API Areas
|
|
289
289
|
|
|
@@ -291,7 +291,7 @@ Core exports:
|
|
|
291
291
|
|
|
292
292
|
- shared services such as `GenericCrudService`, `GlobalConfigService`, `GlobalActionService`, `ResourceDiscoveryService`, `ComponentMetadataRegistry`, `PraxisJsonLogicService`, `LoadingOrchestratorService`
|
|
293
293
|
- governed submit-error normalization through `ErrorMessageService`, preserving public `code`, `target`, `category`, and safe messages while keeping transport details out of UI fallbacks
|
|
294
|
-
- tokens and providers for API URLs, global config, global actions, loading, i18n, settings panel bridge, surface drawer bridge, collection export, field selector registry, overlay/layer scale,
|
|
294
|
+
- tokens and providers for API URLs, global config, global actions, loading, i18n, settings panel bridge, surface drawer bridge, collection export, field selector registry, overlay/layer scale, the shared collection-search visual contract (`PRAXIS_COLLECTION_SEARCH_DEFAULTS`, `PRAXIS_COLLECTION_SEARCH_VARS`, `buildPraxisCollectionSearchCss`), and the shared action-control geometry contract (`PRAXIS_ACTION_CONTROL_DEFAULTS`, `PRAXIS_ACTION_CONTROL_VARS`, `buildPraxisActionControlCss`)
|
|
295
295
|
- models for table config, fields, forms, rich content, editorial content, widget pages, global actions, resource discovery, domain knowledge/rules, analytics, query context, loading, and collection export
|
|
296
296
|
- helpers for schema ids, ETag fetch, field mapping, config merge, validation, IDs, inline filter controls, global action refs, and form hooks
|
|
297
297
|
- dynamic widget/page runtime components and metadata
|
|
@@ -301,6 +301,8 @@ See the package `public-api.ts` for the full export list.
|
|
|
301
301
|
|
|
302
302
|
Collection-search consumers must theme the semantic `--praxis-collection-search-*` variables instead of targeting Table or Dynamic Fields internals. The public radius token accepts square (`0`), intermediate (for example `8px`) and pill (`999px`) geometries; surface, text, outline, focus, density, typography and motion remain in the same shared contract.
|
|
303
303
|
|
|
304
|
+
Action-bearing components must use the semantic `--praxis-action-control-*` variables for height, density, radius, padding, icon gap, typography, focus and disabled state. Component-specific public overrides remain stronger, but consumers should not target Angular Material internals to align actions across toolbars, empty states or responsive surfaces. The default disabled opacity is intentionally `0.62`: unavailable actions must remain recognizable and explainable without appearing enabled; authorization and execution continue to be governed by capabilities, availability and `aria-disabled`, never by visual opacity.
|
|
305
|
+
|
|
304
306
|
## Notes
|
|
305
307
|
|
|
306
308
|
- `@praxisui/core` centralizes shared Angular/runtime contracts, but backend metadata semantics are still defined by the appropriate backend starter.
|