Skip to content

Releases: Textualize/textual

The not April Fool Release

01 Apr 12:30
dddb6bc
Compare
Choose a tag to compare

The highlight of this release is the new inline feature, which allows you to run Textual apps below the prompt, rather than in application mode.

We also have a bunch of additional languages for the TextArea widget, and some fixes.

Screen.Recording.2024-03-29.at.12.52.18.mov
Screen.Recording.2024-03-28.at.13.05.07.mov

[0.55.0] - 2024-04-1

Fixed

  • Fix priority bindings not appearing in footer when key clashes with focused widget #4342
  • Reverted auto-width change #4369

Changed

  • Exceptions inside Widget.compose or workers weren't bubbling up in tests #4282
  • Fixed DataTable scrolling issues by changing max-height back to 100% #4286
  • Fixed Button not rendering correctly with console markup #4328

Added

  • Added Document.start and end location properties for convenience #4267
  • Added support for JavaScript, Golang, Rust, Bash, Java and Kotlin to TextArea #4350
  • Added inline parameter to run and run_async to run app inline (under the prompt). #4343
  • Added mouse parameter to disable mouse support #4343

The progress release

26 Mar 10:56
5cc4ee3
Compare
Choose a tag to compare

The ProgressBar widget now has a much improved ETA calculation

[0.54.0] - 2023-03-26

Fixed

  • Fixed a crash in TextArea when undoing an edit to a selection the selection was made backwards #4301
  • Fixed issue with flickering scrollbars #4315
  • Fixed issue where narrow TextArea would repeatedly wrap due to scrollbar appearing/disappearing #4334
  • Fix progress bar ETA not updating when setting total reactive #4316

Changed

  • ProgressBar won't show ETA until there is at least one second of samples #4316
  • Input waits until an edit has been made, after entry to the widget, before offering a suggestion #4335

The focused hot-fix

18 Mar 15:37
Compare
Choose a tag to compare

[0.53.1] - 2023-03-18

Fixed

  • Fixed issue with data binding #4308

The focused release

18 Mar 14:32
2c52fd7
Compare
Choose a tag to compare

Lots of refinements and enhancements here!

[0.53.0] - 2023-03-18

Added

  • Mapping of ANSI colors to hex codes configurable via App.ansi_theme_dark and App.ansi_theme_light #4192
  • Pilot.resize_terminal to resize the terminal in testing #4212
  • Added sort_children method #4244
  • Support for pseudo-classes in nested TCSS #4039

Fixed

  • Fixed TextArea.code_editor missing recently added attributes #4172
  • Fixed Sparkline not working with data in a deque #3899
  • Tooltips are now cleared when the related widget is no longer under them #3045
  • Simplified tree-sitter highlight queries for HTML, which also seems to fix segfault issue #4195
  • Fixed DirectoryTree.path no longer reacting to new values #4208
  • Fixed content size cache with Pretty widget #4211
  • Fixed grid-gutter interaction with Pretty widget #4219
  • Fixed TextArea styling issue on alternate screens #4220
  • Fixed writing to invisible RichLog #4223
  • Fixed RichLog.min_width not being used #4223
  • Rename CollapsibleTitle.action_toggle to action_toggle_collapsible to fix clash with DOMNode.action_toggle #4221
  • Markdown component classes weren't refreshed when watching for CSS #3464
  • Rename Switch.action_toggle to action_toggle_switch to fix clash with DOMNode.action_toggle #4262
  • Fixed OptionList.OptionHighlighted leaking out of Select #4224
  • Fixed Tab enable/disable messages leaking into TabbedContent #4233
  • Fixed a style leak from TabbedContent #4232
  • Fixed active hidden scrollbars not releasing the mouse #4274
  • Fixed the mouse not being released when hiding a TextArea while mouse selection is happening #4292
  • Fix mouse scrolling not working when mouse cursor is over a disabled child widget #4242

Changed

  • Clicking a non focusable widget focus ancestors #4236
  • BREAKING: widget class names must start with a capital letter or an underscore _ #4252
  • BREAKING: for many widgets, messages are now sent when programmatic changes that mirror user input are made #4256
    • Changed Collapsible
    • Changed Markdown
    • Changed Select
    • Changed SelectionList
    • Changed TabbedContent
    • Changed Tabs
    • Changed TextArea
    • Changed Tree
  • Improved ETA calculation for ProgressBar #4271
  • BREAKING: AppFocus and AppBlur are now posted when the terminal window gains or loses focus, if the terminal supports this #4265
    • When the terminal window loses focus, the currently-focused widget will also lose focus.
    • When the terminal window regains focus, the previously-focused widget will regain focus.
  • TextArea binding for ctrl+k will now delete the line if the line is empty #4277
  • The active tab (in Tabs) / tab pane (in TabbedContent) can now be unset #4241

The sin tax release

20 Feb 10:41
74875ae
Compare
Choose a tag to compare

Fixes a SyntaxWarning

[0.52.1] - 2024-02-20

Fixed

  • Fixed the check for animation level in LoadingIndicator #4188

The Envy release

19 Feb 16:26
5d21a0a
Compare
Choose a tag to compare

A few modest changes, with a focus on env vars for some reason.

[0.52.0] - 2024-02-19

Changed

  • Textual now writes to stderr rather than stdout #4177

Added

  • Added an asyncio lock attribute Widget.lock to be used to synchronize widget state #4134
  • Added support for environment variable TEXTUAL_ANIMATIONS to control what animations Textual displays #4062
  • Add attribute App.animation_level to control whether animations on that app run or not #4062
  • Added support for a TEXTUAL_SCREENSHOT_LOCATION environment variable to specify the location of an automated screenshot #4181
  • Added support for a TEXTUAL_SCREENSHOT_FILENAME environment variable to specify the filename of an automated screenshot #4181
  • Added an asyncio lock attribute Widget.lock to be used to synchronize widget state #4134
  • Widget.remove_children now accepts a CSS selector to specify which children to remove #4183
  • Widget.batch combines widget locking and app update batching #4183

The American friends release

15 Feb 17:33
8007c8f
Compare
Choose a tag to compare

Mostly fixes in this updated.

Note the breaking change below...

[0.51.0] - 2024-02-15

Added

  • TextArea now has read_only mode #4151
  • Add some syntax highlighting to TextArea default theme #4149
  • Add undo and redo to TextArea #4124
  • Added support for command palette command discoverability #4154

Fixed

  • Fixed out-of-view Tab not being scrolled into view when Tabs.active is assigned #4150
  • Fixed TabbedContent.TabActivate not being posted when TabbedContent.active is assigned #4150

Changed

  • Breaking change: Renamed TextArea.tab_behaviour to TextArea.tab_behavior #4124
  • TextArea.theme now defaults to "css" instead of None, and is no longer optional #4157

The tiny tint release

09 Feb 18:22
718e54e
Compare
Choose a tag to compare

[0.50.1] - 2024-02-09

Fixed

  • Fixed tint applied to ANSI colors #4142

The half a century release

08 Feb 17:37
ca3d9f6
Compare
Choose a tag to compare

A relatively small release for the benefit of an app we are going to release soon.

[0.50.0] - 2024-02-08

Fixed

  • Fixed issue with ANSI colors not being converted to truecolor #4138
  • Fixed duplicate watch methods being attached to DOM nodes #4030
  • Fixed using watch to create additional watchers would trigger other watch methods #3878

Added

  • Added support for configuring dark and light themes for code in Markdown #3997

The one release to bind them all release

07 Feb 13:13
d2a586b
Compare
Choose a tag to compare

This release adds data binding, which can help you write lean code. There are also a few new methods, fixes, and enhancements. See below for the full details...

[0.49.0] - 2024-02-07

Fixed

  • Fixed scrolling in long OptionList by adding max height of 100% #4021
  • Fixed DirectoryTree.clear_node not clearing the node specified #4122

Changed

  • DirectoryTree.reload and DirectoryTree.reload_node now preserve state when reloading #4056
  • Fixed a crash in the TextArea when performing a backward replace #4126
  • Fixed selection not updating correctly when pasting while there's a non-zero selection #4126
  • Breaking change: TextArea will not use Escape to shift focus if the tab_behaviour is the default #4110
  • TextArea cursor will now be invisible before first focus #4128
  • Fix toggling TextArea.cursor_blink reactive when widget does not have focus #4128

Added

  • Added DOMQuery.set #4075
  • Added DOMNode.set_reactive #4075
  • Added DOMNode.data_bind #4075
  • Added DOMNode.action_toggle #4075
  • Added Worker.cancelled_event #4075
  • Tree (and DirectoryTree) grew an attribute lock that can be used for synchronization across coroutines #4056