ratatui_ruby 0.10.1 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.builds/ruby-3.2.yml +1 -1
- data/.builds/ruby-3.3.yml +1 -1
- data/.builds/ruby-3.4.yml +1 -1
- data/.builds/ruby-4.0.0.yml +1 -1
- data/CHANGELOG.md +24 -0
- data/doc/concepts/application_architecture.md +2 -2
- data/doc/concepts/application_testing.md +1 -1
- data/doc/concepts/custom_widgets.md +2 -2
- data/doc/contributors/todo/align/api_completeness_audit-finished.md +375 -0
- data/doc/contributors/todo/align/api_completeness_audit-unfinished.md +206 -0
- data/doc/contributors/todo/align/terminal.md +647 -0
- data/doc/getting_started/quickstart.md +41 -41
- data/doc/images/app_cli_rich_moments.gif +0 -0
- data/examples/app_cli_rich_moments/README.md +81 -0
- data/examples/app_cli_rich_moments/app.rb +189 -0
- data/ext/ratatui_ruby/Cargo.lock +1 -1
- data/ext/ratatui_ruby/Cargo.toml +1 -1
- data/ext/ratatui_ruby/src/frame.rs +17 -4
- data/ext/ratatui_ruby/src/lib.rs +17 -3
- data/ext/ratatui_ruby/src/lib.rs.bak +286 -0
- data/ext/ratatui_ruby/src/rendering.rs +38 -25
- data/ext/ratatui_ruby/src/rendering.rs.bak +152 -0
- data/ext/ratatui_ruby/src/terminal.rs +245 -33
- data/ext/ratatui_ruby/src/terminal.rs.bak +381 -0
- data/ext/ratatui_ruby/src/terminal.rs.orig +409 -0
- data/ext/ratatui_ruby/src/widgets/barchart.rs +4 -3
- data/ext/ratatui_ruby/src/widgets/block.rs +4 -4
- data/ext/ratatui_ruby/src/widgets/calendar.rs +4 -3
- data/ext/ratatui_ruby/src/widgets/canvas.rs +7 -4
- data/ext/ratatui_ruby/src/widgets/center.rs +3 -3
- data/ext/ratatui_ruby/src/widgets/chart.rs +4 -4
- data/ext/ratatui_ruby/src/widgets/clear.rs +6 -6
- data/ext/ratatui_ruby/src/widgets/cursor.rs +10 -7
- data/ext/ratatui_ruby/src/widgets/gauge.rs +4 -3
- data/ext/ratatui_ruby/src/widgets/layout.rs +3 -3
- data/ext/ratatui_ruby/src/widgets/line_gauge.rs +4 -3
- data/ext/ratatui_ruby/src/widgets/list.rs +6 -9
- data/ext/ratatui_ruby/src/widgets/overlay.rs +3 -3
- data/ext/ratatui_ruby/src/widgets/paragraph.rs +5 -6
- data/ext/ratatui_ruby/src/widgets/ratatui_logo.rs +4 -4
- data/ext/ratatui_ruby/src/widgets/ratatui_mascot.rs +8 -4
- data/ext/ratatui_ruby/src/widgets/scrollbar.rs +10 -10
- data/ext/ratatui_ruby/src/widgets/sparkline.rs +4 -3
- data/ext/ratatui_ruby/src/widgets/table.rs +6 -6
- data/ext/ratatui_ruby/src/widgets/tabs.rs +4 -3
- data/lib/ratatui_ruby/labs/a11y.rb +173 -0
- data/lib/ratatui_ruby/labs/frame_a11y_capture.rb +50 -0
- data/lib/ratatui_ruby/labs.rb +47 -0
- data/lib/ratatui_ruby/layout/position.rb +26 -0
- data/lib/ratatui_ruby/terminal/viewport.rb +80 -0
- data/lib/ratatui_ruby/terminal_lifecycle.rb +164 -6
- data/lib/ratatui_ruby/terminal_lifecycle.rb.bak +197 -0
- data/lib/ratatui_ruby/test_helper/terminal.rb +8 -1
- data/lib/ratatui_ruby/tui/core.rb +16 -0
- data/lib/ratatui_ruby/version.rb +1 -1
- data/lib/ratatui_ruby.rb +82 -3
- data/migrate_to_buffer.rb +145 -0
- data/sig/examples/app_cli_rich_moments/app.rbs +12 -0
- data/sig/ratatui_ruby/labs.rbs +87 -0
- data/sig/ratatui_ruby/ratatui_ruby.rbs +12 -4
- data/sig/ratatui_ruby/terminal/viewport.rbs +19 -0
- data/sig/ratatui_ruby/terminal_lifecycle.rbs +13 -5
- data/sig/ratatui_ruby/tui/core.rbs +3 -0
- metadata +21 -2
- /data/doc/contributors/{future_work.md → todo/future_work.md} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8a44249eb77ada15e7b0705c6fc4367241584f68271d932bc76b1b2dc1ee7d98
|
|
4
|
+
data.tar.gz: 4758da71c5a93dd47d0f6b1929e8980ff70c9f4de49d09c70948546266b91def
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb685f50e374810635686659567feeca0bf0f47760718b84586226585e417c6bfb51a75720bc4ec563f49e80f46382a74283a22d523f38ff5b140cfe0e849cd8
|
|
7
|
+
data.tar.gz: 0e56b7c647489c2ef550575b6666317c9d93be3a911f386e2f113e3cb4a55eb0fc654623525d0117139466323496421770e487b4f547bddeac22df4024bf6de3
|
data/.builds/ruby-3.2.yml
CHANGED
data/.builds/ruby-3.3.yml
CHANGED
data/.builds/ruby-3.4.yml
CHANGED
data/.builds/ruby-4.0.0.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -18,6 +18,29 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
18
18
|
|
|
19
19
|
### Removed
|
|
20
20
|
|
|
21
|
+
## [0.10.2] - 2026-01-14
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **Experimental Labs System**: New `RatatuiRuby::Labs` module for opt-in experimental features via `RR_LABS` environment variable. Check with `Labs.enabled?(:a11y)` or enable programmatically with `Labs.enable!(:a11y)`. _Labs are subject to change even between patch releases._
|
|
26
|
+
- **A11Y Widget Tree Export (Lab)**: When `RR_LABS=A11Y` is set, the widget tree is serialized to XML and written to `Dir.tmpdir/ratatui_a11y.xml` every frame. This exports semantic structure (`<Paragraph>`, `<List>`, etc.) for accessibility tooling integration. Access is through `RatatuiRuby::Labs::A11y.dump_widget_tree(widget)` or automatic via `RatatuiRuby.draw`.
|
|
27
|
+
- **Inline Viewport**: New `viewport:` parameter for `init_terminal` and `run` accepts `:inline` or `:fullscreen` (default). Inline viewports occupy a fixed number of lines at the terminal bottom, preserving scrollback history above. Pass `height:` to specify inline viewport height (default: 8 lines). Fullscreen viewports use the alternate screen as before.
|
|
28
|
+
- **Insert Before**: New `insert_before(height, widget)` method inserts content above an inline viewport into scrollback without disrupting the running TUI. Essential for logging status updates, progress messages, or diagnostic output while your inline TUI continues running. Only works with inline viewports; raises `Error::Invariant` in fullscreen mode.
|
|
29
|
+
- **Terminal Area Accessors**: New methods to query terminal and viewport dimensions:
|
|
30
|
+
- `terminal_area` / `get_terminal_size` — full terminal backend size (always full dimensions)
|
|
31
|
+
- `viewport_area` / `get_viewport_area` — current viewport rendering area (inline viewport height or full terminal in fullscreen)
|
|
32
|
+
- Aliases: `terminal_size`, `viewport_size`, `get_terminal_area`, `get_viewport_size`
|
|
33
|
+
- **Cursor Position Accessors**: New methods for querying and setting cursor position:
|
|
34
|
+
- `cursor_position` / `get_cursor_position` — returns current cursor position as `Layout::Position` or `[x, y]` array
|
|
35
|
+
- `cursor_position=` / `set_cursor_position` — sets cursor position from `Layout::Position`, array, or separate x/y arguments
|
|
36
|
+
- **Error::Internal Exception**: New exception class for framework bugs, distinct from user errors. If you encounter this, please report it as a framework bug.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
### Removed
|
|
43
|
+
|
|
21
44
|
## [0.10.1] - 2026-01-11
|
|
22
45
|
|
|
23
46
|
### Added
|
|
@@ -624,6 +647,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
624
647
|
- **Testing Support**: Included `RatatuiRuby::TestHelper` and RSpec integration to make testing your TUI applications possible.
|
|
625
648
|
|
|
626
649
|
[Unreleased]: https://git.sr.ht/~kerrick/ratatui_ruby/refs/HEAD
|
|
650
|
+
[0.10.2]: https://git.sr.ht/~kerrick/ratatui_ruby/refs/v0.10.2
|
|
627
651
|
[0.10.1]: https://git.sr.ht/~kerrick/ratatui_ruby/refs/v0.10.1
|
|
628
652
|
[0.10.1]: https://git.sr.ht/~kerrick/ratatui_ruby/refs/v0.10.1
|
|
629
653
|
[0.10.1]: https://git.sr.ht/~kerrick/ratatui_ruby/refs/v0.10.1
|
|
@@ -297,7 +297,7 @@ We provide these reference architectures to inspire you:
|
|
|
297
297
|
|
|
298
298
|
### Model-View-Update
|
|
299
299
|
|
|
300
|
-
**Source:** [examples/app_all_events](
|
|
300
|
+
**Source:** [examples/app_all_events](../../examples/app_all_events/README.md)
|
|
301
301
|
|
|
302
302
|
This pattern implements unidirectional data flow inspired by The Elm Architecture:
|
|
303
303
|
* **Model:** A single immutable `Data.define` object holding all application state.
|
|
@@ -309,7 +309,7 @@ Use this when you want predictable state management and easy-to-test logic.
|
|
|
309
309
|
|
|
310
310
|
### Component-Based
|
|
311
311
|
|
|
312
|
-
**Source:** [examples/app_color_picker](
|
|
312
|
+
**Source:** [examples/app_color_picker](../../examples/app_color_picker/README.md)
|
|
313
313
|
|
|
314
314
|
This pattern addresses the difficulty of mouse interaction and complex UI orchestration:
|
|
315
315
|
* **Component Contract:** Every UI element implements `render(tui, frame, area)` and `handle_event(event)`.
|
|
@@ -190,4 +190,4 @@ See [RatatuiRuby::TestHelper::TestDoubles](../lib/ratatui_ruby/test_helper/test_
|
|
|
190
190
|
|
|
191
191
|
## Example
|
|
192
192
|
|
|
193
|
-
Check out the [examples directory](
|
|
193
|
+
Check out the [examples directory](../../examples/) for fully tested applications showcasing these patterns.
|
|
@@ -242,6 +242,6 @@ The interface uses structural typing. Any class with a matching `render` signatu
|
|
|
242
242
|
|
|
243
243
|
## Related Resources
|
|
244
244
|
|
|
245
|
-
- [Custom Render Example](
|
|
246
|
-
- [Cell Example](
|
|
245
|
+
- [Custom Render Example](../../examples/widget_render/README.md) — Full working example
|
|
246
|
+
- [Cell Example](../../examples/widget_cell/README.md) — Low-level cell drawing
|
|
247
247
|
- [Application Testing](./application_testing.md) — Test helper reference
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# Ratatui Features Audit - Complete Comprehensive Catalog
|
|
8
|
+
|
|
9
|
+
These documents catalog EVERY public feature, method, function, enum variant, and constructor in the Ratatui Rust library with precise file/line references. This has the finished items; [the other has the unfinished items](./api_completeness_audit-unfinished.md).
|
|
10
|
+
|
|
11
|
+
## Terminal & Initialization Features
|
|
12
|
+
|
|
13
|
+
| Feature Name | File/Line | Status |
|
|
14
|
+
|--------------|-----------|--------|
|
|
15
|
+
| run | ratatui/src/init.rs:251 | ✅ |
|
|
16
|
+
| init | ratatui/src/init.rs:298 | ✅ |
|
|
17
|
+
| init_with_options | ratatui/src/init.rs:382 | ✅ |
|
|
18
|
+
| restore | ratatui/src/init.rs:457 | ✅ |
|
|
19
|
+
| Viewport::Fullscreen | ratatui-core/src/terminal/viewport.rs:22 | ✅ |
|
|
20
|
+
| Viewport::Inline(u16) | ratatui-core/src/terminal/viewport.rs:28 | ✅ |
|
|
21
|
+
| Terminal::draw | ratatui-core/src/terminal/terminal.rs:373 | ✅ |
|
|
22
|
+
| Terminal::size | ratatui-core/src/terminal/terminal.rs:568 | ✅ |
|
|
23
|
+
| Terminal::insert_before | ratatui-core/src/terminal/terminal.rs:648 | ✅ |
|
|
24
|
+
| TerminalOptions struct | ratatui-core/src/terminal/terminal.rs:104 | ✅ |
|
|
25
|
+
| Frame struct | ratatui-core/src/terminal/frame.rs:17 | ✅ |
|
|
26
|
+
| Frame::render_widget | ratatui-core/src/terminal/frame.rs:93 | ✅ |
|
|
27
|
+
| Frame::render_stateful_widget | ratatui-core/src/terminal/frame.rs:124 | ✅ |
|
|
28
|
+
| Frame::set_cursor_position | ratatui-core/src/terminal/frame.rs:141 | ✅ |
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Layout Features
|
|
32
|
+
|
|
33
|
+
| Feature Name | File/Line | Status |
|
|
34
|
+
|--------------|-----------|--------|
|
|
35
|
+
| Layout struct | ratatui-core/src/layout/layout.rs:193 | ✅ |
|
|
36
|
+
| Layout::horizontal | ratatui-core/src/layout/layout.rs:285 | ✅ |
|
|
37
|
+
| Layout::vertical | ratatui-core/src/layout/layout.rs:265 | ✅ |
|
|
38
|
+
| Layout::constraints | ratatui-core/src/layout/layout.rs:377 | ✅ |
|
|
39
|
+
| Layout::spacing | ratatui-core/src/layout/layout.rs:521 | ✅ |
|
|
40
|
+
| Layout::split | ratatui-core/src/layout/layout.rs:663 | ✅ |
|
|
41
|
+
| Layout::split_with_spacers | ratatui-core/src/layout/layout.rs:713 | ✅ |
|
|
42
|
+
| Constraint::Min(u16) | ratatui-core/src/layout/constraint.rs:94 | ✅ |
|
|
43
|
+
| Constraint::Max(u16) | ratatui-core/src/layout/constraint.rs:117 | ✅ |
|
|
44
|
+
| Constraint::Length(u16) | ratatui-core/src/layout/constraint.rs:140 | ✅ |
|
|
45
|
+
| Constraint::Percentage(u16) | ratatui-core/src/layout/constraint.rs:168 | ✅ |
|
|
46
|
+
| Constraint::Ratio(u32, u32) | ratatui-core/src/layout/constraint.rs:192 | ✅ |
|
|
47
|
+
| Constraint::Fill(u16) | ratatui-core/src/layout/constraint.rs:218 | ✅ |
|
|
48
|
+
| Constraint::from_lengths | ratatui-core/src/layout/constraint.rs:230 | ✅ |
|
|
49
|
+
| Constraint::from_ratios | ratatui-core/src/layout/constraint.rs:254 | ✅ |
|
|
50
|
+
| Constraint::from_percentages | ratatui-core/src/layout/constraint.rs:277 | ✅ |
|
|
51
|
+
| Constraint::from_maxes | ratatui-core/src/layout/constraint.rs:300 | ✅ |
|
|
52
|
+
| Constraint::from_mins | ratatui-core/src/layout/constraint.rs:320 | ✅ |
|
|
53
|
+
| Constraint::from_fills | ratatui-core/src/layout/constraint.rs:341 | ✅ |
|
|
54
|
+
| Flex::Legacy | ratatui-core/src/layout/flex.rs:75 | ✅ |
|
|
55
|
+
| Flex::Start | ratatui-core/src/layout/flex.rs:98 | ✅ |
|
|
56
|
+
| Flex::End | ratatui-core/src/layout/flex.rs:120 | ✅ |
|
|
57
|
+
| Flex::Center | ratatui-core/src/layout/flex.rs:142 | ✅ |
|
|
58
|
+
| Flex::SpaceBetween | ratatui-core/src/layout/flex.rs:164 | ✅ |
|
|
59
|
+
| Flex::SpaceEvenly | ratatui-core/src/layout/flex.rs:187 | ✅ |
|
|
60
|
+
| Flex::SpaceAround | ratatui-core/src/layout/flex.rs:209 | ✅ |
|
|
61
|
+
| Direction::Horizontal | ratatui-core/src/layout/direction.rs:16 | ✅ |
|
|
62
|
+
| Direction::Vertical | ratatui-core/src/layout/direction.rs:20 | ✅ |
|
|
63
|
+
| Position struct | ratatui-core/src/layout/position.rs:57 | ✅ |
|
|
64
|
+
| Size struct | ratatui-core/src/layout/size.rs:46 | ✅ |
|
|
65
|
+
| Rect struct | ratatui-core/src/layout/rect.rs:134 | ✅ |
|
|
66
|
+
| Rect::new | ratatui-core/src/layout/rect.rs:166 | ✅ |
|
|
67
|
+
| Rect::area | ratatui-core/src/layout/rect.rs:190 | ✅ |
|
|
68
|
+
| Rect::is_empty | ratatui-core/src/layout/rect.rs:195 | ✅ |
|
|
69
|
+
| Rect::left | ratatui-core/src/layout/rect.rs:200 | ✅ |
|
|
70
|
+
| Rect::right | ratatui-core/src/layout/rect.rs:205 | ✅ |
|
|
71
|
+
| Rect::top | ratatui-core/src/layout/rect.rs:214 | ✅ |
|
|
72
|
+
| Rect::bottom | ratatui-core/src/layout/rect.rs:219 | ✅ |
|
|
73
|
+
| Rect::inner | ratatui-core/src/layout/rect.rs:228 | ✅ |
|
|
74
|
+
| Rect::outer | ratatui-core/src/layout/rect.rs:248 | ✅ |
|
|
75
|
+
| Rect::offset | ratatui-core/src/layout/rect.rs:276 | ✅ |
|
|
76
|
+
| Rect::resize | ratatui-core/src/layout/rect.rs:289 | ✅ |
|
|
77
|
+
| Rect::union | ratatui-core/src/layout/rect.rs:305 | ✅ |
|
|
78
|
+
| Rect::intersection | ratatui-core/src/layout/rect.rs:322 | ✅ |
|
|
79
|
+
| Rect::clamp | ratatui-core/src/layout/rect.rs:387 | ✅ |
|
|
80
|
+
| Rect::rows | ratatui-core/src/layout/rect/iter.rs:4 | ✅ |
|
|
81
|
+
| Rect::columns | ratatui-core/src/layout/rect/iter.rs:66 | ✅ |
|
|
82
|
+
| Rect::positions | ratatui-core/src/layout/rect/iter.rs:130 | ✅ |
|
|
83
|
+
|
|
84
|
+
## Style Features
|
|
85
|
+
|
|
86
|
+
| Feature Name | File/Line | Status |
|
|
87
|
+
|--------------|-----------|--------|
|
|
88
|
+
| Color::Reset | ratatui-core/src/style/color.rs:30 | ✅ |
|
|
89
|
+
| Color::Black | ratatui-core/src/style/color.rs:32 | ✅ |
|
|
90
|
+
| Color::Red | ratatui-core/src/style/color.rs:34 | ✅ |
|
|
91
|
+
| Color::Green | ratatui-core/src/style/color.rs:36 | ✅ |
|
|
92
|
+
| Color::Yellow | ratatui-core/src/style/color.rs:38 | ✅ |
|
|
93
|
+
| Color::Blue | ratatui-core/src/style/color.rs:40 | ✅ |
|
|
94
|
+
| Color::Magenta | ratatui-core/src/style/color.rs:42 | ✅ |
|
|
95
|
+
| Color::Cyan | ratatui-core/src/style/color.rs:44 | ✅ |
|
|
96
|
+
| Color::Gray | ratatui-core/src/style/color.rs:46 | ✅ |
|
|
97
|
+
| Color::DarkGray | ratatui-core/src/style/color.rs:48 | ✅ |
|
|
98
|
+
| Color::LightRed | ratatui-core/src/style/color.rs:50 | ✅ |
|
|
99
|
+
| Color::LightGreen | ratatui-core/src/style/color.rs:52 | ✅ |
|
|
100
|
+
| Color::LightYellow | ratatui-core/src/style/color.rs:54 | ✅ |
|
|
101
|
+
| Color::LightBlue | ratatui-core/src/style/color.rs:56 | ✅ |
|
|
102
|
+
| Color::LightMagenta | ratatui-core/src/style/color.rs:58 | ✅ |
|
|
103
|
+
| Color::LightCyan | ratatui-core/src/style/color.rs:60 | ✅ |
|
|
104
|
+
| Color::White | ratatui-core/src/style/color.rs:62 | ✅ |
|
|
105
|
+
| Color::Rgb(u8, u8, u8) | ratatui-core/src/style/color.rs:64 | ✅ |
|
|
106
|
+
| Color::Indexed(u8) | ratatui-core/src/style/color.rs:66 | ✅ |
|
|
107
|
+
| Color::from_u32 | ratatui-core/src/style/color.rs:133 | ✅ |
|
|
108
|
+
| Color::from_hsl | ratatui-core/src/style/color.rs:416 | ✅ |
|
|
109
|
+
| Color::from_hsluv | ratatui-core/src/style/color.rs:469 | ✅ |
|
|
110
|
+
| Style struct | ratatui-core/src/style.rs:239 | ✅ |
|
|
111
|
+
| Style::fg | ratatui-core/src/style.rs:335 | ✅ |
|
|
112
|
+
| Style::bg | ratatui-core/src/style.rs:352 | ✅ |
|
|
113
|
+
| Style::underline_color | ratatui-core/src/style.rs:387 | ✅ |
|
|
114
|
+
| Style::add_modifier | ratatui-core/src/style.rs:408 | ✅ |
|
|
115
|
+
| Style::remove_modifier | ratatui-core/src/style.rs:430 | ✅ |
|
|
116
|
+
| Modifier::BOLD | ratatui-core/src/style.rs:105 | ✅ |
|
|
117
|
+
| Modifier::DIM | ratatui-core/src/style.rs:106 | ✅ |
|
|
118
|
+
| Modifier::ITALIC | ratatui-core/src/style.rs:107 | ✅ |
|
|
119
|
+
| Modifier::UNDERLINED | ratatui-core/src/style.rs:108 | ✅ |
|
|
120
|
+
| Modifier::SLOW_BLINK | ratatui-core/src/style.rs:109 | ✅ |
|
|
121
|
+
| Modifier::RAPID_BLINK | ratatui-core/src/style.rs:110 | ✅ |
|
|
122
|
+
| Modifier::REVERSED | ratatui-core/src/style.rs:111 | ✅ |
|
|
123
|
+
| Modifier::HIDDEN | ratatui-core/src/style.rs:112 | ✅ |
|
|
124
|
+
| Modifier::CROSSED_OUT | ratatui-core/src/style.rs:113 | ✅ |
|
|
125
|
+
|
|
126
|
+
## Text Features
|
|
127
|
+
|
|
128
|
+
| Feature Name | File/Line | Status |
|
|
129
|
+
|--------------|-----------| -------|
|
|
130
|
+
| Text struct | ratatui-core/src/text/text.rs:196 | ✅ |
|
|
131
|
+
| Span struct | ratatui-core/src/text/span.rs:99 | ✅ |
|
|
132
|
+
| Line struct | ratatui-core/src/text/line.rs:183 | ✅ |
|
|
133
|
+
|
|
134
|
+
## Symbol Sets
|
|
135
|
+
|
|
136
|
+
| Feature Name | File/Line | Status |
|
|
137
|
+
|--------------|-----------|--------|
|
|
138
|
+
| half_block::UPPER | ratatui-core/src/symbols/half_block.rs:1 | ✅ |
|
|
139
|
+
| half_block::LOWER | ratatui-core/src/symbols/half_block.rs:3 | ✅ |
|
|
140
|
+
| half_block::FULL | ratatui-core/src/symbols/half_block.rs:5 | ✅ |
|
|
141
|
+
| Marker::Dot | ratatui-core/src/symbols/marker.rs:11 | ✅ |
|
|
142
|
+
| Marker::Block | ratatui-core/src/symbols/marker.rs:13 | ✅ |
|
|
143
|
+
| Marker::Bar | ratatui-core/src/symbols/marker.rs:17 | ✅ |
|
|
144
|
+
| Marker::Braille | ratatui-core/src/symbols/marker.rs:21 | ✅ |
|
|
145
|
+
| Marker::HalfBlock | ratatui-core/src/symbols/marker.rs:25 | ✅ |
|
|
146
|
+
| bar::Set struct | ratatui-core/src/symbols/bar.rs:8 | ✅ |
|
|
147
|
+
| bar::THREE_LEVELS | ratatui-core/src/symbols/bar.rs:29 | ✅ |
|
|
148
|
+
| bar::NINE_LEVELS | ratatui-core/src/symbols/bar.rs:41 | ✅ |
|
|
149
|
+
| border::Set struct | ratatui-core/src/symbols/border.rs:12 | ✅ |
|
|
150
|
+
| border::PLAIN | ratatui-core/src/symbols/border.rs:43 | ✅ |
|
|
151
|
+
| border::ROUNDED | ratatui-core/src/symbols/border.rs:62 | ✅ |
|
|
152
|
+
| border::DOUBLE | ratatui-core/src/symbols/border.rs:81 | ✅ |
|
|
153
|
+
| border::THICK | ratatui-core/src/symbols/border.rs:100 | ✅ |
|
|
154
|
+
| border::QUADRANT_OUTSIDE | ratatui-core/src/symbols/border.rs:195 | ✅ |
|
|
155
|
+
| border::QUADRANT_INSIDE | ratatui-core/src/symbols/border.rs:214 | ✅ |
|
|
156
|
+
| line::Set struct | ratatui-core/src/symbols/line.rs:62 | ✅ |
|
|
157
|
+
| line::NORMAL | ratatui-core/src/symbols/line.rs:82 | ✅ |
|
|
158
|
+
| line::DOUBLE | ratatui-core/src/symbols/line.rs:104 | ✅ |
|
|
159
|
+
| line::THICK | ratatui-core/src/symbols/line.rs:118 | ✅ |
|
|
160
|
+
|
|
161
|
+
## Widgets
|
|
162
|
+
|
|
163
|
+
### Paragraph Widget
|
|
164
|
+
|
|
165
|
+
| Feature Name | File/Line | Status |
|
|
166
|
+
|--------------|-----------|--------|
|
|
167
|
+
| Paragraph struct | ratatui-widgets/src/paragraph.rs:80 | ✅ |
|
|
168
|
+
| Paragraph::block | ratatui-widgets/src/paragraph.rs:174 | ✅ |
|
|
169
|
+
| Paragraph::style | ratatui-widgets/src/paragraph.rs:198 | ✅ |
|
|
170
|
+
| Paragraph::wrap | ratatui-widgets/src/paragraph.rs:115 | ✅ |
|
|
171
|
+
| Paragraph::scroll | ratatui-widgets/src/paragraph.rs:161 | ✅ |
|
|
172
|
+
| Paragraph::alignment | ratatui-widgets/src/paragraph.rs:199 | ✅ |
|
|
173
|
+
| Wrap struct | ratatui-widgets/src/paragraph.rs:240 | ✅ |
|
|
174
|
+
| Wrap::trim | ratatui-widgets/src/paragraph.rs:242 | ✅ |
|
|
175
|
+
|
|
176
|
+
### Block Widget
|
|
177
|
+
|
|
178
|
+
| Feature Name | File/Line | Status |
|
|
179
|
+
|--------------|-----------|--------|
|
|
180
|
+
| Block struct | ratatui-widgets/src/block.rs:75 | ✅ |
|
|
181
|
+
| Block::borders | ratatui-widgets/src/block.rs:85 | ✅ |
|
|
182
|
+
| Block::border_style | ratatui-widgets/src/block.rs:89 | ✅ |
|
|
183
|
+
| Block::border_set | ratatui-widgets/src/block.rs:91 | ✅ |
|
|
184
|
+
| Block::padding | ratatui-widgets/src/block.rs:97 | ✅ |
|
|
185
|
+
| Padding struct | ratatui-widgets/src/block/padding.rs:27 | ✅ |
|
|
186
|
+
| Padding::ZERO | ratatui-widgets/src/block/padding.rs:40 | ✅ |
|
|
187
|
+
| Padding::new | ratatui-widgets/src/block/padding.rs:50 | ✅ |
|
|
188
|
+
| Padding::horizontal | ratatui-widgets/src/block/padding.rs:66 | ✅ |
|
|
189
|
+
| Padding::vertical | ratatui-widgets/src/block/padding.rs:76 | ✅ |
|
|
190
|
+
| Padding::uniform | ratatui-widgets/src/block/padding.rs:86 | ✅ |
|
|
191
|
+
| Padding::proportional | ratatui-widgets/src/block/padding.rs:99 | ✅ |
|
|
192
|
+
| Padding::symmetric | ratatui-widgets/src/block/padding.rs:112 | ✅ |
|
|
193
|
+
| Padding::left | ratatui-widgets/src/block/padding.rs:122 | ✅ |
|
|
194
|
+
| Padding::right | ratatui-widgets/src/block/padding.rs:132 | ✅ |
|
|
195
|
+
| Padding::top | ratatui-widgets/src/block/padding.rs:142 | ✅ |
|
|
196
|
+
| Padding::bottom | ratatui-widgets/src/block/padding.rs:152 | ✅ |
|
|
197
|
+
| Borders::TOP | ratatui-widgets/src/borders.rs:33 | ✅ |
|
|
198
|
+
| Borders::RIGHT | ratatui-widgets/src/borders.rs:35 | ✅ |
|
|
199
|
+
| Borders::BOTTOM | ratatui-widgets/src/borders.rs:37 | ✅ |
|
|
200
|
+
| Borders::LEFT | ratatui-widgets/src/borders.rs:39 | ✅ |
|
|
201
|
+
| Borders::ALL | ratatui-widgets/src/borders.rs:41 | ✅ |
|
|
202
|
+
| Borders::NONE | ratatui-widgets/src/borders.rs:43 | ✅ |
|
|
203
|
+
| BorderType::Plain | ratatui-widgets/src/borders.rs:64 | ✅ |
|
|
204
|
+
| BorderType::Rounded | ratatui-widgets/src/borders.rs:66 | ✅ |
|
|
205
|
+
| BorderType::Double | ratatui-widgets/src/borders.rs:71 | ✅ |
|
|
206
|
+
| BorderType::Thick | ratatui-widgets/src/borders.rs:81 | ✅ |
|
|
207
|
+
| BorderType::QuadrantInside | ratatui-widgets/src/borders.rs:139 | ✅ |
|
|
208
|
+
| BorderType::QuadrantOutside | ratatui-widgets/src/borders.rs:144 | ✅ |
|
|
209
|
+
| TitlePosition::Top | ratatui-widgets/src/block.rs:49 | ✅ |
|
|
210
|
+
| TitlePosition::Bottom | ratatui-widgets/src/block.rs:51 | ✅ |
|
|
211
|
+
|
|
212
|
+
### Table Widget
|
|
213
|
+
|
|
214
|
+
| Feature Name | File/Line | Status |
|
|
215
|
+
|--------------|-----------|--------|
|
|
216
|
+
| Table struct | ratatui-widgets/src/table.rs:233 | ✅ |
|
|
217
|
+
| Table::rows | ratatui-widgets/src/table.rs:235 | ✅ |
|
|
218
|
+
| Table::header | ratatui-widgets/src/table.rs:238 | ✅ |
|
|
219
|
+
| Table::footer | ratatui-widgets/src/table.rs:241 | ✅ |
|
|
220
|
+
| Table::widths | ratatui-widgets/src/table.rs:244 | ✅ |
|
|
221
|
+
| Table::column_spacing | ratatui-widgets/src/table.rs:247 | ✅ |
|
|
222
|
+
| Table::row_highlight_style | ratatui-widgets/src/table.rs:256 | ✅ |
|
|
223
|
+
| Table::column_highlight_style | ratatui-widgets/src/table.rs:259 | ✅ |
|
|
224
|
+
| Table::cell_highlight_style | ratatui-widgets/src/table.rs:262 | ✅ |
|
|
225
|
+
| Table::highlight_symbol | ratatui-widgets/src/table.rs:265 | ✅ |
|
|
226
|
+
| Table::highlight_spacing | ratatui-widgets/src/table.rs:268 | ✅ |
|
|
227
|
+
| Table::flex | ratatui-widgets/src/table.rs:271 | ✅ |
|
|
228
|
+
| Row struct | ratatui-widgets/src/table/row.rs:75 | ✅ |
|
|
229
|
+
| Cell struct | ratatui-widgets/src/table/cell.rs:51 | ✅ |
|
|
230
|
+
| HighlightSpacing::Always | ratatui-widgets/src/table/highlight_spacing.rs:10 | ✅ |
|
|
231
|
+
| HighlightSpacing::WhenSelected | ratatui-widgets/src/table/highlight_spacing.rs:14 | ✅ |
|
|
232
|
+
| HighlightSpacing::Never | ratatui-widgets/src/table/highlight_spacing.rs:18 | ✅ |
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
### List Widget
|
|
236
|
+
|
|
237
|
+
| Feature Name | File/Line | Status |
|
|
238
|
+
|--------------|-----------|--------|
|
|
239
|
+
| List struct | ratatui-widgets/src/list.rs:109 | ✅ |
|
|
240
|
+
| List::items | ratatui-widgets/src/list.rs:113 | ✅ |
|
|
241
|
+
| List::direction | ratatui-widgets/src/list.rs:117 | ✅ |
|
|
242
|
+
| List::highlight_style | ratatui-widgets/src/list.rs:119 | ✅ |
|
|
243
|
+
| List::highlight_symbol | ratatui-widgets/src/list.rs:121 | ✅ |
|
|
244
|
+
| List::repeat_highlight_symbol | ratatui-widgets/src/list.rs:123 | ✅ |
|
|
245
|
+
| List::highlight_spacing | ratatui-widgets/src/list.rs:125 | ✅ |
|
|
246
|
+
| List::scroll_padding | ratatui-widgets/src/list.rs:127 | ✅ |
|
|
247
|
+
| ListDirection::TopToBottom | ratatui-widgets/src/list.rs:140 | ✅ |
|
|
248
|
+
| ListDirection::BottomToTop | ratatui-widgets/src/list.rs:142 | ✅ |
|
|
249
|
+
| ListItem struct | ratatui-widgets/src/list/item.rs:73 | ✅ |
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
### BarChart Widget
|
|
253
|
+
|
|
254
|
+
| Feature Name | File/Line | Status |
|
|
255
|
+
|--------------|-----------|--------|
|
|
256
|
+
| BarChart struct | ratatui-widgets/src/barchart.rs:83 | ✅ |
|
|
257
|
+
| BarChart::bar_width | ratatui-widgets/src/barchart.rs:87 | ✅ |
|
|
258
|
+
| BarChart::bar_gap | ratatui-widgets/src/barchart.rs:89 | ✅ |
|
|
259
|
+
| BarChart::group_gap | ratatui-widgets/src/barchart.rs:91 | ✅ |
|
|
260
|
+
| BarChart::bar_set | ratatui-widgets/src/barchart.rs:93 | ✅ |
|
|
261
|
+
| BarChart::max | ratatui-widgets/src/barchart.rs:106 | ✅ |
|
|
262
|
+
| BarChart::direction | ratatui-widgets/src/barchart.rs:108 | ✅ |
|
|
263
|
+
| Bar struct | ratatui-widgets/src/barchart/bar.rs:34 | ✅ |
|
|
264
|
+
| BarGroup struct | ratatui-widgets/src/barchart/bar_group.rs:21 | ✅ |
|
|
265
|
+
|
|
266
|
+
### Chart Widget
|
|
267
|
+
|
|
268
|
+
| Feature Name | File/Line | Status |
|
|
269
|
+
|--------------|-----------|--------|
|
|
270
|
+
| Chart struct | ratatui-widgets/src/chart.rs:510 | ✅ |
|
|
271
|
+
| Axis struct | ratatui-widgets/src/chart.rs:40 | ✅ |
|
|
272
|
+
| Axis::bounds | ratatui-widgets/src/chart.rs:44 | ✅ |
|
|
273
|
+
| Axis::labels | ratatui-widgets/src/chart.rs:46 | ✅ |
|
|
274
|
+
| Axis::labels_alignment | ratatui-widgets/src/chart.rs:50 | ✅ |
|
|
275
|
+
| Dataset struct | ratatui-widgets/src/chart.rs:320 | ✅ |
|
|
276
|
+
| Dataset::marker | ratatui-widgets/src/chart.rs:326 | ✅ |
|
|
277
|
+
| Dataset::graph_type | ratatui-widgets/src/chart.rs:328 | ✅ |
|
|
278
|
+
| GraphType::Scatter | ratatui-widgets/src/chart.rs:161 | ✅ |
|
|
279
|
+
| GraphType::Line | ratatui-widgets/src/chart.rs:167 | ✅ |
|
|
280
|
+
| GraphType::Bar | ratatui-widgets/src/chart.rs:170 | ✅ |
|
|
281
|
+
| LegendPosition::TopLeft | ratatui-widgets/src/chart.rs:184 | ✅ |
|
|
282
|
+
| LegendPosition::Top | ratatui-widgets/src/chart.rs:179 | ✅ |
|
|
283
|
+
| LegendPosition::TopRight | ratatui-widgets/src/chart.rs:182 | ✅ |
|
|
284
|
+
| LegendPosition::Left | ratatui-widgets/src/chart.rs:186 | ✅ |
|
|
285
|
+
| LegendPosition::Right | ratatui-widgets/src/chart.rs:187 | ✅ |
|
|
286
|
+
| LegendPosition::BottomLeft | ratatui-widgets/src/chart.rs:194 | ✅ |
|
|
287
|
+
| LegendPosition::Bottom | ratatui-widgets/src/chart.rs:190 | ✅ |
|
|
288
|
+
| LegendPosition::BottomRight | ratatui-widgets/src/chart.rs:192 | ✅ |
|
|
289
|
+
|
|
290
|
+
### Gauge Widget
|
|
291
|
+
|
|
292
|
+
| Feature Name | File/Line | Status |
|
|
293
|
+
|--------------|-----------|--------|
|
|
294
|
+
| Gauge struct | ratatui-widgets/src/gauge.rs:45 | ✅ |
|
|
295
|
+
| Gauge::ratio | ratatui-widgets/src/gauge.rs:47 | ✅ |
|
|
296
|
+
| Gauge::label | ratatui-widgets/src/gauge.rs:48 | ✅ |
|
|
297
|
+
| Gauge::use_unicode | ratatui-widgets/src/gauge.rs:49 | ✅ |
|
|
298
|
+
| Gauge::gauge_style | ratatui-widgets/src/gauge.rs:51 | ✅ |
|
|
299
|
+
| LineGauge struct | ratatui-widgets/src/gauge.rs:269 | ✅ |
|
|
300
|
+
| LineGauge::filled_symbol | ratatui-widgets/src/gauge.rs:274 | ✅ |
|
|
301
|
+
| LineGauge::unfilled_symbol | ratatui-widgets/src/gauge.rs:275 | ✅ |
|
|
302
|
+
| LineGauge::filled_style | ratatui-widgets/src/gauge.rs:276 | ✅ |
|
|
303
|
+
| LineGauge::unfilled_style | ratatui-widgets/src/gauge.rs:277 | ✅ |
|
|
304
|
+
|
|
305
|
+
### Sparkline Widget
|
|
306
|
+
|
|
307
|
+
| Feature Name | File/Line | Status |
|
|
308
|
+
|--------------|-----------|--------|
|
|
309
|
+
| Sparkline struct | ratatui-widgets/src/sparkline.rs:66 | ✅ |
|
|
310
|
+
| RenderDirection::LeftToRight | ratatui-widgets/src/sparkline.rs:93 | ✅ |
|
|
311
|
+
| RenderDirection::RightToLeft | ratatui-widgets/src/sparkline.rs:96 | ✅ |
|
|
312
|
+
|
|
313
|
+
### Scrollbar Widget
|
|
314
|
+
|
|
315
|
+
| Feature Name | File/Line | Status |
|
|
316
|
+
|--------------|-----------|--------|
|
|
317
|
+
| Scrollbar struct | ratatui-widgets/src/scrollbar.rs:87 | ✅ |
|
|
318
|
+
| ScrollbarOrientation::VerticalRight | ratatui-widgets/src/scrollbar.rs:112 | ✅ |
|
|
319
|
+
| ScrollbarOrientation::VerticalLeft | ratatui-widgets/src/scrollbar.rs:115 | ✅ |
|
|
320
|
+
| ScrollbarOrientation::HorizontalBottom | ratatui-widgets/src/scrollbar.rs:118 | ✅ |
|
|
321
|
+
| ScrollbarOrientation::HorizontalTop | ratatui-widgets/src/scrollbar.rs:121 | ✅ |
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
### Calendar Widget
|
|
325
|
+
|
|
326
|
+
| Feature Name | File/Line | Status |
|
|
327
|
+
|--------------|-----------|--------|
|
|
328
|
+
| Monthly struct | ratatui-widgets/src/calendar.rs:26 | ✅ |
|
|
329
|
+
|
|
330
|
+
### Canvas Widget
|
|
331
|
+
|
|
332
|
+
| Feature Name | File/Line | Status |
|
|
333
|
+
|--------------|-----------|--------|
|
|
334
|
+
| Canvas struct | ratatui-widgets/src/canvas.rs:721 | ✅ |
|
|
335
|
+
| Line shape | ratatui-widgets/src/canvas/line.rs:8 | ✅ |
|
|
336
|
+
| Circle shape | ratatui-widgets/src/canvas/circle.rs:9 | ✅ |
|
|
337
|
+
| Rectangle shape | ratatui-widgets/src/canvas/rectangle.rs:10 | ✅ |
|
|
338
|
+
| Map struct | ratatui-widgets/src/canvas/map.rs:38 | ✅ |
|
|
339
|
+
| MapResolution::Low | ratatui-widgets/src/canvas/map.rs:13 | ✅ |
|
|
340
|
+
| MapResolution::High | ratatui-widgets/src/canvas/map.rs:16 | ✅ |
|
|
341
|
+
|
|
342
|
+
### Tabs Widget
|
|
343
|
+
|
|
344
|
+
| Feature Name | File/Line | Status |
|
|
345
|
+
|--------------|-----------|--------|
|
|
346
|
+
| Tabs struct | ratatui-widgets/src/tabs.rs:51 | ✅ |
|
|
347
|
+
|
|
348
|
+
### Other Widgets
|
|
349
|
+
|
|
350
|
+
| Feature Name | File/Line | Status |
|
|
351
|
+
|--------------|-----------|--------|
|
|
352
|
+
| Clear widget | ratatui-widgets/src/clear.rs:30 | ✅ |
|
|
353
|
+
| RatatuiLogo widget | ratatui-widgets/src/logo.rs:59 | ✅ |
|
|
354
|
+
| RatatuiLogo Size::Tiny | ratatui-widgets/src/logo.rs:68 | ✅ |
|
|
355
|
+
| RatatuiLogo Size::Small | ratatui-widgets/src/logo.rs:71 | ✅ |
|
|
356
|
+
| RatatuiLogo Size::Medium | ratatui-widgets/src/logo.rs:74 | ✅ |
|
|
357
|
+
| RatatuiLogo Size::Large | ratatui-widgets/src/logo.rs:77 | ✅ |
|
|
358
|
+
|
|
359
|
+
## Buffer Features
|
|
360
|
+
|
|
361
|
+
| Feature Name | File/Line | Status |
|
|
362
|
+
|--------------|-----------|--------|
|
|
363
|
+
| Buffer struct | ratatui-core/src/buffer/buffer.rs:66 | ✅ |
|
|
364
|
+
| Buffer::content | ratatui-core/src/buffer/buffer.rs:107 | ✅ |
|
|
365
|
+
| Buffer::get | ratatui-core/src/buffer/buffer.rs:130 | ✅ |
|
|
366
|
+
| Cell struct | ratatui-core/src/buffer/cell.rs:9 | ✅ |
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
## Backend Features
|
|
371
|
+
|
|
372
|
+
| Feature Name | File/Line | Status |
|
|
373
|
+
|--------------|-----------|--------|
|
|
374
|
+
| TestBackend | ratatui-core/src/backend/test.rs:* | ✅ |
|
|
375
|
+
| CrosstermBackend | ratatui-crossterm/src/lib.rs:* | ✅ |
|