Skip to content

Releases: Textualize/textual

v0.8.0 with textual keys

22 Dec 13:09
f29da41
Compare
Choose a tag to compare

Version 0.8.0 adds a new textual keys command which you can use to preview key events.

There are a few minor breaking changes in this release. See below for details.

Screenshot 2022-12-22 at 13 08 11

[0.8.0] - 2022-12-22

Fixed

  • Fixed issues with nested auto dimensions #1402
  • Fixed watch method incorrectly running on first set when value hasn't changed and init=False #1367
  • App.dark can now be set from App.on_load without an error being raised #1369
  • Fixed setting visibility changes needing a refresh #1355

Added

  • Added textual.actions.SkipAction exception which can be raised from an action to allow parents to process bindings.
  • Added textual keys preview.
  • Added ability to bind to a character in addition to key name. i.e. you can bind to "." or "full_stop".
  • Added TextLog.shrink attribute to allow renderable to reduce in size to fit width.

Changed

  • Deprecated PRIORITY_BINDINGS class variable.
  • Renamed char to character on Key event.
  • Renamed key_name to name on Key event.
  • Queries/walk_children no longer includes self in results by default #1416

You are bound to like this release

17 Dec 09:35
15417d4
Compare
Choose a tag to compare

Mostly fixes in this release.

[0.7.0] - 2022-12-17

Added

  • Added PRIORITY_BINDINGS class variable, which can be used to control if a widget's bindings have priority by default. #1343

Changed

  • Renamed the Binding argument universal to priority. #1343
  • When looking for bindings that have priority, they are now looked from App downwards. #1343
  • BINDINGS on an App-derived class have priority by default. #1343
  • BINDINGS on a Screen-derived class have priority by default. #1343
  • Added a message parameter to Widget.exit

Fixed

  • Fixed validator not running on first reactive set #1359
  • Ensure only printable characters are used as key_display #1361

Treemendous Redux

11 Dec 13:25
Compare
Choose a tag to compare

See the blog post for the low down on this release.

[0.6.0] - 2022-12-11

Added

  • Added "inherited bindings" -- BINDINGS classvar will be merged with base classes, unless inherit_bindings is set to False
  • Added Tree widget which replaces TreeControl.
  • Added widget Placeholder #1200.

Changed

  • Rebuilt DirectoryTree with new Tree control.
  • Empty containers with a dimension set to "auto" will now collapse instead of filling up the available space.
  • Container widgets now have default height of 1fr.
  • The default width of a Label is now auto.

Fixed

  • Type selectors can now contain numbers #1253
  • Fixed visibility not affecting children #1313
  • Fixed issue with auto width/height and relative children #1319
  • Fixed issue with offset applied to containers #1256

Lazy screens

20 Nov 16:48
f5db482
Compare
Choose a tag to compare

[0.5.0] - 2022-11-20

Added

  • Add get_child_by_id and get_widget_by_id, remove get_child #1146
  • Add easing parameter to Widget.scroll_* methods #1144
  • Added Widget.call_later which invokes a callback on idle.
  • DOMNode.ancestors no longer includes self.
  • Added DOMNode.ancestors_with_self, which retains the old behaviour of
    DOMNode.ancestors.
  • Improved the speed of DOMQuery.remove.
  • Added DataTable.clear
  • Added low-level textual.walk methods.
  • It is now possible to await a Widget.remove.
    #1094
  • It is now possible to await a DOMQuery.remove. Note that this changes
    the return value of DOMQuery.remove, which used to return self.
    #1094
  • Added Pilot.wait_for_animation
  • Added Widget.move_child #1121
  • Added a Label widget #1190
  • Support lazy-instantiated Screens (callables in App.SCREENS) #1185
  • Display of keys in footer has more sensible defaults #1213
  • Add App.get_key_display, allowing custom key_display App-wide #1213

Changed

  • Watchers are now called immediately when setting the attribute if they are synchronous. #1145
  • Widget.call_later has been renamed to Widget.call_after_refresh.
  • Button variant values are now checked at runtime. #1189
  • Added caching of some properties in Styles object

Fixed

  • Fixed DataTable row not updating after add #1026
  • Fixed issues with animation. Now objects of different types may be animated.
  • Fixed containers with transparent background not showing borders #1175
  • Fixed auto-width in horizontal containers #1155
  • Fixed Input cursor invisible when placeholder empty #1202
  • Fixed deadlock when removing widgets from the App #1219

Mounting excitement

08 Nov 17:54
00bcd82
Compare
Choose a tag to compare

Read the blog post: https://textual.textualize.io/blog/2022/11/08/version-040/#version-040

[0.4.0] - 2022-11-08

Changed

  • Dropped support for mounting "named" and "anonymous" widgets via
    App.mount and Widget.mount. Both methods now simply take one or more
    widgets as positional arguments.
  • DOMNode.query_one now raises a TooManyMatches exception if there is
    more than one matching node.
    #1096
  • App.mount and Widget.mount have new before and after parameters #778

Added

  • Added init param to reactive.watch
  • CSS_PATH can now be a list of CSS files #1079
  • Added DOMQuery.only_one #1096
  • Writes to stdout are now done in a thread, for smoother animation. #1104

Scarily good release with FR units

31 Oct 16:01
Compare
Choose a tag to compare

A number of fixes, and internal enhancements.

We have a new API for running textual apps asynchronously, and a much better way of running integration tests. Testing is important and we will be documenting this in a future release.

Also in this release, we've made fr units more useful. These CSS units can be used to easily create flexible layouts. See the video below:

Screen.Recording.2022-10-31.at.15.29.57.mov

Here's the full changelog

[0.3.0] - 2022-10-31

Fixed

  • Fixed issue where scrollbars weren't being unmounted
  • Fixed fr units for horizontal and vertical layouts #1067
  • Fixed textual run breaking sys.argv #1064
  • Fixed footer not updating styles when toggling dark mode
  • Fixed how the app title in a Header is centred #1060
  • Fixed the swapping of button variants #1048
  • Fixed reserved characters in screenshots #993
  • Fixed issue with TextLog max_lines #1058

Changed

  • DOMQuery now raises InvalidQueryFormat in response to invalid query strings, rather than cryptic CSS error
  • Dropped quit_after, screenshot, and screenshot_title from App.run, which can all be done via auto_pilot
  • Widgets are now closed in reversed DOM order
  • Input widget justify hardcoded to left to prevent text-align interference
  • Changed textual run so that it patches argv in more situations
  • DOM classes and IDs are now always treated fully case-sensitive #1047

Added

  • Added Unmount event
  • Added App.run_async method
  • Added App.run_test context manager
  • Added auto_pilot to App.run and App.run_async
  • Added Widget._get_virtual_dom to get scrollbars
  • Added size parameter to run and run_async
  • Added always_update to reactive
  • Returned an awaitable from push_screen, switch_screen, and install_screen #1061

Just a metadata update

22 Oct 20:44
Compare
Choose a tag to compare

Updated metadata, and some assets for readme.

[0.2.1] - 2022-10-23

Changed

  • Updated meta data for PyPI

The CSS Release

22 Oct 18:54
4413b5d
Compare
Choose a tag to compare

This is a merge of the CSS branch with a whole load of amazing features. Hope you enjoy.

We are now returning to regular releases and working in the open. Thanks for being patient.

What's Changed

Read more

v0.1.18: Merge pull request #451 from Textualize/0.1.18

30 Apr 08:02
e9ab5c4
Compare
Choose a tag to compare

[0.1.18] - 2022-03-30

Changed

  • Bump typing extensions and Rich

Bump Rich

10 Mar 16:14
Compare
Choose a tag to compare

Bumps Rich to latest release

[0.1.17] - 2022-03-10

Changed

  • Bumped Rich dependency