Skip to content

Release v4.73.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 19:40
baf85ea

The Stage runtime now runs the modeled application through the Scene navigation host - outlets, dialogs, toolbars and the address - and the converters carry the hierarchy and navigation metadata the model authors instead of refusing it or flattening it.

Added

  • A screen records where it sits as Scene's Screen.Path: the modules and features, outermost first, it was declared in. A module's own contribute to reaches every screen beneath the module, and a contribution records the hierarchy it was declared in, whether it sits on a module, a feature at any depth or a screen. (part of #237)
  • A navigation entry's id, icon, presentation, group and destination outlet|dialog|external reach the runtime, composed with its navigate to into one Scene destination. The menu honours presentation (icon, text or both), and an entry that opens an outlet or a dialog is executed by the Scene host. (part of #237)
  • A toolbar item carries the destination it opens - the screen a navigate item targets, the dialog template a dialog item targets - with its parameters as route parameter bindings, so it runs through the Scene host like any other navigation. Command items render as the Stage's command action. Presentation hints are honoured (mode of icon, text or both; any other hint is a data-scene-presentation-<name> attribute). (part of #237)
  • A screen no navigation entry lists is shown under its own module and feature, with the breadcrumb leading to it, instead of a single "Other screens" group. (part of #236)
  • A dialog opened through the host is a real modal: a backdrop above the shell, aria-modal, and Escape closes it. Before, it rendered unstyled at the end of the page where the shell's sidebar covered its Close button - found by the browser proof. (part of #237)
  • The Stage's core:outlet renders the screen the host placed in the named outlet inside the Stage's data scope. (part of #237)

Changed

  • The Stage no longer keeps navigation state of its own: the primary screen, nested outlets, the open dialog and the #/Screen?parameter=value address belong to Scene's useSceneHistoryNavigation over createHashSceneHistory. An address that stands for an outlet destination restores the whole composition, and closing a dialog goes back to where it was opened from. (part of #237)
  • Navigation contributions carrying id, icon, presentation or a destination are no longer refused with STAGE-SCENE-UI-001; Scene 4.21.0 honours them.
  • The generated-React browser harness proves it against the generated application: the module-level entry, a screen no entry lists nested under its module and feature, the toolbar with an icon-only item and a placement hint, and a toolbar dialog that opens and closes (70 assertions, 0 blocked).
  • Moves to Scene 4.21.0 and Screenplay 4.137.0. The frozen default scene, the frontend shell digest and the screens vector ledger are re-pinned, and the canonical typed composition is translated again rather than refused. See Stage rendering.