Releases: Textualize/textual
The Freddy's hotfix Release
Hotfix to fix saving screenshots on Windows
[0.85.1] - 2024-10-26
Fixed
- Fixed encoding issue when saving files such as screenshots on Windows #5182
The Freddy's Revenge Release
This versions updates the demo app. The previous demo was written quite a while ago and needed a refresh. It's not quite finished (there are plenty more widgets to cover), but it is still a bug improvement over the old one.
python -m textual
Give it a shot, we think it is pretty fun to play with.
Screen.Recording.2024-10-25.at.16.02.46.mov
There are a number of other updates in this release, and some under-the-hood changes for even smoother updates and optimizations. See below for the full list...
Enjoy!
[0.85.0] - 2024-10-25
Changed
- Grid will now size children to the maximum height of a row #5113
- Markdown links will be opened with
App.open_url
automatically #5113 - The universal selector (
*
) will now not match widgets with the class-textual-system
(scrollbars, notifications etc) #5113 - Renamed
Screen.can_view
andWidget.can_view
toScreen.can_view_entire
andWidget.can_view_entire
#5174
Added
- Added Link widget #5113
- Added
open_links
toMarkdown
andMarkdownViewer
widgets #5113 - Added
App.DEFAULT_MODE
#5113 - Added
Containers.HorizontalGroup
andContainers.VerticalGroup
#5113 - Added
$
,£
,€
,(
,)
symbols to Digits #5113 - Added
Button.action
parameter to invoke action when clicked #5113 - Added
immediate
parameter to scroll methods #5164 - Added
textual._loop.loop_from_index
#5164 - Added
min_color
andmax_color
to Sparklines constructor, which take precedence over CSS #5174 - Added new demo
python -m textual
, not quite finished but better than the old one #5174 - Added
Screen.can_view_partial
andWidget.can_view_partial
#5174 - Added
App.is_web
property to indicate if the app is running via a web browser #5128 Enter
andLeave
events can now be used with theon
decorator #5159
Fixed
- Fixed glitchy ListView #5163
The Who You Gonna Call Release
This was mainly a hotfix for a potential infinite loop in the TextArea, although there are a few fun additions: see below
[0.84.0] - 2024-10-22
Fixed
Added
The Enhanced AF Release
The Digits widget can now display A-F, so you can use hex!
See below for the full changes.
[0.83.0] - 2024-10-10
Added
Changed
Screen.ALLOW_IN_MAXIMIZED_VIEW
will now default toApp.ALLOW_IN_MAXIMIZED_VIEW
#5088- Widgets matching
.-textual-system
will now be included in the maximize view by default #5088 - Digits are now thin by default, style with text-style: bold to get bold digits #5094
- Made
Widget.absolute_offset
public #5097 - Tooltips are now displayed directly below the mouse cursor #5097
Region.inflect
will now assume that margins overlap #5097Pilot.click
and friends will now accept a widget, in addition to a selector #5095
The Are you the Keymaster Release?
The highlight of this release is the new keymap support, which enables dynamic configuration of keys -- so you can now provide a way for users of your app to customize key bindings.
Keymaps aren't documented beyond the API level at the moment. That will happen in a few releases. In the meantime, @darrenburns has written up this new feature (which he also implemented) on his blog. Check it out:
https://darren.codes/posts/textual-keymaps/
See below for the full changes:
[0.82.0] - 2024-10-03
Fixed
- Fixed issue with screen not updating when auto_refresh was enabled #5063
- Fixed issues regarding loading indicator #5079
- Fixed issues with inspecting the lazy loaded widgets module #5080
Added
- Added
DOMNode.is_on_screen
property #5063 - Added support for keymaps (user configurable key bindings) #5038
- Added descriptions to bindings for all internal widgets, and updated casing to be consistent #5062
Changed
- Breaking change:
Widget.set_loading
no longer return an awaitable #5079
The glitch-free-tree release
Mostly tree related fixes and a updates. Enjoy.
[0.81.0] - 2024-09-25
Added
- Added
x_axis
andy_axis
parameters toWidget.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
The Scanners release
The best decade release
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 todock
,hatch
andsplit
styles #4982 - Support for
"none"
added to box and border style properties (e.gwidget.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 toNone
#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 to2
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 toNone
#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 respectingwidth
parameter #4978 - Fixed
RichLog
writing at wrong width whenwrite
occurs before width is known (e.g. incompose
oron_mount
) #4978 - Fixed
RichLog.write
incorrectly shrinking width toRichLog.min_width
whenshrink=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
The Query faster Release
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
, andScreen.ESCAPE_TO_MINIMIZE
#4951 - Added
DOMNode.query_exactly_one
#4950 - Added
SelectorSet.is_simple
#4950