ratatui_ruby 0.7.1 → 0.7.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.
- checksums.yaml +4 -4
- data/.builds/ruby-3.2.yml +1 -1
- data/.builds/ruby-3.3.yml +1 -1
- data/.builds/ruby-3.4.yml +1 -1
- data/.builds/ruby-4.0.0.yml +1 -1
- data/AGENTS.md +12 -4
- data/CHANGELOG.md +49 -0
- data/README.md +7 -7
- data/Rakefile +1 -1
- data/doc/{application_architecture.md → concepts/application_architecture.md} +30 -0
- data/doc/{application_testing.md → concepts/application_testing.md} +4 -2
- data/doc/{event_handling.md → concepts/event_handling.md} +1 -1
- data/doc/contributors/auditing/parity.md +233 -0
- data/doc/contributors/developing_examples.md +10 -10
- data/doc/contributors/upstream_requests/tab_rects.md +173 -0
- data/doc/contributors/upstream_requests/title_rects.md +132 -0
- data/doc/contributors/v1.0.0_blockers.md +54 -747
- data/doc/{quickstart.md → getting_started/quickstart.md} +26 -26
- data/doc/{why.md → getting_started/why.md} +1 -1
- data/doc/index.md +23 -9
- data/doc/{terminal_limitations.md → troubleshooting/terminal_limitations.md} +33 -0
- data/doc/troubleshooting/tui_output.md +76 -0
- data/examples/app_all_events/README.md +1 -0
- data/examples/app_all_events/app.rb +2 -0
- data/examples/app_all_events/model/app_model.rb +2 -0
- data/examples/app_all_events/model/event_color_cycle.rb +2 -0
- data/examples/app_all_events/model/event_entry.rb +2 -0
- data/examples/app_all_events/model/msg.rb +2 -0
- data/examples/app_all_events/model/timestamp.rb +2 -0
- data/examples/app_all_events/update.rb +2 -0
- data/examples/app_all_events/view/app_view.rb +2 -0
- data/examples/app_all_events/view/controls_view.rb +2 -0
- data/examples/app_all_events/view/counts_view.rb +2 -0
- data/examples/app_all_events/view/live_view.rb +2 -0
- data/examples/app_all_events/view/log_view.rb +2 -0
- data/examples/app_all_events/view.rb +2 -0
- data/examples/app_color_picker/README.md +2 -0
- data/examples/app_color_picker/app.rb +2 -0
- data/examples/app_color_picker/clipboard.rb +2 -0
- data/examples/app_color_picker/color.rb +2 -0
- data/examples/app_color_picker/controls.rb +2 -0
- data/examples/app_color_picker/copy_dialog.rb +2 -0
- data/examples/app_color_picker/export_pane.rb +2 -0
- data/examples/app_color_picker/harmony.rb +2 -0
- data/examples/app_color_picker/input.rb +2 -0
- data/examples/app_color_picker/main_container.rb +2 -0
- data/examples/app_color_picker/palette.rb +2 -0
- data/examples/app_login_form/README.md +3 -0
- data/examples/app_login_form/app.rb +2 -0
- data/examples/app_stateful_interaction/README.md +2 -0
- data/examples/app_stateful_interaction/app.rb +2 -0
- data/examples/timeout_demo.rb +2 -0
- data/examples/verify_quickstart_dsl/README.md +2 -2
- data/examples/verify_quickstart_dsl/app.rb +2 -0
- data/examples/verify_quickstart_layout/README.md +2 -2
- data/examples/verify_quickstart_layout/app.rb +2 -0
- data/examples/verify_quickstart_lifecycle/README.md +2 -2
- data/examples/verify_quickstart_lifecycle/app.rb +2 -0
- data/examples/verify_readme_usage/app.rb +2 -0
- data/examples/{widget_barchart_demo → widget_barchart}/README.md +5 -3
- data/examples/{widget_barchart_demo → widget_barchart}/app.rb +7 -5
- data/examples/{widget_block_demo → widget_block}/README.md +5 -3
- data/examples/{widget_block_demo → widget_block}/app.rb +6 -4
- data/examples/{widget_box_demo → widget_box}/README.md +7 -4
- data/examples/{widget_box_demo → widget_box}/app.rb +7 -5
- data/examples/{widget_calendar_demo → widget_calendar}/README.md +6 -3
- data/examples/{widget_calendar_demo → widget_calendar}/app.rb +6 -4
- data/examples/{widget_canvas_demo → widget_canvas}/README.md +2 -2
- data/examples/{widget_canvas_demo → widget_canvas}/app.rb +6 -4
- data/examples/{widget_cell_demo → widget_cell}/README.md +6 -3
- data/examples/{widget_cell_demo → widget_cell}/app.rb +7 -5
- data/examples/{widget_center_demo → widget_center}/README.md +2 -2
- data/examples/{widget_center_demo → widget_center}/app.rb +6 -4
- data/examples/{widget_chart_demo → widget_chart}/README.md +7 -4
- data/examples/{widget_chart_demo → widget_chart}/app.rb +7 -5
- data/examples/{widget_gauge_demo → widget_gauge}/README.md +6 -3
- data/examples/{widget_gauge_demo → widget_gauge}/app.rb +7 -5
- data/examples/widget_layout_split/README.md +5 -2
- data/examples/widget_layout_split/app.rb +3 -1
- data/examples/{widget_line_gauge_demo → widget_line_gauge}/README.md +6 -3
- data/examples/{widget_line_gauge_demo → widget_line_gauge}/app.rb +7 -5
- data/examples/{widget_list_demo → widget_list}/README.md +7 -4
- data/examples/{widget_list_demo → widget_list}/app.rb +7 -5
- data/examples/{widget_map_demo → widget_map}/README.md +7 -4
- data/examples/{widget_map_demo → widget_map}/app.rb +4 -2
- data/examples/{widget_overlay_demo → widget_overlay}/README.md +6 -3
- data/examples/{widget_overlay_demo → widget_overlay}/app.rb +5 -3
- data/examples/{widget_popup_demo → widget_popup}/README.md +7 -4
- data/examples/{widget_popup_demo → widget_popup}/app.rb +6 -4
- data/examples/{widget_ratatui_logo_demo → widget_ratatui_logo}/README.md +6 -3
- data/examples/{widget_ratatui_logo_demo → widget_ratatui_logo}/app.rb +8 -6
- data/examples/{widget_ratatui_mascot_demo → widget_ratatui_mascot}/README.md +6 -3
- data/examples/{widget_ratatui_mascot_demo → widget_ratatui_mascot}/app.rb +6 -4
- data/examples/widget_rect/README.md +5 -2
- data/examples/widget_rect/app.rb +2 -0
- data/examples/widget_render/README.md +4 -1
- data/examples/widget_render/app.rb +2 -0
- data/examples/widget_rich_text/README.md +4 -1
- data/examples/widget_rich_text/app.rb +2 -0
- data/examples/widget_scroll_text/README.md +4 -1
- data/examples/widget_scroll_text/app.rb +3 -1
- data/examples/{widget_scrollbar_demo → widget_scrollbar}/README.md +7 -4
- data/examples/{widget_scrollbar_demo → widget_scrollbar}/app.rb +6 -4
- data/examples/{widget_sparkline_demo → widget_sparkline}/README.md +6 -3
- data/examples/{widget_sparkline_demo → widget_sparkline}/app.rb +7 -5
- data/examples/widget_style_colors/README.md +4 -1
- data/examples/widget_style_colors/app.rb +2 -0
- data/examples/{widget_table_demo → widget_table}/README.md +7 -4
- data/examples/{widget_table_demo → widget_table}/app.rb +4 -2
- data/examples/{widget_tabs_demo → widget_tabs}/README.md +6 -3
- data/examples/{widget_tabs_demo → widget_tabs}/app.rb +7 -5
- data/examples/widget_text_width/README.md +5 -2
- data/examples/widget_text_width/app.rb +2 -0
- data/exe/.gitkeep +0 -0
- data/ext/ratatui_ruby/Cargo.lock +1 -1
- data/ext/ratatui_ruby/Cargo.toml +1 -1
- data/ext/ratatui_ruby/extconf.rb +2 -0
- data/ext/ratatui_ruby/src/lib.rs +2 -2
- data/ext/ratatui_ruby/src/rendering.rs +9 -0
- data/ext/ratatui_ruby/src/style.rs +22 -2
- data/ext/ratatui_ruby/src/text.rs +26 -0
- data/ext/ratatui_ruby/src/widgets/barchart.rs +8 -6
- data/ext/ratatui_ruby/src/widgets/chart.rs +31 -4
- data/ext/ratatui_ruby/src/widgets/table.rs +13 -5
- data/ext/ratatui_ruby/src/widgets/tabs.rs +49 -9
- data/lib/ratatui_ruby/buffer/cell.rb +2 -0
- data/lib/ratatui_ruby/buffer.rb +2 -0
- data/lib/ratatui_ruby/cell.rb +2 -0
- data/lib/ratatui_ruby/event/focus_gained.rb +2 -0
- data/lib/ratatui_ruby/event/focus_lost.rb +2 -0
- data/lib/ratatui_ruby/event/key/character.rb +2 -0
- data/lib/ratatui_ruby/event/key/media.rb +2 -0
- data/lib/ratatui_ruby/event/key/modifier.rb +2 -0
- data/lib/ratatui_ruby/event/key/navigation.rb +2 -0
- data/lib/ratatui_ruby/event/key/system.rb +2 -0
- data/lib/ratatui_ruby/event/key.rb +2 -0
- data/lib/ratatui_ruby/event/mouse.rb +2 -0
- data/lib/ratatui_ruby/event/none.rb +2 -0
- data/lib/ratatui_ruby/event/paste.rb +2 -0
- data/lib/ratatui_ruby/event/resize.rb +2 -0
- data/lib/ratatui_ruby/event.rb +2 -0
- data/lib/ratatui_ruby/frame.rb +2 -0
- data/lib/ratatui_ruby/layout/constraint.rb +2 -0
- data/lib/ratatui_ruby/layout/layout.rb +2 -0
- data/lib/ratatui_ruby/layout/rect.rb +2 -0
- data/lib/ratatui_ruby/layout.rb +2 -0
- data/lib/ratatui_ruby/list_state.rb +2 -0
- data/lib/ratatui_ruby/schema/bar_chart/bar.rb +2 -0
- data/lib/ratatui_ruby/schema/bar_chart/bar_group.rb +2 -0
- data/lib/ratatui_ruby/schema/bar_chart.rb +4 -2
- data/lib/ratatui_ruby/schema/block.rb +4 -2
- data/lib/ratatui_ruby/schema/calendar.rb +4 -2
- data/lib/ratatui_ruby/schema/canvas.rb +2 -0
- data/lib/ratatui_ruby/schema/center.rb +2 -0
- data/lib/ratatui_ruby/schema/chart.rb +4 -2
- data/lib/ratatui_ruby/schema/clear.rb +2 -0
- data/lib/ratatui_ruby/schema/constraint.rb +2 -0
- data/lib/ratatui_ruby/schema/cursor.rb +2 -0
- data/lib/ratatui_ruby/schema/draw.rb +2 -0
- data/lib/ratatui_ruby/schema/gauge.rb +4 -2
- data/lib/ratatui_ruby/schema/layout.rb +2 -0
- data/lib/ratatui_ruby/schema/line_gauge.rb +4 -2
- data/lib/ratatui_ruby/schema/list.rb +3 -1
- data/lib/ratatui_ruby/schema/list_item.rb +2 -0
- data/lib/ratatui_ruby/schema/overlay.rb +2 -0
- data/lib/ratatui_ruby/schema/paragraph.rb +2 -0
- data/lib/ratatui_ruby/schema/ratatui_logo.rb +4 -2
- data/lib/ratatui_ruby/schema/ratatui_mascot.rb +4 -2
- data/lib/ratatui_ruby/schema/rect.rb +2 -0
- data/lib/ratatui_ruby/schema/row.rb +2 -0
- data/lib/ratatui_ruby/schema/scrollbar.rb +4 -2
- data/lib/ratatui_ruby/schema/shape/label.rb +2 -0
- data/lib/ratatui_ruby/schema/sparkline.rb +4 -2
- data/lib/ratatui_ruby/schema/style.rb +2 -0
- data/lib/ratatui_ruby/schema/table.rb +2 -0
- data/lib/ratatui_ruby/schema/tabs.rb +4 -2
- data/lib/ratatui_ruby/schema/text.rb +2 -0
- data/lib/ratatui_ruby/scrollbar_state.rb +2 -0
- data/lib/ratatui_ruby/style/style.rb +3 -0
- data/lib/ratatui_ruby/style.rb +2 -0
- data/lib/ratatui_ruby/table_state.rb +2 -0
- data/lib/ratatui_ruby/test_helper/event_injection.rb +2 -0
- data/lib/ratatui_ruby/test_helper/snapshot.rb +62 -21
- data/lib/ratatui_ruby/test_helper/snapshots/axis_labels_alignment.ansi +24 -0
- data/lib/ratatui_ruby/test_helper/snapshots/axis_labels_alignment.txt +24 -0
- data/lib/ratatui_ruby/test_helper/snapshots/barchart_styled_label.ansi +5 -0
- data/lib/ratatui_ruby/test_helper/snapshots/barchart_styled_label.txt +5 -0
- data/lib/ratatui_ruby/test_helper/snapshots/chart_rendering.ansi +24 -0
- data/lib/ratatui_ruby/test_helper/snapshots/chart_rendering.txt +24 -0
- data/lib/ratatui_ruby/test_helper/snapshots/half_block_marker.ansi +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/half_block_marker.txt +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_bottom.ansi +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_bottom.txt +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_left.ansi +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_left.txt +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_right.ansi +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_right.txt +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_top.ansi +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/legend_position_top.txt +12 -0
- data/lib/ratatui_ruby/test_helper/snapshots/my_snapshot.txt +1 -0
- data/lib/ratatui_ruby/test_helper/snapshots/styled_axis_title.ansi +10 -0
- data/lib/ratatui_ruby/test_helper/snapshots/styled_axis_title.txt +10 -0
- data/lib/ratatui_ruby/test_helper/snapshots/styled_dataset_name.ansi +10 -0
- data/lib/ratatui_ruby/test_helper/snapshots/styled_dataset_name.txt +10 -0
- data/lib/ratatui_ruby/test_helper/style_assertions.rb +2 -0
- data/lib/ratatui_ruby/test_helper/terminal.rb +5 -0
- data/lib/ratatui_ruby/test_helper/test_doubles.rb +2 -0
- data/lib/ratatui_ruby/test_helper.rb +6 -4
- data/lib/ratatui_ruby/tui/buffer_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/canvas_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/core.rb +2 -0
- data/lib/ratatui_ruby/tui/layout_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/state_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/style_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/text_factories.rb +2 -0
- data/lib/ratatui_ruby/tui/widget_factories.rb +2 -0
- data/lib/ratatui_ruby/tui.rb +2 -0
- data/lib/ratatui_ruby/version.rb +3 -1
- data/lib/ratatui_ruby/widgets/bar_chart/bar.rb +2 -0
- data/lib/ratatui_ruby/widgets/bar_chart/bar_group.rb +2 -0
- data/lib/ratatui_ruby/widgets/bar_chart.rb +7 -4
- data/lib/ratatui_ruby/widgets/block.rb +46 -2
- data/lib/ratatui_ruby/widgets/calendar.rb +4 -2
- data/lib/ratatui_ruby/widgets/canvas.rb +2 -0
- data/lib/ratatui_ruby/widgets/cell.rb +2 -0
- data/lib/ratatui_ruby/widgets/center.rb +2 -0
- data/lib/ratatui_ruby/widgets/chart.rb +13 -6
- data/lib/ratatui_ruby/widgets/clear.rb +2 -0
- data/lib/ratatui_ruby/widgets/cursor.rb +2 -0
- data/lib/ratatui_ruby/widgets/gauge.rb +4 -2
- data/lib/ratatui_ruby/widgets/line_gauge.rb +4 -2
- data/lib/ratatui_ruby/widgets/list.rb +3 -1
- data/lib/ratatui_ruby/widgets/list_item.rb +2 -0
- data/lib/ratatui_ruby/widgets/overlay.rb +2 -0
- data/lib/ratatui_ruby/widgets/paragraph.rb +2 -0
- data/lib/ratatui_ruby/widgets/ratatui_logo.rb +4 -2
- data/lib/ratatui_ruby/widgets/ratatui_mascot.rb +4 -2
- data/lib/ratatui_ruby/widgets/row.rb +2 -0
- data/lib/ratatui_ruby/widgets/scrollbar.rb +4 -2
- data/lib/ratatui_ruby/widgets/shape/label.rb +2 -0
- data/lib/ratatui_ruby/widgets/sparkline.rb +7 -4
- data/lib/ratatui_ruby/widgets/table.rb +2 -0
- data/lib/ratatui_ruby/widgets/tabs.rb +12 -8
- data/lib/ratatui_ruby/widgets.rb +2 -0
- data/lib/ratatui_ruby.rb +130 -9
- data/tasks/autodoc/examples.rb +2 -0
- data/tasks/autodoc/member.rb +2 -0
- data/tasks/autodoc/name.rb +2 -0
- data/tasks/autodoc.rake +2 -0
- data/tasks/bump/cargo_lockfile.rb +2 -0
- data/tasks/bump/changelog.rb +2 -0
- data/tasks/bump/header.rb +2 -0
- data/tasks/bump/history.rb +2 -0
- data/tasks/bump/links.rb +2 -0
- data/tasks/bump/manifest.rb +2 -0
- data/tasks/bump/ruby_gem.rb +2 -0
- data/tasks/bump/sem_ver.rb +2 -0
- data/tasks/bump/unreleased_section.rb +2 -0
- data/tasks/bump.rake +2 -0
- data/tasks/doc.rake +268 -0
- data/tasks/extension.rake +2 -0
- data/tasks/lint.rake +115 -0
- data/tasks/rdoc_config.rb +18 -4
- data/tasks/sourcehut.rake +2 -0
- data/tasks/terminal_preview/app_screenshot.rb +2 -0
- data/tasks/terminal_preview/crash_report.rb +2 -0
- data/tasks/terminal_preview/example_app.rb +2 -0
- data/tasks/terminal_preview/launcher_script.rb +2 -0
- data/tasks/terminal_preview/preview_collection.rb +2 -0
- data/tasks/terminal_preview/preview_timing.rb +2 -0
- data/tasks/terminal_preview/safety_confirmation.rb +2 -0
- data/tasks/terminal_preview/saved_screenshot.rb +2 -0
- data/tasks/terminal_preview/system_appearance.rb +2 -0
- data/tasks/terminal_preview/terminal_window.rb +2 -0
- data/tasks/terminal_preview/window_id.rb +2 -0
- data/tasks/terminal_preview.rake +2 -0
- data/tasks/test.rake +2 -0
- data/tasks/website/index_page.rb +2 -0
- data/tasks/website/version.rb +12 -2
- data/tasks/website/version_menu.rb +2 -0
- data/tasks/website/versioned_documentation.rb +2 -0
- data/tasks/website/website.rb +2 -0
- data/tasks/website.rake +2 -0
- metadata +97 -75
- data/doc/contributors/architectural_overhaul/chat_conversations.md +0 -4952
- data/doc/contributors/architectural_overhaul/implementation_plan.md +0 -60
- data/doc/contributors/architectural_overhaul/task.md +0 -37
- /data/doc/{async.md → concepts/async.md} +0 -0
- /data/doc/{interactive_design.md → concepts/interactive_design.md} +0 -0
- /data/doc/images/{widget_barchart_demo.png → widget_barchart.png} +0 -0
- /data/doc/images/{widget_block_demo.png → widget_block.png} +0 -0
- /data/doc/images/{widget_box_demo.png → widget_box.png} +0 -0
- /data/doc/images/{widget_calendar_demo.png → widget_calendar.png} +0 -0
- /data/doc/images/{widget_canvas_demo.png → widget_canvas.png} +0 -0
- /data/doc/images/{widget_cell_demo.png → widget_cell.png} +0 -0
- /data/doc/images/{widget_center_demo.png → widget_center.png} +0 -0
- /data/doc/images/{widget_chart_demo.png → widget_chart.png} +0 -0
- /data/doc/images/{widget_gauge_demo.png → widget_gauge.png} +0 -0
- /data/doc/images/{widget_line_gauge_demo.png → widget_line_gauge.png} +0 -0
- /data/doc/images/{widget_list_demo.png → widget_list.png} +0 -0
- /data/doc/images/{widget_map_demo.png → widget_map.png} +0 -0
- /data/doc/images/{widget_overlay_demo.png → widget_overlay.png} +0 -0
- /data/doc/images/{widget_popup_demo.png → widget_popup.png} +0 -0
- /data/doc/images/{widget_ratatui_logo_demo.png → widget_ratatui_logo.png} +0 -0
- /data/doc/images/{widget_ratatui_mascot_demo.png → widget_ratatui_mascot.png} +0 -0
- /data/doc/images/{widget_scrollbar_demo.png → widget_scrollbar.png} +0 -0
- /data/doc/images/{widget_sparkline_demo.png → widget_sparkline.png} +0 -0
- /data/doc/images/{widget_table_demo.png → widget_table.png} +0 -0
- /data/doc/images/{widget_tabs_demo.png → widget_tabs.png} +0 -0
- /data/doc/{v0.7.0_migration.md → migration/v0_7_0.md} +0 -0
- /data/doc/{debugging.md → troubleshooting/debugging.md} +0 -0
data/lib/ratatui_ruby/version.rb
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
# The version of the ratatui_ruby gem.
|
|
8
10
|
# See https://semver.org/spec/v2.0.0.html
|
|
9
|
-
VERSION = "0.7.
|
|
11
|
+
VERSION = "0.7.3"
|
|
10
12
|
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it to compare server loads, sales figures, or any discrete datasets.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_barchart.png}[link:/examples/widget_barchart/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_barchart/app.rb
|
|
23
25
|
#
|
|
24
26
|
# # Grouped Bar Chart
|
|
25
27
|
# BarChart.new(
|
|
@@ -154,9 +156,10 @@ module RatatuiRuby
|
|
|
154
156
|
# [value_style]
|
|
155
157
|
# Style object for values (optional).
|
|
156
158
|
# [bar_set]
|
|
157
|
-
# Hash or Array: Custom characters for
|
|
159
|
+
# Symbol, Hash, or Array: Custom characters for bars.
|
|
160
|
+
# Symbols: <tt>:nine_levels</tt> (default gradient), <tt>:three_levels</tt> (simplified).
|
|
158
161
|
def initialize(data:, bar_width: 3, bar_gap: 1, group_gap: 0, max: nil, style: nil, block: nil, direction: :vertical, label_style: nil, value_style: nil, bar_set: nil)
|
|
159
|
-
if bar_set
|
|
162
|
+
if bar_set && !bar_set.is_a?(Symbol)
|
|
160
163
|
if bar_set.is_a?(Array) && bar_set.size == 9
|
|
161
164
|
# Convert Array to Hash using BAR_KEYS order
|
|
162
165
|
bar_set = BAR_KEYS.zip(bar_set).to_h
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use blocks to define distinct areas. Group related information. Create a visual hierarchy that guides the user's eye.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_box.png}[link:/examples/widget_box/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_box/app.rb
|
|
23
25
|
class Block < Data.define(:title, :titles, :title_alignment, :title_style, :borders, :border_color, :border_style, :border_type, :border_set, :style, :padding, :children)
|
|
24
26
|
##
|
|
25
27
|
# :attr_reader: title
|
|
@@ -187,6 +189,48 @@ module RatatuiRuby
|
|
|
187
189
|
children:
|
|
188
190
|
)
|
|
189
191
|
end
|
|
192
|
+
|
|
193
|
+
# Computes the inner content area given an outer area.
|
|
194
|
+
#
|
|
195
|
+
# This method calculates where content should be placed within a block,
|
|
196
|
+
# accounting for borders and padding. Essential for layout calculations
|
|
197
|
+
# when you need to know the usable space inside a block.
|
|
198
|
+
#
|
|
199
|
+
# === Example
|
|
200
|
+
#
|
|
201
|
+
# block = Block.new(borders: [:all], padding: 1)
|
|
202
|
+
# outer = Layout::Rect.new(x: 0, y: 0, width: 20, height: 10)
|
|
203
|
+
# inner = block.inner(outer)
|
|
204
|
+
# # => Rect(x: 2, y: 2, width: 16, height: 6)
|
|
205
|
+
#
|
|
206
|
+
# [area]
|
|
207
|
+
# The outer Rect to compute the inner area for.
|
|
208
|
+
#
|
|
209
|
+
# Returns a new Rect representing the inner content area.
|
|
210
|
+
def inner(area)
|
|
211
|
+
# Calculate border offsets
|
|
212
|
+
has_border = -> (side) { borders.include?(:all) || borders.include?(side) }
|
|
213
|
+
left_border = has_border.call(:left) ? 1 : 0
|
|
214
|
+
right_border = has_border.call(:right) ? 1 : 0
|
|
215
|
+
top_border = has_border.call(:top) ? 1 : 0
|
|
216
|
+
bottom_border = has_border.call(:bottom) ? 1 : 0
|
|
217
|
+
|
|
218
|
+
# Calculate padding offsets
|
|
219
|
+
if padding.is_a?(Array)
|
|
220
|
+
# [left, right, top, bottom]
|
|
221
|
+
pad_left, pad_right, pad_top, pad_bottom = padding
|
|
222
|
+
else
|
|
223
|
+
pad_left = pad_right = pad_top = pad_bottom = padding
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# Compute inner area
|
|
227
|
+
new_x = area.x + left_border + pad_left
|
|
228
|
+
new_y = area.y + top_border + pad_top
|
|
229
|
+
new_width = [area.width - left_border - right_border - pad_left - pad_right, 0].max
|
|
230
|
+
new_height = [area.height - top_border - bottom_border - pad_top - pad_bottom, 0].max
|
|
231
|
+
|
|
232
|
+
Layout::Rect.new(x: new_x, y: new_y, width: new_width, height: new_height)
|
|
233
|
+
end
|
|
190
234
|
end
|
|
191
235
|
end
|
|
192
236
|
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -14,13 +16,13 @@ module RatatuiRuby
|
|
|
14
16
|
#
|
|
15
17
|
# Use it for date pickers, schedulers, or logs.
|
|
16
18
|
#
|
|
17
|
-
# {rdoc-image:/doc/images/
|
|
19
|
+
# {rdoc-image:/doc/images/widget_calendar.png}[link:/examples/widget_calendar/app_rb.html]
|
|
18
20
|
#
|
|
19
21
|
# === Example
|
|
20
22
|
#
|
|
21
23
|
# Run the interactive demo from the terminal:
|
|
22
24
|
#
|
|
23
|
-
# ruby examples/
|
|
25
|
+
# ruby examples/widget_calendar/app.rb
|
|
24
26
|
class Calendar < Data.define(:year, :month, :events, :default_style, :header_style, :block, :show_weekdays_header, :show_surrounding, :show_month_header)
|
|
25
27
|
##
|
|
26
28
|
# :attr_reader: year
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -54,7 +56,7 @@ module RatatuiRuby
|
|
|
54
56
|
# [name] The name of the dataset.
|
|
55
57
|
# [data] Array of arrays [[x, y], [x, y]] (Floats).
|
|
56
58
|
# [style] The style of the line.
|
|
57
|
-
# [marker] Symbol (<tt>:dot</tt>, <tt>:braille</tt>, <tt>:block</tt>, <tt>:bar</tt>)
|
|
59
|
+
# [marker] Symbol (<tt>:dot</tt>, <tt>:braille</tt>, <tt>:block</tt>, <tt>:bar</tt>, <tt>:half_block</tt>)
|
|
58
60
|
# [graph_type] Symbol (<tt>:line</tt>, <tt>:scatter</tt>)
|
|
59
61
|
class Dataset < Data.define(:name, :data, :style, :marker, :graph_type)
|
|
60
62
|
##
|
|
@@ -79,7 +81,9 @@ module RatatuiRuby
|
|
|
79
81
|
|
|
80
82
|
##
|
|
81
83
|
# :attr_reader: marker
|
|
82
|
-
# Marker type (<tt>:dot</tt>, <tt>:braille</tt>).
|
|
84
|
+
# Marker type (<tt>:dot</tt>, <tt>:braille</tt>, <tt>:block</tt>, <tt>:bar</tt>, <tt>:half_block</tt>).
|
|
85
|
+
#
|
|
86
|
+
# <tt>:half_block</tt> uses ▀ and ▄ characters for higher resolution than <tt>:dot</tt>.
|
|
83
87
|
|
|
84
88
|
##
|
|
85
89
|
# :attr_reader: graph_type
|
|
@@ -106,13 +110,13 @@ module RatatuiRuby
|
|
|
106
110
|
#
|
|
107
111
|
# Use it for analytics, scientific data, or monitoring metrics over time.
|
|
108
112
|
#
|
|
109
|
-
# {rdoc-image:/doc/images/
|
|
113
|
+
# {rdoc-image:/doc/images/widget_chart.png}[link:/examples/widget_chart/app_rb.html]
|
|
110
114
|
#
|
|
111
115
|
# === Example
|
|
112
116
|
#
|
|
113
117
|
# Run the interactive demo from the terminal:
|
|
114
118
|
#
|
|
115
|
-
# ruby examples/
|
|
119
|
+
# ruby examples/widget_chart/app.rb
|
|
116
120
|
class Chart < Data.define(:datasets, :x_axis, :y_axis, :block, :style, :legend_position, :hidden_legend_constraints)
|
|
117
121
|
##
|
|
118
122
|
# :attr_reader: datasets
|
|
@@ -136,7 +140,10 @@ module RatatuiRuby
|
|
|
136
140
|
|
|
137
141
|
##
|
|
138
142
|
# :attr_reader: legend_position
|
|
139
|
-
# Position of the legend
|
|
143
|
+
# Position of the legend.
|
|
144
|
+
#
|
|
145
|
+
# Corners: <tt>:top_left</tt>, <tt>:top_right</tt>, <tt>:bottom_left</tt>, <tt>:bottom_right</tt>.
|
|
146
|
+
# Edges: <tt>:top</tt>, <tt>:bottom</tt>, <tt>:left</tt>, <tt>:right</tt>.
|
|
140
147
|
|
|
141
148
|
##
|
|
142
149
|
# :attr_reader: hidden_legend_constraints
|
|
@@ -149,7 +156,7 @@ module RatatuiRuby
|
|
|
149
156
|
# [y_axis] Y Axis config.
|
|
150
157
|
# [block] Wrapper (optional).
|
|
151
158
|
# [style] Base style (optional).
|
|
152
|
-
# [legend_position] Symbol
|
|
159
|
+
# [legend_position] Symbol — corners: <tt>:top_left</tt>, <tt>:top_right</tt>, <tt>:bottom_left</tt>, <tt>:bottom_right</tt>; edges: <tt>:top</tt>, <tt>:bottom</tt>, <tt>:left</tt>, <tt>:right</tt>.
|
|
153
160
|
# [hidden_legend_constraints] Array of two Constraints [width, height] (optional).
|
|
154
161
|
def initialize(datasets:, x_axis:, y_axis:, block: nil, style: nil, legend_position: nil, hidden_legend_constraints: [])
|
|
155
162
|
super
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it for downloads, installations, or processing jobs.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_gauge.png}[link:/examples/widget_gauge/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_gauge/app.rb
|
|
23
25
|
class Gauge < Data.define(:ratio, :label, :style, :gauge_style, :block, :use_unicode)
|
|
24
26
|
##
|
|
25
27
|
# :attr_reader: ratio
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it when you need to show status without stealing focus or space.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_line_gauge.png}[link:/examples/widget_line_gauge/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_line_gauge/app.rb
|
|
23
25
|
class LineGauge < Data.define(:ratio, :label, :style, :filled_style, :unfilled_style, :block, :filled_symbol, :unfilled_symbol)
|
|
24
26
|
##
|
|
25
27
|
# :attr_reader: ratio
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -14,7 +16,7 @@ module RatatuiRuby
|
|
|
14
16
|
#
|
|
15
17
|
# Use it to build main menus, navigation sidebars, or logs.
|
|
16
18
|
#
|
|
17
|
-
# {rdoc-image:/doc/images/
|
|
19
|
+
# {rdoc-image:/doc/images/widget_list.png}[link:/examples/widget_list/app_rb.html]
|
|
18
20
|
#
|
|
19
21
|
# === Examples
|
|
20
22
|
#
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it for splash screens, about sections, or terminal dashboards.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_ratatui_logo.png}[link:/examples/widget_ratatui_logo/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_ratatui_logo/app.rb
|
|
23
25
|
class RatatuiLogo < Data.define
|
|
24
26
|
##
|
|
25
27
|
# :method: new
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it to add charm to your application, greet users on startup, or as a decorative element in sidebars.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_ratatui_mascot.png}[link:/examples/widget_ratatui_mascot/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_ratatui_mascot/app.rb
|
|
23
25
|
class RatatuiMascot < Data.define(:block)
|
|
24
26
|
##
|
|
25
27
|
# :method: new
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Overlay it on top of lists, paragraphs, or tables to provide spatial awareness.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_scrollbar.png}[link:/examples/widget_scrollbar/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_scrollbar/app.rb
|
|
23
25
|
class Scrollbar < Data.define(
|
|
24
26
|
:content_length,
|
|
25
27
|
:position,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -14,13 +16,13 @@ module RatatuiRuby
|
|
|
14
16
|
#
|
|
15
17
|
# Use it in dashboards, headers, or list items to providing trending data at a glance.
|
|
16
18
|
#
|
|
17
|
-
# {rdoc-image:/doc/images/
|
|
19
|
+
# {rdoc-image:/doc/images/widget_sparkline.png}[link:/examples/widget_sparkline/app_rb.html]
|
|
18
20
|
#
|
|
19
21
|
# === Example
|
|
20
22
|
#
|
|
21
23
|
# Run the interactive demo from the terminal:
|
|
22
24
|
#
|
|
23
|
-
# ruby examples/
|
|
25
|
+
# ruby examples/widget_sparkline/app.rb
|
|
24
26
|
class Sparkline < Data.define(:data, :max, :style, :block, :direction, :absent_value_symbol, :absent_value_style, :bar_set)
|
|
25
27
|
##
|
|
26
28
|
# :attr_reader: data
|
|
@@ -101,9 +103,10 @@ module RatatuiRuby
|
|
|
101
103
|
# [direction] +:left_to_right+ or +:right_to_left+ (default: +:left_to_right+).
|
|
102
104
|
# [absent_value_symbol] Character for absent (nil) values (optional).
|
|
103
105
|
# [absent_value_style] Style for absent (nil) values (optional).
|
|
104
|
-
# [bar_set] Hash or Array of custom characters (optional).
|
|
106
|
+
# [bar_set] Symbol, Hash, or Array of custom characters (optional).
|
|
107
|
+
# Symbols: <tt>:nine_levels</tt> (default gradient), <tt>:three_levels</tt> (simplified).
|
|
105
108
|
def initialize(data:, max: nil, style: nil, block: nil, direction: :left_to_right, absent_value_symbol: nil, absent_value_style: nil, bar_set: nil)
|
|
106
|
-
if bar_set
|
|
109
|
+
if bar_set && !bar_set.is_a?(Symbol)
|
|
107
110
|
if bar_set.is_a?(Array) && bar_set.size == 9
|
|
108
111
|
# Convert Array to Hash using BAR_KEYS order
|
|
109
112
|
bar_set = BAR_KEYS.zip(bar_set).to_h
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
#--
|
|
3
4
|
# SPDX-FileCopyrightText: 2025 Kerrick Long <me@kerricklong.com>
|
|
4
5
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
+
#++
|
|
5
7
|
|
|
6
8
|
module RatatuiRuby
|
|
7
9
|
module Widgets
|
|
@@ -13,13 +15,13 @@ module RatatuiRuby
|
|
|
13
15
|
#
|
|
14
16
|
# Use it at the top of your interface to switch between major modes or contexts.
|
|
15
17
|
#
|
|
16
|
-
# {rdoc-image:/doc/images/
|
|
18
|
+
# {rdoc-image:/doc/images/widget_tabs.png}[link:/examples/widget_tabs/app_rb.html]
|
|
17
19
|
#
|
|
18
20
|
# === Example
|
|
19
21
|
#
|
|
20
22
|
# Run the interactive demo from the terminal:
|
|
21
23
|
#
|
|
22
|
-
# ruby examples/
|
|
24
|
+
# ruby examples/widget_tabs/app.rb
|
|
23
25
|
class Tabs < Data.define(:titles, :selected_index, :block, :divider, :highlight_style, :style, :padding_left, :padding_right)
|
|
24
26
|
##
|
|
25
27
|
# :attr_reader: titles
|
|
@@ -47,11 +49,13 @@ module RatatuiRuby
|
|
|
47
49
|
|
|
48
50
|
##
|
|
49
51
|
# :attr_reader: padding_left
|
|
50
|
-
# Left padding for the tabs area
|
|
52
|
+
# Left padding for the tabs area.
|
|
53
|
+
# Accepts Integer (number of spaces), String, or Line for styled content.
|
|
51
54
|
|
|
52
55
|
##
|
|
53
56
|
# :attr_reader: padding_right
|
|
54
|
-
# Right padding for the tabs area
|
|
57
|
+
# Right padding for the tabs area.
|
|
58
|
+
# Accepts Integer (number of spaces), String, or Line for styled content.
|
|
55
59
|
|
|
56
60
|
# Creates a new Tabs widget.
|
|
57
61
|
#
|
|
@@ -61,8 +65,8 @@ module RatatuiRuby
|
|
|
61
65
|
# [divider] String (optional).
|
|
62
66
|
# [highlight_style] Style (optional).
|
|
63
67
|
# [style] Style (optional).
|
|
64
|
-
# [padding_left] Integer (default: 0).
|
|
65
|
-
# [padding_right] Integer (default: 0).
|
|
68
|
+
# [padding_left] Integer, String, or Line (default: 0).
|
|
69
|
+
# [padding_right] Integer, String, or Line (default: 0).
|
|
66
70
|
def initialize(titles: [], selected_index: 0, block: nil, divider: nil, highlight_style: nil, style: nil, padding_left: 0, padding_right: 0)
|
|
67
71
|
super(
|
|
68
72
|
titles:,
|
|
@@ -71,8 +75,8 @@ module RatatuiRuby
|
|
|
71
75
|
divider:,
|
|
72
76
|
highlight_style:,
|
|
73
77
|
style:,
|
|
74
|
-
padding_left
|
|
75
|
-
padding_right:
|
|
78
|
+
padding_left:,
|
|
79
|
+
padding_right:
|
|
76
80
|
)
|
|
77
81
|
end
|
|
78
82
|
|
data/lib/ratatui_ruby/widgets.rb
CHANGED