chore: release (#1866)
## 🤖 New release * `ratatui-core`: 0.1.0-alpha.5 -> 0.1.0-alpha.6 * `ratatui-crossterm`: 0.1.0-alpha.4 -> 0.1.0-alpha.5 * `ratatui-widgets`: 0.3.0-alpha.4 -> 0.3.0-alpha.5 * `ratatui-macros`: 0.7.0-alpha.3 -> 0.7.0-alpha.4 * `ratatui-termwiz`: 0.1.0-alpha.4 -> 0.1.0-alpha.5 * `ratatui-termion`: 0.1.0-alpha.4 -> 0.1.0-alpha.5 * `ratatui`: 0.30.0-alpha.4 -> 0.30.0-alpha.5 <details><summary><i><b>Changelog</b></i></summary><p> ## `ratatui-core` <blockquote> ## [0.30.0-alpha.1](https://github.com/ratatui/ratatui/releases/tag/0.30.0-alpha.1) - 2025-01-14 0.30.0-alpha.1 is a pre-release of the upcoming 0.30.0 release. It is intended for testing and feedback. Please report any issues you encounter. The primary change is that we've split the crate into multiple crates. The main crate is now `ratatui-core` and the widgets are in `ratatui-widgets`. This allows for widget crates to depend on a stable core crate, and for the core crate to be used without widgets. ### Features - [56d5e05](56d5e05762) *(bar)* Update label and text_value to accept Into<> by @Emivvvvv in [#1471](https://github.com/ratatui/ratatui/pull/1471) [**breaking**] - [b76ad3b](b76ad3b02e) *(bar)* Impl Styled for Bar by @Emivvvvv in [#1476](https://github.com/ratatui/ratatui/pull/1476) - [369b18e](369b18eef2) *(barchart)* Reduce barchart creation verbosity by @Emivvvvv in [#1453](https://github.com/ratatui/ratatui/pull/1453) - [9275d34](9275d3421c) *(layout)* Add Offset::new() constructor by @joshka in [#1547](https://github.com/ratatui/ratatui/pull/1547) - [ff729b7](ff729b7607) *(scrollbar)* Support retrieving the current position of state by @orhun in [#1552](https://github.com/ratatui/ratatui/pull/1552) - [ce4856a](ce4856a65f) *(widgets)* Add the missing constructor to canvas types by @orhun in [#1538](https://github.com/ratatui/ratatui/pull/1538) - [50ba965](50ba96518f) *(uncategorized)* Add a new RatatuiMascot widget by @Its-Just-Nans in [#1584](https://github.com/ratatui/ratatui/pull/1584) - [1d28c89](1d28c89fe5) *(uncategorized)* Add conversions for anstyle by @joshka in [#1581](https://github.com/ratatui/ratatui/pull/1581) ### Bug Fixes - [860e48b](860e48b0f0) *(buffer)* Buffer::get_pos() now correctly handles index > u16::MAX by @joshka in [#1447](https://github.com/ratatui/ratatui/pull/1447) - [ec30390](ec30390446) *(canvas)* Round coordinates to nearest grid cell by @joshka in [#1507](https://github.com/ratatui/ratatui/pull/1507) - [afd1ce1](afd1ce179b) *(canvas)* Lines that start outside the visible grid are now drawn by @renesat in [#1501](https://github.com/ratatui/ratatui/pull/1501) - [18e70d3](18e70d3d51) *(crossterm)* Terminal should keep Bold when removing Dim by @MarSik in [#1541](https://github.com/ratatui/ratatui/pull/1541) - [a692a6e](a692a6e371) *(lint)* Apply rust 1.84 clippy suggestions by @joshka in [#1612](https://github.com/ratatui/ratatui/pull/1612) - [3b13240](3b13240728) *(scrollbar)* Check for area.is_empty() before rendering by @farmeroy in [#1529](https://github.com/ratatui/ratatui/pull/1529) - [f57b696](f57b696fdc) *(span)* Dont render control characters by @EdJoPaTo in [#1312](https://github.com/ratatui/ratatui/pull/1312) - [2ce958e](2ce958e38c) *(table)* Allow display of additional table row, if row height > 1 by @Lunderberg in [#1452](https://github.com/ratatui/ratatui/pull/1452) - [2892bdd](2892bddce6) *(uncategorized)* Rust 1.83 clippy lints by @joshka in [#1527](https://github.com/ratatui/ratatui/pull/1527) - [36e2d1b](36e2d1bda1) *(uncategorized)* Add feature(doc_cfg) when generating docs by @joshka in [#1506](https://github.com/ratatui/ratatui/pull/1506) - [4d7704f](4d7704fba5) *(uncategorized)* Make StatefulWidget and Ref work with unsized State by @thscharler in [#1505](https://github.com/ratatui/ratatui/pull/1505) - [7b87509](7b875091e1) *(uncategorized)* Typo by @marcoieni in [#1480](https://github.com/ratatui/ratatui/pull/1480) ### Refactor - [f132fa1](f132fa1715) *(table)* Small readability improvements by @joshka in [#1510](https://github.com/ratatui/ratatui/pull/1510) - [904b0aa](904b0aa723) *(uncategorized)* Move symbols to modules by @joshka in [#1594](https://github.com/ratatui/ratatui/pull/1594) - [7c8573f](7c8573f575) *(uncategorized)* Rearrange selection_spacing code by @raylu in [#1540](https://github.com/ratatui/ratatui/pull/1540) - [217c57c](217c57cd60) *(uncategorized)* Modularize backends by @orhun in [#1508](https://github.com/ratatui/ratatui/pull/1508) - [e461b72](e461b724a6) *(uncategorized)* Move {Stateful,}Widget{,Ref} types into individual files by @joshka in [#1479](https://github.com/ratatui/ratatui/pull/1479) ### Documentation - [d291042](d291042e69) *(block)* Revise the block example by @orhun in [#1520](https://github.com/ratatui/ratatui/pull/1520) - [fcde9cb](fcde9cb9c3) *(changelog)* Fix typo by @orhun in [#1463](https://github.com/ratatui/ratatui/pull/1463) - [3ae6bf1](3ae6bf1d6f) *(contributing)* Use cargo-xtask for instructions by @orhun in [#1509](https://github.com/ratatui/ratatui/pull/1509) - [04e1b32](04e1b32cd2) *(layout)* Rename cassowary-rs references to cassowary by @miroim in [#1448](https://github.com/ratatui/ratatui/pull/1448) - [088aac1](088aac136d) *(readme)* Tweak links and badges by @joshka in [#1598](https://github.com/ratatui/ratatui/pull/1598) - [6e43672](6e436725e4) *(readme)* Reimagine README.md by @orhun in [#1569](https://github.com/ratatui/ratatui/pull/1569) - [8f28247](8f282473b2) *(readme)* Correct examples links by @HoKim98 in [#1484](https://github.com/ratatui/ratatui/pull/1484) - [9f90f74](9f90f7495f) *(readme)* Fix broken link by @nilsmartel in [#1485](https://github.com/ratatui/ratatui/pull/1485) - [260af68](260af68a34) *(readme)* Include iocraft as an alternative by @kdheepak in [#1483](https://github.com/ratatui/ratatui/pull/1483) - [dafb716](dafb716f9d) *(widgets)* Add example for grouped barchart by @orhun in [#1566](https://github.com/ratatui/ratatui/pull/1566) - [ed5dd73](ed5dd73084) *(widgets)* Add example for tabs by @orhun in [#1559](https://github.com/ratatui/ratatui/pull/1559) - [fab5321](fab532171d) *(widgets)* Add example for scrollbar by @orhun in [#1545](https://github.com/ratatui/ratatui/pull/1545) - [898aef6](898aef6e2f) *(widgets)* Add example for list by @orhun in [#1542](https://github.com/ratatui/ratatui/pull/1542) - [452366a](452366aa9e) *(widgets)* Add example for sparkline by @orhun in [#1556](https://github.com/ratatui/ratatui/pull/1556) - [6ddde0e](6ddde0e8a8) *(widgets)* Add example for table by @orhun in [#1557](https://github.com/ratatui/ratatui/pull/1557) - [93ad6b8](93ad6b828c) *(widgets)* Update values in chart example by @orhun in [#1558](https://github.com/ratatui/ratatui/pull/1558) - [15f442a](15f442a71e) *(widgets)* Add example for paragraph by @orhun in [#1544](https://github.com/ratatui/ratatui/pull/1544) - [17bba14](17bba14540) *(widgets)* Move the logo example to widgets by @orhun in [#1543](https://github.com/ratatui/ratatui/pull/1543) - [f2451e7](f2451e7f1e) *(widgets)* Add example for gauge by @orhun in [#1539](https://github.com/ratatui/ratatui/pull/1539) - [4f0a8b2](4f0a8b21af) *(widgets)* Add example for canvas by @orhun in [#1533](https://github.com/ratatui/ratatui/pull/1533) - [91147c4](91147c4d75) *(widgets)* Add example for chart by @orhun in [#1536](https://github.com/ratatui/ratatui/pull/1536) - [6dd25a3](6dd25a3111) *(widgets)* Add example for calendar by @orhun in [#1532](https://github.com/ratatui/ratatui/pull/1532) - [99ac005](99ac005b06) *(widgets)* Add simple barchart example by @joshka in [#1511](https://github.com/ratatui/ratatui/pull/1511) - [da05957](da05957fa0) *(uncategorized)* Add widget-ref-container example by @joshka in [#1603](https://github.com/ratatui/ratatui/pull/1603) - [1798512](1798512e94) *(uncategorized)* Fix wording in user_input example by @dawedawe in [#1611](https://github.com/ratatui/ratatui/pull/1611) - [03066d8](03066d81bf) *(uncategorized)* Fix punctuation in canvas.rs documentation by @dawedawe in [#1583](https://github.com/ratatui/ratatui/pull/1583) - [e411d9e](e411d9ec3e) *(uncategorized)* Add input form example by @joshka in [#1551](https://github.com/ratatui/ratatui/pull/1551) - [ed071f3](ed071f3723) *(uncategorized)* Add mouse-drawing example by @joshka in [#1546](https://github.com/ratatui/ratatui/pull/1546) - [46902f5](46902f5587) *(uncategorized)* Improve docs for workspace crates by @orhun in [#1490](https://github.com/ratatui/ratatui/pull/1490) - [a6b5792](a6b579223f) *(uncategorized)* Fix example link in readme by @thomas-tacquet in [#1462](https://github.com/ratatui/ratatui/pull/1462) ### Miscellaneous Tasks - [abe2f27](abe2f27328) *(backend)* Change From<T> impls to new backend specific IntoBackend and FromBackend traits by @joshka in [#1464](https://github.com/ratatui/ratatui/pull/1464) [**breaking**] - [0a47ebd](0a47ebd94b) *(bencher)* Update bencher CLI usage by @epompeii in [#1470](https://github.com/ratatui/ratatui/pull/1470) - [a0979d6](a0979d6871) *(build)* Remove cargo lint by @joshka in [#1549](https://github.com/ratatui/ratatui/pull/1549) - [eaa4038](eaa403856e) *(ci)* Install pre-built binaries for cargo-rdme by @orhun in [#1477](https://github.com/ratatui/ratatui/pull/1477) - [e5e2316](e5e2316451) *(ci)* Add check for keeping README.md up-to-date by @orhun in [#1473](https://github.com/ratatui/ratatui/pull/1473) - [2ef3583](2ef3583eff) *(ci)* Replace cargo-make with a custom cargo-xtask by @joshka in [#1461](https://github.com/ratatui/ratatui/pull/1461) - [98df774](98df774d7f) *(core)* Move core types to ratatui-core by @joshka in [#1460](https://github.com/ratatui/ratatui/pull/1460) - [35eba76](35eba76b4d) *(example)* Move demo2 to top level folder by @joshka in [#1524](https://github.com/ratatui/ratatui/pull/1524) - [5f57d35](5f57d35234) *(examples)* Add colors explorer demo app by @orhun in [#1580](https://github.com/ratatui/ratatui/pull/1580) - [5c021bf](5c021bf344) *(examples)* Add chart demo app by @orhun in [#1579](https://github.com/ratatui/ratatui/pull/1579) - [9721300](9721300a47) *(examples)* Add canvas demo app by @orhun in [#1578](https://github.com/ratatui/ratatui/pull/1578) - [a6a1368](a6a1368250) *(examples)* Add calendar explorer demo app by @orhun in [#1571](https://github.com/ratatui/ratatui/pull/1571) - [819e92c](819e92cd44) *(examples)* Add weather demo app by @orhun in [#1567](https://github.com/ratatui/ratatui/pull/1567) - [b5f7e44](b5f7e44183) *(examples)* Move async example to apps by @joshka in [#1503](https://github.com/ratatui/ratatui/pull/1503) - [17316ec](17316ec5d0) *(github)* Enable sponsorship button by @orhun in [#1478](https://github.com/ratatui/ratatui/pull/1478) - [d3f01eb](d3f01ebf6e) *(lint)* Ensure lint config is correct by @joshka in [#1528](https://github.com/ratatui/ratatui/pull/1528) - [2b7ec5c](2b7ec5cb7f) *(widgets)* Enable calendar widget as default by @orhun in [#1521](https://github.com/ratatui/ratatui/pull/1521) - [d201b8e](d201b8e5dd) *(xtask)* Check lints for only library targets by @orhun in [#1531](https://github.com/ratatui/ratatui/pull/1531) - [6f21319](6f213191ef) *(uncategorized)* Rename examples with clashing names by @joshka in [#1597](https://github.com/ratatui/ratatui/pull/1597) - [11cbb2b](11cbb2ba87) *(uncategorized)* Use cargo xtask for bacon clippy command by @joshka in [#1592](https://github.com/ratatui/ratatui/pull/1592) - [b544e39](b544e394c9) *(uncategorized)* Use clap instead of argh for demo example by @joshka in [#1591](https://github.com/ratatui/ratatui/pull/1591) - [9a54198](9a541981b8) *(uncategorized)* Make source files non-executable by @orhun in [#1577](https://github.com/ratatui/ratatui/pull/1577) - [357ae7e](357ae7e251) *(uncategorized)* Move terminal types to ratatui-core by @joshka in [#1530](https://github.com/ratatui/ratatui/pull/1530) [**breaking**] - [21e62d8](21e62d84c2) *(uncategorized)* Move the demo example to main folder by @joshka in [#1523](https://github.com/ratatui/ratatui/pull/1523) - [fbf6050](fbf6050c86) *(uncategorized)* Prepare alpha modularization release by @joshka in [#1525](https://github.com/ratatui/ratatui/pull/1525) - [e4e95bc](e4e95bcecf) *(uncategorized)* Remove --color always flags from bacon.toml by @joshka in [#1502](https://github.com/ratatui/ratatui/pull/1502) - [a41c97b](a41c97b413) *(uncategorized)* Move unstable widget refs to ratatui by @joshka in [#1491](https://github.com/ratatui/ratatui/pull/1491) [**breaking**] - [e7085e3](e7085e3a3e) *(uncategorized)* Move widgets into ratatui-widgets crate by @joshka in [#1474](https://github.com/ratatui/ratatui/pull/1474) - [f1d0a18](f1d0a18375) *(uncategorized)* Move ratatui crate into workspace folder by @joshka in [#1459](https://github.com/ratatui/ratatui/pull/1459) - [55fb2d2](55fb2d2e56) *(uncategorized)* Update repo links to ratatui instead of ratatui-org by @joshka in [#1458](https://github.com/ratatui/ratatui/pull/1458) ### Continuous Integration - [4a871f9](4a871f993e) *(uncategorized)* Refactor xtask / toml formatting by @joshka in [#1602](https://github.com/ratatui/ratatui/pull/1602) ### New Contributors * @dawedawe made their first contribution in [#1611](https://github.com/ratatui/ratatui/pull/1611) * @Its-Just-Nans made their first contribution in [#1584](https://github.com/ratatui/ratatui/pull/1584) * @MarSik made their first contribution in [#1541](https://github.com/ratatui/ratatui/pull/1541) * @raylu made their first contribution in [#1540](https://github.com/ratatui/ratatui/pull/1540) * @renesat made their first contribution in [#1501](https://github.com/ratatui/ratatui/pull/1501) * @HoKim98 made their first contribution in [#1484](https://github.com/ratatui/ratatui/pull/1484) * @nilsmartel made their first contribution in [#1485](https://github.com/ratatui/ratatui/pull/1485) * @marcoieni made their first contribution in [#1480](https://github.com/ratatui/ratatui/pull/1480) * @epompeii made their first contribution in [#1470](https://github.com/ratatui/ratatui/pull/1470) * @thomas-tacquet made their first contribution in [#1462](https://github.com/ratatui/ratatui/pull/1462) * @miroim made their first contribution in [#1448](https://github.com/ratatui/ratatui/pull/1448) **Full Changelog**: https://github.com/ratatui/ratatui/compare/v0.29.0...0.30.0-alpha.1 </blockquote> ## `ratatui-crossterm` <blockquote> ## [0.30.0-alpha.1](https://github.com/ratatui/ratatui/releases/tag/0.30.0-alpha.1) - 2025-01-14 0.30.0-alpha.1 is a pre-release of the upcoming 0.30.0 release. It is intended for testing and feedback. Please report any issues you encounter. The primary change is that we've split the crate into multiple crates. The main crate is now `ratatui-core` and the widgets are in `ratatui-widgets`. This allows for widget crates to depend on a stable core crate, and for the core crate to be used without widgets. ### Features - [56d5e05](56d5e05762) *(bar)* Update label and text_value to accept Into<> by @Emivvvvv in [#1471](https://github.com/ratatui/ratatui/pull/1471) [**breaking**] - [b76ad3b](b76ad3b02e) *(bar)* Impl Styled for Bar by @Emivvvvv in [#1476](https://github.com/ratatui/ratatui/pull/1476) - [369b18e](369b18eef2) *(barchart)* Reduce barchart creation verbosity by @Emivvvvv in [#1453](https://github.com/ratatui/ratatui/pull/1453) - [9275d34](9275d3421c) *(layout)* Add Offset::new() constructor by @joshka in [#1547](https://github.com/ratatui/ratatui/pull/1547) - [ff729b7](ff729b7607) *(scrollbar)* Support retrieving the current position of state by @orhun in [#1552](https://github.com/ratatui/ratatui/pull/1552) - [ce4856a](ce4856a65f) *(widgets)* Add the missing constructor to canvas types by @orhun in [#1538](https://github.com/ratatui/ratatui/pull/1538) - [50ba965](50ba96518f) *(uncategorized)* Add a new RatatuiMascot widget by @Its-Just-Nans in [#1584](https://github.com/ratatui/ratatui/pull/1584) - [1d28c89](1d28c89fe5) *(uncategorized)* Add conversions for anstyle by @joshka in [#1581](https://github.com/ratatui/ratatui/pull/1581) ### Bug Fixes - [860e48b](860e48b0f0) *(buffer)* Buffer::get_pos() now correctly handles index > u16::MAX by @joshka in [#1447](https://github.com/ratatui/ratatui/pull/1447) - [ec30390](ec30390446) *(canvas)* Round coordinates to nearest grid cell by @joshka in [#1507](https://github.com/ratatui/ratatui/pull/1507) - [afd1ce1](afd1ce179b) *(canvas)* Lines that start outside the visible grid are now drawn by @renesat in [#1501](https://github.com/ratatui/ratatui/pull/1501) - [18e70d3](18e70d3d51) *(crossterm)* Terminal should keep Bold when removing Dim by @MarSik in [#1541](https://github.com/ratatui/ratatui/pull/1541) - [a692a6e](a692a6e371) *(lint)* Apply rust 1.84 clippy suggestions by @joshka in [#1612](https://github.com/ratatui/ratatui/pull/1612) - [3b13240](3b13240728) *(scrollbar)* Check for area.is_empty() before rendering by @farmeroy in [#1529](https://github.com/ratatui/ratatui/pull/1529) - [f57b696](f57b696fdc) *(span)* Dont render control characters by @EdJoPaTo in [#1312](https://github.com/ratatui/ratatui/pull/1312) - [2ce958e](2ce958e38c) *(table)* Allow display of additional table row, if row height > 1 by @Lunderberg in [#1452](https://github.com/ratatui/ratatui/pull/1452) - [2892bdd](2892bddce6) *(uncategorized)* Rust 1.83 clippy lints by @joshka in [#1527](https://github.com/ratatui/ratatui/pull/1527) - [36e2d1b](36e2d1bda1) *(uncategorized)* Add feature(doc_cfg) when generating docs by @joshka in [#1506](https://github.com/ratatui/ratatui/pull/1506) - [4d7704f](4d7704fba5) *(uncategorized)* Make StatefulWidget and Ref work with unsized State by @thscharler in [#1505](https://github.com/ratatui/ratatui/pull/1505) - [7b87509](7b875091e1) *(uncategorized)* Typo by @marcoieni in [#1480](https://github.com/ratatui/ratatui/pull/1480) ### Refactor - [f132fa1](f132fa1715) *(table)* Small readability improvements by @joshka in [#1510](https://github.com/ratatui/ratatui/pull/1510) - [904b0aa](904b0aa723) *(uncategorized)* Move symbols to modules by @joshka in [#1594](https://github.com/ratatui/ratatui/pull/1594) - [7c8573f](7c8573f575) *(uncategorized)* Rearrange selection_spacing code by @raylu in [#1540](https://github.com/ratatui/ratatui/pull/1540) - [217c57c](217c57cd60) *(uncategorized)* Modularize backends by @orhun in [#1508](https://github.com/ratatui/ratatui/pull/1508) - [e461b72](e461b724a6) *(uncategorized)* Move {Stateful,}Widget{,Ref} types into individual files by @joshka in [#1479](https://github.com/ratatui/ratatui/pull/1479) ### Documentation - [d291042](d291042e69) *(block)* Revise the block example by @orhun in [#1520](https://github.com/ratatui/ratatui/pull/1520) - [fcde9cb](fcde9cb9c3) *(changelog)* Fix typo by @orhun in [#1463](https://github.com/ratatui/ratatui/pull/1463) - [3ae6bf1](3ae6bf1d6f) *(contributing)* Use cargo-xtask for instructions by @orhun in [#1509](https://github.com/ratatui/ratatui/pull/1509) - [04e1b32](04e1b32cd2) *(layout)* Rename cassowary-rs references to cassowary by @miroim in [#1448](https://github.com/ratatui/ratatui/pull/1448) - [088aac1](088aac136d) *(readme)* Tweak links and badges by @joshka in [#1598](https://github.com/ratatui/ratatui/pull/1598) - [6e43672](6e436725e4) *(readme)* Reimagine README.md by @orhun in [#1569](https://github.com/ratatui/ratatui/pull/1569) - [8f28247](8f282473b2) *(readme)* Correct examples links by @HoKim98 in [#1484](https://github.com/ratatui/ratatui/pull/1484) - [9f90f74](9f90f7495f) *(readme)* Fix broken link by @nilsmartel in [#1485](https://github.com/ratatui/ratatui/pull/1485) - [260af68](260af68a34) *(readme)* Include iocraft as an alternative by @kdheepak in [#1483](https://github.com/ratatui/ratatui/pull/1483) - [dafb716](dafb716f9d) *(widgets)* Add example for grouped barchart by @orhun in [#1566](https://github.com/ratatui/ratatui/pull/1566) - [ed5dd73](ed5dd73084) *(widgets)* Add example for tabs by @orhun in [#1559](https://github.com/ratatui/ratatui/pull/1559) - [fab5321](fab532171d) *(widgets)* Add example for scrollbar by @orhun in [#1545](https://github.com/ratatui/ratatui/pull/1545) - [898aef6](898aef6e2f) *(widgets)* Add example for list by @orhun in [#1542](https://github.com/ratatui/ratatui/pull/1542) - [452366a](452366aa9e) *(widgets)* Add example for sparkline by @orhun in [#1556](https://github.com/ratatui/ratatui/pull/1556) - [6ddde0e](6ddde0e8a8) *(widgets)* Add example for table by @orhun in [#1557](https://github.com/ratatui/ratatui/pull/1557) - [93ad6b8](93ad6b828c) *(widgets)* Update values in chart example by @orhun in [#1558](https://github.com/ratatui/ratatui/pull/1558) - [15f442a](15f442a71e) *(widgets)* Add example for paragraph by @orhun in [#1544](https://github.com/ratatui/ratatui/pull/1544) - [17bba14](17bba14540) *(widgets)* Move the logo example to widgets by @orhun in [#1543](https://github.com/ratatui/ratatui/pull/1543) - [f2451e7](f2451e7f1e) *(widgets)* Add example for gauge by @orhun in [#1539](https://github.com/ratatui/ratatui/pull/1539) - [4f0a8b2](4f0a8b21af) *(widgets)* Add example for canvas by @orhun in [#1533](https://github.com/ratatui/ratatui/pull/1533) - [91147c4](91147c4d75) *(widgets)* Add example for chart by @orhun in [#1536](https://github.com/ratatui/ratatui/pull/1536) - [6dd25a3](6dd25a3111) *(widgets)* Add example for calendar by @orhun in [#1532](https://github.com/ratatui/ratatui/pull/1532) - [99ac005](99ac005b06) *(widgets)* Add simple barchart example by @joshka in [#1511](https://github.com/ratatui/ratatui/pull/1511) - [da05957](da05957fa0) *(uncategorized)* Add widget-ref-container example by @joshka in [#1603](https://github.com/ratatui/ratatui/pull/1603) - [1798512](1798512e94) *(uncategorized)* Fix wording in user_input example by @dawedawe in [#1611](https://github.com/ratatui/ratatui/pull/1611) - [03066d8](03066d81bf) *(uncategorized)* Fix punctuation in canvas.rs documentation by @dawedawe in [#1583](https://github.com/ratatui/ratatui/pull/1583) - [e411d9e](e411d9ec3e) *(uncategorized)* Add input form example by @joshka in [#1551](https://github.com/ratatui/ratatui/pull/1551) - [ed071f3](ed071f3723) *(uncategorized)* Add mouse-drawing example by @joshka in [#1546](https://github.com/ratatui/ratatui/pull/1546) - [46902f5](46902f5587) *(uncategorized)* Improve docs for workspace crates by @orhun in [#1490](https://github.com/ratatui/ratatui/pull/1490) - [a6b5792](a6b579223f) *(uncategorized)* Fix example link in readme by @thomas-tacquet in [#1462](https://github.com/ratatui/ratatui/pull/1462) ### Miscellaneous Tasks - [abe2f27](abe2f27328) *(backend)* Change From<T> impls to new backend specific IntoBackend and FromBackend traits by @joshka in [#1464](https://github.com/ratatui/ratatui/pull/1464) [**breaking**] - [0a47ebd](0a47ebd94b) *(bencher)* Update bencher CLI usage by @epompeii in [#1470](https://github.com/ratatui/ratatui/pull/1470) - [a0979d6](a0979d6871) *(build)* Remove cargo lint by @joshka in [#1549](https://github.com/ratatui/ratatui/pull/1549) - [eaa4038](eaa403856e) *(ci)* Install pre-built binaries for cargo-rdme by @orhun in [#1477](https://github.com/ratatui/ratatui/pull/1477) - [e5e2316](e5e2316451) *(ci)* Add check for keeping README.md up-to-date by @orhun in [#1473](https://github.com/ratatui/ratatui/pull/1473) - [2ef3583](2ef3583eff) *(ci)* Replace cargo-make with a custom cargo-xtask by @joshka in [#1461](https://github.com/ratatui/ratatui/pull/1461) - [98df774](98df774d7f) *(core)* Move core types to ratatui-core by @joshka in [#1460](https://github.com/ratatui/ratatui/pull/1460) - [35eba76](35eba76b4d) *(example)* Move demo2 to top level folder by @joshka in [#1524](https://github.com/ratatui/ratatui/pull/1524) - [5f57d35](5f57d35234) *(examples)* Add colors explorer demo app by @orhun in [#1580](https://github.com/ratatui/ratatui/pull/1580) - [5c021bf](5c021bf344) *(examples)* Add chart demo app by @orhun in [#1579](https://github.com/ratatui/ratatui/pull/1579) - [9721300](9721300a47) *(examples)* Add canvas demo app by @orhun in [#1578](https://github.com/ratatui/ratatui/pull/1578) - [a6a1368](a6a1368250) *(examples)* Add calendar explorer demo app by @orhun in [#1571](https://github.com/ratatui/ratatui/pull/1571) - [819e92c](819e92cd44) *(examples)* Add weather demo app by @orhun in [#1567](https://github.com/ratatui/ratatui/pull/1567) - [b5f7e44](b5f7e44183) *(examples)* Move async example to apps by @joshka in [#1503](https://github.com/ratatui/ratatui/pull/1503) - [17316ec](17316ec5d0) *(github)* Enable sponsorship button by @orhun in [#1478](https://github.com/ratatui/ratatui/pull/1478) - [d3f01eb](d3f01ebf6e) *(lint)* Ensure lint config is correct by @joshka in [#1528](https://github.com/ratatui/ratatui/pull/1528) - [2b7ec5c](2b7ec5cb7f) *(widgets)* Enable calendar widget as default by @orhun in [#1521](https://github.com/ratatui/ratatui/pull/1521) - [d201b8e](d201b8e5dd) *(xtask)* Check lints for only library targets by @orhun in [#1531](https://github.com/ratatui/ratatui/pull/1531) - [6f21319](6f213191ef) *(uncategorized)* Rename examples with clashing names by @joshka in [#1597](https://github.com/ratatui/ratatui/pull/1597) - [11cbb2b](11cbb2ba87) *(uncategorized)* Use cargo xtask for bacon clippy command by @joshka in [#1592](https://github.com/ratatui/ratatui/pull/1592) - [b544e39](b544e394c9) *(uncategorized)* Use clap instead of argh for demo example by @joshka in [#1591](https://github.com/ratatui/ratatui/pull/1591) - [9a54198](9a541981b8) *(uncategorized)* Make source files non-executable by @orhun in [#1577](https://github.com/ratatui/ratatui/pull/1577) - [357ae7e](357ae7e251) *(uncategorized)* Move terminal types to ratatui-core by @joshka in [#1530](https://github.com/ratatui/ratatui/pull/1530) [**breaking**] - [21e62d8](21e62d84c2) *(uncategorized)* Move the demo example to main folder by @joshka in [#1523](https://github.com/ratatui/ratatui/pull/1523) - [fbf6050](fbf6050c86) *(uncategorized)* Prepare alpha modularization release by @joshka in [#1525](https://github.com/ratatui/ratatui/pull/1525) - [e4e95bc](e4e95bcecf) *(uncategorized)* Remove --color always flags from bacon.toml by @joshka in [#1502](https://github.com/ratatui/ratatui/pull/1502) - [a41c97b](a41c97b413) *(uncategorized)* Move unstable widget refs to ratatui by @joshka in [#1491](https://github.com/ratatui/ratatui/pull/1491) [**breaking**] - [e7085e3](e7085e3a3e) *(uncategorized)* Move widgets into ratatui-widgets crate by @joshka in [#1474](https://github.com/ratatui/ratatui/pull/1474) - [f1d0a18](f1d0a18375) *(uncategorized)* Move ratatui crate into workspace folder by @joshka in [#1459](https://github.com/ratatui/ratatui/pull/1459) - [55fb2d2](55fb2d2e56) *(uncategorized)* Update repo links to ratatui instead of ratatui-org by @joshka in [#1458](https://github.com/ratatui/ratatui/pull/1458) ### Continuous Integration - [4a871f9](4a871f993e) *(uncategorized)* Refactor xtask / toml formatting by @joshka in [#1602](https://github.com/ratatui/ratatui/pull/1602) ### New Contributors * @dawedawe made their first contribution in [#1611](https://github.com/ratatui/ratatui/pull/1611) * @Its-Just-Nans made their first contribution in [#1584](https://github.com/ratatui/ratatui/pull/1584) * @MarSik made their first contribution in [#1541](https://github.com/ratatui/ratatui/pull/1541) * @raylu made their first contribution in [#1540](https://github.com/ratatui/ratatui/pull/1540) * @renesat made their first contribution in [#1501](https://github.com/ratatui/ratatui/pull/1501) * @HoKim98 made their first contribution in [#1484](https://github.com/ratatui/ratatui/pull/1484) * @nilsmartel made their first contribution in [#1485](https://github.com/ratatui/ratatui/pull/1485) * @marcoieni made their first contribution in [#1480](https://github.com/ratatui/ratatui/pull/1480) * @epompeii made their first contribution in [#1470](https://github.com/ratatui/ratatui/pull/1470) * @thomas-tacquet made their first contribution in [#1462](https://github.com/ratatui/ratatui/pull/1462) * @miroim made their first contribution in [#1448](https://github.com/ratatui/ratatui/pull/1448) **Full Changelog**: https://github.com/ratatui/ratatui/compare/v0.29.0...0.30.0-alpha.1 </blockquote> ## `ratatui-widgets` <blockquote> ## [0.30.0-alpha.1](https://github.com/ratatui/ratatui/releases/tag/0.30.0-alpha.1) - 2025-01-14 0.30.0-alpha.1 is a pre-release of the upcoming 0.30.0 release. It is intended for testing and feedback. Please report any issues you encounter. The primary change is that we've split the crate into multiple crates. The main crate is now `ratatui-core` and the widgets are in `ratatui-widgets`. This allows for widget crates to depend on a stable core crate, and for the core crate to be used without widgets. ### Features - [56d5e05](56d5e05762) *(bar)* Update label and text_value to accept Into<> by @Emivvvvv in [#1471](https://github.com/ratatui/ratatui/pull/1471) [**breaking**] - [b76ad3b](b76ad3b02e) *(bar)* Impl Styled for Bar by @Emivvvvv in [#1476](https://github.com/ratatui/ratatui/pull/1476) - [369b18e](369b18eef2) *(barchart)* Reduce barchart creation verbosity by @Emivvvvv in [#1453](https://github.com/ratatui/ratatui/pull/1453) - [9275d34](9275d3421c) *(layout)* Add Offset::new() constructor by @joshka in [#1547](https://github.com/ratatui/ratatui/pull/1547) - [ff729b7](ff729b7607) *(scrollbar)* Support retrieving the current position of state by @orhun in [#1552](https://github.com/ratatui/ratatui/pull/1552) - [ce4856a](ce4856a65f) *(widgets)* Add the missing constructor to canvas types by @orhun in [#1538](https://github.com/ratatui/ratatui/pull/1538) - [50ba965](50ba96518f) *(uncategorized)* Add a new RatatuiMascot widget by @Its-Just-Nans in [#1584](https://github.com/ratatui/ratatui/pull/1584) - [1d28c89](1d28c89fe5) *(uncategorized)* Add conversions for anstyle by @joshka in [#1581](https://github.com/ratatui/ratatui/pull/1581) ### Bug Fixes - [860e48b](860e48b0f0) *(buffer)* Buffer::get_pos() now correctly handles index > u16::MAX by @joshka in [#1447](https://github.com/ratatui/ratatui/pull/1447) - [ec30390](ec30390446) *(canvas)* Round coordinates to nearest grid cell by @joshka in [#1507](https://github.com/ratatui/ratatui/pull/1507) - [afd1ce1](afd1ce179b) *(canvas)* Lines that start outside the visible grid are now drawn by @renesat in [#1501](https://github.com/ratatui/ratatui/pull/1501) - [18e70d3](18e70d3d51) *(crossterm)* Terminal should keep Bold when removing Dim by @MarSik in [#1541](https://github.com/ratatui/ratatui/pull/1541) - [a692a6e](a692a6e371) *(lint)* Apply rust 1.84 clippy suggestions by @joshka in [#1612](https://github.com/ratatui/ratatui/pull/1612) - [3b13240](3b13240728) *(scrollbar)* Check for area.is_empty() before rendering by @farmeroy in [#1529](https://github.com/ratatui/ratatui/pull/1529) - [f57b696](f57b696fdc) *(span)* Dont render control characters by @EdJoPaTo in [#1312](https://github.com/ratatui/ratatui/pull/1312) - [2ce958e](2ce958e38c) *(table)* Allow display of additional table row, if row height > 1 by @Lunderberg in [#1452](https://github.com/ratatui/ratatui/pull/1452) - [2892bdd](2892bddce6) *(uncategorized)* Rust 1.83 clippy lints by @joshka in [#1527](https://github.com/ratatui/ratatui/pull/1527) - [36e2d1b](36e2d1bda1) *(uncategorized)* Add feature(doc_cfg) when generating docs by @joshka in [#1506](https://github.com/ratatui/ratatui/pull/1506) - [4d7704f](4d7704fba5) *(uncategorized)* Make StatefulWidget and Ref work with unsized State by @thscharler in [#1505](https://github.com/ratatui/ratatui/pull/1505) - [7b87509](7b875091e1) *(uncategorized)* Typo by @marcoieni in [#1480](https://github.com/ratatui/ratatui/pull/1480) ### Refactor - [f132fa1](f132fa1715) *(table)* Small readability improvements by @joshka in [#1510](https://github.com/ratatui/ratatui/pull/1510) - [904b0aa](904b0aa723) *(uncategorized)* Move symbols to modules by @joshka in [#1594](https://github.com/ratatui/ratatui/pull/1594) - [7c8573f](7c8573f575) *(uncategorized)* Rearrange selection_spacing code by @raylu in [#1540](https://github.com/ratatui/ratatui/pull/1540) - [217c57c](217c57cd60) *(uncategorized)* Modularize backends by @orhun in [#1508](https://github.com/ratatui/ratatui/pull/1508) - [e461b72](e461b724a6) *(uncategorized)* Move {Stateful,}Widget{,Ref} types into individual files by @joshka in [#1479](https://github.com/ratatui/ratatui/pull/1479) ### Documentation - [d291042](d291042e69) *(block)* Revise the block example by @orhun in [#1520](https://github.com/ratatui/ratatui/pull/1520) - [fcde9cb](fcde9cb9c3) *(changelog)* Fix typo by @orhun in [#1463](https://github.com/ratatui/ratatui/pull/1463) - [3ae6bf1](3ae6bf1d6f) *(contributing)* Use cargo-xtask for instructions by @orhun in [#1509](https://github.com/ratatui/ratatui/pull/1509) - [04e1b32](04e1b32cd2) *(layout)* Rename cassowary-rs references to cassowary by @miroim in [#1448](https://github.com/ratatui/ratatui/pull/1448) - [088aac1](088aac136d) *(readme)* Tweak links and badges by @joshka in [#1598](https://github.com/ratatui/ratatui/pull/1598) - [6e43672](6e436725e4) *(readme)* Reimagine README.md by @orhun in [#1569](https://github.com/ratatui/ratatui/pull/1569) - [8f28247](8f282473b2) *(readme)* Correct examples links by @HoKim98 in [#1484](https://github.com/ratatui/ratatui/pull/1484) - [9f90f74](9f90f7495f) *(readme)* Fix broken link by @nilsmartel in [#1485](https://github.com/ratatui/ratatui/pull/1485) - [260af68](260af68a34) *(readme)* Include iocraft as an alternative by @kdheepak in [#1483](https://github.com/ratatui/ratatui/pull/1483) - [dafb716](dafb716f9d) *(widgets)* Add example for grouped barchart by @orhun in [#1566](https://github.com/ratatui/ratatui/pull/1566) - [ed5dd73](ed5dd73084) *(widgets)* Add example for tabs by @orhun in [#1559](https://github.com/ratatui/ratatui/pull/1559) - [fab5321](fab532171d) *(widgets)* Add example for scrollbar by @orhun in [#1545](https://github.com/ratatui/ratatui/pull/1545) - [898aef6](898aef6e2f) *(widgets)* Add example for list by @orhun in [#1542](https://github.com/ratatui/ratatui/pull/1542) - [452366a](452366aa9e) *(widgets)* Add example for sparkline by @orhun in [#1556](https://github.com/ratatui/ratatui/pull/1556) - [6ddde0e](6ddde0e8a8) *(widgets)* Add example for table by @orhun in [#1557](https://github.com/ratatui/ratatui/pull/1557) - [93ad6b8](93ad6b828c) *(widgets)* Update values in chart example by @orhun in [#1558](https://github.com/ratatui/ratatui/pull/1558) - [15f442a](15f442a71e) *(widgets)* Add example for paragraph by @orhun in [#1544](https://github.com/ratatui/ratatui/pull/1544) - [17bba14](17bba14540) *(widgets)* Move the logo example to widgets by @orhun in [#1543](https://github.com/ratatui/ratatui/pull/1543) - [f2451e7](f2451e7f1e) *(widgets)* Add example for gauge by @orhun in [#1539](https://github.com/ratatui/ratatui/pull/1539) - [4f0a8b2](4f0a8b21af) *(widgets)* Add example for canvas by @orhun in [#1533](https://github.com/ratatui/ratatui/pull/1533) - [91147c4](91147c4d75) *(widgets)* Add example for chart by @orhun in [#1536](https://github.com/ratatui/ratatui/pull/1536) - [6dd25a3](6dd25a3111) *(widgets)* Add example for calendar by @orhun in [#1532](https://github.com/ratatui/ratatui/pull/1532) - [99ac005](99ac005b06) *(widgets)* Add simple barchart example by @joshka in [#1511](https://github.com/ratatui/ratatui/pull/1511) - [da05957](da05957fa0) *(uncategorized)* Add widget-ref-container example by @joshka in [#1603](https://github.com/ratatui/ratatui/pull/1603) - [1798512](1798512e94) *(uncategorized)* Fix wording in user_input example by @dawedawe in [#1611](https://github.com/ratatui/ratatui/pull/1611) - [03066d8](03066d81bf) *(uncategorized)* Fix punctuation in canvas.rs documentation by @dawedawe in [#1583](https://github.com/ratatui/ratatui/pull/1583) - [e411d9e](e411d9ec3e) *(uncategorized)* Add input form example by @joshka in [#1551](https://github.com/ratatui/ratatui/pull/1551) - [ed071f3](ed071f3723) *(uncategorized)* Add mouse-drawing example by @joshka in [#1546](https://github.com/ratatui/ratatui/pull/1546) - [46902f5](46902f5587) *(uncategorized)* Improve docs for workspace crates by @orhun in [#1490](https://github.com/ratatui/ratatui/pull/1490) - [a6b5792](a6b579223f) *(uncategorized)* Fix example link in readme by @thomas-tacquet in [#1462](https://github.com/ratatui/ratatui/pull/1462) ### Miscellaneous Tasks - [abe2f27](abe2f27328) *(backend)* Change From<T> impls to new backend specific IntoBackend and FromBackend traits by @joshka in [#1464](https://github.com/ratatui/ratatui/pull/1464) [**breaking**] - [0a47ebd](0a47ebd94b) *(bencher)* Update bencher CLI usage by @epompeii in [#1470](https://github.com/ratatui/ratatui/pull/1470) - [a0979d6](a0979d6871) *(build)* Remove cargo lint by @joshka in [#1549](https://github.com/ratatui/ratatui/pull/1549) - [eaa4038](eaa403856e) *(ci)* Install pre-built binaries for cargo-rdme by @orhun in [#1477](https://github.com/ratatui/ratatui/pull/1477) - [e5e2316](e5e2316451) *(ci)* Add check for keeping README.md up-to-date by @orhun in [#1473](https://github.com/ratatui/ratatui/pull/1473) - [2ef3583](2ef3583eff) *(ci)* Replace cargo-make with a custom cargo-xtask by @joshka in [#1461](https://github.com/ratatui/ratatui/pull/1461) - [98df774](98df774d7f) *(core)* Move core types to ratatui-core by @joshka in [#1460](https://github.com/ratatui/ratatui/pull/1460) - [35eba76](35eba76b4d) *(example)* Move demo2 to top level folder by @joshka in [#1524](https://github.com/ratatui/ratatui/pull/1524) - [5f57d35](5f57d35234) *(examples)* Add colors explorer demo app by @orhun in [#1580](https://github.com/ratatui/ratatui/pull/1580) - [5c021bf](5c021bf344) *(examples)* Add chart demo app by @orhun in [#1579](https://github.com/ratatui/ratatui/pull/1579) - [9721300](9721300a47) *(examples)* Add canvas demo app by @orhun in [#1578](https://github.com/ratatui/ratatui/pull/1578) - [a6a1368](a6a1368250) *(examples)* Add calendar explorer demo app by @orhun in [#1571](https://github.com/ratatui/ratatui/pull/1571) - [819e92c](819e92cd44) *(examples)* Add weather demo app by @orhun in [#1567](https://github.com/ratatui/ratatui/pull/1567) - [b5f7e44](b5f7e44183) *(examples)* Move async example to apps by @joshka in [#1503](https://github.com/ratatui/ratatui/pull/1503) - [17316ec](17316ec5d0) *(github)* Enable sponsorship button by @orhun in [#1478](https://github.com/ratatui/ratatui/pull/1478) - [d3f01eb](d3f01ebf6e) *(lint)* Ensure lint config is correct by @joshka in [#1528](https://github.com/ratatui/ratatui/pull/1528) - [2b7ec5c](2b7ec5cb7f) *(widgets)* Enable calendar widget as default by @orhun in [#1521](https://github.com/ratatui/ratatui/pull/1521) - [d201b8e](d201b8e5dd) *(xtask)* Check lints for only library targets by @orhun in [#1531](https://github.com/ratatui/ratatui/pull/1531) - [6f21319](6f213191ef) *(uncategorized)* Rename examples with clashing names by @joshka in [#1597](https://github.com/ratatui/ratatui/pull/1597) - [11cbb2b](11cbb2ba87) *(uncategorized)* Use cargo xtask for bacon clippy command by @joshka in [#1592](https://github.com/ratatui/ratatui/pull/1592) - [b544e39](b544e394c9) *(uncategorized)* Use clap instead of argh for demo example by @joshka in [#1591](https://github.com/ratatui/ratatui/pull/1591) - [9a54198](9a541981b8) *(uncategorized)* Make source files non-executable by @orhun in [#1577](https://github.com/ratatui/ratatui/pull/1577) - [357ae7e](357ae7e251) *(uncategorized)* Move terminal types to ratatui-core by @joshka in [#1530](https://github.com/ratatui/ratatui/pull/1530) [**breaking**] - [21e62d8](21e62d84c2) *(uncategorized)* Move the demo example to main folder by @joshka in [#1523](https://github.com/ratatui/ratatui/pull/1523) - [fbf6050](fbf6050c86) *(uncategorized)* Prepare alpha modularization release by @joshka in [#1525](https://github.com/ratatui/ratatui/pull/1525) - [e4e95bc](e4e95bcecf) *(uncategorized)* Remove --color always flags from bacon.toml by @joshka in [#1502](https://github.com/ratatui/ratatui/pull/1502) - [a41c97b](a41c97b413) *(uncategorized)* Move unstable widget refs to ratatui by @joshka in [#1491](https://github.com/ratatui/ratatui/pull/1491) [**breaking**] - [e7085e3](e7085e3a3e) *(uncategorized)* Move widgets into ratatui-widgets crate by @joshka in [#1474](https://github.com/ratatui/ratatui/pull/1474) - [f1d0a18](f1d0a18375) *(uncategorized)* Move ratatui crate into workspace folder by @joshka in [#1459](https://github.com/ratatui/ratatui/pull/1459) - [55fb2d2](55fb2d2e56) *(uncategorized)* Update repo links to ratatui instead of ratatui-org by @joshka in [#1458](https://github.com/ratatui/ratatui/pull/1458) ### Continuous Integration - [4a871f9](4a871f993e) *(uncategorized)* Refactor xtask / toml formatting by @joshka in [#1602](https://github.com/ratatui/ratatui/pull/1602) ### New Contributors * @dawedawe made their first contribution in [#1611](https://github.com/ratatui/ratatui/pull/1611) * @Its-Just-Nans made their first contribution in [#1584](https://github.com/ratatui/ratatui/pull/1584) * @MarSik made their first contribution in [#1541](https://github.com/ratatui/ratatui/pull/1541) * @raylu made their first contribution in [#1540](https://github.com/ratatui/ratatui/pull/1540) * @renesat made their first contribution in [#1501](https://github.com/ratatui/ratatui/pull/1501) * @HoKim98 made their first contribution in [#1484](https://github.com/ratatui/ratatui/pull/1484) * @nilsmartel made their first contribution in [#1485](https://github.com/ratatui/ratatui/pull/1485) * @marcoieni made their first contribution in [#1480](https://github.com/ratatui/ratatui/pull/1480) * @epompeii made their first contribution in [#1470](https://github.com/ratatui/ratatui/pull/1470) * @thomas-tacquet made their first contribution in [#1462](https://github.com/ratatui/ratatui/pull/1462) * @miroim made their first contribution in [#1448](https://github.com/ratatui/ratatui/pull/1448) **Full Changelog**: https://github.com/ratatui/ratatui/compare/v0.29.0...0.30.0-alpha.1 </blockquote> ## `ratatui-macros` <blockquote> ## [0.30.0-alpha.1](https://github.com/ratatui/ratatui/releases/tag/0.30.0-alpha.1) - 2025-01-14 0.30.0-alpha.1 is a pre-release of the upcoming 0.30.0 release. It is intended for testing and feedback. Please report any issues you encounter. The primary change is that we've split the crate into multiple crates. The main crate is now `ratatui-core` and the widgets are in `ratatui-widgets`. This allows for widget crates to depend on a stable core crate, and for the core crate to be used without widgets. ### Features - [56d5e05](56d5e05762) *(bar)* Update label and text_value to accept Into<> by @Emivvvvv in [#1471](https://github.com/ratatui/ratatui/pull/1471) [**breaking**] - [b76ad3b](b76ad3b02e) *(bar)* Impl Styled for Bar by @Emivvvvv in [#1476](https://github.com/ratatui/ratatui/pull/1476) - [369b18e](369b18eef2) *(barchart)* Reduce barchart creation verbosity by @Emivvvvv in [#1453](https://github.com/ratatui/ratatui/pull/1453) - [9275d34](9275d3421c) *(layout)* Add Offset::new() constructor by @joshka in [#1547](https://github.com/ratatui/ratatui/pull/1547) - [ff729b7](ff729b7607) *(scrollbar)* Support retrieving the current position of state by @orhun in [#1552](https://github.com/ratatui/ratatui/pull/1552) - [ce4856a](ce4856a65f) *(widgets)* Add the missing constructor to canvas types by @orhun in [#1538](https://github.com/ratatui/ratatui/pull/1538) - [50ba965](50ba96518f) *(uncategorized)* Add a new RatatuiMascot widget by @Its-Just-Nans in [#1584](https://github.com/ratatui/ratatui/pull/1584) - [1d28c89](1d28c89fe5) *(uncategorized)* Add conversions for anstyle by @joshka in [#1581](https://github.com/ratatui/ratatui/pull/1581) ### Bug Fixes - [860e48b](860e48b0f0) *(buffer)* Buffer::get_pos() now correctly handles index > u16::MAX by @joshka in [#1447](https://github.com/ratatui/ratatui/pull/1447) - [ec30390](ec30390446) *(canvas)* Round coordinates to nearest grid cell by @joshka in [#1507](https://github.com/ratatui/ratatui/pull/1507) - [afd1ce1](afd1ce179b) *(canvas)* Lines that start outside the visible grid are now drawn by @renesat in [#1501](https://github.com/ratatui/ratatui/pull/1501) - [18e70d3](18e70d3d51) *(crossterm)* Terminal should keep Bold when removing Dim by @MarSik in [#1541](https://github.com/ratatui/ratatui/pull/1541) - [a692a6e](a692a6e371) *(lint)* Apply rust 1.84 clippy suggestions by @joshka in [#1612](https://github.com/ratatui/ratatui/pull/1612) - [3b13240](3b13240728) *(scrollbar)* Check for area.is_empty() before rendering by @farmeroy in [#1529](https://github.com/ratatui/ratatui/pull/1529) - [f57b696](f57b696fdc) *(span)* Dont render control characters by @EdJoPaTo in [#1312](https://github.com/ratatui/ratatui/pull/1312) - [2ce958e](2ce958e38c) *(table)* Allow display of additional table row, if row height > 1 by @Lunderberg in [#1452](https://github.com/ratatui/ratatui/pull/1452) - [2892bdd](2892bddce6) *(uncategorized)* Rust 1.83 clippy lints by @joshka in [#1527](https://github.com/ratatui/ratatui/pull/1527) - [36e2d1b](36e2d1bda1) *(uncategorized)* Add feature(doc_cfg) when generating docs by @joshka in [#1506](https://github.com/ratatui/ratatui/pull/1506) - [4d7704f](4d7704fba5) *(uncategorized) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
055522ef7b
commit
9efeffe222
618
CHANGELOG.md
618
CHANGELOG.md
@@ -4,6 +4,624 @@ All notable changes to this project will be documented in this file.
|
||||
<!-- ignore lint rules that are often triggered by content generated from commits / git-cliff -->
|
||||
<!-- markdownlint-disable line-length no-bare-urls ul-style emphasis-style -->
|
||||
|
||||
## ratatui - [0.30.0-alpha.5](https://github.com/ratatui/ratatui/compare/ratatui-v0.30.0-alpha.4...ratatui-v0.30.0-alpha.5) - 2025-06-30
|
||||
|
||||
### Features
|
||||
|
||||
- [1399d95](https://github.com/ratatui/ratatui/commit/1399d95ae0c93b0f802e500022853e32fa604cf9) *(no_std)* Make palette and serde features depends on std by @j-g00da in [#1919](https://github.com/ratatui/ratatui/pull/1919)
|
||||
|
||||
- [7bc78bc](https://github.com/ratatui/ratatui/commit/7bc78bca1b8ce9aac0cab3831a0c9c864ab02b02) *(uncategorized)* Add ratatui::run() method by @joshka in [#1707](https://github.com/ratatui/ratatui/pull/1707)
|
||||
|
||||
> This introduces a new `ratatui::run()` method which runs a closure with
|
||||
> a terminal initialized with reasonable defaults for most applications.
|
||||
> This calls `ratatui::init()` before running the closure and
|
||||
> `ratatui::restore()` after the closure completes, and returns the result
|
||||
> of the closure.
|
||||
>
|
||||
> A minimal hello world example using the new `ratatui::run()` method:
|
||||
>
|
||||
> ```rust
|
||||
> fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
> ratatui::run(|terminal| {
|
||||
> loop {
|
||||
> terminal.draw(|frame| frame.render_widget("Hello World!", frame.area()))?;
|
||||
> if crossterm::event::read()?.is_key_press() {
|
||||
> break Ok(());
|
||||
> }
|
||||
> }
|
||||
> })
|
||||
> }
|
||||
> ```
|
||||
>
|
||||
> Of course, this also works both with apps that use free methods and
|
||||
> structs:
|
||||
>
|
||||
> ```rust
|
||||
> fn run(terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
|
||||
>
|
||||
> ratatui::run(run)?;
|
||||
> ```
|
||||
>
|
||||
> ```rust
|
||||
> struct App { ... }
|
||||
>
|
||||
> impl App {
|
||||
> fn new() -> Self { ... }
|
||||
> fn run(mut self, terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
|
||||
> }
|
||||
>
|
||||
> ratatui::run(|terminal| App::new().run(terminal))?;
|
||||
> ```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- [80bc818](https://github.com/ratatui/ratatui/commit/80bc8187233f4d98659b552d85520cd0e24ec8ad) *(uncategorized)* Fix truncation of left aligned block titles by @joshka in [#1931](https://github.com/ratatui/ratatui/pull/1931)
|
||||
|
||||
> truncate the right side of left aligned titles rather than the left side
|
||||
> of right aligned titles. This is more obvious as the left side of text
|
||||
> often contains more important information. And we generally read
|
||||
> left to right.
|
||||
>
|
||||
> This change makes centered titles overwrite left aligned titles and
|
||||
> right aligned titles overwrite centered or left aligned titles.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/358
|
||||
|
||||
### Documentation
|
||||
|
||||
- [68b9f67](https://github.com/ratatui/ratatui/commit/68b9f67f59ce7b46649fe3c96c558f4b88cd1007) *(readme)* Add `Built with Ratatui` badge for downstream projects by @harilvfs in [#1905](https://github.com/ratatui/ratatui/pull/1905)
|
||||
|
||||
- [055522e](https://github.com/ratatui/ratatui/commit/055522ef7bafa5ed2a9370b9907f647f616cbfb0) *(uncategorized)* Add docs for authoring widget crates by @j-g00da in [#1955](https://github.com/ratatui/ratatui/pull/1955)
|
||||
|
||||
> - added Authoring Widget Libraries sub-section
|
||||
> - moved built-in and third-party widgets sections higher
|
||||
|
||||
- [4c708dd](https://github.com/ratatui/ratatui/commit/4c708ddf8a4dfcc7e31435cc9269fce62ef48212) *(uncategorized)* Improve docs for run/init/restore etc. by @joshka in [#1947](https://github.com/ratatui/ratatui/pull/1947)
|
||||
|
||||
> - **docs: document the init module**
|
||||
> - **docs: use the ratatui::run() methods in the main doc**
|
||||
> - **docs: add more intradoc / website links and historical perspective
|
||||
> on Terminal / backend**
|
||||
> - **docs: add notes about new run/init/restore methods and the
|
||||
> defaultterminal type to terminal docs**
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
- [cfb65e6](https://github.com/ratatui/ratatui/commit/cfb65e64ba9e9758e44c5bfe54adc331a9084932) *(uncategorized)* Add examples for handling state by @joshka in [#1849](https://github.com/ratatui/ratatui/pull/1849)
|
||||
|
||||
> Added comprehensive state management examples covering both immutable
|
||||
> and mutable patterns and documentation to help developers choose the
|
||||
> right approach for their applications.
|
||||
|
||||
- [3de41a8](https://github.com/ratatui/ratatui/commit/3de41a8249d221d603ce9f294cac81df62fffc3c) *(uncategorized)* Document widgets module by @joshka in [#1932](https://github.com/ratatui/ratatui/pull/1932)
|
||||
|
||||
> Adds a good overview of the use and implementation of widget traits.
|
||||
>
|
||||
> Goals with the doc rewrite:
|
||||
> - document the rationale for the ratatui-widgets crate with info for app
|
||||
> builders and widget makers.
|
||||
> - Show how to use the widgets for rendering as well as implement the
|
||||
> traits- document the differences and reasons for each trait
|
||||
> - document the historical perspective (to make it easy to understand
|
||||
> older Ratatui apps as well as migrate to newer approaches
|
||||
> - give recommended approaches to implementing traits
|
||||
> - explain the differences between Consuming and Shared / Mutable
|
||||
> Reference implementations of Widget
|
||||
> - explain the differences between using StatefulWidget and Mutable
|
||||
> References
|
||||
> - Explain the use case for WidgetRef and StatefulWidgetRef
|
||||
> - Link out to third part widget lists
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/366
|
||||
>
|
||||
> ---------
|
||||
|
||||
### Miscellaneous Tasks
|
||||
|
||||
- [4c86513](https://github.com/ratatui/ratatui/commit/4c86513790a12d7a4d9e38959430395a3a7dc868) *(uncategorized)* Remove block::Title by @joshka in [#1926](https://github.com/ratatui/ratatui/pull/1926)
|
||||
|
||||
> The title alignment is better expressed in the `Line` as this fits more
|
||||
> coherently with the rest of the library.
|
||||
>
|
||||
> BREAKING CHANGES:
|
||||
> - `widgets::block` is no longer exported
|
||||
> - `widgets::block::Title` no longer exists
|
||||
> - `widgets::block::Position` is now `widgets::TitlePosition`
|
||||
> - `Block::title()` now accepts `Into::<Line>` instead of `Into<Title>`
|
||||
> - `BlockExt` is now exported at widgets::`BlockExt`
|
||||
>
|
||||
> Closes:https://github.com/ratatui/ratatui/issues/738
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-v0.30.0-alpha.4...ratatui-v0.30.0-alpha.5
|
||||
|
||||
|
||||
|
||||
## ratatui-termion - [0.1.0-alpha.5](https://github.com/ratatui/ratatui/compare/ratatui-termion-v0.1.0-alpha.4...ratatui-termion-v0.1.0-alpha.5) - 2025-06-30
|
||||
|
||||
### Documentation
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-termion-v0.1.0-alpha.4...ratatui-termion-v0.1.0-alpha.5
|
||||
|
||||
|
||||
|
||||
## ratatui-termwiz - [0.1.0-alpha.5](https://github.com/ratatui/ratatui/compare/ratatui-termwiz-v0.1.0-alpha.4...ratatui-termwiz-v0.1.0-alpha.5) - 2025-06-30
|
||||
|
||||
### Documentation
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-termwiz-v0.1.0-alpha.4...ratatui-termwiz-v0.1.0-alpha.5
|
||||
|
||||
|
||||
|
||||
## ratatui-macros - [0.7.0-alpha.4](https://github.com/ratatui/ratatui/compare/ratatui-macros-v0.7.0-alpha.3...ratatui-macros-v0.7.0-alpha.4) - 2025-06-30
|
||||
|
||||
### Features
|
||||
|
||||
- [b32f781](https://github.com/ratatui/ratatui/commit/b32f78195bfa4b131e091d64f02676fa1ba0a360) *(no_std)* Make `ratatui-macros` no-std by @j-g00da in [#1865](https://github.com/ratatui/ratatui/pull/1865)
|
||||
|
||||
### Documentation
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
- [ca2ad4a](https://github.com/ratatui/ratatui/commit/ca2ad4a1f93432f81a87ca1e3766f510723d3652) *(uncategorized)* Simplify ratatui-macro docs by @joshka in [#1923](https://github.com/ratatui/ratatui/pull/1923)
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-macros-v0.7.0-alpha.3...ratatui-macros-v0.7.0-alpha.4
|
||||
|
||||
|
||||
|
||||
## ratatui-widgets - [0.3.0-alpha.5](https://github.com/ratatui/ratatui/compare/ratatui-widgets-v0.3.0-alpha.4...ratatui-widgets-v0.3.0-alpha.5) - 2025-06-30
|
||||
|
||||
### Features
|
||||
|
||||
- [89b7421](https://github.com/ratatui/ratatui/commit/89b74214d9d09343743c8601d9401c0139a887a4) *(serde)* Derive Serialize/Deserialize for additional structs/enums by @aurreland in [#1883](https://github.com/ratatui/ratatui/pull/1883)
|
||||
|
||||
> This PR adds `#[derive(Serialize, Deserialize)]` to the following
|
||||
> structs:
|
||||
> - `Constraint`
|
||||
> - `Direction`
|
||||
> - `Spacing`
|
||||
> - `Layout`
|
||||
> - `AccentedPalette`
|
||||
> - `NonAccentedPalette`
|
||||
> - `Palette`
|
||||
> - `Padding`
|
||||
> - `Borders`
|
||||
> - `BorderType`
|
||||
> - `ListDirection`
|
||||
> - `ScrollbarOrientation`
|
||||
> - `ScrollDirection`
|
||||
> - `RenderDirection`
|
||||
> - `HighlightSpacing`
|
||||
>
|
||||
> Fixes #1877
|
||||
|
||||
- [6dcd53b](https://github.com/ratatui/ratatui/commit/6dcd53bc6ba172d4b96d02809c6a46105e67d85a) *(uncategorized)* Add ergonomic methods for layouting Rects by @joshka in [#1909](https://github.com/ratatui/ratatui/pull/1909)
|
||||
|
||||
> This commit introduces new methods for the `Rect` struct that simplify
|
||||
> the process of splitting a `Rect` into sub-rects according to a given
|
||||
> `Layout`. By putting these methods on the `Rect` struct, we make it a
|
||||
> bit more natural that a layout is applied to the `Rect` itself, rather
|
||||
> than passing a `Rect` to the `Layout` struct to be split.
|
||||
>
|
||||
> Adds:- `Rect::layout` and `Rect::try_layout` methods that allow splitting a
|
||||
> `Rect` into an array of sub-rects according to a given `Layout`.
|
||||
> - `Rect::layout_vec` method that returns a `Vec` of sub-rects.
|
||||
> - `Layout::try_areas` method that returns an array of sub-rects, with
|
||||
> compile-time checks for the number of constraints. This is added
|
||||
> mainly for consistency with the new `Rect` methods.
|
||||
>
|
||||
> ```rust
|
||||
> use ratatui_core::layout::{Layout, Constraint, Rect};
|
||||
> let area = Rect::new(0, 0, 10, 10);
|
||||
> let layout = Layout::vertical([Constraint::Fill(1); 2]);
|
||||
>
|
||||
> // Rect::layout() infers the number of constraints at compile time:
|
||||
> let [top, main] = area.layout(&layout);
|
||||
>
|
||||
> // Rect::try_layout() and Layout::try_areas() do the same, but return a
|
||||
> // Result:
|
||||
> let [top, main] = area.try_layout(&layout)?;
|
||||
> let [top, main] = layout.try_areas(area)?;
|
||||
>
|
||||
> // Rect::layout_vec() returns a Vec of sub-rects:
|
||||
> let areas_vec = area.layout_vec(&layout);
|
||||
>
|
||||
> // you can also explicitly specify the number of constraints:
|
||||
> let areas = area.layout::<2>(&layout);
|
||||
> let areas = area.try_layout::<2>(&layout)?;
|
||||
> let areas = layout.try_areas::<2>(area)?;
|
||||
> ```
|
||||
|
||||
- [7bc78bc](https://github.com/ratatui/ratatui/commit/7bc78bca1b8ce9aac0cab3831a0c9c864ab02b02) *(uncategorized)* Add ratatui::run() method by @joshka in [#1707](https://github.com/ratatui/ratatui/pull/1707)
|
||||
|
||||
> This introduces a new `ratatui::run()` method which runs a closure with
|
||||
> a terminal initialized with reasonable defaults for most applications.
|
||||
> This calls `ratatui::init()` before running the closure and
|
||||
> `ratatui::restore()` after the closure completes, and returns the result
|
||||
> of the closure.
|
||||
>
|
||||
> A minimal hello world example using the new `ratatui::run()` method:
|
||||
>
|
||||
> ```rust
|
||||
> fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
> ratatui::run(|terminal| {
|
||||
> loop {
|
||||
> terminal.draw(|frame| frame.render_widget("Hello World!", frame.area()))?;
|
||||
> if crossterm::event::read()?.is_key_press() {
|
||||
> break Ok(());
|
||||
> }
|
||||
> }
|
||||
> })
|
||||
> }
|
||||
> ```
|
||||
>
|
||||
> Of course, this also works both with apps that use free methods and
|
||||
> structs:
|
||||
>
|
||||
> ```rust
|
||||
> fn run(terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
|
||||
>
|
||||
> ratatui::run(run)?;
|
||||
> ```
|
||||
>
|
||||
> ```rust
|
||||
> struct App { ... }
|
||||
>
|
||||
> impl App {
|
||||
> fn new() -> Self { ... }
|
||||
> fn run(mut self, terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
|
||||
> }
|
||||
>
|
||||
> ratatui::run(|terminal| App::new().run(terminal))?;
|
||||
> ```
|
||||
|
||||
- [b6fbfcd](https://github.com/ratatui/ratatui/commit/b6fbfcdd1cf1813879af523a52fb8c5a496a685b) *(uncategorized)* Add lifetime to symbol sets by @joshka in [#1935](https://github.com/ratatui/ratatui/pull/1935)
|
||||
|
||||
> This makes it possible to create symbol sets at runtime with non-static
|
||||
> lifetimes.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/1722
|
||||
|
||||
- [488e5f0](https://github.com/ratatui/ratatui/commit/488e5f020f7a1b4c120d8b074c62a97abac0a4b6) *(uncategorized)* Make `border!` work without importing `Borders` by @j-g00da in [#1918](https://github.com/ratatui/ratatui/pull/1918)
|
||||
|
||||
> Currently using `border!` macro requires explicit import of `Borders`
|
||||
> which is unnecessary.
|
||||
|
||||
- [671c2b4](https://github.com/ratatui/ratatui/commit/671c2b4fd4ee277ba0dc36d152d66c40cfa1f030) *(uncategorized)* Support merging the borders of blocks by @j-g00da
|
||||
|
||||
> When two borders overlap, they will automatically merge into a single,
|
||||
> clean border instead of overlapping.
|
||||
>
|
||||
> This improves visual clarity and reduces rendering glitches around corners.
|
||||
>
|
||||
> For example:
|
||||
>
|
||||
> ```
|
||||
> assert_eq!(Cell::new("┘").merge_symbol("┏", MergeStrategy::Exact).symbol(), "╆");
|
||||
> ```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- [80bc818](https://github.com/ratatui/ratatui/commit/80bc8187233f4d98659b552d85520cd0e24ec8ad) *(uncategorized)* Fix truncation of left aligned block titles by @joshka in [#1931](https://github.com/ratatui/ratatui/pull/1931)
|
||||
|
||||
> truncate the right side of left aligned titles rather than the left side
|
||||
> of right aligned titles. This is more obvious as the left side of text
|
||||
> often contains more important information. And we generally read
|
||||
> left to right.
|
||||
>
|
||||
> This change makes centered titles overwrite left aligned titles and
|
||||
> right aligned titles overwrite centered or left aligned titles.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/358
|
||||
|
||||
- [21e3b59](https://github.com/ratatui/ratatui/commit/21e3b598ce00300e9c7363139be73bba27f6e3c5) *(uncategorized)* Fix handling of multi-byte chars in bar chart by @joshka in [#1934](https://github.com/ratatui/ratatui/pull/1934)
|
||||
|
||||
> The split_at method requires that the split point is at a valid utf8
|
||||
> character boundary.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/1928
|
||||
|
||||
- [e1e4004](https://github.com/ratatui/ratatui/commit/e1e400406c531fe6a81e731242dffe19b1199f23) *(uncategorized)* Derive copy for list state by @janTatesa in [#1921](https://github.com/ratatui/ratatui/pull/1921)
|
||||
|
||||
- [12cb5a2](https://github.com/ratatui/ratatui/commit/12cb5a28fe8e6c4526e70465a52c0d223140b8a1) *(uncategorized)* Allow canvas area to exceed u16::MAX by @Daksh14 in [#1891](https://github.com/ratatui/ratatui/pull/1891)
|
||||
|
||||
> This allows Canvas grids where the width * height exceeds u16::MAX by
|
||||
> converting values to usize earlier in several methods.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/1449
|
||||
|
||||
### Documentation
|
||||
|
||||
- [617d318](https://github.com/ratatui/ratatui/commit/617d31851a30cfe751af421c8c438692c43fff4d) *(uncategorized)* Improve Block docs by @joshka in [#1953](https://github.com/ratatui/ratatui/pull/1953)
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
- [92b6a16](https://github.com/ratatui/ratatui/commit/92b6a16bdedb7fd14bafd1f4cbab6ee7b98295e8) *(uncategorized)* Fix grammar in ratatui-widgets README by @sevki in [#1885](https://github.com/ratatui/ratatui/pull/1885)
|
||||
|
||||
### Miscellaneous Tasks
|
||||
|
||||
- [92bb9b2](https://github.com/ratatui/ratatui/commit/92bb9b22198ac06439d14b4c6d4d0c4882e55eb1) *(uncategorized)* Remove `Title` references by @j-g00da in [#1943](https://github.com/ratatui/ratatui/pull/1943)
|
||||
|
||||
- [4c86513](https://github.com/ratatui/ratatui/commit/4c86513790a12d7a4d9e38959430395a3a7dc868) *(uncategorized)* Remove block::Title by @joshka in [#1926](https://github.com/ratatui/ratatui/pull/1926)
|
||||
|
||||
> The title alignment is better expressed in the `Line` as this fits more
|
||||
> coherently with the rest of the library.
|
||||
>
|
||||
> BREAKING CHANGES:
|
||||
> - `widgets::block` is no longer exported
|
||||
> - `widgets::block::Title` no longer exists
|
||||
> - `widgets::block::Position` is now `widgets::TitlePosition`
|
||||
> - `Block::title()` now accepts `Into::<Line>` instead of `Into<Title>`
|
||||
> - `BlockExt` is now exported at widgets::`BlockExt`
|
||||
>
|
||||
> Closes:https://github.com/ratatui/ratatui/issues/738
|
||||
|
||||
- [272f5c0](https://github.com/ratatui/ratatui/commit/272f5c05dc4399389c011d8693bae073523aebfb) *(uncategorized)* Fix new lints by @joshka in [#1922](https://github.com/ratatui/ratatui/pull/1922)
|
||||
|
||||
- [770cb7c](https://github.com/ratatui/ratatui/commit/770cb7c3c31fd23b3ecc48c1f267e40f9f98b583) *(uncategorized)* Add tests for combining list styles by @joshka in [#1884](https://github.com/ratatui/ratatui/pull/1884)
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-widgets-v0.3.0-alpha.4...ratatui-widgets-v0.3.0-alpha.5
|
||||
|
||||
|
||||
|
||||
## ratatui-crossterm - [0.1.0-alpha.5](https://github.com/ratatui/ratatui/compare/ratatui-crossterm-v0.1.0-alpha.4...ratatui-crossterm-v0.1.0-alpha.5) - 2025-06-30
|
||||
|
||||
### Documentation
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-crossterm-v0.1.0-alpha.4...ratatui-crossterm-v0.1.0-alpha.5
|
||||
|
||||
|
||||
|
||||
## ratatui-core - [0.1.0-alpha.6](https://github.com/ratatui/ratatui/compare/ratatui-core-v0.1.0-alpha.5...ratatui-core-v0.1.0-alpha.6) - 2025-06-30
|
||||
|
||||
### Features
|
||||
|
||||
- [d99984f](https://github.com/ratatui/ratatui/commit/d99984f1e9143243cfbdd818ac17853300de5645) *(layout)* Add `Flex::SpaceEvenly` by @kdheepak in [#1952](https://github.com/ratatui/ratatui/pull/1952) [**breaking**]
|
||||
|
||||
> Resolves https://github.com/ratatui/ratatui/issues/1951
|
||||
>
|
||||
> BREAKING CHANGE:Old `Flex::SpaceAround` behavior is available by using
|
||||
>
|
||||
> `Flex::SpaceEvenly` and new
|
||||
>
|
||||
> `Flex::SpaceAround` now distributes space evenly around each element
|
||||
> except the middle spacers
|
||||
> are twice the size of first and last elements
|
||||
>
|
||||
> With this change, the following variants of `Flex` are supported:
|
||||
>
|
||||
> - `Flex::Start`: Aligns items to the start; excess space appears at the
|
||||
> end.
|
||||
> - `Flex::End`: Aligns items to the end; excess space appears at the
|
||||
> start.
|
||||
> - `Flex::Center`: Centers items with equal space on both sides.
|
||||
> - `Flex::SpaceAround` (**new**): Distributes space _around_ items; space
|
||||
> between items is _twice_ the edge spacing.
|
||||
> - `Flex::SpaceBetween`: Distributes space _evenly between_ items except
|
||||
> no space at the edges.
|
||||
> - `Flex::SpaceEvenly` (**previously `Flex::SpaceAround`**): Distributes
|
||||
> space _evenly between_ items and edges.
|
||||
> - `Flex::Legacy`: Preserves legacy behavior, placing all excess space at
|
||||
> the end.
|
||||
>
|
||||
> This aligns behavior of `Flex` with CSS flexbox more closely.
|
||||
>
|
||||
> The following is a screenshot in action:
|
||||
>
|
||||
> <img width="1090" alt="image"
|
||||
>
|
||||
> src="https://github.com/user-attachments/assets/2c7cd797-27bd-4242-a824-4565d369227b"
|
||||
> />
|
||||
>
|
||||
> ---------
|
||||
|
||||
- [1399d95](https://github.com/ratatui/ratatui/commit/1399d95ae0c93b0f802e500022853e32fa604cf9) *(no_std)* Make palette and serde features depends on std by @j-g00da in [#1919](https://github.com/ratatui/ratatui/pull/1919)
|
||||
|
||||
- [b9da192](https://github.com/ratatui/ratatui/commit/b9da1926a0c102d97a552487fc9963590bea80ff) *(serde)* Derive Serialize/Deserialize for alignment enums by @j-g00da in [#1957](https://github.com/ratatui/ratatui/pull/1957)
|
||||
>
|
||||
> Resolves #1954
|
||||
|
||||
- [89b7421](https://github.com/ratatui/ratatui/commit/89b74214d9d09343743c8601d9401c0139a887a4) *(serde)* Derive Serialize/Deserialize for additional structs/enums by @aurreland in [#1883](https://github.com/ratatui/ratatui/pull/1883)
|
||||
|
||||
> This PR adds `#[derive(Serialize, Deserialize)]` to the following
|
||||
> structs:
|
||||
> - `Constraint`
|
||||
> - `Direction`
|
||||
> - `Spacing`
|
||||
> - `Layout`
|
||||
> - `AccentedPalette`
|
||||
> - `NonAccentedPalette`
|
||||
> - `Palette`
|
||||
> - `Padding`
|
||||
> - `Borders`
|
||||
> - `BorderType`
|
||||
> - `ListDirection`
|
||||
> - `ScrollbarOrientation`
|
||||
> - `ScrollDirection`
|
||||
> - `RenderDirection`
|
||||
> - `HighlightSpacing`
|
||||
>
|
||||
> Fixes #1877
|
||||
|
||||
- [4c301e8](https://github.com/ratatui/ratatui/commit/4c301e891d9704fd3578af96d63a3b068252ec6a) *(text)* Implement `AddAssign` for `Text` by @acuteenvy in [#1956](https://github.com/ratatui/ratatui/pull/1956)
|
||||
|
||||
> This makes it possible to add a second `Text` instance to a first one using the += operator.
|
||||
>
|
||||
> ```rust
|
||||
> let mut text = Text::from("line 1");
|
||||
> text += Text::from("line 2");
|
||||
> ```
|
||||
>
|
||||
> Style and alignment applied to the second text is ignored (though styles and alignment of lines and spans are copied).
|
||||
|
||||
- [6dcd53b](https://github.com/ratatui/ratatui/commit/6dcd53bc6ba172d4b96d02809c6a46105e67d85a) *(uncategorized)* Add ergonomic methods for layouting Rects by @joshka in [#1909](https://github.com/ratatui/ratatui/pull/1909)
|
||||
|
||||
> This commit introduces new methods for the `Rect` struct that simplify
|
||||
> the process of splitting a `Rect` into sub-rects according to a given
|
||||
> `Layout`. By putting these methods on the `Rect` struct, we make it a
|
||||
> bit more natural that a layout is applied to the `Rect` itself, rather
|
||||
> than passing a `Rect` to the `Layout` struct to be split.
|
||||
>
|
||||
> Adds:- `Rect::layout` and `Rect::try_layout` methods that allow splitting a
|
||||
> `Rect` into an array of sub-rects according to a given `Layout`.
|
||||
> - `Rect::layout_vec` method that returns a `Vec` of sub-rects.
|
||||
> - `Layout::try_areas` method that returns an array of sub-rects, with
|
||||
> compile-time checks for the number of constraints. This is added
|
||||
> mainly for consistency with the new `Rect` methods.
|
||||
>
|
||||
> ```rust
|
||||
> use ratatui_core::layout::{Layout, Constraint, Rect};
|
||||
> let area = Rect::new(0, 0, 10, 10);
|
||||
> let layout = Layout::vertical([Constraint::Fill(1); 2]);
|
||||
>
|
||||
> // Rect::layout() infers the number of constraints at compile time:
|
||||
> let [top, main] = area.layout(&layout);
|
||||
>
|
||||
> // Rect::try_layout() and Layout::try_areas() do the same, but return a
|
||||
> // Result:
|
||||
> let [top, main] = area.try_layout(&layout)?;
|
||||
> let [top, main] = layout.try_areas(area)?;
|
||||
>
|
||||
> // Rect::layout_vec() returns a Vec of sub-rects:
|
||||
> let areas_vec = area.layout_vec(&layout);
|
||||
>
|
||||
> // you can also explicitly specify the number of constraints:
|
||||
> let areas = area.layout::<2>(&layout);
|
||||
> let areas = area.try_layout::<2>(&layout)?;
|
||||
> let areas = layout.try_areas::<2>(area)?;
|
||||
> ```
|
||||
|
||||
- [0c3872f](https://github.com/ratatui/ratatui/commit/0c3872f1c5105153ebb0368e83e8b72cb68b8b34) *(uncategorized)* Add Rect::outer() by @joshka in [#1929](https://github.com/ratatui/ratatui/pull/1929)
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/211
|
||||
|
||||
- [b6fbfcd](https://github.com/ratatui/ratatui/commit/b6fbfcdd1cf1813879af523a52fb8c5a496a685b) *(uncategorized)* Add lifetime to symbol sets by @joshka in [#1935](https://github.com/ratatui/ratatui/pull/1935)
|
||||
|
||||
> This makes it possible to create symbol sets at runtime with non-static
|
||||
> lifetimes.
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/1722
|
||||
|
||||
- [671c2b4](https://github.com/ratatui/ratatui/commit/671c2b4fd4ee277ba0dc36d152d66c40cfa1f030) *(uncategorized)* Support merging the borders of blocks by @j-g00da
|
||||
|
||||
> When two borders overlap, they will automatically merge into a single,
|
||||
> clean border instead of overlapping.
|
||||
>
|
||||
> This improves visual clarity and reduces rendering glitches around corners.
|
||||
>
|
||||
> For example:
|
||||
>
|
||||
> ```
|
||||
> assert_eq!(Cell::new("┘").merge_symbol("┏", MergeStrategy::Exact).symbol(), "╆");
|
||||
> ```
|
||||
|
||||
### Documentation
|
||||
|
||||
- [8e2d568](https://github.com/ratatui/ratatui/commit/8e2d568428047994f57886d64d9925d6eace130a) *(uncategorized)* Improve layout related docs by @joshka in [#1948](https://github.com/ratatui/ratatui/pull/1948)
|
||||
|
||||
> Adds module level docs and more comprehensive docs on all the types in
|
||||
> the layout module
|
||||
>
|
||||
> Fixes #1937
|
||||
|
||||
- [4c708dd](https://github.com/ratatui/ratatui/commit/4c708ddf8a4dfcc7e31435cc9269fce62ef48212) *(uncategorized)* Improve docs for run/init/restore etc. by @joshka in [#1947](https://github.com/ratatui/ratatui/pull/1947)
|
||||
|
||||
> - **docs: document the init module**
|
||||
> - **docs: use the ratatui::run() methods in the main doc**
|
||||
> - **docs: add more intradoc / website links and historical perspective
|
||||
> on Terminal / backend**
|
||||
> - **docs: add notes about new run/init/restore methods and the
|
||||
> defaultterminal type to terminal docs**
|
||||
|
||||
- [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by @joshka in [#1946](https://github.com/ratatui/ratatui/pull/1946)
|
||||
|
||||
> Adds summary-level crate organization documentation to all crates
|
||||
> explaining the modular workspace structure and when to use each crate.
|
||||
> Links to ARCHITECTURE.md for detailed information.
|
||||
|
||||
- [3de41a8](https://github.com/ratatui/ratatui/commit/3de41a8249d221d603ce9f294cac81df62fffc3c) *(uncategorized)* Document widgets module by @joshka in [#1932](https://github.com/ratatui/ratatui/pull/1932)
|
||||
|
||||
> Adds a good overview of the use and implementation of widget traits.
|
||||
>
|
||||
> Goals with the doc rewrite:
|
||||
> - document the rationale for the ratatui-widgets crate with info for app
|
||||
> builders and widget makers.
|
||||
> - Show how to use the widgets for rendering as well as implement the
|
||||
> traits- document the differences and reasons for each trait
|
||||
> - document the historical perspective (to make it easy to understand
|
||||
> older Ratatui apps as well as migrate to newer approaches
|
||||
> - give recommended approaches to implementing traits
|
||||
> - explain the differences between Consuming and Shared / Mutable
|
||||
> Reference implementations of Widget
|
||||
> - explain the differences between using StatefulWidget and Mutable
|
||||
> References
|
||||
> - Explain the use case for WidgetRef and StatefulWidgetRef
|
||||
> - Link out to third part widget lists
|
||||
>
|
||||
> Fixes:https://github.com/ratatui/ratatui/issues/366
|
||||
>
|
||||
> ---------
|
||||
|
||||
### Miscellaneous Tasks
|
||||
|
||||
- [d6647db](https://github.com/ratatui/ratatui/commit/d6647db74486117affb20104c25b0645f32ce684) *(uncategorized)* Remove some allow attributes for fixed clippy bugs by @joshka in [#1944](https://github.com/ratatui/ratatui/pull/1944)
|
||||
|
||||
- [272f5c0](https://github.com/ratatui/ratatui/commit/272f5c05dc4399389c011d8693bae073523aebfb) *(uncategorized)* Fix new lints by @joshka in [#1922](https://github.com/ratatui/ratatui/pull/1922)
|
||||
|
||||
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/ratatui/ratatui/compare/ratatui-core-v0.1.0-alpha.5...ratatui-core-v0.1.0-alpha.6
|
||||
|
||||
|
||||
|
||||
## ratatui - [0.30.0-alpha.4](https://github.com/ratatui/ratatui/compare/ratatui-v0.30.0-alpha.3...ratatui-v0.30.0-alpha.4) - 2025-05-19
|
||||
|
||||
### Features
|
||||
|
||||
14
Cargo.lock
generated
14
Cargo.lock
generated
@@ -2560,7 +2560,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui"
|
||||
version = "0.30.0-alpha.4"
|
||||
version = "0.30.0-alpha.5"
|
||||
dependencies = [
|
||||
"color-eyre",
|
||||
"criterion",
|
||||
@@ -2592,7 +2592,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-core"
|
||||
version = "0.1.0-alpha.5"
|
||||
version = "0.1.0-alpha.6"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bitflags 2.9.1",
|
||||
@@ -2617,7 +2617,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-crossterm"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
dependencies = [
|
||||
"crossterm",
|
||||
"document-features",
|
||||
@@ -2629,7 +2629,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-macros"
|
||||
version = "0.7.0-alpha.3"
|
||||
version = "0.7.0-alpha.4"
|
||||
dependencies = [
|
||||
"ratatui-core",
|
||||
"ratatui-widgets",
|
||||
@@ -2647,7 +2647,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-termion"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
dependencies = [
|
||||
"document-features",
|
||||
"instability",
|
||||
@@ -2658,7 +2658,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-termwiz"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
dependencies = [
|
||||
"document-features",
|
||||
"ratatui",
|
||||
@@ -2669,7 +2669,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratatui-widgets"
|
||||
version = "0.3.0-alpha.4"
|
||||
version = "0.3.0-alpha.5"
|
||||
dependencies = [
|
||||
"bitflags 2.9.1",
|
||||
"color-eyre",
|
||||
|
||||
14
Cargo.toml
14
Cargo.toml
@@ -48,13 +48,13 @@ palette = "0.7"
|
||||
pretty_assertions = "1"
|
||||
rand = "0.9"
|
||||
rand_chacha = "0.9"
|
||||
ratatui = { path = "ratatui", version = "0.30.0-alpha.4" }
|
||||
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.5" }
|
||||
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.4" }
|
||||
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-alpha.3" }
|
||||
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.4" }
|
||||
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.4" }
|
||||
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.4" }
|
||||
ratatui = { path = "ratatui", version = "0.30.0-alpha.5" }
|
||||
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.6" }
|
||||
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.5" }
|
||||
ratatui-macros = { path = "ratatui-macros", version = "0.7.0-alpha.4" }
|
||||
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.5" }
|
||||
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.5" }
|
||||
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.5" }
|
||||
rstest = "0.25"
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
@@ -4,7 +4,7 @@ description = """
|
||||
Core types and traits for the Ratatui Terminal UI library.
|
||||
Widget libraries should use this crate. Applications should use the main Ratatui crate.
|
||||
"""
|
||||
version = "0.1.0-alpha.5"
|
||||
version = "0.1.0-alpha.6"
|
||||
readme = "README.md"
|
||||
authors.workspace = true
|
||||
documentation.workspace = true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ratatui-crossterm"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
description = "Crossterm backend for the Ratatui Terminal UI library."
|
||||
documentation = "https://docs.rs/ratatui-crossterm/"
|
||||
readme = "README.md"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ratatui-macros"
|
||||
version = "0.7.0-alpha.3"
|
||||
version = "0.7.0-alpha.4"
|
||||
edition.workspace = true
|
||||
authors = ["The Ratatui Developers"]
|
||||
description = "Macros for Ratatui"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ratatui-termion"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
description = "Termion backend for the Ratatui Terminal UI library."
|
||||
documentation = "https://docs.rs/ratatui-termion/"
|
||||
readme = "README.md"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "ratatui-termwiz"
|
||||
version = "0.1.0-alpha.4"
|
||||
version = "0.1.0-alpha.5"
|
||||
description = "Termwiz backend for the Ratatui Terminal UI library."
|
||||
documentation = "https://docs.rs/ratatui-termwiz/"
|
||||
readme = "README.md"
|
||||
|
||||
@@ -3,7 +3,7 @@ name = "ratatui-widgets"
|
||||
description = "A collection of Ratatui widgets for building terminal user interfaces using Ratatui."
|
||||
# Note that this started at 0.3.0 as there was a previous crate using the name `ratatui-widgets`.
|
||||
# <https://github.com/joshka/ratatui-widgets/issues/46>
|
||||
version = "0.3.0-alpha.4"
|
||||
version = "0.3.0-alpha.5"
|
||||
readme = "README.md"
|
||||
authors.workspace = true
|
||||
documentation.workspace = true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "ratatui"
|
||||
description = "A library that's all about cooking up terminal user interfaces"
|
||||
version = "0.30.0-alpha.4"
|
||||
version = "0.30.0-alpha.5"
|
||||
authors.workspace = true
|
||||
documentation.workspace = true
|
||||
repository.workspace = true
|
||||
|
||||
Reference in New Issue
Block a user