plutonium 0.15.0 → 0.15.2

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/views/resource/_interactive_action_form.html.erb +1 -0
  3. data/app/views/resource/{interactive_resource_collection_action.html.erb → interactive_bulk_action.html.erb} +1 -1
  4. data/app/views/resource/interactive_record_action.html.erb +1 -0
  5. data/app/views/resource/{interactive_resource_record_action.html.erb → interactive_resource_action.html.erb} +1 -1
  6. data/lib/plutonium/action/base.rb +6 -3
  7. data/lib/plutonium/action/interactive.rb +16 -9
  8. data/lib/plutonium/definition/base.rb +8 -1
  9. data/lib/plutonium/definition/sorting.rb +15 -0
  10. data/lib/plutonium/interaction/README.md +34 -1
  11. data/lib/plutonium/interaction/base.rb +38 -7
  12. data/lib/plutonium/interaction/concerns/presentable.rb +24 -12
  13. data/lib/plutonium/interaction/outcome.rb +77 -55
  14. data/lib/plutonium/interaction/response/base.rb +3 -1
  15. data/lib/plutonium/interaction/response/failure.rb +18 -0
  16. data/lib/plutonium/interaction/response/file.rb +20 -0
  17. data/lib/plutonium/interaction/response/redirect.rb +1 -11
  18. data/lib/plutonium/interaction/response/render.rb +1 -9
  19. data/lib/plutonium/resource/controllers/authorizable.rb +29 -5
  20. data/lib/plutonium/resource/controllers/interactive_actions.rb +171 -130
  21. data/lib/plutonium/resource/controllers/queryable.rb +2 -2
  22. data/lib/plutonium/resource/interaction.rb +1 -3
  23. data/lib/plutonium/resource/query_object.rb +2 -2
  24. data/lib/plutonium/routing/mapper_extensions.rb +9 -9
  25. data/lib/plutonium/ui/action_button.rb +4 -3
  26. data/lib/plutonium/ui/component/methods.rb +1 -0
  27. data/lib/plutonium/ui/display/theme.rb +4 -3
  28. data/lib/plutonium/ui/form/interaction.rb +35 -0
  29. data/lib/plutonium/ui/form/resource.rb +1 -1
  30. data/lib/plutonium/ui/page/interactive_action.rb +23 -0
  31. data/lib/plutonium/ui/table/components/search_bar.rb +1 -1
  32. data/lib/plutonium/ui/table/display_theme.rb +2 -2
  33. data/lib/plutonium/ui/table/resource.rb +11 -5
  34. data/lib/plutonium/version.rb +1 -1
  35. data/lib/plutonium.rb +1 -0
  36. metadata +11 -21
  37. data/app/views/resource/_interactive_resource_action_form.html.erb +0 -45
  38. data/app/views/resource/interactive_resource_recordless_action.html.erb +0 -5
  39. data/gemfiles/rails_7.gemfile.lock +0 -339
@@ -19,7 +19,7 @@ module Plutonium
19
19
  ) do
20
20
  search_query = current_query_object.search_query
21
21
  query_params = resource_query_params
22
- render Phlexi::Form(:q, attributes: {data: {controller: "form", turbo_frame: nil}}) {
22
+ render Phlexi::Form(:q, attributes: {class!: nil, data: {controller: "form", turbo_frame: nil}}) {
23
23
  div(class: "relative") do
24
24
  div(class: "absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none") do
25
25
  svg(
@@ -6,13 +6,13 @@ module Plutonium
6
6
  class DisplayTheme < Phlexi::Table::DisplayTheme
7
7
  def self.theme
8
8
  super.merge({
9
- string: "max-h-[150px] overflow-y-auto",
9
+ value_wrapper: "max-h-[150px] overflow-y-auto",
10
10
  prefixed_icon: "w-4 h-4 mr-1",
11
11
  link: "text-primary-600 dark:text-primary-500",
12
12
  color: "flex items-center",
13
13
  color_indicator: "w-10 h-10 rounded-full mr-2",
14
14
  email: "flex items-center text-primary-600 dark:text-primary-500 whitespace-nowrap",
15
- json: "max-h-[150px] overflow-y-auto whitespace-pre font-mono shadow-inner p-4"
15
+ json: " whitespace-pre font-mono shadow-inner p-4"
16
16
  })
17
17
  end
18
18
  end
@@ -72,16 +72,22 @@ module Plutonium
72
72
  record = wrapped_object.unwrapped
73
73
  policy = policy_for(record:)
74
74
 
75
- div(class: "flex space-x-2") {
75
+ div(class: "flex space-x-2") do
76
76
  resource_definition.defined_actions
77
77
  .select { |k, a| a.collection_record_action? && policy.allowed_to?(:"#{k}?") }
78
78
  .values
79
- .each { |action|
80
- url = resource_url_for(record, *action.route_options.url_args, **action.route_options.url_options)
79
+ .each do |action|
80
+ # TODO: extract this
81
+ url = case action.route_options.url_resolver
82
+ when :resource_url_for
83
+ resource_url_for(record, *action.route_options.url_args, **action.route_options.url_options)
84
+ else
85
+ raise NotImplementedError, "url_resolver: #{action.route_options.url_resolver}"
86
+ end
81
87
 
82
88
  ActionButton(action, url:, variant: :table)
83
- }
84
- }
89
+ end
90
+ end
85
91
  end
86
92
  end
87
93
  end
@@ -1,5 +1,5 @@
1
1
  module Plutonium
2
- VERSION = "0.15.0"
2
+ VERSION = "0.15.2"
3
3
  NEXT_MAJOR_VERSION = VERSION.split(".").tap { |v|
4
4
  v[1] = v[1].to_i + 1
5
5
  v[2] = 0
data/lib/plutonium.rb CHANGED
@@ -26,6 +26,7 @@ module Plutonium
26
26
  loader.ignore("#{__dir__}/generators")
27
27
  loader.ignore("#{__dir__}/plutonium/railtie.rb")
28
28
  loader.inflector.inflect("ui" => "UI")
29
+ loader.inflector.inflect("dsl" => "DSL")
29
30
  loader.enable_reloading if defined?(Rails.env) && Rails.env.development?
30
31
  loader.setup
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plutonium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Froelich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-22 00:00:00.000000000 Z
11
+ date: 2024-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '3.8'
61
- - !ruby/object:Gem::Dependency
62
- name: active_interaction
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '5.3'
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '5.3'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: pagy
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -985,7 +971,7 @@ files:
985
971
  - app/views/plutonium/_resource_header.html copy.erb
986
972
  - app/views/plutonium/_resource_header.html.erb
987
973
  - app/views/plutonium/_resource_sidebar.html.erb
988
- - app/views/resource/_interactive_resource_action_form.html.erb
974
+ - app/views/resource/_interactive_action_form.html.erb
989
975
  - app/views/resource/_metric_card.html.erb
990
976
  - app/views/resource/_resource_details.html.erb
991
977
  - app/views/resource/_resource_details.rabl
@@ -995,9 +981,9 @@ files:
995
981
  - app/views/resource/errors.rabl
996
982
  - app/views/resource/index.html.erb
997
983
  - app/views/resource/index.rabl
998
- - app/views/resource/interactive_resource_collection_action.html.erb
999
- - app/views/resource/interactive_resource_record_action.html.erb
1000
- - app/views/resource/interactive_resource_recordless_action.html.erb
984
+ - app/views/resource/interactive_bulk_action.html.erb
985
+ - app/views/resource/interactive_record_action.html.erb
986
+ - app/views/resource/interactive_resource_action.html.erb
1001
987
  - app/views/resource/new.html.erb
1002
988
  - app/views/resource/readme.md
1003
989
  - app/views/resource/show.html.erb
@@ -1049,7 +1035,6 @@ files:
1049
1035
  - esbuild.config.js
1050
1036
  - exe/pug
1051
1037
  - gemfiles/rails_7.gemfile
1052
- - gemfiles/rails_7.gemfile.lock
1053
1038
  - lib/active_model/validations/array_validator.rb
1054
1039
  - lib/active_model/validations/attached_validator.rb
1055
1040
  - lib/active_model/validations/url_validator.rb
@@ -1272,6 +1257,7 @@ files:
1272
1257
  - lib/plutonium/definition/config_attr.rb
1273
1258
  - lib/plutonium/definition/defineable_props.rb
1274
1259
  - lib/plutonium/definition/search.rb
1260
+ - lib/plutonium/definition/sorting.rb
1275
1261
  - lib/plutonium/engine.rb
1276
1262
  - lib/plutonium/engine/validator.rb
1277
1263
  - lib/plutonium/helpers.rb
@@ -1293,6 +1279,8 @@ files:
1293
1279
  - lib/plutonium/interaction/concerns/workflow_dsl.rb
1294
1280
  - lib/plutonium/interaction/outcome.rb
1295
1281
  - lib/plutonium/interaction/response/base.rb
1282
+ - lib/plutonium/interaction/response/failure.rb
1283
+ - lib/plutonium/interaction/response/file.rb
1296
1284
  - lib/plutonium/interaction/response/null.rb
1297
1285
  - lib/plutonium/interaction/response/redirect.rb
1298
1286
  - lib/plutonium/interaction/response/render.rb
@@ -1345,11 +1333,13 @@ files:
1345
1333
  - lib/plutonium/ui/dyna_frame/content.rb
1346
1334
  - lib/plutonium/ui/empty_card.rb
1347
1335
  - lib/plutonium/ui/form/base.rb
1336
+ - lib/plutonium/ui/form/interaction.rb
1348
1337
  - lib/plutonium/ui/form/resource.rb
1349
1338
  - lib/plutonium/ui/form/theme.rb
1350
1339
  - lib/plutonium/ui/page/base.rb
1351
1340
  - lib/plutonium/ui/page/edit.rb
1352
1341
  - lib/plutonium/ui/page/index.rb
1342
+ - lib/plutonium/ui/page/interactive_action.rb
1353
1343
  - lib/plutonium/ui/page/new.rb
1354
1344
  - lib/plutonium/ui/page/show.rb
1355
1345
  - lib/plutonium/ui/page_header.rb
@@ -1,45 +0,0 @@
1
- <%# locals: (interactive_action:) -%>
2
-
3
- <% if current_turbo_frame == 'modal' %>
4
- <%= turbo_frame_tag "modal" do %>
5
- <div class="modal" tabindex="-1" data-controller="modal">
6
- <div class="modal-dialog modal-dialog-scrollable modal-lg">
7
- <%= resource_form_for @interaction, url: "",
8
- as: :interaction,
9
- method: :post,
10
- turbo_frame: :modal do |f| %>
11
- <div class="modal-content">
12
- <div class="modal-header">
13
- <h1 class="modal-title fs-5"><%= interactive_action.name.to_s.titleize %></h1>
14
- <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
15
- </div>
16
- <div class="modal-body">
17
- <div class="container">
18
- <div class="form-errors">
19
- <%= f.error_notification %>
20
- <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
21
- <% f.object.errors.full_messages.each do |message| %>
22
- <%= f.error_notification message: message %>
23
- <% end %>
24
- </div>
25
- </div>
26
- <div class="form-inputs">
27
- <% interactive_action.inputs.values.each do |input| %>
28
- <%= render input.with(form: f, record: @interaction) %>
29
- <% end %>
30
- </div>
31
- </div>
32
- <div class="modal-footer">
33
- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
34
- <%= f.button :submit, interactive_action.label, class: "btn btn-outline-primary" %>
35
- </div>
36
- </div>
37
- <% end %>
38
- </div>
39
- </div>
40
- <% end %>
41
- <% else%>
42
- <%= render_component :panel do %>
43
- <%= render_component :interactive_action_form, interactive_action:, interaction: @interaction %>
44
- <% end %>
45
- <% end %>
@@ -1,5 +0,0 @@
1
- <%= render_component :breadcrumbs, resource_class:, parent: current_parent, resource: resource_record %>
2
-
3
- <%= render_component :dyna_frame_content do %>
4
- <%= render "interactive_resource_action_form", interactive_action: current_interactive_action %>
5
- <% end %>
@@ -1,339 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- plutonium (0.15.0)
5
- action_policy (~> 0.7.0)
6
- active_interaction (~> 5.3)
7
- dry-initializer (~> 3.1)
8
- listen (~> 3.8)
9
- pagy (~> 7.0)
10
- pundit (~> 2.3)
11
- rabl (~> 0.16.1)
12
- rails (>= 7.1, < 8.0)
13
- semantic_range (~> 3.0)
14
- simple_form (~> 5.3)
15
- tty-prompt (~> 0.23.1)
16
- view_component (~> 3)
17
- view_component-form (~> 0.2.6)
18
- zeitwerk
19
-
20
- GEM
21
- remote: https://rubygems.org/
22
- specs:
23
- action_policy (0.7.0)
24
- ruby-next-core (>= 1.0)
25
- actioncable (7.1.3.4)
26
- actionpack (= 7.1.3.4)
27
- activesupport (= 7.1.3.4)
28
- nio4r (~> 2.0)
29
- websocket-driver (>= 0.6.1)
30
- zeitwerk (~> 2.6)
31
- actionmailbox (7.1.3.4)
32
- actionpack (= 7.1.3.4)
33
- activejob (= 7.1.3.4)
34
- activerecord (= 7.1.3.4)
35
- activestorage (= 7.1.3.4)
36
- activesupport (= 7.1.3.4)
37
- mail (>= 2.7.1)
38
- net-imap
39
- net-pop
40
- net-smtp
41
- actionmailer (7.1.3.4)
42
- actionpack (= 7.1.3.4)
43
- actionview (= 7.1.3.4)
44
- activejob (= 7.1.3.4)
45
- activesupport (= 7.1.3.4)
46
- mail (~> 2.5, >= 2.5.4)
47
- net-imap
48
- net-pop
49
- net-smtp
50
- rails-dom-testing (~> 2.2)
51
- actionpack (7.1.3.4)
52
- actionview (= 7.1.3.4)
53
- activesupport (= 7.1.3.4)
54
- nokogiri (>= 1.8.5)
55
- racc
56
- rack (>= 2.2.4)
57
- rack-session (>= 1.0.1)
58
- rack-test (>= 0.6.3)
59
- rails-dom-testing (~> 2.2)
60
- rails-html-sanitizer (~> 1.6)
61
- actiontext (7.1.3.4)
62
- actionpack (= 7.1.3.4)
63
- activerecord (= 7.1.3.4)
64
- activestorage (= 7.1.3.4)
65
- activesupport (= 7.1.3.4)
66
- globalid (>= 0.6.0)
67
- nokogiri (>= 1.8.5)
68
- actionview (7.1.3.4)
69
- activesupport (= 7.1.3.4)
70
- builder (~> 3.1)
71
- erubi (~> 1.11)
72
- rails-dom-testing (~> 2.2)
73
- rails-html-sanitizer (~> 1.6)
74
- active_interaction (5.3.0)
75
- activemodel (>= 5.2, < 8)
76
- activesupport (>= 5.2, < 8)
77
- activejob (7.1.3.4)
78
- activesupport (= 7.1.3.4)
79
- globalid (>= 0.3.6)
80
- activemodel (7.1.3.4)
81
- activesupport (= 7.1.3.4)
82
- activerecord (7.1.3.4)
83
- activemodel (= 7.1.3.4)
84
- activesupport (= 7.1.3.4)
85
- timeout (>= 0.4.0)
86
- activestorage (7.1.3.4)
87
- actionpack (= 7.1.3.4)
88
- activejob (= 7.1.3.4)
89
- activerecord (= 7.1.3.4)
90
- activesupport (= 7.1.3.4)
91
- marcel (~> 1.0)
92
- activesupport (7.1.3.4)
93
- base64
94
- bigdecimal
95
- concurrent-ruby (~> 1.0, >= 1.0.2)
96
- connection_pool (>= 2.2.5)
97
- drb
98
- i18n (>= 1.6, < 2)
99
- minitest (>= 5.1)
100
- mutex_m
101
- tzinfo (~> 2.0)
102
- ansi (1.5.0)
103
- appraisal (2.5.0)
104
- bundler
105
- rake
106
- thor (>= 0.14.0)
107
- ast (2.4.2)
108
- base64 (0.2.0)
109
- bigdecimal (3.1.8)
110
- brakeman (6.1.2)
111
- racc
112
- builder (3.3.0)
113
- bundle-audit (0.1.0)
114
- bundler-audit
115
- bundler-audit (0.9.1)
116
- bundler (>= 1.2.0, < 3)
117
- thor (~> 1.0)
118
- combustion (1.4.0)
119
- activesupport (>= 3.0.0)
120
- railties (>= 3.0.0)
121
- thor (>= 0.14.6)
122
- concurrent-ruby (1.3.3)
123
- connection_pool (2.4.1)
124
- crass (1.0.6)
125
- date (3.3.4)
126
- drb (2.2.1)
127
- dry-initializer (3.1.1)
128
- erubi (1.12.0)
129
- ffi (1.17.0-x86_64-darwin)
130
- globalid (1.2.1)
131
- activesupport (>= 6.1)
132
- i18n (1.14.5)
133
- concurrent-ruby (~> 1.0)
134
- importmap-rails (2.0.1)
135
- actionpack (>= 6.0.0)
136
- activesupport (>= 6.0.0)
137
- railties (>= 6.0.0)
138
- io-console (0.7.2)
139
- irb (1.13.1)
140
- rdoc (>= 4.0.0)
141
- reline (>= 0.4.2)
142
- json (2.7.2)
143
- language_server-protocol (3.17.0.3)
144
- lint_roller (1.1.0)
145
- listen (3.9.0)
146
- rb-fsevent (~> 0.10, >= 0.10.3)
147
- rb-inotify (~> 0.9, >= 0.9.10)
148
- loofah (2.22.0)
149
- crass (~> 1.0.2)
150
- nokogiri (>= 1.12.0)
151
- mail (2.8.1)
152
- mini_mime (>= 0.1.1)
153
- net-imap
154
- net-pop
155
- net-smtp
156
- marcel (1.0.4)
157
- method_source (1.1.0)
158
- mini_mime (1.1.5)
159
- minitest (5.23.1)
160
- minitest-reporters (1.6.1)
161
- ansi
162
- builder
163
- minitest (>= 5.0)
164
- ruby-progressbar
165
- mutex_m (0.2.0)
166
- net-imap (0.4.12)
167
- date
168
- net-protocol
169
- net-pop (0.1.2)
170
- net-protocol
171
- net-protocol (0.2.2)
172
- timeout
173
- net-smtp (0.5.0)
174
- net-protocol
175
- nio4r (2.7.3)
176
- nokogiri (1.16.5-x86_64-darwin)
177
- racc (~> 1.4)
178
- pagy (7.0.11)
179
- parallel (1.25.1)
180
- parser (3.3.2.0)
181
- ast (~> 2.4.1)
182
- racc
183
- pastel (0.8.0)
184
- tty-color (~> 0.5)
185
- psych (5.1.2)
186
- stringio
187
- puma (6.4.2)
188
- nio4r (~> 2.0)
189
- pundit (2.3.2)
190
- activesupport (>= 3.0.0)
191
- rabl (0.16.1)
192
- activesupport (>= 2.3.14)
193
- racc (1.8.0)
194
- rack (3.1.3)
195
- rack-session (2.0.0)
196
- rack (>= 3.0.0)
197
- rack-test (2.1.0)
198
- rack (>= 1.3)
199
- rackup (2.1.0)
200
- rack (>= 3)
201
- webrick (~> 1.8)
202
- rails (7.1.3.4)
203
- actioncable (= 7.1.3.4)
204
- actionmailbox (= 7.1.3.4)
205
- actionmailer (= 7.1.3.4)
206
- actionpack (= 7.1.3.4)
207
- actiontext (= 7.1.3.4)
208
- actionview (= 7.1.3.4)
209
- activejob (= 7.1.3.4)
210
- activemodel (= 7.1.3.4)
211
- activerecord (= 7.1.3.4)
212
- activestorage (= 7.1.3.4)
213
- activesupport (= 7.1.3.4)
214
- bundler (>= 1.15.0)
215
- railties (= 7.1.3.4)
216
- rails-dom-testing (2.2.0)
217
- activesupport (>= 5.0.0)
218
- minitest
219
- nokogiri (>= 1.6)
220
- rails-html-sanitizer (1.6.0)
221
- loofah (~> 2.21)
222
- nokogiri (~> 1.14)
223
- railties (7.1.3.4)
224
- actionpack (= 7.1.3.4)
225
- activesupport (= 7.1.3.4)
226
- irb
227
- rackup (>= 1.0.0)
228
- rake (>= 12.2)
229
- thor (~> 1.0, >= 1.2.2)
230
- zeitwerk (~> 2.6)
231
- rainbow (3.1.1)
232
- rake (13.2.1)
233
- rb-fsevent (0.11.2)
234
- rb-inotify (0.11.1)
235
- ffi (~> 1.0)
236
- rdoc (6.7.0)
237
- psych (>= 4.0.0)
238
- regexp_parser (2.9.2)
239
- reline (0.5.9)
240
- io-console (~> 0.5)
241
- rexml (3.3.0)
242
- strscan
243
- rubocop (1.63.5)
244
- json (~> 2.3)
245
- language_server-protocol (>= 3.17.0)
246
- parallel (~> 1.10)
247
- parser (>= 3.3.0.2)
248
- rainbow (>= 2.2.2, < 4.0)
249
- regexp_parser (>= 1.8, < 3.0)
250
- rexml (>= 3.2.5, < 4.0)
251
- rubocop-ast (>= 1.31.1, < 2.0)
252
- ruby-progressbar (~> 1.7)
253
- unicode-display_width (>= 2.4.0, < 3.0)
254
- rubocop-ast (1.31.3)
255
- parser (>= 3.3.1.0)
256
- rubocop-performance (1.21.0)
257
- rubocop (>= 1.48.1, < 2.0)
258
- rubocop-ast (>= 1.31.1, < 2.0)
259
- ruby-next-core (1.0.3)
260
- ruby-progressbar (1.13.0)
261
- semantic_range (3.0.0)
262
- simple_form (5.3.1)
263
- actionpack (>= 5.2)
264
- activemodel (>= 5.2)
265
- sqlite3 (1.7.3-x86_64-darwin)
266
- standard (1.36.0)
267
- language_server-protocol (~> 3.17.0.2)
268
- lint_roller (~> 1.0)
269
- rubocop (~> 1.63.0)
270
- standard-custom (~> 1.0.0)
271
- standard-performance (~> 1.4)
272
- standard-custom (1.0.2)
273
- lint_roller (~> 1.0)
274
- rubocop (~> 1.50)
275
- standard-performance (1.4.0)
276
- lint_roller (~> 1.1)
277
- rubocop-performance (~> 1.21.0)
278
- stimulus-rails (1.3.3)
279
- railties (>= 6.0.0)
280
- stringio (3.1.0)
281
- strscan (3.1.0)
282
- thor (1.3.1)
283
- timeout (0.4.1)
284
- tty-color (0.6.0)
285
- tty-cursor (0.7.1)
286
- tty-prompt (0.23.1)
287
- pastel (~> 0.8)
288
- tty-reader (~> 0.8)
289
- tty-reader (0.9.0)
290
- tty-cursor (~> 0.7)
291
- tty-screen (~> 0.8)
292
- wisper (~> 2.0)
293
- tty-screen (0.8.2)
294
- turbo-rails (2.0.5)
295
- actionpack (>= 6.0.0)
296
- activejob (>= 6.0.0)
297
- railties (>= 6.0.0)
298
- tzinfo (2.0.6)
299
- concurrent-ruby (~> 1.0)
300
- unicode-display_width (2.5.0)
301
- view_component (3.12.1)
302
- activesupport (>= 5.2.0, < 8.0)
303
- concurrent-ruby (~> 1.0)
304
- method_source (~> 1.0)
305
- view_component-form (0.2.6)
306
- actionview (>= 6.0.0, < 7.2)
307
- activesupport (>= 6.0.0, < 7.2)
308
- view_component (>= 2.34.0, < 4.0)
309
- zeitwerk (~> 2.5)
310
- webrick (1.8.1)
311
- websocket-driver (0.7.6)
312
- websocket-extensions (>= 0.1.0)
313
- websocket-extensions (0.1.5)
314
- wisper (2.0.1)
315
- zeitwerk (2.6.15)
316
-
317
- PLATFORMS
318
- x86_64-darwin
319
-
320
- DEPENDENCIES
321
- appraisal
322
- brakeman
323
- bundle-audit
324
- combustion
325
- importmap-rails
326
- minitest
327
- minitest-reporters
328
- plutonium!
329
- puma (>= 5.0)
330
- rails (~> 7.1.3, >= 7.1.3.4)
331
- rake
332
- sqlite3 (~> 1.4)
333
- standard
334
- stimulus-rails
335
- turbo-rails
336
- tzinfo-data
337
-
338
- BUNDLED WITH
339
- 2.5.6