ftxui 7.0.0#287861
Merged
Merged
Conversation
botantony
approved these changes
Jun 14, 2026
Contributor
|
🤖 An automated task has requested bottles to be published to this PR. Caution Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Created by
brew bumpCreated with
brew bump-formula-pr.Details
release notes
Build
This provides a single-header (
ftxui.hpp) and single-source (ftxui.cpp)version of the library, as well as a truly single-file header-only version
(
ftxui_all.hpp).This is the easiest way to vendor FTXUI into your project.
See #1252.
Usage:
target_link_libraries(your_target PRIVATE ftxui::ftxui)Bazel:
deps = ["@ftxui//:ftxui"]See #1252.
This requires:
Usage:
uint8_tfor ABI layout stability.ScreenandNodefor futureextensibility without breaking ABI.
General
Breaking (Renames):
Pixelis renamed toCell.Imageis renamed toSurface.ScreenInteractiveis renamed toApp.PixelAtmethod is renamed toCellAt.Compatibility aliases and headers are provided to avoid breaking existing code.
Breaking. Move to
std::string_viewinstead ofconst std::string&whereapplicable. This yields better interoperability with string literals and
avoids unnecessary copies. Thanks @mikomikotaishi for PR #1154
Component
sigactionfor robust signal masking and cleanup handler preservation. Protect against double terminal restoration on exit using atomic raw-state tracking. Add support for additional POSIX signals (SIGBUS,SIGSYSas crash signals, andSIGQUIT,SIGHUPas deferred termination signals) and fix async-signal-safety issues in crash paths.Inputcursor visibility when using a customRendereron nested containers. See #1220. Thanks @nmarks99.Inputcursor positioning and scroll stability. See #1196. Thanks @739C1AE2.Inputsupport for non-ASCII characters in password mode. See #1196. Thanks @739C1AE2.App. See #1196. Thanks @739C1AE2.App::HandlePipedInput(false).Thanks @HarryPehkonen for PR #1094.
output. Thanks @zozowell in #1064.
ftxui::Slider. The "up" key was previously decreasing thevalue. Thanks @its-pablo in #1093 for reporting the issue.
Basic Multilingual Plane (BMP) are now correctly processed. Thanks @739C1AE2
in #1160 for fixing the issue.
and fixing the issue.
App::Post(..)is now thread safe. Thanks @739C1AE2 in~1183 for reporting the issue. This regressed in non released versions.
Dom
\nwithintext()andvtext(). Thanks@mikomikotaishi in #1215.
dboxnow propagates focus from top-most layers to bottom-mostlayers, matching the visual representation. See #1213. Thanks @vtnerd.
color the border of a table. Thanks @Sckab in #1186 for proposing it.
ComputeShrinkHard. Thanks @its-pablo in #1137 forreporting and fixing the issue.
vbox/hbox/dboxto allow a container of Element asas input. Thanks @nbusser in #1117.
behaviors inherited from Node are correctly implemented. Thanks KenReneris for
#1070.
gaugein a flexible now takes the available space in theopposite direction. Thanks @Ardet696 in #1203.
_factorvariants of flex decorators. These allowspecifying custom grow/shrink factors:
flex_factor(grow, shrink),flex_grow_factor(grow),flex_shrink_factor(shrink), withxandyaxis variants.Usage:
element | flex_grow_factor(3).Screen
Screen::ResetPositioninto a single parameterized CSI cursor-up(
\x1B[<n>A) instead of emitting one\x1B[1Aper row. This reduces theper-frame escape bytes during steady-state redraw (e.g. ~197 -> 6 bytes for a
50-row screen, ~33x). On-screen output is unchanged.
Screen::ToString(),Color::Print()andstring_width().This was achieved by:
string_widthfor cells with single-byte data (theprimary driver for performance gains).
Benchmarks show a significant improvement:
Thanks @killerdevildog for initiating (2) in #1188.
What's Changed
Examples(fromREADME.md) section link by @deyna256 in FixExamples(fromREADME.md) section link ArthurSonzogni/FTXUI#1079Merge()specializations to support moreElementcontainers by @nbusser in AddMerge()specializations to support moreElementcontainers ArthurSonzogni/FTXUI#1117text()by @mikomikotaishi in Add newline support withintext()ArthurSonzogni/FTXUI#1215New Contributors
Examples(fromREADME.md) section link ArthurSonzogni/FTXUI#1079Merge()specializations to support moreElementcontainers ArthurSonzogni/FTXUI#1117Full Changelog: ArthurSonzogni/FTXUI@v6.1.9...v7.0.0
View the full release notes at https://github.com/ArthurSonzogni/FTXUI/releases/tag/v7.0.0.