Releases: salt-die/batgrl
Fix array out of bounds bug in regions.
Add cancellations for requests for device status reports.
Bug Fix: Without cancellation, the app may never render if terminal expects a device status report, but receives no input.
The Cython Re-release.
Moving regions from sixel branch into main as it's much faster.
Rewrite of regioning algorithm in cython for roughly 60x speedup. This is a first step towards a larger goal of cythonizing all rendering to be performant enough to handle sixel graphics. Follow the sixel branch to keep track of this progress.
Several minor bug fixes in this update as well.
This will likely be last release of this year as Advent of Code descends upon me and consumes the remainder of my free time.
The Cython Release.
Rewrite of regioning algorithm in cython for roughly 60x speedup. This is a first step towards a larger goal of cythonizing all rendering to be performant enough to handle sixel graphics. Follow the sixel branch to keep track of this progress.
Several minor bug fixes in this update as well.
This will likely be last release of this year as Advent of Code descends upon me and consumes the remainder of my free time.
RecycleView!
Added RecycleView
, a gadget that can display lots of data using very few gadgets!
Added additional size constraint options and new handle effects to split layouts.
"reverse" field added to Cell
"reverse"
field added to Cell
So before this change, if one wanted, say, an upper 5/8ths block (which doesn't exist), a lower 3/8ths block ("▃"
) could instead be used with the foreground and background colors swapped.
The issue with this is alpha compositing always composites with the background color! So the flipped foreground and background colors will look sorely out-of-place as soon as any transparency is enabled.
"reverse"
fixes this. Now, an upper 5/8ths block can be created by setting the cell's "reverse"
field and alpha compositing will still look correct using the "bg_color"
field.
Additional changes:
- Minor fixes to ansi parsing on windows.
text_tools.cell
function renamed totext_tools.new_cell
.- ANSI art viewer (parses and displays
.ans
files) added. - PosHint and SizeHint dataclasses removed. PosHintDict and SizeHintDict renamed PosHint/SizeHint, respectively.
- Added optional filter for FileChooser.
- Added dynamic bars option to ScrollView.
- Continued doc string improvements.
- Small bug fixes.
Inline Mode!
v0.35.0
- Inline mode added (apps are rendered below the terminal prompt in inline mode). Apps can swap from alternate buffer to inline mode while running. Note that resizing terminal in inline mode (or swapping to inline mode after a resize) will trigger a screen clear. See it in action: https://github.com/user-attachments/assets/21990d3b-8290-46c1-a64c-2d284d5c2183
- Terminal focus events now tracked and dispatched.
- Ansi input parsing refactored. Large pastes should no longer be broken into multiple paste events.
- Removed feature: saving output to asciicast format.
- Python 3.12 now required. Numpy 2.0 now required.
- Events are now mutable dataclasses.
Motion along Bezier curves!
This release adds a BezierCurve
type and a coroutine move_along_path
that will move a gadget along a sequence of curves. move_along_path
also accepts different easings to control movement. Additional changes include:
VideoPlayer
andBrailleVideoPlayer
renamedVideo
andBrailleVideo
, respectively.clear()
method added toText
andGraphics
andshift()
method added toText
.- Gadget minimum height/width is now 0 from 1.
on_progress
parameter oftween()
method ofGadget
now accepts a callable with a single argument (the argument is the current progress of the tween).- Text effects added. A recreation of some effects from https://github.com/ChrisBuilds/terminaltexteffects.
A new canvas data type.
Introducing the new canvas data type, Cell! Major changes:
- Char renamed to Cell.
- Cell has additional fields "fg_color" and "bg_color".
colors
ndarray of Text and _Root gadgets removed.- ColorPair removed.
Additional changes:
- Theming is now done with a dictionary of hexcodes.
- GadgetBase is now Gadget.
- Pane gadget replaces the old
Gadget
type. Pane also alpha composites. - Transparency semantics for text gadgets updated. Can now alpha composite with
the background of transparent text. - An
alpha
parameter/attribute has been added to several gadgets to use new
compositing. render()
method is now private, renamed_render()
.- Resizable behavior removed.
- The following gadgets no longer inherit from Text, but prefer composition:
BoxImage, BrailleImage, BrailleVideoPlayer, ProgressBar, Slider, Sparkline - Running code in a separate thread is now optional for Console.
- MenuItem is now private, renamed _MenuItem.
Critical bug fixes.
Changes in v0.31.1
- Fixed missing
_pos
attribute from_Root
. This caused errors when gettingtop
,left
,right
,bottom
attributes. - Tasks returned by videos and animations don't propagate cancellations. Unwanted behavior could occur if while awaiting these tasks the video was paused or stopped.