govuk_publishing_components 21.60.2 → 21.63.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +102 -73
  3. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +402 -340
  4. data/app/assets/javascripts/govuk_publishing_components/dependencies.js +0 -5
  5. data/app/assets/javascripts/govuk_publishing_components/ie.js +2 -0
  6. data/app/assets/javascripts/govuk_publishing_components/lib.js +1 -0
  7. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +1 -1
  8. data/app/assets/javascripts/govuk_publishing_components/lib/toggle.js +126 -65
  9. data/app/assets/javascripts/govuk_publishing_components/vendor/html5shiv-printshiv.js +4 -0
  10. data/app/assets/javascripts/govuk_publishing_components/vendor/json2.js +487 -0
  11. data/app/assets/javascripts/govuk_publishing_components/vendor/polyfills/closest.js +23 -0
  12. data/app/assets/javascripts/govuk_publishing_components/vendor/polyfills/indexOf.js +9 -0
  13. data/app/assets/stylesheets/component_guide/application.scss +4 -0
  14. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +3 -16
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +8 -0
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-public.scss +4 -0
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-header.scss +87 -1
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_panel.scss +7 -1
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +46 -0
  21. data/app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss +8 -0
  22. data/app/models/govuk_publishing_components/component_example.rb +4 -0
  23. data/app/views/govuk_publishing_components/component_guide/component_doc/_component.html.erb +1 -0
  24. data/app/views/govuk_publishing_components/component_guide/example.html.erb +4 -1
  25. data/app/views/govuk_publishing_components/component_guide/show.html.erb +3 -1
  26. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +1 -1
  27. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +1 -1
  28. data/app/views/govuk_publishing_components/components/_document_list.html.erb +18 -9
  29. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +32 -21
  30. data/app/views/govuk_publishing_components/components/_layout_for_public.html.erb +76 -0
  31. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +39 -51
  32. data/app/views/govuk_publishing_components/components/_panel.html.erb +13 -11
  33. data/app/views/govuk_publishing_components/components/_search.html.erb +10 -5
  34. data/app/views/govuk_publishing_components/components/_share_links.html.erb +9 -9
  35. data/app/views/govuk_publishing_components/components/docs/document_list.yml +18 -0
  36. data/app/views/govuk_publishing_components/components/docs/layout_footer.yml +17 -0
  37. data/app/views/govuk_publishing_components/components/docs/layout_for_admin.yml +5 -1
  38. data/app/views/govuk_publishing_components/components/docs/layout_for_public.yml +29 -0
  39. data/app/views/govuk_publishing_components/components/docs/layout_header.yml +34 -0
  40. data/app/views/govuk_publishing_components/components/docs/search.yml +6 -0
  41. data/app/views/govuk_publishing_components/components/feedback/_problem_form.html.erb +6 -6
  42. data/app/views/govuk_publishing_components/components/feedback/_survey_signup_form.html.erb +6 -6
  43. data/app/views/govuk_publishing_components/components/feedback/_yes_no_banner.html.erb +8 -10
  44. data/app/views/govuk_publishing_components/components/layout_header/_header_logo.html.erb +23 -0
  45. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +17 -0
  46. data/app/views/govuk_publishing_components/components/layout_header/_search.html.erb +9 -0
  47. data/config/initializers/assets.rb +8 -0
  48. data/config/locales/en.yml +18 -0
  49. data/lib/govuk_publishing_components.rb +1 -0
  50. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +5 -0
  51. data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb +1 -0
  52. data/lib/govuk_publishing_components/presenters/image_card_helper.rb +1 -1
  53. data/lib/govuk_publishing_components/presenters/public_layout_helper.rb +380 -0
  54. data/lib/govuk_publishing_components/version.rb +1 -1
  55. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +0 -4
  56. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +33 -33
  57. data/node_modules/govuk-frontend/package.json +1 -1
  58. metadata +14 -2
@@ -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>
@@ -4,22 +4,24 @@
4
4
  append ||= false
5
5
  %>
6
6
  <div class="gem-c-panel govuk-panel govuk-panel--confirmation">
7
- <% if prepend %>
8
- <div class="gem-c-panel__prepend">
9
- <%= prepend %>
10
- </div>
11
- <% end %>
12
7
  <h2 class="govuk-panel__title">
13
- <%= title %>
8
+ <% if prepend %>
9
+ <span class="gem-c-panel__prepend">
10
+ <%= prepend %>
11
+ </span>
12
+ <% end %>
13
+ <span class="govuk-panel__title-text">
14
+ <%= title %>
15
+ </span>
16
+ <% if append %>
17
+ <span class="gem-c-panel__append">
18
+ <%= append %>
19
+ </span>
20
+ <% end %>
14
21
  </h2>
15
22
  <% if description %>
16
23
  <div class="govuk-panel__body">
17
24
  <%= description %>
18
25
  </div>
19
26
  <% end %>
20
- <% if append %>
21
- <div class="gem-c-panel__append">
22
- <%= append %>
23
- </div>
24
- <% end %>
25
27
  </div>
@@ -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 %>
@@ -262,3 +262,21 @@ examples:
262
262
  - link:
263
263
  text: 'Criteria'
264
264
  description: 'no url provided, just text'
265
+ with_locale_specified:
266
+ description: |
267
+ The component is used on translated pages that don’t have a translation for the document link text or the metadata. This means that it could display the fallback English string if the translate method can’t find an appropriate translation. This makes sure that the lang can be set to ensure that browsers understand which parts of the page are in each language.
268
+
269
+ Locales can be set separately for the document link text and individual metadata items. To set link text locale, pass a locale attribute along with the link object. To set metadata locale, pass a locale attribute containing a parallel object to your metadata (depending on which metadata have translations and which need a lang attribute to specify that they are in a different language).
270
+
271
+ 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.
272
+ data:
273
+ items:
274
+ - link:
275
+ text: 'Tryloywder Uwch Staff Ysgrifennydd Gwladol Cymru Ionawr-Mawrth 2020'
276
+ path: '/government/publications/office-of-the-secretary-of-state-for-wales-senior-staff-transparency-january-march-2020'
277
+ locale: 'cy'
278
+ metadata:
279
+ public_updated_at: 2016-06-27 10:29:44
280
+ document_type: 'Data tryloywder'
281
+ locale:
282
+ document_type: 'cy'
@@ -139,3 +139,20 @@ examples:
139
139
  attributes:
140
140
  lang: en
141
141
  hreflang: en
142
+ with_border:
143
+ data:
144
+ with_border: true
145
+ meta:
146
+ items:
147
+ - href: '/help'
148
+ text: Help
149
+ - href: '/help/cookies'
150
+ text: Cookies
151
+ - href: '/contact'
152
+ text: Contact
153
+ - href: '/help/terms-conditions'
154
+ text: Terms and conditions
155
+ - href: '/cymraeg'
156
+ text: Rhestr o Wasanaethau Cymraeg
157
+ - href: '/government/organisations/government-digital-service'
158
+ text: Government Digital Service
@@ -10,7 +10,11 @@ body: |
10
10
  display_preview: false
11
11
  display_html: true
12
12
  accessibility_criteria: |
13
- TBD
13
+ The layout template must:
14
+
15
+ * have a `lang` attribute
16
+ * contain a [skip link](/component-guide/skip_link)
17
+ * have a sensible page `<title>`
14
18
  examples:
15
19
  default:
16
20
  data:
@@ -0,0 +1,29 @@
1
+ name: Public layout
2
+ description: A layout to be used by public-facing applications
3
+ body: |
4
+ Because it is an entire HTML document, this component can only be [previewed on a separate page](/public).
5
+
6
+ display_preview: false
7
+ display_html: true
8
+ accessibility_criteria: |
9
+ The layout template must:
10
+
11
+ * have a `lang` attribute
12
+ * contain a [skip link](/component-guide/skip_link)
13
+ * have a sensible page `<title>`
14
+ examples:
15
+ default:
16
+ data:
17
+ title: 'Example layout'
18
+ block: |
19
+ <h1>Page content goes here</h1>
20
+ full_width:
21
+ description: By default, the layout applies the `govuk-width-container` class to the main element. We can remove this class by setting `full_width` to `true`
22
+ data:
23
+ full_width: true
24
+ block: |
25
+ <h1>Page content goes here</h1>
26
+ omit_header:
27
+ description: This allows the header to be omitted which is currently used when rendering CSV previews from Whitehall
28
+ data:
29
+ omit_header: true
@@ -7,6 +7,10 @@ govuk_frontend_components:
7
7
  - header
8
8
  accessibility_excluded_rules:
9
9
  - landmark-banner-is-top-level # The header element can not be top level in the examples
10
+ - duplicate-id-aria # IDs will be duplicated in component examples list
11
+ - form-field-multiple-labels # Form labels will be ambiguous in component examples list
12
+ - landmark-no-duplicate-banner # banners will be duplicated in component examples list
13
+ - landmark-unique # aria-label attributes will be duplicated in component examples list
10
14
  examples:
11
15
  default:
12
16
  data:
@@ -36,12 +40,42 @@ examples:
36
40
  - text: Hidden on desktop
37
41
  href: "item-3"
38
42
  show_only_in_collapsed_menu: true
43
+ with_left_search_and_navigation:
44
+ description: This supports pages where the search appears on the left with multiple navigation links on the right, such as the [How government works](https://www.gov.uk/government/how-government-works) page
45
+ data:
46
+ search_left: true
47
+ environment: public
48
+ navigation_items:
49
+ - text: Departments
50
+ href: "item-1"
51
+ - text: Worldwide
52
+ href: "item-2"
53
+ - text: How government works
54
+ href: "item-3"
55
+ - text: Get involved
56
+ href: "item-4"
57
+ - text: Consultations
58
+ href: "item-4"
59
+ - text: Statistics
60
+ href: "item-5"
61
+ - text: News and communications
62
+ href: "item-6"
63
+ active: true
39
64
  full_width:
40
65
  description: |
41
66
  This is difficult to preview because the preview windows are constrained, but the header will stretch to the size of its container.
42
67
  data:
43
68
  environment: production
44
69
  full_width: true
70
+ no_bottom_border:
71
+ description: This is useful for pages where a large full-width banner is the first thing to appear on the page, for example, the [GOV.UK homepage](https://www.gov.uk)
72
+ data:
73
+ remove_bottom_border: true
74
+ environment: 'public'
75
+ with_search_bar:
76
+ data:
77
+ environment: 'public'
78
+ search: true
45
79
 
46
80
  accessibility_criteria: |
47
81
  The component must:
@@ -24,6 +24,12 @@ examples:
24
24
  stop_the_label_appearing_inline:
25
25
  data:
26
26
  inline_label: false
27
+ no_border:
28
+ description: Sometimes we don't need the grey border surrounding the input field, such as when the component is used on a black background
29
+ data:
30
+ no_border: true
31
+ context:
32
+ black_background: true
27
33
  for_use_on_govuk_blue_background:
28
34
  data:
29
35
  on_govuk_blue: true
@@ -10,7 +10,7 @@
10
10
  data-track-action="GOV.UK Close Form"
11
11
  aria-controls="something-is-wrong"
12
12
  aria-expanded="true"
13
- role="button">Close</a>
13
+ role="button"><%= t("components.feedback.close", default: "Close") %></a>
14
14
 
15
15
  <div class="govuk-grid-row">
16
16
  <div class="govuk-grid-column-two-thirds">
@@ -18,12 +18,12 @@
18
18
 
19
19
  <input type="hidden" name="url" value="<%= url_without_pii %>">
20
20
 
21
- <h3 class="gem-c-feedback__form-heading">Help us improve GOV.UK</h3>
22
- <p id="feedback_explanation" class="gem-c-feedback__form-paragraph">Don’t include personal or financial information like your National Insurance number or credit card details.</p>
21
+ <h3 class="gem-c-feedback__form-heading"><%= t("components.feedback.help_us_improve_govuk", default: "Help us improve GOV.UK") %></h3>
22
+ <p id="feedback_explanation" class="gem-c-feedback__form-paragraph"><%= t("components.feedback.dont_include_personal_info", default: "Don’t include personal or financial information like your National Insurance number or credit card details.") %></p>
23
23
 
24
24
  <%= render "govuk_publishing_components/components/input", {
25
25
  label: {
26
- text: "What were you doing?"
26
+ text: t("components.feedback.what_doing", default: "What were you doing?")
27
27
  },
28
28
  name: "what_doing",
29
29
  describedby: "feedback_explanation"
@@ -31,13 +31,13 @@
31
31
 
32
32
  <%= render "govuk_publishing_components/components/input", {
33
33
  label: {
34
- text: "What went wrong?"
34
+ text: t("components.feedback.what_wrong", default: "What went wrong?")
35
35
  },
36
36
  name: "what_wrong"
37
37
  } %>
38
38
 
39
39
  <%= render "govuk_publishing_components/components/button", {
40
- text: "Send"
40
+ text: t("components.feedback.send", default: "Send")
41
41
  } %>
42
42
  </div>
43
43
  </div>