tuile 0.9.0 → 0.11.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -36
  3. data/DECISIONS.md +2566 -0
  4. data/README.md +37 -24
  5. data/book/03-layout.md +153 -8
  6. data/book/04-event-loop.md +86 -0
  7. data/book/05-focus.md +84 -51
  8. data/book/06-theming.md +53 -1
  9. data/book/07-components.md +458 -9
  10. data/book/08-testing.md +21 -8
  11. data/book/09-styled-text.md +132 -0
  12. data/book/README.md +22 -14
  13. data/examples/sampler.rb +632 -67
  14. data/ideas/arrow-key-navigation.md +205 -0
  15. data/ideas/new-components.md +118 -0
  16. data/ideas/per-component-buffers.md +55 -0
  17. data/lib/tuile/buffer.rb +52 -51
  18. data/lib/tuile/color.rb +4 -10
  19. data/lib/tuile/component/{text_input.rb → abstract_string_field.rb} +113 -20
  20. data/lib/tuile/component/big_decimal_field.rb +199 -0
  21. data/lib/tuile/component/button.rb +25 -21
  22. data/lib/tuile/component/checkbox.rb +134 -0
  23. data/lib/tuile/component/checkbox_group.rb +188 -0
  24. data/lib/tuile/component/combo_box.rb +263 -0
  25. data/lib/tuile/component/float_field.rb +161 -0
  26. data/lib/tuile/component/has_caption.rb +44 -0
  27. data/lib/tuile/component/has_content.rb +5 -5
  28. data/lib/tuile/component/has_value.rb +64 -0
  29. data/lib/tuile/component/integer_field.rb +135 -0
  30. data/lib/tuile/component/label.rb +13 -10
  31. data/lib/tuile/component/layout/box.rb +316 -0
  32. data/lib/tuile/component/layout/horizontal.rb +40 -0
  33. data/lib/tuile/component/layout/vertical.rb +41 -0
  34. data/lib/tuile/component/layout.rb +149 -15
  35. data/lib/tuile/component/list.rb +8 -7
  36. data/lib/tuile/component/list_dropdown.rb +157 -0
  37. data/lib/tuile/component/password_field.rb +105 -0
  38. data/lib/tuile/component/popup.rb +10 -14
  39. data/lib/tuile/component/progress_bar.rb +278 -0
  40. data/lib/tuile/component/radio_group.rb +188 -0
  41. data/lib/tuile/component/select.rb +251 -0
  42. data/lib/tuile/component/text_area.rb +189 -65
  43. data/lib/tuile/component/text_field.rb +170 -32
  44. data/lib/tuile/component/text_view.rb +57 -114
  45. data/lib/tuile/component/window.rb +32 -47
  46. data/lib/tuile/component.rb +250 -87
  47. data/lib/tuile/event_queue.rb +14 -17
  48. data/lib/tuile/fake_event_queue.rb +11 -2
  49. data/lib/tuile/fake_screen.rb +4 -5
  50. data/lib/tuile/fraction.rb +6 -10
  51. data/lib/tuile/screen.rb +202 -104
  52. data/lib/tuile/screen_pane.rb +51 -41
  53. data/lib/tuile/styled_string.rb +125 -86
  54. data/lib/tuile/theme.rb +78 -41
  55. data/lib/tuile/version.rb +1 -1
  56. data/lib/tuile.rb +4 -0
  57. data/sig/tuile.rbs +2962 -680
  58. metadata +25 -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.11.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,47 @@ 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/arrow-key-navigation.md
133
+ - ideas/new-components.md
134
+ - ideas/per-component-buffers.md
131
135
  - lib/tuile.rb
132
136
  - lib/tuile/ansi.rb
133
137
  - lib/tuile/buffer.rb
134
138
  - lib/tuile/color.rb
135
139
  - lib/tuile/component.rb
140
+ - lib/tuile/component/abstract_string_field.rb
141
+ - lib/tuile/component/big_decimal_field.rb
136
142
  - lib/tuile/component/button.rb
143
+ - lib/tuile/component/checkbox.rb
144
+ - lib/tuile/component/checkbox_group.rb
145
+ - lib/tuile/component/combo_box.rb
146
+ - lib/tuile/component/float_field.rb
147
+ - lib/tuile/component/has_caption.rb
137
148
  - lib/tuile/component/has_content.rb
149
+ - lib/tuile/component/has_value.rb
138
150
  - lib/tuile/component/info_window.rb
151
+ - lib/tuile/component/integer_field.rb
139
152
  - lib/tuile/component/label.rb
140
153
  - lib/tuile/component/layout.rb
154
+ - lib/tuile/component/layout/box.rb
155
+ - lib/tuile/component/layout/horizontal.rb
156
+ - lib/tuile/component/layout/vertical.rb
141
157
  - lib/tuile/component/list.rb
158
+ - lib/tuile/component/list_dropdown.rb
142
159
  - lib/tuile/component/log_window.rb
160
+ - lib/tuile/component/password_field.rb
143
161
  - lib/tuile/component/picker_window.rb
144
162
  - lib/tuile/component/popup.rb
163
+ - lib/tuile/component/progress_bar.rb
164
+ - lib/tuile/component/radio_group.rb
165
+ - lib/tuile/component/select.rb
145
166
  - lib/tuile/component/text_area.rb
146
167
  - lib/tuile/component/text_field.rb
147
- - lib/tuile/component/text_input.rb
148
168
  - lib/tuile/component/text_view.rb
149
169
  - lib/tuile/component/window.rb
150
170
  - lib/tuile/event_queue.rb
@@ -173,7 +193,6 @@ metadata:
173
193
  homepage_uri: https://github.com/mvysny/tuile
174
194
  changelog_uri: https://github.com/mvysny/tuile/blob/master/CHANGELOG.md
175
195
  rubygems_mfa_required: 'true'
176
- post_install_message:
177
196
  rdoc_options: []
178
197
  require_paths:
179
198
  - lib
@@ -188,8 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
207
  - !ruby/object:Gem::Version
189
208
  version: '0'
190
209
  requirements: []
191
- rubygems_version: 3.5.22
192
- signing_key:
210
+ rubygems_version: 4.0.15
193
211
  specification_version: 4
194
212
  summary: A component-oriented terminal UI toolkit for Ruby.
195
213
  test_files: []