Releases: Textualize/textual
The focused release
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_darkandApp.ansi_theme_light#4192 Pilot.resize_terminalto resize the terminal in testing #4212- Added
sort_childrenmethod #4244 - Support for pseudo-classes in nested TCSS #4039
Fixed
- Fixed
TextArea.code_editormissing recently added attributes #4172 - Fixed
Sparklinenot working with data in adeque#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.pathno longer reacting to new values #4208 - Fixed content size cache with Pretty widget #4211
- Fixed
grid-gutterinteraction with Pretty widget #4219 - Fixed
TextAreastyling issue on alternate screens #4220 - Fixed writing to invisible
RichLog#4223 - Fixed
RichLog.min_widthnot being used #4223 - Rename
CollapsibleTitle.action_toggletoaction_toggle_collapsibleto fix clash withDOMNode.action_toggle#4221 - Markdown component classes weren't refreshed when watching for CSS #3464
- Rename
Switch.action_toggletoaction_toggle_switchto fix clash withDOMNode.action_toggle#4262 - Fixed
OptionList.OptionHighlightedleaking out ofSelect#4224 - Fixed
Tabenable/disable messages leaking intoTabbedContent#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
TextAreawhile 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
- Changed
- Improved ETA calculation for ProgressBar #4271
- BREAKING:
AppFocusandAppBlurare 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 (inTabbedContent) can now be unset #4241
The sin tax release
Fixes a SyntaxWarning
[0.52.1] - 2024-02-20
Fixed
- Fixed the check for animation level in
LoadingIndicator#4188
The Envy release
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
asynciolock attributeWidget.lockto be used to synchronize widget state #4134 - Added support for environment variable
TEXTUAL_ANIMATIONSto control what animations Textual displays #4062 - Add attribute
App.animation_levelto control whether animations on that app run or not #4062 - Added support for a
TEXTUAL_SCREENSHOT_LOCATIONenvironment variable to specify the location of an automated screenshot #4181 - Added support for a
TEXTUAL_SCREENSHOT_FILENAMEenvironment variable to specify the filename of an automated screenshot #4181 - Added an
asynciolock attributeWidget.lockto be used to synchronize widget state #4134 Widget.remove_childrennow accepts a CSS selector to specify which children to remove #4183Widget.batchcombines widget locking and app update batching #4183
The American friends release
Mostly fixes in this updated.
Note the breaking change below...
[0.51.0] - 2024-02-15
Added
- TextArea now has
read_onlymode #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
Tabnot being scrolled into view whenTabs.activeis assigned #4150 - Fixed
TabbedContent.TabActivatenot being posted whenTabbedContent.activeis assigned #4150
Changed
The tiny tint release
The half a century release
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
watchto 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
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
OptionListby adding max height of 100% #4021 - Fixed
DirectoryTree.clear_nodenot clearing the node specified #4122
Changed
DirectoryTree.reloadandDirectoryTree.reload_nodenow 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:
TextAreawill not useEscapeto shift focus if thetab_behaviouris the default #4110 TextAreacursor will now be invisible before first focus #4128- Fix toggling
TextArea.cursor_blinkreactive when widget does not have focus #4128
Added
The "truly your forgiveness I implore" release.
Hotfix for two issues.
[0.48.2] - 2024-02-02
Fixed
- Fixed a hang in the Linux driver when connected to a pipe #4104
- Fixed broken
OptionListOption.idmappings #4101
Changed
- Breaking change: keyboard navigation in
RadioSet,ListView,OptionList, andSelectionList, no longer allows highlighting disabled items #3881
The nevermore bug release
A small oversight with the TextArea theme
[0.48.1] - 2023-02-01
Fixed
TextAreauses CSS theme by default instead ofmonokai#4091
The "As of some one gently wrapping, wrapping at my chamber door" release.
The highlight of this release is the addition of soft wrapping to the TextArea, which you can see below:
soft-wrapping-demo.mp4
This makes TextArea one of our most powerful widgets. Looking forward to seeing what you build with it!
Note there is a breaking change here. The TextArea now defaults to a multi-line soft-wrapped editor rather than a more code oriented editor. If you want the original behaviour, use the code_editor classmethod. i.e. replace TextArea with TextArea.code_editor.
Also in this release is a new suspend decorator which will temporarily suspend the currently running app and allow you to launch another terminal app (which doesn't even need to be a Textual app).
There are plenty of other fixes and enhancements. See below for the full details...
[0.48.0] - 2023-02-01
Changed
- Breaking change: Significant changes to
TextArea.__init__default values/behaviour #3933soft_wrap=True- soft wrapping is now enabled by default.show_line_numbers=False- line numbers are now disabled by default.tab_behaviour="focus"- pressing the tab key now switches focus instead of indenting by default.
- Breaking change:
TextAreadefault theme changed to CSS, and default styling changed #4074 - Breaking change:
DOMNode.has_pseudo_classnow accepts a single name only #3970 - Made
textual.cache(formerlytextual._cache) public #3976 Tab.labelcan now be used to change the label of a tab #3979- Changed the default notification timeout from 3 to 5 seconds #4059
- Prior scroll animations are now cancelled on new scrolls #4081
Added
- Added
DOMNode.has_pseudo_classes#3970 - Added
Widget.allow_focusandWidget.allow_focus_children#3989 - Added
TextArea.soft_wrapreactive attribute added #3933 - Added
TextArea.tab_behaviourreactive attribute added #3933 - Added
TextArea.code_editorclassmethod/alternative constructor #3933 - Added
TextArea.wrapped_documentattribute which can convert between wrapped visual coordinates and locations #3933 - Added
show_line_numberstoTextArea.__init__#3933 - Added component classes allowing
TextAreato be styled using CSS #4074 - Added
Query.blurandQuery.focus#4012 - Added
MessagePump.message_queue_size#4012 - Added
TabbedContent.active_pane#4012 - Added
App.suspend#4064 - Added
App.action_suspend_process#4064
Fixed
- Parameter
animatefromDataTable.move_cursorwas being ignored #3840 - Fixed a crash if
DirectoryTree.show_rootwas set before the DOM was fully available #2363 - Live reloading of TCSS wouldn't apply CSS changes to screens under the top screen of the stack #3931
SelectionListoption IDs are usable as soon as the widget is instantiated #3903- Fix issue with
Strip.cropwhen crop window start aligned with strip end #3998 - Fixed Strip.crop_extend #4011
- Fix for percentage dimensions #4037
- Fixed a crash if the
TextArealanguage was set but tree-sitter language binaries were not installed #4045 - Ensuring
TextArea.SelectionChangedmessage only sends when the updated selection is different #3933 - Fixed declaration after nested rule set causing a parse error #4012
- ID and class validation was too lenient #3954
- Fixed CSS watcher crash if file becomes unreadable (even temporarily) #4079
- Fixed display of keys when used in conjunction with other keys #3050
- Fixed double detection of Escape on Windows #4038