sdr_view_components 0.2.0 → 0.2.1

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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sdr_view_components/version.rb +1 -1
  3. data/spec/components/previews/sdr_view_components/elements/alert_component_preview.rb +71 -0
  4. data/spec/components/previews/sdr_view_components/elements/banner_component_preview.rb +58 -0
  5. data/spec/components/previews/sdr_view_components/elements/breadcrumb_nav_component_preview.rb +52 -0
  6. data/spec/components/previews/sdr_view_components/elements/button_component_preview.rb +71 -0
  7. data/spec/components/previews/sdr_view_components/elements/button_form_component_preview.rb +97 -0
  8. data/spec/components/previews/sdr_view_components/elements/button_link_component_preview.rb +81 -0
  9. data/spec/components/previews/sdr_view_components/elements/card_component_preview.rb +41 -0
  10. data/spec/components/previews/sdr_view_components/elements/heading_component_preview.rb +51 -0
  11. data/spec/components/previews/sdr_view_components/elements/horizontal_rule_component_preview/default.html.erb +5 -0
  12. data/spec/components/previews/sdr_view_components/elements/horizontal_rule_component_preview.rb +9 -0
  13. data/spec/components/previews/sdr_view_components/elements/icon_button_component_preview.rb +17 -0
  14. data/spec/components/previews/sdr_view_components/elements/icon_button_link_component_preview.rb +15 -0
  15. data/spec/components/previews/sdr_view_components/elements/modal_component_preview/default.html.erb +9 -0
  16. data/spec/components/previews/sdr_view_components/elements/modal_component_preview/with_header_and_footer.html.erb +19 -0
  17. data/spec/components/previews/sdr_view_components/elements/modal_component_preview/without_size.html.erb +9 -0
  18. data/spec/components/previews/sdr_view_components/elements/modal_component_preview.rb +15 -0
  19. data/spec/components/previews/sdr_view_components/elements/progress_bar_component_preview.rb +97 -0
  20. data/spec/components/previews/sdr_view_components/elements/spinner_component_preview.rb +83 -0
  21. data/spec/components/previews/sdr_view_components/elements/tabs/tab_list_component_preview/default_variant.html.erb +12 -0
  22. data/spec/components/previews/sdr_view_components/elements/tabs/tab_list_component_preview/underline_variant.html.erb +12 -0
  23. data/spec/components/previews/sdr_view_components/elements/tabs/tab_list_component_preview/with_header.html.erb +16 -0
  24. data/spec/components/previews/sdr_view_components/elements/tabs/tab_list_component_preview.rb +16 -0
  25. data/spec/components/previews/sdr_view_components/elements/toast_component_preview.rb +29 -0
  26. data/spec/components/previews/sdr_view_components/elements/tooltip_component_preview/default.html.erb +13 -0
  27. data/spec/components/previews/sdr_view_components/elements/tooltip_component_preview.rb +9 -0
  28. data/spec/components/previews/sdr_view_components/forms/basic/basic_checkbox_component_preview/checked.html.erb +7 -0
  29. data/spec/components/previews/sdr_view_components/forms/basic/basic_checkbox_component_preview/default.html.erb +6 -0
  30. data/spec/components/previews/sdr_view_components/forms/basic/basic_checkbox_component_preview/disabled.html.erb +7 -0
  31. data/spec/components/previews/sdr_view_components/forms/basic/basic_checkbox_component_preview.rb +17 -0
  32. data/spec/components/previews/sdr_view_components/forms/basic/basic_file_component_preview/default.html.erb +6 -0
  33. data/spec/components/previews/sdr_view_components/forms/basic/basic_file_component_preview/with_accept.html.erb +7 -0
  34. data/spec/components/previews/sdr_view_components/forms/basic/basic_file_component_preview/with_multiple.html.erb +7 -0
  35. data/spec/components/previews/sdr_view_components/forms/basic/basic_file_component_preview/with_required.html.erb +7 -0
  36. data/spec/components/previews/sdr_view_components/forms/basic/basic_file_component_preview.rb +25 -0
  37. data/spec/components/previews/sdr_view_components/forms/basic/basic_radio_button_component_preview/checked.html.erb +8 -0
  38. data/spec/components/previews/sdr_view_components/forms/basic/basic_radio_button_component_preview/default.html.erb +7 -0
  39. data/spec/components/previews/sdr_view_components/forms/basic/basic_radio_button_component_preview/disabled.html.erb +8 -0
  40. data/spec/components/previews/sdr_view_components/forms/basic/basic_radio_button_component_preview.rb +17 -0
  41. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_area_component_preview/default.html.erb +6 -0
  42. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_area_component_preview/with_placeholder.html.erb +7 -0
  43. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_area_component_preview/with_required.html.erb +7 -0
  44. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_area_component_preview/with_rows.html.erb +7 -0
  45. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_area_component_preview.rb +19 -0
  46. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_field_component_preview/default.html.erb +6 -0
  47. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_field_component_preview/disabled.html.erb +8 -0
  48. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_field_component_preview/required.html.erb +7 -0
  49. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_field_component_preview/with_placeholder.html.erb +7 -0
  50. data/spec/components/previews/sdr_view_components/forms/basic/basic_text_field_component_preview.rb +19 -0
  51. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/checked.html.erb +9 -0
  52. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/default.html.erb +8 -0
  53. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/disabled.html.erb +9 -0
  54. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/with_additional_container_content.html.erb +12 -0
  55. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/with_help_text.html.erb +10 -0
  56. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/with_label.html.erb +9 -0
  57. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview/with_validation_error.html.erb +9 -0
  58. data/spec/components/previews/sdr_view_components/forms/checkbox_component_preview.rb +33 -0
  59. data/spec/components/previews/sdr_view_components/forms/file_component_preview/default.html.erb +8 -0
  60. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_additional_container_content.html.erb +14 -0
  61. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_help_text.html.erb +9 -0
  62. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_help_text_below.html.erb +10 -0
  63. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_label.html.erb +9 -0
  64. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_multiple.html.erb +9 -0
  65. data/spec/components/previews/sdr_view_components/forms/file_component_preview/with_validation_error.html.erb +9 -0
  66. data/spec/components/previews/sdr_view_components/forms/file_component_preview.rb +32 -0
  67. data/spec/components/previews/sdr_view_components/forms/help_text_component_preview/with_block_content.html.erb +3 -0
  68. data/spec/components/previews/sdr_view_components/forms/help_text_component_preview/with_text.html.erb +4 -0
  69. data/spec/components/previews/sdr_view_components/forms/help_text_component_preview.rb +13 -0
  70. data/spec/components/previews/sdr_view_components/forms/label_component_preview/default.html.erb +7 -0
  71. data/spec/components/previews/sdr_view_components/forms/label_component_preview/hidden_label.html.erb +8 -0
  72. data/spec/components/previews/sdr_view_components/forms/label_component_preview/with_caption.html.erb +8 -0
  73. data/spec/components/previews/sdr_view_components/forms/label_component_preview/with_tooltip.html.erb +17 -0
  74. data/spec/components/previews/sdr_view_components/forms/label_component_preview.rb +17 -0
  75. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/default.html.erb +9 -0
  76. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/with_additional_container_content.html.erb +14 -0
  77. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/with_help_text.html.erb +10 -0
  78. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/with_help_text_below.html.erb +11 -0
  79. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/with_label.html.erb +10 -0
  80. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview/with_validation_error.html.erb +11 -0
  81. data/spec/components/previews/sdr_view_components/forms/radio_button_component_preview.rb +30 -0
  82. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/danger.html.erb +6 -0
  83. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/default.html.erb +5 -0
  84. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/info.html.erb +6 -0
  85. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/primary.html.erb +6 -0
  86. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/secondary.html.erb +6 -0
  87. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/success.html.erb +6 -0
  88. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/warning.html.erb +6 -0
  89. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/with_block_content_and_value.html.erb +7 -0
  90. data/spec/components/previews/sdr_view_components/forms/submit_component_preview/with_form_id.html.erb +8 -0
  91. data/spec/components/previews/sdr_view_components/forms/submit_component_preview.rb +29 -0
  92. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/default.html.erb +8 -0
  93. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_additional_container_content.html.erb +12 -0
  94. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_help_text.html.erb +9 -0
  95. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_help_text_below.html.erb +10 -0
  96. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_hidden_label.html.erb +9 -0
  97. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_mark_required.html.erb +9 -0
  98. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview/with_validation_error.html.erb +9 -0
  99. data/spec/components/previews/sdr_view_components/forms/text_area_component_preview.rb +32 -0
  100. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/default.html.erb +8 -0
  101. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/disabled.html.erb +9 -0
  102. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/label_hidden.html.erb +9 -0
  103. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/marked_required.html.erb +9 -0
  104. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/required.html.erb +9 -0
  105. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/with_additional_container_content.html.erb +12 -0
  106. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/with_help_text.html.erb +9 -0
  107. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/with_help_text_below.html.erb +10 -0
  108. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/with_placeholder.html.erb +9 -0
  109. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview/with_validation_error.html.erb +9 -0
  110. data/spec/components/previews/sdr_view_components/forms/text_field_component_preview.rb +40 -0
  111. data/spec/components/previews/sdr_view_components/forms/toggle_component_preview/default.html.erb +11 -0
  112. data/spec/components/previews/sdr_view_components/forms/toggle_component_preview/with_validation_error.html.erb +12 -0
  113. data/spec/components/previews/sdr_view_components/forms/toggle_component_preview.rb +20 -0
  114. data/spec/components/previews/sdr_view_components/structure/footer_component_preview.rb +11 -0
  115. data/spec/components/previews/sdr_view_components/structure/header_component_preview/dark_variant.html.erb +15 -0
  116. data/spec/components/previews/sdr_view_components/structure/header_component_preview/dark_variant_with_background_color.html.erb +15 -0
  117. data/spec/components/previews/sdr_view_components/structure/header_component_preview/light_variant.html.erb +15 -0
  118. data/spec/components/previews/sdr_view_components/structure/header_component_preview/no_rosette.html.erb +15 -0
  119. data/spec/components/previews/sdr_view_components/structure/header_component_preview/white_variant.html.erb +15 -0
  120. data/spec/components/previews/sdr_view_components/structure/header_component_preview.rb +16 -0
  121. data/spec/components/previews/sdr_view_components/tables/cell_component_preview/default.html.erb +9 -0
  122. data/spec/components/previews/sdr_view_components/tables/cell_component_preview/with_colspan.html.erb +17 -0
  123. data/spec/components/previews/sdr_view_components/tables/cell_component_preview.rb +11 -0
  124. data/spec/components/previews/sdr_view_components/tables/header_component_preview/default.html.erb +7 -0
  125. data/spec/components/previews/sdr_view_components/tables/header_component_preview/with_tooltip.html.erb +19 -0
  126. data/spec/components/previews/sdr_view_components/tables/header_component_preview.rb +11 -0
  127. data/spec/components/previews/sdr_view_components/tables/list_cell_component_preview/with_item_values.html.erb +7 -0
  128. data/spec/components/previews/sdr_view_components/tables/list_cell_component_preview/with_items.html.erb +11 -0
  129. data/spec/components/previews/sdr_view_components/tables/list_cell_component_preview.rb +27 -0
  130. data/spec/components/previews/sdr_view_components/tables/raw_table_component_preview/default.html.erb +26 -0
  131. data/spec/components/previews/sdr_view_components/tables/raw_table_component_preview.rb +9 -0
  132. data/spec/components/previews/sdr_view_components/tables/row_component_preview/label_only.html.erb +5 -0
  133. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_cells.html.erb +13 -0
  134. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_first_value_and_values.html.erb +8 -0
  135. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_label_content.html.erb +11 -0
  136. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_tooltip.html.erb +18 -0
  137. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_value.html.erb +8 -0
  138. data/spec/components/previews/sdr_view_components/tables/row_component_preview/with_values.html.erb +8 -0
  139. data/spec/components/previews/sdr_view_components/tables/row_component_preview.rb +21 -0
  140. data/spec/components/previews/sdr_view_components/tables/table_component_preview.rb +81 -0
  141. metadata +139 -1
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class CheckboxComponentPreview < ViewComponent::Preview
6
+ def default; end
7
+
8
+ # @!group Checkbox State
9
+ def checked; end
10
+
11
+ def disabled; end
12
+ # @!endgroup
13
+
14
+ def with_label; end
15
+
16
+ # Help text can only be put below a checkbox.
17
+ def with_help_text; end
18
+
19
+ def with_validation_error; end
20
+
21
+ def with_additional_container_content; end
22
+
23
+ class CheckboxPreviewModel
24
+ include ActiveModel::Model
25
+ include ActiveModel::Attributes
26
+
27
+ attribute :test_boolean_field, :boolean, default: false
28
+
29
+ validates :test_boolean_field, acceptance: true
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,8 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :file
7
+ ) %>
8
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :file
7
+ ) do |component| %>
8
+ <% component.with_additional_container_content do %>
9
+ <div class="alert alert-info mt-2" role="alert">
10
+ <strong>Note:</strong> Accepted file types are PDF, DOC, and DOCX only.
11
+ </div>
12
+ <% end %>
13
+ <% end %>
14
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :file,
7
+ help_text: 'Select a file to upload. Maximum file size: 10MB.'
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :file,
7
+ variant: :help_text_below,
8
+ help_text: 'Help text appears below the file input when using help_text_below variant.'
9
+ ) %>
10
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :document,
7
+ label_text: 'Upload your document'
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/upload') do |form| %>
4
+ <%= render SdrViewComponents::Forms::FileComponent.new(
5
+ form: form,
6
+ field_name: :file,
7
+ input_multiple: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::FileComponentPreview::FilePreviewModel.new(document: nil) %>
2
+ <% model.valid? %>
3
+
4
+ <%= form_with(model: model, url: '/upload') do |form| %>
5
+ <%= render SdrViewComponents::Forms::FileComponent.new(
6
+ form: form,
7
+ field_name: :file
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class FileComponentPreview < ViewComponent::Preview
6
+ def default; end
7
+
8
+ def with_label; end
9
+
10
+ # @!group Help text
11
+ def with_help_text; end
12
+
13
+ def with_help_text_below; end
14
+ # @!endgroup
15
+
16
+ def with_multiple; end
17
+
18
+ def with_additional_container_content; end
19
+
20
+ def with_validation_error; end
21
+
22
+ class FilePreviewModel
23
+ include ActiveModel::Model
24
+ include ActiveModel::Attributes
25
+
26
+ attribute :document, :string, default: nil
27
+
28
+ validates :document, presence: true
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ <%= render SdrViewComponents::Forms::HelpTextComponent.new(id: 'metadata-help-text') do %>
2
+ Include <strong>at least one creator</strong> and the resource date when known.
3
+ <% end %>
@@ -0,0 +1,4 @@
1
+ <%= render SdrViewComponents::Forms::HelpTextComponent.new(
2
+ id: 'title-help-text',
3
+ text: 'Use a concise, descriptive title that will make sense to end users.'
4
+ ) %>
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class HelpTextComponentPreview < ViewComponent::Preview
6
+ # @!group Content
7
+ def with_text; end
8
+
9
+ def with_block_content; end
10
+ # @!endgroup
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ <%= form_with(url: '/example', scope: :item) do |form| %>
2
+ <%= render SdrViewComponents::Forms::LabelComponent.new(
3
+ form: form,
4
+ field_name: :title,
5
+ text: 'Collection title'
6
+ ) %>
7
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= form_with(url: '/example', scope: :item) do |form| %>
2
+ <%= render SdrViewComponents::Forms::LabelComponent.new(
3
+ form: form,
4
+ field_name: :title,
5
+ text: 'Collection title',
6
+ hidden: true
7
+ ) %>
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= form_with(url: '/example', scope: :item) do |form| %>
2
+ <%= render SdrViewComponents::Forms::LabelComponent.new(
3
+ form: form,
4
+ field_name: :title,
5
+ text: 'Collection title',
6
+ caption: 'Shown to repository users and search results.'
7
+ ) %>
8
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <%= form_with(url: '/example', scope: :item) do |form| %>
2
+ <%= render SdrViewComponents::Forms::LabelComponent.new(
3
+ form: form,
4
+ field_name: :title,
5
+ text: 'Collection title',
6
+ tooltip: 'Use the public title shown to repository users.'
7
+ ) %>
8
+ <% end %>
9
+
10
+ <script>
11
+ window.addEventListener('load', () => {
12
+ const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
13
+ ;[...tooltipTriggerList].forEach((tooltipTriggerEl) => {
14
+ window.bootstrap.Tooltip.getOrCreateInstance(tooltipTriggerEl)
15
+ })
16
+ })
17
+ </script>
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class LabelComponentPreview < ViewComponent::Preview
6
+ def default; end
7
+
8
+ # @!group Label options
9
+ def hidden_label; end
10
+
11
+ def with_tooltip; end
12
+
13
+ def with_caption; end
14
+ # @!endgroup
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
5
+ form: form,
6
+ field_name: :delivery_method,
7
+ input_value: 'email'
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
5
+ form: form,
6
+ field_name: :delivery_method,
7
+ input_value: 'email',
8
+ label_text: 'Email'
9
+ ) do |component| %>
10
+ <% component.with_additional_container_content do %>
11
+ <span class="text-info">Recommended if you want notifications delivered to your inbox.</span>
12
+ <% end %>
13
+ <% end %>
14
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
5
+ form: form,
6
+ field_name: :delivery_method,
7
+ input_value: 'email',
8
+ help_text: 'Use this option to receive updates by email.'
9
+ ) %>
10
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
5
+ form: form,
6
+ field_name: :delivery_method,
7
+ input_value: 'email',
8
+ variant: :help_text_below,
9
+ help_text: 'Use this option to receive updates by email.'
10
+ ) %>
11
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
5
+ form: form,
6
+ field_name: :delivery_method,
7
+ input_value: 'email',
8
+ label_text: 'Email'
9
+ ) %>
10
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <% model = SdrViewComponents::Forms::RadioButtonComponentPreview::RadioButtonPreviewModel.new(delivery_method: nil) %>
2
+ <% model.valid? %>
3
+
4
+ <%= form_with(model: model, url: '/example') do |form| %>
5
+ <%= render SdrViewComponents::Forms::RadioButtonComponent.new(
6
+ form: form,
7
+ field_name: :delivery_method,
8
+ input_value: 'email',
9
+ label_text: 'Email'
10
+ ) %>
11
+ <% end %>
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class RadioButtonComponentPreview < ViewComponent::Preview
6
+ def default; end
7
+
8
+ def with_label; end
9
+
10
+ # @!group Help text
11
+ def with_help_text; end
12
+
13
+ def with_help_text_below; end
14
+ # @!endgroup
15
+
16
+ def with_additional_container_content; end
17
+
18
+ def with_validation_error; end
19
+
20
+ class RadioButtonPreviewModel
21
+ include ActiveModel::Model
22
+ include ActiveModel::Attributes
23
+
24
+ attribute :delivery_method, :string, default: nil
25
+
26
+ validates :delivery_method, presence: true
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/items/123', method: :delete) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Delete draft',
4
+ variant: :danger
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <%= form_with(url: '/items/123', method: :patch) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Save changes'
4
+ ) %>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/review', method: :post) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Request information',
4
+ variant: :info
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/items/123', method: :patch) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Save changes',
4
+ variant: :primary
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/items/123', method: :patch) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Save draft',
4
+ variant: :secondary
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/deposit', method: :post) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Deposit item',
4
+ variant: :success
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <%= form_with(url: '/review', method: :post) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ label: 'Submit for review',
4
+ variant: :warning
5
+ ) %>
6
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= form_with(url: '/deposit', method: :post) do %>
2
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
3
+ value: 'deposit-item'
4
+ ) do %>
5
+ Deposit item
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <%= form_with(url: '/items/123/publish', method: :post, html: { id: 'publish-item-form' }) do |form| %>
2
+ <%= form.hidden_field :item_id, value: '123' %>
3
+ <% end %>
4
+
5
+ <%= render SdrViewComponents::Forms::SubmitComponent.new(
6
+ label: 'Publish item',
7
+ form_id: 'publish-item-form'
8
+ ) %>
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class SubmitComponentPreview < ViewComponent::Preview
6
+ # @!group Button Variants
7
+ def primary; end
8
+
9
+ def secondary; end
10
+
11
+ def success; end
12
+
13
+ def danger; end
14
+
15
+ def warning; end
16
+
17
+ def info; end
18
+ # @!endgroup
19
+
20
+ # @!group Content Options
21
+ def with_block_content_and_value; end
22
+ # @!endgroup
23
+
24
+ def with_form_id; end
25
+
26
+ def default; end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,8 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description
7
+ ) %>
8
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description
7
+ ) do |component| %>
8
+ <% component.with_additional_container_content do %>
9
+ <p>Character limit: 500.</p>
10
+ <% end %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description,
7
+ help_text: 'Describe the item in one or two sentences.'
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description,
7
+ variant: :help_text_below,
8
+ help_text: 'This help text appears after the textarea.'
9
+ ) %>
10
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description,
7
+ label_hidden: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
5
+ form: form,
6
+ field_name: :description,
7
+ mark_required: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextAreaComponentPreview::TextAreaPreviewModel.new(description: nil) %>
2
+ <% model.valid? %>
3
+
4
+ <%= form_with(model: model, url: '/example') do |form| %>
5
+ <%= render SdrViewComponents::Forms::TextAreaComponent.new(
6
+ form: form,
7
+ field_name: :description
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrViewComponents
4
+ module Forms
5
+ class TextAreaComponentPreview < ViewComponent::Preview
6
+ def default; end
7
+
8
+ # @!group Help text
9
+ def with_help_text; end
10
+
11
+ def with_help_text_below; end
12
+ # @!endgroup
13
+
14
+ def with_hidden_label; end
15
+
16
+ def with_mark_required; end
17
+
18
+ def with_additional_container_content; end
19
+
20
+ def with_validation_error; end
21
+
22
+ class TextAreaPreviewModel
23
+ include ActiveModel::Model
24
+ include ActiveModel::Attributes
25
+
26
+ attribute :description, :string, default: nil
27
+
28
+ validates :description, presence: true
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,8 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: 'Project overview') %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title
7
+ ) %>
8
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: 'Project overview') %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title,
7
+ input_disabled: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: 'Project overview') %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title,
7
+ label_hidden: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title,
7
+ mark_required: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: nil) %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title,
7
+ input_required: true
8
+ ) %>
9
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: 'Project overview') %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title
7
+ ) do |component| %>
8
+ <% component.with_additional_container_content do %>
9
+ <span class="text-info">Suggested: keep titles under 80 characters.</span>
10
+ <% end %>
11
+ <% end %>
12
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <% model = SdrViewComponents::Forms::TextFieldComponentPreview::TextFieldPreviewModel.new(title: 'Project overview') %>
2
+
3
+ <%= form_with(model: model, url: '/example') do |form| %>
4
+ <%= render SdrViewComponents::Forms::TextFieldComponent.new(
5
+ form: form,
6
+ field_name: :title,
7
+ help_text: 'Use a concise title that will make sense to end users.'
8
+ ) %>
9
+ <% end %>