Jagoda Estera Ślązak
92bb9b2219
chore: remove Title
references ( #1943 )
2025-06-26 09:13:59 +02:00
Josh McKinney
80bc818723
fix: fix truncation of left aligned block titles ( #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
2025-06-25 21:56:40 -07:00
Josh McKinney
4c86513790
chore: remove block::Title ( #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
2025-06-25 15:36:50 -07:00
Josh McKinney
7bc78bca1b
feat: add ratatui::run() method ( #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))?;
```
2025-06-25 03:20:42 -07:00
Josh McKinney
b6fbfcdd1c
feat: add lifetime to symbol sets ( #1935 )
...
This makes it possible to create symbol sets at runtime with non-static
lifetimes.
Fixes: https://github.com/ratatui/ratatui/issues/1722
2025-06-25 01:02:09 -07:00
Josh McKinney
21e3b598ce
fix: fix handling of multi-byte chars in bar chart ( #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
2025-06-25 00:55:18 -07:00
Josh McKinney
272f5c05dc
chore: fix new lints ( #1922 )
2025-06-25 00:38:41 -07:00
Tatesa Uradnik
e1e400406c
fix: derive copy for list state ( #1921 )
2025-06-24 10:54:34 -07:00
Jagoda Estera Ślązak
488e5f020f
feat: make border!
work without importing Borders
( #1918 )
...
Currently using `border!` macro requires explicit import of `Borders`
which is unnecessary.
2025-06-21 18:30:23 -07:00
Jagoda Estera Ślązak
671c2b4fd4
feat: support merging the borders of blocks ( #1874 )
...
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(), "╆");
```
Co-authored-by: pauladam94 <poladam2002@gmail.com>
Co-authored-by: Paul Adam <65903440+pauladam94@users.noreply.github.com>
Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-06-04 11:10:26 +02:00
Daksh
12cb5a28fe
fix: allow canvas area to exceed u16::MAX ( #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
2025-06-03 16:04:47 -07:00
Josh McKinney
770cb7c3c3
chore: add tests for combining list styles ( #1884 )
...
Co-authored-by: Orhun Parmaksız <orhun@archlinux.org>
2025-06-01 13:30:13 -07:00
Sevki
92b6a16bde
docs: fix grammar in ratatui-widgets README ( #1885 )
...
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-06-01 13:14:59 -07:00
Aurelien Andreo
89b74214d9
feat(serde): derive Serialize/Deserialize for additional structs/enums ( #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
2025-05-31 14:57:13 -07:00
github-actions[bot]
7407c36849
chore: release ( #1854 )
...
## 🤖 New release
* `ratatui-core`: 0.1.0-alpha.4 -> 0.1.0-alpha.5
* `ratatui-crossterm`: 0.1.0-alpha.3 -> 0.1.0-alpha.4
* `ratatui-widgets`: 0.3.0-alpha.3 -> 0.3.0-alpha.4
* `ratatui-macros`: 0.7.0-alpha.2 -> 0.7.0-alpha.3
* `ratatui-termwiz`: 0.1.0-alpha.3 -> 0.1.0-alpha.4
* `ratatui-termion`: 0.1.0-alpha.3 -> 0.1.0-alpha.4
* `ratatui`: 0.30.0-alpha.3 -> 0.30.0-alpha.4
<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>
2025-05-19 01:20:49 -07:00
Tyler Breisacher
dbfb2c3399
chore: upgrade to Rust Edition 2024 ( #1863 )
...
https://doc.rust-lang.org/edition-guide/rust-2024/index.html
Fixes #1727
2025-05-19 01:17:03 -07:00
Josh McKinney
a07f5bec20
chore: move dependency management to workspace ( #1858 )
...
Move all dependency management to the workspace level. This makes it
easier to manage dependencies across multiple crates in the workspace.
This also changes the versions of each dependency to track based on the
semver compatible version of the dependency (e.g. 0.1 instead of 0.1.0
or 2.9 instead of 2.9.0 to avoid having to regularly update the toml
files and to communicate that Ratatui will still generally work with
versions of the dependencies that are not the fully latest version. The
exact version of the dependencies is still tracked in the Cargo.lock
file.
Several dependencies that are fairly stable are changed to track a less
specific version (e.g. serde 1 instead of 1.0.x).
The following dependencies are updated to their latest versions:
- bitflags (2.3 -> 2.9)
- strum (0.26 -> 0.27)
- strum_macros (0.26 -> 0.27)
- all other semver compatible updates
2025-05-15 09:55:34 -07:00
Josh McKinney
702fff501c
feat!: implement stylize methods directly on Style ( #1572 )
...
This makes it possible to create constants using the shorthand methods.
```rust
const MY_STYLE: Style = Style::new().blue().on_black();
```
Rather than implementing Styled for Style and then adding extension
methods that implement the Stylize shorthands, this implements the
methods as const functions directly on Style.
BREAKING CHANGE: `Style` no longer implements `Styled`. Any calls to
methods implemented by the blanket implementation of Stylize are now
defined directly on Style. Remove the Stylize import if it is no longer
used by your code.
The `reset()` method does not have a direct replacement, as it clashes
with the existing `reset()` method. Use `Style::reset()` rather than
`some_style.reset()`
Fixes : #1158
2025-05-14 15:26:29 -07:00
Josh McKinney
e15fefa922
feat(barchar): add BarChart::grouped constructor ( #1513 )
...
Add a new constructor to the `BarChart` widget that allows creating a
grouped barchart with multiple groups of bars.
Also add a new constructor to the `BarGroup` widget that allows creating
a group of bars with a label.
2025-05-14 15:00:50 +03:00
github-actions[bot]
dcb0e5dffc
chore: release ( #1701 )
...
## 🤖 New release
* `ratatui-core`: 0.1.0-alpha.3 -> 0.1.0-alpha.4
* `ratatui-crossterm`: 0.1.0-alpha.2 -> 0.1.0-alpha.3
* `ratatui-widgets`: 0.3.0-alpha.2 -> 0.3.0-alpha.3
* `ratatui-macros`: 0.7.0-alpha.1 -> 0.7.0-alpha.2
* `ratatui-termwiz`: 0.1.0-alpha.2 -> 0.1.0-alpha.3
* `ratatui-termion`: 0.1.0-alpha.2 -> 0.1.0-alpha.3
* `ratatui`: 0.30.0-alpha.2 -> 0.30.0-alpha.3
<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>
2025-05-13 12:48:15 -07:00
Josh McKinney
4fcd238e1e
feat: support no-std for calendar widget ( #1852 )
...
Removes the CalendarEventStore::today() function in no-std environments
2025-05-13 11:38:39 -07:00
Jagoda Estera Ślązak
00da8c6203
fix(no_std): provide f64
polyfills for no_std
compatibility ( #1840 )
...
Related: https://github.com/rust-lang/rust/issues/137578
2025-05-13 10:37:18 -07:00
Jagoda Estera Ślązak
daeba85f14
build(deps): bump kasuari
and line-clipping
( #1844 )
2025-05-12 01:55:49 -07:00
Josh McKinney
8d60e96b2b
refactor(examples): use crossterm event methods ( #1792 )
...
Crossterm 0.29 introduced methods to easily check / extract the event
type. E.g. as_key_press_event() and is_key_press(). This commit
updates the examples to use these methods instead of matching on
the event type. This makes the code cleaner and easier to read.
Also does a general cleanup of the event handling code in the examples.
2025-05-10 10:35:12 -07:00
三咲雅 · Misaki Masa
c238aca83a
fix: padding_right()
should set right padding instead of left ( #1837 )
...
Fixes https://github.com/ratatui/ratatui/issues/1836
2025-05-09 23:31:16 -07:00
Jagoda Estera Ślązak
60a81913ed
chore(widgets): move crossterm to dev-dependencies ( #1834 )
...
Crossterm in widgets is used only in tests.
2025-05-09 16:16:32 -07:00
Jagoda Estera Ślązak
3e1c72fb27
feat(no_std)!: make ratatui compatible with #![no_std]
( #1794 )
...
Resolves #1781
This PR makes it possible to compile ratatui with `#![no_std]`.
Also makes me answer "We Are So Embedded" to "Are We Embedded Yet?"
2025-05-07 13:42:03 -07:00
Tyler Breisacher
d88cd29079
chore: Add 'const' to functions where possible. ( #1802 )
...
The Clippy check for this (missing_const_for_fn) is already enabled, but
catches more cases in upcoming toolchain versions.
This is part of the work to unblock #1727
2025-04-20 18:48:49 -07:00
cgzones
0f80c5e87e
chore!: use expect() instead of allow() for lint overrides ( #1786 )
...
BREAKING CHANGE: MSRV is now 1.81
2025-04-15 10:20:22 -07:00
Jagoda Estera Ślązak
b4a71e5fd5
chore(lint): add std
instead of core
/alloc
lints to ratatui-widgets
( #1763 )
...
Resolves #1761
2025-04-15 09:21:46 -07:00
Jagoda Estera Ślązak
a42a17e184
feat(no_std): make ratatui-widgets
no_std
( #1779 )
...
Resolves #1776
2025-04-15 09:16:06 -07:00
cgzones
02e53de0f8
refactor: make use of iter::repeat_n() ( #1788 )
...
Applied via clippy --fix.
Available since 1.82.0.
2025-04-14 21:43:38 +03:00
Jagoda Estera Ślązak
5a232a3115
feat(no_std): remove redundant std
usages in ratatui-widgets
( #1762 )
2025-04-08 08:59:31 -07:00
Josh McKinney
fcb47d60f3
feat!: rename Alignment to HorizontalAlignment and add VerticalAlignment ( #1735 )
...
We don't anticipate removing or deprecating the type alias in the near
future, but it is recommended to update your imports to use the new
name.
Added a VerticalAlignment enum to make the API more consistent. We don't
have a specific use case for it yet, but it's better to add it now and
be able to use it in the future.
BREAKING-CHANGE: The `Alignment` enum has been renamed to
`HorizontalAlignment` to better reflect its purpose. A type alias has
been added to maintain backwards compatibility, however there are some
cases where type aliases are not enough to maintain backwards
compatibility. E.g. when using glob imports to import all the enum
variants. This should not affect most users, but it is recommended to
update your imports to use the new name.
```diff
- use ratatui::layout::Alignment;
+ use ratatui::layout::HorizontalAlignment;
- use Alignment::*;
+ use HorizontalAlignment::*;
```
2025-04-06 20:00:59 +03:00
Jagoda Estera Ślązak
416ebdf8c8
fix: correct clippy errors introduced by rust 1.86.0 update ( #1755 )
...
New version of rust (1.86.0) caused CI to fail.
2025-04-03 16:43:12 -07:00
EdJoPaTo
ba9eed7742
perf(table): replace while loop with simple min operation ( #1747 )
2025-04-02 14:55:47 -07:00
Josh McKinney
2739391950
style: use Module imports_granularity ( #1728 )
...
I was swayed by the arguments about this made by the compiler team In
<https://github.com/rust-lang/compiler-team/issues/750 > and decided to
look at how this organization affects ratatui. I found this reduces the
number of lines across the codebase by about 350 and makes the imports
more readable and definitely more greppable as you usually only have
to read a single line. I've found in the past that maintaining imports
regularly leads to merge conflicts which have to be resolved by hand
and this change should reduce the likelihood of that happening.
Main change is in rustfmt.toml, and the rest is just the result of
running `cargo xtask format`.
While implementing this, cargo machete brings up that the various
backend crates are unused by the example crates.
The re-export of each backend crate under ratatui is to make it possible
for libs that rely on a specific version of ratatui to use the same
version of the backend crate. Apps in general should use the backend
crate directly rather than through ratatui as this is less confusing.
- Removes all usages of `ratatui::{crossterm, termion, termwiz}`` in the
examples.
- Adds the backend crate to the dependencies of the examples that use
the backend crate directly.
2025-03-19 16:48:02 -07:00
Tayfun Bocek
92a19cb604
feat(list)!: highlight symbol styling ( #1595 )
...
Allow styling for `List`'s highlight symbol
This change makes it so anything that implements `Into<Line>` can be
used as a highlight symbol.
BREAKING CHANGE: `List::highlight_symbol` can no longer be used in const
context
BREAKING CHANGE: `List::highlight_symbol` accepted `&str`. Conversion
methods that rely on type inference will need to be rewritten as the
compiler cannot infer the type.
closes: https://github.com/ratatui/ratatui/issues/1443
---------
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-03-04 14:26:59 -08:00
Josh McKinney
4eac5b2849
fix: make deprecation notes more helpful ( #1702 )
...
AI coding assistants use the deprecation notes to automatically suggest
fixes. This commit updates the deprecation notes to push those tools to
suggest the correct replacement methods and types.
Specifically, AI tools often suggest using `Buffer::get(x, y)`, because
of their training data where this was prevalent. When fixing these
deprecations, they often incorrectly suggest using `Buffer::get(x, y)`
instead of `Buffer[(x, y)]`.
2025-03-04 11:56:44 -08:00
github-actions[bot]
c10d0f12e8
chore: release ( #1671 )
...
## 🤖 New release
* `ratatui-core`: 0.1.0-alpha.2 -> 0.1.0-alpha.3
* `ratatui-crossterm`: 0.1.0-alpha.1 -> 0.1.0-alpha.2
* `ratatui-widgets`: 0.3.0-alpha.1 -> 0.3.0-alpha.2
* `ratatui-macros`: 0.7.0-alpha.0 -> 0.7.0-alpha.1
* `ratatui-termwiz`: 0.1.0-alpha.1 -> 0.1.0-alpha.2
* `ratatui-termion`: 0.1.0-alpha.1 -> 0.1.0-alpha.2
* `ratatui`: 0.30.0-alpha.1 -> 0.30.0-alpha.2
2025-03-01 15:34:53 -08:00
Orhun Parmaksız
bb94d1c0fa
docs(examples): move minimal example to examples folder ( #1649 )
2025-02-05 10:11:57 -08:00
Björn Steinbrink
f5fc8197ff
fix: avoid extra line break on whitespace only lines when wrapping paragraphs ( #1636 )
...
Currently whitespace only lines produces an extra line break when
trimming is disabled, because both the trimmed as well as the
non-trimmed line get inserted. Fix this by only inserting the
non-trimmed one.
Co-authored-by: Björn Steinbrink <b.steinbrink@demv.de>
2025-02-04 17:02:50 -08:00
Alex Pasmantier
1f41a61008
perf(paragraph): avoid unnecessary work when rendering ( #1622 )
...
Improve render times for paragraphs that are scrolled.
Currently all `LineComposer`s are considered to be state machines which
means rendering a paragraph with a given Y offset requires computing the
entire state up to Y before being able to render from Y onwards.
While this makes sense for Composers such as the `WordWrapper` (where
one needs to consider all previous lines to determine where a given line
will end up), it means it also penalizes Composers which can render a
given line "statelessely" (such as the `LineTruncator`) which actually
end up doing a lot of unnecessary work (and on the critical rendering
path) when the offset gets high.
Co-authored-by: Josh McKinney <joshka@users.noreply.github.com>
2025-01-23 13:52:52 -08:00
Jens Krause
7ad9c29eac
feat(linegauge): customized symbols ( #1601 )
...
With this PR any symbol (`&str`) can be used to render `filled` and
`unfilled` parts of `LineGauge` now. Before that change, only
[`symbols::line::Set`](https://docs.rs/ratatui/latest/ratatui/symbols/line/struct.Set.html )
was accepted.
Note: New methods are introduced to define those symbols:
`filled_symbol` and `unfilled_symbol`. The method
[`line_set`](https://docs.rs/ratatui/latest/ratatui/widgets/struct.LineGauge.html#method.line_set )
is still there, but marked as `deprecated`.

2025-01-22 19:56:22 -08:00
Théo Tchilinguirian
985cd05573
feat(symbols): add dashed borders ( #1573 )
...
Adds several new border sets:
- ratatui:🔣 :border::LIGHT_DOUBLE_DASHED
- ratatui:🔣 :border::HEAVY_DOUBLE_DASHED
- ratatui:🔣 :border::LIGHT_TRIPLE_DASHED
- ratatui:🔣 :border::HEAVY_TRIPLE_DASHED
- ratatui:🔣 :border::LIGHT_QUADRUPLE_DASHED
- ratatui:🔣 :border::HEAVY_QUADRUPLE_DASHED
And corresponding variants to the ratatui::widgets::BorderType enum
Fixes: https://github.com/ratatui/ratatui/issues/1355
Signed-off-by: Théo Tchilinguirian <theo.tchlx@gmail.com>
2025-01-20 00:36:19 -08:00
Josh McKinney
e7831aedd4
chore: release 0.30.0-alpha.1 ( #1618 )
...
Versions:
```
ratatui = { path = "ratatui", version = "0.30.0-alpha.1" }
ratatui-core = { path = "ratatui-core", version = "0.1.0-alpha.2" }
ratatui-crossterm = { path = "ratatui-crossterm", version = "0.1.0-alpha.1" }
ratatui-termion = { path = "ratatui-termion", version = "0.1.0-alpha.1" }
ratatui-termwiz = { path = "ratatui-termwiz", version = "0.1.0-alpha.1" }
ratatui-widgets = { path = "ratatui-widgets", version = "0.3.0-alpha.1" }
```
2025-01-15 15:31:38 -08:00
Josh McKinney
4a871f993e
ci: refactor xtask / toml formatting ( #1602 )
...
- format toml files using taplo
- add toml formatting check to CI
- use xtask consistently from bacon
- refactor xtask commands to take params instead of multiple commands
2025-01-14 14:20:05 -08:00
Josh McKinney
a692a6e371
fix(lint): apply rust 1.84 clippy suggestions ( #1612 )
...
The canvas map constants are now statics instead.
Fixes
https://rust-lang.github.io/rust-clippy/master/index.html\#large_const_arrays
2025-01-10 23:17:07 +03:00
n4n5
50ba96518f
feat: add a new RatatuiMascot widget ( #1584 )
...
Move the Mascot from Demo2 into a new widget.
Make the Rat grey and adjust the other colors.
```rust
frame.render_widget(RatatuiMascot::default(), frame.area());
```
2024-12-26 04:32:38 -08:00
dawe
03066d81bf
docs: fix punctuation in canvas.rs documentation ( #1583 )
...
Fix end of sentence punctuation in canvas.rs docs.
2024-12-21 03:49:44 -05:00