Repository navigation
Release v4.27.0
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) andApplicationLogoinCratis.Scene.Model.Navigationand@cratis/scene.model, mirrored inscene-model-shape.json.effectiveNavigation/EffectiveNavigation.Resolve: the ordered items of a region for the application or a module, each withorigin(application | module),readOnly, areasonand its target resolved against the application structure (a module target goes to the module's first feature), plus the region's effectivemodeandsourcestag (defined here,inherited,Application + Sales,Sales only). Sub-items are sidebar-only.- Edit helpers
switchRegionMode(inherit clears the module items; inherit → override withcopycopies the application items first),addNavItem(adding to an inheriting region switches it to extend first; sub-items under a parent) andsetApplicationLogo(refused for a module), withapplyNavigationEdits. diagnoseNavigationRegionsand the new diagnostic codesnavTargetMissing,navSlotUnknown,navDuplicateId,navModuleWithoutFeaturesandnavTargetOutOfScope;diagnoseNavigationruns them when its graph carriesstructureandnavigation.- The
replacecollection operation andInstanceContribution.replaceOwnerItems: an instance can hide the items it inherits so only its own remain. It is howoverrideis expressed in the exposure model. Withoutreplaceexposed the contribution is ignored and reported, and the server check refuses a document that sets it. - Shared fixtures
navigation-inheritance-fixtures.jsonandnavigation-targets-fixtures.json, the new codes innavigation-diagnostic-fixtures.jsonand two server cases indocument-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