ccs-frontend_helpers 0.1.0 → 0.1.1.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -2
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.md +4 -1
  5. data/Gemfile +15 -1
  6. data/Gemfile.lock +153 -114
  7. data/ccs-frontend_helpers.gemspec +1 -11
  8. data/lib/ccs/components/base.rb +64 -0
  9. data/lib/ccs/components/ccs/dashboard_section/panel.rb +57 -0
  10. data/lib/ccs/components/ccs/dashboard_section.rb +71 -0
  11. data/lib/ccs/components/ccs/footer/link.rb +55 -0
  12. data/lib/ccs/components/ccs/footer/meta.rb +59 -0
  13. data/lib/ccs/components/ccs/footer/navigation.rb +60 -0
  14. data/lib/ccs/components/ccs/footer.rb +95 -0
  15. data/lib/ccs/components/ccs/header/link.rb +60 -0
  16. data/lib/ccs/components/ccs/header/navigation.rb +98 -0
  17. data/lib/ccs/components/ccs/header/service_authentication.rb +53 -0
  18. data/lib/ccs/components/ccs/header.rb +110 -0
  19. data/lib/ccs/{frontend_helpers/ccs_frontend → components/ccs}/logo.rb +10 -12
  20. data/lib/ccs/components/govuk/accordion/section/content.rb +53 -0
  21. data/lib/ccs/components/govuk/accordion/section/header.rb +57 -0
  22. data/lib/ccs/components/govuk/accordion/section.rb +61 -0
  23. data/lib/ccs/components/govuk/accordion.rb +58 -0
  24. data/lib/ccs/components/govuk/back_link.rb +51 -0
  25. data/lib/ccs/components/govuk/breadcrumbs/link.rb +57 -0
  26. data/lib/ccs/components/govuk/breadcrumbs.rb +55 -0
  27. data/lib/ccs/components/govuk/button.rb +107 -0
  28. data/lib/ccs/components/govuk/cookie_banner/action.rb +60 -0
  29. data/lib/ccs/components/govuk/cookie_banner/message.rb +80 -0
  30. data/lib/ccs/components/govuk/cookie_banner.rb +55 -0
  31. data/lib/ccs/components/govuk/details.rb +53 -0
  32. data/lib/ccs/components/govuk/error_message.rb +60 -0
  33. data/lib/ccs/components/govuk/error_summary/item.rb +54 -0
  34. data/lib/ccs/components/govuk/error_summary.rb +70 -0
  35. data/lib/ccs/components/govuk/field/input/character_count.rb +129 -0
  36. data/lib/ccs/components/govuk/field/input/file_upload.rb +44 -0
  37. data/lib/ccs/components/govuk/field/input/select.rb +82 -0
  38. data/lib/ccs/components/govuk/field/input/text_input/fix.rb +55 -0
  39. data/lib/ccs/components/govuk/field/input/text_input.rb +97 -0
  40. data/lib/ccs/components/govuk/field/input/textarea.rb +59 -0
  41. data/lib/ccs/components/govuk/field/input.rb +62 -0
  42. data/lib/ccs/components/govuk/field/inputs/checkboxes.rb +69 -0
  43. data/lib/ccs/components/govuk/field/inputs/date_input/item.rb +65 -0
  44. data/lib/ccs/components/govuk/field/inputs/date_input.rb +89 -0
  45. data/lib/ccs/components/govuk/field/inputs/item/checkbox/form.rb +47 -0
  46. data/lib/ccs/components/govuk/field/inputs/item/checkbox/tag.rb +43 -0
  47. data/lib/ccs/components/govuk/field/inputs/item/checkbox.rb +50 -0
  48. data/lib/ccs/components/govuk/field/inputs/item/divider.rb +50 -0
  49. data/lib/ccs/components/govuk/field/inputs/item/radio/form.rb +44 -0
  50. data/lib/ccs/components/govuk/field/inputs/item/radio/tag.rb +43 -0
  51. data/lib/ccs/components/govuk/field/inputs/item/radio.rb +50 -0
  52. data/lib/ccs/components/govuk/field/inputs/item.rb +111 -0
  53. data/lib/ccs/components/govuk/field/inputs/radios.rb +69 -0
  54. data/lib/ccs/components/govuk/field/inputs.rb +57 -0
  55. data/lib/ccs/components/govuk/field.rb +108 -0
  56. data/lib/ccs/components/govuk/fieldset/legend.rb +65 -0
  57. data/lib/ccs/components/govuk/fieldset.rb +54 -0
  58. data/lib/ccs/components/govuk/footer/link.rb +55 -0
  59. data/lib/ccs/components/govuk/footer/meta.rb +59 -0
  60. data/lib/ccs/components/govuk/footer/navigation.rb +60 -0
  61. data/lib/ccs/components/govuk/footer.rb +131 -0
  62. data/lib/ccs/components/govuk/form_group.rb +60 -0
  63. data/lib/ccs/components/govuk/header/link.rb +56 -0
  64. data/lib/ccs/components/govuk/header/navigation.rb +71 -0
  65. data/lib/ccs/components/govuk/header.rb +107 -0
  66. data/lib/ccs/components/govuk/hint.rb +49 -0
  67. data/lib/ccs/components/govuk/inset_text.rb +52 -0
  68. data/lib/ccs/components/govuk/label.rb +85 -0
  69. data/lib/ccs/components/govuk/notification_banner.rb +107 -0
  70. data/lib/ccs/components/govuk/pagination/increment/next.rb +44 -0
  71. data/lib/ccs/components/govuk/pagination/increment/previous.rb +43 -0
  72. data/lib/ccs/components/govuk/pagination/increment.rb +98 -0
  73. data/lib/ccs/components/govuk/pagination/item/ellipsis.rb +28 -0
  74. data/lib/ccs/components/govuk/pagination/item/form.rb +49 -0
  75. data/lib/ccs/components/govuk/pagination/item/tag.rb +47 -0
  76. data/lib/ccs/components/govuk/pagination/item.rb +64 -0
  77. data/lib/ccs/components/govuk/pagination.rb +96 -0
  78. data/lib/ccs/components/govuk/panel.rb +62 -0
  79. data/lib/ccs/components/govuk/phase_banner.rb +69 -0
  80. data/lib/ccs/components/govuk/skip_link.rb +51 -0
  81. data/lib/ccs/components/govuk/step_by_step_navigation/section/content/list/item.rb +53 -0
  82. data/lib/ccs/components/govuk/step_by_step_navigation/section/content/list.rb +50 -0
  83. data/lib/ccs/components/govuk/step_by_step_navigation/section/content/paragraph.rb +45 -0
  84. data/lib/ccs/components/govuk/step_by_step_navigation/section/content.rb +63 -0
  85. data/lib/ccs/components/govuk/step_by_step_navigation/section/heading.rb +69 -0
  86. data/lib/ccs/components/govuk/step_by_step_navigation/section.rb +56 -0
  87. data/lib/ccs/components/govuk/step_by_step_navigation.rb +59 -0
  88. data/lib/ccs/components/govuk/summary_list/action/link.rb +59 -0
  89. data/lib/ccs/components/govuk/summary_list/card/actions.rb +59 -0
  90. data/lib/ccs/components/govuk/summary_list/card/title.rb +51 -0
  91. data/lib/ccs/components/govuk/summary_list/card.rb +63 -0
  92. data/lib/ccs/components/govuk/summary_list/row/actions.rb +59 -0
  93. data/lib/ccs/components/govuk/summary_list/row/key.rb +47 -0
  94. data/lib/ccs/components/govuk/summary_list/row/value.rb +47 -0
  95. data/lib/ccs/components/govuk/summary_list/row.rb +67 -0
  96. data/lib/ccs/components/govuk/summary_list.rb +74 -0
  97. data/lib/ccs/components/govuk/table/body/data_cell.rb +53 -0
  98. data/lib/ccs/components/govuk/table/body/head_cell.rb +52 -0
  99. data/lib/ccs/components/govuk/table/header/head_cell.rb +54 -0
  100. data/lib/ccs/components/govuk/table.rb +111 -0
  101. data/lib/ccs/components/govuk/tabs/panel.rb +58 -0
  102. data/lib/ccs/components/govuk/tabs/tab.rb +56 -0
  103. data/lib/ccs/components/govuk/tabs.rb +66 -0
  104. data/lib/ccs/components/govuk/tag.rb +51 -0
  105. data/lib/ccs/components/govuk/warning_text.rb +61 -0
  106. data/lib/ccs/frontend_helpers/ccs_frontend/dashboard_section.rb +27 -0
  107. data/lib/ccs/frontend_helpers/ccs_frontend/footer.rb +6 -119
  108. data/lib/ccs/frontend_helpers/ccs_frontend/header.rb +6 -183
  109. data/lib/ccs/frontend_helpers/ccs_frontend.rb +2 -4
  110. data/lib/ccs/frontend_helpers/govuk_frontend/accordion.rb +8 -95
  111. data/lib/ccs/frontend_helpers/govuk_frontend/back_link.rb +6 -17
  112. data/lib/ccs/frontend_helpers/govuk_frontend/breadcrumbs.rb +6 -54
  113. data/lib/ccs/frontend_helpers/govuk_frontend/button.rb +6 -105
  114. data/lib/ccs/frontend_helpers/govuk_frontend/character_count.rb +28 -0
  115. data/lib/ccs/frontend_helpers/govuk_frontend/checkboxes.rb +28 -0
  116. data/lib/ccs/frontend_helpers/govuk_frontend/cookie_banner.rb +6 -114
  117. data/lib/ccs/frontend_helpers/govuk_frontend/date_input.rb +28 -0
  118. data/lib/ccs/frontend_helpers/govuk_frontend/details.rb +7 -23
  119. data/lib/ccs/frontend_helpers/govuk_frontend/error_message.rb +11 -32
  120. data/lib/ccs/frontend_helpers/govuk_frontend/error_summary.rb +13 -65
  121. data/lib/ccs/frontend_helpers/govuk_frontend/fieldset.rb +7 -48
  122. data/lib/ccs/frontend_helpers/govuk_frontend/file_upload.rb +28 -0
  123. data/lib/ccs/frontend_helpers/govuk_frontend/footer.rb +6 -161
  124. data/lib/ccs/frontend_helpers/govuk_frontend/form_group.rb +13 -24
  125. data/lib/ccs/frontend_helpers/govuk_frontend/header.rb +6 -139
  126. data/lib/ccs/frontend_helpers/govuk_frontend/hint.rb +8 -17
  127. data/lib/ccs/frontend_helpers/govuk_frontend/input.rb +28 -0
  128. data/lib/ccs/frontend_helpers/govuk_frontend/inset_text.rb +7 -21
  129. data/lib/ccs/frontend_helpers/govuk_frontend/label.rb +7 -70
  130. data/lib/ccs/frontend_helpers/govuk_frontend/notification_banner.rb +7 -113
  131. data/lib/ccs/frontend_helpers/govuk_frontend/pagination.rb +6 -314
  132. data/lib/ccs/frontend_helpers/govuk_frontend/panel.rb +7 -28
  133. data/lib/ccs/frontend_helpers/govuk_frontend/phase_banner.rb +8 -27
  134. data/lib/ccs/frontend_helpers/govuk_frontend/radios.rb +28 -0
  135. data/lib/ccs/frontend_helpers/govuk_frontend/select.rb +28 -0
  136. data/lib/ccs/frontend_helpers/govuk_frontend/skip_link.rb +6 -18
  137. data/lib/ccs/frontend_helpers/govuk_frontend/step_by_step_navigation.rb +7 -186
  138. data/lib/ccs/frontend_helpers/govuk_frontend/summary_list.rb +6 -204
  139. data/lib/ccs/frontend_helpers/govuk_frontend/table.rb +11 -100
  140. data/lib/ccs/frontend_helpers/govuk_frontend/tabs.rb +6 -73
  141. data/lib/ccs/frontend_helpers/govuk_frontend/tag.rb +7 -21
  142. data/lib/ccs/frontend_helpers/govuk_frontend/textarea.rb +28 -0
  143. data/lib/ccs/frontend_helpers/govuk_frontend/warning_text.rb +7 -30
  144. data/lib/ccs/frontend_helpers/govuk_frontend.rb +17 -19
  145. data/lib/ccs/frontend_helpers/version.rb +1 -1
  146. metadata +117 -147
  147. data/lib/ccs/frontend_helpers/ccs_frontend/dashboard_panels.rb +0 -79
  148. data/lib/ccs/frontend_helpers/govuk_frontend/field/character_count.rb +0 -165
  149. data/lib/ccs/frontend_helpers/govuk_frontend/field/checkboxes.rb +0 -200
  150. data/lib/ccs/frontend_helpers/govuk_frontend/field/date_input.rb +0 -153
  151. data/lib/ccs/frontend_helpers/govuk_frontend/field/file_upload.rb +0 -83
  152. data/lib/ccs/frontend_helpers/govuk_frontend/field/input.rb +0 -153
  153. data/lib/ccs/frontend_helpers/govuk_frontend/field/radios.rb +0 -201
  154. data/lib/ccs/frontend_helpers/govuk_frontend/field/select.rb +0 -124
  155. data/lib/ccs/frontend_helpers/govuk_frontend/field/textarea.rb +0 -106
  156. data/lib/ccs/frontend_helpers/govuk_frontend/field.rb +0 -213
  157. data/lib/ccs/frontend_helpers/shared_methods.rb +0 -27
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'action_view'
4
-
5
- require_relative '../shared_methods'
3
+ require_relative '../../components/govuk/tag'
6
4
 
7
5
  module CCS
8
6
  module FrontendHelpers
@@ -13,28 +11,16 @@ module CCS
13
11
  # {https://design-system.service.gov.uk/components/tag GDS - Components - Tag}
14
12
 
15
13
  module Tag
16
- include SharedMethods
17
- include ActionView::Context
18
- include ActionView::Helpers::TagHelper
19
-
20
- # Generates the HTML for the GOV.UK Tag component
14
+ # Generates the HTML for the GOV.UK Back link component
21
15
  #
22
- # @param text [String] the text for the tag
23
- # @param colour [String] optional colour for the tag,
24
- # see {https://design-system.service.gov.uk/components/tag/#additional-colours Tag - Additional colours}
25
- # for available colours in GOV.UK Frontend
26
- # @param govuk_tag_options [Hash] options that will be used in customising the HTML
16
+ # @param (see CCS::Components::GovUK::Tag#initialize)
27
17
  #
28
- # @option govuk_tag_options [String] :classes additional CSS classes for the tag HTML
29
- # @option govuk_tag_options [Hash] :attributes ({}) any additional attributes that will added as part of the HTML
18
+ # @option (see CCS::Components::GovUK::Tag#initialize)
30
19
  #
31
- # @return [ActiveSupport::SafeBuffer] the HTML for the GOV.UK Tag
32
- # which can then be rendered on the page
33
-
34
- def govuk_tag(text, colour = nil, **govuk_tag_options)
35
- initialise_attributes_and_set_classes(govuk_tag_options, "govuk-tag #{"govuk-tag--#{colour}" if colour}".rstrip)
20
+ # @return (see CCS::Components::GovUK::Tag#render)
36
21
 
37
- tag.strong(text, **govuk_tag_options[:attributes])
22
+ def govuk_tag(text, colour = nil, **options)
23
+ Components::GovUK::Tag.new(context: self, text: text, colour: colour, **options).render
38
24
  end
39
25
  end
40
26
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../components/govuk/field/input/textarea'
4
+
5
+ module CCS
6
+ module FrontendHelpers
7
+ module GovUKFrontend
8
+ # = GOV.UK Textarea
9
+ #
10
+ # This helper is used for generating the textarea component from the
11
+ # {https://design-system.service.gov.uk/components/textarea GDS - Components - Textarea}
12
+
13
+ module Textarea
14
+ # Generates the HTML for the GOV.UK Textarea component
15
+ #
16
+ # @param (see CCS::Components::GovUK::Input::Textarea#initialize)
17
+ #
18
+ # @option (see CCS::Components::GovUK::Input::Textarea#initialize)
19
+ #
20
+ # @return (see CCS::Components::GovUK::Input::Textarea#render)
21
+
22
+ def govuk_textarea(attribute, **options)
23
+ Components::GovUK::Field::Input::Textarea.new(context: self, attribute: attribute, **options).render
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'action_view'
4
-
5
- require_relative '../shared_methods'
3
+ require_relative '../../components/govuk/warning_text'
6
4
 
7
5
  module CCS
8
6
  module FrontendHelpers
@@ -13,39 +11,18 @@ module CCS
13
11
  # {https://design-system.service.gov.uk/components/warning-text GDS - Components - Warning text}
14
12
 
15
13
  module WarningText
16
- include SharedMethods
17
- include ActionView::Context
18
- include ActionView::Helpers::TagHelper
19
- include ActionView::Helpers::TextHelper
20
-
21
14
  # Generates the HTML for the GOV.UK Warning text component
22
15
  #
23
- # @param text [String] (nil) the text for the warning
24
- # @param govuk_warning_text_options [Hash] options that will be used in customising the HTML
16
+ # @param (see CCS::Components::GovUK::WarningText#initialize)
25
17
  #
26
- # @option govuk_warning_text_options [String] :classes additional CSS classes for the tag HTML
27
- # @option govuk_warning_text_options [String] :icon_fallback_text the fallback text for the icon (default: +'Warning'+)
28
- # @option govuk_warning_text_options [Hash] :attributes ({}) any additional attributes that will added as part of the HTML
18
+ # @option (see CCS::Components::GovUK::WarningText#initialize)
29
19
  #
30
- # @yield HTML that will be used in the warning text. Ignored if text is passed.
20
+ # @yield (see CCS::Components::GovUK::WarningText#render)
31
21
  #
32
- # @return [ActiveSupport::SafeBuffer] the HTML for the GOV.UK Warning text
33
- # which can then be rendered on the page
34
-
35
- def govuk_warning_text(text = nil, **govuk_warning_text_options)
36
- initialise_attributes_and_set_classes(govuk_warning_text_options, 'govuk-warning-text')
22
+ # @return (see CCS::Components::GovUK::WarningText#render)
37
23
 
38
- tag.div(**govuk_warning_text_options[:attributes]) do
39
- concat(tag.span('!', class: 'govuk-warning-text__icon'))
40
- concat(tag.strong(class: 'govuk-warning-text__text') do
41
- concat(tag.span(govuk_warning_text_options[:icon_fallback_text] || 'Warning', class: 'govuk-warning-text__assistive'))
42
- if text
43
- concat(text)
44
- else
45
- yield
46
- end
47
- end)
48
- end
24
+ def govuk_warning_text(text = nil, **options, &block)
25
+ Components::GovUK::WarningText.new(context: self, text: text, **options).render(&block)
49
26
  end
50
27
  end
51
28
  end
@@ -4,78 +4,76 @@ require_relative 'govuk_frontend/accordion'
4
4
  require_relative 'govuk_frontend/back_link'
5
5
  require_relative 'govuk_frontend/breadcrumbs'
6
6
  require_relative 'govuk_frontend/button'
7
+ require_relative 'govuk_frontend/character_count'
8
+ require_relative 'govuk_frontend/checkboxes'
7
9
  require_relative 'govuk_frontend/cookie_banner'
10
+ require_relative 'govuk_frontend/date_input'
8
11
  require_relative 'govuk_frontend/details'
9
12
  require_relative 'govuk_frontend/error_message'
10
13
  require_relative 'govuk_frontend/error_summary'
11
- require_relative 'govuk_frontend/field'
12
- require_relative 'govuk_frontend/field/character_count'
13
- require_relative 'govuk_frontend/field/checkboxes'
14
- require_relative 'govuk_frontend/field/date_input'
15
- require_relative 'govuk_frontend/field/file_upload'
16
- require_relative 'govuk_frontend/field/input'
17
- require_relative 'govuk_frontend/field/select'
18
- require_relative 'govuk_frontend/field/textarea'
19
- require_relative 'govuk_frontend/field/radios'
20
14
  require_relative 'govuk_frontend/fieldset'
15
+ require_relative 'govuk_frontend/file_upload'
21
16
  require_relative 'govuk_frontend/footer'
22
17
  require_relative 'govuk_frontend/form_group'
23
18
  require_relative 'govuk_frontend/header'
24
19
  require_relative 'govuk_frontend/hint'
20
+ require_relative 'govuk_frontend/input'
25
21
  require_relative 'govuk_frontend/inset_text'
26
22
  require_relative 'govuk_frontend/label'
27
23
  require_relative 'govuk_frontend/notification_banner'
28
24
  require_relative 'govuk_frontend/pagination'
29
25
  require_relative 'govuk_frontend/panel'
30
26
  require_relative 'govuk_frontend/phase_banner'
27
+ require_relative 'govuk_frontend/radios'
28
+ require_relative 'govuk_frontend/select'
31
29
  require_relative 'govuk_frontend/skip_link'
32
30
  require_relative 'govuk_frontend/step_by_step_navigation'
33
31
  require_relative 'govuk_frontend/summary_list'
34
32
  require_relative 'govuk_frontend/table'
35
33
  require_relative 'govuk_frontend/tabs'
36
34
  require_relative 'govuk_frontend/tag'
35
+ require_relative 'govuk_frontend/textarea'
37
36
  require_relative 'govuk_frontend/warning_text'
38
37
 
39
38
  module CCS
40
39
  module FrontendHelpers
41
40
  # This module loads in all the GOV.UK Frontend Helper methods.
42
- # These are a collection of view helpers to help render GOV.UK components
41
+ # These are a collection of view to help render GOV.UK components
43
42
 
44
43
  module GovUKFrontend
45
44
  include Accordion
46
45
  include BackLink
47
46
  include Breadcrumbs
48
47
  include Button
48
+ include CharacterCount
49
+ include Checkboxes
49
50
  include CookieBanner
51
+ include DateInput
50
52
  include Details
51
53
  include ErrorMessage
52
54
  include ErrorSummary
53
- include Field
54
- include Field::CharacterCount
55
- include Field::Checkboxes
56
- include Field::DateInput
57
- include Field::FileUpload
58
- include Field::Input
59
- include Field::Radios
60
- include Field::Select
61
- include Field::Textarea
55
+ include FileUpload
62
56
  include Fieldset
63
57
  include Footer
64
58
  include FormGroup
65
59
  include Header
66
60
  include Hint
61
+ include Input
67
62
  include InsetText
68
63
  include Label
69
64
  include NotificationBanner
70
65
  include Pagination
71
66
  include Panel
72
67
  include PhaseBanner
68
+ include Radios
69
+ include Select
73
70
  include SkipLink
74
71
  include StepByStepNavigation
75
72
  include SummaryList
76
73
  include Table
77
74
  include Tabs
78
75
  include Tag
76
+ include Textarea
79
77
  include WarningText
80
78
  end
81
79
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module CCS
4
4
  module FrontendHelpers
5
- VERSION = '0.1.0'
5
+ VERSION = '0.1.1.rc.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ccs-frontend_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tim-s-ccs
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-22 00:00:00.000000000 Z
11
+ date: 2023-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,132 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '6.0'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.3'
41
- - !ruby/object:Gem::Dependency
42
- name: capybara
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 3.38.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 3.38.0
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.12'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.12'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.36'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.36'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop-rails
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '2.16'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '2.16'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-rake
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '0.6'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.6'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-rspec
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '2.13'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '2.13'
125
- - !ruby/object:Gem::Dependency
126
- name: simplecov
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.21'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '0.21'
139
- - !ruby/object:Gem::Dependency
140
- name: yard
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0.9'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0.9'
153
27
  description: Gem containing view helpers for CCS Ruby on Rails projects
154
28
  email:
155
29
  - timothy.south@crowncommercial.gov.uk
@@ -159,6 +33,7 @@ extra_rdoc_files: []
159
33
  files:
160
34
  - ".rspec"
161
35
  - ".rubocop.yml"
36
+ - ".ruby-version"
162
37
  - CHANGELOG.md
163
38
  - Gemfile
164
39
  - Gemfile.lock
@@ -166,49 +41,144 @@ files:
166
41
  - README.md
167
42
  - Rakefile
168
43
  - ccs-frontend_helpers.gemspec
44
+ - lib/ccs/components/base.rb
45
+ - lib/ccs/components/ccs/dashboard_section.rb
46
+ - lib/ccs/components/ccs/dashboard_section/panel.rb
47
+ - lib/ccs/components/ccs/footer.rb
48
+ - lib/ccs/components/ccs/footer/link.rb
49
+ - lib/ccs/components/ccs/footer/meta.rb
50
+ - lib/ccs/components/ccs/footer/navigation.rb
51
+ - lib/ccs/components/ccs/header.rb
52
+ - lib/ccs/components/ccs/header/link.rb
53
+ - lib/ccs/components/ccs/header/navigation.rb
54
+ - lib/ccs/components/ccs/header/service_authentication.rb
55
+ - lib/ccs/components/ccs/logo.rb
56
+ - lib/ccs/components/govuk/accordion.rb
57
+ - lib/ccs/components/govuk/accordion/section.rb
58
+ - lib/ccs/components/govuk/accordion/section/content.rb
59
+ - lib/ccs/components/govuk/accordion/section/header.rb
60
+ - lib/ccs/components/govuk/back_link.rb
61
+ - lib/ccs/components/govuk/breadcrumbs.rb
62
+ - lib/ccs/components/govuk/breadcrumbs/link.rb
63
+ - lib/ccs/components/govuk/button.rb
64
+ - lib/ccs/components/govuk/cookie_banner.rb
65
+ - lib/ccs/components/govuk/cookie_banner/action.rb
66
+ - lib/ccs/components/govuk/cookie_banner/message.rb
67
+ - lib/ccs/components/govuk/details.rb
68
+ - lib/ccs/components/govuk/error_message.rb
69
+ - lib/ccs/components/govuk/error_summary.rb
70
+ - lib/ccs/components/govuk/error_summary/item.rb
71
+ - lib/ccs/components/govuk/field.rb
72
+ - lib/ccs/components/govuk/field/input.rb
73
+ - lib/ccs/components/govuk/field/input/character_count.rb
74
+ - lib/ccs/components/govuk/field/input/file_upload.rb
75
+ - lib/ccs/components/govuk/field/input/select.rb
76
+ - lib/ccs/components/govuk/field/input/text_input.rb
77
+ - lib/ccs/components/govuk/field/input/text_input/fix.rb
78
+ - lib/ccs/components/govuk/field/input/textarea.rb
79
+ - lib/ccs/components/govuk/field/inputs.rb
80
+ - lib/ccs/components/govuk/field/inputs/checkboxes.rb
81
+ - lib/ccs/components/govuk/field/inputs/date_input.rb
82
+ - lib/ccs/components/govuk/field/inputs/date_input/item.rb
83
+ - lib/ccs/components/govuk/field/inputs/item.rb
84
+ - lib/ccs/components/govuk/field/inputs/item/checkbox.rb
85
+ - lib/ccs/components/govuk/field/inputs/item/checkbox/form.rb
86
+ - lib/ccs/components/govuk/field/inputs/item/checkbox/tag.rb
87
+ - lib/ccs/components/govuk/field/inputs/item/divider.rb
88
+ - lib/ccs/components/govuk/field/inputs/item/radio.rb
89
+ - lib/ccs/components/govuk/field/inputs/item/radio/form.rb
90
+ - lib/ccs/components/govuk/field/inputs/item/radio/tag.rb
91
+ - lib/ccs/components/govuk/field/inputs/radios.rb
92
+ - lib/ccs/components/govuk/fieldset.rb
93
+ - lib/ccs/components/govuk/fieldset/legend.rb
94
+ - lib/ccs/components/govuk/footer.rb
95
+ - lib/ccs/components/govuk/footer/link.rb
96
+ - lib/ccs/components/govuk/footer/meta.rb
97
+ - lib/ccs/components/govuk/footer/navigation.rb
98
+ - lib/ccs/components/govuk/form_group.rb
99
+ - lib/ccs/components/govuk/header.rb
100
+ - lib/ccs/components/govuk/header/link.rb
101
+ - lib/ccs/components/govuk/header/navigation.rb
102
+ - lib/ccs/components/govuk/hint.rb
103
+ - lib/ccs/components/govuk/inset_text.rb
104
+ - lib/ccs/components/govuk/label.rb
105
+ - lib/ccs/components/govuk/notification_banner.rb
106
+ - lib/ccs/components/govuk/pagination.rb
107
+ - lib/ccs/components/govuk/pagination/increment.rb
108
+ - lib/ccs/components/govuk/pagination/increment/next.rb
109
+ - lib/ccs/components/govuk/pagination/increment/previous.rb
110
+ - lib/ccs/components/govuk/pagination/item.rb
111
+ - lib/ccs/components/govuk/pagination/item/ellipsis.rb
112
+ - lib/ccs/components/govuk/pagination/item/form.rb
113
+ - lib/ccs/components/govuk/pagination/item/tag.rb
114
+ - lib/ccs/components/govuk/panel.rb
115
+ - lib/ccs/components/govuk/phase_banner.rb
116
+ - lib/ccs/components/govuk/skip_link.rb
117
+ - lib/ccs/components/govuk/step_by_step_navigation.rb
118
+ - lib/ccs/components/govuk/step_by_step_navigation/section.rb
119
+ - lib/ccs/components/govuk/step_by_step_navigation/section/content.rb
120
+ - lib/ccs/components/govuk/step_by_step_navigation/section/content/list.rb
121
+ - lib/ccs/components/govuk/step_by_step_navigation/section/content/list/item.rb
122
+ - lib/ccs/components/govuk/step_by_step_navigation/section/content/paragraph.rb
123
+ - lib/ccs/components/govuk/step_by_step_navigation/section/heading.rb
124
+ - lib/ccs/components/govuk/summary_list.rb
125
+ - lib/ccs/components/govuk/summary_list/action/link.rb
126
+ - lib/ccs/components/govuk/summary_list/card.rb
127
+ - lib/ccs/components/govuk/summary_list/card/actions.rb
128
+ - lib/ccs/components/govuk/summary_list/card/title.rb
129
+ - lib/ccs/components/govuk/summary_list/row.rb
130
+ - lib/ccs/components/govuk/summary_list/row/actions.rb
131
+ - lib/ccs/components/govuk/summary_list/row/key.rb
132
+ - lib/ccs/components/govuk/summary_list/row/value.rb
133
+ - lib/ccs/components/govuk/table.rb
134
+ - lib/ccs/components/govuk/table/body/data_cell.rb
135
+ - lib/ccs/components/govuk/table/body/head_cell.rb
136
+ - lib/ccs/components/govuk/table/header/head_cell.rb
137
+ - lib/ccs/components/govuk/tabs.rb
138
+ - lib/ccs/components/govuk/tabs/panel.rb
139
+ - lib/ccs/components/govuk/tabs/tab.rb
140
+ - lib/ccs/components/govuk/tag.rb
141
+ - lib/ccs/components/govuk/warning_text.rb
169
142
  - lib/ccs/frontend_helpers.rb
170
143
  - lib/ccs/frontend_helpers/ccs_frontend.rb
171
- - lib/ccs/frontend_helpers/ccs_frontend/dashboard_panels.rb
144
+ - lib/ccs/frontend_helpers/ccs_frontend/dashboard_section.rb
172
145
  - lib/ccs/frontend_helpers/ccs_frontend/footer.rb
173
146
  - lib/ccs/frontend_helpers/ccs_frontend/header.rb
174
- - lib/ccs/frontend_helpers/ccs_frontend/logo.rb
175
147
  - lib/ccs/frontend_helpers/govuk_frontend.rb
176
148
  - lib/ccs/frontend_helpers/govuk_frontend/accordion.rb
177
149
  - lib/ccs/frontend_helpers/govuk_frontend/back_link.rb
178
150
  - lib/ccs/frontend_helpers/govuk_frontend/breadcrumbs.rb
179
151
  - lib/ccs/frontend_helpers/govuk_frontend/button.rb
152
+ - lib/ccs/frontend_helpers/govuk_frontend/character_count.rb
153
+ - lib/ccs/frontend_helpers/govuk_frontend/checkboxes.rb
180
154
  - lib/ccs/frontend_helpers/govuk_frontend/cookie_banner.rb
155
+ - lib/ccs/frontend_helpers/govuk_frontend/date_input.rb
181
156
  - lib/ccs/frontend_helpers/govuk_frontend/details.rb
182
157
  - lib/ccs/frontend_helpers/govuk_frontend/error_message.rb
183
158
  - lib/ccs/frontend_helpers/govuk_frontend/error_summary.rb
184
- - lib/ccs/frontend_helpers/govuk_frontend/field.rb
185
- - lib/ccs/frontend_helpers/govuk_frontend/field/character_count.rb
186
- - lib/ccs/frontend_helpers/govuk_frontend/field/checkboxes.rb
187
- - lib/ccs/frontend_helpers/govuk_frontend/field/date_input.rb
188
- - lib/ccs/frontend_helpers/govuk_frontend/field/file_upload.rb
189
- - lib/ccs/frontend_helpers/govuk_frontend/field/input.rb
190
- - lib/ccs/frontend_helpers/govuk_frontend/field/radios.rb
191
- - lib/ccs/frontend_helpers/govuk_frontend/field/select.rb
192
- - lib/ccs/frontend_helpers/govuk_frontend/field/textarea.rb
193
159
  - lib/ccs/frontend_helpers/govuk_frontend/fieldset.rb
160
+ - lib/ccs/frontend_helpers/govuk_frontend/file_upload.rb
194
161
  - lib/ccs/frontend_helpers/govuk_frontend/footer.rb
195
162
  - lib/ccs/frontend_helpers/govuk_frontend/form_group.rb
196
163
  - lib/ccs/frontend_helpers/govuk_frontend/header.rb
197
164
  - lib/ccs/frontend_helpers/govuk_frontend/hint.rb
165
+ - lib/ccs/frontend_helpers/govuk_frontend/input.rb
198
166
  - lib/ccs/frontend_helpers/govuk_frontend/inset_text.rb
199
167
  - lib/ccs/frontend_helpers/govuk_frontend/label.rb
200
168
  - lib/ccs/frontend_helpers/govuk_frontend/notification_banner.rb
201
169
  - lib/ccs/frontend_helpers/govuk_frontend/pagination.rb
202
170
  - lib/ccs/frontend_helpers/govuk_frontend/panel.rb
203
171
  - lib/ccs/frontend_helpers/govuk_frontend/phase_banner.rb
172
+ - lib/ccs/frontend_helpers/govuk_frontend/radios.rb
173
+ - lib/ccs/frontend_helpers/govuk_frontend/select.rb
204
174
  - lib/ccs/frontend_helpers/govuk_frontend/skip_link.rb
205
175
  - lib/ccs/frontend_helpers/govuk_frontend/step_by_step_navigation.rb
206
176
  - lib/ccs/frontend_helpers/govuk_frontend/summary_list.rb
207
177
  - lib/ccs/frontend_helpers/govuk_frontend/table.rb
208
178
  - lib/ccs/frontend_helpers/govuk_frontend/tabs.rb
209
179
  - lib/ccs/frontend_helpers/govuk_frontend/tag.rb
180
+ - lib/ccs/frontend_helpers/govuk_frontend/textarea.rb
210
181
  - lib/ccs/frontend_helpers/govuk_frontend/warning_text.rb
211
- - lib/ccs/frontend_helpers/shared_methods.rb
212
182
  - lib/ccs/frontend_helpers/version.rb
213
183
  - sig/ccs/frontend_helpers.rbs
214
184
  homepage: https://github.com/tim-s-ccs/ccs-frontend_helpers
@@ -219,7 +189,7 @@ metadata:
219
189
  source_code_uri: https://github.com/tim-s-ccs/ccs-frontend_helpers
220
190
  changelog_uri: https://github.com/tim-s-ccs/ccs-frontend_helpers/blob/main/CHANGELOG.md
221
191
  rubygems_mfa_required: 'true'
222
- post_install_message:
192
+ post_install_message:
223
193
  rdoc_options: []
224
194
  require_paths:
225
195
  - lib
@@ -227,15 +197,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
227
197
  requirements:
228
198
  - - ">="
229
199
  - !ruby/object:Gem::Version
230
- version: 2.7.0
200
+ version: 3.0.0
231
201
  required_rubygems_version: !ruby/object:Gem::Requirement
232
202
  requirements:
233
- - - ">="
203
+ - - ">"
234
204
  - !ruby/object:Gem::Version
235
- version: '0'
205
+ version: 1.3.1
236
206
  requirements: []
237
- rubygems_version: 3.1.6
238
- signing_key:
207
+ rubygems_version: 3.4.10
208
+ signing_key:
239
209
  specification_version: 4
240
210
  summary: Gem containing view helpers for CCS Ruby on Rails projects
241
211
  test_files: []
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'action_view'
4
-
5
- require_relative '../shared_methods'
6
-
7
- module CCS
8
- module FrontendHelpers
9
- module CCSFrontend
10
- # = CCS Dashboard Panels
11
- #
12
- # This helper is used for generating the dashboard panels component
13
-
14
- module DashboardPanels
15
- include SharedMethods
16
- include ActionView::Context
17
- include ActionView::Helpers::TagHelper
18
- include ActionView::Helpers::TextHelper
19
- include ActionView::Helpers::UrlHelper
20
-
21
- # Generates the HTML for the CCS Dashboard Panels component
22
- #
23
- # @param panel_items [Array] the panel items, see {ccs_dashboard_panels_item}
24
- # @param title_text [String] text for the title of a dashboard panels section
25
- # @param ccs_dashboard_panels_options [Hash] options that will be used in customising the HTML
26
- #
27
- # @option ccs_dashboard_panels_options [String] :classes additional CSS classes for the dashboard panels HTML
28
- # @option ccs_dashboard_panels_options [String] :width (default: 'full') the width of the dashbaord panel section
29
- # @option ccs_dashboard_panels_options [Hash] :attributes additional attributes that will added as part of the HTML
30
- #
31
- # @return [ActiveSupport::SafeBuffer] the HTML for the CCS Dashboard Panels
32
- # which can then be rendered on the page
33
-
34
- def ccs_dashboard_panels(panel_items, title_text = nil, **ccs_dashboard_panels_options)
35
- initialise_attributes_and_set_classes(ccs_dashboard_panels_options, 'ccs-dashboard-panels')
36
-
37
- tag.div(**ccs_dashboard_panels_options[:attributes]) do
38
- tag.div(class: 'govuk-grid-row') do
39
- tag.div(class: "govuk-grid-column-#{ccs_dashboard_panels_options[:width] || 'full'}") do
40
- if title_text
41
- concat(tag.h2(title_text, class: 'ccs-dashboard-panels__heading govuk-heading-m'))
42
- concat(tag.hr(class: 'ccs-dashboard-panels__heading-section-break govuk-section-break govuk-section-break--visible'))
43
- end
44
- concat(tag.div(class: 'ccs-dashboard-panels__container') do
45
- tag.div(class: 'govuk-grid-row') do
46
- panel_items.each { |panel_item| concat(ccs_dashboard_panels_item(panel_item)) }
47
- end
48
- end)
49
- end
50
- end
51
- end
52
- end
53
-
54
- private
55
-
56
- # Generates the HTML for the a dashboard panel item in {ccs_dashboard_panels}
57
- #
58
- # @param panel_item [Hash] options for the dashboard panel item
59
- #
60
- # @option panel_item [String] :title the title for the dashboard panel
61
- # @option panel_item [String] :href the href for the dashboard panel
62
- # @option panel_item [String] :description the description text for the dashboard panel
63
- # @option panel_item [String] :width (default: 'one-third') the width of the dashboard panel item
64
- # @option panel_item [Hash] :attributes additional attributes that will added as part of the HTML
65
- #
66
- # @return [ActiveSupport::SafeBuffer] the HTML for a panel item in {ccs_dashboard_panels}
67
-
68
- def ccs_dashboard_panels_item(panel_item)
69
- (panel_item[:attributes] ||= {})[:class] = "ccs-dashboard-panels__item govuk-grid-column-#{panel_item[:width] || 'one-third'}"
70
-
71
- tag.div(**panel_item[:attributes]) do
72
- concat(link_to(panel_item[:title], panel_item[:href], class: 'ccs-dashboard-panels__item-title'))
73
- concat(tag.p(panel_item[:description], class: 'ccs-dashboard-panels__item-description'))
74
- end
75
- end
76
- end
77
- end
78
- end
79
- end