Repository navigation
Release v5.0.0
Scene 5 separates slots, the regions content is placed in, from outlets, the item lists a layout or template offers. It adds placement, so an action opens its slice where it fits, and derived enablement. This is a major version: today's Outlet is renamed Slot, and stored documents are upgraded when they are read.
Added
- Slots carry a role (
page,paneorpanel),routedwith route parameters,primaryandoptional.resolveSlotRole(C#SlotRoles.Resolve) gives the role of a slot that declares none. - Outlets as item lists of kind actions, filters, tabs, stats or navigation, each with a typed item schema and defaults on the layout or template. Each level resolves
inherits,extendsoroverrideswithhideandbefore/after, own items never move above inherited ones, and any module or feature can contribute.effectiveOutletreturns the resolved items with their provenance ("Catalog + Products"), and the engine builds a screen's outlet chain from the document. (#289) - Placement: a screen lists what it
fits, andresolvePlacement(C#PlacementResolver.Resolve) picks the first fit the page has free for an automatic action, checks an explicit slot, and explains its choice. Run directly is offered only when every command input has a source. - Enablement derived from the subject (
for item), authorization andenabled when, reported with the reason. Inspection reports outlet provenance, placement decisions and enablement reasons. scene.reactrenders outlets of every kind, routed slots and thepanelrole. Hosts plug in their router throughSceneRouterProvideror therouterprop ofSceneNavigationHost; without one, route state is kept in memory.- Foundation layouts and templates declare slot roles and outlets, and every blueprint inherits them. Dialog and drawer templates offer an actions outlet with Cancel and Submit.
Changed
- Breaking:
Outletis nowSlot,primaryOutletisprimarySlot,DestinationKind.OutletisDestinationKind.Slot, and the outlet diagnostics and shell remaps (OutletRemap,ShellOutletMove,ShellOutletAction) are renamed to slot names. CSS classes and data attributes follow (scene-slot-*,data-scene-slot). - Breaking: navigation is stored as outlets of kind navigation, and its edits and diagnostics work on outlets. The toolbar's items are an outlet of actions.
- Breaking:
OpensreplacesActionPresentation, with the values automatic, none (run directly), modal, drawer and slot. - Stored documents with the old outlet, navigation, toolbar or presentation shape are upgraded on read without overwriting user values, and the C# engine refuses to save a document that is not in the new shape.