ratatui_ruby 0.6.0 → 0.7.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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/.builds/ruby-3.2.yml +1 -1
  3. data/.builds/ruby-3.3.yml +1 -1
  4. data/.builds/ruby-3.4.yml +1 -1
  5. data/.builds/ruby-4.0.0.yml +1 -1
  6. data/AGENTS.md +4 -4
  7. data/CHANGELOG.md +48 -0
  8. data/README.md +26 -1
  9. data/doc/application_architecture.md +16 -16
  10. data/doc/application_testing.md +1 -1
  11. data/doc/async.md +160 -0
  12. data/doc/contributors/architectural_overhaul/chat_conversations.md +4952 -0
  13. data/doc/contributors/architectural_overhaul/implementation_plan.md +60 -0
  14. data/doc/contributors/architectural_overhaul/task.md +37 -0
  15. data/doc/contributors/design/ruby_frontend.md +277 -81
  16. data/doc/contributors/design/rust_backend.md +349 -55
  17. data/doc/contributors/developing_examples.md +5 -5
  18. data/doc/contributors/index.md +7 -5
  19. data/doc/contributors/v1.0.0_blockers.md +1729 -0
  20. data/doc/debugging.md +71 -0
  21. data/doc/index.md +11 -6
  22. data/doc/interactive_design.md +2 -2
  23. data/doc/quickstart.md +66 -97
  24. data/doc/v0.7.0_migration.md +236 -0
  25. data/doc/why.md +93 -0
  26. data/examples/app_all_events/README.md +6 -4
  27. data/examples/app_all_events/app.rb +1 -1
  28. data/examples/app_all_events/model/app_model.rb +1 -1
  29. data/examples/app_all_events/model/msg.rb +1 -1
  30. data/examples/app_all_events/update.rb +1 -1
  31. data/examples/app_all_events/view/app_view.rb +1 -1
  32. data/examples/app_all_events/view/controls_view.rb +1 -1
  33. data/examples/app_all_events/view/counts_view.rb +1 -1
  34. data/examples/app_all_events/view/live_view.rb +1 -1
  35. data/examples/app_all_events/view/log_view.rb +1 -1
  36. data/examples/app_color_picker/README.md +7 -5
  37. data/examples/app_color_picker/app.rb +1 -1
  38. data/examples/app_login_form/README.md +2 -0
  39. data/examples/app_stateful_interaction/README.md +2 -0
  40. data/examples/app_stateful_interaction/app.rb +1 -1
  41. data/examples/verify_quickstart_dsl/README.md +4 -3
  42. data/examples/verify_quickstart_dsl/app.rb +1 -1
  43. data/examples/verify_quickstart_layout/README.md +1 -1
  44. data/examples/verify_quickstart_lifecycle/README.md +3 -3
  45. data/examples/verify_quickstart_lifecycle/app.rb +2 -2
  46. data/examples/verify_readme_usage/README.md +1 -1
  47. data/examples/widget_barchart_demo/README.md +2 -1
  48. data/examples/widget_block_demo/README.md +2 -0
  49. data/examples/widget_box_demo/README.md +3 -3
  50. data/examples/widget_calendar_demo/README.md +3 -3
  51. data/examples/widget_calendar_demo/app.rb +5 -1
  52. data/examples/widget_canvas_demo/README.md +3 -3
  53. data/examples/widget_cell_demo/README.md +3 -3
  54. data/examples/widget_center_demo/README.md +3 -3
  55. data/examples/widget_chart_demo/README.md +3 -3
  56. data/examples/widget_gauge_demo/README.md +3 -3
  57. data/examples/widget_layout_split/README.md +3 -3
  58. data/examples/widget_line_gauge_demo/README.md +3 -3
  59. data/examples/widget_list_demo/README.md +3 -3
  60. data/examples/widget_map_demo/README.md +3 -3
  61. data/examples/widget_map_demo/app.rb +2 -2
  62. data/examples/widget_overlay_demo/README.md +36 -0
  63. data/examples/widget_popup_demo/README.md +3 -3
  64. data/examples/widget_ratatui_logo_demo/README.md +3 -3
  65. data/examples/widget_ratatui_logo_demo/app.rb +1 -1
  66. data/examples/widget_ratatui_mascot_demo/README.md +3 -3
  67. data/examples/widget_rect/README.md +3 -3
  68. data/examples/widget_render/README.md +3 -3
  69. data/examples/widget_render/app.rb +3 -3
  70. data/examples/widget_rich_text/README.md +3 -3
  71. data/examples/widget_scroll_text/README.md +3 -3
  72. data/examples/widget_scrollbar_demo/README.md +3 -3
  73. data/examples/widget_sparkline_demo/README.md +3 -3
  74. data/examples/widget_style_colors/README.md +3 -3
  75. data/examples/widget_table_demo/README.md +3 -3
  76. data/examples/widget_table_demo/app.rb +19 -4
  77. data/examples/widget_tabs_demo/README.md +3 -3
  78. data/examples/widget_text_width/README.md +3 -3
  79. data/examples/widget_text_width/app.rb +8 -1
  80. data/ext/ratatui_ruby/Cargo.lock +1 -1
  81. data/ext/ratatui_ruby/Cargo.toml +1 -1
  82. data/ext/ratatui_ruby/src/frame.rs +6 -5
  83. data/ext/ratatui_ruby/src/lib.rs +3 -2
  84. data/ext/ratatui_ruby/src/rendering.rs +22 -21
  85. data/ext/ratatui_ruby/src/style.rs +25 -9
  86. data/ext/ratatui_ruby/src/text.rs +12 -3
  87. data/ext/ratatui_ruby/src/widgets/canvas.rs +5 -5
  88. data/ext/ratatui_ruby/src/widgets/table.rs +81 -36
  89. data/lib/ratatui_ruby/buffer/cell.rb +168 -0
  90. data/lib/ratatui_ruby/buffer.rb +15 -0
  91. data/lib/ratatui_ruby/frame.rb +8 -8
  92. data/lib/ratatui_ruby/layout/constraint.rb +95 -0
  93. data/lib/ratatui_ruby/layout/layout.rb +106 -0
  94. data/lib/ratatui_ruby/layout/rect.rb +118 -0
  95. data/lib/ratatui_ruby/layout.rb +19 -0
  96. data/lib/ratatui_ruby/list_state.rb +2 -2
  97. data/lib/ratatui_ruby/schema/layout.rb +1 -1
  98. data/lib/ratatui_ruby/schema/row.rb +66 -0
  99. data/lib/ratatui_ruby/schema/table.rb +10 -10
  100. data/lib/ratatui_ruby/schema/text.rb +27 -2
  101. data/lib/ratatui_ruby/style/style.rb +81 -0
  102. data/lib/ratatui_ruby/style.rb +15 -0
  103. data/lib/ratatui_ruby/table_state.rb +1 -1
  104. data/lib/ratatui_ruby/test_helper/snapshot.rb +24 -0
  105. data/lib/ratatui_ruby/test_helper/style_assertions.rb +1 -1
  106. data/lib/ratatui_ruby/tui/buffer_factories.rb +20 -0
  107. data/lib/ratatui_ruby/tui/canvas_factories.rb +44 -0
  108. data/lib/ratatui_ruby/tui/core.rb +38 -0
  109. data/lib/ratatui_ruby/tui/layout_factories.rb +74 -0
  110. data/lib/ratatui_ruby/tui/state_factories.rb +33 -0
  111. data/lib/ratatui_ruby/tui/style_factories.rb +20 -0
  112. data/lib/ratatui_ruby/tui/text_factories.rb +44 -0
  113. data/lib/ratatui_ruby/tui/widget_factories.rb +195 -0
  114. data/lib/ratatui_ruby/tui.rb +75 -0
  115. data/lib/ratatui_ruby/version.rb +1 -1
  116. data/lib/ratatui_ruby/widgets/bar_chart/bar.rb +47 -0
  117. data/lib/ratatui_ruby/widgets/bar_chart/bar_group.rb +25 -0
  118. data/lib/ratatui_ruby/widgets/bar_chart.rb +239 -0
  119. data/lib/ratatui_ruby/widgets/block.rb +192 -0
  120. data/lib/ratatui_ruby/widgets/calendar.rb +84 -0
  121. data/lib/ratatui_ruby/widgets/canvas.rb +231 -0
  122. data/lib/ratatui_ruby/widgets/cell.rb +47 -0
  123. data/lib/ratatui_ruby/widgets/center.rb +59 -0
  124. data/lib/ratatui_ruby/widgets/chart.rb +185 -0
  125. data/lib/ratatui_ruby/widgets/clear.rb +54 -0
  126. data/lib/ratatui_ruby/widgets/cursor.rb +42 -0
  127. data/lib/ratatui_ruby/widgets/gauge.rb +72 -0
  128. data/lib/ratatui_ruby/widgets/line_gauge.rb +80 -0
  129. data/lib/ratatui_ruby/widgets/list.rb +127 -0
  130. data/lib/ratatui_ruby/widgets/list_item.rb +43 -0
  131. data/lib/ratatui_ruby/widgets/overlay.rb +43 -0
  132. data/lib/ratatui_ruby/widgets/paragraph.rb +99 -0
  133. data/lib/ratatui_ruby/widgets/ratatui_logo.rb +31 -0
  134. data/lib/ratatui_ruby/widgets/ratatui_mascot.rb +36 -0
  135. data/lib/ratatui_ruby/widgets/row.rb +68 -0
  136. data/lib/ratatui_ruby/widgets/scrollbar.rb +143 -0
  137. data/lib/ratatui_ruby/widgets/shape/label.rb +68 -0
  138. data/lib/ratatui_ruby/widgets/sparkline.rb +134 -0
  139. data/lib/ratatui_ruby/widgets/table.rb +141 -0
  140. data/lib/ratatui_ruby/widgets/tabs.rb +85 -0
  141. data/lib/ratatui_ruby/widgets.rb +40 -0
  142. data/lib/ratatui_ruby.rb +23 -39
  143. data/sig/examples/app_all_events/view.rbs +1 -1
  144. data/sig/examples/app_all_events/view_state.rbs +1 -1
  145. data/sig/ratatui_ruby/schema/row.rbs +22 -0
  146. data/sig/ratatui_ruby/schema/table.rbs +1 -1
  147. data/sig/ratatui_ruby/schema/text.rbs +1 -0
  148. data/sig/ratatui_ruby/session.rbs +29 -49
  149. data/sig/ratatui_ruby/tui/buffer_factories.rbs +10 -0
  150. data/sig/ratatui_ruby/tui/canvas_factories.rbs +14 -0
  151. data/sig/ratatui_ruby/tui/core.rbs +14 -0
  152. data/sig/ratatui_ruby/tui/layout_factories.rbs +19 -0
  153. data/sig/ratatui_ruby/tui/state_factories.rbs +12 -0
  154. data/sig/ratatui_ruby/tui/style_factories.rbs +10 -0
  155. data/sig/ratatui_ruby/tui/text_factories.rbs +14 -0
  156. data/sig/ratatui_ruby/tui/widget_factories.rbs +39 -0
  157. data/sig/ratatui_ruby/tui.rbs +19 -0
  158. data/tasks/autodoc.rake +1 -35
  159. data/tasks/bump/changelog.rb +8 -0
  160. data/tasks/bump/ruby_gem.rb +12 -0
  161. data/tasks/bump/unreleased_section.rb +16 -0
  162. data/tasks/sourcehut.rake +4 -1
  163. metadata +64 -15
  164. data/doc/contributors/dwim_dx.md +0 -366
  165. data/doc/contributors/examples_audit/p1_high.md +0 -21
  166. data/doc/contributors/examples_audit/p2_moderate.md +0 -81
  167. data/doc/contributors/examples_audit.md +0 -41
  168. data/doc/images/app_analytics.png +0 -0
  169. data/doc/images/app_custom_widget.png +0 -0
  170. data/doc/images/app_mouse_events.png +0 -0
  171. data/doc/images/widget_table_flex.png +0 -0
  172. data/lib/ratatui_ruby/session/autodoc.rb +0 -482
  173. data/lib/ratatui_ruby/session.rb +0 -178
  174. data/tasks/autodoc/inventory.rb +0 -63
  175. data/tasks/autodoc/notice.rb +0 -26
  176. data/tasks/autodoc/rbs.rb +0 -38
  177. data/tasks/autodoc/rdoc.rb +0 -45
@@ -0,0 +1,39 @@
1
+ # SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
2
+ # SPDX-License-Identifier: AGPL-3.0-or-later
3
+
4
+ module RatatuiRuby
5
+ class TUI
6
+ module WidgetFactories
7
+ def block: (**top) -> Widgets::Block
8
+ def paragraph: (**top) -> Widgets::Paragraph
9
+ def list: (**top) -> Widgets::List
10
+ def list_item: (**top) -> Widgets::ListItem
11
+ def table: (**top) -> Widgets::Table
12
+ def row: (**top) -> Widgets::Row
13
+ def table_row: (**top) -> Widgets::Row
14
+ def table_cell: (**top) -> Widgets::Cell
15
+ def tabs: (**top) -> Widgets::Tabs
16
+ def gauge: (**top) -> Widgets::Gauge
17
+ def line_gauge: (**top) -> Widgets::LineGauge
18
+ def sparkline: (**top) -> Widgets::Sparkline
19
+ def bar_chart: (**top) -> Widgets::BarChart
20
+ def bar: (**top) -> Widgets::BarChart::Bar
21
+ def bar_group: (**top) -> Widgets::BarChart::BarGroup
22
+ def bar_chart_bar: (**top) -> Widgets::BarChart::Bar
23
+ def bar_chart_bar_group: (**top) -> Widgets::BarChart::BarGroup
24
+ def chart: (**top) -> Widgets::Chart
25
+ def dataset: (**top) -> Widgets::Dataset
26
+ def axis: (**top) -> Widgets::Axis
27
+ def scrollbar: (**top) -> Widgets::Scrollbar
28
+ def calendar: (**top) -> Widgets::Calendar
29
+ def canvas: (**top) -> Widgets::Canvas
30
+ def clear: (**top) -> Widgets::Clear
31
+ def cursor: (**top) -> Widgets::Cursor
32
+ def overlay: (**top) -> Widgets::Overlay
33
+ def center: (**top) -> Widgets::Center
34
+ def ratatui_logo: (**top) -> Widgets::RatatuiLogo
35
+ def ratatui_mascot: (**top) -> Widgets::RatatuiMascot
36
+ def shape_label: (**top) -> Widgets::Shape::Label
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ # SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
2
+ # SPDX-License-Identifier: AGPL-3.0-or-later
3
+
4
+ module RatatuiRuby
5
+ # Terminal User Interface facade providing a concise DSL for building TUI applications.
6
+ #
7
+ # Combines all factory mixins to provide convenient access to widgets, layouts,
8
+ # styles, and terminal operations without verbose class name qualification.
9
+ class TUI
10
+ include Core
11
+ include LayoutFactories
12
+ include StyleFactories
13
+ include WidgetFactories
14
+ include TextFactories
15
+ include StateFactories
16
+ include CanvasFactories
17
+ include BufferFactories
18
+ end
19
+ end
data/tasks/autodoc.rake CHANGED
@@ -3,45 +3,11 @@
3
3
  # SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
4
4
  # SPDX-License-Identifier: AGPL-3.0-or-later
5
5
 
6
- require_relative "autodoc/inventory"
7
- require_relative "autodoc/notice"
8
- require_relative "autodoc/rbs"
9
- require_relative "autodoc/rdoc"
10
6
  require_relative "autodoc/examples"
11
7
 
12
8
  namespace :autodoc do
13
9
  desc "Update all automatically generated documentation"
14
- task all: [:rbs, :rdoc, :examples]
15
-
16
- desc "Update all automatically generated RBS signatures"
17
- task rbs: ["rbs:session"]
18
-
19
- desc "Update all automatically generated RDoc files"
20
- task rdoc: ["rdoc:session"]
21
-
22
- namespace :rbs do
23
- desc "Generate RBS for RatatuiRuby::Session"
24
- task :session do
25
- require_relative "../lib/ratatui_ruby"
26
-
27
- Autodoc::Rbs.new(
28
- path: File.expand_path("../sig/ratatui_ruby/session.rbs", __dir__),
29
- notice: Autodoc::Notice.new("autodoc:rbs:session")
30
- ).write(Autodoc::Inventory.new)
31
- end
32
- end
33
-
34
- namespace :rdoc do
35
- desc "Generate RDoc autodoc for RatatuiRuby::Session"
36
- task :session do
37
- require_relative "../lib/ratatui_ruby"
38
-
39
- Autodoc::Rdoc.new(
40
- path: File.expand_path("../lib/ratatui_ruby/session/autodoc.rb", __dir__),
41
- notice: Autodoc::Notice.new("autodoc:rdoc:session")
42
- ).write(Autodoc::Inventory.new)
43
- end
44
- end
10
+ task all: [:examples]
45
11
 
46
12
  desc "Sync code snippets in example READMEs with source files"
47
13
  task :examples do
@@ -34,4 +34,12 @@ class Changelog
34
34
  File.write(@path, "#{header}#{UnreleasedSection.fresh}\n\n#{history}\n#{links}")
35
35
  nil
36
36
  end
37
+
38
+ def commit_message(version)
39
+ content = File.read(@path)
40
+ unreleased = UnreleasedSection.parse(content)
41
+ return nil unless unreleased
42
+
43
+ "chore: release v#{version}\n\n#{unreleased.commit_body}"
44
+ end
37
45
  end
@@ -17,19 +17,31 @@ class RubyGem
17
17
 
18
18
  def bump(segment)
19
19
  target = version.next(segment)
20
+ commit_message = @changelog.commit_message(target)
20
21
 
21
22
  puts "Bumping #{segment}: #{version} -> #{target}"
22
23
  @changelog.release(target)
23
24
  @manifests.each { |manifest| manifest.write(target) }
24
25
  @lockfile.refresh
26
+
27
+ puts_commit_message(commit_message)
25
28
  end
26
29
 
27
30
  def set(version_string)
28
31
  target = SemVer.parse(version_string)
32
+ commit_message = @changelog.commit_message(target)
29
33
 
30
34
  puts "Setting version: #{version} -> #{target}"
31
35
  @changelog.release(target)
32
36
  @manifests.each { |manifest| manifest.write(target) }
33
37
  @lockfile.refresh
38
+
39
+ puts_commit_message(commit_message)
40
+ end
41
+
42
+ private def puts_commit_message(message)
43
+ puts "=" * 80
44
+ puts message
45
+ puts "=" * 80
34
46
  end
35
47
  end
@@ -4,6 +4,7 @@
4
4
  # SPDX-License-Identifier: AGPL-3.0-or-later
5
5
 
6
6
  require "date"
7
+ require "rdoc"
7
8
 
8
9
  # UnreleasedSection manages the [Unreleased] section of the changelog.
9
10
  class UnreleasedSection
@@ -35,4 +36,19 @@ class UnreleasedSection
35
36
  def to_s
36
37
  @content
37
38
  end
39
+
40
+ def commit_body
41
+ formatter = Class.new { include RDoc::Text }.new
42
+ @content
43
+ .sub(/^## \[Unreleased\].*$/, "")
44
+ .gsub(/^### (Added|Changed|Fixed|Removed)\n*$/, "")
45
+ .gsub(/^- \*\*([^*]+)\*\*:/, '\1:')
46
+ .gsub(/`([^`]+)`/, '\1')
47
+ .strip
48
+ .lines
49
+ .map { |line| line.gsub(/^- /, "").strip }
50
+ .reject(&:empty?)
51
+ .map { |line| formatter.wrap(line, 72) }
52
+ .join("\n\n")
53
+ end
38
54
  end
data/tasks/sourcehut.rake CHANGED
@@ -65,7 +65,10 @@ namespace :sourcehut do
65
65
  # This renders a commit SHA that can be pushed to a branch head
66
66
  commit_sha = `git rev-parse #{tag_name}^{}`.strip
67
67
 
68
- # Push the commit to stable branch
68
+ # Update local stable branch to match
69
+ sh "git branch -f stable #{commit_sha}"
70
+
71
+ # Push the commit to remote stable branch
69
72
  # This creates 'stable' if it doesn't exist, or fast-forwards it.
70
73
  sh "git push origin #{commit_sha}:stable"
71
74
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratatui_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kerrick Long
@@ -107,24 +107,23 @@ files:
107
107
  - Rakefile
108
108
  - doc/application_architecture.md
109
109
  - doc/application_testing.md
110
+ - doc/async.md
111
+ - doc/contributors/architectural_overhaul/chat_conversations.md
112
+ - doc/contributors/architectural_overhaul/implementation_plan.md
113
+ - doc/contributors/architectural_overhaul/task.md
110
114
  - doc/contributors/design.md
111
115
  - doc/contributors/design/ruby_frontend.md
112
116
  - doc/contributors/design/rust_backend.md
113
117
  - doc/contributors/developing_examples.md
114
118
  - doc/contributors/documentation_style.md
115
- - doc/contributors/dwim_dx.md
116
- - doc/contributors/examples_audit.md
117
- - doc/contributors/examples_audit/p1_high.md
118
- - doc/contributors/examples_audit/p2_moderate.md
119
119
  - doc/contributors/index.md
120
+ - doc/contributors/v1.0.0_blockers.md
120
121
  - doc/custom.css
122
+ - doc/debugging.md
121
123
  - doc/event_handling.md
122
124
  - doc/images/app_all_events.png
123
- - doc/images/app_analytics.png
124
125
  - doc/images/app_color_picker.png
125
- - doc/images/app_custom_widget.png
126
126
  - doc/images/app_login_form.png
127
- - doc/images/app_mouse_events.png
128
127
  - doc/images/app_stateful_interaction.png
129
128
  - doc/images/verify_quickstart_dsl.png
130
129
  - doc/images/verify_quickstart_layout.png
@@ -155,13 +154,14 @@ files:
155
154
  - doc/images/widget_sparkline_demo.png
156
155
  - doc/images/widget_style_colors.png
157
156
  - doc/images/widget_table_demo.png
158
- - doc/images/widget_table_flex.png
159
157
  - doc/images/widget_tabs_demo.png
160
158
  - doc/images/widget_text_width.png
161
159
  - doc/index.md
162
160
  - doc/interactive_design.md
163
161
  - doc/quickstart.md
164
162
  - doc/terminal_limitations.md
163
+ - doc/v0.7.0_migration.md
164
+ - doc/why.md
165
165
  - examples/app_all_events/README.md
166
166
  - examples/app_all_events/app.rb
167
167
  - examples/app_all_events/model/app_model.rb
@@ -226,6 +226,7 @@ files:
226
226
  - examples/widget_list_demo/app.rb
227
227
  - examples/widget_map_demo/README.md
228
228
  - examples/widget_map_demo/app.rb
229
+ - examples/widget_overlay_demo/README.md
229
230
  - examples/widget_overlay_demo/app.rb
230
231
  - examples/widget_popup_demo/README.md
231
232
  - examples/widget_popup_demo/app.rb
@@ -293,6 +294,8 @@ files:
293
294
  - ext/ratatui_ruby/src/widgets/table_state.rs
294
295
  - ext/ratatui_ruby/src/widgets/tabs.rs
295
296
  - lib/ratatui_ruby.rb
297
+ - lib/ratatui_ruby/buffer.rb
298
+ - lib/ratatui_ruby/buffer/cell.rb
296
299
  - lib/ratatui_ruby/cell.rb
297
300
  - lib/ratatui_ruby/event.rb
298
301
  - lib/ratatui_ruby/event/focus_gained.rb
@@ -308,6 +311,10 @@ files:
308
311
  - lib/ratatui_ruby/event/paste.rb
309
312
  - lib/ratatui_ruby/event/resize.rb
310
313
  - lib/ratatui_ruby/frame.rb
314
+ - lib/ratatui_ruby/layout.rb
315
+ - lib/ratatui_ruby/layout/constraint.rb
316
+ - lib/ratatui_ruby/layout/layout.rb
317
+ - lib/ratatui_ruby/layout/rect.rb
311
318
  - lib/ratatui_ruby/list_state.rb
312
319
  - lib/ratatui_ruby/schema/bar_chart.rb
313
320
  - lib/ratatui_ruby/schema/bar_chart/bar.rb
@@ -331,6 +338,7 @@ files:
331
338
  - lib/ratatui_ruby/schema/ratatui_logo.rb
332
339
  - lib/ratatui_ruby/schema/ratatui_mascot.rb
333
340
  - lib/ratatui_ruby/schema/rect.rb
341
+ - lib/ratatui_ruby/schema/row.rb
334
342
  - lib/ratatui_ruby/schema/scrollbar.rb
335
343
  - lib/ratatui_ruby/schema/shape/label.rb
336
344
  - lib/ratatui_ruby/schema/sparkline.rb
@@ -339,8 +347,8 @@ files:
339
347
  - lib/ratatui_ruby/schema/tabs.rb
340
348
  - lib/ratatui_ruby/schema/text.rb
341
349
  - lib/ratatui_ruby/scrollbar_state.rb
342
- - lib/ratatui_ruby/session.rb
343
- - lib/ratatui_ruby/session/autodoc.rb
350
+ - lib/ratatui_ruby/style.rb
351
+ - lib/ratatui_ruby/style/style.rb
344
352
  - lib/ratatui_ruby/table_state.rb
345
353
  - lib/ratatui_ruby/test_helper.rb
346
354
  - lib/ratatui_ruby/test_helper/event_injection.rb
@@ -348,7 +356,42 @@ files:
348
356
  - lib/ratatui_ruby/test_helper/style_assertions.rb
349
357
  - lib/ratatui_ruby/test_helper/terminal.rb
350
358
  - lib/ratatui_ruby/test_helper/test_doubles.rb
359
+ - lib/ratatui_ruby/tui.rb
360
+ - lib/ratatui_ruby/tui/buffer_factories.rb
361
+ - lib/ratatui_ruby/tui/canvas_factories.rb
362
+ - lib/ratatui_ruby/tui/core.rb
363
+ - lib/ratatui_ruby/tui/layout_factories.rb
364
+ - lib/ratatui_ruby/tui/state_factories.rb
365
+ - lib/ratatui_ruby/tui/style_factories.rb
366
+ - lib/ratatui_ruby/tui/text_factories.rb
367
+ - lib/ratatui_ruby/tui/widget_factories.rb
351
368
  - lib/ratatui_ruby/version.rb
369
+ - lib/ratatui_ruby/widgets.rb
370
+ - lib/ratatui_ruby/widgets/bar_chart.rb
371
+ - lib/ratatui_ruby/widgets/bar_chart/bar.rb
372
+ - lib/ratatui_ruby/widgets/bar_chart/bar_group.rb
373
+ - lib/ratatui_ruby/widgets/block.rb
374
+ - lib/ratatui_ruby/widgets/calendar.rb
375
+ - lib/ratatui_ruby/widgets/canvas.rb
376
+ - lib/ratatui_ruby/widgets/cell.rb
377
+ - lib/ratatui_ruby/widgets/center.rb
378
+ - lib/ratatui_ruby/widgets/chart.rb
379
+ - lib/ratatui_ruby/widgets/clear.rb
380
+ - lib/ratatui_ruby/widgets/cursor.rb
381
+ - lib/ratatui_ruby/widgets/gauge.rb
382
+ - lib/ratatui_ruby/widgets/line_gauge.rb
383
+ - lib/ratatui_ruby/widgets/list.rb
384
+ - lib/ratatui_ruby/widgets/list_item.rb
385
+ - lib/ratatui_ruby/widgets/overlay.rb
386
+ - lib/ratatui_ruby/widgets/paragraph.rb
387
+ - lib/ratatui_ruby/widgets/ratatui_logo.rb
388
+ - lib/ratatui_ruby/widgets/ratatui_mascot.rb
389
+ - lib/ratatui_ruby/widgets/row.rb
390
+ - lib/ratatui_ruby/widgets/scrollbar.rb
391
+ - lib/ratatui_ruby/widgets/shape/label.rb
392
+ - lib/ratatui_ruby/widgets/sparkline.rb
393
+ - lib/ratatui_ruby/widgets/table.rb
394
+ - lib/ratatui_ruby/widgets/tabs.rb
352
395
  - mise.toml
353
396
  - sig/examples/app_all_events/app.rbs
354
397
  - sig/examples/app_all_events/model/event_entry.rbs
@@ -414,6 +457,7 @@ files:
414
457
  - sig/ratatui_ruby/schema/ratatui_logo.rbs
415
458
  - sig/ratatui_ruby/schema/ratatui_mascot.rbs
416
459
  - sig/ratatui_ruby/schema/rect.rbs
460
+ - sig/ratatui_ruby/schema/row.rbs
417
461
  - sig/ratatui_ruby/schema/scrollbar.rbs
418
462
  - sig/ratatui_ruby/schema/sparkline.rbs
419
463
  - sig/ratatui_ruby/schema/style.rbs
@@ -429,15 +473,20 @@ files:
429
473
  - sig/ratatui_ruby/test_helper/style_assertions.rbs
430
474
  - sig/ratatui_ruby/test_helper/terminal.rbs
431
475
  - sig/ratatui_ruby/test_helper/test_doubles.rbs
476
+ - sig/ratatui_ruby/tui.rbs
477
+ - sig/ratatui_ruby/tui/buffer_factories.rbs
478
+ - sig/ratatui_ruby/tui/canvas_factories.rbs
479
+ - sig/ratatui_ruby/tui/core.rbs
480
+ - sig/ratatui_ruby/tui/layout_factories.rbs
481
+ - sig/ratatui_ruby/tui/state_factories.rbs
482
+ - sig/ratatui_ruby/tui/style_factories.rbs
483
+ - sig/ratatui_ruby/tui/text_factories.rbs
484
+ - sig/ratatui_ruby/tui/widget_factories.rbs
432
485
  - sig/ratatui_ruby/version.rbs
433
486
  - tasks/autodoc.rake
434
487
  - tasks/autodoc/examples.rb
435
- - tasks/autodoc/inventory.rb
436
488
  - tasks/autodoc/member.rb
437
489
  - tasks/autodoc/name.rb
438
- - tasks/autodoc/notice.rb
439
- - tasks/autodoc/rbs.rb
440
- - tasks/autodoc/rdoc.rb
441
490
  - tasks/bump.rake
442
491
  - tasks/bump/cargo_lockfile.rb
443
492
  - tasks/bump/changelog.rb