Skip to content

Release v4.16.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 15:25
78143be

Scene input widgets now publish what the user enters as a binding output and command actions resolve their arguments from it. The components package gains a runtime entry with no design-time code, single-file and webview hosts get a fragment-based navigation history, and exposed template configuration enforces collection limits.

Added

  • useValueOutput and valueOutputProperty in @cratis/scene.react publish and declare an input's value output: on mount with the initial value and on every change, as JSON (dates as ISO 8601 strings). (part of #69)
  • The PrimeReact text, textarea, password, number, date, dropdown, multi-select, radio, checkbox and toggle inputs publish and declare their value output, so a designer can offer it as a binding source. (part of #69)
  • resolveArgumentSource (@cratis/scene.engine) and ArgumentSources.Resolve (Cratis.Scene.Engine) resolve a command argument source: component.<id>.<output> reads another element's output, choosing the longest element id since ids may contain dots, and any other source is a data-context path. (part of #69)
  • @cratis/scene.components/runtime exports cratisComponentsRuntimePackage with the components, descriptors and manifest, and loads no designer, property editor or design-time action. cratisComponentsDesignTime holds the design-time contributions. (part of #70)
  • createHashSceneHistory keeps navigation entries in the URL fragment, such as index.html#/WorkItemDetails?workItemId=B, for hosts served as a single file or from a path they do not control. It also follows a fragment changed by hand. See Navigation diagnostics. (part of #74)

Changed

  • The core action component resolves its argument mapping when it is invoked and adds the values as arguments to the cratis.scene.command event, so a host submits what the user typed. (part of #69)
  • A property that declares acceptedBindingKinds accepts a binding expression of one of those kinds in place of its own value type, and refuses other kinds with the accepted ones named. A command form's inputs can now be bound to a table's selectedItem. (part of #69)
  • The Generate fields action on a command form is disabled, and refuses to run, when the form's fields come from a binding, not only when they are authored. (part of #71)
  • The Cratis.Components manifest no longer declares commandFields and fieldWidths as its own property editors. They are host editor kinds, so design-time hosts no longer report them as missing. (part of #70)
  • Exposed template configuration leaves collection items past the owner's maximumItems out of the effective result and reports them as contributionTypeMismatch; they stay in the saved data. See Exposing a template to its screens. (part of #73)
  • The PrimeReact checkbox and toggle switch name their native input with the authored ariaLabel, so the accessible name reaches the control rather than its wrapper. (part of #73)