tuile 0.9.0 → 0.10.0

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/DECISIONS.md +1961 -0
  4. data/README.md +31 -24
  5. data/book/04-event-loop.md +86 -0
  6. data/book/05-focus.md +82 -51
  7. data/book/06-theming.md +53 -1
  8. data/book/07-components.md +363 -9
  9. data/book/08-testing.md +21 -8
  10. data/book/09-styled-text.md +132 -0
  11. data/book/README.md +19 -13
  12. data/examples/sampler.rb +435 -20
  13. data/ideas/new-components.md +109 -0
  14. data/ideas/per-component-buffers.md +55 -0
  15. data/lib/tuile/buffer.rb +52 -51
  16. data/lib/tuile/color.rb +4 -10
  17. data/lib/tuile/component/{text_input.rb → abstract_string_field.rb} +113 -20
  18. data/lib/tuile/component/button.rb +25 -21
  19. data/lib/tuile/component/checkbox.rb +133 -0
  20. data/lib/tuile/component/checkbox_group.rb +188 -0
  21. data/lib/tuile/component/combo_box.rb +281 -0
  22. data/lib/tuile/component/has_caption.rb +44 -0
  23. data/lib/tuile/component/has_content.rb +5 -5
  24. data/lib/tuile/component/has_value.rb +64 -0
  25. data/lib/tuile/component/integer_field.rb +135 -0
  26. data/lib/tuile/component/label.rb +13 -10
  27. data/lib/tuile/component/layout.rb +3 -17
  28. data/lib/tuile/component/list.rb +8 -7
  29. data/lib/tuile/component/list_dropdown.rb +106 -0
  30. data/lib/tuile/component/password_field.rb +105 -0
  31. data/lib/tuile/component/popup.rb +10 -14
  32. data/lib/tuile/component/progress_bar.rb +278 -0
  33. data/lib/tuile/component/radio_group.rb +188 -0
  34. data/lib/tuile/component/text_area.rb +189 -65
  35. data/lib/tuile/component/text_field.rb +170 -32
  36. data/lib/tuile/component/text_view.rb +57 -114
  37. data/lib/tuile/component/window.rb +32 -47
  38. data/lib/tuile/component.rb +250 -87
  39. data/lib/tuile/event_queue.rb +14 -17
  40. data/lib/tuile/fake_event_queue.rb +11 -2
  41. data/lib/tuile/fake_screen.rb +4 -5
  42. data/lib/tuile/fraction.rb +6 -10
  43. data/lib/tuile/screen.rb +202 -104
  44. data/lib/tuile/screen_pane.rb +51 -41
  45. data/lib/tuile/styled_string.rb +112 -83
  46. data/lib/tuile/theme.rb +78 -41
  47. data/lib/tuile/version.rb +1 -1
  48. data/sig/tuile.rbs +2043 -614
  49. metadata +18 -7
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tuile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Vysny
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-07-05 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: concurrent-ruby
@@ -114,6 +113,7 @@ extra_rdoc_files: []
114
113
  files:
115
114
  - CHANGELOG.md
116
115
  - CODE_OF_CONDUCT.md
116
+ - DECISIONS.md
117
117
  - LICENSE.txt
118
118
  - README.md
119
119
  - book/01-first-app.md
@@ -124,27 +124,40 @@ files:
124
124
  - book/06-theming.md
125
125
  - book/07-components.md
126
126
  - book/08-testing.md
127
+ - book/09-styled-text.md
127
128
  - book/README.md
128
129
  - examples/file_commander.rb
129
130
  - examples/hello_world.rb
130
131
  - examples/sampler.rb
132
+ - ideas/new-components.md
133
+ - ideas/per-component-buffers.md
131
134
  - lib/tuile.rb
132
135
  - lib/tuile/ansi.rb
133
136
  - lib/tuile/buffer.rb
134
137
  - lib/tuile/color.rb
135
138
  - lib/tuile/component.rb
139
+ - lib/tuile/component/abstract_string_field.rb
136
140
  - lib/tuile/component/button.rb
141
+ - lib/tuile/component/checkbox.rb
142
+ - lib/tuile/component/checkbox_group.rb
143
+ - lib/tuile/component/combo_box.rb
144
+ - lib/tuile/component/has_caption.rb
137
145
  - lib/tuile/component/has_content.rb
146
+ - lib/tuile/component/has_value.rb
138
147
  - lib/tuile/component/info_window.rb
148
+ - lib/tuile/component/integer_field.rb
139
149
  - lib/tuile/component/label.rb
140
150
  - lib/tuile/component/layout.rb
141
151
  - lib/tuile/component/list.rb
152
+ - lib/tuile/component/list_dropdown.rb
142
153
  - lib/tuile/component/log_window.rb
154
+ - lib/tuile/component/password_field.rb
143
155
  - lib/tuile/component/picker_window.rb
144
156
  - lib/tuile/component/popup.rb
157
+ - lib/tuile/component/progress_bar.rb
158
+ - lib/tuile/component/radio_group.rb
145
159
  - lib/tuile/component/text_area.rb
146
160
  - lib/tuile/component/text_field.rb
147
- - lib/tuile/component/text_input.rb
148
161
  - lib/tuile/component/text_view.rb
149
162
  - lib/tuile/component/window.rb
150
163
  - lib/tuile/event_queue.rb
@@ -173,7 +186,6 @@ metadata:
173
186
  homepage_uri: https://github.com/mvysny/tuile
174
187
  changelog_uri: https://github.com/mvysny/tuile/blob/master/CHANGELOG.md
175
188
  rubygems_mfa_required: 'true'
176
- post_install_message:
177
189
  rdoc_options: []
178
190
  require_paths:
179
191
  - lib
@@ -188,8 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
200
  - !ruby/object:Gem::Version
189
201
  version: '0'
190
202
  requirements: []
191
- rubygems_version: 3.5.22
192
- signing_key:
203
+ rubygems_version: 4.0.15
193
204
  specification_version: 4
194
205
  summary: A component-oriented terminal UI toolkit for Ruby.
195
206
  test_files: []