ratatui_ruby 1.3.0 → 1.3.3

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 (301) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ratatui_ruby/Cargo.lock +2 -1
  3. data/ext/ratatui_ruby/Cargo.toml +2 -1
  4. data/ext/ratatui_ruby/src/color.rs +1 -1
  5. data/ext/ratatui_ruby/src/errors.rs +1 -1
  6. data/ext/ratatui_ruby/src/events.rs +158 -19
  7. data/ext/ratatui_ruby/src/frame.rs +1 -1
  8. data/ext/ratatui_ruby/src/lib.rs +1 -1
  9. data/ext/ratatui_ruby/src/lib_header.rs +1 -1
  10. data/ext/ratatui_ruby/src/rendering.rs +1 -1
  11. data/ext/ratatui_ruby/src/string_width.rs +1 -1
  12. data/ext/ratatui_ruby/src/style.rs +1 -1
  13. data/ext/ratatui_ruby/src/terminal/capabilities.rs +1 -1
  14. data/ext/ratatui_ruby/src/terminal/init.rs +1 -1
  15. data/ext/ratatui_ruby/src/terminal/mod.rs +1 -1
  16. data/ext/ratatui_ruby/src/terminal/mutations.rs +1 -1
  17. data/ext/ratatui_ruby/src/terminal/queries.rs +1 -1
  18. data/ext/ratatui_ruby/src/terminal/query.rs +1 -1
  19. data/ext/ratatui_ruby/src/terminal/storage.rs +1 -1
  20. data/ext/ratatui_ruby/src/terminal/wrapper.rs +1 -1
  21. data/ext/ratatui_ruby/src/text.rs +1 -1
  22. data/ext/ratatui_ruby/src/widgets/barchart.rs +1 -1
  23. data/ext/ratatui_ruby/src/widgets/block.rs +1 -1
  24. data/ext/ratatui_ruby/src/widgets/calendar.rs +1 -1
  25. data/ext/ratatui_ruby/src/widgets/canvas.rs +1 -1
  26. data/ext/ratatui_ruby/src/widgets/center.rs +1 -1
  27. data/ext/ratatui_ruby/src/widgets/chart.rs +1 -1
  28. data/ext/ratatui_ruby/src/widgets/clear.rs +1 -1
  29. data/ext/ratatui_ruby/src/widgets/cursor.rs +1 -1
  30. data/ext/ratatui_ruby/src/widgets/gauge.rs +1 -1
  31. data/ext/ratatui_ruby/src/widgets/layout.rs +1 -1
  32. data/ext/ratatui_ruby/src/widgets/line_gauge.rs +1 -1
  33. data/ext/ratatui_ruby/src/widgets/list.rs +1 -1
  34. data/ext/ratatui_ruby/src/widgets/list_state.rs +1 -1
  35. data/ext/ratatui_ruby/src/widgets/mod.rs +1 -1
  36. data/ext/ratatui_ruby/src/widgets/overlay.rs +1 -1
  37. data/ext/ratatui_ruby/src/widgets/paragraph.rs +1 -1
  38. data/ext/ratatui_ruby/src/widgets/ratatui_logo.rs +1 -1
  39. data/ext/ratatui_ruby/src/widgets/ratatui_mascot.rs +1 -1
  40. data/ext/ratatui_ruby/src/widgets/scrollbar.rs +1 -1
  41. data/ext/ratatui_ruby/src/widgets/scrollbar_state.rs +1 -1
  42. data/ext/ratatui_ruby/src/widgets/sparkline.rs +1 -1
  43. data/ext/ratatui_ruby/src/widgets/table.rs +1 -1
  44. data/ext/ratatui_ruby/src/widgets/table_state.rs +1 -1
  45. data/ext/ratatui_ruby/src/widgets/tabs.rs +1 -1
  46. data/lib/ratatui_ruby/version.rb +1 -1
  47. metadata +1 -255
  48. data/.builds/ruby-3.2.yml +0 -54
  49. data/.builds/ruby-3.3.yml +0 -54
  50. data/.builds/ruby-3.4.yml +0 -54
  51. data/.builds/ruby-4.0.0.yml +0 -54
  52. data/.pre-commit-config.yaml +0 -16
  53. data/.rubocop.yml +0 -10
  54. data/AGENTS.md +0 -147
  55. data/CHANGELOG.md +0 -771
  56. data/README.md +0 -187
  57. data/README.rdoc +0 -302
  58. data/Rakefile +0 -11
  59. data/Steepfile +0 -50
  60. data/doc/concepts/application_architecture.md +0 -321
  61. data/doc/concepts/application_testing.md +0 -193
  62. data/doc/concepts/async.md +0 -190
  63. data/doc/concepts/custom_widgets.md +0 -247
  64. data/doc/concepts/debugging.md +0 -401
  65. data/doc/concepts/event_handling.md +0 -162
  66. data/doc/concepts/interactive_design.md +0 -146
  67. data/doc/contributors/auditing/parity.md +0 -239
  68. data/doc/contributors/design/ruby_frontend.md +0 -448
  69. data/doc/contributors/design/rust_backend.md +0 -434
  70. data/doc/contributors/design.md +0 -11
  71. data/doc/contributors/developing_examples.md +0 -400
  72. data/doc/contributors/documentation_style.md +0 -121
  73. data/doc/contributors/index.md +0 -21
  74. data/doc/contributors/releasing.md +0 -215
  75. data/doc/contributors/todo/align/api_completeness_audit-finished.md +0 -381
  76. data/doc/contributors/todo/align/api_completeness_audit-unfinished.md +0 -200
  77. data/doc/contributors/todo/align/term.md +0 -351
  78. data/doc/contributors/todo/align/terminal.md +0 -647
  79. data/doc/contributors/todo/future_work.md +0 -169
  80. data/doc/contributors/upstream_requests/paragraph_span_rects.md +0 -259
  81. data/doc/contributors/upstream_requests/tab_rects.md +0 -173
  82. data/doc/contributors/upstream_requests/title_rects.md +0 -132
  83. data/doc/custom.css +0 -22
  84. data/doc/getting_started/quickstart.md +0 -291
  85. data/doc/getting_started/why.md +0 -93
  86. data/doc/images/app_all_events.png +0 -0
  87. data/doc/images/app_cli_rich_moments.gif +0 -0
  88. data/doc/images/app_color_picker.png +0 -0
  89. data/doc/images/app_debugging_showcase.gif +0 -0
  90. data/doc/images/app_debugging_showcase.png +0 -0
  91. data/doc/images/app_external_editor.gif +0 -0
  92. data/doc/images/app_login_form.png +0 -0
  93. data/doc/images/app_stateful_interaction.png +0 -0
  94. data/doc/images/verify_quickstart_dsl.png +0 -0
  95. data/doc/images/verify_quickstart_layout.png +0 -0
  96. data/doc/images/verify_quickstart_lifecycle.png +0 -0
  97. data/doc/images/verify_readme_usage.png +0 -0
  98. data/doc/images/widget_barchart.png +0 -0
  99. data/doc/images/widget_block.png +0 -0
  100. data/doc/images/widget_box.png +0 -0
  101. data/doc/images/widget_calendar.png +0 -0
  102. data/doc/images/widget_canvas.png +0 -0
  103. data/doc/images/widget_cell.png +0 -0
  104. data/doc/images/widget_center.png +0 -0
  105. data/doc/images/widget_chart.png +0 -0
  106. data/doc/images/widget_gauge.png +0 -0
  107. data/doc/images/widget_layout_split.png +0 -0
  108. data/doc/images/widget_line_gauge.png +0 -0
  109. data/doc/images/widget_list.png +0 -0
  110. data/doc/images/widget_map.png +0 -0
  111. data/doc/images/widget_overlay.png +0 -0
  112. data/doc/images/widget_popup.png +0 -0
  113. data/doc/images/widget_ratatui_logo.png +0 -0
  114. data/doc/images/widget_ratatui_mascot.png +0 -0
  115. data/doc/images/widget_rect.png +0 -0
  116. data/doc/images/widget_render.png +0 -0
  117. data/doc/images/widget_rich_text.png +0 -0
  118. data/doc/images/widget_scroll_text.png +0 -0
  119. data/doc/images/widget_scrollbar.png +0 -0
  120. data/doc/images/widget_sparkline.png +0 -0
  121. data/doc/images/widget_style_colors.png +0 -0
  122. data/doc/images/widget_table.png +0 -0
  123. data/doc/images/widget_tabs.png +0 -0
  124. data/doc/images/widget_text_width.png +0 -0
  125. data/doc/index.md +0 -34
  126. data/doc/troubleshooting/async.md +0 -4
  127. data/doc/troubleshooting/terminal_limitations.md +0 -131
  128. data/doc/troubleshooting/tui_output.md +0 -197
  129. data/examples/app_all_events/README.md +0 -114
  130. data/examples/app_all_events/app.rb +0 -98
  131. data/examples/app_all_events/model/app_model.rb +0 -159
  132. data/examples/app_all_events/model/event_color_cycle.rb +0 -43
  133. data/examples/app_all_events/model/event_entry.rb +0 -94
  134. data/examples/app_all_events/model/msg.rb +0 -39
  135. data/examples/app_all_events/model/timestamp.rb +0 -56
  136. data/examples/app_all_events/update.rb +0 -75
  137. data/examples/app_all_events/view/app_view.rb +0 -80
  138. data/examples/app_all_events/view/controls_view.rb +0 -54
  139. data/examples/app_all_events/view/counts_view.rb +0 -61
  140. data/examples/app_all_events/view/live_view.rb +0 -72
  141. data/examples/app_all_events/view/log_view.rb +0 -57
  142. data/examples/app_all_events/view.rb +0 -9
  143. data/examples/app_cli_rich_moments/README.md +0 -81
  144. data/examples/app_cli_rich_moments/app.rb +0 -189
  145. data/examples/app_color_picker/README.md +0 -156
  146. data/examples/app_color_picker/app.rb +0 -76
  147. data/examples/app_color_picker/clipboard.rb +0 -86
  148. data/examples/app_color_picker/color.rb +0 -193
  149. data/examples/app_color_picker/controls.rb +0 -92
  150. data/examples/app_color_picker/copy_dialog.rb +0 -168
  151. data/examples/app_color_picker/export_pane.rb +0 -128
  152. data/examples/app_color_picker/harmony.rb +0 -58
  153. data/examples/app_color_picker/input.rb +0 -176
  154. data/examples/app_color_picker/main_container.rb +0 -180
  155. data/examples/app_color_picker/palette.rb +0 -111
  156. data/examples/app_debugging_showcase/README.md +0 -119
  157. data/examples/app_debugging_showcase/app.rb +0 -318
  158. data/examples/app_external_editor/README.md +0 -62
  159. data/examples/app_external_editor/app.rb +0 -344
  160. data/examples/app_login_form/README.md +0 -58
  161. data/examples/app_login_form/app.rb +0 -109
  162. data/examples/app_stateful_interaction/README.md +0 -35
  163. data/examples/app_stateful_interaction/app.rb +0 -328
  164. data/examples/timeout_demo.rb +0 -45
  165. data/examples/verify_quickstart_dsl/README.md +0 -55
  166. data/examples/verify_quickstart_dsl/app.rb +0 -49
  167. data/examples/verify_quickstart_layout/README.md +0 -77
  168. data/examples/verify_quickstart_layout/app.rb +0 -73
  169. data/examples/verify_quickstart_lifecycle/README.md +0 -68
  170. data/examples/verify_quickstart_lifecycle/app.rb +0 -62
  171. data/examples/verify_readme_usage/README.md +0 -49
  172. data/examples/verify_readme_usage/app.rb +0 -42
  173. data/examples/verify_website_managed/README.md +0 -48
  174. data/examples/verify_website_managed/app.rb +0 -36
  175. data/examples/verify_website_menu/README.md +0 -60
  176. data/examples/verify_website_menu/app.rb +0 -84
  177. data/examples/verify_website_spinner/README.md +0 -44
  178. data/examples/verify_website_spinner/app.rb +0 -34
  179. data/examples/widget_barchart/README.md +0 -58
  180. data/examples/widget_barchart/app.rb +0 -240
  181. data/examples/widget_block/README.md +0 -44
  182. data/examples/widget_block/app.rb +0 -258
  183. data/examples/widget_box/README.md +0 -54
  184. data/examples/widget_box/app.rb +0 -255
  185. data/examples/widget_calendar/README.md +0 -48
  186. data/examples/widget_calendar/app.rb +0 -115
  187. data/examples/widget_canvas/README.md +0 -31
  188. data/examples/widget_canvas/app.rb +0 -130
  189. data/examples/widget_cell/README.md +0 -45
  190. data/examples/widget_cell/app.rb +0 -112
  191. data/examples/widget_center/README.md +0 -33
  192. data/examples/widget_center/app.rb +0 -118
  193. data/examples/widget_chart/README.md +0 -50
  194. data/examples/widget_chart/app.rb +0 -220
  195. data/examples/widget_gauge/README.md +0 -50
  196. data/examples/widget_gauge/app.rb +0 -229
  197. data/examples/widget_layout_split/README.md +0 -53
  198. data/examples/widget_layout_split/app.rb +0 -260
  199. data/examples/widget_line_gauge/README.md +0 -50
  200. data/examples/widget_line_gauge/app.rb +0 -219
  201. data/examples/widget_list/README.md +0 -58
  202. data/examples/widget_list/app.rb +0 -382
  203. data/examples/widget_map/README.md +0 -48
  204. data/examples/widget_map/app.rb +0 -95
  205. data/examples/widget_overlay/README.md +0 -45
  206. data/examples/widget_overlay/app.rb +0 -250
  207. data/examples/widget_popup/README.md +0 -45
  208. data/examples/widget_popup/app.rb +0 -106
  209. data/examples/widget_ratatui_logo/README.md +0 -43
  210. data/examples/widget_ratatui_logo/app.rb +0 -104
  211. data/examples/widget_ratatui_mascot/README.md +0 -43
  212. data/examples/widget_ratatui_mascot/app.rb +0 -95
  213. data/examples/widget_rect/README.md +0 -53
  214. data/examples/widget_rect/app.rb +0 -222
  215. data/examples/widget_render/README.md +0 -46
  216. data/examples/widget_render/app.rb +0 -186
  217. data/examples/widget_render/app.rbs +0 -41
  218. data/examples/widget_rich_text/README.md +0 -44
  219. data/examples/widget_rich_text/app.rb +0 -193
  220. data/examples/widget_scroll_text/README.md +0 -46
  221. data/examples/widget_scroll_text/app.rb +0 -109
  222. data/examples/widget_scrollbar/README.md +0 -46
  223. data/examples/widget_scrollbar/app.rb +0 -155
  224. data/examples/widget_sparkline/README.md +0 -51
  225. data/examples/widget_sparkline/app.rb +0 -277
  226. data/examples/widget_style_colors/README.md +0 -43
  227. data/examples/widget_style_colors/app.rb +0 -83
  228. data/examples/widget_table/README.md +0 -57
  229. data/examples/widget_table/app.rb +0 -285
  230. data/examples/widget_tabs/README.md +0 -50
  231. data/examples/widget_tabs/app.rb +0 -183
  232. data/examples/widget_text_width/README.md +0 -44
  233. data/examples/widget_text_width/app.rb +0 -117
  234. data/migrate_to_buffer.rb +0 -145
  235. data/mise.toml +0 -8
  236. data/tasks/autodoc/examples.rb +0 -87
  237. data/tasks/autodoc/member.rb +0 -58
  238. data/tasks/autodoc/name.rb +0 -21
  239. data/tasks/autodoc.rake +0 -21
  240. data/tasks/bump/bump_workflow.rb +0 -49
  241. data/tasks/bump/cargo_lockfile.rb +0 -21
  242. data/tasks/bump/changelog.rb +0 -104
  243. data/tasks/bump/header.rb +0 -32
  244. data/tasks/bump/history.rb +0 -32
  245. data/tasks/bump/links.rb +0 -69
  246. data/tasks/bump/manifest.rb +0 -33
  247. data/tasks/bump/patch_release.rb +0 -19
  248. data/tasks/bump/release_branch.rb +0 -17
  249. data/tasks/bump/release_from_trunk.rb +0 -49
  250. data/tasks/bump/repository.rb +0 -54
  251. data/tasks/bump/ruby_gem.rb +0 -29
  252. data/tasks/bump/sem_ver.rb +0 -44
  253. data/tasks/bump/unreleased_section.rb +0 -73
  254. data/tasks/bump.rake +0 -61
  255. data/tasks/doc/documentation.rb +0 -59
  256. data/tasks/doc/link/file_url.rb +0 -30
  257. data/tasks/doc/link/relative_path.rb +0 -61
  258. data/tasks/doc/link/web_url.rb +0 -55
  259. data/tasks/doc/link.rb +0 -52
  260. data/tasks/doc/link_audit.rb +0 -116
  261. data/tasks/doc/problem.rb +0 -40
  262. data/tasks/doc/source_file.rb +0 -93
  263. data/tasks/doc.rake +0 -905
  264. data/tasks/example_viewer.html.erb +0 -172
  265. data/tasks/extension.rake +0 -14
  266. data/tasks/license/headers_md.rb +0 -223
  267. data/tasks/license/headers_rb.rb +0 -210
  268. data/tasks/license/license_utils.rb +0 -130
  269. data/tasks/license/snippets_md.rb +0 -315
  270. data/tasks/license/snippets_rdoc.rb +0 -150
  271. data/tasks/license.rake +0 -91
  272. data/tasks/lint.rake +0 -170
  273. data/tasks/rbs_predicates/predicate_catalog.rb +0 -52
  274. data/tasks/rbs_predicates/predicate_tests.rb +0 -124
  275. data/tasks/rbs_predicates/rbs_signature.rb +0 -63
  276. data/tasks/rbs_predicates.rake +0 -31
  277. data/tasks/rdoc_config.rb +0 -29
  278. data/tasks/resources/build.yml.erb +0 -60
  279. data/tasks/resources/index.html.erb +0 -141
  280. data/tasks/resources/rubies.yml +0 -7
  281. data/tasks/sourcehut.rake +0 -122
  282. data/tasks/steep.rake +0 -11
  283. data/tasks/terminal_preview/app_screenshot.rb +0 -45
  284. data/tasks/terminal_preview/crash_report.rb +0 -54
  285. data/tasks/terminal_preview/example_app.rb +0 -27
  286. data/tasks/terminal_preview/launcher_script.rb +0 -48
  287. data/tasks/terminal_preview/preview_collection.rb +0 -60
  288. data/tasks/terminal_preview/preview_timing.rb +0 -24
  289. data/tasks/terminal_preview/safety_confirmation.rb +0 -58
  290. data/tasks/terminal_preview/saved_screenshot.rb +0 -56
  291. data/tasks/terminal_preview/system_appearance.rb +0 -13
  292. data/tasks/terminal_preview/terminal_window.rb +0 -138
  293. data/tasks/terminal_preview/window_id.rb +0 -16
  294. data/tasks/terminal_preview.rake +0 -30
  295. data/tasks/test.rake +0 -36
  296. data/tasks/website/index_page.rb +0 -30
  297. data/tasks/website/version.rb +0 -122
  298. data/tasks/website/version_menu.rb +0 -68
  299. data/tasks/website/versioned_documentation.rb +0 -83
  300. data/tasks/website/website.rb +0 -53
  301. data/tasks/website.rake +0 -28
@@ -1,215 +0,0 @@
1
- <!--
2
- SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
3
- SPDX-License-Identifier: CC-BY-SA-4.0
4
- -->
5
-
6
- # Releasing
7
-
8
- This guide documents RatatuiRuby's release workflow. We use
9
- [trunk-based development](https://trunkbaseddevelopment.com/committing-straight-to-the-trunk/)
10
- with [release branches](https://trunkbaseddevelopment.com/branch-for-release/).
11
-
12
- ## Overview
13
-
14
- - **`trunk`** — Active development. Features land here first.
15
- - **`release/X.Y`** — Release series branches (e.g., `release/1.0`).
16
- - **`stable`** — Always points to the latest stable release.
17
-
18
- <!-- SPDX-SnippetBegin -->
19
- <!--
20
- SPDX-FileCopyrightText: 2026 Kerrick Long
21
- SPDX-License-Identifier: MIT-0
22
- -->
23
- ```
24
- trunk ──●──●──●──●──●──●──●──●──●── (future work)
25
- \ \
26
- release/1.0 ───●──●──● \ (1.0.0, 1.0.1, ...)
27
- \
28
- release/1.1 ●──●──●── (1.1.0, 1.1.1, ...)
29
- ```
30
- <!-- SPDX-SnippetEnd -->
31
-
32
- ## Versioning Philosophy
33
-
34
- We follow strict SemVer without ceremony:
35
-
36
- - **Breaking change?** → Bump major
37
- - **New feature?** → Bump minor
38
- - **Bug fix?** → Bump patch
39
-
40
- Version numbers are technical artifacts, not marketing. If we end up at v50 by
41
- year's end, so be it.
42
-
43
- ## Changelog Management
44
-
45
- Trunk maintains the canonical project history. Each release branch maintains
46
- its own changelog during development, then syncs back to trunk.
47
-
48
- ### During Beta/RC Cycles
49
-
50
- The release branch (`release/1.0`) tracks granular changes:
51
-
52
- <!-- SPDX-SnippetBegin -->
53
- <!--
54
- SPDX-FileCopyrightText: 2026 Kerrick Long
55
- SPDX-License-Identifier: MIT-0
56
- -->
57
- ```markdown
58
- ## [Unreleased]
59
-
60
- ## [1.0.0-beta.2] - 2026-01-20
61
- ### Fixed
62
- - TableState row navigation methods
63
-
64
- ## [1.0.0-beta.1] - 2026-01-20
65
- - Initial 1.0 beta release
66
- ```
67
- <!-- SPDX-SnippetEnd -->
68
-
69
- Trunk's `[Unreleased]` section accumulates features for the next minor:
70
-
71
- <!-- SPDX-SnippetBegin -->
72
- <!--
73
- SPDX-FileCopyrightText: 2026 Kerrick Long
74
- SPDX-License-Identifier: MIT-0
75
- -->
76
- ```markdown
77
- ## [Unreleased]
78
- ### Added
79
- - Terminal Capability Detection
80
-
81
- ### Fixed
82
- - TableState row navigation methods
83
- ```
84
- <!-- SPDX-SnippetEnd -->
85
-
86
- The fix appears in both places. This is correct — both branches contain it.
87
-
88
- ### When Final Ships
89
-
90
- When `1.0.0` final releases, **consolidate** all beta entries into one section
91
- on both branches:
92
-
93
- **release/1.0:**
94
- <!-- SPDX-SnippetBegin -->
95
- <!--
96
- SPDX-FileCopyrightText: 2026 Kerrick Long
97
- SPDX-License-Identifier: MIT-0
98
- -->
99
- ```markdown
100
- ## [1.0.0] - 2026-xx-xx
101
- ### Fixed
102
- - TableState row navigation methods
103
-
104
- ## [0.10.3] - 2026-01-16
105
- ...
106
- ```
107
- <!-- SPDX-SnippetEnd -->
108
-
109
- **trunk (synced):**
110
- <!-- SPDX-SnippetBegin -->
111
- <!--
112
- SPDX-FileCopyrightText: 2026 Kerrick Long
113
- SPDX-License-Identifier: MIT-0
114
- -->
115
- ```markdown
116
- ## [Unreleased]
117
- ### Added
118
- - Terminal Capability Detection
119
-
120
- ## [1.0.0] - 2026-xx-xx
121
- ### Fixed
122
- - TableState row navigation methods
123
-
124
- ## [0.10.3] - 2026-01-16
125
- ...
126
- ```
127
- <!-- SPDX-SnippetEnd -->
128
-
129
- The beta granularity served its purpose during testing. Git tags preserve the
130
- detailed history.
131
-
132
- ## Release Workflows
133
-
134
- ### Bugfix (Patch) Release
135
-
136
- For bugs affecting a released version:
137
-
138
- 1. **Fix on trunk first** — All bugs get fixed on trunk.
139
- 2. **Cherry-pick to release branch** with provenance:
140
- ```bash
141
- git checkout release/1.0
142
- git cherry-pick -x <commit> # -x adds "cherry picked from" trailer
143
- ```
144
- 3. **Update the changelog** on the release branch.
145
- 4. **Bump and release:**
146
- ```bash
147
- bundle exec rake bump:patch
148
- bundle exec rake release
149
- ```
150
-
151
- ### New Version (Major/Minor)
152
-
153
- When trunk is ready for a new release series:
154
-
155
- 1. **Decide version** based on changes:
156
- - Breaking changes → Major (2.0.0)
157
- - New features only → Minor (1.1.0)
158
-
159
- 2. **Create release branch:**
160
- ```bash
161
- git checkout trunk
162
- git checkout -b release/1.1 # or release/2.0
163
- ```
164
-
165
- 3. **Release from the branch:**
166
- ```bash
167
- bundle exec rake bump:exact[1.1.0-beta.1]
168
- bundle exec rake release
169
- ```
170
-
171
- 4. **Bump trunk** to the next dev version if desired.
172
-
173
- 5. **Iterate** through betas/RCs as needed, then ship final.
174
-
175
- 6. **Sync changelog** — When final ships, add the consolidated section to trunk.
176
-
177
- ### Prerelease Notes
178
-
179
- RubyGems normalizes prerelease versions. Our `rake release` task automatically:
180
-
181
- 1. Lets Bundler create the normalized tag (e.g., `v1.0.0.pre.beta.1`)
182
- 2. Deletes it locally and remotely
183
- 3. Creates the SemVer tag (e.g., `v1.0.0-beta.1`) and pushes it
184
-
185
- This keeps our Git tags strictly SemVer-compliant.
186
-
187
- ## Commands Reference
188
-
189
- <!-- SPDX-SnippetBegin -->
190
- <!--
191
- SPDX-FileCopyrightText: 2026 Kerrick Long
192
- SPDX-License-Identifier: MIT-0
193
- -->
194
- ```bash
195
- # Bump version
196
- bundle exec rake bump:patch # 1.0.0 → 1.0.1
197
- bundle exec rake bump:minor # 1.0.0 → 1.1.0
198
- bundle exec rake bump:major # 1.0.0 → 2.0.0
199
- bundle exec rake bump:exact[1.0.0-beta.1]
200
-
201
- # Release (builds, tags, pushes gem, updates stable branch)
202
- bundle exec rake release
203
-
204
- # Watch builds
205
- bin/hbs # Wait for SourceHut builds
206
- bin/hbs && bundle exec rake release # Release only if builds pass
207
- ```
208
- <!-- SPDX-SnippetEnd -->
209
-
210
- ## Further Reading
211
-
212
- - [Trunk-Based Development](https://trunkbaseddevelopment.com/)
213
- - [Branch for Release](https://trunkbaseddevelopment.com/branch-for-release/)
214
- - [SemVer Specification](https://semver.org/)
215
- - [Keep a Changelog](https://keepachangelog.com/)
@@ -1,381 +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
- | HorizontalAlignment::Left | ratatui-core/src/layout/alignment.rs:25 | ✅ |
66
- | HorizontalAlignment::Center | ratatui-core/src/layout/alignment.rs:26 | ✅ |
67
- | HorizontalAlignment::Right | ratatui-core/src/layout/alignment.rs:27 | ✅ |
68
- | VerticalAlignment::Top | ratatui-core/src/layout/alignment.rs:40 | ✅ |
69
- | VerticalAlignment::Center | ratatui-core/src/layout/alignment.rs:41 | ✅ |
70
- | VerticalAlignment::Bottom | ratatui-core/src/layout/alignment.rs:42 | ✅ |
71
- | Rect struct | ratatui-core/src/layout/rect.rs:134 | ✅ |
72
- | Rect::new | ratatui-core/src/layout/rect.rs:166 | ✅ |
73
- | Rect::area | ratatui-core/src/layout/rect.rs:190 | ✅ |
74
- | Rect::is_empty | ratatui-core/src/layout/rect.rs:195 | ✅ |
75
- | Rect::left | ratatui-core/src/layout/rect.rs:200 | ✅ |
76
- | Rect::right | ratatui-core/src/layout/rect.rs:205 | ✅ |
77
- | Rect::top | ratatui-core/src/layout/rect.rs:214 | ✅ |
78
- | Rect::bottom | ratatui-core/src/layout/rect.rs:219 | ✅ |
79
- | Rect::inner | ratatui-core/src/layout/rect.rs:228 | ✅ |
80
- | Rect::outer | ratatui-core/src/layout/rect.rs:248 | ✅ |
81
- | Rect::offset | ratatui-core/src/layout/rect.rs:276 | ✅ |
82
- | Rect::resize | ratatui-core/src/layout/rect.rs:289 | ✅ |
83
- | Rect::union | ratatui-core/src/layout/rect.rs:305 | ✅ |
84
- | Rect::intersection | ratatui-core/src/layout/rect.rs:322 | ✅ |
85
- | Rect::clamp | ratatui-core/src/layout/rect.rs:387 | ✅ |
86
- | Rect::rows | ratatui-core/src/layout/rect/iter.rs:4 | ✅ |
87
- | Rect::columns | ratatui-core/src/layout/rect/iter.rs:66 | ✅ |
88
- | Rect::positions | ratatui-core/src/layout/rect/iter.rs:130 | ✅ |
89
-
90
- ## Style Features
91
-
92
- | Feature Name | File/Line | Status |
93
- |--------------|-----------|--------|
94
- | Color::Reset | ratatui-core/src/style/color.rs:30 | ✅ |
95
- | Color::Black | ratatui-core/src/style/color.rs:32 | ✅ |
96
- | Color::Red | ratatui-core/src/style/color.rs:34 | ✅ |
97
- | Color::Green | ratatui-core/src/style/color.rs:36 | ✅ |
98
- | Color::Yellow | ratatui-core/src/style/color.rs:38 | ✅ |
99
- | Color::Blue | ratatui-core/src/style/color.rs:40 | ✅ |
100
- | Color::Magenta | ratatui-core/src/style/color.rs:42 | ✅ |
101
- | Color::Cyan | ratatui-core/src/style/color.rs:44 | ✅ |
102
- | Color::Gray | ratatui-core/src/style/color.rs:46 | ✅ |
103
- | Color::DarkGray | ratatui-core/src/style/color.rs:48 | ✅ |
104
- | Color::LightRed | ratatui-core/src/style/color.rs:50 | ✅ |
105
- | Color::LightGreen | ratatui-core/src/style/color.rs:52 | ✅ |
106
- | Color::LightYellow | ratatui-core/src/style/color.rs:54 | ✅ |
107
- | Color::LightBlue | ratatui-core/src/style/color.rs:56 | ✅ |
108
- | Color::LightMagenta | ratatui-core/src/style/color.rs:58 | ✅ |
109
- | Color::LightCyan | ratatui-core/src/style/color.rs:60 | ✅ |
110
- | Color::White | ratatui-core/src/style/color.rs:62 | ✅ |
111
- | Color::Rgb(u8, u8, u8) | ratatui-core/src/style/color.rs:64 | ✅ |
112
- | Color::Indexed(u8) | ratatui-core/src/style/color.rs:66 | ✅ |
113
- | Color::from_u32 | ratatui-core/src/style/color.rs:133 | ✅ |
114
- | Color::from_hsl | ratatui-core/src/style/color.rs:416 | ✅ |
115
- | Color::from_hsluv | ratatui-core/src/style/color.rs:469 | ✅ |
116
- | Style struct | ratatui-core/src/style.rs:239 | ✅ |
117
- | Style::fg | ratatui-core/src/style.rs:335 | ✅ |
118
- | Style::bg | ratatui-core/src/style.rs:352 | ✅ |
119
- | Style::underline_color | ratatui-core/src/style.rs:387 | ✅ |
120
- | Style::add_modifier | ratatui-core/src/style.rs:408 | ✅ |
121
- | Style::remove_modifier | ratatui-core/src/style.rs:430 | ✅ |
122
- | Modifier::BOLD | ratatui-core/src/style.rs:105 | ✅ |
123
- | Modifier::DIM | ratatui-core/src/style.rs:106 | ✅ |
124
- | Modifier::ITALIC | ratatui-core/src/style.rs:107 | ✅ |
125
- | Modifier::UNDERLINED | ratatui-core/src/style.rs:108 | ✅ |
126
- | Modifier::SLOW_BLINK | ratatui-core/src/style.rs:109 | ✅ |
127
- | Modifier::RAPID_BLINK | ratatui-core/src/style.rs:110 | ✅ |
128
- | Modifier::REVERSED | ratatui-core/src/style.rs:111 | ✅ |
129
- | Modifier::HIDDEN | ratatui-core/src/style.rs:112 | ✅ |
130
- | Modifier::CROSSED_OUT | ratatui-core/src/style.rs:113 | ✅ |
131
-
132
- ## Text Features
133
-
134
- | Feature Name | File/Line | Status |
135
- |--------------|-----------| -------|
136
- | Text struct | ratatui-core/src/text/text.rs:196 | ✅ |
137
- | Span struct | ratatui-core/src/text/span.rs:99 | ✅ |
138
- | Line struct | ratatui-core/src/text/line.rs:183 | ✅ |
139
-
140
- ## Symbol Sets
141
-
142
- | Feature Name | File/Line | Status |
143
- |--------------|-----------|--------|
144
- | half_block::UPPER | ratatui-core/src/symbols/half_block.rs:1 | ✅ |
145
- | half_block::LOWER | ratatui-core/src/symbols/half_block.rs:3 | ✅ |
146
- | half_block::FULL | ratatui-core/src/symbols/half_block.rs:5 | ✅ |
147
- | Marker::Dot | ratatui-core/src/symbols/marker.rs:11 | ✅ |
148
- | Marker::Block | ratatui-core/src/symbols/marker.rs:13 | ✅ |
149
- | Marker::Bar | ratatui-core/src/symbols/marker.rs:17 | ✅ |
150
- | Marker::Braille | ratatui-core/src/symbols/marker.rs:21 | ✅ |
151
- | Marker::HalfBlock | ratatui-core/src/symbols/marker.rs:25 | ✅ |
152
- | bar::Set struct | ratatui-core/src/symbols/bar.rs:8 | ✅ |
153
- | bar::THREE_LEVELS | ratatui-core/src/symbols/bar.rs:29 | ✅ |
154
- | bar::NINE_LEVELS | ratatui-core/src/symbols/bar.rs:41 | ✅ |
155
- | border::Set struct | ratatui-core/src/symbols/border.rs:12 | ✅ |
156
- | border::PLAIN | ratatui-core/src/symbols/border.rs:43 | ✅ |
157
- | border::ROUNDED | ratatui-core/src/symbols/border.rs:62 | ✅ |
158
- | border::DOUBLE | ratatui-core/src/symbols/border.rs:81 | ✅ |
159
- | border::THICK | ratatui-core/src/symbols/border.rs:100 | ✅ |
160
- | border::QUADRANT_OUTSIDE | ratatui-core/src/symbols/border.rs:195 | ✅ |
161
- | border::QUADRANT_INSIDE | ratatui-core/src/symbols/border.rs:214 | ✅ |
162
- | line::Set struct | ratatui-core/src/symbols/line.rs:62 | ✅ |
163
- | line::NORMAL | ratatui-core/src/symbols/line.rs:82 | ✅ |
164
- | line::DOUBLE | ratatui-core/src/symbols/line.rs:104 | ✅ |
165
- | line::THICK | ratatui-core/src/symbols/line.rs:118 | ✅ |
166
-
167
- ## Widgets
168
-
169
- ### Paragraph Widget
170
-
171
- | Feature Name | File/Line | Status |
172
- |--------------|-----------|--------|
173
- | Paragraph struct | ratatui-widgets/src/paragraph.rs:80 | ✅ |
174
- | Paragraph::block | ratatui-widgets/src/paragraph.rs:174 | ✅ |
175
- | Paragraph::style | ratatui-widgets/src/paragraph.rs:198 | ✅ |
176
- | Paragraph::wrap | ratatui-widgets/src/paragraph.rs:115 | ✅ |
177
- | Paragraph::scroll | ratatui-widgets/src/paragraph.rs:161 | ✅ |
178
- | Paragraph::alignment | ratatui-widgets/src/paragraph.rs:199 | ✅ |
179
- | Wrap struct | ratatui-widgets/src/paragraph.rs:240 | ✅ |
180
- | Wrap::trim | ratatui-widgets/src/paragraph.rs:242 | ✅ |
181
-
182
- ### Block Widget
183
-
184
- | Feature Name | File/Line | Status |
185
- |--------------|-----------|--------|
186
- | Block struct | ratatui-widgets/src/block.rs:75 | ✅ |
187
- | Block::borders | ratatui-widgets/src/block.rs:85 | ✅ |
188
- | Block::border_style | ratatui-widgets/src/block.rs:89 | ✅ |
189
- | Block::border_set | ratatui-widgets/src/block.rs:91 | ✅ |
190
- | Block::padding | ratatui-widgets/src/block.rs:97 | ✅ |
191
- | Padding struct | ratatui-widgets/src/block/padding.rs:27 | ✅ |
192
- | Padding::ZERO | ratatui-widgets/src/block/padding.rs:40 | ✅ |
193
- | Padding::new | ratatui-widgets/src/block/padding.rs:50 | ✅ |
194
- | Padding::horizontal | ratatui-widgets/src/block/padding.rs:66 | ✅ |
195
- | Padding::vertical | ratatui-widgets/src/block/padding.rs:76 | ✅ |
196
- | Padding::uniform | ratatui-widgets/src/block/padding.rs:86 | ✅ |
197
- | Padding::proportional | ratatui-widgets/src/block/padding.rs:99 | ✅ |
198
- | Padding::symmetric | ratatui-widgets/src/block/padding.rs:112 | ✅ |
199
- | Padding::left | ratatui-widgets/src/block/padding.rs:122 | ✅ |
200
- | Padding::right | ratatui-widgets/src/block/padding.rs:132 | ✅ |
201
- | Padding::top | ratatui-widgets/src/block/padding.rs:142 | ✅ |
202
- | Padding::bottom | ratatui-widgets/src/block/padding.rs:152 | ✅ |
203
- | Borders::TOP | ratatui-widgets/src/borders.rs:33 | ✅ |
204
- | Borders::RIGHT | ratatui-widgets/src/borders.rs:35 | ✅ |
205
- | Borders::BOTTOM | ratatui-widgets/src/borders.rs:37 | ✅ |
206
- | Borders::LEFT | ratatui-widgets/src/borders.rs:39 | ✅ |
207
- | Borders::ALL | ratatui-widgets/src/borders.rs:41 | ✅ |
208
- | Borders::NONE | ratatui-widgets/src/borders.rs:43 | ✅ |
209
- | BorderType::Plain | ratatui-widgets/src/borders.rs:64 | ✅ |
210
- | BorderType::Rounded | ratatui-widgets/src/borders.rs:66 | ✅ |
211
- | BorderType::Double | ratatui-widgets/src/borders.rs:71 | ✅ |
212
- | BorderType::Thick | ratatui-widgets/src/borders.rs:81 | ✅ |
213
- | BorderType::QuadrantInside | ratatui-widgets/src/borders.rs:139 | ✅ |
214
- | BorderType::QuadrantOutside | ratatui-widgets/src/borders.rs:144 | ✅ |
215
- | TitlePosition::Top | ratatui-widgets/src/block.rs:49 | ✅ |
216
- | TitlePosition::Bottom | ratatui-widgets/src/block.rs:51 | ✅ |
217
-
218
- ### Table Widget
219
-
220
- | Feature Name | File/Line | Status |
221
- |--------------|-----------|--------|
222
- | Table struct | ratatui-widgets/src/table.rs:233 | ✅ |
223
- | Table::rows | ratatui-widgets/src/table.rs:235 | ✅ |
224
- | Table::header | ratatui-widgets/src/table.rs:238 | ✅ |
225
- | Table::footer | ratatui-widgets/src/table.rs:241 | ✅ |
226
- | Table::widths | ratatui-widgets/src/table.rs:244 | ✅ |
227
- | Table::column_spacing | ratatui-widgets/src/table.rs:247 | ✅ |
228
- | Table::row_highlight_style | ratatui-widgets/src/table.rs:256 | ✅ |
229
- | Table::column_highlight_style | ratatui-widgets/src/table.rs:259 | ✅ |
230
- | Table::cell_highlight_style | ratatui-widgets/src/table.rs:262 | ✅ |
231
- | Table::highlight_symbol | ratatui-widgets/src/table.rs:265 | ✅ |
232
- | Table::highlight_spacing | ratatui-widgets/src/table.rs:268 | ✅ |
233
- | Table::flex | ratatui-widgets/src/table.rs:271 | ✅ |
234
- | Row struct | ratatui-widgets/src/table/row.rs:75 | ✅ |
235
- | Cell struct | ratatui-widgets/src/table/cell.rs:51 | ✅ |
236
- | HighlightSpacing::Always | ratatui-widgets/src/table/highlight_spacing.rs:10 | ✅ |
237
- | HighlightSpacing::WhenSelected | ratatui-widgets/src/table/highlight_spacing.rs:14 | ✅ |
238
- | HighlightSpacing::Never | ratatui-widgets/src/table/highlight_spacing.rs:18 | ✅ |
239
-
240
-
241
- ### List Widget
242
-
243
- | Feature Name | File/Line | Status |
244
- |--------------|-----------|--------|
245
- | List struct | ratatui-widgets/src/list.rs:109 | ✅ |
246
- | List::items | ratatui-widgets/src/list.rs:113 | ✅ |
247
- | List::direction | ratatui-widgets/src/list.rs:117 | ✅ |
248
- | List::highlight_style | ratatui-widgets/src/list.rs:119 | ✅ |
249
- | List::highlight_symbol | ratatui-widgets/src/list.rs:121 | ✅ |
250
- | List::repeat_highlight_symbol | ratatui-widgets/src/list.rs:123 | ✅ |
251
- | List::highlight_spacing | ratatui-widgets/src/list.rs:125 | ✅ |
252
- | List::scroll_padding | ratatui-widgets/src/list.rs:127 | ✅ |
253
- | ListDirection::TopToBottom | ratatui-widgets/src/list.rs:140 | ✅ |
254
- | ListDirection::BottomToTop | ratatui-widgets/src/list.rs:142 | ✅ |
255
- | ListItem struct | ratatui-widgets/src/list/item.rs:73 | ✅ |
256
-
257
-
258
- ### BarChart Widget
259
-
260
- | Feature Name | File/Line | Status |
261
- |--------------|-----------|--------|
262
- | BarChart struct | ratatui-widgets/src/barchart.rs:83 | ✅ |
263
- | BarChart::bar_width | ratatui-widgets/src/barchart.rs:87 | ✅ |
264
- | BarChart::bar_gap | ratatui-widgets/src/barchart.rs:89 | ✅ |
265
- | BarChart::group_gap | ratatui-widgets/src/barchart.rs:91 | ✅ |
266
- | BarChart::bar_set | ratatui-widgets/src/barchart.rs:93 | ✅ |
267
- | BarChart::max | ratatui-widgets/src/barchart.rs:106 | ✅ |
268
- | BarChart::direction | ratatui-widgets/src/barchart.rs:108 | ✅ |
269
- | Bar struct | ratatui-widgets/src/barchart/bar.rs:34 | ✅ |
270
- | BarGroup struct | ratatui-widgets/src/barchart/bar_group.rs:21 | ✅ |
271
-
272
- ### Chart Widget
273
-
274
- | Feature Name | File/Line | Status |
275
- |--------------|-----------|--------|
276
- | Chart struct | ratatui-widgets/src/chart.rs:510 | ✅ |
277
- | Axis struct | ratatui-widgets/src/chart.rs:40 | ✅ |
278
- | Axis::bounds | ratatui-widgets/src/chart.rs:44 | ✅ |
279
- | Axis::labels | ratatui-widgets/src/chart.rs:46 | ✅ |
280
- | Axis::labels_alignment | ratatui-widgets/src/chart.rs:50 | ✅ |
281
- | Dataset struct | ratatui-widgets/src/chart.rs:320 | ✅ |
282
- | Dataset::marker | ratatui-widgets/src/chart.rs:326 | ✅ |
283
- | Dataset::graph_type | ratatui-widgets/src/chart.rs:328 | ✅ |
284
- | GraphType::Scatter | ratatui-widgets/src/chart.rs:161 | ✅ |
285
- | GraphType::Line | ratatui-widgets/src/chart.rs:167 | ✅ |
286
- | GraphType::Bar | ratatui-widgets/src/chart.rs:170 | ✅ |
287
- | LegendPosition::TopLeft | ratatui-widgets/src/chart.rs:184 | ✅ |
288
- | LegendPosition::Top | ratatui-widgets/src/chart.rs:179 | ✅ |
289
- | LegendPosition::TopRight | ratatui-widgets/src/chart.rs:182 | ✅ |
290
- | LegendPosition::Left | ratatui-widgets/src/chart.rs:186 | ✅ |
291
- | LegendPosition::Right | ratatui-widgets/src/chart.rs:187 | ✅ |
292
- | LegendPosition::BottomLeft | ratatui-widgets/src/chart.rs:194 | ✅ |
293
- | LegendPosition::Bottom | ratatui-widgets/src/chart.rs:190 | ✅ |
294
- | LegendPosition::BottomRight | ratatui-widgets/src/chart.rs:192 | ✅ |
295
-
296
- ### Gauge Widget
297
-
298
- | Feature Name | File/Line | Status |
299
- |--------------|-----------|--------|
300
- | Gauge struct | ratatui-widgets/src/gauge.rs:45 | ✅ |
301
- | Gauge::ratio | ratatui-widgets/src/gauge.rs:47 | ✅ |
302
- | Gauge::label | ratatui-widgets/src/gauge.rs:48 | ✅ |
303
- | Gauge::use_unicode | ratatui-widgets/src/gauge.rs:49 | ✅ |
304
- | Gauge::gauge_style | ratatui-widgets/src/gauge.rs:51 | ✅ |
305
- | LineGauge struct | ratatui-widgets/src/gauge.rs:269 | ✅ |
306
- | LineGauge::filled_symbol | ratatui-widgets/src/gauge.rs:274 | ✅ |
307
- | LineGauge::unfilled_symbol | ratatui-widgets/src/gauge.rs:275 | ✅ |
308
- | LineGauge::filled_style | ratatui-widgets/src/gauge.rs:276 | ✅ |
309
- | LineGauge::unfilled_style | ratatui-widgets/src/gauge.rs:277 | ✅ |
310
-
311
- ### Sparkline Widget
312
-
313
- | Feature Name | File/Line | Status |
314
- |--------------|-----------|--------|
315
- | Sparkline struct | ratatui-widgets/src/sparkline.rs:66 | ✅ |
316
- | RenderDirection::LeftToRight | ratatui-widgets/src/sparkline.rs:93 | ✅ |
317
- | RenderDirection::RightToLeft | ratatui-widgets/src/sparkline.rs:96 | ✅ |
318
-
319
- ### Scrollbar Widget
320
-
321
- | Feature Name | File/Line | Status |
322
- |--------------|-----------|--------|
323
- | Scrollbar struct | ratatui-widgets/src/scrollbar.rs:87 | ✅ |
324
- | ScrollbarOrientation::VerticalRight | ratatui-widgets/src/scrollbar.rs:112 | ✅ |
325
- | ScrollbarOrientation::VerticalLeft | ratatui-widgets/src/scrollbar.rs:115 | ✅ |
326
- | ScrollbarOrientation::HorizontalBottom | ratatui-widgets/src/scrollbar.rs:118 | ✅ |
327
- | ScrollbarOrientation::HorizontalTop | ratatui-widgets/src/scrollbar.rs:121 | ✅ |
328
-
329
-
330
- ### Calendar Widget
331
-
332
- | Feature Name | File/Line | Status |
333
- |--------------|-----------|--------|
334
- | Monthly struct | ratatui-widgets/src/calendar.rs:26 | ✅ |
335
-
336
- ### Canvas Widget
337
-
338
- | Feature Name | File/Line | Status |
339
- |--------------|-----------|--------|
340
- | Canvas struct | ratatui-widgets/src/canvas.rs:721 | ✅ |
341
- | Line shape | ratatui-widgets/src/canvas/line.rs:8 | ✅ |
342
- | Circle shape | ratatui-widgets/src/canvas/circle.rs:9 | ✅ |
343
- | Rectangle shape | ratatui-widgets/src/canvas/rectangle.rs:10 | ✅ |
344
- | Map struct | ratatui-widgets/src/canvas/map.rs:38 | ✅ |
345
- | MapResolution::Low | ratatui-widgets/src/canvas/map.rs:13 | ✅ |
346
- | MapResolution::High | ratatui-widgets/src/canvas/map.rs:16 | ✅ |
347
-
348
- ### Tabs Widget
349
-
350
- | Feature Name | File/Line | Status |
351
- |--------------|-----------|--------|
352
- | Tabs struct | ratatui-widgets/src/tabs.rs:51 | ✅ |
353
-
354
- ### Other Widgets
355
-
356
- | Feature Name | File/Line | Status |
357
- |--------------|-----------|--------|
358
- | Clear widget | ratatui-widgets/src/clear.rs:30 | ✅ |
359
- | RatatuiLogo widget | ratatui-widgets/src/logo.rs:59 | ✅ |
360
- | RatatuiLogo Size::Tiny | ratatui-widgets/src/logo.rs:68 | ✅ |
361
- | RatatuiLogo Size::Small | ratatui-widgets/src/logo.rs:71 | ✅ |
362
- | RatatuiLogo Size::Medium | ratatui-widgets/src/logo.rs:74 | ✅ |
363
- | RatatuiLogo Size::Large | ratatui-widgets/src/logo.rs:77 | ✅ |
364
-
365
- ## Buffer Features
366
-
367
- | Feature Name | File/Line | Status |
368
- |--------------|-----------|--------|
369
- | Buffer struct | ratatui-core/src/buffer/buffer.rs:66 | ✅ |
370
- | Buffer::content | ratatui-core/src/buffer/buffer.rs:107 | ✅ |
371
- | Buffer::get | ratatui-core/src/buffer/buffer.rs:130 | ✅ |
372
- | Cell struct | ratatui-core/src/buffer/cell.rs:9 | ✅ |
373
-
374
-
375
-
376
- ## Backend Features
377
-
378
- | Feature Name | File/Line | Status |
379
- |--------------|-----------|--------|
380
- | TestBackend | ratatui-core/src/backend/test.rs:* | ✅ |
381
- | CrosstermBackend | ratatui-crossterm/src/lib.rs:* | ✅ |