Skip to content

Release v4.27.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 04:15
274099f

Application navigation gets topbar and sidebar regions that a module inherits, extends or overrides, items that target a module or feature and a rendering slot, and one engine function every host calls for the effective items. Builds on the application structure reference (see #97).

Added

  • NavigationModel, ApplicationNavigation, ModuleNavigation, NavigationRegion (topbar/sidebar, inherit/extend/override), NavItem (id, title, icon, target, slot, children) and ApplicationLogo in Cratis.Scene.Model.Navigation and @cratis/scene.model, mirrored in scene-model-shape.json.
  • effectiveNavigation / EffectiveNavigation.Resolve: the ordered items of a region for the application or a module, each with origin (application | module), readOnly, a reason and its target resolved against the application structure (a module target goes to the module's first feature), plus the region's effective mode and sources tag (defined here, inherited, Application + Sales, Sales only). Sub-items are sidebar-only.
  • Edit helpers switchRegionMode (inherit clears the module items; inherit → override with copy copies the application items first), addNavItem (adding to an inheriting region switches it to extend first; sub-items under a parent) and setApplicationLogo (refused for a module), with applyNavigationEdits.
  • diagnoseNavigationRegions and the new diagnostic codes navTargetMissing, navSlotUnknown, navDuplicateId, navModuleWithoutFeatures and navTargetOutOfScope; diagnoseNavigation runs them when its graph carries structure and navigation.
  • The replace collection operation and InstanceContribution.replaceOwnerItems: an instance can hide the items it inherits so only its own remain. It is how override is expressed in the exposure model. Without replace exposed the contribution is ignored and reported, and the server check refuses a document that sets it.
  • Shared fixtures navigation-inheritance-fixtures.json and navigation-targets-fixtures.json, the new codes in navigation-diagnostic-fixtures.json and two server cases in document-change-fixtures.json, asserted by both the C# and the TypeScript engines.
  • The documentation page blueprints/navigation-regions.md; the exposure and navigation diagnostics pages are extended.

Existing Navigation contributions and the core:navigation component are unchanged.

Part of #101