Skip to content

Release 0.8.3

Latest

Choose a tag to compare

@idexus idexus released this 10 Nov 10:44
Immutable release. Only release title and notes can be modified.
ddf3a68

StateUI 0.8.3 gives a page's title a name of its own, puts every sheet over the window's overlays, and keeps a number a toolkit cannot count from reaching the platform. The full list, with how to move over, is in CHANGELOG.md.

Upgrading. A project group builds with this release once its StateUI/ is cloned at it again: git clone --depth 1 --branch 0.8.3 https://github.com/idexus/StateUI.git StateUI. A page's view now sets its title with .pageTitle(_:) in place of .title(_:), and moves what a subtitle said into its title or its content; the compiler stops at each one. An overlay meant to cover a sheet is declared on the sheet's page. StateUI: Reinstall VS Code Extension brings the extension to this release.

Breaking changes

  • A page's title is .pageTitle(_:), matching .pageIcon(_:) and .pageBackground(_:): SettingsPage().pageTitle("Settings"). A map marker keeps its .title(_:).
  • A page has no subtitle: View.subtitle(_:) and PageContract.subtitle are gone. A map marker keeps its subtitle.
  • A sheet stands over the window's overlays. Overlays declared on a window's page stand over every page it shows and under its sheets, on every platform. Overlays declared on a sheet's page stand over that sheet, which they did not on iOS, GTK and the Web.

New

  • A branch is written in its localization's language. A Localization given with .environment(_:) sets the language its branch speaks: a screen reader reads the words there in that language, and the platform sets them by its rules. The Web page uses the browser's language until the application sets its own.
  • Words a host writes for the user itself, such as a split button's arrow, a map pin's details button and a save with no name, are in the user's language.

Fixed

  • Numbers: a NaN or infinite number is treated as no value, and a number too large for a toolkit no longer stops the application: ranges, line limits, a prompt's bound, grid tracks, days outside the years 1 to 9999, font weights, wheels and hands, map regions off the globe, a stepped number on the Web, and sizes and spacing on GTK and WinUI.
  • WinUI text (#27): a line that never wraps, such as a label or a button caption, keeps its natural size at any width offered, and words that start to wrap are measured again. Thanks to @lucek8123 for the report, the reproduction and the first version of the fix.
  • Pages and sheets: a sheet stays when the window is arranged anew and shows its page when it is shown again; the back button is named after the page beneath; each group behind a bar's More is a section of its menu; a scroller keeps clear of the system bars when its axes change.
  • Views whose root may change receive keys, show their bars and tabs, offer their swipe actions and present their sheets.
  • Input: the keypad's Enter presses Return on Android and GTK; on the Web and WinUI a field turns pasted or composed text into its case too; on Android a view with no hold or menu takes no long press.
  • State, time and hosts: a scene value keyed by a key type comes back as it was saved; a ticker stops at its limit; the Apple hosts read the time on the Gregorian calendar; a web view keeps the user's page; a picture keeps its size when Android's display density changes.

Tooling

  • CONTRIBUTING.md says how comments and design notes are written.
  • The Gallery's window overlay sample opens a sheet with a notice of its own.