govuk_publishing_components 21.57.1 → 21.60.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +31 -6
- data/app/assets/javascripts/component_guide/accessibility-test.js +21 -21
- data/app/assets/javascripts/component_guide/filter-components.js +19 -19
- data/app/assets/javascripts/component_guide/visual-regression.js +38 -37
- data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +2 -2
- data/app/assets/javascripts/govuk_publishing_components/components/details.js +6 -4
- data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +4 -4
- data/app/assets/javascripts/govuk_publishing_components/lib/auto-track-event.js +31 -0
- data/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js +24 -24
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +17 -17
- data/app/assets/stylesheets/component_guide/application.scss +15 -15
- data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +0 -8
- data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +4 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +1 -8
- data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +0 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +4 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +3 -8
- data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +5 -8
- data/app/assets/stylesheets/govuk_publishing_components/components/_list.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +4 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +2 -2
- data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +7 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +0 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +1 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +8 -12
- data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +21 -24
- data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +4 -8
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +6 -6
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -4
- data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav.scss +2 -10
- data/app/controllers/govuk_publishing_components/audit_controller.rb +52 -0
- data/app/controllers/govuk_publishing_components/component_guide_controller.rb +2 -1
- data/app/models/govuk_publishing_components/audit_applications.rb +117 -0
- data/app/models/govuk_publishing_components/audit_comparer.rb +198 -0
- data/app/models/govuk_publishing_components/audit_components.rb +158 -0
- data/app/views/govuk_publishing_components/audit/show.html.erb +258 -0
- data/app/views/govuk_publishing_components/component_guide/index.html.erb +9 -4
- data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_list.html.erb +26 -0
- data/app/views/govuk_publishing_components/components/_machine_readable_metadata.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_radio.html.erb +13 -5
- data/app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/docs/checkboxes.yml +4 -0
- data/app/views/govuk_publishing_components/components/docs/govspeak.yml +45 -0
- data/app/views/govuk_publishing_components/components/docs/heading.yml +6 -3
- data/app/views/govuk_publishing_components/components/docs/image_card.yml +13 -1
- data/app/views/govuk_publishing_components/components/docs/list.yml +64 -0
- data/app/views/govuk_publishing_components/components/docs/radio.yml +4 -0
- data/config/routes.rb +1 -0
- data/lib/govuk_publishing_components/presenters/checkboxes_helper.rb +15 -7
- data/lib/govuk_publishing_components/presenters/heading_helper.rb +21 -1
- data/lib/govuk_publishing_components/presenters/image_card_helper.rb +2 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/package.json +145 -220
- data/node_modules/govuk-frontend/govuk/all.js +160 -57
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +16 -8
- data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +1 -0
- data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -5
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +68 -21
- data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -27
- data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -3
- data/node_modules/govuk-frontend/govuk/components/footer/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +2 -2
- data/node_modules/govuk-frontend/govuk/components/hint/template.njk +2 -2
- data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -3
- data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/input/template.njk +1 -0
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +76 -28
- data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -3
- data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +1 -0
- data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -3
- data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +1 -0
- data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +4 -2
- data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +1 -1
- data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +2 -2
- data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +1 -1
- data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +4 -1
- data/node_modules/govuk-frontend/package.json +14 -81
- data/node_modules/jquery/package.json +44 -116
- metadata +46 -66
- data/Rakefile +0 -32
@@ -2,12 +2,13 @@
|
|
2
2
|
|
3
3
|
<div class="component-markdown">
|
4
4
|
<p>Components are packages of template, style, behaviour and documentation that live in your application.</p>
|
5
|
-
<p>
|
5
|
+
<p>See the <a href="https://github.com/alphagov/govuk_publishing_components">govuk_publishing_components gem</a> for further details, or <a href="https://docs.publishing.service.gov.uk/manual/components.html#component-guides">a list of all component guides</a>.</p>
|
6
6
|
<ul>
|
7
|
-
<li
|
8
|
-
|
7
|
+
<li>Read about how to <a href="https://github.com/alphagov/govuk_publishing_components/blob/master/docs/publishing-to-rubygems.md">release a new version of the gem</a></li>
|
8
|
+
<% if ENV["MAIN_COMPONENT_GUIDE"] %>
|
9
|
+
<li><a href="/component-guide/audit">View component audits</a></li>
|
10
|
+
<% end %>
|
9
11
|
</ul>
|
10
|
-
<p>See the <a href="https://github.com/alphagov/govuk_publishing_components">govuk_publishing_components gem</a> for further details, or <a href="https://docs.publishing.service.gov.uk/manual/components.html#component-guides">a list of all component guides</a>.</p>
|
11
12
|
</div>
|
12
13
|
|
13
14
|
<form role="search" data-module="filter-components" class="component-search">
|
@@ -86,3 +87,7 @@
|
|
86
87
|
</li>
|
87
88
|
<% end %>
|
88
89
|
</ul>
|
90
|
+
|
91
|
+
<div class="component-markdown">
|
92
|
+
<p class="govuk-body">If you cannot find a suitable component consider extending an existing component or <a href="https://github.com/alphagov/govuk_publishing_components/blob/master/docs/develop-component.md">creating a new one</a>.</p>
|
93
|
+
</div>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<% if card_helper.href || card_helper.extra_links.any? %>
|
8
8
|
<div class="gem-c-image-card <%= "gem-c-image-card--large" if card_helper.large %> <%= brand_helper.brand_class %>"
|
9
9
|
<%= "data-module=track-click" if card_helper.is_tracking? %>
|
10
|
-
|
10
|
+
<%= "lang=#{card_helper.lang}" if card_helper.lang %>>
|
11
11
|
<%= card_helper.image %>
|
12
12
|
|
13
13
|
<div class="gem-c-image-card__text-wrapper">
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%
|
2
|
+
id ||= nil
|
3
|
+
extra_spacing ||= nil
|
4
|
+
list_type ||= "unordered"
|
5
|
+
visible_counters ||= nil
|
6
|
+
items ||= []
|
7
|
+
aria_label ||= nil
|
8
|
+
|
9
|
+
classes = %w(gem-c-list govuk-list)
|
10
|
+
classes << "govuk-list--bullet" if visible_counters && list_type === "unordered"
|
11
|
+
classes << "govuk-list--number" if visible_counters && list_type === "number"
|
12
|
+
classes << "govuk-list--spaced" if extra_spacing
|
13
|
+
|
14
|
+
# Default list type is unordered list.
|
15
|
+
list_tag = "ul"
|
16
|
+
|
17
|
+
# Set to ordered list to override default.
|
18
|
+
list_tag = "ol" if list_type === "number"
|
19
|
+
%>
|
20
|
+
<% if items.any? %>
|
21
|
+
<%= content_tag list_tag, class: classes, id: id, "aria-label": aria_label do %>
|
22
|
+
<% items.each do |item| %>
|
23
|
+
<li><%= sanitize(item) %></li>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<% structured_data = GovukPublishingComponents::Presenters::SchemaOrg.new(page).structured_data %>
|
10
10
|
|
11
11
|
<script type="application/ld+json">
|
12
|
-
<%= raw structured_data
|
12
|
+
<%= raw JSON.pretty_generate(structured_data) %>
|
13
13
|
</script>
|
14
14
|
|
15
15
|
<link rel="canonical" href="<%= page.canonical_url %>" />
|
@@ -6,10 +6,18 @@
|
|
6
6
|
label ||= nil
|
7
7
|
heading ||= nil
|
8
8
|
heading_caption ||= nil
|
9
|
+
heading_size ||= nil
|
9
10
|
small ||= false
|
10
11
|
inline ||= false
|
11
12
|
is_page_heading ||= false
|
12
|
-
|
13
|
+
|
14
|
+
if ['s', 'm', 'l', 'xl'].include?(heading_size)
|
15
|
+
size = heading_size
|
16
|
+
elsif is_page_heading
|
17
|
+
size = 'xl'
|
18
|
+
else
|
19
|
+
size = 'm'
|
20
|
+
end
|
13
21
|
|
14
22
|
description ||= nil
|
15
23
|
hint ||= nil
|
@@ -28,7 +36,7 @@
|
|
28
36
|
radio_classes << "govuk-radios--inline" if inline
|
29
37
|
|
30
38
|
legend_classes = %w(govuk-fieldset__legend)
|
31
|
-
legend_classes << "govuk-fieldset__legend--#{
|
39
|
+
legend_classes << "govuk-fieldset__legend--#{size}"
|
32
40
|
|
33
41
|
aria = "#{hint_id} #{"#{error_id}" if has_error}".strip if hint or has_error
|
34
42
|
|
@@ -40,9 +48,9 @@
|
|
40
48
|
|
41
49
|
<% if heading.present? %>
|
42
50
|
<% if is_page_heading %>
|
43
|
-
<%= tag.legend class:
|
44
|
-
<%= tag.span(heading_caption, class: "govuk-caption
|
45
|
-
<%= tag.h1 heading, class: "gem-c-
|
51
|
+
<%= tag.legend class: legend_classes do %>
|
52
|
+
<%= tag.span(heading_caption, class: "govuk-caption-#{size}") if heading_caption.present? %>
|
53
|
+
<%= tag.h1 heading, class: "gem-c-radio__heading-text govuk-fieldset__heading" %>
|
46
54
|
<% end %>
|
47
55
|
<% else %>
|
48
56
|
<%= tag.legend heading, class: legend_classes %>
|
@@ -25,14 +25,14 @@
|
|
25
25
|
%>
|
26
26
|
<% if title %>
|
27
27
|
<script type="application/ld+json">
|
28
|
-
<%= raw breadcrumb_presenter.structured_data
|
28
|
+
<%= raw JSON.pretty_generate(breadcrumb_presenter.structured_data) %>
|
29
29
|
</script>
|
30
30
|
|
31
31
|
<div class="<%= classes %>" data-module="track-click">
|
32
32
|
<span class="gem-c-step-nav-header__part-of">Part of</span>
|
33
33
|
<% if path %>
|
34
34
|
<a href="<%= path %>"
|
35
|
-
class="gem-c-step-nav-header__title"
|
35
|
+
class="gem-c-step-nav-header__title govuk-link"
|
36
36
|
data-track-category="<%= tracking_category %>"
|
37
37
|
data-track-action="<%= tracking_action %>"
|
38
38
|
data-track-label="<%= tracking_label %>"
|
@@ -184,6 +184,10 @@ examples:
|
|
184
184
|
- label: "Blue"
|
185
185
|
value: "blue"
|
186
186
|
with_custom_heading_size:
|
187
|
+
description: |
|
188
|
+
This allows the size of the legend to be changed. Valid options are s, m, l, xl, defaulting to m if no option is passed.
|
189
|
+
|
190
|
+
If the is_page_heading option is true and heading_size is not set, the text size will be xl.
|
187
191
|
data:
|
188
192
|
name: "favourite_colour"
|
189
193
|
heading: "What is your favourite colour?"
|
@@ -190,6 +190,51 @@ examples:
|
|
190
190
|
</tr>
|
191
191
|
</tbody>
|
192
192
|
</table>
|
193
|
+
chart_with_colours:
|
194
|
+
data:
|
195
|
+
block: |
|
196
|
+
<table class="js-barchart-table mc-auto-outdent">
|
197
|
+
<thead>
|
198
|
+
<tr>
|
199
|
+
<th scope="col">Number position</th>
|
200
|
+
<th scope="col">Apples</th>
|
201
|
+
<th scope="col">Oranges</th>
|
202
|
+
<th scope="col">Bananas</th>
|
203
|
+
<th scope="col">Pears</th>
|
204
|
+
<th scope="col">Grapes</th>
|
205
|
+
<th scope="col">Strawberries</th>
|
206
|
+
<th scope="col">Plums</th>
|
207
|
+
<th scope="col">Apricots</th>
|
208
|
+
<th scope="col">Pineapples</th>
|
209
|
+
</tr>
|
210
|
+
</thead>
|
211
|
+
<tbody>
|
212
|
+
<tr>
|
213
|
+
<td>Numbers inside bar</td>
|
214
|
+
<td>16</td>
|
215
|
+
<td>48</td>
|
216
|
+
<td>39</td>
|
217
|
+
<td>50</td>
|
218
|
+
<td>24</td>
|
219
|
+
<td>10</td>
|
220
|
+
<td>62</td>
|
221
|
+
<td>29</td>
|
222
|
+
<td>81</td>
|
223
|
+
</tr>
|
224
|
+
<tr>
|
225
|
+
<td>Numbers outside bar</td>
|
226
|
+
<td>2</td>
|
227
|
+
<td>1</td>
|
228
|
+
<td>2</td>
|
229
|
+
<td>1</td>
|
230
|
+
<td>1</td>
|
231
|
+
<td>3</td>
|
232
|
+
<td>3</td>
|
233
|
+
<td>1</td>
|
234
|
+
<td>2</td>
|
235
|
+
</tr>
|
236
|
+
</tbody>
|
237
|
+
</table>
|
193
238
|
address:
|
194
239
|
data:
|
195
240
|
block: |
|
@@ -24,10 +24,13 @@ examples:
|
|
24
24
|
text: 'Original consultation'
|
25
25
|
heading_level: 3
|
26
26
|
different_font_sizes:
|
27
|
-
description:
|
27
|
+
description: |
|
28
|
+
Set a different font size for the heading. Uses the [GOV.UK Frontend heading sizes](https://design-system.service.gov.uk/styles/typography/#headings) but defaults to 27px for legacy reasons. Valid options are `xl`, `l`, `m` and `s`.
|
29
|
+
|
30
|
+
This option is not tied to the heading_level option in order to give flexibility.
|
28
31
|
data:
|
29
|
-
text: '
|
30
|
-
font_size:
|
32
|
+
text: 'One big heading'
|
33
|
+
font_size: "xl"
|
31
34
|
with_id_attribute:
|
32
35
|
data:
|
33
36
|
text: 'Detail of outcome'
|
@@ -9,6 +9,7 @@ accessibility_criteria: |
|
|
9
9
|
|
10
10
|
- include alt text for images when present
|
11
11
|
- not have duplicate links for the image and the text
|
12
|
+
- if the contents of the component are in a different language than the rest of the document, include an appropriate `lang` attribute to correctly identify the language used in the component
|
12
13
|
shared_accessibility_criteria:
|
13
14
|
- link
|
14
15
|
examples:
|
@@ -191,7 +192,7 @@ examples:
|
|
191
192
|
description: Can be used for links to people pages to indicate payment type
|
192
193
|
data:
|
193
194
|
href: "/government/people/"
|
194
|
-
image_src: "
|
195
|
+
image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/62756/s300_courts-of-justice.JPG"
|
195
196
|
image_alt: "some meaningful alt text please"
|
196
197
|
context:
|
197
198
|
text: "The Rt Hon"
|
@@ -204,3 +205,14 @@ examples:
|
|
204
205
|
}
|
205
206
|
]
|
206
207
|
extra_links_no_indent: true
|
208
|
+
with_lang:
|
209
|
+
description: |
|
210
|
+
Pass through an appropriate `lang` to set a HTML lang attribute for the component.
|
211
|
+
|
212
|
+
The `lang` attribute **must** be set to a [valid BCP47 string](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang#Language_tag_syntax). A valid code can be the two or three letter language code - for example, English is `en` or `eng`, Korean is `ko` or `kor` - but if in doubt please check.
|
213
|
+
data:
|
214
|
+
href: "/not-a-page"
|
215
|
+
image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/62756/s300_courts-of-justice.JPG"
|
216
|
+
image_alt: "some meaningful alt text please"
|
217
|
+
heading_text: Yr hyn rydym ni'n ei wneud
|
218
|
+
lang: cy
|
@@ -0,0 +1,64 @@
|
|
1
|
+
name: List
|
2
|
+
description: A list - unordered or ordered, with or without counters / bullet points.
|
3
|
+
body: |
|
4
|
+
This is an ordered or unordered list, with or without visible bullets / numbers.
|
5
|
+
|
6
|
+
The `items` parameter can include HTML to display - such as links or another
|
7
|
+
list. This HTML can either be directly coded or come from another component.
|
8
|
+
accessibility_criteria: |
|
9
|
+
The list must:
|
10
|
+
|
11
|
+
- inform the user how many items are in the list
|
12
|
+
- convey the content structure
|
13
|
+
- indicate the current page when contents span different pages, and not link to itself
|
14
|
+
|
15
|
+
The list may:
|
16
|
+
|
17
|
+
- include an `aria-label` to contextualise the list if helpful
|
18
|
+
govuk_frontend_components:
|
19
|
+
- list
|
20
|
+
examples:
|
21
|
+
default:
|
22
|
+
description: "The default is an unordered list with no bullet points or numbers."
|
23
|
+
data: &default-example-data
|
24
|
+
items:
|
25
|
+
- "Tony’s Chocolonely"
|
26
|
+
- '<a href="https://en.wikipedia.org/wiki/Cherry_Ripe_(chocolate_bar)" rel="noopener" class="govuk-link">Cherry Ripe</a>'
|
27
|
+
- "Snickers"
|
28
|
+
- "Chomp"
|
29
|
+
- "Penguin"
|
30
|
+
- "Boost"
|
31
|
+
unordered_list_with_aria-label:
|
32
|
+
description: "A list with an aria-label"
|
33
|
+
data:
|
34
|
+
aria_label: "A list of delicious chocolate bars."
|
35
|
+
<<: *default-example-data
|
36
|
+
unordered_list_with_bullet_points:
|
37
|
+
description: "An unordered list with visible bullet points."
|
38
|
+
data:
|
39
|
+
visible_counters: true
|
40
|
+
<<: *default-example-data
|
41
|
+
ordered_list_without_numbers:
|
42
|
+
description: "This is an ordered list where the numbers aren't visible."
|
43
|
+
data:
|
44
|
+
list_type: "number"
|
45
|
+
<<: *default-example-data
|
46
|
+
ordered_list_with_numbers:
|
47
|
+
description: |
|
48
|
+
This is an ordered list with the numbers visible.
|
49
|
+
data:
|
50
|
+
list_type: "number"
|
51
|
+
visible_counters: true
|
52
|
+
<<: *default-example-data
|
53
|
+
with_extra_spacing:
|
54
|
+
description: |
|
55
|
+
Increases the amount of spacing between the list items.
|
56
|
+
data:
|
57
|
+
extra_spacing: true
|
58
|
+
<<: *default-example-data
|
59
|
+
with_id_attribute:
|
60
|
+
description: |
|
61
|
+
Sets the `id` on the `ul` or `ol` element.
|
62
|
+
data:
|
63
|
+
id: 'super-fantastic-chocolate-list'
|
64
|
+
<<: *default-example-data
|
@@ -183,6 +183,10 @@ examples:
|
|
183
183
|
- value: "blue"
|
184
184
|
text: "Blue"
|
185
185
|
with_custom_heading_size:
|
186
|
+
description: |
|
187
|
+
This allows the size of the legend to be changed. Valid options are s, m, l, xl, defaulting to m if no option is passed.
|
188
|
+
|
189
|
+
If the is_page_heading option is true and heading_size is not set, the text size will be xl.
|
186
190
|
data:
|
187
191
|
name: "radio-group-description"
|
188
192
|
heading: "What is your favourite colour?"
|
data/config/routes.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
GovukPublishingComponents::Engine.routes.draw do
|
2
|
+
get "/audit" => "audit#show", as: :audit
|
2
3
|
root to: "component_guide#index", as: :component_guide
|
3
4
|
get ":component/preview" => "component_guide#preview", as: :component_preview_all
|
4
5
|
get ":component/:example/preview" => "component_guide#preview", as: :component_preview
|
@@ -14,7 +14,6 @@ module GovukPublishingComponents
|
|
14
14
|
:id,
|
15
15
|
:hint_text,
|
16
16
|
:description,
|
17
|
-
:heading_size,
|
18
17
|
:heading_caption,
|
19
18
|
:has_exclusive
|
20
19
|
|
@@ -35,9 +34,8 @@ module GovukPublishingComponents
|
|
35
34
|
|
36
35
|
@id = options[:id] || "checkboxes-#{SecureRandom.hex(4)}"
|
37
36
|
@heading = options[:heading] || nil
|
38
|
-
@heading_size = options[:heading_size]
|
39
|
-
@heading_size = "m" unless %w[s m l xl].include?(@heading_size)
|
40
37
|
@heading_caption = options[:heading_caption] || nil
|
38
|
+
@heading_size = options[:heading_size] || nil
|
41
39
|
@is_page_heading = options[:is_page_heading]
|
42
40
|
@description = options[:description] || nil
|
43
41
|
@no_hint_text = options[:no_hint_text]
|
@@ -60,20 +58,30 @@ module GovukPublishingComponents
|
|
60
58
|
end
|
61
59
|
end
|
62
60
|
|
61
|
+
def size
|
62
|
+
if %w[s m l xl].include?(@heading_size)
|
63
|
+
@heading_size
|
64
|
+
elsif @is_page_heading
|
65
|
+
"xl"
|
66
|
+
else
|
67
|
+
"m"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
63
71
|
def heading_markup
|
64
72
|
return unless @heading.present?
|
65
73
|
|
66
74
|
if @is_page_heading
|
67
75
|
content_tag(
|
68
76
|
:legend,
|
69
|
-
class: "govuk-fieldset__legend govuk-fieldset__legend
|
77
|
+
class: "govuk-fieldset__legend govuk-fieldset__legend--#{size}",
|
70
78
|
) do
|
71
|
-
concat content_tag(:span, heading_caption, class: "govuk-caption
|
72
|
-
concat content_tag(:h1, @heading, class: "gem-c-
|
79
|
+
concat content_tag(:span, heading_caption, class: "govuk-caption-#{size}") if heading_caption.present?
|
80
|
+
concat content_tag(:h1, @heading, class: "gem-c-checkboxes__heading-text govuk-fieldset__heading")
|
73
81
|
end
|
74
82
|
else
|
75
83
|
classes = %w[govuk-fieldset__legend]
|
76
|
-
classes << "govuk-fieldset__legend--#{
|
84
|
+
classes << "govuk-fieldset__legend--#{size}"
|
77
85
|
classes << "gem-c-checkboxes__legend--hidden" if @visually_hide_heading
|
78
86
|
|
79
87
|
content_tag(:legend, @heading, class: classes)
|
@@ -7,12 +7,32 @@ module GovukPublishingComponents
|
|
7
7
|
@id = options[:id]
|
8
8
|
|
9
9
|
@classes = ""
|
10
|
-
@classes <<
|
10
|
+
@classes << heading_size(options[:font_size])
|
11
11
|
@classes << " gem-c-heading--mobile-top-margin" if options[:mobile_top_margin]
|
12
12
|
@classes << " gem-c-heading--padding" if options[:padding]
|
13
13
|
@classes << " gem-c-heading--border-top-#{options[:border_top]}" if [1, 2, 5].include? options[:border_top]
|
14
14
|
@classes << " gem-c-heading--inverse" if options[:inverse]
|
15
15
|
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def heading_size(option)
|
20
|
+
gem_class = "gem-c-heading--font-size-"
|
21
|
+
govuk_class = "govuk-heading-"
|
22
|
+
|
23
|
+
case option
|
24
|
+
when "xl"
|
25
|
+
"#{govuk_class}xl"
|
26
|
+
when "l"
|
27
|
+
"#{govuk_class}l"
|
28
|
+
when 24, "m"
|
29
|
+
"#{govuk_class}m"
|
30
|
+
when 19, "s"
|
31
|
+
"#{govuk_class}s"
|
32
|
+
else
|
33
|
+
"#{gem_class}27"
|
34
|
+
end
|
35
|
+
end
|
16
36
|
end
|
17
37
|
end
|
18
38
|
end
|
@@ -4,7 +4,7 @@ module GovukPublishingComponents
|
|
4
4
|
include ActionView::Helpers
|
5
5
|
include ActionView::Context
|
6
6
|
|
7
|
-
attr_reader :href, :href_data_attributes, :extra_links, :large, :extra_links_no_indent, :heading_text, :metadata
|
7
|
+
attr_reader :href, :href_data_attributes, :extra_links, :large, :extra_links_no_indent, :heading_text, :metadata, :lang
|
8
8
|
|
9
9
|
def initialize(local_assigns)
|
10
10
|
@href = local_assigns[:href]
|
@@ -18,6 +18,7 @@ module GovukPublishingComponents
|
|
18
18
|
@heading_text = local_assigns[:heading_text]
|
19
19
|
@extra_links_no_indent = local_assigns[:extra_links_no_indent]
|
20
20
|
@metadata = local_assigns[:metadata]
|
21
|
+
@lang = local_assigns[:lang]
|
21
22
|
end
|
22
23
|
|
23
24
|
def is_tracking?
|