govuk_publishing_components 21.57.0 → 21.60.1
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 +1 -9
- 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 +105 -0
- data/app/models/govuk_publishing_components/audit_comparer.rb +185 -0
- data/app/models/govuk_publishing_components/audit_components.rb +158 -0
- data/app/views/govuk_publishing_components/audit/show.html.erb +229 -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/_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/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/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>
|
@@ -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'
|
@@ -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
|
@@ -1,222 +1,147 @@
|
|
1
1
|
{
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
"keywords": [
|
148
|
-
"Accessibility",
|
149
|
-
"a11y",
|
150
|
-
"testing",
|
151
|
-
"unit",
|
152
|
-
"tdd",
|
153
|
-
"bdd",
|
154
|
-
"axe"
|
155
|
-
],
|
156
|
-
"license": "MPL-2.0",
|
157
|
-
"lint-staged": {
|
158
|
-
"*.{md,json,ts,html}": [
|
159
|
-
"prettier --write",
|
160
|
-
"git add"
|
161
|
-
],
|
162
|
-
"*.js": [
|
163
|
-
"eslint --fix",
|
164
|
-
"prettier --write",
|
165
|
-
"git add"
|
166
|
-
]
|
167
|
-
},
|
168
|
-
"main": "axe.js",
|
169
|
-
"maintainers": [
|
170
|
-
{
|
171
|
-
"name": "dequelabs",
|
172
|
-
"email": "labs@deque.com"
|
173
|
-
},
|
174
|
-
{
|
175
|
-
"name": "dylanb",
|
176
|
-
"email": "dylan@barrell.com"
|
177
|
-
},
|
178
|
-
{
|
179
|
-
"name": "marcysutton",
|
180
|
-
"email": "marcy.sutton@deque.com"
|
181
|
-
},
|
182
|
-
{
|
183
|
-
"name": "wilcofiers",
|
184
|
-
"email": "wilcofiers@gmail.com"
|
185
|
-
}
|
186
|
-
],
|
187
|
-
"name": "axe-core",
|
188
|
-
"optionalDependencies": {},
|
189
|
-
"readme": "ERROR: No README data found!",
|
190
|
-
"repository": {
|
191
|
-
"type": "git",
|
192
|
-
"url": "git+https://github.com/dequelabs/axe-core.git"
|
193
|
-
},
|
194
|
-
"scripts": {
|
195
|
-
"api-docs": "jsdoc --configure .jsdoc.json",
|
196
|
-
"build": "grunt",
|
197
|
-
"develop": "grunt dev --force",
|
198
|
-
"eslint": "eslint --color --format stylish '{lib,test,build,doc}/**/*.js' 'Gruntfile.js'",
|
199
|
-
"fmt": "prettier --write *.{json,md,js} **/*.ts './{.github,build,doc,lib,test}/**/*.{json,md,js,ts,html}'",
|
200
|
-
"imports-gen": "node ./build/imports-generator",
|
201
|
-
"next-release": "standard-version --scripts.prebump=./build/next-version.js --skip.commit=true --skip.tag=true",
|
202
|
-
"prepublishOnly": "grunt build && grunt file-exists",
|
203
|
-
"release": "standard-version -a",
|
204
|
-
"rule-gen": "node build/rule-generator",
|
205
|
-
"sri-update": "grunt build && node build/sri-update && git add sri-history.json",
|
206
|
-
"sri-validate": "node build/sri-update --validate",
|
207
|
-
"start": "npm run develop",
|
208
|
-
"test": "tsc && grunt test",
|
209
|
-
"test:examples": "node ./doc/examples/test-examples",
|
210
|
-
"test:headless": "node ./build/test/headless",
|
211
|
-
"test:locales": "mocha test/test-locales.js",
|
212
|
-
"test:rule-help-version": "mocha test/test-rule-help-version.js",
|
213
|
-
"version": "echo \"use 'npm run release' to bump axe-core version\" && exit 1"
|
214
|
-
},
|
215
|
-
"standard-version": {
|
216
|
-
"scripts": {
|
217
|
-
"postbump": "npm ci && npm run sri-update"
|
218
|
-
}
|
219
|
-
},
|
220
|
-
"typings": "axe.d.ts",
|
221
|
-
"version": "3.5.5"
|
2
|
+
"name": "axe-core",
|
3
|
+
"description": "Accessibility engine for automated Web UI testing",
|
4
|
+
"version": "3.5.5",
|
5
|
+
"license": "MPL-2.0",
|
6
|
+
"engines": {
|
7
|
+
"node": ">=4"
|
8
|
+
},
|
9
|
+
"contributors": [
|
10
|
+
{
|
11
|
+
"name": "David Sturley",
|
12
|
+
"organization": "Deque Systems, Inc.",
|
13
|
+
"url": "http://deque.com/"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"name": "Dylan Barrell",
|
17
|
+
"email": "dylan@barrell.com",
|
18
|
+
"organization": "Deque Systems, Inc.",
|
19
|
+
"url": "http://deque.com/"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"name": "Wilco Fiers",
|
23
|
+
"organization": "Deque Systems, Inc.",
|
24
|
+
"url": "http://deque.com/"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "Dian Fay",
|
28
|
+
"organization": "Deque Systems, Inc.",
|
29
|
+
"url": "http://deque.com/"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"name": "Marcy Sutton",
|
33
|
+
"organization": "Deque Systems, Inc.",
|
34
|
+
"url": "http://deque.com/"
|
35
|
+
}
|
36
|
+
],
|
37
|
+
"homepage": "https://www.deque.com/axe/",
|
38
|
+
"repository": {
|
39
|
+
"type": "git",
|
40
|
+
"url": "https://github.com/dequelabs/axe-core.git"
|
41
|
+
},
|
42
|
+
"keywords": [
|
43
|
+
"Accessibility",
|
44
|
+
"a11y",
|
45
|
+
"testing",
|
46
|
+
"unit",
|
47
|
+
"tdd",
|
48
|
+
"bdd",
|
49
|
+
"axe"
|
50
|
+
],
|
51
|
+
"main": "axe.js",
|
52
|
+
"typings": "axe.d.ts",
|
53
|
+
"standard-version": {
|
54
|
+
"scripts": {
|
55
|
+
"postbump": "npm ci && npm run sri-update"
|
56
|
+
}
|
57
|
+
},
|
58
|
+
"scripts": {
|
59
|
+
"start": "npm run develop",
|
60
|
+
"develop": "grunt dev --force",
|
61
|
+
"api-docs": "jsdoc --configure .jsdoc.json",
|
62
|
+
"imports-gen": "node ./build/imports-generator",
|
63
|
+
"build": "grunt",
|
64
|
+
"eslint": "eslint --color --format stylish '{lib,test,build,doc}/**/*.js' 'Gruntfile.js'",
|
65
|
+
"test:headless": "node ./build/test/headless",
|
66
|
+
"test": "tsc && grunt test",
|
67
|
+
"test:examples": "node ./doc/examples/test-examples",
|
68
|
+
"test:locales": "mocha test/test-locales.js",
|
69
|
+
"test:rule-help-version": "mocha test/test-rule-help-version.js",
|
70
|
+
"version": "echo \"use 'npm run release' to bump axe-core version\" && exit 1",
|
71
|
+
"prepublishOnly": "grunt build && grunt file-exists",
|
72
|
+
"release": "standard-version -a",
|
73
|
+
"rule-gen": "node build/rule-generator",
|
74
|
+
"next-release": "standard-version --scripts.prebump=./build/next-version.js --skip.commit=true --skip.tag=true",
|
75
|
+
"sri-update": "grunt build && node build/sri-update && git add sri-history.json",
|
76
|
+
"sri-validate": "node build/sri-update --validate",
|
77
|
+
"fmt": "prettier --write *.{json,md,js} **/*.ts './{.github,build,doc,lib,test}/**/*.{json,md,js,ts,html}'"
|
78
|
+
},
|
79
|
+
"devDependencies": {
|
80
|
+
"@babel/core": "^7.5.4",
|
81
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.5.4",
|
82
|
+
"@babel/polyfill": "^7.4.4",
|
83
|
+
"@babel/preset-env": "^7.5.4",
|
84
|
+
"@deque/dot": "^1.1.5",
|
85
|
+
"aria-query": "^3.0.0",
|
86
|
+
"axios": "^0.19.0",
|
87
|
+
"babelify": "^10.0.0",
|
88
|
+
"blanket": "~1.2.3",
|
89
|
+
"browserify": "^16.2.3",
|
90
|
+
"chai": "~4.2.0",
|
91
|
+
"clone": "~2.1.1",
|
92
|
+
"core-js": "^3.2.1",
|
93
|
+
"css-selector-parser": "^1.3.0",
|
94
|
+
"derequire": "^2.0.6",
|
95
|
+
"emoji-regex": "8.0.0",
|
96
|
+
"es6-promise": "^4.2.6",
|
97
|
+
"eslint": "^6.1.0",
|
98
|
+
"eslint-config-prettier": "^6.2.0",
|
99
|
+
"execa": "^2.0.2",
|
100
|
+
"fs-extra": "^8.0.1",
|
101
|
+
"globby": "^10.0.0",
|
102
|
+
"grunt": "^1.0.3",
|
103
|
+
"grunt-babel": "^8.0.0",
|
104
|
+
"grunt-contrib-clean": "^2.0.0",
|
105
|
+
"grunt-contrib-concat": "^1.0.1",
|
106
|
+
"grunt-contrib-connect": "^2.0.0",
|
107
|
+
"grunt-contrib-copy": "^1.0.0",
|
108
|
+
"grunt-contrib-uglify": "^4.0.0",
|
109
|
+
"grunt-contrib-watch": "^1.1.0",
|
110
|
+
"grunt-parallel": "^0.5.1",
|
111
|
+
"grunt-run": "^0.8.1",
|
112
|
+
"html-entities": "^1.2.0",
|
113
|
+
"husky": "^3.0.0",
|
114
|
+
"jquery": "^3.0.0",
|
115
|
+
"jsdoc": "^3.5.5",
|
116
|
+
"lint-staged": "^9.2.1",
|
117
|
+
"make-dir": "^3.0.0",
|
118
|
+
"markdown-table": "^1.1.2",
|
119
|
+
"memoizee": "^0.4.14",
|
120
|
+
"minami": "^1.2.3",
|
121
|
+
"mkdirp": "^0.5.1",
|
122
|
+
"mocha": "^6.1.2",
|
123
|
+
"mocha-headless-chrome": "^2.0.3",
|
124
|
+
"prettier": "^1.17.1",
|
125
|
+
"puppeteer": "^2.0.0",
|
126
|
+
"revalidator": "~0.3.1",
|
127
|
+
"selenium-webdriver": "~3.6.0",
|
128
|
+
"sinon": "^7.5.0",
|
129
|
+
"sri-toolbox": "^0.2.0",
|
130
|
+
"standard-version": "^7.0.0",
|
131
|
+
"typescript": "^3.5.3",
|
132
|
+
"uglify-js": "^3.4.4",
|
133
|
+
"weakmap-polyfill": "^2.0.0"
|
134
|
+
},
|
135
|
+
"dependencies": {},
|
136
|
+
"lint-staged": {
|
137
|
+
"*.{md,json,ts,html}": [
|
138
|
+
"prettier --write",
|
139
|
+
"git add"
|
140
|
+
],
|
141
|
+
"*.js": [
|
142
|
+
"eslint --fix",
|
143
|
+
"prettier --write",
|
144
|
+
"git add"
|
145
|
+
]
|
146
|
+
}
|
222
147
|
}
|