Skip to content

Releases: Textualize/textual

The glitch-free-tree release

25 Sep 15:00
c75b169

Choose a tag to compare

Mostly tree related fixes and a updates. Enjoy.

[0.81.0] - 2024-09-25

Added

  • Added x_axis and y_axis parameters to Widget.scroll_to_region #5047
  • Added Tree.move_cursor_to_line #5052

Changed

  • Tree will no longer scroll the X axis when moving the cursor #5047
  • DirectoryTree will no longer select the first node #5052

Fixed

  • Fixed widgets occasionally not getting Resize events #5048
  • Fixed tree regression #5052
  • Fixed glitch with single line inline widget #5054

The Scanners release

24 Sep 11:22
c81df43

Choose a tag to compare

Couple of crash fixes, see below for details...

[0.80.1] - 2024-09-24

Fixed

  • Fixed crash when exiting the app prematurely #5039
  • Fixed exception constructing TextArea outside of App #5045

The best decade release

23 Sep 14:59
322a85c

Choose a tag to compare

This is a large release!

The feature I am most excited about is the new MaskedInput widget, a contribution by Angelo Mottola. Here's a quick preview:

Screen.Recording.2024-09-23.at.15.33.49.mov

Here's the full release notes...

[0.80.0] - 2024-09-23

Added

  • Added MaskedInput widget #4783
  • Input validation for floats and integers accept embedded underscores, e.g., "1_234_567" is valid. #4784
  • Support for "none" value added to dock, hatch and split styles #4982
  • Support for "none" added to box and border style properties (e.g widget.style.border = "none") #4982
  • Docstrings added to most style properties #4982
  • Added ansi_color switch to App to permit ANSI (themed) colors #5000
  • Added :ansi pseudo class #5000
  • Added -ansi-scrollbar style to widgets #5000
  • Added App.INLINE_PADDING to define the number of spaces above inline apps #5000
  • Added nocolor psuedoclass when NO_COLOR env var is set
  • BINDING_GROUP_TITLE now defaults to None #5023
  • Added TreeNode.siblings, TreeNode.next_sibling, TreeNode.previous_sibling, TreeNode.is_collapsed #5023
  • Added additional bindings to Tree widget #5023
  • Added Tree.center_scroll #5023
  • Added Tree.unselect #5023

Changed

  • Input validation for integers no longer accepts scientific notation like '1.5e2'; must be castable to int. #4784
  • Default scrollbar-size-vertical changed to 2 in inline styles to match Widget default CSS (unlikely to affect users) #4982
  • Removed border-right from Toast #4984
  • Some fixes in RichLog result in slightly different semantics, see docstrings for details #4978
  • Changed how scrollbars are rendered (will have no visual effect, but will break snapshot tests) #5000
  • Added enabled switch to filters (mostly used internally) #5000
  • BINDING_GROUP_TITLE now defaults to None #5023
  • Breaking change: Changed how scrollbars are rendered so they work in ansi mode (will break snapshots) #5023

Fixed

  • Input validation of floats no longer accepts NaN (not a number). #4784
  • Fixed issues with screenshots by simplifying segments only for snapshot tests #4929
  • Fixed RichLog.write not respecting width parameter #4978
  • Fixed RichLog writing at wrong width when write occurs before width is known (e.g. in compose or on_mount) #4978
  • Fixed RichLog.write incorrectly shrinking width to RichLog.min_width when shrink=True (now shrinks to fit content area instead) #4978
  • Fixed flicker when setting dark reactive on startup #4989
  • Fixed command palette not sorting search results by their match score #4994
  • Fixed DataTable cached height issue on re-populating the table when using auto-height rows #4992
  • Fixed inline app output being cleared when inline_no_clear=True #5019

The Wedding Anniversary Release

31 Aug 16:30
563b119

Choose a tag to compare

A hotfix

[0.79.1] - 2024-08-31

Fixed

  • Fixed broken updates when non active screen changes #4957

The Query faster Release

30 Aug 15:30
ea03bbc

Choose a tag to compare

This release optimizes query_one and changes the semantics a little. query_one will no longer raise a TooManyMatches if there is more than a single widget matching the selector. For the old behavior, you can use the new query_exactly_one method.

See also https://textual.textualize.io/guide/devtools/#serve

Check below for the full details!

[0.79.0] - 2024-08-30

Added

  • Added DOMNode.check_consume_key #4940
  • Added App.ESCAPE_TO_MINIMIZE, App.screen_to_minimize, and Screen.ESCAPE_TO_MINIMIZE #4951
  • Added DOMNode.query_exactly_one #4950
  • Added SelectorSet.is_simple #4950

Changed

  • KeyPanel will show multiple keys if bound to the same action #4940
  • Breaking change: DOMNode.query_one will not raise TooManyMatches #4950

The Push it to the Max Release

27 Aug 12:24
6aebb0e

Choose a tag to compare

This release adds a new maximize method, which you can use to temporarily full the screen with any given widget. This can be great for allowing the user to focus on a particular view.

You can maximize via the command palette, or you can bind a key with the action screen.maximize.

Here are some screenshots of this feature in action:

Screenshot 2024-08-27 at 13 17 19 Screenshot 2024-08-27 at 13 17 24 Screenshot 2024-08-27 at 13 17 30

[0.78.0] - 2024-08-27

Added

  • Added Maximize and Minimize system commands. #4931
  • Added Screen.maximize, Screen.minimize, Screen.action_maximize, Screen.action_minimize, Widget.is_maximized, Widget.allow_maximize. #4931
  • Added Widget.ALLOW_MAXIMIZE, Screen.ALLOW_IN_MAXIMIZED_VIEW classvars #4931

The lucky number 77 release

22 Aug 14:18
0638f2f

Choose a tag to compare

This is quite a large release!

We've done a lot of work on the command palette to make it easier to work with and use.

We've also added a "help panel" which you can summon from the command palette. This will give you context sensitive help, and a summary of all the key bindings. Here it is in action:

Screen.Recording.2024-08-22.at.15.13.22.mov

Also in the command palette is a "save screenshot" command, which will save a screenshot of the current screen. Very handy for adding to documentation.

There are a number of other smaller changes, fixes, and a few breaking changes. See the detailed release notes below:

[0.77.0] - 2024-08-22

Added

  • Added tooltip to Binding #4859
  • Added a link to the command palette to the Footer (set show_command_palette=False to disable) #4867
  • Added TOOLTIP_DELAY to App to customize time until a tooltip is displayed
  • Added "Show keys" option to system commands to show a summary of key bindings. #4876
  • Added "split" CSS style, currently undocumented, and may change. #4876
  • Added Region.get_spacing_between #4876
  • Added App.COMMAND_PALETTE_KEY to change default command palette key binding #4867
  • Added App.get_key_display #4890
  • Added DOMNode.BINDING_GROUP #4906
  • Added DOMNode.HELP classvar which contains Markdown help to be shown in the help panel #4915
  • Added App.get_system_commands #4920
  • Added "Save Screenshot" system command #4922

Changed

  • Removed caps_lock and num_lock modifiers #4861
  • Keys such as escape and space are now displayed in lower case in footer #4876
  • Changed default command palette binding to ctrl+p #4867
  • Removed ctrl_to_caret and upper_case_keys from Footer. These can be implemented in App.get_key_display.
  • Renamed SystemCommands to SystemCommandsProvider #4920
  • Breaking change: Removed ClassicFooter widget (please use new Footer widget) #4921
  • Disallowed Screen instances in App.SCREENS and App.MODES

Fixed

  • Fix crash when validate_on value isn't a set #4868
  • Fix Input.cursor_blink having no effect on the blink cycle after mounting #4869
  • Fixed scrolling by page not taking scrollbar in to account #4916
  • Fixed App.MODES being the same for all instances -- per-instance modes now exist internally

The Key Release

09 Aug 09:24
6f5eb41

Choose a tag to compare

Mostly fixes, but there are some refactored code in this release related to key handling and bindings. If you encounter an issues, let us know!

[0.76.0]

Changed

  • Input cursor will no longer jump to the end on focus #4773
  • Removed Size.cip_size, which was a clone of crop_size
  • Widgets with auto dimensions will now grow if there is a scrollbar #4844
  • Don't do automatic refresh when widget is not visible #4847
  • Renamed DOMNode._automatic_refresh to DOMNode.automatic_refresh to allow for customization #4847

Fixed

  • Input cursor blink effect will now restart correctly when any action is performed on the input #4773
  • Fixed bindings on same key not updating description #4850

Hotfix for slow UI

07 Aug 15:46

Choose a tag to compare

[0.75.1] - 2024-08-02

Fixed

  • Fixed issue with Enter events causing unresponsive UI #4833

The 74-75 Release

01 Aug 15:06
fcab581

Choose a tag to compare

https://www.youtube.com/watch?v=BgNTBgJjIRI&ab_channel=LyricsDope

[0.75.0] - 2024-08-01

Added

  • Added App.open_url to open URLs in the web browser. When running via the WebDriver, the URL will be opened in the browser that is controlling the app (web side not yet live) #4819
  • Added Widget.is_mouse_over #4818
  • Added node attribute to events.Enter and events.Leave #4818

Changed

  • events.Enter and events.Leave events now bubble. #4818
  • Renamed Widget.mouse_over to Widget.mouse_hover #4818

Fixed

  • Fixed issue with mutate_reactive and data binding #4828