Repository navigation
Release v4.52.0
A generated React application now renders its screens with the same Stage frontend runtime a live Stage uses, so shells, routing, outlets, dialogs, bindings, native command forms and theming behave the same in both.
Added
cratis renderemits the Stage frontend runtime into a generated application under.frontend/stage, withsrc/stage-scene.json(the composed Scene with native command form metadata) andsrc/stage.ts(routes read from the generated Arc proxies, plus localized strings). The generated frontend renders the full composed application instead of a single screen. (part of #236)CommandFormSchemasinCratis.Stage.Contractsgives the presentation schema and form fields for a command's properties, so the same command shows the same form fields in a live Stage and in a generated application. (part of #236)- The Stage frontend reads its Scene, routes and strings through a
StageSource, which serves either the/stageendpoints or content built into an application.Appalso accepts extra components for its registry. (part of #237) Verification/generated-react-browserruns the browser scenarios used against a live Stage against a generated application served on its own backend: two-item scoped selection, deep link, delayed-response discard, clear, native create, rename and add-comment forms, theme, and fail-closed guarded actions. (part of #237)
Changed
- Generated applications pin their frontend packages to the versions the Stage frontend builds with:
@cratis/arc22.58.2,@cratis/components4.26.2,@cratis/fundamentals7.22.8 and@cratis/scene.*4.12.0. Re-rendering an existing application updates itspackage.jsonto these versions. (part of #236) - A generated application loads the PrimeIcons font, applies the Stage theme and serves styled PrimeReact components. It reads the PrimeUI license from
PRIMEUI_LICENSEorSTAGE_PRIMEUI_LICENSEat build time. (part of #236)
Fixed
- A modeled value of an enum concept now renders as its enum member, so a generated backend that uses one in a command or specification compiles. (part of #236)
- Generated query specifications declare only the result field their query assigns, so the generated Debug build has no unused-field warning. (part of #236)
- An authored action with no planned route now uses the command route the running application registered, and stays disabled when there is none. (part of #237)
- After a successful command, Stage reads the screen's queries again once an asynchronous projection has had time to apply it, so the screen shows what the command did. (part of #237)