ratatui_ruby 1.0.0 → 1.0.1

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.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ratatui_ruby/Cargo.lock +1 -1
  3. data/ext/ratatui_ruby/Cargo.toml +1 -1
  4. data/lib/ratatui_ruby/version.rb +1 -1
  5. metadata +1 -232
  6. data/.builds/ruby-3.2.yml +0 -54
  7. data/.builds/ruby-3.3.yml +0 -54
  8. data/.builds/ruby-3.4.yml +0 -54
  9. data/.builds/ruby-4.0.0.yml +0 -54
  10. data/.pre-commit-config.yaml +0 -16
  11. data/.rubocop.yml +0 -10
  12. data/AGENTS.md +0 -146
  13. data/CHANGELOG.md +0 -710
  14. data/README.md +0 -187
  15. data/README.rdoc +0 -302
  16. data/Rakefile +0 -11
  17. data/Steepfile +0 -49
  18. data/doc/concepts/application_architecture.md +0 -321
  19. data/doc/concepts/application_testing.md +0 -193
  20. data/doc/concepts/async.md +0 -190
  21. data/doc/concepts/custom_widgets.md +0 -247
  22. data/doc/concepts/debugging.md +0 -401
  23. data/doc/concepts/event_handling.md +0 -162
  24. data/doc/concepts/interactive_design.md +0 -146
  25. data/doc/contributors/auditing/parity.md +0 -239
  26. data/doc/contributors/design/ruby_frontend.md +0 -420
  27. data/doc/contributors/design/rust_backend.md +0 -422
  28. data/doc/contributors/design.md +0 -11
  29. data/doc/contributors/developing_examples.md +0 -400
  30. data/doc/contributors/documentation_style.md +0 -121
  31. data/doc/contributors/index.md +0 -21
  32. data/doc/contributors/todo/align/api_completeness_audit-finished.md +0 -375
  33. data/doc/contributors/todo/align/api_completeness_audit-unfinished.md +0 -206
  34. data/doc/contributors/todo/align/terminal.md +0 -647
  35. data/doc/contributors/todo/future_work.md +0 -169
  36. data/doc/contributors/upstream_requests/tab_rects.md +0 -173
  37. data/doc/contributors/upstream_requests/title_rects.md +0 -132
  38. data/doc/custom.css +0 -22
  39. data/doc/getting_started/quickstart.md +0 -291
  40. data/doc/getting_started/why.md +0 -93
  41. data/doc/images/app_all_events.png +0 -0
  42. data/doc/images/app_cli_rich_moments.gif +0 -0
  43. data/doc/images/app_color_picker.png +0 -0
  44. data/doc/images/app_debugging_showcase.gif +0 -0
  45. data/doc/images/app_debugging_showcase.png +0 -0
  46. data/doc/images/app_login_form.png +0 -0
  47. data/doc/images/app_stateful_interaction.png +0 -0
  48. data/doc/images/verify_quickstart_dsl.png +0 -0
  49. data/doc/images/verify_quickstart_layout.png +0 -0
  50. data/doc/images/verify_quickstart_lifecycle.png +0 -0
  51. data/doc/images/verify_readme_usage.png +0 -0
  52. data/doc/images/widget_barchart.png +0 -0
  53. data/doc/images/widget_block.png +0 -0
  54. data/doc/images/widget_box.png +0 -0
  55. data/doc/images/widget_calendar.png +0 -0
  56. data/doc/images/widget_canvas.png +0 -0
  57. data/doc/images/widget_cell.png +0 -0
  58. data/doc/images/widget_center.png +0 -0
  59. data/doc/images/widget_chart.png +0 -0
  60. data/doc/images/widget_gauge.png +0 -0
  61. data/doc/images/widget_layout_split.png +0 -0
  62. data/doc/images/widget_line_gauge.png +0 -0
  63. data/doc/images/widget_list.png +0 -0
  64. data/doc/images/widget_map.png +0 -0
  65. data/doc/images/widget_overlay.png +0 -0
  66. data/doc/images/widget_popup.png +0 -0
  67. data/doc/images/widget_ratatui_logo.png +0 -0
  68. data/doc/images/widget_ratatui_mascot.png +0 -0
  69. data/doc/images/widget_rect.png +0 -0
  70. data/doc/images/widget_render.png +0 -0
  71. data/doc/images/widget_rich_text.png +0 -0
  72. data/doc/images/widget_scroll_text.png +0 -0
  73. data/doc/images/widget_scrollbar.png +0 -0
  74. data/doc/images/widget_sparkline.png +0 -0
  75. data/doc/images/widget_style_colors.png +0 -0
  76. data/doc/images/widget_table.png +0 -0
  77. data/doc/images/widget_tabs.png +0 -0
  78. data/doc/images/widget_text_width.png +0 -0
  79. data/doc/index.md +0 -39
  80. data/doc/troubleshooting/async.md +0 -4
  81. data/doc/troubleshooting/terminal_limitations.md +0 -131
  82. data/doc/troubleshooting/tui_output.md +0 -197
  83. data/examples/app_all_events/README.md +0 -114
  84. data/examples/app_all_events/app.rb +0 -98
  85. data/examples/app_all_events/model/app_model.rb +0 -159
  86. data/examples/app_all_events/model/event_color_cycle.rb +0 -43
  87. data/examples/app_all_events/model/event_entry.rb +0 -94
  88. data/examples/app_all_events/model/msg.rb +0 -39
  89. data/examples/app_all_events/model/timestamp.rb +0 -56
  90. data/examples/app_all_events/update.rb +0 -75
  91. data/examples/app_all_events/view/app_view.rb +0 -80
  92. data/examples/app_all_events/view/controls_view.rb +0 -54
  93. data/examples/app_all_events/view/counts_view.rb +0 -61
  94. data/examples/app_all_events/view/live_view.rb +0 -72
  95. data/examples/app_all_events/view/log_view.rb +0 -57
  96. data/examples/app_all_events/view.rb +0 -9
  97. data/examples/app_cli_rich_moments/README.md +0 -81
  98. data/examples/app_cli_rich_moments/app.rb +0 -189
  99. data/examples/app_color_picker/README.md +0 -156
  100. data/examples/app_color_picker/app.rb +0 -76
  101. data/examples/app_color_picker/clipboard.rb +0 -86
  102. data/examples/app_color_picker/color.rb +0 -193
  103. data/examples/app_color_picker/controls.rb +0 -92
  104. data/examples/app_color_picker/copy_dialog.rb +0 -168
  105. data/examples/app_color_picker/export_pane.rb +0 -128
  106. data/examples/app_color_picker/harmony.rb +0 -58
  107. data/examples/app_color_picker/input.rb +0 -176
  108. data/examples/app_color_picker/main_container.rb +0 -180
  109. data/examples/app_color_picker/palette.rb +0 -111
  110. data/examples/app_debugging_showcase/README.md +0 -119
  111. data/examples/app_debugging_showcase/app.rb +0 -318
  112. data/examples/app_login_form/README.md +0 -58
  113. data/examples/app_login_form/app.rb +0 -109
  114. data/examples/app_stateful_interaction/README.md +0 -35
  115. data/examples/app_stateful_interaction/app.rb +0 -328
  116. data/examples/timeout_demo.rb +0 -45
  117. data/examples/verify_quickstart_dsl/README.md +0 -55
  118. data/examples/verify_quickstart_dsl/app.rb +0 -49
  119. data/examples/verify_quickstart_layout/README.md +0 -77
  120. data/examples/verify_quickstart_layout/app.rb +0 -73
  121. data/examples/verify_quickstart_lifecycle/README.md +0 -68
  122. data/examples/verify_quickstart_lifecycle/app.rb +0 -62
  123. data/examples/verify_readme_usage/README.md +0 -49
  124. data/examples/verify_readme_usage/app.rb +0 -42
  125. data/examples/verify_website_managed/README.md +0 -48
  126. data/examples/verify_website_managed/app.rb +0 -36
  127. data/examples/verify_website_menu/README.md +0 -60
  128. data/examples/verify_website_menu/app.rb +0 -84
  129. data/examples/verify_website_spinner/README.md +0 -44
  130. data/examples/verify_website_spinner/app.rb +0 -34
  131. data/examples/widget_barchart/README.md +0 -58
  132. data/examples/widget_barchart/app.rb +0 -240
  133. data/examples/widget_block/README.md +0 -44
  134. data/examples/widget_block/app.rb +0 -258
  135. data/examples/widget_box/README.md +0 -54
  136. data/examples/widget_box/app.rb +0 -255
  137. data/examples/widget_calendar/README.md +0 -48
  138. data/examples/widget_calendar/app.rb +0 -115
  139. data/examples/widget_canvas/README.md +0 -31
  140. data/examples/widget_canvas/app.rb +0 -130
  141. data/examples/widget_cell/README.md +0 -45
  142. data/examples/widget_cell/app.rb +0 -112
  143. data/examples/widget_center/README.md +0 -33
  144. data/examples/widget_center/app.rb +0 -118
  145. data/examples/widget_chart/README.md +0 -50
  146. data/examples/widget_chart/app.rb +0 -220
  147. data/examples/widget_gauge/README.md +0 -50
  148. data/examples/widget_gauge/app.rb +0 -229
  149. data/examples/widget_layout_split/README.md +0 -53
  150. data/examples/widget_layout_split/app.rb +0 -260
  151. data/examples/widget_line_gauge/README.md +0 -50
  152. data/examples/widget_line_gauge/app.rb +0 -219
  153. data/examples/widget_list/README.md +0 -58
  154. data/examples/widget_list/app.rb +0 -384
  155. data/examples/widget_map/README.md +0 -48
  156. data/examples/widget_map/app.rb +0 -95
  157. data/examples/widget_overlay/README.md +0 -45
  158. data/examples/widget_overlay/app.rb +0 -250
  159. data/examples/widget_popup/README.md +0 -45
  160. data/examples/widget_popup/app.rb +0 -106
  161. data/examples/widget_ratatui_logo/README.md +0 -43
  162. data/examples/widget_ratatui_logo/app.rb +0 -104
  163. data/examples/widget_ratatui_mascot/README.md +0 -43
  164. data/examples/widget_ratatui_mascot/app.rb +0 -95
  165. data/examples/widget_rect/README.md +0 -53
  166. data/examples/widget_rect/app.rb +0 -222
  167. data/examples/widget_render/README.md +0 -46
  168. data/examples/widget_render/app.rb +0 -186
  169. data/examples/widget_render/app.rbs +0 -41
  170. data/examples/widget_rich_text/README.md +0 -44
  171. data/examples/widget_rich_text/app.rb +0 -193
  172. data/examples/widget_scroll_text/README.md +0 -46
  173. data/examples/widget_scroll_text/app.rb +0 -109
  174. data/examples/widget_scrollbar/README.md +0 -46
  175. data/examples/widget_scrollbar/app.rb +0 -155
  176. data/examples/widget_sparkline/README.md +0 -51
  177. data/examples/widget_sparkline/app.rb +0 -277
  178. data/examples/widget_style_colors/README.md +0 -43
  179. data/examples/widget_style_colors/app.rb +0 -83
  180. data/examples/widget_table/README.md +0 -57
  181. data/examples/widget_table/app.rb +0 -279
  182. data/examples/widget_tabs/README.md +0 -50
  183. data/examples/widget_tabs/app.rb +0 -183
  184. data/examples/widget_text_width/README.md +0 -44
  185. data/examples/widget_text_width/app.rb +0 -117
  186. data/migrate_to_buffer.rb +0 -145
  187. data/mise.toml +0 -8
  188. data/tasks/autodoc/examples.rb +0 -87
  189. data/tasks/autodoc/member.rb +0 -58
  190. data/tasks/autodoc/name.rb +0 -21
  191. data/tasks/autodoc.rake +0 -21
  192. data/tasks/bump/cargo_lockfile.rb +0 -21
  193. data/tasks/bump/changelog.rb +0 -47
  194. data/tasks/bump/header.rb +0 -32
  195. data/tasks/bump/history.rb +0 -32
  196. data/tasks/bump/links.rb +0 -69
  197. data/tasks/bump/manifest.rb +0 -33
  198. data/tasks/bump/ruby_gem.rb +0 -49
  199. data/tasks/bump/sem_ver.rb +0 -40
  200. data/tasks/bump/unreleased_section.rb +0 -56
  201. data/tasks/bump.rake +0 -51
  202. data/tasks/doc.rake +0 -887
  203. data/tasks/example_viewer.html.erb +0 -172
  204. data/tasks/extension.rake +0 -14
  205. data/tasks/license/headers_md.rb +0 -223
  206. data/tasks/license/headers_rb.rb +0 -210
  207. data/tasks/license/license_utils.rb +0 -130
  208. data/tasks/license/snippets_md.rb +0 -315
  209. data/tasks/license/snippets_rdoc.rb +0 -150
  210. data/tasks/license.rake +0 -91
  211. data/tasks/lint.rake +0 -170
  212. data/tasks/rdoc_config.rb +0 -29
  213. data/tasks/resources/build.yml.erb +0 -60
  214. data/tasks/resources/index.html.erb +0 -141
  215. data/tasks/resources/rubies.yml +0 -7
  216. data/tasks/sourcehut.rake +0 -110
  217. data/tasks/steep.rake +0 -11
  218. data/tasks/terminal_preview/app_screenshot.rb +0 -45
  219. data/tasks/terminal_preview/crash_report.rb +0 -54
  220. data/tasks/terminal_preview/example_app.rb +0 -27
  221. data/tasks/terminal_preview/launcher_script.rb +0 -48
  222. data/tasks/terminal_preview/preview_collection.rb +0 -60
  223. data/tasks/terminal_preview/preview_timing.rb +0 -24
  224. data/tasks/terminal_preview/safety_confirmation.rb +0 -58
  225. data/tasks/terminal_preview/saved_screenshot.rb +0 -56
  226. data/tasks/terminal_preview/system_appearance.rb +0 -13
  227. data/tasks/terminal_preview/terminal_window.rb +0 -138
  228. data/tasks/terminal_preview/window_id.rb +0 -16
  229. data/tasks/terminal_preview.rake +0 -30
  230. data/tasks/test.rake +0 -33
  231. data/tasks/website/index_page.rb +0 -30
  232. data/tasks/website/version.rb +0 -127
  233. data/tasks/website/version_menu.rb +0 -68
  234. data/tasks/website/versioned_documentation.rb +0 -83
  235. data/tasks/website/website.rb +0 -53
  236. data/tasks/website.rake +0 -28
@@ -1,375 +0,0 @@
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:* | ✅ |
@@ -1,206 +0,0 @@
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 unfinished items; [the other has the finished items](./api_completeness_audit-finished.md).
10
-
11
- ## Terminal & Initialization Features
12
-
13
- | Feature Name | File/Line | Status |
14
- |--------------|-----------|--------|
15
- | try_init | ratatui/src/init.rs:330 | ❌ |
16
- | try_init_with_options | ratatui/src/init.rs:425 | ❌ |
17
- | try_restore | ratatui/src/init.rs:487 | ❌ |
18
- | Viewport::Fixed(Rect) | ratatui-core/src/terminal/viewport.rs:30 | ❌ |
19
- | Terminal struct | ratatui-core/src/terminal/terminal.rs:76 | ⚠️ |
20
- | Terminal::hide_cursor | ratatui-core/src/terminal/terminal.rs:495 | ❌ |
21
- | Terminal::show_cursor | ratatui-core/src/terminal/terminal.rs:502 | ❌ |
22
- | Terminal::get_cursor | ratatui-core/src/terminal/terminal.rs:513 | ❌ |
23
- | Terminal::set_cursor | ratatui-core/src/terminal/terminal.rs:520 | ❌ |
24
- | Terminal::get_cursor_position | ratatui-core/src/terminal/terminal.rs:527 | ⚠️ |
25
- | Terminal::set_cursor_position | ratatui-core/src/terminal/terminal.rs:532 | ⚠️ |
26
- | Terminal::clear | ratatui-core/src/terminal/terminal.rs:540 | ❌ |
27
- | Terminal::swap_buffers | ratatui-core/src/terminal/terminal.rs:562 | ❌ |
28
- | CompletedFrame struct | ratatui-core/src/terminal/frame.rs:40 | ❌ |
29
-
30
- **Notes:**
31
- - **Terminal struct**: No direct Terminal object; abstracted behind `RatatuiRuby` module methods
32
- - **Terminal::get_cursor_position/set_cursor_position**: Only available via [Frame](file:///Users/kerrick/Developer/ratatui_ruby/lib/ratatui_ruby/frame.rb#72-257) during draw, not on Terminal
33
-
34
- ## Layout Features
35
-
36
- | Feature Name | File/Line | Status |
37
- |--------------|-----------|--------|
38
- | Spacing enum | ratatui-core/src/layout/layout.rs:80 | ❌ |
39
- | HorizontalAlignment::Left | ratatui-core/src/layout/alignment.rs:25 | ❌ |
40
- | HorizontalAlignment::Center | ratatui-core/src/layout/alignment.rs:26 | ❌ |
41
- | HorizontalAlignment::Right | ratatui-core/src/layout/alignment.rs:27 | ❌ |
42
- | VerticalAlignment::Top | ratatui-core/src/layout/alignment.rs:40 | ❌ |
43
- | VerticalAlignment::Center | ratatui-core/src/layout/alignment.rs:41 | ❌ |
44
- | VerticalAlignment::Bottom | ratatui-core/src/layout/alignment.rs:42 | ❌ |
45
- | Offset struct | ratatui-core/src/layout/offset.rs:10 | ❌ |
46
- | Margin struct | ratatui-core/src/layout/margin.rs:38 | ❌ |
47
-
48
- ## Style Features
49
-
50
- | Feature Name | File/Line | Status |
51
- |--------------|-----------|--------|
52
- | Styled trait | ratatui-core/src/style/stylize.rs:15 | ❌ |
53
- | Stylize trait | ratatui-core/src/style/stylize.rs:* | ❌ |
54
-
55
- ## Text Features
56
-
57
- | Feature Name | File/Line | Status |
58
- |--------------|-----------| -------|
59
- | Masked struct | ratatui-core/src/text/masked.rs:26 | ❌ |
60
- | ToText trait | ratatui-core/src/text/text.rs:721 | ❌ |
61
- | ToSpan trait | ratatui-core/src/text/span.rs:481 | ❌ |
62
- | StyledGrapheme struct | ratatui-core/src/text/grapheme.rs:12 | ❌ |
63
- | ToLine trait | ratatui-core/src/text/line.rs:810 | ❌ |
64
-
65
- ## Widgets
66
-
67
- ### Block Widget
68
-
69
- | Feature Name | File/Line | Status |
70
- |--------------|-----------|--------|
71
- | BorderType::LightDoubleDashed | ratatui-widgets/src/borders.rs:89 | ❌ |
72
- | BorderType::HeavyDoubleDashed | ratatui-widgets/src/borders.rs:97 | ❌ |
73
- | BorderType::LightTripleDashed | ratatui-widgets/src/borders.rs:105 | ❌ |
74
- | BorderType::HeavyTripleDashed | ratatui-widgets/src/borders.rs:113 | ❌ |
75
- | BorderType::LightQuadrupleDashed | ratatui-widgets/src/borders.rs:121 | ❌ |
76
- | BorderType::HeavyQuadrupleDashed | ratatui-widgets/src/borders.rs:129 | ❌ |
77
-
78
- ### Table Widget
79
-
80
- | Feature Name | File/Line | Status |
81
- |--------------|-----------|--------|
82
- | TableState struct | ratatui-widgets/src/table/state.rs:55 | ⚠️ |
83
- | TableState::new | ratatui-widgets/src/table/state.rs:62 | ⚠️ |
84
- | TableState::with_offset | ratatui-widgets/src/table/state.rs:79 | ❌ |
85
- | TableState::with_selected | ratatui-widgets/src/table/state.rs:96 | ❌ |
86
- | TableState::with_selected_column | ratatui-widgets/src/table/state.rs:116 | ❌ |
87
- | TableState::with_selected_cell | ratatui-widgets/src/table/state.rs:135 | ❌ |
88
- | TableState::offset | ratatui-widgets/src/table/state.rs:161 | ⚠️ |
89
- | TableState::offset_mut | ratatui-widgets/src/table/state.rs:175 | ❌ |
90
- | TableState::selected | ratatui-widgets/src/table/state.rs:189 | ⚠️ |
91
- | TableState::selected_column | ratatui-widgets/src/table/state.rs:205 | ⚠️ |
92
- | TableState::selected_cell | ratatui-widgets/src/table/state.rs:220 | ❌ |
93
- | TableState::selected_mut | ratatui-widgets/src/table/state.rs:238 | ❌ |
94
- | TableState::select | ratatui-widgets/src/table/state.rs:269 | ⚠️ |
95
- | TableState::select_next | ratatui-widgets/src/table/state.rs:336 | ❌ |
96
- | TableState::select_previous | ratatui-widgets/src/table/state.rs:371 | ❌ |
97
- | TableState::select_next_column | ratatui-widgets/src/table/state.rs:353 | ❌ |
98
- | TableState::select_previous_column | ratatui-widgets/src/table/state.rs:388 | ❌ |
99
- | TableState::scroll_down_by | ratatui-widgets/src/table/state.rs:475 | ❌ |
100
- | TableState::scroll_up_by | ratatui-widgets/src/table/state.rs:494 | ❌ |
101
-
102
- **Notes:**
103
- - **TableState**: Implemented as Data.define attributes on Table widget itself (selected_row, selected_column, offset) instead of separate state object
104
-
105
- ### List Widget
106
-
107
- | Feature Name | File/Line | Status |
108
- |--------------|-----------|--------|
109
- | ListState struct | ratatui-widgets/src/list/state.rs:45 | ⚠️ |
110
- | ListState::with_offset | ratatui-widgets/src/list/state.rs:51 | ❌ |
111
- | ListState::with_selected | ratatui-widgets/src/list/state.rs:68 | ❌ |
112
- | ListState::offset | ratatui-widgets/src/list/state.rs:85 | ⚠️ |
113
- | ListState::offset_mut | ratatui-widgets/src/list/state.rs:99 | ❌ |
114
- | ListState::selected | ratatui-widgets/src/list/state.rs:113 | ⚠️ |
115
- | ListState::selected_mut | ratatui-widgets/src/list/state.rs:129 | ❌ |
116
- | ListState::select | ratatui-widgets/src/list/state.rs:145 | ⚠️ |
117
- | ListState::select_next | ratatui-widgets/src/list/state.rs:177 | ❌ |
118
- | ListState::select_previous | ratatui-widgets/src/list/state.rs:195 | ❌ |
119
- | ListState::select_first | ratatui-widgets/src/list/state.rs:200 | ❌ |
120
- | ListState::select_last | ratatui-widgets/src/list/state.rs:217 | ❌ |
121
-
122
- **Notes:**
123
- - **ListState**: Implemented as Data.define attributes on List widget itself (selected_index, offset) instead of separate state object
124
- | ListState::scroll_down_by | ratatui-widgets/src/list/state.rs:248 | ❌ |
125
- | ListState::scroll_up_by | ratatui-widgets/src/list/state.rs:267 | ❌ |
126
-
127
- ### Sparkline Widget
128
-
129
- | Feature Name | File/Line | Status |
130
- |--------------|-----------|--------|
131
- | SparklineBar struct | ratatui-widgets/src/sparkline.rs:253 | ❌ |
132
-
133
- ### Scrollbar Widget
134
-
135
- | Feature Name | File/Line | Status |
136
- |--------------|-----------|--------|
137
- | ScrollbarState struct | ratatui-widgets/src/scrollbar.rs:149 | ⚠️ |
138
- | ScrollDirection::Forward | ratatui-widgets/src/scrollbar.rs:169 | ❌ |
139
- | ScrollDirection::Backward | ratatui-widgets/src/scrollbar.rs:172 | ❌ |
140
-
141
- **Notes:**
142
- - **ScrollbarState**: Implemented as Data.define attributes on Scrollbar widget itself (content_length, position) instead of separate state object
143
-
144
- ### Calendar Widget
145
-
146
- | Feature Name | File/Line | Status |
147
- |--------------|-----------|--------|
148
- | CalendarEventStore struct | ratatui-widgets/src/calendar.rs:258 | ❌ |
149
-
150
- ### Canvas Widget
151
-
152
- | Feature Name | File/Line | Status |
153
- |--------------|-----------|--------|
154
- | Context struct | ratatui-widgets/src/canvas.rs:515 | ❌ |
155
- | Painter struct | ratatui-widgets/src/canvas.rs:403 | ❌ |
156
- | Label struct | ratatui-widgets/src/canvas.rs:61 | ❌ |
157
- | Points shape | ratatui-widgets/src/canvas/points.rs:7 | ❌ |
158
-
159
- ## Buffer Features
160
-
161
- | Feature Name | File/Line | Status |
162
- |--------------|-----------|--------|
163
- | Buffer::empty | ratatui-core/src/buffer/buffer.rs:77 | ❌ |
164
- | Buffer::filled | ratatui-core/src/buffer/buffer.rs:83 | ❌ |
165
- | Buffer::with_lines | ratatui-core/src/buffer/buffer.rs:91 | ❌ |
166
- | Buffer::get_mut | ratatui-core/src/buffer/buffer.rs:150 | ❌ |
167
- | Buffer::index_of | ratatui-core/src/buffer/buffer.rs:248 | ❌ |
168
- | Buffer::set_string | ratatui-core/src/buffer/buffer.rs:323 | ❌ |
169
- | Buffer::set_stringn | ratatui-core/src/buffer/buffer.rs:335 | ❌ |
170
- | Buffer::set_line | ratatui-core/src/buffer/buffer.rs:372 | ❌ |
171
- | Buffer::set_span | ratatui-core/src/buffer/buffer.rs:394 | ❌ |
172
- | Buffer::set_style | ratatui-core/src/buffer/buffer.rs:404 | ❌ |
173
- | Buffer::reset | ratatui-core/src/buffer/buffer.rs:427 | ❌ |
174
- | Cell::set_style | ratatui-core/src/buffer/cell.rs:153 | ❌ |
175
- | Cell::reset | ratatui-core/src/buffer/cell.rs:193 | ❌ |
176
-
177
- **Notes:**
178
- - **Buffer**: Read-only access implemented via `RatatuiRuby.get_cell_at`. Direct mutation methods not exposed in Ruby API
179
-
180
- ## Widget Traits
181
-
182
- | Feature Name | File/Line | Status |
183
- |--------------|-----------|--------|
184
- | Widget trait | ratatui-core/src/widgets/widget.rs:70 | ⚠️ |
185
- | StatefulWidget trait | ratatui-core/src/widgets/stateful_widget.rs:124 | ⚠️ |
186
-
187
- **Notes:**
188
- - **Widget/StatefulWidget traits**: Not exposed as Ruby traits. Widgets implement `CoerceableWidget` mixin and rendering handled via FFI
189
-
190
- ## Backend Features
191
-
192
- | Feature Name | File/Line | Status |
193
- |--------------|-----------|--------|
194
- | Backend trait | ratatui-core/src/backend.rs:148 | ⚠️ |
195
- | ClearType::All | ratatui-core/src/backend.rs:117 | ❌ |
196
- | ClearType::AfterCursor | ratatui-core/src/backend.rs:119 | ❌ |
197
- | ClearType::BeforeCursor | ratatui-core/src/backend.rs:121 | ❌ |
198
- | ClearType::CurrentLine | ratatui-core/src/backend.rs:123 | ❌ |
199
- | ClearType::UntilNewLine | ratatui-core/src/backend.rs:125 | ❌ |
200
- | WindowSize struct | ratatui-core/src/backend.rs:130 | ❌ |
201
- | TermionBackend | ratatui-termion/src/lib.rs:* | ❌ |
202
- | TermwizBackend | ratatui-termwiz/src/lib.rs:* | ❌ |
203
-
204
- **Notes:**
205
- - **Backend trait**: Abstracted away. Terminal uses Crossterm backend internally, not exposed to Ruby API
206
- - **ClearType**: Not exposed. Clearing handled via `Clear` widget