govuk_publishing_components 21.59.0 → 21.61.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -6
  3. data/app/assets/javascripts/component_guide/accessibility-test.js +21 -21
  4. data/app/assets/javascripts/component_guide/filter-components.js +19 -19
  5. data/app/assets/javascripts/component_guide/visual-regression.js +38 -37
  6. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +102 -73
  7. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +4 -4
  8. data/app/assets/javascripts/govuk_publishing_components/ie.js +2 -0
  9. data/app/assets/javascripts/govuk_publishing_components/lib/auto-track-event.js +31 -0
  10. data/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js +24 -24
  11. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +17 -17
  12. data/app/assets/javascripts/govuk_publishing_components/vendor/html5shiv-printshiv.js +4 -0
  13. data/app/assets/javascripts/govuk_publishing_components/vendor/json2.js +487 -0
  14. data/app/assets/stylesheets/component_guide/application.scss +19 -15
  15. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +0 -8
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +1 -1
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +4 -0
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +1 -8
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +0 -1
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +4 -5
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +3 -8
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +1 -1
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
  25. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +5 -8
  26. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +8 -0
  27. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-public.scss +4 -0
  28. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +87 -1
  29. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +4 -0
  30. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +2 -2
  31. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +46 -1
  32. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +0 -5
  33. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +1 -4
  34. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +8 -12
  35. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +21 -24
  36. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +4 -8
  37. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +2 -0
  38. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -4
  39. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +6 -6
  40. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +2 -0
  41. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +2 -0
  42. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +2 -0
  43. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
  44. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +2 -0
  45. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +1 -1
  46. data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +2 -0
  47. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -4
  48. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav.scss +2 -10
  49. data/app/controllers/govuk_publishing_components/audit_controller.rb +2 -2
  50. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +2 -2
  51. data/app/models/govuk_publishing_components/audit_applications.rb +45 -27
  52. data/app/models/govuk_publishing_components/audit_comparer.rb +77 -51
  53. data/app/models/govuk_publishing_components/audit_components.rb +25 -6
  54. data/app/models/govuk_publishing_components/component_example.rb +4 -0
  55. data/app/views/govuk_publishing_components/audit/show.html.erb +227 -190
  56. data/app/views/govuk_publishing_components/component_guide/component_doc/_component.html.erb +1 -0
  57. data/app/views/govuk_publishing_components/component_guide/index.html.erb +3 -1
  58. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +1 -1
  59. data/app/views/govuk_publishing_components/components/_image_card.html.erb +1 -1
  60. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +32 -21
  61. data/app/views/govuk_publishing_components/components/_layout_for_public.html.erb +76 -0
  62. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +39 -51
  63. data/app/views/govuk_publishing_components/components/_machine_readable_metadata.html.erb +1 -1
  64. data/app/views/govuk_publishing_components/components/_radio.html.erb +13 -5
  65. data/app/views/govuk_publishing_components/components/_search.html.erb +10 -5
  66. data/app/views/govuk_publishing_components/components/_share_links.html.erb +9 -9
  67. data/app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb +2 -2
  68. data/app/views/govuk_publishing_components/components/docs/checkboxes.yml +4 -0
  69. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +45 -0
  70. data/app/views/govuk_publishing_components/components/docs/heading.yml +6 -3
  71. data/app/views/govuk_publishing_components/components/docs/image_card.yml +13 -1
  72. data/app/views/govuk_publishing_components/components/docs/layout_footer.yml +17 -0
  73. data/app/views/govuk_publishing_components/components/docs/layout_for_admin.yml +5 -1
  74. data/app/views/govuk_publishing_components/components/docs/layout_for_public.yml +29 -0
  75. data/app/views/govuk_publishing_components/components/docs/layout_header.yml +34 -0
  76. data/app/views/govuk_publishing_components/components/docs/radio.yml +4 -0
  77. data/app/views/govuk_publishing_components/components/docs/search.yml +6 -0
  78. data/app/views/govuk_publishing_components/components/layout_header/_header_logo.html.erb +23 -0
  79. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +17 -0
  80. data/app/views/govuk_publishing_components/components/layout_header/_search.html.erb +9 -0
  81. data/config/initializers/assets.rb +8 -0
  82. data/lib/govuk_publishing_components.rb +1 -0
  83. data/lib/govuk_publishing_components/presenters/checkboxes_helper.rb +15 -7
  84. data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb +1 -0
  85. data/lib/govuk_publishing_components/presenters/heading_helper.rb +21 -1
  86. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +3 -2
  87. data/lib/govuk_publishing_components/presenters/public_layout_helper.rb +380 -0
  88. data/lib/govuk_publishing_components/version.rb +1 -1
  89. data/node_modules/axe-core/package.json +145 -220
  90. data/node_modules/govuk-frontend/govuk/all.js +160 -57
  91. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -4
  92. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +16 -8
  93. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +6 -0
  94. data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +1 -0
  95. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -5
  96. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +68 -21
  97. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +1 -1
  98. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +0 -27
  99. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -3
  100. data/node_modules/govuk-frontend/govuk/components/footer/template.njk +1 -1
  101. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  102. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +2 -2
  103. data/node_modules/govuk-frontend/govuk/components/hint/template.njk +2 -2
  104. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +0 -3
  105. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +6 -0
  106. data/node_modules/govuk-frontend/govuk/components/input/template.njk +1 -0
  107. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +76 -28
  108. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -3
  109. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +1 -0
  110. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -3
  111. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +6 -0
  112. data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +1 -0
  113. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +4 -2
  114. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +1 -1
  115. data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +2 -2
  116. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +33 -33
  117. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +4 -1
  118. data/node_modules/govuk-frontend/package.json +14 -81
  119. data/node_modules/jquery/package.json +44 -116
  120. metadata +34 -66
  121. data/Rakefile +0 -37
@@ -1,6 +1,7 @@
1
1
  <div class="component-guide-preview
2
2
  <% if example.right_to_left? %>direction-rtl<% end %>
3
3
  <% if example.dark_background? %>dark-background<% end %>
4
+ <% if example.black_background? %>black-background<% end %>
4
5
  <% if preview_page %>component-guide-preview--simple<% end %>" data-content="EXAMPLE">
5
6
  <%= render "govuk_publishing_components/component_guide/component_doc/component_output", example: example, component_doc: component_doc %>
6
7
  </div>
@@ -5,7 +5,9 @@
5
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
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
- <li><a href="/component-guide/audit">View component audits</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
12
  </div>
11
13
 
@@ -10,7 +10,7 @@
10
10
  %>
11
11
 
12
12
  <script type="application/ld+json">
13
- <%= raw breadcrumb_presenter.structured_data.to_json %>
13
+ <%= raw JSON.pretty_generate(breadcrumb_presenter.structured_data) %>
14
14
  </script>
15
15
 
16
16
  <div class="<%= classes %>" data-module="track-click">
@@ -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">
@@ -1,36 +1,47 @@
1
1
  <%
2
2
  meta ||= []
3
3
  navigation ||= []
4
+ with_border ||= false
4
5
  %>
5
- <footer class="gem-c-layout-footer govuk-footer" role="contentinfo">
6
+ <footer class="gem-c-layout-footer govuk-footer <%= "gem-c-layout-footer--border" if with_border %> role="contentinfo">
6
7
  <div class="govuk-width-container ">
7
8
  <% if navigation.any? %>
8
9
  <div class="govuk-footer__navigation">
9
10
  <% navigation.each do |item| %>
10
- <div class="govuk-footer__section">
11
- <h2 class="govuk-footer__heading govuk-heading-m"><%= item[:title] %></h2>
12
- <% if item[:items] %>
13
- <%
14
- list_classes = %w( govuk-footer__list )
15
- list_classes << "govuk-footer__list--columns-#{item[:columns]}" if item[:columns]
16
- %>
17
- <ul class="<%= list_classes.join(' ') %>">
18
- <% item[:items].each do |item| %>
19
- <% if item[:href] && item[:text] %>
20
- <li class="govuk-footer__list-item">
21
- <%
22
- attributes = { class: "govuk-footer__link" }.merge(item.fetch(:attributes, {}))
23
- attributes[:rel] = "noopener" if attributes[:target] == "_blank" && !attributes[:rel]
24
- %>
25
- <%= link_to item[:text], item[:href], attributes %>
26
- </li>
11
+ <% if item[:items] %>
12
+ <%
13
+ case item[:columns]
14
+ when 2
15
+ width_class = "govuk-grid-column-two-thirds"
16
+ when 3
17
+ width_class = "govuk-grid-column-full"
18
+ else
19
+ width_class = "govuk-grid-column-one-third"
20
+ end
21
+
22
+ list_classes = %w( govuk-footer__list )
23
+ list_classes << "govuk-footer__list--columns-#{item[:columns]}" if item[:columns]
24
+ %>
25
+ <div class="<%= width_class %>">
26
+ <h2 class="govuk-footer__heading govuk-heading-m"><%= item[:title] %></h2>
27
+ <ul class="<%= list_classes.join(' ') %>">
28
+ <% item[:items].each do |item| %>
29
+ <% if item[:href] && item[:text] %>
30
+ <li class="govuk-footer__list-item">
31
+ <%
32
+ attributes = { class: "govuk-footer__link" }.merge(item.fetch(:attributes, {}))
33
+ attributes[:rel] = "noopener" if attributes[:target] == "_blank" && !attributes[:rel]
34
+ %>
35
+ <%= link_to item[:text], item[:href], attributes %>
36
+ </li>
37
+ <% end %>
27
38
  <% end %>
28
- <% end %>
29
- </ul>
39
+ </ul>
40
+ </div>
30
41
  <% end %>
31
- </div>
32
42
  <% end %>
33
43
  </div>
44
+
34
45
  <hr class="govuk-footer__section-break">
35
46
  <% end %>
36
47
  <div class="govuk-footer__meta">
@@ -0,0 +1,76 @@
1
+ <%
2
+ title ||= "GOV.UK - The best place to find government services and information"
3
+ html_lang ||= "en"
4
+ full_width ||= false
5
+ omit_header ||= false
6
+ show_search = local_assigns.include?(:show_search) ? local_assigns[:show_search] : true
7
+ layout_helper = GovukPublishingComponents::Presenters::PublicLayoutHelper.new(local_assigns)
8
+ -%>
9
+ <!DOCTYPE html>
10
+ <!--[if lt IE 9]><html class="lte-ie8" lang="<%= html_lang %>"><![endif]-->
11
+ <!--[if gt IE 8]><!--><html lang="<%= html_lang %>"><!--<![endif]-->
12
+ <head>
13
+ <meta charset="utf-8" />
14
+ <title><%= title %></title>
15
+
16
+ <%= csrf_meta_tags %>
17
+
18
+ <%= stylesheet_link_tag "application", media: "all" %>
19
+ <%= stylesheet_link_tag "print", media: "print" %>
20
+ <!--[if lt IE 9]><%= javascript_include_tag "govuk_publishing_components/ie", integrity: true, crossorigin: "anonymous" %><![endif]-->
21
+ <link rel="shortcut icon" href="<%= asset_path 'favicon.ico' %>" type="image/x-icon" />
22
+ <link rel="mask-icon" href="<%= asset_path 'govuk-mask-icon.svg' %>" color="#0b0c0c">
23
+ <link rel="apple-touch-icon" sizes="180x180" href="<%= asset_path "govuk-apple-touch-icon-180x180.png" %>">
24
+ <link rel="apple-touch-icon" sizes="167x167" href="<%= asset_path "govuk-apple-touch-icon-167x167.png" %>">
25
+ <link rel="apple-touch-icon" sizes="152x152" href="<%= asset_path "govuk-apple-touch-icon-152x152.png" %>">
26
+ <link rel="apple-touch-icon" href="<%= asset_path "govuk-apple-touch-icon.png" %>">
27
+
28
+ <meta name="theme-color" content="#0b0c0c" />
29
+ <meta name="viewport" content="width=device-width, initial-scale=1">
30
+ <% # Ensure that older IE versions always render with the correct rendering engine %>
31
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
32
+
33
+ <% # The default og:image is added below :head so that scrapers see any custom metatags first, and this is just a fallback %>
34
+ <meta property="og:image" content="<%= asset_path "govuk-opengraph-image.png" %>">
35
+
36
+ <%= yield :head %>
37
+ </head>
38
+ <body class="gem-c-layout-for-public govuk-template__body">
39
+ <script>
40
+ document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');
41
+ </script>
42
+ <%= render "govuk_publishing_components/components/skip_link", {
43
+ href: "#content"
44
+ } %>
45
+
46
+ <%= render "govuk_publishing_components/components/cookie_banner" %>
47
+
48
+ <% unless omit_header %>
49
+ <%= render "govuk_publishing_components/components/layout_header", {
50
+ environment: "public",
51
+ search: show_search,
52
+ # layout-header will always have border-bottom, unless the layout is full width
53
+ remove_bottom_border: full_width,
54
+ } %>
55
+ <% end %>
56
+ <div class="<%= "govuk-width-container" unless full_width %>" id="content">
57
+ <%= yield :before_content %>
58
+ <main class="govuk-main-wrapper">
59
+ <%= yield %>
60
+ </main>
61
+ </div>
62
+
63
+ <div class="govuk-width-container">
64
+ <%= render "govuk_publishing_components/components/feedback" %>
65
+ </div>
66
+
67
+ <% unless local_assigns[:hide_footer_links] %>
68
+ <%= render "govuk_publishing_components/components/layout_footer", {
69
+ with_border: true,
70
+ navigation: layout_helper.footer_navigation,
71
+ meta: layout_helper.footer_meta,
72
+ } %>
73
+ <% end %>
74
+ <%= javascript_include_tag 'application' %>
75
+ </body>
76
+ </html>
@@ -1,61 +1,49 @@
1
1
  <%
2
- full_width ||= false
3
2
  product_name ||= "Publishing"
4
3
  public_environment = environment.eql?("public")
4
+ full_width ||= false
5
+ search ||= false
6
+ search_left ||= false
5
7
  navigation_items ||= []
6
- if full_width
7
- width_class = "govuk-header__container--full-width"
8
- else
9
- width_class = "govuk-width-container"
10
- end
8
+ remove_bottom_border ||= false
9
+ search_left ||= false
10
+ width_class = full_width ? "govuk-header__container--full-width" : "govuk-width-container"
11
+ header_classes = %w(gem-c-layout-header govuk-header)
12
+ header_classes << "gem-c-layout-header--#{environment}"
13
+ header_classes << "gem-c-layout-header--no-bottom-border" if remove_bottom_border
14
+ header_classes << "gem-c-layout-header--search-left" if search_left
11
15
  %>
12
- <header class="gem-c-layout-header govuk-header gem-c-layout-header--<%= environment %>" role="banner" data-module="govuk-header">
13
- <div class="govuk-header__container <%= width_class %>">
14
- <div class="govuk-header__logo gem-c-header__logo">
15
- <a href="/" class="govuk-header__link govuk-header__link--homepage">
16
- <span class="govuk-header__logotype">
17
- <svg role="presentation" focusable="false" class="govuk-header__logotype-crown" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 132 97" height="32" width="36">
18
- <path fill="currentColor" fill-rule="evenodd"
19
- d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"
20
- ></path>
21
- <image src="<%= asset_path('govuk-logotype-crown.png') %>" class="govuk-header__logotype-crown-fallback-image"></image>
22
- </svg>
23
- <span class="govuk-header__logotype-text">
24
- GOV.UK
25
- </span>
26
- </span>
27
16
 
28
- <% unless public_environment %>
29
- <span class="govuk-header__product-name gem-c-header__product-name">
30
- <%= product_name %>
31
- </span>
32
-
33
- <span class="gem-c-environment-tag govuk-tag gem-c-environment-tag--<%= environment %>">
34
- <%= environment %>
35
- </span>
36
- <% end %>
37
- </a>
38
-
39
- </div><div class="govuk-header__content gem-c-header__content">
40
-
41
- <% if navigation_items.any? %>
42
- <button role="button" class="govuk-header__menu-button gem-c-header__menu-button govuk-js-header-toggle" aria-controls="navigation" aria-label="Show or hide Top Level Navigation">Menu</button>
43
- <nav class="gem-c-header__nav">
44
- <ul id="navigation" class="govuk-header__navigation govuk-header__navigation--end" aria-label="Top Level Navigation">
45
- <% navigation_items.each_with_index do |item, index| %>
46
- <li class="govuk-header__navigation-item <%= "govuk-header__navigation-item--active" if item[:active] %>
47
- <%= "govuk-header__navigation-item--collapsed-menu-only" if item[:show_only_in_collapsed_menu] %>">
48
- <%= link_to(
49
- item[:text],
50
- item[:href],
51
- class: 'govuk-header__link',
52
- ) %>
53
- </li>
17
+ <header class="<%= header_classes.join(' ') %>" role="banner" data-module="govuk-header">
18
+ <div class="govuk-header__container <%= width_class %>">
19
+ <% if search_left %>
20
+ <div class="govuk-grid-row govuk-!-margin-left-0 govuk-!-margin-right-0">
21
+ <div class="gem-c-layout-header__logo govuk-grid-column-one-third-from-desktop">
22
+ <%= render "govuk_publishing_components/components/layout_header/header_logo", public_environment: public_environment, environment: environment, product_name: product_name %>
23
+ </div>
24
+ </div>
25
+ <div class="govuk-grid-row govuk-!-margin-left-0 govuk-!-margin-right-0">
26
+ <div class="govuk-grid-column-full govuk-grid-column-one-third-from-desktop gem-c-layout-header__search">
27
+ <%= render "govuk_publishing_components/components/layout_header/search" %>
28
+ </div>
29
+ <div class="govuk-header__content gem-c-header__content govuk-grid-column-full">
30
+ <%= render "govuk_publishing_components/components/layout_header/navigation_items", navigation_items: navigation_items %>
31
+ </div>
32
+ </div>
33
+ <% else %>
34
+ <div class="govuk-grid-row govuk-!-margin-left-0 govuk-!-margin-right-0">
35
+ <div class="gem-c-layout-header__logo govuk-grid-column-two-thirds">
36
+ <%= render "govuk_publishing_components/components/layout_header/header_logo", public_environment: public_environment, environment: environment, product_name: product_name %>
37
+ </div>
38
+ <div class="govuk-header__content gem-c-header__content">
39
+ <%= render "govuk_publishing_components/components/layout_header/navigation_items", navigation_items: navigation_items %>
40
+ </div>
41
+ <% if search %>
42
+ <div class="govuk-grid-column-one-third gem-c-layout-header__search">
43
+ <%= render "govuk_publishing_components/components/layout_header/search" %>
44
+ </div>
54
45
  <% end %>
55
- </ul>
56
- </nav>
46
+ </div>
57
47
  <% end %>
58
-
59
- </div>
60
48
  </div>
61
49
  </header>
@@ -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.to_json %>
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
- heading_size = 'm' unless ['s', 'm', 'l', 'xl'].include?(heading_size)
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--#{heading_size}"
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: "govuk-fieldset__legend govuk-fieldset__legend--xl gem-c-title" do %>
44
- <%= tag.span(heading_caption, class: "govuk-caption-xl") if heading_caption.present? %>
45
- <%= tag.h1 heading, class: "gem-c-title__text" %>
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 %>
@@ -1,9 +1,14 @@
1
1
  <%
2
- class_name = "gem-c-search--on-white"
3
- class_name = "gem-c-search--on-govuk-blue" if local_assigns[:on_govuk_blue].eql?(true)
4
2
  size ||= ""
5
- class_name = "#{class_name} gem-c-search--large" if size == 'large'
6
- class_name = "#{class_name} gem-c-search--separate-label" if local_assigns.include?(:inline_label)
3
+ no_border ||= false
4
+ shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
5
+ classes = %w(gem-c-search gem-c-search--on-white)
6
+ classes << (shared_helper.get_margin_top)
7
+ classes << (shared_helper.get_margin_bottom) if local_assigns[:margin_bottom]
8
+ classes << "gem-c-search--large" if size == 'large'
9
+ classes << "gem-c-search--no-border" if no_border
10
+ classes << "gem-c-search--on-govuk-blue" if local_assigns[:on_govuk_blue].eql?(true)
11
+ classes << "gem-c-search--separate-label" if local_assigns.include?(:inline_label)
7
12
 
8
13
  value ||= ""
9
14
  id ||= "search-main-" + SecureRandom.hex(4)
@@ -12,7 +17,7 @@
12
17
  aria_controls ||= nil
13
18
  %>
14
19
 
15
- <div class="gem-c-search <%= class_name %>" data-module="gem-toggle-input-class-on-focus">
20
+ <div class="<%= classes.join(' ') %>" data-module="gem-toggle-input-class-on-focus">
16
21
  <label for="<%= id %>" class="gem-c-search__label">
17
22
  <%= label_text %>
18
23
  </label>
@@ -55,37 +55,37 @@
55
55
  class: "gem-c-share-links__link #{brand_helper.color_class}" do %>
56
56
  <span class="gem-c-share-links__link-icon">
57
57
  <% if link[:icon] == 'facebook' %>
58
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
58
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" aria-hidden="true">
59
59
  <path fill="currentColor" d="M31.006 0H.993A.997.997 0 0 0 0 .993v30.014c0 .55.452.993.993.993h30.013a.998.998 0 0 0 .994-.993V.993A.999.999 0 0 0 31.006 0z"/>
60
60
  <path fill="#FFF" d="M17.892 10.751h1.787V8.009L17.216 8c-2.73 0-3.352 2.045-3.352 3.353v1.828h-1.581v2.824h1.581V24h3.322v-7.995h2.242l.291-2.824h-2.533V11.52c.001-.623.415-.769.706-.769z"/>
61
61
  </svg>
62
62
 
63
63
  <% elsif link[:icon] == 'twitter' %>
64
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32">
64
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" aria-hidden="true">
65
65
  <path fill="currentColor" d="M31.007 0H.993A.999.999 0 0 0 0 .993v30.014c0 .55.452.993.993.993h30.014a.997.997 0 0 0 .993-.993V.993A.998.998 0 0 0 31.007 0z"/>
66
66
  <path fill="#FFF" d="M8 21.027a9.286 9.286 0 0 0 5.032 1.475c6.038 0 9.34-5.002 9.34-9.339 0-.143-.004-.284-.012-.425a6.619 6.619 0 0 0 1.639-1.699c-.6.265-1.234.439-1.885.516a3.287 3.287 0 0 0 1.443-1.816 6.571 6.571 0 0 1-2.086.797 3.28 3.28 0 0 0-5.592 2.993 9.311 9.311 0 0 1-6.766-3.43 3.294 3.294 0 0 0-.443 1.651 3.28 3.28 0 0 0 1.46 2.732 3.278 3.278 0 0 1-1.488-.411v.041a3.288 3.288 0 0 0 2.633 3.22 3.28 3.28 0 0 1-1.481.055 3.285 3.285 0 0 0 3.065 2.281 6.59 6.59 0 0 1-4.076 1.404A6.76 6.76 0 0 1 8 21.027z"/>
67
67
  </svg>
68
68
 
69
69
  <% elsif link[:icon] == 'email' %>
70
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M34.983 18.76v12.48H15.016V18.76h19.967m2.496-2.496H12.52v17.472h24.959V16.264z"/><path fill="none" stroke="#FFF" stroke-width="2.496" stroke-miterlimit="10" d="M14.59 18.963L25 26.945l10.263-7.869"/></svg>
70
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M34.983 18.76v12.48H15.016V18.76h19.967m2.496-2.496H12.52v17.472h24.959V16.264z"/><path fill="none" stroke="#FFF" stroke-width="2.496" stroke-miterlimit="10" d="M14.59 18.963L25 26.945l10.263-7.869"/></svg>
71
71
 
72
72
  <% elsif link[:icon] == 'flickr' %>
73
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M23.72 25a5.76 5.76 0 1 1-11.52 0 5.76 5.76 0 1 1 11.52 0m14.08 0c0 3.182-2.578 5.76-5.76 5.76s-5.76-2.578-5.76-5.76a5.76 5.76 0 1 1 11.52 0"/></svg>
73
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M23.72 25a5.76 5.76 0 1 1-11.52 0 5.76 5.76 0 1 1 11.52 0m14.08 0c0 3.182-2.578 5.76-5.76 5.76s-5.76-2.578-5.76-5.76a5.76 5.76 0 1 1 11.52 0"/></svg>
74
74
 
75
75
  <% elsif link[:icon] == 'instagram' %>
76
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M25 28.2a3.204 3.204 0 0 1-3.2-3.2c0-1.764 1.436-3.2 3.2-3.2 1.765 0 3.2 1.436 3.2 3.2 0 1.765-1.435 3.2-3.2 3.2"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#c" overflow="visible"/></clipPath><path clip-path="url(#d)" fill="#FFF" d="M25 22.44c1.412 0 2.56 1.148 2.56 2.56s-1.147 2.56-2.56 2.56a2.561 2.561 0 0 1 0-5.12m0-1.28A3.844 3.844 0 0 0 21.16 25 3.844 3.844 0 0 0 25 28.84 3.845 3.845 0 0 0 28.84 25 3.844 3.844 0 0 0 25 21.16"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#e" overflow="visible"/></clipPath><path clip-path="url(#f)" fill="#FFF" d="M17.32 35.24c-1.555 0-2.56-1.005-2.56-2.561V17.373c0-1.611.981-2.613 2.56-2.613h15.36c1.58 0 2.561 1.002 2.561 2.613v15.36c0 1.522-1.005 2.507-2.561 2.507H17.32zM25 17.96c-3.881 0-7.04 3.159-7.04 7.04 0 3.881 3.159 7.04 7.04 7.04 3.881 0 7.04-3.159 7.04-7.04 0-3.881-3.159-7.04-7.04-7.04m7.36-2.56a2.243 2.243 0 0 0-2.24 2.24 2.243 2.243 0 0 0 2.24 2.24 2.241 2.241 0 0 0 0-4.48"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#g" overflow="visible"/></clipPath><path clip-path="url(#h)" fill="#FFF" d="M30.552 15.4a2.873 2.873 0 0 0-.704 3.648A7.64 7.64 0 0 0 25 17.319c-4.235 0-7.68 3.445-7.68 7.68 0 4.235 3.445 7.68 7.68 7.68 4.235 0 7.68-3.444 7.68-7.68a7.642 7.642 0 0 0-1.728-4.848 2.876 2.876 0 0 0 3.647-.703v13.285c0 1.169-.717 1.866-1.92 1.866H17.32c-1.22 0-1.92-.699-1.92-1.92V17.373c0-1.254.7-1.973 1.92-1.973h13.232m2.128-1.28H17.32c-1.92 0-3.2 1.28-3.2 3.253V32.68c0 1.92 1.28 3.2 3.2 3.2h15.36c1.92 0 3.2-1.28 3.2-3.146v-15.36c0-1.974-1.28-3.254-3.2-3.254m-.32 5.12a1.6 1.6 0 1 1-.001-3.2 1.6 1.6 0 0 1 .001 3.2M25 31.4a6.4 6.4 0 1 1 .002-12.802A6.4 6.4 0 0 1 25 31.4"/></svg>
76
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M25 28.2a3.204 3.204 0 0 1-3.2-3.2c0-1.764 1.436-3.2 3.2-3.2 1.765 0 3.2 1.436 3.2 3.2 0 1.765-1.435 3.2-3.2 3.2"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#c" overflow="visible"/></clipPath><path clip-path="url(#d)" fill="#FFF" d="M25 22.44c1.412 0 2.56 1.148 2.56 2.56s-1.147 2.56-2.56 2.56a2.561 2.561 0 0 1 0-5.12m0-1.28A3.844 3.844 0 0 0 21.16 25 3.844 3.844 0 0 0 25 28.84 3.845 3.845 0 0 0 28.84 25 3.844 3.844 0 0 0 25 21.16"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#e" overflow="visible"/></clipPath><path clip-path="url(#f)" fill="#FFF" d="M17.32 35.24c-1.555 0-2.56-1.005-2.56-2.561V17.373c0-1.611.981-2.613 2.56-2.613h15.36c1.58 0 2.561 1.002 2.561 2.613v15.36c0 1.522-1.005 2.507-2.561 2.507H17.32zM25 17.96c-3.881 0-7.04 3.159-7.04 7.04 0 3.881 3.159 7.04 7.04 7.04 3.881 0 7.04-3.159 7.04-7.04 0-3.881-3.159-7.04-7.04-7.04m7.36-2.56a2.243 2.243 0 0 0-2.24 2.24 2.243 2.243 0 0 0 2.24 2.24 2.241 2.241 0 0 0 0-4.48"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#g" overflow="visible"/></clipPath><path clip-path="url(#h)" fill="#FFF" d="M30.552 15.4a2.873 2.873 0 0 0-.704 3.648A7.64 7.64 0 0 0 25 17.319c-4.235 0-7.68 3.445-7.68 7.68 0 4.235 3.445 7.68 7.68 7.68 4.235 0 7.68-3.444 7.68-7.68a7.642 7.642 0 0 0-1.728-4.848 2.876 2.876 0 0 0 3.647-.703v13.285c0 1.169-.717 1.866-1.92 1.866H17.32c-1.22 0-1.92-.699-1.92-1.92V17.373c0-1.254.7-1.973 1.92-1.973h13.232m2.128-1.28H17.32c-1.92 0-3.2 1.28-3.2 3.253V32.68c0 1.92 1.28 3.2 3.2 3.2h15.36c1.92 0 3.2-1.28 3.2-3.146v-15.36c0-1.974-1.28-3.254-3.2-3.254m-.32 5.12a1.6 1.6 0 1 1-.001-3.2 1.6 1.6 0 0 1 .001 3.2M25 31.4a6.4 6.4 0 1 1 .002-12.802A6.4 6.4 0 0 1 25 31.4"/></svg>
77
77
 
78
78
  <% elsif link[:icon] == 'linkedin' %>
79
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M19.24 35.24V21.8h-4.48v13.44h4.48z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M26.28 35.24V28.2c0-1.92.64-3.2 1.92-3.2h.64c1.28 0 1.92 1.28 1.92 4.48v5.76h4.48V28.2c0-4.48-1.28-6.4-4.48-6.4-3.84 0-4.479 1.92-4.479 1.92V21.8H21.8v13.44h4.48zm-6.72-17.92a2.56 2.56 0 1 1-5.12 0 2.56 2.56 0 0 1 5.12 0"/></svg>
79
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M19.24 35.24V21.8h-4.48v13.44h4.48z"/><defs><path d="M9 9h32v32H9z"/></defs><clipPath><use xlink:href="#a" overflow="visible"/></clipPath><path clip-path="url(#b)" fill="#FFF" d="M26.28 35.24V28.2c0-1.92.64-3.2 1.92-3.2h.64c1.28 0 1.92 1.28 1.92 4.48v5.76h4.48V28.2c0-4.48-1.28-6.4-4.48-6.4-3.84 0-4.479 1.92-4.479 1.92V21.8H21.8v13.44h4.48zm-6.72-17.92a2.56 2.56 0 1 1-5.12 0 2.56 2.56 0 0 1 5.12 0"/></svg>
80
80
 
81
81
  <% elsif link[:icon] == 'youtube' %>
82
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M19.88 33.32V16.68L33.32 25l-13.44 8.32z"/></svg>
82
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M19.88 33.32V16.68L33.32 25l-13.44 8.32z"/></svg>
83
83
 
84
84
  <% elsif link[:icon] == 'whatsapp' %>
85
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32"><path d="M0 32V0h32v32H0zm20.839-13.894c-.263-.131-1.555-.766-1.796-.854-.24-.088-.416-.132-.59.131-.176.263-.68.855-.833 1.03-.153.176-.307.198-.57.066-.262-.131-1.109-.41-2.113-1.304-.78-.697-1.308-1.557-1.461-1.82-.153-.263-.016-.406.115-.536.118-.118.263-.308.394-.46.131-.154.175-.264.263-.44.088-.174.044-.328-.022-.46-.066-.131-.591-1.424-.81-1.95-.214-.513-.43-.443-.59-.452a10.506 10.506 0 0 0-.505-.009.964.964 0 0 0-.7.329c-.241.263-.92.899-.92 2.192 0 1.293.942 2.542 1.073 2.718.131.176 1.852 2.83 4.489 3.967.626.27 1.116.433 1.497.554.63.2 1.202.172 1.655.104.505-.075 1.555-.636 1.774-1.25.219-.613.219-1.14.153-1.25-.066-.108-.24-.174-.503-.306zm-4.795 6.547h-.003a8.73 8.73 0 0 1-4.449-1.219l-.319-.19-3.308.869.883-3.226-.208-.33a8.718 8.718 0 0 1-1.336-4.652c.001-4.819 3.922-8.74 8.744-8.74a8.68 8.68 0 0 1 6.179 2.564 8.686 8.686 0 0 1 2.557 6.183c-.002 4.82-3.922 8.74-8.74 8.74zm7.44-16.18a10.449 10.449 0 0 0-7.44-3.084c-5.796 0-10.513 4.717-10.516 10.516 0 1.853.484 3.662 1.404 5.256l-1.492 5.45 5.574-1.463a10.504 10.504 0 0 0 5.026 1.28h.004c5.796 0 10.514-4.717 10.516-10.515a10.455 10.455 0 0 0-3.077-7.44z" fill="currentColor"/></svg>
85
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" aria-hidden="true"><path d="M0 32V0h32v32H0zm20.839-13.894c-.263-.131-1.555-.766-1.796-.854-.24-.088-.416-.132-.59.131-.176.263-.68.855-.833 1.03-.153.176-.307.198-.57.066-.262-.131-1.109-.41-2.113-1.304-.78-.697-1.308-1.557-1.461-1.82-.153-.263-.016-.406.115-.536.118-.118.263-.308.394-.46.131-.154.175-.264.263-.44.088-.174.044-.328-.022-.46-.066-.131-.591-1.424-.81-1.95-.214-.513-.43-.443-.59-.452a10.506 10.506 0 0 0-.505-.009.964.964 0 0 0-.7.329c-.241.263-.92.899-.92 2.192 0 1.293.942 2.542 1.073 2.718.131.176 1.852 2.83 4.489 3.967.626.27 1.116.433 1.497.554.63.2 1.202.172 1.655.104.505-.075 1.555-.636 1.774-1.25.219-.613.219-1.14.153-1.25-.066-.108-.24-.174-.503-.306zm-4.795 6.547h-.003a8.73 8.73 0 0 1-4.449-1.219l-.319-.19-3.308.869.883-3.226-.208-.33a8.718 8.718 0 0 1-1.336-4.652c.001-4.819 3.922-8.74 8.744-8.74a8.68 8.68 0 0 1 6.179 2.564 8.686 8.686 0 0 1 2.557 6.183c-.002 4.82-3.922 8.74-8.74 8.74zm7.44-16.18a10.449 10.449 0 0 0-7.44-3.084c-5.796 0-10.513 4.717-10.516 10.516 0 1.853.484 3.662 1.404 5.256l-1.492 5.45 5.574-1.463a10.504 10.504 0 0 0 5.026 1.28h.004c5.796 0 10.514-4.717 10.516-10.515a10.455 10.455 0 0 0-3.077-7.44z" fill="currentColor"/></svg>
86
86
 
87
87
  <% else %>
88
- <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M12.84 14.12v19.2h5.76l5.76 5.76v-5.76h12.8v-19.2H12.84zm3.2 8.32H28.2V25H16.04v-2.56zm16 7.68h-16v-2.56h16v2.56zm1.92-10.24H16.04v-2.56h17.92v2.56z"/></svg>
88
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="9 9 32 32" aria-hidden="true"><path fill="currentColor" d="M9 9h32v32H9V9z"/><path fill="#FFF" d="M12.84 14.12v19.2h5.76l5.76 5.76v-5.76h12.8v-19.2H12.84zm3.2 8.32H28.2V25H16.04v-2.56zm16 7.68h-16v-2.56h16v2.56zm1.92-10.24H16.04v-2.56h17.92v2.56z"/></svg>
89
89
 
90
90
  <% end %>
91
91
  </span><%= link_text %><% end %>
@@ -25,14 +25,14 @@
25
25
  %>
26
26
  <% if title %>
27
27
  <script type="application/ld+json">
28
- <%= raw breadcrumb_presenter.structured_data.to_json %>
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: |