Changed
- Shell controls navigate through the navigation context (spec N1, N2):
menuItem, breadcrumb crumbs, logo, userMenu entries and the topbar/sidebar region items activate via the new useNavigationActivation (@cratis/scene.react). A click renders the target in its slot and records it in the host history; the address of the hosting page is never written. Outside a host they stay plain hash links.
- Active state is derived from the history location (N1): a menu entry is current while its screen is the primary screen (
useShellLink), no document-kept isActive needed.
- The breadcrumb follows the location (N4):
locationTrail derives module › feature trail from the structure; default application chrome now includes a breadcrumb; authored items still win.
- Activation policy (N1/N2):
NavigationActivationProvider, navigationMode (navigate | select | per-control function), Alt-click selects, onActivate, onNavigate; ApplicationHost takes navigationPolicy.
ScenePreviewHost: new { application } target, initialDestination (screen or dialog), navigationMode, onActivate, onNavigate.
listDestinations(document) (N3/N5): Pages / States / Dialogs for the Showing picker; galleryApplication() + galleryComposition make the blueprint gallery a navigable application. Listing pinned by a JSON fixture.
- Docs:
Documentation/blueprints/preview-host.md.
Fixed
- Menu entries, crumbs, logo and user-menu entries were dead hash links in a preview (a click only changed the hash, or nothing); the sidebar/topbar items with no target did nothing and gave no hint.
- Entries pointing at a screen the host does not render are now marked
navTargetMissing (N8) instead of silently doing nothing.
Part of #161 (Epic #157).