ariadne_view_components 0.0.81 → 0.0.83

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/app/assets/javascripts/ariadne_view_components.js +14 -14
  4. data/app/assets/javascripts/ariadne_view_components.js.br +0 -0
  5. data/app/assets/javascripts/ariadne_view_components.js.gz +0 -0
  6. data/app/assets/javascripts/ariadne_view_components.js.map +1 -1
  7. data/app/assets/stylesheets/ariadne_view_components.css +1 -1
  8. data/app/assets/stylesheets/ariadne_view_components.css.br +0 -0
  9. data/app/assets/stylesheets/ariadne_view_components.css.gz +0 -0
  10. data/app/components/ariadne/behaviors/captionable.rb +1 -1
  11. data/app/components/ariadne/behaviors/tooltipable.rb +1 -1
  12. data/app/components/ariadne/form/group/component.html.erb +0 -2
  13. data/app/components/ariadne/form/group/component.rb +4 -1
  14. data/app/components/ariadne/form/radio_button/component.html.erb +1 -1
  15. data/app/components/ariadne/form/radio_button/component.rb +1 -1
  16. data/app/components/ariadne/form/select/component.html.erb +10 -0
  17. data/app/components/ariadne/form/select/component.rb +81 -0
  18. data/app/components/ariadne/ui/accordion/component.html.erb +7 -0
  19. data/app/components/ariadne/ui/accordion/component.rb +27 -0
  20. data/app/components/ariadne/ui/accordion/component.ts +69 -0
  21. data/app/components/ariadne/ui/accordion/item/component.html.erb +15 -0
  22. data/app/components/ariadne/ui/accordion/item/component.rb +54 -0
  23. data/app/components/ariadne/ui/badge/component.html.erb +1 -1
  24. data/app/components/ariadne/ui/badge/component.rb +0 -1
  25. data/app/components/ariadne/ui/button/component.html.erb +2 -1
  26. data/app/components/ariadne/ui/button/component.rb +48 -10
  27. data/app/components/ariadne/ui/card/component.html.erb +12 -2
  28. data/app/components/ariadne/ui/card/component.rb +21 -2
  29. data/app/components/ariadne/ui/card/header/component.html.erb +3 -4
  30. data/app/components/ariadne/ui/card/header/component.rb +8 -5
  31. data/app/components/ariadne/ui/combobox/component.rb +4 -2
  32. data/app/components/ariadne/ui/combobox/component.ts +27 -11
  33. data/app/components/ariadne/ui/dialog/component.rb +18 -2
  34. data/app/components/ariadne/ui/flash/component.html.erb +11 -11
  35. data/app/components/ariadne/ui/flash/component.rb +30 -12
  36. data/app/components/ariadne/ui/link/component.rb +32 -7
  37. data/app/components/ariadne/ui/list/component.html.erb +8 -1
  38. data/app/components/ariadne/ui/list/component.rb +17 -2
  39. data/app/components/ariadne/ui/popover/component.rb +1 -1
  40. data/app/components/ariadne/ui/typography/component.rb +5 -0
  41. data/app/frontend/controllers/form_validity_controller.ts +32 -0
  42. data/app/lib/ariadne/view_helper.rb +6 -0
  43. data/lib/ariadne/forms/dsl/badge.rb +2 -2
  44. data/lib/ariadne/forms/dsl/button_input.rb +2 -1
  45. data/lib/ariadne/forms/dsl/clipboard_copy_button.rb +34 -0
  46. data/lib/ariadne/forms/dsl/form_object.rb +1 -1
  47. data/lib/ariadne/forms/dsl/input.rb +1 -1
  48. data/lib/ariadne/forms/dsl/input_methods.rb +4 -0
  49. data/lib/ariadne/forms/dsl/select_input.rb +50 -0
  50. data/lib/ariadne/view_components/version.rb +1 -1
  51. metadata +12 -2
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Ariadne
4
+ module Forms
5
+ module Dsl
6
+ # :nodoc:
7
+ class ClipboardCopyButton
8
+ include InputMethods
9
+
10
+ attr_reader :builder, :form, :text, :options
11
+
12
+ def initialize(builder:, form:, **options)
13
+ @builder = builder
14
+ @form = form
15
+ @options = options
16
+
17
+ yield(self) if block_given?
18
+ end
19
+
20
+ def to_component
21
+ Ariadne::UI::ClipboardCopy::Component.new(text: @text, **@options)
22
+ end
23
+
24
+ def type
25
+ :clipboard_copy
26
+ end
27
+
28
+ def input?
29
+ false
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -9,7 +9,7 @@ module Ariadne
9
9
 
10
10
  attr_reader :builder, :form, :id
11
11
 
12
- def initialize(builder:, form:, id: ::Ariadne.generate_id)
12
+ def initialize(builder:, form:, id: ::Ariadne::ViewHelper.generate_id)
13
13
  @builder = builder
14
14
  @form = form
15
15
  @id = id
@@ -108,7 +108,7 @@ module Ariadne
108
108
 
109
109
  @options[:invalid] = "true" if invalid?
110
110
 
111
- @base_id = Ariadne.generate_id
111
+ @base_id = ::Ariadne::ViewHelper.generate_id
112
112
 
113
113
  @ids = {}.tap do |id_map|
114
114
  id_map[:validation] = "validation-#{@base_id}" if supports_validation?
@@ -130,6 +130,10 @@ module Ariadne
130
130
  add_input(ButtonInput.new(builder: builder, form: form, **options, &block))
131
131
  end
132
132
 
133
+ def clipboard_copy_button(**options, &block)
134
+ add_input(ClipboardCopyButton.new(builder: @builder, form: form, **options, &block))
135
+ end
136
+
133
137
  # END button input methods
134
138
 
135
139
  # @private
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module Forms
5
+ module Dsl
6
+ # :nodoc:
7
+ class SelectInput < Input
8
+ SELECT_ARGUMENTS = [:multiple, :include_blank, :include_hidden, :prompt].freeze
9
+
10
+ attr_reader :name, :label, :options, :select_arguments
11
+
12
+ def initialize(name:, label:, **options)
13
+ @name = name
14
+ @label = label
15
+ @options = []
16
+
17
+ @select_arguments = {}.tap do |select_args|
18
+ SELECT_ARGUMENTS.each do |select_arg|
19
+ select_args[select_arg] = options.delete(select_arg)
20
+ end
21
+ end
22
+
23
+ super(**options)
24
+
25
+ yield(self) if block_given?
26
+ end
27
+
28
+ def multiple?
29
+ @select_arguments.fetch(:multiple, false)
30
+ end
31
+
32
+ def to_component
33
+ Ariadne::Form::Select::Component.new(name:, label:, **@options)
34
+ end
35
+
36
+ # :nocov:
37
+ def type
38
+ :select_list
39
+ end
40
+ # :nocov:
41
+
42
+ # :nocov:
43
+ def focusable?
44
+ true
45
+ end
46
+ # :nocov:
47
+ end
48
+ end
49
+ end
50
+ end
@@ -3,6 +3,6 @@
3
3
  # :nocov:
4
4
  module Ariadne
5
5
  module ViewComponents
6
- VERSION = "0.0.81"
6
+ VERSION = "0.0.83"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ariadne_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.81
4
+ version: 0.0.83
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-12 00:00:00.000000000 Z
11
+ date: 2024-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tailwind_merge
@@ -151,6 +151,8 @@ files:
151
151
  - app/components/ariadne/form/radio_button/component.rb
152
152
  - app/components/ariadne/form/radio_button_group/component.html.erb
153
153
  - app/components/ariadne/form/radio_button_group/component.rb
154
+ - app/components/ariadne/form/select/component.html.erb
155
+ - app/components/ariadne/form/select/component.rb
154
156
  - app/components/ariadne/form/separator/component.html.erb
155
157
  - app/components/ariadne/form/separator/component.rb
156
158
  - app/components/ariadne/form/text_field/component.html.erb
@@ -174,6 +176,11 @@ files:
174
176
  - app/components/ariadne/turbo/frame/component.rb
175
177
  - app/components/ariadne/turbo/stream_action/component.html.erb
176
178
  - app/components/ariadne/turbo/stream_action/component.rb
179
+ - app/components/ariadne/ui/accordion/component.html.erb
180
+ - app/components/ariadne/ui/accordion/component.rb
181
+ - app/components/ariadne/ui/accordion/component.ts
182
+ - app/components/ariadne/ui/accordion/item/component.html.erb
183
+ - app/components/ariadne/ui/accordion/item/component.rb
177
184
  - app/components/ariadne/ui/badge/component.html.erb
178
185
  - app/components/ariadne/ui/badge/component.rb
179
186
  - app/components/ariadne/ui/blankslate/component.html.erb
@@ -234,6 +241,7 @@ files:
234
241
  - app/frontend/ariadne/stimulus_app.ts
235
242
  - app/frontend/ariadne/theme.ts
236
243
  - app/frontend/controllers/form_autosubmit_controller.ts
244
+ - app/frontend/controllers/form_validity_controller.ts
237
245
  - app/frontend/entrypoints/application.ts
238
246
  - app/frontend/stylesheets/ariadne_view_components.css
239
247
  - app/frontend/stylesheets/scrollbar.css
@@ -255,6 +263,7 @@ files:
255
263
  - lib/ariadne/forms/builder.rb
256
264
  - lib/ariadne/forms/dsl/badge.rb
257
265
  - lib/ariadne/forms/dsl/button_input.rb
266
+ - lib/ariadne/forms/dsl/clipboard_copy_button.rb
258
267
  - lib/ariadne/forms/dsl/form_object.rb
259
268
  - lib/ariadne/forms/dsl/form_reference_input.rb
260
269
  - lib/ariadne/forms/dsl/hidden_input.rb
@@ -263,6 +272,7 @@ files:
263
272
  - lib/ariadne/forms/dsl/input_methods.rb
264
273
  - lib/ariadne/forms/dsl/radio_button_group_input.rb
265
274
  - lib/ariadne/forms/dsl/radio_button_input.rb
275
+ - lib/ariadne/forms/dsl/select_input.rb
266
276
  - lib/ariadne/forms/dsl/submit_button_input.rb
267
277
  - lib/ariadne/forms/dsl/text_field_input.rb
268
278
  - lib/ariadne/forms/utils.rb